CHS_01.1.1.1+1.1.3+操作系统的概念、功能

CHS_01.1.1.1+1.1.3+操作系统的概念、功能

  • 操作系统的概念和定义
  • 那我们看一下我们现在所使用的电脑是怎么样一步一步变成我们现在看到的这个样子的
    • 操作系统 它是计算机系统当中最基本的系统软件
  • 操作系统 它要向上层提供方便应用的服务 这是什么意思呢
  • 我们先来看第一种联机命令接口
  • 那第二种命令接口叫做脱机命令接口 又叫批处理命令接口

好的 那么下面让我们正式开始这个课程内容 首先来看一下大家都熟悉的操作系统都有哪些

对于一些手头比较宽裕的同学来说 可能会比较喜欢苹果的这些设备

比如说 苹果的电脑使用的操作系统是Mac os 然后苹果的手机使用的是ios系统

但是对于我自己来说 比起苹果的这种浮夸 我还是比较喜欢这个安卓和windows操作系统的这种质朴的优雅

那对于普通老百姓来说 可能99%的人都在使用这几种操作系统

但是对于技术专业的同学来说 琳达操作系统也是我们必须学习使用的一个操作系统

另外呢 现在可能还会有一些野人还在使用诺基亚的塞班系统 所以可以看到我们其实在学习这门课之前 我们自己已经积累了很多关于操作系统的这种体验 感性的经验 因此我们在学习这门课的时候

我们可以用自己平时使用这些操作系统的一些经验来结合我们学习到的一些知识点进行思考

这样可以帮助大家更好的理解课程的内容并且把操作系统知识和我们的

现实生活给连接起来做到学以致用 那在这个小节中我们只介绍操作系统的一些

最基础的概念和定义 并且会结合一些例子来加深大家的理解 那操作系统的概念和定义要回答的就是什么是操作系统这样一个问题

它的功能和目标要回答的是操作系统它需要做什么这样的一个问题 那首先来看第一个部分内容

操作系统的概念和定义

首先 我们来结合生活经验看一下操作系统在整个计算机体系当中它所处的一个位置和角色

那我们看一下我们现在所使用的电脑是怎么样一步一步变成我们现在看到的这个样子的

第一步 厂家会把cpu 主板等等这一系列的硬件给组装成一台裸机 那所谓的裸机就是只有硬件的机器 它不包含操作系统

但是在这个机器出售之前 一般这个厂家还会在这个逻辑的基础之上为我们安装一个操作系统

比如说最常用的就是windows的操作系统 那当我们买到这个电脑之后 就可以在这个操作系统之上来安装一些我们想要使用的应用程序 比如说像qq

那之后 我们作为用户就可以来使用这些应用程序了 所以我们根据一台电脑的诞生过程 就可以看出这个计算机系统的一个层次结构 最底层的当然是纯硬件 又称之为裸机

在裸机上面会安装一层操作系统 而基于操作系统我们又可以安装一系列的应用软件 那我们用户是处于最上面一层

这个地方 细心的同学可能会发现 用户和操作系统的这个边界是有一些相连的部分

用程序和操作系统也会有一些相连的部分 那为什么是这样呢 这个问题我们一会会进行进一步的解释

那在了解了操作系统在整个计算机系统当中所处的一个位置之后 我们来给出操作系统的定义

那这是书上给出的一个定义
操作系统是指控制和管理整个计算机系统的硬件和软件资源
并合理的组织调度计算机的工作和资源的分配

那其实这句话他想表达的无非就是

操作系统 它是系统资源的一个管理者 它是一个这样的角色 那这个系统资源呢 当然就包含了硬件和软件资源

我们来看一个直观的例子 如果大家使用的是windows操作系统的话 可以用这种方式来打开任务管理器

然后在任务管理器这个界面 我们就可以看到现在系统当中正在运行的进程有哪些

那所谓的进程 其实就是正在运行的软件正在运行的程序 比如说大家熟悉的qq crome等等

所以从这个地方可以看到 操作系统肯定是在对这些软件资源进行管理的 那再看右边这个界面

