资源描述:
《操作系统试验91469》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一进程控制和调度实验冃的用高级语言编写和调试进程调度的模拟程序,以加深对进程调度算法的理解。实验内容1、口定义进程相关的数据结构;2、利用MFC类库中的栈(queue),链表(list),向M(vector)等模板模拟进程控制块队列、进程控制块优先级队列、统计信息链表及其指令集合;3、利用MSDN和MFCAPI编程实现常见的进程控制和调度策略(先來先服务算法、时间片轮转算法、最高优先权优先调度算法、最短进程优先调度算法);4、测试以上进程调度策略的周转时间、带权周转时间、平均周转时间和平均带权周转时间,并定性评价它们的性能。预备知识1、信号相关的系统调用①SetCon
2、soleCtrlHandler:定义或取消本进程的信号处理例程列表中的用户定义例程;②GenerateConsoleCtrlEvent:发送信号到与木进程共享同一控制台的控制台进程组;这一组系统调用处理的信号冇5种,是Windows2000/XP特冇的,包括CTRL_C_EVENT,悅①②③④⑤2CTRL_BREAK_EVENT,CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT,CTRL_SHUTDOWN_EVENToInitializeCriticalSection:初始化临界区对象;EnterCriticalSection:等待占用临界区的使用权;
3、TryEnterCriticalSection:非等待方式申请临界区的使用权;LeaveCriticalSection:释放临界区的使用权;DeleteCriticalSection:释放」J临界区对象相关的所冇系统资源3、线程相关的系统调用①CreateThread:创建一个线程内核对彖,线程执行指定的ThreadProc例程;②ThreadProc:线程执彳亍例程;③ExitThread:终止线程的运行,同时操作系统清除该线程使用的所有操作系统资源;④TerminateThread:撤消任何线程,线程的内核对象的使川计数也被递减,但系统不撤消该线程的堆栈;线程函数返冋
4、是确保所有线程资源被正确地清除的唯一办法。以上的系统调用详细资料参考MSDN网站或光盘。4、进程调度常用算法的相关知识参考课堂《计算机操作系统》教材5、MFC栈(queue),链表(1ist),向量(vector)相关知识参考MSDN网站或光盘实验指导1、进程相关的数据结构//进程状态enumPROCSTATUSReady,〃就绪Block,〃阻塞Run,//运行};〃进程优先级enumPROCPRIORITY{Low,〃低LowStandard,〃低于标准Standard,〃标准HighStandard,〃高于标准High,〃高RealTime,〃实时I;〃调度算法en
5、umSCHEDULEALGORITHMFCFS,〃先來先服务SPF,〃短进程优先FPF_Reaved,〃抢占式高优先级TimePiece,〃时间片轮转〃进程标识符structPROCID{intnlnlD;〃内部标识符intnOutID;〃外部标识符〃处理机状态structPROCESSORSTATUS{intnIP;〃指令指针//进程调度信息structPROCSCHINFO{PROCSTATUSstatusProc;〃进程状态PROCPRIORITYprocPriority;〃进程优先级};//进程控制信息structPROCCONINFO{PCB*pNextPCB;
6、//卜"一PCB};〃程序structPROGRAM};intnProgLen;intnIP;SYSTEMTIMEINSTRUCTIONSETtimeSystem;instructionSet;〃程序人小〃指令指针〃程序请求运行时间〃指令集合//统计信息structSTATINFO〃进程请求运行时间intnRequestTime;intnGetCPUTime;//系统为Z提供服务时间};〃进程控制块structPCBinfoStat;idProc;program;STATINFOPROCIDPROGRAMPROCESSORSTATUSstatusProcessor;PRO
7、CSCHINFOPROCCONINFOinfoProcSch;infoProcCon;〃统计信息//进程标识符〃该进程对应的程序〃处理机状态//进程调度信息〃进程控制信息};〃统计信息:程序长度〃程序长度〃进程ID〃周转时间structSTATINFOPROGLENintnProgLen;intnProcID;intnPeriod;intnWeighlPeriod;//带权周转时间booloperator<(STATINFO_PROGLENinfoStat)returnnProgLen