Homework

Homeworks can be used to solidify your knowledge of the material in each of the chapters. Most homeworks are based on running little simulators, which mimic some aspect of an operating system. For example, a disk scheduling simulator could be useful in understanding how different disk scheduling algorithms work. Some homeworks are just short programming exercises, allowing you to explore how real systems work.

For the simulators, the basic idea is simple: each of the simulators below let you both generate problems and obtain solutions for an infinite number of problems. Different random seeds can usually be used to generate different problems; using the -c flag computes the answers for you (presumably after you have tried to compute them yourself!).

Each simulator now has a README file that explains how to run the simulator. Previously, this material had been included in the chapters themselves, but that was making the book too long. Now, all that is left in the book are the questions you might want to answer with the simulator; the details on how to run the simulator are all in the README.

Some simulations have a short video with one of the authors introducing the basic concepts of how to use the simulator to generate homework problems. Exciting, because you have to read less! Not exciting, because you have to hear us speak.

NEW: Homework source code has been moved to GitHub here. The best way to access them is to type git clone https://github.com/remzi-arpacidusseau/ostep-homework/ and then cd into the relevant homework directory, read the README, and follow directions at the end of the relevant chapter.

Virtualization

Topic of Interest Chapter Video What To Do
Process Intro PDF Video Run process-run.py
Process API PDF Video Write some code
Direct Execution PDF Video Write some code
Scheduling Basics PDF Video Run scheduler.py
MLFQ Scheduling PDF Video Run mlfq.py
Lottery Scheduling PDF Video Run lottery.py
Multiprocessor Scheduling PDF Video Run multi.py
VM Intro PDF Video Write some code
VM API PDF Video Write some code
Relocation PDF Video Run relocation.py
Segmentation PDF Video Run segmentation.py
Free Space PDF Video Run freespace.py
TLBs PDF Video Write some code
Multi-level Paging PDF Video Run paging-multilevel-translate.py
Paging Mechanism PDF Video Run mem.c
Paging Policy PDF Video Run paging-policy.py

Concurrency

Topic of Interest Chapter Video What To Do
Threads (Intro) PDF Video Run x86.py
Threads (API) PDF Video Run main-*.c
Threads (Locks) PDF Video Run x86.py
Threads (Locks Usage) PDF Video Write some code
Threads (CVs) PDF Video Run main-*.c
Threads (Semaphores) PDF Video Write some code
Threads (Bugs) PDF Video Run vector-*.c
Threads (Events) PDF Video Write some code

Persistence

Topic of Interest Chapter Video What To Do
Disks PDF Video Run disk.py
RAID PDF Video Run raid.py
FS Intro PDF Video Write some code
FS Implement PDF Video Run vsfs.py
FFS PDF Video Run ffs.py
Journaling PDF Video Run fsck.py
LFS PDF Video Run lfs.py
SSDs PDF Video Run ssd.py
Integrity PDF Video Run checksum.py and Write some code
Distributed Intro PDF Video Write some code
NFS PDF Video Download this and Write some analysis code
AFS PDF Video Run afs.py

Suggestions?

Suggestions for homework? Please send them to us. Thanks!

AltStyle によって変換されたページ (->オリジナル) /