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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统-进程管理

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

進程管理

概論:

并發(fā)程序和順序程序有本質(zhì)上的差別,為了能更好地描述程序的并發(fā)執(zhí)行,實現(xiàn)操作系統(tǒng)的并發(fā)性和共享性,引入“進程”的概念。
進程是具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
處理器是計算機系統(tǒng)中最重要的資源。在現(xiàn)代計算機系統(tǒng)中,為了提高系統(tǒng)的資源利用率,CPU將為某一程序獨占。通常采用多道程序設計技術(shù),即允許多個程序同時進入計算機系統(tǒng)的內(nèi)存并運行

1.任務

保證cpu正確地同時運行多道程序

2.描述

進程是系統(tǒng)中獨立地描述運行程序的基本單位,向系統(tǒng)請求資源分配的單位

3.引入

程序執(zhí)行:

1. 順序執(zhí)行特性:順序性(串行),封閉性(最終結(jié)果由給定初值決定,不受外界影響),可再現(xiàn)性(只要輸入不變,結(jié)果就不變)2. 并行執(zhí)行:多個事件同時刻發(fā)生-需求多個cpu資源3. 并發(fā)執(zhí)行:多個事件同時段發(fā)生并運行,進程間分時交替執(zhí)行,但cpu分時復用的過程特性:間斷性(交替執(zhí)行),開放性(可以被中斷),不可再現(xiàn)性

名詞解釋:
程序是靜態(tài)的,特指代碼文件執(zhí)行時文件的放到內(nèi)存中
作業(yè)是批處理系統(tǒng)要裝入系統(tǒng)處理的一系列程序和數(shù)據(jù)
進程是可并發(fā)執(zhí)行的的程序在某個數(shù)據(jù)集合上的一次執(zhí)行過程時操作系統(tǒng)資源保護,調(diào)度,分配的基本單位。其側(cè)重點是進程是 1.已經(jīng)裝入內(nèi)存的 2.運行的 3.程序及其數(shù)據(jù)結(jié)構(gòu)

進程特征:

1. 結(jié)構(gòu)性:進程實體(進程映像)包括進程控制塊(PCB),代碼塊,數(shù)據(jù)塊,堆棧2. 動態(tài)性:有創(chuàng)建產(chǎn)生,調(diào)度而運行,結(jié)束而消亡 相對的程序?qū)嶋H上就是文件,是靜態(tài)的并且持久存在3. 獨立性:都有自己的運行數(shù)據(jù)集,但進程間也可數(shù)據(jù)通信,共享4. 并發(fā)性:但cpu并發(fā),多cpu并行

兩類進程:

一.系統(tǒng)進程:

1.管理系統(tǒng)支援并行活動的并發(fā)軟件 2.有操作系統(tǒng)自身負責 3.直接管理軟硬件資源 4.優(yōu)先級高

二.用戶進程:

1.系統(tǒng)提供服務的對象 2.由用戶自己負責 3.間接使用軟硬件資源(必須先向系統(tǒng)發(fā)出請求等待系統(tǒng)分配和調(diào)度資源) 4.優(yōu)先級低

進程實體+運行環(huán)境=>進程上下文:

1. 用戶級:由進程的代碼區(qū),數(shù)據(jù)區(qū),用戶棧區(qū)和共享存儲區(qū),在編譯目標文件時產(chǎn)生,占據(jù)進程的虛擬地址空間 2. 系統(tǒng)級:由進程控制塊PCB,內(nèi)存管理信息,進程環(huán)境塊和系統(tǒng)棧等組成 3. 寄存器上下文:由程序轉(zhuǎn)臺寄存器,各類控制寄存器,地址寄存器,通用寄存器和用戶棧指針等組成

當一個進程被系統(tǒng)調(diào)度而占有cpu是會發(fā)生cpu在新老進程中切換,切換的內(nèi)容就是進程上下文,進程運行時再進程的上下文中執(zhí)行的

進程狀態(tài)及轉(zhuǎn)換:
3個狀態(tài):
1.執(zhí)行:占用cpu資源
2.就緒:占用除cpu以外的所有資源
3.阻塞:占用資源較少,一般是占用除cpu,內(nèi)存以外的所有資源,只是在等待某件事情的發(fā)生 eg:等待i/o輸入

狀態(tài)之間的關系:

