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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

进程的解析

發(fā)布時(shí)間:2024/9/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进程的解析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.什么是進(jìn)程?

對(duì)于進(jìn)程的定義,從不同的角度可以有不同的定義,典型的定義有:
???? (1)進(jìn)程 是程序的一次執(zhí)行。
???? (2)進(jìn)程是一個(gè)程序以及其數(shù)據(jù)在處理機(jī)順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。
???? (3)進(jìn)程是具有獨(dú)立運(yùn)行功能的程序在數(shù)據(jù)集合上運(yùn)行的過(guò)程,它是資源分配的基本單位。


2.進(jìn)程的特征:
? (1)動(dòng)態(tài)性
? (2)并發(fā)性
??(3)獨(dú)立性
? (4)異步性

3.進(jìn)程的管理:
? (1)進(jìn)程的控制
? (2)進(jìn)程的同步
? (3)進(jìn)程的通信

?

4.對(duì)于進(jìn)程的控制這部分有以下重點(diǎn)


(1)操作系統(tǒng)內(nèi)核
??????? 1.支撐功能:
??????????? 中斷處理
??????????? 時(shí)鐘管理
??????????? 原語(yǔ)操作
??????? 2.資源管理功能:
?????????? 進(jìn)程管理
????????? ?存儲(chǔ)器管理
???????????設(shè)備管理
(2)進(jìn)程的創(chuàng)建
??????1 .申請(qǐng)空白PCB,為新進(jìn)程申請(qǐng)獲得唯一的數(shù)字標(biāo)識(shí)符,并從PCB集合中索取一個(gè)空白PCB。

2.為新進(jìn)程分配所需的資源。(物理和邏輯資源) 3.初始化PCB
???????????? 初始化處理機(jī)狀態(tài)信息將系統(tǒng)分配的標(biāo)志符和父進(jìn)程的標(biāo)識(shí)符填入新PCB中
???????????? 初始化處理機(jī)控制信息
????? 4.將新進(jìn)程插入就緒隊(duì)列中 (3)進(jìn)程的終止
????? 1.正常結(jié)束
????? 2.異常結(jié)束
????? 3.外界干預(yù)

(4)進(jìn)程的基本狀態(tài)及轉(zhuǎn)換
??????1.就緒狀態(tài)

???????????當(dāng)進(jìn)程已分配到除CPU以外的所有必要資源后,只要獲得CPU,便可以立即執(zhí)行,這時(shí)候的進(jìn)程狀態(tài)稱(chēng)為就緒狀態(tài),如果系統(tǒng)有很多就緒狀態(tài)的進(jìn)程,通常將它們按照一定的策略 (優(yōu)先級(jí)策略)排成一個(gè)隊(duì)列,稱(chēng)該隊(duì)列為就緒隊(duì)
??????2.執(zhí)行狀態(tài)

?????????? 進(jìn)程已獲得CPU,其程序正在執(zhí)行的狀態(tài)。在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)行狀態(tài),而多處理機(jī)系統(tǒng)中,有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。
??????3.阻塞狀態(tài)

???????????正在執(zhí)行的進(jìn)程由于發(fā)生某事件(如I/0請(qǐng)求,申請(qǐng)緩沖失敗)暫時(shí)無(wú)法執(zhí)行狀態(tài),進(jìn)程發(fā)生阻塞,把這種進(jìn)程的狀態(tài)稱(chēng)之為 阻塞狀

(5)掛起操作與進(jìn)程狀態(tài)的轉(zhuǎn)換

出于用戶觀察需要,進(jìn)程可以執(zhí)行掛起激活兩種操作。掛起是將活躍狀態(tài)轉(zhuǎn)為掛起狀態(tài),使進(jìn)程不再被系統(tǒng)調(diào)用;激活是將掛起狀態(tài)轉(zhuǎn)為活躍狀態(tài)。

進(jìn)程掛起的幾種情況:

  • 終端用戶的需要:當(dāng)終端用戶在運(yùn)行程序期間發(fā)現(xiàn)有可疑問(wèn)題,希望暫停程序的運(yùn)行以便研究其執(zhí)行情況或做一定的修改;
  • 父進(jìn)程請(qǐng)求
  • 符合調(diào)節(jié)的需要
  • 操作系統(tǒng)的需要:有時(shí)希望掛起某些進(jìn)程以便檢查運(yùn)行中的資源使用情況或進(jìn)行記賬。

掛起原語(yǔ)(Suspend)的執(zhí)行過(guò)程如下:

  • 檢查被掛起的進(jìn)程的狀態(tài);
  • 若是活動(dòng)就緒狀態(tài),便將其改成掛起就緒;若是活動(dòng)阻塞狀態(tài),便將其改成掛起阻塞;
  • 為方便用戶或父進(jìn)程考察該進(jìn)程的運(yùn)行情況,把該進(jìn)程的 PCB 復(fù)制到某指定的內(nèi)存區(qū)域;
  • 若被掛起的進(jìn)程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度。
  • 激活原語(yǔ)(Active)的執(zhí)行過(guò)程如下:

  • 將進(jìn)程從外存調(diào)入內(nèi)存,檢查該進(jìn)程的現(xiàn)行狀態(tài);
  • 若是掛起就緒,便將其改為活動(dòng)就緒;若是掛起阻塞,便將其改為活躍阻塞;
  • 假如采用的是搶占調(diào)度策略,則每當(dāng)有掛起就緒進(jìn)程被激活而加入就緒隊(duì)列時(shí),便檢查是否需要重新調(diào)度,即由調(diào)度程序?qū)⒈患せ畹倪M(jìn)程和當(dāng)前進(jìn)程兩者優(yōu)先級(jí)進(jìn)行比較;
  • 若被激活進(jìn)程優(yōu)先級(jí)低,則不必重新調(diào)度;若當(dāng)前進(jìn)程優(yōu)先級(jí)低,則把處理機(jī)分配給被激活的進(jìn)程。
  • ?

    ? (6)進(jìn)程狀態(tài)

    • 運(yùn)行狀態(tài):進(jìn)程正在處理機(jī)上運(yùn)行。在單處理機(jī)環(huán)境下,每一時(shí)刻最多只有一個(gè)進(jìn)程處于運(yùn)行狀態(tài);
    • 就緒狀態(tài):進(jìn)程已處于準(zhǔn)備運(yùn)行的狀態(tài),獲得了除處理機(jī)之外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行。
    • 阻塞狀態(tài),又稱(chēng)等待狀態(tài):進(jìn)程正在等待某一事件而暫停運(yùn)行,如等待某資源為可用(不包括處理機(jī))或等待輸入/輸出完成。即使處理機(jī)空閑,該進(jìn)程也不能運(yùn)行。
    • 創(chuàng)建狀態(tài):進(jìn)程正在被創(chuàng)建,尚未轉(zhuǎn)到就緒狀態(tài)。創(chuàng)建步驟包括:申請(qǐng)空白的 PCB,向 PCB 中填寫(xiě)一些控制和管理信息,系統(tǒng)向進(jìn)程分配運(yùn)行時(shí)所需的資源。
    • 結(jié)束狀態(tài):進(jìn)程正常結(jié)束、發(fā)生錯(cuò)誤或者系統(tǒng)中斷退出運(yùn)行。系統(tǒng)必須首先將進(jìn)程置為結(jié)束狀態(tài),再進(jìn)一步處理資源釋放及回收工作。

    總結(jié)

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

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