操作系統(tǒng)2019-08-27

整理筆記
死鎖習(xí)題
PV操作
調(diào)度算法

操作系統(tǒng)試題一

(1)愕撰、CLOCK算法的關(guān)鍵是:每一次進(jìn)行替換指針的位置就從替換數(shù)移到下一個(gè)位置,每一次進(jìn)行訪問(wèn)時(shí)篡撵,則指針保持不動(dòng)拴孤。
eg:在某請(qǐng)求分頁(yè)管理系統(tǒng)中逃顶,一個(gè)作業(yè)共5頁(yè)讨便,作業(yè)執(zhí)行時(shí)一次訪問(wèn)如下頁(yè)面:1,4以政,3霸褒,1,2盈蛮,5废菱,1,4,2殊轴,1衰倦,4,5梳凛,若分配給該作業(yè)的主存塊數(shù)為3耿币,采用Clock頁(yè)面置換算法梳杏,試求出缺頁(yè)中斷的次數(shù)及缺頁(yè)率韧拒。

圖片.png

(2).在請(qǐng)求分頁(yè)管理系統(tǒng)中,若采用FIFO頁(yè)面淘汰算法十性,則當(dāng)分配的頁(yè)面數(shù)增加時(shí)叛溢,缺頁(yè)中斷次數(shù)可能增加或減少

隨著內(nèi)存的增大:缺頁(yè)次數(shù)增加的現(xiàn)象:稱之為 Belady 現(xiàn)象(異常現(xiàn)象)劲适;
我們都知道常用的頁(yè)面淘汰算法有五種:
1 FIFO: 先進(jìn)先出
2 :最近最久未用置換算法 LRU
3 LFU 最近訪問(wèn)頻率最低的
4 NUR 最近沒(méi)有使用頁(yè)面淘汰算法( clock
5: 最佳置換算法:( OPT
這五種算法可見(jiàn)簡(jiǎn)單的將其分為兩類楷掉,堆棧型算法和非堆棧型算法;
注意:堆棧型算法:最新壓入到堆棧中的永遠(yuǎn)在棧頂霞势;棧頂是剛剛訪問(wèn)過(guò)的烹植,棧底是最久沒(méi)有訪問(wèn)過(guò)的;
LRU和LFU愕贡、OPT都 是堆棧型算法草雕,
但是 FIFO非堆棧型算法
非堆棧式算法可能出現(xiàn) Belady 問(wèn)題固以,是棧式算法不會(huì)出現(xiàn)類似問(wèn)題墩虹;

所謂Belady現(xiàn)象是指:管理中,發(fā)生缺頁(yè)時(shí)的置換算法采用FIFO( 先進(jìn)先出 )算法時(shí)憨琳,如果對(duì)-個(gè)進(jìn)程未分配它所要求的全部頁(yè)面诫钓,有時(shí)就會(huì)出現(xiàn)分配的頁(yè)面數(shù)增多但缺頁(yè)率反而提高的異常現(xiàn)象篙螟。

缺頁(yè)中斷的次數(shù)是由頁(yè)面數(shù)量菌湃,頁(yè)面置換算法與頁(yè)面走向三個(gè)因素決定的,題目中采用FIFO遍略,頁(yè)面數(shù)增大惧所,但是頁(yè)面走向不確定,所以缺頁(yè)次數(shù)可能增大頁(yè)可能減小墅冷,比如Belady異常纯路。

(3). spooling技術(shù)是空間換取時(shí)間的技術(shù):(假脫機(jī)技術(shù)):
(白話:申請(qǐng)打印機(jī)的一個(gè)進(jìn)程現(xiàn)在輸出井上申請(qǐng)一個(gè)空閑盤(pán)塊區(qū),將打印的數(shù)據(jù)送人其中寞忿,若該打印機(jī)空閑驰唬,則占用打印,否則加入等待隊(duì)列。這樣叫编,對(duì)每一個(gè)進(jìn)程而言辖佣,打印機(jī)是獨(dú)享的,對(duì)于打印機(jī)而言搓逾,是被共享的)

(1)提高了I/O速度.從對(duì)低速I/O設(shè)備進(jìn)行的I/O操作變?yōu)閷?duì)輸入井或輸出井的操作,如同脫機(jī)操作一樣,提高了I/O速度,緩和了CPU與低速I/O設(shè)備速度不匹配的矛盾.
(2)設(shè)備并沒(méi)有分配給任何進(jìn)程.在輸入井或輸出井中,分配給進(jìn)程的是一存儲(chǔ)區(qū)和建立一張I/O請(qǐng)求表.
(3)實(shí)現(xiàn)了虛擬設(shè)備功能.多個(gè)進(jìn)程同時(shí)使用一獨(dú)享設(shè)備,而對(duì)每一進(jìn)程而言,都認(rèn)為自己獨(dú)占這一設(shè)備,不過(guò),該設(shè)備是邏輯上的設(shè)備.

SPOOLing技術(shù)如何使一臺(tái)打印機(jī)虛擬成多臺(tái)打印機(jī)卷谈? 答:將一臺(tái)獨(dú)享打印機(jī)改造為可供多個(gè)用戶共享的打印機(jī),是應(yīng)用SPOOLing技術(shù)的典型實(shí)例霞篡。具體做法是:系統(tǒng)對(duì)于用戶的打印輸出世蔗,但并不真正把打印機(jī)分配給該用戶進(jìn)程,而是先在輸出井中申請(qǐng)一個(gè)空閑盤(pán)塊區(qū)朗兵,并將要打印的數(shù)據(jù)送入其中污淋;然后為用戶申請(qǐng)并填寫(xiě)請(qǐng)求打印表,將該表掛到請(qǐng)求打印隊(duì)列上余掖。若打印機(jī)空閑寸爆,輸出程序從請(qǐng)求打印隊(duì)首取表,將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū)盐欺,再進(jìn)行打印赁豆,直到打印隊(duì)列為空。

