华科操作系统复习笔记

01操作系统概述

主要内容

操作系统的定义

操作系统是一个大型系统程序

  • 提供用户接口,便利用户使用和控制计算机。
  • 负责计算机的全部软硬件资源的分配和调度,控制与协调并发活动,实现信息的存取和保护。

简而言之

  • 为用户提供友好的接口
  • 管理并调度系统资源

操作系统的功能

  1. 进程管理(cpu管理)

    具体功能:

    • 进程控制:创建,暂停,唤醒,撤销
    • 进程调度:调度策略,优先级
    • 进程通信
  2. 存储管理

    作用:

    • 内存分配
    • 内存共享
    • 内存保护
    • 虚拟内存
  3. 设备管理

    • 设备无关性
    • 设备的传输控制
    • 设备的驱动
  4. 文件管理:文件和目录的管理

    • 存储空间管理
    • 文件的操作
    • 目录的操作
    • 文件和目录的存取权限管理

操作系统的特性

  • 并发性:同时处理多个任务 的能力
  • 共享性:为多个并发任务提供资源共享
  • 不确定性:具有处理随机事件的能力(处理中断的能力,自动化处理的能力)

操作系统的发展历史

计算机硬件发展的四个阶段:

  • 电子管时代
  • 晶体管时代
  • 集成电路时代
  • 大规模集成电路时代

操作系统发展的四个阶段:

  • 手工操作 40年代

  • 单道批处理系统 50年代

  • 多道批处理系统 60年代初

  • 分时系统 60年代

    世界上第一个实用化的分时操作系统:UNIX ,实现了操作系统的可移植性,与计算机硬件无关,引进了特殊文件的概念,第一次把外设看作文件管理

操作系统的评价指标

  • 吞吐量:在单位时间内处理信息的能力
  • 响应能力:从接受数据到输出结果的时间间隔
  • 资源的利用率:设备使用的频率
  • 可移植性:改变硬件环境仍能正常工作的能力
  • 可靠性:发现,诊断和恢复系统故障的能力

操作系统的进一步发展(分时系统的衍化)

  • 微机操作系统(PC机)
  • 多处理操作系统
  • 网络操作系统
  • 分布式操作系统
  • 实时操作系统
  • 嵌入式操作系统

重难点

操作系统的功能(√)

多道程序设计技术

分时的概念

理解操作系统的特性(√)

并发环境下程序的运行特点

  • 运行过程不可见
  • 结果不可再现
  • 程序运行被干扰(开放性)

02操作系统逻辑结构

主要内容

操作系统的虚拟机的概念

面对用户,操作系统可以称为虚拟计算机(提供用户界面,屏蔽硬件细节,扩展硬件功能,系统更安全可靠,效率更高)

操作系统的逻辑结构

逻辑结构的种类:

  • 整体式结构:以模块为单位

  • 层次式结构:例如TCP/IP协议栈

    ​ Linux内核具有分层特点(宏内核),Linux = 内核 + Shell + X Window + 应用程序

  • 微内核结构(客户/服务器结构 client/server)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RszwbOgr-1589703776160)(C:\Users\Zhao Chongxuan\Desktop\pics\批注 2020-05-08 135139.jpg)]

微内核和宏内核的对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KdYMzvXE-1589703776168)(C:\Users\Zhao Chongxuan\Desktop\pics\批注 2020-05-08 135444.jpg)]

CPU 的态

指CPU的工作状态,对资源和指令使用权限的描述

态的分类:

  • 核态(Kernel mode) 能够访问所有资源和执行所有指令,管理程序/OS内核
  • 用户态(User mode) 仅能访问部分资源,其它资源受限,用户程序
  • 管态(Supervisor mode) 介于核态和用户态之间

存储器

存储程序和数据 的部件

分类:

  • 按与CPU的联系:
    • 主存:直接与CPU交换信息
    • 辅存:不能直接与CPU交换信息
  • 按存储元的材料
    • 半导体存储器(常作主存)
    • 磁存储器(磁盘磁带)
    • 光存储器(光盘)
  • 按存储器读写工作方式
    • RAM
    • ROM

存储体系:三级存储体系

  • 高速缓存(CACHE)
  • 主存
  • 磁盘

分级存储系统的工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NhO7EJO8-1589703776171)(C:\Users\Zhao Chongxuan\Desktop\pics\批注 2020-05-08 140556.jpg)]

中断机制

中断定义:指CPU对突发的外部事件的反应过程或机制

断点:程序中断处:将要执行的下一指令的地址:CS:IP

现场:程序运行依赖的信息集合

中断相应过程:

  • 识别中断源
  • 保护断点和现场
  • 装入中断服务程序的入口地址(CS:IP)
  • 进入中断服务程序
  • 恢复现场和断点
  • 中断返回:IRET

中断相应的实质:

  • 交换指令执行地址
  • 交换CPU的态
  • 工作
    • 现场保护和恢复
    • 参数传递(通信)

