計(jì)算機(jī)等級(jí)考試四級(jí)網(wǎng)絡(luò)工程師
考試方式
備考建議
題庫(kù)
課程視頻(不太建議看,因?yàn)闀?huì)睡著)
不需要買書,如果你非要當(dāng)我沒(méi)說(shuō)
先看知識(shí)點(diǎn)邊做題
多選題不能錯(cuò)太多(重點(diǎn))
重復(fù)看記知識(shí)點(diǎn)并且刷題
這份資料是完整的覆蓋計(jì)算機(jī)四級(jí)兩個(gè)科目計(jì)算機(jī)操作系統(tǒng)原理和計(jì)算機(jī)網(wǎng)絡(luò),足以讓你考過(guò)計(jì)算機(jī)四級(jí)
題庫(kù),課程視頻,知識(shí)點(diǎn)資料,如果你找不到那來(lái)找我就好了【微信公眾號(hào):方大熊】
考試題型及分值
上機(jī)考試時(shí)長(zhǎng) 90 分鐘,滿分 100 分
1.操作系統(tǒng)原理—單選題(30 分)
2.操作系統(tǒng)原理—多選題(20 分)
3.計(jì)算機(jī)網(wǎng)絡(luò)—單選題(30 分)
4.計(jì)算機(jī)網(wǎng)絡(luò)—多選題(20 分)
獲證條件
兩門課程分別達(dá)到 30 分及以上,并已經(jīng)(或同時(shí))獲得三級(jí)網(wǎng)絡(luò)技術(shù)科目證書
2013 年 3月及以前獲得的三級(jí)各科目證書,不區(qū)分科目,可以作為四級(jí)任一科目的獲證條件
知識(shí)點(diǎn)目錄大綱(數(shù)字限制)

完整版公眾號(hào)【方大熊】
操作系統(tǒng)原理
1.操作系統(tǒng)概論
批處理系統(tǒng)
優(yōu)點(diǎn):
作業(yè)流程自動(dòng)化較高
資源利用率高
作業(yè)吞吐量大,提高整個(gè)系統(tǒng)效率
缺點(diǎn):
用戶不能直接與計(jì)算機(jī)交互
不合適調(diào)試程序
常見的操作系統(tǒng)體系結(jié)構(gòu):
整體結(jié)構(gòu)
層次結(jié)構(gòu)
微內(nèi)核(客戶機(jī)/服務(wù)器)結(jié)構(gòu)
微內(nèi)核(客戶/服務(wù)器)結(jié)構(gòu)的操作系統(tǒng)具有的優(yōu)點(diǎn):
高可靠性
高靈活性
合適分布式處理
分時(shí)操作系統(tǒng)具特點(diǎn): 多路性,交互性,獨(dú)占性,及時(shí)性
多路性:多個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī)
交互性:用戶根據(jù)系統(tǒng)響應(yīng)的結(jié)果提出下一個(gè)請(qǐng)求,方便調(diào)試程序
獨(dú)占性:每個(gè)用戶感覺(jué)不到計(jì)算機(jī)系統(tǒng)為其他人服務(wù),好像整個(gè)系統(tǒng)為他管理所獨(dú)占一樣
及時(shí)性:系統(tǒng)能夠?qū)τ脩籼岢龅恼?qǐng)求作出及時(shí)的響應(yīng)
實(shí)時(shí)操作系統(tǒng)特點(diǎn):
在嚴(yán)格的時(shí)間范圍內(nèi),
實(shí)時(shí)響應(yīng)用戶的請(qǐng)求
過(guò)載防護(hù)
高可靠性
批量操作系統(tǒng)特點(diǎn)
批量處理用戶作業(yè)
系統(tǒng)資源利用率高
作業(yè)吞吐量高
缺點(diǎn):
用戶不能直接與計(jì)算機(jī)交互
設(shè)備分配算法中有4張表:
系統(tǒng)設(shè)備表SDT
設(shè)備控制表DCT
控制器控制表COCT
通信控制表CHCT

