操作系统复试

news2024/9/22 7:37:51

2017软学

给出操作系统的定义,分别从资源管理,任务调度,用户接口等三个方面论述操作系统的职能

操作系统是位于硬件层之上、所有其他系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。

什么是页式存储管理技术?
介绍页式存储管理的基本原理(25‘)

将各进程的虚拟空间划分成若干个长度相等的逻辑页面(page),页式管理把内存空间按页的大小划分成页框(page frame),然后把进程的页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。

一般一个进程对应一个页表

页式存储管理基本原理:

  1. 内存划分:将内存划分为大小相等的区域,每个区域称为页框。将所有的页框从0开始编号,称为页框号f。每个页框内从0开始编址,称为页内地址d。内存的物理地址=<页框号,页内地址>
  2. 进程划分:将进程划分为若干个大小相等的区域,每个区域称为逻辑页面p。其长度与页框长度相等。每个逻辑页面内从0开始编制,称为页内地址d。进程的逻辑地址=<逻辑页号,页内地址>
  3. 进程空间和内存空间的对应关系:即确定进程空间内逻辑页面和内存空间内页框的关系。一个逻辑页面对应一个页框。逻辑页面是连续的,但是页框是不一定连续的。
  4. 所需表目:
    1. 页表:记录逻辑页号和页框号的关系。页表中某页框号的入口地址 = 页表起始地址 + 逻辑页号(数组名地址 + 偏移量 = a[i])
    2. 总页表:记录页框的使用情况。
  5. 所需寄存器:
    1. 页表长度寄存器:用于保存正在运行进程的页表长度(一般一个进程对应一个页表)
    2. 页表始址寄存器:用于保存正在运行进程的页表的起始地址。
    3. 快表(联想寄存器):用于保存正在运行进程的页表中的部分项目。
  6. 地址映射:<逻辑页号p,页内地址d> → <页框号f,页内地址d>
    在这里插入图片描述

快表的作用

用来保存正在运行中的若干页表项,以加速地址变换的过程。
(地址变换是从进程的逻辑地址到内存的物理地址的转换)

什么是段式存储管理技术?

为了进行段式管理,每道程序在系统中都有一个段(映象)表来存放该道程序各段装入主存的状况信息。段表中的每一项(对应表中的每一行)描述该道程序一个段的基本状况,由若干个字段提供。段名字段用于存放段的名称,段名一般是有其逻辑意义的,也可以转换成用段号指明。由于段号从0开始顺序编号,正好与段表中的行号对应,如2段必是段表中的第3行,这样,段表中就可不设段号(名)字段。装入位字段用来指示该段是否已经调入主存,“1”表示已装入,“0”表示未装入。在程序的执行过程中,各段的装入位随该段是否活跃而动态变化。当装入位为“1”时,地址字段用于表示该段装入主存中起始(绝对)地址,当装入位为“0”时,则无效(有时机器用它表示该段在辅存中的起始地址)。段长字段指明该段的大小,一般以字数或字节数为单位,取决于所用的编址方式。段长字段是用来判断所访问的地址是否越出段界的界限保护检查用的。访问方式字段用来标记该段允许的访问方式,如只读、可写、只能执行等,以提供段的访问方式保护。除此之外,段表中还可以根据需要设置其它的字段。段表本身也是一个段,一般常驻在主存中,也可以存在辅存中,需要时再调入主存。假设系统在主存中最多可同时有N道程序,可设N个段表基址寄存器。对应于每道程序,由基号(程序号)指明使用哪个段表基址寄存器。段表基址寄存器中的段表基址字段指向该道程序的段表在主存中的起始地址。段表长度字段指明该道程序所用段表的行数,即程序的段数。
在这里插入图片描述

段式存储管理和页式存储管理的区别

在页式存储管理中,分页对用户是透明的,一个进程由若干个页构成,所有页的长度相同;在段式存储管理中,分段对于用户是可见的,一个进程由若干个段构成,各个段的长度可以不同,一个段恰好对应一个程序单位。

段页式存储技术的优缺点
段页式优点:兼顾了页式存储管理解决碎片的问题,段式存储管理便于实现共享的优点。
页式、段式存储管理中,为获得一条指令或数据,须两次访问内存;而段页式则须三次访问内存
在这里插入图片描述

