当前位置: 首页 > backend >正文

操作系统知识总结

自考本科段《操作系统》(课程代码 02326)考题核心点与题型总结


一、核心考点与知识点

第一章 操作系统概论

  • 基本概念
    操作系统的定义、功能 及特征?

    操作系统是计算机系统中的一个软件系统,它是这样一些程序模块的集合,它们能够有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序地执行,并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机,使整个计算机系统能够高效地运行。

计算机系统是由 硬件系统软件系统 组成的

计算机硬件系统包括 cpu、内存、外存、和各种类型的 输入输出设备

操作系统的功能主要可分为 进程管理、存储管理、文件管理、作业管理和设备管理

操作系统的特征: 并发性、共享性、随机性
操作系统的并发性是指处理器数量有限,多个程序在单个处理器上交替运行,它们每次占用处理器的时间相同,是在同一时间间隔内运行着的.
共享性是指操作系统程序与多个用户程序共用系统中的各种资源,这种共享性是在操作系统控制中实现的
资源共享的两种形式 互斥共享( 磁带机)和同时共享

研究操作系统的观点:

  1. 软件观点:外在特性–接口、内在特性–与硬件交互

  2. 资源管理的观点

  3. 进程的观点:把操作系统看作由多个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成。

  4. 虚机器观点:操作系统把原来的计算机(裸机)扩充成功能强大、使用方便的计算机系统,这种计算机系统被称为 虚拟计算机

  5. 服务提供者观点:提供了比裸机功能更强、服务质量更好、更方便灵活的虚拟机

windows 操作系统的体系结构采用了分层的模块结构,主要层次有:硬件抽象层 HAL、内核、执行体、大量子系统集合
unix 操作系统的体系结构,从内向外各层分别是 硬件层、操作系统内核层、系统调用层、应用层
Linux 操作系统体系结构:Linux 内核、Linux Shell、Linux 文件系统、Linux 应用程序
Android 操作系统体系结构,从高到低:应用程序层、应用框架层、系统运行库层、Linux 内核层

一般可以把操作系统分为三种基本类型,分别是批处理系统、分时系统和实时系统。

批处理操作系统

  1. 基本工作方式:用户将作业交给系统操作员,操作员收到一定数量的用户作业后组成一批作业,再输入到计算机中,这批作业在系统中形成一个连续的、自动转接的作业流。操作员然后启动操作系统,系统自动、依次执行每个作业,最后由操作员将执行完毕的作业结果交给用户。
  2. 特点:成批处理,用户自己不能干预自己作业的运行。发现作业无法及时改正。
  3. 优点:作业流程自动化较高、资源利用率较高、作业吞吐量大,从而提高了整个系统效率。
  4. 缺点:用户不能直接与计算机交互,不适合调试程序。

批处理操作系统按照用户预先写好的“作业说明书”控制作业的执行,实现计算机操作的“自动化”

分时系统:用户通过中断交互式向系统提出命令,系统采用时间片轮转方式处理服务请求。
特点:多路性、交互性、独占性、及时性

实时操作系统:需具备实时时钟管理、过载防护、高可靠性
嵌入式操作系统:微型化、实时性
操作系统结构研究的目标:系统模块化、模块标准化、通信规范化
常见的操作系统结构有:整体式结构、层次式结构、微内核(客户/服务器)结构

组成斯普林系统(SPOOLING)的程序有多个: 预输入程序、井管理程序、缓输出程序


第二章 操作系统运行环境

处理器一般由 运算器、控制器、一系列的寄存器、高速缓存 构成。

处理器:
中央处理器(CPU)唯一能直接访问的存储空间是寄存器
处理器的工作状态:
当系统处于目态(用户态)时,只能为用户提供服务,
当处于管态(内核态)时,既可以为用户服务,也可以做系统维护工作,如进程切换、调度页面、检测死锁等。
在系统调用中,调用程序运行在目态,被调用程序运行在管态。
系统启动时,处理器处于管态.

缓冲技术是用以缓解处理器处理数据速度与设备传输速度不相匹配的一种数据暂存技术。

