⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jinchendiaodu.txt

📁 呵呵...............这个是关于进程调度的代码
💻 TXT
字号:
操作系统-----进程调度 

[color=Silver][/color][color=Gray][/color][color=Fuchsia][/color][color=Blue][/color][color=Aqua][/color][color=Lime][/color][size=4][font=楷体_GB2312][b]要求:实现按优先级与时间片相结合的进程调度算法 
内容: 
1:设计进程控制快,进程队列结构(包括:就绪队列,等待队列,运行队列)等必要的数据结构。 
2:模拟操作系统进程调度的功能,编写进程调度程序,模拟的处理机分派程序,进程等待函数和进程唤醒函数。 
3:编写用户程序,创建6个用户进程。 
进程调度的设计方法 
1。数据结构 
(1)优先级与时间片的设计 
◆进程因等待放弃CPU时,优先级置为1(高优先级) 
◆进程因时间片到放弃CPU时,优先级置为0(低优先级) 
◆优先1对应时间片4;优先级0对应时间片10。 
(2)进程控制块(PCB)的内容 
进程标识3---9 
进程优先级 0,1 
进程优先级 0,1 
进程等待时间 20 
链接指针 

2:程序算法 
(1)PCB结构,变量与主程序 
struct PCB 
{ 
int pname; 
int pri; 
int runtime; 
int waitting; 
struct PCB*next; 
} 
pcb[7]; 
struct PCB*running,ready,wait; 
int sin=0; 
main() 
{ 创建PCB[3]--PCB[9]并插入ready队列;/*pname分别为3--9, 
pri=0,runtime=10,waittime=0 */ 
for(;;)/*系统程序,完成初始化和处理机分派功能 */ 

{cast{sig=0:swtch; 
sig=1:waiter; 
sig=3:proc3; 
sig=4:proc4; 
sig=5:proc5; 
sig=6:proc6; 
sig=7:proc7; 
sig=8:proc8; 
sig=9:proc9;} 
} 
} 
(2) 进程调度程序 
swtch() 
{ 
while(ready==NULL)wakeup(); 
移出就绪队列第一个PCB; 
送running指针; 
若pri=1,则runntime=4,否则runtime=10; 
将running→pname 送sig 
} 
(3) 将进程等待函数 
wait() 
{将运行进程插入wait队列,优先数置1; 
sig=0; 
} 
(4) 进程唤醒函数 
wakeup() 
{ 
将wait队列中所有的PCB中waittime减1; 
将wait队列中的所有的waittime=0的PCB揭除; 
插入到ready队列中第一个优先级为0的PCB前面 
}[/b][/font][/size]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -