操作系统期末复习提纲汇总

目录

写在前面

期末复习提纲,有强针对性,请自辩
仅个人作保留,不定时删除
参考教材:《计算机操作系统》沈晓红版
在这里插入图片描述

第一章 操作系统引论

1. 什么是操作系统、操作系统的功能(4大管理1个接口)

  1. 操作系统的定义:

    • (本质)是一个大型的系统软件;
    • (对内)负责计算机的全部软件、硬件资源的管理;
    • (对外)为用户使用计算机系统提供方便的用户界面;
    • (结果)使计算机系统实现高效率和高自动化。
  2. 操作系统的功能:

    1. 处理机管理:对处理机进行分配,并对其运行进行有效的控制和管理。
      • 进程管理
      • 处理机调度
      • 同步与互斥
      • 死锁
    2. 存储管理:主要研究进程如何占用内存资源,以方便用户使用,提高存储器的利用率。按照一定策略对内存进行分配和回收、内存保护、内存扩充、重定位
      • 基本存储管理方式
      • 虚拟存储器
    3. 设备管理:负责管理用户对外部设备的使用,提高CPU和输入/输出设备的利用率。
    4. 文件管理:管理计算机系统的软件资源,包括文件存储空间的管理、目录管理、文件共享和保护等。
    5. 用户接口:提供方便、灵活的使用计算机的手段,包括系统调用作业级接口
      • GUI
      • CLI
      • 系统调用(程序员使用)

2. 操作系统发展的动力

  • 计算机硬件的不断更新换代,如CPU的位宽度和计算速度的提升,快速外存的发展。
  • 计算机体系结构的不断发展,从单处理机到多处理机,从单机到网络,从单核到多核。
  • 提高计算机资源利用率的需求。
  • 方便用户操作的需求。
  • 硬件的发展和用户需求的变化
    在这里插入图片描述

3. 几个主要操作系统的特点(单道批处理、多道批处理、分时系统、实时系统)

  1. 单道批处理操作系统:内存中每次仅有一道程序运行,具有自动性、顺序性单道性
  2. 多道批处理操作系统:内存中同时存放多道程序,宏观上并行,微观上串行,具有多道性、宏观并行性、微观串行性无序性调度性
    • 优点
      • 系统资源的利用率提高
      • 系统吞吐量增大
    • 缺点
      • 平均周转时间长
      • 缺乏交互性
  3. 分时系统:利用时钟系统把CPU时间分成一个一个的时间片,操作系统轮流地把每个时间片分给各个并发程序,每道程序一次只可运行一个时间片。多个用户可同时上机使用计算机资源,具有同时性、独立性、及时性交互性
  4. 实时系统:能够及时响应随机发生的外部事件,在严格的时间范围内完成处理,并控制所有实时任务协调一致地运行,具有及时性、交互性、独立性高可靠性
    • 分类:
      • 实时控制:飞机自动驾驶系统
      • 实时事务处理:飞机订票系统

4. 操作系统的特征(并发、共享、虚拟、异步),并行与并发的概念

  1. 并发性:指两个或多个事件在同一时间间隔内发生,在多道程序环境中,程序并发性是指在计算机系统中同时存在有多个程序。
    • 并发性:并发性是指两个或多个事件在同一时间间隔内发生。逻辑上给用户或系统的感觉是同时执行
    • 并行性:并行性是指两个或多个事件在同一时刻发生。强调物理上的“同时”
  2. 共享性:由于操作系统有并发性,整个系统的软、硬件资源不再为某个程序所独占,而是由许多程序共同使用
  3. 虚拟性:操作系统通过多道程序在单CPU的计算机上同时运行机制,以及虚拟存储器技术,使用户感觉像是独占资源。
  4. 异步性:在多道程序环境下,允许多个进程并发执行,每个进程的执行和推进速度是不可预知的,具有不确定性。

第二章 进程管理及同步

1. 进程的概念,结构特征

  • 进程的概念

    1. 一个正在执行中的程序
    2. 一个正在计算机上执行的程序实例。
    3. 能分配给处理机并由处理机执行的实体。
    4. 一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集合。
    5. 程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
  • 结构特征

    1. 结构特征:由程序代码、数据集和进程控制块(PCB)构成了进程实体,也称进程映像。其中,PCB是进程存在的标志。
    2. 动态性:进程有生命周期,它由创建而产生,由撤销而消亡。
    3. 并发性:一个进程可以与其它进程并发执行。
    4. 独立性:进程是系统中的一种独立实体,是独立请求并占有资源、独立被调度运行的基本单位。
    5. 异步性:进程是以异步方式运行的,即它的推进速度是不可预知的。

2. 进程控制块的作用

