版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品学习资料范文操作系统实验报告感想篇一:操作系统实验报告
操作系统原理实验报告
学生姓名学号专业班级指导教师学院信息科学与工程学院实验时间2014年月5日
实验一处理机调度一、实验目的
多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作(转载自:www.BdfQy.Com千叶帆文摘:操作系统实验报告感想)。
二、实验内容
设计实现处理机调度算法。
三、实验要求
1、设计一个有几个进程并发执行的进程调度程序,每个进程由一个进程控制块(PCB)表示,进程控制块通常应包括下述信息:进程名,进程PID,进程优先数,进程状态、PCB指针等,且可按照调度算法的不同而增删。
2、调度算法包括:优先权调度算法和时间片轮转调度算法。
3、程序应能显示或打印各进程状态和参数的变化情况,便于观察。
4、可随时增加新进程。
四、实验分析与设计
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
优先权调度算法就是紧迫型作业进入系统后能得到优先处理的意思。当该算法用于作业调度时,系统从后备作业队列中选择若干个优先级最高的,且系统能满足资源要求的作业装入内存运行。或者当该算法用于进程调度时,将把处理机分配给就绪进程队列中优先级最高的进程。
五、实验运行结果与相关代码
代码:
时间片轮转调度算法
#includeiostream
#includecstdlib
usingnamespacestd;
typedefstructPNode{
structPNode*next;
charname[10];
intAll_Time;
intRuned_Time;
charstate;
}*Proc;
intProcNum;
voidInitPCB(ProcH)
{
cout请输入进程数量:
cinProcNum;
intNum=ProcNum;
H=(Proc)malloc(sizeof(PNode));
H-next=NULL;
Procp=H;
cout请按格式输入进程信息:\n
while(Num--)
{
p=p-next=(Proc)malloc(sizeof(PNode));
cout进程名所需花费总时间已经运行时间endl;
cinp-namep-All_Timep-Runed_Time;
p-state=R
p-next=NULL;
}
p-next=H-next;
}
voidDispInfo(ProcH)
{
Procp=H-next;
do{
if(p-state!=E)
{
cout进程名:p-name\t总运行时间:p-All_Time\t已运行时间:p-Runed_Time\t状态:p-stateendl;
p=p-next;
}
elsep=p-next;
}
while(p!=H-next);
}
voidSJP_Simulator(ProcH){
coutendl开始:\n
intflag=ProcNum;
intround=0;
Procp=H-next;
while(p-All_Timep-Runed_Time)
{
round++;
coutendl第round轮p-name进程运行中endl;p-Runed_Time++;
DispInfo(H);
if(p-All_Time==p-Runed_Time)
{
p-state=E
flag--;
coutp-name进程结束,删除该进程!\n
}
p=p-next;
while(flagp-All_Time==p-Runed_Time)
p=p-next;
}
coutendl完成线上所有任务!\n
}
voidmain()
{
ProcH;
InitPCB(H);
DispInfo(H);
SJP_Simulator(H);
system(pause
}
运行截图
(中间过程太多,只截取几张。)
篇二:操作系统课程设计个人心得
课程设计心得体会
篇三:操作系统实验报告
实验报告
学院(系)名称:计算机与通信工程学院
实验过程记录(源程序、测试用例、测试结果及心得体会等)
源代码:
磁盘调度基类DiskSchedule.java:
importjava.util.ArrayList;importjava.util.Iterator;importjava.util.Random;publicDiskSchedule(){start=0;end=255;startSector=0;sector=newArrayListIntegerscheduled=newArrayListIntegertime=ne}}}}}ArrayListIntegersector;ArrayListIntegerscheduled;ArrayListIntegertime;wArrayListIntegerisScheduled=false;returnstart+rand.nextInt(end);}
publicdoublegetSeekTime(){if(!isScheduled)
sum+=iter.next();return(double)sum/time.size();}}}}publicIteratorIntegeriterator(){returnsector.iterator();}visitSector();}}publicvoiddebug(){System.out.println(平均调度时间:
System.out.println(getSeekTime());
}publicvoidprintSector(){if(!isScheduled)schedule();
原始访问序列:
System.out.println(序号\t磁道号
while(iter.hasNext()){System.out.println(i+\t+iter.next());i++;
}
}
publicvoidprintScheduled(){if(!isScheduled)
IteratorIntegersIter=scheduled.iterator();IteratorIntegertIter=time.iterator();System.out.println(调度后:
System.out.println(开始磁道:+startSector);System.out.println(序号\t磁道号\t移动距离while(sIter.hasNext()){System.out.println(i+\t+sIter.next()+\t+tIter.next());i++;
}
}
abstractvoidschedule();
}
FCFS.java:
importjava.util.Iterator;
publicclassFCFSextendsDiskSchedule{voidschedule(){if(isScheduled)
return;
time.add(Math.abs(curSector-prevSector));scheduled.add(curSector);prevSector=curSector;
}
isScheduled=true;}}
SSTF.java:
importjava.util.ArrayList;importjava.util.Iterator;
publicclassSSTFextendsDiskSchedule{voidschedule(){if(isScheduled)
return;
@SuppressWarnings(unchecked)
}
}ndex);
}
isScheduled=true;
}
}
SCAN.java:
importjava.util.ArrayList;importjava.util.Iterator;
publicclassSCANextendsDiskSchedule{@Override
voidschedule(){if(isScheduled)
return;
@SuppressWarnings(unchecked)
booleansigned=true;do{
}}
}
}
signed=!signed;
}
while(index==-1);ndex);
}
isScheduled=true;
}
}
CSCAN.java:
importjava.util.ArrayList;importjava.util.Iterator;
publicclassCSCANextendsDiskSchedule{@Override
voidschedule(){if(isScheduled)
return;
@SuppressWarnings(unchecked)
}
}curmin){
}
}ndex);
}
isScheduled=true;
}
}
NStepSCAN.java:
importjava.util.ArrayList;importjava.util.Iterator;
publicclassNStepSCANextendsDiskSchedule{ArrayListArrayListIntegerlist;publicNStepSCAN(){super();
list=newArrayLis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2026技能考试养老护理员初级题库完整版附答案
- 2026~2026国家电网安规考试考试题库及答案解析第133期
- 2026广西公需科目答案
- 2026广播电视值机员考试题及答案解析
- 高三数学选填题精研教学设计
- 2026年2型糖尿病健康管理考核考试试卷试题及答案
- 2026年安考证b证预测试题及参考答案详解(培优B卷)
- 八年级物理沪粤版新教材第九章进阶突破教学设计
- 2026年保荐代表人胜任能力考试备考复习题及答案
- 2026年安全员之江苏省C1证(机械安全员)题库综合试卷A卷附答案
- (正式版)DB2327∕T 049-2022 《大兴安岭地区生态产品总值(GEP)核算指南与技术办法》
- 年度招标代理合同协议书
- DB34∕T 4010-2021 水利工程外观质量评定规程
- JG/T 455-2014建筑门窗幕墙用钢化玻璃
- 高空作业防水施工方案
- Unit5OntheroadDevelopingideas明信片写作指导课件-高一英语
- 健美操-青春魅力课件
- 施工组织设计-汽研中心风洞试验室工程
- 中考科学教师培训课堂教学难点的确定与化解市赛课公开课一等奖省名师获奖课件
- 人力资源管理研究与实践(前沿量表手册)
- 急性脑卒中静脉溶栓护理课件
评论
0/150
提交评论