炉石哪个职业最厉害:操作系统C++编程高手请进来切磋一下.

来源:百度文库 编辑:高考问答 时间:2024/05/13 05:52:50
C++学得烂,操作系统又什么都不懂,下面这是我们老师布置给我们的几个实验报告,麻烦请大家看一下了,请教编程高手指导指导,如果有哪位高手知道怎么编程序的,请告诉我,定当重谢,编得好的话另外还有奖励积分哦.

实习一 处理器调度
一、实习内容
选择一个调度算法,实现处理器调度。
二、实习目的
在采用多道程序设计的系统中,往往若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占有处理器。本实习模拟在单处理器情况下的处理器调度,加深了解处理器调度的工作。
三、实习题目
本实习有两题,学生可任选一题。
第一题:设计一个按优先数调度算法实现处理器调度的程序。
[提示]:
(1) 假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:
进程名、指针、要求运行时间、优先数、状态。
进程名——P1~P5。
指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。
要求运行时间——假设进程需要运行的单位时间数。
优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态——假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。
(2) 每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3) 处理器总是选队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。
(4) 进程运行一次后,若要求运行时间不等于0,则将它加入队列,否则,将状态改为“结束”,退出队列。
(5) 若就绪队列为空,结束,否则,重复(3)。

第二题:设计一个按时间片轮转法实现处理器调度的程序。
[提示]:
(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:
进程名、指针、要求运行时间、已运行时间、状态。
进程名——Q1~Q5。
指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。
要求运行时间——假设进程需要运行的单位时间数。
已运行时间——假设进程已运行的单位时间,初始值为0。
状态——假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。
(2) 每次运行之前,为每个进程任意确定它的“要求运行时间”。
(3) 把5个进程按顺序排成循环队列,用指针指出队列连接情况。用一个标志单元记录轮到运行的进程。处理器调度总是选择标志单元指示的进程运行,对所指的进程,将其“已运行时间”加1。
(4) 进程运行一次后,若“要求运行时间”等于“已运行时间”,则将状态改为“结束”,退出队列,否则将它加入队列,继续轮转。
(5) 若就绪队列为空,结束,否则,重复(3)。

C:\WINDOWS\Desktop\计算机操作系统实验指导.htm