导图社区 2.第二章 进程管理
这是一篇关于2.第二章 进程管理的思维导图。操作系统:是一种复杂的系统软件,是不同程序代码、数据结构、数据初始化文件的集合,可执行。
提示: 本内容由社区用户上传并分享。平台不对内容的真实性、合法性、知识产权归属及是否侵害第三方权利进行事前审核或保证。本内容可能包含受版权保护的图片、字体或其他第三方素材,使用前请自行确认授权范围。
第二章 进程管理
进程的描述:
程序的执行方式:
定义:
进程是操作系统的核心
程序的顺序执行:
含义:
先进入内存的程序先执行,在一个程序执行完毕之前,不能执行其他程序
特点:
顺序性:
处理机的操作,严格按照程序所规定的【顺序执行】
封闭性:
程序是在【封闭的环境】下运行的,即程序在运行时【独占全机资源】
可再现性:
程序不论执行多少次,【结果都相同】
程序的并发执行:
含义:
程序并发执行是指在【同一时间间隔内】运行多个程序,一个程序执行结束前,可以运行其他程序
两种并行:
宏观并行:用户看到多个程序同时向前推进
微观串行:任意时刻一个CPU上只有一个程序在执行
特点:
间断性:
程序在CPU上执行时,是【时断时续】的
失去封闭性:
系统的状态【不再只对正在执行的程序可见】
不可再现性:
同一个程序在输入相同的情况下多次运行,可能出现【不同的结果】
进程的概念:
定义:
进程:允许并发执行的程序在某个【数据集合】上的【运行过程】
进程的组成部分:
正文段
用户数据块
进程控制块(PCB)
进程的特征:
并发性:多个进程实体能在【一段时间间隔内同时运行】,现代操作系统的【重要特征】
动态性:进程是【实体的执行过程】
独立性:【独立运行】和【资源调度】的【基本单位】
异步性:进程的执行时断时续,何时进行、何时暂停都【无法预知】
结构特征:进程实体包括用户【正文段】、【用户数据块】和【进程控制块】
程序与进程的比较:
区别:
联系:
进程是程序的一次执行
一个程序可以对应多个进程
同一个进程顺序地执行几个程序
进程控制块:
定义:
进程控制块是【进程实体的一部分】,是操作系统中【最重要的数据结构】
进程控制块中记录了【操作系统】所需要的、用于【描述进程及控制进程运行】所需的全部信息
组成部分:
进程标识符信息:
用于【唯一标识一个进程】
处理机状态信息:
进程用于了解【处理机的工作状态】的信息
通用寄存器
指令计数器(PC)
程序状态字(PSW)
用户栈指针
进程调度信息:
根据【状态算法进行进程调度】(决定谁先进入CPU):
进程状态信息
进程优先级
进程调度所需的其他信息
进程控制信息:
控制进程进入CPU的顺序:
程序和数据的地址
进程同步和通信机制
资源清单
链接指针
进程的状态:
三种状态:
执行态:
进程在CPU中正在运行,每个进程必须有【一个】执行态
就绪态:
符合CPU的准备执行条件,等待执行
阻塞态:
又名等待态或封锁态,不符合CPU的执行条件
示意图:
执行变化:
就绪态→执行态:
就绪态被选中
执行态→就绪态:
分配时间片用完
执行态→阻塞态:
执行过程中不符条件
需要等待某一事件
阻塞态→就绪态:
等待的条件得到满足
进程的组织:
链接方式:
把系统中具有【相同状态】的进程控制块PCB用其中的【链接字】连城一个队列
索引方式:
系统根据所有进程的状态,建立【索引表】,索引表的每一个【表项】指向一个【PCB物理块】
进程队列:
把具有相同状态的进程控制块用【队列】组织起来
进程的控制:
进程的创建:
创建进程的条件:
用户登录
作业调度
提供服务
应用请求
创建进程的步骤:
申请空白PCB
为新进程分配资源
初始化进程控制块
将进程插入到就绪队列
父、子进程的关系:
新进程创建时:
父进程与子进程并发执行
父进程等待,直到某个或全部子进程执行完毕
新进程的地址空间:
子进程共享父进程的地址空间
子进程拥有独立地址空间
进程的阻塞:
进程的阻塞条件:
请求系统服务
启动某种操作
新数据上未到达
无新工作可做
进程阻塞的过程:
将进程的状态改为阻塞态
将进程插入相应的阻塞队列
转到进程调度程序,从就绪队列中选择进程为其分配CPU
进程的唤醒:
将进程从阻塞队列中移出
将进程状态由阻塞态改为就绪态
将进程插入就绪队列
进程的终止:
条件:进程正常执行完毕
完成进程终止的过程:
从进程PCB中读进程状态
若进程正在执行,则终止进程的执行
释放资源
将终止进程的PCB移出
操作系统内核:
【定义】:
操作系统内核是计算机硬件的【第一次扩充】,内核执行操作系统与硬件关系密切,执行频率高的模块,常驻【内存】
内核的功能:
支撑功能:
中断处理
时钟管理
原语操作
资源管理功能:
进程管理
存储管理
设备管理
中断:
【定义】:
中断是【改变处理器执行顺序的一种事件】
出现中断时,【计算机停止运行的程序】,转向【对这些中断事件的处理】,处理结束后再【返回到现行程序的间断处】
引入中断的目的:
引入中断后,能有效【提高CPU的利用率】,改善系统性能,【支持系统的异步操作】
中断的分类:
同步中断(内部中断或异常)
异步中断(外部中断):
外部可屏蔽中断
外部不可屏蔽中断
【背】引起中断的原因:
人为设置中断
程序性事故
硬件故障
I/O设备
外部事件
中断响应:
响应中断的条件
响应中断的时机
单中断的处理过程:
时钟管理:
时钟:时钟是计算机系统的脉搏,计算机的很多活动都是由【定时测量】来驱动的
两种时钟:
实时系统时钟RTC:
CMOS,类似于时钟表,记录时间
OS时钟:
类似于秒表,在计算机开始计数,记录精确时间
操作系统的时钟机制:
时钟硬件:
保存当前的日期和时间
时钟驱动程序:
维持定时器
工作方式:
时钟驱动程序的功能:
维护日期和时间
递减当前进程在一个时间片内的剩余执行时间,防止运行超时
对CPU的使用情况记账
递减报警计数器
系统调用:
系统调用的内容:
系统调用是一群【预先定义好的模块】
提供【一条管道】让【应用程序】能由此到【核心程序】的服务
系统调用是【系统程序】与【用户程序】之间的【接口】
系统调用和用户调用:
用户调用:
用户空间:
【用户进程】所处的地址空间
用户执行态(目态):
CPU【执行用户空间的代码】
系统调用:
系统空间:
含有一切【系统核心代码】的地址空间
系统执行态(管态):
CPU【执行系统核心代码】
区别:
执行状态不同:
系统调用运行在系统态
用户函数运行在用户态
执行过程不同:
系统调用执行时,当前进程被中断
系统调用加大了系统开销
【背】系统调用的类型:
进程控制类
文件操纵类
设备管理类
通信类
信息维护类
口诀:精简射虎童
进程同步:
进程同步基本概念:
同步机制:
保证在多任务共享系统资源的情况下,程序执行能得到正确的结果
多道程序下进程的关系:
资源共享关系:
保证各进程以【互斥】的方式访问【临界资源】
相互合作关系:
保证相互合作的各进程【协调】执行
进程同步的准则:
进入区:
检查进程是否可以进入临界区并对临界区【加锁】
临界区:
必须【以互斥方式访问】的共享资源称为【临界资源】
进程中【访问临界资源】的那段【代码】称为【临界区】
退出区:
释放临界区访问权【解锁】
临界区的四种状态:
空闲等待:
【没有进程】处于临界区,应允许一个请求进入临界区的进程进入
忙则等待:
临界区【已有进程】,其他视图进入临界区的进程必须等待
有权等待:
对于要访问临界资源的进程,应保证【有限时间内】进入临界区
让权等待:
申请不到资源,应【释放处理机】,以免浪费CPU资源
信号量机制:
信号量机制:
用【信号量的取值】来表示资源的使用状况,以此为基础实现进程同步
三类信号量机制:
整型信号量机制:
整型:
定义:
【共享资源状态】只能由特殊的【原子操作】改变的【整形量】
原理:
定义一个【整型变量】,用该变量的值标记【资源的使用情况】,初始值为【1】
判断方式:
如果值>0,表示有资源可用
如果值<=0,表示资源忙,没有资源可用
互斥:
互斥信号量【mutex】初始值为1
【例】:P1和P2两个进程都访问同一个临界资源打印机(CS),对应的信号量为S,S的初始值为1。想要实现互斥的代码如下:
【注】:
只有信号量S为1时,资源才能被申请
协调:
爸爸擀饼,妈妈放饼:
记录型信号量机制:
定义:【记录型变量】,用该变量的值【标记资源的使用情况】
表示方式:
S.value:可用资源数量
L.value:阻塞资源数量
当s.value>=0时,s.value的值表示资源数量
当s.value<0时,s.value的绝对值表示阻塞进程的数量
【注】:S.Value=0时,还有一个资源【正在使用】
例:
P1,P2,P3三个进程同时访问一个临界资源,互斥信号量为s,s.value的初始值为1
AND型信号量机制【略】:
原理:
将进程在整个运行过程中所需的所有资源一次性地全部分配给进程,使用完毕一起释放
实现方式:
进程通信:
线程:
线程的概念和分类:
概念:
线程是【进程中的实体】,是被系统【独立调度和分派】的【基本单位】
线程只拥有在运行中必需的资源,可与同一进程的其他线程【共享进程所拥有的全部资源】
线程的结构:
程序计数器
一组寄存器
栈
分类:
内核级线程:依赖与内核
用户及线程:不依赖内核
线程同步机制:
原语操作
信号量操作
线程的3种基本状态:
同上,略
线程控制块:
每个线程都由一个数据结构表示,这个数据结构就是【线程控制块TCB】
TCB记录了操作系统需要的、用于描述线程情况及控制线程运行所需的【全部信息】
线程控制块通常采用【链接方式】来组织
线程与进程的关系:
资源和调度:
【线程】是程序【执行的基本单位】,【进程】是【拥有资源的基本单位】
地址空间资源:
不同进程的地址空间是相互独立的,而【同一进程中的各线程共享同一地址空间】
通信关系:
进程之间的通信必须使用操作系统提供的进程间通信机制,而【同一进程中的各线程间可以通过直接通信】
并发性:
多进程之间可以并发执行,【多线程之间也可以并发执行】
系统开销:
【线程切换的开销】比进程切换的开销【小】
线程的控制:
创建:
用户线程的创建
内核线程的创建
阻塞与唤醒:
请求系统服务
启动某种操作
新数据尚未到达
调度与切换:
用户线程的调度与切换
内核线程的调度与切换
终止:
正常结束
异常结束
外界干扰