




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 17第2章 進程管理 輔導(fdo)與自測2.1 本章(bn zhn)知識點進程(jnchng)是操作系統中最基本、最重要的概念之一,在計算機系統中,進程不僅是最基本的并發執行的單位,而且也是分配資源的基本單位。引入進程這個概念,對于我們理解、描述和設計操作系統具有重要意義。本章的主要知識點為: (1)進程的概念進程是程序在并發環境中的執行過程。進程最根本的屬性是動態性和并發性。要注意進程與程序的區別。進程的五個基本特征是:動態性、并發性、獨立性、制約性、結構性。一個進程實體通常由程序、數據、棧和進程控制塊(PCB)這四部分組成。進程控制塊是進程組成中最關鍵的部分。每個進程
2、有唯一的進程控制塊。操作系統根據PCB對進程實施控制和管理。進程的動態、并發等特征是利用PCB表現出來的。為了對所有進程進行有效地管理,常將各進程的PCB用適當的方式組織起來。一般說來,進程隊列有以下幾種方式:線性方式、鏈接方式和索引方式。進程有三個基本狀態:運行態、就緒態和阻塞態。在一定的條件下,進程的狀態將發生轉換。下圖所示為進程的狀態及其轉換。運行態分配到CPU時間片到等待某事件發生所等待的事件發生阻塞態就緒態圖 進程狀態及其轉換 (2)進程管理就如同人類的族系一樣,系統中眾多的進程也存在族系關系:由父進程創建子進程,子進程再創建子進程,從而構成一棵樹形的進程族系圖。進程作為有“生命期”
3、的動態過程,對它們的實施管理主要包括:創建進程、撤消進程、掛起進程、恢復進程、改變進程優先級、封鎖進程、喚醒進程、調度進程等。在Linux系統中,進程有5種狀態。進程分為系統進程和用戶進程。其中,系統進程只運行在內核模式下;用戶進程既可以在用戶模式下運行,也可以通過系統調用等運行在內核模式下。Linux的task_struct結構相當于其進程控制塊。Linux系統對進程的操作常用命令有:ps、kill、sleep等。常用的系統調用有:fork,exec,wait,exit,getpid,sleep,nice等。(3)進程(jnchng)通信進程通信(tng xn)是指進程間的信息交換。根據進程
4、間交換信息量的多少,分為高級進程(jnchng)通信和低級進程通信。進程的同步與互斥是指進程在推進時的相互制約關系,屬于低級進程通信。一般來說同步反映了進程之間的協作關系,往往指有幾個進程共同完成一個任務時在時間次序上的某種限制,進程相互之間各自的存在及作用,通過交換信息完成通信。如接力比賽中一組隊員使用接力棒等。進程互斥體現了進程之間對資源的競爭關系,這時進程相互之間不一定清楚其它進程的情況,往往指多個任務多個進程間的通訊制約,因而使用更廣泛。如打籃球時雙方掙搶籃板球等。我們用信號量(Semaphore)及P,V操作來實現進程的同步和互斥。生產者-消費者問題是經典的進程同步和互斥問題。(4)
5、死鎖死鎖是指多個進程循環等待他方占有的資源而無限期地僵持下去的局面。計算機系統產生死鎖的根本原因就是資源有限且操作不當。一種原因是競爭資源引起的死鎖,另一種原因是由于進程推進順序不合適引發的死鎖。產生死鎖的四個必要條件是:互斥條件,不可搶占條件,占有且申請條件,循環等待條件。如果在計算機系統中同時具備這四個必要條件時,那么會發生死鎖。一般地,解決死鎖的方法分為死鎖的預防、避免、檢測與恢復三種。2.2 典型例題解析【例1】判斷題:并發是并行的不同表述,其原理相同。( )答案 。分析 并發是指多道程序的執行在時間上是重疊的,一個程序的執行尚未結束,另一個程序的執行已經開始。但對單CPU系統而言,每
6、一時刻只有一個程序在CPU上運行(有可能此時其他的程序在進行輸入、輸出)。也就是說,占有CPU的只能有一個程序。因此,并發實際上是“在宏觀上并行執行,在微觀上串行執行”。而并行是真正意義上的并行執行,因此兩者的含義是不同的。【例2】在操作系統中引入“進程”概念的主要目的是( )。A改善用戶編程環境 B提高程序的運行速度C描述程序動態執行過程的性質 D使程序與計算過程一一對應答案 C分析 操作系統中多道程序的引入,使得它們在并發執行時共享系統資源,共同決定這些資源的狀態,因此系統中各道程序在執行過程中就出現了相互制約的新關系,程序的執行出現“走走停停”的新狀態。這些都是在程序的動態過程中發生的。
7、而程序本身是機器能夠翻譯或執行的一組動作或指令,它或者寫在紙面上,或者存放在磁盤等介質上,是靜止的。很顯然,直接從程序的字面上無法看出它什么時候運行、什么時候停頓,也看不出它是否影響其它程序或者一定受其它程序的影響。因此,用程序這個靜態概念已不能如實(rsh)反映程序并發執行過程中的這些特征。為此,人們引入進程的概念來描述程序動態執行過程的性質,這是引入“進程”概念的主要(zhyo)目的。【例3】下列進程(jnchng)狀態的轉換中,不正確的是( )。A就緒阻塞 B運行就緒 C就緒運行 D阻塞就緒答案 A分析 回答這道題要知道進程的3種基本狀態,以及它們之間的轉換關系。通過下圖可以看到,凡是圖
8、中有箭頭指向的轉換都是可行的,而沒有箭頭指向的則不可能。因此A是不正確的。運行態分配到CPU時間片到等待某事件發生所等待的事件發生阻塞態就緒態圖 進程狀態及其轉換如果有的同學記不住這張圖,那就從理解的角度進行思考。首先要理解3種狀態的含義,然后再理解它們之間的轉換。例如:運行的進程能變成就緒嗎?可以,如果運行進程的時間片到了,就必修讓出CPU,轉換為就緒態。就緒的進程能變成阻塞嗎?不可以,就緒態的進程已經具備了運行條件,只在等待CPU,怎么可能還退回到還不具備運行條件的阻塞態呢?因此,如果理解了,這張圖就可以自己畫出來,并不需要死記硬背。【例4】進程控制塊是描述進程狀態和特性的數據結構,一個進
9、程( )。A可以有多個進程控制塊 B可以和其他進程共用一個進程控制塊C可以沒有進程控制塊 D只能有唯一的進程控制塊答案 D分析 進程控制塊(PCB)是一個用于描述進程動態性質的數據結構。操作系統根據PCB對進程實施控制和管理。進程的動態、并發等特征也是通過PCB表現出來的。進程由程序、數據、棧和PCB構成。構成進程的有關程序和數據集合是進程得以存在的物質基礎,它們是進程的實體;PCB用于標識和刻畫實體的存在和變化,是進程存在的唯一標志。當系統創建一個新進程時,就為它建立一個PCB;當進程終止后,系統回收為其分配的PCB,該進程在系統中就不存在了。【例5】在執行V操作時,當信號量的值( ),應釋
10、放(shfng)一個等待該信號量的進程。 A小于0 B大于0 C小于等于(dngy)0 D大于等于(dngy)0答案 C分析 P,V操作能夠實現對臨界區的管理要求。它由P操作原語和V操作原語組成(原語是不可中斷的過程),對信號量進行操作,具體定義如下: P(S):將信號量S的值減1,即S=S1; 如果S0,則該進程繼續執行;否則該進程置為阻塞狀態,排入阻塞隊列。 V(S):將信號量S的值加1,即S=S+1; 如果S0,則該進程繼續執行;否則釋放隊列中第一個等待信號量的進程。 信號量的數據結構為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應資源的使用情況有關。當它的值大于0
11、時,表示當前可用資源的數量;當它的值小于0時,其絕對值表示等待使用該資源的進程個數。注意,信號量的值僅能由P,V操作來改變。一般來說,信號量S0時,S表示可用資源的數量。執行一次P操作意味著請求分配一個單位資源,因此S的值減1;當S0 BS=0 CS0 DS0信號量S的初值為8,在S上執行(zhxng)了10次P操作,6次V操作后,S的值為( )。 A10 B8 C6 D4若P、V操作(cozu)的信號量S初值為2,當前值為 1,則表示(biosh)有( )個等待進程。 A0 Bl C2 D3 在進程通信中,使用信箱方式交換信息的是( )。A低級進程通信 B高級進程通信 C共享內存方式 D管道
12、文件方式系統出現死鎖的原因是( )。A計算機系統發生了重大故障B有多個封鎖的進程同時存在C若干進程因競爭資源而無休止地循環等待著,而且都不釋放已占有的資源 D資源數大大少于進程數,或進程同時申請的資源數大大超過資源總數兩個進程爭奪同一個資源( )。A一定死鎖 B不一定死鎖 C不會死鎖 D以上說法都不對二、判斷題(正確的劃,錯誤的劃。)簡單地說,進程是程序的執行過程。因而,進程和程序是一一對應的。( )進程和程序是兩個截然不同的概念。( ) 程序在運行時需要很多系統資源,如內存、文件、設備等,因此操作系統以程序為單位分配系統資源。( ) 進程控制塊(PCB)是專為用戶進程設置的私有數據結構,每個
13、進程僅有一個PCB。( ) 進程執行的相對速度不能由進程自己來控制。( )進程之間的互斥,主要源于進程之間的資源競爭,從而實現多個相關進程在執行次序上的協調。( )信號量機制是一種有效的實現進程同步與互斥的工具。信號量只能由P、V操作來改變。( )V操作是對信號量執行加1操作,意味著釋放一個單位資源,如果加1后信號量的值小于等于零,則從等待隊列中喚醒一個進程,現進程變為阻塞狀態,否則現進程繼續進行。( )利用信號量的P,V操作,進程之間可以交換大量信息。( )系統產生死鎖的根本原因是資源有限且操作不當。因此,當系統提供的資源少于并發進程的需求時,系統就產生死鎖。( )三、簡答題四、應用題請同學們解答參考教材68頁的課后習題。請大家自己完成參考答案:一、CCCAA BACDB ACACD DBCBC BBCDB BCB二、2,5,7是正確的。1. ()。進程和程序不是一一對應的。3. ()。操作系統以進程為單位分配系統資源。4. ()。進程控制塊(PCB)是為系統中各個進程設置的私有數據結構。6. ()。這里把進程的同步和互斥混在一起說了。8. ()。不管信號量的值如何,現進程都繼續執行。9. ()。P,V操作只能交換少量的信息,屬于低級進程通信。10. ()。僅有系統提供的資源少于并發進程的需求這一個條件時,系統不一定產生死鎖。三和四、見
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶維修作業指導書編寫與實施考核試卷
- 樂器歷史與收藏價值考核試卷
- 熱障涂層材料考核試卷
- 2023-2024學年廣東省深圳市名校聯考高一下學期期中考試語文試題(解析版)
- 外貿英文制單課件
- 碩士研究之路
- 濟南工程職業技術學院《數據科學視角下的國際商務》2023-2024學年第二學期期末試卷
- 石家莊鐵道大學《病原生物學實驗》2023-2024學年第二學期期末試卷
- 四川省甘孜藏族自治州鄉城縣2025年三下數學期末監測模擬試題含解析
- 吉林農業科技學院《MIDI音樂基礎》2023-2024學年第一學期期末試卷
- 2025東航外事辦社會招聘自考難、易點模擬試卷(共500題附帶答案詳解)
- 中共東莞市委辦公室公開招考勞務派遣人員高頻重點模擬試卷提升(共500題附帶答案詳解)
- 建筑制圖知到智慧樹章節測試課后答案2024年秋青島理工大學
- UFIDA-U9項目制造解決方案介紹
- 《孕期并發癥:妊娠劇吐》課件介紹
- 2025-2030年復古風格男裝復興行業深度調研及發展戰略咨詢報告
- 特種電線電纜的綠色生產與科技創新
- 消防管線施工方案
- 射頻消融術治療房顫的護理
- 重慶市2025屆高三第五次質量檢測地理試題(含答案)
- 2025年中天合創煤炭分公司面向社會公開招聘煤炭專業技術人員管理單位筆試遴選500模擬題附帶答案詳解
評論
0/150
提交評論