540 likes | 2.27k Views
Operating System Concepts 作業系統原理. 著者 ABRAHAM SILBERSCHATZ PETER BAER GALVIN GREG GAGNE. 第一篇 總論 (Overview). 作業系統 (Operating system) 是介於使用者與電腦硬體之間的管理軟體。 目的在於提供使用者 — 便利有效的執行程式環境。. CHAPTER 1 概說 (Introduction). 1.1 什麼是作業系統 1.2 電腦系統組織 1.3 電腦系統架構 1.4 電腦系統結構 1.5 作業系統的操作
E N D
Operating System Concepts作業系統原理 著者 ABRAHAM SILBERSCHATZ PETER BAER GALVIN GREG GAGNE
第一篇 總論 (Overview) • 作業系統 (Operating system) 是介於使用者與電腦硬體之間的管理軟體。 • 目的在於提供使用者—便利有效的執行程式環境。
CHAPTER 1 概說 (Introduction) • 1.1 什麼是作業系統 • 1.2 電腦系統組織 • 1.3 電腦系統架構 • 1.4 電腦系統結構 • 1.5 作業系統的操作 • 1.6 行程管理 • 1.7 主記憶體管理 • 1.8 儲存體管理 • 1.9 保護與保密 • 1.10 特殊用途系統 • 1.11 計算環境
1.1 什麼是作業系統? • 一個電腦系統分成四個單元:硬體(Hardware)、作業系統(Operating System)、應用程式(Application Program)、使用者(User)。 CPU (Central Processing Unit)、 記憶體(Memory)、輸入/輸出裝置(I/O)
1.1.1 使用者觀點 • 資源(軟硬體)容易使用(ease of use)、有效分享發揮資源(resource utilization) • 1.1.2 系統觀點 • 資源分配者(resource allocator) ; 控制程式(control program) CPU時間、記憶體空間、檔案儲存空間、 I/O裝置 • 1.1.3 定義作業系統 • 一個在電腦內部隨時都在執行的程式(核心 Kernel)(系統程式 & AP)
1.2 電腦系統組織 • 1.2.1 電腦系統操作(起動Startup) • 近代電腦系統包含單一或多個CPU和一些裝置控制器。經由公用Bus(匯流排)存取共用記憶體。
1.2 電腦系統組織 • 1.2.1 電腦系統操作(起動Startup) • 1.靴帶式程式(bootstrap program)存於唯讀記憶體(ROM: Read-only Memory)或可消除式唯讀記憶體(EEPROM: Electrically Erasable Programmable ROM)[通常稱為韌體firmware] 。2.將作業系統核心載入記憶體。3.執行第一個行程(init)。4.協調事件之中斷(interrupt),硬體可以在任何時間藉由送給 CPU 一個信號觸發中斷。軟體可以藉由執行一項特殊的系統呼叫(system call,也叫做 monitor call) 觸發中斷。 Process: 行程、處理
1.2.2 儲存體結構 • 任何要被執行的程式都必須儲存在可複寫記憶體,稱之為主記憶體 [又叫做隨機存取記憶體 ( random-access memory,或 RAM )] 。以動態隨機存取記憶體(DRAM: Dynamic RAM)的半導體技術製作而成。 • load 指令從主記憶體搬移一個字元組(Byte)到 CPU 內部的暫存器,而 store 指令則是搬移暫存器的內容到主記憶體。 • 大部份電腦系統提供輔助記憶體 ( secondary storage) 做為主記憶體的延伸。輔助記憶體的主要要求是能夠永久保存大量的資料。 • 不同儲存系統間的主要差別是︰速度、價格、大小和揮發性(Volatile)。揮發性:Power Off Data Lose • 裝置快取記憶體(Cache)可以改善因為兩種元件之間的存取時間或傳輸速率差別所造成的性能差別。 雲端系統是否需要為主記憶體或輔助記憶體?
速度 價格 • 1.2.2 儲存體結構 慢 低
Device Driver: • 1.2.3 I/O 結構 (用在處理 小量資料) (用在處理大量資料) DMA: Direct Memory Access (Device與記憶體直接存取) Device SCSI: Small Computer Systems Interface
1.3 電腦系統架構 • 1.3.1 單一處理器系統 • 僅有一個一般處理器執行使用者的處理行程之系統。 • 1.3.2 多處理器系統(Multiprocessor System) – 平行系統(parallel) • 擁有一個以上的處理器,共同使用匯流排、時脈、記憶體、周邊裝置。 • 使用多處理器系統有三個優點:1. 增加產量 2.經濟度量(共用周邊設備) 3. 增加可信度(容錯性: Fault Tolerant)。 • 目前有兩種類別:1. 非對稱多元處理(asymmetric multiprocessing)-主處理器會指定每個處理器不同之任務,有主從關係 2.對稱多元處理(symmetric multiprocessing, SMP)-每個處理器執行相同之任務,沒有主從關係。
A Dual-Core Design (雙核心設計) 單一晶片 雙核心設計比二元處理器還有效率(內部通信)及省電。
1.3.3 集成式系統(Clustered System) • 集成式電腦分享儲存裝置,經由區域網路, 無線寬頻網路彼此相連,可提供高的取得率(high-availability) 。 • 非對稱集成系統(asymmetric clustering)- 一台機器處於熱待機狀態(hot-standby mode)為一監督工作的伺服器, 其他機器則執行應用程式。 • 對稱集成系統(symmetric clustering)- 所有機器均執行應用程式並互相監督。
1.4 作業系統架構 • 作業系統提供程式被執行的環境,工作排班的最重要觀念就是多元程式規劃的能力。多元程式規劃 (multiprogramming)的目的就是讓CPU始終有工作做,以增加CPU的使用率。 • 作業系統在同一時間存放數項工作在記憶體中,這一組工作是工作池(job pool)中所有工作的部份集合,作業系統把工作池中的一項工作挑出來並且開始執行。 • Time Sharing(分時)或Multitasking(多工)是常用的多元程式規劃技術。
1.5 作業系統的操作 • 現代作業系統是中斷驅動式 (interrupt driven),如果沒有行程要執行,沒有I/O裝置要服務和沒有使用者需要回應,則作業系統將安靜進入等待事件發生;事件通常都是由於中斷或陷阱(Trap)的發生(如被0除)而被通知。 • 因為作業系統和使用者共用電腦系統中硬體和軟體的資源,在共用的情況下,一個程式中的錯誤(如Infinite Loop)可能會使許多工作受到不利影響。 • 一個設計正確的作業系統必須保證一個不正確的 (或蓄意破壞的)程式不會造成其他程式不正確的執行。
1.5.1 雙模式運作 • 為了確保作業系統正常操作,一定要能夠區別作業系統程式碼和使用者定義程式碼的操作。 • 使用者模式 (user mode)和核心模式 (kernel mode或 supervisor mode,也稱為系統模式,system mode或特權模式,privileged mode)。 • 在系統啟動時,硬體必須由核心模式開始。然後載入作業系統,接者在使用者模式開始執行使用者應用程式。每當一個插斷或中斷(Interrupt)發生時,硬體從使用者模式轉換到核心模式,作業系統得到電腦的控制權時,電腦就是在核心模式中。使用者程式再將控制權交給一個使用者程式之前, 轉換到使用者模式。 Mode bit provided by hardware
1.5.2 計時器(Timer) • 必須保證作業系統維持控制;必須防止使用者程式陷入一個無窮迴路之中,而永遠不把控制權交還給作業系統。為達成此目的,可以使用一個計時器(timer) • 計時器設定在某段時間之後中斷電腦。其週期可以是固定的 (例如,1/60秒)或可變的(例如,從1毫秒到1秒)。 • 用計時器來防止使用者程式執行太久。簡單的技巧是用程式允許的時間量設定計數器之初值。例如,具有 7分鐘時間限制的程式設定計數器初值為420。每過 1秒鐘,計時器就會發出中斷且計數器值減 1。只要計數器值為正,控制權仍回到使用者程式。當計數器值擴成負值時,作業系統因為程式超過其時間限制而終止執行。
1.6 行程管理 • 行程(process)可以視為執行中的程式,行程需要某些特定的資源,包括 CPU時間、記憶體、檔案和I/O裝置等,以完成其工作。這些資源在行程產生或執行時就會配置給它,除了實體資源和邏輯資源的配置之外,有些起始資料 (輸入)也可能會隨著行程的產生而產生。 • 行程管理方面,作業系統必須提供下列的功能: • 在CPU上的行程及執行緒排班 • 使用者和系統行程的產生與刪除 • 行程的暫停和恢復 • 提供行程同步機制(process synchronization) • 提供行程通信機制(process communication)
1.7 主記憶體管理 • 主記憶體是現代電腦系統運作的中心,程式執行時,它必須映對到絕對位址並且載入主記憶體之中。 • 程式執行時,藉由產生程式指令和資料的絕對位址,才能從記憶體存取它們。最後,在程式結束時,它釋放出記憶體為可用狀態,以及載入下一個程式並且執行它。 • 記憶體管理方面,作業系統必須具有下列的功能: • 記錄正在使用的記憶體部份以及是誰在使用 • 在記憶體空間可用時決定載入的行程 • 在需要時配置和回收記憶體空間
1.8 儲存體管理(Storage Management) • 作業系統提供資訊儲存一個一致性的邏輯觀點,目的是為了讓使用者能更方便的使用電腦系統。 • 作業系統摘取儲存裝置的實體特性並將之定義成邏輯儲存單元,也就是檔案。 1.8.1 檔案系統管理 • 檔案的建立與刪除 • 檔案的目錄建立與刪除 • 處理(操作)檔案和目錄 • 檔案與輔助記憶體的對映(Mapping) • 穩定(非揮發性non-volatile)儲存裝置上的檔案備份 1.8.2 大量儲存體管理(Mass-Storage Management) • 磁碟管理 • 可用空間管理(Free-space management) • 記憶體配置(Storage allocation) • 磁碟排班(Disk scheduling)
Movement between levels of storage hierarchy can be explicit or implicit 1.8.3 快取記憶體(caching) 作業系統 硬體功能
1.8.4 I/O 系統 • One purpose of OS is to hide peculiarities of hardware devices from the user • I/O subsystem responsible for • 記憶體管理構成要素包括緩衝(buffering)、快取和連線同時週邊作業。 • 通用裝置驅動程式(Driver)介面 • 特定硬體裝置驅動程式
1.9 保護(Protection)與安全(Security) • 電腦系統有許多使用者並且允許同時執行多個行程,則存取資料必須井然有序。 • 為了這個目的,必須提供一些功能以確保檔案、記憶體區段、CPU和其它的資源只能經由作業系統所認可並授權的行程適當地操作。 • Protection – any mechanism for controlling access of processes or users to resources defined by the OS • Security – defense of the system against internal and external attacks • Huge range, including denial-of-service, worms, viruses, identity theft, theft of service • Systems generally first distinguish among users, to determine who can do what • User identities (user IDs, security IDs) include name and associated number, one per user • User ID then associated with all files, processes of that user to determine access control • Group identifier (group ID) allows set of users to be defined and controls managed, then also associated with each process, file • Privilege escalation allows user to change to effective ID with more rights
1.10 特殊用途系統 • 1.10.1 即時嵌入系統(Real-time Embedded System) • 嵌入式計算機是現存最普遍形式的計算機。這些裝置到處都可發現,從汽車引擎和製造用機器人到VCRs 和微波爐。監督和管理硬體裝置。 • 嵌入式系統通常大部份執行即時作業系統(real-time operating systems)。即時系統是使用在使用者對於處理器的操作或資料的傳送在時間要求上很嚴謹,因此它通常是用在專門應用範圍中的控制裝置。 • 感應器將資料傳送給電腦。電腦必須將資料加以分析,而且可能控制調整以便修正感應器輸入。 • 控制科學實驗、醫學影像系統、工業控制系統,以及一些顯示系統都屬於即時系統的例子。其它還有自動引擎燃料噴射系統、家用器具控制器,以及武器系統也是即時系統。
1.10.2 多媒體系統(Multimedia System) • 大多數的作業系統被設計成處理傳統的資料,像是文字檔、程式、處理文字文件和試算表。 • 多媒體:MP3、DVD 、視訊會議等。 • 1.10.3 手持系統 • 手持系統 (handheld system)包括了個人數位助理 (Personal digital assistants, PDAs),例如掌上型電腦與行動電話和許多使用特殊用途嵌入式作業系統。 • 手持系統和應用的發展者面臨到許多挑戰,大部份的限制都是因為這些裝置尺寸限制。
1.11 計算環境 • 1.11.1 傳統計算(Centralized System集中式) • 系統不是整批式(Batch)就是交談式(Interactive)。整批式系統以預定方式輸入(從檔案或其它資料來源),處理了大多數的工作,交談式系統等候來自使用者的輸入。為了將計算資源的使用最佳化,多個使用者共用系統的時間。分時系統對這些系統使用了計時器和排班演算法以便快速地經過中央處理器循環程序給予每個使用者資源的分享。(Compiler vs. Interpreter) • 1.11.2 客戶 - 伺服器系統 (Client-Server System) • 計算伺服器系統(computer-server system)、檔案伺服器系統(file-server system) 。 PC
1.11.3 對等式運算 (peer to peer) – P2P • 當節點參與網路,以集中式分佈服務在網路註冊它的服務。任何節點需要服務,首先接觸這個集中式分佈服務,來決定那一個節點提供服務,剩下來的通信在客戶端和服務提供者之間發生。 • 表現像客戶端的點,必須首先發現那一個節點提供需求服務,藉由播送服務的需求,給網路上所有其它的節點。節點提供回應需求的服務,為了支持這個方法,必須提供搜尋協定,讓點發現在網路上其它點所提供的服務。 • 1.11.4 以網頁為基礎的計算 (Web-Based Computing) – 雲端作業系統Chrome • 網頁客戶端(Windows 95,98)伺服器(Windows XP, Linux..) 。