实模式(REAL MODE)

  • 程序按照8086寻址方法访问0~FFFFFh(1MB)空间
  • 寻址方式:物理地址(20位)
  • CPU单任务运行

实模式存取的1MB空间:

  • 前面640K【00000 – 9FFFF】 :基本内存
  • 中间128K【A0000 – BFFFF】:显卡显存
  • 末尾256K【C0000 – FFFFF】:BIOS
    • 基本输入输出系统
    • C0000 – C7FFF:显示卡BIOS
    • C8000 – CBFFF:IDE控制器BIOS
    • F0000 – FFFFF:系统BIOS 功能:CMOS设置,设备的基本I/O服务(中断服务),POST(上电自检)和系统自举

操作系统的启动

  • 初始引导

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhyGvbJY-1589703776176)(C:\Users\Zhao Chongxuan\Desktop\pics\批注 2020-05-08 143000.jpg)]

  • 核心初始化

    OS内核初始化系统的核心数据,如寄存器的初始化,存储系统和页表的初始化,核心进程创建

  • 系统初始化

    为用户使用系统做准备,使系统处于待命状态。初始化文件系统,网络系统,控制台,图形界面

重难点

虚拟机概念

态的概念

中断机制

03用户界面

04进程管理

进程定义

进程是程序在某个数据集合上的一次运行活动

进程的特征

  • 动态性
  • 并发性
  • 异步性
  • 独立性

设计临界区访问机制的四个原则

忙则等待、空闲让进、有限等待、让权等待(等待的进程要放弃CPU,让其他进程有机会得到CPU)

进程的互斥关系

多个进程由于共享具有独占性的资源,必须协调各进程对资源的存取顺序:确保没有任何两个或以上的进程同时进行资源的存取操作。

线程的典型使用场景

  • 程序的多个功能需要并发执行
  • 改善窗口程序的交互性
  • 需要改善程序结构的地方
  • 多核CPU的应用,充分发挥多核性能

05进程死锁

死锁的起因

  • 系统资源有限
  • 并发进程的推进顺序不当

死锁的必要条件

  • 互斥条件:资源具有独占性,进程互斥使用资源
  • 不剥夺条件:进程在释放资源前不能被其他进程剥夺
  • 部分分配条件:进程所需资源逐步分配,需要时申请和分配
  • 环路条件:多个进程构成环路,环中每个进程已占用的资源被前一个进程申请,而自己所需新资源又被环中后一进程所占用

解决死锁的策略

  • 预防死锁
    • 破坏互斥条件——难
    • 破坏不剥夺条件——代价大
    • 破坏部分分配条件——预先静态分配法
    • 破坏环路条件——有序资源分配法
  • 避免死锁
  • 检测死锁
  • 恢复死锁

06进程调度

调度的目标

  • 相应速度尽可能快
  • 进程处理时间尽可能短
  • 系统吞吐量尽可能大
  • 资源利用率尽可能高
  • 对所有进程公平
  • 避免饥饿
  • 避免死锁

调度算法

  • 先来先服务调度FCFS
  • 短作业优先调度算法(Short Job First)
  • 响应比高者优先调度算法(响应比 = 1 + 等待时间 / 运行时间)
  • 优先数调度算法(静态优先数+动态优先数)
  • 循环轮转调度法(ROUND-ROBIN)
  • 可变时间片轮转调度算法
  • 多重时间片循环调度法

Linux调度机制

  • 进程的分类:

    • 普通进程
      • 采用动态优先级来调度,task_struct中的counter代表动态优先级
      • 调度程序周期性地修改优先级,避免饥饿
    • 实时进程
      • 采用静态优先数来调度,task_struct中的priority代表静态优先级
      • 用户事先指定,以后不会改变
  • 基于优先级调度

  • 既支持普通的分时进程,也支持实时进程

  • 让实时进程优先与普通进程

  • 保证普通进程公平使用CPU时间

守护进程

  • 后台服务程序
  • 生存周期长,系统装入时启动,系统关闭时终止
  • 周期性的执行某种任务或等待处理某些特别的事件
  • 很多系统服务通过守护进程完成
  • 守护进程名字一般以‘d’结尾
  • 独立于控制终端

07存储管理

存储管理的功能

  • 地址映射:逻辑地址——物理地址
  • 虚拟存储:时间换取空间
  • 内存分配
  • 存储保护:避免越权越界

物理内存管理方法

  • 分区存储管理(固定分区,动态分区)
    • 固定分区:把内存固定地分为若干个大小不等的分区供各个程序使用。
      • 每个分区的大小和位置固定,系统运行期间不再重新划分。
      • 分区表(区号,大小,起始地址,标志)
    • 动态分区:在程序装入的时候创建分区,使分区大小刚好与程序的大小相等
      • 特点:分区的个数和大小均可变,存在内存碎片
      • 空闲表描述内存空闲区的位置和大小的数据结构
      • 空闲区表如何排序——放置策略
        • 首次适应法,按空闲区位置首地址递增排序
        • 最佳适应法,按空闲区大小递增排序
        • 最坏适应法,按空闲区大小递减排序
      • 解决碎片的方法
        • 规定门限值
        • 内存拼接技术
        • 把程序分拆几个部分装入不同分区,充分利用碎片
  • 内存覆盖技术 Overlay
    • 目的:在较小的内存空间中运行较大的程序
  • 内存交换技术 Swapping
    • 原理:内存不够时把进程写到磁盘(换出),当进程要运行时重新写回内存(换入)
    • 优点:增加进程并发数,不用考虑程序结构

