EE415: Operating Systems and System Programming for Electrical Engineering



Course Info

Instructor: Prof. Sung-Ju Lee (profsj@kaist.ac.kr), N1 #306
TAs: Sujin Han, Seungjoo Lee, Taeckyung Lee, Sukjoon Oh, Subin Park, Hyungjun Yoon
When: Mon/Wed 14:30-16:00
Where: N1 #113
Class website: https://nmsl.kaist.ac.kr/courses/ee415
Class email: ee415@nmsl.kaist.ac.kr
Campuswire page: https://campuswire.com/p/G194A3C8B

IMPORTANT NOTES

  • The class will be in-person by default, with hybrid only if a student cannot participate due to COVID-related issues.
  • The first class on the following Monday(8/28) will not be in-person. Instead, the link to the recorded video will be posted on the Campuswire website. Face-to-face classes will begin from Wednesday(8/30) and will be conducted in room N1 113.


  • 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).

    Prerequisite

    • Programming Structure for Electrical Engineering (EE209 or equivalent); basic understanding of programming
    • Not required, but EE312 (Computer Architecture) would help
    • Willing to write serious code
    • Work ethic

    Grading Policy

    Quizzes & Final 30% There is a short quiz at the beginning of each Monday class.
  • Starting Sep 4th
  • Bring your computer to class
  • The link to the quiz will be posted on class website at 2:30PM
  • The questions are from the content of the class that day
  • Please study for the preparation for the quiz and the lecture
  • Projects 60% Pintos
  • https://web.stanford.edu/class/cs140/projects/pintos/pintos.html
  • https://web.stanford.edu/class/cs140/projects/pintos/pintos.pdf
  • Three projects
  • Contribution 10% Actively participate in discussions. Both during class and on CampusWire. Ask questions, tells us your thoughts, share your experience, etc.

    Announcements

    • 8/28 Welcome to EE415! If you're ready to take this course, please do the following: Join our Campuswire group (password: 9309) for class discussions.
    • 8/28 The class will be in-person by default, with Zoom live streaming only if COVID-related issues arise. Please follow instructions below:
      1) You SHOULD attend the class OFFLINE (N1 #113) unless we notice that the class will go online.
      2) The first class on the following Monday(8/28) will not be in-person. Instead, the link to the recorded video will be posted on the Campuswire website.
      3) Face-to-face classes will begin from Wednesday(8/30) and will be conducted in room N1 113.

    Schedule

    Week Date Topic Quiz Submission
    1 8/28 Mon Logistics, Intro, Processes [slides] [video]
    8/30 Wed Lab: Introduction, Team formation [materials] [video]
    Project #0 (team formation) out, due by 09/05 Submit
    2 9/4 Mon Limited Direct Execution, MLFQ [slides] [video] link
    9/5 Tue Project #0 (team formation) deadline
    9/6 Wed Lab: Alarm Clocks, Priority Scheduling [materials] [video]
    Project #1 out, due by 09/26 Submit
    3 9/11 Mon Scheduling, Proportion Share, Address Spaces [slides] [video] link
    9/13 Wed Lab: Advanced Scheduler [materials] [video]
    4 9/18 Mon Memory API, Address Translation, Segmentation [slides] [video] link
    9/20 Wed Free-space Management, Paging [slides]
    5 9/25 Mon Paging: Faster Translations, Smaller Tables, Mechanisms
    [slides (ppt lecture notes)] [video]
    link
    9/26 Tue Project #1 deadline
    9/27 Wed Lab: Argument Passing [materials] [video] [design document]
    Project #2 out, due by 10/31 Submit
    6 10/2 Mon Holiday; no class link
    10/4 Wed Lab: System call [materials] [video]
    7 10/9 Mon Holiday; no class
    10/11 Wed Lab: Denying Writing to Executable Files [materials] [video]
    8 10/16 Mon Midterm week
    10/18 Wed Midterm week
    9 10/23 Mon Swapping: Policies, Concurrency, Thread API [slides] [video] link
    10/25 Wed No lab
    10 10/30 Mon Locks, Lock-based Concurrent Data Structures, Condition Variables [slides] [video] link
    10/31 Tue Project #2 deadline
    11/1 Wed Lab: Paging [materials] [video]
    Project #3 out, due by 11/28 Submit
    11 11/6 Mon Semaphores, Common Concurrency Problems [slides] [video] link
    11/8 Wed Lab: Swapping, Growing Stack, Mmap, Accessing User Memory [materials] [video]
    12 11/13 Mon I/O Devices, Hard Disk Drives, RAID [slides] [video] link
    11/15 Wed No lab
    13 11/20 Mon Files and Directories, File System Implementations [slides] [video] link
    11/22 Wed No lab
    14 11/27 Mon Locality and The Fast File System, and Crash Recovery [slides] [video] link
    11/29 Wed Undergrad admissions interview; no class
    Project #3 deadline
    15 12/4 Mon Log-structured File Systems, Flash-based SSDs [slides] link
    12/6 Wed No lab
    16 12/11 Mon Finals week
    12/13 Wed Finals week

    Class Policy

    Students are encouraged to interact with classmates, as well as the professor and the TAs, to discuss course material and assignment problems. In all your writing, including homework, essays, reports, and exams, use your own words, and acknowledge the source if you use someone else’s slides, quotes, figures, text, etc. Plagiarism and cheating are serious offenses and will be punished by failure on exams/assignments/course, and suspension or expulsion from the University.