学生学习单

调度、核心与事件

三个课节:预测、构建、解释。可以在纸上或本地实验室中完成。应用不会索取姓名、账户或学生记录。

25. 协作式调度

让任务轮流执行,区分策略与 CPU 指令。

打开本课 →

1. 预测与跟踪

运行试做程序前,预测输出,并跟踪最先执行的三条指令。按需要记录相关寄存器、标志或内存,再逐步执行进行比较。

LOAD 1
CALL taskA
CALL taskB
HALT
taskA: PRINT
SLEEP 500
RETURN
taskB: LOAD 101
PRINT
RETURN

加入输入队列: 无

初始化内存: 所有字节初始为零

指令执行前 PC执行后 PC执行前 R0执行后 R0相关状态输出
       
       
       

2. 构建与检查

读取 0 到 3 的轮数。任务 A 计数器从 0 开始,任务 B 从 100 开始。每轮先调用 A,让它递增并输出自己的计数器,再调用 B 完成相同操作。

必需的指令类型: INPUT, LOOP, CALL, RETURN

起始程序

INPUT
COPY R0 R3
LOAD 0 R1
LOAD 100 R2
LOOP R3
CALL taskA
CALL taskB
RETURN
HALT
taskA:
  #
RETURN
taskB:
  #
RETURN

你的程序与笔记

3. 解释机器

CALL/RETURN 轮流执行与硬件抢占相同吗?