「软件设计师」操作系统基本原理

操作系统概述

  1. 操作系统与计算机体系结构之间的关系

  2. 操作系统具备的管理职能
    1. 进程管理
      1. 进程的状态
      2. 前趋图
      3. pv操作
      4. 死锁问题
    2. 存储管理
      1. 段页式存储
      2. 页面置换算法
    3. 文件管理
      1. 索引文件
      2. 位示图
    4. 作业管理
    5. 设备管理
      1. 数据传输控制方式
    6. 微内核操作系统
      1. 虚设备与SPOOLING技术

进程管理

进程的状态

进程的同步与互斥

  1. 互斥:千军外马过独木桥
  2. 同步:速度有差异,在一定情况停下等待

PV操作

  1. 临界资源:诸程序间需要互斥方式对其进行共享的资源,如打印机、磁带机等
  2. 临界区:每个进程中访问临界资源的那段代码称为临界区
  3. 信息量:是一种特殊的变量

  • 解题技巧
    • 每一个箭头看成一个资源
    • 箭头的起点是V操作
    • 箭头的终点是P操作

死锁问题

  1. 如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁

假设有k个进程,每个进程需要n个资源
则不发生死锁所需要的最小资源为$k*(n-1)+1$

  1. 死锁的条件
    1. 互斥
    2. 保持和等待
    3. 不剥夺
    4. 环路等待
  2. 死锁的避免
    1. 有序的资源分配:资源利用率较低
    2. 银行家算法
      1. 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
      2. 进程可以分期请求资源,但请求的总数不能超过最大需求量
      3. 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配但总能使进程在有限的时间里得到资源

存储管理

分区存储组织
:某计算机系统的内存大小为128k,采用可变分区分配方式进行内存分配,现有作业4申请内存9k,几种不同的存储分配算法在分配中,会产生什么样的结果呢?

  1. 首次适应法:把即将执行的作业安排在第一个能够容纳它的空间

  2. 最佳适应法:把即将执行的作业安排在内存空间与它最接近的空间进行存放,如该例子中,作业4占据空间9k,通过该算法,计算机就将其存放在了空间为10的地址中;由于在每次存放作业以后内存空间剩余量极低,长期以后该算法会造成内存空间碎片化,降低内存地址的利用率

  3. 最差适应法:该算法能够解决内存空间碎片化的问题,如图所示:该算法优先将作业存放至内存空间最大的地址

  4. 循环首次适应法:该算法是将空闲的区域连成环状,将作业在环状区域内顺次进行分配(从第二个空闲区域开始分配)

页式存储

  1. 提出背景:为了解决碎片化的存储
  2. 概念:把用户程序分成等分大小的n个“页”(并将其编号),再在地址空间中以nk为基数划分等大小的块(同样将其编号,块号又称页帧号),运行用户程序时不再将整个程序进行运行,而是根据需要分批次将页调入到块中运行,而页和块之间的对应关系用页表来记录
  3. 优点:利用率高,碎片小,分配及管理简单
  4. 缺点:增加了系统开销(系统每次读取程序都需要先读取页表将其定位,再进行程序的读取);可能产生抖动现象
  5. 页号与页帧号的关系必须通过表来进行查询

  6. 逻辑地址和物理地址:要求物理地址,先把逻辑地址(逻辑地址由页号和页内地址组成)当中的页号和页内地址分开,要把它们分开,首先将页面大小写成二进制的形式,等于$2^n$;则说明一个页的页内地址有n位,而在逻辑地址中高于(从右往左)n位的部分就是页号,得到页号之后进行查表,得到相应的页帧号,而物理地址=页帧号+页内地址(该式子中的“+“是拼接,并非做加法)

段式存储

  1. 概念:按逻辑结构进行内存的划分,划分为n个段,每一个段的大小无要求,可以相等也可以不等,包括段号和段内地址,例如:可以将main主函数作为一个段,然后将第一个子函数作为一个段,然后将第二个子函数作为一个段……
  2. 段式存储按函数之间的逻辑对内存进行划分,大小差异较大,存在段表,段表的内容包括段号,段长以及基址
    1. 基址:就是该段在地址的起始位置
    2. 优点:多道程序共享内存,各段程序修改互不影响
    3. 缺点:内存利用率低,内存碎片浪费大

段页式存储

  1. 段页式存储是结合了段式和页式的一种存储组织,将内存先分段,再分页

    1. 优点:空间浪费小,存储共享容易,存储保护容易,能够动态连接
    2. 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降(程序在执行时要先查段表,再查页表,使得系统资源消耗增加)

  2. 快表:快表是一块小容量的相联存储器,由高速缓存器(放在cache之中)组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号

页面置换算法

  1. 产生背景:当程序的需要与系统资源的供给发生矛盾时的一种解决方案,即将不用的页面淘汰掉,置换为需要执行的页面
  2. 页面置换算法的四种算法
    1. 最优算法:尚处于理论层面
    2. 随机算法:随机淘汰一个页面
    3. 先进先出算法(FIFO):即淘汰时按照之前执行的先后顺序进行淘汰,有可能产生“抖动”
      1. 抖动:把经常用到的页置换出去,要用的时候发现没有内存了,造成进程中断
    4. 最近最少使用算法(LRU):在保证最近使用的页面不被中断的情况下,将最少使用的页面淘汰,不会产生“抖动”

