进程与线程

127 阅读2分钟

概述

本文更像是笔记总结,梳理一下前端面试中常见的操作系统知识点。

进程

进程是系统资源分配的基本单位。顾名思义,就是"进行中的程序",即一个程序运行时的实体。

进程大体分为三部分:PCB(Process Control Block - 程序控制块),数据块,指令块。

  • PCB: 进程的唯一标识,存储一些与进程自身相关的信息,如进程id
  • 数据块:存放进程运行过程中需要的数据集
  • 指令块:存放进程运行过程中需要的指令集

在操作系统中,进程常见的五种状态为:创建态,就绪态,运行态,阻塞态,退出态。

  • 创建态:程序刚启动初始化后的状态。
  • 就绪态:一切资源准备就绪,等待被CPU调度
  • 运行态:正在被CPU调度
  • 阻塞态:程序运行过程中申请了其它IO设备,IO设备繁忙时,会从运行态转换为阻塞态
  • 退出态:程序执行结束

线程

线程是系统调度的基本单位。操作系统提出线程的概念主要是为了提高程序的并发性。

线程主要由几部分组成:TCB(Thread Control Block - 线程控制块),指令指针,寄存器集合,堆栈

  • TCB: 线程唯一标识,存储一些与进程自身相关的信息,如线程id
  • 指令指针:指向指令的指针
  • 寄存器集合: 存放一些数据信息
  • 堆栈: 存储线程运行时的数据, 用于保护现场

并发

同一时间段内指向多个事件。提高并发性的优缺点:

  • 优点: 资源利用率高,程序响应速度快,用户体验好。
  • 缺点:大部分情况下程序代码复杂性高

举例说明: 假设某台电脑是单核的,也就代表其同一时刻只能分配给一个进程使用。如果该电脑操作系统无高并发程序,那么当我们打开qq,在发送文件的同时我们就无法发送信息。因为发送文件和发送信息是两个程序。但假设我们为高并发程序,那么虽然我们是单核的,但是在同一时间段内我们可以同时执行多个任务,也就是说可以在发送文件的同时发送信息,这便是高并发的好处。