




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验指导书徐军利编写武汉工业学院计算机与信息工程系2009年8月实验一进程管理1 目的和要求通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。2实验内容用 C 语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。3实验环境 Windows 操作系统、VC+C 语言4实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删。主体程序#inc
2、lude ""#include ""#include "" struct PCB_type int pid;int priority;int cputime;struct PCB_type neicun20;int shumu=0,pid_l;main()int n,m,i; char a;n=1;while(n=1)clrscr();printf("n*”printf("n*进程演示系统printf("n*”printf("n1.创建新的进程2.查看运行进程printf("n3.换出
3、某个进程4.杀死运行进程printf("n5.进程之间通信6.退出系统printf("n*”printf("n 请选择(1 6)");a=getchar();switch(a) case'1':create( );break;case'2':run( ); /* 自定义过程*/break;case'3':huanchu(); /* 自定义过程*/break;case'4':kill( );break;case'5':tongxun( ); /* 自定义过程*/break;ca
4、se'6': exit(0);default: n=0;create( ) /* 创建一个进程的示例(不完整的程序)*/if(shumu>=20)printf("n 内存已满,请先结束或换出进程n"); elseprintf("n 请输入新进程的pidn");scanf("%d",&neicunshumu-1.pid);printf("n 请输入新进程的优先级n");scanf("%d",&neicunshumu-1.youxian);printf(&quo
5、t;n 请输入新进程的大小n");scanf("%d",&neicunshumu-1.daxiao);shumu+;5实验运行结果*进程演示系统*1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统*请选择(16)然后根据你选择的不同,出现不同的结果。6. 实验要:1)上机前认真使用C语言编写好程序,采用 Visual C+乍为编译环境;2) 上机时独立调试程序3) 根据具体实验要,填写好实验报告(包括目的和要、实验内容、实验环境、设计思想、源程序、实例运行结果、总结)。实验二进程调度1 目的和要通过这次实验,理解进
6、程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。2实验内容阅读教材计算机操作系统第二章和第三章,掌握进程管理及调度相关概念和原理。编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB 进行相应的调度 模拟操作,不需要实际程序。假设初始状态为:有n 个进程处于就绪状态,有 m 个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞), 且每过 t 个时间片系统释放资源,唤醒处于阻塞队列队首的进程。程序要求如下:1)输出系统中进程的调度次序;2)计算CPU利用
7、率。3实验环境Windows 操作系统、VC+C 语言4实验提示用 C 语言实现提示:1)程序中进程可用PCB表示,其类型描述如下: struct PCB_typeint pid ; 实验要求:1) 上机前认真使用C语言编写好程序,采用 Visual C+乍为编译环境;2) 上机时独立调试程序3) 根据具体实验要求,填写好实验报告(包括目的和要求、实验内容、实验环境、设计思想、源程序、实例运行结果、总结)。4) 测试用数据:n=2m=3t=5dispath()算法流程图:beginuse_cpu=0 x=0unuse_cpu=0/*use_cpu中记录CPU运行时间/*unuse_cpu中记录
8、CPU空闲时间是实验三可变分区存储管理1 目的和要求通过这次实验,加深对内存管理的认识,进一步掌握内存的分配、回收算法的思想。2实验内容阅读教材计算机操作系统第四章,掌握存储器管理相关概念和原理。编写程序模拟实现内存的动态分区法存储管理。内存空闲区使用自由链管理, 采用最坏适应算法从自由链中寻找空闲区进行分配,内存回收时假定不做与相邻空闲区的合并。假定系统白内存共640K,初始状态为操作系统本身占用 64K。在t1时间之 后,有作业A、B、C、D分别请求8K、16K 64K、124K的内存空间;在t2时间 之后,作业C完成;在t3时间之后,作业E请求50K的内存空间;在t4时间之 后, 作业
9、D 完成。 要求编程序分别输出t1 、 t2、 t3、 t4 时刻内存的空闲区的状态。3实验环境Windows 操作系统、VC+C 语言4实验提示用 C 语言实现提示:1. 程序中自由链队列的结点类型可描述如下:struct freelinkint len, address; /* len 为分区长度/* address 为分区起始地址 struct freelink *next;内存占用区用链表描述,其结点类型描述如下:struct busylinkchar name; /* 作业或进程名name=' S表示OS占用int len , address;struct busylink
10、*next; 并设全程量:struct freelink *free_head=NULL; 计子函数:void start(void); /* 设置系统初始状态*/ struct freelink * p;struct busylink *q;free_head=(struct freelink*)malloc(sizeof(struct freelink);free_head->next=NULL; 计主函数:main() start();past(t1);requireMemo( A ,r8e)q; uireMemo( B ,16);requireMemo( C ,64); requ
11、ireMemo( D ,124);printlink();past(t2);freeMemo( C );printlink();past(t3);requireMemo( E ,50);printlink();freeMemo( D );printlink();5. 实验要求:1) 上机前认真使用C语言编写好程序,采用 Visual C+乍为编译环境;2) 上机时独立调试程序3) 根据具体实验要求,填写好实验报告(包括目的和要求、实验内容、实验环境、设计思想、源程序、实例运行结果、总结)requireMemo(char name, int require)流程图如下:endbeginp=(st
12、ruct busylink*)malloc( );p->name=name;p->address=free_head->next->address;p->len=require; p->next=NULLbusytail->next=p;busy tail=p;w->address=w->address+require;w->len=w->len-require;u=free_head;v=riee_head->nexl;endfreeMemo(char name)流程图如下:,name)实验四页式虚拟存储管理页面置换算法
13、1 .目的和要求存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚 拟存储管理技术。本实验的目的是:通过编写和调试请求页式存储管理中页面置 换算法的模拟程序以加深对存储管理方案的理解,了解虚拟存储技术的特点,掌 握请求页式存储管理的页面置换方法。2 .实验内容阅读教材计算机操作系统第四章,掌握存储器管理相关概念和原理。编写程序模拟实现页式虚拟存储管理的最佳页面置换算法。前提:(1)页面分配采用固定分配局部置换。(2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以 从文件读入。(3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必 须清晰可读,便于检验。
14、3 .实验环境Windows操作系统、VC+C语言4 .实验提示(1)数据结构要模拟实现某一个置换算法,有如下一些对象需要用相关的数据结构来描述:作业的页面走向(执行过程中对页面的访问顺序)。可以用数组也可以 用字符串。如果用数组,则页面走向的长度受数组长度限制,如果用字 符申,则需要将字符串进行解析,将字符串经过解析处理后变成一个贡面的排列顺序。考虑最佳置换算法(向前看”)和其他置换算法(向后 看了的特点。页框(作业分得的物理块)。由于作业分得的物理块数在置换算法执行 之前已经确定,可以用一些比较简单的数据结构实现。在综合置换算法 的原理,可以灵活采用相应的数据结构(如队列、数组、堆栈) ,
15、尽可 能使程序的时间复杂度最低。采用不同的数据结构还要配合在数据结构 上的相应操作才行。(2)功能模块划分大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化、界面和模块调用。2)页面走向输入模块。(从键盘读入数据结构或将页面走向写入文件)3)置换算法模块。*判断模块。决定换出哪一块。每一种置换算法对应一种判断算法。* 调整模块。根据判断模块的结果,调整作业分得物理块集合中 逻辑页面的情况。* 置换过程输出模块(在显示器上显示或写入文件)。该模块每 发生一次置换,由置换算法模块调用一次。* 除此之外,有些反复执行的操作考虑用过程或函数实现。总而言之, 整个程序应该结构清晰,界
16、面友好,可读性好,易调试,易扩充,易维护。5.实验要求:1)上机前认真使用C语言编写好程序,采用 Visual C+乍为编译环境;2)上机时独立调试程序3)根据具体实验要求,填写好实验报告(包括目的和要求、实验内容、实 验环境、设计思想、源程序、实例运行结果、总结)。实验五用户接口实验1 .目的和要求通过上机操作的实践理解操作系统的作业级接口,着重理解shell的作用和工作过程,通过编写程序,在程序中调用操作系统的系统调用来加深对程序级接 口的理解,着重理解系统调用的实现。2 .实验内容选做任意一个:能够熟练使用Linux系统的键盘命令和X-window图形界面,熟悉shell 编程语言,编写一个简单的 shell程序。指导学生在内核文件中添加一 个自定义的系统调用(或者利用现有操作系统的系统调用),编程来调用自己设计(选定)的这系统调用。练习使用DOS的键盘命令,熟悉批处理编程的语法,编写带参数的简单 批处理程序,通过使用 DOS的作业级接口(键盘命令)和 WINDOWS的 作业级接口(图形界面)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025停车场经营权转让合同样本
- 胫骨骨折护理
- 2025年人工肝知识试题
- 隐匿性冠心病的临床护理
- 电气点检培训体系构建
- 耳石症个案护理
- 转移性小肠肿瘤的临床护理
- 小学语文教师试用期转正工作总结模版
- 面试技巧完整课件
- 循证医学实施难点与对策
- DLT 593-2016 高压开关设备和控制设备
- 幼儿园伙食费管理制度
- 【MOOC】学术英语写作-东南大学 中国大学慕课MOOC答案
- 【MOOC】现代邮政英语(English for Modern Postal Service)-南京邮电大学 中国大学慕课MOOC答案
- 应激性心肌病指南解读
- 【水利水电】李想 案例专项班教案 02-案例专项班(二)
- 教室租赁合同范本教程
- 执业药师资格考试试题及答案
- 《供应链管理》课件 第7章 供应链运输管理
- 三管三必须-新安法宣贯课件
- 书法测评基础理论知识单选题100道及答案解析
评论
0/150
提交评论