官术网_书友最值得收藏!

1.2 操作系統(tǒng)的功能

操作系統(tǒng)是最基本的系統(tǒng)軟件,它主要負(fù)責(zé)管理和控制計(jì)算機(jī)系統(tǒng)中的硬件、軟件資源,合理地組織計(jì)算機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。計(jì)算機(jī)系統(tǒng)的硬件資源主要包括處理器(CPU)、存儲器(Memory)、外存儲器(External Memory)、輸入/輸出(Input/Output)設(shè)備等;軟件資源一般是以文件形式存儲在外部存儲器中。為使系統(tǒng)中的程序與設(shè)備能夠有條不紊地工作,并提供給用戶一個良好界面,要求操作系統(tǒng)應(yīng)具備以下5方面的功能:處理器管理、存儲管理、設(shè)備管理、文件管理和作業(yè)管理。下面來詳細(xì)介紹各個功能。

1.2.1 處理器管理

處理器(CPU)是整個計(jì)算機(jī)系統(tǒng)硬件資源的核心,其性能和使用情況對整個計(jì)算機(jī)系統(tǒng)的性能有著至關(guān)重要的影響。處理器的速度一般比其他硬件設(shè)備的工作速度要快得多,其他設(shè)備的正常運(yùn)行往往也離不開處理器。因此,有效利用和管理處理器,充分利用處理器資源是操作系統(tǒng)最重要的管理任務(wù)。

在計(jì)算機(jī)系統(tǒng)中,經(jīng)常出現(xiàn)多個用戶同時競爭處理器的情況,那么對于唯一的一個CPU要滿足所有用戶的請求,如何進(jìn)行處理器分配,分配多長時間給一個用戶,下一次把CPU使用權(quán)分配給哪一個用戶等很多的問題。因此,為了能夠清晰地描述出多個程序的同時運(yùn)行問題,操作系統(tǒng)中引入了進(jìn)程的概念。

在多道程序的環(huán)境中,處理器分配的主要對象是進(jìn)程。進(jìn)程是指程序在并發(fā)環(huán)境下的一次運(yùn)行過程。操作系統(tǒng)通過進(jìn)程調(diào)度選擇一個合適的進(jìn)程分配處理器,因此,處理器管理實(shí)際上就是進(jìn)程管理。操作系統(tǒng)有關(guān)進(jìn)程方面的管理很多,主要包括進(jìn)程控制、進(jìn)程同步與互斥、進(jìn)程調(diào)度、進(jìn)程通信及死機(jī)檢測與處理等。

1.進(jìn)程控制

當(dāng)要運(yùn)行用戶程序時,應(yīng)為之創(chuàng)建一個或多個進(jìn)程,分配除處理器之外的必要資源并放入進(jìn)程就緒隊(duì)列中。當(dāng)進(jìn)程運(yùn)行完成時,立即撤銷該進(jìn)程,以便操作系統(tǒng)回收其所占有的資源。進(jìn)程控制的基本功能就是創(chuàng)建和撤銷進(jìn)程以及控制進(jìn)程的狀態(tài)轉(zhuǎn)換。

2.進(jìn)程同步

進(jìn)程同步是指兩個或兩個以上進(jìn)程要協(xié)作完成一個任務(wù)時直接發(fā)生相互作用的關(guān)系。在多道環(huán)境下,這種進(jìn)程間在執(zhí)行次序上的協(xié)調(diào)是必不可少的,因?yàn)樗鼈冎g需要互相配合與協(xié)調(diào),即進(jìn)程之間在時序上要有一定的關(guān)系。

3.進(jìn)程互斥

進(jìn)程互斥是主要源于資源共享,是進(jìn)程之間的間接制約關(guān)系,指在兩個或兩個以上的進(jìn)程競爭某些資源(臨界資源)情況下,進(jìn)程互斥地使用這類資源。在多道系統(tǒng)中,進(jìn)程互斥就是為保證每次只有一個進(jìn)程使用臨界資源。

4.進(jìn)程通信

相互合作的進(jìn)程運(yùn)行時,它們之間往往要交換一定的信息,這種進(jìn)程間進(jìn)行的信息交換稱為進(jìn)程通信。

