作業:
作業是用於需要計算機完成某項任務,而要求計算機所做工作的集合。乙個作業的完成要經過作業提交,作業收容、作業執行和作業完成4個階段。
程序定義:
乙個程序是乙個程式對某個資料集的執行過程,是分配資源的基本單位。
作業與程序區別:
程序狀態:
初始狀態、就緒狀態、執行狀態、等待狀態、終止狀態。
執行緒定義:
執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。
執行緒狀態:
執行緒有執行、就緒、阻塞3個基本狀態,派生、阻塞、啟用、排程、結束5種基本操作。
程序/執行緒區別:
1、程序是資源分配的最小單位,執行緒是程式執行的最小單位(資源排程的最小單位)
2、程序有自己的獨立位址空間,每啟動乙個程序,系統就會為它分配位址空間,建立資料表來維護**段、堆疊段和資料段,這種操作非常昂貴。而執行緒是共享程序中的資料的,使用相同的位址空間,因此cpu切換乙個執行緒的花費遠比程序要小很多,同時建立乙個執行緒的開銷也比程序要小很多。
3、執行緒之間的通訊更方便,同一程序下的執行緒共享全域性變數、靜態變數等資料,而程序之間的通訊需要以通訊的方式(ipc)進行。
4、多程序程式更健壯,多執行緒程式只要有乙個執行緒死掉,整個程序也死掉了,而乙個程序死掉並不會對另外乙個程序造成影響,因為程序有自己獨立的位址空間。
臨界區:
臨界區指的是乙個訪問共用資源(例如:共用裝置或是共用儲存器)的程式片段,而這些共用資源又無法同時被多個程序訪問。
併發程序間制約:
直接制約和間接制約。
直接制約是由併發程序互相共享對方的私有資源所引起的。
間接制約是由競爭共有資源而引起的。
程序間互斥:
互斥是程序間要求共享資源,有些資源存在互斥作用,各程序間竟爭這些資源的關係稱為程序的互斥。
程序間同步:
同步是多個程序中發生的事件存在某種時序關係,需要相互合作,共同完成項任務。
加鎖法:
當某個程序進入臨界區後,他將鎖上臨界區,直到他退出臨界區為止。併發程序在申請進入臨界區要測試是否被鎖,如果被鎖要等到臨界區開鎖後才有可能獲得臨界區。
p、v原語法:
採用訊號量管理相應臨界區的公有資源,訊號量的資料僅能由p、v原語操作改變,而原語執行期間不允許中斷發生。當某程序正在臨界區內執行時,其他程序如果執行了p原語操作,該程序在等待佇列中等待有其他程序做v原語操作釋放資源後,進去臨界區,這時p原語操作才真正結束。
加鎖法/ p、v原語法區別:
加鎖法採用反覆測試lock而實現互斥,存在cpu浪費和不公平的現象,p、v原語採用資訊量克服了加鎖法的弊端。
死鎖定義:
死鎖是指各併發程序互相等待對方所擁有的資源,且這些併發程序在得到對方資源之前不會釋放自己擁有的資源。
死鎖必要條件:
死鎖解決辦法:
哲學家問題:
有五個哲學家,他們的生活方式是交替地進行思考和進餐。他們共用一張圓桌,分別坐在五張椅子上。在圓桌上有五支筷子,哲學家飢餓時便試圖取用兩邊的筷子用餐。
約束條件:(1)只有拿到兩隻筷子時,才能吃飯。(2)若筷子已被別人拿走,則必須等別人吃完後才能拿到筷子。(3)在未拿到兩隻筷子吃飯前,不會放下手中拿到的筷子。
作業系統 程序管理之經典同步問題
生產消費者模型 多生產者多消費者模型 單生產者多消費者模型 哲學家進餐 p 程序需向互斥緩衝區進行寫操作,而c 程序從互斥緩衝區進行取操作。分析 p和c互斥訪問同一臨界資源,需設定mutex 1 p和c相互同步,p提供產品給c,而c提供空間給p semaphore mutex 1,empty n,p...
作業系統實驗之程序管理
實驗內容 建立新的程序 檢視執行的程序 換出某個程序 殺死執行程序以及程序之間的通訊 下面是 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。要求執行時間 假設程序需要執行的單位時間數。優先數 賦予程序的優先數,排程時總是選取優先數大的程序先執行。狀態 可假設有兩種狀態,就緒 狀態和 結束 狀態。五個程序的初始狀態都為 ...