为什么响应时间在 CPU 调度中很重要?
Why is response time important in CPU scheduling?
我正在寻找响应时间很重要的工作示例。
One definition of response time is:
The time taken in an interactive program from the issuance of a command to the commence of a response to that command.
我读到响应时间对于交互性很重要,但我不明白为什么。如果作业未完全完成,可以生成哪些用户感兴趣的输出?
用户不会只关心作业完成的时间,因为这是第一次生成任何输出?
例如,考虑两个作业的这两种可能的调度:
Case 1: |---B---|---A---|
Case 2: |-A-|---B---|-A-|
假设作业A和B同时发出,A是用户输入的命令,B是某个后台进程。
据我所知,作业 A 的响应时间在情况 2 中会更短。由于作业 A 在这两种情况下同时完成(并产生输出),我不明白用户如何受益(甚至注意到)案例 2 中的响应时间更好。
在编写操作系统时,必须考虑目标受众是什么。在某些情况下,尽快完成工作最重要(超级计算机系统),在某些情况下,尽可能快速响应最重要(常规桌面系统),而在某些情况下,尽可能可预测最重要(实时系统)。
为了尽可能快地完成作业,任务应该尽可能少地被打断(所以任务切换之间的间隔时间长是最好的选择)。在这里,响应时间并不重要。需要注意的是,由于必须将旧任务的状态(包括寄存器和分页结构)保存到内存并恢复状态(包括寄存器和内存中的新任务的分页结构)。这也会导致缓存和 TLB 未命中,因为缓存的信息通常不属于当前进程。
为了响应最快,任务应该尽可能频繁地被中断,这样用户就不会遇到所谓的延迟。这是响应时间很重要的地方。但是请注意,在中断驱动的体系结构(如 x86)上,来自键盘或鼠标的中断将自动暂停当前任务的执行并调用中断处理程序,该处理程序处理输入并将其发送到适当的程序。
对于最可预测的可能性,输入的处理速度既不能太快也不能太慢。这意味着响应时间受到两种方式的限制,因此比 "most responsive possible" 设计中的要重要得多。错误预测甚至可能是关键任务系统的致命故障。
简而言之,响应时间的重要性因设计而异,范围从几乎不重要到关键。
我想我自己的问题有了答案。问题是,我只是在考虑像 ls
这样的简单流程,一旦发布就会运行一段时间,然后 然后 ,当它们完成时,交付他们的第一个也是唯一一个输出。
但是,假设问题示例中的作业 A 是一个包含多个打印语句的程序。在这种情况下,输出将在 过程完成之前 产生(并且一些打印输出很可能在第一次计划的连拍期间发生)。因此,交互性希望尽快开始 运行 这样的过程是有意义的。
我正在寻找响应时间很重要的工作示例。
One definition of response time is:
The time taken in an interactive program from the issuance of a command to the commence of a response to that command.
我读到响应时间对于交互性很重要,但我不明白为什么。如果作业未完全完成,可以生成哪些用户感兴趣的输出?
用户不会只关心作业完成的时间,因为这是第一次生成任何输出?
例如,考虑两个作业的这两种可能的调度:
Case 1: |---B---|---A---|
Case 2: |-A-|---B---|-A-|
假设作业A和B同时发出,A是用户输入的命令,B是某个后台进程。
据我所知,作业 A 的响应时间在情况 2 中会更短。由于作业 A 在这两种情况下同时完成(并产生输出),我不明白用户如何受益(甚至注意到)案例 2 中的响应时间更好。
在编写操作系统时,必须考虑目标受众是什么。在某些情况下,尽快完成工作最重要(超级计算机系统),在某些情况下,尽可能快速响应最重要(常规桌面系统),而在某些情况下,尽可能可预测最重要(实时系统)。
为了尽可能快地完成作业,任务应该尽可能少地被打断(所以任务切换之间的间隔时间长是最好的选择)。在这里,响应时间并不重要。需要注意的是,由于必须将旧任务的状态(包括寄存器和分页结构)保存到内存并恢复状态(包括寄存器和内存中的新任务的分页结构)。这也会导致缓存和 TLB 未命中,因为缓存的信息通常不属于当前进程。
为了响应最快,任务应该尽可能频繁地被中断,这样用户就不会遇到所谓的延迟。这是响应时间很重要的地方。但是请注意,在中断驱动的体系结构(如 x86)上,来自键盘或鼠标的中断将自动暂停当前任务的执行并调用中断处理程序,该处理程序处理输入并将其发送到适当的程序。
对于最可预测的可能性,输入的处理速度既不能太快也不能太慢。这意味着响应时间受到两种方式的限制,因此比 "most responsive possible" 设计中的要重要得多。错误预测甚至可能是关键任务系统的致命故障。
简而言之,响应时间的重要性因设计而异,范围从几乎不重要到关键。
我想我自己的问题有了答案。问题是,我只是在考虑像 ls
这样的简单流程,一旦发布就会运行一段时间,然后 然后 ,当它们完成时,交付他们的第一个也是唯一一个输出。
但是,假设问题示例中的作业 A 是一个包含多个打印语句的程序。在这种情况下,输出将在 过程完成之前 产生(并且一些打印输出很可能在第一次计划的连拍期间发生)。因此,交互性希望尽快开始 运行 这样的过程是有意义的。