给出进程的定义及进程状态转换关系。

进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。
状态:就绪态、运行态、阻塞态。

三种调度及其概念

进程调度: 又称处理器调度、低级调度,是按照某种方法策略从就绪队列中选取一个进程上处理机运行
内存调度: 又称中级调度,是将那些暂时不能运行的进程调至外存等待,把此时的进程状态称为挂起态。当它们已具备运行条件且内存中有空闲时,由内存调度来决定把外存上的哪些已具有运行条件的就绪进程重新调入内存。
高级调度: 又称作业调度。其主要任务是按照一定的原则从外存上处于后备状态的的作业中挑选一个或多个作业,给他们分配内存,IO设备等资源,并建立相应进程,以获得处理机资源。对于每个作业只调入一次,调出一次。(打开好多应用,哪个先启动)

进程调度算法

  • 先到先服务算法
  • 短作业优先算法
  • 最短剩余时间优先算法
  • 最高响应比优先算法
  • 循环轮转算法
  • 多级反馈队列算法

什么是死锁? 死锁和饿死状态有何不同? 为什么会产生死锁?针对死锁问题的解决方案是什么?

死锁: 一组进程中的每个进程均等待此组进程中其他进程所占有的,永远无法得到的资源状态称为死锁。
死锁和饿死的区别:

  • 进程状态上:死锁进程都处于等待态,忙等(处于运行态或就绪态)的进程并非处于等待态,但是却有可能会被饿死。
  • 死锁进程等待永远不会释放的资源,饿死进程等待会释放但是不会被分配给自己资源,饿死进程的等待时限没有上界(忙等或排队等待)
  • 死锁一定循环等待,饿死却不一定。
  • 死锁一定涉及多个进程,饿死的进程可能只有一个。

为什么产生死锁?
①竞争资源引起的死锁
这种类型的死锁是由于进程争夺使用系统中有限的资源而引起的,因而称为竞争资源引起的死锁。
②进程通信引起的死锁
假设在一个基于消息的系统中,进程P1等待进程P2发来的消息,进程P2等待进程P3发
来的消息,进程P3等待进程P1发来的消息,如此3个进程均无法继续向前推进,亦即发生死锁.这种类型的死锁在基于消息的系统中比较常见.
③其他原因引起的死锁
除前面所介绍的死锁类型之外,尚有其他类型的死锁。例如,假设有-扇门,此门较小,一次只能通过一个人。又设有两位先生M1和M2,他们都要通过这扇门,显然,门相当于一个独占型资源。如果M1和M2竞争地使用这-资源,则他们都能通过。但是假如他们都很谦虚,在门口处M1对M2说“您先过”,M2对M1说‘‘您先过” ,则二者均无法通过,造成僵持.这就是"After YoulAfter You"问题。如果程序设计得不合理,也可能会发生类似的现象,在广义上也称为死锁。

死锁问题的解决方案:
死锁处理策略可以划分为两大类:一类是不让死锁发生:另一类是允许死锁发生,且当死锁发生时能够将死锁检测出来并加以消除。
不让死锁发生的策略又可以划分为两种:一种是静态的。 称为死锁预防( Drevention);另一种是动态的,称为死锁避免(avoidance)。所谓静态的,是指对于进程有关资源的活动按某种协议加以限制,如果所有进程都遵守此协议,即可保证不发生死锁;所谓动态的,是指对于进程有关资源的申请命令加以实时检测,拒绝不安全的资源请求命令,以保证死锁不会发生。死锁所要研究的问题包括静态预防死锁策略、动态避免死锁策略、动态检测死锁策略以及动态恢复死锁策略。
死锁的检测是靠资源分配图(王P129)。用死锁进程检测算法化简资源分配图后,还连着边的进程为死锁进程。

死锁预防:

  1. 破坏互斥条件
  2. 破坏不可剥夺条件
  3. 破坏请求并保持条件
  4. 破坏循环等待条件

死锁避免
银行家算法

2018软学

详细说明如何使用索引文件结构实现文件的顺序访问(P186)

  • 将顺序文件中若干记录分为一组
  • 为顺序文件建立一张索引表,表中记录每个组的第一个记录,该索引项包含该记录的键值和指向该记录的指针
  • 为该组的其他记录设置了溢出区域,在溢出区域内记录按顺序文件方式组织
  • 同一组的关键字可以无序,但是组与组之间的关键字必须有序。

