【问题标题】:CPU scheduling and kernel-level threadsCPU 调度和内核级线程
【发布时间】:2014-11-05 12:09:17
【问题描述】:

我的课本中提到了下面这句话:

在支持它们的操作系统上,操作系统正在调度内核级线程,而不是进程。

我理解CPU调度,但这句话没有意义。是不是说调度器程序根据特定的算法将CPU分配给内核级线程?

内核级进程不是也被调度了吗?还是它们不存在于支持内核级线程的操作系统中?

【问题讨论】:

标签: kernel


【解决方案1】:

正如您引用的文本所暗示的那样,此问题的答案取决于特定的操作系统。但是,对这些术语进行一些定义可能有助于使事情变得更清晰。

计划 程序是执行特定工作的指令序列。这最常作为一个或多个可执行文件遇到,包括主应用程序及其使用的任何库。

在嵌入式系统中,程序将在设备制造时“嵌入”到电子设备中*,例如ASIC、微控制器、FPGA 和其他设备。

流程 进程是程序的执行实例。可能有多个程序实例同时运行,例如当您使用同一个字处理程序打开多个文档时。

每个进程都有自己的内存和至少一个执行线程。当您启动一个进程时,该进程的主线程在程序加载时启动。

话题 线程(或任务)是处理器为实现程序的特定目标而必须执行的指令序列。

在多任务操作系统中,一个进程可能有许多任务正在运行。所有任务都与父进程共享相同的内存。因此,与进程之间的切换(可能涉及通过磁盘上的交换文件交换进程的内存!)相比,进程内的任务之间的切换相当容易!

调度 根据需要完成的工作,操作系统将调度需要或等待需要执行的线程。这可能涉及更改当前流程,但通常(希望)不会。因此线程是被调度的,而进程不是。

*一些嵌入式设备包含一个“引导加载程序”,允许在制造程序后对其进行更改。

【讨论】:

    【解决方案2】:

    当在操作系统上下文中提到线程和进程时,进程是指具有自己的内存空间的线程,线程是指与其他线程共享其内存空间的线程。

    所以进程上下文切换比线程上下文切换具有更高的成本,因为切换进程上下文时的开销更高。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2019-04-08
      • 2023-02-19
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      相关资源
      最近更新 更多