操作系统知识点小结

808 阅读22分钟

1. 大题

一 缺页

FIFO先进先出看物理页 谁先进谁先出

OPT未来时间最远被访问的,就看页面走向右边最远的就行了。最佳置换算法

LRU最久未使用不是看物理页行里的长度,是看页面走向行谁最远(向左看)

image-20231226105422972

二 计算物理地址

  1. 先看每页对应了多少字节
  2. 求页号逻辑地址对每页的字节数取余
  3. 找到块号
  4. 块内地址等于取余的余数
  5. 地址转换 :物理地址=块号*块长+块内地址

image-20231226110012920

三 银行家算法

1.正常算法

image-20231226113018735

根据available来画出下表

  1. work第一行就是上表中的avaliable
  2. 判断available与上表里面的need那个匹配(need<=avaliable)
  3. need该进程所需要的资源数(copy就行)
  4. allcation就是已经分配的资源数(copy就行)
  5. work加上allcation

image-20231226113259403

2.p1请求资源

image-20231226113738889

上表变化为 用下面这个表来列表计算

image-20231226113820910

四 磁盘调度

150个柱面的作用你可以这么理解 你只能从0数到150

1. 先来先服务算法

image-20231226115151094

2.最短寻道时间优先

  1. 先画一个路程轴 根据轴来找最近的路程。

  2. 然后画出磁头移动顺序就好了。

image-20231226120126633

3.scan 算法

向左向右两种移动顺序

image-20231226120524235

4. c scan算法

向左以后 到头了 直接就是到最右边

向右以后 到头了 直接就是到最左边

image-20231226120806008

五 进程调度

1.先来先调度

  • 结束时间=开始时间+执行时间
  • 等待时间=开始时间- 到达时间
  • 周转时间=结束时间-到达时间
  • 带权周转时间=周转时间/执行时间

image-20231226121647959

2. 短作业优先

这是非抢占

0时刻只有p1-> 执行p1-> 执行p1时间内(p2,p3,p4都在等待)->计算出谁的作业时间最短->谁就先执行

image-20231226122638491

抢占式用gantte图

image-20231226123830759

3. 高响应比优先调度算法

  • ==tips==这里有个坑就是当p1执行以后需要八分钟执行完,其他进程的等待时间是(8-该进程到达的时间)

这个算法就是为了让等待时间长的和执行时间短的任务先执行

进程1 进来执行->p2,p3,p4陆续到达队列(p1尚未执行完成)->计算p2,p3,p4的优先权->优先权大的先执行

image-20231226124132083

六. 有效访问时间

image-20231226124723883

七. 可变内存分配

image-20231226190138432

八 . 文件管理系统

image-20231227102125671

tips:

  1. 一页的大小=页内位移数
  2. 页表的大小=每个页表项大小}*总的页面数
  3. 总的页面数=页号的大小
  4. 进程的总长度可以通过将页号最大的页加上1,然后乘以每页大小来计算

2. 简答题

第一章 操作系统概述

1.三种操作系统

什么是操作系统

操作系统:是一组有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

操作系统目的算法
多道批处理系统多道程序设计的引入能够提高系统的吞吐量CPU的利用率,单对某一作业的执行时间不可能缩短,还有可能延长。短作业(进程)优先调度算法
分时操作系统用于满足用户的需求,方便用户使用计算机——交互性的需求。时间片轮转调度算法
实时操作系统旨在能够使紧急任务得到及时、可靠的处理优先级高者优先调度算法,在实时性要求比较高的系统中,还采用抢占式的调度算法。

为什么分时系统具有交互性,而批处理系统不具有交互性?

  • 分时系统: 这类系统设计用于支持多用户同时访问计算机系统。每个用户都有一个独立的终端,他们可以通过键盘和显示器与计算机进行交互。分时系统能够快速地响应用户的输入。
  • 批处理系统: 在批处理中,一组任务一起提交给系统,系统会按照预定的顺序逐一执行它们,而没有实时的用户交互。

为什么分时系统能实现及时性,而批处理系统无法实现及时性?

  • 分时系统: 每个用户都期望在短时间内得到系统的响应,而分时系统通过快速地切换任务,实现了较低的响应时间。
  • 批处理系统:批处理通常是按照计划执行的,可能需要等到一组任务完成后才能得到结果。这种延迟使得批处理系统无法提供像分时系统那样的实时性。

