【发布时间】:2014-11-05 12:09:17
【问题描述】:
我的课本中提到了下面这句话:
在支持它们的操作系统上,操作系统正在调度内核级线程,而不是进程。
我理解CPU调度,但这句话没有意义。是不是说调度器程序根据特定的算法将CPU分配给内核级线程?
内核级进程不是也被调度了吗?还是它们不存在于支持内核级线程的操作系统中?
【问题讨论】:
标签: kernel
我的课本中提到了下面这句话:
在支持它们的操作系统上,操作系统正在调度内核级线程,而不是进程。
我理解CPU调度,但这句话没有意义。是不是说调度器程序根据特定的算法将CPU分配给内核级线程?
内核级进程不是也被调度了吗?还是它们不存在于支持内核级线程的操作系统中?
【问题讨论】:
标签: kernel
正如您引用的文本所暗示的那样,此问题的答案取决于特定的操作系统。但是,对这些术语进行一些定义可能有助于使事情变得更清晰。
计划 程序是执行特定工作的指令序列。这最常作为一个或多个可执行文件遇到,包括主应用程序及其使用的任何库。
在嵌入式系统中,程序将在设备制造时“嵌入”到电子设备中*,例如ASIC、微控制器、FPGA 和其他设备。
流程 进程是程序的执行实例。可能有多个程序实例同时运行,例如当您使用同一个字处理程序打开多个文档时。
每个进程都有自己的内存和至少一个执行线程。当您启动一个进程时,该进程的主线程在程序加载时启动。
话题 线程(或任务)是处理器为实现程序的特定目标而必须执行的指令序列。
在多任务操作系统中,一个进程可能有许多任务正在运行。所有任务都与父进程共享相同的内存。因此,与进程之间的切换(可能涉及通过磁盘上的交换文件交换进程的内存!)相比,进程内的任务之间的切换相当容易!
调度 根据需要完成的工作,操作系统将调度需要或等待需要执行的线程。这可能涉及更改当前流程,但通常(希望)不会。因此线程是被调度的,而进程不是。
*一些嵌入式设备包含一个“引导加载程序”,允许在制造程序后对其进行更改。
【讨论】:
当在操作系统上下文中提到线程和进程时,进程是指具有自己的内存空间的线程,线程是指与其他线程共享其内存空间的线程。
所以进程上下文切换比线程上下文切换具有更高的成本,因为切换进程上下文时的开销更高。
【讨论】: