操作系統之QQ作業-3

  1. 在操作系統中,引入進程的目的是什麼?
    a.程序的執行具有順序性封閉性可再現性特徵
    b.併發環境中,存在多個程序同時訪問同一個資源的狀況,因而失去了程序對資源操作的封閉性。
    c.併發環境中,各程序執行的異步性導致無法預測共享資源狀態的變化情況,是程序執行的結果不再具有“可再現性”

  2. 進程控制包括哪些操作?
    (說一點,以下表格中,原語和引發事件並不是一一對應關係,可以看完相關原語再來看相應事件)

a.進程創建

創建原語 引發事件
1.向系統申請空閒的PCB 用戶登錄
2.爲新進程分配資源,例如分配內存空間存放程序和數據 作業調度
3.初始化新進程的PCB,在PCB中填寫進程標識符、進程狀態、程序和數據的地址、資源清單等 提供系統服務(爲響應應用程序請求創建新的服務進程)
4.將新建進程的PCB排入就緒隊列 應用程序請求(使用系統調用創建進程)

b.進程終止

撤銷原語 引發事件
1.查找撤銷進程的PCB 進程正常結束,即進程執行完需要做的工作
2.若進程處於運行狀態,予以終止,並進行進程調度,以重新挑選其他進程運行 進程異常結束,即運行期間由於程序出現某些錯誤和故障而迫使進程終止
3.若進程有子孫,予以終止 外界干預,即並非本進程在運行期間出現故障,而是由進程以外的事件引起進程終止
4.歸還資源
5.從所在隊列移出

c.進程阻塞

阻塞原語 引發事件
1.停止進程的執行 請求系統服務
2.將進程插入阻塞隊列 啓動某種操作
3.重新調度 新數據尚未到達
無新工作可做

d.進程喚醒

喚醒原語 引發事件
1.將進程從阻塞隊列解下 請求系統服務
2.將進程插入就緒隊列 啓動某種操作
3.改變進程在PCB中的狀態 新數據尚未到達
無新工作可做

e,進程切換

切換原語 引發事件
1.保存當前執行進程的CPU現場 時鐘中斷
2.修改當前運行態進程的PCB信息 I/O設備中斷
3.將當前進程的PCB移入相應狀態等待隊列 異常
4.恢復系統調度進程的CPU現場 陷入
5.選擇另一個將要進行的進程 當前時間片到
6.保存系統調度進程的CPU現場 有更高優先級的進程到達
7.修改系統調度進程的PCB信息(修改爲運行態) 當前進程主動阻塞
8.恢復新調入進程的從從CPU現場 當前進程終止
  1. 在操作系統中,進程實體是如何實現的?
    a.進程實體是指放在操作系統實現進程時,把進程結構組織分爲三個部分:程序段、數據段和PCB
    b.程序段存放進程執行的程序代碼,數據段存放程序執行過程中的使用大抵數據
    c.PCB是操作系統中標識進程的唯一數據結構。PCB中記錄了與進程執行相關的所有數據信息,包括進程標識符、進程當前狀態、進程隊列指針、程序和數據段地址、CPU現場(上下文)、通信信息、家族關係、佔用資源清單。

  2. 操作系統如何實現進程狀態轉換?
    a.進程狀態的轉換主要是由進程控制原語實現。
    b.對三種基本狀態的表述。
    阻塞態,指因等待某種時間的發生而不能運行(即使CPU空閒,也無法運行的進程)
    就緒態,已經具備運行,但由於沒有空閒CPU而暫時不能運行(擁有除處理機之外的所有需要的資源,只欠CPU)
    運行態,佔有CPU,並CPU上運行(單核處理機系統,每一個時刻最多隻有一個進程處於運行態)
    c.在三狀態模型中,引起狀態轉換的事件和實施狀態轉換的操作,例如:
    就緒態 → 運行態:進程被調度(一個進程被調度進程選中)
    運行態 → 就緒態:時間片到,或CPU被優先級高的進程搶佔(時間片用完或者優先級搶佔)
    運行態 → 阻塞態:等待系統分配資源,或等待某事件發生(主動行爲)或等待某個事件發生
    阻塞態 → 就緒態:資源分配到位,或等待事件發生(被動行爲)或等待的事件已發生而被喚醒

  3. 操作系統提供了哪些進程通信機制
    a.共享存儲器系統:分爲共享數據結構和共享存儲區。共享數據結構由於傳遞的數據較少,所以主要用於傳遞資源狀態或控制信息,如信號和信號量;共享存儲區則是提供可共享的內存空間,因而可以傳遞任意數量的數據。
    b.管道:一種半雙工的通信機制,允許在兩個進程間創建數據流。可以藉助文件系統調用實現。
    c.消息傳遞系統:進程交換以消息爲單位,用戶通過系統調用實現信息的傳遞,例如消息隊列。消息傳遞機制不要求通信的進程間擁有共享的設備資源,因而可用於網絡通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章