回覆列表
  • 1 # daazhu1

    1 .引起程序阻塞和喚醒的事件

    1)請求系統服務

    a、程序請求某資源,但系統將該資源分配給其他程序,這時請求者程序只能被阻塞,僅在其他程序釋放出該資源時,才將請求程序喚醒。

    b、啟動某項操作,當程序啟動某種操作後,如果該程序必須在該操作完成之後才能繼續執行,則必須先使該程序阻塞,以等待該操作完成。該操作完成之後,程序被喚醒。

    c、新資料尚未到達,對於相互合作的程序,如果其中一個程序需要先獲得另一個(合作)程序提供的資料才能執行以對資料進行處理,則只要其所需資料尚未到達,該程序只有(等待)阻塞。一旦得到所需資料,則喚醒該程序。

    d、無新工作可做,例如具有某種特定功能的程序,每當這種程序完成任務後,便把自己阻塞起來以等待新任務到來。例如,傳送資料的程序,若資料傳送完又沒有新的傳送任務請求,則進入阻塞,當有程序提出傳送請求時,將傳送程序喚醒。

    2. 程序阻塞過程

    程序的阻塞是程序的一種主動行為。進入Block-過程->PCB中的“執行”改為阻塞->將PCB插入阻塞佇列->轉排程程式進行重新排程。

    3. 程序喚醒過程

    阻塞程序所期待的事件出現時->由有關程序排程wakeup()原語。

  • 中秋節和大豐收的關聯?
  • 描寫雨後清晨青山的句子?