* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Official Syllabus
Survey
Document related concepts
Process management (computing) wikipedia , lookup
Library (computing) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Copland (operating system) wikipedia , lookup
Mobile operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
Transcript
CS 453/552: Operating Systems Spring 2017 Prerequisites: ECE 330 and CS 253 and CS 321 and CS230 Instructor: Dr. Amit Jain Phone: 426-3821 Email: [email protected] Office: CCP 355 Office Hours: On class home page. Class Home Page http://cs.boisestate.edu/~amit/teaching/453/cs453.html Piazza We will be using Piazza for class discussion. The system is catered to getting you help fast and efficiently from classmates, the Graduate Assistant, and the instructor. Rather than emailing questions to the teaching staff, please post your questions on Piazza. Find our class discussion forum page on Piazza at: https://piazza.com/boisestate/spring2017/cs453552/home Please note that all important announcements will be made on Piazza so it is your responsibility to keep up. You should have already received an invitation to join Piazza. Please contact the instructor if you cannot locate the invite. Current Catalog Description CS 453 OPERATING SYSTEMS (3-0-3)(F). Process management, concurrency, inter-process communication, synchronization, scheduling, memory management, file systems and security. Case studies of multiple operating systems. PREREQ: CS 253 and CS 321 and ECE 330. CS 552 OPERATING SYSTEMS (3-0-3)(F). Process management, concurrency, inter-process communication, synchronization, scheduling, memory management, file systems and security. Case studies of multiple operating systems. PREREQ: CS 253 and CS 321 and ECE 330, or regular admission to the program. Textbook None References • Other useful textbooks. – Operating Systems: Principles and Practice by Thomas Anderson and Michael Dahlin. – Modern Operating Systems (3rd edition) by Andrew S. Tanenbaum. – Operating Systems Concepts (7th or 8th edition) by Abraham Silberschatz, Peter Baer Galvin and Greg Gagne. The following books are helpful with systems programming. – The C programming language (2nd edition) by Brian W. Kernighan and Dennis M. Ritchie. – Advanced Programming in the UNIX Environment by W. Richard Stevens. The following books give specific details about the internals of Linux and Microsoft Windows. – Linux Kernel Development by Robert Love. – Microsoft Windows Internals (Part 1 and 2) (6th edition) by Mark E. Russinovich and David A. Solomon. The following book is an excellent introduction to using the shell and writing shell scripts. It also covers some systems programming in C. – The UNIX Programming Environment by Brian W. Kernighan and Rob Pike. Course Goals By taking this course, a student will be able to: • explain the structure of an Operating System, • explain the function of an Operating System, • solve problems arising in Operating System design and implementation, • describe strategies used to implement commonly used Operating Systems, • write concurrent system programs that run correctly, • create a large piece of system software in stages and • analyze the impact of system software on individuals, organizations and society. 2 Major Topics Covered in the Course • Introduction. • Process Management. • Scheduling. • Basic Synchronization Principles. • High-level Synchronization and Deadlock. • Device Management. • Memory Management. • Virtual Memory. • File Management. • Protection and Security. • Introduction to Networking. • Examples from Linux, Microsoft Windows and Mac OS X. Laboratory Projects (subject to change) • Simple device driver (1 week) • Multi-threaded program using semaphores (2 weeks) • Multi-threaded library monitors (2 weeks) • Shell project, part 1: basic version (2 weeks) • Shell project, part 2: custom memory manager (2 weeks) • One to two Linux kernel projects (modifying source code, rebuilding and testing) (2 weeks) • Multi-threaded project using Microsoft Windows API (2 weeks) Attendance and Class Participation Students are expected to attend all classes. Missing classes without explanation may result in a grade penalty. 3 Format, Student Activities, and Grading Grading • Homework and Programming Projects:(65%) • Quizzes: (20%) • Final Examination:(15%) • Class participation: -5% to +5% Grading Policy • Programming assignments can be turned in within 48 hours of the deadline, although resulting in a 10% penalty. If you are having difficulty, please talk to me before the deadline. • Homework will not be accepted late without arrangements made before the deadline. • Each student must work independently on assignments unless specified otherwise. • Graduate students signed up for CS 552 will be assigned more challenging assignments (or extra parts to the assignments) and may have extra problems on the exams. 4