中正大學課程大綱
課程名稱(中文): 作業系統概論 開課單位: 資訊工程學系(Department of Computer Science and Information Engineering)
課程名稱(英文) Introduction to Operating System 課程代碼 4103001_01
授課教師: 羅習五 學分數 3
必/選修 必修 開課年級 大三上
先修科目或先備能力:
計算機概論、資料結構、程式設計
課程概述:
在這門課中,會以Linux為基礎介紹重要的作業系統概念,而恐龍書中重要、具有啟發性的概念也會教授,但這門課不是以「恐龍書」為主軸。
我希望這門課能帶給同學的不是「概念」或者是「想像」,而是以具體的作業系統(Linux)說明所有重要的概念。
但這門課也不是教「如何」使用Linux,也不是Linux kernel programming的課程,我將著重於「為何」採取這樣的「設計」。並探討「可以更好的設計嗎」。
The course will cover operating systems design, analysis, implementation and usage. This will include memory management, processes management, CPU scheduling, device management, file systems, deadlock, protection, and other topics related to operating systems. The course will include an introduction to the use of the Unix system. However, this is NOT to be viewed as a course in Unix and especially not a course in how to use Unix.
學習目標:
1. describe the OS components, OS services, system calls and the standard system
2. describe the process abstraction and write code for process creation and control
3. describe threads and their differences from processes
4. describe threads and their differences from processes
5. define the critical section problem and race conditions
6. describe synchronization hardware and software
7. write code using semaphores
8. characterize deadlocks and discuss methods for handling deadlocks
9. discuss swapping, memory allocation, and virtual memory
10. describe demand paging, page replacement and frame allocation
11. describe the file system interface and virtual file system concept
12. discuss directory structures, implementation, allocation and space management
教科書:
Operating System Principles 7th ed, Abraham Silberschatz etc, Wiley, 2005
請尊重智慧財產權,不得非法影印教師指定之教科書籍

課程大綱 分配時數 核心能力 備註
單元主題 內容綱要 講授 示範 隨堂作業 其他
Overview
To give an overview of operation systems
1. Introduction
2. System Structures
9 1.11.21.32.12.22.33.13.23.34.14.2
Students are encouraged to use a Linux system.
Process Management and Coordination
To illustrate process abstraction, management, and coordination
1. Process-Concept
2. Multithreaded Programming
3. Process Scheduling
4. Synchronization
5. Deadlocks
21 1.11.21.32.12.22.33.13.23.34.14.2
There are several assignments focusing on multiprocessing and multithread programming.
Memory Management
To investigate a number of different memory management schemes from very simple to highly sophisticated
1. Memory-Management Strategies
2. Virtual-Memory Management
9 1.11.21.32.12.22.33.13.23.34.14.2
This unit emphasizes how OS allocate memory to processes when they need it and deallocate it when they are done.
Storage Management
To demonstrate how file system is implemented
1. File System
2. Implementing File Systems
3. Secondary-Storage Structure
4. I/O Systems
15 1.11.21.32.12.22.33.13.23.34.14.2
This unit emphasizes how information are structured, named, accessed, used, and implemented.

教育目標
1.專業基礎知識. 使學生擁有扎實的專業基礎知識,成為資訊及相關領域的專業人才
2.培養創造能力. 使學生具有運用所學到的各種專業知識與理論以科學的方法解決問題與創新
3.自我挑戰能力與終身學習. 讓學生習於自我挑戰、獨立思考,學會思維創新、領導及組織團隊、有效溝通、終身學習之能力
4.社會人文素養與國際視野. 讓學生具備關懷社會的情操與人文素養,並具國際觀,奉獻社會國家及人類

核心能力
1.1.具有資訊工程相關基礎知識之吸收與了解的能力(Capability to grasp foundational knowledge in computer science.)
1.2.具有運用資訊工程理論及應用知識,分析與解決相關問題的能力(Capability to use computer science theory and application knowledge to analyze and solve related problems.)
1.3.在資訊工程的許多領域中,具有至少某一項專業能力,例如:硬體、軟體、多媒體、系統、網路、理論等(Professional in at least one area, including hardware, software, multimedia, system, networking, and theory.)
2.1.具有資訊工程實作技術及使用計算機輔助工具的能力(Capability to perform computer science implementations and use computer-aided tools.)
2.2.具有設計資訊系統、元件或製程的能力(Capability to design computer systems, components, or processes.)
2.3.具有科技寫作與簡報的能力。(Capability to write and present technical materials.)
3.1.具有除了已有的應用領域之外,亦可以將自己的專業知識應用於新的領域或跨多重領域,進行研發或創新的能力。(Capability to apply one’s professional knowledge to a new application domain or across multiple different application domains.)
3.2.具有領導或參與一個團隊完成一項專案任務的能力並且具有溝通、協調與團隊合作的能力。(Capability to lead or participate in group projects, with effective communication, coordination, and teamwork.)
3.3.具有因應資訊科技快速變遷之能力,培養自我持續學習之能力。(Capability to adapt to rapidly changing computer science technology and to develop self-learning capabilities.)
4.1.具有社會責任、人文素養及奉獻精神。(The awareness of social responsibilities, humanity, and contribution.)
4.2.具有工程倫理、宏觀能力、國際觀及前瞻視野。(The awareness of engineering ethics, broad capabilities, and global and contemporary vision.)

