2022-08-26 09:44阅读: 790评论: 0推荐: 0

操作系统

1、操作系统引论

操作系统发展与分类

批处理

  • 主要缺点:缺少交互性

多道程序设计技术

  • 提高系统利用率和吞吐量

分时系统

  • 交互功能

实时系统

  • 及时响应

操作系统接口

  • 命令接口
    • 图形接口
    • 键盘、鼠标命令等
    • 命令行解释程序、shell文件
  • 程序接口
    • 提供系统调用
    • 给运行应用程序访问操作系统资源

系统调用

  • 应用程序同系统之间的接口
  • 由内核提供,运行在核心态
  • 用系统调用进入核心态,Linux对硬件操作只能在核心态,通过写驱动程序来控制,在用户态操作硬件会造成core dump
    • read()、write()、open()、fopen()
    • 主意区别一般函数(运行在用户态):sin()、cos()

内核态

  • 又称为管态
  • 此时处理器处于特权级别最高的(0级)内核代码中执行
  • 执行的代码会使用当前进程的内核栈
  • 访管指令与访管中断
    • 用户在用户态下访问管态(内核态)的指令叫访管指令,
    • 产生的中断叫做:访管中断,
    • 可以将操作系统转换为核心态

用户态

  • 又称目态

  • 此时处理器处于特权级别最低的(3级)用户代码中执行

  • 执行用户程序时引起的中断属于CPU中断

  • 执行的指令

    • trap指令(负责由用户态转换到内核态)
    • 跳转指令
    • 压栈指令

中断处理

  • 系统发生中断转入中断处理程序,处理完之后返回到发生中断时的指令处继续执行

  • 处理时CPU有可能切换状态(如果是核心态发生中断,则始终为核心态,无需切换)

  • 因此中断返回需要还原现场(当时的程序状态,包括处理器信息)——>利用程序状态字寄存器

  • 程序状态字寄存器PSW(Program Status Word):

    • 用于记录当前处理器的状态和控制指令的执行顺序,
    • 并且保留指示与运行程序有关的各种信息
    • 主要作用是实现程序状态的保护和恢复
  • 故中断处理时需要将PSW压栈保存

  • 相对的,子程序调用也需压栈保护现场,主要更新寄存器、保存局部参数信息,并不需要将PSW压栈

  • 外部中断处理,PSW由中断隐指令自动保存

  • 另外通用寄存器的内容由操作系统保存

  • 必须在核心态下执行
  • 操作系统程序:进入了中断处理并在核心态运行的程序
    • 输入/输出指令
    • 内核态和用户态切换
    • 缺页处理
    • 时钟中断
    • 进程调度、进程切换

特权指令

  • 必须在核心态下执行,也可以说成只允许管态下运行的指令
  • 在目态下对特权指令的使用会实现从目态到管态的改变,即产生访管中断
    • I/O设备
    • 访问程序状态的指令,如对程序状态字(PSW)的指令
    • 存取特殊寄存器指令,如存取中断寄存器、时钟寄存器等指令
    • 清内存、
    • 置时钟、
    • 分配系统资源、
    • 修改虚存的段表或页表、
    • 修改用户的访问权限

异常

  • 也称为内中断、例外或陷入(trap)
    • 地址非法
    • 校验错
    • 页面失效
    • 非法指令
    • 用户程序执行特权指令自行中断(INT)
    • 除数为零
  • 内中断不能被屏蔽
  • 源自CPU执行指令内部的事件
    • 程序的非法操作码、
    • 地址越界、
    • 算术溢出、
    • 虚存系统的缺页
    • 以及专门的陷入指令引起的事件。

微内核结构

  • 不能提高操作系统的运行效率

开机启动

  • 首先启动存于主板上ROM中的BIOS程序
  • 其次由BIOS调用硬盘中的操作系统
  • 将操作系统的程序加载到内存的系统区RAM

进程

状态

image-20200926085531711

  • 响应比

    响应比 = ( 等待时间 + 执行时间 ) / 执行时间

  • 周转时间

    作业周转时间 = 作业完成时间 - 作业提交时间

  • 带权周转时间

    image-20201005091927774

文件

读取一个文件

  • open 打开文件
  • 参数
    • 文件的路径名
    • 文件名
  • read 读取文件
  • 参数
    • 文件描述符 fd (由open操作返回的文件描述符)
    • buf 缓冲区首址
    • 传送的字节数 n

文件目录项——FCB

包含

  • 文件基本信息
  • 存取控制信息
  • 使用信息

硬链接

符号链接

逻辑结构

无结构文件


流式文件:文件内部数据是一系列二进制流或字符流

  • txt文件

有结构文件


记录式文件 :一组相似记录,每条记录包含若干数据项

  • 定长记录
  • 可变长记录