執(zhí)行到就緒:1.時間片用完2.中斷,優(yōu)先級高的進入 進程創(chuàng)建時:分配到了除cpu,內(nèi)存外的所有資源
進程終止時(正常結(jié)束/出現(xiàn)嚴重錯誤時):進入終止狀態(tài)的進程不再被執(zhí)行,系統(tǒng)將其處理后會刪除它并回收占用資源

補充:
由內(nèi)存是否充足還可加上掛起狀態(tài),正常就緒缺內(nèi)存就為掛起就緒狀態(tài),正常阻塞缺內(nèi)存就為掛起阻塞狀態(tài).被掛起的進程只有被激活才能由外存調(diào)入內(nèi)存處于就緒狀態(tài)

4.進程控制

一.進程控制塊PCB
記錄描述進程當前狀態(tài)及控制進程運行的信息,是進程存在的唯一標識
由于其經(jīng)常被系統(tǒng)訪問,所以PCB常駐內(nèi)存
PCB中的信息有

  • 進程的標識信息
    (1).內(nèi)部標識:用于操作系統(tǒng)管理進程,一般由數(shù)字表示
    (2).外部標識:進程創(chuàng)建者提供的進程名,用于用戶訪問進程時的標識,一般由數(shù)字和字母組成

  • 當前進程運行的現(xiàn)場信息,用于之后如果被中斷用其恢復到運行狀態(tài)

  • 控制信息:程序,數(shù)據(jù)地址,進程同步,通信機制

  • 操作系統(tǒng)是根據(jù)PCB來對進程控制和管理的,將所有進程的PCB集中在系統(tǒng)中合成PCB表,大小決定了系統(tǒng)的并發(fā)度,從某進程的進程控制塊中查出其現(xiàn)行狀態(tài)及優(yōu)先級
    進程暫停(中斷時):必須將其斷點處的cpu環(huán)境保存在PCB中

    進程隊列的組織方式:

  • 線性
  • 鏈式
  • 索引
  • 二.進程控制
    1.創(chuàng)建進程:

    通過創(chuàng)建原語創(chuàng)建

    命名進程(設置進程標識符)->從PCB集合中申請空的PCB->確定優(yōu)先級->建立共享程序段鏈接指針->分配除CPU,內(nèi)存的其他各種資源->初始化PCB->若內(nèi)存充足就加入到就緒隊列中否則放到外存中等待(掛起就緒)

    創(chuàng)建進程的事件:用戶登錄,作業(yè)調(diào)度,提供服務

    引用請求:使用系統(tǒng)調(diào)用完成創(chuàng)建

    2.通過介質(zhì):原語

    1.是指若干指令所組成的用于實現(xiàn)某個特定功能,在執(zhí)行過程中不可被中斷的程序段(不可分割,不可并發(fā)) 2.是系統(tǒng)核心的一個組成部分,同PCB一樣也是常駐內(nèi)存的,通常在核心態(tài)下運行

    3.兩態(tài)

    兩態(tài)(cpu模式)

  • 核心態(tài)(管態(tài)):內(nèi)核代碼設備驅(qū)動需核心態(tài),無限制指令特權(quán),自由放文內(nèi)存空間有效地址,直接進行設備端口操作
  • 用戶態(tài)(目態(tài)):受保護模式等安全限制,普通指令,使用頁表映射虛擬地址空間,訪問系統(tǒng)允許的映射端口
  • 中斷或者系統(tǒng)調(diào)用時cpu模式由用戶態(tài)->核心態(tài),執(zhí)行系統(tǒng)服務(此時進程仍在原上下文中進行)。當中斷響應和系統(tǒng)服務完成之后通過逆向模式切換,恢復中斷進程的運行

    4.進程狀態(tài)間的聯(lián)系

  • 撤銷與終止進程:
  • 找PCB ->找到->撤銷該進程和其子孫進程—>釋放進程工作空間和PCB空間->沒有找到->異常終止處理程序

    撤銷原語:撤銷的是標志進程存在的進程控制塊而不是進程的程序段(因為程序段可能是多個進程的一部分)

  • 阻塞與喚醒進程:
    阻塞是一種自主行為,喚醒是被動行為(由釋放資源/觸發(fā)事件調(diào)用喚醒原語)
    喚醒原語:把除cpu外其他所有資源都得到的進程設為就緒狀態(tài)
    掛起與激活進程

  • 掛起與激活進程:
    掛起原語可以進程自己調(diào)用也可其他進程/系統(tǒng)調(diào)用,但激活原語只能由其他進程/系統(tǒng)調(diào)用
    被掛起進程的非常駐內(nèi)存部分將交換到外存(磁盤)中

  • 5.進程互斥與同步
    并發(fā)運行多程序時存在兩種基本管理:競爭和協(xié)作
    對資源競爭的兩個極端:死鎖與饑餓

  • 死鎖:各進程都分有/部分分有一些資源使得沒有一個進程能運行
  • 饑餓:被長期忽視而分配不到CPU執(zhí)行
  • 互斥:進程爭奪獨占資源而產(chǎn)生的競爭制約關系
    同步:進程為共同完成任務基于某個條件來協(xié)調(diào)其運行進度,執(zhí)行次序而等待,傳遞信號/消息而產(chǎn)生的協(xié)作制約關系
    聯(lián)系:互斥是一種特殊的同步

    臨界資源(獨占資源):某段時間只能由一個進程使用的資源
    臨界區(qū):用于訪問臨界資源的代碼段

    臨界區(qū)管理: 軟件:設置標志位,flag(用于進程本身,是否在臨界區(qū)中)+turn(用于臨界區(qū),是否被占用) 若flag=1, turn=0則進程進入臨界區(qū)同時turn=1,flag=0turn=1則等待 硬件:1.禁止中斷(缺點明顯,效率降低,不能處理重要進程,多cpu下失效)2.特殊指令(也可看為是信號量的方法)

    同步機制:1.有鎖(類比串行執(zhí)行,浪費cpu的時間)2.信號量+PV操作3.管程(把分散在各進程中的臨界區(qū)集中起來管理(既便于系統(tǒng)管理資源又能保證互質(zhì)訪問)用數(shù)據(jù)結(jié)構(gòu)抽象表示共享資源,防止進程有意無意做違法同步操作)
    6.信號量

    信號量是進程在某一特殊點上被迫停止執(zhí)行(阻塞)直到接收到一個對應的特殊變量值,是資源的實體,是一個與隊列有關的整型變量
    信號量除了初值外,只能由PV操作修改

    p(s)將資源量-1 若s<0則堵塞等待(插入到該信號量對應阻塞隊列中) v(s)將資源量+1 如內(nèi)存中s<=0則喚醒其中的一個阻塞等待進程(變?yōu)榫途w狀態(tài)) (當s>0時說明沒有阻塞的進程不需要喚醒) 其中s為可用資源量也為信號量 互斥信號量(即資源只有一個對應的信號量)一定設為1,其他有多少設多少(但注意考慮限制條件) 信號量即可用來實現(xiàn)異步并行進程間的互斥還可實現(xiàn)同步

    主要作用:

  • 封鎖臨界區(qū)
  • 進程同步
  • 維護資源計數(shù)
  • 5.進程通信

    三種方法:1.消息傳遞 2.共享內(nèi)存 3.管道通信
    一.消息傳遞
    適用于少量的數(shù)據(jù),要求消息傳遞的兩個進程在一次傳送數(shù)據(jù)過程中相互同步
    消息:進程之間以不連續(xù)的成組方式發(fā)送的信息
    消息通過信息緩沖區(qū)在進程間相互傳遞,通信數(shù)據(jù)封裝在消息中

    直接通信:直接發(fā)送/接收消息 間接通信:通過郵箱發(fā)送和接收消息 郵箱是一個共享的數(shù)據(jù)結(jié)構(gòu),發(fā)送進程將消息發(fā)送到郵箱后接收進程從郵箱接收 發(fā)送進程和接收進程收發(fā)消息策略:至少有一個在等待對方,允許一方可以不等待自己先做自己的,對發(fā)送進程超時沒有收到回送消息會再次發(fā)送或者放棄 對接收進程只有當有消息回復時才會去處理

    二.共享內(nèi)存通信
    系統(tǒng)應該允許多個進程將共享內(nèi)存映射放到自己地址空間中,這些進程對各自映射的地址段讀寫操作的代碼放到臨界區(qū)中
    三.管道通信
    管道實際上是一個共享文件,可借助文件系統(tǒng)機制實現(xiàn)
    管道是可以連續(xù)讀寫的特殊文件,允許進程FIFO凡是傳送數(shù)據(jù),也能是進程同步執(zhí)行操作類比郵箱,發(fā)送進程以字符流的形式將數(shù)據(jù)放入接收進程從管道接受數(shù)據(jù)
    收發(fā)消息的進程間應該是同步關系,進程對管道的使用時互斥的
    管道限制:

  • 匿名管道:只允許父子進程之間實現(xiàn)數(shù)據(jù)的傳遞
  • 命名管道:不同的進程都可以進程數(shù)據(jù)傳遞->通信方式:1.字節(jié) 2.消息
  • 管道發(fā)出的每一消息必須作為一條完整的消息讀入

    6.進程調(diào)度

    功能:通過一定的策略將CPU分配給處于就緒隊列中的某個進程
    一.調(diào)度模型

    1.高級調(diào)度(作業(yè)調(diào)度) 在實時和分時系統(tǒng)中不需要,主要用于創(chuàng)建作業(yè)進程和為其服務的系統(tǒng)進程
    2.中級調(diào)度(平衡調(diào)度)在內(nèi)存不足是采用虛擬存儲技術(shù)擴充內(nèi)存-有點類似于內(nèi)存分配策略
    3.低級調(diào)度(進程調(diào)度)主要是為進程進行CPU資源的分配

    二.調(diào)度算法
    1. 先來先服務FCFS:屬于非搶占式調(diào)度,優(yōu)點:長作業(yè)有力,CPU繁忙型作業(yè)有利 缺點:短作業(yè)不利,IO繁忙型,要求響應時間高的不利
    2. 短作業(yè)優(yōu)先SJF:非搶占式調(diào)度,優(yōu)點:調(diào)度性能優(yōu)于FCFS但對長作業(yè)不利,忽視了作業(yè)的等待時間,如果不斷的接受短作業(yè),長作業(yè)會出現(xiàn)饑餓現(xiàn)象
    3. 最短剩余時間優(yōu)先SRTF:搶占式調(diào)度,優(yōu)點性能優(yōu)于SJF,但是需要計算剩余時間開銷比較大,并且長作業(yè)仍然存在饑餓現(xiàn)象
    4. 高響應比HRRF:非搶占式調(diào)度,是綜合考慮了FCFS的沒有考慮作業(yè)的運行時間和SJF的沒有考慮作業(yè)等待時間,是他們之間比較折中的算法

    響應比=作業(yè)現(xiàn)等待時間+作業(yè)估計運行時間/作業(yè)估計運行時間

    5.優(yōu)先權(quán):搶占式調(diào)度,優(yōu)先級越小,優(yōu)先級越高
    算法效率:SRJF>SJF>HRRF>FCFS
    前面的算法在作業(yè)和進程中都是可以使用的
    6.時間片輪轉(zhuǎn):搶占式調(diào)度,關鍵在于設置時間片的大小,如果太大就會退化為FCFS,如果過小就會導致頻繁切換開銷較大
    7.多級反饋隊列:搶占式調(diào)度,是基于時間片的反饋循環(huán)隊列,多個就緒隊列最高級就緒隊列優(yōu)先級最高但是獲取到的時間片比較短。相反低優(yōu)先級其時間片長
    后兩種算法都是只能用于進程中
    這些算法的評價標準可以看:
    算法評價
    三.死鎖
    產(chǎn)生原因:并發(fā)進程對臨界資源的競爭以及并發(fā)進程的推進順序不當
    四大必要條件:

  • 互斥條件:資源的使用時互斥的->解決方法:使資源可以同時訪問
  • 占有與等待條件:已經(jīng)得到資源的進程可以申請新的資源,且得到的資源不釋放->解決方法:可以使用靜態(tài)分配(僅當系統(tǒng)能滿足進程資源要求且分配資源給進程后才能執(zhí)行)
  • 不可剝奪條件:只能由自身釋放資源->解決方法:采用剝奪式調(diào)度
  • 環(huán)路等待條件:存在一個有若干進程形成的環(huán)路請求鏈->解決方法:層次分配或者靜態(tài)分配或按序分配法
  • 死鎖的避免可以使用銀行家算法
    死鎖定理:如果進程-資源分配圖無環(huán)則無死鎖
    如果有環(huán)且每個資源都僅有一個資源則死鎖。當有多個資源是則只是環(huán)路等待的必要條件而非充分條件
    死鎖充分條件:當且僅當該狀態(tài)下的進程-資源分配圖是不可簡化的時候
    死鎖檢測:1.基于死鎖定理 2.類似于銀行家算法中的安全性測試算法
    死鎖的解除:1.重啟 2.撤銷 3.回滾

    7.線程

    見:線程

    感謝看到這里的你,如果想看更多的內(nèi)容,還請大家點個贊支持一下吧└(o)┘;

    總結(jié)

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

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