操作系统实验任务书08软件.docx

上传人:b****2 文档编号:3163481 上传时间:2023-05-05 格式:DOCX 页数:15 大小:256.77KB
下载 相关 举报
操作系统实验任务书08软件.docx_第1页
第1页 / 共15页
操作系统实验任务书08软件.docx_第2页
第2页 / 共15页
操作系统实验任务书08软件.docx_第3页
第3页 / 共15页
操作系统实验任务书08软件.docx_第4页
第4页 / 共15页
操作系统实验任务书08软件.docx_第5页
第5页 / 共15页
操作系统实验任务书08软件.docx_第6页
第6页 / 共15页
操作系统实验任务书08软件.docx_第7页
第7页 / 共15页
操作系统实验任务书08软件.docx_第8页
第8页 / 共15页
操作系统实验任务书08软件.docx_第9页
第9页 / 共15页
操作系统实验任务书08软件.docx_第10页
第10页 / 共15页
操作系统实验任务书08软件.docx_第11页
第11页 / 共15页
操作系统实验任务书08软件.docx_第12页
第12页 / 共15页
操作系统实验任务书08软件.docx_第13页
第13页 / 共15页
操作系统实验任务书08软件.docx_第14页
第14页 / 共15页
操作系统实验任务书08软件.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统实验任务书08软件.docx

《操作系统实验任务书08软件.docx》由会员分享,可在线阅读,更多相关《操作系统实验任务书08软件.docx(15页珍藏版)》请在冰点文库上搜索。

操作系统实验任务书08软件.docx

操作系统实验任务书08软件

操作系统课程设计

任务书

一、目的、要求

1.课设目的

本次实验的时间为一周,目的是使学生进一步加深对操作系统主要管理模块的理解和掌握,并使用高级程序设计语言进行操作系统中的典型算法的模拟实现。

通过本次课程设计对操作系统的相关重要概念进一步的理解,提高学生的实践动手能力。

2.内容要求

(1)每个同学完成一个设计题目,具体的题目和要求见附件一。

(2)根据设计任务,用可视化编程工具编制程序,在机器上调试运行,并通过上机考核。

(3)要求界面设计美观,功能完整,使用方便。

(4)按照“课程设计报告规范”的要求,写出课程设计报告。

二、计划进度

序号

设计(实验)内容

完成时间

备注

1

《操作系统课程设计》动员大会

课程设计开始前1天

2

总体设计

第1工作日

3

编码与调试

第2、3工作日

4

撰写设计报告

第4工作日

5

验收检查

第5工作日

三、设计成果要求

1.设计的软件成果要统一拷贝到老师指定的磁盘中,用班级-姓名命名文件夹,所用文档拷贝在其中。

2.实验报告要按规范的格式撰写。

具体要求见附件二。

四、考核方式

1.平时考核:

考勤、学习态度、设计进度等。

2.检查验收:

运行结果、讲解、口试等。

3.报告评定:

内容与格式。

最后成绩=平时考核(30%)+检查验收(35%)+报告评定(35%)

 

指导教师:

李为、马炜

2010年6月30日

附件一操作系统课程设计题目

一、设计要求

1.用可视化编程工具编制程序,在机器上调试运行,并通过上机考核。

2.在3个题目中完成其中的1个。

其中题目1的难度较高,为一类题,最高成绩为优,题目2、3为二类题,最高成绩为良。

3.要求界面设计美观,功能完整,使用方便,能运行通过。

二、设计题目

题目1SP00LING假脱机输入输出技术模拟

1.设计一个实现SP001ING技术的进程

要求设计一个SP00LING输出进程和两个请求输出的用户进程,以及一个SP00LING输出服务程序。

当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由输出服务程序将该信息送入输出井。

待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。

之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等),等待SP00LING进程进行输出。

SP00LING输出进程工作时,根据请求块记录的各进程要输出的信息,将其实际输出到打印机或显示器。

这里,SP00LING输出进程与请求输出的用户进程可并发运行。

2.设计进程调度算法

进程调度采用随机算法,这与进程输出信息的随机性相一致。

两个请求输出的用户进程的调度概率各为45%,SP00LING输出进程为10%,这由随机数发生器产生的随机数来模拟决定。

3.进程状态

进程基本状态有3种,分别为可执行、等待和结束。

可执行态就是进程正在运行或等待调度的状态;等待状态又分为等待状态1、等待状态2和等待状态3。

