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

下载本文档

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

文档简介

1、操作系统实验报告 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 实 试验课程:同学姓名:学 号:专业班级: 验 报 告 张虹 6100409033 2021年12月18日 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 名目 操作系统安装及其接口环境 . 2 编程实现银行家平安算法 . 7 进程调度算法的实现 . 16 存储管理的模拟实现 . 22 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银

2、行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 南昌高校试验报告 -操作系统安装及其接口环境 同学姓名: 张虹 学 号: 6100409033 专业班级: 电091班 试验类型: 验证 综合 设计 创新 试验日期: 试验成果: 一、试验目的 熟识windows/linux操作系统的安装过程与安装方法,并把握该操作系统所供应的用户接口环境,并为后续试验做好编程环境预备。 二、试验内容 1、熟识windows/linux操作系统的安装过程与安装方法,并把握该操作系统所供应的用户接口环境,通过系统供应的用户管理程序、查看系统中的用户状况、进程、线程、内存使用状况等,学会

3、使用它进行监视进程的状况、系统资源的使用状况及用户状况。并为后续试验做好编程环境预备。 2、用c语言编写一小段程序,使其可以通过某个系统调用来获得os供应的某种服务。 三、试验要求 1 了解所安装的操作系统对软硬件资源的详细要求; 2 机器最低硬件配置要求; 3 操作系统所供应的用户接口环境的熟识; 4 了解主要bios cmos参数的含义及其设置方法; 5 把握程序编写中系统调用的方法。 四、主要试验步骤 1、可以通过vmware workstation虚拟机来模拟并记录安装windows和linux的过程,主要要预备光盘(虚拟机也可使用光盘镜像iso文件或精灵虚拟光驱),若计算机已经装有一

4、个操作系统,则在安装之前要留意:假如是使用光盘用电脑自带光驱安装,则安装之前必需设定计算机的bios,让计算机从光驱启动;若是使用usb光驱或者是u盘引导,则要设定bios使计算机从usb接口启动。安装系统主要需要输入序列号,设定管理员及使用者姓名和身份密码。用户可以选择要安装的系统程序(linux为软件包),或者也可以在安装完后在掌握面板的添加/删除程序中选择。安装方法一般来说使用光盘直接安装,将光盘放入光驱中,没有光驱的电脑可以使用usb光驱或者使用u盘安装。 2、熟识查看用户的接口环境可以使用系统自带的管理程序,操作如下: “右击我的电脑”“管理”“设备管理器”,也可以“右击我的电脑”“

5、属性”“硬件”“设备管理器”,进入设备管理器可以看到计算机的设备状况,包括计算机的各个接口。 3、查看系统中的用户状况、进程、线程、内存使用状况,可进行如下操作: “右击我的电脑”“管理”“本地用户和组”“用户”,这样就可以查看系统中的用户状况,并可以对用户进行添加、删除、禁用、修改等操作。 使用任务管理器可以看到系统中活动的用户、系统中的进程、线程和内存的使用状况,进行的操作如下: “右击任务栏”“任务管理器”,或者直接在键盘上使用ctrl+alt+delete的快捷键打开任 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.

6、内容具体丰富,仅供参考 务管理器。在任务管理器中,点击“进程”就可以观察当前计算机在运行的进程及该进程的用户、cpu占用率和内存使用状况。点击“性能”即可观察计算机当前cpu的使用、cpu使用记录、pf使用率、页面文件使用记录和线程数。点击“用户”就可以观察当前计算机活动的用户。 4、调用系统服务: 打开microsoft visual c+ 6.0,新建c+ sourse file,写入以下代码: #includestdlib.h void main() system(date); 保存,使用工具编译,得到结果。 五、试验数据及处理结果 安装windows xp sp2的过程: 操作系统试验

7、报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 安装ubuntu linux 10.04的过程: 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 以下是计算机xs19的状况,xs19中windows xp的设备管理器: xs19中windows xp的用户状况: xs19的任务管理器: 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考

8、调度服务的结果: 六、试验体会或对改进试验的建议 感觉这个试验不是光靠把握书上内容就能做的,平常的实践也是特别重要的,假如对计算机特别熟识的话,这个试验做起来难度很小。在做的时候基本上可以完成,中间遇到一个问题,就是对计算机有的系统服务不熟识,所以要用c语言编程时感觉有点不知所措。 七、参考资料 计算机操作系统(第三版) 计算机操作系统试验指导书 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 南昌高校试验报告 -编程实现银行家平安算法 同学姓名: 张虹 学 号: 6100409033 专业班级: 电0

9、91班 试验类型: 验证 综合 设计 创新 试验日期: 试验成果: 一、试验目的 通过试验加强对银行家平安算法的理解和把握。 二、试验内容 熟识避开死锁发生的方法,死锁与平安序列的关系,编程实现银行家算法,要求输出进程的平安序列。 三、试验要求 1、 需写出设计说明; 2、 设计实现代码及说明 3、 运行结果; 四、主要试验步骤 1、 分析银行家算法结构; 2、 画出银行家算法的流程图,即设计说明; 3、 依据画出的流程图使用c语言编写相应的代码(代码过长,放到最终); 程序主要由main函数和以下几个函数组成: void input();用户输入银行家算法的初始数据; void output

