操作系统OS【总述】

操作系统OS(导论篇)

版权声明
本文原创作者:wby小菜盒
作者博客地址:https://blog.csdn.net/weixin_51037598/


思维导图1
思维导图2

认识操作系统

  1. 计算机系统的层次
    例图1
  2. ☆☆操作系统的定义
    操作系统(OS, Operating System ):是控制管理计算机系统内各种硬件和软件资源合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用1(如上图所示)
  1. 计算机的启动
  • BIOS(basic input output system)是一组程序,包括基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序。
  • 这些程序被固化到了计算机主板的ROM芯片上。用户可以对BIOS进行设置
  • 计算机启动的过程(五个阶段)
    (1)启动自检阶段
    (2)初始化启动阶段
    (3)启动加载阶段
    (4)内核装载阶段
    (5)登陆阶段

操作系统的分类

1. 批处理操作系统(最早的)
2. 分时操作系统(时间作为最小的分片单位,最常用)
特点:交互性,多路性,独立性,及时性
3. 实时操作系统(每个任务有特定的执行时间,和时间点相关,用于军事)
如果规定的时间冲突,会报错
4. 嵌入式操作系统(用于机器人、手机等精密设备)

批处理操作系统

  1. 定义:批处理操作系统——批处理是指计算机系统对一批作业自动进行处理的技术。 由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行。并在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量23
    例图3
  1. 分类
  • 单道批处理
    先出现
  • 多道批处理
    后出现,因:单道有局限(计算机革命的重要思想)

分时操作系统

  1. 定义:将计算机系统的CPU时间划分成一些小的时间片(时间段),按时间片轮流把处理机分给各联机作业使用。(优点:在某个时间片作业可独享主机)4
  1. 时间片选择:中间---->太大不好----某个作业执行完后,时间片还有剩余,造成处理机的浪费;太小也不好----作业执行时间少,多次轮流才可执行完;适中最佳
  2. 举例:雪梨教育平台
    服务器CPU或叫处理机)[在学院自习室的对面那个小黑屋里],仅有一个,但n多个学生都要通过它上交作业与查看作业,如何做到的呢?(欲知后事如何,请看下面分解)
    服务器的实现就依靠于分时操作系统,服务器按时间片将CPU依次分给各用户使用,所以用户只是在极短的时间片内使用了服务器,又极短的时间片内重新夺回了服务器的使用权。所以造成了 “表面上你认为只有自己在使用服务器”的假象,实际上只是服务器巧妙地制作了这个假想而已(服务器情商是不是很高呀?你学废了吗?)
    例图4
    如图:主机即服务器,终端为各用户
  3. 特点
  • 交互性:用户与系统进行人机交互(对话)。
  • 多路性:多用户同时在(此同时非彼同时,极小的时间间隔忽略了而已)各自终端上使用同一CPU
  • 独立性:用户可彼此独立操作,互不干扰,互不混淆
  • 及时性:用户在短时间内可得到系统的及时回答

实时操作系统

  1. 定义
    实时操作系统——所谓“实时”,即“及时”,是指系统能及时5 (即时6)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。它必须保证实时性和高可靠性,对系统的效率则放在第二位
  2. 用途:
    主要应用于工业控制、军事控制、电子设备等领域。
    (例:战狼2中的火箭控制装置就是实时操作系统)

嵌入式操作系统

  1. 概念:嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等
  2. 功能(应用):嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块达到系统所要求的功能
  3. 目前在嵌入式领域广泛使用的操作系统有:嵌入式Linux、Windows Embedded、VxWorks等,以及应用在智能手机和平板电脑的Android、iOS等

认识一下主流的操作系统

例图5
以及鸿蒙、iOS、安卓等等

操作系统对硬件的管理

处理器的管理

CPU管理

  • 为了满足系统的性能要求,提高任务处理的效率,现在主流的计算机通常都有一个或多个CPU,每个CPU中又有多个核。一个核只能同时运行一个程序(该程序叫做进程)
    操作系统在用户没有操作时,处于休息状态。(OS很懒,没有进程时,就在睡觉)
  • 然而核的数量是远远小于需要执行的程序的数量。
  • 多任务在一个核上执行
    分时间片(分时思想)
    中断——进程7
    调度(即->选择,选择谁在CPU上运行)——调度策略