“没有使用快表”即表示每读一次程序的块,需要先在内存上面查表,才能读取相应的内存块,所以每一个块需要两次内存的访问,所以6个块(在页式存储结构中,每一个页面对应一个块)总共会产生12次对内存的访问;一个内存单元占据1b的内存,所有的指令(无论占据了几个页面)都只产生一次缺页中断,而操作数A和操作数B则各自产生两次缺页中断,因此总共产生了5次缺页中断

文件管理

索引文件结构

索引一般会有13个节点(默认情况下),从0开始编号,其中索引0到9这十个索引称为直接索引,直接对应物理盘块,每一个物理盘块都对应了索引文件的内容,而索引10则称为间接索引,里面只存储地址,如一个物理盘块的地址大小为4个字节,而一个物理盘块的大小为4k,则4k/4字节等于1024,代表着1024个物理盘块的地址,因此该索引内可以存储的文件大小为$4k1024$;该10号索引称之为一级间接索引;索引11则是二级间接索引,即索引的内容还是索引,再索引的内容才是物理盘块,二级简介索引存储的文件大小即为$4k1024*1024$;虽然分级越多存储的内容越多,但相应的,效率也会更低

文件和树型目录结构

  1. 绝对路径:是从盘符开始的路径
  2. 相对路径:是从当前路径开始的路径

:在该文件树型图中,若文件目录的位置是D1,若要求f2的路径,则绝对路径:/D1/W2/F2;相对路径:W2/F2

  1. 文件属性
    1. R:只读文件属性
    2. A:存档属性
    3. S:系统文件
    4. H:隐藏文件
  2. 文件名的组成
    1. 驱动器号
    2. 路径
    3. 主文件名
    4. 扩展名

空闲存储空间的管理

  1. 空闲区表法:用一个表来记录哪些地方是空闲的,以便将其管理起来
  2. 空闲链表法:把空闲区域都链起来,链成一条链表,然后需要空间分配的时候,从这条链表中划出一部分出来即可
  3. 位示图法:将所有存储区域分成无数个物理块,然后以1表示被占用,0表示空闲,将所有空间进行标记

:4195号是第4196个位,因此$4196/32=131.125$,因此物理块的使用情况应该在第132个字中描述

  1. 成组链接法

设备管理——数据传输控制方式

主要是指内存和外设之间的数据传输控制问题

  1. 程序控制方式(程序查询方式):这种方式是最为低级的,也是CPU介入最多的一种机制,即整个数据的传输控制很多时候都要CPU的介入,此时外设会处于非常被动的位置,即不会主动的去返回信息,如是否完成等信息,而是由CPU主动发出查询指令,进而对信息进行查询
  2. 程序中断方式:大部分与程序控制方式相同,但相较于程序控制方式,增加了中断方式,主动性更强,即如果外设完成了数据的传输等操作,外设会发出中断指令,效率比程序控制方式更高
  3. DMA方式(直接存储器存取方式):有专门的DMA控制器,只要是外设和内存之间的数据交换过程,就由这个控制器进行管控,CPU只需要在开头的时候做一些介入,如初始化等操作
  4. 设备管理的五个层次
    1. 由上到下依次是:用户进程、与设备无关的系统软件、设备驱动程序、中断处理程序、硬件

SPOOLING技术

  1. 概念:例如:四个人通过远程手段准备使用一台打印机,而这台打印机在同一段时间内只能让一个用户使用,若一个用户正在使用该打印机,另一名用户试图使用该打印机时就会提示该打印机被占用,事实上这样做使得打印机的效率非常的低,而面对这个问题,采用了SPOOLING技术的打印机会进行如下操作:给打印机创建一个缓存区,每一个用户在打印时都会进入缓存区,而从缓存区到真正打印则需要挨个排队,即打印机在打印时不再排斥其他用户的打印操作,而是将其缓存起来,在将当前操作完成后立即进行第二个操作,这样做不仅使得用户的操作界面变得更为友好,也极大的提高了打印机的打印效率

微内核操作系统

  1. 概念:把内核做的更小具有许多好处与优势,如提高了可靠性,稳定性,安全性;因为操作系统作为核心的系统软件,如果操作系统出现故障,就会影响整个系统的运行,将内核做的更小就会降低故障的发生率

  2. 单体内核和微内核的区别及优缺点

  3. Linux系统的常用命令

    1. attrib:声明
    2. modify:修改
    3. chmod:修改文件权限
    4. change:改变

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

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

相关文章

数据库日志已经很大了,比如200多G,不能收缩到几兆,实际操作过只能到30G

当数据库日志文件(通常称为事务日志或事务日志文件)变得非常大时,确实可能会遇到问题,因为这会占用大量的磁盘空间,并可能影响数据库的性能。收缩日志文件到非常小的大小(例如从200多G到几兆)可…