可以看到 操作系统对cpu 内存等等这一系列硬件资源的使用情况其实也是在监控的

比如说现在qq这个进程 它使用了138 9兆字节的内存的空间

所以从右半部分的这个界面来看操作系统 它肯定是在对硬件进行管理的

因此 操作系统 它作为软件和硬件中间的一个层次 它是系统资源的管理者

既管理了个软件资源 也管理了硬件资源 再来看第二句话 操作系统 他要提供给用户和其他软件方便的接口和环境

其实这句话想表达的就是操作系统 它要向上层提供方便应用的服务 那上层包括用户和普通的应用程序

再来看第三句话

操作系统 它是计算机系统当中最基本的系统软件

也就是说 操作系统 它其实是一种软件而不是硬件 但是从这个图当中我们也可以看到操作系统 它是最接近硬件的一层软件

那接下来我们会对操作系统的这三个功能进行更进一步的细分和分析 让大家

更形象的来体会操作系统的一个作用 首先要看的是操作系统 它作为软件和硬件中间的层次

他是系统资源的一个管理者 我们用大家使用qq和朋友视频聊天的例子帮助大家来理解他作为系统资源的管理者要做一些什么事情

首先 我们肯定是需要在文件夹当中找到qq的安装位置 比如说像我的电脑当中 我的qq就是安装在了地盘的的这一系列的路径下面

所以当我找到qq的这个启动程序之后 我就可以双击打开qq 点

那当我双击之后 qq程序就可以正常的运行 然后我就可以用qq和我的朋友进行视频聊天了

那在这个过程当中 我们可以看到 第一步我们是通过了这些一层一层的文件夹目录来找到了我们的qq启动程序

那除了这个文件之外 系统当中还有各式各样的其他的文件 但是这些文件的组织和管理其实是操作系统在帮我们完成的

所以 这就涉及到了操作系统 它作为系统资源的管理者所要提供的一个功能叫做文件管理的功能

然后第二步 当我们双击qq 点一x的时候 这个程序就可以开始正常的运行

那在这个地方 我们需要补充的一个跨考的同学可能不知道的知识点 就是我们的一个程序在执行之前其实是需要把这个程序的数据放到内存里的

所以在我们双击打开qq点ex的时候 其实在背后操作系统帮我们做了一个很重要的事情

就是把这个程序的数据从我们的磁盘放入了内存当中 并且这些数据要放到内存中的什么位置 这些其实都是操作系统在帮我们完成的

所以这一步就涉及到了操作系统 它所要提供的第二个功能叫做存储器管理 或者叫储存管理 内存管理

那当qq程序运行的过程当中 其实是需要被处理机 也就是cpu进行处理的

而什么时候给qq程序分配处理及资源这个事情 是操作系统在背后替我们完成的

因此 这就涉及到了第三个功能 叫做处理机管理 而第四步我们开始使用qq程序和朋友视频聊天

在视频聊天的过程当中 肯定需要把摄像头这个设备分配给qq程序使用

因此 像摄像头这一类设备资源也是要由操作系统替我们管理 由操作系统来决定

应该要把这些设备分配给哪个程序使用 所以这就涉及到了操作系统要提供的第四个功能叫做设备管理

我们书的第二章讲的其实就是处理机管理 而第三章讲的是存储期管理 第四章讲的是

文件管理 而第五章讲的是设备管理 所以其实操作系统这门课 在后期我们要重点学习的就是

它作为系统资源的管理者 要如何设计和实现这些功能 那对于各个部分的理解大家会随着之后的学习不断的深入

这儿就暂且不展开 在这个地方 大家只需要建立这样一个全局观就可以好的 那么 这是第一部分

操作系统 它作为系统资源的管理者所需要实现的一些事情 第二部分 我们来看一下

操作系统 它要向上层提供方便应用的服务 这是什么意思呢

那通过刚才分析 我们知道计算机的最底层其实是裸机 也就是纯硬件

那最底层的这些硬件 其实他只能听得懂二进制指令 也就是极其语言 也就是说 如果我们要直接和这些硬件打交道的话

那我们只能通过这种二进制的语言和这些硬件进行交互 所以我们说最底层的这些硬件 它对外暴露的其实是一些丑陋的

