一、輸入輸出操作(要求達(dá)到“識(shí)記”層次)
1、什么是輸入輸出操作:主存儲(chǔ)器與外圍設(shè)備之間的信息傳送操作稱為輸入輸出操作。
2、對(duì)于存儲(chǔ)型設(shè)備,輸入輸出操作的信息傳輸單位為“塊”。對(duì)輸入輸出型設(shè)備,輸入輸出操作的信息傳輸單位為“字符”。
二、獨(dú)占設(shè)備和共享設(shè)備(識(shí)記)
1、獨(dú)占設(shè)備是指每次只能供一個(gè)作業(yè)執(zhí)行期間單獨(dú)使用的設(shè)備。如輸入機(jī)、磁帶機(jī)、打印機(jī)等。
2、共享設(shè)備是指允許幾個(gè)作業(yè)執(zhí)行期間可同時(shí)使用的設(shè)備。共享設(shè)備的“同時(shí)使用”的含義是指多個(gè)作業(yè)可以交替啟動(dòng)共享設(shè)備,其實(shí)是當(dāng)一個(gè)用業(yè)正在使用設(shè)備時(shí)其他作業(yè)暫不能使用,即每一時(shí)刻仍只有一個(gè)作業(yè)占用,但當(dāng)一個(gè)作業(yè)正在使用設(shè)備時(shí)其他作業(yè)就可使用。
三、獨(dú)占設(shè)備的分配(領(lǐng)會(huì))
1、獨(dú)占設(shè)備的絕對(duì)號(hào)與相對(duì)號(hào)
這和絕對(duì)地址/相對(duì)地址的概念類似。絕對(duì)號(hào)就是將每一臺(tái)設(shè)備確定一個(gè)編號(hào)(相當(dāng)于一個(gè)絕對(duì)地址)。相對(duì)號(hào)就是為了用戶程序的方便而設(shè)的,在用戶請(qǐng)求使用時(shí),采用“設(shè)備類-相對(duì)號(hào)”來(lái)提出使用設(shè)備要求。由系統(tǒng)建立絕對(duì)號(hào)與“設(shè)備類-相對(duì)號(hào)”之間的關(guān)系,就能正確啟用設(shè)備了。
2、設(shè)備的指定方式
1) 設(shè)備絕對(duì)號(hào):系統(tǒng)為每一個(gè)設(shè)備確定一個(gè)唯一的編號(hào)。
2)設(shè)備相對(duì)號(hào):不具體指定是哪臺(tái)設(shè)備,只說(shuō)明要某類設(shè)備多少臺(tái),這樣可以由系統(tǒng)靈活分配。
3)設(shè)備獨(dú)立性:采用“設(shè)備類、相對(duì)號(hào)”方式使用設(shè)備時(shí),用戶編程時(shí)使用的設(shè)備與實(shí)際使用哪臺(tái)設(shè)備無(wú)關(guān),這就是“設(shè)備獨(dú)立性”。
4)如何實(shí)現(xiàn)獨(dú)占性設(shè)備分配:對(duì)于獨(dú)占性設(shè)備,系統(tǒng)采用“靜態(tài)分配”的策略,就是當(dāng)一個(gè)作業(yè)所需使用的獨(dú)占設(shè)備能得到滿足時(shí),該作業(yè)才能被裝入主存儲(chǔ)器執(zhí)行。
在操作系統(tǒng)中,設(shè)置“設(shè)備分配表”來(lái)記錄計(jì)算機(jī)系統(tǒng)所配置的獨(dú)占設(shè)備類型、臺(tái)數(shù)和分配情況等。設(shè)備分配表由“設(shè)備類表”和“設(shè)備表”兩部分組成。通過(guò)查表和修改表的操作完成設(shè)備分配工作。
四、磁盤(pán)的驅(qū)動(dòng)調(diào)度(領(lǐng)會(huì))
1、 磁盤(pán)的結(jié)構(gòu)
還記得小學(xué)時(shí)的作業(yè)嗎?秒,分,小時(shí)?)這也一樣,扇區(qū)套在磁道里,磁道套在柱面里,柱面套在一個(gè)磁盤(pán)里。接下來(lái)的問(wèn)題就是被除數(shù)=除數(shù)×商+余數(shù)了。明白了嗎?
2、訪問(wèn)磁盤(pán)的操作時(shí)間
3、磁盤(pán)的驅(qū)動(dòng)調(diào)度:系統(tǒng)決定等待磁盤(pán)訪問(wèn)者的執(zhí)行次序的工作就是磁盤(pán)的“驅(qū)動(dòng)調(diào)度”。
4、對(duì)磁盤(pán)進(jìn)行驅(qū)動(dòng)調(diào)度的目的:有利于系統(tǒng)效率的提高。
5、磁盤(pán)調(diào)度分為移臂調(diào)度和旋轉(zhuǎn)調(diào)度。
6、移臂調(diào)度算法包括以下四種:
1) 先來(lái)先服務(wù)算法;
根據(jù)訪問(wèn)者提出訪問(wèn)請(qǐng)求的先后次序來(lái)決定執(zhí)行次序。
2) 最短尋找時(shí)間優(yōu)先調(diào)度算法;
從等待的訪問(wèn)者中挑選尋找時(shí)間最短的那個(gè)請(qǐng)求執(zhí)行,而不管訪問(wèn)者的先后次序。
3) 電梯調(diào)度算法;
從移動(dòng)臂當(dāng)前位置沿移動(dòng)方向選擇最近的那個(gè)柱面的訪問(wèn)者來(lái)執(zhí)行,若該方向上無(wú)請(qǐng)求訪問(wèn)時(shí),就改變移動(dòng)方向再選擇。
4) 單向掃描調(diào)度算法。
從0柱面開(kāi)始往里單向掃描,掃到哪個(gè)執(zhí)行哪個(gè)。
7、信息的優(yōu)化分布:知道信息在磁盤(pán)上排列不一定是按順序最優(yōu),對(duì)于一些能預(yù)知處理要求的信息采用優(yōu)化分頁(yè)可以縮短輸入輸出操作時(shí)間,提高系統(tǒng)效率。
五、外圍設(shè)備的啟動(dòng)(識(shí)記)
1、通道(channel):計(jì)算機(jī)系統(tǒng)中能夠獨(dú)立完成輸入輸出操作的硬件裝置。是CPU與設(shè)備的橋梁。
注解:CPU并不直接操作外圍設(shè)備,他連接通道(I/O處理機(jī)),通道連接設(shè)備控制器,設(shè)備控制器連接設(shè)備。CPU只需把“I/O”設(shè)備啟動(dòng),并給出相關(guān)的操作要求。然后就由通道來(lái)處理輸入輸出事宜,做完后報(bào)告CPU。
2、通道地址字(CAW)和通道狀態(tài)字(CSW)
用來(lái)存放通道程序首地址的主存固定單元稱為“通道地址字”。
通道狀態(tài)字:用于記錄通道和設(shè)備執(zhí)行情況的主存單元。
3、I/O中斷:是指中央處理器和通道協(xié)調(diào)工作的一種手段。通道借助I/O中斷請(qǐng)求CPU進(jìn)行干預(yù),CPU根據(jù)產(chǎn)生的I/O中斷事件了解輸入輸出操作的執(zhí)行情況,I/O中斷事件是由于通道程序的執(zhí)行或其他外界原因引起的,對(duì)通道操作而言,當(dāng)操作正常結(jié)束或異常結(jié)束(如設(shè)備故障、設(shè)備特殊情況引起異常結(jié)束)形成I/O中斷,由CPU根據(jù)相應(yīng)情況分別處理。
六、虛擬設(shè)備SPOOL系統(tǒng)(領(lǐng)會(huì))
1、實(shí)現(xiàn)虛擬設(shè)備的目的:用一種物理設(shè)備模擬另一類物理設(shè)備,使各作業(yè)在執(zhí)行期間只使用虛擬的設(shè)備而不直接使用物理的獨(dú)占設(shè)備。這種技術(shù)可使獨(dú)占的設(shè)備變成可共享的設(shè)備,使得設(shè)備的利用率和系統(tǒng)效率都能得到提高。
2、實(shí)現(xiàn)虛擬設(shè)備的硬件條件:大容量磁盤(pán);中斷裝置和通道;中央處理器與通道并行工作的能力。
實(shí)現(xiàn)虛擬設(shè)備的軟件條件是要求操作系統(tǒng)采用多道程序設(shè)計(jì)技術(shù)。
3、虛擬設(shè)備的實(shí)現(xiàn)原理:對(duì)于多道程序,輸入時(shí)將一批作業(yè)的信息通過(guò)輸入設(shè)備預(yù)先傳送到磁盤(pán)上。輸出時(shí)將作業(yè)產(chǎn)生的結(jié)果也全部暫時(shí)存在磁盤(pán)上而不直接輸出,直到一個(gè)作業(yè)得到全部結(jié)果而執(zhí)行結(jié)束時(shí)再行輸出。這樣在執(zhí)行過(guò)程中,不需要使用輸入機(jī)和打印機(jī)。因此在配置一臺(tái)輸入機(jī)和打印機(jī)的情況下,可以讓多個(gè)作業(yè)同時(shí)執(zhí)行,并且各個(gè)作業(yè)請(qǐng)求輸入信息和輸出結(jié)果的要求都能及時(shí)得到滿足和實(shí)現(xiàn)。
4、SPOOL系統(tǒng)的組成和實(shí)現(xiàn):
井:為實(shí)現(xiàn)虛擬設(shè)備在磁盤(pán)上劃出的專用存儲(chǔ)空間,用于存放作業(yè)的初始信息和執(zhí)行結(jié)果。
SPOOL系統(tǒng)由三部分程序組成:
1、預(yù)輸入程序。通過(guò)該程序把作業(yè)流中每個(gè)作業(yè)的初始信息傳送到輸入井保存,以備作業(yè)執(zhí)行時(shí)使用。
2、井管理程序:根據(jù)作業(yè)的請(qǐng)求,保證作業(yè)正確及時(shí)地從“井”中讀取或?qū)懗鲂畔ⅰ?/p>
3、緩輸出程序。它負(fù)責(zé)查看“輸出井”中是否有待輸出的結(jié)果信息,若有則啟動(dòng)打印機(jī)把作業(yè)結(jié)果輸出。
4、spool系統(tǒng)可以縮短作業(yè)執(zhí)行時(shí)間的原因。
作業(yè)的執(zhí)行時(shí)間是指作業(yè)被裝入主存儲(chǔ)器到產(chǎn)生全部結(jié)果所需要的時(shí)間。在SP在SPOOL系統(tǒng)控制下,作業(yè)執(zhí)行時(shí)從磁盤(pán)上讀/寫(xiě)信息代替低速的輸入機(jī)和打印機(jī)的讀/寫(xiě)操作,信息傳送的速率顯然是快得多。因此作業(yè)的執(zhí)行時(shí)間就縮短了。
死鎖:(就是路口的塞車現(xiàn)象 )
若系統(tǒng)中存在一組進(jìn)程(兩個(gè)或多個(gè)進(jìn)程),它們中的每一個(gè)進(jìn)程都占用了某種資源而又都在等待其中另一個(gè)進(jìn)程所占用的資源,這種等待永遠(yuǎn)不能結(jié)束,則說(shuō)系統(tǒng)出現(xiàn)了“死鎖”。或說(shuō)這組進(jìn)程處于“死鎖”狀態(tài)。
一、死鎖的防止(簡(jiǎn)單應(yīng)用)
1、系統(tǒng)出現(xiàn)死鎖必然出現(xiàn)以下情況:
1)互斥使用資源
2)占有并等待資源
3)不可搶奪資源
4)循環(huán)等待資源
2、死鎖的防止策略:破壞產(chǎn)生死鎖的條件中的一個(gè)就可以了。
常用的方法有:靜態(tài)分配、按序分配、搶奪式分配3種。
二、死鎖的避免(簡(jiǎn)單應(yīng)用)
1、死鎖的避免是讓系統(tǒng)處于安全狀態(tài),來(lái)避免發(fā)生死鎖。
安全狀態(tài):如果操作系統(tǒng)能保證所有的進(jìn)程在有限的時(shí)間內(nèi)得到需要的全部資源,則稱系統(tǒng)處于“安全狀態(tài)”。
2、銀行算法是怎樣避免死鎖的:
計(jì)算機(jī)銀行家算法是通過(guò)動(dòng)態(tài)地檢測(cè)系統(tǒng)中資源分配情況和進(jìn)程對(duì)資源的需求情況,在保證到少有一個(gè)進(jìn)程能得到所需要的全部資源,從而能確保系統(tǒng)處于安全狀態(tài)進(jìn),才把資源分配給申請(qǐng)者,從而避免了進(jìn)程共享資源時(shí)系統(tǒng)發(fā)生死鎖。
采用銀行家算法時(shí)為進(jìn)程分配資源的方式:
1)對(duì)每一個(gè)首次申請(qǐng)資源的進(jìn)程都要測(cè)試該進(jìn)程對(duì)資源的最大的需求量。如果系統(tǒng)現(xiàn)存資源可以滿足他的最大需求量,就按當(dāng)前申請(qǐng)量為分配資源。 否則推遲分配。
2)進(jìn)程執(zhí)行中繼續(xù)申請(qǐng)資源時(shí),先測(cè)試該進(jìn)程已占用資源數(shù)和本次申請(qǐng)資源總數(shù)有沒(méi)有超過(guò)最大需求量。超過(guò)就不分配。
若沒(méi)有超過(guò),再測(cè)試系統(tǒng)現(xiàn)存資源是否滿足進(jìn)程尚需的最大資源量,滿足則按當(dāng)前申請(qǐng)量分配,否則也推遲分配。
總之,銀行家算法要保證分配資源時(shí)系統(tǒng)現(xiàn)存資源一定能滿足至少一個(gè)進(jìn)程所需的全部資源。
(銀行家算法在操作系統(tǒng)的實(shí)踐考試中可能會(huì)用到)
三、死鎖的檢測(cè)和解除(領(lǐng)會(huì))
死鎖的檢測(cè)
就是既不打預(yù)防針,也不去避免得病,而是經(jīng)常去體檢,如果發(fā)現(xiàn)有病了就治療。這是一種事后解決的辦法,也算是解決死鎖問(wèn)題的一條途徑。但這畢竟要付出較大代價(jià)。
重點(diǎn)是:分析與時(shí)間有關(guān)的錯(cuò)誤;用PV操作實(shí)現(xiàn)進(jìn)程的同步與互斥;用信箱實(shí)現(xiàn)進(jìn)程通信。
一、進(jìn)程的順序性與并發(fā)性(領(lǐng)會(huì))
1、進(jìn)程的順序性:任何進(jìn)程在順序的處理器上的執(zhí)行是嚴(yán)格按照順序進(jìn)行的,每次只能執(zhí)行一個(gè)操作。這就是進(jìn)程的順序性。
當(dāng)一個(gè)進(jìn)程獨(dú)占處理器順序執(zhí)行時(shí),具有兩個(gè)特性:一、封閉性 二、可再現(xiàn)性。封閉性是說(shuō)進(jìn)程的執(zhí)行結(jié)果只取決于進(jìn)程本身,不受外界影響??稍佻F(xiàn)性是說(shuō)當(dāng)進(jìn)程重復(fù)執(zhí)行時(shí),必定獲得相同的結(jié)果。
2、進(jìn)程的可同時(shí)執(zhí)行:指一個(gè)進(jìn)程沒(méi)有完,另一個(gè)就可以開(kāi)始。在時(shí)間上是可重疊的,我們把這個(gè)叫做進(jìn)程的可同時(shí)執(zhí)行。
3、進(jìn)程的并發(fā)性:系統(tǒng)中存在一組可同時(shí)執(zhí)行的進(jìn)程。并發(fā)進(jìn)程相互之間可能是無(wú)關(guān)的,也可能是交往的。
并發(fā)進(jìn)程的執(zhí)行速度取決于自身和進(jìn)程調(diào)度策略。二者缺一不可,執(zhí)行速度不能由自己決定。
4、與時(shí)間有關(guān)的錯(cuò)誤 :有交往的并發(fā)進(jìn)程交替使用共享資源時(shí)會(huì)出現(xiàn)錯(cuò)誤,錯(cuò)誤與時(shí)間有關(guān),稱為與時(shí)間有關(guān)的錯(cuò)誤。其錯(cuò)誤的根本原因是這些進(jìn)程交叉使用了共享變量。
二、相關(guān)臨界區(qū)
1、并發(fā)進(jìn)程中與共享變量有關(guān)的程序段稱為“臨界區(qū)”。并發(fā)進(jìn)程中涉及到相同變量的那些程序段是相關(guān)臨界區(qū)。
2、對(duì)相關(guān)臨界區(qū)的管理的基本要求。
對(duì)相關(guān)臨界區(qū)管理的基本原則是:如果有進(jìn)程在相關(guān)臨界區(qū)執(zhí)行,則不讓另一個(gè)進(jìn)程進(jìn)入相關(guān)的臨界區(qū)執(zhí)行。
五、進(jìn)程的同步(綜合應(yīng)用)
1、進(jìn)程同步的含義:進(jìn)程的同步是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個(gè)進(jìn)程的執(zhí)行依賴另一個(gè)進(jìn)程的消息,當(dāng)一個(gè)進(jìn)程沒(méi)有得到另一個(gè)進(jìn)程的消息時(shí)應(yīng)等待,直到消息到達(dá)才被喚醒。
“生產(chǎn)者”與“消費(fèi)者”是同步問(wèn)題的典型例子。
這里有兩個(gè)消息量:一是“緩沖器里有物品”,二是“可把物品存入緩沖器”,這兩個(gè)消息量對(duì)應(yīng)需要兩個(gè)信號(hào)量SPut和SGet.SP的初始值為1,如果初始時(shí)可用的緩沖器為n個(gè),則SP=n;SG的初始值為0。
生產(chǎn)者進(jìn)程調(diào)用P(SP)和V(SG),消費(fèi)者進(jìn)程調(diào)用P(SG)和V(SP),根據(jù)SG和SP的值來(lái)決定是否可以存或取物。
2、正確使用PV操作實(shí)現(xiàn)進(jìn)程同步。
(1)用一個(gè)信號(hào)量與一個(gè)消息聯(lián)系起來(lái),當(dāng)信號(hào)量的值為0時(shí)表示期望的消息尚未產(chǎn)生,當(dāng)信號(hào)量值為非0時(shí)表示期望的消息已經(jīng)存在。
(2)在用PV操作實(shí)現(xiàn)同步時(shí),一個(gè)信號(hào)量與一個(gè)消息量聯(lián)系在一起,當(dāng)有多個(gè)消息時(shí)必須定義多個(gè)信號(hào)量;測(cè)試不同的消息是否到達(dá)或發(fā)送不同消息時(shí),應(yīng)對(duì)不同的信號(hào)調(diào)用P操作或V操作。
(3)仔細(xì)領(lǐng)會(huì)教材中的例子,關(guān)于PV操作,在考試中出現(xiàn)的可能性極大,但是難度基本不超過(guò)教材上例題。見(jiàn)本欄的高手切磋。
3、使用PV操作實(shí)現(xiàn)進(jìn)程同步與互斥的混合問(wèn)題。
進(jìn)程的同步與進(jìn)程的互斥都涉及到并發(fā)進(jìn)程訪問(wèn)共享資源的問(wèn)題。可以看到進(jìn)程的互斥實(shí)際上是進(jìn)程同步的一種特殊情況。若干進(jìn)程互斥使用資源時(shí),一個(gè)等待使用資源的的進(jìn)程在得到占用資源的進(jìn)程發(fā)出“歸還資源”的消息(調(diào)用了V操作)后,它就可去使用資源。因此,互斥使用資源的進(jìn)程之間實(shí)際上也存在一個(gè)進(jìn)程依賴另一個(gè)進(jìn)程發(fā)出信息的制約關(guān)系。所以,也把進(jìn)程的互斥與進(jìn)程的同步稱為進(jìn)程的同步。