计算机操作系统期末复习资料

计算机操作系统期末复习资料

(该资料不包含全部课程内容,只包含必考内容)

  1. 操作系统发展
  2. 操作系统的主要功能
  3. 操作系统的类型
  4. 操作系统的核心组件
  5. 操作系统的调度与管理
  6. 现代操作系统的趋势

. 操作系统概述

操作系统(Operating System, OS) 是一种系统软件,它管理计算机硬件和软件资源,并为用户和应用程序提供服务。它是计算机系统中最基本的程序,起到管理和协调硬件、软件以及用户之间交互的作用。操作系统的主要目标是提高计算机系统的效率、可靠性和用户体验。

. 操作系统的主要功能

操作系统的功能可以分为以下几类:

进程管理:负责创建、调度和终止进程。操作系统通过进程调度算法来优化CPU使用率,确保多个进程可以并发执行。

内存管理:负责分配和回收内存,包括主内存和虚拟内存。操作系统需要跟踪每个内存位置的使用情况,并提供机制来保护进程间的内存空间。

文件系统管理:管理文件的存储、检索、组织和保护。操作系统提供了文件创建、删除、读取、写入等操作的接口。

设备管理:控制和管理计算机的硬件设备,如硬盘、打印机、显示器等。设备管理包括设备驱动程序的加载和管理。

用户界面:提供用户与计算机系统交互的接口。可以是命令行界面(CLI)或图形用户界面(GUI)。

安全与权限管理:保护系统免受未授权访问,管理用户权限,确保数据的安全性和完整性。

. 操作系统的类型

操作系统根据不同的使用场景和需求可以分为几种类型:

1. 单道批处理操作系统

概念

单道批处理操作系统(Single Programming System)是一种传统的操作系统模式,在这种模式下,系统一次只执行一个作业(程序)。所有作业被排成批次,批次中的作业按顺序依次处理。

工作原理
  • 作业调度:作业以批次的形式提交到操作系统中,操作系统按照作业到达的顺序进行处理。
  • 资源分配:系统在作业执行时独占所有资源,包括CPU、内存和I/O设备。
  • 作业完成:一个作业完成后,系统将控制权转移到下一个作业,直到批次中的所有作业都被处理完。
优缺点

优点:

  • 实现简单:设计和实现较为简单,因为系统只需管理一个作业的执行,不需要复杂的资源调度。
  • 资源管理:在作业执行期间,所有资源都由该作业独占,避免了资源竞争问题。

缺点:

  • 资源利用率低:在一个作业执行期间,如果该作业不需要使用某些资源(如I/O设备),这些资源就会闲置,导致系统资源利用率低。
  • 作业等待时间长:作业必须按照顺序执行,后续作业需要等待前一个作业完成,导致作业的响应时间较长。
  • 无并发处理:无法同时处理多个作业,缺乏并发性,导致整体效率不高。
应用场景
  • 早期计算机系统,适用于计算任务较为简单的环境。

2. 多道批处理操作系统不提供人机交互能力)

概念

多道批处理操作系统(Multiprogramming System)是一种更高级的批处理系统,它允许系统在内存中同时存在多个作业,并通过调度算法在这些作业之间切换,从而提高资源利用率和系统效率。

工作原理
  • 作业调度:系统能够在内存中同时保持多个作业,作业的执行按照调度算法进行切换。
  • 资源分配:资源在多个作业之间分配,操作系统需要管理多个作业对资源的竞争和访问。
  • 作业切换:系统通过时间片轮转、优先级调度等算法,在不同作业之间进行切换,提高系统的并发性和吞吐量。
优缺点

优点:

  • 资源利用率高:系统能够在多个作业之间分配资源,减少了资源闲置现象,提高了总体资源利用率。
  • 作业等待时间短:由于多个作业并发处理,作业的平均等待时间和响应时间较短。
  • 提高系统吞吐量:能够同时处理多个作业,提高了系统的整体吞吐量和效率。

缺点:

  • 实现复杂:需要复杂的调度算法和内存管理机制,增加了系统的实现和维护难度。
  • 资源竞争:多个作业同时竞争有限的系统资源,可能导致资源争用和冲突,需要有效的同步和管理机制。
  • 上下文切换开销:频繁的作业切换可能导致上下文切换开销,影响系统性能。