5.進(jìn)程調(diào)度

進(jìn)程調(diào)度是指按一定算法從進(jìn)程就緒隊(duì)列中選出某個進(jìn)程,把處理器分配給它,使其投入運(yùn)行。當(dāng)一個正在執(zhí)行的進(jìn)程已經(jīng)完成,或者因?yàn)槟撤N原因?qū)е略撌录o法繼續(xù)執(zhí)行下去時,系統(tǒng)應(yīng)進(jìn)行進(jìn)程調(diào)度,重新分配處理器?,F(xiàn)代操作系統(tǒng)大多是線程級操作系統(tǒng),進(jìn)程調(diào)度的對象是線程。

1.2.2 存儲管理

存儲器(是指計(jì)算機(jī)內(nèi)存)是計(jì)算機(jī)的記憶部件,是計(jì)算機(jī)系統(tǒng)中重要的資源。存儲器是程序運(yùn)行的舞臺,一個程序要在處理器上運(yùn)行,其代碼和數(shù)據(jù)就要全部或部分地進(jìn)駐于內(nèi)存。除操作系統(tǒng)要占相當(dāng)大的內(nèi)存空間外,在多道程序系統(tǒng)中,并發(fā)運(yùn)行的程序都要占有自己的內(nèi)存空間。因此,內(nèi)存資源非常緊張。

操作系統(tǒng)的存儲管理功能其實(shí)就是管理有限的內(nèi)存空間,保證內(nèi)存的利用率。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,并發(fā)運(yùn)行的進(jìn)程越來越多,并且單個進(jìn)程也越來越大。盡管內(nèi)存在不斷地?cái)U(kuò)大,但還是不能滿足系統(tǒng)中快速增長的并發(fā)進(jìn)程對內(nèi)存的需求。為了解決這個問題,讓更多的進(jìn)程在系統(tǒng)中并發(fā)運(yùn)行,滿足用戶需求,操作系統(tǒng)采用了虛擬存儲管理技術(shù),為進(jìn)程提供大于實(shí)際物理內(nèi)存的存儲空間,利用地址交換技術(shù),響應(yīng)并行進(jìn)程的需求。

歸根結(jié)底,存儲管理的主要工作就是分配內(nèi)存、保護(hù)內(nèi)存以及內(nèi)存擴(kuò)充。存儲管理的功能包括以下幾方面。

1)分配內(nèi)存。多道程序并發(fā)執(zhí)行的首要條件是要求不同的程序有自己的內(nèi)存空間,而存儲管理就需要完成合理分配內(nèi)存的任務(wù),以避免系統(tǒng)及用戶程序的存儲區(qū)之間產(chǎn)生沖突。

2)回收內(nèi)存。程序運(yùn)行結(jié)束后,必須釋放其占用的存儲空間,以便再分配,從而提高內(nèi)存的利用率,這些是由存儲管理程序來完成的。

3)保護(hù)內(nèi)存。整個內(nèi)存空間一般劃分為兩部分:系統(tǒng)區(qū)和用戶區(qū)。系統(tǒng)區(qū)是操作系統(tǒng)本身的程序和數(shù)據(jù)駐留區(qū);用戶區(qū)是用戶的程序和數(shù)據(jù)駐留區(qū)。為保證進(jìn)程都能在各自的內(nèi)存空間運(yùn)行而互不干擾,要求進(jìn)程在執(zhí)行時,時刻檢查對內(nèi)存的訪問是否合法。必須防止因某進(jìn)程的錯誤而擾亂了其他進(jìn)程的運(yùn)行(即每個進(jìn)程只能在自己的存儲區(qū)域內(nèi)活動),尤其應(yīng)防止用戶進(jìn)程非法訪問操作系統(tǒng)的內(nèi)存區(qū)。

4)地址映射。為了保證CPU執(zhí)行指令時可正確訪問存儲單元,需將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時由機(jī)器直接尋址的物理地址,這一過程稱為地址映射。操作系統(tǒng)必須提供地址映射機(jī)構(gòu),把進(jìn)程地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間對應(yīng)的物理地址,這樣可使用戶不必過問物理存儲空間的分配細(xì)節(jié),簡化用戶編程工作。

