EEE335 Principles of Operating Systems

Schedule

Monday 14h40-15h30, lecture (s4424)
Tuesday 13h40-14h30, lecture (s4424)
Tuesday 14h40-16h30, lecture (s4126)
Thursday 12h00-12h50, lecture (s4424)

Work Submission

Late lab reports and assignments will receive a penalty of 25% per day including weekends and holidays. You must complete all assignments in order to take the final exam.

Virtual Machines

Labs will be completed in virtual machines (VMs) on VirtualBox. The first lab uses the EEE335_server VM while the subsequent labs use the EEE335_desktop VM. VirtualBox is a free hypervisor. It is installed on the ECE lab computers, but you can also install it on your personal computer. This will be useful to finish the labs at home after hours and to work on the assignments. You can download VirtualBox from this web page. Make sure that you download and install both the VirtualBox platform packages and the VirtualBox Oracle VM VirtualBox Extension Pack.

If you are on an ECE lab computer, you can download the lab VMs from the L drive (this is the faster method):
file:///S:/Labs/EEE335/EEE335_server.7z
file:///S:/Labs/EEE335/EEE335_desktop.7z

If you are at home, you can download the lab VMs from this website using these two links (this is the slower method):
EEE335_server.7z
EEE335_desktop.7z

Resources

Lab report template
fgetc and fputc
The Linux Command Line
Linux system calls
Linux system calls (just another reference)

WeekDateDayLecturesAssignmentLaboratory
19-13 JanMon
Tue
Thu
Intro
OS in general (§1.1, 1.3)
Lab 1 – Intro
(due 14h40 on 24 Jan)
216-20 JanMon
Tue
Thu
OS Concepts (§1.5)
System Calls (§1.6)
Structure of OS (§1.7)
Lab 1 (con’t)
323-27 JanMon
Tue
Thu
Processes (§2.1)
Threads 1 (§2.2) (pthread examples)
Threads 2 (§2.2)
Assignment 1
(due 12h00 on 16 Feb)
Lab 2 – Shell (start code)
(due 14h40 on 7 Feb)
430 Jan – 3 FebMon
Tue
Thu
Inter-process comm 1 (§2.3)
.
Inter-process comm 2 (§2.3)
Lab 2 (con’t)
56-10 FebMon
Tue
Thu

Classical Problems in IPC (§2.5)
.
Lab 3 – Kernel (start_code)
(due 14h40 on 28 Feb)
613-17 FebMon
Tue
Thu
Scheduling 1 (§2.4)
Scheduling 2 (§2.5)
.
Lab 3 (con’t)
720-24 FebMon
Tue
Thu

Reading Week
.
No lab
827 Feb – 3 MarMon
Tue
Thu
Linux Scheduling (Love, ch. 4)
Deadlocks (§6.1-3)
Deadlock Detection and Recovery (§6.4)
Assignment 2
(due 12h00 on 23 Mar)
Lab 4 – Concurrency
(part_a and part_b)
(due 14h40 on 21 Mar)
96-10 MarMon
Tue
Thu
Midterm
Deadlock Avoidance and Prevention (§6.5-7)
.
Lab 4 (con’t)
1013-17 MarMon
Tue
Thu
Basic Memory Management and Swapping (§3.1-2)
Virtual Memory 1 (§3.3)
Virtual Memory 2 (§3.3)
Vulnerable web page
(Hack me)
Lab 4 (con’t)
1120-24 MarMon
Tue
Thu
Page Replacement Algorithms 1 (§3.4)
Page Replacement Algorithms 2 (§3.4)
PRA Design Considerations (§3.5)
Lab 6 (disk image)
(report template)
(due 14h40 on 29 Mar)
1227-31 MarMon
Tue
Thu
Segmentation (§3.7)
File System (§4.1-3)
.
Lab 5 – Paging (start code)
(due 14h40 on 13 Apr)
132-7 AprMon
Tue
Thu
Principle of I/O Hardware (§5.1)
Principle of I/O Software 1 (§5.2-3)
.
Assignment 3 (linux64.7z)
(In-class exercise,
not marked)
Lab 5 (con’t)
1410-14 AprMon
Tue
Thu
Easter Monday (no class)
Principle of I/O Software 2 (§5.2-3)
Last class
1517-21 Apr.
.
.
Final Exam
Wed 19 Apr at 13h00 at the gym
Scroll to Top