(4)臨界資源多道程序系統(tǒng)中存在許多進(jìn)程冗美,它們共享各種資源魔种,然而有很多資源一次只能供一個(gè)進(jìn)程使用况脆。一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源案铺。許多物理設(shè)備都屬于臨界資源,如輸入機(jī)钥星、打印機(jī)漆改、磁帶機(jī)等心铃。如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出CPU挫剑,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象去扣。
進(jìn)程同步:進(jìn)程同步機(jī)制的主要任務(wù),是對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào)樊破,使并發(fā)執(zhí)行的諸進(jìn)程之間能按照一定的規(guī)則或時(shí)序共享系統(tǒng)資源愉棱,并能很好地相互合作,從而使進(jìn)程的執(zhí)行具有可再現(xiàn)性哲戚。
進(jìn)程的異步性:在多道程序環(huán)境下奔滑,由于存在著間接相互制約關(guān)系與直接相互制約關(guān)系,進(jìn)程在運(yùn)行過(guò)程中是否能獲得處理機(jī)運(yùn)行顺少、以及以怎樣的速度運(yùn)行朋其,并不能由進(jìn)程自身所控制王浴,由此會(huì)產(chǎn)生對(duì)共享變量或數(shù)據(jù)結(jié)構(gòu)等資源不正確的訪問(wèn)次序,從而造成進(jìn)程每次執(zhí)行結(jié)果的不一致--->進(jìn)程的異步性梅猿。這種差錯(cuò)往往與時(shí)間有關(guān)氓辣,為了杜絕這種差錯(cuò),必須對(duì)進(jìn)程的執(zhí)行次序進(jìn)行協(xié)調(diào)袱蚓,保證諸進(jìn)程能按序執(zhí)行钞啸。
(5).提出分頁(yè)管理的目的是為了提高內(nèi)存空間的利用率;提出分段管理的目的除了可以提高內(nèi)存空間的利用率(相對(duì)分區(qū)管理而言)外喇潘,主要是為了更好的實(shí)現(xiàn)程序的共享和動(dòng)態(tài)鏈接体斩,方便用戶編程。p158
磁盤(pán)是塊設(shè)備响蓉,打印機(jī)與鍵盤(pán)是字符設(shè)備硕勿。I/O設(shè)備大致分為兩類:塊設(shè)備和字符設(shè)備哨毁。塊設(shè)備將信息存儲(chǔ)在固定大小的塊中枫甲,每個(gè)塊都有自己的地址。數(shù)據(jù)塊的大小通常在512字節(jié)到32768字節(jié)之間扼褪。塊設(shè)備的基本特征是每個(gè)塊都能獨(dú)立于其它塊而讀寫(xiě)想幻。磁盤(pán)是最常見(jiàn)的塊設(shè)備。字符設(shè)備是指在I/O傳輸過(guò)程中以字符為單位進(jìn)行傳輸?shù)脑O(shè)備

.png

有一個(gè)兩道作業(yè)的批處理系統(tǒng)话浇,作業(yè)調(diào)度采用短作業(yè)優(yōu)先的調(diào)度算法脏毯,進(jìn)程調(diào)度采用搶占式調(diào)度算法....例題


進(jìn)程同步(pv操作):

信號(hào)量S是一個(gè)特殊變量,包含一個(gè)整數(shù)值幔崖,在信號(hào)量上可以執(zhí)行兩個(gè)原子操作:
wait(S)用來(lái)接收信號(hào)(P操作)
signal(S)用來(lái)發(fā)送信號(hào)(V操作)食店,
這兩個(gè)操作僅能對(duì)信號(hào)量處于加1或減一操作,意味著每次只能對(duì)某類臨界資源進(jìn)行一個(gè)單位的申請(qǐng)或釋放赏寇。
吃蘋(píng)果例子q

設(shè)信號(hào)量的當(dāng)前值為x:
信號(hào)量的值如果為負(fù)數(shù)(不為空)吉嫩, 那么等待的進(jìn)程數(shù)為 -x個(gè);;信號(hào)量的值如果為正數(shù), 那么空閑的資源數(shù)為x個(gè)嗅定。

進(jìn)程同步的四種方法:

進(jìn)程同步的四種方法
互斥量是信號(hào)量的一種特殊情況自娩,當(dāng)信號(hào)量的最大資源數(shù)=1就是互斥量了∏耍互斥其實(shí)是信號(hào)量的一種特殊形式忙迁。互斥可以保證在某一時(shí)刻只有一個(gè)線程可以擁有臨界資源碎乃。信號(hào)量可以保證在某一時(shí)刻有指定數(shù)目的線程可以擁有臨界資源姊扔。


批處理系統(tǒng)(Batch OS)
多道程序系統(tǒng)(Multiprogramming System)
分時(shí)系統(tǒng)(Time-sharing System)
實(shí)時(shí)系統(tǒng)(Real-time System)
操作系統(tǒng)操作(Operatin-system Operations)

批處理系統(tǒng)
批處理系統(tǒng)主要用于大型系統(tǒng),用于提高作業(yè)吞吐量(Throughout梅誓,單位時(shí)間內(nèi)執(zhí)行作業(yè)的數(shù)量)的系統(tǒng)恰梢。
批處理中基本無(wú)交互晨川,存在兩種調(diào)度:

  1. Job Schedule(作業(yè)調(diào)度),即將所要做的作業(yè)放到內(nèi)存上删豺,主要負(fù)責(zé)工作的道數(shù)共虑,屬于高級(jí)調(diào)度。
  2. CPU Schedule(進(jìn)程調(diào)度)呀页,即在內(nèi)存中CPU選擇執(zhí)行某個(gè)工作妈拌,屬于低級(jí)調(diào)度。

多道程序系統(tǒng)
優(yōu)點(diǎn):1. Improve CPU utilization 2% –> 100%(in theory)
注:但程序道數(shù)越多蓬蝶,系統(tǒng)消耗(overhead)越高尘分,會(huì)造成CPU有效利用率降低

  1. Improve memory and I/O device utilization.
  2. Increase system throughout.
    特點(diǎn):
  3. 多道
  4. 無(wú)序(unordered),執(zhí)行是無(wú)序的丸氛,即用戶不知道進(jìn)程狀態(tài)培愁,但系統(tǒng)知道當(dāng)前進(jìn)程的狀態(tài)
  5. 調(diào)度性(scheduling)
    缺點(diǎn):交互性低

分時(shí)系統(tǒng)
定義:將CPU的執(zhí)行時(shí)間分成一個(gè)個(gè)的時(shí)間片(time slice),多用戶中的每個(gè)用戶輪轉(zhuǎn)時(shí)間片缓窜,非常適合交互型作業(yè)定续。
Memory sharing(儲(chǔ)存共享) + time sharing(時(shí)間共享) –> multiprogramming(多道系統(tǒng)) + interaction(交互)
時(shí)間片的選擇必須大雨系統(tǒng)內(nèi)的中斷切換時(shí)間,且時(shí)間段切換需要有度:檀浮K焦伞!
分時(shí)系統(tǒng)特點(diǎn):

  1. 交互性強(qiáng)恩掷,因其主要為交互型作業(yè)設(shè)計(jì)倡鲸;
  2. 多道(路)性;
  3. 及時(shí)性黄娘;
  4. 獨(dú)占性峭状。
    影響分時(shí)操作系統(tǒng)性能的因素:
  5. 用戶數(shù)目;
  6. 時(shí)間片大斜普优床;
  7. 每次時(shí)間片切換是對(duì)換的數(shù)據(jù)量。
    分時(shí)系統(tǒng)是一個(gè)通用系統(tǒng)氮凝,即不限制任務(wù)的數(shù)目和狀態(tài)羔巢。

實(shí)時(shí)系統(tǒng):
定義:實(shí)時(shí)系統(tǒng)主要用于專用系統(tǒng)(used in dedicated application),有著非常嚴(yán)格的固定時(shí)間要求(well-defined fixed-time constraints)罩阵。
按照deadline不同可分為硬實(shí)時(shí)(hard real-time)和軟實(shí)時(shí)(soft real-time):
硬實(shí)時(shí)操作系統(tǒng): deadline要求高竿秆,即要求在很短的時(shí)間片內(nèi)處理

  1. Secondary storage (disk) limited or absent;
  2. Data stored in memory, or read-only memory(ROM).
    軟實(shí)時(shí)操作系統(tǒng):deadline要求較低,即可在較長(zhǎng)時(shí)間片內(nèi)處理稿壁,但是幽钢,還是需要在一個(gè)時(shí)間片內(nèi)處理
  3. Limited utility in industrial control of robotics;
  4. Useful in multimedia, virtual reality, etc.
    實(shí)時(shí)系統(tǒng)特性:
  5. 及時(shí)性;
  6. 獨(dú)占性(雙工:兩端都有計(jì)算機(jī)做相同操作以防一端計(jì)算機(jī)出現(xiàn)故障傅是,用于火箭和導(dǎo)彈控制)
  7. 多路性匪燕;
  8. 交互性(略有限)蕾羊。

操作系統(tǒng)操作:
Dual-mode operations(雙模式操作):User mode(用戶模式/目標(biāo)態(tài)) && kernel mode(內(nèi)核模式/管理態(tài))
相應(yīng)的,操作系統(tǒng)指令分為特權(quán)指令(privileged instruction)和非特權(quán)指令帽驯。
特權(quán)指令:clear memory, set time, I/O instruction.
非特權(quán)指令:read time
對(duì)于將數(shù)據(jù)輸出到顯示屏的操作龟再,就通過(guò)了系統(tǒng)調(diào)用(system call)產(chǎn)生了一次自陷(trap)從而從用戶模式切換到了內(nèi)核模式。
在IO的讀寫(xiě)操作中尼变,操作系統(tǒng)如何判斷是否在該進(jìn)程指定的內(nèi)存空間進(jìn)行讀寫(xiě)操作利凑?
CPU中配置了一組寄存器(base register & length register),在每次進(jìn)行I/O操作時(shí)即可判斷該進(jìn)程是否越界(< base || > base + length)嫌术。當(dāng)出現(xiàn)以上兩種狀態(tài)時(shí)CPU即產(chǎn)生越界中斷哀澈。每個(gè)進(jìn)程的base register & length register均存儲(chǔ)在操作系統(tǒng)區(qū)的進(jìn)程控制塊(PCB: Process Control Block)中,當(dāng)每個(gè)進(jìn)程被創(chuàng)建之初度气,該進(jìn)程控制塊就被創(chuàng)建與操作系統(tǒng)區(qū)割按,里面記錄了該進(jìn)程的相關(guān)信息,類似于一種數(shù)據(jù)結(jié)構(gòu)磷籍。

批處理系統(tǒng)常用調(diào)度算法:
①适荣、先來(lái)先服務(wù):FCFS
②、最短作業(yè)優(yōu)先
③择示、最短剩余時(shí)間優(yōu)先
④束凑、響應(yīng)比最高者優(yōu)先
分時(shí)系統(tǒng)調(diào)度算法:
①、輪轉(zhuǎn)調(diào)度
②栅盲、優(yōu)先級(jí)調(diào)度
③、多級(jí)隊(duì)列調(diào)度
④废恋、彩票調(diào)度
實(shí)時(shí)系統(tǒng)調(diào)度算法:
①谈秫、單比率調(diào)度
②、限期調(diào)度
③鱼鼓、最少裕度法

銀行家算法

銀行家算法.png



第四章

王道:

第一章:計(jì)算機(jī)系統(tǒng)概述

  1. 操作系統(tǒng)的并發(fā)性是通過(guò)分時(shí)實(shí)現(xiàn)的拟烫;并行性需要有相關(guān)硬件的支持,如多流水線或多處理機(jī)硬件環(huán)境迄本。
    異步:多道程序環(huán)境允許多個(gè)程序并發(fā)執(zhí)行硕淑,但由于資源有限,進(jìn)程的執(zhí)行不是一貫到底嘉赎,而是走走停停的置媳,它以不可預(yù)知的速度向前推進(jìn),這就是程序的異步性公条;異步性使得操作系統(tǒng)運(yùn)行在一種隨機(jī)的環(huán)境下拇囊,可能導(dǎo)致進(jìn)程產(chǎn)生與時(shí)間有關(guān)的錯(cuò)誤(就像對(duì)全局變量的訪問(wèn)順序不當(dāng)會(huì)導(dǎo)致程序出錯(cuò)一樣),然而靶橱,只要運(yùn)行環(huán)境相同寥袭,操作系統(tǒng)就需保證多次運(yùn)行進(jìn)程后都能獲得相同的結(jié)果路捧。

第二章: 進(jìn)程管理

2.1 進(jìn)程、線程

  1. PCB是進(jìn)程存在的唯一標(biāo)志传黄。從結(jié)構(gòu)上看杰扫,進(jìn)程實(shí)體是由程序段、數(shù)據(jù)段膘掰、PCB三部分組成涉波。進(jìn)程需要結(jié)束運(yùn)行時(shí),系統(tǒng)首先置該進(jìn)程為結(jié)束態(tài)炭序,然后再進(jìn)一步處理資源釋放與回收等工作啤覆。一個(gè)進(jìn)程從運(yùn)行態(tài)變成阻塞態(tài)是主動(dòng)的行為,從阻塞態(tài)變成就緒態(tài)是被動(dòng)行為惭聂,需要其他相關(guān)進(jìn)程的協(xié)助窗声。任何進(jìn)程都是在操作系統(tǒng)的內(nèi)核支持運(yùn)行的,是與內(nèi)核緊密相關(guān)的辜纲。
  2. 把進(jìn)程控制用的程序段稱為原語(yǔ)笨觅,原語(yǔ)的特點(diǎn)是在執(zhí)行過(guò)程中不允許中斷,它是一個(gè)不可分割的基本單位耕腾。(p31)见剩。。先有資源的調(diào)度扫俺,然后才有進(jìn)程的切換苍苞。
    進(jìn)程的最大數(shù)目取決于系統(tǒng)內(nèi)存的大小,因?yàn)檫M(jìn)程創(chuàng)建需要占用系統(tǒng)內(nèi)存來(lái)存放PCB的數(shù)據(jù)結(jié)構(gòu)狼纬。

