程序的概念
順序執行的特點:1.順序性 2.封閉性 3.可重現性
併發執行的特點:1.增強計算機處理能力和提高資源利用率 2.失去了封閉性和可重再現性 3.共享系統資源產生相互制約的關係
程序的定義:1.程序是程式的一次執行 2.程序是乙個程式與其使用的資料在處理機上執行的過程 3.程序是具有獨立功能的層序在乙個資料集合上執行的過程,是系統進行資源分配和排程的乙個獨立單位
程序的特點:動態性,併發性,獨立性,非同步性
程序的實質是程序實體的執行過程,程序由建立而產生,由排程而執行,由撤銷而消亡。程序按照非同步方式執行,獨立執行,以不可預知的速度向前推進,導致不可再現性
由此可見程序實體是由程式,資料,程序控制塊組成
程序控制塊的作用:記錄對進行執行的變化過程,並且描述程序;讓乙個在多道程式環境下不能獨立執行的程式(含資料)成為乙個能獨立執行的基本單位,乙個能與其他程序併發執行的程序。具體作用 1.作為獨立執行基本單位的標誌 2.能實現間斷性執行方式 3.提供程序管理所需要的資訊 4.實現與其他程序的通訊 5.提供程序排程所需要的資訊
程序在獲得pcb之後標誌其是乙個能在多道程式環境下獨立執行的合法的基本單位,其有過的cpu服務的權利,比如開啟系統檔案,請求io裝置,以及和其他程序通訊;
程序控制塊的資訊:1.程序識別符號 2.處理機狀態(即處理機上下文) 3.程序排程資訊 4.程序控制資訊
原語操作:由若干條指令組成,用於完成一定功能的乙個過程
程序控制塊的組織方式:1.線性方式 2.鏈式方式 3.索引方式
程序的狀態及轉換:1.ready--running 程序被排程程式選中 2.running--blocked 等待某個事件的發生 3.running--ready 時間片用完,或者被高優先順序的程序剝奪cpu使許可權 4.blocked--ready 程序等待的事件發生
程序控制:建立新的程序,終止已完成的程序,程序的阻塞與掛起, 程序的掛起與啟用
引起阻塞的原因:1.向系統申請資源失敗 2.等待某種操作的完成(比如申請io) 3.新資料尚未到達 4.等待新任務到達 阻塞是一種主動的行為
程序不能拒絕子程序的繼承權,所有的程序都具有相同的地位,不存在任何的層次結構。
引起程序建立的事件:1.使用者登入 2.作業排程 3.提供服務 4.應用請求
程序建立過程:1.申請空白pcb 2.為程序分配資源 3.初始化pcb 4.如果就緒佇列能接納新程序就納入新程序
引起程序終止的事件:1.任務完成正常結束 2.越界錯 3.保護錯 4.執行非法指令 5.執行超時 6.等待超時 7.io故障 8.父程序終止 9.父程序請求 10.操作員或者系統干預(分為三類,正常結束,異常結束,外界干預)
程序終止過程:1.根據程序識別符號讀取程序pcb中的該程序的狀態 2.終止程序的所有操作 3.如果有子孫程序,全部終止 4.擁有的所有資源歸還父程序或者系統 5.將pcb從佇列中移除,等待其他程式來蒐集資訊
程式與程序的區別:程序是程式的一次執行,是乙個動態的概念。程式是完成某個特定功能的指令的有序序列,是乙個靜態的概念。 程式可以作為一種軟體資源長期儲存。程序是把程式做為它的執行實體,沒有程式就沒有程序。程序是臨時的,是由生命期的。可以把程式看做菜譜,程序則是按照菜譜進行烹調的過程;程序不能作為資源分配和排程的單位,以及不能併發執行。可見程序的存在是需要一些資源和資料結構的支援的。
程序通訊
共享儲存器系統:相互通訊程序共享某些資料結構或共享儲存區,程序通過這些空間進行通訊;1.基礎共享資料結構的通訊方式,具體的實現以及同步問題都有程式設計師來實現,是一種低效率,低階的方式;2.基於共享儲存器的通訊方式,程序通過對該共享區的讀或寫交換資訊。由程序控制,通訊前先申請空間,並把位址新增到自己的位址空間中中
管道通訊系統:用於連線乙個讀程序和寫程序按照先進先出方法實現相互通訊的乙個共享檔案,稱為管道。以字元流來進行資訊傳輸的。需要有以下幾種功能,互斥,同步,確定對方存在與否
訊息傳遞通訊:用格式化的訊息為單位,將通訊的資料封裝在訊息中,並利用錯做系統提供的一組通訊命令,在程序間傳遞訊息;1.直接通訊方式 2.簡潔通訊方式,通過共享中間體(郵箱)的方式進行訊息傳送和接收
執行緒概念和多執行緒模型
程序是是資源分配物件,執行緒是程序中乙個可以執行的實體,是作為程序排程的乙個獨立物件。乙個程序中的執行緒共享程序的所有資源
執行緒的特性:併發性,共享性,動態性,結構性
多執行緒模型:乙個程序的結構可以劃分為兩個部分,對資源的管理和實際實現功能的指令序列。採用多程序模型時,併發程序之間的切換和通訊均要借助於作業系統的管理程序和程序通訊機制。實現的開銷大。引入執行緒後,程序只作為系統中進行保護和資源分配的單位,允許程序擁有多個執行緒併發執行執行緒排程不用通過程序排程,多執行緒借助共享記憶體區實現通訊,容易實現,減小系統開銷
執行緒和程序的區別:1.程序是資源的擁有者 2.執行緒切換只需要把執行緒僅有的一小部分資源交換即可,切換比程序快 3.執行緒在微觀和巨集觀上都能實現併發執行,提高資源利用率和系統的吞吐量 4.程序的安全性比執行緒的好,因為執行緒的獨立性不高
作業系統 程序與執行緒
程序 作業系統結構的基礎,是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。程序切換 從正在執行的程序中收回處理器,然後再使待執行程序來占用處理器。這裡所說的從某個程序收回處理器,實質上...
作業系統 程序與執行緒
為什麼會有程序?以前的計算機效能較差,作業系統只支援單任務,也就是一次只能執行乙個任務,當這個任務執行完成之後,才能執行下乙個任務,例如msdos。當該任務進行io時,cpu會處於空閒狀態。隨著計算機效能增強,出現了多工作業系統,作業系統可以將多個任務同時載入到記憶體中,併發執行。當某個任務進行io...
作業系統 程序與執行緒
1 排程 在傳統的作業系統中,擁有資源的基本單位和獨立排程 分派的基本單位都是程序。而引入執行緒的作業系統,則把執行緒作為排程和分派的基本單位,而程序作為資源擁有的基本單位。2 併發性 在引入執行緒的作業系統中,程序之間可併發執行,在乙個程序中的多個執行緒亦可併發執行。3 擁有資源 程序都可以擁有資...