1、 设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转调度算法。 2、 建立进程就绪队列。 3、 编制两种进程调度算法:优先权调度算法和时间片轮转调度算法的实验步骤
时间: 2024-02-29 07:56:24 浏览: 113
1. 进程控制块PCB的结构设计
a. 适用于优先权调度算法的PCB结构
- 进程标识符pid
- 进程状态status
- 进程优先级priority
- 进程PC指针pc
- 进程寄存器状态reg_state
- 进程堆栈指针stack_pointer
- 进程存储器分配表memory_allocation_table
b. 适用于时间片轮转调度算法的PCB结构
- 进程标识符pid
- 进程状态status
- 进程优先级priority
- 进程PC指针pc
- 进程寄存器状态reg_state
- 进程堆栈指针stack_pointer
- 进程时间片remaining_time_slice
- 进程存储器分配表memory_allocation_table
2. 进程就绪队列的建立
在进程控制块PCB中,加入一个就绪队列指针ready_queue,用来指向该进程所属的就绪队列,然后建立一个就绪队列数组ready_queue_array,用来存放所有的就绪队列。在进程调度时,根据进程优先级和时间片等因素将进程加入到相应的就绪队列中。
3. 进程调度算法的实验步骤
a. 优先权调度算法
步骤一:建立就绪队列数组ready_queue_array,用来存放所有的就绪队列。
步骤二:建立进程控制块PCB,包含进程标识符pid、进程状态status、进程优先级priority等信息。
步骤三:创建进程并将其加入到相应的就绪队列中。
步骤四:从就绪队列中选择一个优先级最高的进程运行,并将其从就绪队列中移除。
步骤五:进程运行完毕后,如果还有其他进程在就绪队列中,根据优先级选择下一个进程运行。
b. 时间片轮转调度算法
步骤一:建立就绪队列数组ready_queue_array,用来存放所有的就绪队列。
步骤二:建立进程控制块PCB,包含进程标识符pid、进程状态status、进程优先级priority等信息。
步骤三:创建进程并将其加入到相应的就绪队列中。
步骤四:从就绪队列中选择一个进程运行,并将其时间片减1。
步骤五:如果进程运行完毕后,时间片还未用完,则将其加入到就绪队列的队尾;如果时间片已经用完,则将其加入到下一个就绪队列的队尾,并将其时间片重置为默认值。
步骤六:重复步骤四和步骤五,直到所有进程运行完毕。
阅读全文