- 1、本文档共72页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业系统(一)
第七章作業系統(一) 每一套電腦系統都必備軟體就是作業系統,作業系統負責控制與協調電腦系統的資源,為了達到這個目的,因此發展出許多的策略,在本章中,我們將介紹這些策略,包含作業系統如何管理CPU、主記憶體以及磁碟。 第七章作業系統(一) 作業系統是最基本的軟體,所有的應用程式都必須透過它來分配電腦的硬體資源,早期的作業系統只提供了命令列式的操作介面,而目前則流行圖形化的視窗作業系統,對於使用者而言,視窗作業系統讓一般使用者不再對電腦產生恐懼感,也帶動了個人電腦的流行。 然而作業系統的設計原理其實是一門大學問,它牽扯到CPU、記憶體、磁碟等等的管理,在本章中,我們將分別就這幾項技術加以介紹。 大綱 7.1 作業系統簡介 7.2 作業系統的演進 7.2.1 真空管時代的電腦作業系統 7.2.2 電晶體時代的電腦作業系統 7.2.3 積體電路時代的電腦作業系統 7.2.4 超大型積體電路時代的電腦作業系統 7.2.5 現代化作業系統 7.3 程序與CPU管理 7.3.1 排程 7.3.2 排程演算法 7.4 記憶體管理 7.4.1 傳統記憶體管理 7.4.2 多重程式處理(Multiprogramming) 7.4.3 虛擬記憶體(Virtual Memory) 7.5 磁碟管理 7.1 作業系統簡介 只有硬體而沒有任何軟體(或韌體)的電腦系統稱為裸機(Bare Machine),裸機是無法運作的,它必須透過軟體的操作才能發揮功效,而作業系統(Operating System)是最基本也是最重要的系統軟體,所有硬體資源的控制與協調都由作業系統負責,例如:CPU使用權的管理、記憶體空間的管理、磁碟管理等等。 作業系統擔任的工作主要是作為應用程式與硬體之間的橋樑,不過作業系統也可以直接接受使用者的命令,右圖是作業系統與電腦系統的關係圖。 7.1 作業系統簡介 事實上,作業系統也是由眾多程式所組成,這些程式大體可以分為兩大部分,一是監督程式,二是管理資源的各種程式。監督程式(Supervisor program)的工作是監督作業系統其他程式的運作,因此,監督程式大多常駐於記憶體內。 監督程式可以說是作業系統中最重要的核心部分,因此也被稱為核心程式(kernel)。當電腦開機之後,首先讀取的程式是放在BIOS內的啟動程式(Bootstrapping),啟動程式的工作非常簡單,會將放在硬碟內的作業系統核心(kernel)載入到主記憶體中,然後程式就會執行核心程式。核心程式由於扮演監督者的角色,因此會一直常駐在主記憶體的某一個固定區塊中,因此核心程式屬於常駐程式(resident program)。作業系統平常是利用常駐的監督程式在運作,直到需要使用其他非常駐程式時,才會將這些非常駐程式從硬碟載入到主記憶體中。 7.1 作業系統簡介 除了核心常駐程式之外,現代流行的作業系統還會提供管理資源的各種程式,例如:使用者命令介面程式、磁碟管理程式等等,有些作業系統(例如微軟的Windows)甚至還會提供瀏覽器、編輯器或遊戲軟體等等的軟體,這些部分,我們則將之列入為應用軟體的部分。 【註】: 有關系統軟體與應用軟體的劃分,各書有不同的定義,在本書中,我們將作業系統核心與程式開發所需要的軟體(除編輯器之外)列入為系統軟體;而其他不論是由作業系統(例如磁碟管理、瀏覽器)或其他公司所開發的軟體(例如繪圖軟體)皆列入為應用軟體。換句話說,本書之劃分是依照系統開發與執行之必要性做為軟體之分際。正如同Windows將磁碟重組工具列為『附屬應用程式/系統工具』類別中。 7.1 作業系統簡介 作業系統的主要功能 作業系統的主要功能可以分為下列三大項,其對象各有不同: 管理電腦硬體資源: 不論是使用者或應用程式,在運作的過程中都必須使用到硬體資源,例如CPU、主記憶體、磁碟、印表機等等,由於硬體相關程式的發展需要更多背景知識,而這對於一般程式師而言,並不十分容易,在分工的概念下,作業系統將扮演硬體資源管理的角色,並且提供許多的應用介面給一般程式設計師,如此一來,程式設計師就不需要了解控制硬體的底層技術。尤其是現今的作業系統大多提供多人或多工的環境,這些使用者或應用程式其實是共用硬體資源的,因此作業系統還需要扮演協調及控制不同應用程式及使用者的角色,以徹底發揮硬體資源的效能。 7.1 作業系統簡介 7.1 作業系統簡介 做為應用程式的虛擬機器: 如上面所說的,經過分工後,程式設計師再也不用擔心底層硬體是如何被驅動控制以完成需求,對於應用程式設計師來說,就像是在一個完美的虛擬機器(virtual machine)上面開發應用程式,只需要透過作業系統提供的應用程式介面(Application Program Interface;簡稱API)來下命令,作業系統就會將這些命令轉換
文档评论(0)