This course is no longer offered

20354 Principles of Operating Systems 1

Credits: 6 advanced credits in Computer Science

Prerequisites: Students must fulfill all English requirements and take bibliographic instruction in the Library.

Required: Introduction to System Programming with C.

The course is based on Modern Operating Systems (2nd ed.), by A.S. Tanenbaum (Prentice Hall, 2001). Materials also include Advanced Programming in the UNIX Environment, by W.R. Stevens (Addison Wesley, 1992) and technical material about the LINUX system. Students also receive the software and documentation required for running the system.

The course has two main objectives: Acquaintance with the design and structural principles underlying every modern operating system; and practical application of these principles through advanced programming exercises in a LINUX operating system that students run on their home PCs. The minimal required configuration is a Pentium 3 (or higher) computer, at least 256MB memory (512MB is preferred), 1.5G free disk space and an Internet connection.

Topics: Historical development of the ideas underlying modern operating systems; Creation and timing of processes and threads, critical regions and interprocess communication problems; Deadlock detection, recovery and avoidance; Memory management; Input/output devices; File systems; Security and protection mechanisms; System structure – UNIX and LINUX, Windows 2000.