首頁>Club>
9
回覆列表
  • 1 # 使用者1103542087066100

    作業系統中掛起和阻塞的區別如下:

    一:掛起是一種主動行為,因此恢復也應該要主動完成,而阻塞則是一種被動行為,是在等待事件或資源時任務的表現,你不知道他什麼時候被阻塞(pend),也就不能確切 的知道他什麼時候恢復阻塞。而且掛起佇列在作業系統裡可以看成一個,而阻塞佇列則是不同的事件或資源(如訊號量)就有自己的佇列;

    二:阻塞(pend)就是任務釋放CPU,其他任務可以執行,一般在等待某種資源或訊號量的時候出現。掛起(suspend)不釋放CPU,如果任務優先順序高就永遠輪不到其他任務執行,一般掛起用於程式除錯中的條件中斷,當出現某個條件的情況下掛起,然後進行單步除錯;

    三:pend是task主動去等一個事件,或訊息.suspend是直接懸掛task,以後這個task和你沒任何關係,任何task間的通訊或者同步都和這個suspended task沒任何關係了,除非你resume task;

    四:任務排程是作業系統來實現的,任務排程時,直接忽略掛起狀態的任務,但是會顧及處於pend下的任務,當pend下的任務等待的資源就緒後,就可以轉為ready了。ready只需要等待CPU時間,當然,任務排程也佔用開銷,但是不大,可以忽略。可以這樣理解,只要是掛起狀態,作業系統就不在管理這個任務了;

    五:掛起是主動的,一般需要用掛起函式進行操作,若沒有resume的動作,則此任務一直不會ready。而阻塞是因為資源被其他任務搶佔而處於休眠態。兩者的表現方式都是從就緒態裡“清掉”,即對應標誌位清零,只不過實現方式不一樣。

  • 2 # 使用者93031717322

    程序的掛起:系統在超過一定的時間沒有任何動作。

    程序的阻塞:程序因等待某一件事情(如等待I/O裝置)而暫時不能執行的狀態,此時即使處理機空閒,程序也無法使用。系統中處於阻塞態(又稱封鎖態、等待態、睡眠態)的程序也可以有多個。程序的組成 程式: 描述了程序所要完成的功能。是程序存在的物質基礎。資料: 是程式加工的物件。程序控制塊PCB:用來描述程序的一切靜態和動態的特徵,作業系統只能透過它來感知和管理程序。每個程序都有且僅有一個程序控制塊。程序控制塊的內容:PCB的具體內容隨不同系統而異,一般包括以下資訊: · 程序標識: 唯一地標識程序的名稱或程式碼 · 程序狀態: 標識程序是執行態、就緒態或阻塞態 · 程序實體: 指示程序的程式部分和資料部分在儲存器中的位置和大小 · 排程資訊(優先數): 確定就緒程序轉為執行程序的優先順序 · 資源資訊: 描述記憶體佔用、外設佔用等資訊 · 現場資訊: 包括程式計數器、程式狀態字、累加器、變址暫存器的當前值 · 程序通訊資訊:用於程序間的通訊

  • 中秋節和大豐收的關聯?
  • 安恆密盾怎麼保護