虚拟内存管理方式

  • 页式虚拟存储管理

    • 进程空间:虚拟页,进程以页为单位装入内存
    • 内存:物理页,内存以页框位单位分配使用
    • 页表(页面映射表)记录页与页框之间的对应关系和页面的其他特性(中断位、辅存地址、访问位、修改位)
    • 快表机制:
      • 快表:页表放在Cache中;慢表:页表放在内存中
      • 快表容量小,访问快,成本高
      • 快表是慢表的部分内容的复制
      • 地址映射优先访问快表
      • 快表的命中率较高
    • 页面共享:多个进程共享相同的代码或数据(物理页框),页表填上相同的页框号就能实现对应的页面共享。
    • 页表扩充:中断位、辅存地址、访问位、修改位
    • 缺页中断:目的页不在内存,产生异常中断
      • 缺页率:f = 缺页次数 / 访问页面总次数
      • 命中率 = 1 - f
      • 页面抖动:页面在内存和辅存间频繁交换的现象,会导致系统效率下降
    • 页表的淘汰算法
      • 最佳算法(OPT),淘汰以后不再需要或在最远的将来才会用到的页面
      • FIFO,淘汰在内存中停留时间最长的页面
      • 最久未使用淘汰算法(LRU),淘汰最长时间未被使用的页面
      • 最不经常使用算法(LFU),淘汰截止到当前时间使用次数最少的页面
    • 影响缺页次数的因素
      • 淘汰算法
      • 分配给进程的页框数
      • 页本身的大小
      • 程序的编制方法——局部性
    • 页式系统的不足
      • 页面划分无逻辑含义
      • 页的共享不灵活
      • 页内碎片
  • 段式虚拟存储管理

    • 把进程按逻辑含义划分为多个段;以段为单位装入,每段分配连续的内存;
  • 段页式虚拟存储管理

    • 在段式存储管理中结合页式存储管理技术
    • 虚拟地址 | 段表 + 页表
  • 保护模式 下的段描述符

    • 段描述符 Descriptor :描述段的属性,8字节

      • 段基址
      • 段界限
      • 段属性
    • 描述符表:存放描述符的数组

    • 典型描述符表:

      • 全局描述符表 GDT
      • 局部描述符表 LDT
      • 中断描述符表 IDT
    • 典型寄存器:

      • GDTR、LDTR、IDTR
      • LDTR:索引,指向GDT中的某个LDT描述符
      • LDTR = 选择子Selector
    • GDT / GDTR / LDT / LDTR的关系

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AzwusU8R-1589703776179)(C:\Users\Zhao Chongxuan\Desktop\pics\批注 2020-05-09 170725.jpg)]

Linux的段机制

  • Linux四个范围一样的段:0~4G
    • 内核数据段
    • 内核代码段
    • 用户数据段
    • 用户代码段
    • 内核段特权级为 0
    • 用户段特权级为 3
  • 作用
    • 隔离用户数据和系统数据
    • 简化(避免)逻辑地址到线性地址转换,直接将虚拟地址当作线性地址,二者完全一致
    • 保留段的等级保护机制

08设备管理

设备管理的主要功能

  • 设备分配
    • 是设备管理的基本任务
    • 设备分配程序按照一定的策略,为申请设备的进程分配设备,并记录设备的使用情况
  • 设备映射
    • 设备管理模块将逻辑设备映射到物理设备的功能
    • 物理设备 ID或字符串
    • 逻辑设备 友好名
    • 设备独立性
      • 物理设备对用户透明,用户使用统一规范的方式使用设备
      • 用户编程时使用设备逻辑名,由系统实现逻辑设备到物理设备的转换
  • 设备驱动
    • 对物理设备进行控制,实现I/O操作
    • 接受应用的服务请求,转化为具体的I/O指令,控制设备完成相关操作
    • 向用户提供统一的接口 read/write/open…
    • 设备驱动程序的特点:
      • 设备驱动程序与硬件密切相关
      • 每类设备都要配置特定的驱动程序
      • 驱动程序一般由设备厂商根据操作系统要求编写
      • 操作系统仅对设备驱动的接口提出要求

Linux设备的分类

  • 字符设备 以字节为单位,如串口设备
  • 块设备
    • 块设备存取通过buffer cache进行
    • 例如IDE硬盘设备
  • 网络设备 通过BSD套接口访问(SOCKET)

09文件管理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值