湖南门户网站建设,wordPress改了ip地址登录不了,工程信息,网站建设4038gzs补充知识 PSW程序状态字寄存器PC程序计数器#xff1a;存放下一条指令的地址IR指令寄存器#xff1a;存放当前正在执行的指令通用寄存器#xff1a;存放其他一些必要信息 进程
进程#xff1a;进程是进程实体的运行过程#xff0c;是系统进行资源分配和调度的一个独立单位… 补充知识 PSW程序状态字寄存器PC程序计数器存放下一条指令的地址IR指令寄存器存放当前正在执行的指令通用寄存器存放其他一些必要信息 进程
进程进程是进程实体的运行过程是系统进行资源分配和调度的一个独立单位。
进程实体 程序段 相关数据段 进程控制块PCB
PCB是给OS用的程序段和数据段都是给进程自己使用的
①创建进程 创建进程实体中的PCB
撤销进程 撤销进程的PCB
②进程映像进程实体 是静止的进程是动态的
③PCB是进程存在的唯一标识。OS管理时所需要的信息都放在PCB中
进程的特征
动态性最基本特征进程是程序的一次执行具有一定的生命周期是动态的产生、变化和消亡的并发性多个进程实体同存于内存中能在一段时间内同时运行独立性进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位异步性由于进程的相互制约使得进程按各自独立的、不可预知的速度向前推进OS提供“进程同步机制”来解决异步问题结构性每个进程都会配置一个PCB
进程的状态
运行态 —— 单处理机中每个时刻只有一个进程处于运行态就绪态阻塞态 / 等待态 进程正在等待某一事件而暂停运行等待某资源为可用等待输入/输出完成创建态
—— 创建进程申请一个空白PCB → 向PCB里填写用于控制和管理进程的信息 → 为该进程分配运行时所必需的资源 → 把该进程转入就绪态并插入就绪队列
终止态 处理资源释放和回收回收PCB 补充知识 一个进程可以执行exit系统调用请求OS终止该进程 → “终止态” 在进程PCB中会有一个变量state来表示进程的当前状态 同一程序运行在不同的数据集上形成不同的进程 一个计算机系统中进程的最大数目主要受到 内存大小 限制 在一个多道系统中若就绪队列不空就绪的进程数目越多处理器的效率不变 ①进程控制块PCB
进程描述信息进程标识符PID、用户标识符UID进程控制和管理信息进程当前状态、进程优先级、代码运行入口地址、程序的外存地址、进入内存时间、处理机占用时间、信号量使用资源分配清单代码段指针、数据段指针、堆栈段指针、文件描述符、键盘、鼠标处理及相关信息通用寄存器值、地址寄存器值、控制寄存器值、标志寄存器值、状态字 进程组织方式
①链接方式按照进程状态将PCB分为多个队列操作系统持有指向各个队列的指针
②索引方式根据进程状态的不同建立几张索引表操作系统持有指向各个索引表的指针
②程序段
程序的代码指令序列
③数据段
运行过程中产生的各种数据。如程序中定义的变量 进程控制
进程控制对系统中的所有进程实施有效的管理具有创建新进程、撤销已有进程、实现进程状态转换等功能
原语进程控制用的程序段执行期间不允许中断
进程的创建
①允许一个进程父进程创建另一个进程子进程
子进程继承父进程所拥有的资源撤销子进程时需把从父进程获取的资源还给父进程撤销父进程时同时撤销子进程父进程与子进程共享一部分资源但不能共享虚拟地址空间父进程创建子进程父进程与子进程同时执行并发主程序调用子程序主程序暂停在调用点子程序开始执行直到子程序返回主程序才开始执行
②引起进程的创建创建态→就绪态终端用户登陆系统、作业调度、系统提供服务、用户程序的应用请求
申请一个空白PCBPCB有限为进程分配所需资源初始化PCB将新进程插入就绪队列
进程的终止
①引起进程的终止…态→终止态→无正常结束、异常结束、外界干预
根据被终止进程的标识符检索出该进程的PCB若被终止进程处于运行态立即终止该进程的执行剥夺CPU将处理机资源分配给其他进程将其所有子孙进程终止将该进程所拥有的全部资源归还给父进程或OS将该PCB删除
进程的阻塞Block原语和唤醒Wakeup原语
①引起进程的阻塞运行态→阻塞态请求系统资源失败、等待某种操作的完成、新数据尚未到达、无新任务可做 等期待的某些事件未发生
找到被阻塞进程的标识号对应的PCB若该进程为运行态则保护其现场将其状态转为阻塞态停止运行把该PCB插入相应事件的等待队列
②引起进程的唤醒阻塞态→就绪态I/O操作已完成、新数据已到达 等期待的某些事件发生
在该事件的等待队列中找到相应进程的PCB将其从等待队列中移出并置其状态为就绪态把该PCB插入就绪队列等待调度程序调度
进程的切换
①允许进程的切换当前进程时间片到、有更高优先级的进程达到、当前进程主动阻塞、当前进程终止
将运行环境信息存入PCB把该PCB移入相应队列选择另一个进程执行并更新其PCB根据PCB恢复新进程所需的运行环境
进程的通信
∵各个进程拥有的内存地址空间相互独立故需要进行通信即进程之间的信息交换
1.共享存储
共享存储存在一块可直接访问的共享空间通过对这片共享空间进行读/写操作各个进程的访问是互斥的来实现信息交换
其中读/写操作需要使用 同步互斥工具P操作、V操作
①基于数据结构的共享低级
速度慢限制多
②基于存储区的共享高级
注OS只负责为通信进程提供可共享使用的存储空间和同步互斥工具
数据交换由用户自己安排读/写指令完成
2.消息传递
消息传递进程间的数据交换以格式化的消息为单位
需要使用 发送消息Send 和 接收消息Receive 两个原语 消息头发送进程ID、接收进程ID、消息长度等格式化的信息
①直接通信方式
直接把消息发送给接收进程需指明接收进程的ID
②间接通信方式信箱通信方式
把消息发送到某个中间实体需指明要发送到的信箱
3.管道通信单向 管道通信允许两个进程按 生产者-消费者 方式进行通信数据在管道中 先进先出循环队列半双工通信在某一时间段内只能实现单向的传输管道文件一个固定大小的缓冲区管道机制需提供的能力互斥由OS实现、同步、确定对方的存在
管道只能由创建进程所访问当父进程创建一个管道后由于管道是一种特殊文件子进程会继承父进程的打开文件因此子进程也会继承父进程的管道并使用这个管道与父进程进行通信。
只要管道不是空的读进程就能从管道中读出数据若数据被读空则读进程阻塞直到写进程往管道中写入新的数据再将读进程唤醒只要管道没满写进程就能往管道中写入数据若管道被写满则写进程阻塞直到读进程读出数据再将写进程唤醒
从管道读数据是一次性操作数据一旦被读取就彻底消失同时释放空间以便写更多数据。这种普通管道只允许单向通信若要实现父子进程双向通信则需要定义两个管道。
解决方案①一个管道允许多个写进程一个读进程
②允许多个写进程多个读进程但系统会让各个读进程轮流从管道中读数据
4.共享文件 线程
引入进程的目的使多道程序并发执行提高资源利用率和系统吞吐量引入线程的目的减小程序在并发执行时所付出的时空开销提高OS的并发性能
线程轻量级进程是一个基本的CPU执行单元是程序执行流的最小单元。
线程 线程ID 程序计数器 寄存器集合 堆栈
线程控制块TCB记录线程执行的寄存器和栈等现场状态。
线程控制块TCB 线程标识符TID 寄存器 线程运行状态 优先级 线程专有存储区 堆栈指针
寄存器程序计数器PC线程目前执行到哪、状态寄存器、通用寄存器线程运行的中间结果
线程运行状态用于描述线程正处于何种状态
优先级线程调度、资源分配的参考
线程专有存储区线程切换时用于保存现场
堆栈指针用于过程调度时保存局部变量及返回地址等
①线程是进程中的一个实体是被系统独立调度和分派的基本单位
②线程自己不拥有系统资源只拥有一点儿在运行在必不可少的资源但它可与同属于一个进程的其他线程共享进程所拥有的全部资源可独立执行程序
③一个线程可以创建和撤销另一个线程同一进程中的多个线程之间可以并发执行
④引入线程后进程只作为除CPU外的系统资源的分配单元而线程是作为处理及的分配单元 线程与进程的比较线程引入线程的操作系统进程传统操作系统调度线程是独立调度的基本单位线程切换代价小。在同一进程内进行线程切换不会引起进程切换进程是拥有资源和独立调度的基本单位。每次调度都会引起上下文切换开销大并发性进程之间可以并发执行一个进程中的多个线程也可并发执行进程之间可以并发执行拥有资源线程不拥有系统资源进程是系统中拥有资源的基本单位独立性某进程中的线程对其他进程不可见。同一进程内的不同线程共享进程的地址空间和资源每个进程都拥有独立的地址空间和资源系统开销线程切换只需保存和设置少量寄存器内容开销很小同一进程内的多个线程的同步与通信不需要OS的干预系统开销很大支持多处理机系统多线程进程进程中的多个线程可以分配到多个处理机上执行单线程进程进程只能允许在一个处理机上
线程的实现方式
①用户级线程ULT
用于早期OS只支持进程不支持线程
在用户级线程中内核意识不到线程的存在应用程序可以通过使用线程库设计成多线程程序设置了用户级线程的系统仍以 进程 为单位进行调度
优点①线程切换不需要转换到内核空间系统开销小效率高
②用户级线程的实现与OS平台无关
缺点①当一个用户级线程被阻塞后整个进程都会被阻塞并发度不高
②多个线程不可在多核处理机上并行运行 ②内核级线程KLT 内核支持的线程
内核级线程是处理机分配的基本单位
线程切换需要CPU变态内核级线程是在内核的支持下运行的
优点①多个线程可并行执行并发能力强
②如果进程中的一个线程被阻塞可运行其他进程中的线程
③采用多线程技术
缺点同一进程中的线程切换需要从用户态转到核心态进行系统开销较大 ③组合方式
线程库为程序员提供创建和管理线程的API
在用户空间中提供一个没有内核支持的库实现由操作系统直接支持的内核级的一个库
多线程模型 ①多对一模型
情况1.以不同的参数或数据多次执行同一个应用程序多对一
2.进程在执行过程中可以加载执行不同的程序一对多
优点线程管理在用户空间进行不需要切换效率较高
缺点并发性不高。若一个线程在访问内核时发生阻塞则整个进程都会被阻塞
②一对一模型
情况执行一条命令或运行一个应用程序
优点当一个线程被阻塞后允许调度另一个线程允许因为内核级线程是处理及分配的单位故并发能力较强
缺点每创建一个用户线程相应的需创建一个内核线程开销较大
③多对多模型
情况并发执行不同的应用程序
特点克服了多对一模型并发度不高的特点克服了一对一模型的一个用户进程占用太多内核级线程而开销太大的缺点
拥有上述两种模型的优点 补充知识 多线程在一个程序中可以定义多个线程并同时运行它们每个线程可以执行不同的任务多任务针对操作系统代表OS可以同时执行的程序个数多线程针对一个程序代表一个程序可以同时执行的线程个数而每个线程可以完成不同的任务一个系统中可能所有进程都处于等待态死锁 进程的调度 补充知识 进程处于临界区访问临界资源的那段代码时不能进行处理机调度内核程序临界区访问某种内核数据结构例进程的就绪队列 ①高级调度作业调度
作用按照一定的原则从外存上处于后备队列的作业中挑选一个或多个分配内存、输入/输出设备等必要的资源
多道批处理系统大多配有作业调度而其它系统中通常不需要配置作业调度
②中级调度内存调度
目的提高内存利用率和系统吞吐量
将那些暂时不能运行的进程调至外存等待此时进程的状态—— 挂起态
作用把外存上的那些已具备运行条件的就绪进程再重新调入内存并修改其状态为就绪态挂在就绪队列上等待
③低级调度进程调度
作用按照某种算法从就绪队列中选择一个进程为其分配处理机
进程调度是最基本的一种调度在各个操作系统中都必须配置
狭义进程调度从就绪队列中选出一个要运行的进程
广义进程调度包含了选择一个进程和进程切换两个步骤
三级调度的联系
作业调度从外存的后备队列中选择一批作业进入内存为它们建立进程这些进程被送入就绪队列
进程调度从就绪队列中选出一个进程并把其状态改为运行态把CPU分配给它
中级调度是为了提高内存的利用率系统将那些暂时不能运行的进程挂起来。
作业调度为进程活动做准备进程调度使进程正常活动起来中级调度将暂时不能运行的进程挂起中级调度处于作业调度和进程调度之间调度频率作业中级进程 调度算法评价标准
①CPU利用率
CPU利用率 CPU有效工作时间 / ( CPU有效工作时间 CPU空闲等待时间
②系统吞吐量
单位时间内CPU完成作业的数量
③周转时间
从作业提交到作业完成所经历的时间
周转时间 作业完成时间 - 作业提交时间
平均周转时间 作业1的周转时间 … 作业n的周转时间/ n
带权周转时间 作业周转时间 / 作业实际运行时间
平均带权周转时间 作业1的带权周转时间 … 作业n的带权周转时间/n
④等待时间
进程进程处于等处理机的时间之和
作业需考虑建立进程后的等待时间和作业在外存后备队列中等待的时间
⑤响应时间 ——衡量调度算法的重要准则之一
从用户提交请求到系统首次产生响应所用的时间 调度程序调度器
用于调度和分派CPU的组件排队器、分派器、上下文切换器
①触发“调度程序”的情况
非抢占式调度策略只有运行进程阻塞或退出才触发抢占式调度策略每个时钟中断或k个时钟中断会触发
②触发“调度程序”
创建新进程进程退出运行进程阻塞I/O中断发生
不能进行进程的调度与切换的情况
在处理中断的过程中进程在操作系统内核临界区中其他需要完全屏蔽中断的原子操作过程中
应该进行进程调度与切换的情况
当前运行的进程主动放弃处理机
进程正常终止运行过程中发生异常而终止进程主动请求阻塞等待I/O
当前运行的进程被动放弃处理机
分给进程的时间片用完有更紧急的事需要处理I/O中断有更优先级的进程进入就绪队列
进程切换往往在调度完成后立刻发生会保存原进程当前断点的现场信息回复被调度进程的现场信息
当进程处于临界区时说明进程正在占用处理机只要不破坏临界资源的使用规则就不会影响处理机的调度即在进程处于临界区时可以进行处理机调度
进程调度方式
非抢占调度方式非剥夺方式
主动放弃处理机
优点实现简单、系统开销小适用于早期批处理系统
缺点不能用于分时系统和大多数实时系统
抢占调度方式剥夺方式
适合分时系统和实时操作系统。
优点遵循优先权、短进程优先和时间片原则
闲逛进程能耗低、优先级最低、不需要CPU之外的资源、不会被阻塞
在进程切换时若系统中没有就绪进程就会调度闲逛进程运行
可以是0地址指令占一个完整的指令周期指令周期末尾例行检查中断 调度算法
调度算法名称先来先服务FCFS短作业优先SJF优先级调度高响应比优先调度时间片轮转RR多级队列调度多级反馈队列调度算法过程选择最先进入后备队列的作业选择运行时间最短的作业选择优先级最高的作业选择响应比最高的作业选择就绪队列中的第一个进程适用作业、进程调度作业、进程调度作业、进程调度实时操作系统作业、进程调度进程调度分时系统进程调度是否导致“饥饿”不会导致饥饿会饥饿会饥饿不会饥饿会饥饿调度方式非抢占式非抢占式非抢占式、抢占式优先级调度非抢占式抢占式抢占式公式响应比Rp(等待时间要求服务时间) / 要求服务时间最高优先级→系统进程→→交互式进程→→批处理进程→最低优先级如表格下图优点算法简单公平平均等待时间、平均周转时间最少有利于短作业公平响应快- 公平不必实现估计进程的运行时间- 可灵活调整对各类进程的偏好程度- 终端型作业用户短作业优先- 短批处理作业用户周转时间较短- 长批处理作业用户不会长期得不到处理缺点- 效率低- 长作业有利短作业不利- 利于CPU繁忙型作业不利于I/O繁忙型作业- 长作业不利短作业有利- 可能导致长作业饥饿- 不能保证紧迫性作业会被及时处理- 不一定能真正做到短作业优先调度计算响应比的开销大- 不区分任务的紧急程度- 处理机在进程间过于频繁的切换- 开销增大无补充短进程优先算法SPF抢占式版本最短剩余时间优先算法SRTN- 静态优先级创建进程时确定- 动态优先级根据进程情况的变化动态调整- 进程优先级设置1. 系统进程用户进程2. 交互性进程非交互型进程(前台后台)3. I/O型进程计算型进程时间片的长短系统的响应时间、就绪队列中的进程数目、系统的处理能力同一队列中的进程可以设置不同的优先级不同的队列本身也可以设置不同的优先级 进程切换
任何进程都是在操作系统内核的支持下运行的
1.上下文切换
切换CPU到另一个进程需要保存当前进程状态并恢复另一个进程的状态
2.上下文切换的消耗
3.上下文切换与模式切换
模式切换用户态和内核态之间的切换
调度决定资源分配给哪个进程的行为决策
切换实际分配的行为执行