状态变化的条件为:

①进程执行完成时,置为“结束”态。

②服务程序在将输出信息送输出井时,如发现输出井已满,将调用进程置为“等待状态1”。

③SP00LING进程在进行输出时,若输出井空,则进入“等待状态2”。

④SP00LING进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等待输出的进程置为“可执行状态”。

⑤服务程序在输出信息到输出井并形成输出请求信息块后,若SP00LING进程处于等待态,则将其置为“可执行状态”。

⑥当用户进程申请请求输出块时,若没有可用请求块时,调用进程进人“等待状态3”。

4.数据结构

①进程控制块PCB

structpcb

{intid;/*进程标识数*/

Intstatus;/*进程状态*/

Intcount:

/*要输出的文件数*/

Intx:

/*进程输出时的临时变量*/

}PCB[3];

status=

其中,

0为可执行态;

1为等待状态1,表示输出井满,请求输出的用户进程等待;

2为等待状态2,表示请求输出井空,SP00LING输出进程等待;

3为等待状态3,表示请求输出井满,请求输出的用户进程等待;

4为结束态,进程执行完成。

②请求输出块reqblock

struct{

intreqname;/*请求进程名*/

intlength;/*本次输出信息长度*/

intaddr;/*信息在输出井的首地址*/

}reqblock:

[10];

③输出井BUFFER

SP00LING系统为每个请求输出的进程在输出井中分别开辟一个区。

本实验可设计一个二维数组(intbuffer[2][100])作为输出井。

每个进程在输出井最多可占用100个位置。

5.编程说明

为两个请求输出的用户进程设计两个输出井。

每个井可存放100个信息,即buffer[2][100]。

为此,设计两个计数器,使用数组C1[2],分别表示两个用户进程可使用的输出井的空间。

其初值c1[0],c1[1]都为100。

用C2[2][2]二维指针数组表示输出井使用情况。

C2[0][0]代表buffer[1]的第一个可用空缓冲指针,C2[0][1]代表buffer[0]的第一个满缓冲指针;C2[1][0]代表buffer[1]的第一个可用空缓冲指针,C2[1][1]代表buffer[1]的第一个满缓冲指针。

每个用户进程请求输出文件的个数由用户从键盘输入而定。

当用户进程将其所有文件输出完时,终止运行。

为简单起见,用户进程简单地设计成:

每运行一次,随机输出数字0~9之间的一个数,且用0作为文件结束标志。

当输出值为零时,就形成一个请求信息块,填入请求输出信息块reqblock结构中。

这个输出请求块结构也有一个计数器C3,表示当前系统剩余的请求输出信息块个数,初值为10。

另外,再设两个指针Pt1和Ptr2表示请求输出块使用情况。

Ptr1是要输出的第一个请求输出块指针,初值为0;Ptr2是空闲请求输出块指针,初值也为0。

两个指针按模10进行变化,即把请求输出块结构数组看成是一个环型数组。

根据Ptr1和Ptr2的变化,确定请求输出块的使用情况。

主程序中包括(或调用)调度程序。

调度程序中包括一个随机数函数,以该函数值为依据,按照如图1所示框图调度3个进程。

完成对各数据结构的初始化。

6.程序框图

(1)SP00LING输出模拟系统主控流程图如图1所示。

图1SP00LING输出模拟系统主控流程图

(2)SP00LING输出服务程序由请求输出的两个用户进程调用,程序流程图如图2所示。

图2输出请求服务的程序框图

(3)SPOOLING输出进程流程图如图3所示。

图3SP00LING输出进程流程图

 

题目2用位示图管理磁盘空间的分配与回收

要求打印或显示程序运行前和运行后的位示图,以及分配和回收磁盘的物理地址过程。

提示

(1)假定现有一个磁盘组,共40个柱面。

每个柱面4个磁道,每个磁道又划分成4个物理记录。

磁盘的空间使用情况用位示图表示。

位示图用若干个字构成,每一位对应一个磁盘块。

1表示占用,0表示空闲。

为了简单,假定字长为16位,其位示图如图9—1所示。

系统设一个变量S,记录磁盘的空闲块个数。

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

字0

1

1

1

1

1

1

0

1

0

0

1

1

1

1

1

0

1

2

....

39

图9—1位示图

