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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

windows

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

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

2.1 進(jìn)程與線程

  • 為什么引入進(jìn)程?

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

  • 進(jìn)程:

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

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

  • 進(jìn)程:是進(jìn)程實(shí)體的運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配(資源指處理機(jī)、存儲(chǔ)器、其他澀北服務(wù)于某個(gè)進(jìn)程的時(shí)間)和調(diào)度的一個(gè)獨(dú)立單位(未引入線程)

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

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

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

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

  • 進(jìn)程的組織

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

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

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

  • 進(jìn)程通信:

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

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

    • 直接通信:直接掛在接收進(jìn)程的消息隊(duì)列

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

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

  • 線程:

  • 引入線程的目的

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

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

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

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

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

    • 用戶級(jí)線程:線程管理由應(yīng)用程序完成,通過(guò)線程庫(kù)設(shè)計(jì)

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

    • 組合方式

  • 線程與進(jìn)程比較

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

  • 擁有資源:線程沒(méi)有系統(tǒng)資源,進(jìn)程擁有資源,但線程可以訪問(wèn)進(jìn)程的資源

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

  • 系統(tǒng)開(kāi)銷:線程開(kāi)銷小,進(jìn)程開(kāi)銷大

  • 地址空間和其他資源:進(jìn)程地址空間相互獨(dú)立,線程沒(méi)有自己獨(dú)立的地址空寂,它共享其所屬進(jìn)程的空間

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

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

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

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

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

  • ?

    2.2 處理機(jī)調(diào)度

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

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

  • 不能進(jìn)行進(jìn)程切換的情況:

  • 處理中斷

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

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

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

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

  • CPU利用率

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

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

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

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

  • 等待時(shí)間

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

  • 調(diào)度算法

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

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

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

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

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

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

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

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

  • ?

    2.3 進(jìn)程同步

  • 基本概念:

  • 臨界資源:一次僅允許一個(gè)進(jìn)程使用的資源

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

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

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

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

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

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

    • 單標(biāo)志法

    • 雙標(biāo)志先檢查

    • 雙標(biāo)志后檢查

    • Peterson's Algorithm

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

    • TestAndSet方法

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

  • 信號(hào)量:

    • P,V操作,P請(qǐng)求資源,V釋放資源

    • 同步信號(hào)量初值為0

    • 互斥信號(hào)量初值為1

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

  • 管程:

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

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

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

  • 同步問(wèn)題:

    • 生產(chǎn)者--消費(fèi)者問(wèn)題

    • 讀者--寫者問(wèn)題

    • 哲學(xué)家進(jìn)餐問(wèn)題

    • 吸煙者問(wèn)題

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

  • ?

    ?

    2.4 死鎖

  • 死鎖的概念:

  • 死鎖:指多個(gè)進(jìn)程因?yàn)楦?jìng)爭(zhēng)資源而造成一種僵局,若無(wú)外力作用,這些進(jìn)程都無(wú)法向前推進(jìn)

  • 產(chǎn)生原因:

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

  • 進(jìn)程推進(jìn)順序非法

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

  • 互斥條件

  • 不剝奪條件

  • 請(qǐng)求并保持

  • 循環(huán)等待

  • 死鎖的處理策略

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

  • 死鎖避免

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

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

  • 死鎖檢測(cè)及解除

  • 資源分配圖

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

  • 死鎖解除:

  • 資源剝奪法

  • 撤銷進(jìn)程法

  • 進(jìn)程回退法

  • 總結(jié)

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

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