处理器内通常有两类寄存器

  1. 用户可见寄存器:数据寄存器、地址寄存器、条件码寄存器
  2. 控制和状态寄存器:程序计数器 PC、指令寄存器 IR、程序状态字 PSW

指令分为:访问存储器指令、算数逻辑指令、I/O 指令、控制转移指令、处理器控制指令
特权指令:只能由操作系统 使用的指令,用户不允许使用。
非特权指令:用户使用
处理器的工作状态分为:管态(内核态/系统态/特权态)、目态(用户态/普通态)
当处理器处于管态时,可执行全部命令,可使用所有资源,并具有改变处理器状态的能力
当处理器处于目态时,就只有非特权指令才能执行。
目态到管态的转换唯一途径是通过中断。
管态到目态的转换可通过设置 PSW 指令(修改程序状态字)
程序状态字 PSW:指示处理器状态(为了解决处理器当前工作状态的问题)

包括以下状态代码:CPU 的工作状态代码、条件码、中断屏蔽码
存储器的类型:读写型存储器 RAM(存储随机存取的程序的数据)、只读存储器 ROM

块与位、字节场景:
计算机系统中存储数据的最小单位是“位”
在为用户分配内存空间时以“块”为最小单位
存储器以字节为编址单位
“虚拟存储”的存储单位是页
存储保护:
可实现存储保护的有界地址寄存器、地址越界保护和权限保护

存储分区的保护方法:界地址寄存器、保护键

例(1710 )当每个程序在主存中占一个连续的存储空间时,系统使用那两个寄存器来实现存储保护?
当处理器在目态下执行程序时,对每一个访问主存空间的地址都要进行核查,请写出访问地址与着两个寄存器值之间的关系。
答:基址寄存器、限长寄存器。基址寄存器的值<=访问地址<=限长寄存器的值

中断是由外部事件引发的,而异常是由正在执行的指令引发的。

典型的中断:
① 时钟中断,如时间片到时、硬件实时钟到时等;
② 输入输出(I/O)中断;
③ 控制台中断;
④ 硬件故障中断,由掉电、存储器校验错等由硬件故障引起的中断.
典型的异常:
典型的异常包括:
① 程序性中断,如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、
虚拟存储中的缺页等。
② 访管指令异常。

对一组并发进程来说,其中每一个进程都具有顺序性

各种程序和数据组成了计算机的软件系统

操作系统可通过"接口"为用户提供服务,其中提供程序开发人员是 “编程接口”

  1. 什么是程序性中断?程序性中断都必须由操作系统来完成吗?举例说明。

    • (1)程序性中断是指程序指令出错、指令越权或者指令寻址越界而引发的系统保护。
    • (2)不一定, 程序性中断也可以由程序自己完成,如系统调试中断和算术错误等。
  2. 例(1910)中断系统由哪两部分组成?请介绍计算机系统中典型的中断有哪些?

    • 答:硬件中断装置和软件中断处理程序。I/O中断、时钟中断、硬件故障中断、程序性中断、系统服务请求(自愿中断)
  3. 请简述中断和异常的区别;指出”时间片到时”、“算术溢出”、“掉电”和”虚拟存储中的缺页”分别属于哪种中断或异常?

    • (1)中断是由外部事件引发的,而异常则是由正在执行的指令引发的;
    • (2)时间片到时属于中断中的时钟中断,算术溢出属于异常中的程序性中断,
      掉电属于中断中的硬件故障中断,虚拟存储中的缺页属于异常中的程序性中断。
  4. 什么是中断?如果同一中断级中的多个设备接口中同时都有中断请求时,如何处理?

    • 答:中断是指处理器对系统中或系统外发生的异步事件的响应,
      如果同一中断级中的多个设备接口中同时都有中断请求时,可以采用固定优先数或轮转法。

应系统调用的目的:请求系统服务

第三章 进程与线程 ⭐⭐⭐

程序的顺序执行:一各具有独立功能的程序独占处理器直到得到最终结果。
特点:顺序性、封闭性、程序执行结果的确定性、程序执行结果的可再现性

程序的并发执行:两个或以上程序同时处于已开始且尚未结束的状态。
特点:在执行期间并发程序相互制约、程序与计算不再一一对应、执行结果不可再现、程序的并行执行(宏观上同时)和程序的并发执行(微观上同时)

进程:具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。

进程由程序、数据、进程控制块(PCB)三部分组成;

进程的特点: 并发性、动态性、独立性、交互性、异步性、结构性

三状态模型:运行状态、就绪状态、等待状态
五状态模型:运行状态、就绪状态、阻塞状态、创建状态、结束状态

进程与程序的区别?
程序是静态的,而进程是动态的;
进程是程序的一个执行过程,程序的存在是永久的,而进程是为了程序的一次执行而暂时存在的;
进程有生命周期,有诞生,亦有消亡;
一个进程可包括若干程序的执行,而一个程序亦可以产生多个进程;
进程具有创建其他进程的功能;被创建的进程称为子进程,而创建者称为父进程,从而构成进程家庭。

进程控制块的内容可分为 调度信息和 现场信息两大部分

什么是线程?

线程是进程中的一个实体,是处理器调度和分派的基本单元
线程只拥有少量在运行中必不可少的资源,但共享所属进程所拥有的全部资源。
线程可以提高系统程序内程序并发执行的级别,进一步提高系统效率。

在线程的两种实现方式中:用户级线程只存在于用户态中,与内核无关。内核级线程所有线程的创建、撤销、切换都由内核实现。

简答题

  • 线程的属性?

    • (1)每个线程都有一个唯一的标识符和一张线程描述表
    • (2)不同的线程可以执行相同的程序
    • (3)同一个进程中的各个线程共享该进程的内存地址空间
    • (4)线程是处理器调度和分派的基本单元
    • (5)一个线程被创建后便开始它的生命周期,直至终止;线程在生命周期内会经历等待状态、就绪状态、运行状态等各种状态地变化。
  • 在七状态进程模型中,什么是阻塞状态?什么是阻塞挂起状态?两个状态之间如何转换?(P85 - 86)

    • (1)进程阻塞:进程在内存并等待某事件的出现。
    • (2)阻塞挂起:进程在外存并等待某事件的出现。
    • (3)当没有进程处于就绪状态或就绪状态进程要求更多内存资源时,会把进程从阻塞状态转为阻塞挂起状态;当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起进程激活,变成阻塞状态。
  • 请简述计算机系统引入线程的好处?

    • ① 创建一个新线程花费时间少,因为创建线程不需另外分配资源。
    • ② 线程之间的切换花费时间少。
    • ③ 线程间的通信更简便,信息传送速度快。
    • ④ 线程能独立执行,能够充分利用和发挥处理器与外部设备并行工作能力。

进程控制块 PCB 是描述进程状态和特性的数据结构,PCB 是进程存在的唯一标识,一个进程只能有唯一的进程控制块。
操作系统中每创建一个进程就要为该进程建立一个 进程控制块,一个刚被创建的进程,它的初始状态为 就绪态

PCB 的内容:调度信息(描述进程当前状况)、现场信息(刻画进程的运行情况)
PCB 组织方式:线性方式、索引方式、链接方式

进程控制:对进程在整个生命周期中各种状态之间的转换进行有效的控制,通过原语实现。
原语是操作系统核心的一个组成部分,由若干条指令组成,用来实现某个特定的操作功能,执行时具有不可中断性

进程控制原语:创建原语、撤销原语、阻塞原语、唤醒原语

阻塞原语过程:首先中断处理器的执行,把处理器的当前状态保存在 PCB 的现场信息中,然后把进程的当前状态置为等待状态,并把它插入到该事件的等待队列中。

唤醒原语过程:在等待队列中找到该进程,将进程的当前状态置为就绪状态,然后将它从等待队列中撤出并插入到就绪队列中排队,等待调度执行。

例(1810)进程控制通过进程控制原语来实现,请分别描述创建原语和撤销原语的操作过程。

答:
(1)创建原语:先申请一个空闲PCB区域,将有关信息填入PCB,置该进程为就绪状态,
最后,把它插入就绪队列中。
(2)撤销原语:找到要被撤销进程的PCB,将它从所在队列中消去,
撤销属于该进程的一切“子孙进程”,释放被撤销进程所占用的全部资源,并消去被撤销进程的PCB