請尊重智慧財產權,不得非法影印教師指定之教科書籍

教學要點概述:
1. 教材編選(可複選):自編簡報(ppt)教科書作者提供
2. 教學方法(可複選):講述板書講述
3. 評量工具(可複選):上課點名 0%, 隨堂測驗30.00%, 隨堂作業30.00%, 程式實作20.00%, 實習報告0.00%,
                       專案報告0%, 期中考25.00%, 期末考25.00%, 期末報告0%, 其他0%,
4. 教學資源:課程網站 教材電子檔供下載 實習網站
5. 教學相關配合事項:

課程目標與教育核心能力相關性        
請勾選:1.11.21.32.12.22.33.13.23.34.14.2
1.1 具有資訊工程相關基礎知識之吸收與了解的能力(Capability to grasp foundational knowledge in computer science.)
為何有關:
The vast majority of the lectures, homework and projects deal with the application of the knowledge from programming, data structure, and computer architecture. Mathematical evaluation about system performance is commonplace throughout the course.
達成指標:
能夠瞭解課本中的理論,尤其是與實務相關聯的部分
評量工具(可複選):
小考、期中期末考、作業;考試(達60分(含) 以上)。 等級5:學期成績可預期達到90分以上等級4:學期成績可預期達到80分以上等級3:學期成績可預期達到70分以上等級2:學期成績可預期達到60分以上等級1:學期成績可預期達到60分以下
1.2 具有運用資訊工程理論及應用知識,分析與解決相關問題的能力(Capability to use computer science theory and application knowledge to analyze and solve related problems.)
為何有關:
A typical student in this class will eventually enter industry. This course aims at transitioning students to the profession. Students will be treated somewhat like students and somewhat like junior employees of a corporation. This means that not all assignments will be as detailed as they are in lower-level classes. Students will be expected to ask questions and give their input in the assignments; expected to do independent research and resolve incomplete specifications.
達成指標:
指定一個問題,同學自行構想解決此問題的方法
評量工具(可複選):
作業 等級5:學期成績可預期達到90分以上等級4:學期成績可預期達到80分以上等級3:學期成績可預期達到70分以上等級2:學期成績可預期達到60分以上等級1:學期成績可預期達到60分以下
1.3 在資訊工程的許多領域中,具有至少某一項專業能力,例如:硬體、軟體、多媒體、系統、網路、理論等(Professional in at least one area, including hardware, software, multimedia, system, networking, and theory.)
為何有關:
This course describes the critical layer between the underlying hardware and the user applications; for which a thorough understanding is required for software design. It will enhance a student’s software programming capability that largely surpasses a non-computer science student with basic programming skills.
達成指標:
瞭解到作業系統概念與Linux或windows之間的聯結
評量工具(可複選):
觀察同學們上課表現,不列入學期末評分
2.1 具有資訊工程實作技術及使用計算機輔助工具的能力(Capability to perform computer science implementations and use computer-aided tools.)
為何有關:
Several assignments give students opportunity to implement the given specifications.
達成指標:
觀察Linux當中的核心相關資訊
評量工具(可複選):
作業(例如作業三),觀察系統資訊調整程式碼 等級5:學期成績可預期達到90分以上等級4:學期成績可預期達到80分以上等級3:學期成績可預期達到70分以上等級2:學期成績可預期達到60分以上等級1:學期成績可預期達到60分以下
2.2 具有設計資訊系統、元件或製程的能力(Capability to design computer systems, components, or processes.)
為何有關:
The course will discuss several issues about operating systems, and trade-off between several conflicting requirements. Students will learn how to design a system by settle the trade-off with given specifications, and evaluate its performance.
達成指標:
製作一個可以釋放系統記憶體的程式
評量工具(可複選):
作業 等級5:學期成績可預期達到90分以上等級4:學期成績可預期達到80分以上等級3:學期成績可預期達到70分以上等級2:學期成績可預期達到60分以上等級1:學期成績可預期達到60分以下
3.3 具有因應資訊科技快速變遷之能力,培養自我持續學習之能力。(Capability to adapt to rapidly changing computer science technology and to develop self-learning capabilities.)
為何有關:
The course will introduce and encourage students to learn the latest and state-of-art technology in related areas.
達成指標:
希望同學們可以延伸閱\讀Linux的相關資訊
評量工具(可複選):
上課時提供相關資訊,但不列入期末成績