2023年操作系统实验报告3.pdf
《2023年操作系统实验报告3.pdf》由会员分享,可在线阅读,更多相关《2023年操作系统实验报告3.pdf(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统实验报告学 院 计 算 机 学 院专 业 0 8软 件 工 程班 级 _04班 _学 号 _姓 名 _刘 贤 生 _指 导 教 师 _(2023 年 12 月)计 算 机 学院软 件 工 程 专 业 04 班 学号:_姓 名:刘 贤 生 协 作 者:教 师 评 估:考勤情况程序运营情况程序质量实验技能创新精神实验报告设计文档实验一题 目_进程调度_第8周 星期四实 验 一二 题 目 _作业调度_第1 0周 星期四实 验 三(综 合 性)题目 主 存 空 间 的 分 派 与 回 收 第1 5周 星 期四实 验 _ 驾 题 目 文 献 系 统 第1 6 周星 期 四实验平台:1、计 算 机
2、 及 操 作 系 统:P C机W i nd o w s X P2、编 程 环 境 :dev e 1 op c+6.0源程序名和可执行程序名:实 验 一:进程调度.c,进程调度.ex e实 验 二:单道J乍业调度.c,单道J乍业调度.e x e实 验 三(综 合,性):主存空间的分派与回收.c,主存空间的分派与回收.ex e实 验 四:文献管理.c,文献管理.ex e学号:姓名:刘贤生 协作者:实验一 一 题 目 进 程 调 度 第 8 周 星 期 四一、实验目的用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。二、实验内容和规定进程调度,设计一个有N个进程并发的进程
3、调度程序。规定采用最高优先数优先算法。三、实验重要仪器设备和材料实验环境。硬件环境:P C机软件环境:d e v elop c+5.0四、实验原理及设计方案。实验原理:把 C P U 分派给就绪队列中优先数最高的进程。实验方法:采 用“最高优先数”调度算法对五个进程进行调度,优先数高的先运营,优先数低的进入就绪队列。实验环节:1、画出流程图。2、代码实现,其进程控制块定义为结构体pcb,如下核心代码如下:#in e lu d e#i nelu d e#include#i n c 1 ud e t yp e d ef s t r u c t nodech a r name 1 0 ;i n t
4、pri o;int ro u n d;int cpu tim e;i n t nee d time:i n t coun t;ch a r s t a te;struc t node*nex t;PCB;P CB*finish,*r ea d y,*tai 1 ,*ru n;i nt N;f i rs t i n()(run=r e a d y;ru n-s tate=,R;ready=read y-nex t;)vo i d p r t 1()(p r i n t f(name cpu t ime n e e dtim e count r ound stat e n);voi d p r t
5、2(PCB*q)pri n t f(%-8 s%-8 d%-8 d%-6 d%-5 d%-c n/z,q name,q-cpu t i m e,q-needt i me,q-c o u nt,q-r ou nd,q st at e);)v oi d pr t ()(P C B *p;i f(ru n!=N U L L)p r t 2 (r u n);p=ready;w hi 1 e(p!=N U L L)(p r t 2 (p);p=p-ne x t ;p=f i ni sh;w hi le(p!=N U L L)。prt 2 (p);p=p-n ex t;)p ri n t f(P r e
6、ss any k ey t o cont i n u e.n);get ch();pr t 1();)i nsert (P C B *p2)(t ai l-n e x t=p2;t ai l=p 2;p2 nex t =N U L L;v o i d ere a t()(P C B *p;i n t i,t i me;ch a r n a 1 0 ;ready=N U L L;f i n i s h=N U L L;ru n=N U L L;p r i nt f(n E n t e r name and t i m efor(i =l;i name,n a);o f rou nd proc e
7、 ss n*);p-c p u t i m e=0;p-n eedt i me=t i me;p-c o u nt=O;p-s t a t e=w ;p-r o u n d=2 i f(ready!=N U L L)i n ser t (p);el s e。(p ne x t=ready;o r e a dy二p;t a i 1=p;。)p r i nt f(ou t pu t of rou n d n*);p r i nt f(*火*n);prt l();p r t ();r u n=r e a dy;ready=rea dy-n ex t ;ru n-s t a t e=,R ;)ro u
8、 ndru n()w hi le(ru n!=N U L L)ru n-c p u t i m e=r u n-c pu t i m e+1;ru n-n e edt i m e=ru n-ne e d t i me-1;r u n-c o u n t=ru n-c o u n t+1 ;i f(ru n-needt i me=O)。ru n-n e x t =f i ni s h;fi n i sh=r u n;r un -s t at e=z F;r u n二N U L L;i f(ready!=N U L L)。f i rs t i n();)elsei f(r u n-cou n t
9、=r u n-rou nd)ru n-cou nt=0;i f(ready!=N U L L)0*r u n-st at e=,W,;。i n s e rt(ru n);。ofi rs t i n();p r t ();?m a in ()pri nt f(E nt er process nu mber n);sc a nf(z,%d,z,&N);c r e a t ();ro u n dr u n 0 ;五、结果分析以及调试小结1、运营结果输入进程个数,建立进程控制块函数Enter p rocess number5Enter name and tin e of round process13
10、25374b5Foutput of roundname cputineneed tin ecountroundsta te0302w0502w30?02w40602w50202wp ressany keyi to co n tin u e.name cputineneed tin ecountrounds ta te。2)查看进程的运营情况,输出当前的运营进程50 2 02wp ressnameany key to co n tin u e.cputim e n eed tin e countroundsta te20 5 02R30 7 02w40 6 02w50 2 02w12 102Wp
11、 ressnameany key to co n tin u e.cp u tine n eed tin e countroundsta te214 12R30 7 02V;40 6 02w50 2 02V J12 102WP ressnameany key to co n tin u e.cputirne n eed tin e countroundsta te30 7 02R40 6 02w50 2 02V J12 102W22 3 02WP ressnameany key to co n tin u e.cp u tine n eed tin e countroundsta te316
12、12R2、对结果的分析。在所有的进程都完毕之前,程序会一直循环运营,将当前运营的进程以及当前的就绪队列所有都输出到屏幕上。3、对调试过程中的小结。通过多次调试,不断地从原代码找犯错误的地方,进行更正。最终程序的运营与结果都与预期的同样,没有碰到什么大的困难。六、心得体会。跟以往编程同样,要有耐心地调试程序,才干找到犯错的地方,加以改正。七、思考题1、最高优先数的调度比较符合实际,按用户设定的优先级别顺序进行操作,而轮转法则比较公平,按进队顺序进行操作,并且每次进程运营一次后,无论完毕与否都要退出运营状态,让等待队列的进程也能得届时间片去运营。最高优先数适合在进程数比较多的情况下对“有需要特殊照
13、顾”的进程优先,而轮转法则在进程数有较多短作业的时候使用,效果明显。2、偏重于I/O 型。比N4d多学号:_姓名:刘贤生 协作者:实验一二题 目.作业调度 第 1 0周星期四一、实验目的。本实验规定学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。二、实验内容和规定作业调度实验,为单道批解决系统设计一个作业调度程序三、实验重要仪器设备和材料实验环境。硬件环境:PC机 软件环境:d e velop C+5.0四、实验原理及设计方案实验原理:编写一个单道解决系统实现作业的调度实验方法:根据先来先服务、最短作业优先、
14、响应比高者优先的调度算法实现作业调度,需要计算出作业的平均周转时间和带权的平均周转时间。实验环节:1、画出流程图2、代码实现,其相关数据结构说明如下核心代码如下:#in c lud e s t d i o.h”#i ncl u de include#define g e t pch(type)(ty p e*)mal lo c(siz e o f(t y pe)/#d e f i ne NULL 0stru c t wo rk t ime f1 o at T b;f 1 o at T c ;f 1 o a t T i;f l o at W i;s t r u c t j c b c h a r
15、 n a m e 10;f l o a t s u bt im e;f l o at r u nt im e ;/c h a r r e s o u r c e ;f l o a t R p;c h ar s t a t e;s t r u e t w o r k t i m e w t ;s t r u c t j e b*l ink;*j c b_r e a d y=NU LL,*j;t y p e d e f s t r u e t j c b JC B ;f 1 o at T=0;v o i d s o r t ()(JC B *f ir s t ,*s e c o n d ;int
16、i ns e r t=0;i f (j c b_ r e ad y =NU LL)|I (j-s u bt i m e )s ubt im e)j -l i nk=j c b_ r e ad y;jcb_ re a d y=j;T=j-su b time;j-Rp=l;)else(fi r st=j cb_ready;se c ond=fir s t 1 i nk;w hile(second!=NULL)(i f(j-s ub t ime)subtime)(j-link=se c on d;f i r s t-l i n k=j;secon d=NULL;in s er t=1;)el s e
17、(f i r s t=fi r s t 1 in k;second=s econd-1 ink;)if(inser t=0)f ir s t-lin k=j;)v o id SJFget()J CB*fro n t,*m i ntime,*r e ar;i nt i p move=0;m i n t i m e=jc b _rea d y;r e ar=mintim e-1 ink;while(r ear!=NULL)i f(r e a r!=N U L L)&(T=rear-subt ime)&(mintime-runtim e)(r e ar-run t i me)(f ront=min
18、t i me;mintim e=r e ar;rear=rear-1 ink;i p mo v e=l;)e 1 serear=r e ar 1 ink;if(i p move=l)fron t-1 i nk=mintime-1 i nk;mintime-l i n k=j c b_read y;)jc b_r e ad y=mi n time;void i n put()i nt i,nu m;p r in t f(n请输入作业数:);s e a n f (d ”,&n um);for(i=0;i nam e);pri n tffn输入作业提交时刻:);s c anf (%f ,&j-s u
19、 bt i m e);p r int f C n输入作业运营时间:);s c anf&j-r u nt im e);p r i nt f (n);j-s t at e=,w;j-l in k=N U L L;s o r t ();i n t s p a c e ()i n t 1=0;JC B*j r =j c b_r e ad y;w h il e(j r!=NU LL)1 +;j r =j r-l ink ;)r e t u r n(1);)v o id d i s p(JC B*j r,int s e l e c t)(pri n tf(n 作业 服务时间 运营时刻 完毕时刻带 权 周
20、转 时 间 n );p r int f (|%s t*,j r-nam e);p r in t f (|%.2f t *,j r r u nt im e);fi f (j=j r)p r int f (|%.2 f t*,j r w t.T b);p r int f (I%.2 f ”,j r-w t.T c);p r in t f(1%.2f t ,j r-w t.T i);p r i n t f (|%.2f ,j r-w t.W i );)p r i n t f (n);v o id c h e c k (i nt s e l e c t)(JC B*j r;周转时间p r i n t
21、f (*n*当前正在运营的作业是:s,j nam e);d is p(j,s e l e c t);j r=j c b _r e ad y;p r i n t f C n*当前就绪队列状态为:n );w h il e (j r!=N U LL)(j r-R p=(T-j r-s u bt im e)/j r-r u n t i m e ;d i s p (j r,s e i e c t);j r=j r -l ink;d e s t r o y ();)i n t d e s t r o y ()(p r int f (n 作 业%s 已 完 毕.n,j -n a m e);f r e e (
22、j);)v o id r u n n i n g (J C B*j r)(i f (T =j r-s u b t i m e)j r-w t.T b=T ;e l s e j r-w t .T b=j r-s u b t im e;j r-w t .T c =j r-w t.T b+j r-r u nt im e ;j r-w t .T i=j r w t.T c-j r-s u bt i m e;j r-w t .W i=j r -w t.T i/j r -r u n t im e;T=j r-w t.T c ;i n t m a i n()int s e 1 e c t =0,1 e n,
23、h=0;f l o a t s u m T i=0,s u m W i=0;i n p u t O ;l e n=s p ac e ();p r i n t f C X n X t 1.F C F S 2.S JF 3.H R N n n 请选择作业调度算法:?);sca n f&select);w h il e(1 e n!=0)&(j c b_ r e a d y !=N U L L)(h+;p r in t f (n 执行第%d 个作业 n”,h);j=j c b_r e a d y;j c b_r e a d y=j-l ink;j-l i n k =N UL L;j -s t at
24、e =R;r u n n i ng(j);s u m T i+=j w t .T i;s u m W i+=j-w t.Wi;c h e c k(s e l e c t );if (s e i e c t -2&h l e n1)S J F g e t ();p r i nt f (n 按任一键继续.n );g e t c h ar ();g e t c h a r ();)p r int f (n n作业已经完毕.n);p r int f (t 此组作业的平均周转时间:%.2f n ,s u m T i/h);p r i n t f C t此组作业的带权平均周转时间:%.2f n*,s u
25、m W i/h);g e t c h a r ();五、结果分析以及调试小结1、运营结果。运营界面请输入作业数:3作业号No.0:输入作业名:one输入作业提交时刻:2输入作业运行时间作业号N o:输入作业名:tMO输入作业提交时刻输入作业运行时间:3作业号No.2:输入作业名:three1)选择了先来先服务算法进行实例,输入数据输入作业运行时间l.FCFS 2.SJF 3.HRN青选择作业调度算法:?i运营情况及分析:执行第1个作业*当前正在运行的作业是:。ne作 业 服 务 时 间 运 行 时 刻 完 成 时 刻周转时间带权周转时间ione S4.00 12.00:6.00:4.00!1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 操作系统 实验 报告
限制150内