5)擴(kuò)充存儲。由于內(nèi)存資源有限,而要滿足用戶對內(nèi)存容量的需求,滿足大型程序或多進(jìn)程并發(fā)執(zhí)行的需要,必須擴(kuò)充內(nèi)存容量。由于硬件發(fā)展的限制不可能僅從硬件上進(jìn)行擴(kuò)充,所以操作系統(tǒng)利用軟件技術(shù)來解決該問題。通過采用虛擬存儲技術(shù)獲得內(nèi)存擴(kuò)充的效果,使系統(tǒng)的邏輯內(nèi)存遠(yuǎn)遠(yuǎn)大于物理內(nèi)存,以滿足用戶對大內(nèi)存的需求。

1.2.3 設(shè)備管理

計(jì)算機(jī)系統(tǒng)的外部設(shè)備品種繁多,用法各異,控制與管理起來非常煩瑣。常見的外部設(shè)備有終端、屏幕、打印機(jī)、繪圖儀、掃描儀、硬盤、軟盤、光盤、串/并行口和通信口等。相對處理器來說,這些外部設(shè)備的運(yùn)轉(zhuǎn)速度比較慢。處理器與外部設(shè)備間的速度問題,長期以來一直是操作系統(tǒng)要解決的主要問題。

由于系統(tǒng)要支持眾多的各種設(shè)備,而且各類設(shè)備的控制和信息傳輸操作差別極大,因此,設(shè)備管理的代碼在操作系統(tǒng)核心中占有相當(dāng)大的部分。而它的主要任務(wù)就是充分利用各種設(shè)備資源,包括緩沖管理、設(shè)備獨(dú)立性、虛擬設(shè)備、設(shè)備分配、設(shè)備驅(qū)動、設(shè)備的控制和信息傳輸技術(shù)等。

1.緩沖管理

當(dāng)處理器和外部設(shè)備進(jìn)行交換信息時,通常是利用緩沖區(qū)來緩解處理器和外部設(shè)備間速度不匹配的矛盾,實(shí)現(xiàn)處理器與設(shè)備、設(shè)備與設(shè)備間操作的并行程序,提高處理器和外部設(shè)備的利用率。

2.設(shè)備分配

用戶程序在其運(yùn)行期間隨時會需要使用外部設(shè)備,當(dāng)向操作系統(tǒng)提出設(shè)備申請時,系統(tǒng)根據(jù)用戶程序所請求的設(shè)備類型,按某一個分配算法對設(shè)備進(jìn)行分配,建立從外設(shè)到內(nèi)存之間傳輸信息的通路;當(dāng)進(jìn)程的輸入/輸出完成后,應(yīng)及時回收設(shè)備,以便重新分配給其他進(jìn)程使用;將未獲得所需設(shè)備的進(jìn)程放進(jìn)相應(yīng)設(shè)備的等待隊(duì)列中。

3.設(shè)備驅(qū)動

設(shè)備驅(qū)動的任務(wù)是將邏輯設(shè)備名轉(zhuǎn)換成設(shè)備的物理地址,啟動指定的I/O設(shè)備,完成用戶指定的I/O操作,對設(shè)備發(fā)來的中斷請求做出及時響應(yīng),根據(jù)中斷類型進(jìn)行相應(yīng)的處理。

4.虛擬設(shè)備

把一次僅允許一個進(jìn)程訪問的設(shè)備稱為獨(dú)占設(shè)備。獨(dú)占設(shè)備使得系統(tǒng)效率降低,并可能產(chǎn)生死鎖。系統(tǒng)通過虛擬技術(shù)將一臺獨(dú)占設(shè)備改造成能被多個進(jìn)程共享的設(shè)備(虛擬設(shè)備),使每個用戶都感覺自己在獨(dú)占該設(shè)備,從而提高設(shè)備的利用率。

5.設(shè)備獨(dú)立性