p(33):
處理機(jī)中各寄存器值羹呵,當(dāng)進(jìn)程被切換時(shí),處理機(jī)狀態(tài)信息 都必須保存在相應(yīng)的PCB中疗琉,以便在該進(jìn)程重新執(zhí)行時(shí)冈欢,能再?gòu)臄帱c(diǎn)繼續(xù)執(zhí)行。
在一個(gè)系統(tǒng)中盈简,通常存在著許多進(jìn)程凑耻,有的處于就緒狀態(tài),有的處于阻塞狀態(tài)柠贤,而且阻塞的原因各不相同香浩。為了方便進(jìn)程的調(diào)度和管理,需要將各進(jìn)程的PCB用適當(dāng)?shù)姆椒ńM織起來(lái)种吸。目前弃衍,常用的組織方式有鏈接方式和索引方式兩種。鏈接方式將同一狀態(tài)的PCB鏈接成一個(gè)隊(duì)列坚俗,不同狀態(tài)對(duì)應(yīng)不同的隊(duì)列镜盯,也可以把處于阻塞狀態(tài)的進(jìn)程的PCB岸裙,根據(jù)其阻塞原因的不同,排成多個(gè)阻塞隊(duì)列速缆。索引方式是將同一狀態(tài)的進(jìn)程組織在一個(gè)索引表中降允,索引表的表項(xiàng)指向相應(yīng)的PCB,不同狀態(tài)對(duì)應(yīng)不同的索引表艺糜,如就緒索引表和阻塞索引表等剧董。
程序段 就是能被進(jìn)程調(diào)度程序調(diào)度到CPU執(zhí)行的程序代碼段。注意破停,程序可以被多個(gè)進(jìn)程共享翅楼,就是說(shuō)多個(gè)進(jìn)程可以運(yùn)行同一個(gè)程序。
一個(gè)進(jìn)程的 數(shù)據(jù)段真慢,可以是進(jìn)程對(duì)應(yīng)的程序加工處理的原始數(shù)據(jù)毅臊,也可以是程序執(zhí)行時(shí)產(chǎn)生的中間或最終結(jié)果。
內(nèi)核態(tài):
CPU可以訪問(wèn)內(nèi)存所有數(shù)據(jù), 包括外圍設(shè)備, 例如硬盤(pán), 網(wǎng)卡. CPU也可以將自己從一個(gè)程序切換到另一個(gè)程序黑界。

用戶態(tài):
只能受限的訪問(wèn)內(nèi)存, 且不允許訪問(wèn)外圍設(shè)備. 占用CPU的能力被剝奪, CPU資源可以被其他程序獲取管嬉。

為什么要有用戶態(tài)和內(nèi)核態(tài):
由于需要限制不同的程序之間的訪問(wèn)能力, 防止他們獲取別的程序的內(nèi)存數(shù)據(jù), 或者獲取外圍設(shè)備的數(shù)據(jù), 并發(fā)送到網(wǎng)絡(luò), CPU劃分出兩個(gè)權(quán)限等級(jí) – 用戶態(tài) 和 內(nèi)核態(tài)。

用戶態(tài)與內(nèi)核態(tài)的切換:
所有用戶程序都是運(yùn)行在用戶態(tài)的, 但是有時(shí)候程序確實(shí)需要做一些內(nèi)核態(tài)的事情, 例如從硬盤(pán)讀取數(shù)據(jù), 或者從鍵盤(pán)獲取輸入等. 而唯一可以做這些事情的就是操作系統(tǒng), 所以此時(shí)程序就需要先操作系統(tǒng)請(qǐng)求以程序的名義來(lái)執(zhí)行這些操作.
這時(shí)需要一個(gè)這樣的機(jī)制: 用戶態(tài)程序切換到內(nèi)核態(tài), 但是不能控制在內(nèi)核態(tài)中執(zhí)行的指令
這種機(jī)制叫系統(tǒng)調(diào)用, 在CPU中的實(shí)現(xiàn)稱之為陷阱指令(Trap Instruction)

切換的工作流程如下:
① 用戶態(tài)程序?qū)⒁恍?shù)據(jù)值放在寄存器中, 或者使用參數(shù)創(chuàng)建一個(gè)堆棧(stack frame), 以此表明需要操作系統(tǒng)提供的服務(wù).
② 用戶態(tài)程序執(zhí)行陷阱指令
③ CPU切換到內(nèi)核態(tài), 并跳到位于內(nèi)存指定位置的指令, 這些指令是操作系統(tǒng)的一部分, 他們具有內(nèi)存保護(hù), 不可被用戶態(tài)程序訪問(wèn)
④ 這些指令稱之為陷阱(trap)或者系統(tǒng)調(diào)用處理器(system call handler).
他們會(huì)讀取程序放入內(nèi)存的數(shù)據(jù)參數(shù), 并執(zhí)行程序請(qǐng)求的服務(wù)
⑤ 系統(tǒng)調(diào)用完成后, 操作系統(tǒng)會(huì)重置CPU為用戶態(tài)并返回系統(tǒng)調(diào)用的結(jié)果

  1. 進(jìn)程通信是指進(jìn)程之間的信息交換朗鸠,PV操作是低級(jí)操作方式蚯撩,高級(jí)通信方式是指以較高的效率傳輸大量數(shù)據(jù)的通信方式,高級(jí)通信方式有三種:共享存儲(chǔ)烛占,消息傳遞胎挎,管道通信,再加:文件映射扰楼,套接字呀癣。

① 共享存儲(chǔ)

