CC 咖啡猫的工作空间 Coding Space
  1. 操作系统的功能:进程和线程的管理、存储管理(内存与外存)、文件管理、设备管理、网络管理、安全管理
  2. 用户态与内核态:
  • 用户态:用户态运行的进程可以直接读取用户程序的数据,拥有较低的权限
  • 内核态:内核态运行的进程几乎可以访问计算机的任何资源包括系统的内存空间、设备、驱动程序等,不受限制,拥有非常高的权限。
  • 用户态切换到内核态的三种方式:1. 系统调用 2. 中断 3. 异常
  • 系统调用的过程
  1. 进程和线程
  • 线程间的同步方式:互斥锁、读写锁、信号量、屏障、事件
  • 进程的几种状态:创建、就绪、运行、阻塞、结束
  • 进程间的通讯方式:管道、信号、消息队列、共享内存、信号量、套接字
  • 进程的调度算法:
    • 抢占式调度算法:时间片轮转调度算法、优先级调度调度算法
    • 非抢占式调度算法:短时作业优先调度算法、先到先服务调度算法
    • 多级反馈队列调度算法
  1. 死锁
  • 死锁:多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于进程/线程被无限期地阻塞,因此程序不可能正常终止
  • 死锁的产生条件:1. 互斥条件、2. 占有并等待、3. 非抢占、4. 循环等待条件
  • 死锁的解决方法:1. 死锁预防、2. 避免死锁发生、3. 死锁检测 4. 解除死锁
  • 死锁的检测:*
  1. 内存管理(减少内存碎片)
  • 内存碎片:内存碎片是由内存的申请和释放产生的,通常分为内存内部碎片和内存外部碎片两种,内存碎片会导致内存利用率下降。
  • 内存管理方式
    • 连续内存管理:块式管理
    • 非连续内存管理:段式管理、页式管理、段页式管理内存管理
  1. 虚拟内存
  • 虚拟内存:虚拟内存(Virtual Memory) 是计算机系统内存管理非常重要的一个技术,本质上来说它只是逻辑存在的,是一个假想出来的内存空间,主要作用是作为进程访问主存(物理内存)的桥梁并简化内存管理
  • 虚拟地址与物理地址的映射:分段机制、分页机制、段页机制
  • 分段机制:
    1. 把虚拟地址空间划分为若干段,通过段表映射虚拟地址和物理地址
    2. 虚拟地址:由段号段内偏移量组成,翻译过程略
    3. 分段机制容易出现内存外部碎片
  • 分页机制
    1. 把主存(物理内存)分为连续等长的物理页,应用程序的虚拟地址空间划也被分为连续等长的虚拟页,分页管理通过 页表(Page Table) 映射虚拟地址和物理地址
    2. 虚拟地址:由页号页内偏移量组成,翻译过程略
    3. 单级页表和多级页表
    4. TLB:为了提高虚拟地址到物理地址的转换速度,操作系统在页表方案基础之上引入了转址旁路缓存(TTL,也被称为快表)
    5. 页缺失:常见的页缺失分为硬性页缺失、软性页缺失。当发生硬性页缺失时,如果物理内存中没有空闲的物理页面可用的话。操作系统就必须将物理内存中的一个物理页淘汰出去,这样就可以腾出空间来加载新的页面了
    6. 页面置换算法(选择淘汰的物理页):最佳页面置换算法(OPT)、先进先出页面置换算法(FIFO)、最近最久未使用页面置换算法(LRU)、最少使用页面置换算法(LFU)、 时钟页面置换算法(Clock)
  • 段页机制
    1. 结合了段式管理和页式管理的一种内存管理机制。程序视角中,内存被划分为多个逻辑段,每个逻辑段进一步被划分为固定大小的页。
    2. 在段页式机制下,地址翻译的过程分为两个步骤:1. 段地址映射(虚拟地址 -> 线性地址) 2. 页式地址映射(线性地址 -> 物理地址)

7.文件系统

  • 文件存储工作内容:存储管理、文件管理、目录管理、文件访问控制
  • 硬链接和软链接,硬链接为什么不能跨文件系统?
  • 磁盘调度算法:
    1. 磁盘调度算法是操作系统中对磁盘访问请求进行排序和调度的算法,其目的是提高磁盘的访问效率
    2. 常见的磁盘调度算法:先来先服务算法、最短寻道时间优先算法、扫描算法、循环扫描算法、边扫边描边观察算法、均衡循环扫描算法