作業系統 程序的非同步性

2021-07-15 09:59:52 字數 738 閱讀 7796

非同步性是指程序以不可預知的速度向前推進。記憶體中的每個程序何時執行,何時暫停,以怎樣的速度向前推進,每道程式總共需要多少時間才能完成等,都是不可預知的。

是程式併發執行時,程式之間的相互制約關係導致了併發程式這種「執行——暫停——執行」這種間斷性的活動規律。

比如,當正在執行的程序提出某種資源請求時,如列印請求,而此時印表機正在為其他某程序列印,由於印表機屬於臨界資源,因此正在執行的程序必須等待,且放棄處理機,直到印表機空閒,並再次把處理機分配給該程序時,該程序方能繼續執行。可見,由於資源等因素的限制,程序的執行通常都不是「一氣呵成」,而是以「停停走走」的方式執行。

非同步性就是描述程序這種以不可預知的速度走走停停、何時開始何時暫停何時結束不可預知的性質。

也就是說,如果傳統意義上的程式沒有在作業系統中為之配備程序控制塊(pcb),沒有用它來描述程序基本情況和活動過程,進而控制和管理程序,這樣就會使程式在併發執行的時候失去其封閉性,也失去了可再現性。

但是,如果作業系統採用了程序同步機制,雖然程式具有非同步性(走走停停、以不可預知的速度前進),但仍能保證程序併發執行的結果是可再現的。

所以,只要在作業系統中配置有完善的程序同步機制,且執行環境相同,作業經多次執行都會獲得完全相同的結果。

因此,非同步執行方式是允許的。

作業系統 程序

在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...

作業系統 程序

程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就...

作業系統程序

乙個程序就是乙個正在執行的程式。它包括 程序狀態。包括 每個程序在作業系統中用程序控制塊pcb來表示,用來儲存與該程序有關的各種狀態資訊。pcb只是基本原理中的說法,對於乙個真實的作業系統可能不叫pcb,比如linux中叫做任務結構體 task struct 分時系統是在程序之間快速切換,以便使用者...