操作系统-长期调度程序在哪里使用?

问题描述 投票:0回答:4

我明白long term scheduling决定了多道程序的程度,但是我无法理解它可以用在什么地方。因为假设我想运行某个进程并双击该图标,现在该进程必须加载到主内存中并运行。操作系统从不说它不会运行该进程。

有人可以解释一下可以使用长期调度程序的场景吗??

谢谢。

process operating-system scheduling scheduler job-scheduling
4个回答
2
投票

长期运行的系统需要长期调度。您的台式机不是长期运行的机器。您使用它一段时间,然后将其关闭(或闲置)。

  • 即使你的机器一次开着几个月,你的工作仍然不是那种需要长期安排的工作。它们通常会在短期内结束。
  • 此外,即使您是启动程序并且从不费心关闭它的人之一,您的机器通常有足够的 RAM 供其使用,不需要长期调度。交换程序进出内存是中期调度程序的工作。
  • 由于 GB 可供操作系统使用,交互性的需要以及通常不会加到整个 RAM 中的程序,对于在桌面上运行的程序类型,不需要长期调度。

1
投票

“长期调度器”是一个学术概念。正如通常使用的短语一样,它与批处理作业有关。因此,交互式系统中不会有长期调度程序。


0
投票

“long term scheduling decides the degree of multiprogramming”这句话的意思是系统中并发运行的进程数是由long term scheduler控制的

LT 调度程序从处于“新”状态的进程列表中选择(因此,这些实际上并未加载到内存中),并根据当前系统负载将它们置于“就绪”状态(因此,将它们加载到内存中)和系统的实际容量。

它总是在从程序创建新进程时运行。

之所以称为 LT 调度程序,是因为与 MT 和 ST 调度程序相比,它的运行频率相对较高。


0
投票

我喜欢@pasha 的陈述,因为它简单而笼统,我想以此开始我的回答。但是它没有回答问题。

因为假设我想运行某个进程并双击该图标,现在该进程必须加载到主内存中并运行。操作系统从不说它不会运行该进程。

所以你正试图在交互式系统上启动一个新进程。

有人可以解释一下可以使用长期调度程序的场景吗??

我觉得这是一个很有意思的问题。让我告诉你 IMO 在交互式系统中会注意到 LTS 的一些场景:

  1. LTS 必须检查至少进程的初始虚拟大小是否适合可用的虚拟内存。因此,如果进程的虚拟内存占用量大于可用内存,操作系统将拒绝执行。某些操作系统可能会尝试通过增加页面文件大小来增加其可用虚拟内存,但这也有一个限制。
  2. LTS 必须检查多程序设计程度,操作系统中有一些工具可以限制用户可以同时运行的进程数。因此,如果管理员将该限制设置为 5,操作系统将拒绝执行第 6 个。
  3. 也许你可以用完 PID?至少在理论上,LTS 将负责拒绝执行进一步的流程。

所以,IMO 在每个现代的交互式操作系统中,都有一个 LT 调度程序。我不知道它是如何实现的。例如,短期调度程序是一段非常具体且定义明确的代码。 LTS 可能是相似的,或者它的功能可能分布在其他几个与流程启动相关的功能中。

问候。

© www.soinside.com 2019 - 2024. All rights reserved.