即設(shè)備的無關(guān)性。由于外部設(shè)備的種類繁多,數(shù)量也不同,設(shè)備管理對各種設(shè)備操作提供了統(tǒng)一的操作接口,用戶在編制程序時,應(yīng)避免直接使用實(shí)際的設(shè)備名而使用邏輯設(shè)備名,這樣可以方便用戶編程,有利于解決外部設(shè)備的故障和增加設(shè)備分配的靈活性。

1.2.4 文件管理

文件是各種程序和數(shù)據(jù)的集合,也是用戶存放在計(jì)算機(jī)中最重要資源,稱為計(jì)算機(jī)系統(tǒng)中的軟件資源。文件管理的功能有文件存儲空間的分配和回收、目錄管理、文件的存取控制、文件的安全與維護(hù)、文件邏輯地址與物理地址的映射及文件系統(tǒng)的安裝、卸載和檢查等,具體如下。

(1)文件的組織

系統(tǒng)按照文件的組織方式,可以有效地分配和回收文件的存儲空間,在存取文件時能夠確切地掌握文件所在的存取位置。

(2)文件的保護(hù)

在計(jì)算機(jī)外部存儲器上存放著很多的用戶文件和操作系統(tǒng),為了保證這些文件的安全和保密,避免非法用戶訪問,操作系統(tǒng)對文件采取了嚴(yán)格的保護(hù)措施,以免文件被破壞。

(3)文件的共享

為了保證軟件資源的利用率,系統(tǒng)在實(shí)現(xiàn)文件保護(hù)的同時也允許多個用戶同時訪問某些文件,實(shí)現(xiàn)資源的共享。

(4)文件操作接口統(tǒng)一

為了便于用戶對文件操作,用戶不需要掌握操作文件的詳細(xì)信息便可對文件進(jìn)行訪問,操作系統(tǒng)提供了統(tǒng)一的接口,便利用戶通過文件名即可訪問文件。

1.2.5 作業(yè)管理

作業(yè)是指用戶要求計(jì)算機(jī)系統(tǒng)處理的一個問題。任何一個作業(yè)都要經(jīng)過若干個加工步驟才能得到結(jié)果,把作業(yè)的每一個加工步驟稱為一個“作業(yè)步”。作業(yè)管理包括作業(yè)的輸入和輸出,作業(yè)的調(diào)度與控制(根據(jù)用戶的需要控制作業(yè)運(yùn)行的步驟)。作業(yè)管理是用戶提交的諸多作業(yè)進(jìn)行管理,包括作業(yè)的組織、控制、和調(diào)度等,盡可能高效地利用整個系統(tǒng)的資源。

(1)作業(yè)控制

用戶可以根據(jù)某種形式向操作系統(tǒng)發(fā)出各種命令,以便對自己的作業(yè)加工與管理,一般包括批處理方式和交互方式。

(2)作業(yè)調(diào)度

當(dāng)有多個作業(yè)等待處理時,系統(tǒng)可以根據(jù)本身的能力和當(dāng)前正在運(yùn)行作業(yè)的情況,按照一定的算法,從后備作業(yè)隊(duì)列中選出一批作業(yè),為它們分配所需的計(jì)算機(jī)資源,調(diào)入內(nèi)存以等待處理器處理。

(3)作業(yè)控制與管理

當(dāng)有多個用戶作業(yè)提出請求時,作業(yè)管理需要按照用戶的要求和作業(yè)的性質(zhì)調(diào)度其中某些作業(yè)進(jìn)入計(jì)算機(jī)系統(tǒng)內(nèi)運(yùn)行。

主站蜘蛛池模板: 策勒县| 泽州县| 丰台区| 凭祥市| 吉隆县| 宁河县| 湘潭市| 英山县| 砀山县| 集安市| 尤溪县| 中牟县| 临沭县| 宁阳县| 洪江市| 仁化县| 连江县| 辽宁省| 龙陵县| 天全县| 青岛市| 溧阳市| 定州市| 东安县| 吴桥县| 南丹县| 额济纳旗| 会宁县| 东乌| 怀宁县| 普定县| 集安市| 平塘县| 永吉县| 三门峡市| 晋中市| 上犹县| 遵义市| 麦盖提县| 应城市| 迭部县|