首页 > 试题广场 >

在下面的叙述中,正确的是()。

[单选题]
在下面的叙述中,正确的是()。
  • 引入线程后,处理机只在线程间切换
  • 引入线程后,处理机仍在进程间切换
  • 线程的切换,不会引起进程的切换
  • 线程的切换,可能引起进程的切换
不同进程中的线程切换会导致进程间的切换。
发表于 2016-07-13 13:54:58 回复(0)
更多回答
同一进程内的线程切换不会引起进程的切换,不同进程内线程的切换是会引起进程的切换的。
发表于 2016-02-20 11:33:51 回复(0)
线程上下文切换和进程上下问切换一个最主要的区别
      线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。
另外一个隐藏的损耗是上下文的切换会扰乱处理器的缓存机制。
     简单的说,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。还有一个 显著的区别是当你改变虚拟内存空间的时候,处理的页表缓冲(processor’s Translation Lookaside Buffer (TLB))或者相当的神马东西会被全部刷新,这将导致内存的访问在一段时间内相当的低效。但是在线程的切换中,不会出现这个问题。



进程间切换的步骤:

1,保存程序计数其以及其他寄存器。

2, 更新当前处于“运行态”的进程的进程控制块,把进程状态改为相应状态,更新其他相关域

3, 把被切换进程的进程控制块移到相关状态的队列

4, 选择另外一个进程开始执行,把该进程进程控制块的状态改为“运行态”

5, 恢复被选择进程的处理器在最近一次被切换出运行态时的上下文,比如载入程序计数器以及其他处理器的值

进程间切换伴随着两次模式切换(用户--内核,内核--用户)。

(同一进程内)线程间切换的步骤:

线程分两种,用户级线程和内核级线程

在用户级线程中,有关线程管理的所有工作都由应用程序完成,内核没有意识到线程的存在。

(同一进程内)用户级线程间切换时,只需要保存用户寄存器的内容,程序计数器,栈指针,不需要模式切换。

缺点:

1, 在进程的某个线程执行系统调用时,不仅该线程被阻塞,该线程所在进程的所有线程都被阻塞

2, 无法利用多处理器

在内核级线程中,有关线程的管理工作都是由内核完成的,应用程序部分没有线程管理的权限,只有一个接口(API)

(同一进程内)内核级线程间切换时,除了保存上下文,还要进行模式切换。

优点:

1, 可以利用多处理器

2, 线程阻塞不会导致进程阻塞




可能切换,要看下一个被调度的线程和当前线程是否属于同一进程。如果不属于才切换页表,更换进程用户空间,否则只是从事一些线程级别工作,不会切换进程的
编辑于 2015-07-14 20:12:17 回复(0)
楼上说的都太麻烦了
线程分为用户线程和内核线程,操作系统无法对用户线程进行操作,但可以对内核线程进行操作。
对内核线程的操作可能会产生进程的切换
编辑于 2019-06-05 18:42:10 回复(0)
说是线程切换,但没说是同一条进程中的线程。
发表于 2020-08-05 11:44:41 回复(0)
同一进程内的线程切换不会引起进程的切换,不同进程内线程的切换是会引起进程的切换的。
发表于 2017-04-23 14:50:27 回复(0)
标记,进程的切换涉及到处理机的切换,这里比较容易忽略的是不同线程之间的切换会引起进程的切换
发表于 2019-05-07 15:53:03 回复(0)
处理机是什么,cpu吗?
发表于 2017-09-16 17:46:34 回复(0)
不同的线程之间的切换到导致进程的切换。
发表于 2017-03-08 10:58:04 回复(0)