- 相關(guān)推薦
操作系統(tǒng)學結(jié)
經(jīng)過一天半的戰(zhàn)斗,終于把操作系統(tǒng)概論這本書給拿下了。對于曾經(jīng)專業(yè)課學過一些電腦硬件知識的我來說,這本書更加吸引我,以前一些聽過的名詞或高大上的詞語在這本書上被詳細介紹了,看的非常有收獲。下面來總結(jié)下自己的收獲:
首先第一章引論,在這里首先介紹了計算機系統(tǒng),包括了軟件和硬件兩部分。
接下來就是第一章的重點:操作系統(tǒng)。如下圖:
當前流行的操作系統(tǒng)有windows、unix、linux等。微軟的windows系統(tǒng)經(jīng)歷了一個從簡單到復(fù)雜,從低級到高級的過程;從ms-dos---windows 3---windows 95---windows 98---windows nt---windows 2000,再到現(xiàn)在win7、8甚至win10,微軟始終在進步。unix是一個通用的交互式分時操作系統(tǒng),有at&t公司下屬的bell實驗室開發(fā),在誕生后,源代碼就一直公開,用戶可以參與到unix的升級中。unix的特點:1.短小精悍;2.可裝卸的多層次文件系統(tǒng);3.可移植性好;4.網(wǎng)絡(luò)通信功能強。linux是網(wǎng)絡(luò)時代的產(chǎn)品,繼承于unix,并做了很多改進。
第一章總領(lǐng)了全書,后面的二三四五六章都是講的計算機的各種管理,總結(jié)如下圖:
在這里我把每章中的重點用紅色的顏色標記出來了,這樣在精讀的時候就可以有重點的向外擴散,抓住考點,征服考試。第一遍閱讀畫的有點粗糙,在精讀的時候再大大的豐富下。
操作系統(tǒng)學結(jié) [篇2]
這里的設(shè)備指的是i/o設(shè)備,即馮若依曼所提出的計算機五大部件的輸入/輸出部件,在五大部件中占其二,可想其重要行了,現(xiàn)在,開始我的總結(jié)之旅了
i/o系統(tǒng)可以分為:微機i/o設(shè)備 和主機i/o設(shè)備。這兩個之間的區(qū)別和聯(lián)系,我還是不太清楚。感覺微機i/o比主機i/o要簡單。
對i/o系統(tǒng)的管理有以下幾種管理方式:
程序控制方式:這種方式好比學51單片機編匯編時反復(fù)去檢測一個端口是否有要求的信號來一樣,簡單,但對cpu利用率太太太太太低了。
中斷方式:這種方式應(yīng)該用的比較多吧,曾經(jīng)有老師在課堂上這樣形象地描繪中斷這個東西,比如說你編程,突然,你的朋友來了個電話,很明顯,你不能置之不理,所以,你接了這個電話,掛電話之后,你就會返回剛才編程思路被打斷的地方,繼續(xù)編程了。但這種方式的致命缺點就是,每次傳送的數(shù)據(jù)量太少了,若要傳輸大量的設(shè)備,很明顯,設(shè)備將要進行n多次的中斷,我們知道,我一次中斷,會保存當前的psw,register等等信息,所以,是有開銷的,若進行很多次中斷,cpu的利用率同樣很多,因為,很多cpu時間用到對中斷的處理上了。
dma方式:這種方式是現(xiàn)在廣泛運用的管理方式了,向我們現(xiàn)在聽說的什么打開dma啊之類的就是指的這個東西。dma全稱是directmemoryaccess(直接內(nèi)存讀寫)。它的優(yōu)點不用說,因為有direct,所以,是很快的。cpu僅僅是干預(yù)開始和結(jié)束,其他一概由dma控制器來完成,所以,大大的節(jié)省了大量的cpu時間。
通道方式:通道完成主存儲器和外設(shè)之間的信息傳輸,由于通道這種東西平時沒看到過,對這種方式?jīng)]有什么理解,按照書上所說,這加大了i/o和cpu并行工作的程度。想想也是,cpu僅僅控制通道,通道就可以控制mm和i/o設(shè)備之間的信息傳輸,在后面的章節(jié)中,課本對通道的工作過程有了更詳細的描述,就是cpu僅僅給出通道所要執(zhí)行的通道程序在內(nèi)存中的首地址,其余#url#的事情就有通道完成了,好像通道是一個附加的cpu,專門用來完成數(shù)據(jù)傳輸?shù)墓ぷ,的確加大了并行工作的程度。
設(shè)備管理的目標:提高設(shè)備利用率,為用戶提供方便,統(tǒng)一的界面。這里值得我好好理解。
這里的方便,指的是屏蔽設(shè)備的物理特性,用戶只需要知道操作而不必知道每一個設(shè)備具體的工作原理。這里的統(tǒng)一指的是不同的設(shè)備用統(tǒng)一的操作方式,這樣,用戶在操作的時候,對不同的設(shè)備,好像是用同一種操作命令,如winxp中對硬盤和u盤的操作好像是一樣的,比如同樣的復(fù)制命令等等,統(tǒng)一、簡化了用戶的使用。把方便和統(tǒng)一結(jié)合起來看,就是讓用戶面對的不再是一個個的物理設(shè)備,而是一組具有相同特征的邏輯設(shè)備。
設(shè)備管理的主要技術(shù):中斷技術(shù),dma技術(shù),通道技術(shù),緩沖技術(shù)
android logcat 如何獲取輸出所有內(nèi)容? 想要的東東沒有輸出
。我覺得前三個主要是通過硬件來實現(xiàn)的,而緩沖技術(shù),借助硬件,主要是以某種算法,以軟件實現(xiàn)的。前面一直再說硬件,現(xiàn)在開始說軟件了。
設(shè)備管理軟件的基本思想是分層構(gòu)造。想想也是#url#,為了實現(xiàn)設(shè)備管理的目標:為用戶提供方便,統(tǒng)一的界面,如果不通過分層的思想,層層抽象,是達不到這個目的的。
設(shè)備管理軟件的目標:設(shè)備獨立性 和統(tǒng)一命名。設(shè)備獨立性可以這樣來理解,當最底層的物理設(shè)備變化的時候,面向用戶的那一層軟件并不用變,因為,它的下層的軟件把這種變化屏蔽了,具體的情況就是,當硬件變化后,我們僅僅改變了驅(qū)動程序,但驅(qū)動程序與上層軟件的接口并沒有變,所以,我們的上層軟件就不用變化了。提高了軟件的復(fù)用。這個原理很像我們在數(shù)據(jù)庫中學的三級模式,兩級映像,不光提供了物理獨立性,還提供了邏輯獨立性。統(tǒng)一命名比較難懂,通過例子來說明吧,在winxp中,西部數(shù)據(jù)和 邁拓的硬盤被當作同樣的硬盤設(shè)備來使用,在unix中,i/o設(shè)備被當作文件來處理,這樣,可以通過路徑來訪問i/o設(shè)備。
操作系統(tǒng)學結(jié) [篇3]
1.聯(lián)機命令的類型:系統(tǒng)訪問類型;磁盤操作類型;文件操作類型;目標操作類型;通信類;其他命令
2.操作系統(tǒng)的目標:方便性、有效性、可擴充性、開放性。
3.操作系統(tǒng)的作用:os作為用戶與計算機硬件系統(tǒng)之間的接口;os作為計算機系統(tǒng)資源的管理者;os用作擴充機器。
4.操作系統(tǒng)的基本特性:并發(fā)、共享、虛擬、異步。
5.操作系統(tǒng)的功能:處理機管理(進程控制、進程通信、調(diào)度)、存儲器管理(內(nèi)存分配、內(nèi)存保護、地址映射、內(nèi)存擴充。)、設(shè)備管理(緩沖管理、設(shè)備管理、設(shè)備處理)、文件管理(文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護)。
6.常見的操作系統(tǒng)接口有:命令接口、程序接口、圖形接口。
7.單緩沖和雙緩沖的區(qū)別:兩臺機器之間的通信,配置單緩沖則在任意時刻都只能實現(xiàn)但方向的數(shù)據(jù)傳輸,絕不允許雙方同時向?qū)Ψ桨l(fā)送數(shù)據(jù)。在兩臺機器中設(shè)置兩個緩沖區(qū),一個用作發(fā)送緩沖區(qū),另一個用作接受緩沖區(qū),可實現(xiàn)雙向數(shù)據(jù)傳輸。
8.操作系統(tǒng)的定義:是一組控制和管理計算機硬件和軟件資源,合理的對各類作業(yè)進行調(diào)度以及方便用戶使用的程序集合。
9.高級調(diào)度(長度調(diào)度或作業(yè)調(diào)度):用于決定把外存上處于后備隊列中那些作業(yè)調(diào)入內(nèi)存,并為他們創(chuàng)建進程,分配必要的資源,然后再將新創(chuàng)建的進程排列到就緒隊列上,準備執(zhí)行。
10.低級調(diào)度(進程調(diào)度或短程調(diào)度):用來決定就緒隊列中的哪個進程應(yīng)獲得處理機,然后再由分派程序執(zhí)行把處理機分配給該進程的具體操作。
11.中級調(diào)度(中程調(diào)度)引入目的:為了提高內(nèi)存利用率和系統(tǒng)吞吐量。
12.進程通信的類型:共享存儲系統(tǒng),消息傳遞系統(tǒng),管道通信,信號量通信。
13.產(chǎn)生死鎖的原因:競爭資源,進程間推進順序非法
14.產(chǎn)生死鎖的必要條件:互斥條件,請求和保持條件,不剝奪條件,環(huán)路等待條件。
15.預(yù)防死鎖:(1)摒棄“請求和保持”條件:若系統(tǒng)有足夠的資源分配給某進程,便可把其需要的所有資源分配給該進程,則該進程在整個運行期間,便不會提出資源請求,從而摒棄了請求條件,在分配資源時只要有一種資源不能滿足其進程的要求,即使其余所需的各資源都空閑,也不分配給該進程,而該進程等待。由于該進程的等待時間,他并未占有任何資源,因而也摒棄了保持條件,從而可以避免發(fā)生死鎖。(2)摒棄“不剝奪”條件:當一個已經(jīng)保持了某些資源的進程,在提出新的資源請求而不能立即得到滿足時,必須釋放它已經(jīng)保持了的所有資源,待以后需要時再重新申請,即某一進程已經(jīng)占有的資源,在運行中會被暫時的釋放掉,也可被認為是被剝奪了,從而摒棄了不剝奪條件。(3)摒棄“環(huán)路等待”條件:所以進程對資源的請求必須嚴格按資源序號遞增的次序提出,這樣在所形成的資源分配圖中,不可能在出現(xiàn)環(huán)路,因而摒棄了環(huán)路等待條件。
16.為什么引入動態(tài)重定位?如何實現(xiàn)?
答:為了在程序執(zhí)行過程中,每當訪問指令或數(shù)據(jù)時,將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址,所以引入了動態(tài)重定位.可在系統(tǒng)中增加一個重定位寄存器,用它來裝入(存放)程序在內(nèi)存中的起始地址,程序在執(zhí)行時,真正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加而形成的,從而實現(xiàn)動態(tài)重定位.
17.進程的三種基本狀態(tài):就緒狀態(tài),執(zhí)行狀態(tài),和阻塞狀態(tài)。
18.進程控制塊(pcb)的作用:使一個在多道程序環(huán)境下不能獨立運行的程序(數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能與其他進程并發(fā)執(zhí)行的進程。
19.進程控制塊的定義:是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。
20.引入進程的目的:為了使多個程序能并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量。
21.引入線程的目的:為了減少程序在并發(fā)執(zhí)行時所付出的空開銷,使操作系統(tǒng)具有更好的并發(fā)性。
線程的屬性:輕型實體,獨立調(diào)度和分派的基本單位,可并發(fā)執(zhí)行,共享進程資源。
22.分時系統(tǒng)的特征:多路性,獨立性,及時性和交互性。
23.進程的特征:結(jié)構(gòu)特征,動態(tài)性,并發(fā)性,獨立性和異步性。
24.多道批處理系統(tǒng)的特征:(1)提高cpu的利用率(2)提高內(nèi)存和輸入輸出設(shè)備的利用率(3)增加系統(tǒng)吞吐量:多道性,無序性和調(diào)度性(4)宏觀上并行微觀上串行
優(yōu)缺點:資源利用率高,系統(tǒng)吞吐量大,平均周期長,無交互能力;需解決的問題:處理機管理問題,內(nèi)存管理問題,輸入輸出設(shè)備管理問題,作業(yè)管理問題
25.單道批處理系統(tǒng)含義:由于系統(tǒng)對作業(yè)的處理都是成批地進行的,且在內(nèi)存中始終只保持一道作業(yè)。單批道處理系統(tǒng)者在提高系統(tǒng)資源后利用率和系統(tǒng)吞吐量。
26.分時系統(tǒng)的定義:在一臺主機上接連了多個帶有顯示器和鍵盤的終端,同時允許多個用戶通過自己的終端以交互方式使用計算機共享主機中的資源。分時系統(tǒng)是為了滿足用戶要求所形成的一種新型os.
27.實時系統(tǒng)是指系統(tǒng)能及時響應(yīng)外部事件的請求,在規(guī)定時間內(nèi)完成對該事件的處理,并控制所有實時任務(wù)協(xié)調(diào)一致的運行。
28.傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu):模塊化的os結(jié)構(gòu),分層式操作系統(tǒng)結(jié)構(gòu),微內(nèi)核操作系統(tǒng)結(jié)構(gòu)(能有效地支持多處理機運行,所以非常適用于分布式系統(tǒng)環(huán)境,具有以微內(nèi)核為操作系統(tǒng)核心,以客戶/服務(wù)為基礎(chǔ),并采用了面向?qū)ο蟪绦蛟O(shè)計方法的特征)。
29.程序的并發(fā)執(zhí)行的實質(zhì):宏觀下程序并行和微觀下程序串行
30.先來先服務(wù)調(diào)度算法:周轉(zhuǎn)時間=完成時間-到達或提交時間
帶權(quán)周轉(zhuǎn)時間=周轉(zhuǎn)時間/服務(wù)時間
31.常用的幾種實時調(diào)度算法:最早截止時間優(yōu)先即edf算法,最低松弛優(yōu)先即llf算法
32.多處理器系統(tǒng)的類型:緊密耦合mps和松弛耦合mps,對稱多處理器系統(tǒng)和非對稱多處理器系統(tǒng)
34.死鎖的解除:剝奪資源,撤銷進程
35.內(nèi)存的連續(xù)分配方式:單一連續(xù)分配;固定分區(qū)分配;動態(tài)分區(qū)分配;動態(tài)重定位分配。
36.動態(tài)分區(qū)分配算法間的區(qū)別:(1)首次適應(yīng)算法ff:分配內(nèi)存時,順序查找,直到找到滿足要求的空閑分區(qū)為止,優(yōu)先利用內(nèi)存中的低址空閑區(qū)為大作業(yè)的內(nèi)存空間創(chuàng)造了條件,每次都從開頭找,增加查找空閑分區(qū)時的開銷。(2)循環(huán)首次適應(yīng)算法:從上次找到的空閑分區(qū)的下一個空閑分區(qū)開始查找,直到找到一個能滿足要求的空閑分區(qū),從中劃出一塊與請求大小相等的的內(nèi)存空間分配給作業(yè),使內(nèi)存中的空閑分區(qū)分布均勻,減少查找空閑分區(qū)的開銷,但會缺乏大的空閑分區(qū)。(3)最佳適應(yīng)算法:所有空閑分區(qū)按容量從小到大順序排列,每次分配內(nèi)存時,把能滿足要求且最小的空閑分區(qū)分配給作業(yè)。但會留下許多難以利用的小空閑區(qū)。
37.引起進程阻塞和喚醒的事件:請求系統(tǒng)服務(wù);啟動某種操作;新數(shù)據(jù)尚未到達;無新工作可做。
38.阻塞原語:block();喚醒原語:wakeup();掛起原語:suspend();激活原語:active()
39.臨界區(qū):每個進程中訪問臨界資源的那段代碼。
40.進程同步機制應(yīng)遵循的規(guī)則:空閑讓進;忙則等待;有限等待;讓權(quán)等待。
41.p、v操作:wait(s):while s≤0 do no-op
s:=s-1;
signal(s): s:=s+1;
42.文件的邏輯結(jié)構(gòu)是指從用戶的觀點出發(fā)所觀察到的文件組織形式,也就是用戶可以直接處理的數(shù)據(jù)及其結(jié)構(gòu),它獨立于物理特性。有記錄式文件和流式文件。
43.文件的物理結(jié)構(gòu)則是指文件在外存上的存儲組織形式,與存儲介質(zhì)的存儲性能有關(guān)。有連續(xù)文件、串連文件、索引文件。
44.什么是分頁?什么是分段?二者主要有何區(qū)別?
答:分頁是將一個進程的邏輯地址空間分成若干大小相等的部分,每一部分稱作頁面。
分段是一組邏輯信息的集合,即一個作業(yè)中相對獨立的部分。
分頁和分段的主要區(qū)別是:分頁和分段都采用離散分配的方式,且都要通過地址映射機構(gòu)來實現(xiàn)地址變換,這是它們的共同點;不同點:頁是信息的物理單位,段是信息的邏輯單位;頁的大小是由系統(tǒng)固定的,段的長度因段而異,由用戶決定;分頁的作業(yè)地址空間是一維的,分段的作業(yè)地址空間是二維的
45.spooling(假脫機操作)定義:在聯(lián)機情況下實現(xiàn)的同時外圍操作。
46.spooling技術(shù)是對脫機輸入、輸出系統(tǒng)的模擬。
47.spooling系統(tǒng)的特點:提高了i/o的速度;將獨占設(shè)備改造為共享設(shè)備;實現(xiàn)了虛擬設(shè)備功能
操作系統(tǒng)學結(jié) [篇4]
1.進程通信的方式
進程通信ipc——inter process communication,通信方式主要有:
管道pipe,管道是一種半雙工單向通信的方式,適用于親緣關(guān)系的進程,通常指父進程與子進程。有名管道named pipe,與管道類似,不同在于它適用于所有的進程,而不知是親緣關(guān)系進程。
信號量semophone,某個資源可能會被多個進程同時訪問,為了保證進程不沖突,使用信號量來確保同一時間只有一個進程在訪問資源。通常是一種鎖機制,用來使進程與進程或同一進程間多個線程同步。
消息隊列message queue,存放于內(nèi)核中。
信號signal,用來通知某個接受進程某個事件已經(jīng)發(fā)生。
共享內(nèi)存shared memory,有一個進程創(chuàng)建出一片共享的內(nèi)存塊,可被其他進程訪問,是最快的ipc方式。
套接字socket,socket是一種通信接口,通常適用于internet的通信。
2.線程同步的幾種方式
臨界區(qū),當多個線程訪問一個獨占資源時,臨界區(qū)保證了同一時間只有一個線程在訪問,其他線程會被掛起,知道訪問進程退出臨界區(qū),在由其他線程競爭。
互斥量,類似于臨界區(qū),不同的是互斥量支持進程兼得同步,而臨界區(qū)是線程間的。
事件,某個事件發(fā)生后,可以去執(zhí)行接下來的任務(wù),允許進程在執(zhí)行某個事件后,喚醒其他進程去執(zhí)行任務(wù)。
信號量,當需要限制訪問共享資源的線程個數(shù)時,使用信號量,信號量通過使用pv操作來實現(xiàn)同步。
3.線程實現(xiàn)的方式
線程分為內(nèi)核線程kst(kernal support thread)與用戶線程ult(user level thread)。
內(nèi)核線程由系統(tǒng)創(chuàng)建,管理,調(diào)度,所以系統(tǒng)回為線程安排時間片,一旦某個線程阻塞,不會影響其他線程,但是內(nèi)核線程有內(nèi)核管理,線程的創(chuàng)建以及用戶態(tài)/內(nèi)核態(tài)的模式切換代價都比較大,所以效率比較低。
用戶線程是由用戶程序來進行創(chuàng)建,調(diào)度,管理。相對于內(nèi)核線程來說,更加靈活,由于是在用戶態(tài)上的管理,所以代價比內(nèi)核管理要少,效率更高,缺點是并發(fā)性不足,一旦一個線程進入阻塞態(tài),那么其他線程都會阻塞,因為用戶線程沒有時間片的概念。
4.用戶態(tài)和內(nèi)核態(tài)的區(qū)別
用戶態(tài)和內(nèi)核態(tài)是操作系統(tǒng)運行的兩種級別,當一個進程執(zhí)行系統(tǒng)調(diào)用而進入內(nèi)核代碼中,稱其處于內(nèi)核態(tài),內(nèi)核態(tài)下cpu處于擁有系統(tǒng)最高權(quán)限的內(nèi)核代碼中,執(zhí)行內(nèi)核代碼會用到當前進程的內(nèi)核棧,每個進程都有自己的內(nèi)核棧;當進程在執(zhí)行用戶代碼的時候,cpu處于系統(tǒng)最低權(quán)限的用戶代碼中運行。
內(nèi)核態(tài)下cpu可以執(zhí)行任何指令,用戶態(tài)下只能執(zhí)行非特權(quán)指令。內(nèi)核態(tài)可以隨時切換到用戶態(tài),而用戶態(tài)切換大內(nèi)核態(tài)只有通過系統(tǒng)調(diào)用和中斷才行。一般一個程序是先在用戶態(tài)下執(zhí)行,需要使用系統(tǒng)調(diào)用時,通過軟中斷來進入內(nèi)核態(tài)。
5.用戶棧和內(nèi)核棧的區(qū)別
轉(zhuǎn):內(nèi)核創(chuàng)建進程,會為進程創(chuàng)建兩個棧,用戶棧和內(nèi)核棧。用戶棧——存在于用戶空間,當進程出于用戶態(tài)時cpu堆棧指針寄存器存放用戶棧的地址,使用用戶棧;當進程出于內(nèi)核態(tài)時,cpu堆棧指針寄存器存放內(nèi)核棧地址,使用內(nèi)核棧。
當由用戶態(tài)切換到內(nèi)核態(tài)時,首先將用戶棧地址存在內(nèi)核棧,然后讓cpu堆棧指向內(nèi)存棧;由內(nèi)核態(tài)切換到用戶態(tài),將內(nèi)核棧保存的用戶棧地址回復(fù)為cpu堆棧指針內(nèi)容即可。
我們是如何知道內(nèi)核地址的呢?關(guān)鍵在于進程從用戶態(tài)到內(nèi)核態(tài)轉(zhuǎn)換后,內(nèi)核?偸强盏,因為用戶態(tài)使用用戶棧,轉(zhuǎn)換到內(nèi)核態(tài),內(nèi)核棧保存進程在內(nèi)核中運行的信息。但是進程從內(nèi)核態(tài)再到用戶態(tài)時,內(nèi)核棧就會被清空。(這個我認為是因為用戶態(tài)的權(quán)限原因,無法獲取內(nèi)核態(tài)的信息,所以為空)所以進入內(nèi)核態(tài),只需將內(nèi)核棧棧頂?shù)刂吩O(shè)置為cpu堆棧內(nèi)容。
操作系統(tǒng)學結(jié) [篇5]
進程
為描述和有效控制多個程序的并發(fā)執(zhí)行,引入“進程”。什么是進程呢?簡單地說,進程就是程序運行的一個動態(tài)實體。打個比方,如果把程序比作是菜譜,那么進程就是廚師(可以比作操作系統(tǒng))炒菜的全過程。一個程序可以對應(yīng)多個進程。另外再提一下線程的概念,進程是線程的容器,進程向操作系統(tǒng)申請資源,而運行在進程下的(多個線程)則直接使用該進程所擁有的資源。就是說進程為其內(nèi)的多個線程提供了各種資源和環(huán)境,這些線程在進程下可以方便的切換、通信和共享數(shù)據(jù)而不用操作系統(tǒng)的介入進而效率大大提高;相比之下,進程的切換、通信和共享數(shù)據(jù)要麻煩得多,需要切換到“管態(tài)”,耗費大量的系統(tǒng)開銷。
進程由三部分組成,代碼段、數(shù)據(jù)段和pcb。結(jié)構(gòu)如下圖所示。
進程調(diào)度
進程調(diào)度主要是幾種經(jīng)典的算法,注意在了解算法之前應(yīng)該清楚目標是什么。目標主要考慮四方面:公平性,cpu利用率,系統(tǒng)吞吐量,進程的響應(yīng)時間。用戶要求響應(yīng)時間盡量地短,系統(tǒng)則要求系統(tǒng)吞吐量高、cpu利用率高、各類資源平衡利用。
fcfs,先來先服務(wù),最簡單的算法,基于fifo隊列。明顯的缺點就是對短進程不公平,想象一下,你去超市只買一袋牛奶,而你前面排著10個人,每個人都是一大車的東西。
spf短進程優(yōu)先調(diào)度是對fcfs的改進,有效地降低了平均等待時間,提高了系統(tǒng)的吞吐量(很適合批處理系統(tǒng))。但是缺點就是對長進程不利,甚至會餓死長進程(永遠執(zhí)行不到——在1973年關(guān)閉mit的ibm7094時,發(fā)現(xiàn)有一個低優(yōu)先權(quán)的進程是1967年提交的但一直都未運行)。該調(diào)度算法的最大難點在于對還沒有執(zhí)行的進程,怎樣才能準確預(yù)測它的執(zhí)行時間長短,怎么選出“最短進程”,書上說是根據(jù)用戶提交時的估計,其實我覺得還可以建立模型進行估算(比如pcb中的數(shù)據(jù)信息可以搜集起來作為歷史數(shù)據(jù),根據(jù)歷史數(shù)據(jù)來預(yù)測未執(zhí)行的進程),但無論如何都存在著不準確性和巨大開銷的危機。
高優(yōu)先權(quán)優(yōu)先調(diào)度算法,有效地分清任務(wù)的輕重緩急。打個比方,你用鼠標點擊一個圖標,但是為了完成之前的事件,“鼠標點擊”事件不得不等待,想想看,一個鼠標點擊都要等個10分鐘那將是多大的災(zāi)難。 基于響應(yīng)比的優(yōu)先權(quán)是比較理想的一種調(diào)度,但又不可避免地帶來系統(tǒng)頻繁計算響應(yīng)比的開銷。
時間片輪轉(zhuǎn)法有很好的交互性,其主要問題是上下文切換需要額外系統(tǒng)開銷,由此時間片大小的設(shè)置很重要。多級反饋隊列調(diào)度算法基于時間片算法,動態(tài)地確定各進程的優(yōu)先權(quán)并根據(jù)優(yōu)先權(quán)的不同設(shè)置不同大小的時間片獲得了很好的性能。
進程同步
如何訪問臨界資源是解決問題的關(guān)鍵。如圖所示。
注意到,先申請資源信號量,再申請互斥信號量,互斥信號量嚴格地配對,資源性信號量交叉配對。(如果先申請互斥信號量呢?——申請到使用權(quán)的進程,如果阻塞等待資源時,將永遠阻塞!)另外,注意讀并發(fā)程序的方法。
死鎖問題
由于多個進程競爭資源而引發(fā)的問題。死鎖發(fā)生的四個必要條件:1.互斥;2.請求和保持:一個進程占有一些資源而等待其他進程的資源;3.不剝奪;4.環(huán)路等待。
解決方法
1. 預(yù)防死鎖:系統(tǒng)通過事先破壞死鎖的一個或者若干個必要條件。
互斥條件是不能破壞的,否則并發(fā)執(zhí)行就沒有意義了。
對于“請求保持”的破壞,可以要求進程要么一次性申請到所需所有資源然后一次性釋放,要么等待,這樣很顯然會造成資源的極大浪費,因為對于很多資源進程可能只需要用一會兒,可是由于還有資源需要用而閑置那些已用完的資源。
對于“不剝奪”的破壞,很可能造成極大的系統(tǒng)資源和不必要的開銷,因為如果剝奪了進程對資源的使用權(quán)很可能要撤銷很多之前的操作,很多工作都白費。
對于“環(huán)路等待”的破壞,則需要進程按照嚴格的順序執(zhí)行。
2. 避免死鎖:引進“安全系統(tǒng)”的概念,用銀行家算法可以有效地避免死鎖。
3. 檢測和解除:利用資源分配圖檢測死鎖狀態(tài)(實現(xiàn)時構(gòu)造類似于銀行家算法中的數(shù)據(jù)結(jié)構(gòu)),然后解除死鎖(兩種方法:剝奪;撤銷進程)。
進程間的通信
進程間估計通信機制可歸結(jié)為三類:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)和管道通信。
【操作系統(tǒng)學結(jié)】相關(guān)文章:
化工操作實結(jié)范文08-06
操作工實結(jié)范文08-07
助研實結(jié)08-06
管理系統(tǒng)學習心得體會05-22
科目三直線行駛的操作技巧與操作要求07-25
如意結(jié)的編織方法07-07
學結(jié)自我評價08-06
生化科室實結(jié)08-06
生產(chǎn)參觀實結(jié)08-06