首页 > 其他分享 >操作系统期末复习

操作系统期末复习

时间:2023-11-18 22:45:34浏览次数:53  
标签:复习 调度 死锁 线程 内存 进程 期末 资源 操作系统

以为会狠狠考概念,没想到没考啥概念,计算也比较简单!

introduction

操作系统是一组控制和管理计算机系统中的各种软硬件资源,合理地组织计算机系统的工作流程,方便用户使用的程序的集合

操作系统的目标和作用

  • convenience方便性:方便用户使用计算机系统;
  • efficiency有效性:提高系统资源的利用率;
  • 可扩充性、开放性;

操作系统功能

  • 从资源管理的角度
    • 处理机管理
    • 存储器管理
    • 设备管理
    • 文件管理
    • 用户接口
  • 从用户接口的角度

操作系统的分类

  • 批处理操作系统,单道,多道。
  • 分时操作系统
  • 实时操作系统,两个基本特征:及时性、可靠性
  • 通用操作系统,兼有批处理、分时处理、实时处理OS三者中的两者

如果操作系统具有很强的交互性,可同时供多个用户使用,但时间响应不太及时,则属于 分时系统 类型;如果操作系统可靠,时间响应及时但仅有简单的交互能力则属于 实时系统 类型;如果操作系统在用户提交作业后,不提供交互能力,它所追求的是计算机资源的高利用率,大吞吐量和作业流程的自动化,则属于 批处理系统 类型。

并发和并行的区别

  • 并发是指一个处理器同时处理多个任务,并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
  • 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。

操作系统的特征

  • 并发性
  • 共享性,资源互斥使用(临界资源)、同时使用
  • 虚拟性,一个物理实体映射为多个逻辑实体
  • 异步性,在多道程序环境下,每道程序的推进时间与顺序受运行环境的影响,是不确定的;程序执行结果不确定

多道程序设计:在内存中同时存放多道用户作业,使它们都处于执行的开始点和结束点之间

操作系统接口

  • 作业级接口
    • 命令行
    • GUI
    • 批处理
  • 程序级接口
    • 系统调用

操作系统结构

  • 简单结构
  • 分层结构
  • 微内核结构

CPU管理

  • 进程,进程是程序的一次执行过程,是系统进行资源分配和调度的一个基本单位
  • 进程特征
    • 动态性:有生命周期
    • 并发性:并发执行
    • 独立性:独立获得资源、独立运行单位
    • 异步性:推进速度不可预知道、执行结果不确定
    • 结构性:由程序段、数据段和PCB组成
  • 进程与程序
    • 进程是程序的一次执行,是一个动态的概念;而程序是一组有序的指令,是一种静态的概念。即进程是程序执行的动态过程,而程序则是进程运行的静态文本。
    • 一个进程可以执行一个或几个程序,同一个程序也可能由几个进程同时执行。
    • 程序可长期保存,而进程是有生命周期的。
    • 进程是并发实体, 而程序则不是
  • 进程与线程:
    • 调度方面:线程作为调度分派的基本单位,而进程则是资源分配和调度的一个基本单位;
    • 并发性方面:进程之间可以并发,一个进程的多线程之间也可并发执行;
    • 拥有资源方面:进程作为拥有资源的基本单位,而线程只拥有少量必不可少的资源,但它可以访问所属进程的资源
    • 系统开销方面:进程切换要涉及到进程环境的切换,开销较大,而线程间切换只需保存和设置少量的寄存器内容,开销远小于进程切换开销。
  • 进程的组成:程序、数据、PCB
    • PCB:记录OS所需的、用于描述进程的当前情况以及控制进程运行的全部信息,是进程存在的唯一标志,常驻内存。
      • 进程标识符
      • 处理机状态(CPU现场)
      • 进程调度信息:状态、优先级、时间、事件
      • 进程控制信息:地址、通信信息、资源
  • 进程状态和控制process
    • 就绪态:进程已经获得除处理机以外的所有资源,只要获得处理机即可执行
    • 执行态:进程已经获得处理机,正在处理机上执行
    • 等待态:进程正在等待某一事件的发生,如等待I/O完成、等待信号量等
    • 创建态:进程正在被创建
    • 终止态:进程已经完成执行,但PCB仍然保留,以便父进程得到该进程的有关信息

