前趋图是一个有向无环图。
基本特征:顺序性、封闭性、可再现性。
基本特征:间断性、失去封闭性、不可再现性。
使多个程序能够并发执行;
提高资源利用率和吞吐量。
进程是程序的一次执行;
进程是一个程序及其数据在处理机上顺序执行时所发生的的活动;
进程是具有独立功能的程序在一个数据集上执行的过程,它是系统进行资源分配和调用的一个独立单位;
进程是程序的执行过程,是系统进行资源分配和调度的一个单位;
为了使每个程序独立地运行,在OS中配置了一个数据结构,称为进程控制块PCB。
动态性、并发性、独立性、异步性。
就绪状态:已分配到处CPU外的所有资源;
执行状态;
阻塞状态。
终端用户的需要;
父进程的需要;
负荷调节的需要;
OS的需要。
活动就绪->静止就绪
活动阻塞->静止阻塞
静止就绪->活动就绪
静止阻塞->活动阻塞
NULL->创建
创建->活动就绪
创建->静止就绪
执行->终止
内存表、设备表、文件表、用于进程管理的进程表。
PCB是进程存在的唯一标志;
作为独立运行基本单位的标志;
实现间断性运行方式;
提供进程管理所需要的信息;
提供进程调度所需要的信息;
实现与其他进程的同步与通信。
进程标识符PID(外部标识符、内部标识符);
处理机状态;
进程调度信息;
进程控制信息。
线性方式;
链接方式;
索引方式。
父进程、子进程、孙进程。
用户登录;
作业调度;
提供服务;
应用请求。
申请空白PCB;
为新进程分配其运行所需的资源;
初始化PCB;
如果进程就绪队列能够接纳新进程,就将新进程插入就绪队列。
越界错
保护错
指令错
特权指令错
运行超时
等待超时
算术运算错
操作员或OS干预;
父进程请求;
父进程终止。
根据标识符找到进程;
终止进程及其子孙进程;
归还全部资源;
将终止进程的PCB从所在队列中移出。
向系统请求共享资源失败;
等待某种操作的完成;
等待新任务的到达。
进程调用阻塞原语block将自己阻塞;
是一种主动行为。
有关进程调用唤醒原语wakeup将进程唤醒;
是一种被动行为。
OS利用挂起原语suspend将指定进程挂起。
OS利用激活原语active将指定进程激活。
低级通信:效率低、通信对用户不透明。
高级通信:使用方便、高效地传送大量数据。
基于共享数据结构的通信方式(低级通信)
基于共享存储区的通信方式(高级通信)
管道是指用于链接一个读进程和一个写进程以实现它们之间通信的共享文件,又名pipe文件
必备的协调能力:互斥、同步、确定对方是否存在
直接通信方式
间接通信方式
套接字(基于文件型、基于网络型)
远程过程调用和远程方法调用
对称寻址方式
非对称寻址方式
发送进程阻塞,接收进程阻塞
发送进程不阻塞,接收进程阻塞
发送进程和接收进程均不阻塞
单向通信链路
双向通信链路
信箱头
信箱体
信箱的创建和撤销
消息的发送和接收
私用信箱
公用信箱
共享信箱
减少程序在并发执行时所付出的时空开销
使OS具有更好的并发性
进程是一个可拥有资源的独立单位
进程同时又是一个可独立调度和分派的基本单位
线程被称为轻型进程或进程元,传统进程称为重型进程
调度的基本单位
并发性
拥有资源:进程是拥有资源的一个基本单位,线程几乎不拥有资源
独立性
系统开销
支持多处理机系统
执行状态
就绪状态
阻塞状态
线程标识符
一组寄存器的内容
线程执行状态
优先级
线程专有存储区
堆栈指针
进程是一个可拥有资源的基本单位
多个线程可并发执行
进程已不是可执行的实体
在多处理机系统中,内核能够同时调度同一进程中的多个线程并行运行;
如果进程中的一个线程被阻塞,则内核可以调度该进程中的其他线程来占有处理机并运行,也可以运行其他进程中的线程;
内核支持线程具有很小的数据结构和堆栈,线程的切换比较快,切换开销小;
内核本身也可以采用多线程技术,可以提高系统的执行速度和效率。
线程切换不需要转换到内核空间
调度算法可以是进程专用的
用户级线程的实现和OS平台无关,可共享
系统调用的阻塞问题
不能利用多处理机进行多重处理
对多一模型:将多个ULT映射到一个KST上
一对一模型:将每个ULT映射到一个KST上
多对多模型:将许多ULT映射到同样数目或较少数目的KST上