作業系統概論
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
I/O models: sync I/O and async I/O, interrupt mechanism
OS architecture and user interface
Shell, system calls; microkernel, virtual machine concept
thread
thread concept, threading models
CPU scheduling
CPU scheduling algorithms, multi-processor scheduling, real-time scheduling
process synchronization
critical section concept, spin locks, semaphores, mutexes, synchronization problems
deadlocks
deadlock characterization and avoidance/prevention
memory management
memory hierarchy, linking and loading, dynamic memory allocation algorithms, paging, TLB, segmentation
virtual memory
virtual memory concept, page replacement, swap management, shared memory, memory-mapped files, performance issues
file system interface
file system structure, hard/soft links, file permissions and security
file system implementation
storage system architecture, hard drive characteristics, disk scheduling algorithms, RAID disk arrays.
Solid-State Disks
SSDs. flash memory characteristics, garbage collection, wear leveling, logical-to-physical mapping
| 週次 | 主題 |
|---|---|
| 第 1 週 | Course Outline, Chapter 1: Overview : operating systems definition, Chapter 13: I/O Systems: interrupt/polling, DMA, system architecure 2026-09-09(三) |
| 第 2 週 | Chapter 2: System Structure: shell, system programs, system calls. OS structure: simple, monotholic, microkernel, VM 2026-09-16(三) |
| 第 3 週 | Chapter 3 Process Concept: Process state, context switch, fork()/exec(), shared memory, message passing, UNIX signals 2026-09-23(三) |
| 第 4 週 | Chapter 4 Multithread programming: thread concept, threading model (1-1, M-1, M-M), 2026-09-30(三) |
| 第 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 2026-10-07(三) |
| 第 6 週 | Chapter 6 Synchronization: race condition, critical section problem, TAS, spin lock, semaphore, mutex locks, monitors, classical synchronization problems 2026-10-14(三) |
| 第 7 週 | Chapter 6 Synchronization: race condition, critical section problem, TAS, spin lock, semaphore, mutex locks, monitors, classical synchronization problems 2026-10-21(三) |
| 第 8 週 | 期中考 2026-10-28(三) |
| 第 9 週 | Chapter 7 Deadlock: characterization of deadlocks, resource allocation graph, banker's algorithm, deadlock handling in real-time systems 2026-11-04(三) |
| 第 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. 2026-11-11(三) |
| 第 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. 2026-11-18(三) |
| 第 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. 2026-11-25(三) |
| 第 13 週 | Chapter 10 File-system interface: file operations, directory operations, hard links, soft links, file permissions 2026-12-02(三) |
| 第 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 2026-12-09(三) |
| 第 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. 2026-12-16(三) |
| 第 16 週 | 期末考 2026-12-23(三) |
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
