操作系统

目的:

  • 管理软硬件资源
  • 组织程序运行,提升CPU性能
  • 提供系统调用接口

四大功能:

  • 进程管理
  • 内存管理
  • 设备管理
  • 文件系统

特征:

  • 并发性
  • 共享性
  • 虚拟性
  • 随机性

典型操作系统:Windows、Linux、Android、macOS、IOS


进程管理

执行方式:

  • 顺序执行
  • 并发执行

进程:操作系统资源分配、保护和调度的基本单位。

线程:处理器调度和分派的基本单位。

进程与线程的区别和联系:

  1. 线程是进程的组成部分,进程通常由多个线程组成
  2. 进程是拥有资源的基本单位,线程是调度和分配的基本单位

三态模型:

  • 就绪状态:进程在内存中已经具备执行的条件,等待分配CPU
  • 运行状态:进程占用CPU并正在运行
  • 阻塞状态:等待状态

PCB:进程控制块,操作系统最重要的数据结构之一,由三部分组成:

  • 进程标识信息

    • 内部标识符:操作系统管理进程时使用
    • 外部标识符:用户访问进程时使用
  • 现场信息–执行进程时CPU的即时状态

  • 控制信息

进程控制方式:核心态(管态)$\longleftrightarrow$ 用户态(目态)

互斥与同步:

  • 死锁:进程陷入无限等待状态,永远无法被执行
  • 饥饿:进程长期不被执行

临界资源:某些资源在同一时刻只允许一个进程使用。

同步机制:

  • 信号量(P、V原语操作)
  • 管程(临界资源统一管理)
  • 消息传递

经典同步问题:

  1. 生产者-消费者问题
  2. 读者-写者问题
  3. 哲学家就餐问题
  4. 睡眠理发师问题

进程通信:

  • 消息传递
  • 共享内存
  • 管道

进程调度算法:

  • 先来先服务(FCFS)
  • 短作业优先(SJF)
  • 最短剩余时间优先(SRTF,抢占式)
  • 高响应比优先(HRRF)
  • 优先权(HPF,抢占式)
  • 时间片轮转(RR,抢占式)
  • 多级反馈队列(MFQ)

死锁的四个必要条件:

  1. 互斥条件:资源的使用是互斥的
  2. 请求与保持条件:进程请求资源时若无法得到,已得到的资源也不会释放
  3. 不剥夺条件:只能由进程自身主动释放资源,系统或其他进程不能剥夺
  4. 环路等待条件:若干进程形成环路,每个进程都在等待资源,形成永远等待

死锁的避免:银行家算法

死锁的检测与解除:

  • 重启
  • 撤销(撤销进程)
  • 剥夺(再分配资源)
  • 回滚(回退)

内存管理

内存分为两块区域:

  • 系统区–操作系统
  • 用户区–内存管理

功能:

  1. 内存的分配和回收
  2. 实现地址转换
  3. 内存的共享和保护
  4. 内存扩充

地址转换:

  • 静态重定位

    • 实现简单,无需硬件支持
    • 必须为程序分配一段连续的存储空间,程序执行过程中不能在内存中移动
  • 动态重定位

    • 内存使用更灵活,容易实现内存的动态扩充和共享
    • 需要硬件支持,内存管理更加复杂

分区内存管理(连续):

  • 单一连续内存管理(单用户单任务)
  • 固定分区内存管理(多道程序并发设计)
  • 可变分区内存管理

页式存储管理(非连续):

  • 页 $\longleftrightarrow$ 物理块

  • 页表:存储页号与物理块号的对应关系

  • 快表:高速缓冲处理器

段式存储管理(非连续)

分段和分页的比较:

    • 信息的逻辑单位,由源程序的逻辑结构决定,用户可见
    • 段长可由用户规定
    • 段起始地址可以为任何地址
    • 源程序经连接装配后仍保持二维结构
    • 信息的物理单位,与源程序的逻辑结构无关,用户不可见
    • 页长由系统确定
    • 页面只能以页大小的整数倍地址开始
    • 源程序经连接装配后为一维结构

虚拟存储技术:外存作为内存的扩充。


设备管理

功能:

  1. 设备的分配与回收
  2. 缓冲区管理
  3. 设备控制和中断处理
  4. 实现虚拟设备

控制方法:

  • 程序循环查询
  • 中断驱动
  • 直接内存(DMA)
  • 通道方式(I/O通道)

缓冲技术:

  • 改善中央处理器与外部设备之间速度不匹配的矛盾

  • 减少I/O对CPU的中断次数,放宽对CPU中断响应时间的要求

  • 协调逻辑记录大小与物理记录大小不一致的问题


文件系统

文件分类:

  • 逻辑结构

    • 流式文件
    • 记录式文件
  • 用途

    • 系统文件
    • 库文件
    • 用户文件
  • 性质

    • 普通文件
    • 目录文件
    • 特殊文件

物理结构:

  • 连续文件(信息存放在相邻物理块中)

  • 链接文件

    • 隐式链接
    • 显示链接(文件分配表FAT)
  • 索引文件

  • 直接文件(哈希函数)

存取方式:

  • 顺序存取

  • 直接存取

  • 按键存取

磁盘空闲空间的管理:

  • 空闲区表法
  • 空闲块链表法
  • 位示图法

目录文件:

  • 文件控制块(FCB):文件属性信息和文件内容信息

  • FCB 的有序集合称为文件目录

  • 组织方式

    • FCB 线性表
    • 索引节点(常用)
    • 哈希表

文件共享:

  • 静态共享

    • 基于索引节点的链接静态共享
      • 实现简单、访问速度快
      • 只能用于单个文件系统,不能用于目录共享
    • 符号链接静态共享(软链接)
      • 能用于链接计算机网络中不同机器的文件
      • 扫描包含文件的路径开销大,需要额外空间存储路径
  • 动态共享(位移指针)