进程与线程
进程概念 特征
描述程序和控制程序并发执行,实现OS的并发性和共享性
描述进程基本情况和运行状态,控制管理进程——>PCB(进程存在的唯一标志)
进程实体(进程映像):程序段、数据段、PCB【静态】——>进程是动态的
资源分配和调度的基本单位,拥有资源的基本单位
动态性、并发性、独立性、异步性、结构性
【程序的封闭性:进程执行的结果只取决于进程本身,进程执行速度不受外界影响。失去封闭性后,不同速度下执行结果不同。】
进程状态 转换
就绪态无处理机有资源
运行态有处理机有资源
就绪态——>运行态:一旦获得CPU就可转为运行态,即进程调度时获得CPU
运行态——>就绪态:运行态进程时间片用完后,让出CPU
阻塞态无处理机无资源
运行态——>阻塞态:进程等待其他资源(系统调用形式请求,PV中有资源未释放……) 进程主动所为
阻塞态——>就绪态:进程获得所需资源(IO完成,中断结束……) 进程被动所为
新建态
终止态
进程控制
进程创建:分配 初始化PCB,分配资源,进程加入就绪队列
进程终止:剥夺处理机,终止子进程,归还资源给父进程或者操作系统,进程从队列删除
进程阻塞:处于运行态进程需要保护现场后停止运行,插入等待队列(自主行为,自我阻塞)
进程唤醒:等待队列中找到进程PCB,插入就绪队列,等待调度(被其他与之相关的进程唤醒,如PV中临界区的使用)
进程切换:内核态下完成;保存处理机上下文后更新PCB并将其移入其他队列;选择另一进程更新PCB;恢复处理机上下文
【 切换和调度区别
切换:实际分配行为,执行行为
调度:决定资源分配给哪个进程的行为,决策行为
先有资源调度,再有进程切换 】
进程组织
进程控制块PCB(核心)、程序段、数据段
组织方式:链接方式、索引方式
【补充:父进程和子进程有不同的PCB(每个进程都有自己的PCB)
父进程和子进程可以并发执行
父进程和子进程不可同时使用临界资源
父进程和子进程共享一部分资源,但不共享虚拟地址空间,创建子进程时,会为子进程分配资源(虚拟地址空间等)】
进程通信
共享存储:进程之间存在一块可以直接访问的共享空间,需要同步/互斥(PV)
低级方式——基于数据结构;高级方式——基