在通信的進(jìn)程之間存在一塊可直接訪問(wèn)的共享空間,通過(guò)對(duì)這片共享空間進(jìn)行寫(xiě)/讀操作實(shí)現(xiàn)進(jìn)程之間的信息交換弦赖。在對(duì)共享空間進(jìn)行寫(xiě)/讀操作時(shí),需要使用同步互斥工具(如 P操作浦辨、V操作)蹬竖,對(duì)共享空間的寫(xiě)/讀進(jìn)行控制。共享存儲(chǔ)又分為兩種:低級(jí)方式的共享是基于數(shù)據(jù)結(jié)構(gòu)的共享流酬;高級(jí)方式則是基于存儲(chǔ)區(qū)的共享币厕。操作系統(tǒng)只負(fù)責(zé)為通信進(jìn)程提供可共享使用的存儲(chǔ)空間和同步互斥工具,而數(shù)據(jù)交換則由用戶自己安排讀/寫(xiě)指令完成芽腾。
需要注意的是旦装,用戶進(jìn)程空間一般都是獨(dú)立的,要想讓兩個(gè)用戶進(jìn)程共享空間必須通過(guò)特殊的系統(tǒng)調(diào)用實(shí)現(xiàn)摊滔,而進(jìn)程內(nèi)的線程是自然共享進(jìn)程空間的阴绢。
共享內(nèi)存就是允許兩個(gè)不相關(guān)的進(jìn)程訪問(wèn)同一個(gè)邏輯內(nèi)存店乐。共享內(nèi)存是在兩個(gè)正在運(yùn)行的進(jìn)程之間共享和傳遞數(shù)據(jù)的一種最有效的方式,不同進(jìn)程之間共享的內(nèi)存通常安排為同一段物理內(nèi)存呻袭。進(jìn)程可以將同一段共享內(nèi)存連接到它們自己的地址空間中眨八,所有進(jìn)程都可以訪問(wèn)共享內(nèi)存中的地址,就好像它們是由用C語(yǔ)言函數(shù)malloc分配的內(nèi)存一樣左电。而如果某個(gè)進(jìn)程向共享內(nèi)存寫(xiě)入數(shù)據(jù)廉侧,所做的改動(dòng)將立即影響到可以訪問(wèn)同一段共享內(nèi)存的任何其他進(jìn)程。
注意共享內(nèi)存并未提供同步機(jī)制篓足,也就是說(shuō)段誊,在第一個(gè)進(jìn)程結(jié)束對(duì)共享內(nèi)存的寫(xiě)操作之前,并無(wú)自動(dòng)機(jī)制可以阻止第二個(gè)進(jìn)程開(kāi)始對(duì)它進(jìn)行讀取栈拖。所以通常需要用其他的機(jī)制來(lái)同步對(duì)共享內(nèi)存的訪問(wèn)连舍,例如前面說(shuō)到的信號(hào)量。
采用共享內(nèi)存通信的一個(gè)顯而易見(jiàn)的好處是效率高辱魁,因?yàn)檫M(jìn)程可以直接讀寫(xiě)內(nèi)存烟瞧,而不需要任何數(shù)據(jù)的拷貝。對(duì)于像管道和消息隊(duì)列等通信方式染簇,則需要在內(nèi)核和用戶空間進(jìn)行四次的數(shù)據(jù)拷貝参滴,而共享內(nèi)存則只拷貝兩次數(shù)據(jù):一次從輸入文件到共享內(nèi)存區(qū),另一次從共享內(nèi)存區(qū)到輸出文件.

② 消息傳遞

在消息傳遞系統(tǒng)中锻弓,進(jìn)程間的數(shù)據(jù)交換是以格式化的消息(Message)為單位的砾赔。若通信的進(jìn)程之間不存在可直接訪問(wèn)的共享空間,則必須利用操作系統(tǒng)提供的消息傳遞方法實(shí)現(xiàn)進(jìn)程通信青灼。進(jìn)程通過(guò)系統(tǒng)提供的發(fā)送消息和接收消息兩個(gè)原語(yǔ)進(jìn)行數(shù)據(jù)交換暴心。
直接通信方式:發(fā)送進(jìn)程直接把消息發(fā)送給接收進(jìn)程,并將它掛在接收進(jìn)程的消息緩沖隊(duì)列上杂拨,接收進(jìn)程從消息緩沖隊(duì)列中取得消息专普。
間接通信方式:發(fā)送進(jìn)程把消息發(fā)送到某個(gè)中間實(shí)體中,接收進(jìn)程從中間實(shí)體中取得消息弹沽。這種中間實(shí)體一般稱為信箱檀夹,這種通信方式又稱為信箱通信方式。該通信方式廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)中策橘,相應(yīng)的通信系統(tǒng)稱為電子郵件系統(tǒng)坠韩。

③ 管道通信
管道實(shí)際上是一種固定大小的緩沖區(qū)最铁,管道對(duì)于管道兩端的進(jìn)程而言,就是一個(gè)文件,但它不是普通的文件骚亿,它不屬于某種文件系統(tǒng)惯疙,而是自立門戶,單獨(dú)構(gòu)成一種文件系統(tǒng),并且只存在于內(nèi)存中督赤。它類似于通信中半雙工信道的進(jìn)程通信機(jī)制,一個(gè)管道可以實(shí)現(xiàn)雙向 的數(shù)據(jù)傳輸宫仗,而同一個(gè)時(shí)刻只能最多有一個(gè)方向的傳輸够挂,不能兩個(gè)方向同時(shí)進(jìn)行。管道的容 量大小通常為內(nèi)存上的一頁(yè)藕夫,它的大小并不是受磁盤(pán)容量大小的限制孽糖。當(dāng)管道滿時(shí),進(jìn)程在 寫(xiě)管道會(huì)被阻塞毅贮,而當(dāng)管道空時(shí)办悟,進(jìn)程讀管道會(huì)被阻塞。

管道通信是消息傳遞的一種特殊方式滩褥。所謂“管道”病蛉,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)進(jìn)程以實(shí)現(xiàn)它們之間通信的一個(gè)共享文件,又名pipe文件瑰煎。向管道(共享文件)提供輸入的發(fā)送進(jìn)程(即寫(xiě)進(jìn)程)铺然,以字符流形式將大量的數(shù)據(jù)送入(寫(xiě))管道;而接收管道輸出的接收進(jìn)程(即讀進(jìn)程)酒甸,則從管道中接收(讀)數(shù)據(jù)魄健。為了協(xié)調(diào)雙方的通信,管道機(jī)制必須提供以下三方面的協(xié)調(diào)能力:互斥插勤、同步和確定對(duì)方的存在沽瘦。
管道是一種文件。

  1. 線程
    引入進(jìn)程的目的是為了更好地使多道程序并發(fā)執(zhí)行农尖,提高資源利用率和系統(tǒng)吞吐量析恋,增加并發(fā)程度;
    引入線程的目的是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開(kāi)銷盛卡,提高操作系統(tǒng)的并發(fā)性能助隧。
    線程最直接的理解是“輕量級(jí)進(jìn)程”,它是一個(gè)基本的CPU執(zhí)行單元滑沧,也是程序執(zhí)行流的最小單元喇颁,由線程ID、程序計(jì)數(shù)器嚎货、寄存器集合、堆棧 組成蔫浆。線程是進(jìn)程中的一個(gè)實(shí)體殖属,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單元,線程自己不擁有系統(tǒng)資源瓦盛,只擁有一點(diǎn)兒在運(yùn)行中不可少的資源洗显,但它可與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源外潜。一個(gè)線程可以創(chuàng)建于撤銷另一個(gè)線程,同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行挠唆。由于線程之間的相互制約处窥,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程也有就緒阻塞運(yùn)行三種基本狀態(tài)玄组。
    引入線程后滔驾,進(jìn)程的內(nèi)涵發(fā)生改變,進(jìn)程只作為除CPU外系統(tǒng)資源的分配單元俄讹,線程則作為處理機(jī)的分配單元哆致。----->線程是獨(dú)立調(diào)度的基本單位,進(jìn)程是擁有資源的基本單位患膛。
    線程不能創(chuàng)建進(jìn)程摊阀。

2.1.8 習(xí)題