进程的互斥与同步

  • 临界区和临界资源:每个进程中访问临界资源的那段程序称为临界区,临界资源是一次仅允许一个进程使用的共享资源。
  • 进程的互斥:进程在运行中争用系统资源,对于独占型资源,只能一个进程使用完,另一个进程才能使用。
  • 临界区问题要求:
    • 互斥
    • 进步,没有进程在临界区时,若有其他进程需要进入,则一定有一个进程能进入
    • 有限等待,要求从申请进入临界区到进入临界区之间,其他进程进入临界区的次数有上界
  • 进程的同步:在异步环境下,互相合作的进程按各自独立的速度向前推进,但在某些确定点上必须协调工作。即当某个进程到达这些点后,等待另一进程发来信息,否则就只能停下来等待其操作的完成,进程间的这种协同关系称为进程同步。
  • 进程互斥的实现:
    • peterson
    • 硬件同步:原子指令test_and_set
    • 互斥锁封装
  • 进程同步和互斥实现
    • 信号量PV,可以通过计数量和等待进程列表实现一个非自旋的信号量,减弱了忙等待的影响
    • 条件变量
    • 管程
  • IPC问题
    • 生产者消费者问题
    • 读者写者问题
    • 哲学家进餐问题

线程

  • 引入线程目的:提高系统效率、提高系统资源利用率、减少进程并发执行时所付出的时空开销,使OS具有更好的并发性。
  • 进程内一个可调度的实体,CPU调度的基本单位,包括ID,程序计数器寄存器组和堆栈。
  • 内核和用户线程
    • 用户线程:存在于用户空间中,其创建、撤消和切换都不需系统支持。
    • 内核支持线程:是依赖于内核的,其创建、撤消和切换都是由内核实现的。
  • 模型
    • 一对一,映射一个用户线程到一个内核线程,一个线程阻塞,其他线程可以正常继续执行。
    • 多对一,映射多个用户线程到一个内核线程,线程管理由用户程序库完成,效率高;当一个线程阻塞时,整个进程都会阻塞。无法用于多处理器核系统,因为内核一次只能调度一个线程。
    • 多对多,映射多个用户线程到数量更少或相等的内核线程,一个线程阻塞,内核可以调度另一个线程。

CPU调度

三级调度

  • 长期调度从缓存池中选择进程加载到内存,负责控制多道程序程度(内存中进程数量);执行频率低,间隔时间长
  • 中期调度选择进程从内存中取出,降低多道程序程度,之后进程可被重新调入内存并从中断处执行;
  • 短期调度从就绪队列中选择进程,分配给cpu执行;执行频率高,速度快

调度方式

  • 抢占式
  • 非抢占式

调度时机

  • 现运行进程任务完成或出现异常
  • 现运行进程因某种原因由执行变成阻塞状态
  • 时间片用完
  • 采用可剥夺调度方式时,有更高优先级进程进入就绪队列

调度算法(调度的都是就绪队列不是等待队列)

  • 先来先服务FCFS
  • 短作业优先SJF。如何获得下一个CPU执行时间?指数平均预测。
  • 基于优先级的调度算法。存在饥饿问题,解决方法,增加就绪队列中等待时间过长的进程的优先级。
  • 时间片轮转RR。
  • 多级队列调度算法,根据进程属性,如优先级,将就绪队列分成多个单独队列,每个队列使用自己的调度算法。
  • 多级反馈队列调度算法,允许进程在队列之间移动。比如进程使用了过多CPU时间,将其放入下一级队列,当进程在一个队列中等待时间过长,则将其放入上一级队列。

多处理器调度

  • 非对称多处理器ASMP:主处理器负责进程调度和IO处理,其他处理器负责执行代码
  • 对称多处理器SMP:所有进程有一个共同的就绪队列或者每个处理器有自己的就绪队列
  • 处理器亲和性
    • 软亲和性:操作系统试图保持进程运行在同一处理器上,但不保证
    • 强亲和性:允许进程运行在处理器子集上
  • 多核处理器调度
    • 设计了多线程处理器核,每个核分配2或多个硬件线程
    • 两个级别的调度:操作系统选择软件线程运行在哪个硬件线程;每个核选择运行哪个硬件线程
      实时CPU调度,应该支持抢占
  • 单调速率调度,优先级和周期成反比,即更频繁的事件有更高的优先级
  • 最早截止期限,不要求是周期或者CPU长度固定
  • 比例分享调度

