操作系统知识

发布于:2022-11-09 ⋅ 阅读:(16) ⋅ 点赞:(0) ⋅ 评论:(0)

操作系统

进程和线程

  • 进程:程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位,包含程序块、进程控制块(PCB)和数据块三部分组成

    • PCB是进程存在的唯一标志,包含进程标识符、状态、位置信息、控制信息、队列指针、优先级、现场保护区等
  • 程序:存在于计算机上的一个或多个可执行的文件,程序执行一次就会产生一个进程,没有程序就没有进程

  • 线程间可共享的内容:内存地址空间、代码、数据、文件等

  • 线程间不可共享的内容:程序计数器、寄存器、栈

进程的状态

  • 三态模型:就绪、运行、阻塞
  • 三态模型 + 挂起 = 五态模型:活跃就绪、活跃阻塞、静止就绪、运行、静止阻塞
  • 一般不存在CPU准备好,而非CPU没准备好的情况。所以可以理解为:CPU在调度时,如果非CPU资源未准备好,则CPU资源不予以分配

信号量与PV操作

  • 进程的同步与互斥

    • 间接制约:类似过独木桥,临界资源,临界区(访问临界资源的代码)。资源的限制。
    • 直接制约:速度有差异,在一定情况下等待。先后顺序的限制
  • 信号量:全局变量,与PV结合使用

  • PV操作

    • P操作:占用资源的过程,首先信号量-1,申请并占用资源,判断数值是否小于0,检查资源是否充足,小于0表示资源不足,则需要到阻塞队列排队等待,否则不需要等待直接处理即可;
    • V操作:释放资源的过程,首先信号量+1,判断是否小于等于0,如果小于等于0(信号量小于0时能表示排队的进程数),则需要在当前进程执行完成后,通知后继进程,唤醒阻塞队列中的等待进程进入就绪状态,如果无等待进程,则执行后续代码
    • PV操作必须成对存在,否则会形成死锁
      P——对前置资源的检查动作,加锁
      V——对后置资源的通知动作,释放锁
  •                        前趋图
    

(一种有向无环图表示进程间制约关系)

  • 前趋图转PV图:
    箭头流入的点对应一个P操作
    箭头流出的点对应一个V操作

死锁

  • 一个进程在等待一件不可能发生的事情,进程会发生死锁,如果一个或多个进程产生死锁,则会造成系统死锁

  • 四大条件

    • 互斥
    • 保持等待
    • 不剥夺
    • 环路等待
  • 死锁的避免

    • 有序资源分配法
    • 银行家算法
  • 死锁资源数计算 N ≥ ∑(mi - 1) + 1,其中,
    N:不发生死锁的最小资源数
    mi:每个进程正常运行所需资源数

存储管理

页式存储

  • 将程序与内存划分为同样大小的块,以页为单位将程序调入内存

  • 用户程序先访问页表,页表中存放页号和块号,程序根据页表找到对应内存的物理地址

  • 逻辑地址 = 页号 + 页内地址
    物理地址 = 页帧号 + 页内地址

  • 比如,一个4KB大小的页,表示成2进制,则有04095这么多的页内bit位,即02^12个,对一个给定的逻辑地址 10 1100 1101 1110,
    从右往左数,12位即为其页内地址,即 1100 1101 1110为其页内地址,10为其页号

  • 优点:利用率高,碎片小,分配及管理简单
    缺点:查页表增加了系统开销,可能产生抖动

  • 页面淘汰策略

    • 先选择状态位为 1 的页
      ——> 优先考虑访问位为0的页
      ——> 再考虑修改位为0的页

段式存储

  • 按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可能不一样
  • 逻辑段地址:(段号,段内偏移量)
    段地址合法性判断,段内偏移量不得超过段长,否则造成逻辑地址到物理地址转换时地址越界
  • 优点:多道程序共享内容,各段程序修改互不影响
    缺点:内存利用率低,内存碎片浪费大

段页式存储

  • 段式与页式的综合体,先分段再分页,1个程序有若干段,每个段中可以有若干页,每个页大小相同,但每个段大小不一。
  • 段号和页号限定最大值,不是固定值
  • 优点:空间浪费小,存储共享,存储保护,动态连接
    缺点:复杂性和开销增加,所需硬件及占用内存增加,执行速度下降

文件管理

索引文件结构

  • 直接索引–物理盘块号–去物理地址找到数据,访问 1 次
  • 一级间接索引–内容是直接索引,通过直接索引找到物理盘块,访问 2 次
  • 二级间接索引–内容是一级间接索引,再找直接索引,再找物理盘块,访问 3 次
  • 三级间接索引–内容是二级间接索引,…,访问 4 次
  • 此处会有地址空间计算题目

位示图

  • 比特位表示占用和空闲,1-占用,0-空闲
  • 按字分组

树形目录结构

  • 文件属性

    • 包含只读属性、存档属性、系统文件、隐藏文件等
  • 文件名的组成

    • 包含驱动器号、路径、主文件名、扩展名
  • 绝对路径和相对路径

    • 绝对路径:从盘符开始查找的路劲
    • 相对路径:从当前路径开始查找的路径

特殊的操作系统

嵌入式操作系统

  • 硬件平台+支撑硬件+操作系统+支撑软件+应用软件

  • 核心三要素:嵌入性、专用性、计算机系统

  • 特点:专用性强、实时性强、软硬件依赖性强、处理器专用、多种技术紧密结合、系统透明性、系统资源受限、可靠性高、功耗低、可裁剪、可配置、微型化

  • 开发设计:交叉开发环境
    宿主机->(以太网、仿真器、USB、串口等)->目标机

  • 基于硬件的低功耗设计

    • 板级电路选择,处理器选择,总线设计、驱动电路设计、分区分时供电技术
  • 基于软件的低功耗设计

    • 优化指令,算法优化,软硬件协同

实时操作系统

  • 调度算法

    • 优先级调度算法,预先分配优先级高低,按从高到底顺序调度执行
    • 抢占式调度算法,允许高优先级抢占执行
    • 时间轮转调度算法,给每个任务分配时间片,时间片结束后释放CPU资源给下一任务
    • 最晚截止期调度算法,按照每个任务最接近其截止期末端的时间进行调度
    • 最早截止期调度算法,按每个任务的截止期时间,选择最早到截止期头端的任务进行调度
    • 大多数实时操作系统的调度算法都是抢占式的

微内核操作系统

  • 将传统的操作系统的代码放置到更高等,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核(C/S架构)
  • 操作系统的内核服务:异常、中断、计时器、IO管理等