Skip to content

操作系统导论

TODO

一、操作系统知识树

  1. 操作系统概述

    • 定义:操作系统是管理计算机硬件与软件资源、为用户提供基础服务的软件系统。

    • 作用:资源管理、任务调度、用户接口、系统保护等。

    • 发展历程:从批处理到实时、多任务的进化。

      操作系统就像是计算机的大管家,它负责管理电脑里的硬件和软件,确保它们都能顺利工作。比如,当你在电脑上同时打开多个程序(像是浏览器、音乐播放器和文字处理软件),操作系统会协调它们的运行,确保它们不会互相干扰,像是在管理多个任务的员工。它还负责管理文件,比如你存储的文档或照片,让你能方便地找到和打开它们。操作系统还像一个守卫,保护电脑免受病毒和坏程序的侵害。最早的操作系统只能做一件事,比如一个任务就一个程序,而现代操作系统则可以同时做很多事情,像是 Windows、MacOS 或安卓手机的系统,它们都帮助我们高效地使用设备。

  2. 操作系统的核心功能

    • 进程管理
      • 进程与线程的概念

        进程:是正在执行的程序的实例,是系统进行资源分配和调度的基本单位。每个进程拥有自己的内存空间、系统资源以及一个或多个线程。

        线程:是进程中的执行单元,同一个进程内的多个线程共享进程的资源(如内存空间),但每个线程都有自己的执行路径。线程是 CPU 调度的基本单位。

      • 进程状态(新建、就绪、执行、等待、终止)

        新建(New):进程正在被创建,但尚未开始执行。

        就绪(Ready):进程已准备好执行,但由于 CPU 资源的限制,正在等待 CPU 的分配。

        执行(Running):进程正在执行中,获得了 CPU 的时间片。

        等待(Waiting):进程由于某些原因(如等待 I/O 操作)而无法继续执行,进入等待状态。

        终止(Terminated):进程执行完毕或被强制终止,进入终止状态。

      • 进程调度算法(先来先服务、时间片轮转、优先级调度等)
      • 进程间通信(管道、消息队列、共享内存、信号量)
      • 进程同步与互斥(信号量、互斥锁、条件变量)
    • 内存管理
      • 内存分配方式(连续分配、分页、分段)
      • 虚拟内存与物理内存
      • 页面置换算法(FIFO、LRU、OPT)
      • 内存共享与保护
    • 文件系统管理
      • 文件与目录管理(命名、存储、访问权限)
      • 文件系统类型(NTFS, EXT4, FAT32)
      • 文件存储结构(文件分配表、索引节点)
      • 文件操作(创建、读取、写入、删除)
    • 设备管理
      • 输入输出设备管理(磁盘、打印机、网络设备)
      • 设备驱动与中断管理
      • I/O 调度与缓存管理
      • 外设控制(DMA、PIO)
    • 用户管理与权限控制
      • 用户身份与认证机制(用户名、密码、双因素认证)
      • 权限管理与访问控制(ACM 模型、ACL)
      • 多用户与多任务管理
    • 网络功能与协议栈
      • 网络协议模型(OSI、TCP/IP)
      • 网络接口与设备管理
      • 网络层与传输层协议(IP、TCP、UDP)
      • 网络安全(防火墙、加密技术、VPN)
    • 安全与保护
      • 系统安全模型(Bell-LaPadula 模型、Biba 模型)
      • 数据保护与加密
      • 防病毒与入侵检测
      • 权限与访问控制(SELinux、AppArmor)
  3. 操作系统内核

    • 内核分类
      • 宏内核、微内核、混合内核
    • 内核设计与架构
      • 内核态与用户态
      • 内核模块化设计
    • 系统调用与内核接口
      • 系统调用机制(用户程序与内核的接口)
      • 内核调度与中断处理
      • 异常与信号处理
    • 调度与中断管理
      • 中断管理机制
      • 定时器与任务调度
  4. 操作系统的分类

    • 单核与多核操作系统
      • 单核操作系统的特点与限制
      • 多核操作系统的并行性与并发性
    • 实时操作系统(RTOS)
      • 定义与应用领域
      • 实时调度算法(优先级调度、EDF、RMS)
      • 嵌入式系统与 RTOS(FreeRTOS、VxWorks)
    • 分布式操作系统
      • 定义与应用(云计算、计算集群)
      • 分布式资源管理与调度
      • 分布式文件系统(NFS、HDFS)
    • 虚拟化操作系统
      • 虚拟化技术(硬件虚拟化、容器化)
      • 虚拟机管理程序(Hypervisor)
      • 虚拟操作系统的管理与调度(KVM、Docker)
  5. 系统开发与调试

    • 操作系统设计与实现
      • 内核开发(内存管理、进程调度)
      • 驱动开发(硬件抽象、I/O 控制)
    • 调试与性能优化
      • 性能分析工具(gdb、strace、valgrind)
      • 系统监控与瓶颈分析
    • 日志管理与问题排查
      • 日志文件管理(syslog、dmesg)
      • 错误处理与故障排查
  6. 前沿技术与趋势

    • 云操作系统与容器技术
      • 云计算基础与操作系统的适应性
      • 容器技术(Docker、Kubernetes)
    • 操作系统的安全性
      • 沙箱技术与应用
      • 安全增强技术(SELinux、AppArmor)
    • 智能操作系统
      • 物联网操作系统(Zephyr、TinyOS)
      • 边缘计算与操作系统