进程控制块(PCB)是操作系统管理进程和资源的关键结构,它描述了进程标识、空间、运行状态、资源使用等信息。操作系统根据PCB来对并发执行的进程进行控制和管理。PCB是进程存在的唯一标志,它包含了进程的当前状态、分配给它的资源、优先级和其他相关数据。操作系统是根据进程控制块来对并发执行的进程进行控制和管理的

  • PCB的主要内容
    • 进程标识信息
      • 进程ID(PID):唯一标识一个进程。
      • 父进程ID:标识创建该进程的父进程。
    • 处理机状态信息
      • 通用寄存器:包括数据寄存器、段寄存器等。
      • 程序计数器(PC):存放下一条要执行的指令的地址。
      • 程序状态字(PSW):包含状态信息,如条件码、执行方式、中断屏蔽标志等。
      • 堆栈指针:指向进程的堆栈。
    • 进程调度信息
      • 进程优先级:影响进程获得CPU时间的顺序。
      • 进程状态信息:描述进程当前处于何种状态(如就绪、运行、阻塞)。
      • 其他调度信息:如时间片、调度策略等。
    • 进程控制信息
      • 程序代码和数据集所在的内存地址
      • 资源清单:列出了进程所需的全部资源及已经分配给该进程的资源。
      • 同步与通信信息:如信号量、消息队列等。
      • 外存地址:当进程被换出到磁盘时,记录其在外存的位置。
      • 家族信息:与该进程相关的其他进程信息。
      • 链接指针:用于将PCB组织成队列或表。

3. 进程状态及转换(状态的含义、特点,转换原因)

  • 进程的状态模型包括:

    1. 两状态模型:运行态和非运行态(阻塞态)。
      在这里插入图片描述

    2. 三状态模型:就绪状态、运行状态和阻塞状态。
      在这里插入图片描述

    3. 五状态模型:新建态(刚创建但未进入就绪队列)、就绪态、运行态、阻塞态和退出态(释放PCB)。
      在这里插入图片描述

    4. 七状态模型:活动就绪态、活动阻塞态、静止阻塞态、静止就绪态、创建态、运行态和终止态。

      • 活动:在内存中
      • 静止:在外存中
        在这里插入图片描述
  • 状态转换的原因通常包括:

    1. 进程调度:进程从就绪状态转换到运行状态。
    2. 等待资源:进程从运行状态转换到阻塞状态。
    3. 资源就绪:进程从阻塞状态转换回就绪状态。
    4. 进程完成:进程从运行状态转换到结束状态。

4. 进程控制原语(包括原语的概念、控制原语主要工作内容)

  1. 创建进程(Create):创建新进程并初始化其PCB。
    • 给新进程一个编号并申请空白PCB;
    • 为新进程分配空间;
    • 初始化PCB并填入进程标识;
    • 设置合适的链接,将新进程插入就绪队列
  2. 终止进程(Terminate):结束进程的执行并回收资源。
    • 查找被终止进程的PCB,立即终止其和其子孙进程,调度标识置为True;
    • 回收PCB登记的全部资源;
    • 将PCB从当前队列移除,并启动进程调度程序
  3. 阻塞进程(Block):将进程从运行状态置为阻塞状态。
    • 中断CPU和保存现场;
    • 自己阻塞自己,插入阻塞队列;
    • 进程调度程序选择新的就绪进程运行
  4. 唤醒进程(Wakeup):将阻塞状态的进程置为就绪状态。(系统唤醒/事件发生唤醒)
    • 将被唤醒进程从相应的等待队列移除,置为就绪态,插入就绪队列;
    • 进程调度程序正常执行
  5. 挂起进程(Suspend):将进程从内存移至外存。
    • 检查被挂起进程状态,将活动态改为静止态;
    • 把该进程的PCB复制到指定的内存区域;
    • 若该进程正在执行,调度程序重新调度
  6. 激活进程(Active):将外存中的进程调入内存并置为就绪状态。
    • 将进程从外存调入内存,检查状态,从静止态修改为活动态;
    • 若抢占,则在调入就绪队列后进行检查调度

5. 线程的概念、进程与线程的区别与联系、进程的三种实现方式

  • 线程的概念线程是进程内的一个相对独立的、可独立调度和指派的执行单元。一个进程中至少应有一个线程。

    1. 线程是进程内的一个相对独立的可执行单元
    2. 线程是操作系统中的基本调度单元
    3. 个进程中至少应有一个线程
    4. 线程并不拥有资源,而是共享和使用包含它的进程所拥有的全部资源。
    5. 线程在需要时也可创建其他线程。
  • 进程与线程的区别

    1. 调度:线程作为调度的基本单位,同进程中线程切换不引起进程切换,当不同进程的线程切换才引起进程切换;进程作为拥有资源的基本单位。
    2. 并发性:一个进程间的多个线程可并发。
    3. 拥有资源:线程仅拥有隶属进程的资源;进程是拥有资源的独立单位。
    4. 系统开销:进程大;线程小。
  • 进程的三种实现方式

    1. 用户级线程:线程完全在用户空间中实现,操作系统内核不感知线程的存在。
      在这里插入图片描述

    2. 内核级线程:线程由操作系统内核支持,每个线程都有对应的内核级线程控制块。内核是根据该控制块而感知某线程的存在的,并对其加以控制。
      在这里插入图片描述

    3. 混合级线程:结合了用户级线程和内核级线程的特点,线程创建和管理在用户空间进行,但线程的调度和同步由内核支持。一个应用程序中的多个用户级线程被映射到一些(小于或等于用户级线程的数目)内核级线程上


第三章 同步与通信

1. 进程间的两种制约关系、临界资源、临界区的概念

  • 进程间的两种制约关系是互斥和同步

    • 互斥(间接制约关系):多个进程因**竞争一共享资源(该资源不能被同时访问/使用)**而产生的相互制约关系。例如,打印机等硬件资源或内存中的公共数据结构。
    • 同步(直接制约关系):多个进程为了合作完成同一个任务,在执行次序上相互协调、相互合作的制约关系。
  • 临界资源以互斥方式使用的共享资源,一次只允许一个进程使用。临界资源的例子包括打印机、磁带机等硬件资源,以及内存中的共享变量、表格、队列、栈等软资源。

  • 临界区(Critical Section):每个进程中访问临界资源的那段代码。临界区内的代码需要互斥执行,即一次只有一个进程可以执行其临界区的代码。进入临界区前需要申请并检查是否空闲,退出临界区后应将相应标志恢复。

  • 互斥准则

    1. 空闲让进。当没有进程在临界区时,任何需要进入临界区的进程都允许立即进入。
    2. 忙则等待。在共享同一对象的所有进程中,一次只能有一个进程进入临界区。其它要求进入临界区的进程只能等待。
    3. 有限等待。任何一个进程经有限时间等待后都能进入临界区,以免陷入“死等”状态。
    4. 让权等待。当一个进程不能进入临界区时要立即阻塞自己,释放处理机让其它进程使用,避免“忙等”。

2. 信号量:信号量值的含义、wait操作和signal操作,可以用信号量控制进程间的同步

信号量是一种用于进程同步和互斥控制的机制,由一个整型变量(信号量值)和两个原语(wait和signal)组成

  • 信号量值的含义

    • 正值:表示可用资源的数量
    • 零值:表示没有资源可用,但没有进程在等待
    • 负值:表示没有资源,且有信号量值个进程在等待该资源。
  • wait操作:当进程需要资源时,执行wait操作,使信号量值减1。如果信号量值小于0,则进程被阻塞,直到信号量值变为非负。

  • signal操作:当进程释放资源时,执行signal操作,使信号量值加1。如果信号量值小于等于0,则唤醒等待队列中的一个进程。

信号量可以用来控制进程间的同步,通过P/V操作(即wait和signal操作)来确保进程在正确的时序下执行,从而避免竞态条件和死锁。
在这里插入图片描述

3. 管程的特点

  • 管程是一种并发性的结构,是由一个或多个过程、一个初始化序列和局部数据组成的软件模块,组成:
    1. 管程名
    2. 局部于管程的共享变量说明
    3. 对该数据结构进行操作的一组过程/函数
    4. 对局部于管程的数据设置初始值的语句
  • 管程的特点
    1. 局部于管程的共享变量:只能在管程内部访问。
    2. 进程通过管程的过程进入:进程通过调用管程中的过程而进入管程。
    3. 单进程执行-互斥:每一时刻只能有一个进程在管程中执行,其他进程将被挂起。
    4. 条件变量:管程使用条件变量支持同步,条件变量保存在管程中,只能在管程内部访问。
    5. c.wait()和c.signal():分别用于将进程挂起和唤醒。

4. 三种进程高级通信方式(主要是管道通信)

  1. 共享存储器系统:通过在内存中开辟共享存储空间,进程通过操作共享数据区进行通信。
  2. 管道通信系统:通过创建一个共享文件(管道),连接读进程和写进程,实现数据的单向流动。
    它允许一个进程(生产者)将数据以字符流的形式写入管道,而另一个进程(消费者)从管道中读取数据。管道可以是简单的,如Unix中的无名管道,也可以是命名管道,允许不在同一会话的进程进行通信。
    • 互斥问题:对管道文件的访问应当是互斥的进行;
    • 同步问题:写进程写完数据到管道后,会自我阻塞,等待读进程取走数据;读数据在读空管道类似;
    • 状态测试:以一种方式了解对方是否存在,存在才通信
  3. 消息传递系统:进程间通过发送和接收格式化的消息进行通信,操作系统提供通信原语支持。

第四章 死锁与饥饿

1. 什么是死锁、死锁产生的原因

死锁是指在一组进程中,每个进程都在等待只能由该组中的其他进程才能引发的事件,导致这些进程无限期地等待,无法继续执行。如果没有任何外力作用,这些进程将无法推进。死锁发生时,涉及的进程处于一种永久性的阻塞状态。

死锁产生的原因主要有两点:

  1. 竞争资源:当系统中的资源数量少于并发进程所需的资源数量时,可能会引起进程间因争夺资源而产生死锁。
  2. 进程推进顺序不当:进程在运行过程中,如果请求和释放资源的顺序不当,也可能导致死锁。

2. 死锁的必要条件及预防措施

  • 死锁发生的必要条件
    1. 互斥条件:资源不能被多个进程同时占有,只能由一个进程独占。
    2. 请求且保持条件:进程已经保持至少一个资源,但又提出新的资源请求,因未获得资源而阻塞。
    3. 不可抢占条件:已经分配给一个进程的资源,在该进程使用完毕之前,不能被其他进程或系统强行剥夺。
    4. 循环等待条件:存在一种进程资源的循环等待关系。
  • 死锁的预防措施
    1. 破坏请求且保持条件:要求进程一次性申请所有必需资源,或仅在所有资源都可满足时才分配资源。
    2. 破坏不可抢占条件:允许系统在必要时,从进程中抢占资源
    3. 破坏循环等待条件:对资源进行排序,规定进程必须按照特定顺序请求资源

3. 死锁的避免——银行家算法

  • 确保系统总是处于安全状态来避免死锁。
  • 当进程请求一组资源时,假设系统同意该资源请求,从而改变了系统的状态,然后确定系统是否还处于安全状态;
    • 若系统仍处于安全状态,则系统就同意该资源请求;
    • 若系统处于不安全状态,则系统就阻塞该进程。
      在这里插入图片描述
      在这里插入图片描述

三类资源分别为9、3、6
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 死锁的检测和解除方法

  • 检测:

    1. 资源分配图:通过简化资源分配图来判断系统是否处于死锁状态。如果资源分配图是不可完全简化的,则系统处于死锁状态。
      在这里插入图片描述
      在这里插入图片描述

    2. 死锁检测算法:通过维护一个资源分配矩阵和进程的请求矩阵,定期检查是否存在循环等待,从而判断死锁
      在这里插入图片描述

  • 解除:

    1. 撤销所有死锁进程:最常用,但损失大
    2. 把死锁进程恢复到前面定义的某些检查点
    3. 逐个撤销死锁进程,直到不存在死锁进程
    4. 基于最小代价原则,相继剥夺资源,直到不死锁

第五章 处理机调度

1. 三级调度(高、中、低)

  • 高级调度(作业调度):外存->内存。

    • 主要用于批处理系统。
    • 高级调度负责从后备队列中选择多个作业调入内存,为它们创建进程并分配必要的资源,然后链接到就绪队列上。
    • 在分时/实时系统中,为了做到及时响应,通过键盘输入的命令或数据等,都被直接送入内存创建进程,因而不需要设置高级调度这个层次。
    • 作业的状态:作业自提交进入系统开始,直到运行结束后退出系统,通常经历四种状态:提交状态、后备状态、运行状态和完成状态
  • 中级调度(交换调度):内存->外存

    • 为了缓解内存压力,中级调度负责按照一定的策略,把内存中的进程交换到外存交换区,或将外存交换区中的挂起进程调入内存。
    • 中级调度常用于分时操作系统和应用虚拟内存技术的系统中,中级调度是交换功能的一部分。
  • 低级调度(进程调度):就绪态->运行态

    • 低级调度负责按照某种调度算法,从内存的就绪队列中选择一个就绪进程获得CPU,并分派程序执行进程切换的具体操作。
    • 低级调度是最基本的一级调度,是各类操作系统必备的功能,其调度算法的优劣将直接影响整个系统的性能。
    • 在多线程系统中,线程成为调度的基本单位,此时还存在线程调度这个层次。
      在这里插入图片描述

2. 批处理系统、分时、实时系统的调度算法评价指标

