CE 40-424: Operating Systems
Saturday/Monday 1630-1800
Room: CE201 Aleph 18
Mohammad Hadadian
Arshia Akhavan
Mehraneh Najafi
AmirMahdi Namjoo
Hooman Keshvari
Hirbod Behnam
Quick Links: Description Acknowledgment Policies Announcements Homeworks CourseMaterial
Description:
This is an introductory course to Operating Systems. This course is primarily based on the Operating Systems course taught by John D. Kubiatowicz at Berkeley.
Prerequisites: 40-323 Computer Architecture
Acknowledgment:
This course is primarily based on the Operating Systems course taught by John D. Kubiatowicz at Berkeley.
Policies:
- Grading policy is as follows. This is tentative.
- 25% Homeworks
- 40% Group Homeworks
- 15% Midterm
- 20% Final
There will be no exceptions to the following rules:
- There will be a zero tolerance policy for cheating/copying. The first time you are caught, you will receive a zero for the task at hand. If you are caught for a second time, you will fail the course. Providing your assignment to someone else is considered cheating on your behalf.
- If you turn in your assignments one day late you will lose 25% of the grade, two days will cost you 50% and three days 75% of the grade. No submissions will be accepted after the third day. Penalty may be calculted continuously and per hour of delay. This applies to both individual and group assignments.
- Each of you has a 3 day extension you could use over the individual assignments. The minimum you could use at each instance is a 1 day extension. So you can not extend HW1 by 12 hours and then HW2 by 60 hours. You could use the 3 days with one HW, or 1 day for each HW, or 2 days for hW1 and 1 day for HW2, or 1 day for HW1 and 2 days for HW2, or ... (I hope you get the idea!)
- The 3 day extension will be applied to HW0 and what ever remains would be carried over to HW1 and so on. Again, this applies only to the individual assignments.
- An automatic judge service may be provided with assignments in order to assist students in better evaluating their code. Although grading is an independent process which is not necessarily limited to the evaluation done by the judge and may include other tests and procedures. Therefore students should not reverse engineer the judge, but to properly design and implement the requirements noted in the assignments.
- There is a good probability that things go south (i.e. you get sick, network fails, your computer crashes, there is a bug in the HW/GHW, server fails, etc.) as the deadline approaches. Such issues will not result in an extension to the deadline. So keep that in mind and plan for Murphy's law in advance, don't leave things for the last minute.
- There will be a zero tolerance policy for any misuse of the course infrastructure (i.e. Judge, Tarasht, etc.), regardless of the intent
- Students are expected to check announcement and other messages on discord. In fact official class communication channel will be on Discord.
- If any of the class policies are unclear, they should be brought up and discussed in the first week of the semester at hand.
Announcements:
- You should study the class policies carefully.
- Midterm will be on 1401/2/11 and up to "Caching" (lecture 13, slide 43).
Homeworks:
- HW0 [VM Patch], Available: 1401/11/11, Deadline: 1401/11/25, 11:59PM.
- HW1, Available: 1400/11/24, Deadline:1401/12/4, 11:59PM.
- HW2, Available: 1402/1/14, Deadline: 1402/1/22, 11:59PM.
- HW3, Available: 1402/1/23, Deadline: 1402/2/1, 11:59PM.
Group Homeworks:
- GHW1 WarmUp: Available: 1401/11/26, GHW1: Available: 1401/11/30, Design Deadline: 1401/12/9, Code + Report Submission Deadline: 1401/12/19, 11:59PM.
- GHW2 GHW2-Lab: Available: 1402/1/20, Design Deadline: 1402/1/27, Code + Report Submission Deadline: 1402/2/7, 11:59PM.
- GHW3: Available: 1402/2/11, Design Deadline: 1402/2/20, Code + Report Submission Deadline: 1402/3/3, 11:59PM.
Course Material:
This is a tentative class schedule-11/17
- Lecture 1- Overview, User/Kernel virtualization, HW management, protected sharing [PDF]
-11/24
- Lecture 2- Four Fundamental Concepts of Operating Systems [PDF]
-12/1
- Lecture 3- Process concepts, mechanisms, and representation [PDF]
-12/6
- Lecture 4- Threads, Concurrency, and Synchronization [PDF]
-12/8
-12/13
- Lecture 6- Synchronization: locks and Semaphores [PDF]
-12/15
- Lecture 7- Semaphores, Monitors and readers/writers [PDF]
-12/20
- Lecture 8- Introduction to I/O, Sockets, Networking [PDF]
-12/22
- Lecture 9- Sockets/Networking (Con't), Scheduling [PDF]
Happy New year!
-1/14
- Lecture 11- Scheduling (finished), Deadlock [PDF]
-1/19
- Lecture 12- Address Translation [PDF]
-1/21
- Lecture 13- Address Translation(Con't), Caching and TLBs [PDF]
-1/26
- Lecture 14- Caching and TLBs (Finished), Demand Paging (start) [PDF]
-1/28
- Lecture 15- Demand Paging [PDF]
-2/4
- Lecture 16- Demand Paging (Finished), General I/O, Storage Devices [PDF]
-2/9
-2/11
-2/16
- Lecture 17- Performance, Storage Devices, Queueing Theory [PDF]
-2/18
- Lecture 18- Queueing Theory (Con't), Disk Scheduling, FileSystems [PDF]
-2/23
- Lecture 19- File Systems (Con't), Distributed File Systems [PDF]
-2/25
- Lecture 20- Filesystems, Reliability, Transactions [PDF]
- Lecture 21- Filesystems (Con't), End-to-End Arguments, Distributed Decision Making [PDF]
-2/30
- Lecture 22- Distributed Decision Making (Finished),
TCP/IP Networking, RPC [PDF]
-3/1
- Lecture 23- Distributed Storage, Key Value Stores, Chord [PDF]