2. 操作系統(tǒng)運(yùn)行機(jī)制
處理器一般包括兩類寄存器:
用戶可見寄存器
用戶可見寄存器通常所有程序都是可用的,由機(jī)器語(yǔ)言直接使用
它一般包括數(shù)據(jù)寄存器(又稱通用寄存器),地址寄存器以及條件碼寄存器
可見寄存器有
數(shù)據(jù)寄存器
地址寄存器
條形碼寄存器
控制和狀態(tài)寄存器
不可見的寄存器是,程序計(jì)數(shù)器寄存器由特權(quán)指令代碼使用
程序計(jì)數(shù)器
指令寄存器
程序狀態(tài)字
中斷
影響中斷協(xié)議順序的是:
中斷優(yōu)先級(jí)
I/O中斷分兩大類
I/O操作正常結(jié)束以及I/O異常
數(shù)據(jù)傳送完畢,設(shè)備出錯(cuò)和鍵盤輸入均產(chǎn)生I/O中斷 (指令出錯(cuò)屬于程序性中斷.)
中斷處理程序入口地址的儲(chǔ)存區(qū)叫做中斷向量表
外部I/O設(shè)備向處理器發(fā)出的中斷信號(hào)又叫
中斷請(qǐng)求
進(jìn)程運(yùn)行時(shí)狀態(tài)發(fā)生轉(zhuǎn)換的原因是發(fā)生中斷,不希望被外部事件打擾只有設(shè)置程序狀態(tài)寄存器(PSW)的IF的中斷標(biāo)志位,設(shè)置為0屏蔽中斷
故障性中斷
由掉電,存儲(chǔ)器效驗(yàn)等硬件引起
時(shí)鐘中斷
處理器內(nèi)部的計(jì)算器產(chǎn)生,允許操作系統(tǒng)以一定的規(guī)律執(zhí)行函數(shù),如時(shí)間片到時(shí),硬件時(shí)鐘到時(shí)
程序性中斷
指令執(zhí)行結(jié)果產(chǎn)生與當(dāng)前運(yùn)行的進(jìn)程有關(guān)系
中斷情況
中斷是由外部事件引發(fā)
異常是指令引發(fā)的
中斷的分類會(huì)引起什么原因中斷事件,中斷源引起中斷的那些事件中斷請(qǐng)求處理器請(qǐng)求發(fā)出信號(hào)中斷響應(yīng)處理器暫停當(dāng)前程序轉(zhuǎn)而處理中斷的過(guò)程中斷斷點(diǎn)暫停正在運(yùn)行的程序
中斷是指CPU對(duì)系統(tǒng)中或系統(tǒng)外發(fā)生的異步事件響應(yīng).
中斷是由外部事件引發(fā)的
異常是由正在執(zhí)行的指令引發(fā)的
被零整除屬于軟件引起的異常
特權(quán)指令
輸入指令
輸出指令
停機(jī)指令
置程序計(jì)數(shù)器
清指令寄存器
清溢出標(biāo)志
置位移方向標(biāo)志位屬于非特權(quán)指令 可以在內(nèi)核態(tài)下運(yùn)行又可以在用戶態(tài)下運(yùn)行
只有在監(jiān)控程序才能執(zhí)行特權(quán)指令,只能內(nèi)核態(tài)下運(yùn)行;用戶只能執(zhí)行一般指令,在用戶下運(yùn)行 只能在內(nèi)核下運(yùn)行
微信公眾號(hào)(方大熊)
操作系統(tǒng)需要處理器從內(nèi)核狀態(tài)轉(zhuǎn)為用戶態(tài)時(shí),修改程序狀態(tài)字即可
中斷是由外部事件引發(fā)的
異常是由正在執(zhí)行的指令引發(fā)的
系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員唯一接口
用戶在編程寫程序時(shí),在屏幕上畫一個(gè)紅色的圓,是需要使用系統(tǒng)調(diào)用
諾用戶數(shù)為100,為保證響應(yīng)時(shí)間<=100ms ,則時(shí)間設(shè)置為100ms/100=1ms比較合適
系統(tǒng)調(diào)用是不能實(shí)現(xiàn)調(diào)用程序多次嵌套和遞歸
open是多種語(yǔ)言的一種函數(shù), C語(yǔ)言中Open()函數(shù)作用: 打開和創(chuàng)建文件,是文件操作系統(tǒng)調(diào)用
一個(gè)程序從運(yùn)行狀態(tài)轉(zhuǎn)換為就緒狀態(tài)的可能事件是分配給該進(jìn)程的時(shí)間片用完
處理器的程序狀態(tài)字(PSW)通常包括標(biāo)志位
進(jìn)位標(biāo)志位(CF)
結(jié)果為零標(biāo)志位(ZF)
符號(hào)標(biāo)志位(SF)
溢出標(biāo)志位(OF)
有時(shí)候四種標(biāo)志位為標(biāo)準(zhǔn)條件:
陷阱標(biāo)志位(TF)
中斷使能(中斷屏蔽)標(biāo)志位(IF)
虛擬中斷標(biāo)志位(VIF)
虛擬中斷待決標(biāo)志位(VIP)
微內(nèi)核結(jié)構(gòu)的特點(diǎn):
提高系統(tǒng)的可擴(kuò)展性
增強(qiáng)了系統(tǒng)的可用性
可移植性
適用于對(duì)分布式處理的計(jì)算環(huán)境
融入了面向?qū)ο蠹夹g(shù)
系統(tǒng)調(diào)用:
進(jìn)程控制類系統(tǒng)調(diào)用
這類系統(tǒng)調(diào)用數(shù)量較多,如創(chuàng)建和終止進(jìn)程的系統(tǒng)調(diào)用,獲得和設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用等.
文件操作類系統(tǒng)調(diào)用:
對(duì)文件進(jìn)行操縱的系統(tǒng)調(diào)用數(shù)量較多,有創(chuàng)建文件,打開文件,關(guān)閉文件,讀文件,寫文件,創(chuàng)建一個(gè)目錄,建立目錄,移動(dòng)文件的讀/寫指針,改變文件的屬性等
進(jìn)程通信類系統(tǒng)調(diào)用
該類系統(tǒng)調(diào)用被用在進(jìn)程之間傳遞消息和信號(hào)
設(shè)備管理類系統(tǒng)調(diào)用
該類系統(tǒng)調(diào)用被用來(lái)請(qǐng)求和釋放獲得有關(guān)設(shè)備,以及啟動(dòng)設(shè)備間操作等
信息維護(hù)類系統(tǒng)調(diào)用
用戶利用這類系統(tǒng)調(diào)用來(lái)獲得當(dāng)前時(shí)間和日期
系統(tǒng)調(diào)用傳遞參數(shù)3種
陷入指令自帶
通用寄存器
專用堆棧
系統(tǒng)調(diào)用與一般程序調(diào)用的不同是:
調(diào)用程序運(yùn)行在用戶態(tài),而被調(diào)用程序則運(yùn)行在核心態(tài)
系統(tǒng)調(diào)用與一般過(guò)程調(diào)用是不同的,嵌套使用系統(tǒng)調(diào)用與一般過(guò)程調(diào)用都是允許的,過(guò)程調(diào)用和系統(tǒng)調(diào)用均可以嵌套使用
一般過(guò)程調(diào)用在被調(diào)用過(guò)程執(zhí)行完后,直接返回到調(diào)用程序:
具有優(yōu)先級(jí),諾調(diào)用進(jìn)程不具有高級(jí)優(yōu)先級(jí),則會(huì)引起重新調(diào)度以便讓優(yōu)先級(jí)最高的進(jìn)程優(yōu)先執(zhí)行 系統(tǒng)調(diào)用擴(kuò)充了機(jī)器指令,增強(qiáng)了系統(tǒng)管理,方便了用戶使用
多道程序
提高CPU利用率
提高I/O設(shè)備的利用率
縮短作業(yè)的周轉(zhuǎn)時(shí)間
提高計(jì)算機(jī)軟硬資源的利用率
程序并發(fā)性
指兩個(gè)OR兩個(gè)以上程序在計(jì)算機(jī)系統(tǒng)中同處于已開始執(zhí)行尚未結(jié)束的狀態(tài) 特性:
并發(fā)程序在執(zhí)行期間具有相互制約關(guān)系
程序與計(jì)算不在一一對(duì)應(yīng)
并發(fā)程序執(zhí)行結(jié)果不可再現(xiàn)
進(jìn)程的"動(dòng)態(tài)性'
指進(jìn)程對(duì)應(yīng)著程序的執(zhí)行過(guò)程
其一:進(jìn)程動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡
其二:在進(jìn)程生命周期內(nèi),其狀態(tài)動(dòng)態(tài)變化
處理器管理又稱進(jìn)程管理 主要內(nèi)容進(jìn)程控制,進(jìn)程同步,進(jìn)程通信,調(diào)度
處理器管理
又稱進(jìn)程管理
主要內(nèi)容
進(jìn)程控制
進(jìn)程同步
進(jìn)程通信,調(diào)度
進(jìn)程控制塊(PCB)
調(diào)度信息
調(diào)度信息包括進(jìn)程名,進(jìn)程號(hào),儲(chǔ)存信息,優(yōu)先級(jí),當(dāng)前狀態(tài),資源清單,'家族'關(guān)系,消息隊(duì)列指針,進(jìn)程隊(duì)列指針和當(dāng)
開文件等
現(xiàn)場(chǎng)信息
只記錄哪些可能會(huì)被其他進(jìn)程改變的寄存器 如程序狀態(tài)字,時(shí)鐘,界地址寄存器等
操作系統(tǒng)
交互式操作系統(tǒng)
指用戶交互式地向系統(tǒng)提出命令請(qǐng)求,系統(tǒng)接受每個(gè)用戶的命令,采用時(shí)間片輪轉(zhuǎn)方式處理服務(wù)請(qǐng)求,并通過(guò)交互式在終端上向上用戶顯示結(jié)果
多級(jí)反饋隊(duì)列,時(shí)間片輪轉(zhuǎn)和高優(yōu)先級(jí) 適用于交互式操作系統(tǒng)
系統(tǒng)分三類環(huán)境
批量環(huán)境
交互式環(huán)境
實(shí)時(shí)環(huán)境
調(diào)度算法
批量處理系統(tǒng)
先來(lái)服務(wù),最短作業(yè)優(yōu)先,最短剩余時(shí)間優(yōu)先響應(yīng)比高者優(yōu)先
分時(shí)系統(tǒng)
時(shí)間片輪轉(zhuǎn),多級(jí)反饋隊(duì)列算法
交互式系統(tǒng)
響應(yīng)時(shí)間越快越好,另一個(gè)是較均衡的性能

