20594 Operating Systems 1

Credits: 4 advanced credits in Computer Science

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

Required: System Programming Laboratory,2 Data Structures and Introduction to Algorithms (or Data Structures)

Recommended: Computer Organization 3

The course is based on Modern Operating Systems (3rd ed.), by A.S. Tanenbaum (Prentice Hall, 2007), as well as a study guide. Note: Several printings of the 3rd edition with completely identical content are available on the market. Students will be supplied with the most recent printing available. The materials include a learning aid that describes system calls in UNIX and explanations of its use, and material that deals with installing and running the Linux 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. The course includes theoretical tasks and programming exercises in C on Linux that require skill in C programming.

Minimal hardware requirements: CPU Intel Pentium compatible, 1.5 Gb RAM, HD speed 7600 RPM, free space on the HD 5 Gb.

Chapters: (1) Ideas underlying modern operating systems and their historical development; (2) Processes and threads; (3) Memory management; (4) File systems; (5) Input/Output; (6) Deadlocks; (9) Security; (10) UNIX and Linux; (11) Windows Vista.

1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.

2or Introduction to System Programming with C (20386), which is no longer offered.

3or Computer Organization and Programming (20420), which is no longer offered.