进程

  1. 概念
  • 在多道程序设计的环境下,为了描述程序在计算机系统内的执行情况,必须引入新的概念——进程
  • 进程:是一个程序的一次执行包含了其执行时所有的环境信息
  • 进程是执行中的程序。
    例图6
  1. 进程的特征(与程序比较)
  • 结构特征
    进程控制块(PCB)【储存进程的若干特征(时间地点等)】 + 程序 + 数据 = 进程实体
  • 动态性——最基本特征
    进程:进程实体的一次执行过程有生命周期
    程序:程序是一组有序指令的集合,是静态的概念。
  • 并发性(同一时间间隔内任务的执行)【并行:多个CPU同时工作】
  • 独立性(进程在其时间片内独享CPU资源)
  • 异步性(走走停停)
  1. 进程的三种状态(切换)
    – 就绪状态(Ready):进程已获得除处理机之外的所有必需的资源,一旦得到处理机控制权,立即可以运行。(没CPU)
    – 运行状态(Running)【运行态/执行态(1个)】:进程已获得运行所必需的资源,它的程序正在处理机上执行。
    – 阻塞状态(Blocked):正在执行的进程由于发生某事件而暂时无法执行时,便放弃处理机而处于暂停状态,称该进程处于阻塞状态或等待状态。(没CPU+事件)
    • 就绪队列(多个就绪进程组成)与阻塞队列(多个阻塞进程组成)
  2. 三种状态的切换(如图所示)
    例图7

三级调度

作业调度、中程调度、进程调度(FCFS、SJF)

高级调度(High Scheduling)

又称为作业调度长程调度(Long-Term Scheduling),用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后将新创建的进程排在就绪队列上,准备执行在批处理系统中,因作业进入系统后先驻留在外存,故需要有作业调度。在分时系统中为做到及时响应,作业被直接送入内存,故不需作业调度。在实时系统中,通常也不需作业调度。

中级调度(Low Level Scheduling)

又称中程调度(Medium-Term Scheduling)。引入目的是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪进程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度【虚拟内存】

低级调度(Low Level Scheduling)

通常也称为进程调度短程调度(Short-Term Scheduling),用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序把处理机分配给该进程。为最基本的一种调度,三种OS中都有
• 进程调度可采用下述两种调度方式:
– 非抢占方式(Non-preemptive Mode)【一个进程完全执行完后,将CPU转交给另一进程】
– 抢占方式(Preemptive Mode)【分时间片】
例图8
注:1.后备队列指外存(磁盘)
2.进程在CPU中用完时间片后,若没有执行完毕,则保存现场后,回到就绪队列队尾,等待下一次进程调度

OS的设计目标

在一个OS的设计中,应如何选择调度方式和算法,很大程度上取决于OS的类型和目标。如在批处理系统、分时系统和实时系统中,通常都采用不同的调度方式和算法选择的准则,有的是面向用户的,有的是面向系统的

  1. 处理机调度算法的共同目标
  • 资源利用率
  • 公平性(对软件)
  • 平衡性(对硬件的使用)
  • 策略强制执行(电脑死机时,强制停止进程)
  1. 批处理系统的目标
  • 周转时间短:(重要的衡量参数:)
    周转时间(等待时间+执行时间)或(出内存时间-进入内存时间)
    平均周转时间(周转时间之和/个数)
    带权周转时间(t等+t执行/ t执行=周转时间/运行时间)
    平均带权周转时间
  • 系统吞吐量高
  • 处理机利用率好
  1. 分时系统的目标
  • 响应时间快:响应时间
  • 均衡性
  1. 实时系统的目标
  • 截止时间的保证
  • 可预测性

进程调度(或CPU调度)

  • 调度程序,按照调度策略动态地把CPU分配给处于就绪队列中的进程,并将该进程从就绪态转换到运行状态
  • 对于不同的系统和系统目标,通常采用不同的调度算法衡量调度策略的好坏,一个重要的指标是:
    – 周转时间(平均周转时间)
  • 简单介绍两种进程调度策略
    先来先服务调度算法(FCFS)
    短任务优先调度算法(SJF)