**检索方法:**先根据关键字去检索索引表,找到该记录所在组的第一个记录的位置,然后再利用顺序查找法查找主文件,找到所需记录。平均检索效率为√N,N是记录数

2006计学

解释概念:

进程: 具有一定独立功能的程序关于一个数据集合的一次活动
忙式等待: 不进入等待状态的等待称为忙式等待。此时的进程处于运行态
饥饿: 指进程长时间等待不能运行,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。
缓冲: 为了协调吞吐速度相差很大的设备之间数据传送而采用的技术,用于缓和CPU和I/O设备速度不匹配的矛盾,提高并行性。
工作集: 进程在一段时间内活跃地访问页面的集合。(P168)
驻留集: 请求分页存储管理中给进程分配的内存块的集合。

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

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

相关文章

MATLAB——求连续系统的响应

题目&#xff1a; 已知RC一阶高通电路图的系统函数H(s)为 H(s)UR(S)U(S)RRR1SCsRCsRC1H(s)\frac {UR(S)}{U(S)}R\frac {R}{R\frac {1}{SC}}\frac {sRC}{sRC1}H(s)U(S)UR(S)​RRSC1​R​sRC1sRC​ 其中&#xff1a;R200Ω &#xff0c;C0.47μF 。求其幅度频率响应与相位频率响应…

公网NAT网关与VPC NAT网关介绍与实践

NAT网关介绍 NAT网关是一种网络地址转换服务&#xff0c;提供NAT代理&#xff08;SNAT和DNAT&#xff09;能力。 公有云NAT分为公网NAT网关和VPC NAT网关。 1&#xff09;公网NAT网关&#xff1a;提供公网地址转换服务。 2&#xff09;VPC NAT网关&#xff1a;提供私网地址转换…

商品获价API调用说明:获取商品历史价格信息 代码分享

接口名称&#xff1a;item_history_price公共参数名称类型必须描述keyString是调用key&#xff08;获取测试key&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString…

Linux磁盘空间占满了

Linux服务器没有安装很多东西&#xff0c;但是硬盘空间爆满了。。。 df -h 查看硬盘空间&#xff0c;发现使用了99%。 刚开始以为是日志文件的占用的&#xff0c;删除了linux日志文件&#xff0c;发现作用不大&#xff0c;只多了几G。 不妨试试下面的命令 lsof L1 发现了有个…

SQL技能 - 窗口函数

SQL技能 - 窗口函数1. 排序函数1.1. 不分组排序1.2. 分组排序2. 聚合函数实现滑动窗口计算2.1. 常用聚合函数2.2. 滑动行范围的常用表达2.3. 示例3. lag、lead函数求增长率&#xff08;同比、环比&#xff09;窗口函数表达式&#xff1a; function(arg) OVER ([PARTITION BY ex…

K8s kubectl 高效使用技巧,搞定批处理!

1.kubectl用法详解 1. kubectl语法 kubectl [command] [Type] [NAME] [flags] command: 子命令&#xff0c;用于操作kubernetes集群资源对象的命令&#xff0c;例如&#xff1a;create, delete, describe, get, apply等等 TYPE: 资源对象的类型&#xff0c;区分大小写&#…

可视化组件届的仙女‖蝴蝶结图、玫瑰环图、小提琴图

在上一篇内容中为大家介绍了几个堪称可视化组件届吴彦祖的高级可视化图表。既然帅哥有了&#xff0c;怎么能少得了美女呢&#xff1f;今天就为大家介绍几个可视化组件届的“美女姐姐”&#xff0c;说一句是组件届的刘亦菲不为过。蝴蝶结图蝴蝶结图因其形似蝴蝶结而得名&#xf…

SDL—安全培训

0x00 前言 软件开发团队的所有成员都必须接受适当的培训&#xff0c;了解安全基础知识以及安全和隐私方面的最新趋势。直接参与软件程序开发的技术角色人员&#xff08;开发人员、测试人员和程序经理&#xff09;每年必须参加至少一门特有的安全培训课程。 这个是微软针对安全培…

