操作系统实验及课程设计
上一页 下一页 返回
8.1进程调度
//进程优先级 enum PROCPRIORITY { Low, //低 LowStandard, //低于标准 Standard, //标准 HighStandard, //高于标准 High, //高 RealTime, //实时 ); //调度算法 enum SCHEDULEALGORITHM
上一页 下一页 返回
8.1进程调度
//统计信息 struct STATINFO { int nRequestTime; //进程请求运行时间 int nGetCPUTime; //系统为之提供服务时间 ); //进程控制块 struct PCB {
上一页 下一页 返回
8.1进程调度
STATINFO infoStat; //统计信息 PROCID idProc; //进程标识符 PROGRAM program; //该进程对应的程序 PROCESSORSTATUS statusProcessor; //处理机状
(5)实验报告要求条理清晰,层次分明,图文并茂,要符合 科技文献的一般要求。
8.1.2 实验内容 (1)自定义进程相关的数据结构。 (2)利用MFC类库中的栈,链表、向量等模板模拟进程控制
块队列、进程控制块优先级队列、统计信息链表及其指令集 合。
上一页 下一页 返回
8.1进பைடு நூலகம்调度
(3)利用MSDN和MFC API编程实现常见的进程控制和调度 策略(先来先服务算法、时间片轮转算法、最高优先权优先 调度算法、最短进程优先调度算法)。
用权。 (4) LeaveCriticalSection:释放临界区的使用权。 (5) DeleteCriticalSection:释放与临界区对象相关的所有系
统资源。 3.线程相关的系统调用 (1) CreateThread:创建一个线程内核对象,线程执行指定
的ThreadProc例程。
上一页 下一页 返回
同一控制台的控制台进程组。
上一页 下一页 返回
8.1进程调度
2.临界区有关的系统调用 ( l)InitializeCriticalSection:初始化临界区对象。 (2) EnterCriticalSection:等待占用临界区的使用权。 (3) TryEnterCriticalSection:非等待方式申请临界区的使
(4)测试以上进程调度策略的周转时间、带权周转时间、平 均周转时间和平均带权周转时间,并定性评价它们的性能。
8.1.3预备知识 1.信号相关的系统调用 (1) Set Console Ctrl Handler:定义或取消本进程的信号处理
例程列表中的用户定义例程。 (2) Generate Console Ctrl Event:发送信号到与本进程共享
上一页 下一页 返回
8.1进程调度
//进程调度信息 struct PROCSCHINFO { PROCSTATUS status Proc; //进程状态 PR()CPRI()RITY proc Priority; //进程优先级 }; //进程控制信息 struct PROCCONINFO { PCB *pNextPCB; //下- PCB
第8章操作系统实验及课程设计
8.1进程调度 8.2进程通信 8.3存储器管理 8.4磁盘调度 8.5文件管理 8.6进程同步之经典问题 8.7Linux操作系统的使用实验 8.8课程设计1-生产者和消费者问题 8.9课程设计2-银行家算法
8.1进程调度
8.1.1 实验目的和要求 用高级语言编写和调试进程调度的模拟程序,以加深对进程
上一页 下一页 返回
8.1进程调度
{ FCFS, //先来先服务 SPF, //短进程优先 FPF_Reaved, //抢占式高优先级 TimePiece, //时间片轮转 ); //进程标识符 struct PROCID {
上一页 下一页 返回
8.1进程调度
int nInID; //内部标识符 int nOutID; //外部标识符 ); //处理机状态 struct PROCESSORSTATUS { int nIP; //指令指针 );
8.1进程调度
(2) ThreadProc:线程执行例程。 (3) ExitThread:终止线程的运行,同时操作系统清除该线
程使用的所有操作系统资源。 (4) TerminateThread:撤消任何线程,线程的内核对象的使
用计数也递减,但系统不撤消该线程的堆栈。 线程函数返回是确保所有线程资源被正确地清除的唯一办法。 以上的系统调用详细资料参考MSDN网站或光盘。 4.进程调度常用算法 进程调度常用算法的相关知识参考前文。
上一页 下一页 返回
8.1进程调度
5.相关概念 MFC栈(queue)、链表(list)、向量(vector)的相关知识参考
MSDN网站或光盘 8.1.4实验指导 1.进程相关的数据结构 //进程状态 enum PROCSTATUS { Ready, //就绪 Block, //阻塞 Run, //运行 );
上一页 下一页 返回
8.1进程调度
//程序 struct PROGRAM { int nProgl.en; //程序大小 int nIP; //指令指针 SYSTEMTIME timeSystem; //程序请求运行时间 INSTRUCTI()NSET instructionSet; //指令集合 };
调度算法的理解。 实验要求如下: (1)上机前做好充分准备,先做方案设计,并预先做一些情
况分析。 (2)方案设计、程序编写和上机调试要求独立完成。 (3)仔细观察并记录上机时出现的各种现象,记录并详细分
析运行的结果。
下一页 返回
8.1进程调度
(4)认真书写综合实验报告。报告内容中主要包括实验目的 与意义、问题模型描述、方案设计、算法描述及框图、开发 /编程环境说明、调试记录及其分析、程序清单(源代码要 带注释)、运行记录及其分析、实验总结、程序的不足之处 及修改预案等几个部分。