COSI 131a: Fall 2022
Operating Systems

Course Objectives and Outcomes



This course is an introduction to computer systems organization and operating systems. The objectives of the course are for you to learn three things:


Topics Covered

Introduction: OS organization, Modularity, Protection. Machine organization: CPU, Memory, Devices, Interconnect. Hardware abstraction layer, Assembly Language. CPU abstractions: Processes, Address spaces, Threads. I/O Concurrency. Performance metrics. Scheduling Policies. Concurrency and Synchronization: Race conditions, Critical Section, Mutual Exclusion, Locks, Monitor synchronization. Multicore synchronization performance. Deadlock. Memory management: Logical and Physical addressing, Address translation, TLB, Virtual Memory, Demand paged virtual memory, Page Replacement Policies. Persistence: Anatomy of devices, Performance metrics. File Systems and Disk Management, Naming, Data vs Metadata, Crash Consistency and Recovery, Atomicity, Careful Ordering, COW, Journaling, Transactions.

Schedule, Lecture Notes and Assignments

Please see LATTE.


Lectures: Gerstenzang 121
Tuesday and Thursday 2:20-3:40pm
Announced Recitations: Rosenstiel 118
Monday 10:00-11:30am


Prof. Liuba Shrira

Volen 258
Office Hours
Thursday 4:00-5:00pm or by appointment

Course Requirements


There will be four problem sets (i.e., written assignments) and three programming assignments. Both problem sets and programming assignments will be announced in class and posted on LATTE (Brandeis' online courseware). You will also use LATTE to submit your assignments.

You can find instructions on how to pack and submit your programming assignments on LATTE.



COSI 12b and 21a. You should have familiarity with Linux and Java. All programming assignments will be written in Java and must run on a Linux box (do not rely on the portability of Java!).



There will be three (alternatively, two) in-class quizes. There is no final exam.


Grades will be apportioned roughly as follows:

CategoryWeight (%)
Problem Sets10
Programming Assignments45
Quiz 115
Quiz 215
Quiz 315

Late Policy

Each student has 2 free late days which can be applied to any of the assignments except PA3 and PS4. The 2 days can be split between 2 assignments. You will need to tell us if you plan to use your late days.

After the 2 late days are exhausted, each additional day that an assignment is late will come with a significant grade penalty on that assignment.
Days LatePenalty
3+10% + 10% each additional day
7+No credit

A "day" is defined as the 24-hour period following the time that an assignment is due. Weekends do not count towards the number of days late.

For example, once you have exausted your 2 free late days, and an assignment is due on a Tuesday at 11:55pm, and you turn it in the following Monday before 11:55pm, it will be 4 days late (Wednesday + Thursday + Friday + Monday = 4), so the late penalty will be to subtract 35% of the possible score from your score.


There will be an introductory Tutorial/Review for each project. The tutorials are not mandatory but highly recommended. The date and time of the tutorial will be announced in advance in the the lecture and also posted on LATTE close to the tutorial date once the room is finalized. Typically, the tutorials run either in Recitation or in the evening 7-9 pm and are recorded as a back up for students who have a conflict and can not attend.

Students with Disabilities

If you are a student with a documented disability on record at Brandeis University and wish to have a reasonable accommodation made for you in this class, please see Prof. Shrira immediately.