版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)原理(第2版)習(xí)題參考答案
習(xí)題1
1.計(jì)算機(jī)系統(tǒng)主要由哪些部分組成?
答:通常,一個完整的計(jì)算機(jī)系統(tǒng)是由硬件和軟件兩大部分組成的。
2.解釋以下術(shù)語:硬件、軟件、特權(quán)指令、核心態(tài)、用戶態(tài)、多道程序設(shè)計(jì)、操作系
統(tǒng)、分時(shí)、實(shí)時(shí)、并發(fā)、并行、吞吐量、系統(tǒng)調(diào)用、純碼
答:硬件一一是指計(jì)算機(jī)物理裝置本身,它是計(jì)算機(jī)軟件運(yùn)行的基礎(chǔ)。
軟件一一是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序、過程、規(guī)則以及相關(guān)的文檔資料的總
稱。
特權(quán)指令一一計(jì)算機(jī)的指令集中一類具有特殊權(quán)限的指令,只用于操作系統(tǒng)或其他系統(tǒng)
軟件,一般普通用戶不能直接使用。它主要用于系統(tǒng)資源的分配和管理。
核心態(tài)一一是處理機(jī)的一種運(yùn)行模式。當(dāng)執(zhí)行操作系統(tǒng)程序時(shí),處理機(jī)處于核心態(tài)。它
有較高的特權(quán),可以執(zhí)行所有的指令,包括一般用戶程序中不能使用的特權(quán)指令,從而能對
所有寄存器和內(nèi)存進(jìn)行訪問、啟動I/O操作等。
用戶態(tài)一一是處理機(jī)的一種運(yùn)行模式。用戶程序是在用戶態(tài)下執(zhí)行,它的權(quán)限較低,只
能執(zhí)行指令集中非特權(quán)指令。
多道程序設(shè)計(jì)一一內(nèi)存中同時(shí)存放多道程序,在管理程序的控制下交替地執(zhí)行。這些作
業(yè)共享CPU和系統(tǒng)中的其他資源。
操作系統(tǒng)一一是控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源、有效地組織多道程序運(yùn)
行的系統(tǒng)軟件(或程序集合),是用戶與計(jì)算機(jī)之間的接口。
分時(shí)——是對時(shí)間的共享。在分時(shí)系統(tǒng)中,分時(shí)主要是指若干并發(fā)程序?qū)PU時(shí)間的共享。
實(shí)時(shí)一表示"及時(shí)”或“即時(shí)”。
并發(fā)——是指兩個或多個活動在同一?給定的時(shí)間間隔中進(jìn)行。它是宏觀上的概念。
并行一一是指兩個或多個活動在同一時(shí)刻進(jìn)行。
吞吐量——在一段給定的時(shí)間內(nèi),計(jì)算機(jī)所能完成的總工作量。
系統(tǒng)調(diào)用一是用戶在程序中能以“函數(shù)調(diào)用”形式調(diào)用的、由操作系統(tǒng)提供的子功能
的集合。每一個子功能稱做一條系統(tǒng)調(diào)用命令。它是操作系統(tǒng)對外的接口,是用戶級程序取
得操作系統(tǒng)服務(wù)的唯一途徑。
純碼一一是指在執(zhí)行過程中,本身不作任何變化的代碼,通常是由指令和常數(shù)組成的。
3.什么是操作系統(tǒng)(OS)?它的主要功能是什么?
答:操作系統(tǒng)是控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源、有效地組織多道程序運(yùn)
行的系統(tǒng)軟件(或程序集合),是用戶與計(jì)算機(jī)之間的接口。
操作系統(tǒng)應(yīng)具備的五大基本功能,即存儲管理、進(jìn)程和處理機(jī)管理、文件管理、設(shè)備管
理、用戶接口。
4.操作系統(tǒng)主要有哪三種基本類型?各有什么特點(diǎn)?
答:傳統(tǒng)上說,最基本的類型有三種,即多道批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。
批處理系統(tǒng)有兩個特點(diǎn):一是“多道”,二是“成批”。
分時(shí)系統(tǒng)的特點(diǎn)是:同時(shí)性:若干用戶可同時(shí)上機(jī)使用計(jì)算機(jī)系統(tǒng);交互性:用戶能方
便地與系統(tǒng)進(jìn)行人一機(jī)對話;獨(dú)立性:系統(tǒng)中各用戶可以彼此獨(dú)立地操作,互不干擾或破壞;
及時(shí)性;用戶能在很短時(shí)間內(nèi)得到系統(tǒng)的響應(yīng).
實(shí)時(shí)系統(tǒng)的特點(diǎn)是:對時(shí)間的嚴(yán)格限制和對可靠性的嚴(yán)格要求。
5.操作系統(tǒng)的基本特征是什么?
答:操作系統(tǒng)的基本特征是:并發(fā)、共享、異步性和抽象性。
6.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?
答:脫機(jī)I/。是指輸入/輸出工作不受主機(jī)直接控制.而由衛(wèi)星機(jī)專門負(fù)責(zé)完成I/O,主
機(jī)專門完成快速計(jì)算任務(wù),從而二者可以并行操作。
聯(lián)機(jī)I/O是指作業(yè)的輸入、調(diào)入內(nèi)存及結(jié)果的輸出都在CPU直接控制下進(jìn)行。
7.操作系統(tǒng)一般為用戶提供了哪三種接口?各有什么特點(diǎn)?
答:現(xiàn)代操作系統(tǒng)通常向用戶提供如下三種類型的接口:程序接口=命令行接口和圖
形用戶接口。
程序接口的特點(diǎn):①它是程序一級的接口,也稱系統(tǒng)調(diào)用或者廣義指令,是操作系統(tǒng)內(nèi)
核與用戶程序、應(yīng)用程序之間的接II;②它位于操作系統(tǒng)內(nèi)核的最高層,并且只能在核心態(tài)
下執(zhí)行;③在UNIX/Linux系統(tǒng)中,系統(tǒng)調(diào)用以C函數(shù)的形式出現(xiàn)。
命令行接口的特點(diǎn):①它是操作系統(tǒng)與用戶的交互界面:②在提示符之后用戶從鍵盤上
輸入命令,命令解釋程序接收并解釋這些命令,然后把它們傳遞給操作系統(tǒng)內(nèi)部的程序,執(zhí)
行相應(yīng)的功能;③這些命令及其解釋程序都在用戶態(tài)下運(yùn)行,需要操作系統(tǒng)內(nèi)核提供服務(wù);
④在UNIX/Linux系統(tǒng)中,稱其為shell。
圖形用戶接口通常稱作圖形用戶界面(簡稱圖形界面)。其特點(diǎn)是:①它是用戶上機(jī)最宜
觀、方便的工具;②利用鼠標(biāo)、窗I」、菜單、圖標(biāo)等圖形界面工具,可以有效地使用系統(tǒng)服
務(wù)和各種應(yīng)用程序及實(shí)用工具;③它是核外的用戶接口程序,在用戶態(tài)下運(yùn)行。
8.操作系統(tǒng)主要有哪些類型的體系結(jié)構(gòu)?
答:一般說來,操作系統(tǒng)主要有以下體系結(jié)構(gòu),即:單體結(jié)構(gòu),一層次結(jié)構(gòu)虛擬機(jī)結(jié)
構(gòu)、微內(nèi)核結(jié)構(gòu)和客戶■服務(wù)器結(jié)構(gòu)。
9.多道程序設(shè)計(jì)的主要特點(diǎn)是什么?
答:多道程序設(shè)計(jì)的主要特點(diǎn)是:
①多道-內(nèi)存中同時(shí)存放兩道或兩道以上的程序,它們共享CPU和系統(tǒng)中的其他資源。
②宏觀上開行一在一個時(shí)間段內(nèi),多個作業(yè)都在同時(shí)運(yùn)行。
③微觀上串行一在某一個時(shí)刻,只有一道作業(yè)真正在CPU上運(yùn)行,即:各作業(yè)都在管
理程序的控制下在一臺計(jì)算機(jī)上交替地執(zhí)行。
10.系統(tǒng)初啟的一般過程是什么?
答:一般初啟過程分為硬件檢測、加載引導(dǎo)程序、列始化內(nèi)核和實(shí)現(xiàn)用戶登錄等階段。
11.在計(jì)算機(jī)系統(tǒng)中操作系統(tǒng)處于什么地位?
答:操作系統(tǒng)是裸機(jī)之上的第一層軟件,它只在核心態(tài)模式下運(yùn)行,受硬件保護(hù),與硬
件關(guān)系尤為密切。操作系統(tǒng)是整個計(jì)算機(jī)系統(tǒng)的控制管理中心,其他所有軟件都建立在操作
系統(tǒng)之上。操作系統(tǒng)對它們既具有支配權(quán)力,又為其運(yùn)行建造必備環(huán)境。
12.什么是處理機(jī)的核心態(tài)和用戶態(tài)?為什么要設(shè)置這兩種不同的狀態(tài)?
答:當(dāng)執(zhí)行操作系統(tǒng)程序時(shí),處理機(jī)處于核心態(tài)。它有較高的特權(quán),可以執(zhí)行所有的指
令,包括一般用戶程序中不能使用的特權(quán)指令,從而能對所有寄存器和內(nèi)存進(jìn)行訪問、啟動
I/O操作等。
用戶程序是在用戶態(tài)下執(zhí)行,它的權(quán)限較低,只能執(zhí)行指令集中非特權(quán)指令。
設(shè)置這兩種不同狀態(tài)的目的是為了保護(hù)操作系統(tǒng)程序(特別是其內(nèi)核部分),防止受到
用戶程序的損害。
13.下列哪些指令應(yīng)該只在核心態(tài)下執(zhí)行?
①屏蔽所有中斷
②讀時(shí)鐘日期
③設(shè)置時(shí)鐘日期
@改變指令地址寄存器的內(nèi)容
⑤啟動打印
⑥清內(nèi)存
答:只在核心態(tài)下執(zhí)行的指令有:①屏蔽所有中斷。③設(shè)置時(shí)鐘日期。⑤啟動打印機(jī)。
⑥清內(nèi)存。
14.設(shè)計(jì)實(shí)時(shí)操作系統(tǒng)必須首先考慮的因素是什么?
答:實(shí)時(shí)系統(tǒng)的一個重要特征就是對時(shí)間的嚴(yán)格限制和要求。實(shí)時(shí)系統(tǒng)的首要任務(wù)是調(diào)
度一切可利用的資源完成實(shí)時(shí)控制任務(wù),其次才著眼F提高計(jì)算機(jī)系統(tǒng)的使用效率。所以,
設(shè)計(jì)實(shí)時(shí)操作系統(tǒng)必須首先考慮處理各種事件的時(shí)間限制。
15.你熟悉哪些操作系統(tǒng)?想一想你在使用計(jì)算機(jī)過程中,操作系統(tǒng)如何提供服務(wù)?
答:(個人發(fā)揮)通常,大家會熟悉以下操作系統(tǒng):Windows,UNIX或Linux
使用計(jì)算機(jī)過程中,操作系統(tǒng)為用戶提供的服務(wù)包括:命令和數(shù)據(jù)輸入/輸出的管理,
內(nèi)存的分配,用戶文件的管理,CPU的分配,設(shè)備管理等。
16.設(shè)計(jì)操作系統(tǒng)時(shí)采用層次結(jié)構(gòu)有什么好處?
答:①結(jié)構(gòu)關(guān)系清晰,提高系統(tǒng)的可靠性和安全性。②各層模塊的功能明確,提高系統(tǒng)
的可擴(kuò)充性和可移植性。③各層間具有單向依賴性,增強(qiáng)系統(tǒng)的可維爐性。④符合軟件工程
的思想,便于實(shí)施研制開發(fā)。
17.一個分層結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)由裸機(jī),用戶,CPU調(diào)度和P、V操作,文件系統(tǒng),作業(yè)
管理,內(nèi)存管理,設(shè)備管理,命令管理等部分組成。試按層次結(jié)構(gòu)的原則從外至內(nèi)將它們重
新排列。
答:按層次結(jié)構(gòu)的原則從外至內(nèi)重新排列的順序應(yīng)是:用戶,命令管理,作業(yè)管理,文
件系統(tǒng),內(nèi)存管理,設(shè)備管理,CPU調(diào)度和P、V操作,裸機(jī)。
18.UNIX系統(tǒng)屬于哪和類型的操作系統(tǒng)?其核心結(jié)構(gòu)是怎樣的?
答:UNIX是當(dāng)代最著名的多用戶、多進(jìn)程、多任務(wù)分時(shí)操作系統(tǒng)。
UNIX系統(tǒng)可分為三層:靠近硬件的底層是內(nèi)核,即UNIX操作系統(tǒng)常駐內(nèi)存部分;核
心外的中間層是shell層;最高層是應(yīng)用層。
UNIXS_5(BPsystemV)的核心結(jié)構(gòu)如本書圖1-14所示(略)。
19.采用虛擬機(jī)結(jié)構(gòu)的操作系統(tǒng)其主要優(yōu)點(diǎn)和缺點(diǎn)是什么?
答:虛擬機(jī)結(jié)構(gòu)的操作系統(tǒng)其主要優(yōu)點(diǎn)是:①實(shí)現(xiàn)對裸機(jī)的更用,可以有多個不同的操
作系統(tǒng)運(yùn)行在同一物理硬件機(jī)器之上;②提供一個比裸機(jī)有更方便擴(kuò)展界面的計(jì)算機(jī);③支
持多道程序處理能力。④多個不同操作系統(tǒng)的應(yīng)用程序可以同時(shí)運(yùn)行在同?裸機(jī)之上,是研
究操作系統(tǒng)技術(shù)的理想平臺。
其主要缺點(diǎn)是:①實(shí)現(xiàn)比較困難。要實(shí)現(xiàn)對底層硬件所有特性的完全模擬是相當(dāng)困難的。
②由于應(yīng)用程序運(yùn)行在各自的操作系統(tǒng)之上,因此,系統(tǒng)運(yùn)行性能受到影響。
20.采用微內(nèi)核模式設(shè)計(jì)系統(tǒng)的主要優(yōu)點(diǎn)是什么?
答:①精減核心的功能,提供了一種簡單的高度模塊化的體系結(jié)構(gòu),提高了系統(tǒng)設(shè)計(jì)及
使用的靈活性。②可移植性好。所有與具體機(jī)器特征相關(guān)的代碼,全部隔離在微內(nèi)核中。③
可伸縮性好。操作系統(tǒng)能方便地進(jìn)行定制、獷充或縮減,以適應(yīng)硬件的快速更新和應(yīng)用需求
的不斷變化。④實(shí)時(shí)性好。微內(nèi)核可以方便地支持實(shí)時(shí)處理。⑤提供多線程機(jī)制,支持多處
理器的體系結(jié)構(gòu)和分布式系統(tǒng)及計(jì)算機(jī)網(wǎng)絡(luò)。⑥系統(tǒng)安全性好。傳統(tǒng)的操作系統(tǒng)將安全性功
能建立在內(nèi)核之外,因而它并不是很安全的。而微內(nèi)核則將安全性作為系統(tǒng)內(nèi)特性來進(jìn)行設(shè)
計(jì)。
進(jìn)程程序
進(jìn)程是動態(tài)概念程序是爵態(tài)概念
進(jìn)程具仃并發(fā)性.宏觀上同時(shí)運(yùn)行程序本身具有順序性,程序的并發(fā)執(zhí)行是通過進(jìn)程實(shí)現(xiàn)的
進(jìn)程具有獨(dú)立性,是一個能獨(dú)立運(yùn)行的單位,是系統(tǒng)資源分
程序本身沒有此特性
配的基本單位,是運(yùn)行調(diào)度的基本單位
程序和進(jìn)程無一一對應(yīng)關(guān)系,一個進(jìn)程可順序執(zhí)行多個程序一個程序可由多個進(jìn)程共用
進(jìn)程異步前進(jìn),公相互制約程序不具備此特性
然而,進(jìn)程與程序之間存在密切關(guān)系,進(jìn)程的功能是通過程序的運(yùn)行得以實(shí)現(xiàn)的,進(jìn)程
活動的主體是程序。進(jìn)程不能脫離開具體程序而獨(dú)自存在。
進(jìn)程的基本特征是:①動態(tài)性②并發(fā)性③調(diào)度性④異步性⑤結(jié)構(gòu)性。
3.PCB的作用是什么?它是怎樣描述進(jìn)程的動態(tài)性質(zhì)的?
答:PCB是進(jìn)程組成中最關(guān)鍵的部分。每個進(jìn)程有唯一的進(jìn)程控制塊;操作系統(tǒng)根據(jù)PCB
對進(jìn)程實(shí)施控制和管理,進(jìn)程的動態(tài)、并發(fā)等特征是利用PCB表現(xiàn)出來的;PCB是進(jìn)程存在
的唯一標(biāo)志。
PCB中有表明進(jìn)程狀態(tài)的信息,該進(jìn)程的狀態(tài)包括運(yùn)行態(tài)、就緒態(tài)和阻塞態(tài),它利用狀
態(tài)信息來描述進(jìn)程的動態(tài)性質(zhì)。
4.進(jìn)程的基本狀態(tài)有哪幾種?試描繪進(jìn)程狀態(tài)轉(zhuǎn)換圖。
答:(見本書P39)
5.進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則是什么?
答:(見本書P65-66)
6.用如圖2-38所示的進(jìn)程狀態(tài)轉(zhuǎn)換圖能夠說明
有關(guān)處理機(jī)管理的大量內(nèi)容。試回答:
①什么事件引起每次顯著的狀態(tài)變遷?
②下述狀態(tài)變迂因果關(guān)系能否發(fā)生?為什
么?
(A)2一1(B)3.2(C)4Tl
答:①就緒一運(yùn)行:CPU空閑,就緒態(tài)進(jìn)程被
調(diào)度程序選中。
運(yùn)行一阻塞運(yùn)行態(tài)進(jìn)程因某種條件未滿足而放棄對CPU的占用,如等待讀文件。
阻塞一就緒阻塞態(tài)進(jìn)程所等待的事件發(fā)生了,例如讀數(shù)據(jù)的操作完成。
運(yùn)行f就緒正在運(yùn)行的進(jìn)程用完了本次分配給它的CPU時(shí)間片。
②下述狀態(tài)變遷:
(A)2-1,可以。運(yùn)行進(jìn)程用完了本次分配給它的時(shí)間片,讓出CPU,從就緒隊(duì)列中
選一個進(jìn)程投入運(yùn)行。
(B)3~2,不行。任何時(shí)候一個進(jìn)程只能處于一種狀態(tài),它既然由運(yùn)行態(tài)變?yōu)樽瓒☉B(tài),
就不能再變?yōu)榫途w態(tài)。
(C)4-l,可以。某一阻塞態(tài)進(jìn)程等待的事件出現(xiàn)了,而且此時(shí)就緒隊(duì)列為空,該進(jìn)
程進(jìn)入就緒隊(duì)列后馬上又被調(diào)度運(yùn)行。
7.PCB表的組織方式主要有哪幾種?分別簡要說明。
答:(見本書P43-44)
8.簡述信號量的定義和作用。P、V操作原語是如何定義的?
答:信號量是協(xié)調(diào)相關(guān)進(jìn)程活動的一種設(shè)施。一般信號量是由兩個成員組成的數(shù)據(jù)結(jié)構(gòu):
一個成員是整型變量,表示該信號量的值;另一個是指向PCB的指針。當(dāng)多個進(jìn)程都等待
同一信號量時(shí),它們就排成一個隊(duì)列,山信號量的指針項(xiàng)指出該隊(duì)列的頭。
利用信號量和相應(yīng)操作可以解決多個進(jìn)程的互斥和同步問題。
(有關(guān)P、v操作原語的定義,參見本書P69-70。)
9.N個進(jìn)程共享某一臨界資源,則互斥信號量的取值范圍為o
a.0~1b.-l-0c.1--(N-I)d.0--(N-l)
答:co由于互斥信號量的初值是1,而另一極端情況是某一個進(jìn)程在訪問臨界資源,
其余NT個進(jìn)程處于阻塞狀態(tài),此時(shí)信號量的值為-(NT)。
10.簡述線程與進(jìn)程的關(guān)系。
答:(參見本書P61;
11.實(shí)現(xiàn)線程主要由哪兩種方式?各有何優(yōu)缺點(diǎn)?
答:(參見本書P61-62)
12.管程由哪些部分組成?有什么基本特性?
答:(參見本書P86)
13.計(jì)算機(jī)系統(tǒng)中產(chǎn)生死鎖的根本原因是什么?
答:產(chǎn)生死鎖的根本原因是資源有限且操作不當(dāng)。
14.產(chǎn)生死鎖的四個必要條件是什么?一般對待死鉞的方法有哪三種?
答:發(fā)生死鎖的四個必要條件是:互斥條件、不可搶占條件、占有且申請條件和環(huán)路等
待條件。
解決死鎖的一般方法有:死鎖的預(yù)防、死鎖的避免、死鎖的檢測與恢復(fù)等二種。
15.死鎖預(yù)防的基本思想是什么?
答:死鎖預(yù)防的基本思想是:要求進(jìn)程申請資源時(shí)遵循某種協(xié)議,從而打破產(chǎn)生死鎖的
4個必要條件中的一個或幾個(互斥條件不能被破壞),保證系統(tǒng)不會進(jìn)入死鎖狀態(tài)。
16.死鎖避免的基本思想是什么?
答:死鎖避免的基本思想是:對進(jìn)程所發(fā)出的每一個申請資源命令加以動態(tài)地檢查,并
根據(jù)檢查結(jié)果決定是否進(jìn)行資源分配。就是說,在資源分配過程中若預(yù)測有發(fā)生死鎖的可能
性,則加以避免。這種方法的關(guān)鍵是確定資源分配的安全性。
17.什么是進(jìn)程的安全序列?何謂系統(tǒng)是安全的?
答:(參見本書P93)
18.死鎖預(yù)防的有效方法是什么?死鎖避免的著名算法是什么?
答:死鎖預(yù)防的有效方法是:資源有序分配策略一分類編號,按序分配。
死鎖避免的著名算法是銀行家算法。
19.死鎖、"饑餓’’和活鎖之間的主要差別是什么?
答:①死鎖是一種僵局,在無外力干預(yù)下,處于死鎖狀態(tài)的全部進(jìn)程都不能前進(jìn),即它
們都處于阻塞態(tài),可能造成整個系統(tǒng)癱瘓;而現(xiàn)饑餓時(shí)系統(tǒng)照常運(yùn)行,只是某個或某幾個
進(jìn)程永遠(yuǎn)也不能得到所需的全部服務(wù);處于活鎖的進(jìn)程是在不斷的改變狀態(tài),并未被封鎖,
是可以“活動”的,活鎖有可能自行解開,死鎖則不能。
②造成死鎖的根本原因是資源有限且使用不當(dāng);造成饑餓的原因是資源分配策略或調(diào)度
策略不合適,如果采用先來先服務(wù)的資源分配策略就可以避免饑餓;造成活鎖的原因是進(jìn)程
在輪詢地等待某個不可能為真的條件為真。
③發(fā)生死鎖時(shí),一定至少有一個資源被無限期地占用而得不到釋放;而饑餓出現(xiàn)時(shí),系
統(tǒng)中的每個資源占有者都在有限的時(shí)間內(nèi)釋放它所占用的資源。活鎖是忙式等待,占用CPU
且不會主動讓出CPU。
20.在生產(chǎn)者-消費(fèi)者問題中,如果對調(diào)生產(chǎn)者(或消費(fèi)者)進(jìn)程中的兩個P操作和兩
個V操作的次序,會發(fā)生什么情況?試說明之。
答:在生產(chǎn)者-消費(fèi)者問題中,如果對調(diào)生產(chǎn)者進(jìn)程中的兩個P操作,形如:
生產(chǎn)者進(jìn)程Producer:
while(TRUE){
P(mutcx);
P(empty);
V(mutex);
V(full);
)
當(dāng)緩沖區(qū)全滿時(shí),只要有一個生產(chǎn)者進(jìn)程試圖進(jìn)入臨界區(qū),并在empty信號量上阻塞,
所有消費(fèi)者進(jìn)程都無法進(jìn)入自己的臨界區(qū)(在信號量mutex上阻塞),從而無法使該生產(chǎn)者
進(jìn)程醒來。于是,所有生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程都無限期地處于阻塞狀態(tài),從而出現(xiàn)死鎖。
然而,如果對調(diào)生產(chǎn)者進(jìn)程中的兩個V操作,并不出現(xiàn)任何故障,只是從進(jìn)程退出臨
界區(qū)的角度考慮,應(yīng)越快越好。
如果對調(diào)消費(fèi)者進(jìn)程中的兩個P操作,也會產(chǎn)生同群的死鎖問題。
21.高級進(jìn)程通信有哪幾類?各自如何實(shí)現(xiàn)進(jìn)程間通信?
答:(參見本書P78-79)
22.是否所有的共享資源都是臨界資源?為什么?
答:不足所有的共享資源都是臨界資源。因?yàn)榕R界資源是一次僅允許一個進(jìn)程使用的資
源,而系統(tǒng)中有很多資源可以讓多個進(jìn)程同時(shí)使用,例如硬盤、正文段等。
23.系統(tǒng)中只有一臺打印機(jī),有三個用戶的程序在執(zhí)行過程中都要使用打印機(jī)輸出計(jì)算
結(jié)果。設(shè)每個用戶程序?qū)?yīng)一個進(jìn)程。問:這三個進(jìn)程間有什么樣的制約關(guān)系?試用P、V
操作寫出這些進(jìn)程使用打印機(jī)的算法。
答:因?yàn)榇蛴C(jī)是一種臨界資源,所以這三個進(jìn)程只能互斥使用這臺打印機(jī),即一個川
戶的計(jì)算結(jié)果打印完之后,另一個用戶再打印。
設(shè)三個進(jìn)程分別為A,B和C,如圖1所示。設(shè)一個互斥信號量為mutex,其初值為1。
A進(jìn)程B進(jìn)程C進(jìn)程
P(mutex)P(mutex)P(mutex)
使用打印機(jī)使用打印機(jī)使用打印機(jī)
V(mutex)V(mutcx)V(mutcx)
圖I
24.判斷下列同步問勉的算法是否正確?若有錯,請指出錯誤原因并予以改正。
①設(shè)A,B兩個進(jìn)程共用一個緩沖區(qū)Q,A向Q寫入信息,B從Q讀出信息,算法框
圖如圖2-39所示。
②設(shè)A,B為兩個并發(fā)進(jìn)程,它們共享一個臨界資源。其運(yùn)行臨界區(qū)的算法框圖如圖
2-40所示。
進(jìn)程A進(jìn)程B進(jìn)程A進(jìn)程B
信號費(fèi)SLS2的初值均為0
信號量$的初值為0
圖2-39進(jìn)程A,B的算法框圖圖2-40兩個并發(fā)進(jìn)程臨界區(qū)的算法框圖
答:①這個算法不對,因?yàn)锳,B兩進(jìn)程共用一個緩沖區(qū)Q,如果A先運(yùn)行,且信息數(shù)
量足夠多,那么緩沖區(qū)Q中的信息就會發(fā)生后面的沖掉前面的,造成信息丟失,B就不能
從Q中讀出完整的信息。
改正:A,B兩進(jìn)程要同步使用緩沖區(qū)Q。為此,設(shè)立兩個信號量。empty—緩沖區(qū)Q
為空,初值為1。full——緩沖區(qū)Q為滿,初值為0。
算法框圖如圖2所示。
②這個算法不對。因?yàn)锳,B兩個進(jìn)程是并發(fā)的,它們共享一個臨界資源,所以二者應(yīng)
互斥地使用該臨界資源,在進(jìn)入臨界區(qū)時(shí)不存在A先B后的時(shí)序關(guān)系,而是哪個進(jìn)程先到
?步就先進(jìn)入自口的臨界區(qū)。
改正:A,B兩個進(jìn)程應(yīng)互斥地進(jìn)入臨界區(qū)。為此,設(shè)立一個信號量:互斥信號量為mutex,
其初值為算法框圖如圖3所示。
A進(jìn)程B進(jìn)程A進(jìn)程B進(jìn)程
P(empty)P(full)P(mutex)P(mutex)
向Q寫入植息
從Q中讀出信息臨界區(qū)代碼CSa臨界區(qū)代碼CSb
V(fiill)V;empty)V(mutex)V(mutex)
圖2圖3
25.設(shè)有一臺計(jì)算機(jī),有兩條I/O通道,分別接一臺卡片輸入機(jī)和一臺打印機(jī)。卡片機(jī)
把一疊卡片逐一揄入到緩沖區(qū)B1中,加工處理后再搬到緩沖區(qū)B2中,并在打印機(jī)上打印
結(jié)果。問:
①系統(tǒng)要設(shè)幾個進(jìn)程來完成這個任務(wù)?各自的工作是什么?
②這些進(jìn)程間有什么樣的相互制約關(guān)系?
③用P、V操作寫出這些進(jìn)程的同步算法。
答:①如圖4所示,系統(tǒng)可設(shè)三個進(jìn)程來完成這個任務(wù):R進(jìn)程負(fù)責(zé)從卡片輸入機(jī)上讀
入卡片信息,輸入到緩沖區(qū)B1中;C進(jìn)程負(fù)責(zé)從緩沖區(qū)B1中取出信息,進(jìn)行加工處理,
之后將結(jié)果送到緩沖區(qū)B2中;P進(jìn)程負(fù)責(zé)從緩沖區(qū)B2中取出信息,并在打印機(jī)上印出。
R進(jìn)程C進(jìn)程P進(jìn)程
P(Blempty)P(Blfull)P(B2full)
輸入信息寫入緩沖區(qū)Bl從Bl中取出信息從B2中取出信息進(jìn)行打印
V(Blfull)V(Blempty)V(B2cmpty)
P(B2empty)
加工信息
結(jié)果送入B2
V(B2ftill)
圖4
②R進(jìn)程受C進(jìn)程影響,B1放滿信息后R進(jìn)程要等待,等到C進(jìn)程將其中信息全部取
走,才能繼續(xù)讀入信息;C進(jìn)程受R進(jìn)程和P進(jìn)程的約束,BI中信息放滿后C進(jìn)程才可從
中取出它們,且B2被取空后C進(jìn)程才可將加工結(jié)果送入其中:P進(jìn)程受C進(jìn)程的約束,B2
中信息放滿后P進(jìn)程才可從中取出它們,進(jìn)行打印。
③信號量含義及初值:Blfull——緩沖區(qū)BI滿,初值為0。Blempty——緩沖區(qū)B1空,
初值為1。B2full——線沖區(qū)B2滿,初值為0。B2empty——緩沖區(qū)B2空,初值為1。
同步算法如圖4所示。
26.設(shè)有無窮多個信息,輸入進(jìn)程把信息逐個寫入緩沖區(qū),輸出進(jìn)程逐個從緩沖區(qū)中取
出信息。針對下述兩種情況:
①緩沖區(qū)是環(huán)形的,最多可容納〃個信息;
②緩沖區(qū)是無窮大的。
試分別回答下列問題:
①輸入、輸出兩組進(jìn)程讀/寫緩沖區(qū)需要什么條件?
②用P、V操作寫出榆入、輸出兩組進(jìn)程的同步算去,并給出信號量含義及初值。
答;(1)①輸入、輸出兩組進(jìn)程讀/寫緩沖區(qū)需要的條件是;
-所有進(jìn)程都要互斥使用緩沖區(qū)。
?所有輸入進(jìn)程連續(xù)寫入緩沖區(qū)的個數(shù)不能超過緩沖區(qū)的總?cè)萘?n)o
?輸出進(jìn)程不能超前輸入進(jìn)程。
②設(shè)置三個信號量:
full—放有信息的緩沖區(qū)數(shù),其初值為0。
empty——可供使用的緩沖區(qū)數(shù),其初值為n。
mutex—互斥信號量,初值為1,表示各進(jìn)程互斥進(jìn)入臨界區(qū),即保證任何時(shí)候只有一
個進(jìn)程使用緩沖區(qū)。
兩個計(jì)數(shù)變量:in和。ut分別是輸入進(jìn)程和輸出進(jìn)程使用的計(jì)數(shù)量,衣示下面使用的緩
沖區(qū)編號,初值都是0。
輸入進(jìn)程:輸出進(jìn)程:
while(TRUE)(while(TRLE)(
P(empty);P(full);
P(mutex);P(mutex);
信息送往buffer(in):從bufiier(out)中取出信息
in=(in+1)modn;/*以n為模*/out=(out+1)?nodn;/*以n為模*/
V(mutex);V(mu.ex);
V(full);V(cmpty);
)
(2)①輸入、輸出兩組進(jìn)程讀/寫緩沖區(qū)需要的條件是所有進(jìn)程都要互斥使用緩沖區(qū);
輸出進(jìn)程不能超前輸入進(jìn)程。
②信號量:full——緩沖區(qū)滿的情況,初值為0。mutex-----互斥信號量,初值為1。
計(jì)數(shù)器:i=0,j=0(i,j分別為輸入進(jìn)程和輸出進(jìn)程使用的緩沖區(qū)號碼)。
輸入進(jìn)程:輸出進(jìn)程:
while(TRUE){while(TRUE){
P(mutex);P(full);
信息送往buffer(i);P(mutex);
i=i+l;從hif¥er(j)中取出信息;
V(mutex);j=j+l;
V(full);V(mutex);
})
27.假定一個閱覽室最多可容納100人,讀者進(jìn)入和離開閱覽室時(shí)都必須在閱覽室門口
的一張登記表上做標(biāo)識(進(jìn)入時(shí)登記,離開時(shí)去掉登記項(xiàng)),而且每次只允許一人登記或去
掉登記。問:
①應(yīng)編寫幾個程序完成此項(xiàng)工作?程序的主要動作是什么?應(yīng)設(shè)置幾個進(jìn)程?進(jìn)程與
程序間的對應(yīng)關(guān)系如何?
②用P、V操作寫出這些進(jìn)程的同步通信關(guān)系。
答:①完成此項(xiàng)工作可編寫一個或兩個程序(函數(shù)),要求:
每個讀者對應(yīng)一個進(jìn)程。
每個讀省的動作包括:
,入室前查表、登記---register()o
-進(jìn)入室內(nèi),閱讀書籍。
,出室時(shí)刪除登記項(xiàng)----delete()。
進(jìn)程是程序的一次執(zhí)行過程,程序和進(jìn)程無一一對應(yīng)關(guān)系。
②信號量:
S——座位情況,初值為100o
mutex----互斥使用登記表,初值為1。
下面給出兩種解決方案:
第一種方案(僅一個程序)第二種方案(3個困數(shù))
每位讀者進(jìn)程typedefintsemaphore;
Isemaphores=IOO:
P(S)semaphoremutex=I;
P(mutex)voidmain()
查表,登記
V(mutex)regisler():
入室,閱讀rcading();
P(mutcx)dclete();
出室查表,刪除登記項(xiàng)
V(mutex)voidregister)
V(S)(
P(S);
P(mutex);
Check_regisier();
V(mutex);
}
voiddelctc()
{
P(mutcx);
Check_delete();
V(mutex);
V(S);
)
28.在一個飛機(jī)訂票系統(tǒng)中,多個用戶共享一個數(shù)據(jù)庫。各用戶可以同時(shí)查詢信息,若
有一個用戶要訂票,需更新數(shù)據(jù)庫時(shí),其余所有用戶都不可以訪問數(shù)據(jù)庫。請用P、V操作
設(shè)計(jì)一個同步算法,實(shí)現(xiàn)用戶查詢與訂票功能。要求:當(dāng)一個用戶訂票而需要更新數(shù)據(jù)庫時(shí),
不能因不斷有查詢者到來而使其長時(shí)間等待。利用信號量機(jī)制保證其正常執(zhí)行。
答:本題是典型的讀者-寫者問題。查詢信息的用戶是讀者,訂票用戶是寫者,并且要
求寫者優(yōu)先。
【解法1】讀者-寫者按先后順序交叉訪問數(shù)據(jù)庫,如圖5所示。
讀者進(jìn)程寫者進(jìn)程
P⑸P(S)
P(Src)P(Sw)
rc=rc+1更新數(shù)據(jù)庫內(nèi)容
iRrc==l)P(Sw)V(Sw)
V(Src)V(S)
V(S)
查詢庫中信息
P(Src)
iv-ic-l
if(rc==O)V(Sw)
V(Src)
圖5
計(jì)數(shù)變量:rc——正在運(yùn)行的查詢者進(jìn)程數(shù)目,初值為0。
信號量:Sw——控制訂票者進(jìn)程的活動,初值為1。
Src—互斥使用rc變量,初值為L
S——當(dāng)訂票者到達(dá)時(shí)封鎖后續(xù)的讀進(jìn)程,初值為1。
【解法2】保證寫者優(yōu)先于讀者,即一旦有寫者到達(dá)時(shí),則新讀者要等待。
信號量:
rmutex一一當(dāng)至少有一個寫者到達(dá)時(shí),阻止所有讀者訪問的互斥操作信號量,初值為1。
wmutex——寫者間以及讀者與寫者間互斥操作信號量,初值為1。
x------控制rcadcount變量修改的互斥信號量,初值為1。
y------控制writecount變量修改的互斥信號量,初值為1。
z——有寫者時(shí),只允許一個讀者在rmutex上排隊(duì),其他讀者在信號量z上排隊(duì),初值
為1。
計(jì)數(shù)變量:
readcount-----讀者計(jì)數(shù)器,初值為0。它控制對wmutex的設(shè)置。
writecount------寫者數(shù)目,初值為0。它控制對rmutex的設(shè)置。
讀者進(jìn)程寫者進(jìn)程
while(TRUE){while(TRUE){
P(z);P(y);
P(rmutex);writecount++;
P(x);if(writecount==1)
iciukuun.++,P(llllUlVA),
if(readcount==1)V(y);
P(wmulex);P(wmulcx);
V(x);執(zhí)行寫操作
V(nnutex);V(wmutex);
Mz);p(y);
執(zhí)行讀操作wntccount
P(x):if(writecount==0)
readcoun:—;V(rmutex);
if(readcount==0)V(y);
V(umutex);)
V(x);
)
29.某高校計(jì)算機(jī)系開設(shè)網(wǎng)絡(luò)課,安排了上機(jī)實(shí)習(xí)。假設(shè)機(jī)房共有2m臺機(jī)器,有2n
名學(xué)生選該課,規(guī)定:
①每兩個學(xué)生為一組,各占一臺機(jī)器,協(xié)同完成上機(jī)實(shí)習(xí)。
②只有一組兩個學(xué)生都到齊,并且此時(shí)機(jī)房有空用機(jī)器時(shí),該組學(xué)生才能進(jìn)入機(jī)房。
③上機(jī)實(shí)習(xí)由一名教師檢查,檢查完畢,一組學(xué)生同時(shí)離開機(jī)房。試用P、V操作模擬
上機(jī)實(shí)習(xí)過程。
答:除學(xué)生進(jìn)程、教師進(jìn)程外,為保證系統(tǒng)控制流程,需另設(shè)一個監(jiān)控進(jìn)程,用于控制
學(xué)生的進(jìn)入和計(jì)算機(jī)的分配,如圖6所示。
信號量:
student------學(xué)生到達(dá)情況,初值為0。
computer-----計(jì)算機(jī)分配情況,初值為2m。
entei-能否進(jìn)入機(jī)房情況,初值為0。
finish—學(xué)生完成情況,初值為0。
check——檢查工作完成情況,初值為0。
學(xué)生進(jìn)程教師進(jìn)程監(jiān)控進(jìn)程
V(student)
P(compnter)P(finish)P(student)
P(enter)P(finish)P(student)
與伙伴一起實(shí)習(xí)檢查學(xué)生實(shí)習(xí)筲況V(entcr)
V(flnish)V(check)V(cntcr)
P(chcck)V(check)
V(computcr)
圖6
30.用P、V操作實(shí)現(xiàn)本書2.6節(jié)介紹的哲學(xué)家進(jìn)卷問題的第2種解法,即:僅當(dāng)某哲
學(xué)家面前的左、右兩支筷子均可用時(shí),才允許他拿起筷子。
答:用P、V操作實(shí)現(xiàn)本書2.6節(jié)介紹的哲學(xué)家進(jìn)餐問題的第2種解法,即:僅當(dāng)某哲
學(xué)家面前的左、右兩支筷子均可用時(shí),才允許他拿起筷子。
設(shè)立一個整型數(shù)組state,用來保存各位哲學(xué)家的狀況:進(jìn)餐(EATING)、思考
(THINKING)或者饑餓(HUNGRY,想拿筷子)。一位哲學(xué)家僅當(dāng)其左右鄰座都不進(jìn)餐
時(shí),他才能進(jìn)餐。第i位哲學(xué)家的兩位鄰座由宏LEFT和RIGHT定義:如果i是2,則LEFT
是1,RIGHT是3。
程序中使用一個信號量數(shù)組S,每位哲學(xué)家對應(yīng)其口一個元素(初值為0)。如果感到
饑餓的哲學(xué)家所用的筷子正被別人占用著,他就等待(阻塞)。注意,每個進(jìn)程都從主代碼
philosopher開始執(zhí)行。
#defineN5
#defineLEFT(i+N-l)%N
#defineRIGHT(i+l)%N
#dcfincTHINKING0
#defineHUNGRYI
#defineEATING2
typedefstruct{/*定義結(jié)構(gòu)型信號量*/
intvalue;
structPCB*list;
}semaphore;
intstate[N];
semaphoremu(ex=I;/*互斥進(jìn)入臨界區(qū)*/
semaphores[N];/*每位哲學(xué)家一個信號量*/
voidphilosopher(inti)
while(TRl'E){
think();/*哲學(xué)家在思考問題*/
take_chopstick(i);/*拿到兩根筷子或者等待*/
eat();/*進(jìn)餐*/
put_chcpstick(i);/*把筷子放回原處*/
}
}
voidlake_chopsuck(inti)
[
P(mutex);
state[i]=HLNGRY;
test(i);/*試圖拿兩根筷子*/
V(mutex);
P(s[iJ);
voidput_chopstick(inti)
{
P(mutex);
state[i]=THINKING;
tcsKLEFT):/*查看左鄰,現(xiàn)在能否進(jìn)餐*/
tcst(RIGHT);/*查看右鄰,現(xiàn)在能否進(jìn)餐*/
V(mu(ex);
I
voidtest(inti)
{
if(state[i]==HUNGRY&&state[LEFT]!=EATING&&sta(e[RIGHT]!=EATING){
state(il=EATING;
V(s[i]):
)
31.某個計(jì)算機(jī)系統(tǒng)有10臺可用磁帶機(jī)。在這個系統(tǒng)上運(yùn)行的所有作業(yè)最多要求4臺
磁帶機(jī)。此外,這些作業(yè)在開始運(yùn)行的很長一段時(shí)間內(nèi)只要求3臺磁帶機(jī);它們只在自己工
作接近結(jié)束時(shí)才短時(shí)間地要求另一臺磁帶機(jī)。這些作業(yè)是連續(xù)不斷地到來的。
①若作業(yè)調(diào)度策略是靜態(tài)分配資源,滿足后方可運(yùn)行。那么,能同時(shí)運(yùn)行的最大作業(yè)
數(shù)是多少?作為這種策略的后果,實(shí)際上空閑的磁帶機(jī)最少是幾臺?最多是幾臺?
②若采用銀行家算法將怎樣進(jìn)行調(diào)度?能夠同時(shí)運(yùn)行的最大作業(yè)數(shù)足多少?作為其
后果,實(shí)際上空閑的磁帶機(jī)最少和最多各是多少臺?
答:①能同時(shí)運(yùn)行的最大作業(yè)數(shù)是2,實(shí)際上空閑的磁帶機(jī)最少是2臺,最多是4臺。
②作業(yè)對磁帶機(jī)資源提出請求時(shí),系統(tǒng)判斷:若分配的話,系統(tǒng)是否仍處于安全狀態(tài)。
在3個作業(yè)各分到3臺磁帶機(jī)的情況下,系統(tǒng)仍然是安全的。所以,能同時(shí)運(yùn)行的最大作業(yè)
數(shù)是3,實(shí)際上空閑的磁帶機(jī)最少和最多臺數(shù)各是0和I。
32.設(shè)有三個進(jìn)程P1,P1,P3,各按如下所示順序執(zhí)行程序代碼:
進(jìn)程P1進(jìn)程P2進(jìn)程P3
P(s1)P(s3)P(s2)
P(s2)P(s1)P(s3)
V(s1)V(s3)V(s2)
V(s2)V(s1)V(s3)
其中s1,s2,s3是信號量,且初值均為1.
在執(zhí)行時(shí)能否產(chǎn)生死鎖?如果可能產(chǎn)生死鎖,請說明在什么情況下產(chǎn)生死鎖?并紿出一
個防止死鎖產(chǎn)生的修改辦法。
答:可能產(chǎn)生死鎖。因?yàn)楫?dāng)進(jìn)程P1執(zhí)行P(sl),進(jìn)程P2執(zhí)行P(s3),進(jìn)程P3執(zhí)行P(s2)
后,三個資源(即信號量sl,s2,s3)被三個進(jìn)程分別占用,接下來任何一個進(jìn)程都無法得到
所申請的資源,于是都無限地循環(huán)等待,造成死鎖。
一個防止死鎖產(chǎn)生的辦法是:進(jìn)程申請信號量時(shí),按序申請。如圖7所示
進(jìn)程Pl進(jìn)程P2進(jìn)程P3
II1
P(sl)P(sl)P(s2)
P(s2)P(s3)P(s3)
V(sl)V(sl)V(s2)
V(s2)V(s3)V(s3)
圖7
33.考慮由〃個進(jìn)程共享的具有m個同類資源的系統(tǒng),如果對/=1,2,…,n,有Need,,
>0,并且所有最大需求量之和小于府〃,試證明:該系統(tǒng)不會產(chǎn)生死鎖。
答:設(shè)每個進(jìn)程對共享資源的最大需求量為max(0VmaxW〃?),由于每個進(jìn)程最多申請
使用max個資源,在最壞的情況下,每個進(jìn)程都得到(max-1)個資源,并且都需要申請最后
一個資源v此時(shí),系統(tǒng)剩余的資源為只要系統(tǒng)還有一個資源可用,就可以使
其中的?個進(jìn)程獲得所需的全部資源。進(jìn)而該進(jìn)程運(yùn)行結(jié)束后,釋放出它占用的資源,供其
他進(jìn)程使用,從而所有的進(jìn)程都可以運(yùn)行完成。就是說,當(dāng)〃L〃(max-l)2l時(shí),系統(tǒng)不會
發(fā)生死鎖。整理該不等式,得到如下關(guān)系:〃XmaxW(m+1),所以,〃XmaxWm+〃。從而
證明〃個進(jìn)程所有最大需求量之和小于時(shí),該系統(tǒng)不會產(chǎn)生死鎖。
34.設(shè)系統(tǒng)中有三種類型的資源(4B,。和五個進(jìn)程(月,月,月,PA,只),4資源的
數(shù)量為17,8資源的數(shù)量為5,C資源的數(shù)量為20。在心時(shí)刻系統(tǒng)狀態(tài)如表270所示。系
統(tǒng)采用銀行家算法來避免死鎖。
①7;時(shí)刻是否為安全狀態(tài)?若是,請給出安全序列。
②在石時(shí)刻,若進(jìn)程月請求資源(0,3,4),能否實(shí)現(xiàn)資源分配?為什么?
③在②的基礎(chǔ)上,若進(jìn)程月請求資源(2,0,1),能否實(shí)現(xiàn)資源分配?為什么?
④在③的基礎(chǔ)上,若進(jìn)程月請求資源(0,2,0),能否實(shí)現(xiàn)資源分配?為什么?
表2-10萬時(shí)刻系統(tǒng)狀態(tài)
最大瓷箱需求量已分配波源數(shù)量系統(tǒng)利余資源數(shù)量
進(jìn)程
ABCABcABC
p、559212233
536402
p4011405
A425204
P424314
答:①71)時(shí)刻是安全狀態(tài),因?yàn)榇嬖谝粋€安全序列{〃4,P5,P1,P2,P3}。
②不能實(shí)現(xiàn)資源分配,因?yàn)樗S嗟馁Y源數(shù)量不夠。
③可以分配。當(dāng)分配完成后,系統(tǒng)剩余的資源向量為(0,3,2),這時(shí),仍可找到一個
安全序列(PA,P5,pi,P2,P3}o
④不能分配。如果分配的話,則系統(tǒng)剩余的資源向最為(0,I,2),這時(shí)無法找到一個
安全序列c
習(xí)題3
1.解釋以下術(shù)語:作業(yè)調(diào)度、進(jìn)程調(diào)度、周轉(zhuǎn)時(shí)間、平均周轉(zhuǎn)時(shí)間、響應(yīng)時(shí)間、中斷、
中斷源、中斷請求、中斷向量
答:作業(yè)調(diào)度一是根據(jù)一定的算法,從輸入的一批伶業(yè)中選出若干個作業(yè),分配必要的
資源,如內(nèi)存、外設(shè)等,為它建立相應(yīng)的用戶作業(yè)進(jìn)程和為其服務(wù)的系統(tǒng)進(jìn)程(如輸入、輸
出進(jìn)程),最后把它們的程序和數(shù)據(jù)調(diào)入內(nèi)存,等待進(jìn)程調(diào)度程序?qū)ζ鋱?zhí)行調(diào)度,并在作業(yè)
完成后作善后處理工作。
進(jìn)程調(diào)度一是根據(jù)一定的算法將CPU分派給就緒隊(duì)列中的一個進(jìn)程。
周轉(zhuǎn)時(shí)間一從作業(yè)提交到作業(yè)完成的時(shí)間間隔。
平均周轉(zhuǎn)時(shí)間一系統(tǒng)中n個作業(yè)周轉(zhuǎn)時(shí)間的算術(shù)平均值。
響應(yīng)時(shí)間一從提交第一個請求到產(chǎn)生第一個響應(yīng)所用的時(shí)間。
中斷--是指CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng),CPU暫停正在執(zhí)行的程序,保
留現(xiàn)場后自動地執(zhí)行相應(yīng)的處理程序,處理完該事件后,如被中斷進(jìn)程的優(yōu)先級最高,則返
回?cái)帱c(diǎn)繼續(xù)執(zhí)行被“打斷”的程序。
中斷源一引起中斷的事件或發(fā)出中斷請求的來源稱為中斷源。
中斷請求一中斷源向CPU提出進(jìn)行處理的請求。
中斷向量一中斷向量表的表項(xiàng),通常包括相應(yīng)中斷處理程序入口地址和中斷處理時(shí)處理
機(jī)狀態(tài)字PSW。
2.處理機(jī)調(diào)度的主要目的是什么?
答:處理機(jī)調(diào)度的主要目的就是為了分配處理機(jī),處理機(jī)分配由調(diào)度和分派兩個功能組
成。
3.高級調(diào)度與低級調(diào)度的主要功能是什么?為什么要引入中級調(diào)度?
答:高級調(diào)度的主要力能是根據(jù)一定的算法,從輸入的一批作業(yè)中選出若干作業(yè),分配
必要的資源,如內(nèi)存、外設(shè)等,為它建立相應(yīng)的用戶作業(yè)進(jìn)程和為其服務(wù)的系統(tǒng)進(jìn)程(如輸
入/輸出進(jìn)程),最后把它們的程序和數(shù)據(jù)調(diào)入內(nèi)存,等待進(jìn)程調(diào)度程序?qū)ζ鋱?zhí)行調(diào)度,并在
作業(yè)完成后做善后處理工作。
低級調(diào)度的主要功能是根據(jù)一定的算法將CPU分派給就緒隊(duì)列中的一個進(jìn)程。
為了使內(nèi)存中同時(shí)存放的進(jìn)程數(shù)目不至于太多,有時(shí)需要把某些進(jìn)程從內(nèi)存移到外存
上,以減少多道程序的數(shù)目,為此設(shè)立了中級調(diào)度。引入中級調(diào)度的主要目的是為了提高內(nèi)
存的利用率和系統(tǒng)吞吐量,它實(shí)際上就是存儲管理中的對換功能。
4.處理機(jī)調(diào)度一般分為哪三級?其中哪一級調(diào)度必不可少?為什么?
答:處理機(jī)調(diào)度般分為三級調(diào)度:高級調(diào)度(又稱作業(yè)調(diào)度)、中級調(diào)度和低級調(diào)度
(又稱進(jìn)程調(diào)度)。
其中,進(jìn)程調(diào)度必不可少。
CPU是計(jì)算機(jī)最主要的資源。進(jìn)程只有在得到CPU之后才能真正活動起來,所有就緒進(jìn)
程經(jīng)由進(jìn)程調(diào)度才能獲得CPU的控制權(quán)。實(shí)際上,進(jìn)程調(diào)度完成一臺物理的CPU轉(zhuǎn)變成多臺
虛擬(或邏輯)的CPU的工作;進(jìn)程調(diào)度的實(shí)現(xiàn)策略往往決定了操作系統(tǒng)的類型,其算法優(yōu)
劣直接影響整個系統(tǒng)的性能。
5.作業(yè)在其存在過程中分為哪四種狀態(tài)?
作業(yè)在其存在過程中分為提交、后備、執(zhí)行和完成4種狀態(tài)。
6.在OS中,引起進(jìn)程調(diào)度的主要因素有哪些?
答:一般說來,當(dāng)發(fā)生以下事件后要執(zhí)行進(jìn)程調(diào)度:正在運(yùn)行的進(jìn)程任務(wù)完成,或等待
資源,或運(yùn)行到時(shí),或核心發(fā)現(xiàn)系統(tǒng)中“重新調(diào)度”標(biāo)志被置上。
7.作業(yè)調(diào)度與進(jìn)程調(diào)度二者間如何協(xié)調(diào)工作?
答:作業(yè)調(diào)度從外存的后備隊(duì)列中選擇一批作業(yè)調(diào)入內(nèi)存,為它們創(chuàng)建進(jìn)程,這些進(jìn)程
被送入就緒隊(duì)列。進(jìn)程調(diào)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼鐵燒結(jié)廠除塵課程設(shè)計(jì)
- 軋制生產(chǎn)線課程設(shè)計(jì)
- 鍋爐課程設(shè)計(jì)的總結(jié)
- 音箱放大器課程設(shè)計(jì)
- 認(rèn)識地球校本課程設(shè)計(jì)
- 鵪鶉養(yǎng)殖課程設(shè)計(jì)思路
- 香水配比課程設(shè)計(jì)
- 表面工程學(xué)課程設(shè)計(jì)
- 音樂資源課程設(shè)計(jì)
- 現(xiàn)狀地形圖課程設(shè)計(jì)
- DB-T29-74-2018天津市城市道路工程施工及驗(yàn)收標(biāo)準(zhǔn)
- 小學(xué)一年級20以內(nèi)加減法混合運(yùn)算3000題(已排版)
- 智慧工廠數(shù)字孿生解決方案
- 病機(jī)-基本病機(jī) 邪正盛衰講解
- 品管圈知識 課件
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險(xiǎn)防控PPT
- 充電樁采購安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
評論
0/150
提交評論