应用场景
  • 现代计算机系统和大多数服务器环境,适用于需要处理大量作业和高效资源管理的场景。

单道与多道批处理操作系统的区别

作业处理方式

    • 单道批处理:一次只处理一个作业,作业依次执行。
    • 多道批处理:同时处理多个作业,通过调度算法进行作业切换。

资源利用率

    • 单道批处理:资源利用率低,可能存在资源闲置现象。
    • 多道批处理:资源利用率高,多个作业之间共享资源,减少了资源闲置。

响应时间

    • 单道批处理:作业的响应时间较长,需要等待前一个作业完成。
    • 多道批处理:作业的响应时间较短,多个作业并发处理,提高了响应速度。

实现复杂性

    • 单道批处理:实现相对简单,管理和调度较为直接。
    • 多道批处理:实现复杂,需要处理作业调度、资源管理和同步问题。

适用环境

    • 单道批处理:适用于计算任务简单、资源需求较少的早期计算环境。
    • 多道批处理:适用于需要高效资源管理和多任务处理的现代计算环境。

3. 实时系统能优先处理紧急事务)

概念

实时系统(Real-Time System)是一种对时间响应有严格要求的操作系统,要求系统能够在严格的时间限制内完成特定任务。实时系统的主要目标是确保系统能够在规定的时间内响应事件,并完成任务。

特征:多路性,及时性,独立性,交互性

类型
  • 硬实时系统(Hard Real-Time System):必须在严格的时间限制内完成任务,否则系统可能会发生严重故障。应用包括航空航天、工业控制、医疗设备等。
  • 软实时系统(Soft Real-Time System):任务必须在规定时间内完成,但偶尔延迟是可以接受的。应用包括视频播放、在线游戏等。
工作原理
  • 调度策略:采用优先级调度算法,确保高优先级任务能够及时得到处理。常见的调度算法包括优先级调度、率先到达(Earliest Deadline First, EDF)等。
  • 响应时间:系统必须确保任务在规定的时间内完成,响应时间必须可预测。
  • 资源管理:必须精确管理资源分配,避免资源竞争和延迟,常用机制包括实时调度、资源锁和同步。
优缺点

优点:

  • 高确定性:能够在规定时间内完成任务,满足实时要求。
  • 系统可靠性高:适合处理对时间要求严格的任务,能在关键任务中提供稳定的表现。
  • 适应性强:能在复杂的环境中实时响应外部事件。

缺点:

  • 实现复杂:开发和维护实时系统需要考虑多方面的实时性问题,增加了系统复杂性。
  • 资源限制:对资源的分配和调度要求非常严格,可能需要牺牲系统的总体吞吐量。
  • 调试困难:实时系统的调试和测试可能比较复杂,尤其是在多任务和并发环境下。
应用场景
  • 航空航天控制系统、工业自动化、医疗设备、实时视频处理、汽车电子控制等。

4. 分时系统不可以插队,提供人机交互但不能优先处理紧急事务)

概念

分时系统(Time-Sharing System)是一种允许多个用户同时共享计算机资源的操作系统。它通过快速切换任务(通常是以时间片的方式)来实现多用户的交互式操作,从而使每个用户都能获得较好的响应时间。

工作原理
  • 时间片:系统将CPU时间分成固定大小的时间片,并按顺序分配给各个任务。每个任务在其时间片内执行,时间片用完后,系统切换到下一个任务。
  • 调度策略:采用轮转调度(Round Robin)等算法,保证每个用户和任务能够公平地获得系统资源。
  • 用户交互:支持多个用户通过终端或图形界面与系统进行交互,用户可以同时进行多个操作。
优缺点

优点:

  • 交互性强:提供了良好的用户交互体验,适合于需要实时响应用户输入的应用。
  • 资源共享:允许多个用户共享系统资源,提高了资源利用率。
  • 公平性:通过时间片轮转等机制,确保系统资源公平分配给各个用户。

缺点:

  • 响应时间不确定:由于任务切换和时间片的存在,响应时间可能会受到影响,尤其在系统负载较高时。
  • 上下文切换开销:频繁的上下文切换可能会带来性能开销,影响系统效率。
  • 资源竞争:多个用户同时使用系统资源,可能导致资源争用和性能下降。
应用场景
  • 多用户计算环境,如大学计算机实验室、企业办公环境、互联网服务器等。

3. 实时系统与分时系统的区别

目标和设计重点

    • 实时系统:强调在严格的时间限制内完成任务,关注任务的响应时间和时效性。
    • 分时系统:强调多个用户的交互性和资源共享,关注系统资源的公平分配和响应速度。

任务处理方式

    • 实时系统:任务的处理时间必须可预测,通常使用优先级调度算法确保高优先级任务及时处理。
    • 分时系统:通过时间片轮转等机制在多个任务之间快速切换,实现多个用户的公平访问。

资源管理

    • 实时系统:需要精确控制和分配资源,避免任务延迟,确保实时性能。
    • 分时系统:通过轮转和调度算法来共享资源,可能会出现资源争用和上下文切换开销。

系统复杂性

    • 实时系统:实现复杂,需要解决实时性问题,调试困难。
    • 分时系统:相对简单,注重用户交互和资源分配,但可能存在性能开销。

  • 操作系统四个基本特征

操作系统的基本特征中,并发、共享、虚拟和异步是重要的概念,它们共同支持了操作系统的高效管理和用户体验。下面是对这四个基本特征的简单介绍:

1. 并发

定义

  • 并发指的是操作系统能够同时处理多个任务或进程,使它们看起来是同时进行的,尽管在单处理器系统中,这些任务实际上是轮流执行的。

作用

  • 提高了系统的利用率和响应能力,使得多个进程或任务能够并行处理,提高了系统的效率。
  • 实现了任务的多样性,允许用户同时运行多个程序。

2. 共享

定义

  • 共享指的是多个进程或用户可以同时使用系统资源,如内存、CPU、文件和设备等。

作用

  • 资源共享能够提高系统的利用率和效率,避免资源的重复配置和浪费。
  • 支持多用户环境下的协作和信息共享。

3. 虚拟

定义

  • 虚拟指的是操作系统通过虚拟化技术提供抽象的资源视图,使得每个进程或用户感觉自己拥有独立的、连续的资源。

作用

  • 允许多个进程或用户共享物理资源而互不干扰,提供虚拟内存、虚拟文件系统等抽象层。
  • 提高了系统的灵活性和安全性,使得用户和程序可以在虚拟资源的基础上进行操作,而不需要直接管理实际的物理资源。

4. 异步

定义

  • 异步指的是操作系统和程序可以在不需要等待某个操作完成的情况下继续执行其他操作,即操作不依赖于其他操作的完成。

作用

  • 提高了系统的响应能力和吞吐量,使得程序能够在等待某些操作(如I/O操作)完成时继续执行其他任务。
  • 支持异步事件驱动编程模式,提高了用户交互体验和系统效率。

总结

  • 并发:支持同时处理多个任务或进程,提高系统利用率和响应能力。
  • 共享:允许多个用户或进程共享系统资源,提高资源利用效率。
  • 虚拟:通过虚拟化技术提供资源的抽象视图,提高灵活性和安全性。
  • 异步:允许操作在不等待其他操作完成的情况下进行,提高响应能力和系统吞吐量。

  • 操作系统的调度与管理

什么是进程?

  1. 进程是系统进行资源分配和调度的基本单位
  2. 进程作为程序独立运行的载体保障程序正常执行
  3. 进程的存在使操作系统资源的利用率大幅提高

进程特点:因创建而产生,因调度而执行,因撤销而消亡

进程特征:

  1. 程序段
  2. 数据段
  3. PCB(进程存在的唯一标识)

进程3种基本状态

1. 就绪态(Ready)

定义

  • 进程已经准备好执行,但等待操作系统分配CPU资源。

特点

  • 处于就绪态的进程会在就绪队列中等待被调度。

转换

  • 就绪 → 执行:当操作系统调度器选择一个就绪态进程并分配CPU时,进程从就绪态转换为执行态。
  • 就绪 → 阻塞:如果进程在等待某些资源或事件(如I/O操作),它可能会转到阻塞态。

2. 执行态(Running)

定义

  • 进程正在CPU上执行指令。

特点

  • 处于执行态的进程正在进行计算或操作,使用CPU资源。

转换

  • 执行 → 就绪:如果时间片用完或需要中断,进程会转回就绪态,等待下一次CPU分配。
  • 执行 → 阻塞:如果进程需要等待I/O操作或其他事件,它会进入阻塞态。

3. 阻塞态(Blocked/Waiting)

定义

  • 进程因为等待某些事件或资源(如I/O操作)而不能继续执行。

特点

  • 阻塞态的进程不会使用CPU,等待条件满足后才能继续执行。

转换

  • 阻塞 → 就绪:当所等待的事件或资源变得可用时,进程转回就绪态,准备再次获得CPU。
  • 阻塞 → 终止:如果进程遇到错误或被终止条件中止,也会进入终止态。

这些状态和转换反映了进程在操作系统中的基本生命周期,有助于理解进程调度和资源管理。

进程调度是操作系统核心功能之一,它负责决定哪些进程在什么时间获得CPU资源执行。调度策略的好坏直接影响系统的性能和用户体验。以下是对常见进程调度策略的详细说明,包括它们的优缺点和应用场景。

1. 先来先服务(First-Come, First-Served, FCFS)

工作原理
  • FCFS 调度算法根据进程到达的顺序分配CPU,先到的进程先执行,后到的进程在队列中等待。
优缺点

优点:

  • 简单易实现:算法简单,易于理解和实现。
  • 公平性:进程按照到达顺序处理,没有优先级问题。

缺点:

  • 可能导致较长的等待时间:如果前面的进程需要长时间执行,会导致后续进程的等待时间增加,出现“饥饿”现象。
  • 不适应动态负载:对短作业和长作业的调度不够灵活,可能导致整体效率低下。
应用场景
  • 适用于负载均匀且任务长度接近的场景,如简单的批处理系统。

2. 最短作业优先(Shortest Job First, SJF)

工作原理
  • SJF 调度算法优先执行预计执行时间最短的进程。可以分为非抢占式和抢占式(最短剩余时间优先,SRTF)。
优缺点

优点:

  • 最小化平均等待时间:通过优先执行短作业,能够减少平均等待时间。

缺点:

  • 难以预测作业时间:在实际应用中,很难准确预测作业的执行时间。
  • 长作业饥饿:长作业可能因短作业频繁到达而长时间得不到执行,造成饥饿现象。
应用场景
  • 适用于作业时间可预测的环境,如某些实时处理系统或批处理系统。

3. 优先级调度(Priority Scheduling)

工作原理
  • 优先级调度 根据每个进程的优先级进行调度,高优先级的进程先获得CPU资源。可以是非抢占式或抢占式(即优先级更高的进程可以抢占正在运行的低优先级进程)。
优缺点

优点:

  • 灵活性高:能够根据进程的重要性或紧急程度进行调度。
  • 适应性强:适合需要按优先级处理的应用场景。

缺点:

  • 低优先级进程饥饿:低优先级的进程可能长时间得不到调度,导致饥饿现象。
  • 优先级管理复杂:需要有效管理优先级,并可能需要动态调整优先级以避免饥饿。
应用场景
  • 适用于需要按优先级处理的系统,如实时系统、任务调度系统等。

4. 轮转调度(Round Robin, RR)

工作原理
  • 轮转调度 为每个进程分配固定的时间片(time quantum),进程在时间片内执行,时间片用完后被中断,系统调度下一个进程。
优缺点

优点:

  • 公平性:每个进程都有机会获得CPU,避免了长作业占用CPU过长时间。
  • 简单易实现:实现简单且均匀分配CPU时间。

缺点:

  • 上下文切换开销:频繁的上下文切换可能导致额外的开销,影响系统性能。
  • 时间片大小影响性能:时间片过小会增加上下文切换的频率,时间片过大会导致响应时间增加。
应用场景
  • 适用于多用户系统和时间共享系统,如现代操作系统中的用户界面进程调度。

5. 多级反馈队列(Multilevel Feedback Queue, MLFQ)

工作原理
  • MLFQ 调度算法使用多个队列,每个队列具有不同的优先级。进程根据其行为(如CPU占用时间)在队列间移动,较高优先级队列中的进程先执行。
优缺点

优点:

  • 综合性强:结合了优先级调度和轮转调度的优点,能够处理各种类型的进程。
  • 灵活性高:能够动态调整进程的优先级,适应不同的负载情况。

缺点:

  • 实现复杂:调度算法复杂,需要维护多个队列和调整优先级。
  • 配置参数影响:队列数量和时间片设置对系统性能有显著影响,需要仔细调整。
应用场景
  • 适用于需要综合处理不同类型进程的环境,如现代操作系统中的通用进程调度。

总结

  • FCFS:简单、易实现,但可能导致长时间等待和不公平。
  • SJF:减少平均等待时间,但难以预测作业时间,可能导致长作业饥饿。
  • 优先级调度:灵活、适应性强,但可能导致低优先级进程饥饿。
  • RR:公平、简单,但可能产生较高的上下文切换开销。
  • MLFQ:综合性强,灵活适应各种负载,但实现复杂。

进程控制块(Process Control Block,PCB)是操作系统中用于管理进程的核心数据结构。它保存了与进程相关的所有重要信息,允许操作系统跟踪进程的状态,调度进程,以及在进程切换时恢复其状态。以下是对PCB的详细介绍:

PCB的组成

一个典型的PCB包含以下几个主要部分:

进程标识符(PID)

    1. 唯一标识进程的ID。每个进程在系统中都有一个唯一的PID,用于区分不同的进程。

进程状态(Process State)

    1. 当前进程的状态(如就绪、执行、阻塞、终止等)。操作系统通过这个字段来了解进程的运行状态。

程序计数器(Program Counter, PC)

    1. 存储进程下一个将要执行的指令的地址。程序计数器指示进程的执行进度。

寄存器内容

    1. 包括程序执行过程中使用的所有寄存器的值(如通用寄存器、指令寄存器、栈指针等)。这些信息在进程切换时用于恢复进程的执行状态。

内存管理信息

    1. 包括进程的地址空间信息,如页表、段表等,用于管理进程的内存使用。

调度信息

    1. 包含进程的优先级、调度策略、时间片等信息。操作系统使用这些信息来决定进程的调度策略。

I/O状态信息

    1. 记录进程所使用的I/O设备和文件描述符,以及I/O操作的状态(如等待中的I/O请求)。

进程间通信信息

    1. 包括进程间通信的相关数据,如信号量、消息队列等,用于进程间的数据交换和同步。

资源管理信息

    1. 记录进程持有的资源(如内存块、打开的文件等),确保资源的正确分配和回收。

PCB的作用

进程管理

    1. PCB是进程管理的核心,操作系统通过PCB跟踪和管理进程的状态和资源使用情况。

进程切换

    1. 在进程切换(上下文切换)时,操作系统保存当前进程的PCB中的状态信息,然后加载新进程的PCB,恢复其状态,继续执行。

调度决策

    1. 调度器使用PCB中的调度信息(如优先级、时间片等)来决定哪个进程获得CPU时间。

2.通过PCB中的状态和资源信息,操作系统能够处理进程的错误和异常情况。

PCB的创建与销毁

创建

    • 当一个新进程被创建时,操作系统会为其分配一个新的PCB。此PCB包含初始化的进程状态、内存分配信息、初始寄存器值等。

销毁

    • 当进程终止时,操作系统会销毁与该进程相关的PCB,并释放进程占用的资源。终止的PCB通常会被回收或删除,以便系统可以重用其资源。

进程与线程的区别

线程:操作系统进行运行调度的最小单位。

进程:系统进行资源分和调度的基本单位。

五、死锁问题(必考)

死锁是计算机系统中的一种现象,指的是两个或多个进程在竞争资源时发生的一种状态,其中每个进程都在等待其他进程释放它所需要的资源,从而导致所有进程都无法继续执行。死锁会使系统陷入一种无限等待的状态,影响系统的正常运行和资源的有效利用。

死锁的四个必要条件

死锁的发生需要同时满足以下四个条件,通常称为死锁的必要条件

互斥条件(Mutual Exclusion)

    1. 系统中的资源只能被一个进程占有。如果一个进程持有某个资源,其他进程只能等待,直到该资源被释放。

请求与保持条件(Hold and Wait)

    1. 进程在持有至少一个资源的同时,申请新的资源。即进程在等待其他资源的过程中,保持着自己已经拥有的资源。

不剥夺条件(No Preemption)

    1. 资源不能被强行从进程中剥夺,只能由持有资源的进程自行释放。

循环等待条件(Circular Wait)

    1. 存在一个进程等待链,其中每个进程都在等待下一个进程持有的资源。例如,进程A等待进程B持有的资源,进程B等待进程C持有的资源,而进程C又等待进程A持有的资源,从而形成一个循环。

死锁的检测与处理

死锁的处理方法通常包括以下几种策略:

死锁预防(Deadlock Prevention)

    1. 通过设计系统和调度策略来避免发生死锁,确保至少一个死锁必要条件不成立。常见的预防方法包括:
      1. 避免互斥:尽量使资源可以被多个进程共享使用,但这在一些情况下可能不可行。
      2. 避免请求与保持:进程在申请资源时必须释放所有已持有的资源。
      3. 避免不剥夺:允许强行剥夺资源,以防止死锁的发生。
      4. 避免循环等待:为资源分配规定顺序,确保进程按顺序申请资源,从而避免循环等待。

死锁避免(Deadlock Avoidance)

    1. 采用算法(如银行家算法)在资源分配时进行安全性检查,确保系统处于安全状态,从而避免死锁。安全状态是指存在一种资源分配顺序,使得每个进程都可以在有限时间内完成其执行。

死锁检测(Deadlock Detection)

    1. 定期检查系统中的进程和资源状态,确定是否发生了死锁。如果检测到死锁,系统可以采取措施来解除死锁,例如:
      1. 资源剥夺:强行剥夺某些进程的资源,释放资源以解除死锁。
      2. 进程终止:终止某些进程,以释放资源并解除死锁。可以选择终止最少进程或代价最小的进程。

死锁恢复(Deadlock Recovery)

    1. 当系统检测到死锁并采取恢复措施后,进程需要恢复到正常运行状态。这包括:
      1. 回滚:将进程恢复到某个安全状态,重新开始执行。
      2. 重新分配资源:根据新的资源分配策略,避免再次发生死锁。

死锁的例子

以下是一个经典的死锁示例:

  • 假设有两个进程A和B,以及两个资源R1和R2
    • 进程A持有资源R1,并请求资源R2。
    • 进程B持有资源R2,并请求资源R1。

如果进程A和B都不释放已经持有的资源而继续等待对方的资源,就会导致死锁。

死锁检测算法

死锁检测算法通常使用资源分配图或资源-进程图来识别系统中的死锁:

资源分配图(Resource Allocation Graph, RAG)

    • 节点表示进程和资源,边表示资源请求和分配。通过检测图中的环来判断是否存在死锁。

银行家算法:(算法的举例课本有,那个太长了不想写过程,要是有人要我再出)

    • 通过计算资源分配是否安全来避免死锁。系统检查是否可以在当前资源配置下满足所有进程的最大需求,从而确保系统始终处于安全状态。

求分页存储管理方式以及页面置换算法必考)

分页存储管理是一种常用的内存管理方式,它将程序的逻辑地址空间划分为固定大小的页(pages),并将物理内存划分为大小相同的块,称为页框(page frames)。这样,程序在运行时会使用这些页框来存放其页面。分页存储管理简化了内存管理和保护,提高了系统的灵活性和效率。

请求分页存储管理(Demand Paging)

定义: 请求分页存储管理是指在分页系统中,只有在程序实际访问某一页时,系统才将该页从磁盘调入内存。这种机制被称为“按需分页”或“需求分页”。

工作原理

  1. 程序启动:当程序开始执行时,操作系统并不会立即将整个程序的所有页面加载到内存中。
  2. 页面访问:当程序访问某个页面时,如果该页面不在内存中(即发生了缺页中断),操作系统会将该页面从磁盘调入内存。
  3. 缺页中断处理:操作系统处理缺页中断,选择一个空闲的页框(或通过页面置换算法选择一个已存在的页框)将新页面加载到内存中。
  4. 页面替换:如果内存已满,操作系统需要将一个或多个当前页面从内存中换出到磁盘,以便为新的页面腾出空间。

优点

  • 节省内存:只加载实际需要的页面,减少了内存的使用。
  • 启动快:程序启动时不需要加载全部页面,减少了启动时间。
  • 更好的资源利用:提高了系统对内存资源的利用率,特别是在大程序的运行中。

缺点

  • 缺页中断开销:每次页面不在内存时都需要进行磁盘I/O操作,可能会导致较高的开销。
  • 页面置换开销:页面置换算法可能会增加额外的开销。

页面置换算法

当内存中没有足够的空间来加载新的页面时,操作系统需要选择一个页面从内存中移除,腾出空间。不同的页面置换算法有不同的策略来选择要移除的页面。以下是一些常见的页面置换算法:

先进先出(FIFO)算法

    • 定义:将最早进入内存的页面(即第一个被加载的页面)作为被替换的页面。
    • 优点:实现简单。
    • 缺点:可能会导致“Belady异常”,即增加内存页面数目后,缺页率反而增加。

最少使用(LRU,Least Recently Used)算法

    • 定义:选择最长时间未被访问的页面进行替换。
    • 优点:能够较好地利用局部性原则,减少缺页率。
    • 缺点:需要额外的硬件或软件支持来跟踪页面的使用历史,开销较大。

最近最少使用(NFU,Not Frequently Used)算法

    • 定义:将页面访问计数与时间窗结合,选择最少被访问的页面进行替换。
    • 优点:考虑了页面的访问频率。
    • 缺点:实现相对复杂,可能需要周期性地更新访问计数。

时钟算法(Clock Algorithm)

    • 定义:为每个页面维护一个访问位(或标志位)。当需要替换页面时,扫描页面并选择访问位为0的页面进行替换。
    • 优点:较为高效,易于实现,适合硬件支持。
    • 缺点:对于频繁访问的页面可能表现不如LRU算法。

最佳置换(OPT,Optimal Page Replacement)算法

    • 定义:选择在未来最长时间内不被访问的页面进行替换。也称为“理想”算法,因为它能够实现最低的缺页率。
    • 优点:理论上最优。
    • 缺点:需要对未来的页面访问情况进行预测,实际中无法实现。

最佳适应(Second Chance)算法

    • 定义:FIFO算法的改进版,每个页面维护一个访问位,具有“第二次机会”。如果页面的访问位为1,表示最近被访问过,则将其置于队列的末尾,并继续检查下一个页面。
    • 优点:改善了FIFO算法的缺陷,较为简单。
    • 缺点:比FIFO稍微复杂。

示例

假设有一个物理内存能容纳3个页面,且页面访问序列为A, B, C, A, B, D,以下是不同算法的示例:

FIFO

    • 初始:空
    • 加载A:A
    • 加载B:A, B
    • 加载C:A, B, C
    • 页面A被访问,已在内存中:A, B, C
    • 页面B被访问,已在内存中:A, B, C
    • 页面D加载,替换掉最早的A:B, C, D

LRU

    • 初始:空
    • 加载A:A
    • 加载B:A, B
    • 加载C:A, B, C
    • 页面A被访问,更新最近访问:A, B, C
    • 页面B被访问,更新最近访问:A, B, C
    • 页面D加载,替换掉最久未访问的C:A, B, D

. 现代操作系统的趋势

随着技术的进步,现代操作系统不断演化,主要趋势包括:

虚拟化技术:通过虚拟化技术实现多个虚拟机在同一物理主机上的运行,提高资源利用率和隔离性。

容器化:利用容器技术(如Docker)简化应用程序的部署和管理,提供隔离和轻量级的虚拟化环境。

云计算:操作系统逐渐集成云服务,支持云资源的管理和调度。

移动操作系统:如Android和iOS,专门为移动设备优化,注重电池管理和响应速度。

安全增强:随着网络攻击手段的复杂化,操作系统不断增强安全性,包括引入安全沙箱、数据加密和身份验证等技术。

 写不完根本写不完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值