批处理操作系统会选择资源利用率高、平均周转时间短和系统吞吐量大的调度算法;
分时操作系统会选择交互性好、响应时间短的调度算法;
实时操作系统会选择能够处理紧急任务、保证时间要求的调度算法。

  • 批处理系统:
    1. 周转时间:作业从提交到完成的总时间。(结束-到达
      在这里插入图片描述

    2. 平均周转时间:所有作业周转时间的平均值。
      在这里插入图片描述

    3. 带权周转时间:考虑作业执行时间的加权周转时间。(周转/运行
      在这里插入图片描述

    4. 系统吞吐率:单位时间内系统完成作业的数量。

  • 分时系统:
    1. 响应时间:用户请求到系统首次响应的时间。
    2. CPU利用率:CPU被有效使用的时间比例。
    3. 公平性:确保所有用户或进程公平地获得资源。
  • 实时系统:
    1. 截止时间:任务必须开始和完成的最晚时间。
    2. 可预测性:系统能够预测任务完成时间的能力。

3. 几种调度算法如何进行调度的、优缺点,会计算周转时间、带权周转时间

在这里插入图片描述

  1. 先来先服务(FCFS):按到达顺序调度。优点是公平和简单;缺点是不利于短作业,可能导致长作业的饥饿。
    在这里插入图片描述

  2. 短作业优先(SJF/SPF):优先调度估计运行时间短的作业/进程。优点是减少平均周转时间;缺点是可能导致长作业饥饿,需要准确估计运行时间。
    在这里插入图片描述

  3. 优先级调度:根据优先级调度。优点是可以处理紧急任务;缺点是可能导致低优先级进程饥饿。

  4. 轮转(RR):时间片轮转,所有进程轮流获得CPU时间片。优点是公平和响应性好;缺点是不适合I/O密集型任务。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 最高响应比优先(HRRN):考虑等待时间和服务时间。优点是平衡长短作业;缺点是计算开销大。
    在这里插入图片描述
    这个R就是带权周转
    在这里插入图片描述
    在这里插入图片描述

  6. 多级队列和多级反馈队列:将进程分配到不同队列,每个队列可以有不同的调度算法。
    在这里插入图片描述

4. 两种调度方式(抢占、非抢占)及调度时机

  • 抢占式调度(抢占式):调度器可以根据抢占原则中断正在运行的进程,将CPU分配给另一个进程。抢占原则包括优先权原则、短进程优先原则和时间片原则
  • 非抢占式调度(非剥夺式):一旦CPU分配给进程,它将一直运行直到完成或阻塞。不允许其他进程抢占CPU。
  • 调度时机:调度可能发生在以下情况:
    • 进程完成执行。
    • 进程阻塞,等待I/O操作。
    • 进程主动放弃CPU。
    • 有更高优先级的进程进入就绪队列(抢占式)。
    • 时间片用完(轮转调度)。

第六章 基本存储管理

1. 逻辑地址与物理地址的概念、地址重定位(动态地址重定位、静态地址重定位)

  • 逻辑地址:是程序中使用的地址,也称为虚拟地址,它与物理地址无关,通常从0开始编址。逻辑地址空间是程序的地址空间。

  • 物理地址内存单元的地址。是内存中的实际地址,也称为绝对地址,它反映了数据在内存中的实际存放位置。

  • 地址重定位:是存储管理中将逻辑地址映射到物理地址的过程

    • 动态地址重定位在程序运行过程中进行地址转换。使用重定位寄存器存放用户进程在内存的起始地址,物理地址等于重定位寄存器的值加上逻辑地址。它允许程序在内存中移动,支持离散存储,但需要硬件支持(如重定位寄存器)。
      在这里插入图片描述
      在这里插入图片描述

    • 静态地址重定位:在程序装入内存时进行地址转换。在程序运行之前完成了地址重定位。物理地址等于程序装入内存的起始地址加上逻辑地址。它不需要硬件支持,但程序装入后不能移动,且用户程序只能装入到一个连续的内存区域。
      在这里插入图片描述在这里插入图片描述

2. 连续分配存储管理方式中的固定分区和动态分区分配(首次、最佳、最坏)、动态重定位分区(拼接)

  • 固定分区:内存被划分成固定大小的区域,每个分区只能装入一个程序。分区大小可以相等或不等,不等大的分区可以减少内存浪费。
    • 优点:内存利用率高,支持多道程序设计。
    • 缺点:分区大小固定,可能导致内存空间浪费。
  • 动态分区:内存根据进程的实际需要动态划分。
    • 分配算法:首次适应、最佳适应、最坏适应。首次适应算法从低地址开始查找,最佳适应保留大的空闲分区,最坏适应算法从大到小排列空闲分区。
    • 优点:更灵活,减少内存浪费。
    • 缺点:分配和回收时需要维护空闲分区表,可能产生外碎片。
  • 动态重定位分区:通过移动内存中的进程,将分散的空闲分区合并成一个大的空闲分区,支持动态地址重定位。

3. 分页存储管理方式

  • 基本思想:将内存和逻辑地址空间都分为固定大小的单元,内存分为物理块,逻辑地址分为页。
  • 内存分配和回收:为每个进程创建页表,记录页到物理块的映射。
  • 地址转换:逻辑地址由页号和页内地址组成,通过页表转换为物理地址。
  • 优点:有效解决内存碎片问题,支持虚拟内存。
  • 缺点:页表可能很大,需要额外的存储空间。
    在这里插入图片描述

行为位数;列为块数量
在这里插入图片描述

地址变换过程
将逻辑地址分成页号P和页内地址w两部分。
将页号P 与页表寄存器存放的页表长度进行比较——是否越界
若页号大于或等于页表长度,则表示本次访问的地址超出了进程地址空间,系统产生越界中断。
若页号小于页表长度,则
根据页表寄存器存放的页表始址,在内存中找到页表,查得该页号对应的物理块号
将物理块号送入物理地址寄存器的高位部分;同时将页内地址w直接送入物理地址寄存器的块内地址字段。这样就得到了二进制物理地址,完成了从逻辑地址到物理地址的变换。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

页表项:一个页号-物理块号的对应关系;题目中的4B指的是一个页表项的大小
计算:
页内地址=页面大小=4KB=2^12
外层页内地址=(页面大小/页表项)=4KB/4B=1K=2^10
外层页号=剩余的=32-12-10=10
在这里插入图片描述

4. 分段存储管理方式

  • 基本思想:程序的地址空间被划分为逻辑段,每个段是一组有意义的逻辑信息集合。
  • 内存分配和回收:以段为单位分配内存,段表记录每个段的基址和长度。
  • 地址转换:逻辑地址由段号和段内地址组成,通过段表转换为物理地址。
  • 优点:支持动态增长和链接,方便共享和保护。
  • 缺点:段内必须连续,可能导致内存碎片。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(0,137):0<=4,137<=10k,所以物理地址为:501024+137=5133
(1,4000):1<=4,但4000>3k,越界中断
(2,3600):2<=4,3600<=5k,所以物理地址为:70
1024+3600=75280
(5,230):因为5>4,越界中断
在这里插入图片描述

5. 段页式存储管理方式

  1. 页是信息的物理单位。而段是信息的逻辑单位,它含有一组有意义的相对完整的信息。
  2. 分页是系统管理的需要而不是用户的需要。分段是为了能更好地满足用户的需要。
  3. 页的大小是固定的,由系统决定,即系统中只能有一种大小的页面。而段的长度是不固定的,取决于用户所编写的程序。
  4. 分页的逻辑地址空间是一维的,而分段的逻辑地址空间是二维的。
  • 基本思想:结合分段和分页的优点,程序按逻辑关系分段,段内再分页。内存划分为若干大小相等的物理块。为每个页分配一个空闲的物理块。
  • 内存分配和回收:为每个段建立页表段表记录每个段的页表信息
  • 地址转换:通过段号找到段表,再通过页号找到页表,最后转换为物理地址。
  • 优点:结合了分段的逻辑组织和分页的内存利用率,支持动态增长和共享。
  • 缺点:地址转换较为复杂,需要访问段表和页表。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在段页式存储管理下,访问内存的一条指令或一个数据,需要访问内存三次。
    1. 第一次是访问内存中的段表,从中取得页表始址;
    2. 第二次是访问内存中的页表,从中取得该页所在的物理块号,并将该物理块号与页内地址组合,形成物理地址;
    3. 第三次是根据物理地址,访问内存的指令或数据。

每一种存储管理方式的基本思想、内存分配和回收、地址转换,优缺点

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


第七章 虚拟存储技术

1. 虚拟存储器的概念和局部性原理

虚拟存储器是指具有调入功能和置换功能,且能从逻辑上对内存容量进行扩充的一种存储器系统。虚拟存储器是一种存储管理技术,它通过离散分配和部分装入的方式,从逻辑上扩充了内存容量。它允许程序的地址空间大于物理内存的大小,由操作系统负责将内、外存统一管理起来,进程的换入和换出工作由操作系统自动完成。虚拟存储器的逻辑容量由内存容量和外存容量之和所决定,运行速度接近于内存速度,而成本又接近于外存。

  • 虚拟存储管理的特征:
    • 离散分配
    • 部分装入
    • 多次交换
    • 虚拟扩充

局部性原理是虚拟存储器引入的理论基础,它表现在两个方面:

  • 空间局限性:程序在执行时访问的内存单元会局部在一个比较小的范围内。
  • 时间局限性:程序中执行的某些指令会在不久后再次被执行,程序访问的数据结构也会在不久后被再次访问。

在这里插入图片描述

2. 分页存储的虚拟存储器实现方式

工作原理如下:

  • 请求分页存储管理只是将接下来要执行的几个页(不是全部)调入内存
  • 在进程执行过程中,当发现要执行的指令或访问的数据不在内存时,引发缺页中断,由操作系统负责将缺的页从外存调入内存。
    • 若内存空间充裕,则直接将缺页调入
    • 若内存空间不充裕,则需要将一些不常用的页调出内存腾出空间,将缺页调入。另外,在置换时,若置换出的页在内存中曾做过改动,还需将改动保存到外存中。

关键问题:

  • 如何知道要访问的页不在内存?

    • 扩充页表
      • 状态位:用于表示该页是否已调入内存。若没有调入内存,则产生一个缺页中断。
      • 访问字段:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。访问字段为置换算法在选择换出页面时提供参考。
      • 改动位:表示该页调入内存后是否做过改动。若已被改动,则必须将该页重写到外存上,否则直接覆盖即可。
      • 外存地址:用于指出该页在外存上的存放地址,供调入该页时使用。
        在这里插入图片描述
  • 发现缺页后怎么办?

    • 在这里插入图片描述
  • 缺页调入后,如何进行地址变换以支持进程的运行?

    • 在这里插入图片描述

3. 页面置换算法(先进先出、最佳、最近最久未使用置换算法,驻留集、颠簸、缺页率)

  1. 页面置换算法决定了哪些页应该被换出内存,以腾出空间给新调入的页。以下是几种常见的页面置换算法

    • 先进先出(FIFO):按照页面进入内存的顺序来置换页面,最先进入的页面最先被置换。它简单易实现,但可能导致页面抖动。
    • 最佳置换算法(OPT)理论上的算法,总是选择未来最长时间不会被访问的页面进行置换。由于无法预知未来的页面访问序列,实际上无法实现。
    • 最近最久未使用(LRU)置换最长时间未被访问的页面。它是一种性能很好的算法,但实现起来需要额外的开销,通常需要硬件支持。
    • Clock置换算法:是一种近似LRU的算法,**使用一个循环队列和访问位(0走1留)**来记录页面的访问情况,选择最久未访问的页面进行置换。
  2. 驻留集给每个进程分配的物理块的集合驻留集的大小会影响缺页率,驻留集越大,缺页率越低,但过多的内存分配会导致资源浪费。

    • 驻留集管理涉及两个问题
      • 给每个进程分配的物理块的数目是否固定?
        驻留集分配策略
        • 固定分配策略:是指为一个进程分配固定数目的内存物理块。
        • 可变分配策略:是指分配给一个进程的物理块数可以发生变化。
      • 置换范围是否局限于该进程内部?
        置换策略
        • 全局置换策略:发生缺页需要页面置换时,可以在驻留内存的所有页中进行选择,不管它属于哪一个进程。
        • 局部置换策略:发生缺页需要页面置换时,只能从发生缺页的进程在内存的页中进行选择。
          在这里插入图片描述
    • 调页策略:
      • 预调页策略:常用的预测原理是局部性原理,即每次调页时,将相邻的若干个页一并调入内存。
      • 请求调页策略:发生缺页时,再将其调入内存的方法。
      • 通常,进程首次调入时使用预调页策略。运行过程中,采用请求调页策略。
  3. 颠簸or抖动是指页面频繁地在内存和外存之间交换,这会大大降低系统性能。

  4. 缺页率是操作系统性能的一个重要指标,表示进程运行过程中发生缺页中断的频率。缺页率越低,系统性能通常越好。

    • 页面置换:包括放入空的内存块中。
    • 缺页:仅计算满内存块后的页面置换数量。

第八章 设备管理

1. IO系统的层次结构、设备类型

在这里插入图片描述

  1. 块设备接口
    是块设备管理软件与上层的接口。
    数据传输以数据块为单位进行的设备称为块设备,最常见的是磁盘
    磁盘的地址需要用磁道号和扇区号表示,当上层发来读命令的时候,该接口会将抽象的命令转换为磁盘的盘面、磁道和扇区
    块设备的基本特征是传输速率较高、可寻址。
  2. 流设备接口
    流设备接口又称字符设备接口,是流设备管理程序与高层之间的接口。
    传输数据以字节为单位的设备称为字符设备,也称流设备
    常见的是键盘,打印机
    字符设备的基本特征是传输速率较低、不可寻址。
  3. 网络通信接口
    操作系统提供了网络通信接口,把计算机连接到网络上,以实现网络环境下的通信、网络资源管理、网络应用等特定功能。

I/O系统的层次结构主要分为以下几个部分:

  • I/O系统接口:这是I/O系统与高层之间的接口,提供了设备无关的接口。
  • 设备驱动程序:与具体的硬件设备直接交互,处理I/O请求。
  • 设备控制器:作为CPU与I/O设备之间的接口,控制I/O设备的工作。
    在这里插入图片描述

设备类型按不同的标准可以分为:

  • 按传输速率:低速设备、中速设备、高速设备。
  • 按设备的使用特性:存储设备、I/O设备。
  • 按信息交换的单位:块设备、字符设备。
  • 按设备的共享属性:独占设备、共享设备、虚拟设备。

2. 缓冲区引入的原因

缓冲区(Buffer)的引入主要有以下几个原因:
1. 缓和CPU与I/O设备间速度不匹配的矛盾:提高CPU和I/O设备之间的并行性。
2. 减少CPU的中断频率:放宽对中断响应时间的限制,减少CPU的中断处理时间。
3. 解决数据粒度不匹配的问题:在缓冲区中可以调整数据块的大小,以适应不同的数据传输需求。

3. 设备独立性

设备独立性(Device Independence)是操作系统提供的一种特性,它允许应用程序独立于具体使用的物理设备。这意味着应用程序可以使用逻辑设备名称来请求使用某类设备,而系统在实际执行时,会将逻辑设备名称转换为物理设备名称。这样做的好处是:

  1. 执行所有设备的公有操作
    1. 独立设备的分配与回收
    2. 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序;
    3. 对设备进行保护,禁止用户直接访问设备
    4. 缓冲管理。对字符设备和块设备的缓冲区进行有效管理,以提高I/O的效率;
    5. 差错控制。由于在I/O操作中的绝大多数错误都与设备有关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。
  2. 向用户层(或文件层)软件提供统一的接口
    1. 无论何种设备,它们向用户所提供的接口是相同的
      如:对各种设备的读操作,在应用程序中都使用read,而对各种设备的写操作,则都使用write。

4. 磁盘访问时间及磁盘调度算法(平均寻道长度)

磁盘访问时间通常由以下几部分组成:
1. 寻道时间(Ts):磁头移动到指定磁道所需的时间。
2. 旋转延迟时间(Tτ):磁盘旋转到指定扇区所需的时间。
3. 传输时间(Tt):数据从磁盘读出或写入所需的时间。

磁盘调度算法的目标是最小化磁盘的平均寻道时间。常见的磁盘调度算法包括:
1. 先来先服务(FCFS):按照请求的顺序进行服务。
2. 最短寻道时间优先(SSTF):优先服务距离当前磁头位置最近的请求。
3. 扫描算法(SCAN):按照磁盘臂移动的方向,依次服务外侧的请求。不用到头,到最后一个请求后直接回头
4. 循环扫描算法(C-SCAN):规定磁头单向移动,循环服务外侧的请求。
平均寻道长度是指磁头移动到所有请求磁道的平均距离,它是评价磁盘调度算法性能的一个重要指标。不同的调度算法会产生不同的平均寻道长度,从而影响磁盘的整体性能。


第九章 文件管理

1. 文件的逻辑结构类型

文件的逻辑结构是从用户角度观察到的文件组织形式,主要分为以下两种类型:

  • 有结构文件(Structured File):由一个以上的记录构成,也称为记录式文件。记录的长度可以是定长的,也可以是不定长的。
  • 无结构文件(Unstructured File):由字符流构成,也称为流式文件

2. 文件目录的作用,多级目录

文件目录的作用主要是:

  • 实现“按名存取”:即通过文件名快速定位到文件的存储位置
  • 文件存储空间的管理。
  • 对文件及文件目录的管理:负责管理文件的属性信息,如文件大小、创建时间、权限等
  • 文件组织。
  • 提供文件共享和保护等机制。

多级目录结构(如树形目录结构)允许文件系统层次化组织,提高了检索效率允许重名便于实现文件共享。用户可以通过路径名访问文件,路径名指明了从根目录到目标文件的一系列目录项。

3. 三种文件的物理结构,即外存的组织方式类型的特点,适用场景

  • 连续分配:文件的所有盘块连续存储,形成顺序文件结构。这种方式的优点是访问速度快,适合顺序访问。缺点是容易产生外部碎片不利于文件扩展适用于只读文件
  • 链接分配:文件的盘块通过指针链接,形成链接文件。这种方式的优点是可以消除外部碎片,方便文件扩展。缺点是不适合随机访问,且管理开销较大。适用于内部经常变动的文件,如日志
  • 索引分配:通过索引块来记录文件的盘块号,形成索引文件。这种方式适合顺序访问和随机访问,易于实现记录的插入和删除,不会产生外部碎片。缺点是索引块可能占用较多空间,对于小文件索引块利用率低。操作系统目前使用的基本都是混合索引。

4. 文件存储空间管理:位示图

位示图是利用二进制的一位(bit)来表示磁盘中一个盘块的使用情况。若bit=0,则表示该盘块空闲;若bit=1,则表示已分配。

  • 优点:
    • 易于找到一个或一组相邻的空闲盘块。
    • 位示图体积小,可以存储在内存中,减少了磁盘I/O操作。
  • 分配过程:
    1. 顺序扫描位示图,找到值为0的位。
    2. 将找到的位转换成盘块号。
    3. 修改位示图,将0改为1。
  • 回收过程:
    1. 将回收的盘块号转换成位示图中的位置。
    2. 修改位示图,将1改为0。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

题型

一、单项选择题(15题,总分30分)
二、判断题(10题,总分10分)
三、选择填空(10空,总分10分)
四、应用题(3题,总分20分)
五、综合题(3题,总分30分)

  • 33
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个基于django的图书管理系统需要考虑以下几个方面的提纲: 1. 系统需求分析 - 确定系统的功能需求,如图书的管理、借阅、归还、查询等功能。 - 确定系统的用户角色和权限,如管理员、图书管理员、读者等角色的权限区分。 - 确定系统的性能需求,如并发访问量、数据存储量等。 2. 数据库设计 - 根据业务需求设计数据库表结构,如图书表、借阅记录表等。 - 设计合适的表关联关系,如图书与读者的关联关系、借阅记录与图书的关联关系等。 - 考虑数据库的性能优化,如建立索引、合理划分表等。 3. 用户界面设计 - 设计用户界面的布局和交互流程,如登录界面、主页、图书列表页面等。 - 选择合适的前端技术和样式框架,如HTML、CSS、Bootstrap等。 - 优化用户界面的交互体验,如表单验证、数据展示等。 4. 功能实现 - 使用django框架搭建系统的基础结构,如项目配置、路由设置等。 - 实现系统的核心功能模块,如图书管理模块、借阅管理模块等。 - 编写业务逻辑代码,如图书的增删改查、借阅操作等。 - 实现系统的安全控制,如用户认证、权限管理等。 5. 测试与部署 - 编写测试用例,验证系统的功能和性能。 - 进行系统的单元测试、集成测试和系统测试。 - 配置服务器环境和数据库环境,进行系统的部署和发布。 最后,还需要考虑系统的维护和后续功能扩展的需求。设计好图书管理系统的提纲是实施开发过程中的基础,能够提高开发效率和减少项目风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值