10、();输出当前系统资源安排状况; void change();当恳求资源满意要求时,进行安排,系统资源发生转变; int check();平安性算法,检查是否存在平安序列; void outputsafe();输出平安序列的资源安排表。 4、 检查代码,将编出的代码编译、链接,验证其正确性。 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 五、试验数据及处理结果 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 9

11、 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 六、试验体会或对改进试验的建议 体会:编写银行家算法需要较好分析力量,c语言也要把握的很好,而且需要细心和极大地急躁。我的程序在最开头编出来的第一份代码编译时大大小小一堆错误,有些是一个小错误导致了下面全错,这些小错误在一百多行里找起来特别费劲。然后小错误全部找出来以后,再编译,错误没有了,但是得到的结果却是错误的,这样又要开头一行一行分析,看是哪里出了问题。到最终得到了想要的结果以后,程序还需要修饰,至少要输出要简洁阴沉,要让别人一运行这个程序就知道自

12、己在什么时候该输入什么数据,数据是什么作用,而不是只有自己知道输进去的是什么东西。 七、参考资料 计算机操作系统 c程序设计 c语言程序设计_现代方法 八、试验代码 #include stdio.h #include stdlib.h #include string.h int max53; /开头定义银行家算法中需要用到的数据 int allocation53; int need53; int available3; int request53; char *finish5; int safe5; int n,i,m; int k=0; 操作系统试验报告总编.包含操作系统安装及其接口环境,编

13、程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 int j=0; int work3; int works53; void start(); /表示程序开头 void end(); /表示程序结束 void input(); /输入数据 void output(); /输出数据 void change(); /系统安排资源,原有资源状况转变 void outputsafe(); /输出平安序列的资源安排状况 int check(); start(); for (;j=0;) /确认输入数据的正确性,若输入错误,重新输入 input(); printf(以下

14、为进程资源状况,请确认其是否正确:n); output(); printf(数据是否无误:n正确:输入n错误:输入n请输入:); scanf(%d,j); /平安性算法 void main() /主程序开头 printf(数据确认无误,算法连续。n); if (check()=0) /若check函数返回值为,表示输入的初始数据找不到平安序列,无法进行下一步,程序结束 end(); exit(0); for(;j=1;) /当有多个进程恳求资源时,循环开头 printf(请输入恳求资源的进程i(0、):); /输入发出恳求向量的进程及恳求向scanf(%d,i); printf(请输入进程p%

15、d的恳求向量request%d:,i,i); for(n=0;n3;n+) scanf(%d,requestin); for (;requesti0needi0 | requesti1needi1 | requesti2needi2;) /若 量 恳求向量大于需求资源,则认为是输入错误,要求重新输入 printf(数据输入有误,请重试!n请输入进程p%d的恳求向量request%d:,i,i); for(n=0;n3;n+) scanf(%d,requestin); 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富

16、,仅供参考 if(requesti0=available0 requesti1=available1 requesti2=available2) /推断系统是否有足够资源供应安排 else printf(系统没有足够的资源,进程p%d需要等待。n,i); if (j=0) /j=0表示系统有足够资源安排的状况 printf(系统正在为进程p%d安排资源n,i); change(); /安排资源 j=0; printf(当前系统资源状况如下:n); /输出安排资源后的系统资源安排状况 output(); if(check()=0) /若找不到平安系列,则之前的资源安排无效 printf(本次资源

17、安排作废,恢复原来的资源安排状态。n); for (m=0;m3;m+) /恢复安排资源前的系统资源状态 availablem+=requestim; allocationim-=requestim; needim+=requestim; output(); /输出系统资源状态 printf(是否还有进程恳求资源?n是:输入n否:输入n请输入:); scanf(%d,j); /若还有进程恳求资源,j=1,之前的for循环条件满意 end(); void line() /美化程序,使程序运行时更加阴沉美观 printf(-n); void start() /表示银行家算法开头 line(); p

18、rintf( 银行家算法开头n); printf( designed by zhang hongn); line(); void end() /表示银行家算法结束 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 line(); printf( 银行家算法结束,感谢使用n); line(); void input() /输入银行家算法起始各项数据 for (n=0;n5;n+) printf(请输入进程p%d的相关信息:n,n); printf(max:); for (m=0;m3;m+) scanf(%

19、d,maxnm); printf(allocation:); for (m=0;m3;m+) scanf(%d,allocationnm); for (m=0;m3;m+) neednm=maxnm-allocationnm; printf(请输入系统可利用资源数available:); for (m=0;m3;m+) scanf(%d,availablem); void output() /输出系统现有资源状况 line(); printf(资源状况 max allocation need availablen); printf(进程 a b c a b c a b c a b cn); l

20、ine(); for(n=0;n5;n+) printf(p%d%9d%3d%3d%5d%3d%3d%6d%3d%3d,n,maxn0,maxn1,maxn2,allocationn0,allocationn1,allocationn2,needn0,needn1,needn2); if (n=0) printf(%6d%3d%3dn,available0,available1,available2); else printf(n); line(); 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 vo

