一、進(jìn)程相關(guān)的概念:
進(jìn)程、線程和管程
這是三個看起來似乎比較容易混淆的概念,所以在復(fù)習(xí)的時候一定要牢記其定義和相互之間的區(qū)別。
*進(jìn)程
進(jìn)程是一個可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的運行過程。也就是說,它是運行中的程序,是程序的一次運行活動。在操作系統(tǒng)中,進(jìn)程是進(jìn)行系統(tǒng)資源分配、調(diào)度和管理的最小單位。
*線程
對于一些多線程程序來講,其包含兩條或兩條以上并發(fā)運行的部分,每個部分就稱作一個線程,每個線程都有獨立的執(zhí)行路徑。線程是處理器分配資源的最小單位。
*管程
管程是一種并發(fā)性的構(gòu)造,它包括用于分配一個共享資源或一組共享資源的數(shù)據(jù)和過程。為了完成分配資源的功能,進(jìn)程必須調(diào)用特定的管程入口。
操作系統(tǒng)中,多任務(wù)處理一般有兩種方式:基于進(jìn)程和基于線程;谶M(jìn)程的多任務(wù)處理的特點是允許計算機同時運行兩個或更多的程序。而基于線程的多任務(wù)處理是指一個程序可以同時執(zhí)行兩個或者多個任務(wù)的功能。
多線程程序比多進(jìn)程程序需要更少的管理費用。進(jìn)程是重量級的任務(wù),需要分配它們自己獨立的地址空間。進(jìn)程間的通信和相互轉(zhuǎn)換需要很多的開銷。而線程是輕量級的任務(wù),它們共享相同的地址空間并且分享同一個進(jìn)程。線程間的通信和轉(zhuǎn)換開銷要小很多。
二、信號量處理:
信號量和P-V操作
為了解決進(jìn)程同步的問題,提出了信號量機制。這一機制取得了很大的發(fā)展,從整型信號量到記錄型信號量,再進(jìn)而發(fā)展為“信號量集”機制。不過,在原理上和考試中,一般我們都只涉及整型信號量機制。
對于互斥臨界區(qū)的管理要求:
n 有空則進(jìn)
n 無空等待
n 兩者擇一
n 有先等待
在整型信號量機制中,信號量被定義為一個整型變量,除初始化外,僅能通過兩個標(biāo)準(zhǔn)的原子操作wait(s)和signal(s)來訪問。其通常被分別稱作P、V操作。描述如下:
P操作
I. S-1→S
II. 如果S<0,則該進(jìn)程進(jìn)入等待狀態(tài);否則繼續(xù)進(jìn)行
V操作
I. S+1→S
II. 如果S≥0,則喚醒隊列中的一個等待進(jìn)程
進(jìn)程互斥的情況初值是1,而同步的初值是0
進(jìn)程同步的問題相對來說是比較復(fù)雜的,這其中一些比較經(jīng)典的進(jìn)程同步問題,如:
*生產(chǎn)者—消費者問題
*讀者—寫者問題
*哲學(xué)家進(jìn)餐問題
三、各種調(diào)度算法:
操作系統(tǒng)中,涉及到的調(diào)度比較多,如進(jìn)程調(diào)度、作業(yè)調(diào)度、磁盤調(diào)度等。但是其調(diào)度算法的原理都大致相同。進(jìn)程調(diào)度是比較典型的一類調(diào)度,其調(diào)度算法較多。包括:
*先來先服務(wù)
*優(yōu)先數(shù)調(diào)度
*輪轉(zhuǎn)法
*短作業(yè)優(yōu)先
通過對這些調(diào)度算法的復(fù)習(xí),對我們掌握其他種類調(diào)度的調(diào)度算法也會很有幫助。
例題: 一臺 PC 計算機系統(tǒng)啟動時,首先執(zhí)行的是__(42)__,然后加載__(43)__。在設(shè)備管理中,虛擬設(shè)備的引入和實現(xiàn)是為了充分利用設(shè)備,提高系統(tǒng)效率,采用__(44)__來模擬低速設(shè)備(輸入機或打印機)的工作。
例題:設(shè)有 7 項任務(wù),分別標(biāo)記為 a、b、c、d、c、f 和 g,需要若干臺機器以并行工作方式來完成,它們執(zhí)行的開始時間和完成時間如下表所示:
信號量例題:
在某超市里有一個收銀員,且同時最多允許有n個顧客購物,我們可以將顧客和收銀員看成是兩類不同的進(jìn)程,且工作流程如下圖所示。為了利用PV操作正確地協(xié)調(diào)這兩類進(jìn)程之間的工作,設(shè)置了三個信號量S1、S2和Sn,且初值分別為0、0和n。這樣圖中的a應(yīng)填寫__C__,圖中的b1、b2應(yīng)分別填寫__D_,圖中的c1、c2應(yīng)分別填寫__A。 (操作系統(tǒng))?
相關(guān)推薦:2010年計算機軟件水平考試時間安排通知北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |