-
Syllabus: CSC 331 - Operating Systems
-
Introduction to Operating Systems
-
Introduction to xv6
-
Abstraction: Process and Process API
-
Process in XV6
-
Limited Direct Execution
-
CPU Scheduling
-
Memory virtualization
-
Memory virtualization mechanism: address translation
-
Memory virtualization mechanism: paging and tlb
-
Introduction to concurrency using threads
-
Lock and Condition Variables
-
Semaphores
-
I/O and Disks: Disk Scheduling
-
Introduction to file systems
-
Crash consistency: fsck and journaling
-
Micro versus monolithnic kernels: Minix and Linux
-
A Gentle Introduction to ROS
-
CSC 331: Operating Systems
-
Notes
-
Infrastructure
CSC 331: Operating Systems
Course Description
This course will introduce three fundamental concepts in operating system (OS): Virtualization, Concurrency, and Persistence.
In Virtualization, we learn how OS creates abstractions through which programmers can interact with the underlying hardware. Examples of these abstractions include processes, memory spaces, and CPU scheduling.
In Concurrency, we learn about how OS supports sharing of physical resources among these abstractions. These include thread, lock, and semaphores.
In Persistence, we learn about how OS enables the long term management of information, produced or required by computer programs, in a manner that persists beyond the scope or the duration of these programs.
Understanding how operating systems work will facilitate better understanding about how programs are run by the computer hardware. This will lead to more efficient, stable, and secure programs.