题型:
选择题 11题*2分 基本概念以及数据结构名词解释 5题*3分解答题 5题*5分问答与计算题 12 13 13 分 5 6 9 11 非标准试题了解:
计算机系统的状态——CPU用户态,系统态,状态、概念以及引入原因 用户态:一些内存区域受到保护;特权指令不能执行系统态:受保护的内存区域可以访问;特权指令可以执行引入原因:当在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成一些用户态自己没有特权和能力完成的操作时就会切换到内核态。长时间位于系统态会使得危险的特权指令可能危害计算机执行。 中断产生原因:最根本原因:程序并发,提高程序效率。中断处理流程:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JuMiIW2p-1593666814636)(./img/中断处理.png)]
中断线程保存以及恢复: 程序寄存器和程序状态寄存器的值保存系统栈栈顶指针直指向新的栈顶,程序计数器的值也更新到中断处理程序的开始。从系统栈恢复状态。理解:
指令的周期:概念、组成阶段。引入中断以及没有引入中断。 PC:程序计数器,保存下一条执行指令的地址,每次执行之后+1IR:指令寄存器,保存正在执行的指令。指令的执行周期:一条指令的执行时间。不同指令执行周期不同。取码,译码,执行。 中断的概念:一个正在执行的程序被突发的事件打断,转而去执行其他事件,突发事件执行完了再回到中断点继续执行。最根本原因:程序并发,提高程序效率。(不可预测/随机性,可屏蔽性,可嵌套性)存储的层次结构: 引入的原因:对存储器成本,性能,容量进行折中,使得效率最高并且成本较低。概念:越快的,越贵,容量越小,内存访问越多。快速设备与慢速设备,按照一定关系组成逻辑体系。三级存储结构 板上存储器(inboard)板外存储器(outboard)离线存储器(offline storage) 局部性原理:概念以及工作的基础 时间局部性:最近访问的指令在不远的将来会再次访问。大量的函数与循环语句。空间局部性:访问的指令的临近指令会很快被访问到。程序是顺序存储的。冯诺依曼,指令顺序存储大量函数以及循环 IO通信的三种方法 可编程IO CPU向IO设备发送指令CPU一直查询知道IO完成,完成后CPU再执行后面的操作 优点:简单直接,容易实现 缺点:IO工作的时候,CPU不断查询,盲等待 中断IO: CPU发送给IO以后,IO独立执行CPU继续执行IO语句之后的语句IO完后操作之后,发送一条指令给CPU,CPU再与IO进行数据交换 优点:避免忙等待,提高效率 缺点:数据通信还是要CPU参与,没有解放出来 DMA直接内存访问 增加DMA模块CPU首先通过DMA向IO发送通信指令,DMA充当秘书DMA将要读取的数据加入到内存的时候,或者全部传递给IO之后,DMA发送中断到1. CPU,表示数据通信已经全部结束。 优点:将CPU从琐碎的数据通信解放出来,提高效率 缺点:增加DMA模块,增加硬件成本了解:
中断在多道程序的作用:中断是为了提升计算机系统的效率,IO设备多。多道程序:当一个程序需要调用 I/O 设备的时候,CPU 不会进行盲等待,而是转而去执行其他的程序。这样会大大提高计算机的效率。操作系统的类型:概念,优缺点,区别 串行系统:用户直接对系统进行顺序操作典例:ENIAC特点:程序员直接操作硬件。优点:简单直接缺点:硬拷贝,时间无法控制;用户交互性不好;准备时间较长,资源浪费,人机矛盾。预约时间长:浪费;时间短,做不完程序。批处理:使用监控程序来控制事件执行序列(原因:IO设备使得CPU不忙) 缺点:监控程序占用内存;监控程序占用机器时间优点:提高计算机系统的利用率 多道系统:当需要等待I / O的作业时,处理器可以切换到其他作业 缺点:内存管理;计划/保存和还原;竞争资源;依赖硬件资源(支持IO中断,有DMA)优点:提高效率 分时系统:处理器的时间在多个用户/作业之间共享。将系统处理时间与内存空间轮流切换给各个用户,时间短,就像是单独使用计算机。(硬件支持。问题:内存管理;调度;竞争资源) 操作系统以及一般程序之间的差异: 是控制程序执行的程序主动释放以及获取CPU控制权理解:
操作系统概念:对运行计算机上面的各种应用程序行为进行调度,并对计算机中的资源进行管理。操作系统是一组程序,计算机接口,对资源进行有效管理。多道分时系统批处理系统掌握:
操作系统的主要目标/设计原则:
方便性:能够让用户方便实用计算机
有效性:能够对计算机上面的各类资源进行有效管理,使得计算机使用效率同等条件最大化。
易于扩展性:提供便利的升级接口,对系统功能完善扩充。
操作系统的功能
程序开发:提供了编辑器,编译器程序执行:从辅存调用程序执行I/O访问功能:屏蔽I/O差异,体统统一方式使用I/O文件访问控制功能:长期保存数据的技术手段,方便用户将逻辑数据存储器在物理外存储器中操作系统访问控制技术,保证合法用户在合法权限内对计算机技能进行高效访问。检测错误并且进行响应审计:对计算机使用的情况进行检测分时系统以及批处理系统的产生类型:为什么引入分时系统以及批处理系统:多道程序使得批处理更加有效,但是对于许多作业,需要用户与计算机直接交互。
分时系统以及批处理系统异同联系,一张表。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjAvCF4J-1593666814641)(./img/分时系统批处理比较.png)]
了解:
操作系统为了实现进程需要CPU提供的硬件支持。以及为什么需要硬件支持。进程概念: 程序的一次执行是包含指令序列,运行状态,相关资源的活动单位。进程由指令、数据以及相关运行状态组成。 引入进程的原因:能够同时运行多个程序,保证进行有效的切换。进程以及程序之间的差异。概念,结构差异。 进程包含:指令序列,执行需要的各种数据,上下文(操作系统管理控制进程执行需要的各种内部数据)。程序:静概念,没有上下文。 进程的生命周期:7状态图阻塞函数的含义: 进程概念,以及进程的组成(见上面)PCB进程控制块 包含进程元素由操作系统创建和管理允许支持多个进程 PCB详细功能 进程ID处理器状态信息 用户可见的寄存器控制和状态寄存器堆栈指针 进程控制信息 计划和状态信息数据结构进程间通讯进程权限内存管理资源所有权和利用 CPU模式进程的状态以及引入的原因 用户可见寄存器控制和状态寄存器栈指针原因:操作系统是一种控制软件,为了对计算机系统中多个程序进行控制,要对程序运行状态有清楚地认识。理解:
PCB构成,一张图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3CR3QB4-1593666814644)(./img/PCB.png)]
进程的5/7状态图: 状态名字状态概念。 运行态:进程获得了 CPU,正在执行。就绪态:具备一切的执行条件。CPU 被其他进程使用,不得不等待。阻塞态:I/O 事件导致无法执行。 这个进程无法立即执行。这个进程正在等待其他事件(I/O 操作,键盘输入等等)进程被 agent(包括自己、父进程、或者操作系统)挂起,目的是防止这个进程的执行。在挂起这个进程的 agent 没有命令改变挂起状态的时候,这个进程会一直保持挂起状态。 新建态:有一个程序即将演变成进程,已经分配了 PID。刚新建,但是内存不够,无法加载进入内存。退出态:程序的指令和数据释放,PCB 留在内存中。 5/7状态图的状态变化 A.可能的 新建->就绪/挂起:新建进程,根据内存的空间是否排队,太多就放入二级存储 新建->就绪:新建进程,根据内存的空间是否排队 就绪->就绪/挂起:有高优先级的进程出现,挂起低优先级进程到二级存储。 就绪/挂起->就绪:高优先级执行结束,从二级存储中提取出就绪的内存,继续正常执行低优先级进程。 就绪->执行:结束排队等待,开始执行。 执行->就绪/挂起:进程的执行时间过长,超过时间片要求,操作系统将它挂起到二级存储。 执行->退出:执行完毕或者执行出现错误。 执行->阻塞:进程调用 I/O 操作等。 阻塞->阻塞/挂起:为其他进程让出空间, 阻塞/挂起->阻塞:内存空间比较空。 除了执行外的其他状态->退出:执行错误。 阻塞/挂起->就绪/挂起:等待处理的事件已经处理完毕。 B.不可能的 任何状态->新建:不合常理的 就绪->阻塞 or 挂起/阻塞:进程只有先运行才能被阻塞。 就绪/挂起->阻塞 or 挂起/阻塞:进程只有先运行才能被阻塞。 就绪->阻塞 or 阻塞/挂起:进程只有先运行才能被阻塞。 新建->除了就绪之外的状态:操作系统先对这个进程加入排队序列才能进行后续操作。 阻塞 or 阻塞/挂起->执行:要先进行排队。 退出->任何状态:时间不可能逆转。 阻塞/挂起->就绪:先改变状态为就绪/挂起,才能从二级存储提取到内存。 执行->阻塞/挂起:要先阻塞,才能移动到二级存储中。 阻塞->就绪/挂起:先变为阻塞挂起才能存入二级存储器中,再能改变状态。 就绪/挂起->执行:先从二级存储中取出,才能执行。进程切换以及模式切换 概念 进程切换:一个进程执行过程中因为某些事件导致这个进程被终止,CPU交给其他进程执行。模式切换:用户态到内核态,内核态到用户态。 差异 进程切换是,一个正在运行的进程被中断,操作系统指定另一个进程为运行态,并把控制权交给这个进程。进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生,由于进程之间不同状态的切换,需要重新分配各种资源,操作系统需要做更多的工作。模式切换是,用户态和内核态之间的切换。因为他们的资源是共享的,所以效率高并且不改变正在运行的进程的状态。 进程的创建流程 操作系统为内存分配一个整数作为PID来标识进程。分配内存并加载。PCB初始化。 申请到的PID填入PCB。初始化PCB中寄存器信息(初始化状态)初始化进程的调度信息与控制信息。就绪状态、优先级等等。 设置连接:加入到就绪队列中去产生进程中会用到的其他数据结构。比如日志。 进程切换的时期:中断:进程执行过程被外部中断(可能产生进程切换,也可能不会) 时钟中断:时间片满了,程序被暂时终止I/O中断:调用I/O指令内存失效中断:访问的指令数据不再内存中 陷阱:由于进程自身操作导致程序被终止(eg:除0)(可能产生进程切换,也可能不会)系统操作:eg:open操作等等进程切换流程: 保存处理器的上下文(包括程序计数器和其他寄存器)更新当前处于“运行”状态的进程的PCB将进程控制块移至适当的队列–准备,就绪,阻塞 准备/挂起选择另一个进程执行更新选择的进程的PCB更新内存管理的数据结构恢复所选进程的上下文 发生了进程切换一定有模式切换:调用操作系统。进程以及线程的关系
概念组成上说明差异:线程:私有数据以及寄存器,其他共享进程引入线程的原因:线程提高并发度。进程是资源分配单位,线程是CPU调度单位。进程是资源分配单位。有一个虚拟地址空间(虚拟地址空间)它保存过程映像(代码,数据,堆栈和PCB);保护访问处理器,其他进程文件和I / O资源;包含一个或多个线程线程有执行状态;上下文;执行栈;局部变量;共享所在进程的资源;线程实现的方法:
用户态:稳定性。 线程的实现是通过用户的函数库实现。线程对于操作系统而言是透明的。操作系统不知道线程存在,对OS而言,进程还是调度最基本单位。 内核态:用户态验证了线程的性能,技术以及相对成熟。 派生的内核状态,在操作系统的内核态中实现。分配的基本单位:线程。 混合型:同时结合用户态以及内核态的优点用户态进程,内核态的优缺点 用户态优点:
不会涉及到模式切换,用户开销较小方便用户的修改方便移植,可以在任何系统上使用应用程序专用缺陷:
一个线程阻塞可能导致整个进程阻塞。进程当中多线程的并发是没有真正实现的 解决:将多线程退化为多进程。针对第二个。无塞系统调用。等待的时候可以执行I/O下面一条指令。内核态优点:
解决两个问题阻塞一个线程不会阻塞其他线程或进程操作系统自己内核的实现,提升性能。多个线程可以在多个处理器同时处理缺点:
开销更大:模式切换。时间更多。切换时间更多使用微内核的好处,一张图——操作系统的执行模式。
缺点:增加模式切换的次数。改进方式:内核更小。了解:
并发以及并行的异同 并发:同一个时间段同时执行,交替执行。并行:同一个时刻,时间点,多个进程同时运行。 计算机系统中为了解决并发程序存在的问题,引入的机制 软件方式: 优:用户态实现,灵活;缺:对程序员较高的要求,实际可能会失效。 硬件: 屏蔽中断;多核失效。硬件指令。原子操作。操作系统.编译器 互斥同步概念。理解:
并发:在同一个时刻,我们有若干个进程同时运行。并行:同一个时刻,时间点,多个进程同时运行。覆盖概念同步:对临界资源访问有排他性访问与顺序限制。互斥:一个进程在临界区访问资源,其他进程不能进入临界区进行访问。条件竞争:多个进程的执行结果依赖于执行顺序。表上的概念原子操作:一个或者多个指令的序列,对外不可分割。没有其他进程可以看到中间状态或者中断这个操作。信号量:组成。3中原子性操作。原子变量。队列。临界区:是一段代码,访问共享资源。一个进程已经在这段代码中执行的时候,其他进程不能执行这段代码。死锁:都在等待其他进程而不能完成自己工作。活锁:持续改变自己状态而不能做有用工作饥饿:可运行的进程能继续执行但是被调度器无限期忽略。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBTwI08D-1593666814648)(./img/并发.png)]
掌握:
并发中要解决4个问题 OS能掌握操作系统各种进程的状态OS为进程资源有效分配和回收。OS保护分配给进程的资源。保证并发的进程有可再现性、与执行速度没有关系。 信号量的类型 一般信号量/计数信号量:进程间传递信号的整数值。递减可以阻塞进程,递增可以解除阻塞。互斥量:加锁解锁的必须是同一个进程强信号量:先进先出:被阻塞时间最久的先从队列中移除。弱信号量:没有规定进程从队列中移除顺序的信号量。 实现互斥的三种方法 管程:语言结构。封装了变量,访问过程以及初始化代码消息:两个进程交换信息的方式。自旋锁:进程在死循环执行,等待锁条件为可用。 硬件上面实现互斥的描述。88临界区问题 互斥(Mutual Exclusion)——如果进程Pi正在其临界区执行,其它任何进程都不允许在他们的临界区中空闲让进/前进(Progress)——如果没有进程处于其临界区,并且某些进程申请进入其临界区,只有那些不在剩余区(remainder sections)的进程,才能参与能否进入临界区的选取,同时这个选举不允许无限期推迟。有限等待(Bounded Waiting)——某一进程从起提出要求,至它获准进入临界区的这段时间内,其他进程进入他们临界区的次数有上界。计算题:
读者写者生产者消费者了解
抢占:当前运行的程序被操作系统中断,并挂为就绪态调度关系理解
长程调度:程序变为进程,处于就绪态;分配pid,但是由于内存满了等等原因,处于挂起就绪状态。新建->就绪;新建->就绪挂起。控制并发度。中程调度:将进程调入内存。就绪挂起->就绪;阻塞挂起->阻塞。短程调度:CPU空闲,决定哪个进程被执行。就绪->执行抢占: 运行可以中断较好服务,避免进程独占处理机太长时间掌握
3个调度算法的关系,状态图变化到达时间,服务时间,周转时间 到达时间:周转时间:从用户提出请求到完成的时间服务时间:运行的实际时间响应时间:提交请求到开始接受响应 调度算法 First-Come-First-Served (FCFS,先来先服务):非抢占Round-Robin (RR,轮转):抢占Shortest Process Next (SPN,最短进程优先):非抢占Shortest Remaining Time (SRT,最短剩余时间):抢占Highest Response Ratio Next (HRRN,最高响应比优先):非抢占。(等待时间+执行时间)/执行时间Feedback反馈:抢占。优先级逐渐降低。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djLdx4QN-1593666814652)(./img/调度策略比较.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ybb55r4-1593666814654)(./img/调度策略比较_表.png)]
甘特图