- Time & Location
- Time: 4:00--6:00 PM Mon & 1:00--2:00 PM Tue
- Location: 103 S4-1
- Instructor: Shin Hong https://hongshin.github.io ๐ง [email protected] ๐ช 316 S4-1
- Teaching Assistant: Kieun Kim [email protected]
Main textbooks :
- Operating Systems: Three Easy Pieces, Version 1.00
The online version of this textbook is free and available to everyone.
Secondary textbooks
- xv6: a simple, Unix-like teaching operating system, revision 8
- How Linux Works, 3rd edition by Brian Ward
- I will revise and use some of the lectures slides that I had used in the previous classes. These lecture notes are based on Operating System Concepts, 10/E, International Student Version authored by Abraham Silbershatz, Peter B. Galvin and Greg Gagne.
Lecture Notes
- File System Implementation (Ch. 40 and Ch. 41) [pdf]
- Files and Directories (Ch. 39) [pdf]
- I/O device and Hard Disk Drive (Ch. 36 and Ch. 37) [pdf]
- Conditional Variable and Semaphore (Ch. 30) [pdf]
- Concurrent Data Structure (Ch. 29) [pdf]
- Multithreading (Ch. 26) [pdf]
- Swapping (Ch. 21 and Ch. 22) [pdf]
- Page Table (Ch. 20) [pdf]
- Paging (Ch. 18 and Ch. 19) [pdf]
- Segmentation (Ch. 16 and Ch. 17) [pdf]
- Virtual Memory (Ch. 13 and Ch. 15) [pdf]
- Proportional-share Scheduler (Ch. 9) [pdf]
- Multi-level Feedback Queue Scheduler (Ch. 8) [pdf]
- Scheduling Basics (Ch. 7) [pdf]
- Process (Ch. 4 and Ch. 6) [pdf]
- What is Operating System (Ch. 2) [pdf]
- c.f. lecture notes of the 2023 class
Assingments
- Homework 4. Multithreaded N-Queen Solver [description] [code]
- Homework 3. Multithreaded Mergesort [description] [code]
- Homework 2. Smalloc: Simple Malloc Library [description] [code]
- Homework 1. Autojudge [description] [test]
Reading Group
- peer evaluation form (TBA)
- schedule
- Week 13. Chapters 30 and 31
- Week 12. Chapter 20 and Pthread tutorials
- Week 5. IPC tutorials Signal (1/2) Signal (2/2) Pipe (1/2) Pipe (2/2)
- Week 4. Chapters 7 and 8
- Week 3. Chapters 6
- Week 2. Chapters 4 and 5
Lecture Videos In last couple of years, I have taught basics of system programming and operating system in multiple computer science courses, and fortunately, I kept some records of them in YouTube.
https://sites.google.com/handong.edu/operating-systems
Useful Links
- For studying Linux command lines
- The Linux command line by William Shotts http://linuxcommand.org/tlcl.php
- Linux command line basis @ Udacity https://www.udacity.com/course/linux-command-line-basics--ud595
- Practical Unix @ Stanford Univ. https://practicalunix.org/
- For studying Linux programming
- Linux man pages https://linux.die.net/man/
- GNU C library https://www.gnu.org/software/libc/manual/
- Advanced Linux programming http://www.makelinux.net/alp/
- The Linux Programming Interface http://man7.org/tlpi/code/online/all_files_by_chapter.html
- Unix Application and System Programming by Prof. Stewart Weiss http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/unix_lecture_notes.php
- 2023 class website: https://github.com/hongshin/OperatingSystem/tree/2023spring
- 2021 class webiste: https://github.com/hongshin/OperatingSystem/tree/2021spring
- 2020 class website: https://github.com/hongshin/OperatingSystem/tree/2020spring
- 2019 class website: https://github.com/hongshin/OperatingSystem/tree/2019spring