bil301os

⟶Lecture Notes

Monday  1:30 pm @B501

Basic C and systems programming skills are required: 

This course introduces students to the concepts of operating systems and provides them with a solid understanding of what operating systems are and what they do and their principles.  This course puts particular emphasis on concurrency and synchronization tools and their implementations.  During the semester, in addition to weekly lectures and lab sessions, there will be programming assignments (mostly in Linux) and in class quizzes. It is crucial for you to follow weekly lectures to learn the material and complete the assignments. 

Textbooks and Course Material

Weekly topics and lecture notes

  1. Chapter 1: Introduction ⟶1intro.pdf
  2. Chapter 2: Operating System Services-structures-linkers/loaders ⟶2services-structs.pdf
  3. Chapter 3: Processes  ⟶3processes.pdf
  4. Chapter 4: Threads & Concurrency ⟶4concurrency-threads.pdf
  5. Chapter 5: CPU Scheduling ⟶5cpu-scheduling.pdf
  6. Intro to Synchronization: Peterson solution, spin-locks, atomic instructions, memory barriers (e.g., mb, fence, volatile), C11 atomic library (relaxed, acquire, release) ⟶6synchronization-intro.pdf
  7. Midterm exam
  8. Synchronization II (implementation of locks, low level locks: disabling interrupts and spin-locks, improving spinlock efficiency, lock free programming, cache coherency, deadlock, transactional memory)
    ⟶7synchronization-II.pdf
  9. Synchronization review
    ⟶8synchronization-review.pdf
  10. Chapter 9: Main Memory
    ⟶9vm-hw.pdf
  11. Chapter 10: Virtual Memory
    ⟶10vm-os.pdf
  12. Chapter 11-12: I/O Systems
    ⟶11io-systems.pdf
  13. Disk and storage ⟶12disk-io.pdf
  14. Chapter 13-14-15: File-System Interface, Implementation, and Internals
    ⟶13file-systems.pdf
  15. Protection, Security ⟶14protection-security.pdf

Homeworks and exams

Grading

Discussions

For the assignment submission/grading and discussions, we will use https://classroom.google.com and for public discussions, we will use https://piazza.com for this course.  In discussions and questions:

Collaboration and Cheating Policy