3.進(jìn)程線程模型
多道程序設(shè)計(jì)
微觀
部分程序使用CPU部分程序使用外部設(shè)備
宏觀
CPU與外部設(shè)備始終可以并行工作,這樣使CPU運(yùn)行效率達(dá)到最大化,不空閑(多個(gè)進(jìn)程同時(shí)運(yùn)行)
線程
基本上不擁有系統(tǒng)資源
只擁有一點(diǎn)在運(yùn)行中必不可少的資源 如程序計(jì)數(shù)器,組寄存器和和棧
進(jìn)程和程序既有聯(lián)系又有區(qū)別
程序是結(jié)構(gòu)的組成部分之一
從靜態(tài)角度看
進(jìn)程由程序
數(shù)據(jù)
進(jìn)程塊(PCB)
3部分組成
程序是靜態(tài)的,而進(jìn)程是動(dòng)態(tài)的
多道程序設(shè)計(jì)環(huán)境特點(diǎn)
獨(dú)立性
隨機(jī)性
資源共享性
可再入程序是有可重入代碼組成的程序
純代碼,執(zhí)行過(guò)程中不可修改
調(diào)用它的進(jìn)程應(yīng)該提供屬于它自己的數(shù)據(jù)區(qū)
進(jìn)程控制塊(PCB)3種組織
線性方法
索引方法
鏈接方法
進(jìn)程控制塊:
現(xiàn)場(chǎng)信息
程序狀態(tài)字
時(shí)鐘
界地址寄存器
調(diào)度信息
進(jìn)程名
進(jìn)程號(hào)
存儲(chǔ)信息
優(yōu)先級(jí)
當(dāng)前狀態(tài)
資源清單
'家族'關(guān)系,消息隊(duì)列指針
進(jìn)程的'并發(fā)性'
微觀是:
不同的進(jìn)程交替占用資源向前推進(jìn)
宏觀是:
不同的進(jìn)程一起向前推進(jìn)
方大熊(微信公眾號(hào))
函數(shù)fork()屬于系統(tǒng)調(diào)用的進(jìn)程控制類
進(jìn)程控制塊是用來(lái)內(nèi)存唯一標(biāo)識(shí)和管理進(jìn)程活動(dòng)的控制結(jié)構(gòu)
進(jìn)程從等待狀態(tài)轉(zhuǎn)換就緒狀態(tài)時(shí)稱喚醒
單核處理機(jī)的計(jì)算機(jī)系統(tǒng)中,處于運(yùn)行狀態(tài)的進(jìn)程只能有一個(gè).(最多1個(gè),最少0個(gè))
單核處理器堵塞狀態(tài)會(huì)發(fā)生死鎖,進(jìn)程全部堵塞
處理器是幾核的,處于運(yùn)行狀態(tài)最多就幾個(gè)
運(yùn)行狀態(tài)最少是0
運(yùn)行狀態(tài)最多是核數(shù)
就緒狀態(tài)最多進(jìn)程減一
就緒狀態(tài)最少是0
fork()調(diào)用一次,返回兩次
文件數(shù)據(jù)結(jié)構(gòu)的指針存放在:進(jìn)程控制快中
管程無(wú)法保證本身互斥
程序是有指令代碼,數(shù)據(jù)組成
線程是進(jìn)程中的一個(gè)實(shí)體
撤銷進(jìn)程的實(shí)質(zhì)是撤銷進(jìn)程PCB ,過(guò)程是:找到要被撤銷進(jìn)程的PCB,將它所在的隊(duì)列中除去,撤銷屬 于該進(jìn)程的一切"子孫進(jìn)程"釋放被撤銷進(jìn)程所占用的全部資源,并消去被撤進(jìn)程的PCB
進(jìn)程控制塊(簡(jiǎn)稱PCB)是用來(lái)唯一標(biāo)識(shí)每一個(gè)進(jìn)程的,所以每個(gè)進(jìn)程都有一個(gè)與之相對(duì)的PCB
PCB是記錄每個(gè)進(jìn)程活動(dòng)狀態(tài)等信息的數(shù)據(jù)結(jié)構(gòu),必須常駐內(nèi)存
一個(gè)進(jìn)程的狀態(tài)變化不一定會(huì)引起另一個(gè)進(jìn)程的狀態(tài)變化
信號(hào)量的處值一定大于等于零,這是因?yàn)樾盘?hào)量表示資源的剩余數(shù),資源數(shù)目不會(huì)是負(fù)數(shù)
進(jìn)程是資源分配的基本單位,線程是處理機(jī)調(diào)度的基本單位
進(jìn)程被掛起后,它的狀態(tài)可以為阻塞掛起狀態(tài),或?yàn)榫途w掛起狀態(tài)
操作系統(tǒng)中引入P,V操作主要為了實(shí)現(xiàn)進(jìn)程的互斥與同步
進(jìn)程具有
并發(fā)性
動(dòng)態(tài)性
獨(dú)立性
指一個(gè)進(jìn)程是一個(gè)相對(duì)完整的只有分配單位
交往性
異步性
指每個(gè)進(jìn)程按照各種獨(dú)立的,不可預(yù)知的速度向前推進(jìn)
Linux進(jìn)程有5種狀態(tài)
運(yùn)行狀態(tài)
中斷狀態(tài)
不可中斷狀態(tài)
僵尸狀態(tài)
停止?fàn)顟B(tài)
進(jìn)程堵塞
請(qǐng)求系統(tǒng)服務(wù)
啟動(dòng)某種操作
新數(shù)據(jù)尚未到達(dá)與無(wú)新工作可做
進(jìn)程的3種狀態(tài)模型
運(yùn)行狀態(tài)(Running)
就緒狀態(tài)(Ready)
阻塞狀態(tài)(等待狀態(tài),Blocked)
有可能狀態(tài)轉(zhuǎn)換是: 就緒態(tài) -> 運(yùn)行態(tài) 運(yùn)行態(tài) -> 阻塞態(tài) 阻塞態(tài) -> 就緒態(tài)
當(dāng)設(shè)備忙,進(jìn)程會(huì)進(jìn)入等待狀態(tài),等待該資源釋放后才可以去使用
操作系統(tǒng)創(chuàng)建一個(gè)新進(jìn)程的過(guò)程 ①申請(qǐng)空白PCB ②為新進(jìn)程分配資源 ③初始化進(jìn)程控制塊 ④將新進(jìn)程插入就緒隊(duì)列
進(jìn)程從堵塞轉(zhuǎn)換為掛起狀態(tài):語(yǔ)句是suspend()
目前常用進(jìn)程控制塊的組織方式
線性表方式
素引表方式
鏈接表方式
進(jìn)程程序控制的原語(yǔ)一般有
創(chuàng)建進(jìn)程
撤銷進(jìn)程
掛起進(jìn)程
激活進(jìn)程
堵塞進(jìn)程
喚醒進(jìn)程
改變進(jìn)程優(yōu)先級(jí)
改變進(jìn)程程序狀態(tài)是控制原語(yǔ)實(shí)現(xiàn)
Pthread_join的含義是等待一個(gè)特定的線程退出
Pthread_yield表示線程讓出CPU
Pthread_create表示創(chuàng)建新線程的函數(shù)
Pthread_exit表示結(jié)束一個(gè)線程
Pthread_mutex_init()表示創(chuàng)建一個(gè)互斥量
進(jìn)程從堵塞轉(zhuǎn)換為掛起狀態(tài):語(yǔ)句是suspend()
引起進(jìn)程調(diào)度的原因: ①正在執(zhí)行的進(jìn)程執(zhí)行完畢 ②正在執(zhí)行的進(jìn)程調(diào)用堵塞語(yǔ)將自己堵塞起來(lái)進(jìn)入等待狀態(tài) ③正在執(zhí)行的進(jìn)程調(diào)用了堵塞原語(yǔ)操作 ④時(shí)間片已經(jīng)用完 ⑤就緒隊(duì)列中的某個(gè)進(jìn)程的優(yōu)先級(jí)高于當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級(jí)
在搶占式調(diào)度系統(tǒng)中,進(jìn)程從運(yùn)行狀態(tài)轉(zhuǎn)換為就緒狀態(tài)的可能原因有
進(jìn)程創(chuàng)建完成
時(shí)間片用完
和被調(diào)度程序占處理機(jī)
采用非搶占式調(diào)度的操作系統(tǒng)中.執(zhí)行調(diào)度有以下幾種情況:
正在執(zhí)行的進(jìn)程執(zhí)行且完畢
正在執(zhí)行的進(jìn)程調(diào)用堵塞原語(yǔ)將自己堵塞起賴記錄等待狀態(tài)
正在執(zhí)行的進(jìn)程調(diào)用了堵塞原語(yǔ)操作,并且因?yàn)橘Y源不足而被堵塞;
調(diào)用了喚醒原語(yǔ)操作激活了等待資源的進(jìn)程,時(shí)間片用完
非搶占式調(diào)度策略的系統(tǒng)中,引起進(jìn)程調(diào)度的因素有:
正在執(zhí)行的進(jìn)程執(zhí)行完畢或因發(fā)生某事件而不能繼續(xù)執(zhí)行
執(zhí)行中的進(jìn)程因提出I/O請(qǐng)求而暫停執(zhí)行
在進(jìn)程通信或同步過(guò)程中執(zhí)行了某種原語(yǔ)操作P操作,阻塞,掛起原語(yǔ)
此外,在可剝奪調(diào)度中,有比當(dāng)前進(jìn)程優(yōu)先權(quán)更高的進(jìn)程記錄就緒隊(duì)列
在時(shí)間片輪轉(zhuǎn)中,時(shí)間片用完
操作系統(tǒng)中進(jìn)程調(diào)度策略
FCFS(先來(lái)先服務(wù))最短作業(yè)優(yōu)先
最短剩余時(shí)間優(yōu)先
時(shí)間片輪轉(zhuǎn)
多級(jí)反饋隊(duì)列算法
最短進(jìn)程優(yōu)先
引起創(chuàng)建進(jìn)程事件: ①用戶登錄 ②系統(tǒng)初始化 ③用戶系統(tǒng)調(diào)用 ④初始化批量處理作業(yè)
引入線程的主要目的 A. 提高并發(fā)度 B. 減少通信開銷 C. 線程之間的切換時(shí)間短 D. 每個(gè)線程可以擁有獨(dú)立的棧
進(jìn)程(線程)調(diào)度的主要功能有:
根據(jù)一定的調(diào)度算法選擇被調(diào)度的進(jìn)程(線程)
將CPU分配給選中的進(jìn)程(線程)
將換下的進(jìn)程(線程)的現(xiàn)場(chǎng)信息保存到進(jìn)程進(jìn)程控制塊中
將選中的進(jìn)程(線程)的現(xiàn)場(chǎng)信息送入到相應(yīng)寄存器中
進(jìn)程線程調(diào)度的時(shí)機(jī)有:
運(yùn)行完畢
自我阻塞
時(shí)間片用完
所需資源沒(méi)有準(zhǔn)備好
出現(xiàn)錯(cuò)誤
運(yùn)行大量批處理作業(yè)的大型計(jì)算機(jī)中心
設(shè)計(jì)目的3個(gè)指標(biāo):
吞吐量
周轉(zhuǎn)時(shí)間
CPU利用率
線程描述記錄的信息有
線程ID
指令地址寄存器
處理器寄存器
硬件設(shè)備寄存器
?,F(xiàn)場(chǎng)狀態(tài)等少量線
程私有信息
線程實(shí)現(xiàn)方式3種
用戶級(jí)線程
內(nèi)核級(jí)線程
混合實(shí)現(xiàn)方式
程序并發(fā)執(zhí)行與程序順序執(zhí)行相比較特征
并發(fā)性在執(zhí)行期間具有互相制約關(guān)系
程序與計(jì)算不再一一對(duì)應(yīng)
并發(fā)程序執(zhí)行結(jié)果不可再現(xiàn)
實(shí)時(shí)系統(tǒng)調(diào)度算法設(shè)計(jì)目的
滿足截止時(shí)間要求
滿足可靠性要求
不同的進(jìn)程由設(shè)計(jì)目標(biāo)不同而具備不同的進(jìn)程
兩大類
計(jì)算密集型進(jìn)程
I/O密集型進(jìn)程

