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.mzph.cn/news/601488.shtml

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

相关文章

配置文件的创建和部署

配置描述文件(Configuration Profiles)的格式为xml,其提供了一个非常容易的方式去给电脑、移动设备或用户定义一些设置或限制,你可以使用Jamf Pro去创建这样的配置文件。 (配置文件的负载) 有关配置文件的配…

【电源专题】电池充放电中常说的0.2C是什么概念

在工作中我们时常会听到老员工说拿这个电池去做一下充放电,以0.2C充,0.2C放。那么这个0.2C到底是啥? 这就要说到电池C-rate概念。在《GB 31241:便携式电子产品用锂离子电池和电池安全要求》中我们可以看到3.7中写了额定容量为C,也就是制造商标明的电池或电池组容量。 那么…

Java经典框架之Zookeeper

Zookeeper Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Zookeeper的介绍和安装 2. …

程序性能优化全能手册

本文聊一个程序员都会关注的问题:性能。 当大家谈到“性能”时,你首先想到的会是什么? 是每次请求需要多长时间才能返回? 是每秒钟能够处理多少次请求? 还是程序的CPU和内存使用率高不高? 这些问题基本上…

Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用

前言 前段时间微软发布了适用于VS Code的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VS Code搭建.NET Core环境的教程看着还挺复杂的就一直没有尝试使用VS Code来编写.NET Core。不过听说C# 开发…

C++结合OpenCV:图像的基本表示方法

1.二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。在计算机中,通过一个栅格状排列的数据集(矩阵)来表示和处理图像。例如,图1是一个字母A的图像,计算机在处理该图像时,会首先将其划分为一个个的小…

6 网关和配置服务器

文章目录 网关模式Spring Cloud网关Spring Cloud网关微服务其他项目的变更运行和测试小结 运行状况Spring Boot Actuator在微服务中包含Actuator 服务发现和负载均衡ConsulSpring Cloud ConsulSpring Cloud负载均衡器网关中的服务发现和负载均衡使用服务发现和负载均衡 环境配置…

数据库开发之事务和索引的详细解析

2. 事务 场景:学工部整个部门解散了,该部门及部门下的员工都需要删除了。 操作: -- 删除学工部 delete from dept where id 1; -- 删除成功 ​ -- 删除学工部的员工 delete from emp where dept_id 1; -- 删除失败(操作过程中…

windows下载官方正版notepad++

一、前言 notepad是一款非常好用的编辑器,简洁、快速、高效。可是很多时候我们想去官网下载时,百度出来的都是一堆第三方下载地址,捆绑流氓软件,要么就是付费,作为一款优秀开源软件,我们必须要知道正确的下…

用Redis实现全局唯一ID

全局唯一ID 如果使用数据库自增ID就存在一些问题: id的规律性太明显受表数据量的限制 全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,一般要满足下列特性: 唯一性高可用递增性安全性高性能 为了增加ID的安全性…

Linux环境变量、export命令、env命令、$符号

一、环境变量 我们所使用的一系列命令本质上就是一个个的可执行程序 不管我们当前的工作目录在何处,命令都可以准确执行,这就是环境变量的作用,是借助环境变量中PATH的值来做到的,PATH记录了系统执行任何命令的搜索路径 环境变量…

ansible 配置jspgou商城上线(MySQL版)

准备环境 准备两台纯净的服务器进行,在实验之前我们关闭防火墙和selinux systemctl stop firewalld #关闭防火墙 setenforce 0 #临时关闭selinux hosts解析(两台服务器都要去做) [rootansible-server ~]# vim /etc/hosts 10.31.162.24 ansible-ser…

博客的简介

博客的简介 大家可以把这个当做目录,从中选择自己需要的内容进行阅览,欢迎大家一键三连!!!! 话题讨论专栏 点击进入话题讨论专栏 主要文章: 神奇的代码——可随意修改复制页面内容 Python…

系统安全及应用

1、基本安全措施 1.1、系统账号清理 在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生产的其他大量账号。除了超级用户root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允…

Java:Lambda表达式、方法引用

文章目录 1、Lambda表达式1.1 Lambda表达式体验1.2 Lambda表达式的省略形式1.3 Lambda表达式练习 2、方法引用体验3、方法引用符4、引用静态方法5、引用对象的实例方法6、引用类的实例方法7、引用构造方法8、引用数组的构造方法9、方法引用练习9.1 练习19.2 练习29.3 练习3 10、…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识:演员-评论家算法:多智能体强化学习核心框架 主要思想 AC 网络结构: 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…

leetcode——杨辉三角

https://leetcode.cn/problems/pascals-triangle/ 杨辉三角: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 核心思想:找出杨辉三角的规律,发…

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

Apache Paimon:Streaming Lakehouse is Coming

摘要:本文整理自阿里云智能开源表存储负责人,Founder of Paimon,Flink PMC 成员李劲松(花名:之信)、同程旅行大数据专家,Apache Hudi & Paimon Contributor 吴祥平、汽车之家大数据计算平台…

前置判断-Detection

检测模型回答存在幻觉可以通过检索外部知识进行校验,不过考虑生成式模型覆盖问题的广泛性,Self-Contradictory论文中评估chatgpt生成的回答中38.5%的内容无法通过Wiki等外部知识进行校验。 因此这里我们先介绍一种完全基于模型自身,不依赖外…