作業系統概論
Introduction to Operating Systems
| 節 | 週三 |
|---|---|
3 10:10–11:00 | 作業系統概論 ED117 2 節連堂 |
4 11:10–12:00 |
* 根據陽明交大上課時間表所列
作業系統是介於應用程式與硬體之間的一層系統軟體,其目的是針對硬體進行細節抽象化、效率最佳化、以及安全保障。透過作業系統,程式設計員能夠專注解決應用層面的問題,使用者則能夠透過簡易的界面執行應用程式。作業系統的設計包含三大面向:處理器管理、記憶體管理、儲存管理。本課程將以教科書理論為基礎,一系列的動手實作為輔,希望同學們能夠理解引擎蓋下發生的大小事情。 Operating system is an abstraction layer between user applications and hardware, providing convenient services with the consideration of efficient hardware utilization. With operating systems, programmers can focus on problem solving without dealing with the details and quirks of hardware. This course involves three major aspects: CPU management, memory management, and storage management. The course materials include lectures and a series of hands-on programming assignments.
C programming & data structures, Algorithms, Computer organization 請同學注意:本課程搭配大量程式作業,強烈建議具備資料結構、演算法、C語言的背景與知識。 ***外系加簽同學:歡迎外系同學,但本課程負荷很重,請審慎評估投入學習的意願。手動加簽可能會被鎖定無法停修(withdraw)。
作業嚴抓抄襲。生成式工具可參考使用,但不可直接使用其輸出。若查抄襲或大量使用生成式工具之輸出,該作業一律0分計算。
Midterm, final, programming assignments, quizzes and attendence --> percentages to be announced ***Notice*** Intensive programming assignment will be involved!! Programming assignments (5~6 assignments from the following): Inter-process communication Multi-process programming Multithread programming Page replacement algorithm simulation malloc() replacement file deduplication User-space file system
- OS overview and I/O operations
- OS architecture and user interface
- thread
- CPU scheduling
- process synchronization
- deadlocks
- memory management
- virtual memory
- file system interface
- file system implementation
- Solid-State Disks
| 週次 | 主題 |
|---|---|
| 第 1 週 | Course Outline, Chapter 1: Overview : operating systems definition, Chapter 13: I/O Systems: interrupt/polling, DMA, system architecure |
| 第 2 週 | Chapter 2: System Structure: shell, system programs, system calls. OS structure: simple, monotholic, microkernel, VM |
| 第 3 週 | Chapter 3 Process Concept: Process state, context switch, fork()/exec(), shared memory, message passing, UNIX signals |
| 第 4 週 | Chapter 4 Multithread programming: thread concept, threading model (1-1, M-1, M-M), |
| 第 5 週 | Chapter 5 Process Scheduling: uni-processor scheduling algorithms: FCFS, SJF, RR, multilevel feedack queue, virtual clock. Multi-processor scheduling, real-time scheduling, case studies |
| 第 6 週 | Chapter 6 Synchronization: race condition, critical section problem, TAS, spin lock, semaphore, mutex locks, monitors, classical synchronization problems |
| 第 7 週 | Chapter 6 Synchronization: race condition, critical section problem, TAS, spin lock, semaphore, mutex locks, monitors, classical synchronization problems |
| 第 8 週 | 期中考 |
| 第 9 週 | Chapter 7 Deadlock: characterization of deadlocks, resource allocation graph, banker's algorithm, deadlock handling in real-time systems |
| 第 10 週 | Chapter 8 Memory management: memory hierarchy, dynamic linking loading, dynamic memory allocation algorithms (BF, FF, WF, buddy system), paging, TLB, page table designs: multilevel page table, inverted page table, segmentation, segmented paging, case studies. |
| 第 11 週 | Chapter 9 Virtual Memory management: demand paging, page fault, page recplacement algorithms: FIFO, LRU, LFU, clock replacement, working set, thrashing, shared memory, memory-mapped files, case studies. |
| 第 12 週 | Chapter 9 Virtual Memory management: demand paging, page fault, page recplacement algorithms: FIFO, LRU, LFU, clock replacement, working set, thrashing, shared memory, memory-mapped files, case studies. |
| 第 13 週 | Chapter 10 File-system interface: file operations, directory operations, hard links, soft links, file permissions |
| 第 14 週 | Chapter 11 File-system implementation: Linux VFS, FAT, ext4, directory implementation, allocation methods: link list, index, contiguous free-space management: bitmap, link list performance considerations, recovery, journaling, log-structured file systems |
| 第 15 週 | Chapter 12 Secondary-storage system: hard disk geometry, disk scheduling algorithms: FCFS, SJF, SCAN, anticipatory scheduling, RAID 0~6, flash-based SSDs: address mapping, garbage collection, wear leveling. |
| 第 16 週 | 期末考 |
Operating System Concepts, by Abraham Silberschatz, Greg Gagne, Peter Baer Galvin (based on the newest edition of the year) ※請修課同學尊重智慧財產權!勿隨意過度影印教科書或使用未經授權之著作權與電腦軟體等。
- 地點
- EC705
- 時間
- 每週三下午 2pm,請先來信預約
- 聯絡方式
- lpchang@cs.nycu.edu.tw