操作系统笔记
目录
第二章 进程的描述和控制
思维导图
前驱图和程序执行
程序顺序执行
一个较大的程序通常由若干个程序段组成
程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完才能执行后继操作
前驱图
有向无循环图,用于描述进程之间执行的先后顺序
结点表示进程或程序段,有向边表示前趋关系
程序并发执行
采用多道程序技术,将多个程序同时装入内存,使之并发运行
特点
间断性:并发程序之间相互制约
执行——暂停执行——执行
失去封闭性:多个程序共享全机资源
执行状态受外界因素影响
不可再现性:程序经过多次执行后,虽然其执行时的环境和初始条件都相同,但得到的结果却各不相同
进程
定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程是程序的一次执行;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
进程控制块(process control block, PCB):专门的数据结构,与进程一一对应
特征
进程和程序的区别
进程的状态及转换
就绪状态:
一个较大的程序通常都由若干个程序段组成
程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作
执行状态:已获得CPU,正在执行的状态
单处理机:一个进程处于执行状态
多处理机:多个进程处于执行状态
阻塞状态:
正在执行的进程由于发生某事件而暂时无法继续执行的状态
典型事件:请求I/O、申请缓冲空间
根据阻塞原因,设置多个阻塞队列
创建状态:
申请一个空白PCB;填写PCB;分配资源;设置就绪状态插入就绪队列
终止状态:
等待OS善后
收回PCB
进程控制块PCB
PCB是进程的一部分,是操作系统中最重要的记录型数据结构,是进程存在的唯一标志,常驻内存
PCB作用
作为独立运行基本单位的标志;
能实现间断性运行方式;
提供进程管理所需要的信息;
提供进程调度所需要的信息;
实现与其他进程的同步与通信
PCB的信息
进程标识符
处理机状态
进程调度信息
进程控制信息
PCB的组织方式
线性方式
链接方式
索引方式
PCB线性组织方式
PCB链接组织方式
PCB索引组织方式
进程控制
进程管理最基本的功能
一般由OS内核中的原语实现
进程创建
进程终止
进程的阻塞与唤醒
进程的挂起与激活
进程通信概念
基本概念
进程通信是指进程之间的信息交换
低级进程通信 :进程的同步和互斥
效率低通信
对用户不透明
高级进程通信(封装思想)
使用方便
高效地传送大量数据
进程通信的类型
共享存储器系统:共享空间
基于共享数据结构的通信方式(效率低)
基于共享存储区的通信方式(高级)
管道通信:字节流
管道:用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件
管道机制的协调能力:①互斥、②同步、③确定对方是否存在
消息传递系统
直接通信方式(通过原语)
间接通信方式(通过信箱)
客户机-服务器系统
套接字(Socket)
远程过程调用(RPC)和远程方法调用(RMI,Java)
消息传递通信的实现方式
Linux进程通信方式
1.管道;2.信号;3.消息队列;4.共享内存;5.信号量;6.套接字
线程
基本概念
引入进程的目的
使多个程序并发执行
提高资源利用率及系统吞吐量
进程的基本属性
进程是一个可拥有资源的独立单位
进程是一个可独立调度和分派的基本单位
提出线程的目的
少程序在并发执行时所付出的时空开销
使OS具有更好的并发性
适用于SMP结构的计算机系统
进程是拥有资源的基本单位(传统进程称为重型进程)
线程作为调度和分派的基本单位(又称为轻型进程)
线程和进程的比较
调度的基本单位
在传统的OS中,拥有资源、独立调度和分派的基本单位都是进程
在引入线程的OS中,线程作为调度和分派的基本单位,进程作为资源拥有的基本单位
在同一进程中,线程的切换不会引起进程切换,在由一个进程中的线程切换到另一个进程中的线程时,将会引起进程切换
并发性
在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,也可并发执行
拥有资源
进程是系统中拥有资源的一个基本单位,它可以拥有资源
线程本身不拥有系统资源,仅有一点保证独立运行的资源
允许多个线程共享其隶属进程所拥有的资源
独立性
同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多
系统开销
在创建或撤消进程时,OS所付出的开销将显著大于创建或撤消线程时的开销
线程切换的代价远低于进程切换的代价
同一进程中的多个线程之间的同步和通信也比进程的简单
支持多机处理系统
一图流
线程的状态和线程控制块
线程的实现