多道程式設計
程序排程是指計算機通過決策決定哪個就緒程序可以獲得cpu使用權
◆ 保留舊程序的執行資訊,請出舊程序(收拾包袱)
◆ 選擇新程序,準備執行環境並分配cpu(新進駐)
機制◆ 就緒佇列的排隊機制
將就緒程序按照一定的方式排成佇列,以便排程程式可以最快找到就緒程序
◆ 選擇執行程序的委派機制
排程程式以一定的策略選擇就緒程序,將cpu資源分配給它
◆ 新老程序的上下文切換機制
儲存當前程序的上下文資訊,裝入被委派執行程序的執行上下文
老程序還沒執行完呢?
◆ 非搶占式的排程
◆ 處理器一旦分配給某個程序,就讓該程序一直使用下去
◆ 排程程式不以任何原因搶占正在被使用的處理器
◆ 直到程序完成工作或因為io阻塞才會讓出處理器
◆ 搶占式的排程
◆ 允許排程程式以一定的策略暫停當前執行的程序
◆ 儲存好舊程序的上下文資訊,分配處理器給新程序
◆ 先來先服務排程演算法
按照就緒佇列
◆ 短程序優先排程演算法
◆ 排程程式優先選擇就緒佇列中估計執行時間最短的程序
◆ 短程序優先排程演算法不利於長作業程序的執行
◆ 高優先權優先排程演算法
◆ 程序附帶優先權,排程程式優先選擇權重高的程序
◆ 高優先權優先排程演算法使得緊迫的任務可以優先處理
◆ 時間片輪轉排程演算法
◆ 按先來先服務的原則排列就緒程序
◆ 每次從佇列頭部取出待執行程序,分配乙個時間片執行
◆ 是相對公平的排程演算法,但不能保證及時響應使用者
作業系統原理 03 程序管理之程序同步
有一群生產者程序在生產產品,並將這些產品提供給消費者程序進行消費,生產者程序和消費者 程序可以併發執行,在兩者之間設定了乙個具有n可緩衝區的緩衝池,生產者程序需要將所生產 的產品放到乙個緩衝區中,消費者程序可以從緩衝區取走產品消費。單兩者併發執行時就可能出差錯 有五個哲學家,他們的生活方式是交替地進...
作業系統實驗之程序管理
實驗內容 建立新的程序 檢視執行的程序 換出某個程序 殺死執行程序以及程序之間的通訊 下面是 include conio.h include stdio.h include stdlib.h struct pcb struct pcb neicun 20 waicun 20 int count 0,...
作業系統實驗之程序管理
程序名 要求執行時間 優先數狀態 其中,程序名 作為程序的標識,假設五個程序的程序名分別為p1,p2,p3,p4,p5。要求執行時間 假設程序需要執行的單位時間數。優先數 賦予程序的優先數,排程時總是選取優先數大的程序先執行。狀態 可假設有兩種狀態,就緒 狀態和 結束 狀態。五個程序的初始狀態都為 ...