在每个线程的基础上,操作系统不维护虚拟内存状态?

时间:2015-10-13 11:30:22

标签: multithreading process operating-system

线程通常被定义为轻量级进程,因为操作系统维护线程的数据结构比进程更小。

我有两个问题:

  1. 在每个线程的基础上,操作系统不维护虚拟内存状态?
  2. 在每个线程的基础上,操作系统只维护调度和记帐信息吗?
  3. 我的理由:因为每个线程只有堆栈和寄存器不同,所以(1)为真,(2)为假。

    这是对的吗?

    修改:这是原始问题

      

    线程通常被定义为"轻量级过程"因为一个   操作系统(OS)维护线程的较小数据结构   而不是一个过程。与此相关,以下是以下哪项   TRUE?

         

    (A)在每个线程的基础上,操作系统只维护CPU寄存器状态

         

    (B)操作系统不为每个线程维护单独的堆栈

         

    (C)在每个线程的基础上,操作系统不维护虚拟内存状态

         

    (D)在每个线程的基础上,操作系统只维护调度和   会计信息

1 个答案:

答案 0 :(得分:4)

线程与其所属的进程共享其虚拟内存。这使得我们在多线程中常见的所有结构成为可能,我们只需通过写入变量就可以在线程之间交换数据。

这也意味着线程更快启动,因为操作系统不需要加载/设置二进制映像,运行初始化代码等,就像它对单独的进程一样(用例如fork(2)创建)。 / p>

但是,线程是操作系统CPU调度程序的独立单元,因此操作系统确实为每个线程保留了单独的调度信息。