日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统(2) -- 进程管理

發(fā)布時間:2024/2/28 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统(2) -- 进程管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2.1 進程與線程

  • 為什么引入進程?

    多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行,為了更好的描述和控制程序的并發(fā)執(zhí)行,實現(xiàn)操作系統(tǒng)的并發(fā)性和共享性

  • 進程:

  • 進程控制塊(process control block,PCB):利用PCB描述進程的基本情況和運行態(tài),進而控制和管理進程。是進程存在的唯一標志。

  • 程序段,數(shù)據(jù)段,PCB組成進程實體

  • 進程:是進程實體的運行過程,是系統(tǒng)進行資源分配(資源指處理機、存儲器、其他澀北服務(wù)于某個進程的時間)和調(diào)度的一個獨立單位(未引入線程)

  • 進程的基本特征:動態(tài)性、并發(fā)性、獨立性、異步性、結(jié)構(gòu)性

  • 進程的狀態(tài)與轉(zhuǎn)換

    • 通常有5種,前3種是基本狀態(tài):運行態(tài)、就緒態(tài)、阻塞態(tài)(等待態(tài))、創(chuàng)建態(tài)、結(jié)束態(tài)

  • 進程控制:進程創(chuàng)建,進程終止,進程阻塞與喚醒,進程切換

  • 進程的組織

    • 進程控制塊:進程描述信息,進程控制和管理信息,資源分配清單和處理機相關(guān)信息;PCB組織方式有鏈接方式和索引方式

    • 程序段:能被進程調(diào)度程序調(diào)到CPU執(zhí)行的程序代碼段,可被多個進程共享

    • 數(shù)據(jù)段

  • 進程通信:

  • 共享存儲:進程之間存在一塊可直接訪問的共享空間,通過對共享空間的讀寫實現(xiàn)信息交換。操作系統(tǒng)負責(zé)為通信進程提供可共享的存儲空間和同步互斥工具

  • 消息傳遞:以格式化的消息為單位,通過發(fā)送消息和接收消息兩個原語進行數(shù)據(jù)交換

    • 直接通信:直接掛在接收進程的消息隊列

    • 間接通信:發(fā)到某個中間實體(信箱)

  • 管道通信:用 一個用于連接讀進程和寫進程的共享文件 實現(xiàn)通信。以字符流形式發(fā)送。管道只能半雙工通信。且一旦數(shù)據(jù)被讀取,就從管道中拋棄,釋放空間。

  • 線程:

  • 引入線程的目的

    減小程序在并發(fā)執(zhí)行時所付出的時空開銷,提供操作系統(tǒng)的并發(fā)性能。

  • 線程:一個基本的CPU執(zhí)行單元,程序執(zhí)行流的最小單元。線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,與同屬于一個進程的其他線程共享進程的資源。

  • 進程內(nèi)涵改變:引入線程后,進程作為除CPU外的系統(tǒng)資源的分配單元,線程作為處理機的分配單元

  • 線程屬性:輕型實體,不擁有資源,有唯一標識線程控制塊;不同線程可執(zhí)行相同程序;同進程中不同線程共享進程資源;線程是處理機調(diào)度單位,多線程可以并發(fā);

  • 線程實現(xiàn)方式

    • 用戶級線程:線程管理由應(yīng)用程序完成,通過線程庫設(shè)計

    • 內(nèi)核級線程:線程管理由內(nèi)核完成,應(yīng)用程序沒有線程管理的代碼,有一個到內(nèi)核級線程的編程接口

    • 組合方式

  • 線程與進程比較

  • 調(diào)度:線程是獨立調(diào)度的基本單位,線程是擁有資源的基本單位

  • 擁有資源:線程沒有系統(tǒng)資源,進程擁有資源,但線程可以訪問進程的資源

  • 并發(fā)性:進程可以并發(fā),線程也可以

  • 系統(tǒng)開銷:線程開銷小,進程開銷大

  • 地址空間和其他資源:進程地址空間相互獨立,線程沒有自己獨立的地址空寂,它共享其所屬進程的空間

  • 通信:線程通信需要進程同步和互斥手段,線程可以直接讀寫進程數(shù)據(jù)段通信

  • 單處理系統(tǒng),發(fā)生死鎖時全部進程處于阻塞態(tài)

  • 阻塞態(tài)轉(zhuǎn)就緒態(tài)不會引起另一個進程的狀態(tài)變化

  • I/O操作完成之前進程在等待結(jié)果,狀態(tài)為阻塞態(tài);完成后進程等待事件就緒,變成就緒態(tài)。

  • 運行態(tài)到阻塞態(tài)的狀態(tài)轉(zhuǎn)換是進程自身決定的

  • ?

    2.2 處理機調(diào)度

  • 處理機調(diào)度:把處理機分配給某個進程,處理機調(diào)度是多道程序操作系統(tǒng)的基礎(chǔ)

  • 調(diào)度層次:作業(yè)調(diào)度、中級調(diào)度、進程調(diào)度,進程調(diào)度是最基本的,不可缺少

  • 不能進行進程切換的情況:

  • 處理中斷

  • 進程在操作系統(tǒng)內(nèi)核程序臨界區(qū)

  • 其他需要完全屏蔽中斷的原子操作過程中

  • 進程調(diào)度方式:非剝奪,剝奪

  • 調(diào)度的基本準則

  • CPU利用率

  • 系統(tǒng)吞吐量:單位時間內(nèi)CPU完成作業(yè)的數(shù)量

  • 周轉(zhuǎn)時間:從作業(yè)提交到作業(yè)完成所經(jīng)歷的時間;周轉(zhuǎn)時間 = 作業(yè)完成時間 - 作業(yè)提交時間

  • 平均周轉(zhuǎn)時間:多個作業(yè)周轉(zhuǎn)時間的平均值

  • 帶權(quán)周轉(zhuǎn)時間:作業(yè)周轉(zhuǎn)時間/作業(yè)實際運行時間

  • 等待時間

  • 響應(yīng)時間:從用戶提交請求到系統(tǒng)首次產(chǎn)生響應(yīng)所用的時間

  • 調(diào)度算法

  • 先來先服務(wù)(FCFS):選最先進入隊列的作業(yè)調(diào)入內(nèi)存,分配資源創(chuàng)建進程放入就緒隊列;不可剝奪;算法簡單,對長作業(yè)有利,對短作業(yè)不利,有利于CPU繁忙型作業(yè),不利于I/O繁忙型作業(yè)

  • 短作業(yè)優(yōu)先(SJF):選擇運行時間最短的作業(yè);對長作業(yè)不利,導(dǎo)致饑餓現(xiàn)象,沒有考慮作業(yè)的緊迫程度;SJF平均等待時間,平均周轉(zhuǎn)時間最少

  • 優(yōu)先級調(diào)度:選擇優(yōu)先級最高的作業(yè);分非剝奪式和剝奪式;

  • 高響應(yīng)比優(yōu)先:選擇響應(yīng)比最高的作業(yè)運行;響應(yīng)比 = (1+等待時間/要求服務(wù)時間)

  • 時間片輪轉(zhuǎn)調(diào)度:適用分時系統(tǒng)。將就緒進程排序,每個進行運行一個時間片。

  • 多級反饋隊列調(diào)度算法:動態(tài)調(diào)整進程優(yōu)先級和時間片的大小;設(shè)置多個就緒隊列,賦予不同優(yōu)先級,賦予各個隊列中進程執(zhí)行時間片的大小各不相同,優(yōu)先級越高,時間片越小

  • 分時操作系統(tǒng)調(diào)度:高響應(yīng)比,時間片輪轉(zhuǎn),多級反饋隊列調(diào)度

  • 實時操作系統(tǒng)調(diào)度:優(yōu)先級調(diào)度算法

  • ?

    2.3 進程同步

  • 基本概念:

  • 臨界資源:一次僅允許一個進程使用的資源

  • 臨界區(qū):訪問臨界資源的那段代碼

  • 同步:直接制約關(guān)系,為完成某種任務(wù)而建立的兩個或多個進程,需要在某些位置上協(xié)調(diào)工作次序,傳遞信息所產(chǎn)生的制約關(guān)系

  • 互斥:間接制約關(guān)系,一個進程進入臨界區(qū),另一個進程必須等待

  • 同步機制準則:空閑讓進,忙則等待,有限等待,讓權(quán)等待

  • 實現(xiàn)臨界區(qū)互斥的基本辦法:

  • 軟件實現(xiàn)方法:

    • 單標志法

    • 雙標志先檢查

    • 雙標志后檢查

    • Peterson's Algorithm

  • 硬件實現(xiàn)方法:

    • TestAndSet方法

    • 中斷屏蔽方法(關(guān)中斷)

  • 信號量:

    • P,V操作,P請求資源,V釋放資源

    • 同步信號量初值為0

    • 互斥信號量初值為1

    • 應(yīng)用:若某個行為要用某種資源,在這個行為前P這種資源;若某行為提供某資源,在這個行為后V這種資源。在互斥問題中,P,V操作要求夾緊使用互斥資源的那個行為,中間不能有其他冗余代碼。

  • 管程:

  • 定義:一組數(shù)據(jù)及定義在這組數(shù)據(jù)上的對這組數(shù)組的操作組成的軟件模塊

  • 組成:局部于管程的共享數(shù)據(jù)結(jié)構(gòu)說明;對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;對局部于管程的共享數(shù)據(jù)設(shè)置初始值額語句

  • 特性:局部于管程的數(shù)據(jù)只能被局部于管程內(nèi)的過程所訪問;一個進程只有調(diào)用管程內(nèi)過程才能進入管程訪問共享數(shù)據(jù);每次運行一個進程在管程內(nèi)執(zhí)行某個內(nèi)部過程

  • 同步問題:

    • 生產(chǎn)者--消費者問題

    • 讀者--寫者問題

    • 哲學(xué)家進餐問題

    • 吸煙者問題

  • 硬件方法實現(xiàn)進程同步不能實現(xiàn)讓權(quán)等待,Peterson算法滿足有限等待不滿足讓權(quán)等待。

  • ?

    ?

    2.4 死鎖

  • 死鎖的概念:

  • 死鎖:指多個進程因為競爭資源而造成一種僵局,若無外力作用,這些進程都無法向前推進

  • 產(chǎn)生原因:

  • 爭用系統(tǒng)資源

  • 進程推進順序非法

  • 死鎖產(chǎn)生的必要條件,只要一個不滿足,死鎖就不會發(fā)生

  • 互斥條件

  • 不剝奪條件

  • 請求并保持

  • 循環(huán)等待

  • 死鎖的處理策略

  • 死鎖預(yù)防:破壞死鎖產(chǎn)生的4個必要條件之一即可

  • 死鎖避免

  • 系統(tǒng)安全狀態(tài):允許進程動態(tài)申請資源,但系統(tǒng)在進行資源分配之前,先計算此次資源分配的安全性。若此次分配導(dǎo)致系統(tǒng)進入不安全的狀態(tài),就讓進程等待,否則,分配資源。

  • 銀行家算法:OS為銀行家,OS管理的資源為資金,進程向OS請求資源相當(dāng)于貸款。OS按規(guī)則為進程分配資源。當(dāng)進程首次申請資源,要測試該進程對資源的最大需求量,若可滿足,則按當(dāng)前申請量分配資源,否則推遲分配。當(dāng)進程執(zhí)行中繼續(xù)申請資源,測試當(dāng)前占用和申請的資源是否超過最大需求量,超過拒絕,未超過測試現(xiàn)有資源是否滿足最大需求量,滿足則分配申請的資源,否則推遲分配。

  • 死鎖檢測及解除

  • 資源分配圖

  • 死鎖定理:S為死鎖狀態(tài)的條件是當(dāng)且僅當(dāng)S狀態(tài)的資源分配圖是不可完全簡化的。

  • 死鎖解除:

  • 資源剝奪法

  • 撤銷進程法

  • 進程回退法

  • 總結(jié)

    以上是生活随笔為你收集整理的操作系统(2) -- 进程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。