操作系统--需要背的概念性知识

news2025/1/25 9:20:55

第一章 操作系统概述

  1. 操作系统的作用:1)控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;2)提供给用户和其他软件方便的接口和环境;3)实现了对计算机资源的抽象,是计算机系统中最基本的系统软件,是最接近硬件的一层软件
  2. 计算机系统中的资源:可分为4类:处理机、存储器、I/O设备和信息(数据和程序)。OS正是对这4类资源进行有效的管理
    • 处理机管理负责处理机的分配与控制
    • 存储器管理负责内存的分配与回收
    • I/O设备管理负责I/O设备的分配(回收)与操纵
    • 文件管理负责文件的存取、共享与保护等
  3. 错误说法:操作系统是对硬件进行管理的软件:
    对于一个完全无软件的计算机系统(即裸机),对用户提供的只有硬件接口。为了方便使用I/O设备,人们在裸机上覆盖了一层I/O设备管理软件(I/O软件),将I/O设备抽象为数据结构以及I/O操作命令(如read, write)。将覆盖了这种软件的I/O设备称为扩充机器或虚拟器。
    同时,为了方便用户使用文件系统,又可在第一层软件(I/O软件)之上再覆盖一层用于管理文件的软件,由它来实现对文件操作的细节,并向上提供一组实现对文件进行存取操作的数据结构及命令。用户可用该软件提供的数据结构及命令来对文件进行存取。此时用户看到的是一台功能更强、使用更方便的虚拟器。
    因此文件管理软件实现了对硬件资源操作的第二个层次的抽象。如果在文件爱你管理软件上再覆盖一层面向用户的窗口软件,那么用户便可在窗口环境下方便地使用计算机,从而形成一台功能更强的虚机器。
    因此,OS是铺设在计算机硬件上的多层软件的集合,不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。一个硬件不仅可以在低层加以抽象,还可在高层对该资源低层已抽象的模型进行再次抽象,从而形成更高层的抽象模型。抽象层次越高,抽象接口所提供的功能就越强,用户使用起来就越方便
  4. 操作系统向用户提供的接口:有两种
    • 命令接口:用户用这些操作命令来组织和控制作业的执行
      • 联机命令接口:交互性
      • 脱机命令接口:批处理命令接口
    • 程序接口:编程人员使用它们来请求操作系统服务。由系统调用(广义指令)组成
  5. 操作系统的发展
    • 未配置操作系统:
      • 人工操作方式:用户将(有程序和数据的)纸带装入纸带输入机,纸带输入机将纸带上的程序和数据输入计算机,计算机运行程序,运行完毕后由用户取走计算结果,然后下一个用户。
      • 脱机I/O方式:先将(有程序和数据的)纸带装入纸带输入机,在一台外围机的控制下,把纸带上的程序和数据输入磁带。当CPU需要这些程序和数据时,再从磁带上将它们高速调入内存。当CPU需要输出时,可先由CPU把数据直接从内存高速送到磁带上,然后在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
        • “脱机”:由于程序和数据的输入和输出都是在外围机的控制下完成的,即都是脱离主机的情况下完成的,故称为脱机I/O方式
          • 减少了CPU的空闲时间:装带、卸带以及将输入从低速I/O设备送到高速磁带上(或反之)的操作,都是在脱机情况下由外围机完成的,并不占用主机时间,因此有效减少了CPU的空闲时间
          • 提高I/O速度:当CPU在运行中需要输入数据时,是从高速磁带上将数据输入的
      • 单道批处理系统:先把一批作业以脱机I/O方式输入磁带,并在系统中配上监督程序。在其控制下,这批作业能一个接一个被连续处理。
        • 处理过程:先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给改作业;当该作业处理完成时,又把运行控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。直至磁带上所有作业全部完成。
        • 名称解读:由于系统对作业的处理是成批进行的,但在内存中始终只有一道作业,所以称为单道批处理系统
        • 缺点:由于内存中仅有一道程序,系统中的资源得不到充分利用。如当程序发出I/O请求后,CPU便会处于等待状态,并且必须在该程序I/O完成后才能继续运行
    • 多道批处理系统:用户所提交的作业首先被放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使他们共享CPU和系统中的各种资源。
      • 优点:
        • 资源利用率高:能使多道程序交替运行,以保证CPU一直处于忙碌状态。提高内存利用率、I/O设备利用率
        • 系统吞吐量大:CPU和其他资源保持忙碌状态;仅当作业完成时或运行不下去时才进行切换,系统开销小
      • 缺点:
        • 平均周转时间长:由于作业要排队且依次进行处理,所以周转时间长
        • 无交互能力:用户一旦把作业提交给系统,那么直至作业完成,用户都不能与自己的作业进行交互,这对用户修改和调试程序不方便。批处理系统的主要缺点就是缺少交互性
      • 需要考虑的问题:即产生了操作系统,对下面的问题进行有效处理,合理组织管理计算机硬件和软件资源,合理的对各类作业进行调度
      • 争用处理机问题:既要满足各道程序运行的需要,又要能提高处理机的利用率
        • 内存分配与保护问题:系统应能为每道程序分配必要的内存空间,以使它们各得其所,且不会因谋道程序出现异常而破坏其他程序
        • I/O设备分配问题:应既能方便用户对设备的使用,又能提高设备利用率
        • 文件的组织与管理问题:系统应能有效组织存放在系统中的大量程序和数据,以使它们既便于用户使用,又能保证数据安全性
        • 作业管理问题:应能对系统中所有作业进行合理组织
        • 用户与系统的接口问题:方便用户使用OS
    • 分时系统:
      • 功能:使用户能与自己的作业进行交互
        • 共享主机:系统必须能提供多个终端同时给多个用户使用。每个用户都要像独占全机一样,不仅可以随时与计算机交互,而且不会感觉到其他用户的存在
        • 当用户在自己的终端键入命令时,系统应能及时接收并处理该命令,然后返回结果
      • 原理:
        • 共享主机–多路卡:实现分时多路复用,即主机能以很快的速度周期性地扫描各个终端,并在每个终端停留一段时间(如30ms)以接收从终端发来的数据。每个终端配置一个缓冲区,用于暂存用户键入的命令或数据
        • 及时处理:
          • 作业直接进入内存(而非先放在外存,因为作业在磁盘上是不能运行的)
          • 采用轮转运行的方式:未避免一个作业长期独占处理机,引入了时间片的概念。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。若在不长的时间内能使所有作业都执行一个时间片的时间,则可使每个用户都能及时地与自己的作业进行交互,从而可使用户的请求得到及时响应
      • 特征:多路性、独立性(每个用户彼此互不干扰,好像独占主机一样)、及时性、交互性
    • 实时系统:
      • 实时任务的类型:
        • 周期性实时任务和非周期性实时任务
        • 硬实时任务和软实时任务:硬实时(HRT, hard real time)是系统必须满足任务对截止时间的要求,用于工业控制和武器控制;软实时(SRT, soft real time)任务也联系着一个截止时间,但并不严格,错过了也影响不会太大,如用于信息查询系统和多媒体系统中的实时任务
      • 实时系统与分时系统特征的比较:
        • 多路性:信息查询系统和分时系统是系统按分时原则为多个终端用户服务;实时控制系统是系统周期性地对多路现场信息进行采集,并对多个对象或多个执行机构进行控制
        • 独立性:都表现为每个终端用户在与系统交互时彼此相互独立、互不干扰
        • 及时性:实时系统是以控制对象所要求的截止时间来确定的,一般为秒级到毫秒级
        • 交互性
        • 可靠性:实时系统要求系统高度可靠,因此在实时系统中往往都采取了多级容错措施
    • 微机操作系统
  6. 中断相关:
    • 计算机通过硬件中断机制完成由用户态到核心态的转换。发生中断事件时(有可能是用户程序发出的系统调用),触发中断,硬件中断机制将计算机状态置为核心态
    • 核心态程序只有在操作系统进入核心态后才可以执行
    • 中断处理程序一般也在核心态执行,因此无法完成“转换成核心态”这一任务
    • 用户程序也不可以将操作系统由用户态转换到核心态,因为如果这样,用户程序中就可以使用核心态指令,会威胁到计算机的安全
    • 中断是现代操作系统正常运行的核心保障之一,所以关中断指令是权限非常大的指令,所以一定是特权指令
  7. 常见的特权指令:
    • 对I/O设备操作的指令
    • 访问程序状态的指令
    • 存取特殊寄存器的指令
    • 其他指令
  8. 操作系统体系结构汇总(大内核、微内核、分层、模块化、外核)
