多道程序設(shè)計:允許多個程序同時進(jìn)入內(nèi)存并運行东臀,其目的是為了提高系統(tǒng)效率
并發(fā)環(huán)境:一段時間間隔內(nèi)羡洁,單處理器上有兩個或兩個以上的程序同時處于開始運行但尚未結(jié)束的狀態(tài)嗓违,并且次序不是事先確定的。
并發(fā)程序:在并發(fā)環(huán)境中執(zhí)行的程序聚凹。
1.進(jìn)程的定義
進(jìn)程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動构资,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨立單位抽诉,又稱任務(wù)。
是程序的一次執(zhí)行過程吐绵;是正在運行程序的抽象掸鹅;將一個CPU變換成多個虛擬的CPU;系統(tǒng)資源以進(jìn)程為單位分配拦赠,如內(nèi)存巍沙、文件、...每個具有獨立的地址空間荷鼠;操作系統(tǒng)將CPU調(diào)度給需要的進(jìn)程
2.進(jìn)程控制塊(PCB)
Process Control Block
又稱進(jìn)程描述符句携、進(jìn)程屬性;操作系統(tǒng)用于管理控制進(jìn)程的一個專門數(shù)據(jù)結(jié)構(gòu)允乐;記錄進(jìn)程的各種屬性矮嫉,描述進(jìn)程的動態(tài)變化過程
PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志 進(jìn)程與PCB是一一對應(yīng)的
進(jìn)程表:所有進(jìn)程的PCB集合
PCB包含4部分內(nèi)容:
進(jìn)程描述信息:進(jìn)程標(biāo)識符(process ID)削咆,唯一,通常是一個整數(shù)蠢笋;進(jìn)程名:通巢ζ耄基于可執(zhí)行文件名,不唯一昨寞;用戶標(biāo)識符(user ID)瞻惋;進(jìn)程組關(guān)系
進(jìn)程控制信息:當(dāng)前狀態(tài);優(yōu)先級(priority)援岩;代碼執(zhí)行入口地址歼狼;程序的磁盤地址;運行統(tǒng)計信息(執(zhí)行時間享怀、頁面調(diào)度)羽峰;進(jìn)程間同步和通信;進(jìn)程的隊列指針添瓷;進(jìn)程的消息隊列指針
所擁有的資源和使用情況:虛擬地址空間的狀況梅屉;打開文件列表
CPU現(xiàn)場信息:寄存器值(通用寄存器,程序計數(shù)器PC鳞贷,程序狀態(tài)字PSW坯汤,棧指針);指向該進(jìn)程頁表的指針悄晃;
進(jìn)程狀態(tài)及狀態(tài)轉(zhuǎn)換
進(jìn)程的三種基本狀態(tài):運行態(tài)玫霎、就緒態(tài)凿滤、等待態(tài)
運行態(tài)(running)占有CPU妈橄,并在CPU上運行
就緒態(tài)(ready)已經(jīng)具備運行條件,但由于沒有空閑CPU翁脆,而暫時不能運行
等待態(tài)(Waiting/Blocked)因等待某一事件而暫時不能運行
進(jìn)程的其他狀態(tài):創(chuàng)建態(tài)眷蚓,終止態(tài),掛起態(tài)
創(chuàng)建態(tài)(New)已完成創(chuàng)建一進(jìn)程所必要的工作反番,但尚未同意執(zhí)行該進(jìn)程
終止態(tài)(Terminated)終止執(zhí)行后沙热,進(jìn)程進(jìn)入該狀態(tài),可完成一些數(shù)據(jù)統(tǒng)計工作罢缸,并回收資源
掛起態(tài):用于調(diào)節(jié)負(fù)載篙贸,其進(jìn)程不占用內(nèi)存空間,映像交換到磁盤上
進(jìn)程隊列:
操作系統(tǒng)為每一類進(jìn)程建立一個或多個隊列枫疆;隊列元素為PCB爵川;伴隨進(jìn)程狀態(tài)的改變,其PCB從一個隊列進(jìn)入另一個隊列息楔;多個等待隊列等待的事件不同寝贡;就緒隊列也可以多個扒披;單CPU情況下,運行隊列中只有一個進(jìn)程