一.3、進(jìn)程之間交換數(shù)據(jù)不能通過(guò) 訪問(wèn)進(jìn)程地址空間 的途徑進(jìn)行踪蹬。因?yàn)椋?/strong>每個(gè)進(jìn)程包含獨(dú)立的地址空間胞此,進(jìn)程各自的地址空間是私有的,只能執(zhí)行自己地址空間中的程序跃捣,且只能訪問(wèn)自己地址空間中的數(shù)據(jù)漱牵,相互訪問(wèn)會(huì)導(dǎo)致指針的越界錯(cuò)誤。因此進(jìn)程之間不能直接交換數(shù)據(jù)枝缔,但可以利用OS提供的共享文件布疙、消息傳遞、共享存儲(chǔ)區(qū)等進(jìn)行通信愿卸。
一.4灵临、 OS 引入進(jìn)程的概念,是為了從變化的角度動(dòng)態(tài)地分析和研究程序的執(zhí)行趴荸。儒溉。進(jìn)程不一定需要用戶顯式地撤銷,進(jìn)程可在完成時(shí)撤銷或在出現(xiàn)內(nèi)存錯(cuò)誤時(shí)撤銷发钝。
一.7顿涣、一個(gè)進(jìn)程的狀態(tài)變化可能會(huì)引起另一個(gè)進(jìn)程的狀態(tài)變化:eg:一個(gè)進(jìn)程的時(shí)間片用完,就會(huì)引起另一個(gè)就緒狀態(tài)進(jìn)程的運(yùn)行酝豪;可能不會(huì)的情況:eg:一個(gè)進(jìn)程有阻塞態(tài)轉(zhuǎn)為就緒態(tài)就不會(huì)引起其他進(jìn)程的狀態(tài)變化涛碑。
一.12、并發(fā)進(jìn)程失去封閉性孵淘,是指并發(fā)進(jìn)程共享變量蒲障,其執(zhí)行結(jié)果與速度有關(guān):程序封閉性是指進(jìn)程執(zhí)行的結(jié)果只取決于進(jìn)程本身,不受外界影響,也就是說(shuō)揉阎,進(jìn)程在執(zhí)行過(guò)程中不管是不是停頓地執(zhí)行庄撮、還是走走停停,進(jìn)程的執(zhí)行速度都不會(huì)改變它的執(zhí)行結(jié)果毙籽,失去封閉性后洞斯,不同速度下的執(zhí)行結(jié)果不同。
一.15坑赡、不論是系統(tǒng)支持的線程還是用戶級(jí)線程烙如,其切換不一定需要內(nèi)核的支持。eg:若有一個(gè)內(nèi)核進(jìn)程垮衷,它映射到用戶級(jí)后有多個(gè)線程厅翔,那么這些線程之間的切換不需要在內(nèi)核級(jí)切換進(jìn)程,也就不需要內(nèi)核的支持搀突。在用戶級(jí)線程中刀闷,有關(guān)線程管理的所有工作都由應(yīng)用程序完成,無(wú)需內(nèi)核的干預(yù)仰迁,內(nèi)核意識(shí)不到線程的存在甸昏。
用信箱實(shí)現(xiàn)進(jìn)程間互通信息的通信機(jī)制有兩個(gè)通信原語(yǔ):發(fā)送原語(yǔ)、接受原語(yǔ)徐许。
一.20施蜜、C語(yǔ)言編寫(xiě)的程序在使用內(nèi)存時(shí)一般分為三個(gè)段:正文段(即代碼和賦值數(shù)據(jù)段)、數(shù)據(jù)堆段雌隅、數(shù)據(jù)棧段翻默;二進(jìn)制代碼和常量存放在正文段,動(dòng)態(tài)分配的存儲(chǔ)區(qū)在數(shù)據(jù)堆段恰起,臨時(shí)使用的變量在數(shù)據(jù)棧段修械;由此可以確定全局賦值變量在正文段賦值數(shù)據(jù)段,未賦值的局部變量和實(shí)參傳遞在棧段检盼,動(dòng)態(tài)內(nèi)存分配在堆段肯污,常量在正文段,進(jìn)程的優(yōu)先級(jí)在PCB內(nèi)吨枉。
一.30蹦渣、 用戶登錄成功會(huì)導(dǎo)致創(chuàng)建新進(jìn)程:因?yàn)?用戶登錄成功后,系統(tǒng)要為此創(chuàng)建一個(gè)用戶管理的進(jìn)程貌亭,包括用戶桌面柬唯、環(huán)境等等,所有用戶進(jìn)程都會(huì)在該進(jìn)程下創(chuàng)建和管理圃庭。
設(shè)備分配不會(huì)創(chuàng)建新進(jìn)程:因?yàn)?設(shè)備分配是通過(guò)在系統(tǒng)中設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的权逗,不需要?jiǎng)?chuàng)建進(jìn)程美尸,這是操作系統(tǒng)中I/O核心子系統(tǒng)的內(nèi)容。

————————————————————————

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

處理機(jī)調(diào)度是對(duì)處理機(jī)進(jìn)行分配斟薇,即從就緒隊(duì)列中按照一定的算法(公平、高效)選擇一個(gè)進(jìn)程并將處理機(jī)分配給它運(yùn)行恕酸,以實(shí)現(xiàn)進(jìn)程并發(fā)地執(zhí)行堪滨。



操作系統(tǒng)視頻課

教學(xué)內(nèi)容:
① 操作系統(tǒng)結(jié)構(gòu)
② 中斷及系統(tǒng)調(diào)用
③ 內(nèi)存管理
④ 進(jìn)程及線程
⑤ 處理機(jī)調(diào)度
⑥ 同步互斥
⑦ 文件系統(tǒng)
⑧ I/O子系統(tǒng)
實(shí)驗(yàn):
① 系統(tǒng)啟動(dòng)及中斷
② 物理內(nèi)存管理
③ 虛擬內(nèi)存管理
④ 內(nèi)核線程管理
⑤ 用戶進(jìn)程管理
⑥ CPU調(diào)度
⑦ 同步與互斥
⑧ 文件系統(tǒng)


  1. 計(jì)算機(jī)系統(tǒng):包括 硬件子系統(tǒng) 與 軟件子系統(tǒng)
    硬件:cpu、主存儲(chǔ)器蕊温、I/O控制系統(tǒng)袱箱,外圍設(shè)備
    軟件:包括系統(tǒng)軟件(關(guān)鍵系統(tǒng)軟件:操作系統(tǒng) 與 語(yǔ)言處理程序)、支撐軟件义矛、應(yīng)用軟件发笔。

圖1 實(shí)驗(yàn).png
圖2 實(shí)驗(yàn).png
圖3 實(shí)驗(yàn)環(huán)境.png

一、進(jìn)程:

