并发
并发:一段时间内多个程序都处在运行过程中
程序运行在并发环境的问题:
- 运行过程不确定
- 结果不可再现
解决方案:对运行过程施加相互约束
进程
定义: 指程序在某个数据集合上的一次运行活动
数据集合:软/硬件环境,多个进程共存/共享的环境
特征:
- 动态性:是一次执行过程
- 并发性:多个进程同时存在
- 异步性:各个进程按照自己的速度向前推进
- 独立性:是系统分配资源和调度CPU的一个单位
进程的状态
- Runing 占有CPU
- Ready 可运行但无CPU
- Block(wait) 等待某项服务完成或者信号
状态转换
深度阻塞:不能被其他进程通过信号或者时钟唤醒(可中断)
浅度阻塞:能被其他进程的信号或者时钟唤醒(不可中断)
PCB(Process Control Block)
- 定义:描述进程状态、资源和相关进程关系的数据结构
- PCB是进程的标志
- 创建进程时创建PCB;进程结束时PCB撤销
进程=程序+PCB
进程切换
上下文(context):进程运行的环境,CPU环境(所需的资源)
过程:
换出进程Context离开CPU(去栈)
换入进程Context进入CPU(栈来)