freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)精髓與設(shè)計(jì)原理(第五版))-文庫吧資料

2025-08-02 16:52本頁面
  

【正文】 進(jìn)程。2. 處理器控制權(quán)轉(zhuǎn)交給子進(jìn)程。 當(dāng)父進(jìn)程的內(nèi)核模式下完成以上操作后,會(huì)繼續(xù)下面三種操作之一:1. 在父進(jìn)程中繼續(xù)執(zhí)行。5. 把子進(jìn)程置為就緒態(tài)。3. 為一個(gè)父進(jìn)程上下文的邏輯副本,不包括共享內(nèi)存區(qū)。當(dāng)一個(gè)進(jìn)程產(chǎn)生一個(gè)fork()請求時(shí),操作系統(tǒng)執(zhí)行以下功能[BACH86]:1. 為新進(jìn)程表中分配一個(gè)空項(xiàng)。但是如果當(dāng)前正在運(yùn)行的進(jìn)程被切換到另一個(gè)狀態(tài)(就緒、阻塞等),則操作系統(tǒng)必須使其環(huán)境產(chǎn)生實(shí)質(zhì)性的變化。進(jìn)程切換涉及到狀態(tài)變化,比模式切換需要做更多的工作,顯然,模式切換與進(jìn)程切換是不同的。6. 更新內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu),這取決于如何管理地址轉(zhuǎn)換。4. 選擇另一個(gè)進(jìn)程執(zhí)行。還必須更新其他相關(guān)域,包括離開運(yùn)行態(tài)的原因和審計(jì)信息。進(jìn)程切換的步驟:1. 保存處理器上下文,包括程序計(jì)數(shù)器和其他寄存器。進(jìn)程的切換: 進(jìn)程切換的功能是很簡單的。父進(jìn)程在15次循環(huán)后退出。 無論兩個(gè)進(jìn)程執(zhí)行的順序如何,這個(gè)程序執(zhí)行的結(jié)果是不變的。當(dāng)子進(jìn)程向他的標(biāo)準(zhǔn)輸出寫的時(shí)候, 他實(shí)際上是寫入 to_par向父進(jìn)程發(fā)送數(shù)據(jù),而父進(jìn)程則從他的標(biāo)準(zhǔn)輸入 接收來自管道線的數(shù)據(jù)。然后兩個(gè)進(jìn)程關(guān)閉從 pipe 返回的文件描述符。由于文件描述符表的第一個(gè)空項(xiàng)是原先的標(biāo)準(zhǔn) 輸入項(xiàng),所以子進(jìn)程的標(biāo)準(zhǔn)輸入變成了管道線 to_chil 的讀文件描述符。 父進(jìn)程以類似的操作將標(biāo)準(zhǔn)輸入文件描述符替換為管道線 to_par 的讀文件 描述符。父進(jìn)程關(guān)閉他的標(biāo)準(zhǔn)輸出文件(文件描述符1),并復(fù)制(dup)從管道 線 to_chil 返回的寫文件描述符。兩次執(zhí)行系統(tǒng)調(diào)用 pipe 分別在數(shù)組 to_par 和 to_chil 中分配了兩個(gè)文件描述符。 read(0, buf, sizeof(buf))。 i 15。 close(to_par[1])。 close(to_par[0])。 dup(to_par[0])。 // 重新設(shè)置標(biāo)準(zhǔn)輸入、輸出 dup(to_chil[1])。 write(1, buf, count)。 for (。 close(to_par[0])。 // 將管道的寫復(fù)制到標(biāo)準(zhǔn)輸出 close(to_par[1])。 // 將管道的讀復(fù)制到標(biāo)準(zhǔn)輸入 close(1)。 if (fork() == 0) { // 子進(jìn)程在此執(zhí)行 close(0)。 pipe(to_par)。 int to_par[2], to_chil[2]。 再來看看另外一個(gè)例子: include char string[] = Hello, world。如果子進(jìn)程 讀到字符 b,并在父進(jìn)程被調(diào)度前,將它寫到目標(biāo)文件,那么目標(biāo)文件將不再含有 字符串 ab,而是含有 ba了。但考慮 這樣的情況:兩個(gè)進(jìn)程正要讀源文件中的兩個(gè)連續(xù)的字符 ab。盡管兩個(gè)進(jìn)程似乎是將源文件拷貝了兩次,但因?yàn)?他們分擔(dān)了工作任務(wù),因此,目標(biāo)文件的內(nèi)容依賴于核心調(diào)度兩個(gè)進(jìn)程的次序。 }}在這個(gè)例子中,兩個(gè)進(jìn)程的文件描述符都指向相同的文件表項(xiàng)。 } write(fdwt, amp。) { if (read(fdrd, amp。 exit(0)。 } fork()。 } if ((fdrd = open(argv[1], O_RDONLY)) == 1) { exit(1)。char c。當(dāng)系統(tǒng)調(diào)用 read 遇見 文件尾時(shí),函數(shù) rdwrt 立即返回。子進(jìn)程可以通過使用相同的文件描述 符而繼承地存取父進(jìn)程的文件(即父進(jìn)程已經(jīng)打開和創(chuàng)建的文件)。用戶調(diào)用該程序時(shí)應(yīng)有兩個(gè)參數(shù),一個(gè)是已經(jīng)有的文件名,另外一個(gè)是要 創(chuàng)建的新文件名。 }}我們來看看下面的例子。如果資源滿足要求,核心在進(jìn)程 表中找一個(gè)空項(xiàng),并開始構(gòu)造子進(jìn)程的上下文。核心首先確信有足夠的資源來成功完成 fork。 理解系統(tǒng)調(diào)用 fork 的實(shí)現(xiàn)是十分重要的,因?yàn)樽舆M(jìn)程就象從天而降一樣地開始 它的執(zhí)行序列。 增加與該進(jìn)程相關(guān)聯(lián)的文件表和索引節(jié)點(diǎn)表的引用數(shù)。 做一個(gè)父進(jìn)程上下文的邏輯副本。 核心為系統(tǒng)調(diào)用 fork 完成下列操作: 為新進(jìn)程在進(jìn)程表中分配一個(gè)空項(xiàng)。在子進(jìn)程中,pid 的值為零。系統(tǒng) 調(diào)用的語法格式: pid = fork()。UNIX下進(jìn)程創(chuàng)建的方法:(摘自:)在 UNIX 系統(tǒng)中,用戶創(chuàng)建一個(gè)新進(jìn)程的唯一方法就是調(diào)用系統(tǒng)調(diào)用 fork。4. 設(shè)置正確的連接。2. 給進(jìn)程分配空間。2. 給進(jìn)程分配I/O通道和設(shè)備。3. 頁和段的管理。內(nèi)存管理:1. 給進(jìn)程分配地址空間。4. 進(jìn)程同步以及對進(jìn)程間通信的支持。2. 進(jìn)程的調(diào)度和分配。進(jìn)程執(zhí)行模式: 非特權(quán)模式通常稱為用戶模式,這是因?yàn)橛脩舫绦蛲ǔT谠撃J较逻\(yùn)行;特權(quán)模式可稱為系統(tǒng)模式、控制模式或內(nèi)核模式,內(nèi)核模式指的是操作系統(tǒng)的內(nèi)核,這是操作系統(tǒng)中包含重要系統(tǒng)功能的部分。與進(jìn)程有關(guān)的其他信息。進(jìn)程所在隊(duì)列PCB的鏈接字 根據(jù)進(jìn)程所處的現(xiàn)行狀態(tài),進(jìn)程相應(yīng)的PCB參加到不同隊(duì)列中。CPU現(xiàn)場保護(hù)區(qū) cpustatus:當(dāng)進(jìn)程因某種原因不能繼續(xù)占用CPU時(shí)(等待打印機(jī)),釋放CPU,這時(shí)就要將CPU的各種狀態(tài)信息保護(hù)起來,為將來再次得到處理機(jī)恢復(fù)CPU的各種狀態(tài),繼續(xù)運(yùn)行。進(jìn)程優(yōu)先級 priority:進(jìn)程的優(yōu)先級反映進(jìn)程的緊迫程序,通常由用戶指定和系統(tǒng)設(shè)置。進(jìn)程資源清單。為了管理的方便,系統(tǒng)設(shè)計(jì)時(shí)會(huì)將相同的狀態(tài)的進(jìn)程組成一個(gè)隊(duì)列,如就緒進(jìn)程隊(duì)列,等待進(jìn)程則要根據(jù)等待的事件組成多個(gè)等待隊(duì)列,如等待打印機(jī)隊(duì)列、等待磁盤I/O完成隊(duì)列等等。在進(jìn)程創(chuàng)建時(shí)由系統(tǒng)賦予。進(jìn)程標(biāo)識(shí)符 name:每個(gè)進(jìn)程都必須有一個(gè)唯一的標(biāo)識(shí)符,可以是字符串,也可以是一個(gè)數(shù)字。它是進(jìn)程管理和控制的最重要的數(shù)據(jù)結(jié)構(gòu),每一個(gè)進(jìn)程均有一個(gè)PCB,在創(chuàng)建進(jìn)程時(shí),建立PCB,伴隨進(jìn)程運(yùn)行的全過程,直到進(jìn)程撤消而撤消。5. 父進(jìn)程請求:父進(jìn)程可能會(huì)希望掛起后代進(jìn)程的執(zhí)行,以檢查或修改掛起的進(jìn)程,或者協(xié)調(diào)不同后代進(jìn)程之間的行為。3. 交互式用戶請求:用戶可能希望掛起一個(gè)程序的執(zhí)行,目的是為了調(diào)試或者與一個(gè)資源的使用進(jìn)行連接。進(jìn)程掛起的原因:1. 交換:操作系統(tǒng)需要釋放足夠的主存空間,以調(diào)入并執(zhí)行處于就緒態(tài)的進(jìn)程。3. 為阻止進(jìn)程執(zhí)行,可以通過代理把這個(gè)進(jìn)程至于掛起狀態(tài),代理可以是進(jìn)程自己,也可以是父進(jìn)程或操作系統(tǒng)。2. 進(jìn)程可能是或不是正在等待一個(gè)事件。進(jìn)程狀態(tài)轉(zhuǎn)換圖掛起狀態(tài)進(jìn)程: 掛起狀態(tài)進(jìn)程的概念與不再主存中的進(jìn)程概念是等價(jià)的。13. 父進(jìn)程終止:當(dāng)一個(gè)父進(jìn)程終止時(shí),操作系統(tǒng)可自動(dòng)終止該進(jìn)程的所有后代進(jìn)程。11. 數(shù)據(jù)誤用:錯(cuò)誤類型或未初始化的一塊數(shù)據(jù)。9. 無效指令:進(jìn)程試圖執(zhí)行一個(gè)不存在的指令。6. 算術(shù)錯(cuò)誤:進(jìn)程試圖進(jìn)行被禁止的計(jì)算,如除以零或者存儲(chǔ)大于硬件可以接納的數(shù)字7. 時(shí)間超出:進(jìn)程等待某一事件發(fā)生的時(shí)間超過了規(guī)定的最大值。3. 無可用內(nèi)存:系統(tǒng)無法滿足系統(tǒng)需要的內(nèi)存空間4. 越界:進(jìn)程試圖訪問不允許訪問的內(nèi)存單元。在典型情況下,相關(guān)進(jìn)程需要相互之間的通訊和合作。進(jìn)程派生 當(dāng)操作系統(tǒng)為另一個(gè)進(jìn)程的顯示請求創(chuàng)建一個(gè)進(jìn)程時(shí),這個(gè)動(dòng)作稱為進(jìn)程派生。3. 操作系統(tǒng)因?yàn)樘峁┮豁?xiàng)服務(wù)而創(chuàng)建: 操作系統(tǒng)可以創(chuàng)建也個(gè)進(jìn)程,代表用戶程序執(zhí)行一個(gè)功能,使用戶無需等待(如控制打印的任務(wù))。當(dāng)操作系統(tǒng)準(zhǔn)備接納新工作是,它將讀取下一個(gè)作業(yè)控制命令。8. 審計(jì)信息:可包括處理器時(shí)間總和、使用的時(shí)鐘數(shù)總和、時(shí)間限制、審計(jì)號(hào)等。6. 上下文數(shù)據(jù):進(jìn)程執(zhí)行的處理器的寄存器中的數(shù)據(jù)。4. 程序計(jì)數(shù)器:程序中即將被執(zhí)行的下一條指令的地址。2. 狀態(tài):如果進(jìn)程正在執(zhí)行,那么進(jìn)程處于執(zhí)行態(tài)。對稱多處理器結(jié)構(gòu)比單處理器結(jié)構(gòu)具有更多的潛在優(yōu)勢。3. 所有處理器都可以執(zhí)行相同的功能(因此稱為對稱)。對稱多處理(Symmetric MultiProcessing, SMP):對稱多處理可定義為具有以下特征的一個(gè)獨(dú)立的計(jì)算
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1