2 項進行中

115-1 選課時程

進行中

  • 初選第一階段 6/15 – 6/18
  • 初選第二階段 6/22 – 6/25
  • 校際選修 進行中 8/24 – 9/18
  • 初選第三階段 8/31 – 9/3
  • 開學後加退選 進行中 9/7 – 9/21
  • 逾期加退選 9/21 – 9/24
選課資源

加入行事曆

選擇訂閱 Google Calendar,或下載通用的 ICS 檔案。

使用 Google Calendar 時,Google 會收到這份課表的公開連結。

作業系統設計與實作

Operating System Design and Implementation (OSDI)

學期
106-2
學分
0 學分
當期課號
5235
永久課號
IOC5108
開課單位
資訊科學與工程研究所
授課教師
曹孝櫟
校區
光復
類別
選修
上課時間表
週二
週四
週五
3
10:10–11:00
作業系統設計與實作
EC115(光復)
2 節連堂
4
11:10–12:00
7
15:30–16:20
作業系統設計與實作
EC115(光復)
A
18:30–19:20
作業系統設計與實作
EC115(光復)
3 節連堂
B
19:30–20:20
C
20:30–21:20

* 根據陽明交大上課時間表所列

概述

本課程以Linux 作業系統為基礎來講授作業系統內部的設計與實作方法。課程將透過一系列的實驗模組,來對Linux的行程管理,記憶體管理,檔案系統,輸出入系統進行深入的剖析以及修改。修課學生預計除了累積實際動手修改作業系統的經驗,亦可培養大型程式專案規劃的概念以及大量程式原始碼追蹤(trace)的能力。

先修科目

『計算機組織概論』與『作業系統概論』

備註

無備註

教學方式

教師未提供此項資料

評分方式

1. 學期作業、考試、評量 每週上課時數為三小時,並搭配三小時的實驗課,故每週共六小時。實驗項目數量分配為:基礎知識與核心架構(3)、行程與記憶體(3)、檔案系統(3)、網路通訊(3)。實驗課有助教協助,做完實驗即可得分。除實驗之外,有一次期中考與一次期末口頭報告。 成績計算方式為: 十個實驗, 一個實驗8%=80% 期中考(10%) 期末報告(10%)

課程大綱
  • Course overview

    Overview of OSDI course and lab/lecture arrangement

    講授:
    1

    備註:曹孝櫟

  • Getting started with kernel and kernel debugging

    Linux basics, versions, development/debugging environment

    講授:
    2
    實作:
    3

    備註:曹孝櫟\r\nLab 1. makefile/patch/kernel debugger/version control/bug tracking/... (2/26)

  • Hardware basics

    Understand the hardware basics related to OSDI

    講授:
    3

    備註:曹孝櫟

  • Booting

    BIOS and kernel booting

    講授:
    3
    實作:
    3

    備註:曹孝櫟\r\nLab 2. kernel booting (3/12)

  • OSDI basics

    Overview of OS implementation (process and thread, kernel synchronization, memory management)

    講授:
    3

    備註:曹孝櫟

  • OSDI basics

    Overview of OS implementation (device driver, interrupt handling, top half and bottom half driver design)

    講授:
    3
    實作:
    3

    備註:曹孝櫟\r\nLab 3. Minimal Linux (Linux 0.01) (3/19)

  • Process basics

    Overview of process design in OS

    講授:
    2
    實作:
    3

    備註:曹孝櫟\r\nLab 4. Task structure/signal to process (4/2)

  • Device driver, Network device drivers

    講授:
    6

    備註:曹孝櫟

  • IP-layer protocol stack, TCP/UDP-layer protocol stack, Socket layer protocol stack

    講授:
    3
    實作:
    3

    備註:曹孝櫟\r\nLab 5. Socket (5/28)

  • Midterm exam

    講授:
    1

    備註:曹孝櫟

  • Process Management

    Process management design in OS

    講授:
    9

    備註:曹孝櫟

  • Memory management

    Memory management design in OS

    講授:
    5
    實作:
    6

    備註:曹孝櫟\r\nLab 6. Moving tasks between cores (4/9)\r\nLab 7. Memory (page frame) (4/16)

  • Block device driver

    講授:
    3
    實作:
    3

    備註:曹孝櫟\r\nLab 8. Block device driver (4/30)

  • I/O scheduler

    講授:
    3
    實作:
    3

    備註:曹孝櫟\r\nLab 9. Disk scheduler (5/7)

  • File system

    講授:
    6
    實作:
    3

    備註:曹孝櫟\r\nLab 10. File system driver (5/14)

  • Final Exam

    Final exam

    講授:
    1

    備註:曹孝櫟

週次計畫
週次主題
第 1 週

Overview of OSDI course and lab/lecture arrangement

2/18 2/19 2/20
教科書

以下為參考書目,非教科書: OSDI references Andrew S Tanenbaum, and Albert S Woodhull, "Operating Systems Design and Implementation (3rd Edition)" Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman, "The Design and Implementation of the 4.4 BSD Operating System" Linux Kernel Robert Love, "Linux Kernel Development (3rd Edition)" Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, and Dirk Verworner, "Linux Kernel Internals (2nd Edition)" Daniel P. Bovet, and Marco Cesati, "Understanding the Linux Kernel, Third Edition" Network subsystem Klaus Wehrle, Frank Pahlke, Hartmut Ritter, Daniel Muller, and Marc Bechler, "Linux Networking Architecture" Christian Benvenuti, "Understanding Linux Network Internals" Device Drivers Sreekrishnan Venkateswaran, "Essential Linux Device Drivers" Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, "Linux Device Drivers, 3rd Edition"

Office Hours
地點
EC426
時間
2EF, 5AB
聯絡方式
sltsao@cs.nctu.edu.tw 03-5712121 ext. 54717