集团网站开发公司,网站怎么做外链接,交换友情链接的方法,wordpress主题接入社交功能操作系统的概念 导言一、日常生活中的操作系统二、计算机系统层次结构三、操作系统的定义3.1 控制和管理计算机资源3.2 组织、调度计算机的工作与资源的分配3.3 给用户和其他软件提供方便接口与环境3.4 总结 四、操作系统的目标和功能4.1 作为管理者4.1.1 处理机管理4.1.2 存储… 操作系统的概念 导言一、日常生活中的操作系统二、计算机系统层次结构三、操作系统的定义3.1 控制和管理计算机资源3.2 组织、调度计算机的工作与资源的分配3.3 给用户和其他软件提供方便接口与环境3.4 总结 四、操作系统的目标和功能4.1 作为管理者4.1.1 处理机管理4.1.2 存储器管理4.1.3 文件管理4.1.4 设备管理4.1.5 对管理者的理解 4.2 作为中间人4.2.1 命令接口4.2.2 程序接口 4.3 作为扩充者 结语 导言
大家好很高兴又和大家见面了
在今天的内容中我们将开启计算机学习的一个新的章节——操作系统Operating System, OS。
在操作系统中更偏重的是理论知识的学习相比于数据结构而言这一块内容的学习并不会涉及到太多的实操练习。要学好操作系统最重要的还是理解记忆各个知识点。在计算机的理论知识学习中如果只靠死记硬背的话我个人认为这个难度还是挺大的。所以为了更好的理解吸收这些理论知识点我会尽可能采用图文结合、联想等方式来进行学习。
【操作系统】博客专栏同样也是属于我自己的一份学习笔记相关知识点的学习内容来自于【王道考研系列】丛书中的操作系统如果有正在学习相关内容的朋友咱们可以私下交流一下成为对方的学习搭子。
接下来我们就要开始进入第一章节的内容——计算机系统概述。在这个篇章中我们将学习以下知识点
操作系统的基本概念操作系统的发展历程操作系统的运行环境操作系统结构操作系统引导虚拟机
我们将在学习这些内容的过程中构建起操作系统学习的一个初步框架。在今天的内容中我们将学习操作系统的基本概念作为操作系统的开篇内容我们首先需要认识操作系统因此在今天的内容中会解决两个问题
什么是操作系统操作系统需要做些什么
大家现在是不是和我一样有点迫不及待了呢那么接下来我们就来正式进入操作系统的世界吧
一、日常生活中的操作系统
在现在的信息化时代绝大部分的人都会接触手机和电脑。我们在使用手机时会经常性的提到 IOS 系统和 Android 系统以及现在华为手机上搭载的HarmonyOS而对更倾向于使用电脑的朋友则会经常提到MacOS、Windows对于程序猿来说则会接触到Linux……这里咱们提到的这些系统都被称为操作系统。
这么看来其实我们每天都会和操作系统打交道操作系统可以说是最忠实的朋友一直陪伴在我们的身边。不过很可惜之前我们并没有好好的了解咱们的这位朋友接下来我们就来重新认识一下吧
二、计算机系统层次结构
在计算机系统中软件是计算机系统的灵魂我们可以通过不同的软件进行不同的操作如学习软件、交友软件、游戏软件等等而作为软件核心的操作系统已与现代计算机系统弥补可分、融为一体。计算机系统自下而上我们可以将其大致分为4个部分 最底层的为硬件层。当我们组装一台电脑时我们需要在机箱内安装电源、CPU、散热器、内存条、硬盘、显卡……之后我们还需要将主机与显示器、鼠标、键盘……进行连接这些我们在生活中看得到摸得着的物件就是计算机的硬件。
与硬件紧密相连的就是操作系统。我们在安装好一台电脑后接下来我们就可以根据自己的需求给电脑安装相应的操作系统了。
在操作系统的上层就是软件。我们安装好操作系统后想要上网我们需要下载浏览器想要看视频我们需要下载视频软件想要跟好朋友聊天我们可以安装交友软件想要娱乐放松我们还能安装游戏软件。根据我们自己的需求我们可以在电脑上下载各式各样的软件。
在软件的上层则是用户了。在计算机上用户是和软件进行直接交互的我们会根据自己的需求来运行对应的软件。而对于程序猿来说他们有时还需要直接与操作系统进行交互。
说到这里不知道大家是否和我一样对操作系统更加好奇了。接下来我们就来看一下操作系统的定义
三、操作系统的定义
操作系统Operating System, OS是指控制和管理整个计算机系统的硬件与软件资源合理的组织、调度计算机的工作与资源的分配进而为用户和其他软件提供方便接口与环境的程序集合。操作系统时计算机系统中最基本的软件系统。
从这个定义中我们可以提炼出来以下几点
操作系统是用来控制和管理计算机资源的操作系统能够组织、调度计算机的工作与资源的分配操作系统能够给用户和其他软件提供方便接口与环境操作系统时最基本的软件系统
从提炼出的这四点信息中对于前面的三点现在我们好像还不能很好的理解它的含义而第四点很直观的告诉我们一个信息——操作系统是一个软件系统。也就是说操作系统和我们电脑上安装的各种各样的软件一样它同样也是一个软件不过相比于其它的软件来说它是电脑上最基础的一个软件。因此现在我们对操作系统有了第一个认识——它是一个软件系统。
下面我们来看看前面的三点是想向我们传达什么样的信息
3.1 控制和管理计算机资源
什么是计算机资源这是我对这一点的第一个疑问于是我查阅了百度百科在百度百科中对计算机资源给出的解释是
计算资源 (resource on the computation)计算复杂性理论的一个术语。在IT行业计算资源一般指计算机程序运行时所需的CPU资源、内存资源、硬盘资源和网络资源。
原来计算机资源指的是CPU、内存、硬盘以及网络。那我们如何来观察这些资源呢
如果大家和我一样使用的是Windows操作系统的话那我们可以通过CTRLALTDEL来打开任务管理器至于使用MACOS的朋友则可以使用Command Option Escape来打开任务管理器另外也可以按下shiftcommandA键来打开任务管理器。 在任务管理器界面我们可以看到这里对计算机资源的使用情况进行了统计而完成这项工作的对象就是计算机上安装的操作系统。在计算机系统层次结构中我们也介绍过了这些计算机资源实际上指的就是硬件资源现在我们再来看一下这个层次图 从图中我们可以更直观的看到操作系统是用来控制和管理计算机资源这句话实际上表达的意思就是操作系统对下进行的是控制与管理的工作。至于如何进行控制和管理在后面我们会继续学习。
3.2 组织、调度计算机的工作与资源的分配
有了对第一句话的理解我们知道了操作系统是可以控制和管理计算机资源的那它是如何组织和调度计算机的工作与资源的分配的呢这里我们还是看到任务管理器 在任务管理器中我们可以看到此时我的电脑上运行了7个引用现在我们主要看一下CAD和Chrome这两个软件它们分别在电脑中占用的CPU、内存、磁盘、网络、GPU这些信息。
因为我需要画图所以启动了CAD但我并未在CAD上进行大量的作图因此操作系统给CAD分配的内存是134.1MB而我现在是在进行博客的编写并打开了一些其它的网页对于计算机而言此时主要运行的就是Chrome因此操作系统为其分配了大量的内存空间。
对这些应用而言从CPU的使用情况我们可以看到操作系统并不会将打开的所有应用都分配CPU的资源对于长时间未被使用的应用或者使用频率低下的应用操作系统则是将其搁置在一旁而对长时间工作的应用则会分配相应的资源来保证它的正常运行。因此操作系统对软件同样也会进行相应的控制和管理。
要是我们能够观察一下任务管理器一段时间我们会发现这些资源的分配并不是固定的而是时刻在变化的从这个现象可以说明操作系统对软件与计算机资源不仅仅是控制和管理它还会根对相应的工作进行合理的组织和调度并对这些工作进行计算机资源的分配。
因此我们可以得到一个结论
操作系统对与硬件和软件来说它是一位管理者它的任务是来组织和调度软件的工作并对这些工作进行计算机资源的分配。
我们如果再来看层次图的话则可以得到下图 通过层次图我们可以更直观的看到操作系统作为连接硬件和软件的管理者它所执行的工作。
3.3 给用户和其他软件提供方便接口与环境
要理解这句话我们首先需要简单了解一下计算机组成原理的相关内容。计算机系统是由硬件系统和软件系统共同构成这里的软件就是指的操作系统以及其它的软件而硬件系统则是计算机系统中实际物理装置的总称。
对于计算机硬件而言它并没有像我们使用计算机的过程中看到的内容这么智能它在工作时只能机械的读取二进制的数据。早在计算机诞生之初计算机是用来在战争中计算导弹轨道的。那时的计算机并没有操作系统用户是直接与硬件进行交互的。因此人们只能将需要计算的数据手动转换成二进制序列然后再将对应的信息传递给计算机硬件计算机硬件才能开始正常运行。
而操作系统的诞生改变了这一局面操作系统作为链接用户和硬件的桥梁它主动承担起了将用户输入的数据转换成二进制的工作。有了操作系统后用户和硬件之间的交互就变的更加方便了。同样的在操作系统诞生后一些搭载在操作系统上的具有各式各样功能的软件也随之诞生。因此操作系统给用户和其他软件提供方便接口与环境。 从层次结构图中我们可以看到不管是软件还是用户都是位于操作系统上方的也就是说操作系统对上的工作是帮助上层的软件和用户来和下层的硬件进行对接它就像是一个将上下层联系起来的中间人而对于软件而言软件并不能直接在硬件上进行工作它只能依附于操作系统提供的环境。
经过前面的探讨我们已经对操作系统的定义有了一个初步的理解下面我们就来用自己的语言来对什么是操作系统做个总结
3.4 总结
操作系统对下层的硬件起到的是一个控制和管理其资源并能够合理的组织和调度不同软件的工作并为其进行合理的硬件资源分配操作系统对上层的用户起到的是一个连接硬件的通道上层的用户通过操作系统能够更加方便的与下层的硬件进行沟通同时操作系统还对上层的软件提供了良好的工作环境让不能直接在硬件上正常工作的软件能够正常工作操作系统在计算机系统中是一个最核心的软件系统。
如果我们将计算机系统这种层次结构看做是一个公司的层次结构的话那我们就可以将用户比作董事长软件则是经理硬件则是基层员工而操作系统则是处理协调这三方工作的组长。接下来我们通过这个形象的例子从三个方面来进一步加深对操作系统的理解 操作系统处理硬件资源与软件工作 从图中我们可以看到操作系统在处理软件的各种工作时它需要做的就是将各种工作进行合理的组织和调度并将工作进一步传达给硬件操作系统则会对其进行控制和管理并合理的分配给各种工作 操作系统处理用户指令 当用户想与硬件沟通时此时用户下达的各种指令操作系统会将其简化处理成各种二进制序列然后再将二进制序列传达给硬件硬件介绍到这些二进制序列后才会正常执行对应的工作 操作系统处理软件工作 当用户对软件下达工作时软件并不能直接指向相应的工作它还是只能通过硬件来执行但是硬件并不会接收软件传递过来的工作信息也就是说此时的软件无法直接在硬件上执行工作但是对于操作系统而言它是能够接收软件的工作信息然后将对应的信息再传递给硬件硬件才会去执行对应的工作因此软件想要在计算机系统中正常工作的话是需要依赖于操作系统的。
现在我们知道了操作系统在计算机系统中它既是一位管理者又是一位中间人。它的管理主要体现在对计算机资源的管理为了更好的管理计算机资源它则需要对各个工作进行合理的组织和调度而它作为中间人则主要体现在为用户和硬件之间的沟通提供一个更加方便的接口。现在我们需要解决一个问题——操作系统在作为管理者和中间人它需要完成哪些目标以及它需要拥有哪些功能呢
四、操作系统的目标和功能
4.1 作为管理者
为了给多道程序提供良好的运行环境操作系统作为管理者它需要对计算机的处理机、存储器、设备以及文件进行相应的管理。下面我们就来看一下操作系统对这些不同内容的管理分别需要做些什么
4.1.1 处理机管理
在多道程序环境下处理机的分配和运行都以进程或线程为基本单位因而对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程因此进程合适创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度。
4.1.2 存储器管理
存储器管理是为了给多道程序的运行提供良好的环境方便用户使用及提高内存的利用率主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
4.1.3 文件管理
计算机中的信息都是以文件的形式存在的操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
4.1.4 设备管理
设备管理的主要任务是完成用户的I/O请求输入输出请求方便用户使用各种设备并提高设备的利用率主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
看着这些文字可能有部分朋友会觉得有点头疼这都说的啥是啥呀下面我们就来借助实际的例子来理解这些功能。
4.1.5 对管理者的理解
首先是进程管理这里我们还是看到任务管理器如下图所示 在我的电脑上可以看到此时我是有5个应用正在运行在任务管理器中我们会发现在应用这一栏正好是我在运行的这五个应用并且在下方的后台进程中我们还能看到此时我的电脑上同时还有其他的程序也是在同步运行的。如果此时我将其中的某个应用关闭又会发生什么现象呢 可以随着我关闭了两个应用窗口后此时正在运行的应用同样也去掉了被关闭的两个应用而在后台进程这里我们会发现原先只有68个后台进程此时却变成了85也就是说刚刚关闭的应用窗口它此时正在后台运行。
这里我们就会得到一个结论任务管理器对进程的管理是同步进行的。而这个任务管理器实际上就是我的电脑上搭载的Windows系统。
接下来我们来看一下操作系统对存储器的管理。这里同样是看到任务管理器 我们此时看到内存这一栏我的电脑现在对内存的使用率是69%那如果我将其中一个应用给关闭又会如何呢 可以看到当我将Chrome关闭后此时的内存利用率变为了55%这就说明了当我在运行Chrome的时候操作系统为该应用分配了对应的空间而当我关闭该应用后此时分配给它的空间就被操作系统给回收了。因此操作系统时可以管理内存的分配与回收的。
下面我们再来看看操作系统时如何进行文件管理的这里我以打开存放博客图片的文件夹为例如下图所示
从图中可以看到我需要找到文件管理的图片时我需要从此电脑开始按照文件夹存放的路径依次打开对应的文件夹在找到对应的文件后我们还能看到各个文件在内存空间中所占空间大小而从左侧窗口我们可以看到在我的电脑上我可以访问的所有的文件夹。左侧的内容实际上就是我的电脑上的不同的目录而文件上方的从此电脑开始的内容就是文件存储的路径当我们点开文件的属性时我们还能看到我们可以对文件的详细信息 从属性这一栏可以看到我们还能对文件进行读写的修改或者是显示与隐藏的修改。
文件的所占空间大小说明的是操作系统对文件存储空间的管理而对读写的修改和显示与隐藏的修改则是在说明操作系统对文件读写的管理和对文件的保护而我们看到的文件目录则是说明操作系统对文件目录的管理。
最后我再来看一下操作系统时如何对设备进行管理的。这里我举个最简单的例子电脑的鼠标、键盘以及显示器鼠标和键盘都属于电脑的输入设备我们可以通过鼠标与键盘来进行不同内容的输入就比如我现在写的博客就是通过键盘来进行文字的输入而我们能看到我的博客内容则是显示器对这些输入内容的输出。
不管是输入还是输出这实际上都是用户与硬件之间的沟通而操作系统在这个过程中就需要对这些硬件设备进行管理以确保每个硬件都能执行自己对应的功能至于这些硬件是如何执行的这就不是我们现在需要关注的问题了。
现在大家应该对操作系统作为管理者需要执行的目标和功能已经有了一定的认识了下面我们再来看看它作为中间人有需要执行哪些目标和功能
4.2 作为中间人
为了让用户更加方便、快捷、可靠地操纵计算机硬件并运行自己的程序操作系统还提供了用户接口。操作系统提供的接口主要分为两类一类是命令接口用户利用这些从挨揍命令来组织和控制作业的执行另一类是程序接口编程人员可以使用它们来请求操作系统服务。
下面我们来分别了解一下这两类接口
4.2.1 命令接口
使用命令接口进行作业控制的主要方式有两种——联机控制与脱机控制。按照作业控制方式的不同可将命令接口分为联机命令接口和脱机命令接口。
联机命令接口 联机命令接口又称交互式命令接口适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台或中断输入操作指令向系统提出各种服务要求。用户每输入一条命令控制权就转给操作系统的命令解释程序让后命令解释程序解释并执行输入的命令完成指定的功能。之后控制权转回控制台或终端此时用户又可输入下一条命令。 脱机命令接口 脱机命令接口又称为批处理命令接口适用于批处理系统它是由一组作业控制命令组成。脱机用户不能直接干预作业的运行而应实现用相应的作业控制命令写成一份作业操作说明书连同作业一起提交给系统。系统调度到该作业时右系统中的命令解释程序逐条解释执行作业说明书上的命令从而间接的控制作业的运行。 光看这些文字概念可能大家没有什么感觉现在我们通过几个例子来认识一下这两种命令接口。
如果大家是Windows系统的话我们可以通过WINR来打开程序运行窗口之后在运行窗口中输入cmd来打开Windows的控制台 在这个控制台窗口中我们可以输入对应的指令来执行对应的操作。如我这里输入title指令我们就能修改窗口的名称 像上面这种通过在控制台中进行输入相关命令来执行对应操作的方式就是联机命令接口。
当我们想打印多份文件时我们可以在打印设备的界面看到下面的任务清单 这些任务清单生成后并不再需要我们去进行处理打印机会根据清单的内容逐一进行打印。像这种通过工作清单执行命令的方式就是脱机命令接口。
相信大家现在应该能够理解这两种命令接口了。王道书上给了一个更加形象的比喻
联机命令接口雇主(用户)说一句话工人(操作系统)做一件事雇主和工人在进行实时的交互脱机命令接口雇主列一份工作清单工人按照清单逐一完成工作工人对这些工作进行批量处理
了解了命令接口下面我们再来看下什么是程序接口
4.2.2 程序接口
程序接口 程序接口是由一组系统调用也称广义指令组成。用户通过在程序中使用这些系统调用来请求操作系统为器提供服务如使用各种外部设备、申请分配和回收内存及其他各种要求。 图形接口GUI 当前最为流行的是图形用户界面GUI即图形接口。GUI最终是通过调用程序接口实现的用户通过鼠标和键盘在图形界面上单击或使用快捷键就能很方便地使用操作系统。严格来说图形接口不是操作系统的一部分但图形接口所调用的系统调用命令式操作系统的一部分。 程序接口我相信大家应该都很熟悉了就比如我们在VS上通过C语言写了一段代码用来在屏幕上输出HELLO WORLD!!!这段代码就是一个小程序而我们实现输出的方式就是通过调用printf这个库函数。
而图形接口我们则是天天接触到比如我的电脑桌面 可以看到桌面上这些应用程序的图标就是一个一个的图形接口我们可以直接通过鼠标或者键盘来对这些图标进行相应的操作就比如大家非常熟悉的快捷键F5它的作用就是用来刷新桌面。
相信大家现在对程序接口也有了一定的理解了其实不管是命令接口也好还是程序接口也好这些接口都让我们能够更加方便的来与硬件进行相应的交互。
那是不是说操作系统只有以上这些目标和功能呢其实对于操作系统而言他还有一个十分重要的功能——作为扩充者实现对计算机资源的扩充。什么意思呢下面我们就来一起学习一下
4.3 作为扩充者
对于计算机而言没有任何软件支持的计算机称为裸机。它仅构成了计算机系统的物质基础而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在嘴里层也就是硬件层起外面就是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能将裸机改造成功能更强、使用更方便的机器因此我们通常把覆盖了软件的机器称为扩充机器或虚拟机。
对于扩充者我是这样理解的
对于计算机的各个硬件而言各个部分的功能是相互独立存在的就比如键盘它能够进行敲击鼠标能够进行滑动与点击显示器它能够显示内容存储器它能够存储数据。当我们拿到一台裸机时我们想要将这些功能组合起来以实现更多的功能实际上是非常困难的。就好比电饭煲它的工作原理就是连通电源后电阻进行发热。如果仅仅是这样那只会有一个结果就是煮饭时一定会糊锅。但是我们现在使用的多功能电饭煲却能够做到煮饭、煮汤、煮粥……一系列不同的功能那它是如何做到的呢实际上它是通过相关的程序来对电路进行控制的当我们需要进行煮饭、煮汤、煮粥……不同的工作时它们对电阻加热的时间、大小都是不一样的而这个程序很好的通过控制电路来将单一的加热功能进行了扩充。而裸机也是一样它的不同的硬件实现的功能是单一的当我们在裸机上安装操作系统后原本这些单一的功能通过操作系统的控制进而实现了更强大的功能就比如键盘原本只能进行敲击但是在操作系统的控制下它能够跟显示器联合起来进行文字的输入与输出而鼠标原本只能进行滑动与 点击但是在操作系统的控制下它能够与现实器联合起来实现界面的滑动与选择存储器原本只能进行存储数据但是在操作系统的控制下它可以做到对数据的存储与删除……以上这些例子都是在说明操作系统将原本的裸机改造成了功能更强、更发方便的机器。
现在我们对操作系统的目标和功能就全部介绍完了在这个内容中我们需要重点关注的是操作系统作为管理者是如何来控制与管理计算机资源的对于操作系统作为中间人与扩充者我们只需要对其有个印象能够理解即可。
结语
在今天的内容中我们可谓是收获满满啊。今天的内容主要介绍了两个点
什么是操作系统操作系统需要做什么
在学习的过程中我们知道了操作系统在计算机系统中有三个身份管理者、中间人与扩充者。
作为管理者的操作系统能够控制并管理计算机资源作为中间人的操作系统能够给用户提供与硬件进行沟通的接口作为扩充者的操作系统能够将硬件单一的功能扩充为更加强大的功能
今天的内容到这里就全部结束了希望大家通过今天的内容能够对操作系统有一个初步的理解在下一篇内容中我们将来聊一聊操作系统的特征。最后感谢各位朋友对博主的支持如果喜欢博主的内容还麻烦大家能够点赞、收藏加评论。咱们下一篇再见