考研复试408—操作系统篇

  • 1.操作系统的目标和功能?(什么是操作系统?) 
    • 1.操作系统是计算机资源的管理者
      • 处理机管理
        • 进程控制
        • 进程同步
        • 进程通信
        • 死锁处理
        • 处理机调度
      • 存储器管理
        • 提高内存利用率,内存的分配与回收
        • 地址映射
        • 内存保护与共享
        • 内存扩充
      • 文件管理
        • 计算机中的信息都是以文件的形式存在的
      • 设备管理
        • 完成用户的I/O请求,方便用户使用设备、
        • 并提高设备的利用率
    • 2.操作系统为用户提供使用计算机硬件系统的接口
      • 命令接口
        • 用户通过控制台或终端输入操作命令,向系统提供各种服务要求
      • 图形接口 
        • 最常见的图形用户界面GUI (最终还是通过调用程序接口实现的)
      • 程序接口
        • 由系统调用 组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务
    • 3.操作系统用作扩充机器
      • 没有任何软件支持的计算机称为裸机,实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。
      • 操作系统将裸机改造成功能更强、使用更方便的机器。
      • 我们将覆盖了软件的机器称为扩充机器或虚拟机。
  • 操作系统的运行机制
    • 简单了解程序的运行原理
      • 高级语言编写代码一>机器指令
      • 程序运行的过程就是CPU执行指令的过程
    • 两类程序
      • 内核程序
      • 应用程序
    • 两类指令
      • 特权指令
      • 非特权指令
    • 两种处理器状态
      • 内核态/核心态/管态
      • 用户态/目态
    • 内核
      • 内核是操作系统最重要最核心的部分
      • 由很多内核程序组成操作系统内核
    • 如何变态?
      • 内核态- ->用户态
        • 一条修改PSW的特权指令
      • 用户态- ->内核态
      • 由中断引起,硬件自动完成
  • 中断和异常
    • 中断的作用
      • 让操作系统内核强行夺回CPU的控制权
      • 使CPU从用户态变为内核态
    • 中断的分类
      • 内中断(也称异常、例外) 
        • 陷阱、陷入(trap)
        • 故障(fault)
        • 终止(abort)
      • 外中断(也称"中断")
        • 时钟中断
        • I/0中断请求
    • 中断机制的基本实现原理
      • 检查中断信号
        • 内中断: CPU在执行指令时会检查是否有异常发生
        • 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
      • 找到相应的中断处理程序
        • 通过" 中断向量表"实现
  • 系统调用
    • 什么是系统调用?
      • 操作系统对应用程序/程序员提供的接口
    • 系统调用与库函数的区别
      • 有的库函数是对系统调用的进一步封装
      • 有的库函数没有使用系统调用
    • 小例子:为什么系统调用是必须的?
      • 凡是与共享资源有关的操作、会直接影响到其他进程的操作,就一定需要操作系统介入,就需要通过系统调用来实现
    • 什么功能要用系统调用实现?
      • 设备管理
      • 文件管理
      • 进程控制
      • 进程通信
      • 内存管理
    • 系统调用的过程
      • 传参
      • 陷入指令/Trap/
      • 由操作系统内核程序处理系统调用请求
      • 返回应用程序
  • 操作系统的体系结构
    • 内核
      • 内核是计算机上配置的底层软件,是计算机功能的延伸,包括以下4个方面的内容:
        • 1)时钟管理 
          • 时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。
          • 其次,通过时钟中断的管理,可以实现进程的切换。
          • 在分时操作系统中,
            • 采用时间片轮转调 度的实现;
          • 在实时系统中,
            • 按截至时间控制运行的实现;
          • 在批处理系统中,
            • 通过时钟管理来衡量 一个作业的运行程度等。
        • 2)中断机制 
          • 引入中断技术的初衷是提高多道程序运行环境中CPU的利用率
          • 主要针对外部设备
        • 3)原语 
          • 操作系统底层是一些可被调用的公用小程序,它们各自完成一个规定的操作,其特点 是:
            • ------ 它们处于操作系统的最底层,是最接近硬件的部分。
            • ------ 这些程序的运行具有原子性,其操作只能一气呵成
            • ------ 这些程序的运行时间都较短,而且调用频繁。
          • 定义原语的直接方法是关闭中断,让它的所有动作不可分割地进行完再打开中断。
        • 4)系统控制的数据结构及处理 
          • 系统中用来登记状态信息的数据结构很多,比如:作业控制块、 进程控制块、设备控制块、各类链表等。为了实现有效的管理,系统需要一些基本的操作,常见 的操作有以下三种:
            • ------ 进程管理:进程状态管理、进程调度和分配、创建和撤销进程控制块等。
            • ------ 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等。 ------ 设备管理:缓冲区管理、设备分配和回收等
    • 大内核
      • 将操作系统的主要功能模块都作为系统内核,运行在核心态
      • 优点:高性能
      • 缺点:内核代码庞大,结构混乱,难以维护
    • 微内核
      • 只把最基本的功能保留在内核
      • 优点:内核功能少,结构清晰,方便维护
      • 缺点:需要频繁地在核心态和用户态之间切换,性能低
  • 进程
    进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
    • 进程实体的组成
      PCB是给操作系统用的。
      程序段、数据段是给进程自己用的。
      • PCB(进程控制块)
        进程存在的唯一标志
        • 进程描述信息
          • 进程标识符PID
          • 用户标识符UID
        • 进程控制和管理信息
          • CPU、磁盘、网络流量使用情况统计...
          • 进程当前状态:就绪态/阻塞态/运行态...
        • 资源分配清单
          • 正在使用哪些文件
          • 正在使用哪些I/O设备
          • 正在使用哪些内存区域
        • 处理机相关信息
          • 如PSW、PC等等各种寄存器的值(用于实现进程切换)
      • 程序段
        • 程序的代码(指令序列)
      • 数据段
        • 运行过程中产生的各种数据(如:程序中定义的变量)
    • 进程的特征
      程序是静态的,进程是动态的
      • 动态性
        • 动态性是进程最基本的特征
        • 进程是程序的一次执行过程,是动态地产生、变化和消亡的
      • 并发性
        • 内存中有多个进程实体,各进程可并发执行
      • 独立性
        • 进程是能独立运行、独立获得资源、独立接受调度的基本单位
      • 异步性
        • 各进程按各自独立的、不可预知的速度向前推进,操作系统要提供"进程同步机制"来解决异步问题
      • 结构性
        • 每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成
    • 进程的状态
      • 创建态
        • 进程正在被创建,操作系统为进程分配资源、初始化PCB
      • 运行态
        • 占有CPU,并在CPU上运行
      • 就绪态
        • 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
      • 阻塞态
        • 因等待某一事件而暂时不能运行
      • 终止态
        • 进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB
    • 进程的组织方式
      • 链接方式
        • 按照进程状态将PCB分为多个队列操作系统持有指向各个队列的指针
      • 索引方式
        • 根据进程状态的不同,建立几张索引表操作系统持有指向各个索引表的指针
  • 进程的调度算法
    • 调度算法的评价指标
      • CPU利用率
        • 利用率=忙碌的时间 / 总时间
      • 系统吞吐量
        • 系统吞吐量=总共完成了多少道作业 / 总共花了多少时间
      • 周转时间
        • 周转时间=作业完成时间-作业提交时间
        • 平均周转时间=各作业周转时间之和 / 作业数
        • 带权周转时间=作业周转时间 / 作业实际运行的时间
        • 平均带权周转时间=各作业带权周转时间之和 / 作业数
      • 等待时间
        • 进程 / 作业等待被服务的时间之和
      • 平均等待时间
        • 即各个进程 / 作业等待时间的平均值
      • 响应时间
        • 从用户提交请求到首次产生响应所用的时间
    • 先来先服务(FCFS, First Come First Serve )
      按照作业/进程到达的先后顺序进行服务
      • 算法思想
        • 主要从“公平”的角度考虑(类似于我们生活中排队买东西的例子)
      • 算法规则
        • 按照作业/进程到达的先后顺序进行服务
      • 用于作业/进程调度
        • 用于作业调度时,考虑的是哪个作业先到达后备队列
        • 用于进程调度时,考虑的是哪个进程先到达就绪队列
      • 是否可抢占?
        • 非抢占式的算法
      • 优缺点
        • 优点:公平、算法实现简单
        • 缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好。
      • 是否会导致饥饿
        • 不会
    • 短作业优先(SJF, Shortest Job First)
      最短的作业/进程优先得到服务
      • 算法思想
        • 追求最少的平均等待时间,最少的平均周转时间、最少的平均平均带权周转时间
      • 算法规则
        • 最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短)
      • 用于作业/进程调度
        • 即可用于作业调度,也可用于进程调度。用于进程调度时 称为“短进程优先(SPF, Shortest Process First)算法”
      • 是否可抢占?
        • SJF和SPF是非抢占式的算法。
        • 但是也有抢占式的版本-- -最短剩余时间优先算法
      • 优缺点
        • 缺点:
          • 不公平。对短作业有利,对长作业不利。
          • 可能产生饥饿现象。
          • 作业/进程的运行时间是由用户提供的, 并不一定真实,不一定能做到真正的短作业优先
        • 优点:
          • “ 最短的”平均等待时间、平均周转时间
      • 是否会导致饥饿
        • 会。如果源源不断地有短作业/进程到来,可能使长作业/进程长时间得不到服务,产生“饥饿”现象。如果一直得不到服务,则称为“饿死”
    • 高响应比优先(HRRN, Highest Response Ratio Next)
      先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务
      • 算法思想
        • 要综合考虑作业/进程的等待时间和要求服务的时间
      • 算法规则
        • 在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务
      • 用于作业/进程调度
        • 即可用于作业调度,也可用于进程调度
      • 是否可抢占?
        • 非抢占式的算法。因此只有当前运行的作业/进程主动放弃处理机时,才需要调度,才需要计算响应比
      • 优缺点
        • 综合考虑了等待时间和运行时间(要求服务时间)
        • 等待时间相同时,
          • 要求服务时间短的优先(SJF 的优点)
        • 要求服务时间相同时,
          • 等待时间长的优先(FCFS 的优点)
        • 对于长作业来说,
          • 随着等待时间越来越久,其响应比也会越来越大,从而避免了长作业饥饿的问题
      • 是否会导致饥饿
        • 不会
    • 时间片轮转(RR, Round-Robin)
      按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。
      • 算法思想
        • 公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应
      • 算法规则
        • 按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。
      • 用于作业/进程调度.
        • 用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片)
      • 是否可抢占?
        • 若进程未能在时间片内运行完,将被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式的算法。由时钟装置发出时钟中断来通知CPU时间片已到
      • 优缺点
        • 优点:公平;响应快,适用于分时操作系统;
        • 缺点:由于高频率的进程切换,因此有一定开销:不区分任务的紧急程度。
      • 是否会导致饥饿
        • 不会
  • 线程
    • 引入线程机制后,有什么变化?
      • 资源分配、调度
        • 引入线程后,进程是资源分配的基本单位,线程是调度的基本单位
      • 并发性
        • 传统进程机制中,只能进程间并发
        • 引入线程后,各线程间也能并发,提升了并发度
      • 系统开销
        • 传统的进程间并发,需要切换进程的运行环境,系统开销很大
        • 线程间并发,如果是同一进程内的线程切换,则不需要切换进程环境,系统开销小
        • 引入线程后,并发所带来的系统开销减小
    • 线程的实现方式
      • 用户级线程
      • 内核级线程
    • 多线程模型
      • 一对一模型
        • 一个用户级线程映射到一个内核级线程
        • 优:
          • 各个线程可分配到多核处理机并行执行,并发度高
        • 缺:
          • 线程管理都需要操作系统支持,开销大
      • 多对一模型
        • 多个用户级线程映射到一个内核级线程
        • 优:
          • 线程管理开销小,效率高
        • 缺: 
          • 一个线程阻塞会导致整个进程都被阻塞(并发度低)
      • 多对多模型
        • n个用户级线程映射到m个内核级线程(n≥m)
        • 集二者之所长
    • 处理机调度
      • 基本概念
        • 确定莫种规则来决定处理任务的顺序
      • 三个层次
        • 高级调度(作业调度)
        • 中级调度(内存调度)
        • 低级调度(进程调度)
      • 三层调度的联系、对比
        •  
      • 补充知识
      • 进程的"挂起态”七状态模型
  •  

