操作系统(复习提纲)

现在距离操作系统考试还剩三天,我今天刚刚整理好这份提纲,里面还附加了一些可能考的计算题的讲解视频,都是B站上一些优秀的UP主录制的,我觉得讲的还挺好的,对于应付考试,以不挂科为宗旨应该可以哈哈哈。

1.进程与线程的区别

  • 调度的基本单位

    进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。每次调度时,需要进行上下文切换,开销较大。

    而进程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换,但从进程中的线程切换到另一个进程中的线程时,必然会引起进程的切换。

  • 并发性

    在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可以并发执行,甚至还允许在一个进程中的所有线程都能并发执行。同样,不同的进程中的线程也能并发执行。

  • 拥有资源

    进程可以拥有资源,并作为系统中拥有资源的一个基本单位。线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源。

  • 独立性

    在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。

  • 系统开销

    在创建、撤销以及上下文切换时,进程的系统开销均明显高于线程。

  • 支持多处理机系统

    多处理机系统中,对于单线程进程,不管有多少处理机,该进程均只能运行在一个处理机上。但对于多线程进程,可以将一个进程中的多个线程分配到多个处理机上并发执行

2.中断处理的流程

  1. 测定是否有未响应的中断信号
  2. 保护被中断进程的CPU环境
  3. 转入响应的设备处理程序
  4. 中断处理
  5. 恢复CPU的现场并退出中断

3.进程同步

编程,使用信号量解决同步问题

进程同步讲解

4.导致进程切换的主要因素

  • 进程调度:就绪状态->执行状态
  • 时间片完:执行状态->就绪状态
  • 请求I/O:执行状态->阻塞状态
  • I/O完成:阻塞状态->就绪状态

5.调度三个层次

  • 高级调度

    高级调度又称长程调度或作业调度,它的调度对象是作业。其主要的功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。

  • 低级调度

    低级调度又称进程调度或短程调度,其所调用的对象是进程。其主要的功能是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分配程序将处理机分配给选中的进程。

  • 中级调度

    中级调度又称内存调度。其主要功能是提高内存利用率和系统吞吐量。把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。

6.处理死锁基本方法

  • 预防死锁

    设置某些限制条件,去破坏产生死锁四个必要条件中的一个或几个来预防产生死锁。

  • 避免死锁

    在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而可以避免发生死锁。

  • 检测死锁

    通过检测机构及时地检测出死锁的发生,然后采取适当的措施,把进程从死锁中解脱出来。

  • 解除死锁

    当检测到系统已发生死锁时,就采取相应的措施,将进程从死锁状态中解脱出来。

死锁以及银行家算法讲解

7.几种进程调度算法的基本原理、优缺点及作业调度和进程调度的相关计算(短作业优先、优先级调度策略、高响应比优先调度算法等)。

几个重要的概念:

  1. 周转时间=实际完成时间-任务到达时间
  2. 平均周转时间=周转时间/作业数
  3. 带权周转时间=周转时间/运行时间
  4. 平均带权周转时间=带权周转时间/作业数
  • 先来先服务调度算法(FCFS)

    从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。

  • 短作业优先调度算法(SJF)

    以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。作业调度时,它将外存的作业后备队列中选择若干个估计时间最短的作业,优先将它们调入内存运行。

    • 优点:当多个作业同时到达时,SJF算法可使平均周转时间最短。
    • 缺点:
      • 该算法对长作业不利——长作业可能长期不被调度,甚至“饿死”。
      • 未考虑作业的紧迫性,不能保证紧迫作业(进程)会被及时调度。
      • 由于作业(进程)的长短只是根据用户所提供的估计时间而定的,致使该算法不一定能真正做到短作业优先调度。

  • 优先级调度算法(PSA)

    基于作业的紧迫程度,有外部赋予作业响应的优先级,根据优先级进行调度。

    • 优点:可以保证紧迫作业优先运行。
  • 高响应比优先调度算法(HRRN)

    每次进行作业调度时,系统首先计算后备队列中各作业的响应比,然后选择一个或若干个响应比最高的作业调入内存执行。

    响应比=(等待时间+要求服务时间)/要求服务时间

    • 优点:综合了FCFS和SJF算法的优点——既考虑公平性,又考虑平均周转时间。
    • 缺点:增加系统开销,每次调度都要计算响应比。

调度算法

调度算法

8.理解进程状态转换关系

  • 进程调度:就绪状态->执行状态
  • 时间片完:执行状态->就绪状态
  • 请求I/O:执行状态->阻塞状态
  • I/O完成:阻塞状态->就绪状态

9.多级反馈队列调度算法内容和设计思路

多级反馈队列调度算法不必事先知道各种进程所需的执行时间,还可以较好地满足各类进程的需要,目前公认较好的进程调度算法。

设计思路:

  1. 设置多个就绪队列。在系统中设置多个就绪队列,并未每个队列赋予不同的优先级。第一个队列的优先级最高,第二个次之,其余队列的优先级逐个降低。该算法为不同的队列中的进程所赋予的执行时间片的大小也各不相同,在优先级愈高的队列中,其时间片就愈小。

  2. 每个队列都采用FCFS(先来先服务调度算法)。当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度。当轮到该进程执行时,如它能在该时间片内完成,便撤离系统。否则,即它在一个时间片结束时尚未完成,调度程序将其转入第二队列末尾进行等待调度;如果在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,依次类推。当进程最后被降到第n队列后,在第n队列中便采取按RR方式运行。

  3. 按队列优先级调度。调度程序首先调度最高优先级队列中的诸进程运行,仅当第一队列空闲时才调度第二队列中的进程运行;换言之,仅当第1~(i-1)所有队列均为空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时又有新进程进入任一优先级较高的队列,此时必须把正在运行的进程放回第i队列的末尾,而把处理机分配给新到的高优先级进程。

10.PV操作基本概念、原理

同进程同步问题

11.程序的装入和链接的主要方式

程序装入:

  • 绝对装入方式
  • 可重定位装入方式
  • 动态运行时的装入方式

程序链接:

  • 静态链接方式
  • 装入时动态链接
  • 运行时动态链接

12.虚拟存储器基本原理和实现的要点

基本原理:

  • 部分装入

    应用程序在运行前,没有必要全部装入(局部性原理),仅将那些当前要运行的页面或段先装入内存便可以运行,其余部分暂留在磁盘上。

  • 请求调入

    程序在运行时,如果所要访问的页(段)已调入内存,便可继续执行下去;否则,应利用OS所提供的请求调页(段)功能,将它们调入内存,以便继续运行。

  • 页/段置换

    如果此时内存已满,则需利用页(段)置换功能,将内存中暂不用的页(段)调到磁盘上再将访问的页(段)调入内存,使程序继续运行下去。

实现要点:

  • 分页请求系统

    是在基本分页系统基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。

  • 请求分段系统

    是在基本分段系统基础上,增加了请求调段功能和分段置换功能所形成的段式虚拟存储系统。

13.内存分区分配算法基本原理、优缺点、适用范围(分段、分页)

  • 首次适应算法(FF)

    空闲分区表按地址递增排序。分配时从表首开始顺序查找,直至找到一个大小能满足要求的空闲分区;然后按作业大小划出一块内存空间分配给请求者,余下的空闲分区仍留在表中。

    • 优点:优先利用内存中低址部分的空闲分区,保留高址部分的大空闲区,为以后大作业分配大的内存空间创造了条件。
    • 缺点:低址部分不断被划分,会留下许多难以利用的、很小的空闲分区;每次查找都是从低址部分开始,增加查找可用空闲分区时的开销。
  • 循环首次适应算法(NF)

    由首次适应算法演变而成。为进程分配内存时,不再是每次从表首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到一个大小能满足要求的空闲分区,从中划出一块与请求大小相等的分区分配给作业。为实现该算法,应设置一起始查找指针。

    • 优点:使内存中的空闲分区分布均匀,减少查找空闲分区时的开销。
    • 缺点:缺乏大的空闲分区。
  • 最佳适应算法(BF)

    每次分配时,总是将能满足要求的最小分区分配给请求者。将空闲分区按其容量从小到大顺序排列——加快查找。

    • 优点:避免大材小用;寻找速度快;
    • 缺点:留下许多难以利用的碎片。
  • 最坏适应算法(WF)

    最坏适应分配算法选择空闲分区的策略正好与最佳适应算法相反:它在扫描整个空闲分区表或链表时,总是挑选一个最大的空闲区,从中分割一部分存储空间给作业使用,以至于存储器中缺乏大的空闲分区。

    • 优点:剩下的空闲分区不至于太小,产生的碎片可能性小,对中、小作业有利;查找效率高;
    • 缺点:总是缺乏大的空闲分区。

14.分页、分段方法的基本原理

  • 分页

    将用户程序的地址空间分为若干个固定大小的区域,成为“页”或“页面”。典型的页面大小为1KB。相应地,也将内存空间分为若干个物理块或页框,页和块的大小相同。这样可将用户程序的任一页放入任一物理块中,实现离散分配。

  • 分段

    将用户程序的地址空间分为若干个大小不同的段,每段定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。

15.分页系统中逻辑地址和物理地址的转换

16.各种情况下(快表命中、快表未命中、缺页)访问的过程

17.访问时间的计算

18.页面置换算法:FIFO、LRU和clock算法

先进先出(FIFO)页面置换算法

淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最近最久未使用(LRU)置换算法

选择最近最久未使用的页面予以淘汰。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/29ff4635ab5140079bba369fa8c0a2e4.png

Clock置换算法

只需为每页设置一个访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置1.置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页换出;若为1,则重新将它置0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到队列中的最后一个页面时,若其访问位仍为1,则再返回到队首去检查第一个页面。

在这里插入图片描述

视频讲解链接:

FIFO置换算法和LRU置换算法

Clock置换算法

19.I/O系统基本功能

  • 隐藏物理设备的细节
  • 与设备的无关性
  • 提高处理机和I/O设备的利用率
  • 对I/O设备进行控制
  • 确保对设备的正确共享
  • 错误处理

20.循环缓冲概念

21.I/O架构

I/O软件组织分为四个层次结构:

  • 用户层I/O软件
  • 设备独立性软件
  • 设备驱动程序
  • 中断处理程序

22.程序I/O 、中断驱动I/O 、DMA 、 I/O通道控制方式基本原理和技术演变思路

23.磁盘调度算法(先来先服务、最短寻道时间优先、扫描算法)

  • 先来先服务(FCFS)

    最简单的磁盘调度算法,根据进程请求访问磁盘的先后次序进行调度。

    • 优点:公平、简单,不会出现有请求长期得不到满足的情况。
    • 缺点:平均寻道时间长。
  • 最短寻道时间优先(SSTF)

    该算法选择进程要求访问的磁道与当前磁头所在的磁道距离最近,以使每次寻道的时间最短,但不能保证平均寻道时间最短。

    • 优点:每次寻道时间最短。
    • 缺点:不能保证平均寻道时间最短,优先级低的进程可能饥饿。
  • 扫描算法(SCAN)

    扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头当前的移动方向。

    • 优点:防止饥饿。
  • 循环扫描算法(CSCAN)

磁盘调度算法讲解

24.文件系统模型三个层次

文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。

25.文件的逻辑结构和物理结构概念和区别

  • 文件的逻辑结构

    这是从用户观点出发所观察到的文件组织形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织。

  • 文件的物理结构

    这是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。文件的物理结构不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。无论是文件的逻辑结构,还是其物理结构,都会影响对文件的检索速度。