進(jìn)程包含了正在運(yùn)行的一個(gè)程序的所有狀態(tài)信息:包括(代碼凉翻、數(shù)據(jù)了讨、狀態(tài)寄存器{CPU狀態(tài)CRO、指令指針I(yè)P}制轰、通用寄存器{AX前计、BX...}進(jìn)程占用系統(tǒng)資源{打開(kāi)文件、已分配文件...})---->這些內(nèi)容構(gòu)成進(jìn)程控制塊

1. 進(jìn)程

1.進(jìn)程與程序的區(qū)別
進(jìn)程是動(dòng)態(tài)的垃杖,程序是靜態(tài)的男杈,進(jìn)程是程序的執(zhí)行,進(jìn)程有用戶態(tài)调俘;進(jìn)程是一個(gè)狀態(tài)變化的過(guò)程伶棒,程序可長(zhǎng)久保存;進(jìn)程的組成包括程序彩库、數(shù)據(jù)肤无、進(jìn)程控制塊
2. 進(jìn)程控制塊(PCB):管理和運(yùn)行進(jìn)程所用的信息集合。對(duì)進(jìn)程的所有操作都是對(duì)進(jìn)程操作塊操作的(PCB)侧巨。
操作系統(tǒng)用PCB描述進(jìn)程的基本情況以及運(yùn)行變化的過(guò)程舅锄;PCB是進(jìn)程存在的唯一標(biāo)志,每個(gè)進(jìn)程在OS中有一個(gè)對(duì)應(yīng)的PCB司忱;

2. 進(jìn)程控制塊(PCB)

1.> 進(jìn)程控制塊包含:①進(jìn)程標(biāo)識(shí)信息 ② 處理機(jī)現(xiàn)場(chǎng)保存 ③ 進(jìn)程控制信息
皇忿、進(jìn)程控制信息:包括① 調(diào)度和狀態(tài)信息:調(diào)度進(jìn)程和處理機(jī)使用情況;② 進(jìn)程間通信信息:進(jìn)程間通信相關(guān)的各種標(biāo)識(shí)坦仍;③ 存儲(chǔ)管理信息:指向進(jìn)程映像存儲(chǔ)空間數(shù)據(jù)結(jié)構(gòu) ④ 進(jìn)程所用資源:進(jìn)程使用的系統(tǒng)資源鳍烁,如打開(kāi)文件等; ⑤ 有關(guān)數(shù)據(jù)結(jié)構(gòu)連接信息:與PCB相關(guān)的進(jìn)程隊(duì)列繁扎。

  1. 進(jìn)程控制塊的組織
    ① 鏈表:同一狀態(tài)的進(jìn)程其PCB成一鏈表幔荒,多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的鏈表糊闽;
    ② 索引表:指針

3. 進(jìn)程的狀態(tài)

  1. 進(jìn)程的生命周期劃分:進(jìn)程創(chuàng)建、執(zhí)行爹梁、等待右犹、搶占、喚醒姚垃、結(jié)束
    進(jìn)程創(chuàng)建
    1>. 系統(tǒng)初始化時(shí)
    2>. 用戶請(qǐng)求創(chuàng)建一個(gè)新進(jìn)程
    3>. 正在運(yùn)行的進(jìn)程執(zhí)行了創(chuàng)建進(jìn)程的系統(tǒng)的調(diào)用
    進(jìn)程阻塞(等待):當(dāng)一個(gè)進(jìn)程在邏輯上不能繼續(xù)運(yùn)行時(shí)念链,它就會(huì)被阻塞,典型的例子①它在等待可以使用的輸入②能夠運(yùn)行的進(jìn)程被迫停止积糯,因?yàn)椴僮飨到y(tǒng)調(diào)度另一個(gè)進(jìn)程占用了CPU掂墓。(在第一種情況下,進(jìn)程掛起是程序自身固有的原因(在鍵入用戶命令行之前看成,無(wú)法執(zhí)行命令)君编;第二種情況則是由系統(tǒng)技術(shù)上的原因引起的(由于沒(méi)有足夠的cpu,所以不能使每個(gè)進(jìn)程都有一臺(tái)它私用的處理器))只有進(jìn)程自身才能知道何時(shí)需要等待某種事件的發(fā)生川慌。
    進(jìn)程搶占:
    1>. 高優(yōu)先級(jí)進(jìn)程就緒
    2>. 進(jìn)程執(zhí)行當(dāng)前時(shí)間用完
    喚醒進(jìn)程:
    1>. 被阻塞進(jìn)程需要的資源可被滿足
    2>. 被阻塞進(jìn)程等待的事件到達(dá)
    進(jìn)程只能被其他進(jìn)程或操作系統(tǒng)喚醒吃嘿。
  2. 進(jìn)程的三種狀態(tài)
    ① 運(yùn)行態(tài)(該時(shí)刻進(jìn)程實(shí)際占用CPU)
    ② 就緒態(tài)(可運(yùn)行,但因?yàn)槠渌M(jìn)程正在運(yùn)行而暫時(shí)停止)
    ③ 阻塞態(tài)(除非某種外部事件發(fā)生窘游,否則進(jìn)程不能運(yùn)行 )
    調(diào)度程序的主要工作就是決定應(yīng)當(dāng)運(yùn)行哪個(gè)進(jìn)程唠椭、何時(shí)運(yùn)行及它應(yīng)該運(yùn)行多長(zhǎng)時(shí)間 。
    運(yùn)行--->就緒:處于運(yùn)行狀態(tài)的進(jìn)程在其運(yùn)行過(guò)程中忍饰,由于分配給它的CPU時(shí)間片用完而讓出CPU贪嫂。
    圖4 三狀態(tài)進(jìn)程模型.png

4. 進(jìn)程掛起

三狀態(tài)進(jìn)程模型主要討論與CPU相關(guān)的這些狀態(tài),實(shí)際上在進(jìn)程當(dāng)中還有一類與存儲(chǔ)有關(guān)艾蓝,也就是說(shuō)進(jìn)程一部分放在外存里的力崇,與虛擬存儲(chǔ)相關(guān)聯(lián)的,這就是掛起進(jìn)程模型赢织。
處于掛起狀態(tài)的進(jìn)程映像在磁盤(pán)上亮靴,目的是減少進(jìn)程占用內(nèi)存,那么更多的內(nèi)存可以給其他進(jìn)程使用于置。
(新加的兩種狀態(tài)茧吊,是描述在外存中的進(jìn)程狀態(tài),其他的狀態(tài)是不會(huì)在外存里的):
等待(阻塞)掛起:進(jìn)程在外存并等待某事件的出現(xiàn)(相當(dāng)于加一個(gè)關(guān)于進(jìn)程位置的信息八毯。)
就緒掛起:進(jìn)程在外存搓侄,但只要進(jìn)入內(nèi)存,即可運(yùn)行话速。

圖5 進(jìn)程掛起模型.png