例(1710)请分别从资源分配、创建速度、通信、并行执行效率的角度简述多线程技术优势

答:
(1)创建线程无需另外分配资源,而创建进程需分配资源
(2)因为创建线程无需分配资源,因此速度比创建进程快
(3)线程间通信在同一地址空间中进行,不需额外的通信机制,所以通信简单,信息传递速度更快。
(4)线程能独立执行,充分利用,发挥处理器与外围设备并行工作的能力。

管程中的共享变量在管程外部是不可见的,外部只能通过调用管程中所说明的外部过程来间接地对其进行访问。

进程调度:从就绪进程中选取一个进程,让它占用处理器

例(1910)什么是进程调度?在设计调度算法时通常使用吞吐量、周转时间和处理器利用率作为衡量指标,请解释吞吐量和周转时间的含义。

答:
进程调度:即处理器调度,是指根据一定的调度算法,系统从就绪队列中选择一个进程,把处理器分配给它。
吞吐量:指系统每小时完成的进程数量。
周转时间:指从一个批处理进程提交时刻开始直到该进程完成时刻为止的统计平均时间

处理器的调度方式分为 抢占式、非抢占式

调度算法的设计目标:资源利用率高、公平、平衡、强制执行策略

进程调度算法:

  1. 先来先服务算法 FCFS:进程按照它们请求处理器的顺序使用处理器。公平、简单
  2. 最短进程优先算法 SJF
  3. 最短剩余时间优先算法 SRTN
  4. 最高响应比优先算法 HRRF:
    响应比 Rp =(等待时间 + 预计运行时间)/预计运行时间 = 周转时间/预计运行时间
  5. 轮转算法 RR
  6. 最高优先级算法 HPF
  7. 多级反馈队列算法:综合先进先出、时间片轮转、可抢占式最高优先级算法

例(1904)什么是轮转调度算法?请分析时间片长短对算法性能的影响。

答:
(1)轮转调度算法是指将处理器的处理时间划分成一个个时间片,就绪队列中的诸进程轮流运行一个时间片。
当时间片结束时,就强迫运行进程让出处理器,该进程进入就绪队列,等待下一次调度。
(2)时间片太短,进程切换频繁,加重系统开销。时间片太长,引起对短的交互请求的响应时间变长。

对内核的各种功能调用通过执行原语操作实现

第四章 进程的同步与互斥 ⭐⭐⭐⭐

在逻辑上具有某种联系的进程称为相关进程,在逻辑上没有任何联系的进程称为无关进程

对于相关进程来说,可能有若干并发进程同时使用共享资源,形成交替使用共享资源,结果就会形成与时间相关的错误。

进程的同步:进程之间一种直接的协同工作关系,一些进程相互合作,共同完成一项任务。

进程的互斥:各进程间互斥的使用资源,是进程间的一种间接制约关系。

临界资源:一次只允许一个进程使用的资源。

如果有若干进程共享某一临界资源,则该临界区称为相关临界区。

相关临界区的调度使用原则:有空让进、无空等待、多中择一、有限等待、让权等待

信号量:一个用于标识资源数目的整型量 S。

信号量是个被保护的量,只有 P、V 操作和信号量初始化操作才能访问和改变它的值。

PV 操作是供进程调用,执行时不可中断的过程,操作系统通常称这种过程为 原语

信号量 S 表示某类可用的临界资源。
当 S > 0 时,S 值的大小表示某类可用资源的数量。
当 S < 0 时,S 的绝对值表示排在 S 信号量的等待队列中进程的数目。
每执行一次 P 操作,意味着请求的进程分配到一个资源
每执行一次 V 操作,意味着进程释放了一个资源。
P、V 操作在使用时必须成对出现;
互斥操作时,它们同处于同一进程;
同步操作时;不在同一进程;
既有同步又有互斥时,同步 P 操作在互斥 P 操作前,V 操作顺序无关紧要。

