當前位置:秀美範 >

生活 >經驗 >

華北電力大學計算機專業考研專業課複習,手把手教你考研複習

華北電力大學計算機專業考研專業課複習,手把手教你考研複習

華北電力大學計算機專業考研專業課複習,手把手教你考研複習

1、進程的基本概念

2、進程的控制

3、進程同步

4、經典的進程同步互斥問題

5、進程通信

6、線程定義及實現

方法/步驟

華北電力大學計算機專業考研專業課複習,手把手教你考研複習 第2張
1

進程的基本概念為了提高計算機系統中各種資源的利用率,現代操作系統廣泛採用多道程序技術(multi-programming),使多個程序同時在系統中存在並運行。描述進程的數據結構——進程控制塊(PCB)一個進程應該包括:程序的代碼;程序的數據;PC中的值,用來指示下一條將運行的指令;一組通用的寄存器的當前值,堆、棧;一組系統資源(如打開的文件)程序是文本,是語句的描述(靜態)進程是運行中的程序,含有上下文信息(動態)結構特徵:程序段、相關的數據段、PCB構成了進程實體動態性:進程是進程實體的一次執行,進程的狀態總是在變化,PCB的內容總是在變化併發性:多個進程實體,同存於內存中,能在一段時間內同時運行(宏觀上)獨立性:獨立運行和資源調度的基本單位。每個進程都有“自己”的PC和內部狀態,運行時獨立於其他的進程(邏輯PC和物理PC)異步性:以各自獨立的、不可預知的速度向前推進

2

進程的控制Running運行 Blocked阻塞 Ready就緒進程的三種基本狀態1) 就緒(Ready)狀態:進程一旦獲得CPU就可以投入運行的狀態2) 執行狀態:進程獲得CPU正在運行的狀態3) 阻塞狀態:進程由於等待資源或某個事件的發生而暫停執行的狀態運行à阻塞等待I/O的結果等待某一進程提供輸入運行à就緒運行進程用完了時間片運行進程被中斷,因為一高優先級進程處於就緒狀態就緒 à 運行調度程序選擇一個新的進程運行阻塞 à就緒當所等待的事件發生時

3

進程同步兩個進程使用相同的一個共享一個資源(如共享文件,打印機等)引出進程同步問題。進程在運行過程中所做的工作分為兩類:內部計算(不會導致競爭條件)對共享內存或共享文件的訪問(可能導致競爭條件)我們把完成第二類工作的程序稱為“臨界區”,把需要互斥訪問的共享資源稱為“臨界資源”。如果我們能設計出某種方法,使得任何兩個進程都不會同時出現在臨界區中,就可以避免競爭條件的出現。由Dijkstra把整型信號量定義為一個整型量,除初始化外,僅能通過兩個標準的原子操作(Atomic Operation) wait(S)和signal(S)來訪問。這兩個操作一直被分別稱為P、V操作。wait(S): while S≤0 do no-op S:=S-1;signal(S): S:=S+1;

4

經典的進程同步互斥問題4.1有3個客户在某天的日常生活中使用了某個 ATM 自動取款機。假設他們對 ATM 的使用順序是 a 到來,a 進入, b 到來, c 到來, a 離開,b 進入, b 離開, c 進入, c 離開。4.2某閲覽室,最多可容納100名讀者同時閲覽,當閲覽室中少於100名讀者時,閲覽室外等候的讀者可以立即進入,否則需要在外面等待。每個讀者可看成一個進程。semaphore seats;e=100;while(閲覽時間){wait(seats);進入閲覽室;閲讀;離開閲覽室;signal(seats);}4.3司機與售票員while(上班時間){發動汽車;正常運行;到站停車;}while(上班時間){關閉車門;售票;打開車門;}4.4兩個併發進程的讀寫設有一個緩衝區buffer,大小為一個字節(如圖)。Compute進程不斷產生字符,送buffer,Print進程從buffer中取出字符打印。如不加控制,會出現多種打印結果,這取決於這兩個進程運行的相對速度。在這眾多的打印結果中,只有Compute和Print進程的運行剛好匹配的一種是正確的,其它均為錯誤。semaphore S_Empty; // 緩衝區是否為空,初值為1semaphore S_Full; // 是否有數據寫入,初值為0while(計算未完成){ P(S_Empty);Write_Data( );V(S_Full);}Computewhile(打印未完成){P(S_Full); Print_Data( ); V(S_Empty);}Print4.5有一個倉庫,可以存放A和B 兩種產品。要求:1)每次只能存入一種產品(A或B);2)-N

5

進程通信低級通信:只能傳遞狀態和整數值(控制信息),包括用來實現進程同步和互斥的信號量和管程機制。優點是速度快。缺點是:傳送信息量小:每次通信傳遞的信息量固定,若需要傳遞較多信息,就得進行多次通信。編程複雜:用户需要直接去實現通信的細節,編程複雜,容易出錯。高級通信:能夠傳送任意數量的數據,包括三類:共享內存、管道、消息。

6

線程定義及實現進程當中的一條執行流程叫線程。進程是資源分配單位,線程是CPU調度單位;進程擁有一個完整的資源平台,而線程只獨享必不可少的資源,如寄存器和棧;線程同樣具有就緒、阻塞和執行三種基本狀態,同樣具有狀態之間的轉換關係;線程 = 輕量級進程(lightweight process)用户線程:在用户空間實現,時間片分配給進程;內核線程:在內核中實現,時間片分配給線程;

  • 文章版權屬於文章作者所有,轉載請註明 https://xiumeifan.com/shenghuo/jingyan/5g3q6d.html