- 相關(guān)推薦
操作系統(tǒng)的知識(shí)點(diǎn)總結(jié)
操作系統(tǒng)是配置在計(jì)算機(jī)硬件上的第一層軟件,是控制計(jì)算機(jī)所有操作的軟件。下面是小編為你帶來的操作系統(tǒng)的知識(shí)點(diǎn)總結(jié) ,歡迎閱讀。
操作系統(tǒng)的概念
操作系統(tǒng):是管理計(jì)算機(jī)軟硬件資源的程序,同時(shí)它又是用戶與計(jì)算機(jī)硬件的接口。
操作系統(tǒng)的構(gòu)成
進(jìn)程管理、內(nèi)存管理、文件管理、輸入/輸出系統(tǒng)管理、二級(jí)存儲(chǔ)管理、聯(lián)網(wǎng)、保護(hù)系統(tǒng)、命令解釋程序
操作系統(tǒng)的類別
經(jīng)過多年的發(fā)展,操作系統(tǒng)多種多樣。為提高大型計(jì)算機(jī)系統(tǒng)的資源利用率,操作系統(tǒng)從批處理,多道程序發(fā)展為分時(shí)操作系統(tǒng)。為了滿足計(jì)算機(jī)處理實(shí)時(shí)事件的需要,就有實(shí)時(shí)操作系統(tǒng)。為適應(yīng)個(gè)人計(jì)算機(jī)系統(tǒng)的需要又出現(xiàn)了桌面操作系統(tǒng)。為適應(yīng)并行系統(tǒng)的需要,就有了多處理器操作系統(tǒng)。為滿足網(wǎng)絡(luò)和分布計(jì)算的需要,就有了網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。此外,還有為支持嵌入式計(jì)算機(jī)的嵌入式操作系統(tǒng)。
計(jì)算環(huán)境
從計(jì)算機(jī)誕生至今,操作系統(tǒng)總是與具體的計(jì)算環(huán)境相聯(lián)系,它總是在某種計(jì)算環(huán)境中設(shè)置和使用,就目前來看計(jì)算環(huán)境可分為以下幾類:
1. 傳統(tǒng)計(jì)算環(huán)境
指普通意義下的獨(dú)立或聯(lián)網(wǎng)工作的通用計(jì)算機(jī)所形成的計(jì)算環(huán)境。
2.基于Web的計(jì)算環(huán)境
互聯(lián)網(wǎng)的普及使得計(jì)算被延伸到Web環(huán)境。
3.嵌入式計(jì)算環(huán)境
嵌入式計(jì)算機(jī)就是安裝在某些設(shè)備上的計(jì)算部件,其計(jì)算相對(duì)比較簡(jiǎn)單。
進(jìn)程的概念
什么是進(jìn)程?它與程序有什么區(qū)別?
程序:用戶為完成某一個(gè)特定問題而編寫的操作步驟。
進(jìn)程:可以簡(jiǎn)單地被看作是正在執(zhí)行的程序。但是進(jìn)程需要一定的資源來完成它的任務(wù)(例如CPU時(shí)間、內(nèi)存、文件和I/O設(shè)備) 。
進(jìn)程與程序的區(qū)別在于進(jìn)程是動(dòng)態(tài)的、有生命力的,而程序是靜態(tài)的。一個(gè)程序加載到內(nèi)存,系統(tǒng)就創(chuàng)建一個(gè)進(jìn)程,程序執(zhí)行結(jié)束后,該進(jìn)程也就消亡了。
在計(jì)算機(jī)中,由于多個(gè)程序共享系統(tǒng)資源,就必然引發(fā)對(duì)CPU的爭(zhēng)奪。如何有效地利用CPU資源,如何在多個(gè)請(qǐng)求CPU的進(jìn)程中選擇取舍,這就是進(jìn)程管理要解決的問題。
進(jìn)程控制塊PCB(略)
為了控制進(jìn)程,操作系統(tǒng)就必須知道進(jìn)程存儲(chǔ)在哪里,以及進(jìn)程的一些屬性。
進(jìn)程控制塊是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中記錄進(jìn)程的專用數(shù)據(jù)結(jié)構(gòu)。一個(gè)新的進(jìn)程創(chuàng)建時(shí),操作系統(tǒng)就會(huì)為該進(jìn)程建立一個(gè)進(jìn)程控制塊。操作系統(tǒng)根據(jù)進(jìn)程控制塊對(duì)并發(fā)進(jìn)程進(jìn)行控制。
進(jìn)程調(diào)度及隊(duì)列圖
計(jì)算機(jī)采用多道程序的目的是使得計(jì)算機(jī)系統(tǒng)無論何時(shí)都有進(jìn)程運(yùn)行,單處理器的計(jì)算機(jī)在某一時(shí)刻CPU只能運(yùn)行一個(gè)進(jìn)程,如果存在多個(gè)進(jìn)程,其它進(jìn)程就需要等待CPU空閑時(shí)才能被調(diào)度執(zhí)行。
當(dāng)一個(gè)進(jìn)程處于等待或CPU時(shí)間片用完時(shí),操作系統(tǒng)就會(huì)從該進(jìn)程中拿走CPU控制權(quán),然后再交給其它進(jìn)程使用,這就是進(jìn)程的調(diào)度。
CPU調(diào)度及其準(zhǔn)則
在設(shè)計(jì)CPU調(diào)度程序時(shí)主要應(yīng)該考慮的準(zhǔn)則包括:
(1) CPU使用率。讓CPU盡可能地忙。
(2) 吞吐量。讓CPU在一定時(shí)間內(nèi)完成的進(jìn)程數(shù)盡可能多。
(3) 周轉(zhuǎn)時(shí)間。讓進(jìn)程從提交到運(yùn)行完成的時(shí)間盡可能短。
(4) 等待時(shí)間。讓進(jìn)程在就緒隊(duì)列中等待所花時(shí)間之和盡可能短。
(5) 響應(yīng)時(shí)間。讓進(jìn)程從提交請(qǐng)求到產(chǎn)生第一響應(yīng)之間的時(shí)間盡可能短。
主要的CPU調(diào)度算法
1、 先到先服務(wù)
2、 最短作業(yè)優(yōu)先
3、 優(yōu)先權(quán)
4、 輪轉(zhuǎn)
5、 多級(jí)隊(duì)列
6、 多級(jí)反饋隊(duì)列
進(jìn)程的同步與互斥
進(jìn)程的同步就是指相互協(xié)作的進(jìn)程不斷調(diào)整它們之間的相對(duì)速度,以實(shí)現(xiàn)共同有序地推進(jìn)。
換句話說,在操作系統(tǒng)中,允許多個(gè)進(jìn)程并發(fā)運(yùn)行。然而,有些進(jìn)程之間本身存在某種聯(lián)系,它們?cè)谙到y(tǒng)中需要一種協(xié)作,以保證進(jìn)程能正確有序地執(zhí)行并維護(hù)數(shù)據(jù)的一致性。
在操作系統(tǒng)中,可能存在著多個(gè)進(jìn)程。而系統(tǒng)中一些資源一次只允許一個(gè)進(jìn)程使用,這類資源被稱為臨界資源。在進(jìn)程中訪問臨界資源的那段程序稱為臨界區(qū)。當(dāng)一個(gè)進(jìn)程進(jìn)入臨界區(qū)執(zhí)行時(shí),其它進(jìn)程就不允許進(jìn)入臨界區(qū)執(zhí)行,否則就會(huì)導(dǎo)致錯(cuò)誤結(jié)果。由此得出:
多個(gè)進(jìn)程并發(fā)執(zhí)行時(shí),只允許一個(gè)進(jìn)程進(jìn)入臨界區(qū)運(yùn)行,這就是進(jìn)程的互斥。
例如:多個(gè)進(jìn)程在競(jìng)爭(zhēng)使用打印機(jī)時(shí)表現(xiàn)為互斥。
一個(gè)文件可供多個(gè)進(jìn)程共享,其中有一個(gè)進(jìn)程在寫操作時(shí),其它進(jìn)程則不允許同時(shí)寫或讀,表現(xiàn)為互斥。
進(jìn)程的死鎖及處理方法
在多道程序設(shè)計(jì)中,多個(gè)進(jìn)程可能競(jìng)爭(zhēng)一定數(shù)量的資源。一個(gè)進(jìn)程在申請(qǐng)資源時(shí),如果所申請(qǐng)資源不足,該進(jìn)程就必須處于等待狀態(tài)。如果所申請(qǐng)的資源被其它進(jìn)程占有,那么進(jìn)程的等待狀態(tài)就可能無法改變,從而形成進(jìn)程之間相互一直等待的局面,這就是死鎖。
競(jìng)爭(zhēng)資源引起死鎖
引起死鎖的四個(gè)必要條件:
互斥:任一時(shí)刻只能有一個(gè)進(jìn)程獨(dú)占某一資源,若另一進(jìn)程申請(qǐng)?jiān)撡Y源則需延遲到該資源釋放為止。
占有并等待:即該進(jìn)程占有部分資源后還在等待其它資源,而該資源被其它進(jìn)程占有。
非搶占:某進(jìn)程已占用資源且不主動(dòng)放棄它所占有的資源時(shí),其它進(jìn)程不能強(qiáng)占該資源,只有等其完成任務(wù)并釋放資源。
循環(huán)等待:在出現(xiàn)死鎖的系統(tǒng)中,一定存在這樣一個(gè)進(jìn)程鏈,其中每個(gè)進(jìn)程至少占有其它進(jìn)程所必需的資源,從而形成一個(gè)等待鏈。
處理死鎖問題的三種方式:
可使用協(xié)議預(yù)防和避免死鎖,確保系統(tǒng)從不會(huì)進(jìn)入死鎖狀態(tài)。
可允許系統(tǒng)進(jìn)入死鎖狀態(tài),然后檢測(cè)出死鎖狀態(tài),并加以恢復(fù)。
可忽略進(jìn)程死鎖問題,并假裝系統(tǒng)中死鎖從來不會(huì)發(fā)生。即沒有必要把精力花在小概率事件上。
處理死鎖優(yōu)先考慮的順序:先預(yù)防和避免 再檢測(cè)和恢復(fù)
內(nèi)存管理
內(nèi)存是現(xiàn)代操作系統(tǒng)的核心。內(nèi)存用于容納操作系統(tǒng)和各種用戶進(jìn)程,是可以被CPU和I/O設(shè)備所共同訪問的數(shù)據(jù)倉庫。計(jì)算機(jī)的所有程序運(yùn)行時(shí)都要調(diào)入內(nèi)存。
內(nèi)存管理的主要工作是:為每個(gè)用戶進(jìn)程合理地分配內(nèi)存,以保證各個(gè)進(jìn)程之間在存儲(chǔ)區(qū)不發(fā)生沖突;當(dāng)內(nèi)存不足時(shí),如何把內(nèi)存和外存結(jié)合起來,給用戶提供一個(gè)比實(shí)際內(nèi)存大得多的虛擬內(nèi)存,使得程序能順利執(zhí)行。內(nèi)存管理包括內(nèi)存分配、地址映射、內(nèi)存保護(hù)和擴(kuò)充。
用戶程序執(zhí)行與地址映射
用戶編寫程序在執(zhí)行前,需要多個(gè)處理步驟,這些步驟可將源程序轉(zhuǎn)變?yōu)槎M(jìn)制機(jī)器代碼,然后在內(nèi)存中等待執(zhí)行。當(dāng)然有時(shí)并非每個(gè)步驟都是必需的。
通常,將指令和數(shù)據(jù)的地址映射成內(nèi)存地址可以發(fā)生在以下三個(gè)執(zhí)行階段。(了解)
1.編譯階段:如果在編譯時(shí)就知道進(jìn)程將在內(nèi)存中的'什么位置駐留,那么編譯器就可以直接以生成絕對(duì)地址代碼。
2.加載階段: 不知道進(jìn)程將駐留在什么位置,那么編譯器就必須生成程序的邏輯地址,在加載階段再轉(zhuǎn)變成內(nèi)存的絕對(duì)地址。
3.執(zhí)行階段:如果進(jìn)程在執(zhí)行時(shí)可以從一個(gè)內(nèi)存段移動(dòng)到另一個(gè)內(nèi)存段,那么進(jìn)程的絕對(duì)地址映射工作只能延遲到執(zhí)行時(shí)進(jìn)行。
物理地址空間與邏輯地址空間
物理地址:是計(jì)算機(jī)內(nèi)存單元的真實(shí)地址。
物理地址空間:由物理地址所構(gòu)成的地址范圍。
邏輯地址:用戶程序地址,從0開始編址。
邏輯地址空間:由邏輯地址所構(gòu)成的地址范圍。
地址映射:用戶程序在運(yùn)行時(shí)要裝入內(nèi)存,這就需要將邏輯地址變換成物理地址,這個(gè)過程稱為地址映射,也稱重定位。
用戶編寫的源程序是不考慮地址的,源程序經(jīng)CPU編譯后產(chǎn)生邏輯地址。從CPU產(chǎn)生的邏輯地址轉(zhuǎn)換為內(nèi)存中的物理地址的映射是由計(jì)算機(jī)中被稱為內(nèi)存管理單元的硬件設(shè)備來實(shí)現(xiàn)的,將邏輯地址與內(nèi)存管理單元中存放的內(nèi)存基址相加就得到了物理地址。
進(jìn)程使用內(nèi)存的交換技術(shù)
為了更加有效地使用內(nèi)存,進(jìn)程在不運(yùn)行時(shí),可以暫時(shí)從內(nèi)存移至外存上,直到需要再運(yùn)行時(shí)再重新調(diào)回到內(nèi)存中。也就是說內(nèi)存管理程序可將剛剛運(yùn)行過的進(jìn)程從內(nèi)存中換出以釋放出占用的內(nèi)存空間,然后將另一個(gè)要運(yùn)行的進(jìn)程占據(jù)前者釋放的內(nèi)存空間。
計(jì)算機(jī)工作時(shí),為了將多個(gè)進(jìn)程放入到內(nèi)存就必須考慮在內(nèi)存中如何放置這些進(jìn)程。
內(nèi)存分配方案-連續(xù)
對(duì)于連續(xù)內(nèi)存分配方案,開始時(shí)所有內(nèi)存是一個(gè)大的孔,隨著內(nèi)存分配的進(jìn)行就會(huì)形成位置上不連續(xù)的大小不一的孔。在連續(xù)內(nèi)存分配方案中,當(dāng)新進(jìn)程需要內(nèi)存時(shí),為其尋找合適的孔,實(shí)現(xiàn)內(nèi)存分配 。該方案為每個(gè)進(jìn)程所分配的內(nèi)存物理地址空間在位置上是連續(xù)的。
內(nèi)存分配方案-分頁式
分頁管理基本思想:
o 內(nèi)存物理地址空間劃分為若干個(gè)大小相等的塊(頁框)
o 進(jìn)程的邏輯地址空間也劃分為同樣大小的塊(頁面)
o 內(nèi)存分配時(shí)每個(gè)頁面對(duì)應(yīng)地分配一個(gè)頁框,而一個(gè)進(jìn)程所分得頁框在位置上不必是連續(xù)的。
頁表:操作系統(tǒng)為每個(gè)用戶程序建立一張頁表,該表記錄用戶程序的每個(gè)邏輯頁面存放在哪一個(gè)內(nèi)存物理頁框。
虛擬內(nèi)存方案
虛擬內(nèi)存是一個(gè)容量很大的存儲(chǔ)器的邏輯模型,它不是任何實(shí)際的物理存儲(chǔ)器,它一般是借助硬盤來擴(kuò)大主存的容量。
虛擬內(nèi)存:對(duì)于一個(gè)進(jìn)程來講,如果僅將當(dāng)前要運(yùn)行的幾個(gè)頁面裝入內(nèi)存便可以開始運(yùn)行,而其余頁面可暫時(shí)留在磁盤上,待需要時(shí)再調(diào)入內(nèi)存,并且調(diào)入時(shí)也不占用新的內(nèi)存空間,而是對(duì)原來運(yùn)行過的頁面進(jìn)行置換。這樣,就可以在計(jì)算機(jī)有限的內(nèi)存中同時(shí)駐留多個(gè)進(jìn)程并運(yùn)行。而對(duì)用戶來講感覺到系統(tǒng)提供了足夠大的物理內(nèi)存,而實(shí)際上并非真實(shí)的,這就是虛擬內(nèi)存。
頁面請(qǐng)求與頁面置換算法
頁面請(qǐng)求:在虛擬內(nèi)存技術(shù)中,進(jìn)程運(yùn)行時(shí)并沒有將所有頁面裝入到內(nèi)存,在運(yùn)行過程中進(jìn)程會(huì)不斷地請(qǐng)求頁面,如果訪問的頁面已在內(nèi)存,就繼續(xù)執(zhí)行下去;但如果要訪問的頁面尚未調(diào)入到內(nèi)存,便請(qǐng)求操作系統(tǒng)將所缺頁面調(diào)入內(nèi)存,以便進(jìn)程能繼續(xù)運(yùn)行下去。
頁面置換:如果請(qǐng)求頁面調(diào)入內(nèi)存時(shí),分配給該進(jìn)程的頁框已用完,就無法立即裝入所請(qǐng)求頁面。此時(shí),必須將進(jìn)程中的某個(gè)頁面從內(nèi)存的頁框調(diào)出到磁盤上,再從磁盤上將所請(qǐng)求的頁面調(diào)入到內(nèi)存的該頁框中。這個(gè)過程叫做頁面置換。
文件管理
文件管理是操作系統(tǒng)最常見的組成部分。文件管理主要提供目錄及其文件的管理。
文件的概念
文件:保存在外部存儲(chǔ)設(shè)備上的相關(guān)信息的集合。
文件命名:文件主名+擴(kuò)展名
文件存取屬性:
只讀:只允許授權(quán)用戶進(jìn)行讀操作。
讀寫:只允許授權(quán)用戶進(jìn)行讀和寫的操作。
文檔:允許任何用戶進(jìn)行讀寫操作。
隱藏:不允許用戶直接看到文件名。
文件系統(tǒng):是對(duì)文件進(jìn)行操作和管理的軟件,是用戶與外存之間的接口。這個(gè)系統(tǒng)將所有文件組織成目錄結(jié)構(gòu)保存在外存,一個(gè)文件對(duì)應(yīng)其中的一個(gè)目錄條。目錄條記錄有文件名、文件位置等信息。
操作系統(tǒng)對(duì)文件的基本操作包括:
創(chuàng)建文件、文件寫、文件讀、文件重定位、文件刪除、文件截短。
對(duì)文件的其它操作包括:文件復(fù)制、重命名、更改屬性等。
【操作系統(tǒng)的知識(shí)點(diǎn)總結(jié)】相關(guān)文章:
負(fù)數(shù)知識(shí)點(diǎn)總結(jié)02-19
力學(xué)知識(shí)點(diǎn)總結(jié)02-18
比的應(yīng)用知識(shí)點(diǎn)總結(jié)04-11