死锁

  • 产生死锁的原因:

    • 系统资源不足;
    • 进程推进顺序不合适;
  • 死锁产生的必要条件

    • 互斥条件:一个资源每次只能被一个进程使用
    • 占有并等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放;一个进程应该至少占有一个资源,并等待另一个资源,而该资源为其他进程占有
    • 非抢占条件:进程已获得的资源,在末使用完之前,不能强行剥夺,只能完成后主动释放
    • 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
  • 解决死锁的策略:

    • 设计无死锁的系统:静态预防、动态避免;
    • 允许出现死锁然后排除:检测并解除
  • 预防

    • 资源的静态分配方法:进程运行前一次性申请全部资源,破坏请求和保持条件.
    • 资源的顺序分配法:系统的全部资源进行编号,只允许按编号顺序递增地申请,破除环路等待。
    • 一个已占有资源的进程,若要申请新的资源,必须先放弃已占有的资源,破坏请求保持条件。
  • 死锁避免

    • 安全状态:当多个进程动态申请资源时,系统按某一顺序逐次地为每个进程分配所需资源,使每个进程都可以在最终得到最大需求量后依次顺利完成;否则为不安全状态;让系统在动态分配资源的过程中,不要进入不安全状态。
    • 银行家算法
  • 死锁检测

    • 每种资源只有一个实例:资源分配图和等待图
    • 多个实例:类似于银行家算法
  • 死锁恢复

    • 终止进程
      • 终止所有死锁进程
      • 逐个终止死锁进程,直到死锁解除
    • 抢占资源
      • 选择牺牲进程
      • 回滚

存储器管理

逻辑地址:CPU生成的地址
物理地址:内存看到的地址,即内存地址寄存器的地址
动态加载:程序只有被需要时才会加载
动态链接时,每个库引用都会保留存根,用来指示如何定位适当的内存驻留程序,或者在程序不在内存时加载库。

swap技术
把主存中暂时不能运行的进程调出到外存(快速磁盘),以便腾出足够的内存空间,再将具备运行条件的进程调入内存;

  • 从逻辑上扩充内存空间,从而使整个系统资源利用率提高;
  • 整体对换:以进程为单位,进程对换;
  • 部分对换:页面对换,分段对换;
  • 换出时应保证进程是空闲的;如果正在等待IO操作就会发生错误,解决方法不能换出等待IO的进程或者IO使用系统缓冲区

连续内存分配

  • 固定分区:分区容量和数目固定不变,大小可不等,每个分区容纳一道作业。
  • 动态分区,作业装入内存时根据作业大小建立分区
  • 空闲分区的分配算法:
    • 首次适应:空闲区按地址递增顺序排列
    • 最佳适应:空闲区按容量递增顺序排列
    • 最坏适应:空闲区按容量递减顺序排列
  • 可重定位分区:重定位寄存器、紧凑技术

页表

  • 多级页表
  • 哈希页表
  • 倒置页表
    快表(TLB):存放被频繁访问的页面的页表项,设置快表是为了提高内存访问速度,内存访问时间的计算(与快表命中率相关);

虚拟内存

请求调页:页面在程序执行期间被请求时才加载到内存
对标记为无效的页面的访问会产生缺页错误
硬件支持

  • 一定容量的内存;
  • 较大容量的外存;
  • 缺页(段)中断机构;
  • 地址变换机构

页面置换算法

文件系统

磁盘分配

  • 连续分配。优点:简单、顺序访问速度快。缺点:外部碎片、文件大小受限、难以支持动态增长,无法实现预知文件大小。
  • 链接分配。优点:不需要知道文件大小,可以动态增长,无需合并磁盘空间。缺点:只能有效用于顺序访问,指针占据空间,难以实现随机访问、指针导致文件容易被破坏,可靠性低。使用FAT文件分配表,可以缓存FAT,改善随机访问时间。
  • 索引方法。将所有指针放在一起构成索引块。
    • 索引块的组织:链接;多级索引;组合方法。

空闲空间管理

  • 位向量
  • 链表

IO

为什么要引入缓冲区?

  • 缓和CPU和I/O设备速度不匹配的矛盾。
  • 降低对CPU的中断频率。
  • 提高CPU和I/O设备之间的并行性,从而提高系统的吞吐量和设备利用率

设备独立性:是指应用程序独立于具体使用的物理设备,它可提高设备分配的灵活性和设备的利用率。
为了实现设备独立性,用户程序不直接使用物理设备名(或设备的物理地址),而使用逻辑设备名来请求某类设备;而系统在实际执行时,将逻辑设备名转换为某个具体的物理设备名,实施I/O操作。
四种IO方式