蓝牙耳机哪个戴的最舒服?久戴不累的蓝牙耳机推荐

在喧嚣的时代中&#xff0c;快节奏和疲惫充斥着我们的生活&#xff0c;于是耳机成为了人们必不可少的东西&#xff0c;无论是闲暇时亦或是正处在工作时&#xff0c;都会将它戴上&#xff0c;出门在外戴耳机变成了常态&#xff0c;所以小编就整理了一期久戴不累的蓝牙耳机。 No…

【专项】112. 路径总和

112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 …

深度学习部署笔记(八): CUDA RunTime API-2.1Hello CUDA

1. CUDA Driver API和CUDA Runtime API CUDA Driver API和CUDA Runtime API都是用于访问GPU的API。它们之间的区别在于它们的功能和使用方法不同。 CUDA Driver API是一个底层的API&#xff0c;它提供了对GPU硬件的底层访问&#xff0c;以及GPU硬件的直接控制。使用Driver AP…

聊天机器人分析,它值不值得做?

如今&#xff0c;聊天机器人热度持续走高。在您的网站或社交媒体上设置它们比以往任何时候都容易。然而&#xff0c;相当多的公司也犯了同样的错误。他们非常热衷于尝试聊天机器人&#xff0c;但随后是时候提出一些重要问题了。我们的聊天机器人工作了吗&#xff1f;他们表现如…

Flutter面试题解析-GridView详解与应用

一、前言Flutter 作为时下最流行的技术之一&#xff0c;凭借其出色的性能以及抹平多端的差异优势&#xff0c;早已引起大批技术爱好者的关注&#xff0c;甚至一些 闲鱼 &#xff0c; 美团 &#xff0c; 腾讯 等大公司均已投入生产使用。虽然目前其生态还没有完全成熟&#xff0…

CAD如何绘制A0/A1/A2/A3/A4图框?

在CAD制图时&#xff0c;设计师一般会使用企业的定制图框模板或者个人的特色图框模板&#xff0c;让设计方案更加标准化、规范化。对于新人设计师而言&#xff0c;完成CAD制图已经非常头疼了&#xff0c;图框的绘制更是手忙脚乱。那么是否有更加高效的方式来完成A0、A1、A2、A3…

Windows中UWP、WPF和Windows窗体的区别

Windows 中开发应用&#xff08;或者可以说客户端&#xff09;有三种方法&#xff1a; UWP&#xff08;Universal Windows Platform&#xff09;、WPF&#xff08;Windows Presentation Foundation&#xff09;和 Windows 窗体&#xff08;Win Forms&#xff09;。这三种方法在…

【word】插入代码排版

迟早会转战latex highlight不好用 highlight网站 http://codeinword.com/ 类似这样的网站还有很多。主要问题就是&#xff0c;复制的代码带有不容易编辑的行号以及前面绿色的标识 而且放到word里也不容易调整。还有word会自动默认格式&#xff0c;不方便加小图名之类的问题 …

【2023年的就业形势依旧严峻】

2023年口罩放开的第一年&#xff0c;也是第一个招聘会&#xff0c;挤满了求职者和用人单位&#xff0c;大多数都是想着重新开始&#xff0c;抓住金三银四的好时机&#xff0c;找到心仪的工作和符合岗位要求的人才&#xff0c;一起整装出发。我们理想的状态是&#xff0c;经济已…

【本地网站上线】ubuntu搭建web站点,并内网穿透发布公网访问

【本地网站上线】ubuntu搭建web站点&#xff0c;并内网穿透发布公网访问前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子…

Python 分支结构

Python 分支结构 应用场景 迄今为止&#xff0c;我们写的Python代码都是一条一条语句顺序执行&#xff0c;这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题&#xff0c;比如我们设计一个游戏&#xff0c;游戏第一关的通关条件是玩家获得1000分&#x…

【项目实战】SpringBoot整合Protobuf,实现基于RestTemplate的模拟客户端与服务端的远程调用

一、背景说明 项目中使用到了Protobuf&#xff0c;但是因为不知道怎么使用它&#xff0c;所以看起来很高大上&#xff0c;现在写一个简单的Demo来实现基于RestTemplate的模拟客户端与服务端的远程调用&#xff01; 二、实操代码 2.1 定义依赖POM文件 <dependencies>&…