2.并发性 并行性

并发性:

  • 定义: 并发性是指操作系统可以处理多个独立的任务(进程)同时存在的能力。并发性使得多个进程能够在一段时间内交替执行,从而提高系统的效率和资源利用率。

并行性:

  • 定义: 并行性是指系统中多个任务真正同时执行的能力。

并发与并行的区别:

  • 并发: 多个任务在时间上交替执行,共享处理器资源,但在同一时刻只有一个任务处于执行状态。它侧重于提高系统资源的利用率。
  • 并行: 多个任务在同一时刻真正同时执行,每个任务使用独立的处理器或计算资源。并行性侧重于加快任务的执行速度。

3.虚拟性

虚拟性:

定义:

虚拟性是指在操作系统中创建对物理资源的一种抽象,表现为把一个物理实体转变为若干个逻辑实体。

OS中实现虚拟性的方式:

  • 时分复用技术:

    • 时间片轮转: 将处理器时间划分为小的时间片,每个进程在一个时间片内运行,然后切换到下一个进程。这种方式使得多个进程看起来在同时运行,实现了虚拟的并发性。

    • SPOOLing:在假脱机(SPOOLing)系统中,实际上并没有为任何进程分配设备,而只是在磁盘缓冲区中为进程分配一个空闲盘块和建立一张I/O请求表。这样,便把独占设备改造为共享设备。

  • 空分复用技术:

    • 虚拟磁盘: 将磁盘空间抽象为一个逻辑上更大的空间,允许文件系统使用这个虚拟的空间,而不受实际物理磁盘大小的限制。
    • 虚拟内存:部分硬盘空间作为扩展的内存使用,以提供更大的地址空间给应用程序。这使得程序可以在物理内存不足的情况下运行,并能够更灵活地管理内存。

4.异步性

异步性:

  1. 定义: **异步性是指系统中的各个组件(进程、任务等)的执行顺序不是事先确定的,而是由外部事件的发生和处理速度来决定。**在异步系统中,各个组件的执行顺序不是静态预定的,而是动态变化的。
  2. 产生异步性的原因:
    • 外部事件: 异步性的主要原因是外部事件的发生,这些事件可能是用户输入、硬件中断、网络消息等。这些事件的发生时间是不可预测的,因此系统需要异步地响应这些事件。
    • 多任务环境: 在多任务操作系统中,多个任务可能同时运行,它们的执行顺序受到任务调度器的控制,也是异步的。

推动操作系统发展的因素有什么 简述一下

  1. 硬件发展: 进步的硬件技术是操作系统发展的主要推动力之一。
  2. 应用需求: 随着计算机应用领域的不断扩大和多样化,对操作系统的需求也在不断变化。
  3. 安全性和可靠性需求: 随着计算机系统在个人和企业中的广泛应用,对操作系统的安全性和可靠性提出了更高的要求。
  4. 用户体验: 操作系统的发展也受到用户体验的影响。用户对于友好的界面、高效的操作和个性化定制的需求推动了操作系统在用户界面设计、交互方式和用户体验方面的不断改进。
  5. 法规和政策: 随着信息技术的普及,政府和行业组织对于计算机系统的管理提出了一系列法规和政策。这些法规要求操作系统具备一定的安全性、隐私保护和合规性,推动了操作系统在这些方面的发展。

第二章 进程管理

1. 名词解释

  • 临界区(Critical Section): 临界区是一段代码或程序段,其中包含访问共享资源(如变量、文件、内存等)的代码。
  • 临界资源(Critical Resource): 一次只允许一个进程访问的资源成为临界资源。
  • 进程(Process): 进程是计算机系统中正在执行的程序的实例。进程是资源分配和调度的基本单位,每个进程都有自己的内存空间、代码、数据、系统资源等。

进程(Process)与线程(Thread)

  • 线程:操作系统进行运行调度的最小单位
  • 进程:系统进行资源分配和调度的基本单位

2.进程的三种基本状态

  • 这里还有两种状态一个是创建一个是终止

img

进程的三种基本状态,以及引起进程状态转换的事件:

  • 就绪(Ready): 进程已经准备好运行,等待被调度执行。
  • 执行(Running): 进程正在执行,使用CPU资源。
  • 阻塞(Blocked或Waiting): 进程由于某些原因(如等待I/O操作完成、等待资源等)而暂时停止执行。