标签:复习,调度,死锁,线程,内存,进程,期末,资源,操作系统
From: https://www.cnblogs.com/wangerblog/p/17841409.html

相关文章

  • 【第19章】操作系统安全保护(信息安全工程师)
    19.1操作系统安全概述操作系统是构成网络信息系统的核心关键组件,其安全可靠程度决定了计算机系统的安全性和可靠性。19.1.1操作系统安全概念国家标准《信息安全技术操作系统安全技术要求(GB/T20272—2019)》根据安全功能和安全保障要求,将操作系统分成五个安全等级,即用户自主......
  • Windos操作系统下的Zookeeper安装图文教程
    凯哥已经准备好最新版本3.9.1且已经配置好了。既获取到配置好的。获取到凯哥准备的安装后,只需要修改一下配置。将解压包解压后,找到conf文件,里面有个zoo.cfg配置文件。如下图:下载后conf文件夹内容打开zoo.cfg配置文件后,找到13、14这两行。将dataDir和dataLogDir的路径修改成自......
  • Windos操作系统下的Zookeeper安装图文教程
    凯哥已经准备好最新版本3.9.1且已经配置好了。既获取到配置好的。获取到凯哥准备的安装后,只需要修改一下配置。将解压包解压后,找到conf文件,里面有个zoo.cfg配置文件。如下图:下载后conf文件夹内容打开zoo.cfg配置文件后,找到13、14这两行。将dataDir和dataLogDir的路径修改成自己的就......
  • 11.17 复习JavaScript红宝书的笔记——
    一、原始值与引用值对于原始值和引用值的判断类型各自有对应的操作符,前者可以用typeof操作符lets="Nicholas";letb=true;leti=22;letu;letn=null;leto=newObject();console.log(typeofs);//stringconsole.log(typeofi);//numberconsole......
  • 编辑 windows 操作系统 local host 文件的注意事项
    本地主机文件(也称为hosts文件)是操作系统中的一个文本文件,用于将主机名映射到IP地址。这个文件在Windows、Linux和macOS等各种操作系统中都存在,它允许计算机用户手动指定特定主机名与其相应的IP地址之间的关系,以便在域名解析时绕过DNS服务器。本地主机文件通常用于本地开发、网络故......
  • C++从零复习
    0.前言子曰:“温故而知新,可以为师矣。”学习了知识,不复习怎么行。这篇随笔是为C++小白写的复习资料,根据目录使用效果更佳。悄悄告诉你:听课的时候走神了也可以查缺补漏哦1.顺序结构(1)框架头文件#include<clude_name>//将名为“clude_name”的头文件导入//常用头文件实例#i......
  • 408---CN三轮复习---数据链路层
    重点知识点组帧 ⭐⭐⭐⭐差错控制 ⭐⭐⭐⭐流量控制与可靠传输机制 ⭐⭐⭐⭐⭐介质访问控制 ⭐⭐⭐⭐⭐⭐⭐⭐局域网(IEEE802.3与IEEE802.11) ⭐⭐⭐⭐⭐⭐⭐⭐广域网 ⭐⭐⭐数据链路层的设备 ⭐⭐⭐⭐组帧组帧时既要加首部,又要加......
  • 408---CN三轮复习---物理层
    ps:参考了不少我之前写的:https://www.cnblogs.com/lordtianqiyi/p/17706801.html通信基础基本概念数据、信号与码元数据:传送信息的实体,通常是有意义的符号序列,如图片、文字信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式,如数字信号与模拟信号数字信号(离散......
  • 操作系统的抢占、重入
    参考:https://blog.csdn.net/m0_64727117/article/details/130976784一、抢占式内核、抢占式调度、抢占式中断:某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务。抢占式内核的优点:(1)最高优先级的任务什么时候可以执行,可以得到CPU的使用权是已知的......
  • 二、RHEL8操作系统安装
     一、如何安装rhel的操作系统? 必要的前提条件:硬件(CPU、内存、硬盘……)+安装介质(操作系统的安装文件) 会不会把自己的笔记本装成rhel的操作系统呢?不会 使用虚拟机软件虚拟出一套虚拟的计算机硬件,然后将操作系统装在上面,Vmwareworkstation虚拟机软件 ......