例 有 m 个进程共享一临界资源,若使用信号量机制来实现临界资源的互斥访问,则该信号量的最小取值是 1 - m
解析: 因为互斥信号量的初值为 1,执行一个 p 操作,此时信息号会减 1,m 个进程,执行 m 次 p 操作,那么最小值就为 1 - m

例 用 PV 操作正确管理进程互斥使用某共享资源情况下,假定现在有 n - 1 个进程(n >= 3)
在等待使用资源,那么调用过 p 操作的进程数至少是 n

请简述临界区的使用规则?

  • ① 当临界区为空时,若有一个进程要求进入临界区,应允许它立即进入临界区;
  • ② 若有一个进程已在临界区时,其他要求进入临界区的进程必须等待;
  • ③ 当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中一个进入临界区,其他进程必须等待;
  • ④ 任一进程进入临界区的要求应在有限时间内满足;
  • ⑤ 处于等待状态的进程应放弃占用处理器。

管程能保障共享资源的互斥执行,即一次只能由一个进程可以在管程内活动。

一个管程是由过程、变量及数据结构等组成的一个集合

管程定义了一个共享变量的数据结构,以及在该数据结构上所执行的一组操作。

管程由四个部分组成:管程名称、共享数据的说明、对数据进行操作的一组过程和对共享数据赋初值的语句

管程三个主要特性:模块化、抽象数据类型、信息隐蔽

管程中的共享变量在管程外部是不可见的,外部只能通过调用管程中所说明的 外部过程(函数) 来间接的对其进行访问。

进程通信是一种高级通信方式,可以实现进程间交换大量信息

解决进程间大量通信的问题有 共享内存、消息机制、管道通信;这三种方式可以称为高级通信原语,它们不仅要保证相互制约的进程间的正确关系,还要同时实现进程之间的信息交换。

**消息机制:**消息缓冲通信、信箱通信、管道通信

从操作系统角度来看,可将进程分为系统进程和用户进程两类

进程调度算法的任务是对各个就绪的进程进行处理器分配,以达到预定的进程调度目标;

常用的算法:先来先服务算法、最高优先级算法、多级列反馈算法

第五章 死锁⭐⭐⭐⭐

  • 死锁:死锁的四个必要条件、预防策略(如银行家算法)、检测与恢复方法。

什么是死锁?产生死锁的两个主要原因是什么?

死锁是多道程序系统中的一种现象,一组进程的每一个进程均无限地等待该组进程中另一个进程所占有且永远无法释放的资源

产生死锁的两个主要原因:

  • 一是竞争资源,系统提供的资源数量有限,不能满足每个进程的需求;
  • 二是多道程序运行时,进程推进顺序不合理

死锁产生的四个必要条件:互斥条件、不可剥夺条件、请求和保持条件、循环等待条件
只要发生死锁,则产生死锁的四个必要条件一定成立。

解决死锁的方法:预防死锁、避免死锁、检测与解除死锁、忽略死锁

  1. 预防死锁:
    • 资源的静态分配策略(破坏了不可剥夺条件、破坏了 请求和保持条件 )、资源的有序分配法(破坏了循环等待条件–哲学家就餐分配问题)
  2. 避免死锁:
    • 银行家算法:确保系统处于 安全状态 时才把资源分配给申请的进程,避免发生死锁。
  3. 检测与解除死锁:
    • 死锁检测的实质是通过检测是否存在循环等待条件,以此来确定死锁的存在与否,并识别出与死锁有关的进程和资源。

    • 死锁检测的时机:(1)一次资源分配后、(2)每次调度后、(3)定时器定时运行检测、(4)当系统中某个进程长期位于阻塞状态或阻塞进程过多时

    • 死锁的解除方法:剥夺资源、撤销进程

死锁避免的条件:假设每个进程最多申请 m 个资源单位。
为避免死锁,系统需满足以下条件:
总资源数 - 进程数 x (m - 1) >= 1

