2.重點與難點:
2.1進(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)換開銷要小很多。
2.2信號量處理:
信號量和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)餐問題
相關(guān)推薦:推薦:2010年計算機軟件水平考試必備完美攻略北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |