操作系统实验报告.doc_第1页
操作系统实验报告.doc_第2页
操作系统实验报告.doc_第3页
操作系统实验报告.doc_第4页
操作系统实验报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统实验报告实验一 处理机管理1.4 按时间片轮转法进行CPU调度的实例 1.5 实验要求(1)给出所选实验题目。按时间片轮转法进行CPU调度(2)给出程序中源程序名和执行程序名。s1.cpp /*定义建立就绪队列函数*/int readyprocess()/*定义判断就绪队列是否有进程函数*/int readydata() int runprocess( ) /*定义运行进程函*/*-定义建立进程函数*/void inputprocess() /*-定义建立进程函数*/void inputprocess1()void runprocess1() /*定义运行进程函数*/ void main() 主函数(3)给出程序中使用的数据结构及符号说明。static char R=r,C=c;# define N 20宏定义 unsigned long current; /*记录系统当前时间的变量*/void inputprocess(); /*建立进程函数*/int readyprocess(); /*建立就绪队列函数*/int readydata(); /*判断进程是否就绪函数*/int runprocess(); /*运行进程函数*/typedef struct pcb /*进程控制块定义*/ (4)给出程序流程图和源程序,源程序中要附有详细的注释。图1-1进程控制块:进程名链接指针到达时间估计运行时间进程状态图1-2 进程控制块:进程名链接指针进程的优先级估计运行时间进程状态5)打印程序运行时的初值和运行结果,要求如下:各进程控制块的初始状态;选中运行进程的名、运行后各进程控制块状态以及每次调度时,就绪队列的进程排列顺序。(6)总结收获体会及对该题解的改进意见和见解。程序很长需要用心阅读分析,基本看得懂;实践出真知 多做才能发现问题解决问题要虚心学习 向他人请教 改进 额目前还没什么想法实验二 死锁的避免2.4 资源分配算法的示例 2.5 实验要求(1)给出所选实验题目用银行家算法和随机算法实现资源分配(2)给出程序中源程序名和执行程序名。void rand(vector&resource,vector&pgrp); 随机算法函数void banker(vector&resource,vector&pgrp); 银行家算法函数int main()主函数/输入各进程申请的资源总量,以及初始化各个进程;if(current-p_applyRcs_left)/满足该进程当前的申请/看该进程是否已满足if(current-p_occupyp_require) /假定对申请资源的进程分配资源/ 检查是否还有标志位未设置的进程for(p=pgrp.begin();p!=pgrp.end();p+)resource.insert(resource.begin(),current-p_apply,current-p_pid); /分配安全,可对进程进行实际的分配resource.insert(resource.end(),current-p_apply,current-p_pid);/归还全部系统资源resource.clear();(3)程序中使用的数据结构及符号说明。const int TASK_RUNNING=0;const int TASK_SUCCEED=1;const int TASK_WAITTING=2;const int RLength=10; class pcb定义块对象(4)给出程序流程图和源程序,源程序中要附有详细的注释。(5)收获体会及对该题解的改进意见和见解。银行家算法很实用对于死锁问题,实验三 主存空间的分配与回收3.4程序实例3.4.1 采用可变式分区管理方式,空闲区采用分区说明表时,使用首次适应算法实现主存的分配与回收3.5 实验要求(1)实验题目。采用可变式分区管理方式,使用首次适应算法实现主存的分配与回收。空闲区采用分表说明。(2)程序中使用的数据结构及符号说明。1、struct freearea /*定义一个空闲区说明表结构体,并初始化变量*/int startaddress;/*空闲区始址*/int size; /*空闲区大小*/int state; /*空闲区状态:0为空表目。1为可用空闲块*/freeblockN; 2、int alloc(int applyarea) 定义为作业分配主存空间的函数alloc(),applyarea为作业申请量。 3、 void setfree()定义主存回收函数:setfree(),使用tag1标识释放区的高地址是否邻接一个空闲区,tag2标识释放区的高低地址是否都邻接一个空闲区,tag3标识释放区的低地址是否邻接一个空闲区。 4、void adjust()定义对空闲区表中的空闲区调整的函数adjust(),使空闲区按始地址从小到大排列,空表目放在后面。 5、void print() 定义打印空闲区说明表函数:print()。(3)给出程序流程图和源程序,打印一份附有详细注释的源程序 (5)运行结果(4)收获体会及对该题解的改进意见和见解。1表示内存空闲块 0为空表目;1是分配块 2是回收块操作和理解都很简单 也很好玩;和别人讨论会很有效果 交换思维申请XK主存J=0J=J+1查看第J个表目的登记项NY开 始图3-2 首次适应算法分配框图状态为“未分配”吗?长度=XK?YJ为空闲区说明表的最后一个表目?小于N置状态为“空表目”等于将空表目向后移长度长度XK始址始址+XK大于登记已分配区表和空闲区表,输出系统中各数据结构的值。返回分配给作业的主存始址。作业等待返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论