《2023年计算机操作系统实验课实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年计算机操作系统实验课实验报告.pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实般想告实验课程:计算机操作系统学生姓名:XXX_学 号:XXXX_专业班级:软件_ _ _ _ _ _ _ _ _ _ _ _ _202 3 年 1 2 月 2 5 日目录实验一 熟悉Windows X P中的进程和线程,错误!未定义书签。实验二 进程调度,错误!未定义书签。实验三 死锁避免一银行家算法的实现错误!未定义书签。实验四 存储管理.错误!未定义书签。实验熟悉W i n d o w s X P中的进程和线程一、实验名称熟悉W i ndow s X P 中的进程和线程二、实验目的1、熟悉Windows中任务管理器的使用。2、通过任务管理器辨认操作系统中的进程和线程的相关信息。3、掌握
2、运用s p y+.ex e 来察看W i n dow s 中各个任务的更具体信息。三、实验结果分析1、启动操作系统自带的任务管理器:方法:直接按组合键Ct r 1 +A lt+D el,或者是在点击任务条上的“开始”“运营”,并输入t askmgr.e xe”。应 用 程 序 进 程 性能 联网 用 户I旦 Vindovs任务管理福Efi文件9 选项Q)查看9 关机)帮助如映像名称F I D用尸名C P U CPU时间内 存 便 用 虚 拟 内.b d d o w n l o a d e r.e x e7 3 1 2 S Y S T EM0 0 0:0 0 0 09,9 8 0 K 9,2 0
3、 0 Kt a s Kj n g r.e x eB a i d u A n U p d a t e.e x eQ Q Ex t e r n a l.e x eb d d o w n l o&d e r.e x eB D A Le a k f i x e r.e x eB a i d u S d S v c.e x eT X P l a t f o r m.e x eB a i d u S d T r a y.e x eB a i d u A x i T r a y.e x eQ Q P r o t t c t.e x eQ Q.e x es o g o u p i n s h e n g j
4、i.e x ep i c p i c k.e x eS o g o u C l o u d.e x eO S P P S V C.EX ET h u n d e r.e x eB D A S W D e s k Gu i d e.e x es v c h o s t.e x eB a i d u,e x eB a i d u.e x eB a i d u Mi p s.e x eT h u n d e r P l a t o r m.e x eB a i d u A n S v c.e x ew m i p r v s e.e x eB a i d u P r o t e c t.e x eW
5、 INW O R D.EX Es v c h o s t.e x eIHEC MHT.EX Ea l e.e x ex pu zx p0 0 x p0 4x p0 0 x p0 0S Y S T EM0 8X P0 0 x p0 0 x p0 1x p0 1x p0 1x pL I L Ix pn r iX P0 0NET W O R K S ER V IC E0 0 x p0 0 x p0 0S Y S T EM0 0 x p0 0 x p0 0S Y S T EM0 0 x p0 0S Y S T EM0 0S Y S T EM0 0S Y S T EM0 0 x p0 0S Y S T
6、EM0 0 x p0 0LO C A L S ER V IC E0 00000000000000000000000000000o ogo oo oo oo oo oo oo oo oo oGn0 00 00 0O OO 0O O0 OO O0 O0 00 00 00 O叩0 00 00 00 00 10 10 30 00 30 20 11 41 80 30 00 30 50 00 00 00 00 10 10 00 00 42 30 00 0u:J486608826644468004462028864063623812070449115654692643s12023092262105g5120
7、7055521 0,8 2 8 K1 2,6 5 5 K1 1,1 8 8 K1 2,7 6 6 K3 1,1 7 6 K2,1 4 0 K4 0,6 9 2 K4 4,3 9 2 K2 3,0 8 0 K1 0 1,7 5 6 K3 4,6 3 6 K6 4,4 0 4 K1 4 6,2 4 8 K9,0 2 0 K1 0 7,8 0 0 K1,7 6 4 K1,2 5 2 K1 4,5 9 6 K7,4 4 4 K2 1,2 6 0 K1 6,0 0 4 K1 6,0 2 2 K2,0 4 8 K1 3,3 3 6 K5 8,7 5 2 K2,6 0 4 K2,3 3 2 K1.3 2 4
8、 K-mbE-二=-cE-=二E-一-=-二-E-=1-=E-二=-C-二=-1CE-=:E-=-=c=-C正1推淮淮淮推淮港淮港淮推推淮淮推淮淮淮淮淮推淮淮推淮淮淮准理标标标标标标标标标标标标标标标标标标标标标标标标标标标标线 程 数 人3 231 233 42 28 543 93 41 25 53 071 085 0314 21 45 72 03 355 41 851 15回显示所有用尸的进程)结束进程电)进程数:5 5 CPU使用:2 0%提交更改:1 4 0 0 M/3 9 3 7 M2、调整任务管理器的“查看”中的相关设立,显示关于进程的以下各项信息,并完毕下表:表一:记录进程的各项
9、重要信息序号进程名称进 程 ID线程数量占用内存优先级占C P U 时间虚拟内存1B d d o w n l oa d e r.e xe7 3 1 23 29 9 8 0 k标准0 :0 0:0 09 2 0 0 k2T as k m g r.e x e7 2 2 834 1 2 4 k高0:0 0:0 43 3 7 2 k3B a i D u S dT r a y,e x e5 1 4 43 08 5 8 8 k标准0:0 0:1 54 3 6 5 2 k4Q Q p r o te c t.e x e4 6 6 81 12 0 7 0 0 k标准0:0 0:0 12 3 5 7 2 k5T
10、X P la tfo rm.exe5 90 831716k标准0:00:002 1 28k6Exp 1orer.exe5 816173 0 3 40k标准0:0 0:1 121720k3、启动办公软件“W o r d”,在任务管理器中找到该软件的登记,并将其结束掉。再从任务管理器中分别找到下列程序:w i n l o g o n.e x e、1 s a s s.e x e c s r ss.e x e、s m s s.e x e ,试着结束它们,观测到的反映是 任务管理器无法结束进程,因素是 该 系 统 是 系 统 进 程。4、在任务管理器中找到进程“e x p 1。r e r.e x e ,
11、将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化_ _ _ _ _桌面上图标菜单都消失了、得到的结论 e x p l o r e r.e x e 是管理桌面图标的文献(说出e x p 1 o r e r.e x e 进程的作用)。5、运 营“s p y+.e x e”应用软件,点击按钮“囤”,切换到进程显示栏上,查看进程“e x p l。r e r .e x e”的各项信息,并填写下表:%进 程3B8田 进 程 00001418 BAIDUANTRAY A国 进程 000015E0 BAIDUSDTRAY总 进程 000016B8 EXPLORER0 线程 00
12、000104 EXPLORER 线程 000003EC EXPLORER0 线程 00000904 EXPLORER0 线程 OOOOCftOC EXPLORER0 线程 00000A90 EXPLORER+线程。1280 EXPLORER+线程 000013D8 EXPLORERHE。线程 000014C0 EXPLORER国0 线程 00001820 EXPLORER o 线程 00001824 EXPLORER0 线程 0000188C EXPLORER0 线程 00001B28 EXPLORERS o 线程 00001BE4 EXPLORER 0 线程 00001C04 EXPLORE
13、R0 线程 00001CC4 EXPLORER0 线程 00001F94 EXPLORER0 线程 00001FCO EXPLORER0 线程 00001FC8 EXPLORER+线程 00001FCC EXPLORERB 进程 00001714 TXPLATFORM+第 济程 nnnni7Rp RAIDIISDSVC进程:exp 1 orer.ex e中的各个线程序号进 程ID线 程ID基本优先级当前优先级CPU时间上下文开关100 0 016B80000 0 1048100:00:06 4 99833620000 1 6B8000 003EC15150:00:008300 0016B800
14、000 9048100:00:00114000016B8000 0 0A0C8100:00:001350000 1 6B80000 1 280880:0 0:0781713860 00016 B80 0 0 01 3 D88100:0 0:00232 66、注意某些线程前有“+”,如图所示:+腱 00000178 EXPLORER 技00000198 EXPLORE点 说明两者之间的 差 异 前 有“+”其器线程下有窗口四、心得体会通过本次实验,我了解到了 w i n d o w s 系统中进程的管理与操作,我了解了如何切出任务管理器,任务管理器应用与其他与进程相关的知识,明白了有些系统程序不
15、可以关闭,系统中的进程与线程虽然很多,但是其中有许多关联,只要弄清楚其中的关联那么就可以运用好进程与线程,达成我们的目的。每个进程下都包含着许多线程,我们控制进程来达成控制线程的目的只有我们了解好掌握还进程,我们才干更好的运用线程,更好的控制运用计算机。实验二 进程调度一、实验名称进程调度二、实验目的1、使学生进一步理解进程的概念,并在此基础上掌握有关P CB、进程队列的概念。2、掌握进程基本状态的转化;3、掌握进程调度的策略、具体实行方法以及系统性能的评价方法。三、实验结果分析简化的实验代码如下:#includ e#includ e /调 用 STL中的优先队列u sing namespac
16、 e std;定义一个PC B进程类c la s s PCB(p ublic:char name 1 0;进程的名字int r unlime;/该进程的运营时间in t priority;/该进程的优先级c h ar state;该进程的状态PC B*n e x t,指向下个进程的指针v o i d prin t()c o nst/输出进程的信息(c o utn(nam e=nam eH,r u ntime=,runt i m e H,state=s t aten,pri o r i ty=p r io r i ty),e nd 1 ;;c lass PC B S o r tC r i ter
17、ion /优先队列的优先准则类pu b 1 i c:b o o 1 op e rator()(co n st PCB&phc o nst PCB&p2)c o nst/仿函数拟定优先准则,从大到小return(pl.p r i o rity p 2.pr i ori t y););PCB*p c b=new PCBnumber;一个P C B 的数组用来保存就绪进程PCB*pl=new PCBnumber);/一个PCB的数组用来保存已经结束的进程c o utend 1 ;PCB p;/一个P C B 型的变量,用来保存队首元素int i;f o r(i=0;iv=number-1;i+)/建
18、立进程信息coutp c b i.s tat e;ci n p c bi.prior i ty;coutendl;typede f priority_qu e u ePCB,v e c t o r,P CBSort C ri t er i o n pQueue;/以/PC B S o rtCriterion 为/优先准则的优先队列p Q ueue q,/优先队列pQueue的一个对象,对这个队列进行主操作tem p;优先队列pQ u e u e 的一个对象,是 q 的一个拷贝对象,作为实现打印输出的一个中间变量f o r(intj=O;j=number-l;j+)将进程入队建立优先队列(q-p
19、us h(p c b 0);)/输出进程控制块的初始状态信息cout进程控制块的初始状态信息为:en d 1;t e mp=q;whi 1 e(!temp.e m p t y()p=tem p,top();p.p rin t();temp.pop();)c o u t end I;int n=0,进程执行的次数m=0;/完毕进程的个数w h ile(!q.empty()/对进程进行调度cou t 第V+n 次运营;P=q-t o p();coutq.to p().nam e 0 )输出完毕的进程的信息f o r(i=0;i =m-l;i+)p 1 i.P r i n t();c o ut e
20、n d 1 ;c o u t e n d 1 ;)syste m (pa us e );r e tu r n 0 ;)in t m a i n ()(c out se tw(4 0)”进程模拟调度设计”e n d l e n d 1 ;O C O U K V”提醒:输入1选择先来先服务算法,输入2选择优先级法,输入3选择轮转法,输入4退出程序”e n d 1 endl;oc O U t 1、先来先服务n2、优先级法n3、时间片轮转法n 4.多级反馈轮转法n 5.动态优先级法n 6.退出 e ndlendl;i n t c ho i ce;Ant go=l;while(g o)(3 c outv
21、c h oice;。swi t ch(c h o i c e)6(。调用先来先服务算法求解。c a se 1:FC F S();br e a k;。/调用优先级法求解cas e 2:PRIO();b r eak;/调用时间片轮转法求解s oc a s e 3:LZF();b r e a k;。/调用多级反馈轮转法求解e。case 4:DJFKLZ();b re a k;case 5:DTYXJF();break;。笛 a s e 6:coutiS tf nendl;g o=0;br e ak;/返回首页。d e f a u I t:c o u t V”选择有误,请重新输入选择!”Ve n d
22、l;b re a k;)比 y s t e m(p a use );re t u r n 0;程序运营结果:初始化界面:进程模拟调度设计费霆疆廉疑来郭嘱麟选藏瓢麓常输入3选择时间片轮转法,输123456态出i法转法矍於是先优清输入你的选择:1先来先服务法:睛输入进程总数目:243JESTS*B 4时。|需口王口王口王口王八八J其/八、r、x、r、r35S2b招小nM程程程步击雷击、f、工、r-、r-曲ttb2.4-、二:及 nnoh-44-Dlp需先序口王口王口王口王口王曲曲曲曲曲 TA、TATA、AT进程序号进程名2 b1.25时间片轮转法:输入进程个数:2输入进程时间片长度 输入第1个进程
23、的名字,进程花费时间和优先级:a345输入第2个进程的名字,进程花费时间和优先级:b43(优先级一项是指进程运行后的优先级?调度开始了 进 程 名 字 花 费 时 间 剩 余 时 间 优 先 级 状 态a 3 2b 4 4b 4 3a 3 2a 3 1b 4 3b 4 2a 3 1a 3 0b 4 2进程a已经执行完毕?4434324212441 S143b 4 1 0 运行b 4 0-1 运行进程b已经执行完毕?所有进程都已经执行完毕?Press any key to continue动态优先级法:输入进程:(当进程到达时间为。时,结束输入)进程名a35b4运行时间优先级6c01进程名a剩余
24、时间3优先级5进程状态Rb46R耀察繇褊a2优先级6进程状态Rb46Rb 4优先级6进程状态Ra17R轴调度讲程名为:b多级反馈轮转法:UA J人 ALL|J_ J迸卷名剩余时间优先级进 程 状 态 一a1?Rb28R:a间程剩进更名i濯优先级进程状态b28R:b间为时名余也乘进赏名ir彳、DL优先级进程状态b 19R运行队列1 46 322U0jush the b into Ready Queue?j 46 322U0)44 324W0运行队列3 44 324W0the a has finished?!庆绪队列3 44 324U0完成队列-二 46 340F2push the b into
25、Ready Queue?the b has Finished?!?完成队列咬 46 340F23 44 360F1四、心得体会1、通 过 这 次 实验使得我对进程调度几种算法的思想以及实现原理有了进一步的 结 识 和 掌 握。在设计多级反馈轮转法的算法以及实现代码时,碰到了代码不会写,算 法 理 解 不 够 透彻的问题,而导致在这个问题上纠结了很久。最后还是在查阅资料以及同组成员的讨论下解决了。2、这 次 实 验 使 用 的 编 程 语 言 是 C。由 于 在 以 前 学 习 C 的时候掌握的不是很好和 很 多 知 识 点 都 忘 掉 了 以 至 于 在 实 验 的 很 多 地 方(如 实 验
26、 界 面 和 代 码 的 精 简)做得不是很好,以后得注意对C 的 学 习 和 巩 固。3、也 使 我 更 能 体 会 到 集 体 的 力 量 永 远 要 大 于 个 人。在实验中我们碰见的很多问题基本上都 是 一 起 讨 论 才 解 决 的。4.一开始认为涉及到操作系统的模拟编程的都是高不可攀的,然而在仔细阅读课本以及实验说明后,发现只要弄清楚了优先级数调度的实现原理后其实并不难,用优先队列就可以了。通过这个实验一来加深了对优先级数调度的理解,二来也加强了自己的编程实践能力!实验三 死锁避免一银行家算法的实现一、实验名称死锁避免一银行家算法的实现二、实验目的1、掌握死锁产生的因素和必要条件。
27、2、掌握银行家算法的实现三、实验结果分析#include usi n g n am e s pace s td;#d efine mp 5 0 /最大进程数#define mr 100。/最大资源数int k ey o ng m r;g/可用资源数组int MAXmpm r;/最大需求矩阵i nt fenpei mpmr;”/分派矩阵i n t n e e d fmp mr;“/剩余需求矩阵bo ol FINISHlmp;。/系统是否有足够资源分派in t p mp;g 记录序列i n t W orkmr;o /工作数组int m,n;g/m 个进程,n 个资源i n t 1=0;v o i
28、d Init();。/初始化b ool S afe();voi d j c();v o i d m a in()In i t();Safe();if (l!=m)jc();v o id I ni t()。/初始化算法 in t i,j;co u tW”请输入进程的数目:”;c i nm;cou t ”请输入资源的种类:“;cinn;co u t ”请输入每个进程最多所需的各资源数,按照“mxV n“矩阵输入”en d 1;for(i=0;im;i+)for(j=O;jn;j+)c in M A X ifj;cout”请输入每个进程已分派的各资源数,也按照“V m x n“矩阵输入nendl;f
29、or(i=0;i m;i+)fo r(j =0;jn;j+)(cinfenpeif i j;need i j=M A X ij-f e n p e iij;i f(ne e d i j 0)cou t 您输入的第 i+1 个进程所拥有的第个资源数错误,请重新输入:“en d l;j:co n t inue;)c。u t 请输入各个资源现有的数目:e n dl;fo r(i=0;i n;i+)c i n k eyon g i;cout 剩余需求矩阵:endl;fo r(i=0;im;i+)f or(j=0;j n;j+)co u t needlij j J i f(j=n-l)coutendl;
30、c o u t 各资源现有数量:Ve nd 1 ;3 for(i=0;in;i+)c o u t k e y ong i ;cou t endl;)bool S a f e()/*安全性算法*/int i,j,k;f o r (i=0;i n;i+)W o r k i=keyon g ij;f o r (i=0;i m;i+)F IN IS H i=false;判断进程i 是否已执行)for(i=0;im;i+)i f(FIN I SH i=true)c o n tin u e;e Is e for(j=0;j W o r k j)b r e a k;)if(j=n)FIN I SHi=tru
31、 e;for(k=0;kn;k+)W orkk+=fe n p e i i k;进程 i 执行完后回收资源P l+=i;i=-1;el s e(continue;)i f(l=m)cou t 系统是安全的end 1 ;cout 安全序列:end 1 ;f or(i=0;i 1 ;i+)(c out ”;)c o u t n e ndl;re t u rn t rue;)cou t v”会发生死锁,发生死锁的进程是:,e n d 1;for(i=0;i m;i+)i f (F I NISH Li=f a Ise)o co u t i ”;cout e ndl;r e turn f a 1 se;
32、v o i d j c()fiint ij,k,q;i=0;whil e(im&F I NIS Hi=false)/寻找没执行的。fo r(j=O;j n;j+)(6 ke y o n g j +=f enpeii j;/回收fenp e i i j=0;D qf(Safe()。cout”死锁已解除”P(4 P51PE2P3J四、心得体会通过这次实验,我了解了有关资源申请分派、检测以及避免死锁等概念,了解死锁和避免死锁的具体实行方法。死锁的解除实质上就是如何让释放资源的进程可以继续运营.为了解除死锁就要剥夺资源,实验四 存储管理一、实验名称储存管理二、实验目的1、掌握物理内存和虚拟内存的基本概
33、念,理解绝对地址和相对地址;2、了解Windows中内存管理机制,掌握页式虚拟存储;3、掌握虚拟存储管理中有关缺页解决方法等内容,巩固有关虚拟存储管理的教学内容;4、理解内存分派原理、特别是以页面为单位的虚拟内存分派原理;5、掌握常用的页面置换算法。三、实验结果分析#d ef i n e MAX SIZE 20#inclu d e v o id m a i n()i nt 1 a be 1 =0;/标记此页是否已经装入内存in t input=O:i n t wo r knum=0;in t st o resize=O;int interrupt:0;i n t quenc e MAXSIZE
34、;据结构i nt w orkste p MAXS I ZE1;。/*初始化*/。f or(i nt i=O;iMAXSIZE;i+)用于输入作业号记录作业个数/系统分派的存储块数中断次数/队列,F IF O 算法的重要数用于记录作业走向q u e nee i =0;w o rkst e pi=0;)cout s to r e s ize;c o u t”请输入作业走向(输入0 结束):n”;f or(int j=0;j MA XSIZE;j+)1,cout页面号:j+l;。c in i n p u t;。wo r kste p j=i n p ut;。if(i n pu t=0)gc o u
35、tv v 输入结束!n;。山 r e a k;)wo r k num+;)i f(work s t ep 0=0)c 0 u t 未输入任何作业,系统将退出!n ;return;)cout 置换情况如下:n ;for(ini k=0;k worknum;k+)(1 a b e=0;。/*看队列中是否有相等的页号或空位置*/o for(inl 1=0;lst o re size;l+)应*是否有相等的页号*/if(q uencel=wo r ks t e p k )oo|8cout内存中有”workstep k V”号页面,无须中断!n;。oa标记此页面已装入内存break;00bel=l;/*
36、是否有空位置*/i f(que n ee l=0)gpu e n c el=w o r k s t e p k;。c outcV”发生中断,但内存中有空闲区JVw o rkst e p k”号页面直接调入!n”;3 interr u pt+;o 。1 a bel=l;。b reak;)上述情况都不成立则调出对首陷调入页面插入对尾*/if(Iabel=0)。co u 发生中断,将“q u enceO”号页面调出,“w o rk s tepk”号装入!n”;。in t err u p t+;for(i n t m=0;ms t oresize;m+)00 q u encem=q u en c em
37、+1;)q u e n c est o r e s i z e-=workstepk;6b|*,)c o u t 作 业 vV w or k n u m 个,y 中断”in te rrup t V次,缺页率:f 1 o at(i n terr u p t)/float(w o rknum)*10 0%n;J,X X X )C X X X1*X1 X X X )(X1 X X X X X X X X*XX X M XM f:FI F顼画置换*1:LRU 典 面置换*MMMMMQ :OPT 贝面置换X X X X X X*按其它键结束X X*2 3 02 3 42 5 42 5 3缺页次数:5 缺
38、页率:0.7 1 4 2 8 6X X X-X美X*X-MX X X X X X X X X X X*l:LRUn*o:OPT 贝面工*按其它健结营 巷 建 葡 陵 交;;:;:“00P23304:缺页次数:4缺页率:0.5 7 1 4 2 93:FI*1:LRU 页面*:OPT*按其它犍结XX M XM XX XX X X X M X X M X X X X X X请选择操作类型四、心得体会通过上机,我了解了许多关于操作系统的专业知识。无论是在批解决系统还是分时系统中,用户进程数一般都多于解决机数、这将导致它们互相争夺解决机。此外,系统进程也同样需要使用解决机。这就规定进程调度程序按一定的策略,动态地把解决机分派给处在就绪队列中的某一个进程,以使之执行。这次实验课上机是我了解了许多知识,让我更加了解了解决系统,我相信我可以把解决系统用好。