110 likes | 125 Views
Learn operating system design principles, processes, memory and storage management, with hands-on experience and course materials.
E N D
CSI 3131 Summer 2016Principles of Operating Systems Instructor: Dr. Nathalie Japkowicz E-mail:nat@site.uottawa.ca Office: STE 5029 Office Hours: • In person: • Monday 11:30am-1:00pm • On Skype: By arrangement • Teaching Assistant (TA) for the course: • TBA
Course Material Web site: • Course material (class notes) • Syllabus Blackboard • Assignment management • Grading tool • Course announcements (usually, also sent to your school e-mail) • Labs • Tutorials
Textbook and Reading • Course Notes: • Made available on Website as PPT files • Textbook: • Operating Systems Concept Essential, Silberchatz, Galvin, Gagne, Wiley, 2013 (9th edition) • Other useful book: • “William Stallings, Operating Systems: Internals and Design Principles, 4th edition, Prentice-Hall, 2001, ISBN: 0-13-031999-6
Evaluation • Assignments (individual) 25 % • Assignment 1: Processcreation May 9 – May 30 • Assignment 2: Threads May 30 – June 20 • Assignment 3: Synchronization June 20 – July 4 • Assignment 4: Virtual Memory 4 Juillet- 18 Juillet • Midterm Exam 25 % • MondayJune 13, in class (2 hours 1:30pm-3:30pm) • Final Exam 50 % • TBA: During the Exam Period [July 27-August 6]
Course Objectives You are expected to • learn basic concepts and principles behind the design of operating systems • get exposed to the problems operating systems designers face, explore the tradeoffs and solutions to these problems • see how are these issues solved in practice in real operating systems • be able to apply these concepts and techniques in relevant circumstances • get some hands-on experience programming OS type problems (process creation, inter-process-communications, process synchronization, mutual exclusion, deadlock avoidance)
Topics Covered • What Operating Systems Do • Computer-System Organization • Computer-System Architecture • Operating-System Structure • Operating-System Operations • Process Management • Memory Management • Storage and I/O Management • Protection and Security • Distributed Systems • Special-Purpose Systems • Computing Environments Background/intro The main stuff Advanced topics, not covered in this course
Topics Covered Introduction/Background/Overview • Computer systems overview • Operating systems overview: interface, system calls, design and implementation issues, OS structure Process Management • Processes and threads • Interprocess communication • CPU scheduling – algorithms and criteria • Process/thread synchronization – problems and solutions • Deadlocks – prevention, avoidance, detection, recovery
Topics Covered (contd.) Memory Management • Basic main memory management (swapping, contiguous memory allocation, paging, segmentation) • Virtual memory (demand paging, copy-on-write, page replacement, allocating kernel memory) Storage Management and Input/Output • File-System interface (files, directories, mounting file system, file sharing) • File-System implementation • Mass-storage structure (disk structure, scheduling, management) • Swap space management • I/O systems (hardware, application I/O interface, kernel I/O subsystem)
Detailed Schedule • May 2: Introduction and OS Overview (Chap 1 & 2) • May 9: Processes (Chap 3) • May 16: Threads (Chap 4) • May 23: Victoria Day: No Classes! • May 30: Process Synchronization (Chap 6) • June 6: Review + Process Synchronization (Chap 6) (continued) • June 13: MidTerm Exam • June 20: Deadlocks (Chap 7) • June 27: Deadlocks (Chap 7) (continuation) • July 4: Memory Management (Chap 8) • July 11: Virtual Memory (Chap 9) • July 18: File Systems (Chap 11 & 12) • July 25: Mass Storage Structure (Chap 10)