î 例題11
什么是多道程序?支持多道程序的軟、硬件條件是什么?
例題11解答
在主存同時(shí)存放多個(gè)程序,使它們同時(shí)處于運(yùn)行狀態(tài)的一種程序設(shè)計(jì)技術(shù),叫做多道程序設(shè)計(jì)。
支持多道程序設(shè)計(jì)的軟、硬件條件是:
(1)存儲(chǔ)器管理:為多道程序分配主存,提供地址轉(zhuǎn)換機(jī)構(gòu)、主存保護(hù)和主存擴(kuò)充的功能;
(2)處理機(jī)管理:使系統(tǒng)能按照某種策略把CPU分配給各個(gè)處理單元;
(3)設(shè)備管理:系統(tǒng)能根據(jù)運(yùn)行程序的要求為其分配所需設(shè)備,并控制設(shè)備完成用戶希望的數(shù)據(jù)傳輸;
(4)文件管理:為運(yùn)行程序提供所需的各種聯(lián)機(jī)處理和共享的信息等。
î 例題12
計(jì)算機(jī)系統(tǒng)中,斷點(diǎn)、恢復(fù)點(diǎn)與PC寄存器之間的關(guān)系是什么?特殊的中斷處理程序不一定從恢復(fù)點(diǎn)位置開始執(zhí)行,能舉出一個(gè)簡單的例子簡單說明一下為什么嗎?
例題12解答
一般情況下,斷點(diǎn)應(yīng)為中斷的那一瞬間PC的內(nèi)容減去前一條指令所占單元長度,即中斷發(fā)出時(shí)正在執(zhí)行的那一條指令地址。中斷時(shí)PC所指的地址(即斷點(diǎn)的邏輯后續(xù)指令)稱為恢復(fù)點(diǎn)。因?yàn)樵瓉肀恢袛嗟挠脩舫绦蛟诖舜沃袛嗵幚磉^程中可能由于某些與其相關(guān)的事件不具備當(dāng)前繼續(xù)運(yùn)行的條件,可能被降低了運(yùn)行的優(yōu)先權(quán),也可能由于此次中斷的處理使得其他程序獲得了比其更高的優(yōu)先權(quán)。為了權(quán)衡系統(tǒng)內(nèi)各道程序的運(yùn)行機(jī)會(huì),在此時(shí)有必要進(jìn)行一次調(diào)度選擇。
î 例題13
某多道程序設(shè)計(jì)系統(tǒng)配有一臺(tái)處理器和兩臺(tái)外設(shè)IO1、IO2,現(xiàn)有三個(gè)優(yōu)先級(jí)由高到低的作業(yè)J1、J2、J3都已裝入了主存,它們使用資源的先后順序和占用時(shí)間分別是:
J1:IO2(30ms),CPU(10ms);IO1(30ms),CPU(10ms);
J2:IO1(20ms),CPU(20ms);IO2(40ms);
J3:CPU(30ms),IO1(20ms)。
處理器調(diào)度采用可搶占的優(yōu)先數(shù)算法,忽略其他輔助操作時(shí)間,回答下列問題。
(1)分別計(jì)算作業(yè)J1、J2和J3從開始到完成所用的時(shí)間。
(2)三個(gè)作業(yè)全部完成時(shí)CPU的利用率。
(3)三個(gè)作業(yè)全部完成時(shí)外設(shè)IO1的利用率。
例題13解答
為了清楚的描述作業(yè)執(zhí)行情況,我們用圖1-7表示三個(gè)作業(yè)的并行執(zhí)行情況。
(1)J1占用IO2傳輸30ms時(shí),J1傳輸完成,搶占J2的CPU,運(yùn)行10ms,再傳輸30ms,運(yùn)行10ms,完成。由圖1-2可見,J1從開始到完成所用的時(shí)間為:30+10+30+10=80ms。
J2與其并行地在IO1上傳輸20ms,搶占J3的CPU,J2運(yùn)行10ms后,被J1搶占CPU,等待10ms之后,J2再次得到CPU,運(yùn)行10ms,J2啟動(dòng)IO2傳輸,40ms完成。由圖1-2可見,J2從開始到完成所用的時(shí)間為:20+10+10+10+40=90ms。
J3在CPU上執(zhí)行20ms,被J2搶占CPU,等待30ms,再運(yùn)行10ms,等待10ms,J3啟動(dòng)IO1進(jìn)行20ms的傳輸,完成。J3從開始到完成所用的時(shí)間為:20+30+10+10+20=90ms。
(2)三個(gè)作業(yè)全部完成時(shí),CPU的利用率為:(10+20+30+10)/90=7/9=78%。
(3)三個(gè)作業(yè)全部完成時(shí),外設(shè)IO1的利用率為:(20+30+20)/90=7/9=78%。
î 例題14
A、B兩個(gè)程序,程序A按順序使用CPU 10s,使用設(shè)備甲5s,使用CPU 5s,使用設(shè)備乙5s,最后使用CPU 10s。程序B按順序使用設(shè)備甲10s,使用CPU 10s,使用設(shè)備乙5s,使用CPU 5s,使用設(shè)備乙10s,試問:
(1)在順序環(huán)境下執(zhí)行程序A和程序B,CPU的利用率是多少?
(2)在多道程序環(huán)境下,CPU的利用率是多少?
例題14解答
(1)程序A和程序B順序執(zhí)行時(shí),程序A執(zhí)行完畢,程序B才開始執(zhí)行。兩個(gè)程序共耗時(shí)75s,其中占用CPU的時(shí)間為40s,因此順序執(zhí)行時(shí)CPU的利用率為40/75=53%。
(2)在多道程序環(huán)境下,兩個(gè)程序并發(fā)執(zhí)行,其執(zhí)行情況如表1-1所示。可以看出,兩個(gè)程序共耗時(shí)40s,其中CPU運(yùn)行時(shí)間為40s,故此時(shí)的CPU的利用率為40/40=100%。
表1-1 在多道程序環(huán)境下A、B執(zhí)行情況
CPU |
程序A(10s) |
程序B(10s) |
程序A(5s) |
程序B(5s) |
設(shè)備A(10s) |
程序A |
CPU |
設(shè)備甲+等待 |
CPU |
設(shè)備乙 |
CPU |
程序B |
設(shè)備甲 |
CPU |
設(shè)備乙 |
CPU |
設(shè)備乙 |