UnityShader——02三大主流编程语言

三大主流编程语言 Shader Language Shader language的发展方向是设计出在便携性方面可以与C/JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“利用图形硬件的并行性,提高算法的效率” Shader language目前主要有 3 种语言&…

Python OpenCV 入门 这篇就够了

目录 1.初步认识OpenCV 1.1OpenCv概述 1.2OpenCV模块 2.图像处理的基本操作 2.1 imread()方法读取图像 2.2 显示图像 2.2.1 imshow()方法显示图像 2.2.2 waitKey()方法设置按键事件 2.2.3 destroyAllWindows()方法销毁所有窗口 3.3 imwrite保存图像 3.4 获取图像属性…

springboot/ssm招投标系统Java在线招投标项目专家管理系统

springboot/ssm招投标系统Java在线招投标项目专家管理系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7&am…

【OrangePi Zero2 智能家居】智能家居项目的软件实现

一、项目整体设计 二、项目代码的前期准备 三、实现语音监听接口 四、实现socket监听接口 五、实现烟雾报警监听接口 六、实现设备节点代码 七、实现接收消息处理接口 一、项目整体设计 整体的软件框架大致如下: 整个项目开启4个监听线程, 分别是&…

【洛谷 P3367】【模板】并查集 题解(并查集)

【模板】并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 N , M N,M N,M ,表示共有 N N N 个元素和 M M M 个操作。 接下来 M M M 行,每行包含三个整数 Z i , X i , Y i Z_i,X_i,Y…

为什么有些人喜欢回答问题答非所问?为什么有些人的处事风格是热情、礼貌、一问三不知的人?

问题描述:为什么有些人喜欢回答问题答非所问?为什么有些人的处事风格是热情、礼貌、一问三不知的人? 问题解答: 有些人喜欢回答问题答非所问可能有几种原因: 缺乏知识或技能:有些人可能不了解问题的答案&…

奇异值分解(SVD)

对于一个方阵而言,采用的是特征分解,参考《矩阵特征值分解(EVD)-CSDN博客》

高程 | 数据的共享与保护(c++)

文章目录 📚标识符的作用域与可见性🐇作用域🐇可见性 📚对象的生存期🐇静态生存期🐇动态生存期 📚类的静态成员🐇静态数据成员🐇静态函数成员 📚类的友元&…

你的电脑关机吗

目录 程序员为什么不喜欢关电脑? 电脑长时间不关机会怎样? 电脑卡顿 中度风险 硬件损耗 能源浪费 散热问题 软件问题 网络安全问题 程序员为什么不喜欢关电脑? 大部分人都会选择将电脑进行关机操作。其实这不难理解,毕竟人类都需要…

MyBatis篇----第五篇

系列文章目录 文章目录 系列文章目录前言一、MyBatis 实现一对一有几种方式?具体怎么操作的?二、MyBatis 实现一对多有几种方式,怎么操作的?三、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?四、Mybatis 的一级、二级缓存前言 前些天发现了一个巨牛的人工智能…

每日一题 KY11 二叉树遍历

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后&…

【数据库_MySQL】MySQL彻底卸载

程序员为什么不喜欢关电脑? 你是否注意到,程序员们似乎从不关电脑?别以为他们是电脑上瘾,实则是有他们自己的原因!让我们一起揭秘背后的原因,看看程序员们真正的“英雄”本色! 卸载 要是你的…

【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】

在这个项目中,我的目标是从科学论文图片中提取某些部分(标题、作者和摘要)。预期提取部分是科学论文中常见的部分,例如标题、摘要和作者。输入与最终结果。我的输入是将第一页纸转换成图像。最终结果是一个 txt 文件,其中包含标题、作者和摘要部分,如下图1和图2所示。我将…

SpringBoot整合第三方技术-缓存

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

每日OJ题_递归①_力扣面试题 08.06. 汉诺塔问题

目录 递归算法原理 力扣面试题 08.06. 汉诺塔问题 解析代码 递归算法原理 递归算法个人经验:给定一个任务,相信递归函数一定能解决这个任务,根据任务所需的东西,给出函数参数,然后实现函数内容,最后找出…

CodeForces Round 925 Div.3 A-F 题解

文章目录 A题目AC Code: B题目AC Code: C题目AC Code: D题目AC Code: E题目AC Code: F题目AC Code: A 题目 此题尽量让后面的更大,前面的更小。 我们尽量让第 3 3 3 位更大,如果…

AI定胜负?微软云Azure规模“快速赶上”亚马逊云AWS

AI技术搅动云计算格局。 据媒体报道,有分析数据表示,微软Azure云业务规模已经达到亚马逊AWS云业务规模的四分之三,而在五年前,Azure规模仅为AWS的一半。 得益于人工智能热潮和与Open AI的合作,微软Azure云业务最新财…

冒泡排序平均需要跑多少趟:拉马努金Q函数初探

摘要: 拉马努金Q函数在算法分析中的应用,初步体验 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】 我的网站:潮汐朝夕的生活实验室 我的公众号:算法题刷刷 我的知乎&#x…