例(1910)某系统中有 10 台打印机,有 3 个进程 P1、P2、P3 分别需要 8 台,7 台和 4 台。若 P1,P2,P3 已申请到 4 台、2 台、2 台。试问:(1)系统目前还有几台可申请的打印机?各进程还需要几个打印机?(2)目前系统是否处于安全状态?为什么?

  • 答:(1)目前系统还有 2 台可申请的打印机。进程 P1,P2,P3 分别需要 4 台、5 台、2 台。
  • (2)系统处于安全状态。根据目前的各进程资源分配情况,可以先分配 2 台打印机给进程 P3 达到它最大需要,然后 P3 释放其原来占有的打印机,系统就会有 4 台打印机,然后分配给进程 P1 达到它最大需求,这时系统有 8 台打印机,可满足进程 P2 最大需要,所以系统目前处于安全状态。

资源有向分配图:判定死锁的法则,又称为死锁定理。
圆圈表示进程,方框表示每类资源,框中的圆点表示资源实例,申请边是从进程到资源的有向边,分配边便是从资源到进程的有向边。

  • (1)如果资源分配途中没有环路,则系统没有死锁。
  • (2)如果资源分配图中出现了环路,则系统中可能存在死锁
  • (3)如果处于环路中的每个资源类中均中只包含一个资源实例,则环路的存在即意味着死锁的存在,此时,环路是死锁的充分必要条件。
  • (4)如果处于环路中的每个资源类中资源实例的个数不全为一,则环路是死锁的必要条件

资源分配图化简:

  • (1)在资源分配图中,找出一个既非等待又非孤立的进程结点 P,运行后释放它所占的全部资源,使之称为孤立结点。
  • (2)将 P 所释放的资源分配给申请它们的进程
  • (3)重复(1)(2),直到找不到符合条件的进程结点。
    经过化简后,若能消去资源分配图中的所有边,则该图是可完全化简的。

例(1904)简述死锁预防与死锁避免这两种死锁解决方法的含义

  • 答:死锁预防是系统预先确定资源分配策略,这些策略至少能破坏死锁四个必要条件中的一个,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
  • 死锁避免是当进程提出资源申请时,系统先测试资源分配后系统的安全状态,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。

简答题:防止死锁发生时可采用什么策略来使循环等待资源的条件不成立?这个策略如何应用到 5 个哲学家就餐问题中?

  • (1)对资源采用按序分配的策略。(2 分)修改第 5 个哲学家的程序,即规定每个哲学家想吃面条时,总是从自已左右两旁的筷子中先取编号小的筷子,再取编号大的筷子;对于第 5 个哲学家,
    他必须先拿到右边的编号小的筷子,然后才能拿左边的筷子。(2 分)
  • (2)可以采用静态分配资源策略。修改哲学家程序,每个哲学家只有当左右两个筷子都空闲时,哲学家才能拿起筷子就餐。
    (提示:以上两种方法,任一种方法都正确)

可再入程序”的概念和特点

  • ① 一个能够被多个用户同时调用的程序称作是“可再入”的程序;
  • ②“纯”代码的程序,程序在执行中不会修改自身的代码;
  • ③ 要求调用者提供专用工作区,以保证程序以同样的方式为各用户服务。

第六章 存储管理

存储管理的任务包括内存的分配和回收、存储共享、存储保护和“扩充”内存容量.

绝对地址对应的存储空间称为 物理地址空间,逻辑地址对应的存储空间称为逻辑地址空间

把逻辑地址转换成物理地址的过程称为 地址重定位/地址转换/地址映射

重定位的方式:动态重定位、静态重定位

动态重定位:在程序装入时 不进行 地址转换,而是直接将程序装入到分配的内存区域中,程序运行过程中,再将指令中的 逻辑地址 转换为绝对地址

动态重定位:由软件和硬件相互配合来实现

地址动态重定位方式适用于 可变分区存储管理、页式存储管理、页式虚拟存储管理

静态重定位:地址转换工作是在 程序开始执行前 集中完成的
分区方式有: 固定分区、可变分区
固定分区:把内存划分成若干个大小固定的分区,每个分区只装入一道作业
可变分区:系统不预先划分固定分区,而是在程序装入时划分内存分区,使为程序分配的分区的大小正好等于该程序的需求量,且分区的个数可变。可变分区有较大的灵活性,较之固定分区能获得较好的 内存利用率。
紧缩技术:通过移动内存中的程序,把 所有空闲碎片合并成一个连续的大空闲区且放在内存的一端,把 所有程序占用区 放在内存的另一端。