特性、思想优点缺点
分层结构内核分多层,每层可单向调用更低一层提供的接口1. 便于调试和验证,自底向上逐层调试验证;2. 易扩充和维护,各层之间调用接口清晰固定1. 仅可调用相邻低层,难以合理定义各层的边界;2. 效率低,不可跨层调用,系统调用执行时间长
模块化将内核划分为多个模块,各模块之间相互协作(内核=主模块1+可加载内核模块21. 模块之间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发;2. 支持动态加载新的内核模块(如安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性;3. 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高1. 模块间接口定义未必合理实用;2. 模块间相互依赖,更难调试和验证
宏内核(大内核)所有的系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想1. 性能高,内核内部各种功能都可以直接相互调用1. 内核庞大功能复杂,难以维护;2. 大内核中某个功能模块出错,就可能导致整个系统崩溃
微内核只把中断、原语、进程通信等最核心的功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态1. 内核小功能少、易于维护、内核可靠性高;2. 内核外的某个功能模块出错不会导致整个系统崩溃1. 性能低,需要频繁地切换用户态/核心态;2. 用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信
外核内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全1. 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源;2. 减少了虚拟硬件资源的“映射层”,提升效率1. 降低了系统的一致性;2. 使系统变得更复杂

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述


  1. 主模块:只负责核心功能,如进程调度、内存管理 ↩︎

  2. 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内 ↩︎

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

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

相关文章

(GPT3)Language Models are Few-Shot Learners论文阅读

论文地址:https://arxiv.org/pdf/2005.14165v4.pdf 摘要 最近的工作表明,通过对大量文本语料库进行预训练,然后对特定任务进行微调,许多 NLP 任务和基准测试取得了实质性进展。 虽然在体系结构中通常与任务无关,但此方…

4月份公司测试部门来了个卷王之王,让人奔溃...

前段时间公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司干了三年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍&am…

【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

深度学习的目标检测算法,通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整(回归)区域边界,从而更准确地预测目标的真实边界框(ground-truth bounding box&…

【高数+复变函数】傅里叶积分

文章目录 【高数复变函数】傅里叶积分2. 傅里叶积分2.1 复数形式积分公式2.2 三角形式 上一节: 【高数复变函数】傅里叶级数 【高数复变函数】傅里叶积分 2. 傅里叶积分 在上一节中,我们知道了傅里叶级数的基本知识,其中,周期为…

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新) 本文敏感性分析主要分析回归问题,下期分析分类问题(fisher、rf、arf、nca等)。 一、降维方法(回归) 常见的降…

【动态规划】0-1背包问题

概述 0-1背包问题是一种经典的动态规划问题,它的基本形式是:有一个背包,容量为 C C C,有 n n n 个物品 i i i,每个物品 i i i 的重量为 w i w_i wi​,价值为 v i v_i vi​。现在要从这 n n n 个物品…

id选择器和class选择器

id选择器 id选择器用来选取带有给定id属性的元素。语法:#id例如: html <div id"container">...</div>css #container {color: blue; }id选择器的一些特征: 1. id选择器以#号开头,后跟元素的id属性值。 2. id选择器只能选取带有给定id属性的元素。 3.…

在 Windows 上安装 kubectl

一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起学习在 Windows 上安装 kubectl。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、 kubectl是什么 kubectl是Kubernetes集群的命令行工具&#xff0c;通过kubectl能够对集群本身进行管理&#xf…

一篇文章学会高级IO

文章目录 理解IO的本质认识五种IO模型阻塞式IO非阻塞式IO信号驱动式IO多路转接式IO异步式IO 高级IO的理解以及意义多路转接式IO的深入学习select模型select函数详解封装网络套接字&#xff1a;Sock.hppselectServer.cc(服务器文件)运行结果小结 poll模型poll函数详解Sock.hpppo…

Reed-Muller序列

Reed-Muller函数的由来 我们知道对于连续信号&#xff0c;时间和频率是对偶域(duality)&#xff0c;其中正弦函数是时移的特征函数&#xff08;where sinusoids are eigenfunctions of time shifts&#xff09;。而在汉明空间(Hamming space)中&#xff0c;there are discrete…

牛客网面试必刷:BM19 寻找峰值

牛客网面试必刷&#xff1a;BM19 寻找峰值 前言一、解法1&#xff1a;暴力依次搜索二、解法2&#xff1a;二分搜索 前言 给定一个长度为n的数组nums&#xff0c;请你找到峰值并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回任何一个所在位置即可…

数据库基础篇 -- 1

目录 数据库基础 1.1&#xff1a;什么是数据库 1.2&#xff1a;常见数据库 1.3&#xff1a;数据库的基本使用 1.4&#xff1a;mysql的架构 1.5&#xff1a;sql分类 1.6&#xff1a;存储引擎 数据库基础 1.1&#xff1a;什么是数据库 数据库是指存储和管理结构化数据的…

解决频繁操作svn导致提交文件失败svn: E155015,亲测成功

我是因为频繁在本地删除创建重复的包和.java文件&#xff0c;以至于在提交至svn的时候会出现我之前删除的包和.java文件&#xff0c;所以我致力于将其删除干净&#xff0c;频繁的在本地删除、去svn删除…以至于再后来本地项目中和svn中都没有但是还是svn: E155015&#xff0c;查…

Cesium入门之五:认识Cesium中的Viewer

Viewer是Cesium中用于显示3D场景的组件。它提供了创建和控制3D场景所需的所有基本功能&#xff0c;包括加载3D模型、添加图像覆盖物、设置相机位置和方向、处理用户输入等。 在创建Viewer时&#xff0c;可以指定要使用的HTML元素&#xff08;例如canvas&#xff09;&#xff0…

06-redis集群模式(中) 项目测试的云服务ip变内网等(解决大多数问题)

目录 0-0 前言 : 1. 搭建redis集群成功后 项目测试 ip变成内网 2. 设置 redis.conf的配置 3. 这时候如果运行后面操作, 会出以下问题 问题一: 不开放节点端口号 ​编辑问题二: 不开放通讯端口号 4. 最最核心的正确操作: 5. 删除全部容器 删除全部目录挂载 6. 重新运…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)-架子搭建

目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--架子搭建 技术栈 项目搭建 配置pom.xml 项目全局配置web.xml SpringMVC 配置 创建springDispatcherServlet-servlet.xml 创建项目相关的包 完成测试TestController.java 整合hi.html 启动Tomcat , 浏览器输入http://local…

mybatis是如何集成到spring的

前言 集成前的使用方式 mybatis单独使用时&#xff0c;一般的写法如下所示&#xff1a; // mybatis初始化 String resource "mybatis-config.xml"; InputStream inputStream Resources.getResourceAsStream(resource); // 读取配置文件&#xff0c;创建SqlS…

这五个问题一下就看出阿里通义千问和ChatGPT的差距了

前言 阿里通义千问申请过了&#xff0c;为了看看达到了什么水平&#xff0c;于是我问题了5个ChatGPT回答过的问题1&#xff0c;这五个问题网上都是没有的&#xff0c;是我自己想出来的。 问题一:小明说今天他吃了一只公鸡蛋&#xff0c;请问小明诚实吗&#xff1f; ChatGPT 这…

黑马Redis笔记高级篇 | 多级缓存

黑马Redis笔记高级篇 | 多级缓存&#xff08;黑马教程云服务器踩坑记录&#xff09; 1、JVM进程缓存&#xff08;tomcat服务内部&#xff09;1.1 导入商品案例1.2 初识Caffeine1.3 实现进程缓存 2、Lua语法入门2.1 初识Lua2.2 变量和循环2.3 条件控制、函数 3、多级缓存3.1 安装…

快速了解LVQ神经网络是什么

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一. 快速了解LVQ神经网络 1.1 LVQ神经网络是什么 1.2 LVQ神经网络的表示 二. 关于LVQ神经网络的判别计算过程 2.1 LVQ神经网络模型与它的判别方法 2.2 LVQ模型的…