Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSCI-UA.0202-001 Operating Systems

Description

This is an introductory course in operating systems (OS), focusing on the high-level design of key OS concepts such as process scheduling and        synchronization; deadlocks and their prevention; I/O and ile systems;    memory management, including (demand) paging and segmentation;       and security and protection, using Linux as an example.

Programming assignments (“labs”) constitute a crucial component of this course. They are based on the C programming language in the Linux         environment, and you may ind them signiicantly more challenging than what you have done in previous courses. There are four labs. Each   lab (barring the irst warm-up lab) is approximately 600 lines of code and requires at least 20–30 hours of coding and debugging, so proper time   management is of utmost importance. There will not be kernel hacking    labs. Instead, you will write practical, user-level programs to deal with      real-world OS-related issues and better understand key OS concepts       through the labs.

My goal is not only to teach OS but also to help everyone understand how computers work under the hood so that you can write more        eficient code and become a better computer scientist/software         engineer after taking this course.

Got stuck?

First of all, don’t be shy to ask any questions my door is always open.

We (the instructor and the course tutor) are happy and even eager to     help on the labs. When should you ask for such help? Mainly, you should use your judgment (the rough answer is: “when you’re actually stuck”).   Below are some guidelines.

First, one of the main purposes of the labs is for you to go through the exercise of iguring out how to make a system work. Thus, if a lab is at irst confusing even in its instructions, please don’t be discouraged;

understanding the instructions is part of the work of the labs! Similarly, if your code is failing a test, note that our job is not to help your code to   pass but to help you to igure out how to solve the problem.

Labs in this course will be challenging. We hope they will also be very     satisfying. We will work to help you meet the challenge. Our hope and   expectation is that everyone who works hard on the labs will succeed. If you have ideas for improving the labs, please let us know. Good luck!

Textbook

Required textbook

Operating System Concepts, 10th Edition, by Avi Silberschatz,

Peter Baer Galvin, and Greg Gagne. I recommend getting the e-book since that makes searching and cross-reference much easier. If             getting the textbook places a inancial hardship on you, you can ind a hard copy at the Bobst library or read the 8th edition for free                through OReilly Online Learning.

Optional textbooks

Modern Operating Systems, 4th Edition, by Andrew S. Tanenbaum and Herbert Bos. It’s also on reserve at the library. Operating Systems: Three Easy Pieces, by Remzi H. Arpaci- Dusseau and Andrea C. Arpaci-Dusseau. The e-book is free. Computer Systems: A Programmers Perspective, 3rd Edition, by

Randal E. Bryant and David R. OHallaron. Its also on reserve at the library.

Programming reference books

The C Programming Language, 2nd Edition, by Brian W. Kernighan

and Dennis M. Ritchie. Available for free through OReilly Online Learning.

Advanced Programming in the UNIX® Environment, 3rd Edition, by

W. Richard Stevens and Stephen A. Rago. Available for free through OReilly Online Learning.