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

正文內(nèi)容

操作系統(tǒng)2進(jìn)程與線程課件(參考版)

2025-01-22 21:49本頁面
  

【正文】 返回目錄 。調(diào)用 exec()就做下面的三件事情:用所給的執(zhí)行程序代替原先的代碼段;廢棄原有的數(shù)據(jù)段,為新程序分配新的數(shù)據(jù)段;廢棄原有的堆棧段,為新程序分配所需的堆棧段。 進(jìn)程的執(zhí)行 3. 為一個進(jìn)程注入新“靈魂”的任務(wù),在 Linux里是由系統(tǒng)調(diào)用 exec()來完成的。 . 在 fork或 clone調(diào)用結(jié)束時(shí),父進(jìn)程和子進(jìn)程同時(shí)存在,都可以運(yùn)行。使用 fork和 clone的區(qū)別是: fork是全部復(fù)制,是把父進(jìn)程使用的所有資源全部通過復(fù)制而“傳”給子進(jìn)程; clone則是通過設(shè)置各種參數(shù),對資源做有選擇地復(fù)制,沒有被復(fù)制的就通過指針的復(fù)制讓子進(jìn)程共享。調(diào)用 fork和 clone的進(jìn)程是父進(jìn)程,被創(chuàng)建的進(jìn)程是子進(jìn)程。位圖里的某位為“ 1”,表示該位代表的 PID值已被進(jìn)程使用;某位為“ 0”,表示該位代表的 PID值還沒使用,可作為新進(jìn)程的PID。 . Linux在內(nèi)核里開辟一個有 1024個字、每個字 32個二進(jìn)制位的區(qū)域,用它各位的順序來表示 PID值。 . 系統(tǒng)中的進(jìn)程個數(shù) 1. 32位 /字 1024個字 pidmap_array位圖 當(dāng)這位為 1時(shí),表示系統(tǒng)里有 PID等于 3的進(jìn)程 這位不用 . Linux中同時(shí)存在的進(jìn)程數(shù)目是受限的,缺省情況下最大的 PID值是 32767。此后用戶與系統(tǒng)交互時(shí),就由 shell進(jìn)程接收并解釋用戶輸入的命令,創(chuàng)建子進(jìn)程執(zhí)行該命令。該進(jìn)程為當(dāng)前的每個終端創(chuàng)建管理進(jìn)程,接收用戶的登錄信息。 .返回目錄 ? Linux進(jìn)程的生存過程 Linux初啟時(shí)運(yùn)行在內(nèi)核態(tài)。那么,這五個進(jìn)程間的關(guān)系如圖所示。 p_pptrr:指向父進(jìn)程的指針; p_cptr:指向最新子進(jìn)程的指針; p_ysptr:指向弟進(jìn)程的指針; p_osptr:指向兄進(jìn)程的指針。如果一個進(jìn)程創(chuàng)建了若干個子進(jìn)程,那么這些子進(jìn)程之間就是兄弟關(guān)系。該表的每個元素由兩個 task_struct型指針組成: pidhash_next指向 pidhash散列 表里該索引值鏈表中的下一個 PCB; pidhash_pprev指向 pidhash散列 表里該索引值鏈表中的前一個 PCB。即如果兩個不同的 PID計(jì)算出的 PCB在散列表的索引值相同(沖突),那么就把這兩個 PCB組成鏈表鏈接在一起。這實(shí)際上就是所謂的散列技術(shù)。 利用散列表 pidhash里的pidhash_next和 pidhash_pprev,以及進(jìn)程 PCB里的字段pidhash_next和 pidhash_pprev,就能基于散列表的索引值形成一個個進(jìn)程 PCB的雙向鏈表。 . . 為提高調(diào)度時(shí)的查找速度, Linux是以優(yōu)先級為依據(jù)建立“可運(yùn)行”隊(duì)列的。 每個進(jìn)程的 PCB里有兩個 task_struct型指針字段,作用是: prev_task:向前指針,指 向鏈表中本進(jìn)程前面的那個進(jìn)程 的 PCB; next_task:向后指針,指 向鏈表中本進(jìn)程后面的那個進(jìn)程的 PCB。組標(biāo)識符存放在進(jìn)程 PCB的字段 gid里。 . Linux將用戶劃分成組,每個用戶可分屬一個或多個用戶組。 . 用戶標(biāo)識符:在 Linux里,每個用戶 都有一個唯一的數(shù) 字與之對應(yīng),稱為 用戶標(biāo)識符。這時(shí)的進(jìn)程就處于僵死狀態(tài)。 ( 3) ( 4) 暫停狀態(tài) :當(dāng)運(yùn)行進(jìn)程接到暫停執(zhí)行的信號(比如程序正在接受調(diào)試)時(shí),其狀態(tài)就由“運(yùn)行”變遷成為“暫停”。在所等待的事件或信號到來時(shí),進(jìn)程的等待結(jié)束,狀態(tài)變遷為“可運(yùn)行”。 . Linux的進(jìn)程狀態(tài)及其變遷 3. 可運(yùn)行狀態(tài):當(dāng)一個進(jìn)程正在被 CPU執(zhí)行,或已經(jīng)準(zhǔn)備就緒隨時(shí)可由調(diào)度程序調(diào)度執(zhí)行,則稱該進(jìn)程處于“可運(yùn)行”狀態(tài)。 Linux系統(tǒng)中的進(jìn)程,由四個部分組成 . 內(nèi)核棧 PCB (task_struct 結(jié)構(gòu) ) 8KB 52 個字節(jié) 高地址 低地址 內(nèi)核棧的 增長方向 8140 個字節(jié) ( 1) 一段可執(zhí)行的程序; ( 2) 一個專用的系統(tǒng)??臻g,用來保存中斷現(xiàn)場信息和進(jìn)程進(jìn)入內(nèi)核模式后執(zhí)行子程序(函數(shù))嵌套調(diào)用的返回現(xiàn)場信息; ( 3) 進(jìn)程控制塊 PCB( task_struct結(jié)構(gòu)); ( 4) 獨(dú)立的存儲空間。 Linux的進(jìn)程控制塊 2. . Linux中,把傳統(tǒng)的進(jìn)程控制塊 PCB稱為進(jìn)程描述符,用于記錄每個進(jìn)程所做的事情。 ( 4) 硬件。它負(fù)責(zé)管理和使用系統(tǒng)中的 各種資源(如內(nèi)存空間、磁盤空間、磁盤上的文 件),以及啟動并運(yùn)行程序等。 Linux的進(jìn)程 ? Linux進(jìn)程 Linux內(nèi)核 1. . Linux內(nèi)核,指的是所有 Linux發(fā)布版本的核心程序。當(dāng)一個用戶程序在操作系統(tǒng)上運(yùn)行時(shí),它就成為一個進(jìn)程。 用戶進(jìn)程。 返回目錄 系統(tǒng)調(diào)用接口。 . 開銷:創(chuàng)建和撤消進(jìn)程時(shí),系統(tǒng)要做資源的分配和回收工作;進(jìn)程間進(jìn)行切換時(shí),系統(tǒng)要為其保存現(xiàn)場信息,將原進(jìn)程內(nèi)容調(diào)出至輔存,將新進(jìn)程內(nèi)容調(diào)入內(nèi)存等。 . 并發(fā):引入線程后,不僅進(jìn)程之間可以并發(fā)執(zhí)行, 而且一個進(jìn)程內(nèi)的多個線程之間也可以并發(fā)執(zhí)行,因此系 統(tǒng)具有了更好的并發(fā)性,進(jìn)而使系統(tǒng)的資源利用率和吞吐率大大提高。 例 27 : 窗口線程 窗口進(jìn)程 三個窗口 顯示器 處理機(jī)管理的新含義 2. . 調(diào)度:引入線程后,進(jìn)程是資源的擁有者,線程是處理機(jī)調(diào)度和分配的單位。進(jìn)程擁有的資源是物 理顯示器。 兩個堆棧指針,一個指向用戶棧(線程在用戶態(tài)下時(shí),使用自己的用戶棧),一個指向系統(tǒng)棧(線程在核心態(tài)下運(yùn)行時(shí),使用系統(tǒng)棧); ? 線程與進(jìn)程的關(guān)系 1. 線程與進(jìn)程的關(guān)系 . 線程控制塊( TCB)的三部分內(nèi)容 ( 1) 一個唯一的線程標(biāo)識; ( 2) ( 3) 一個私用的現(xiàn)場保護(hù)區(qū),存放現(xiàn)場保護(hù)信息(如處理機(jī)的各種寄存器內(nèi)容)和其他與線程有關(guān)的信息。 通信關(guān)系:不同進(jìn)程間的通信,必須使用操作系統(tǒng)提供的進(jìn)程通信機(jī)制;同一進(jìn)程各個線程間的通信,可以直接通過訪問共享的進(jìn)程地址空間來實(shí)現(xiàn)。這相比用戶級線程,就會顯得復(fù)雜一些,所花費(fèi)的時(shí)間要多一些。內(nèi)核級線程的另一個優(yōu)點(diǎn)是內(nèi)核程序本身也可使用多線程技術(shù)。一個用戶程序中的多個用戶級線程,被映射到一些內(nèi)核級線程上。這樣組合式的管理方法,會綜合用戶級線程與內(nèi)核級線程管理方法的優(yōu)點(diǎn),減少它們的缺點(diǎn)。內(nèi)核為該進(jìn)程以及內(nèi)部的每一個線程(深色圓圈)維護(hù)上下文信息,調(diào)度在內(nèi)核基于線程架構(gòu)的基礎(chǔ)上完成,線程運(yùn)行則在用戶空間進(jìn)行。那么這樣的線程稱為“內(nèi)核級線程”。系統(tǒng)內(nèi)核仍然是以進(jìn)程為單位管理和調(diào)度進(jìn)程,指定其所處的狀態(tài) 。 2. 這時(shí),用戶程序被創(chuàng)建成為一個由內(nèi)核管理的進(jìn)程,與這個進(jìn)程相對應(yīng)的線程則在用戶空間里運(yùn)行。 返回目錄 ? 線程的實(shí)現(xiàn) 1. 用戶級線程方法 若有關(guān)線程的管理工作都是由運(yùn)行在用戶空間的應(yīng)用程序完成,那么這樣的線程稱為“用戶級線程”。線程
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1