1. 顺序文件

  • 逻辑上:文件记录顺序排列
  • 物理上:顺序存储或链式存储

image-20201014111339956

2. 索引文件

索引表 :是定长记录的顺序文件

假定每个记录前用一个字节指明该记录长度,则有

  • 对于定长记录文件

    • 查找第 i 个记录

    • 第一个记录的地址:Ai=i×L

  • 对于可变长记录文件

    • 查找第 i 个记录
    • 必须顺序查找前 i - 1个记录,从而获得相应记录的长度
    • 第 i 个记录的首址:Ai=Σi=0i1Li+i
3. 索引顺序文件

  • 顺序 + 索引
  • 将顺序文件分组
  • 为顺序文件建立一张索引表
  • 索引表中为每组中第一个记录建立一个索引项
  • 索引项包含该记录的关键字值和指向该记录的指针
  • 对于含有N个记录的顺序文件

    • 查找某关键字值的记录时
    • 平均查找N/2次
  • 对于索引顺序文件

    • N个记录分为N
    • 索引表中N个表项
    • 每组N个记录
    • 查找时
      1. 先顺序查找索引表,N/2
      2. 再在对应组中顺序查找,N/2
      3. 总共查找:N/2 + N/2 = N
  • 多级索引组织方式计算题

物理结构(文件分配方式)


连续分配


  • 连续分配即每个文件在磁盘上占有一组连续的块
  • 逻辑块号
  • 物理块号 = 起始块号 + 逻辑块号
  • 优点
    1. 支持顺序访问和直接访问(随机访问)
    2. 连续分配的文件在顺序读/写时速度最快
  • 缺点
    1. 不方便拓展

    2. 存储利用率低

    3. 会产生磁盘碎片

链接分配


离散分配方式

  • 隐式链接

    • 只支持顺序访问,不支持直接访问(随机访问)
    • 方便拓展、外存利用率高、没有碎片问题
  • 显式链接

    显式放在表中FAT, File Allocation Table

    • 逻辑块号转换成物理块号过程不需要读磁盘操作,访问效率高
    • 支持顺序访问和直接访问(随机访问)
    • 但文件分配表占用一定存储空间

索引分配


  • 离散分配
  • 为每个文件建立一张索引表
  • 索引表记录文件逻辑块对应的物理块
  • 索引块:索引表存放的磁盘块
  • 数据块:文件数据存放的磁盘块
  • 支持随机访问

  • 容易实现拓展

  • 但索引表占用存储空间

  • 文件太大,索引表太多解决方案:

    1. 链接方案

    2. 多层索引

      k层索引,顶级索引表未调入内存,访问一个数据块需要k+1次读磁盘操作

    3. 混合索引

      直接地址索引+一级间接索引+两级间接索引

    image-20201015133604657

文件的磁盘管理


存储空间管理

1. 空闲表法
  • 适用于连续分配方式

  • 分配连续的存储空间

  • 可采用首次适应、最佳适应、最坏适应等算法

  • 回收时需要注意表项的合并问题

第一个空闲盘块号 空闲盘块数
0 2
4 6
12 1
2. 空闲链表法

image-20201015094839464

  • 空闲盘块链

    • 系统保存链头链尾指针
    • 适用于离散分配的物理结构

    image-20201015095126023

  • 空闲盘区链

    • 系统保存链头链尾指针
    • 离散分配、连续分配都适用
    • 为一个文件分配多个盘块时效率更高

    image-20201015095255927

3. 位视图法
  • 要注意题目条件:盘块号、字号、位号到底是从0开始还是从1开始

  • 当盘块号、字号、位号从0开始, n表示字长的时候有:

    盘块号与字号、位号相互转换的公式

    • (字号,位号) = ( i , j ) 的二进制位对应的 盘块号 b = ni + j

    • b 号盘块对应的字号 i = b / n

    • b 号盘块对应的位号 j = b % n

image-20201015100304971

image-20201015113306517

image-20201015113342309

4. 成组链接法
  • 文件目录区一个超级块
  • UNIX系统中采用的是成组链接法
  • 大型文件系统

磁盘

image-20201016213718865

默认内容

磁盘容量单位

  • 1B = 8bit (1 byte =8 bits)

  • 1MB = 210KB

  • 1GB = 220KB

  • 1GB = 230 B

    1GB=1024MB = 210MB
    1MB=1024KB = 210KB
    1KB=1024Byte = 210B

    注:Byte就是B也就是字节
    KB是千字节
    MB是兆
    GB是吉字节 即千兆
    TB是太字节

image-20201015115848569

本文作者:Hecto

本文链接:https://www.cnblogs.com/tow1/p/14232059.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Hecto  阅读(790)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