第三章 進程與線程

第三章 進程與線程
    1.多道程序設計
        識記
            程序的順序執行
                一個具有獨立運行功能的程序獨佔處理機直到得到最終結果的過程
            順序執行的特點
                順序性
                封閉性
                程序執行結果的確定性
                程序執行結果的課再現性
            程序的併發執行
                兩個或兩個以上程序在計算機系統中,同時處於已開始執行且尚未結束的狀態
            併發執行的特徵
                在執行期間併發程序相互制約
                程序與計算不再一一對應
                併發程序的執行結果不可再現
            程序的並行執行與程序的併發執行
                併發執行
                    從宏觀上看,若干程序是同時進行的,但在微觀上,這些程序仍是順序執行的
                並行執行
                    無論從宏觀還是微觀上看,若干程序確實在同時運行
            多道程序設計的特點
                獨立性
                隨機性
                資源共享性
            多道程序設計的缺陷
                可能延長程序的執行時間
                系統效率的提高有一定的限度
    2.進程的概念
        領會
            進程的定義
                具有一定獨立功能的程序在某個數據集合上的一次運行活動,是系統化進行資源分配和調度的一個獨立單位
            進程與程序的聯繫和區別
                聯繫
                    程序是構成進程的組成部分之一,一個進程的運行目標是執行它所對應的程序。
                區別
                    程序是靜態的,進程是動態地
                    一個進程可以包含若干程序的執行,而一個程序亦可以產生多個進程
            進程的組成和特徵
                組成
                    進程是由程序、數據和進程控制塊三部分組成
                特徵
                    併發性
                    動態性
                    獨立性
                    交往性
                    異步性
                    結構性
    3.進程的狀態
        領會
            進程的三種基本狀態
                運行狀態
                就緒狀態
                等待狀態
            進程狀態間的轉換
                就緒 -> 運行
                運行 -> 就緒
                運行 -> 等待
                等待 ->就緒
            進程的五狀態模型
                運行狀態
                就緒狀態
                等待狀態
                創建狀態
                結束狀態
            進程的七狀態模型
                運行狀態
                就緒狀態
                等待狀態
                創建狀態
                結束狀態
                就緒掛起
                阻塞掛起
    4.進程控制塊(PCB)
        簡單應用
            進程控制塊的作用
                描述進程的基本情況以及進程的運行變化過程
            進程控制塊的基本內容
                調度信息
                    供進程調度時使用,描述了進程當前所處的狀況
                現場信息
                    刻畫了進程的運行情況
            進程隊列
                就緒隊列
                等待隊列
                運行隊列
            組織方式
                線性方式
                索引方式
                鏈接方式
    5.進程控制    
        簡單應用
            進程創建
                先申請一空閒PCB區域,然後將有關信息填入PCB,置該進程爲就緒狀態,最後把它插入就緒隊列中
                    
            進程撤銷
                找到要被撤銷進程的PCB,將它從所在隊列中消去,撤銷屬於該進程的一切“子孫進程”,釋放被撤銷進程所佔用的全部資源,並消去被撤銷進程的PCB
            進程等待
                先中斷處理器的執行,把處理器的當前狀態保存在PCB的現場信息中,然後把進程的當前狀態置爲等待狀態,並把它插入到該事件的等待隊列中
            進程喚醒
                在等待隊列中找到該進程,將進程的當前狀態置爲就緒狀態,然後將它從等待隊列中撤出並插入到就緒隊列中排隊,等待調度執行
            原語
                由若干條指令鎖組成的一個指令序列,用來實現某個特定的操作功能,這個指令序列的執行是連續的,具有不可分割性,在執行時也不可間斷,直至該指令序列執行結束
    6.線程模型
        簡單應用
            線程的基本概念,線程與進程的比較
                線程是進程中的一個實體,是處理器調度和分派的基本單位。線程自己基本上不擁有系統資源,只擁有少量在運行中必不可少的資源,但它可與同屬一個進程的其他線程共享進程所擁有的全部資源
            線程的屬性
                每個線程由一個唯一的標識符和一張線程描述表
                不同的線程可以執行相同的程序
                同一個進程中的各個線程共享該進程的內存地址空間
                線程是處理器的獨立調度單位,多個線程是可以併發執行的
                一個線程在被創建後便開始了它的生命週期
            爲什麼引入線程的概念
                創建一個新線程花費時間少
                線程之間的切換花費時間少
                由於同一個進程內的線程共享內存和文件,所以線程之間通信更簡便,信息傳送速度也快
                線程能獨立執行
    7.線程機制的實現
        簡單應用
            用戶級線程
                只存在於用戶態中,不依賴於內核,可以在不支持線程的操作系統上實現
            內核級線程
                依賴於內核,創建、撤銷和切換都由內核實現
            混合模型
                同時實現了用戶線程和內核級線程
    8.進程調度
        綜合應用
            進程調度的層次和任務
            進程的調度的時機
                正在執行的進程運行完畢
                正在執行的進程由於某種錯誤而終止
                時間片用完
                正在執行的進程調用阻塞原語將自己阻塞起來
                創建了新的進程
                正在執行的進程調用了喚醒原語操作激活了等待資源的進程
            進程的調度過程
                記錄系統中所有進程的執行狀況;根據一定的調度算法,從就緒隊列中選出一個進程,準備吧處理器分配給它;把處理器分配給進程
            調度方式
                搶佔式
                非搶佔式
            進程調度算法的設計思想
                進程行爲
                    計算密集型
                    I/O密集型
                系統分類
                    批處理
                    交互式
                    實時系統
            進程調度算法的應用
                先來先服務算法
                    優點
                        易於理解並且便於在程序中運用
                    缺點
                        沒有考慮優先級
                最短進程優先算法
                    從就緒隊列中選出“下一個CPU執行期”最短的進程,爲之分配處理器
                最短剩餘時間優先算法
                    總是選擇其剩餘運行時間最短的那個進程運行
                最高響應比優先算法
                    響應比=(等待時間 + 預計運行時間) /  預計運行時間 = 週轉時間 / 預計運行時間
                    防止“飢餓”
                輪轉算法
                    將處理器的處理時間劃分成一個個時間片,就緒的丟列中的進程輪流運行一個時間片。當時間片結束時,就強迫運行進程讓出處理器,該進程進入就緒隊列,等待下一次調度
                    時間片設得太短會導致過多的進程切換,降低了處理器效率;而設得太長又可能引起對短的交互請求的響應時間變長。通常20 ~ 50ms是一個比較合理地折衷
                最高優先級算法
                    將處理器分配給具有最高優先級的就緒進程
                多級反饋隊列算法
                    幾種調度算法的結合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章