26.各种磁盘组织形式(连续、链接、索引方式)的特点以及优缺点

  • 连续

    为每一个文件分配一组相邻接的盘块

    • 优点:
      1. 顺序访问容易。第一个盘块开始,顺序地、逐个地往下读/写。也支持对定长记录的直接存取。
      2. 顺序访问速度快。磁头移动得距离最少。
    • 缺点:
      1. 要求为一个文件分配连续的存储空间
      2. 必须事先知道文件的长度
      3. 不能灵活地删除和插入记录
      4. 文件大小不宜动态变化
  • 链接

    在采用链接分配时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件。

    • 优点:
      1. 消除了磁盘的外部碎片,提高了外存的利用率
      2. 对插入、删除和修改记录都非常容易
      3. 能适应文件的动态增长,无需事先知道文件的大小
  • 索引方式

    索引分配方法为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。

    • 优点:
      1. 索引分配支持直接访问。
      2. 索引分配不会产生外部碎片。
      3. 文件较大时,优于链接分配。
    • 缺点:
      1. 可能要花费较多的外存空间。每个文件都要一个索引表,小文件仍需分配一个盘块。

27.单级索引,多级索引,混合索引,计算文件的容量和所占盘块数量

通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件。

  • 优点:

    1. 消除了磁盘的外部碎片,提高了外存的利用率
    2. 对插入、删除和修改记录都非常容易
    3. 能适应文件的动态增长,无需事先知道文件的大小
  • 索引方式

    索引分配方法为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。

    • 优点:
      1. 索引分配支持直接访问。
      2. 索引分配不会产生外部碎片。
      3. 文件较大时,优于链接分配。
    • 缺点:
      1. 可能要花费较多的外存空间。每个文件都要一个索引表,小文件仍需分配一个盘块。

27.单级索引,多级索引,混合索引,计算文件的容量和所占盘块数量

单级索引

为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。

多级索引

当OS为一个大文件分配磁盘空间时,若盘块号装满一个索引块时,OS便为该文件分配另一个盘块,依次类推,再通过链指针将各索引块链接起来。

混合索引

将多种索引方式相结合而形成的一种索引方式。
计算题讲解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫案例—抓取豆瓣电影的电影名称、评分、简介、评价人数

爬虫案例—抓取豆瓣电影的电影名称、评分、简介、评价人数 豆瓣电影网址:https://movie.douban.com/top250 主页截图和要抓取的内容如下图: 分析: 第一页的网址:https://movie.douban.com/top250?start0&filter 第二页的…

五、程序流程结构(2)循环结构——while语句

作用&#xff1a; 满足循环条件&#xff0c;执行循环语句 语法&#xff1a; while(循环条件){循环语句}; 解释&#xff1a;只要循环条件的结果为真&#xff0c;就执行循环语句 1、循环打印0-9 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<strin…

Cypress安装与使用教程(4)—— 软测大玩家

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

Java实现农村物流配送系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

Java调用openai微调Fine-tuning实战示例

注: 建议先看微调文档, 遵从官网给出的规则。例如: jsonl训练文件至少有10个例子, 否则报错 官网微调文档https://platform.openai.com/docs/guides/fine-tuning官网微调APIhttps://platform.openai.com/docs/api-reference/fine-tuning 1. 实现步骤 1. 准备好jsonl数据集2…

当前vscode环境下 多进程多线程运行情况探究

我的代码 其中在“打开图片时”、“进入子进程之前”、“子进程join前”、“进入子进程区域后”&#xff0c;“子进程join后”、“进入子线程区域后”分别打印了进程线程的编号和数量。 # -*- coding: utf-8 -*-# Form implementation generated from reading ui file test2.…

好书推荐丨AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀(北大社)

文章目录 写在前面关键点内容简介作者简介推荐理由粉丝福利写在后面 写在前面 本期博主给大家推荐一本Python量化交易实战类书籍&#xff1a; ChatGPT让量化交易师率飞起来&#xff01; 金融量化交易新模式一本专注于帮助交易师在AI时代实现晋级、提高效率的图书书中介绍了如…

【Rust日报】2024-01-12 将 Rust 引入 Git 项目

将 Rust 引入 Git 项目 去年年底的假期里&#xff0c;Taylor Blau 花了一些时间思考如何将 Rust 引入 Git 项目。 将 Rust 引入 Linux 内核的重要工作正在进行中。在他们既定的目标中&#xff0c;他认为有一些可能与 Git 项目相关&#xff1a; 由于语言的安全保证&#xff0c;内…