4.并發(fā)與同步
進(jìn)程同步
指多個(gè)進(jìn)程中發(fā)生的事件存在某種時(shí)序關(guān)系
必須協(xié)同動(dòng)作
互相配合
以共同完成一個(gè)任務(wù)
異步環(huán)境
一組并發(fā)進(jìn)程因直接制約而互相發(fā)送消息
進(jìn)行互相合作,互相等待使得各進(jìn)程一點(diǎn)的速度執(zhí)行的過(guò)程稱為進(jìn)程間的同步
方大熊 P , V 操作可以實(shí)現(xiàn)進(jìn)程同步,進(jìn)程互斥,進(jìn)程的前趨關(guān)系 P ,V操作對(duì)共享資源的使用進(jìn)行保護(hù)時(shí),對(duì)該共享資源讀寫的代碼段稱:臨時(shí)界 同步機(jī)制應(yīng)該遵循的準(zhǔn)則有如下4條:空閑則則入,忙則等待,有限等待,讓權(quán)等待 臨界資源是指每次僅允許一個(gè)進(jìn)程訪問(wèn)的資源 p v 操作由p操作原語(yǔ)和V操作原語(yǔ)組成(原語(yǔ)是不可中斷的過(guò)程)對(duì)信號(hào)量進(jìn)行操作 操作系統(tǒng)一般只提供要共享的內(nèi)存空間 程序開發(fā)人員的責(zé)任是互斥共享
設(shè)置緩沖區(qū)
緩解處理機(jī)
設(shè)備之間速度的矛盾
減少對(duì)CPU的I/O中斷次數(shù)
提高資源利用率和系統(tǒng)效率
交互關(guān)系的競(jìng)爭(zhēng)
兩個(gè)相互不感知(完全不了解其進(jìn)程是否存在)
相互感知程序
相互不感知(完全了解其他進(jìn)程的存在)
間接感知(雙方都與第三方交互,如共享資源)
直接感知(雙方直接交互,如通信)
交互關(guān)系
競(jìng)爭(zhēng)關(guān)系
通過(guò)共享進(jìn)行協(xié)作
通過(guò)通信進(jìn)行協(xié)作
一個(gè)進(jìn)程對(duì)其他進(jìn)程的影響
一個(gè)進(jìn)程的操作對(duì)其他進(jìn)程的結(jié)果無(wú)影響
一個(gè)進(jìn)程的結(jié)果依賴于從其他進(jìn)程獲取的信息
一個(gè)進(jìn)程的結(jié)果依賴從其他進(jìn)程獲取的信息
潛在的控制問(wèn)題
互斥,死鎖,(可釋放資源,饑餓)
互斥,死鎖(可釋放資源),饑餓
死鎖,饑餓
進(jìn)程通信時(shí)
已滿的郵件槽,發(fā)送進(jìn)程不能再申請(qǐng)互斥鎖
共享內(nèi)存
最合適傳送大量的信息
保證計(jì)算機(jī)中臨界資源的正確使用
進(jìn)程在對(duì)臨界資源訪問(wèn)前,必須調(diào)用進(jìn)入?yún)^(qū)代碼
臨界區(qū)
指進(jìn)程中訪問(wèn)臨界資源的一段代碼
管程
由一個(gè)過(guò)程,變量,及數(shù)據(jù)結(jié)構(gòu)等組成的集合
組成一個(gè)特殊的模塊或軟件包
進(jìn)程可在任何需要的時(shí)候調(diào)用管程中的過(guò)程
不能在管程之外聲明的過(guò)程中直接訪問(wèn)管程內(nèi)的數(shù)據(jù)結(jié)構(gòu)
管程4個(gè)部門組成
管程名稱
共享數(shù)據(jù)的說(shuō)明
對(duì)數(shù)據(jù)進(jìn)行操作的一組過(guò)程
對(duì)共享數(shù)據(jù)賦初值的語(yǔ)句
不可搶占
最高優(yōu)先級(jí)優(yōu)先
生產(chǎn)者往緩沖區(qū)放產(chǎn)品
之前要使用P操作確保緩沖區(qū)有空槽
即信號(hào)量表示的資源還有空閑
共享內(nèi)存
Unix下的多進(jìn)程之間的通信方法
通常用于一個(gè)程序的多進(jìn)程間通信
實(shí)際上多個(gè)程序間也可以通過(guò)共享內(nèi)存
不需要多份內(nèi)容的拷貝來(lái)傳遞信息,
特點(diǎn)是可以高效的共享大量信息
直接通信方式中
系統(tǒng)提供的發(fā)送原語(yǔ):send(receiver,message)
消息機(jī)制
實(shí)現(xiàn)進(jìn)程之間信息交換的通信方式
共享內(nèi)存
實(shí)現(xiàn)兩組進(jìn)程間信息交換的方式
要解決兩個(gè)問(wèn)題
一是怎么樣提供共享內(nèi)存:
二是公共內(nèi)存中的讀寫互斥問(wèn)題
說(shuō)明
在相互通信的進(jìn)程之間設(shè)一個(gè)公共區(qū)域
一組進(jìn)程向該公共區(qū)域
另一個(gè)進(jìn)程從公共區(qū)域讀
通過(guò)這種方式實(shí)現(xiàn)兩組進(jìn)程間的信息交換
管道通信
實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)通信的方式
優(yōu)點(diǎn)
傳送數(shù)據(jù)量大
缺點(diǎn)
通信速度較慢
管程的互斥
由管程本身性能實(shí)現(xiàn)的
管程中一次只能有一次進(jìn)程可以在管程內(nèi)活動(dòng)
信息通信方式可以完成進(jìn)程通信
優(yōu)點(diǎn)
不必直接建立聯(lián)系
沒(méi)有處理時(shí)間上的限制
發(fā)送者可以在任何時(shí)間發(fā)信
接受者可以在任何時(shí)間收信
"消息緩存"通信方式
在內(nèi)存中開辟諾干區(qū)域
發(fā)送進(jìn)程申請(qǐng)一個(gè)區(qū)域
并將信息送入
插入到進(jìn)程的相應(yīng)隊(duì)列中,之后通知接收進(jìn)程
"信箱"通信方式
首先創(chuàng)建一個(gè)鏈接兩個(gè)進(jìn)程的通信機(jī)制
把信息送入該機(jī)制
發(fā)送進(jìn)程和接受進(jìn)程不直接建立關(guān)系
接受進(jìn)程可以任何時(shí)刻從該機(jī)制中取走信息
"管道"通信方式
發(fā)送進(jìn)程創(chuàng)建好鏈接兩個(gè)進(jìn)程的一個(gè)打開的共享文件
寫入數(shù)據(jù)流
接收進(jìn)程需要時(shí)可以從該共享文件讀出數(shù)據(jù)
寫入和讀出數(shù)據(jù)的長(zhǎng)度是可變的
進(jìn)程運(yùn)行時(shí)所產(chǎn)生的地址超出其地址空間
則發(fā)生了地址越界
靜態(tài)重定位
把程序中的指令地址和數(shù)據(jù)地址全部轉(zhuǎn)換成絕對(duì)地址
使得地址轉(zhuǎn)換工作在程序開始執(zhí)行前完成
在程序執(zhí)行過(guò)程中無(wú)需再進(jìn)行地址轉(zhuǎn)換工作
P , V操作不足:
程序不易讀
程序不利于修改和維修
正確性難以保證
消息緩沖通信機(jī)制
消息緩沖區(qū)
消息隊(duì)列首地址
同步互斥信號(hào)量
同步互斥信號(hào)量
TS指令(Test&Set)實(shí)現(xiàn)互斥的算法
測(cè)試鎖變量的值
如為1
重復(fù)執(zhí)行本命令,不斷重復(fù)測(cè)試變量的值
如為0
則立即將鎖變量值置為1,進(jìn)入臨界區(qū)
測(cè)試并設(shè)置指令是一條完整的指令
而在一條指令的執(zhí)行中間是不會(huì)被中斷的
保證了鎖的測(cè)試和關(guān)閉的連續(xù)性退出臨界區(qū)時(shí),將鎖變量測(cè)試值設(shè)為0
管程管理的對(duì)象
共享的數(shù)據(jù)結(jié)構(gòu)和一組操作過(guò)程
并發(fā)進(jìn)程間存在的關(guān)系有:
直接感知:互相間直接交互, 如通信
間接感知:雙方都與第三方交互 如共享資源
互相不感知:互相間不了解其他進(jìn)程的存在
并發(fā)進(jìn)程由于存在著互相制約關(guān)系會(huì)產(chǎn)生諾干問(wèn)題:
同步問(wèn)題
互斥問(wèn)題
死鎖問(wèn)題
饑餓問(wèn)題
操作系統(tǒng)中采用的進(jìn)程同步機(jī)制應(yīng)遵循以下幾條準(zhǔn)則:
空閑則入
忙則等待
有限等待
讓權(quán)等待
解決進(jìn)程互斥通常有兩種再發(fā):
一是由競(jìng)爭(zhēng)各方平等協(xié)商
二是引入進(jìn)程管理者
使用硬件方法實(shí)現(xiàn)進(jìn)程互斥優(yōu)點(diǎn)
優(yōu)點(diǎn)
使用范圍廣
支持多個(gè)臨界區(qū)
簡(jiǎn)單
缺點(diǎn):
不能實(shí)現(xiàn)"讓權(quán)等待"
導(dǎo)致"饑餓"
Peterson算法
是一個(gè)實(shí)現(xiàn)互斥鎖的并發(fā)程序設(shè)計(jì)算法
Test-and-Set
簡(jiǎn)稱TS
用于實(shí)現(xiàn)互斥訪問(wèn)臨界資源
Swap或Exchange指令
是寄存器和儲(chǔ)存內(nèi)容交換的指令
可用于信號(hào)量操作
實(shí)現(xiàn)系統(tǒng)任務(wù)之間的同步或互斥
信號(hào)量機(jī)制是實(shí)現(xiàn)進(jìn)程互斥的重要方法
分派器(Dispater)
是實(shí)時(shí)系統(tǒng)調(diào)度策略之一
不是進(jìn)程互斥方法
信箱通信機(jī)制中接收原語(yǔ)Receive()操作功能是
從指定信箱中取出一封信,存放到指定的內(nèi)存地址中

公眾號(hào)【方大熊】思維導(dǎo)圖查缺補(bǔ)漏


完整版本覆蓋計(jì)算機(jī)四級(jí)網(wǎng)絡(luò)工程師等級(jí)考試兩科的知識(shí)點(diǎn)
最后兩節(jié)銀行家算法包括多選題??贾R(shí)點(diǎn)(重點(diǎn)必看)
字?jǐn)?shù)限制還剩下好多,完整版本PDF,微信公眾號(hào)【方大熊】