不友好的交互接口 正常的人类很难和这些纯硬件直接来打交道 但是在硬件之上安装的操作系统其实会向它的上层提供一种更美丽 更友好的交互接口 在安装了操作系统之后

我们的用户和应用程序不需要直接和硬件打交道 我们只需要告诉操作系统我们想要得到的服务就可以

而操作系统会把用户的这些命令需求翻译成二进制来告诉硬件 然后由硬件来执行我们想要的这些操作

那这其实是一个很典型的封装的思想 操作系统把一些丑陋的硬件功能把它封装成了一些简单易用的服务

使用户能够更方便的使用计算机 上层的用户不需要再关心底层的硬件细节 而只需要用这种更简单的方式对操作系统发出命令就可以

剩下的操作系统会替我们来完成 其实这种封装思想在我们日常生活中也经常被使用

比如说我们的汽车 如果把它拆解了的话 会发现它里面有很多很多很复杂的一些构件

但是我们的汽车设计师们会把这些底层复杂的这些构件把它隐藏起来

把封装成一个我们简单易用的接口 对用户暴露出的就只有方向盘啊 刹车 油门 这些用户能够理解的简单易用的接口

但是用户不需要再关心它底层到底是怎么实现转向加速 减速这些功能的

所以 其实操作系统做的事情本质上和这种封装没有任何的区别 那接下来我们来看一下操作系统

它屏蔽了底层硬件细节之后 它对上层提供了哪些方便应用的服务呢

首先来看一个我们最熟悉的操作系统提供的服务 叫做gui 又叫图形化用户接口

我们用户可以使用这些形象的图形界面来对我们的整个系统进行操作

比如说 在windows操作系统当中 如果我们要删除一个文件的话 只需要把文件拖拽到那个回收站即可

这种操作方式对于我们用户来说是很形象 很容易理解的 但是在我们这样一个简单的拖拽动作之后 操作系统其实在背后为我们做了很多很多的事情

那现代的操作系统一般都会对我们的上层用户提供这种图形化的这种

用户接口 不过一些早期的操作系统其实是并没有这种图形化的界面的 那早期的操作系统都是让用户通过命令接口的方式和操作系统进行交互

也就是用命令行的方式和操作系统进行交互 那命令接口又分为两种一种是联机命令接口 一种是脱机命令接口

我们先来看第一种联机命令接口

他又叫交互式的命令接口 我们来看一个直观的例子 如果使用的是windows操作系统的话 我们可以用这样的方式来打开命令解释器

也就是我们平时经常会看到的这个小黑框 然后我们可以在这个命令解释器当中输入一个命令 叫做time

那输入了time这个命令之后 操作系统他会告诉我们当前的时间是几点几分

接下来 操作系统又会让用户输入一个新的时间 也就说你想把系统时间调到几点几分几秒

那像这个time秘密就是一个很典型的交互式的秘密 也就是 我们用户说一句 然后系统会跟着做一句 接下来用户需要再说一句 然后系统才会跟着再做一句

整个过程我们用户和操作系统是在不断的交互的 那除了探命令之外 还有很多别的用于和操作系统交互的这种命令

由这些命令组成了所谓的交互式的命令接口 或者叫连接命令接口

那第二种命令接口叫做脱机命令接口 又叫批处理命令接口

还是 到操作系统为例

我们可以在c盘当中搜索一个一点b a t作为后缀的一个文件 然后随便打开其中的一个文件

可以看到里面有密密麻麻的一系列的命令 但别看他复杂 其实他本质上和我们刚才所看到的time命令没有任何区别 我们只不过是

把这一系列的命令把它罗列在了这样的一个清单里 然后当我们执行这个点 bt文件的时候

操作系统其实就是根据这个文件当中的这些命令一条一条的往后执行

也就说 我们使用这种拖机命令接口 或者叫p处理命令接口和操作系统进行交互的话

那么我们其实是一次提出一堆的请求 然后操作系统会根据我们的指示
一条一条的执行这一堆的请求 所以这也是为什么这种命令接口称作为批处理命令接口的原因