引起进程状态转换的事件包括:

  • 从就绪到执行: 调度程序选择该进程来执行。
  • 从执行到就绪: 时间片用完或被更高优先级的进程抢占。
  • 从执行到阻塞: 进程执行了一个需要等待某事件发生的操作。
  • 从阻塞到就绪: 该进程等待的事件已经发生,如I/O操作完成。

3.原语

  • 原语: 原语是一个不可中断的操作或一组操作,用于确保某些关键操作的原子性,即它们要么全部执行,要么全部不执行。
  • 原语的特点:
    • 原子性: 原语的操作是不可分割的,要么完全执行,要么完全不执行。
    • 不可中断: 在原语执行期间,系统不会进行上下文切换或中断。
  • 实现原子性的方式:
    • 中断屏蔽: 在执行原语时,禁用所有中断,以确保原语操作不会被打断。
    • 硬件支持: 有些处理器提供特殊指令或硬件支持,可以用来实现原语操作的原子性。
    • 锁机制: 使用锁或信号量等同步机制来确保在关键部分只有一个进程或线程可以执行,从而实现原语的原子性。

4.记录型信号量与条件变量的区别

关注点操作方式用途
记录型信号量资源的数量增加和减少计数控制对有限资源的访问
条件变量线程之间的等待和通知通常与锁结合使用,涉及等待和唤醒操作用于线程之间的协调

两者相同点

  1. 同步机制: 信号量和条件变量都是用于在多线程或多进程中协调和同步不同执行单元的机制。
  2. 解决竞态条件: 两者都可以用于解决竞态条件(Race Condition)问题,即多个线程或进程同时访问共享资源导致的问题。
  3. 临界区管理: 信号量和条件变量都可以用于实现临界区(Critical Section)的管理,确保在同一时间只有一个执行单元能够进入临界区。

5.信号量 S.value 取值的含义

s.value>0:表示还有 S.value 个可供分配的资源,没有等待资源的进程

s.value=0:表示没有可供分配的资源,也没有等待资源的进程

s.value<0:表示没有可供分配的资源,等待资源的进程数量为|S.value|

进程和线程在操作系统中分工

  • 在操作系统中,进程是独立的执行单元,拥有独立的资源和地址空间,用于执行独立任务。
  • 线程是进程内的执行单元,共享进程的资源,用于并发执行任务,提高程序性能。
  • 简而言之,进程用于独立任务的隔离,线程用于任务内的并发

第三章 CPU 调度与死锁

名词解释:

  • 系统吞吐量(System Throughput): 衡量在单位时间内系统完成的任务数量。
  • 周转时间(Turnaround Time): 从作业提交到作业完成所经过的总时间。
  • 响应时间(Response Time): 从用户发出请求到系统做出响应的时间。
  • 安全状态(Safe State): 在进程调度中,安全状态是指系统能够按照某种调度顺序成功完成所有进程的执行,而不会发生死锁。
  • 不安全状态:若系统中不存在安全(分配)系列,称系统处于不安全状态。
  • 死锁两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。

为什么说高响应比优先作业调度算法是当前最好的作业调度算法?

  1. 综合考虑等待时间和服务时间:更全面地评估作业的相对重要性。
  2. 短作业优先:提高系统的响应速度
  3. 公平性 :相对公平地分配CPU资源
  4. 避免饥饿:防止发生饥饿现象。

为什么说多级反馈队列调度算法能全面考虑各种作业类型

  1. 多级别队列: 这种调度算法将就绪队列划分为多个不同优先级的队列。
  2. 动态调整优先级: 允许进程根据其行为和执行情况在不同队列之间动态移动。
  3. 公平性与响应时间: 通过设定不同队列的时间片大小或优先级,多级反馈队列调度算法能够平衡系统的公平性和响应时间。
  4. 适应性: 多级反馈队列调度算法具有适应性,能够根据不同作业的特性进行调整。

1.死锁的四个必要条件:

  1. 互斥条件:必须互斥使用资源才会产生死锁;

  2. 请求保持条件:进程至少保持一个资源,又提出新的资源请求,新资源被占用,请求被阻塞,被阻塞的进程不释放自己保持的资源;

  3. 不可剥夺条件:进程获得的资源在未完成使用前不能被剥夺(包括OS),只能由进程自身释放;

  4. 环路等待条件:发生死锁时,必然存在进程-资源环形链,环路等待不一定造成死锁,但是死锁一定有循环等待。

