|
|
- 设计一个简化的进程管理子系统,可以管理并调度如下简化进程.给出了参考代码
-
- ### 进程的状态
-
- - RUNNING - 进程正在使用CPU
- - READY - 进程可使用CPU
- - DONE - 进程结束
-
- ### 进程的行为
- - 使用CPU,
- - 发出YIELD请求,放弃使用CPU
-
-
- ### 进程调度
- - 使用FIFO/FCFS:先来先服务
-
- ### 关键模拟变量
- - 进程列表:描述了进程的行为特征:(1)使用CPU ;(2)等待I/O
- ```
- -l PROCESS_LIST, --processlist= X1:Y1,X2:Y2,...
- X 是进程的执行指令数;
- Y是执行CPU的比例(0..100) ,如果是100,表示不会发出yield操作
- ```
- - 进程切换行为:系统决定何时(when)切换进程:进程结束或进程发出yield请求
-
- ### 进程执行
- ```
- instruction_to_execute = self.proc_info[self.curr_proc][PROC_CODE].pop(0)
- ```
- ### 执行实例
-
- #### 例1
- ```
- $./process-simulation.py -l 5:50
- Process 0
- yld
- yld
- cpu
- cpu
- yld
-
- Important behaviors:
- System will switch when the current process is FINISHED or ISSUES AN YIELD
- Time PID: 0
- 1 RUN:yld
- 2 RUN:yld
- 3 RUN:cpu
- 4 RUN:cpu
- 5 RUN:yld
-
- ```
-
-
- #### 例2
- ```
- $./process-simulation.py -l 5:50,5:50
- Produce a trace of what would happen when you run these processes:
- Process 0
- yld
- yld
- cpu
- cpu
- yld
-
- Process 1
- cpu
- yld
- cpu
- cpu
- yld
-
- Important behaviors:
- System will switch when the current process is FINISHED or ISSUES AN YIELD
- Time PID: 0 PID: 1
- 1 RUN:yld READY
- 2 READY RUN:cpu
- 3 READY RUN:yld
- 4 RUN:yld READY
- 5 READY RUN:cpu
- 6 READY RUN:cpu
- 7 READY RUN:yld
- 8 RUN:cpu READY
- 9 RUN:cpu READY
- 10 RUN:yld READY
- 11 RUNNING DONE
- ```
|