那这就是操作系统对上层提供的两种命令接口 那刚才我们提到的三种接口

gui连接命令接口和拖机命令接口都是可以让普通用户直接使用的

那操作系统还有一种对外提供的接口 叫做程序接口 这种接口它是给我们程序员使用的

我们可以在我们写的程序当中啊通过系统调用的方式来使用程序接口

注意 普通用户是不能直接使用程序接口的 我们只能通过编写程序代码的方式来间接的使用这个程序接口

那我们用一个例子来帮助大家加深理解什么叫系统调用 什么叫程序接口 在我们写c语言的程序的时候

我们会使用到printf这个函数 然后在执行这个程序的时候 会在我们的电脑屏幕上打印出
这两个单词 虽然我们只是简单的调用了print f函数 但是其实这个函数在底层实现的时候肯定是使用到了操作系统

提供的和显示相关的那些系统调用的功能 也就说我们普通程序员其实使用了c语言提供的酷函数 也就是print f这个函数

而这个库函数在底层实现的时候 其实是使用了操作系统提供的系统调用的功能

而操作系统在收到这个系统调用相关的请求之后 他才会替我们去操作这个硬件 也就是显示器 并且在这个显示器上面显示出helloword的这两个单词

所以其实这个系统调用很类似于我们很熟悉的这种函数调用 那很多操作系统当中都提供了上百种的系统调用

由这些系统调用组成了所谓的程序接口 我们的应用程序请求操作系统服务的唯一方式就是通过系统调用的方式

那这个地方有一个小细节 有的教材当中系统调用又会被称为广义指令 所以这个术语大家也稍微注意一下

好了 这个部分我们讲了很多内容操作系统 它向上层提供了很多方便应用的服务

有的接口是直接给用户使用的 比如说g u i和命令接口 而有的接口是给软件 或者说给程序员使用的

比如说程序接口 那讲到这里 我们就可以理解为什么用户和操作系统中间有一段相接的

部分了 因为用户通过这些方式可以直接的来和操作系统进行交互

而应用程序呢需要通过系统调用的方式 也就是通过程序接口来和操作系统进行交互

那联机命令接口和拖机命令接口的区别大家也需要注意 有可能在选择题当中进行考察 联机命令接口或者叫交互式命令接口 是用户说一句

系统做一句 而拖机命令接口或者叫批处理命令接口是用户说一堆 然后系统跟着做一堆

另外 在有的教材当中会把命令接口和程序接口统称为用户接口

也就是说 狭义的用户接口其实不包含g u i 这点大家稍微注意一下 接下来我们来看这个小节最后一个内容

操作系统 它作为最接近硬件的这个层次所需要做的事情就是要实现对硬件机器的拓展

如果一个计算机当中没有任何的软件支持 那这种计算机就称之为裸机

而如果我们在裸机上安装了操作系统的话 就可以把裸机改造成功能更强 使用更方便的机器

我们会把覆盖的软件的这种机器称为拓充机器 或者称为虚拟机 当然这些只是

一些无关紧要的概念对于我们来说 更重要的事情是要理解为什么说操作系统可以实现对硬件机器的拓展

那为了理解这个特点 我们还是用刚才汽车的例子来进行类比

比如说我们汽车当中原本只有一些零碎的一些硬件 比如发动机 其实它只有一个功能 就是会转

然后轮胎 它也只有一个功能 就是会滚 但是如果我们在这种原始的硬件机器上再覆盖上一层传动系统的话

我们就可以让发动机来带动着轮子来转 这样的话 我们的汽车就可以开始往前行走了

所以增加了这样的一个系统之后 我们以前的这些简单的硬件机器就得到了一种功能上的拓展

而我们的操作系统对硬件机器的拓展也是类似的 操作系统把cpu 内存等等这一系列的硬件合理的组织起来

并且让这些硬件能够相互协调配合着工作 这样的话这些简单的硬件就可以组合起来 实现更多更复杂的功能

所以说 操作系统 它实现了对这些硬件机器功能的一个拓展 使这些单纯的硬件功能更强 使用更方便

