Introduction to Operating Systems

Schedule

  • Class hours: 15:30~16:45 (화, 목)
  • Location: 301동 104호
  • Office hours: 14:30~15:30 (목, 133동 504호)

Resources

Teaching Assistant

  • Name: Kyusik Moon
  • E-mail: os_ta@redwood.snu.ac.kr
  • Tel.: 02-880-8370
  • Office location: 133동 507호

Syllabus

  • Objectives
    본 강의에서는 최신 운영체제를 이해하고 이를 활용할 수 있도록 운영체제의 내부 구조를 학습하고 운영체제를 구성하는데 필요한 이론과 실제를 공부하는데 있다. 이를 위해 멀티태스킹과 CPU 스케쥴러, 메모리 관리 기법, 입출력 장치 관리자와 파일 시스템 등의 기술적 사항을 학습한다. 학습한 내용을 숙지 할 수 있도록 4단계로 나뉘어진 운영체제 개발 프로젝트를 수행한다.

    ※ 코로나19 감염증의 확산에 대비하여 구성원의 안전을 위해 3월 수업은 비대면 강의로 진행합니다. (단, 중간/기말 고사는 대면으로 진행)
    – Zoom url은 eTL에 공지되어 있습니다.
    – 사회적 거리두기 단계 등 정부의 방역 조치 준수 및 학내 상황 등에 따라 대면/비대면 수업 등 수업 운영 방식은 조정 될 수 있습니다.

  • Textbook: “Operating System Concepts (10th Edition)” by Abraham Siberschatz, Peter Baer Galvin and Greg Gagne
  • Prerequisites: C 프로그래밍, 자료구조와 알고리즘, 컴퓨터의 구조
  • Weekly schedule
    차수 수업내용
    1주 운영체제의 정의, 운영체제의 발전 과정, 운영체제의 구조
    2주 컴퓨터 하드웨어 구조와 하드웨어 프로그래밍
    3주 프로세스와 멀티태스킹
    4주 프로세스 컨텍스트와 컨텍스트 스위칭
    [Project 1: EOS 소스 코드 분석과 C 서브루틴 코드 분석]
    5주 프로세스 동기화, 프로세스간 통신, 데드락의 정의와 회피
    6주 프로세스 동기화, 프로세스간 통신, 데드락의 정의와 회피
    [Project 2: EOS에서 멀티태스킹과 문맥교환의 구현]
    7주 프로세스 스케쥴링과 실시간 스케쥴링
    8주 동적 메모리 관리
    [중간고사] 4/21(목)
    9주 세그멘테이션과 페이징
    [Project 3: EOS에서 주기 태스크와 우선순위 스케줄링의 구현]
    10주 페이징 메커니즘과 페이징 정책들
    11주 페이징 메커니즘과 페이징 정책들
    12주 I/O 서브시스템과 디바이스 드라이버
    13주 I/O 서브시스템과 디바이스 드라이버
    [Project 4: EOS에서 세마포와 메시지큐의 구현]
    14주 디스크 스케쥴링과 파일 시스템
    15주 파일 시스템
    [기말고사] 6/16(목)
  • Grading
    Homework 10%
    Midterm Exam 35%
    Final Exam 35%
    Project 20%