操作系统复习(二)

📅 2026/7/2 3:35:38
操作系统复习(二)
操作系统复习二多道程序设计多道程序设计是把多个程序放到内存中它们交替运行的技术。宏观并行微观串行内存中有程序A需要大量计算和程序B需要频繁读取磁盘。当B因等待磁盘I/O而暂停时CPU不会空等而是立即切换去执行A等B的I/O完成后再回来执行B。主要优点资源利用率高系统吞吐量大。需要的硬件支持中断系统、MMU、时钟、IO处理器或DMA。要实现多道程序设计仅靠软件逻辑是不够的必须依赖于底层硬件的强力支撑。具体需要以下几大硬件机构中断机构必不可少这是实现“交替运行”的物理基础。当运行中的程序发起I/O请求并完成时或者时间片用完时硬件中断机构会立即捕获这些事件触发中断信号让CPU暂停当前程序切换到操作系统管态 去调度下一个程序运行。如果没有中断CPU就无法知道I/O何时完成也就无法实现“切换”。存储保护机构如MMU、基址/限长寄存器内存中同时驻留多道程序必须防止它们互相干扰或越界访问。硬件提供基址寄存器和限长寄存器或现代CPU的MMU内存管理单元用于比较程序发出的内存地址是否属于它自己的合法区域。一旦程序试图访问其他程序的内存空间硬件会立即触发“越界中断”由操作系统强制终止该程序。通道I/O处理器或DMA直接存储器访问控制器这是实现CPU与I/O并行的关键硬件。通道是一种专门负责输入/输出控制的独立处理器。当CPU向通道发出I/O指令后通道全权负责数据在内存和外设之间的传输CPU则转身去执行另一道程序。传输完成后通道通过中断通知CPU。时钟定时器视调度算法而定如果系统采用“时间片轮转”调度我们之前聊过则需要一个可编程的硬件时钟。它每隔固定时间如10ms产生一次时钟中断强制当前程序让出CPU确保所有程序都能得到公平的响应防止一道程序长期霸占CPU。简述信号量在记录型信号量PV操作中信号量的值 S 具有明确的物理意义S 0表示当前可用的临界资源数量。S 0表示临界资源正在被某个进程使用且没有其他进程在等待。S 0其绝对值表示当前等待该临界资源的进程数量。进程状态相关进程被调度程序选中进程从就绪态转换为运行态。进程的时间片到期进程从运行态转换为就绪态。进程被更高优先级的进程抢占进程从运行态转换为就绪态。等待某一事件这是运行态 → 阻塞态等待态 的转换条件例如请求I/O操作等待的事件发生这是阻塞态等待态 → 就绪态 的转换条件例如I/O完成管程管程Monitor 是一种高级的进程同步机制。可以把它理解为一个专门用来管理共享资源的“专属管家”——它把共享资源和对它的所有操作都封装在一个模块里并强行规定同一时刻最多只有一个进程能进入管程内部执行。之前说的信号量PV操作虽然强大但缺点很明显P和V操作分散在代码各处一旦程序员写错顺序或忘记V操作就会导致死锁。管程的诞生就是为了解决信号量“使用时容易出错”这个痛点把同步的复杂性交给编译器去处理。管程的组成一个标准的管程包含以下四个部分共享数据结构需要被多个进程保护的资源如缓冲区队列、共享变量。操作函数过程用于操作共享数据的入口函数。初始化代码负责在系统启动时初始化共享数据。条件变量用于实现复杂的等待/唤醒逻辑如缓冲区满时暂停生产者缓冲区空时暂停消费者。并发和并行区别并发Concurrency指的是逻辑上的“同时”。系统有能力处理多个任务但不一定在物理上同时执行。在单核CPU上通过时间片轮转我们之前聊过让多个进程交替推进这就是并发的典型实现。它关注的是结构如何设计程序来处理多个任务。并行Parallelism指的是物理上的“同时”。系统在同一时刻真正地在执行多个任务。这必须依赖多核CPU或多处理器的支持每个核心在同一时刻独立运行一个任务。它关注的是执行如何让任务跑得更快。