浙江大學1998年碩士研究生入學考試操作系統試題
來源:
時間:2007-06-06 14:33:15
浙江大學
1998年攻讀碩士學位研究生入學考試試題
試題1至4為選擇題,分別從供選擇的答案中選出一個唯一正確的,填入“ ”。
試題1(3分):下列選擇中, 不是操作系統關心的主要問題,
A、管理計算機裸機 B、設計、提供用戶程序與計算機硬件系統的界面
C、管理計算機系統資源 D、高級程序設計語言的編譯器
試題2(5分):采用 不會產生內部碎片。
A、分頁式存儲管理 B、分段式存儲管理
C、固定分區式存儲管理 D、段頁式存儲管理
試題3(5分):下列幾種關于進程的敘述, 最不符合操作系統對進程的理解。
A、進程是在多程序并行環境中的完整的程序
B、進程可以由程序、數據和進程控制塊描述
C、線程(THREAL)是一種特殊的進程
D、進程是程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。
試題4(5分):關于臨界區問題的一個算法(假設只有進程P0和P1可能會進入該臨界區)如下(I為0或1),該算法 。
A、不能保證進程互斥進入臨界區,且會出現“饑餓”(starvation)
B、不能保證進程互斥進入臨界區但不會出現:“饑餓”
C、保證進程互斥進入臨界區,但會出現:“饑餓”
D、保證進程互斥進入臨界區,不會出現:“饑餓”
repeat
retry:if (turn≠-1) turn= i ;
if (turn≠ i) go to retry;
turn=-1;
Critical Section;(*臨界區*)
turn=0;
Remainder Section;
until false
試題5(10分):磁盤系統調度中,采用SCAN(“掃描”)調度算法為任務隊列67、65、124、14、122、37、183、98 服務,試計算服務結束時,磁頭總共移動了幾個磁道,假設磁頭總第0道至第199道之間移動,開始服務時,磁頭剛從60移到67。
試題6(10分):某操作系統(假設為“LINUX”)設定一個定時器,每隔10ms產生一次“時間到”中斷,該中斷的服務程序采用下述算法:
struct task_struct *p=current; /*指針P指向當前運行進程的進程控制塊PCB*/
/*ticks保存最近兩次中斷服務期間的中斷次數,通常是1*/
p->counter=p->counter-ticks; /*counter記錄尚可運行的時間段*/
if (p->counter<0) { /*如果PCB的counter變量小于0*/
p>counter = 0;
need resched = 1 ;} /*全程量need-resched置位表示應進行新一輪調度*/
“LINUX”若發現need-resched置位,則調用如下的schedule(),進行新一輪調度;
void schedule(void)
{ need-resched = 0;
prev = current; /*指針prev指向當前運行進程的PCB*/
cli(); /*move an exhausted process to be last. */
if (!prev->counter && prev->policy == SCHED_RR){
prev->counter=prev->priority. /*prioriry表示進程的優先權*/
move_last_runqueue(prev); } /*將當前進程搬到就緒進程隊列未尾*/
p= init_task.next_run; /*指針P指向就緒進程隊列中第一個PCB*/
sti(); c=-1000; next=idle_task;
while ( p!= &init_task) { /* 歷就緒進程隊列中所有PCB*/
/*priority表示進程的優先權*/
/*下一個進程*/
}
/“CPU從prev進 切換到 進程*/
試運用操作系統進程調度有關原理,分析“LINUX”的進程調度策略。
試題7 :臨界區 要求設計若干進程間的 ,以保證互斥訪問共享數據,例如,如下所示面包房算法( )就是關于 試論述該算法采用thoose數據的必要性,并舉例說明
結束
特別聲明:①凡本網注明稿件來源為"原創"的,轉載必須注明"稿件來源:育路網",違者將依法追究責任;
②部分稿件來源于網絡,如有侵權,請聯系我們溝通解決。
閱讀全文