21、id change() /当requesti,j=availablej时,系统把资源安排给进程pi,availablej和needi,j发生转变 void outputsafe() /输出平安序列的资源安排表 printf(p%d%9d%3d%3d%5d%3d%3d%5d%3d%3d%6d%3d%3d%12sn,safen,workssafen0,workssafen1,workssafen2,needsafen0,needsafen1,needsafen2,allocationsafen0,allocationsafen1,allocationsafen2,workssafen0+alloc

22、ationsafen0,workssafen1+allocationsafen1,workssafen2+allocationsafen2,finishn); line(); int check() /平安性算法 printf(开头执行平安性算法n); for (m=0;m3;m+) /数组work和finish初始化 workm=availablem; for (n=0;n5;n+) k=0; for (m=0;m5;m+) for (n=0;n5;n+) finishn=false; safen=0; printf(该平安序列的资源安排图如下:n); line(); printf(资源状况

23、 work need allocation work+allocation finishn); printf(进程 a b c a b c a b c a b cn); line(); for(n=0;n5;n+) for (m=0;m3;m+) availablem-=requestim; allocationim+=requestim; needim-=requestim; if(strcmp(finishn,false)=0 needn0=work0 needn1=work1 needn2=work2) /查找可以安排资源但尚未安排到资源的进程 safek=n; /以数组safek登记各

24、个进程得到安排的资源的挨次 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 workssafek0=work0; workssafek1=work1; workssafek2=work2; work0+=allocationn0; /进程执行后释放出安排给它的资源 work1+=allocationn1; work2+=allocationn2; finishn=ture; /finishn变为以示该进程完成本次分 k+; for (m=0;m5;m+) /推断是否全部进程安排资源完成 if (strc

25、mp(finishm,false)=0) else if (m=4) /此处m=4表示全部数组finish的全部元素都为ture printf(找到平安序列p%d-p%d-p%d-p%d-p%d,系统是平安的j=1; outputsafe(); /输出平安序列的资源安排表 printf(找不到平安序列,系统处于担心全状态。n); return 0; /找不到平安序列,结束check函数,返回 n,safe0,safe1,safe2,safe3,safe4); return 1; 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.

26、内容具体丰富,仅供参考 南昌高校试验报告 -进程调度算法的实现 同学姓名: 张虹 学 号: 6100409033 专业班级: 电091班 试验类型: 验证 综合 设计 创新 试验日期: 试验成果: 一、试验目的 通过试验加强对进程调度算法的理解和把握。 二、试验内容 编写程序实现进程调度算法,详细可以编写程序实现先来先服务算法或优先度高者调度算法。 三、试验要求 1、 需写出设计说明; 2、 设计实现代码及说明 3、 运行结果; 四、主要试验步骤 1、 分析试验内容,画出算法流程图; 2、 依据流程图写出试验代码; 3、 编译代码,验证结果正确与否; 4、 对程序进行修改,得到最终结果。 流程

27、图如下: 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 五、试验数据及处理结果 六、试验体会或对改进试验的建议 在做这个试验的时候,一开头以为很简洁,只要做简洁的加减乘除就行了,但是认真做过以后发觉需要考虑许多状况。比如说输入进程到达时间的时候,要是乱序的该怎么办?还有到达时间和服务时间等等定义的都是整型变量,但是带权周转时间确会得到小数,此时就需要用到强制转换。在做系统产生随机数的时候也要考虑随机数的范围,如到达时间可以为0,但是服务时间却不能为0,否则带权周转时间的计算会出错。 七、参考资料 计算

28、机操作系统 计算机操作系统试验指导书 c程序设计 c语言程序设计_现代方法 八、试验代码 #include stdio.h 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 #include stdlib.h #include time.h #define n 5 /进程个数,可转变 int rtn; /到达时间 int stn; /服务时间 int ctn; /完成时间 int cytn; /周转时间 float rctn; /带权周转时间 float av2; /平均数 int n,m; void s

29、tart(); void end(); /表示程序开头 /表示程序结束 void input(); /输入数据 void random(); /系统随机产生数据 void ordination(); /对数据按到达时间进行排序 void fcfs(); /先来先服务计算 void output(); /输出结果 void main() start(); int which; int c=1; for (;c=1;) for (;) printf(输入数据还是由系统随机产生数据?n1、输入数据t2、系统随机产生scanf(%d,which); if (which=1) input(); break; 数据n请输入:); else if (which=2) else printf(输入错误,请重新输入!); random(); break; ordination(); /进程根据到达时间进行排序 操作系统试验报告总编.包含操作系统安装及其接口环境,编程实现银行家平安算法,进程调度算法的实现,存储管理的模拟实现.内容具体丰富,仅供参考 output(); printf(连续输入,退出输入。请输入:); scanf(%d,c); end(); void line() /美化程序,使程序运行时更加阴沉美观 pr

温馨提示

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

评论

0/150

提交评论