1. 掛起:把一個(gè)進(jìn)程從內(nèi)存轉(zhuǎn)到外存
①等待到等待掛起:沒(méi)有進(jìn)程處于就緒狀態(tài)或就緒進(jìn)程要求更多內(nèi)存資源讶踪。
②就緒到就緒掛起:當(dāng)有高優(yōu)先級(jí)等待(系統(tǒng)認(rèn)為很快就緒的)進(jìn)程和低優(yōu)先級(jí)就緒進(jìn)程。
③運(yùn)行到就緒掛起:對(duì)搶先式分時(shí)系統(tǒng)泊交,當(dāng)有高優(yōu)先級(jí)等待掛起進(jìn)程因事件出現(xiàn)而進(jìn)入就緒掛起乳讥,而這時(shí)沒(méi)有足夠空間柱查,就把正在運(yùn)行的這個(gè)進(jìn)程就緒掛起。
在外存時(shí)的狀態(tài)轉(zhuǎn)換:
① 等待掛起到就緒掛起:當(dāng)有等待掛起進(jìn)程因相關(guān)事件出現(xiàn)云石。
2.激活:把一個(gè)進(jìn)程從外存轉(zhuǎn)到內(nèi)存:
① 就緒掛起到就緒:沒(méi)有就緒進(jìn)程或掛起的就緒進(jìn)程優(yōu)先級(jí)高于就緒進(jìn)程唉工。
② 等待掛起到等待: 當(dāng)一個(gè)進(jìn)程釋放足夠內(nèi)存,并有高優(yōu)先級(jí)等待掛起進(jìn)程留晚。

5. 狀態(tài)隊(duì)列

根據(jù)進(jìn)程狀態(tài)不同酵紫,PCB加入相應(yīng)隊(duì)列,進(jìn)程狀態(tài)變化時(shí)错维,它所在的PCB會(huì)從一個(gè)隊(duì)列換到另一個(gè) 。(不同隊(duì)列表示不同狀態(tài)(就緒隊(duì)列橄唬、各種等待隊(duì)列))

二赋焕、線程

線程是進(jìn)程的一部分,描述指令流執(zhí)行狀態(tài)仰楚,它是進(jìn)程中的指令執(zhí)行流的最小單位隆判,是CPU調(diào)度的基本單位。 一個(gè)進(jìn)程里有多個(gè)線程僧界,線程并發(fā) 侨嘀。
原來(lái)的進(jìn)程變成是資源分配的角色,與指令流相關(guān)的東西就不放在進(jìn)程里了捂襟,每個(gè)指令流調(diào)用函數(shù)時(shí)咬腕,它必須有自己獨(dú)立的堆棧,把它剝離出來(lái)葬荷,變成這里的線程的組成部分涨共,線程是負(fù)責(zé)處理機(jī)調(diào)度的對(duì)象,宠漩,把關(guān)于執(zhí)行流的狀態(tài)信息變成是線程控制塊举反,線程控制塊從屬于進(jìn)程控制塊(PCB),用指針指向PCB扒吁,火鼻,因此可以在一個(gè)進(jìn)程里提高并發(fā)程度。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雕崩,一起剝皮案震驚了整個(gè)濱河市魁索,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晨逝,老刑警劉巖蛾默,帶你破解...
    沈念sama閱讀 212,332評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捉貌,居然都是意外死亡支鸡,警方通過(guò)查閱死者的電腦和手機(jī)冬念,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)牧挣,“玉大人急前,你說(shuō)我怎么就攤上這事∑俟梗” “怎么了裆针?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,812評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)寺晌。 經(jīng)常有香客問(wèn)我世吨,道長(zhǎng),這世上最難降的妖魔是什么呻征? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,607評(píng)論 1 284
  • 正文 為了忘掉前任耘婚,我火速辦了婚禮,結(jié)果婚禮上陆赋,老公的妹妹穿的比我還像新娘沐祷。我一直安慰自己,他們只是感情好攒岛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布赖临。 她就那樣靜靜地躺著,像睡著了一般灾锯。 火紅的嫁衣襯著肌膚如雪兢榨。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,919評(píng)論 1 290
  • 那天挠进,我揣著相機(jī)與錄音色乾,去河邊找鬼。 笑死领突,一個(gè)胖子當(dāng)著我的面吹牛暖璧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播君旦,決...
    沈念sama閱讀 39,071評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼澎办,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了金砍?” 一聲冷哼從身側(cè)響起局蚀,我...
    開(kāi)封第一講書(shū)人閱讀 37,802評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恕稠,沒(méi)想到半個(gè)月后琅绅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹅巍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評(píng)論 2 327
  • 正文 我和宋清朗相戀三年千扶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了料祠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,712評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡澎羞,死狀恐怖髓绽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妆绞,我是刑警寧澤蒲犬,帶...
    沈念sama閱讀 34,389評(píng)論 4 332
  • 正文 年R本政府宣布邓夕,位于F島的核電站禽笑,受9級(jí)特大地震影響恕洲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜图焰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評(píng)論 3 316
  • 文/蒙蒙 一忌卤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧楞泼,春花似錦、人聲如沸笤闯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颗味。三九已至超陆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浦马,已是汗流浹背时呀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晶默,地道東北人谨娜。 一個(gè)月前我還...
    沈念sama閱讀 46,473評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像磺陡,于是被迫代替她去往敵國(guó)和親趴梢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 輸入輸出系統(tǒng) ——I/O系統(tǒng) I/O系統(tǒng)的組成 包括: 需要用于輸入币他、輸出和存儲(chǔ)信息的設(shè)備坞靶; 1、需要相應(yīng)的設(shè)備控...
    一萌新一閱讀 1,201評(píng)論 0 1
  • feisky云計(jì)算蝴悉、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,833評(píng)論 0 5
  • # 第一章復(fù)習(xí)題答案p3 1彰阴、計(jì)算機(jī)系統(tǒng)由哪些部分組成? 2、什么是計(jì)算機(jī)的操作系統(tǒng)?答:操作系統(tǒng)是計(jì)算機(jī)的一種系...
    叛逆閑人閱讀 3,324評(píng)論 0 0
  • 第一章:操作系統(tǒng)引論 計(jì)算機(jī)系統(tǒng)是由硬件和軟件兩部分組成拍冠。操作系統(tǒng)是配置在計(jì)算機(jī)硬件上的第一層軟件尿这,是對(duì)硬件系統(tǒng)的...
    溪的風(fēng)閱讀 2,789評(píng)論 0 2
  • 01 第一次約會(huì) 正月十五鬧元宵妻味,聽(tīng)說(shuō)晚上有舞龍燈正压,這給了我們初次約會(huì)的契機(jī)。借著夜幕的掩護(hù)责球,我忐忑地坐在他...
    小林魔女閱讀 795評(píng)論 4 11