Skip to content Skip to navigation

Operating Systems Design


To convey a thorough understanding of the basics of an operating system by studying techniques and algorithms for providing services in a computer system, and to understand implementation aspects of popular systems by means of case studies.

This course counts as category B for M.Sc. degree requirement. This course does NOT count as category B for Ph.D. students

B (M.S.)
Fall, and Spring

Computer organization
Process management, synchronization, scheduling and deadlocks
Memory management, virtual memory 
I/0 management, file systems, 
Queuing theory, performance evaluation
Case studies of UNIX

Expected Work: 

Homework assignments, programming assignments

2 hourlies and a final exam
Learning Goals: 

Computer Science majors ...

  • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
  • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
  • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).
Teaching Professors Names: 
Ahmed Elgammal