查找和分配空闲的分配算法:最先适应算法、最优适应算法、最坏适应算法

  • 最先适应算法(按顺序找到第一个适配的空闲分区)
  • 最优适应算法(找到大小差不多合适的空闲分区)
  • 最坏适应算法(总是找最大的空闲分区进行分配)
    分区回收:若有相邻空闲区,则合并为一个。

例 在可变分区存储管理中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数 - 2 的情况是,有上邻空闲区,也有下邻空闲区

分区的保护:保护键方法、设置界限寄存器

覆盖技术:把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构使哪些不会同时执行的程序段共享同一块内存区域。
交换技术:将系统中不再运行中的进程或其一部分从内存中调出,让出内存空间以调入其他需要内存空间的进程
采用覆盖技术与交换技术的目的是 节省内存空间以扩充内存。

内存分配方式: 静态分配、动态分配

内存共享:使多个进程共用内存中相同区域,包括代码共享和数据共享

最简单的存储管理方案: 分区管理

存储管理部件首先把内存分成大小相等的许多区,把每个区称为“物理页面”,也就是“块”。

虚拟存储技术的基本思想是在硬件支持下把内存和外存统一进行管理;
利用大容量的外存来扩充内存,产生一个比有限的实际内存空间大得多的逻辑的虚拟内存空间,达到扩充内存的目的;

采用页式存储管理的目的是提高内存的利用率,采用虚拟存储技术的目的扩充内存容量
实现虚拟存储器需要以下的硬件支持:系统有容量足够大的外存。系统有一定容量的内存。最主要的是,硬件提供实现虚 - 实地址映射的机制。
虚拟技术同交换技术在原理上是类似的,其区别在于,交换技术是以进程为单位进行的,而虚拟存储一般以页为单位。

例(1810)虚拟存储器的工作原理是什么?

  • 答:当进程开始运行时,先将程序的一部分装入内存,另一部分暂时留在外存,当要执行的指令不在内存时,系统自动完成将它们从外存调入内存的工作,当没有足够的内存空间时,系统自动选择部分内存空间,将其原有的内容交换到磁盘,并释放这些内存空间ÿ
http://www.xdnf.cn/news/6734.html

相关文章:

  • 丝杆升降机最大载荷的工程力学解析与选型实践
  • 懒汉式单例模式的线程安全实现
  • ros2中自定义的package查不到?
  • 事件响应策略规范模版
  • 基于Unity的简单2D游戏开发
  • [特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?
  • springboot连接高斯数据库(GaussDB)踩坑指南
  • 杰理ac696配置mic
  • 二水平设计的单次重复
  • 【Shell的基本操作】
  • jvm第一篇《内存与垃圾回收》学习笔记第一章jvm初始
  • 电平匹配电路
  • windows下找出时间大于某时间的附件
  • JavaScript - JavaScript 运算符之圆括号运算符与方括号运算符(圆括号运算符概述、圆括号运算符用法、方括号运算符概述、方括号运算符用法)
  • 最新开源 TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人 | 社区来稿
  • [ linux-系统 ] 进程优先级 | Linux内核O(1)算法
  • 解决uni-app开发中的“TypeError: Cannot read property ‘0‘ of undefined“问题
  • 51单片机的lcd12864驱动程序
  • 裸金属服务器和云服务器之间的差别
  • ansible进阶06
  • NX二次开发C#---遍历当前工作部件实体并设置颜色
  • SQL练习(6/81)
  • 【Linux】Linux安装并配置MongoDB
  • 游戏引擎学习第285天:“Traversables 的事务性占用”
  • 基于51单片机和8X8点阵屏、矩阵按键的匹对消除类小游戏
  • 服务器性能参数分析基础:磁盘-CPU-内存
  • 关于如何本地启动xxl-job,并且整合SpringBoot
  • 最新模型集合(仅用于个人收集)
  • 前端批量下载文件打包为zip
  • 【Unity】用事件广播的方式实现游戏暂停,简单且实用!