二、操作系统知识树总结

  • 主干:包括了操作系统的核心功能、内核设计、分类与管理(如进程、内存、文件系统、设备管理等)。
  • 分支:涉及具体的技术和子领域,包括实时操作系统、虚拟化操作系统、分布式操作系统等。
  • 拓展:结合了操作系统的开发、调试技巧以及前沿技术(如云计算、容器技术、智能操作系统等)。

三、重点内容

1. 调度算法

调度算法优点缺点适用场景
先来先服务 FCFS简单易懂,公平可能导致长进程阻塞短进程,平均等待时间长批处理系统、无实时性要求的环境
时间片轮转 RR公平性好,避免长进程阻塞短进程上下文切换开销大,时间片设置过短时效率低多任务操作系统、交互式应用,如桌面环境、H5 页面
优先级调度适合重要任务先执行可能导致低优先级任务饥饿实时系统、任务优先级有明确区分的环境
最短作业优先 SJF最小化平均等待时间预测执行时间困难,可能导致饥饿已知任务执行时间的场景,批处理任务
多级反馈队列结合了多种调度策略,灵活性强实现复杂,配置难度较大交互式系统,操作系统,多个任务需实时响应的环境

2. 进程通信方式

通信方式优点缺点适用场景
管道简单易用,适合父子进程间通信只支持单向通信,数据量较小时较有效父子进程间的数据传递,简单的数据流处理
消息队列支持异步通信,消息管理方便,持久性好需要额外的存储和管理资源,性能开销大分布式系统,后台任务调度,客户端-服务端通信
共享内存高效,速度快,适合大量数据共享易出错,需同步控制高性能的计算应用,如大数据处理、实时系统
信号量用于进程同步与互斥,避免数据冲突实现复杂,容易引发死锁资源管理,操作系统中的资源控制
套接字支持跨计算机通信,支持多种协议配置复杂,可能存在延迟网络通信,分布式系统,远程调用
文件映射高效,直接操作文件数据内存管理和同步控制较复杂大数据处理,文件共享
信号异步、实时的通信机制通信内容有限,适合简单通知系统事件通知,进程控制

3. 进程同步与互斥

类型目的常用机制适用场景
进程互斥防止多个进程/线程同时访问共享资源互斥锁、二进制信号量共享资源的独占访问,文件写入等
进程同步控制多个进程/线程的执行顺序信号量、条件变量、屏障、事件进程间协作、顺序执行任务,生产者消费者问题等
  • 互斥 解决的是“谁可以访问资源”的问题,而 同步 解决的是“什么时候访问资源”的问题。
  • 互斥通常是通过锁机制来实现的,而同步则通过信号量、条件变量等方式来协调进程间的执行顺序。

4. 内存分配方式与页面置换算法

类别名称描述优点缺点适用场景
内存分配方式连续分配将内存以连续块的形式分配给进程。实现简单,分配速度快容易产生内存碎片,扩展性较差适用于早期简单的操作系统环境
分页将内存分为固定大小的页,进程的虚拟地址空间分配为页,物理内存按页框分配。减少内存碎片,分配灵活需要维护页表,增加内存管理复杂性常见于现代操作系统
分段根据程序逻辑将内存划分成段(如代码段、数据段),每段独立分配。根据逻辑需求分配,便于资源管理产生外部碎片,内存管理复杂适用于多段逻辑需求较高的系统
类别算法描述优点缺点适用场景
页面置换算法FIFO最早进入内存的页面优先被置换出去。实现简单可能置换常用页面,降低性能简单系统的页面置换
LRU最近最少使用的页面优先置换出去。性能较好,反映页面使用频率需要维护历史记录,增加管理开销需要优化内存利用率的场景
OPT选择未来最晚使用的页面进行置换(理论最优)。最低缺页率(理想情况下)实现困难,实际中无法准确预测未来使用用于算法理论分析

5. 权限管理和访问控制模型

概念定义应用场景
权限管理操作系统根据用户身份授予不同权限,控制用户访问文件、进程和设备的能力。文件系统、进程调度、设备管理等
访问控制列表(ACL)权限管理方式,通过在资源上附加权限列表来指定用户/用户组权限(如读、写、执行)。文件系统(如 Linux),共享资源控制
模型定义适用场景
强制访问控制(MAC)系统强制指定资源的访问规则,用户无法更改权限设置。高安全性环境,如军事、政府机构
自主访问控制(DAC)资源所有者可自主分配权限(如文件所有者设置文件访问权限)。文件管理、用户对资源控制较多的环境
基于角色的访问控制(RBAC)权限与角色关联,通过角色(如管理员、普通用户)分配权限。企业和团队协作场景,如企业管理系统

6. x