操作系统面试题01

  • 操作系统面试题01已关闭评论
  • 131 次浏览
  • A+
所属分类:linux技术
摘要

  进程是资源分配的基本单位。     进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。


01、进程和线程的区别

1、进程

  进程是资源分配的基本单位。

    进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

    下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。

  操作系统面试题01

2、线程

  线程是独立调度的基本单位。

  一个进程中可以有多个线程,它们共享进程资源。

  QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

  操作系统面试题01

3、区别

1. 拥有资源:进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。

2. 调度:线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

3. 系统开销:由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

4. 通信方面:线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。

4、模拟面试题(简单


 

进程和线程的区别?

答:

  • 一个进程可以包含多个线程;
  • 进程间不共享资源,有独立代码和数据空间(程序上下文),由系统直接分发,开销大。同一进程的不同线程共享空间,线程只独立拥有程序计数器、寄存器、堆栈、状态。