导图社区 操作系统第二章思维导图
照搬书上的,纯基础,内容全面,整理不易,不喜勿购。深入解剖操作系统软件的进程控制、调度、开发,文件系统的规划等。
编辑于2021-05-23 17:28:50进程和线程
进程概念
多道程序设计
1.顺序程序活动的特点:
①顺序性是指程序所规定的每个动作都在上个动作结束后才开始。
②封闭性是指只有程序本身的动作才能改变程序的运行环境。
③可再现性是指程序的执行结果与程序运行的速度无关。
2.单道程序系统具有资源浪费效率低的明显缺点。
3.多道程序设计的优点:①提高系统资源利用率②增加作业吞吐量
4.多道程序设计的缺点:程序的并发执行和系统资源的共享使得操作系统的工作变得很复杂,不像单道程序顺序执行时那样简单、直观。
5.程序并发执行的特征:①失去封闭性。②程序与计算不再一一对应。③并发程序在执行期间相互制约。
进程概念
1.进程概念的引入:由于多大程序并发执行时共享系统资源,使系统中各程序在执行过程中出现相互制约的新关系。
2.进程概念
含义:程序在并发环境中的执行过程。广义上定义为,一个具有独立功能的程序关于某个数据集合的一次运行活动。
进程最根本的属性是动态性和并发性。
进程与程序的区别
①动态性:程序是静态、被动的概念,本身可以作为一种软件资源长期保存。进程是程序的一次执行过程,是动态、主动的概念,有一定的生命期,会动态的产生和消亡。
②并发性:进程是作为支援申请和调度单位存在的,可作为独立运行单位并发执行。通常的程序是不能作为一个独立运行的单位而并发执行的,程序本身具有顺序执行的性质,不同的模块间通过相互调用实现控制转移。
③非对应性:虽然进程与程序属于一对多关系,但一个程序可被多个进程共用,一个进程在其活动中又可顺序的执行若干程序。
④异步性:各个进程在并发执行过程中会产生相互制约关系,造成各自前进速度的不可预测性。程序本身是静态的,不存在这种异步特征。
进程的基本特征
①动态性
②并发性
③调度性
④异步性
⑤结构性
进程的状态和组成
进程的状态及其转换
进程的基本状态:
①运行状态:指当前进程已经分配到CPU,他的程序正在处理机上执行时的状态。在一般单CPU系统中,任何时刻处于运行状态的进程至多是一个。在多处理器系统中同时处于运行状态的进程,可以有多个。运行状态的进程数小于等于CPU数。
②就绪状态:指进程已经具备运行条件,但因为其他进程正占用CPU,使得它暂时不能运行而处在等待分配CPU的状态。就绪状态进程数小于等于进程总数。
③阻塞状态:指进程应等待某种事件发生而暂时不能运行的状态。
④新建状态:指进程刚被创建,尚未放入就绪队列时的状态。
⑤终止状态:指进程完成自己的任务,而正常终止时或在运行期间由于出现某些错误和故障而被迫终止(非正常终止)时所处的状态。
UNIX进程状态:
①用户运行态—在CPU上执行用户程序。
②核心运行态—在CPU上执行核心程序。
③在内存就绪—具备运行条件,只等核心调度它就可取得CPU控制权。
④在内存睡眠—尚不具备运行条件,在内存中等待某个事件发生。
⑤在外存就绪—就需进城被对换到外存上。
⑥在外存睡眠—睡眠进程被对换到外层存上。
⑦被剥夺—进程在返回用户态之前,被调度程序强行剥夺处理机后的进程状态。目的是强调该进程从核心态返回到用户态时才会被剥夺。
⑧创建态—新进程被创建,但尚未完毕的中间状态。
⑨终止态—进程终止自己。
子主题
进程描述
1.进程映像通常就由程序、数据集合、栈和PCB4部分组成。
2.进程控制块的组成,也称进程描述块,是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。
3.进程块的组成有:①进程名②特征信息③进程状态信息④调度优先权⑤通信信息⑥现场保护区⑦资源需求、分配和控制方面的信息⑧进程实体信息⑨族系关系⑩其他信息
4.进程控制块的作用:
①每个进程有唯一的进程控制块。
②操作系统根据PCB对进程实施控制和管理。
③进程的动态、并发等特征是利用PCB表现出来的。
④PCB是进程存在的唯一标准。
进程队列
1.线性方式
2.链接方式
3.索引方式
进程管理
进程图
1.进程图是描述进程族系关系的有向图。
2.族系关系:由父进程创建子进程,子进程创建子进程。
进程创建
1.引发创建进程的事件通常是调度新的批作业,交互式用户登录,操作系统提供(特定)服务和现有进程派生新进程。
2.创建新进程时要执行创建进程的系统调用,其主要操作过程有4步:
①申请一个空闲的PCB
②为新进程分配资源
③将新建成的PCB初始化:一般将新进程状态设置为就绪状态。
④将新进程加到就绪队列中
一个进行派生新进程后有两种可能的执行方式:⑴父进程和子进程同时(并发)执行。⑵父进程等待他的某个或全部子进程终止。
建立子进程的地址空间,也有两种可能的方式:⑴子进程复制父进程的地址空间。⑵把程序装入子进程的地址空间。
进程终止(原因)
1.正常终止
2.异常终止:运行超时,内存不足,越界错误,保护错误,算术运算错,等待超时,I/O故障,非法指令,特权指令,数据不可用。
3.外部干扰:操作员或操作系统的干预,父进程终止,父进程请求。
进程的主要操作过程:①找到指定进程的PCB ②终止该进程的运行 ③回收该进程所占用的全部资源 ④终止其所有子孙进程,回收它们所占用的全部资源 ⑤将被终止进程的PCB从原来队列中摘走
进程阻塞(过程)
1.立即停止当前进程的执行
2.将现行进程的PCB现场送到该进程的PCB现场保护区中保存起来
3.现行状态由“运行”改为“阻塞”
4.转到进程调度程序
进程唤醒(过程)
1.把阻塞进程从相应的阻塞队列中摘下
2.将现行状态改为就绪状态,然后把该进程插入就绪状态中
3.如果被唤醒的进程比当前运行进程的优先级更高,则设置重新调度标志
线程
线程概念
1.进程只作为资源拥有者,而调度和运行的属性赋予新的实体——线程(LWP)。线程是进程中实施调度和分配的基本单位。
2.线程的组成:每个线程有一个thread结构,即线程控制块,用于保存自己私有的信息。线程必须在某个进程内执行。一个进程可以包含一个线程或多个线程。
基本部分组成:①一个唯一的线程标识符。 ②描述处理器工作情况的一组寄存器的内容。 ③每个thread结构有两个栈指针。 ④一个私有存储区。
3.线程的状态:运行状态,阻塞状态,就绪状态和终止状态
4.线程的管理:①线程创建②线程终止。③线程等待。④线程让权。
5.线程和进程的关系
①一个进程可以有多个线程,但至少要有一个线程:并且,一个线程只能在一个进程的地址空间内活动。
②资源分配给进程,同一进程的所有线程共享该进程的所有资源。
③处理机分配给线程,即真正在处理机上运行的是线程。
④线程在执行过程中需要协助同步。不同进程的线程间要利用信息通信的方法实现同步。
6.引入线程的好处
①易于调度
②提高并发性
③开销少
④利于充分发挥多处理机的功能
线程的实现
1.速度:用户级线程式进程>核心线程式进程>单线程进程
2.第一种方式是把线程库整个地放在用户空间,核心对线程一无所知
优点:
①线程切换速度很快。
②调度算法可以是应用程序专用的。
③可以运行在任何操作系统上。
缺点:
①系统调用的阻塞问题。
②在单纯用户级线程方式中,多线程应用程序不具有多处理器的优点。
3.第二种方式是在核心空间实现线程。
优点:
①这种方式克服了用户级线程方式的两个主要缺陷:⑴在多处理器系统中,核心可以同时调度同一进程的多个线程。⑵如果一个进程的某个线程阻塞了,核心可以调度同一个进程的另一个线程。
②核心线程本身也可以是多线程的。
缺点:主要是控制转移开销大。
进程的同步和互斥
进程同步与互斥的概念
1.同步:逻辑上相关的两个或多个进程为完成一项任务,通过协调活动来使用同一资源,而产生的执行时序的约束关系。(逻辑相关,执行次序有约束,双方知道对方存在和作用,直接关系)
2.互斥:逻辑上相互无关的两个或多个进程由于争用同一资源而产生的相互制约关系。(逻辑无关,执行次数无约束,双方不知道对方的存在和作用,间接关系)
3.两个或多个进程同时访问和操纵相同的数据时,最后的执行结果取决于进程运行的精确时序,这种情况称作竞争条件。
临界资源和临界区
1.临界资源和临界区
①一次仅允许一个进程使用的共享资源(类)称为临界资源。
②在每个进程中访问临界资源的那段程序叫做临界区,简称CS区。
2.进程的一般结构
3.临界区进入准则:必须禁止两个或两个以上的进程同时进入临界区内。欲进入临界区的若干进程,要满足如下关系:①单个入区。②独自占用。③尽快退出。④“落败让权”。
互斥实现方式
1.利用硬件方法解决进程互斥问题
①禁止中断
②专用机器指令
2.原语
①含义:是机器指令的延伸,往往是为完成某些特定的功能而编制的一段系统程序。
②原语操作也称作“原子操作”。即一个操作系统中的所有动作要么全做,要么全不做。执行原语操作时,要屏蔽中断,以保证其操作的不可分割性。
3.利用软件方法解决进程互斥问题
步骤:①关锁②执行临界区程序③开锁
信号量
1.整型信号量:P操作表测试,V操作表增加
操作限制:①信号量可以初始化为一个非负值②只能由P和V两个操作来访问信号量。
s=0: 没有可用资源;s>0: 有1个或多个资源
2.结构型信号量(记录型信号量或计数型信号量)
含义:一般是由两个成员组成的数据结构。其中一个成员是整型变量,表示该信号的值;另一个指向PCB的指针。
信号量的值与相应资源的使用情况有关。
信号量可以赋初值,且初值为非负数。信号量的值可以修改,但只能由P和v操作来访问。
3.二值信号量
它的值只能在0和1之间选择,依赖于底层的硬件体系结构。二值信号量比计数信号量更容易实现。二值信号量类似互斥锁。
信号量的一般应用
1.用信号量实现进程互斥:在每个进程中用于实现互斥P(mutex)和V(mutex)必须成对出现。互斥信号量mutex的初值为1。
2.用信号量实现进程简单同步:P,V操作出现的顺序和信号量的初值设置有关。
经典进程同步问题(书55-59页)
1.生产者—消费者问题
2.读者—写者问题(读者优先或写者优先)
3.哲学家进餐问题(饥饿问题)
4.打瞌睡的理发师问题
5.使用信号量的几点提示
①根据问题给出的条件,确定进程有几个或几类。
②确定进程间的制约关系是互斥还是同步,确定信号量种类。
③各相关进程间通过什么信号量实现彼此的制约,标明信号量的含义和初值。
④编写相关进程的代码段。
⑤同一信号量的P、V操作要“成对”出现,P、V操作的位置一定要正确。
⑥验证代码的正确性。
管程
1.含义:一个管制定义一个数据结构和能为并发进程在其上执行的一组操作,这种操作能实现进程同步和改变管程中的数据。
2.组成:管程名称,局部于管程的共享数据的说明,对数据进行操作的一组过程和对该共享数据赋初值的语句。
3.特性:
①管程内部的局部数据变量只能被管程内定义的过程所访问,不能被管程外面声明的过程直接访问。
②进程要想进入管程,必须调用管程内的某个过程。
③一次只能有一个进程在管程内执行,而其余调用该管城的进程都被挂起,等待该管程成为可用的。即管程能有效地实现互斥。
4.优缺点:管程自动实现对临界区的互斥,因而用它进行并行程序设计比用信号量更容易保证程序的正确性。指望这些编译程序实现互斥规则是不靠谱的。增加信号量很容易。
进程通信
含义:进程通信是指进程间的信息交换。
低级进程通信:进程的互斥和同步机构因交换的信息量少,被归结为低级进程通信。
高级进程通信:
1.共享存储器方式:在内存中分配一片空间作为共享存储区。
2.信息传递方式:以信息为单位在进程间进行数据交换。
①直接通信方式。发送进程直接将信息挂在接收进程的消息缓冲队列上,接收进程从消息缓存队列中得到消息。
②间接通信方式。发送进程将消息送到称作信箱的中间设施中,接收进程从信箱中取得消息。
3.管道文件方式:写者向管道文件中写入数据,读者向管道文件中读入数据。
消息传递系统
1.功能:允许进程彼此进行通信,而不必借助于共享数据。
2.原语:send,receive。他们是系统调用,而不是编程语言的构造
3.问题:
①同步
②寻址
直接通信方式
间接通信方式
信箱:⑴公用信箱⑵共享信箱⑶私有信箱
发送方与接收方关系:一对一、多对一、一对多或多对多
③消息格式:取决于消息机制的目标和在什么系统上运行。
④排队规则
先进先出
优先权法
⑤用消息传递方式结局生产者—消费者问题
客户—服务器系统中的通信
1.socket
2.远程过程调用