ssm基于vue的儿童教育网站的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;视频信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

开启C++之旅(上):探索命名空间与函数特性(缺省参数和函数重载)

之前浅显的讲解了数据结构的部分内容&#xff1a;数据结构专栏 那么今天我们迎来了新的起点&#xff1a;C的探索之旅 文章目录 1.命名空间1.1引入命名冲突1.2命名空间1.2.1命名空间的定义1.2.2命名空间的使用 2.c的输入与输出3.缺省参数3.1概念3.2缺省参数分类 4.函数重载4.1概…

【计算机二级考试C语言】C变量

C 变量 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型&#xff0c;类型决定了变量存储的大小和布局&#xff0c;该范围内的值都可以存储在内存中&#xff0c;运算符可应用于变量上。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下…

12-桥接模式(Bridge)

意图 将抽象部分与它的实现部分分离&#xff0c;使他们可以独立地变化 个人理解 一句话概括就是只要是在抽象类中聚合了某个接口或者抽象类&#xff0c;就是使用了桥接模式。 抽象类A中聚合了抽象类B&#xff08;或者接口B&#xff09;&#xff0c;A的子类的方法中在相同的场…

基于elementUI的el-table组件实现按住某一行数据上下滑动选中/选择或取消选中/选择鼠标经过的行

实现代码 <template><div :class"$options.name"><el-tablestyle"user-select: none"ref"table":data"tableData":row-class-name"row_class_name"mousedown.native"mousedownTable"row-click&q…

[力扣 Hot100]Day5 盛最多水的容器

题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容…

2、BERT:自然语言处理的变革者

请参考之前写的&#xff1a;2、什么是BERT&#xff1f;-CSDN博客文章浏览阅读826次&#xff0c;点赞19次&#xff0c;收藏22次。BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是Google在2018年提出的一种自然语言处理&#xff08;NLP&…

linux安装QQ(官方正版)

QQ官网上有支持linux系统的版本&#xff0c;所以去官网直接下载正版就好。 安装步骤&#xff1a; 1.进入官网&#xff1a;https://im.qq.com/linuxqq/index.shtml 2.选择版本&#xff1a;X86版下载dep 如下所示&#xff1a; 3.下载qq安装包&#xff1a; 4.使用命令安装qq s…

Android 事件分发机制详解(下)

2.3 View事件分发机制 从上面 ViewGroup 事件分发机制知道&#xff0c;View事件分发机制从 dispatchTouchEvent() 开始 源码分析 /*** 源码分析&#xff1a;View.dispatchTouchEvent&#xff08;&#xff09;*/public boolean dispatchTouchEvent(MotionEvent event) { if …

国科大-自然语言处理复习

自然语言处理复习 实体关系联合抽取流水线式端到端方法 检索式问答系统流水线方式信息检索&#xff08;IR&#xff09;阶段阅读理解&#xff08;RC&#xff09;阶段基于证据强度的重排基于证据覆盖的重排结合不同类型的聚合 端到端方式Retriever-Reader的联合学习基于预训练的R…

用Scala采集出行平台机票价格信息

年关将至&#xff0c;趁着过年&#xff0c;打算拖家带口的出去游玩一番&#xff0c;目前也没有什么计划&#xff0c;去哪里玩也比较随机。正好年底公司项目都已经完成差不多&#xff0c;利用空余时间&#xff0c;用爬虫爬取各大景点飞机票价格信息&#xff0c;选择景点不错机票…

【XR806开发板试用】单总线协议驱动DHT11温湿度传感器

1.昨天刚收到极速社区寄来的全志XR806开发板&#xff0c;之前用过很多全志的SOC芯片&#xff0c;但是像这种无线芯片还是第一次用。这次打算使用XR806芯片驱动一下DHT11温湿度传感器。 2.代码如下&#xff1a; #include "common/framework/platform_init.h" #inclu…