好的 那么在这个小节当中 我们用了很多例子 帮助大家感性的认识了什么是操作系统 操作系统需要实现一些什么样的功能

那操作系统这门课最关注的是它作为系统资源的管理者所需要实现的这些功能

这些功能应该怎么实现 怎么设计 这是我们之后的课程当中会重点会详细讲解的

而这个小节当中有可能会作为选择题进行考察的是操作系统 它对上层提供了哪些服务

大家要理解什么是g u i 什么是命令接口 连击命令接口和脱击命令接口的区别是什么

另外 由一系列的系统调用组成了程序接口系统 调用这个概念会在后面专门用一个小节再进行更进一步的分析和讲解

在这里插入图片描述

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

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

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

相关文章

基于java,springboot的学生成绩管理系统的设计与实现

背景 本文主要根据目前信息技术发展现状结合人们对于学生成绩管理引出开发学生成绩管理系统的必要性。然后根据管理员及学生、教师需求指定需求分析和可行性分析,并介绍应用到的相应技术,包括java技术,B/S结构等文中已做相关介绍&#xff0c…

建站指南,如何将拥有的域名自定义链接到wordpress

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 在Dynadot上,我们可已经账户中管理的…

大学物理-实验篇——测量误差与数据处理(测量分类、误差、有效数字、逐差法)

目录 测量分类 测量次数角度 测量条件角度 误差 误差分类 系统误差 随机误差 异常值 误差描述 精密度(Precision) 正确度(Trueness) 准确度/精确度(Accuracy) 随机误差的处理 直接测量 算术…

标签函数 - 打造JavaScript组件

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

企业机密文件防泄密解决方案(具体执行时间表)

企业的机密文件是其核心竞争力的重要组成部分。一旦机密文件泄露,可能会给企业带来重大的经济损失和声誉损害。因此,企业需要采取有效的措施来保护机密文件的安全性。本文将介绍一种企业机密文件防泄密解决方案,帮助企业提高信息安全防护能力…

PostgreSQL的常见错误和解决方法

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在学习新的东西时,会犯很多的错误,会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…

C语言编译器(C语言编程软件)完全攻略(第二十八部分:VS“无法查找或打开PDB文件”是怎么回事?如何解决)

介绍常用C语言编译器的安装、配置和使用。 二十八、VS“无法查找或打开PDB文件”是怎么回事?如何解决 有时候,我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败&…

Java入门

Java特性与优势 简单性 面对对象 可移植性 高性能 分布式 多态性 多线程 安全性 健壮性 Java三大版本 Write Once,Run Anywhere JavaSE: 标准版 (桌面程序,控制台开发…) JavaME: 嵌入式开发 (手机,小家电…) JavaEE: E企业级开发 (Web端&…

Linux驱动开发(1)-最简单的字符设备驱动开发例子

1.简介 字符设备驱动:按照字节流进行读写操作的设备,例如点灯、按键、IIC、SPI、LCD。 Linux系统中一切皆文件,驱动加载成功,就会在/dev目录生成文件,对文件操作,则可实现对硬件操作。应用程序运行在用户…

x-cmd pkg | fd - find 命令的现代化替代品

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 fd 基于 Rust 开发的搜索工具,是 find 的替代品,虽然没有 find 命令的所有强大功能,但其提供的功能也能满足日常使用,设计重点在于更快、更友好。 fd 具有良好的跨平台…

Jmeter二次开发实操问题汇总(JDK问题,jar包问题)

前提 之前写过一篇文章:https://qa-lsq.blog.csdn.net/article/details/119782694 只是简单尝试了一下生成一个随机手机号码。 但是如果在工作中一个实际场景要用的二次开发,可能会遇到一些问题。 比如这样一个场景: Mobile或者前端调用部分…

Linux内核(1)-内核目录介绍,每个人都应该了解的内核目录结构

1.总览 2.详解 arch目录:架构相关目录,例如arm、arm64 arch/arm/configs:不同平台的默认配置文件,例如xxx_defconfig arch/arm/boot/dts:设备树文件 arch/arm/boot:编译出的Image和zImage Linux镜像文件 …