程序是資源分配與排程的基本單位。
多道程式環境下,處理機管理可歸結為對程序的管理,所以,處理機管理主要研究程序的排程管理。
主要任務就是對處理機進行分配,並對其執行進行有效的管理和控制。
順序執行時的特徵:①順序性:處理機嚴格的按照所規定的順序執行,每一操作必須在下乙個操作開始之前結束②封閉性:程式執行時獨佔資源,程式一但開始執行,其計算結果就取決於程式本身,不受外界因素影響
③可再現性:程式重複執行多次時,必將得到相同的結果。
例:1、畫出下面四條語句的前趨圖:
程式併發執行的特徵:①間斷性:由於它們共享資源,以及完成同一項任務相互合作,致使這些程式之間形成了相互制約的關係。從而導致程式 執行——暫停——執行②失去封閉性:因為資源共享,比如處理機分配給某個程序,其他程式就必須等
③不可再現性:由於失去了封閉性,也導致失去可再現性
程序=程式段+資料段+程序控制塊(pcb)
程序的狀態就緒狀態:乙個程序獲得了除處理機外的一切所需資源,一旦得到處理機即可執行,則稱此程序處於就緒狀態。
執行狀態: 當乙個程序在處理機上執行時,則稱該程序處於執行狀態。
阻塞狀態:乙個程序正在等待某一事件發生(例如請求i/o而等待i/o完成等)而暫時停止執行,這時即使把處理機分配給它也無法執行,故稱該程序處於阻塞狀態。
建立狀態:程序剛建立,但還不能執行,os還沒有把它加到可執行程序組中,通常是還沒有載入到主存中的新程序。
終止狀態:os從可執行程序組中釋放出的程序,或者是因為它自身停止了,或者是因為某種原因被取消。程序不在適合執行,但與作業相關的表和其它資訊臨時被os保留起來,為其他程式提供所需資訊。
程序的三態五態變化
為了確保系統的安全性,常將處理機的執行狀態分為系統態(管態)和使用者態(目態)。
程序控制由作業系統核心實現,執行於系統態。
原語(primitive)是由若干條指令組成的,用於完成特定功能的乙個特殊過程。它與一般過程的區別在於:它們是原子操作(action operation)。
引起建立程序的事件:①使用者登入
②作業排程
③提供服務
④應用請求
①②③由系統核心建立新程序 ④由應用程式建立新程序
引起程序終止的事件:程序同步是指對多個相關程序在執行次序上的協調。這些程序相互合作,在一些關鍵點上可能需要互相等待或互通訊息。(1)正常結束
(2)外界干預 [操作員或系統干預、父程序請求、父程序終止]
(3)異常結束 [越界錯誤、保護錯、非法指令、特權指令錯、執行超時、等待超時、算術運算錯、i/o故障 ]
———排程和分派的基本單位
(程序——作為資源擁有的基本單位。)
引入執行緒是為了減少程式再併發執行時所付出的時空開銷,使os具有更好的併發性
作業系統 第二章程序的控制與描述(5)
通訊鏈路 communication link 要在傳送程序和接收程序之間能進行通訊,必須在兩者之間建立一條通訊鏈路。兩種方式 顯式的 建立連線 和拆除鏈路。用命令 原語 請求系統做。這種方式主要用於計算機網路中 系統自動地建立一條鏈路。無須明確提出建立鏈路的請求,只須利用系統提供的傳送命令 原語 ...
《現代作業系統》第二章程序概念整理
程序的終止 程序的狀態執行態 占用cpu時 就緒態 準備好占用cpu了 阻塞態 除非被訊號喚醒進入就緒臺,否則一直被掛起,無法占用cpu 執行緒同步訪問共享資源 和多個程序訪問共享資源一樣,執行緒作為程序的執行單位,並且共享程序的資源,也需要解決互斥訪問程序資源的問題。類似生產者和消費者程序共享臨界...
第二章 程序的描述與控制
經典程序的同步問題 哲學家就餐問題 避免死鎖的解決方法 1 5位哲學家就餐只允許4位同時去拿左邊的筷子,剩乙個堵塞 問題 為什麼不讓3個或者2個同時去拿左邊的筷子?回答 為了充分利用資源,不讓cpu空閒 2 利用and訊號量,如果同時拿到兩邊的筷子就執行,否則就堵塞 3 奇數號哲學家拿左邊的筷子,偶...