2.死锁的处理策略:

一.预防死锁的方法:

破坏四个必要条件的中一个或多个。

  1. 破坏互斥条件:将临界资源改造成共享资源(Spooling池化技术);(可行性不高,很多时候无法破坏互斥条件)
  2. 破坏请求保持条件:系统规定进程运行之前,一次性申请所有需要的资源;(资源利用率低,可能导致别的线程饥饿)
  3. 破坏不可剥夺条件:当一个进程请求新的资源得不到满足时,必须释放占有的资源;(实现复杂,剥夺资源可能导致部分工作失效,反复申请和释放造成额外的系统开销)
  4. 破坏环路等待条件:可用资源线性排序,申请必须按照需要递增申请;(进程实际使用资源顺序和编号顺序不同,会导致资源浪费)

二.银行家算法

检查当前资源剩余是否可以满足某个进程的最大需求;如果可以,就把该进程加入安全序列,等待进程允许完成,回收所有资源;重复1,2,直到当前没有线程等待资源;

三.死锁的检测和解除

死锁检测算法,资源剥夺法,撤销进程法(终止进程法),进程回退法;

第四章 存储器管理

名词解释:

重定位: 把在装入时对目标程序中指令和数据地址的修改过程

物理地址: 物理地址是内存中实际存储单元的唯一标识。

逻辑地址:逻辑地址是程序中使用的地址。

逻辑设备:是以功能和特点相区别的一类设备。

对换:是指将整个进程从内存移到外存(通常是硬盘)或反之的过程。

1.分页系统中正在执行进行的页表起始地址及长度存在页表寄存器中,在该寄存器中除了存放页表起始地址,还存储页表的长度有何作用?

  1. 存放页表起始地址通过页表起始地址,操作系统可以访问到页表中的条目,进而了解虚拟地址到物理地址的映射关系。
  2. 存储页表的长度:存储页表的长度是为了确保在进行地址转换时不会越界。
  3. 地址合法性检查:通过比较虚拟地址和页表长度,操作系统可以确保地址的合法性
  4. 快速计算:页表的长度信息有助于提高地址转换的效率。

第五章 虚拟存储器

1.缺页中断和一般的中断处理比较有何相同点和不同点

相同点:

  1. 中断机制: 缺页中断和一般的中断都是计算机系统中的中断机制的一部分。
  2. 引发操作系统处理: 两者都会导致处理器转移控制权到操作系统内核。

不同点:

触发原因处理流程影响范围
一般中断由硬件或软件产生根据中断类型,操作系统会调用不同的中断处理程序来处理特定的中断事件。可能涉及广泛的硬件或软件事件
缺页中断由程序试图访问的虚拟内存页面不在物理内存中引起需要将缺失的页面加载到物理内存,然后重新执行导致缺页中断的指令。特定于虚拟内存系统,仅在程序访问虚拟内存时发生。

2.根据进程分配到的数据块数(固定、可变)和缺页时的置换范围(局部、全局),系统可采用的内存分配策略有哪些?

  1. 固定分区分配:
    • 数据块数: 固定,预先划分好的固定大小的分区。
    • 置换范围: 局部,每个分区内部进行页面置换。
    • 特点: 简单,但可能造成内存碎片。
  2. 动态分区分配:
    • 数据块数: 可变,根据进程的需求动态分配。
    • 置换范围: 局部,每个进程内部进行页面置换。
    • 特点: 更灵活,但可能导致外部碎片。
  3. 页式存储管理:
    • 数据块数: 固定大小的页。
    • 置换范围: 全局,整个系统进行页面置换。
    • 特点: 简化了内存管理,但可能会导致较大的页表。
  4. 段式存储管理:
    • 数据块数: 按逻辑段划分。
    • 置换范围: 局部,每个段内进行页面置换。
    • 特点: 适用于不同类型的数据,减少了内部碎片。

第六章 设备管理

名词解释

SPOOLing: SPOOLing是一种用于提高计算机系统性能的技术,通过将任务暂时存储在磁盘或其他介质上,使得输入/输出设备和计算机中央处理单元(CPU)可以并行工作。

虚拟设备: 虚拟设备是指通过软件模拟的设备,而不是依赖于物理硬件。

1. I/O 设备按信息交换的单位分类

分为:

特点典型设备驱动方式
块设备存储型设备、有结构、可随机读写;磁盘DMA方式、通道方式
字符设备I/O 设备、无结构、不可寻址;交互式终端中断驱动方式

2.分析io控制的发展历程中,os是如何从繁杂的io工作中解脱出来的?

轮询---->中断----->dma---->通道

  1. 轮询(Polling): 最初,OS采用轮询方式来管理IO设备。因为它需要持续地查询每个设备的状态,造成了CPU浪费。
  2. 中断(Interrupts): 中断是IO控制的重大进步。这种方式减少了CPU的空闲时间,提高了系统的效率。
  3. DMA(Direct Memory Access): DMA是一种让IO设备直接和内存交换数据的技术,而不需要CPU的介入。这种方式大大减轻了CPU的负担,提高了IO操作的效率。
  4. 通道(Channel): 通道是连接主存储器和外部设备的高速通路,它有自己的处理器(通道控制器),可以独立地执行IO操作。进一步减轻了CPU的负担,使得IO操作更加高效和可靠。

SPOOLing系统主要有以下三部分: (1) 输入井和输出井。 (2) 输入缓冲区和输出缓冲区。 (3) 输入进程和输出进程。 img

3.如何实现打印机的共享(即虚拟打印机是如何实现的)——假脱机技术

  1. 在系统中安装一个虚拟打印机驱动程序。
  2. 当用户发送打印任务时,任务被送入虚拟打印机的任务队列。
  3. 虚拟打印机驱动程序负责将任务转发给实际的物理打印机。
  4. 虚拟打印机会显示为脱机状态。
  5. 虚拟打印机驱动程序负责将任务传输到实际的物理打印机,完成打印操作。

4.设备独立性的实现——使用 LUT(逻辑设备表)逻辑设备名到物理设备名的映射。

  1. 建立逻辑设备表(LUT)
  2. 应用程序使用逻辑设备名标识目标设备
  3. 操作系统通过查找逻辑设备表,将逻辑设备名映射到对应的物理设备名。
  4. 操作系统将操作传递给实际的硬件设备。
  5. 逻辑设备表的映射关系可以根据情况进行调整,从而适应不同的环境。

5.单缓冲、双缓冲情况下,数据块处理时间的计算

单缓冲情况:

数据块处理时间(T)= 传输时间(Tt) + 处理时间(Tp)

  1. 传输时间(Tt): 是数据从源位置传输到缓冲区所需的时间。可以用以下公式表示:

    [ Tt =D/R ]

    其中,(D) 是数据块的大小,(R) 是传输速率。

  2. 处理时间(Tp): 是将数据从缓冲区传输到目标位置所需的时间。

    [ Tp = {其他处理时间} ]

双缓冲情况:

数据块处理时间(T)= 最大(输入缓冲区传输时间, 输出缓冲区传输时间) + 处理时间(Tp)

  1. 输入缓冲区传输时间: 将数据从源位置传输到输入缓冲区所需的时间,计算方式同单缓冲。
  2. 输出缓冲区传输时间: 将数据从输出缓冲区传输到目标位置所需的时间,计算方式同单缓冲。
  3. 处理时间(Tp): 是数据在输入缓冲区和输出缓冲区之间传输所需的时间。

第七章 文件管理

名词解释

  • 文件系统: 计算机系统用来组织和存储数据的一种机制。
  • 文件的逻辑结构: 指的是文件中数据的组织方式。
  • 文件的物理结构: 文件在存储介质上的实际存储方式。

目录是文件系统实现按名存取的重要手段

第八章 文件管理

第九章 操作系统接口

1.什么是系统调用

系统调用是操作系统提供给应用程序的一组接口,用于访问底层硬件设备或执行特权操作,它提供了一种安全可控的方式,使应用程序能够利用操作系统的功能和资源,完成各种任务。

2.系统调用和一般的过程调用有以下区别

特权级别访问权限开销和执行环境
系统调用系统调用涉及用户态和内核态之间的切换访问受保护资源的机制比一般的过程调用具有更高的开销
一般的过程调用在同一特权级别下执行的不涉及对受保护资源的直接访问通常比系统调用执行速度更快

总的来说,系统调用是用户程序与操作系统内核之间的接口,用于访问系统资源和执行特权操作,涉及特权级别的切换和访问受保护资源,而一般的过程调用是在同一特权级别下执行的函数调用,用于应用程序内部的逻辑组织。