Class Time : 16:30 – 17:45 (Tue.)
15:00 – 16:15 (Thu.)
Room Number : #26108
Official Language : English
Instructor : Prof. Euiseong Seo
Course Description : This course covers topics on general operating system concepts such as process management, memory management, I/O systems, and file systems, with the in-depth study on the latest Linux operating system. In addition, students are required to perform several hands-on projects with the Pintos instructional OS.
Textbook : Avi Silberschatz, Peter B. Galvin, and Greg Gagne, Operating System Concepts, 10th Edition, John Wiley & Sons, Inc. 2018.
- Andrew S. Tanenbaum, Modern Operating Systems, 4th Edition, Prentice-Hall, Inc. 2014.
- Daniel P. Bovet and Marco Cesati, Understanding the Linux Kernel, Third Edition, O’Reilly & Associates, Inc. 2008.
- Mark E. Russinovich, David A. Solomon, and Alex Ionescu, Windows Internals, 7th Edition, Microsoft Press, 2017.
- Richard McDougall and Jim Mauro, Solaris Internals, Second Edition, Sun Microsystems, Inc. 2007.
- Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition, Pearson Education, Inc., 2011.
Grading : Class Attendance 10%, Projects 45% (Project 0 5%, Project 1 10%, Project 2 15%, Project 3 15%, Project 4 10%, Project 5 15%, Project 6 15%, Project 7 15%), Exams 45%
TA : Jongseok Kim (firstname.lastname@example.org), Dongkyu Choi (email@example.com)
|Introduction to operating systems||
|Week2||System structure||Chap. 2|
|Threads (cont’d)||Chap. 4|
|Week4||No class due to Conference|
|Week5||Synchronization (cont’d)||Chap. 6|
|Synchronization (cont’d)||Chap. 6|
|Week6||Synchronization (cont’d)||Chap. 6|
|CPU scheduling||Chap. 4|
|Week7||CPU scheduling (cont’d)||Chap. 4|
|CPU scheduling (cont’d)||Chap. 4|
|Week8||Midterm exam week|
|Midterm exam week|
|Memory management||Chap. 8|
|Paging (cont’d)||Chap. 9|
|Week11||Address translation||Chap. 9|
|Address translation (cont’d)||Chap. 9|
|Week12||Page replacement||Chap. 9|
|Page replacement (cont’d)||Chap. 9|
|Week13||I/O & Storage||Chap. 13|
|Storage System||Chap. 12|
|Week14||Solid state storage systems|
|Solid state storage systems (cont’d)|
|Week15||File system internals||Chap. 10|
|File system internals (cont’d)||Chap. 11|
|Week16||Advanced topics||Chap. 14, 15|
- We are going to proceed with the project description class in Korean, so attendance is not an obligation. Since all materials are in English, there will be no big problems to understand projects. If you have a problem, please send an e-mail to TA at any time.
- All lab classes are uploaded at Icampus.
- Project schedule [last updated 04-04 16:00]
Green highlight : lab class, Yellow : unavailable, Red : exam period
We will use the “xv6” instructional operating system. To successfully complete these projects, you must have excellent C programming skills and be familiar with the Linux platform.
- Due: 3/20 (Wed), 11:59 PM
- Lab class: 3/13 (Wed), 8 PM, #85712
- reference: Vim & ctags & cscope
- Project0 Score [updated 04-09 11:30]
- If you have any questions about score, mail to firstname.lastname@example.org
- Due: 3/27 (Wed), 11:59 PM
- Lab class: 3/20 (Wed), 8 PM, #85702
- Please contact us by e-mail. We are not in office 3/23~3/31
- You dont’ have to implement user level program. Just we will check system call function with our user-level code.
- Also, you don’t have to consider fork() function in this assignment. Default Process’s nice value is just 20. (Even if it was forked)
- Project1 Score [last updated 04-03 08:30]
- If you have any questions about score, mail to email@example.com
- Project1 test file
- Due: 4/10 (Wed), 11:59 PM
- Lab class: 4/3 (Wed), 8 PM, #85712
- test file
- To use the test file, you must remove -Werror in the CFLAGS line at Makefile.
- I will give a scores using only the files attached below (of course with a document). It will be helpful to refer it before starting project 3
- Project2 test file
- Due: 5/1 (Wed), 11:59PM
- Lab class: 4/17 (Wed), 8 PM, #85777
- When double locking the mutex in mutex_lock function, return -3.
- When argint() fails in sysproc.c, return -1.
- Due: 5/8 (Wed), 11:59PM
- Lab class: 5/1 (Wed), 8 PM, #85712
- Due: 5/15 (Wed), 11:59PM
- Lab class: 5/8 (Wed), 8 PM, #85712
- Due: 5/29 (Wed), 11:59PM
- Lab class: 5/22 (Wed), 8 PM, #85712
- Due: 6/12 (Wed), 11:59PM
- Lab class: 6/5 (Wed), 8 PM, #85712
- MIT xv6 homepage
- Tools for xv6
- Xv6 repository (local copy): git clone https://joonpc.skku.edu/gitlab/jinkyu/xv6-sse-local.git
- Xv6 commentary (rev11) (local copy)
- Xv6 sources as a printed booklet (rev11) (local copy)
- MIT 6.828 Operating System Engineering course homepage
- Debugging using GDB
- Note that you need to use “make qemu-nox-gdb” instead of “make qemu-gdb”
- Add “add-auto-load-safe-path /PATH/TO/xv6-public/.gdbinit” in your configuration file (/home/$ID/.gdbinit)
IA-32 & Intel 64 Architectures
- Installing and running Linux: Linux is easy.pdf (by SKKULUG, Korean, 2010)
- Git: Git –fast-version-control
- gdb: The GNU debugger
- make: The GNU make utility
- tar: The tar archiving utility
- ctags: Generate tag files for source code
- CVS: Concurrent Versions System
- subversion: Apache Subversion (online book)