操作系统试验参考指导书.doc
《操作系统试验参考指导书.doc》由会员分享,可在线阅读,更多相关《操作系统试验参考指导书.doc(61页珍藏版)》请在咨信网上搜索。
1、 操作系统原理实验指引书羊四清 编 写合用专业: 计算机科学与技术 网络工程 湖南人文科技学院计算机科学技术系 8 月前 言操作系统是计算机核心和灵魂。操作系统软件设计对整个计算机功能和性能起着至关重要作用,因此此门课也是必不可少,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设一门计算机专业课程。操作系统是计算机系统核心,操作系统课程是计算机科学与技术专业重要必修课。本课程目是使学生掌握当代计算机操作系统基本原理、基本设计办法及实现技术,具备分析现行操作系统和设计、开发实际操作系统基本能力。操作系统实验是操作系统课程重要构成某些,属于学科基本实验范畴。作为与有关教学内容
2、配合实践性教学环节,应在操作系统理论课教学过程中开设。操作系统是计算机科学与技术专业必修专业基本课程,操作系统实验作用是:理解操作系统设计和实现思路,掌握典型算法。基本规定是:理解进程概念,理解死锁,掌握银行家算法;掌握祈求页式存储管理实现原理及页面置换算法。学生应具备高档语言编程能力、具备数据构造等基本知识。阐明:本实验指引书所提供源程序均已在VC.下调试运营过目录实验一 进程创立模仿1实验二 进程撤销模仿9实验三 P、V 原语模仿实现10实验四 带优先级时间片轮换进程调度算法实现16实验五 银行家算法模仿26实验六 持续动态内存管理模仿实现29实验七 祈求页式存储管理中惯用页面置换算法模仿
3、31实验八 SCAN 磁盘调度模仿实现36实验九 UNIX基本操作37实验一 进程创立模仿实验学时:2实验类型:验证实验规定:必修一、实验目1) 理解进程创立有关理论;2) 掌握进程创立办法;3) 掌握进程有关数据构造。二、实验内容本实验针对操作系统中进程创立有关理论进行实验。规定实验者输入实验指引书提供代码并进行测试。代码简化了进程创立各种环节和内容。进程树形构造采用广义二叉树方式进行存储。三、实验原理1)进程控制块为了描述和控制进程运营,系统为每个进程定义了一种进程控制块(PCB),它是进程实体一某些,是操作系统管理进程最重要数据构造。其重要包括四类信息:(1) 进程标记符它唯一地标记一种
4、进程。普通涉及进程号 pid,父进程号 ppid 和顾客号 uid。(2) 解决机状态解决器状态普通由解决机各种寄存器中内容构成。PCB 存储中断(阻塞,挂起)时各寄存器值,当该进程重新执行时,可以从断点处恢复。重要涉及: a) 通用寄存器; b) 指令计数器; c) 程序状态字 PSW; d) 顾客栈指针。(3) 进程调度信息 a) 进程状态; b) 进程优先级(用于描述优先使用 cpu 级别一种整数,高优先级进程先得到cpu,普通状况下,优先值越小优先级越高); c) 其他信息(等待时间、总执行时间等); d) 事件(等待因素)。(4) 进程控制信息 a) 程序和数据地址(程序在内存和外存
5、中首址); b) 进程同步和通信机制; c) 资源列表(进程除 CPU 以外所有资源); d) 链接指针(进程队列中指向下一种进程 PCB 首址)。2) 进程创立流程 (1) 申请空白 PCB 为新进程申请获得唯一数字标记符,并从 PCB 集合中索取一种空白 PCB。如果无空白PCB,可以创立一种新 PCB。在本实验中,每次动态创立 PCB。 (2) 为新进程分派资源 为新进程分派内存空间和栈空间。 (3) 初始化进程控制块 a) 初始化标记信息; b) 初始化解决机状态信息; c) 初始化解决机控制信息。 (4) 将新进程插入就绪队列P1P2P3P4P5P6P7P8P9P10P11P12 3
6、) 进程树 图 1-1 进程树 进程树用于描述进程家族关系,如图 1-1 中可以看出,进程 P1 创立了进程 P2、P3、P4、P5,而 P2 又创立了 P6、P7、P8 。在进程创立过程中,需要对每一种新增长进程加入到进程树中,有了清晰父子关系,可以使资源继承或进程删除等操作变得很以便。4) 进程总链它是一种 PCB 链表,每一种新创立进程必要把其 PCB 放入总链中,该总链可以对破坏进程树进行修复,也以便 PCB 查找。四、程序清单1.basic.h 文献#ifndef basic_h#include#include#include#define basic_hchar *errormsg
7、256;/process control blockstruct pcb int pid;/process id int ppid;/parent process id int prio;/priority int state;/state int lasttime;/last execute time int tottime;/totle execute time;/process nodestruct pnode pcb *node; pnode *sub; pnode *brother; pnode *next;/信号量struct semphore char name5;/名称 int
8、 count;/计数值 int curpid;/当迈进程 id pnode *wlist;/等待链表;#define geterror(eno) printf(%sn,errormsgeno) void initerror() errormsg0 = (char *)malloc(20); errormsg0=error command!; errormsg1 = (char *)malloc(20); errormsg1=error parameter!;/get a substring in string schar * substr(char *s,int start,int end)
9、char *s1; int len = strlen(s); if(start=len | startend) return NULL; s1=(char *)malloc(end-start+2); for(int i=0;i=end-start;i+) s1i = si+start; s1i=0; return s1;/find the location of c in string sint instr(char *s,char c) unsigned i; for(i=0;istrlen(s);i+) if(si=c) return i; return -1;/change the s
10、tring to array dataint * strtoarray(char *s) int *a,count,x1; unsigned int i; char c,*s1,*s2; if(!s) printf(string cant be null!n); return NULL; count=0; s1=s; for(i=0;istrlen(s1);i+) if(s1i=,) count+; count+; a = (int *)malloc(count); c=,; for(i=0;i=0) s2=substr(s1,0,x1-1);else s2=s1;ai=atoi(s2);if
11、(c=,) s1=substr(s1,x1+1,strlen(s1)-1); return a;#endif2、源程序#include basic.hpnode *proot;/system process tree rootpnode *plink;/system process link head/create processint createpc(int *para) /add your code here pnode *p,*p1,*pp; int pflag; pflag=0; for(p=plink;p;p=p-next) if(p-node-pid = para0) /chec
12、k if this pid is already exist printf(pid %d is already exist!n,para0); return -1; if(p-node-pid = para1) /find parent pcb pflag=1; pp = p; if(!pflag) printf(parent id %d is not exist!n,para1); return -2; /init new pcbp1 = new pnode;p1-node=new pcb;p1-node-pid = para0;p1-node-ppid = para1;p1-node-pr
13、io = para2;p1-sub=NULL;p1-next=NULL;p1-brother=NULL;/add to process treeif(!pp-sub) pp-sub=p1;else for(p=pp-sub;p-brother;p=p-brother); p-brother=p1;/ add to process linkfor(p=plink;p-next;p=p-next);p-next=p1;return 0;/show process detailvoid showdetail() /add your code here pnode *p,*p1; p=plink; f
14、or(;p;) /print all pcb info printf(%d(prio %d):,p-node-pid,p-node-prio); p1 = p-sub; for(;p1;) /print sub pcb printf(%d(prio %d),p1-node-pid,p1-node-prio); p1 = p1-brother; printf(n); p = p-next; printf(n);/dont changevoid main() initerror(); short cflag,pflag; char cmdstr32; proot = new pnode; proo
15、t-node=new pcb; proot-node-pid=0; proot-node-ppid=-1; proot-node-prio=0; proot-next=NULL; proot-sub=NULL; proot-brother=NULL; plink=proot; for(;) cflag=0; pflag=0; printf(cmd:); scanf(%s,cmdstr); if(!strcmp(cmdstr,exit) /exit the program break; if(!strcmp(cmdstr,showdetail) cflag = 1;pflag = 1;showd
16、etail(); else int *para;char *s,*s1;s = strstr(cmdstr,createpc);/create process if(s) cflag=1; para = (int *)malloc(3); /getparameter s1 = substr(s,instr(s,()+1,strlen(s)-2);/get param string para=strtoarray(s1);/get parameter createpc(para);/create process pflag=1; if(!cflag) geterror(0); else if(!
17、pflag) geterror(1); 五、实验环节输入实验提供代码后,可以输入 createpc 命令创立进程,输入 showdetail 显示每个进程及其子进程信息,测试命令解释如下:1) createpc 创立进程命令。 参数: 1、pid(进程 id) 2 、ppid(父进程 id)3、prio(优先级)。 示例:createpc(1,0,1) 。创立一种进程,其进程号为 1,父进程号为 0,优先级为 1.createpc(2,1,2) 。创立一种进程,其进程号为 2,父进程号为 1,优先级为 2。2) showdetail 显示进程信息命令。3) exit退出命令行。六、思考题 1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 试验 参考 指导书
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。