版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)
第一章操作系統(tǒng)引論
I.設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?
方便性(使計(jì)算機(jī)系統(tǒng)容易使用),有效性(資源有效利用),可擴(kuò)充性(適應(yīng)發(fā)展要求),開放性(可移植)。
2.OS的作用可表現(xiàn)為哪幾個(gè)方面?
a.OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口;(用戶通過命令方式,系統(tǒng)調(diào)用方式使用計(jì)算機(jī))
b.OS作為計(jì)算機(jī)系統(tǒng)資源的管理者;(資源包括處理器,存儲(chǔ)器,I/O設(shè)備,數(shù)據(jù)和程序)
c.OS用作擴(kuò)充機(jī)器.(覆蓋了軟件的機(jī)器稱為擴(kuò)充機(jī)器)
3.試說明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁矗?/p>
不斷提高計(jì)算機(jī)資源利用率和系統(tǒng)吞吐量的需要
4.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?
a.脫機(jī)輸入輸出方式(Off-LineI/O)是為了解決人機(jī)矛盾及CPU和I/O設(shè)備之間速度不匹配而提出的.它減少
了CPU的空閑等待時(shí)間,提高了I/O速度.具體內(nèi)容是將用戶程序和數(shù)據(jù)在一臺(tái)外圍機(jī)的控制下,預(yù)先從低速輸
入設(shè)備輸入到磁帶上,當(dāng)CPU需要這些程序和數(shù)據(jù)時(shí),在直接從磁帶機(jī)高速輸入到內(nèi)存,從而大大加快了程序
的輸入過程,減少了CPU等待輸入的時(shí)間,這就是脫機(jī)輸入技術(shù);當(dāng)程序運(yùn)行完畢或告一段落,CPU需要輸出時(shí),
無需直接把計(jì)算結(jié)果送至低速輸出設(shè)備,而是高速把結(jié)果輸出到磁帶上,然后在外圍機(jī)的控制下,把磁帶上的計(jì)
算結(jié)果由相應(yīng)的輸出設(shè)備輸出,這就是脫機(jī)輸出技術(shù).
b.若這種輸入輸出操作在主機(jī)控制下進(jìn)行則稱之為聯(lián)機(jī)輸入輸出方式.
5.試說明推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁矗?/p>
用戶的需要.即對(duì)用戶來說,更好的滿足了人-機(jī)交互,共享主機(jī)以及便于用戶上機(jī)的需求.
6.試說明實(shí)時(shí)任務(wù)的類型和實(shí)時(shí)系統(tǒng)的類型?
.a.實(shí)時(shí)任務(wù)的類型按任務(wù)執(zhí)行時(shí)是否呈現(xiàn)周期性來劃分,分為周期性實(shí)時(shí)任務(wù)和非周期性實(shí)時(shí)任務(wù);根據(jù)
對(duì)截止時(shí)間的要求來劃分,分為硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù);
b.通常把要求進(jìn)行實(shí)時(shí)控制的系統(tǒng)統(tǒng)稱為實(shí)時(shí)控制系統(tǒng),把要求對(duì)信息進(jìn)行實(shí)時(shí)處理的系統(tǒng)成為實(shí)時(shí)信息處
理系統(tǒng).
7.實(shí)現(xiàn)多道程序應(yīng)解決哪些問題?
a.處理機(jī)管理問題;b.內(nèi)存管理問題;c.I/O設(shè)備管理問題;d.文件管理問題;e.作業(yè)管理問題.
8.試比較單道與多道批處理系統(tǒng)的特點(diǎn)及優(yōu)缺點(diǎn)?
a.單道批處理系統(tǒng)是最早出現(xiàn)的一種OS,它具有自動(dòng)性,順序性和單道性的特點(diǎn);
一多道批處理系統(tǒng)則具有調(diào)度性,無序性和多道性的特點(diǎn);
b.單道批處理系統(tǒng)是在解決人機(jī)矛盾及CPU和I/O設(shè)備之間速度不匹配的矛盾中形成的,旨在提高系統(tǒng)資
源利用率和系統(tǒng)吞吐量,但是仍然不能很好的利用系統(tǒng)資源;
一多道批處理系統(tǒng)是對(duì)單道批處理系統(tǒng)的改進(jìn),其主要優(yōu)點(diǎn)是資源利用率高,系統(tǒng)吞吐量大;缺點(diǎn)是平均周
轉(zhuǎn)時(shí)間長,無交互能力.
※作業(yè)的周轉(zhuǎn)時(shí)間:從作業(yè)進(jìn)入系統(tǒng)開始,直至完成并推出系統(tǒng)為止所經(jīng)歷的時(shí)間。
9.實(shí)現(xiàn)分時(shí)系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決?
a.關(guān)鍵問題:及時(shí)接收,及時(shí)處理;
b.對(duì)于及時(shí)接收,只需在系統(tǒng)中設(shè)置-多路卡,多路卡作用是使主機(jī)能同時(shí)接收用戶從各個(gè)終端上輸入的
數(shù)據(jù);一對(duì)于及時(shí)處理,應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,在不長的時(shí)間內(nèi),能使每個(gè)作業(yè)都運(yùn)行一次.
10.為什么要引入實(shí)時(shí)操作系統(tǒng)?
更好地滿足實(shí)時(shí)控制領(lǐng)域和實(shí)時(shí)信息處理領(lǐng)域的需要.
11.OS具有哪幾大特征?它的最基本特征是什么?
a.并發(fā)(Concurrence),(宏觀上在一段時(shí)間內(nèi),多道程序在同時(shí)運(yùn)行)
共享(Sharing),(系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用。分為互斥共享,同時(shí)訪問兩方式。
虛擬(Virtual),(操作系統(tǒng)通過分時(shí)使用實(shí)現(xiàn)虛擬,n個(gè)虛擬邏輯設(shè)備的速度是其對(duì)應(yīng)物理設(shè)備的1/n.)
異步性(Asynchronism).(多道程序環(huán)境下,受資源等的限制,進(jìn)程是以異步方式運(yùn)行的)
b.其中最基本特征是并發(fā)和共享.
12內(nèi)存管理有哪些主要功能?它們的主要任務(wù)是什么?
a.主要功能:
內(nèi)存分配(為每道程序分配內(nèi)存空間,分為靜態(tài)分配方式,動(dòng)態(tài)分配方式)
內(nèi)存保護(hù)(確保每道用戶程序在自己的內(nèi)存空間運(yùn)行,簡單的實(shí)現(xiàn)機(jī)制是設(shè)置兩個(gè)界限寄存器,存放正
在執(zhí)行程序的上界和下界)
地址映射(提供地址空間的邏輯地址和內(nèi)存空間的物理地址之間的映射)
內(nèi)存擴(kuò)充(借助于虛擬存儲(chǔ)技術(shù),從邏輯上擴(kuò)充內(nèi)存容量)
※靜態(tài)分配:作業(yè)的內(nèi)存空間是在作業(yè)裝入時(shí)確定的,裝入后整個(gè)運(yùn)行期間不允許在申請(qǐng)內(nèi)存。
動(dòng)態(tài)分配:作業(yè)要求的基本內(nèi)存空間在裝入時(shí)確定,允許作業(yè)運(yùn)行過程中申請(qǐng)新的附加內(nèi)存空間。
b.內(nèi)存分配的主要任務(wù)是為每道程序分配內(nèi)存空間,提高存儲(chǔ)器利用率,以減少不可用的內(nèi)存空間,允許
正在運(yùn)行的程序申請(qǐng)附加的內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)動(dòng)態(tài)增長的需要.
一內(nèi)存保護(hù)的主要任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運(yùn)行,互不干擾.
一地址映射的主要任務(wù)是將地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中與之對(duì)應(yīng)的物理地址.
一內(nèi)存擴(kuò)充的主要任務(wù)是借助虛擬存儲(chǔ)技術(shù),從邏輯上去擴(kuò)充內(nèi)存容量.
13處理機(jī)管理具有哪些功能?它們的主要任務(wù)是什么?
a.進(jìn)程控制,進(jìn)程同步,進(jìn)程通信和調(diào)度.
b.進(jìn)程控制的主要任務(wù)是為作業(yè)創(chuàng)建進(jìn)程,撤銷已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換.
一進(jìn)程同步的主要任務(wù)是對(duì)諸進(jìn)程的運(yùn)行進(jìn)行調(diào)節(jié).
一進(jìn)程通信的任務(wù)是實(shí)現(xiàn)在相互合作進(jìn)程之間的信息交換.
--調(diào)度分為作業(yè)調(diào)度和進(jìn)程調(diào)度.作業(yè)調(diào)度的基本任務(wù)是從后備隊(duì)列中按照一定的算法,選擇出若干個(gè)作業(yè),
為它們分配必要的資源;而進(jìn)程調(diào)度的任務(wù)是從進(jìn)程的就緒隊(duì)列中,按照一定的算法選出一新進(jìn)程,把處理機(jī)分
配給它,并為它設(shè)置運(yùn)行現(xiàn)場(chǎng),使進(jìn)程投入運(yùn)行.
14設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?
a.主要功能:緩沖管理,設(shè)備分配和設(shè)備處理,以及虛擬設(shè)備等.
b.主要任務(wù):完成用戶提出的I/O請(qǐng)求,為用戶分配I/O設(shè)備;提高CPU和I/O設(shè)備的利用率;提高I/O速
度;以及方便用戶使用I/O設(shè)備.
15文件管理有哪些主要功能?其主要任務(wù)是什么?
a.主要功能:對(duì)文件存儲(chǔ)空間的管理,目錄管理,文件的讀,寫管理以及文件的共享和保護(hù).
b.主要任務(wù):對(duì)用戶文件和系統(tǒng)文件進(jìn)行管理,以方便用戶使用,并保證文件的安全性.
16試在交互性,及時(shí)性和可靠性方面,將分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)進(jìn)行比較.
a.分時(shí)系統(tǒng)是一種通用系統(tǒng),主要用于運(yùn)行終端用戶程序,因而它具有較強(qiáng)的交互能力;而實(shí)時(shí)系統(tǒng)雖然
也有交互能力,但其交互能力不及前者.
b.實(shí)時(shí)信息系統(tǒng)對(duì)實(shí)用性的要求與分時(shí)系統(tǒng)類似,都是以人所能接收的等待時(shí)間來確定;而實(shí)時(shí)控制系統(tǒng)
的及時(shí)性則是以控制對(duì)象所要求的開始截止時(shí)間和完成截止時(shí)間來確定的.
C.實(shí)時(shí)系統(tǒng)對(duì)系統(tǒng)的可靠性要求要比分時(shí)系統(tǒng)對(duì)系統(tǒng)的可靠性要求高.
17是什么原因使操作系統(tǒng)具有異步性特征?
a.程序執(zhí)行結(jié)果是不確定的,即程序是不可再現(xiàn)的.
b.每個(gè)程序在何時(shí)執(zhí)行,多個(gè)程序間的執(zhí)行順序以及完成每道程序所需的時(shí)間都是不確定的,即不可預(yù)知性.
18試說明在MS-DOS3.X以前的版本中,其局限性表現(xiàn)在哪幾個(gè)方面
a.在尋址范圍上,DOS只有1MB,遠(yuǎn)遠(yuǎn)不能滿足用戶需要.
b.DOS是單用戶單任務(wù)操作系統(tǒng),不支持多任務(wù)并發(fā)執(zhí)行,與實(shí)際應(yīng)用相矛盾.
20為什么Microsoft在開發(fā)OS/2時(shí),選中了80286芯片?
設(shè)計(jì)OS/2的主要目標(biāo)之一是既能充分發(fā)揮80286處理器的能力,又能運(yùn)行在8086處理器環(huán)境下開發(fā)的程序.
因?yàn)樵?0286內(nèi)部提供了兩種工作方式:實(shí)方式和保護(hù)方式,使得Intel80286處理器不僅提供了多任務(wù)并發(fā)執(zhí)行
的硬件支持,而且還能運(yùn)行所有在8086下編寫的程序。
21OS/2的主要功能是什么?
a.多任務(wù).b.進(jìn)程管理c存儲(chǔ)器管理d文件管理.e.應(yīng)用程序接口API.f.表示管理.
22多處理機(jī)OS有哪幾種模式各有何優(yōu)缺點(diǎn)?
a.2種模式:非對(duì)稱多處理模式(AsymmetricMultiprocessingModel)和對(duì)稱多處理模式(Symmetric
MultiprocesingModel).
b.前者易于實(shí)現(xiàn),但資源利用率低.
一后者優(yōu)點(diǎn)是允許多個(gè)進(jìn)程同時(shí)運(yùn)行,缺點(diǎn)是必須小心控制I/O,以保證能將數(shù)據(jù)送至適當(dāng)?shù)奶幚砥?,同時(shí)
還必須注意使各CPU的負(fù)載平衡.
※非對(duì)稱多處理模式:將處理機(jī)分為主處理機(jī)和從處理機(jī)
對(duì)稱多處理模式:所有處理機(jī)都是相同的,運(yùn)行一個(gè)相同的OS拷貝
23試說明網(wǎng)絡(luò)OS的主要功能.
a.網(wǎng)絡(luò)通信;b.資源管理;c.網(wǎng)絡(luò)服務(wù);d.網(wǎng)絡(luò)管理;e.互操作能力.
b.
24試比較網(wǎng)絡(luò)OS和分布式OS.
a.網(wǎng)絡(luò)OS是基于由一些互聯(lián)的自主計(jì)算機(jī)系統(tǒng)組成的計(jì)算機(jī)網(wǎng)絡(luò),以計(jì)算機(jī)技術(shù)和通信技術(shù)高度發(fā)展為基
礎(chǔ),能實(shí)現(xiàn)相互通信和相互合作功能的系統(tǒng).分布式OS是指多個(gè)分散的處理單元,經(jīng)互聯(lián)網(wǎng)絡(luò)連接而形成的系統(tǒng).
b.在分布性上,兩者都具有分布處理功能,但網(wǎng)絡(luò)OS的控制功能大多集中在某個(gè)(些)主機(jī)或網(wǎng)絡(luò)服務(wù)器中,
即集中式,而分布式OS則是較均勻地分布在系統(tǒng)的各個(gè)站點(diǎn)上,是完全分布式的.
在并行性上,分布式OS的任務(wù)分配程序可將多個(gè)任務(wù)分配到多個(gè)處理單元上而實(shí)現(xiàn)并行,網(wǎng)絡(luò)OS中通常
無任務(wù)分配功能,每個(gè)用戶的任務(wù)通常在自己(本地)的計(jì)算機(jī)上處理.
在透明性上,兩者都具透明性,但網(wǎng)絡(luò)OS指在操作實(shí)現(xiàn)上的透明性,而分布式OS則在系統(tǒng)內(nèi)部的細(xì)節(jié)上
實(shí)現(xiàn)了很好的隱藏,即具有物理上的透明性.
在共享性上,分布式OS是比較完全的實(shí)現(xiàn)共享,而網(wǎng)絡(luò)OS共享的資源大多是在主機(jī)或網(wǎng)絡(luò)服務(wù)器中.
在健壯性上,分布式系統(tǒng)由于處理和控制功能是分布的,還擁有容錯(cuò)技術(shù)實(shí)現(xiàn)系統(tǒng)重構(gòu),因而具有很強(qiáng)的健
壯性;而網(wǎng)絡(luò)OS的控制功能大多集中在主機(jī)或服務(wù)器中,是系統(tǒng)具有潛在的不可靠性,健壯性差.
第二章進(jìn)程的描述與控制
1.試畫出下面條語句的前趨圖:SI:a=5-x;S2:b=a*x;S3:c=4*x;S4:d=b+c;S5:e=d+3.
※前趨圖:有向無循環(huán)圖,即圖中不存在循環(huán)。初始結(jié)點(diǎn)無前趨,終止結(jié)點(diǎn)無后繼。
2.試?yán)肂ernstein條件證明上題中的S2和S3語句是可以并發(fā)執(zhí)行的,而S3和S4語句是不能并發(fā)執(zhí)行的
證明:R(S2)={x,a},W(S2)={b),R(S3)={x},W(S3)={c};可見,S2與S3的讀集與寫集兩兩不相交,S2與S3的
寫集之間也不相交,因而,他們滿足Bernstein條件,S2與S3語句是可以并發(fā)執(zhí)行的.
同理可證S3和S4不能滿足Bernstein條件,是不能并發(fā)執(zhí)行的.
XBernstein條件:R(pI)AW(p2)UR(p2)AW(p1)UW(p1)AW(p2)={}
3.程序并發(fā)執(zhí)行為什么會(huì)產(chǎn)生間斷性?
因?yàn)槌绦蛟诓l(fā)執(zhí)行過程中存在相互制約性.
4.程序并發(fā)執(zhí)行為何會(huì)失去封閉性和可再現(xiàn)性?
因?yàn)槌绦虿l(fā)執(zhí)行時(shí),多個(gè)程序共享系統(tǒng)中的各種資源,資源狀態(tài)需要多個(gè)程序來改變,即存在資源共享性
使程序失去封閉性;而失去了封閉性導(dǎo)致程序失去可再現(xiàn)性.
5.在操作系統(tǒng)中為什么要引入進(jìn)程概念?它會(huì)產(chǎn)生什么樣的影響?
為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并能對(duì)并發(fā)執(zhí)行的程序加以控制和描述,而引入了進(jìn)程概念.
影響:使程序的并發(fā)執(zhí)行得以實(shí)行.
6.試從動(dòng)態(tài)性,并發(fā)性和獨(dú)立性上比較進(jìn)程和程序
a.動(dòng)態(tài)性是進(jìn)程最基本的特性,可表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,以及
由撤銷而消亡,因而進(jìn)程有一定的生命期;而程序只是一組有序指令的集合,是靜態(tài)實(shí)體.
b.并發(fā)性是進(jìn)程的重要特征,同時(shí)也是OS的重要特征.引入進(jìn)程的目的正是為了使其程序能和其它進(jìn)程的
程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的.
c.獨(dú)立性是指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單
位.而對(duì)于未建立任何進(jìn)程的程序,都不能作為一個(gè)獨(dú)立的單位參加運(yùn)行.
7.試說明PCB的作用?為什么說PCB是進(jìn)程存在的唯一標(biāo)志?
a.PCB是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu).PCB中記錄了操作系統(tǒng)所需的用于描
述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息.因而它的作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)
據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能和其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程.
b.在進(jìn)程的整個(gè)生命周期中,系統(tǒng)總是通過其PCB對(duì)進(jìn)程進(jìn)行控制,系統(tǒng)是根據(jù)進(jìn)程的PCB而不是任何別
的什么而感知到該進(jìn)程的存在的,所以說,PCB是進(jìn)程存在的唯一標(biāo)志.
8.試說明進(jìn)程在三個(gè)基本狀態(tài)之間轉(zhuǎn)換的典型原因.
a.處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài).
b.當(dāng)前進(jìn)程因發(fā)生某事件而無法執(zhí)行,如訪問已被占用的臨界資源,就會(huì)使進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài).
c.當(dāng)前進(jìn)程因時(shí)間片用完而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài).
9.為什么要引入掛起狀態(tài)?該狀態(tài)具有哪些性質(zhì)?
a.引入掛起狀態(tài)基于5種需要:
終端用戶的需要,父進(jìn)程的需要,操作系統(tǒng)的需要,對(duì)換的需要和負(fù)荷調(diào)節(jié)的需要.
b.處于掛起狀態(tài)的進(jìn)程不能接收處理機(jī)調(diào)度.
10在進(jìn)行進(jìn)程切換時(shí),所要保存的處理機(jī)狀態(tài)信息主要有哪些?
a.進(jìn)程當(dāng)前暫存信息;b.下一條指令地址信息;c.進(jìn)程狀態(tài)信息;d.過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息.
11試說明引起進(jìn)程創(chuàng)建的主要事件?
a.用戶登陸;b.作業(yè)調(diào)度;&提供服務(wù);d.應(yīng)用請(qǐng)求.
12試說明引起進(jìn)程撤消的主要事件?
a.正常結(jié)束;b.異常結(jié)束;&外界干預(yù);
13在創(chuàng)建一個(gè)進(jìn)程時(shí),需完成的主要工作是什么?
a.操作系統(tǒng)發(fā)現(xiàn)請(qǐng)求創(chuàng)建新進(jìn)程事件后,調(diào)用進(jìn)程創(chuàng)建原語Creat();
b.申請(qǐng)空白PCB;c.為新進(jìn)程分配資源;d.初始化進(jìn)程控制塊;e.將新進(jìn)程插入就緒隊(duì)列.
14在撤消一個(gè)進(jìn)程時(shí),需完成的主要工作是什么?
a.OS調(diào)用進(jìn)程終止原語;
b.根據(jù)被終止進(jìn)程的標(biāo)志符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài);
c.若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即中止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真;
d,若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止;
e.將該進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng);
f.將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其它程序來搜集信息.
15試說明引起進(jìn)程阻塞或被喚醒的主要事件是什么?
a.請(qǐng)求系統(tǒng)服務(wù):b.啟動(dòng)某種操作;c.新數(shù)據(jù)尚未到達(dá);d.無新工作可做.
16試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷幾個(gè)方面,對(duì)進(jìn)程和線程進(jìn)行比較.
a.在引入線程的OS中,把線程作為調(diào)度和分派的基本單位,而把進(jìn)程作為資源擁有的基本單位;
b.在引入線程的OS中,不僅進(jìn)程之間可以并發(fā)執(zhí)行,而且在一個(gè)進(jìn)程中的多個(gè)線程之間,亦可并發(fā)執(zhí)行,
因而使OS具有更好的并發(fā)性;
c.進(jìn)程始終是擁有資源的一個(gè)獨(dú)立單位,線程自己不擁有系統(tǒng)資源,但它可以訪問其隸屬進(jìn)程的資源;
d.在創(chuàng)建,撤消和切換進(jìn)程方面,進(jìn)程的開銷遠(yuǎn)遠(yuǎn)大于線程的開銷.
17什么是用戶級(jí)線程和內(nèi)核級(jí)線程?并對(duì)它們進(jìn)行比較.
a.內(nèi)核級(jí)線程是依賴于內(nèi)核的,它存在于用戶進(jìn)程和系統(tǒng)進(jìn)程中,它們的創(chuàng)建,撤消和切換都由內(nèi)核實(shí)現(xiàn);
-用戶級(jí)線程僅存在于用戶級(jí)中,它們的創(chuàng)建,撤消和切換不利用系統(tǒng)調(diào)用來實(shí)現(xiàn),因而與內(nèi)核無關(guān),內(nèi)核
并不知道用戶級(jí)線程的存在.
b.內(nèi)核級(jí)線程的調(diào)度和切換與進(jìn)程十分相似,調(diào)度方式采用搶占式和非搶占式,調(diào)度算法采用時(shí)間片輪轉(zhuǎn)
法和優(yōu)先權(quán)算法等,當(dāng)由線程調(diào)度選中一個(gè)線程后,再將處理器分配給它;而用戶級(jí)線程通常發(fā)生在一個(gè)應(yīng)用程
序的諸線程之間,無需終端進(jìn)入OS內(nèi)核,切換規(guī)則也較簡單,因而,用戶級(jí)線程的切換速度較快.
一用戶級(jí)線程調(diào)用系統(tǒng)調(diào)用和調(diào)度另一個(gè)進(jìn)程執(zhí)行時(shí),內(nèi)核把它們看作是整個(gè)進(jìn)程的行為,內(nèi)核級(jí)線程調(diào)用
是以線程為單位,內(nèi)核把系統(tǒng)調(diào)用看作是該線程的行為.
一對(duì)于用戶級(jí)線程調(diào)用,進(jìn)程的執(zhí)行速度隨著所含線程數(shù)目的增加而降低,對(duì)于內(nèi)核級(jí)線程則相反.
18在SolarisOS中,設(shè)置了哪幾種線程?輕型進(jìn)程的作用是什么?
a.用戶級(jí)線程,內(nèi)核級(jí)線程和輕型進(jìn)程;※輕型進(jìn)程:LWP,一個(gè)進(jìn)程中至少有一個(gè)LWP。
b.作用:由LWP實(shí)現(xiàn)了在內(nèi)核與用戶級(jí)線程之間的隔離,從而使用戶級(jí)線程與內(nèi)核無關(guān).
19在SolarisOS中,用戶級(jí)線程是通過什么方式來訪問內(nèi)核的?
通過LWP來訪問內(nèi)核.內(nèi)核能識(shí)別LWP,但不能識(shí)別用戶級(jí)線程,通過建立用戶級(jí)線程與LWP之間的連
接,可以實(shí)現(xiàn)用戶級(jí)線程與內(nèi)核的通信.
第三章進(jìn)程的同步與通信
1.什么是臨界資源和臨界區(qū)?
a.一次僅允許一個(gè)進(jìn)程使用的資源成為臨界資源.
b.在每個(gè)進(jìn)程中,訪問臨界資源的那段程序稱為臨界區(qū).
2.為什么進(jìn)程在進(jìn)入臨界區(qū)之前,應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)”代碼,在退出臨界區(qū)后又執(zhí)行“退出區(qū)"代碼?
為了實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問的臨界資源是否正被
訪問的代碼,如果未被訪問,該進(jìn)程便可進(jìn)入臨界區(qū)對(duì)資源進(jìn)行訪問,并設(shè)置正被訪問標(biāo)志,如果正被訪問,則
本進(jìn)程不能進(jìn)入臨界區(qū),實(shí)現(xiàn)這一功能的代碼成為“進(jìn)入?yún)^(qū)"代碼;在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)”代碼,用
于恢復(fù)未被訪問標(biāo)志.
3.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?
a.空閑讓進(jìn).(有效利用臨界資源)
b.忙則等待.(保證諸進(jìn)程互斥的訪問臨界資源)
c.有限等待.(避免進(jìn)程陷入“死等”狀態(tài))
d.讓權(quán)等待.(避免進(jìn)程陷入“忙等”狀態(tài))
4.試從物理概念上來說明記錄型信號(hào)量和wait和signal操作(有待討論).
記錄型信號(hào)量:采用記錄型數(shù)據(jù)結(jié)構(gòu)的信號(hào)量,包括代表資源數(shù)目的整型變量和鏈接所有等待進(jìn)程的進(jìn)程鏈
表。
P操作后,S.valuecO表示資源分配完畢,進(jìn)程調(diào)用block原語進(jìn)行自我阻塞,放棄處理機(jī)并插入到信號(hào)量鏈
表S.L中。
S操作后,S.valueWO表示信號(hào)量鏈表中仍有等待該資源的進(jìn)程被阻塞,調(diào)用wakeup原語,將鏈表中第一
個(gè)等待進(jìn)程喚醒。
※整型信號(hào)量機(jī)制中的wait操作,只要是信號(hào)量SW0,就會(huì)不斷測(cè)試,因此該機(jī)制并未遵循“讓權(quán)等待”
的準(zhǔn)則,而使該進(jìn)程處于“忙等”狀態(tài)。
5.你認(rèn)為整型信號(hào)量機(jī)制和記錄型信號(hào)量機(jī)制,是否完全遵循了同步機(jī)構(gòu)的四條準(zhǔn)則?
a.在整型信號(hào)量機(jī)制中,未遵循“讓權(quán)等待”的準(zhǔn)則.
b.記錄型信號(hào)量機(jī)制完全遵循了同步機(jī)構(gòu)的“空閑讓進(jìn),忙則等待,有限等待,讓權(quán)等待”四條準(zhǔn)則.
6.在生產(chǎn)者一消費(fèi)者問題中,如果缺少了signal(full)或signal(empty),對(duì)執(zhí)行結(jié)果會(huì)有何影響?
生產(chǎn)者一消費(fèi)者問題可描述如下:
varmutex,empty.full:semaphoresl,n,0;
buffer:array[0,...,n-l]ofitem;
in,out:integer:=0,0;
begin
parbegin
producer:begin
repeat
produceraniteminnextp;
wait(empty);
wait(mutex);
buffer(in):=nextp;
in:=(in+l)modn;
signal(mutex);
signal(full);
untilfalse;
end
consumer:begin
repeat
wait(full);
wait(mutex);
nextc:=buffer(out);
out:=(out+l)modn;
signal(mutex);
signal(empty);
consumetheiteminnextc;
untilfalse;endparend
end
parend
end
可見,生產(chǎn)者可以不斷地往緩沖池送消息,如果緩沖池滿,就會(huì)覆蓋原有數(shù)據(jù),造成數(shù)據(jù)混亂.而消費(fèi)者始
終因wait(full)操作將消費(fèi)進(jìn)程直接送入進(jìn)程鏈表進(jìn)行等待,無法訪問緩沖池,造成無限等待.
7.在生產(chǎn)者一消費(fèi)者問題中,如果將兩個(gè)wait操作即wait(full)和wait(mutex)互換位置;或者是將signal(mutex)
與signal(full)互換位置結(jié)果會(huì)如何?
a.wait(fuH)和wait(mutex)互換位置后,因?yàn)閙utex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex賦值為
0,倘若full也為0,則該生產(chǎn)者進(jìn)程就會(huì)轉(zhuǎn)入進(jìn)程鏈表進(jìn)行等待,而生產(chǎn)者進(jìn)程會(huì)因全局變量mutex為0而進(jìn)
行等待,使fun始終為o,這樣就形成了死鎖.
b.而signal(mulex)與signal(fuH)互換位置后,從邏輯上來說應(yīng)該是一樣的.
8.我們?yōu)槟撑R界區(qū)設(shè)置一把鎖W,當(dāng)W=1時(shí),表示關(guān)鎖;W=0時(shí),表示鎖己打開.試寫出開鎖原語和關(guān)鎖原語,
并利用它們?nèi)?shí)現(xiàn)互斥.
開鎖原語:unlock(W):W=0;
關(guān)鎖原語:lock(W):if(W==l)dono_op;
W=l;
利用開關(guān)鎖原語實(shí)現(xiàn)互斥:
varW:semaphore:=0;
begin
parbegin
process:
begin
repeat
lock(W);
criticalsection
unlock(W);
remaindersection
untilfalse;
end
parend
end
9.試修改下面生產(chǎn)者一消費(fèi)者問題解法中的錯(cuò)誤.
producer:
begin
repeat
produceraniteminnextp;
wait(mutex);
wait(full);/*應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面*/
buffer(in):=nextp;/*緩沖池?cái)?shù)組游標(biāo)應(yīng)前移:in:=(in+l)modn;*/
signal(mutex);
/*缺少signal操作:signal(full);*/
untilfalse;
end
consumer:
begin
repeat
wait(mutex);
wait(empty);/*應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面*/
nextc:=buffer(out);
out:=out+l;/*考慮循環(huán),應(yīng)改為:out:=(out+l)modn;*/
signal(mutex);
/*缺少signal操作:signal(empty);*/
consumeriteminnextc;
untilfalse;
end
10試?yán)糜涗浶托盘?hào)量寫出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法.
設(shè)初始值為1的信號(hào)量C[I]表示I號(hào)筷子被拿(1=1,2,3,4,...,2n),其中n為自然數(shù),I表示第I個(gè)哲學(xué)家
send(I):
begin
ifImod2==1then
(
P(c[I]);
P(c[I-lmod5]);
Eat;
V(c[Llmod5]);
V(c[I]);
}else{
P(c[I-lmod5]);
P(c[I]);
Eat;
V(c[I]);
V(c[Llmod5]);
}
end
※避免死鎖的方法:
a.至多只允許四個(gè)科學(xué)家同時(shí)進(jìn)餐,以保證至少有一個(gè)科學(xué)家能夠進(jìn)餐。
b.僅當(dāng)兩只筷子都可用時(shí)才能進(jìn)餐。
c.奇數(shù)哲學(xué)家先拿左邊的筷子,偶數(shù)哲學(xué)家正相反。
11在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖中取出數(shù)據(jù)進(jìn)行計(jì)
算.試寫出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩者共享單緩沖的同步算法.
intmutex=l;
intempty=n;
intfull=O;
intin=0;
intout=0;
main()
(
Cobegin
send();
obtain();
coend
send()
(
while(l)
collectdatainnextp;
wait(empty);
wait(mutex);
buffer(in)=nextp;
in=(in+l)modn;
signal(mutex);
signal(full);
)
)
dobtain()
(
while(l)
(
wait(full);
wait(mutex);
nextc:=buffer(out);
out:=(out+l)modn;
signal(mutex);
signal(empty);
calculatethedatainnextc;
12畫圖說明管程由哪兒部分組成,為什么要引入條件變量?
管程由三部分組成:
(1)局部于管程的共享變量說明;
(2)對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;
(3)對(duì)局部于管程的數(shù)據(jù)設(shè)置初始值的語句.
因?yàn)檎{(diào)用wait原語后,使進(jìn)程等待的原因有多種,為了區(qū)別它們,引入了條件變量.
※管程:當(dāng)共享資源用數(shù)據(jù)結(jié)構(gòu)表示時(shí),資源管理程序可用對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程來表示,這樣
一組相關(guān)的數(shù)據(jù)結(jié)構(gòu)和過程一并稱為管程。
13如何利用管程來解決生產(chǎn)者一消費(fèi)者問題
PC管程描述如下:
typeproducer-consumer=monitor
varin,out,count:integer;
buffer:array[O,...,n-1]ofitem;
notfull,notempty:condition;
procedureentryput(item)
begin
ifcount=nthennotfull.wait;
buffer(in):=nextp;
in:=(in+l)modn;
count:=count+1;
ifnotempty.queuethennotempty.signal;
end
procedureentryget(item)
begin
ifcount=0thennotempty.wait
nextc:=buffer(out);
out:=(out+1)modn;
count:=count-1;
ifnotfull.queuethennotfull.signal;
end
beginin:=out:=0;count:=0;end
生產(chǎn)者:
producer:
begin
repeat
produceaniteminnextp;
PC.put(item);
untilfalse;
End
消費(fèi)者:
consumer:
begin
repeat
PC.get(item);
consumetheiteminnextc;
untilfalse;
end
14什么是AND信號(hào)量?試?yán)肁ND信號(hào)量寫出生產(chǎn)者一消費(fèi)者問題的解法.
為解決并行所帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進(jìn)程在整個(gè)運(yùn)行過程中所需
要的所有臨界資源,一次性地全部分配給進(jìn)程,用完后一次性釋放.
解決生產(chǎn)者一消費(fèi)者問題可描述如下:
生產(chǎn)者:用Swait(empty,mutex)代替wait(empty),wait(mutex)
用Ssignal(mutex,full)代替signal(mutex),signal(full
同理可得消費(fèi)者
15在單處理機(jī)環(huán)境下,進(jìn)程間有哪幾種通信方式?
a.共享存儲(chǔ)器系統(tǒng)通信方式;b.消息傳遞系統(tǒng)通信方式;c.管道通信方式.
16試比較進(jìn)程間的低級(jí)通信工具與高級(jí)通信工具.
用戶用低級(jí)通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,因?yàn)槠湫实?,通信?duì)用戶不透明,所有的操作都必須由程序
員來實(shí)現(xiàn).而高級(jí)通信工具則可彌補(bǔ)這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大
量的數(shù)據(jù).
※低級(jí)通信:進(jìn)程的互斥和同步歸結(jié)為低級(jí)通信
高級(jí)通信:用戶直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù)的一種通信方式
17消息隊(duì)列通信機(jī)制應(yīng)有哪兒方面功能
a.通信鏈路建立用于發(fā)送進(jìn)程和接收進(jìn)程之間進(jìn)行通信的通信鏈路
b.消息的格式消息傳遞系統(tǒng)中消息采用一定的格式
c.進(jìn)程同步方式I.發(fā)送進(jìn)程阻塞,接收進(jìn)程阻塞2.發(fā)送進(jìn)程不阻塞,接收進(jìn)程阻塞(最常用)
3發(fā)送接收進(jìn)程均不阻塞
18試比較消息隊(duì)列與管道通信機(jī)制.
a.所謂管道,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫進(jìn)程,以實(shí)現(xiàn)它們之間通信的共享文件,又稱pipe文件.管
道通信是屬于共享存儲(chǔ)器系統(tǒng)的.
b.消息隊(duì)列通信機(jī)制屬于消息傳遞系統(tǒng)通信機(jī)制,存在通信鏈路,有消息的格式,有若干緩沖隊(duì)列,采用
獨(dú)特的發(fā)送原語和接收原語.(詳見P89-90)
19讀者■寫著問題描述
Varrmutex,wmutex:semaphore
readcount:integer:=0;
begin
parbegin
reader:
begin
repeat
wait(rmutex);
ifreadcount:=0thenwait(wmutex)
readcount:=readcount+1;
signal(rmutex);
Performreadoperation;
Wait(rmutex);
readcount:=readcount-1;
ifreadcount:=0thensignal(wmutex);
signal(rmutex);
untilfalse;
end
writer:
begin
repeat
wait(wmutex);
performwriteoperation;
signal(wmutex);
untilfalse;
end
parend
end
第四章調(diào)度與死鎖
1.高級(jí)調(diào)度與低級(jí)調(diào)度的主要任務(wù)是什么?為什么要引入中級(jí)調(diào)度?
a.作業(yè)調(diào)度又稱宏觀調(diào)度或高級(jí)調(diào)度,其主要任務(wù)是按一定的原則對(duì)外存上處于后備狀態(tài)的作業(yè)進(jìn)行選擇,
給選中的作業(yè)分配內(nèi)存,輸入輸出設(shè)備等必要的資源,并建立相應(yīng)的進(jìn)程,以使該作業(yè)的進(jìn)程獲得競爭處理機(jī)的
權(quán)利.
b.進(jìn)程調(diào)度又稱微觀調(diào)度或低級(jí)調(diào)度,其主要任務(wù)是按照某種策略和方法選取一個(gè)處于就緒狀態(tài)的進(jìn)程,
將處理機(jī)分配給它.
c.為了提高內(nèi)存利用率和系統(tǒng)吞吐量,引入了中級(jí)調(diào)度.
※中級(jí)調(diào)度:將暫時(shí)不能運(yùn)行的進(jìn)程調(diào)至外存上等待(掛起),將外存上重又具備運(yùn)行條件的就緒進(jìn)程重新
調(diào)入內(nèi)存。中級(jí)調(diào)度實(shí)際上是存儲(chǔ)器管理中的對(duì)換功能.
2.在作業(yè)調(diào)度中需做出哪兩個(gè)決定?
a.接納多少個(gè)作業(yè);b.接納哪些作業(yè).
3.在剝奪調(diào)度方式中,有哪些剝奪原則?
a.時(shí)間片原則;b.優(yōu)先權(quán)原則;c.短作業(yè)(進(jìn)程)優(yōu)先原則.
4.在OS中引起進(jìn)程調(diào)度的主要因素有哪些(有待討論)
a.進(jìn)程(作業(yè))完成或發(fā)生某時(shí)間而被阻塞.
b.時(shí)間片到.
c.優(yōu)先權(quán)高的進(jìn)程(作業(yè))到來.
d.比當(dāng)前明顯短的進(jìn)程(作業(yè))到來。
5.選擇調(diào)度方式和調(diào)度算法時(shí),應(yīng)遵循的準(zhǔn)則是什么?
a.面向用戶的準(zhǔn)則有周轉(zhuǎn)時(shí)間短,響應(yīng)時(shí)間快,截止時(shí)間的保證,以及優(yōu)先權(quán)準(zhǔn)則.
b.面向系統(tǒng)的準(zhǔn)則有系統(tǒng)吞吐量高,處理機(jī)利用率好,各類資源的平衡利用.
6.在批處理系統(tǒng),分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)中,各采用哪幾種進(jìn)程(作業(yè))調(diào)度算法(有待討論)
7.為什么說多級(jí)反饋隊(duì)列能較好地滿足各種用戶的需要
a.對(duì)于終端型作業(yè)用戶,由于終端型作業(yè)用戶所提交的作業(yè),大都屬于交互型作業(yè),系統(tǒng)只要能使這些作
業(yè)(進(jìn)程)在第一隊(duì)列所規(guī)定的時(shí)間片內(nèi)完成,便可使終端型作業(yè)用戶都感到滿意.
b.對(duì)于短批處理作業(yè)用戶,很短的批處理型作業(yè)如果僅在第一隊(duì)列中執(zhí)行一個(gè)時(shí)間片即可完成,便可獲得
與終端型作業(yè)一樣的相應(yīng)時(shí)間.對(duì)于稍長的作業(yè),通常也只需在第二隊(duì)列和第三隊(duì)列中各執(zhí)行一個(gè)時(shí)間片即可完
成,其周轉(zhuǎn)時(shí)間仍然很短.
c.對(duì)于長批處理作業(yè)用戶,用戶也不必?fù)?dān)心其作業(yè)長期得不到處理.
※多級(jí)反饋隊(duì)列:設(shè)置多個(gè)就緒隊(duì)列,各隊(duì)列具有不同的優(yōu)先權(quán)。作業(yè)在隊(duì)列中按FCFS調(diào)度算法執(zhí)行固定
的時(shí)間片,未完整則轉(zhuǎn)入下一隊(duì)列。最后一個(gè)隊(duì)列中的作業(yè)采用時(shí)間片輪轉(zhuǎn)法調(diào)度。
8.在按時(shí)間片輪轉(zhuǎn)調(diào)度算法中,在確定時(shí)間片的大小時(shí),應(yīng)考慮哪些因素
a.系統(tǒng)對(duì)響應(yīng)時(shí)間的要求;b.就緒隊(duì)列中進(jìn)程的數(shù)目;c.系統(tǒng)的處理能力.
9.為實(shí)現(xiàn)實(shí)時(shí)調(diào)度,對(duì)實(shí)時(shí)系統(tǒng)提出了哪些要求?
a.要提供必要的調(diào)度信息;
b.在調(diào)度方式上要具體情況具體分析;
c.要具有快速響應(yīng)外部中斷的能力:
d.快速任務(wù)分派.
10目前常用的調(diào)度方式和算法,能否應(yīng)用到實(shí)時(shí)系統(tǒng)中?
a.對(duì)于時(shí)間片輪轉(zhuǎn)調(diào)度算法,是一種常用于分時(shí)系統(tǒng)的調(diào)度算法;
b.對(duì)于非搶占式優(yōu)先權(quán)調(diào)度算法,可用于要求不太嚴(yán)格的實(shí)時(shí)控制系統(tǒng)中;
c.對(duì)于基于時(shí)鐘中斷搶占的優(yōu)先權(quán)調(diào)度算法,有很好的響應(yīng)效果,可用于大多數(shù)的實(shí)時(shí)系統(tǒng)中;
d.對(duì)于立即搶占(ImmediatePreemption)的優(yōu)先權(quán)調(diào)度,要求操作系統(tǒng)具有快速響應(yīng)外部時(shí)間的能力.
11在多處理機(jī)系統(tǒng)中,比較有代表性的線程調(diào)度方式有哪幾種
a.自調(diào)度方式;(所有處理在空閑時(shí)都可以自己從公共的進(jìn)程或線程隊(duì)列中取出一個(gè)進(jìn)程或線程
b.成組調(diào)度;(將一組相關(guān)的進(jìn)程或線程同時(shí)分配到一組處理機(jī)上運(yùn)行,進(jìn)程或線程與處理機(jī)一一對(duì)應(yīng)
c.專用處理機(jī)分配調(diào)度方式.(將同屬與一個(gè)應(yīng)用程序一組線程分配到一組處理機(jī)上,應(yīng)用程序未結(jié)束前,
處理機(jī)專用于這組線程。
12試比較自調(diào)度和成組調(diào)度
a.自調(diào)度方式是系統(tǒng)中有一個(gè)公共的線程或進(jìn)程的就緒隊(duì)列,所有的處理機(jī)在空鬧時(shí),都可自己從該隊(duì)列
中取出一個(gè)進(jìn)程或線程運(yùn)行;
b.成組調(diào)度是由系統(tǒng)將一組相關(guān)的進(jìn)程或線程,同時(shí)分配到一組處理機(jī)上運(yùn)行,進(jìn)程或線程與處理機(jī)一一
對(duì)應(yīng);
c.在一般情況下,成組調(diào)度的性能優(yōu)于自調(diào)度,因?yàn)樽哉{(diào)度存在瓶頸,低效,線程切換頻繁等問題,而成
組調(diào)度可減少線程的切換和調(diào)度的開銷,因而目前得到了廣泛的認(rèn)可.
13在OS/2中采用哪種調(diào)度方式和調(diào)度算法?
在OS/2中采用的是搶占式調(diào)度方式,多優(yōu)先級(jí)的搶占式調(diào)度算法.
14何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?
a.死鎖是指多個(gè)進(jìn)程因競爭資源而造成的一種僵局,若無外力作用,這些進(jìn)程都將永遠(yuǎn)不能再向前推進(jìn);
b.產(chǎn)生死鎖的原因有二,一是競爭資源,二是進(jìn)程推進(jìn)順序非法;
c.必要條件是:互斥條件,請(qǐng)求和保持條件,不剝奪條件和環(huán)路等待條件.
15在解決死鎖問題的幾個(gè)方法中,哪種方法最容易實(shí)現(xiàn)?哪種方法使資源的利用率最高?
a.解決死鎖可歸納為四種方法:預(yù)防死鎖,避免死鎖,檢測(cè)死鎖和解除死鎖;
b.其中,預(yù)防死鎖是最容易實(shí)現(xiàn)的;c.避免死鎖使資源的利用率最高.
16請(qǐng)?jiān)敿?xì)說明可通過哪些途徑預(yù)防死鎖
a.推棄”請(qǐng)求和保持"條件,就是如果系統(tǒng)有足夠的資源,便一次性地把進(jìn)程所需的所有資源分配給它;
b.推棄"不剝奪”條件,就是已經(jīng)保持了資源的進(jìn)程,當(dāng)它提出新的資源請(qǐng)求而不能立即得到滿足時(shí),必須釋
放它已經(jīng)保持的所有資源,待以后需要時(shí)再重新申請(qǐng);
c.攜棄"環(huán)路等待"條件,就是將所有資源按類型排序標(biāo)號(hào),所有進(jìn)程對(duì)資源的請(qǐng)求必須嚴(yán)格按序號(hào)遞增的次
序提出.
17在銀行家算法的例子中,如果P0發(fā)出的請(qǐng)求向量由Request0(0,2,0)改為Request0。l,0),問系統(tǒng)可否將資源分
配給它?
可以.
首先,Request0(0,1,0)<=Need0(7,4,3),Request0(0,l,0)<=Available(2,3,0);分配后可修改得一資源數(shù)據(jù)表俵略),
進(jìn)行安全性檢查,可以找到一個(gè)安全序列{Pl,P4,P3,P2,P0},或{Pl,P4,P3,P0,P2},因此,系統(tǒng)是安全的,可以立即將
資源分配給P0.
18銀行家算法
a.數(shù)據(jù)結(jié)構(gòu)
Available:可利用資源向量,定義可利用的資源數(shù)目,初始值為全部資源數(shù),隨分配和回收而動(dòng)態(tài)變化
Max:最大需求矩陣,定義對(duì)資源的最大需求
Allocation:分配矩陣,定義當(dāng)前已分配的資源數(shù)
Need:需求矩陣,定義尚需的資源數(shù)
Request:資源請(qǐng)求向量
XNeed[i,j]=Max[i,j]-Anocation[i,j]
b.算法描述
1.如果RequestiWNeed"則轉(zhuǎn)向步驟2否則認(rèn)為出錯(cuò)
2.如果RequestjWAvailable,則轉(zhuǎn)向步驟3否則表示系統(tǒng)中尚無足夠資源,R必須等待
3.系統(tǒng)試探把資源分給Pi并修改數(shù)據(jù)結(jié)構(gòu)
Available:=Available-Request,
Allocatiorii:=Allocationi+Request
Needj=Needj-Request
4.執(zhí)行安全性算法
Work:系統(tǒng)當(dāng)前可提供給進(jìn)程的資源數(shù)執(zhí)行算法開始時(shí)Work:=Available
Finish:系統(tǒng)是否有足夠資源分配給進(jìn)程初始值Finish:=false
a.從集合中找出滿足下列條件的進(jìn)程
Finish[i]:=false;
NeedWWork
b.進(jìn)程順利執(zhí)行直至完成,執(zhí)行下列操作
Work:=work+Allocationi
Finish[i]:=true;
gotosetp2
c.實(shí)例
A:=10,B:=5,C:=7
To時(shí)刻資源分配表
MaxAllocationNeedAvailable
進(jìn)程ABCABcABCABC
pO753010743332
pl322200122
p2902302600
p3222211011
p4433002431
To時(shí)刻一個(gè)安全序列(pl,p3,p4,pO,pO)
WorkNeedAllocationWo+Allo
進(jìn)程ABCABCABCABCFinish
pl332122200532TRUE
p3532011211743TRUE
p4743431002745TRUE
P27456003021047TRUE
pO10477430101057TRUE
19周轉(zhuǎn)時(shí)間
從昨夜提交給系統(tǒng)開始,到作業(yè)完成為止的這段時(shí)間間隔稱為作業(yè)周轉(zhuǎn)時(shí)間。作業(yè)周轉(zhuǎn)時(shí)間包括:
a.作業(yè)在外存后備隊(duì)列上等待(作業(yè))調(diào)度的時(shí)間。
b.進(jìn)程在就緒隊(duì)列上等待進(jìn)程調(diào)度的時(shí)間。
c.進(jìn)程在CPU上執(zhí)行的時(shí)間。
d.等待I/O操作完成的時(shí)間。
平均周轉(zhuǎn)時(shí)間:T=l/n[ETi]i=l…n
帶權(quán)周轉(zhuǎn)時(shí)間:w=TirrsiT箱系統(tǒng)提供的實(shí)際服務(wù)時(shí)間
平均帶權(quán)周轉(zhuǎn)時(shí)間:W=l/n[ETi/Tsl]i=l...n
第五章存儲(chǔ)器管理
1.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場(chǎng)合?
a.首先由編譯程序?qū)⒂脩粼创a編譯成若干目標(biāo)模塊,再由鏈接程序?qū)⒕幾g后形成的目標(biāo)模塊和所需的庫
函數(shù)鏈接在一起,組成一個(gè)裝入模塊,再由裝入程序?qū)⒀b入模塊裝入內(nèi)存;
b.裝入模塊的方式有:絕對(duì)裝入方式,可重定位方式和動(dòng)態(tài)運(yùn)行時(shí)裝入方式;
c.絕對(duì)裝入方式適用于單道程序環(huán)境下;
d.可重定位方式適用于多道程序環(huán)境下;(不允許程序在運(yùn)行中在內(nèi)存中移動(dòng)位置)
e.動(dòng)態(tài)運(yùn)行時(shí)裝入方式也適用于多道程序環(huán)境下.(裝入到內(nèi)存中的地址仍是相對(duì)地址,程序真正執(zhí)行時(shí)才
進(jìn)行地址轉(zhuǎn)換,需要特殊的硬件支持)
2.何謂靜態(tài)鏈接及裝入時(shí)動(dòng)態(tài)鏈接和運(yùn)行時(shí)的動(dòng)態(tài)鏈接
a.靜態(tài)鏈接是指事先進(jìn)行鏈接形成一個(gè)完整的裝入模塊,以后不再拆開的鏈接方式;
b.裝入時(shí)動(dòng)態(tài)鏈接是指目標(biāo)模塊在裝入內(nèi)存時(shí),邊裝入邊鏈接的鏈接方式:
c.運(yùn)行時(shí)的動(dòng)態(tài)鏈接是將某些目標(biāo)模塊的鏈接推遲到執(zhí)行時(shí)才進(jìn)行.
3.在進(jìn)行程序鏈接時(shí),應(yīng)完成哪些工作?
a.對(duì)相對(duì)地址進(jìn)行修改;b.變換外部調(diào)用符號(hào).
4.在動(dòng)態(tài)分區(qū)分配方式中,可利用哪些分區(qū)分配算?
a.首次適應(yīng)算法;b.循環(huán)首次適應(yīng)算法;c.最佳適應(yīng)算法.
5.在動(dòng)態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?
應(yīng)在每個(gè)分區(qū)的起始地址部分,設(shè)置一些用于控制分區(qū)分配的信息,以及用于鏈接各分區(qū)的前向指針;在分
區(qū)尾部則設(shè)置一后向指針,通過前,后向指針將所有的分區(qū)鏈接成一個(gè)雙向鏈.
6.為什么要引入動(dòng)態(tài)重定位?如何實(shí)現(xiàn)?
a.為了在程序執(zhí)行過程中,每當(dāng)訪問指令或數(shù)據(jù)時(shí),將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址,
引入了動(dòng)態(tài)重定位.
b.可在系統(tǒng)中增加一個(gè)重定位寄存器,用它來裝入(存放)程序在內(nèi)存中的起始地址,程序在執(zhí)行時(shí),真正訪
間的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相加而形成的,從而實(shí)現(xiàn)動(dòng)態(tài)重定位.
7.試用類Pascal語言來描述首次適應(yīng)算法進(jìn)行內(nèi)存分配的過程.(略)
8.在采用首次適應(yīng)算法回收內(nèi)存時(shí),可能出現(xiàn)哪幾種情況?應(yīng)怎樣處理這些情況?
a.回收區(qū)與插入點(diǎn)的前一個(gè)分區(qū)相鄰接,此時(shí)可將回收區(qū)與插入點(diǎn)的前一分區(qū)合并,不再為回收分區(qū)分配
新表項(xiàng),而只修改前鄰接分區(qū)的大??;
b.回收分區(qū)與插入點(diǎn)的后一分區(qū)相鄰接,此時(shí)合并兩區(qū),然后用回收區(qū)的首址作為新空閑區(qū)的首址,大小
為兩者之和;
c.回收區(qū)同時(shí)與插入點(diǎn)的前后兩個(gè)分區(qū)鄰接,此時(shí)將三個(gè)分區(qū)合并,使用前鄰接分區(qū)的首址,大小為三區(qū)
之和,取消后鄰接分區(qū)的表項(xiàng);
d.回收區(qū)沒有鄰接空閑分區(qū),則應(yīng)為回收區(qū)單獨(dú)建立一個(gè)新表項(xiàng),填寫回收區(qū)的首址和大小,并根據(jù)其首
址,插入到空閑鏈中的適當(dāng)位置.
9.在系統(tǒng)中引入對(duì)換后帶有哪些好處?
能將內(nèi)存中暫時(shí)不運(yùn)行的進(jìn)程或暫時(shí)不用的程序和數(shù)據(jù),換到外存上,以騰出足夠的內(nèi)存空間,把已具備運(yùn)
行條件的進(jìn)程或進(jìn)程所需的程序和數(shù)據(jù)換入內(nèi)存,從而大大地提高了內(nèi)存的利用率.(※也是對(duì)換的定義)
10為實(shí)現(xiàn)對(duì)換,系統(tǒng)應(yīng)具備哪兒方面功能?
a.對(duì)對(duì)換空間的管理;b.進(jìn)程的換出;c.進(jìn)程的換入.
11在以進(jìn)程為單位進(jìn)行對(duì)換時(shí),每次是否都將整個(gè)進(jìn)程換出?為什么?
a.以進(jìn)程為單位進(jìn)行對(duì)換時(shí),每次都將整個(gè)進(jìn)程換出;
b.目的為了解決內(nèi)存緊張的問題,提高內(nèi)存的利用率.
12為實(shí)現(xiàn)分頁存儲(chǔ)管理,需要哪些硬件支持你認(rèn)為以Intel8086,MC68000,Intel80286為芯片的微機(jī),是否適合
于實(shí)現(xiàn)分頁管理(有待討論)
a.設(shè)置頁表寄存器,存放頁表在內(nèi)存中的始址及頁表長度
b.設(shè)置“聯(lián)想寄存器”,又叫“快表”,是具有并行查詢能力的特殊高速緩沖存儲(chǔ)器
13請(qǐng)較詳細(xì)地說明,引入分頁存儲(chǔ)管理(估計(jì)印錯(cuò)了,是分段存儲(chǔ)管理)是為了滿足用戶哪兒方面的需要
a.方便了編程;b.實(shí)現(xiàn)了分段共享;c.實(shí)現(xiàn)了分段保護(hù);d.實(shí)現(xiàn)了動(dòng)態(tài)鏈接;e.實(shí)現(xiàn)了動(dòng)態(tài)增長.
14在具有快表的段頁式存儲(chǔ)管理方式中,如何實(shí)現(xiàn)地址變換?
首先,必須配置一段表寄存器,在其中存放段表始址和段長TL.進(jìn)行地址變換時(shí),先利用段號(hào)S,與段長
TL進(jìn)行比較,若S<TL,表示未越界,(若S>=TL,表示段號(hào)太大,訪問越界,產(chǎn)生越界中斷信號(hào))于是利用段表
始址和段號(hào)來求出該段對(duì)應(yīng)的段表項(xiàng)在段表中的位置,從中求出該段的頁表始址,并利用邏輯地址中的段內(nèi)頁號(hào)
P來獲得對(duì)應(yīng)頁的頁表項(xiàng)位置,從中讀出該頁所在的物理塊號(hào)b,再用塊號(hào)b和頁內(nèi)地址構(gòu)成物理地址.
15為什么說分段系統(tǒng)較之分頁系統(tǒng)更易于實(shí)現(xiàn)信息共享和保護(hù)?
a.對(duì)于分頁系統(tǒng),每個(gè)頁面是分散存儲(chǔ)的,為了實(shí)現(xiàn)信息共享和保護(hù),則頁面之間需要一一對(duì)應(yīng)起來,為
此需要建立大量的頁表項(xiàng);
b.而對(duì)于分段系統(tǒng),每個(gè)段都從0開始編址,并采用一段連續(xù)的地址空間,這樣在實(shí)現(xiàn)共享和保護(hù)時(shí),只
需為所要共享和保護(hù)的程序設(shè)置一個(gè)段表項(xiàng),將其中的基址與內(nèi)存地址一一對(duì)應(yīng)起來即可.
16分頁和分段有何區(qū)別?
a.分頁和分段都采用離散分配的方式,且都要通過地址映射機(jī)構(gòu)來實(shí)現(xiàn)地址變換,這是它們的共同點(diǎn);
b.對(duì)于它們的不同點(diǎn)有三,第一,從功能上看,頁是信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消
減內(nèi)存的外零頭,提高內(nèi)存的利用率,即滿足系統(tǒng)管理的需要,而不是用戶的需要;而段是信息的邏輯單位,它
含有一組其意義相對(duì)完整的信息,目的是為了能更好地滿足用戶的需要;
c.頁的大小固定且由系統(tǒng)確定,而段的長度卻不固定,決定于用戶所編寫的程序;
d.分頁的作業(yè)地址空間是一維的,而分段的作業(yè)地址空間是二維的.
17試全面比較連續(xù)分配和離散分配方式.
a.連續(xù)分配是指為一個(gè)用戶程序分配一個(gè)連續(xù)的地址空間,包括單一連續(xù)分配方式和分區(qū)式分配方式,前
者將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),系統(tǒng)區(qū)供操作系統(tǒng)使用,用戶區(qū)供用戶使用,是最簡單的一種存儲(chǔ)方式,但只能
用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度路面施工環(huán)境保護(hù)合同范本4篇
- 二零二五版跨境電商智能物流系統(tǒng)租賃合同3篇
- 二零二五年度材料買賣合同范本:石油化工材料購銷合作協(xié)議書2篇
- 二零二五年度版權(quán)合同管理崗位職責(zé)解析3篇
- 年度全熱風(fēng)載流焊機(jī)戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 二零二五版導(dǎo)游人員國際交流聘用合同3篇
- 2025年度園林植物病蟲害防治勞務(wù)合同4篇
- 2024版建筑工程施工安全控制合同書一
- 二零二五年度搬家運(yùn)輸貨物貨物包裝材料供應(yīng)合同3篇
- 二零二五年個(gè)人商業(yè)房產(chǎn)抵押擔(dān)保合同樣本3篇
- GB/T 14864-2013實(shí)心聚乙烯絕緣柔軟射頻電纜
- 品牌策劃與推廣-項(xiàng)目5-品牌推廣課件
- 信息學(xué)奧賽-計(jì)算機(jī)基礎(chǔ)知識(shí)(完整版)資料
- 發(fā)煙硫酸(CAS:8014-95-7)理化性質(zhì)及危險(xiǎn)特性表
- 數(shù)字信號(hào)處理(課件)
- 公路自然災(zāi)害防治對(duì)策課件
- 信息簡報(bào)通用模板
- 火災(zāi)報(bào)警應(yīng)急處置程序流程圖
- 耳鳴中醫(yī)臨床路徑
- 安徽身份證號(hào)碼前6位
- 分子生物學(xué)在動(dòng)物遺傳育種方面的應(yīng)用
評(píng)論
0/150
提交評(píng)論