- Instructor: Youjip Won, ywon@kaist.ac.kr
- TA: Dohyun Kim (ehgus421210@kaist.ac.kr), Minsu Jang (nobleminsu@gmail.com), SeungWon Yoo (swyoo98@kaist.ac.kr)
- Lecture : Mon 13:00 – 14:30, N1-112, Wed 13:00 – 14:30, N1-112
- TA Hour: TBA
- Office Hour: TBA
- course webpage: https://piazza.com/class/kywaer13kxsbf?cid=1
Syllabus
Class Overview
This course will deal with the design and implementation of the Operating System. Operating System is one of the most complex softwares. It is a software that manages hardware. It hides out the details of the hardware to the application. It allows the application to use the underlying hardware as if the hardware is exclusively allocated to it and sometimes it allows the multiple applications to share a certain object or hardware resource without any conflict. It also protects the system against unexpected system failure or against malicious attacks. Operating System is complex by nature. That is primarily because despite that it is a software, it needs to manage entirely different breed, the hardware. Operating System consists of several key concepts: process management, memory management, file system management and I/O subsystem. In this class, we will examine the details of each topic. Student will get exposed to implementation aspect of individual concepts. This course will be programming intensive.
This course will consists of lecture on Monday and lab on Wednesday. On Monday, we will have lectures that deal with the contents in the textbook. On Wednesday, we will have lab sessions. On Wednesday’s class, students are expected to preview the materials provided (slide sets and video recordings).
Project Overview and Handout
We will use PintOS in the course project. There will be four projects in total. Two before mid term and two after mid term. Please do start early. Pintos is educational OS developed by the people in Stanford U. It is a good platform to implement the basic concepts of the operating systems. https://web.stanford.edu/class/cs140/projects/pintos/pintos.html. For the project, we need to submit the report and the link of your github (or bitbucket) to TA. The TA’s will clone your code and will run it if it runs well. For the report, please follow the guideline of 2.2.5 https://oslab.kaist.ac.kr/ee415-spring-2022-proj1/
Course will be lead via piazza (https://piazza.com/class/kywaer13kxsbf?cid=1).
We will use this site as on-line discussion, Q/A and uploading all course materials. Please sign-up.
- Project 1 (2/28 ~ 3/23) : Threads (Handout)
- Project 2 (3/23 ~ 4/13) : User Program (Handout)
- Project 3 (4/13 ~ 5/11) : Virtual Memory (Handout)
- Project 4 (5/11 ~ 6/8) : File System (Handout)
- Supplementary Material : Pintos Introduction
Quizzes
- 1st quiz : ctags, cscope, GDB (3/30) – 15 minutes (Slide , ctags-Video, cscope-Video, GDB-Video)
Exams
- Sample Midterm Problem (2019_Spring, 2019_Fall, 2020_Spring)
Policies
- There will be two exams (mid-term and final). Both of them are equally weighted.
- There will be four course projects. The course projects can be done in group of maximum two. Communication skill is one of the most important skills for engineers. In practice, people work as a team with few exceptions. Sometimes, you need to listen to the others and sometimes you have to convince the others. When you turn in the code, you turn in the code individually and separately. The codes between the partners can be precisely identical or can be slightly different. Either way, you are required to turn in your own code.
- Please do not post your code for the course project publicly. That will deprive other people from the opportunity to work on his own.
Textbooks and resources
-
- Primary Textbook: “Operating Systems: Three Easy Pieces v1.0”, Remzi Arpaci-Duseau and Andrea C. Arpaci-Dusseau (http://ostep.org)
- Korean version: “운영체제: 아주 쉬운 세가지 이야기”, 역자: 원유집외 2명 (홍릉과학출판사)
- Youtube link for EE415 : https://www.youtube.com/channel/UCg9wr-9UW3XrEddmZ73LIww
- Slide sets for lecture(OSTEP books): https://oslab.kaist.ac.kr/OSTEPSlides/
- Slide sets for Pintos Projects: https://oslab.kaist.ac.kr/pintosslides/
- Slide sets for gdb, ctags and cscope (including video recording): https://oslab.kaist.ac.kr/pintosslides/
- Supplements:
- Beginning Linux Programming 4th Ed., Neil Matthew and Richard Stones, July, 2008
- Linux Kernel Development, 3rd Ed., Robert Love
- Prerequisite: C/C++, Introduction to Data Structures
Grading
Project & Homework(70%)
– each project will be graded with 100 scale. (four projects sums up to 400 mark).
– each homework will be graded with 20 point scale. ( The total number of homeworks are not determined yet. If there are four homeworks, the total mark for homework will be 80.)
Total mark for project and homework for the above example will be 480. That will be scaled to 70% of the entire grade.
MidTerm (15%)
Final (15%)
Schedule