先来先服务调度算法

例图9

  • 特点:
    FCFS调度算法有利于CPU繁忙型(长进程)的作业而不利于I/O繁忙型(短进程)的作业(进程)
    – CPU繁忙型作业:如通常的科学计算。
    – I/O繁忙型作业:指CPU进行处理时,需频繁的请求I/O。
短作业优先调度算法(抢占式与非抢占式)
  1. 抢占式
    例图10
  2. 非抢占式
    例图11
  3. 短作业优先调度(SJF)算法的优缺点:
    (1)优点:有效降低作业的平均等待时间,提高系统吞吐量。
    (2)缺点:
  • 对长作业不利。(饿死)
  • 该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。
  • 由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。

存储器的管理

认识存储器

  1. 概念:存储器是计算机系统的重要组成部分之一。随着计算机技术的发展,存储器容量一直在扩充,但仍不能满足现代软件和用户的需要,因此存储器仍是一种宝贵、紧俏的资源。对存储器加以有效管理,不仅直接影响存储器的利用率,而且对系统性能有重大影响。
    存储器管理的主要对象是内存(☆虚拟内存),对外存(磁盘)的管理在文件管理中
  2. 多级存储结构
    例图12
    注:缓存(cache)的目的解决速度不匹配问题(只要有速度不匹配,就有缓存的存在)【举例:就绪队列】
    磁盘缓存出现的原因:内存执行速度>外存

装入方式

外存(辅存)---->主存
分为绝对装入方式及可重定位装入方式

  1. 绝对装入方式
    只能将目标模块(程序对应的二进制)装入到内存中事先指定的位置。在多道程序环境下,编译程序不能预知所编译的目标模块应放在内存何处,因此绝对装入方式只适用于单道程序环境下
  2. 可重定位装入方式
    在多道程序环境下,目标模块的起始地址通常从0开始,程序中的其他地址都是相对于起始地址计算的。因此应采用可重定位装入方式根据内存的当前情况,将装入模块装入到内存的适当位置
  • 注意:在采用可重定位装入方式将装入模块装入内存后,会使装入模块中的所有逻辑地址(左)与实际装入内存的物理地址(右)不同。
    例图13

链接方式

链接指自己写的代码与库函数里的代码结合,由编译器或解释器转化为机器语言
分类:

  • 静态链接
    在写完代码后,与库函数代码一并打包,封装入内存
    缺点:自己写完代码后不易更改
  • 装入时动态链接
    一边装入一边执行(由上到下,一行一行执行)
  • 运行时动态链接
    最有效(但操作难):执行时需要---->链接,不需要---->不链接

分配方式

有两种分配方式:连续分配方式、离散内存分配

连续分配方式

连续分配方式:是指为一个用户程序分配一个连续的内存空间

  • 单一连续分配
  • 固定分区分配(等大小、不等大小)
  • 动态分区分配
单一连续分配

最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。

  • 采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常放在内存低址部分,用户区是指除系统区以外的全部内存空间提供给用户使用
    例图14
固定分区分配
  1. 概念:将内存用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,这样把用户空间划分为几个分区,便允许有几道作业并发执行
  2. 分类
  • 分区大小相等:缺乏灵活性,用于一台计算机控制多个相同对象的场合
  • 分区大小不等:把内存区划分成含有多个较小的分区、适量的中等分区及少量的大分区,可根据程序的大小为之分配适当的分区
  1. 弊端:内存中多出来的未利用的部分----内碎片(产生的原因:作业未占满分得的固定分区)
    例图15
动态分区分配

产生的原因:解决内碎片问题

概念:【按需分配,要付出管理代价(算法)】

动态分区分配是根据进程的实际需要动态地为之分配内存空间。作业装入内存时,把可用内存分出一个连续区域给作业,且分区的大小正好适合作业大小的需要。分区的大小和个数依装入作业的需要而定。
【注:弊端:回收空间时会出现断层现象,小分区太多,不能用---->外碎片】
例图16

