Task 1
张配天-2018202180
4.4
对于一个需要调用 I/O 设备的进程, 在单核处理器的计算机下 (不能同时运行两个线
程), 考虑其在两种模式下工作的情况:
i. 单线程情况: 进程在发送 I/O 请求后会一直在就绪态/就绪挂起态等待 I/O 设备的响应;
此时进程的其他部分都无法得到处理器资源, 不会运行; 直到得到 I/O 设备响应才会继
续运行。
ii. 多线程情况: 不妨假设进程分为两个线程, 调用 I/O 设备的和其余部分, 记为 T1 和 T2;
这样, 在 T1 请求 I/O 设备进入等待时,T2 不会受到影响, 仍然可以得到处理器资源, 可
以继续运行。
因此, 多线程情况的效率显然高于单线程。
4.5
利用公式:
time_ratio =
1
(1 − percent) +
percent
processor
计算得到新速度约为原执行速度的 2.5 倍
4.7
a. 程序完成对一个 list 链表结构体中 val 值为正数的个数的计数
b. 在此种情况下, 程序可以正确执行。因为在这种情况下, 线程 b 的内容不会被激活执行,
即线程 b 不会对该全局变量进行修改。而传入的为所有值均为负的链表,global_positive
的初值为 0, 因此结果正确。
1
评论0