操作系统课程设计报告_第1页
操作系统课程设计报告_第2页
操作系统课程设计报告_第3页
操作系统课程设计报告_第4页
操作系统课程设计报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、操作系统课程设计实验一 进程管理一、实验目的1开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。2开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。二、需求分析用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。三、实验环境Windows操作系统、VC+6.0C语言(C-free5.0)4、 详细设计程序流程图数据结构:算法设计:state=0 杀死stat

2、e=1 就绪state=2 等待state=3 运行(1)进程控制块信息struct jincheng_type int pid; int youxian; int daxiao; int state; int message; ;(2)进程信息初始化struct jincheng_type neicun20;int shumu=0,pid_l;int max=0;int number=0; (3)创建进程的算法void create( ) /* 创建一个进程的示例*/ if(shumu=20) printf(n内存已满,请先结束或换出进程n); else printf(n请输入新进程的pid

3、n); scanf(%d,&neicunshumu.pid); printf(n请输入新进程的优先级n); scanf(%d,&neicunshumu.youxian); printf(n请输入新进程的大小n); scanf(%d,&neicunshumu.daxiao); printf(n创建进程时令其状态为就绪n); scanf(%d,&neicunshumu+1.daxiao); printf(n创建进程信息n); scanf(%d,&neicunshumu+1.message); neicunshumu.state=1;shumu+; (4)查看运行进程算法void run()int

4、max=0;int vpid;for(int i=0;ishumu;i+)if(neicuni.flag=1)&(neicuni.youxian=neicunmax.youxian)max=i;neicunmax.flag=3;printf(n当前运行进程程序名:n%d,neicunmax.pid);printf(n该进程的优先级:n%d,neicunmax.youxian);printf(n该进程的运行时间:n%d,neicunmax.daxiao);printf(n该进程的状态:n%d,neicunmax.flag);printf(n该进程的信息是:n%d,neicunmax.messag

5、e);vpid=getch();(5)换出进程算法void huanchu()int i,k,d;for(int i=0;ishumu;i+)if(neicuni.flag=1)&(neicuni.youxian=neicunmax.youxian)max=i;neicunmax.flag=3;if(max=shumu-1)printf(没有处于等待序列的进程);elsefor (k=max+1; kshumu; k+)neicunk.flag=2;printf(n处于等待序列的进程有:);for (k=max+1; kshumu; k+)printf(n%d,neicunk.pid); pr

6、intf(n请选择要唤醒的进程:);scanf(%d,&k);i=max;while(neicuni.pid!=k)i+;neicuni.flag=1; printf(n%d进程已被唤醒,k);d=getche(); (6)杀死进程算法void kill()/* 杀死某个进程*/int i=0,k,b;printf(n请输入要杀死的进程:);scanf(%d,&k);while(neicuni.pid!=k)i+;neicuni.daxiao=0;neicuni.pid=0;neicuni.youxian=0;neicuni.flag=0; if(i=(shumu-1) shumu-;else

7、for(int j=i+1;j0&tpid1super)(ready-super) /*优先级最大者,插入队首*/ p-link=ready; ready=p; else /* 进程比较优先级,插入适当的位置中*/ first=ready; second=first-link; while(second!=NULL) if(p-super)(second-super) /*若插入进程比当前进程优先数大,*/ /*插入到当前进程前面*/ p-link=second; first-link=p; second=NULL; insert=1; else /* 插入进程优先数最低,则插入到队尾*/ f

8、irst=first-link; second=second-link; if(insert=0) first-link=p; 4建立进程控制块,进程撤销函数,进程就绪函数disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ check() /* 建立进程查看函数 */destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/5、 程序测试过程(截图)输入总共要输入的进程数:输入进程1的信息:输入进程2的信息第一个时间片:将优先级最高的3投入运行,其他处于等待状态:第二个时间片:将3的优先

9、级减一,将优先级第二的2进程投入运行其他处于等待状态:第三个时间片:将进程2的优先级减一,将优先级第一的进程3投入运行,其他处于等待状态:第四个时间片:将进程3的优先级减一,将队列首元进程1投入运行,其他处于等待状态:第五个时间片:将队列首元进程2投入运行,进程3处于等待状态:第六个时间片:将进程3投入运行,此时无等待进程:完成,安任意键退出:实验三 存储管理1、 实验目的:设计一个虚拟存储区和内存工作区 , 并使用下述算法计算访问命中率。(1) 先进先出的算法 (FIFO)(2 )最近最少使用算法 (LRU)(3) 最佳淘汰算法 (OPT)(4) 最少访问页面算法 (LFU)(5 )最近最不

10、经常使用算法 (NUR) (6)时钟算法(CLOCK)命中率 =(1 一页面失效次数 )/ 页地址流长度二、需求分析 程序设计本实验的程序设计基本上按照实验内容进行。即首先用Srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。相关定义如下:1. 数据结构(1) 页面类型typedef struct int pn,pfn,counter,time;pl_type;其中 pn 为页号 ,pfn 为面号 ,counter 为一个周期内访问该页面次数 ,time 为访问时间。(2) 页面控制结构struct pfc_struct

11、int pn,pfn; struct pfc_struct *next;typedef struct pfc_struct pfc_type; pfc_type pfctotal_vp,*freepf_head,*busypf_head,*busypf_tail; 其中 pfctotal_vp 定义用户进程虚页控制结构 ,*freepf_head 为空页面头的指针 ,*busypf_head 为忙页面头的指针 ,*busypf_tail 为忙页面尾的指针。2. 函数定义(1) void initializd(): 初始化函数 , 给每个相关的页面赋值。 (2) void FIFO(): 计算使

12、用 FIFO 算法时的命中率。(3) void LRU(): 计算使用 LRU 算法时的命中率。 (4) void OPT(): 计算使用 OPT 算法时的命中率。 (5) void LFU(): 计算使用 LFU 算法时的命中率。 (6) void NUR(): 计算使用 NUR 算法时的命中率。3. 变量定义(1) int atatal_instruction: 指令流数据组。(2) int pagetotal_instruction: 每条指令所属页号。(3) int offsettotal_instruction: 每页装入 10 条指令后取模运算页号偏移值。 (4) int total_pf : 用户进程的内存页面数。(5) int diseffect : 页面失效次数。三、实验环境Windows操作系统、VC+6.0C语言(C-free5.0)4、 详细设计程序流程图:模块划分:int initialize(int); int FIFO(int);int LRU(int); int LFU(int

温馨提示

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

评论

0/150

提交评论