串行总线与并行总线

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBRTTE5OTAwNDIw,size_20,color_FFFFFF,t_70,g_se,x_16 

 

串行总线

优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。

缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题。

并行总线

优点:总线的逻辑时序比较简单,电路实现起来比较容易。

缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。

 

死锁、饥饿、死循环的区别

死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。

饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF) 算法 中,若有源源不断的短进程到来,则长进程将一- 直得不到处理机,从而发生长进程“饥饿”。

死循环:某进程执行过程中- -直跳不出某个循环的现象。有时是因为程序逻辑bug导致的,有时是程序员故意设计的。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBRTTE5OTAwNDIw,size_20,color_FFFFFF,t_70,g_se,x_16

 

分页、分段的区别

页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。

段是信息的逻辑单位。分页的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。

页的大小固定且由系统决定。段的长度却不固定,决定于用户编写的程序。

分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址。

分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址。分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码(不属于临界资源),这样的代码是可以共享的。可修改的代码是不能共享的

访问一个逻辑地址需要几次访存?

分页(单级页表) :第一次访存--查内存中的页表,第二次访存- -- -访问目标内存单元。总共两次访存.

分段:第一次访存--查内存中的段表,第二次访存--访问目标内存单元。总共两次访存

与分页系统类似,分段系统中也可以引入快表机构,将近期访问过的段表项放到快表中,这样可以少一次访问,加快地址变换速度。

 

 

段页式管理方式

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkA,size_20,color_FFFFFF,t_70,g_se,x_16

 传统存储管理方式的特征和缺点

一次性:作业必须一次性全部装入内存后才能开始运行。

这会造成两个问题:

①作业很大时,不能全部装入内存,导致大作业无法运行;

②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降。

驻留性: 一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源。

 

 

 

 

  • 0
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值