




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统B»实验指导书计算机科学与技术系二o一五年实验一几种操作系统的界面1实验二进程调度程序设计2实验三存储管理程序设计10实验一几种操作系统的界面【目的与要求】(-)目的本实验的目的是使学生熟悉12种操作系统的界面,在熟练使用机器的基础上,能了解 各种命令和调用在系统中的大致工作过程。也就是通过操作系统的外部特征,逐步深入到操作 系统的内部实质内容中去,培养学生对系统软件的认知、结构、设计及实施能力。(二)要求1.能熟练的在1 2种操作系统的环境下工作,学会使用各种命令,熟悉系统提供的各 种功能。主动而有效地使用计算机。2,熟悉系统实用程序的调用方法和各种系统调用模块的功能和作用
2、。【实验内容】在某种操作系统的环境下建立、修改、运行、打印源程序和结果,最后撤消一个完整的程 序。提示:可按下述步骤进行1 .编写一个完整的源程序,通过编辑命令送入机器,建立源程序文件;2 .编译该源文件,建立相应的目标文件;3 .编译有错时,再用编辑命令修改源文件,消除全部词法和语法错误;4 .连接目标文件,形成可执行文件;5 .执行该文件,得到结果;6 .打印输出源程序和运行结果;7 .撤消本次实验中形成的所有文件。实验二进程调度程序设计【目的与要求】(一)目的进程是操作系统最重要的概念之一,进程调度是操作系统的主要内容,本实验要求学生独立地用高级语言编写一个进程调度程序,调度算法可任意选
3、择或自行设计。本实验可使学生加深对进程调度和各种调度算法的理解,培养学生对操作系统软件的认知、结构、设计及实施能力,通过综合运用操作系统理论和技术,分析、构造、设 计、实施和运行操作系统的工程技能。(-)要求1 .设计一个有几个进程共行的进程调度程序,每个进程由一个进程控制块(PCB)表示, 进程控制块通常应包括下述信息:进程名,进程优先数,进程需要运行的时间,占用CPU勺时 间以及进程的状态等,且可按照调度算法的不同而增删。2 .调度程序应包含2 3种不同的调度算法,运行时可以任选一种,以利于各种方法的 分析和比较。3 .系统应能显示或打印各进程状态和参数的变化情况,便于观察。【实验内容】【
4、示例】1 题目本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行 R(run)、就绪W(wait)和完成F(finish)三种状态之一,并假定起始状态都是就绪状态W为了便于处理,程序中进程的运行时间以时间片为单位计算。各进程的优先数 或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。进程控制块结构如下:表 2-1 PCB进程标识符链指针优先数/轮转时间片数占用CPU时间片数进程所需时间片数进程状态进程控制块链结构如下:图2-1进程控制块链结构其中:RUN 当前运行进程指针;head 一进程就绪链链首指针;tail 进程就绪链链尾指针。2 .算法与框图程序框图
5、如下图所示链首进程投入运行链首进程投入运行结束:结束图2-2进程调度框图(1)优先数法。进程就绪链按优先数大小从大到小排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减1,说明它已运行了一个时间片,优先数也减3。理由是该进程如果在一个时间片中完成不了,优先级应降低一级。 接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续运行,否则,调度就绪链链首进程投入运行。原运行进程再按其优 先数大小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片 数。(2)简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的
6、 轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相应于优先数法的优先数 记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理 机的时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变 它们的进程状态,直至所有进程完成各自的时间片。3.程序清单.# in elude <stdio.h># in elude <stdlib.h># defi ne furthest 5struct process /*PCB STRUCTURE*/int id;int prior
7、ity;int cputime;int alltime;char state;int n ext; Jprocha in furthest-1;int proc num;int ran d();int algo;int run 5head3tailJ;main() /*MAIN PROGRAM*/ aga n: printf( 44 type the algorithm is (1 :RR,2:PRIO):);scanf( " %d, &algo);if (algo=2) printf( " output of priority.);in it();prischQ;
8、elseif (algo=1) prin tf( woutput of round robin" ); in it(); timesch();else print% "try again,please;goto aga n;)for (j=1 ; j<=4O;j+)printf( "=”);printf(n<M);for (j=1 ;j<=40;j+) printf(" =");printf(ncn);printf(" system finishedprin t()/PRINT THE RUNNING PROCESS
9、,W WAITING QUEUE AND PCBSEQUENCE int k5p;for (k=1 ;k<=40;k+) printf( ");printf( nrUnning proc.");printf( " waiting queue. ");printf( n " %dn ,prochainrun.id);p=head;while(p!=0) printf( " 5d',p);p=procha inf p. next; printf( n ") ; for (k=1 ;k<=40;k+) prin
10、tf(");print* 优);printf( “id”);for (k=1 ;k<furthest+1 ;k+) printf( " %5d' ,prochaink.id);printf( nM,);printf( " priority "); for (k=1 ;k<furthest+1 ;k+) printf( “ % 5d' 5prochaink.priority);printf( nM,);printf( " cputime ");for (k=1 ;k<furthest+1 ;k+)in
11、sert(q) in sert2() mit()(printf( " %5d' ,prochaink.cputime);printf( n " ) ; printf( " alltime "); for (k=1 ;k<furthest+1 ;k+)printf( " %5d' ,prochaink.alltime);printf( nM );printf( " state”);for (k=1 ;k<furthest+1 ;k+)printf( " 5c” ,prochaink.state);p
12、rintf( n ”);printf( “ next ”);for (k=1 ;k<furthest+1 ;k+)printf( " %5d' ,prochaink.next);printf( n ”);/*INSERT A PROCESS*/int p,s; p=head; s=procha in head. nextwhile(procha in q.priority<procha in s.priority )&&( s!=0) P=s;s=procha in s. next;procha in p. next=q; procha in q.
13、 next=s;/*PUT A PROCESS ONTO THE TAIL OF THE QUEUE7 prochai n tail. next=ru n;tail=ru n;procha inrun . next=0;/*CREATE A W AITING QUEUE*/inti;head=0;if (alog=2)for (i=1 ;i<furthest+1 ;i+) procha in i.id=i;procha in i.priority=(ra nd()+11)%41;procha in i.cputime=O;procha in i.alltime=(ra nd()+1)%7
14、;prochaini.state= 1 W ;procha in i. next=0;if(procha in i.priority<procha in head.priority)&&(head!=0) in sert(procha in i.id); else procha in i. next=head; head= procha in i.id;)elsefor (i=1 ;i<furthest+1 ;i+) procha in i.id=i;procha in i.priority=(ra nd()+1)%3+1;procha in i.cputime=O
15、;procha in i.alltime=(ra nd()+1)%7;prochaini.state= ' W ;prochai ni. next=(i+1 )%(furthest+1); head=1;tail=furthest;procha in furthest .n ext=0;run=head;rg - Wprochainrun.state= ,卬; ihead=procha in head, next;procha inrun . next=0;print();prisch() "THE PROCESS WITH PRIO ALGORITHM*/ while(ru
16、 n!=0) procha inrun .cputime+=1;procha in run .priority-=3;procha inrun .alltime-=1; if(procha in ru n.alltime=O) prochainrun.sta te= 1 F* ; procha inrun . next=0; if(head!=0)run=head;prochainrun.state= f R1 head=procha in head. next; else procha in 0.id=procha inrun .id;run=0;elseif(procha in run .
17、priority< procha in head. priority )&&(head!=0) proch ainrun.state= f W ;in sert(r un);run=head;prochainrun.state=,卬;head= procha in head, next;)prin t();)timesch() /*THE PROCESS WITH RR ALRORITHM7 while(ru n!=0) procha inrun .alltime-=1;procha inrun .cputime+=1;if(prochai nrun .alltime=0
18、)* procha inrun .state= " F'; procha inrun . next=0; if(head!=0)run=head;prochainrun.state=,卬;head=procha in head. next; else procha in 0.id=procha inrun .id; run=0;)elseif(procha inrun .cputime=procha inrun. priority )&&(head!=0) prochainrun.state=,W ;procha inrun .cputime=0;in ser
19、t2();run=head;prochainrun.state= r R head=procha in head. next; ) prin t();)实验三存储管理程序设计【目的与要求】(一)目的存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计,来了解虚拟存储技术 的特点,掌握请求页式存储管理的页面置换算法。通过本实验可使学生加深对虚拟存储管理技 术的理解,培养学生对操作系统软件的认知、结构、设计及实施能力,通过综合运用操作系统理论和技术,分析、构造、设计、实施和运行操作系统的工程技能。(二)要求模拟页式
20、虚拟存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法 (FIFO)处理缺页中断。【实验内容】【提示】(1)为了装入一个页面而必须调出一页时,如果被选中调出的页面在执行中没有修改过, 则不必把该页重新写到磁盘上(因磁盘上已有副本)。因此,在页表中可以增加是否修改过的标志,当执行“存”指令、“写”指令时把对应页的修改标志置成“ F表示该页修改过,否则为“ 0”表示该页未修改过。页表格式如表3-1所示。表31页表格式页号标志主存块号修改标志磁盘上的位置(2)设计一个地址转换程序来模拟硬件的地址转换和缺页中断。当访问的页在主存时则形成绝对地址,但不去模拟指令的执行,可用输出转换后的绝对地址来表示一条指令已完成。当访问的页不在主存时则输出“*该页页号”来表示硬件产生了一次缺页中断。模拟地址转换的程序流程如图3-1所示。(3)编制一个FIFO页面调度程序。FIFO页面调度算法总是先调出作业中最先进入主存的那一页,因此,可以用一个数组来构成页号队列。数组中每个元素是该作业已在主存的页面号,假定分配给作业的主存块数为m且该作业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论