进程
- 定义
是进程实体的运行过程 & 系统进行资源分配和调度的一个独立单位
- 作用
使得多个程序可以并发执行,提高系统的资源利用率和吞吐量
- 进程状态
- 就绪
- 进程获得了除了处理器外的一切所需资源
- 一旦得到了处理器就进入运行状态
- 运行
- 处理器环境下,一个tick最多只有一个进程处于运行状态
- 阻塞
- 进程等待某一事件而暂停运行
- 即使处理器空闲,该进程也不能运行
- 创建
- 进程创建的步骤:
- 申请空白PCB并且向空白PCB中写入进程管理信息
- 由系统为该进程分配运行时所必须的资源
- 最后把进程转入就绪状态
- 结束
- 什么是进程的系统资源?(字节面试)
- 独立的内存地址空间
- 代码段
- 数据段
- BSS段
- 存放程序中未初始化的全局变量和静态变量
- 有时和数据段一起称为 静态数据区
- 堆
- 动态内存分配
- new in C++; malloc in C
- 大小不固定,需要程序员或 GC 进行管理
- 栈
- 文件描述符:打开的文件、套接字等
- 程序计数器(线程私有)
- 寄存器(线程私有)
- 与进程相关的内核数据结构:Process Control Block
- I/O状态信息
- 权限和安全属性
线程
- 定义
一个基本的 CPU 执行单元 & 程序流执行单元
协程
- 用户态线程,更小的上下文
- 主动切换(suspend)
- 上下文保存在协程栈中或者一个状态机对象保存在堆内存中