(2)申请一个磁盘块时,由磁盘块分配程序查位示图,找出一个为0的位,并计算磁盘的物理地址(即求出柱面号、磁道号(也即磁头号)和扇区号)。

由位示图计算磁盘的相对块号的公式如下:

相对块号一字号×16+位号

之后再将相对块号转换成磁盘的物理地址:

由于一个柱面包含的扇区数=每柱面的磁道数×每磁道的扇区数=4×4=16,故柱面号=相对块号/16的商,即柱面号=字号

磁道号=(相对块号/16的余数)/4的商,即(位号/4)的商

物理块号=(相对块号/16的余数)/4的余数,即(位号/4)的余数

(3)当释放一个相对物理块时,运行回收程序,计算该块在位示图中的位置,再把相应位置0。

计算公式如下:

先由磁盘地址计算相对块号:

相对块号=柱面号×16+磁道号×4+物理块号

再计算字号和位号:

字号=相对块号/16的商,也即字号=柱面号

位号=磁道号×物理块数/每磁道+物理块号

(4)按照用户要求,申请分配一系列磁盘块,运行分配程序,完成分配。

然后将分配的相对块号返回用户,并将相对块号转换成磁盘绝对地址,再显示系统各表和用户已分配的情况。

(5)磁盘空间分配框图如图4所示。

(6)设计一个回收算法,将上述已分配给用户的各盘块释放。

并显示系统各表。

回收算法框图如图5所示。

 

 

图4磁盘空间分配框图图5磁盘空间回收框图

 

题目3模拟UNlX系统的空闲块成组链接法实现磁盘空间管理

提示

(1)假定磁盘存储空间中,空闲块以N个盘块为一组,已划分成M组。

假设N=3,M=3,磁盘共有7块,则空闲块成组链接如图6所示。

图6空闲块成组链接

N=3,即每3块为一组。

其中,第一组只有2块,以后的各组3块为一组,每组第一块登记前一组的空闲块号和空闲块数,最后一组由超级块管理。

超级块用来登记最后一组的块数及块号。

(2)可用一个二维数组A来管理成组链接:

A[M][N]。

其中M是空闲块分成的组数,N为每组的磁盘块数。

用A[0]表示超级块,管理最后一组的空闲块。

这样A[0][0]表示超级块中管理的空闲块数,A[0][1]表示超级块中管理的第一个空闲块号,A[0][2]表示超级块中管理的第二个空闲块号,A[0][3]表示超级块中管理的第三个空闲块号,实际管理的块数由最后组的块数决定。

A[1]管理第2组的空闲块。

A[2]管理的是第一组的空闲块。

采用栈式存取方式对数组进行操作。

为模拟实际系统,可再定义一个一维数组,作为主存专用块。

系统初启时,先将超级块中的信息复制到主存专用块中。

当用户申请一个磁盘块时,查主存专用块这个一维数组,找出一空闲块号。

当找到的这块为这组最后一块时,在将空闲块分给用户之前,先将这块存储的一组空闲块信息复制到主存专用块中。

之后再分配给用户。

分配算法如图7所示。

 

图7空闲块成组链接分配算法框图

(3)释放一磁盘块时,若当前主存专用块还不满,则将释放块直接登记到专用块中;若已满,则另建一组,并将该释放块作为新组的第一块,然后再把主存专用块的内容复制到该释放块中。

之后将新建组的这个块的块号放入主存专用块中,并将块计数置为1。

算法结束。

回收算法如图8所示。

(4)设计该程序,要求能显示或打印分配的磁盘块号,并显示分配或释放后空闲块链的情况。

 

N

Y

 

图8空闲块成组链接分配算法框图

 

附件二设计报告要按规范的格式

 

课程设计报告

(2009--2010年度第二学期)

 

课程名称:

操作系统实验

课设题目:

院系:

控制与计算机工程学院

班级:

姓名:

指导教师:

设计周数:

一周

成绩:

2010年7月9日

设计报告内容

一、需求分析

二、整体功能及设计(功能划分及流程图)

三、编程实现(要求有注释)

四、使用说明

五、结果分析

排版要求

一、首页按老师给定模版填写,注意线条长度不要改变。

二、标题一、(一级标题)设黑体四号字,左对齐,单倍行距、段前段后0.5行

标题1.(二级标题)设黑体小四号字,首行缩进2字符,单倍行距、段前段后0.5行

正文设宋体小四号字,首行缩进2字符,单倍行距,两端对齐。

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2