导图社区 处理器处理
这是一篇关于处理器处理的思维导图,主要内容包括:线程,单处理器调度算法,处理器调度,进程控制,进程的状态及转换,进程的概念。
编辑于2024-12-24 21:15:46处理器处理
进程的概念
单道程序环境下程序顺序执行特性(一个具有独立功能的程序独占CPU运行,获得最终结果的过程):①顺序性:如无意外前一个操作的结束意味着后一个操作的开始②封闭性:程序运行独占全机资源,一旦运行,运行结果不受外界影响③可再现性:只要初始条件相同,程序重复运行时,都将获得相同的结果
程序的并发执行:宏观串行,微观并行(除受到前一个操作结束后才能开始之外,还受到其他并发执行的程序和系统资源,如CPU、I/O设备的制约)
多道程序环境下并发执行特性:①间断性:共享系统资源时,并发执行的程序之间产生相互制约的关系(走走停停)②不封闭性:多个并发执行的程序共享系统中的所有资源③不可再现性:运行结果、速度、轨迹不确定
进程:操作系统进行资源分配和保护的基本单位,是程序关于某个数据集合的一次执行过程
结构:进程实体=程序段(必有)+相关数据段+PCB(进程控制块)(必有:储存进程动态执行的相关资料)
特征:①动态性:进程实质是程序的一次执行,具有生命期②并发性:多个进程实体在一段时间内能够并发执行③独立性:独立运行、资源分配、调度的基本单位④异步性:按各自独立、不可预知的速度向前推进(走走停停的间断性活动)⑤结构性:由三部分组成
程序与进程的区别:一个程序可对应多个进程,一个进程对应一段程序;程序像乐谱,进程像演奏
进程的状态及转换
两状态进程模型:运行、非运行
三状态进程模型:就绪(获得了除CPU外的所需资源)、运行(获得CPU和所需的资源)、阻塞(发生了某种等待事件,不能竞争CPU);不一定要经历完三个状态
进程状态变迁:①就绪→运行由进程调度(分派程序)完成②运行→阻塞由运行进程自己提出③阻塞→就绪总是由外界事件引起④运行→就绪通常在分时操作系统中出现,CPU时间片用完⑤进程不能由阻塞直接变迁到运行
五状态进程模型:创建、就绪、阻塞、运行、终止
进程终止:当一个进程执行到自然结束点或出现不可克服的错误而不得不取消,或被有特权的进程取消。不能再被调度执行,相关数据信息由操作系统临时保存,逐步释放系统资源,最后释放其PCB
进程状态变迁:①空→创建:执行一个程序时系统为其创建一个新进程②创建→就绪:新创建进程完成初始化工作,系统将其变为就绪状态,插入进程就绪队列③运行→种终止:当前运行的进程运行结束或取消
进程的挂起:指在内存中的进程被暂时移出到外存中
原因:①用户请求:发现运行程序中有错误,为调试、检查、修改②父进程请求:挂起自己的子进程,进行某种检查或修改或协调不同子进程间的行为③操作系统的原因:a.交换:内存资源不能满足进程运行的需要,将不重要的进程挂起,达到平衡负载的目的b.出现问题或故障c.操作系统的需要:为监视系统活动,挂起一些记录系统资源使用状况的进程
具有挂起状态的进程状态转换:比三状态多了6钟
进程控制块(PCB):进程存在的唯一标志,能够描述和控制进程运行的数据结构
PCB中的信息:①进程标识符:唯一的②进程的当前状态:表明进程当前状态,并作为进程调度程序分配CPU的依据,仅当就绪时可被调度执行;阻塞则需衔唤醒还要在PCB中记录阻塞原因③进程中的程序短语数据段地址:用于将PCB和与之对应的进程在内外存的程序段及数据段联系起来④进程资源清单,除CPU外⑤进程优先级⑥CPU现场保护区:保存中断时CPU的各种状态信息,以便复原再次运行⑦进程同步与通信机制~U3⑧PCB队列指针或链接字:用于将处于同一个状态的进程连接成一个队列⑨与进程相关的其他信息
PCB的组织方式:①线性表:不管进程状态,适用于进程不多②链接表对进程状态分类,便于管理,难查找③索引表:按进程状态建立索引表,便于查找,但占用一定空间
进程控制
进程的切换:实质是回收当前运行进程对CPU的控制权,并将CPU转交给新调度的就绪进程
进程上下文:CPU所有寄存器中的内容、进程状态及运行栈中的内容,是操作系统用来管理和控制进程的内部数据集合,进程在上下文中运行
①系统及上下文:操作系统内核进程使用的进程上下文信息集合②寄存器上下文:CPU中所有寄存器的信息集合③用户级上下文:用户进程访问和修改的进程上下文信息集合,占用进程的虚拟地址空间,交换到外存的分页或分段仍是进程用户及上下文的组成部分~U4④发生进程切换时,新旧进程进行上下文切换
进程切换时机
①中断②异常:终止当前运行进程的执行,CPU转去执行异常处理程序③系统调用:例:阻塞型系统调用发生时,当前进程被阻塞,CPU转去执行进程调度程序
进程的上下文切换
步骤:①旧进程被中断,保存其CPU现场信息②对旧进程进行PCB更新③将旧进程的PCB移入适当的队列④由进程调度程序选中一个新程序(就绪进程),为其设置执行的上下文环境并对其PCB进行更新⑤修改新进程的地址空间,更新新进程的内存管理信息⑥恢复被选中的新进程最后一次进程上下文切换时(上次中断运行时)所保存的CPU现场信息
进程上下文切换时,旧进程CPU控制权被回收,其状态变为就绪或阻塞
进程控制原语
原语:一个特殊的程序,要么全部执行,要么不执行,不可分割或中断
进程的创建原语:4步(Create)
进程撤消原语:撤销的是PCB而不是进程的程序段,因为一个程序段可能被多个进程共享(Destroy)
进程的阻塞原语(Block)
进程的唤醒原语(Wakeup):基本功能是把除CPU外的一切资源都得到满足的进程置为就绪状态
进程的挂起和激活(解除挂起,将进程重新调入内存)原语
线程
线程的引入:进程切换的频率(并发执行程度)不宜过高,否则会产生巨大的时空开销
概念:CPU调度和执行的最小单元,进程内一个可独立调度的实体,进程是资源分配的实体
属性:①线程基本不拥有系统资源,只拥有运行必不可少的资源②线程是独立调度和分配的基本单位,也是能够独立运行的基本单位③同一个进程中的所有线程共享该进程所拥有的所有资源④并发执行程度高,同一个进程内的多个线程可以并发执行,不同进程的多个线程也可并发执行
①与进程类似,线程也有生命周期②线程被终止后并不立即释放资源,而是等同一个进程中的其他线程执行了“分离函数”才分离③多线程操作系统同步机制:互斥锁、读写锁、条件变量、计数信号量~U3
线程与传统进程的比较
同:①都有标识符、一组寄存器、状态、优先级及所要遵守的调度策略②进程有PCB线程有TCB③进程中的线程共享该进程的资源,子进程也共享父进程的资源,线程和子进程的创建者可对他们实施控制
异:①线程只是调度和分派的基本单位,进程还是资源分配的基本单位②线程并发执行程度高于传统进程并发执行程度(属性④)③创建和撤销一个线程的时空开销远小于进程④线程基本不拥有资源,同一个进程的所有线程共享一个地址空间⑤一个线程的数据可直接被隶属于同一个进程的其他线程使用,数据传递快捷
线程实现原理(除操作系统外,进程也可以直接管理线程)
内核态线程实现:将TCB放入操作系统内核空间,内核同时存在PCB和TCB
优:①编程简单②操作系统可监控所有线程,一个阻塞可调度另一个执行缺:①效率不高(每次线程切换都要陷入到内核由操作系统进行调度,从用户态陷入到内核态要花费CPU的时间)②占用内核的内存资源
用户态:除正常执行任务的线程外,还需要用户写一个专门负责线程调度的线程,当运行的进程阻塞,先暂不切换,看进程中还有哪些线程可以执行;优:①灵活(任何操作系统都能应用)②线程切换快缺:①需要修改操作系统(改动较小),使其在block时不立马切换到其他进程,而是调用受阻进程中的执行系统线程②违反软件应遵循的层次架构原则(上调用下),操作系统在下
混合态:用户态的执行系统负责进程内部线程在非阻塞时的切换;内核态的操作系统负责阻塞线程的切换,及同时实现内核态和用户态的管理(内核态线程较少)
单处理器调度算法
调度原则
面向系统的准则:①吞吐量②CPU利用率=CPU有效工作时间/CPU总运行时间(总=有效+空闲等待时间)③系统资源的平衡利用:尽可能是资源处于忙碌状态④公平性
面向用户的准则:①周转时间=完成时间-提交时间(或者=运行时间+等待时间);作业带权周转时间=1+等待时间/运行时间②响应时间(分时系统,分'较少考虑周转)③截止时间(实时系统重要准则)④优先权准则:优先级设定、抢占式(批处理、分时、实时)
常用调度算法
先来先服务(FCFS)(非抢占式):适用于处理多个CPU繁忙型的进程,不利于占用CPU较短的I/O进程
短作业/短进程优先调度(非抢占式):从后备作业队列中,选择预估运行时间最短的作业进入内存,并创建相应进程;偏向短进程,使系统单位时间内完成的作业数增加;提高系统吞吐量,但预估运行时间不一定准确,长作业可能长时间等待出现饥饿
时间片轮转调度(基于时钟的抢占式):核心是时间片,主要用于进程调度;按先来先服务原则分配CPU,用完时间片必须放弃CPU,插入就绪队列,若时间片未用完而发生等待时间则插入阻塞队列
高响应比优先调度(基于动态优先数的非抢占式):响应比=1+等待时间/运行时间;即考虑短作业又考虑长,但要预估每个作业或进程的运行时间,且要计算队列中的所有,耗费CPU时间
优先级调度(抢占式/非)
静态优先级:进入系统或创建时被赋予的优先级在整个生命周期中不再改变(简单、开销小;可能低优先级的对象长期得不到调度);动态:优先级可改变(公平、资源利用率高)
抢占式优先级调度:在运行中允许被具有更高优先级的就绪对象抢占CPU(较严格的实时系统,会增加系统开销);抢占式优先级调度:一旦获得CPU会一直运行,发生阻塞或完成才放弃CPU(批处理)
多级反馈队列调度(基于时间片抢占式动态优先级):设置多个队列,第一级队列优先级最高但时间片最小,优先级降低,时间片增加;Q1队列在时间片用完时未能运行完的下放到Q2队尾,Q2按Q2的时间片运行...
优:①短进程能够得到优先处理②系统开销不大③交互型请求通常能在第一个就绪队列中完成,故该算法支持分时、实时、批处理的通用操作系统缺:若优先级较高的队列一直不为空,则低优先级可能会出现饥饿现象
实时调度(非/抢占式):基本要求是在规定时间内对外部事件的请求做出响应,要求进程切换时间较短,只有满足___________实时系统才是可以调度的
硬实时:必须在截止时间的要求内完成任务;软实时:偶尔违反截止时间并不会带来致命错误
根据调度时间
静态调度:在系统配置时就决定了所有任务的执行时间
比率单调调度算法:执行周期短的任务具有较高的优先级(允许抢占)
动态调度:根据实际情况灵活决定执行时间
最早截止时间优先调度:截至时间越短优先级越高(抢占式)
最短空闲时间优先调度:空闲时间=截止时间-剩余时间-当前;空闲时间越短越优先(抢占式)
处理器调度
作业(是要求计算机所做工作的集合)与进程的区别
①实体--作业是用户向计算机提交任务的任务实体;进程是完成用户任务的执行实体,是向系统资源申请分配资源的基本单位,只要被创建,总有相应部分存于内存②组成--作业可由多个作业组成及同时对应多个进程且至少由一个进程组成,反之不成立③应用--作业主要用于批处理系统;进程多用于大多数的多道程序系统(下面又有线程)④调度--作业调度:检查系统是否满足作业的资源要求,并为进程调度作准备;进程调度:根据算法把CPU分配给进程就绪队列中的某个进程并让其执行
①批处理系统中作业与进程的关系:JCB排队等待执行--提交→后备→执行→完成②分时系统:系统启动时通过与系统连接的终端,为每个终端创建一个终端进程接受用户的作业处理要求,用户通过输入命令提交作业(人机交互)
CPU的三级调度
高级调度(作业调度):按一定的调度算法把外存上处于后备作业队列中的作业调入内存,为其分配资源1和创建进程,将新创建进程插入就绪队列中。作业结束时回收系统资源
①选择作业②分配资源③创建进程④作业控制(按说明书执行作业)⑤回收资源
中级调度(交换调度):内存外存调度(挂起与激活),调整系统负荷,提高内存利用率和系统吞吐量
低级调度(进程调度)(核心,每个操作系统都有):将CPU分配给就绪队列中的某个进程
处理器调度队列模型
仅有进程调度的调度队列模型(分时操作系统):图
具有高级和初级调度的调度队列模型(多道批处理):图
具有三级的(同时具有多道批处理和分时处理的系统):其中激活和挂起并不完全遵循排队原则
进程调度的方式和时机
进程调度方式
抢占式(把CPU分配给更紧急的进程,被暂停的进程进入就绪状态)
高优先级原则、时间片原则
防止一个进程长期占用CPU,满足实时系统对响应时间的要求;增加进程开销
非抢占式
选中一个进程会一直执行下去,或因发生等待事件而阻塞才返还CPU使用权
实现简单、开销小;实时性差(不适用于实时系统和分时系统)
进程调度的时机(使CPU始终处于忙状态)
时机①当前运行进程执行结束而终止,或因等待某个事件的完成而无法继续执行,这是要选择一个新的就绪进程投入运行②在抢占式调度系统中,出现更高优先级的进程,或当前进程时间片用完
引起调度的原因:①创建一个新进程后:父、子进程都处于就绪状态,由进程调度程序决定哪个先运行②运行进程终止:从就绪队列中选择一个新的就绪进程,给它分配CPU③运行进程阻塞:发生等待事件,调度另一个就绪进程运行④支持抢占式调度的系统中会因a.时间片到b.进程的优先级发生变化而发生调度
现代操作系统中不允许进程调度和切换的情况:①中断处理过程中②进程在操作系统内核的临界区~U3③在需要完全屏蔽中断的原子操作执行过程中(加锁、开锁等)
进程调度实现:①保存当前运行进程的现场信息②选择即将运行的就绪进程③为新选中的进程恢复现场(图)
多道程序设计:同时把多个程序放入内存,并允许它们交替执行,从而共享计算机系统的软硬件,以进程为单位实现CPU分配与运行