Download presentation
Presentation is loading. Please wait.
1
Operating System Principles 作業系統原理
著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修
2
第一篇 總論 (Overview) 作業系統 (Operating system) 是介於使用者與電腦硬體之間的管理軟體。
目的在於提供使用者—便利有效的執行程式環境。 作業系統是管理電腦硬體的軟體,硬體必須提供適當的功能來保證電腦系統正確操作以及防止使用者成是干涉系統正常操作。
3
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.12 計算環境
4
1.1 什麼是作業系統? 一個電腦系統分成四個單元:硬體(Hardware)、作業系統(Operating System)、應用程式(Application Program)、使用者(User)。 People, machines, and other computers Word processors, compilers, web browsers, database systems, video games Windows, Solaris, Linux, OS2… CPU, memory, I/O devices
5
1.1.1 使用者觀點 1.1.2 系統觀點 1.1.3 定義作業系統 PC: 資源(軟硬體)容易使用(ease of use)
大型主機 (mainframe)、迷你電腦(minicomputer):有效分享發揮資源(resource utilization) 工作站 (workstations)、伺服器 (servers): compromise between individual usability and resource utilization 手提式電腦 (handheld computers): individual usability, but performance per amount of battery life is important as well 1.1.2 系統觀點 資源分配者 (resource allocator): Manages all resources、Decides between conflicting requests for efficient and fair resource use 控制程式(control program): Controls execution of programs to prevent errors and improper use of the computer 1.1.3 定義作業系統 Kernel : Two main goals --Convenience and Efficiency “The one program running at all times on the computer” is the kernel (核心). Everything else is either a system program (ships with the operating system) or an application program
6
1.2 電腦系統組織 1.2.1 電腦系統操作 (computer-system operation)
1.2 電腦系統組織 1.2.1 電腦系統操作 (computer-system operation) One or more CPUs, device controllers connect through common bus providing access to shared memory Concurrent execution of CPUs and devices competing for memory cycles
7
1.2 電腦系統組織 起動Startup 1.靴帶式程式(bootstrap program)存於唯讀記憶體(ROM)或可消除式唯讀記憶體(EEPROM)[通常稱為韌體firmware], 2. 將作業系統核心載入記憶體, 3. 執行第一個行程(init), 4. 協調事件之中斷(interrupt), Windows Unix 均以相同方式處理中斷,如圖1.3
8
Common Functions of Interrupts
Determines which type of interrupt has occurred: polling vectored interrupt system Interrupt transfers control to the interrupt service routine generally, through the interrupt vector, which contains the addresses of all the service routines. Interrupt architecture must save the address of the interrupted instruction. Incoming interrupts are disabled while another interrupt is being processed to prevent a lost interrupt. An operating system is interrupt driven.
9
1.2.2 儲存體結構 (Storage Structure)
Main memory – only large storage media that the CPU can access directly. RAM (random access memory) Secondary storage – extension of main memory that provides large nonvolatile storage capacity. Disks Storage systems organized in hierarchy. Speed (速度) Cost (價格) Size (大小) Volatility (揮發性)
10
1.2.2 儲存體結構 可執行記憶體 輔助記憶體
11
I/O 結構
12
1.3 電腦系統架構 1.3.1 單一處理器系統 僅有一個一般處理器之系統 1.3.2 多處理器系統(multiprocessor system, parallel system, tightly coupled system) 擁有一個以上的處理器,共同使用匯流排、時脈、記憶體、周邊裝置 使用多處理器系統有三個優點:1. 增加產量(increase throughput) 2.經濟度量(economy of scale) 3. 增加可信度(increased reliability) 目前有兩種類別:1. 非對稱多元處理(asymmetric multiprocessing)-主處理器會指定每個處理器不同之任務,有主從關係 2.對稱多元處理(symmetric multiprocessing, SMP)-每個處理器執行相同之任務,沒有主從關係;目前Windows XP, Mac OS, Linux 均支援SMP
13
1.3.3 集成式系統 (Clustered System)
集成式電腦分享儲存裝置,經由區域網路, 無線寬頻網路彼此相連,可提供高的取得率(high-availability) 非對稱集成系統(asymmetric clustering)- 一台機器處於熱待機狀態(hot-standby mode)為一監督工作的伺服器, 其他機器則執行應用程式。 對稱集成系統(symmetric clustering)- 所有機器均執行應用程式並互相監督。
14
1.4 作業系統結構 作業系統提供程式被執行的環境,工作排班的最重要觀念就是多元程式規劃的能力。多元程式規劃 (multiprogramming)的目的就是讓CPU始終有工作做,以增加CPU的使用率。 作業系統在同一時間存放數項工作在記憶體中,這一組工作是工作池(job pool)中所有工作的部份集合,作業系統把工作池中的一項工作挑出來並且開始執行。 一但該工作需要等待(如: I/O 工作) ,CPU 就移轉到其他工作。
15
Timesharing (multitasking) is logical extension in which CPU switches jobs so frequently that users can interact with each job while it is running, creating interactive computing Response time should be < 1 second Each user has at least one program executing in memory process If several jobs ready to run at the same time CPU scheduling If processes don’t fit in memory, swapping moves them in and out to run Virtual memory allows execution of processes not completely in memory
16
1.5 作業系統的操作 現代作業系統是中斷驅動式 (interrupt driven),如果沒有行程要執行,沒有I/O裝置要服務和沒有使用者需要回應,則作業系統將安靜進入等待事件發生;事件通常都是由於中斷或陷阱的發生而被通知。 因為作業系統和使用者共用電腦系統中硬體和軟體的資源,在共用的情況下,一個程式中的錯誤可能會使許多工作受到不利影響。 一個設計正確的作業系統必須保證一個不正確的 (或蓄意破壞的)程式不會造成其他程式不正確的執行。
17
雙模式運作 使用者模式 (user mode)和核心模式 (kernel mode或 supervisor mode,也稱為系統模式,system mode或特權模式,privileged mode)。 在系統啟動時,硬體必須由核心模式開始。然後載入作業系統,接者在使用者模式開始執行使用者應用程式。每當一個插所或中斬發生時,硬體從使用者模式轉換到核心模式,作業系統得到腦的控制權時,電腦就是在核心模式中。使用者程式再將控制權交給一個使用者程式之前, 轉換到使用者模式。
18
計時器(Timer) 我們必須保證作業系統維持控制;我們必須防止使用者程式陷入一個無窮迴路之中,而永遠不把控制權交還給作業系統。為達成此目的,可以使用一個計時器(timer)。 計時器設定在某段時間之後中斷電腦。其週期可以是固定的 (例如,1/60秒)或可變的(例如,從1毫秒到1秒)。 因此,我們可以用計時器來防止使用者程式執行太久。簡單的技巧是用程式允許的時間量設定計數器之初值。例如,具有 7分鐘時間限制的程式設定計數器初值為420。每過 1秒鐘,計時器就會發出中斷且計數器值減 1。只要計數器值為正,控制權仍回到使用者程式。當計數器值擴成負值時,作業系統因為程式超過其時間限制而終止執行。
19
1.6 行程管理 行程(process)可以視為執行中的程式,行程需要某些特定的資源,包括 CPU時間、記憶體、檔案和I/O裝置等,以完成其工作。這些資源在行程產生或執行時就會配置給它,除了實體資源和邏輯資源的配置之外,有些起始資料 (輸入)也可能會隨著行程的產生而產生。 在行程管理方面,作業系統必須提供下列的功能: 使用者和系統行程的產生與刪除 行程的暫停和恢復 行程同步功能的預備 行程通信功能的預備 死結處理功能的預備
20
1.7 主記憶體管理 主記憶體是現代電腦系統運作的中心,程式執行時,它必須映對到絕對位址並且載入主記憶體之中。在程式執行時,藉由產生程式指令和資料的絕對位址,才能從記憶體存取它們。最後,在程式結束時,它釋放出記憶體為可用狀態,以及載入下一個程式並且執行它。 在記憶體管理方面,作業系統必須具有下列的功能: 記錄正在使用的記憶體部份以及是誰在使用 在記憶體空間可用時決定載入的行程 在需要時配置和回收記憶體空間
21
1.8 儲存體管理 1.8.1 檔案系統管理 1.8.2 大量儲存體管理 檔案的建立與刪除 組織檔案的目錄建立與刪除
作為處理檔案和目錄的原始支援 檔案與輔助記憶體的對映 穩定 (非揮發性)儲存裝置上的檔案備份 1.8.2 大量儲存體管理 可用空間管理 記憶體配置 磁碟排班
22
1.8.3 快取記憶體(caching)
23
I/O 系統 記憶體管理構成要素包括緩衝、快取和連線同時週邊作業。 通用裝置驅動程式介面 特定硬體裝置驅動程式
24
1.9 保護與保密 電腦系統有許多使用者並且允許同時執行多個行程,則存取資料必須井然有序。
1.9 保護與保密 電腦系統有許多使用者並且允許同時執行多個行程,則存取資料必須井然有序。 為了這個目的,必須提供一些功能以確保檔案、記憶體區段、CPU和其它的資源只能經由作業系統所認可並授權的行程適當地操作。
25
1.10 分散式系統 分散系統是實體獨立的一種集合,可能是異相電腦系統被網路連結,以存取系統維持的各種不同資源,來提供使用者使用。
共用資源的存取增加了計算速度、功能性、有效資料和可信度。 有些作業系統藉由包含在網路介面驅動程式的網路詳細內容,網路存取有如檔案存取的形式。
26
1.11 特殊用途系統 即時嵌入系統 嵌入式計算機是現存最普遍形式的計算機。這些裝置到處都可發現,從汽車引擎和製造用機器人到VCRs 和微波爐。 嵌入式系統通常大部份執行即時作業系統(real-time operating systems)。即時系統是使用在使用者對於處理器的操作或資料的傳送在時間要求上很嚴謹,因此它通常是用在專門應用範圍中的控制裝置。 感應器將資料傳送給電腦。電腦必須將資料加以分析,而且可能控制調整以便修正感應器輸入。 控制科學貫驗、皆學影像系統、工業控制系統,以及一些顯示系統都屬於即時系統的例子。其它還有自動引擎燃料噴射系統、家用器具控制器,以及武器系統也是即時系統。
27
1.11.2 多媒體系統 1.11.3 手持系統 大多數的作業系統被設計成處理傳統的資料,像是文字檔、程式、處理文字文件和試算表。
多媒體系統 大多數的作業系統被設計成處理傳統的資料,像是文字檔、程式、處理文字文件和試算表。 最近的技術趨勢是多媒體資料 (multimedia data) 結合到電腦系統之內,包括有聲音和影像檔案以及傳統的檔案 手持系統 手持系統 (handheld system)包括了個人數位助理 (Personal digital assistants, PDAs),例如掌上型電腦與行動電話和許多使用特殊用途嵌入式作業系統。 手持系統和應用的發展者面臨到許多挑戰,大部份的限制都是因為這些裝置尺寸限制。
28
1.12 計算環境 1.12.1 傳統計算 1.12.2 客戶 - 伺服器系統 (Client-Server System)
傳統計算 系統不是整批式就是交談式。整批式系統以預定方式輸入(從檔案或其它資料來源),處理了大多數的工作,交談式系統等候來自使用者的輸入。為了將計算資源的使用最佳化,多個使用者共用系統的時間。分時系統對這些系統使用了計時器和排班演算法以便快速地經過中央處理器循環程序給予每個使用者資源的分享。 客戶 - 伺服器系統 (Client-Server System) 計算伺服器系統(computer-server system),檔案伺服器系統(file-server system)
29
1.12.3 對等式運算 (peer to peer) 1.12.4 以網頁為基礎的計算
當節點參與網路,以集中式分佈服務在網路註冊它的服務。任何節點需要服務,首先接觸這個集中式分佈服務,來決定那一個節點提供服務,剩下來的通信在客戶端和服務提供者之間發生。 表現像客戶端的點,必須首先發現那一個節點提供需求服務,藉由播送服務的需求,給網路上所有其它的節點。節點提供回應需求的服務,為了支持這個方法,必須提供搜尋協定,讓點發現在網路上其它點所提供的服務。 以網頁為基礎的計算 網頁客戶端(Windows 95,98)伺服器(Windows XP, Linux..)
Similar presentations