分区分配算法(管理代价)
  1. 概念:为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业
  2. 常用的分配算法
  • 首次适应算法FF
    每次都从起始地址开始遍历,寻找能放下自己的内存空间
    弊端:会产生内存碎片
  • 循环首次适应算法
    从上次寻找到的位置,接着向下寻找属于自己的位置
    弊端:空闲分区分散,空闲大分区缺失
  • 最佳适应算法
    从起始地址遍历,记录所有的空闲分区的大小,寻找最适合自己的大小
    利:避免大材小用
    弊:算法复杂
回收算法【原则:尽可能的合并】

当进程运行完毕释放内存时,系统根据回收区首址,在空闲分区链(表)中找到相应插入点,此时可能有四种情况(回收时需合并
例图17

可重定位分区分配

移动空闲分区,将其拼凑为大的空闲分区【会产生时空开销---->需算法实现(算法产生时间复杂度与空间复杂度)】

离散内存分配【虚拟内存】

允许将一个进程直接分散地装入许多不相邻的分区中(拆分进程)

  • 分页存储管理方式:离散分配的基本单位是页
  • 分段存储管理方式:离散分配的基本单位是段
分页存储管理方式(严格按字节分配)
  1. 离散分配的基本单位是页
  2. 基本的分页存储管理方式(或纯分页存储管理方式):不具备页面对换功能,不具有支持实现虚拟存储器的功能,要求把每个作业全部装入内存后方能运行。
  3. 概念:分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片称为页面或页8严格按字节分配),并为各页加以编号,从0开始。同时把内存空间分成与页面相同大小的若干个存储块,称为块或页框。在为进程分配内存时,以块为单位进程的若干个页分别装入到多个可以不相邻的物理块中
  • ☆缺点:进程的最后一页可能装不满而产生“页内碎片
  1. 地址转换:在分页系统中,允许进程的每一页离散地存储在内存的任一存储块中,为方便查找,系统为每一进程建立一张页面映像表,简称页表。页表实现了从页号到物理块号的地址映射
    例图19
  2. 基本分页式存储管理
    例图20
分段存储管理方式(注重逻辑性)
  1. 离散分配的基本单位是段
  2. 注重逻辑性:按功能(循环结构、函数等)分块大小不等---->动态分区分配

操作系统对软件的管理(文件系统)

软件背后是文件,所以对软件的管理即对文件(文件系统)的管理

基本概念

  1. 在现代计算机系统中,要用到大量的程序和数据由于内存容量有限,且不能长期保存,故而平时总是把他们以文件的形式存放在外存中需要时调入内存
  2. 但用户不能够胜任管理文件的工作,于是在OS中又增加了文件管理功能,构成一个文件系统,负责管理在外存上的文件
  3. 文件夹:计算机磁盘空间里面为了分类储存电子文件而建立独立路径目录

目录管理的要求

文件目录用于标识系统中的文件及其物理地址,供检索时使用。对目录管理的要求如下

  • 实现 “按名存取”---->不重名
  • 提高对目录的检索速度
  • 文件共享
  • 允许文件重名(不同目录下可重名)
    例图21

目录查询技术

当用户要访问一个已存文件时,系统首先利用用户提供的文件名对目录进行查询,找出该文件控制块对应索引结点;然后根据FCB或索引结点中所记录的文件物理地址,换算出文件在磁盘上的物理位置;最后通过磁盘驱动程序,将所需文件读入内存

写在最后:本篇文章中的所有图片及个别段落出自于河北师范大学软件学院内部资料


  1. 功能
    例图2 ↩︎

  2. 特点原理 ↩︎

  3. 即使现在该操作系统已经过时,但是其思想仍沿用至今 ↩︎

  4. 原理 ↩︎

  5. 及时:软实时【慢】
    但此处非及时(假快),而是即时----硬实时(真快)(详细见下) ↩︎

  6. 即时:硬实时【快】 ↩︎

  7. 进程实体=进程控制块(PCB) + 程序 + 数据 ↩︎

  8. 页面:
    例图18 ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值