Operating System

Operating Systems 4L-2T-0P 5 credits

Overview

A joint ACM and IEEE Computer Society curriculum recommendation for undergraduate degree in computer science from the report in 2008 proposes that a course in Operating Systems should explain the issues that influence the design of contemporary operating systems. Since operating systems is the software layer that abstracts the hardware to enable programmers to control it, the students will require a laboratory component to experiment with operating systems.

Syllabus

Topics

Hours

Overview of operating systems: Role and purpose of operating systems; evolution of operating systems; functionality and purpose of a typical operating system; client-server models; design issues - efficiency, robustness, flexibility, portability, security, compatibility; interactions with computer architecture.

6

Operating systems principles: Structuring methods - monolithic, layered, modular, micro-kernel, virtual machine, exokernel; abstractions, processes, resources; device organization; interrupts; user vs. kernel modes, transition of modes.

6

Concurrency: States and state diagrams; structures; dispatching and context switching; concurrent execution; mutual exclusion; deadlocks - causes, conditions, prevention; models and mechanisms - semaphores, monitors, condition variables, rendezvous; producerconsumer problems and synchronization; multiprocessor issues - spin-locks, reentrancy

.

10

Scheduling and dispatching: Preemptive vs. non-preemptive scheduling; schedulers and policies; processes and threads; interprocess communication; classical IPC problems - Dining Philosophers, Readers and Writers.

6

Memory management: Physical memory and memory management hardware; paging, virtual memory, segmentation; working sets, thrashing; caching.

10

Security and protection: Overview - threats, intruders; cryptography; protection mechanisms; authentication; insider attacks; malware; defenses - protection, access control; backups.

6

File Systems: Files - data, metadata, organization, buffering; directories - contents, structure; file systems - partitioning, mount/unmount, virtual file system; implementation techniques; memory-mapped files; special purpose file systems; management and optimization - naming, searching, access, backups.

10


Textbooks

  1. Abraham Silberschatz, Peter B. Galvin, and Greg Gagne. Operating System Concepts. 8th ed. Wiley, 2008. isbn: 978-0470128725.
  2. Andrew S Tanenbaum and Albert S Woodhull. Operating Systems Design and Implementation. 3rd ed. Pearson, 2006. isbn: 978-0131429383.

Additional References

  1. Robert Love. Linux Kernel Development. 3rd ed. Addison-Wesley Professional, 2010. isbn: 978-0672329463.
  2. Mark E. Russinovich, David A. Solomon, and Alex Ionescu. Windows Internals. 6th ed. Microsoft Press, 2012. isbn: 978-0735648739.