Introduction
这里是我的408考研自学专题的操作系统。我将会分享我自学408操作系统的知识点和一些我平时自己的想法。还有一些可能b站上或youtube上推荐方便理解的视频。
我们这篇博客便是对操作系统这个课程进行一个导论(?),初步理解操作系统到底是什么。
下面就是我们1.操作系统里将要讲到的知识点,xmind比有道云笔记好用多了。我们这篇先只讲1.1什么是操作系统。
好我们将正式开始咯,出花( ̄︶ ̄)↗ 。
我们有着许多熟悉的操作系统:MacOS, ios, Windows, andriod; Linux; symbian。
这些操作系统都非常的耳熟能详,除了塞班系统或者linux,前者因为太过于古早,早已经被淘汰,后者则是一般计算机行业人员会经常用到这个系统。
1.1什么是操作系统
1.1.1操作系统的概念和定义:
一个电脑的诞生过程:
Step1: 一台电脑组装(裸机,硬件) 包含着CPU,内存,硬盘,主板等
Step2:出售的时候安装操作系统
Step3:用户安装应用程序(e.g. B站)
Step4:使用B站看视频
操作系统(Operating System, OS)是指控制和管理整个计算机系统的(1)硬件和软件资源,并合理地组织调度计算机的工作和资源分配,(2)以提供给用户和其他软件方便的接口和环境;它是计算机系统中(3)最基本的系统软件。(这里非常重要我们的操作系统是软件而非硬件)
(1)中我们以电脑里的任务管理系统进行形象的解释
当我们打开Windows里面的任务管理器,我们可以看到不同应用程序的进程,证明着在对软件进行管理。任务管理器的右侧是不同硬件的指标,如CPU,程序,磁盘,网络等等。证明着我们的OS也在管理着我们的硬件。
(2)理解为为上层提供方便且易用的服务,比如说cmd中的交互式接口。
他能够为我们应用软件创造一个环境来方便他们运行,提供更好的服务。
接下来我们来详细地从这三个方面来讲解操作系统的功能和目标。
操作系统的功能和目标:
1.作为系统资源的管理者
当我们用QQ和朋友进行视频聊天:
Step1: 在各个文件夹中找到QQ安装的位置(如:D:/Tencent/QQ/Bin)
我们看着这么复杂的文件摆放在我们的文件夹,这实际上就是我们的操作系统发挥着文件管理。这里体现的就是我们操作系统的文件管理功能。
Step2: 双击打开QQ.exe
知识点:执行一个程序前我们需要先将我们的程序存放到我们的内存之中,才能够被CPU处理(这段知识出自计算机组成原理,我或许后续很快就会写出来,我尽力!!)
所以我这里操作系统提供了存储器管理的能力。
Step3: QQ程序正常运作
QQ之所以能够运行,就是我们放入内存里面的程序被处理机(CPU)处理。所以这里操作系统用的就是处理机管理。
Step4:开始和朋友进行视频聊天
这里我们需要我们的摄像头打开,这个时候就是我们操作系统的最后一个功能作为管理者:设备管理。
2.向上层提供方便易用的服务
硬件:硬件只能够听得懂二进制指令,硬件内复杂繁琐的内容对于外行来说难以理解。所以我们就需要高级到低级到汇编语言层层递进让计算机明白用户的要求。
操作系统:操作系统通过友好的,易懂的交互接口来接受用户需要的服务,然后将这项服务转化为指令传达给硬件。我们用户就不用盯着一堆的0101010101,而是看着可视化的易懂的符号和解释。
就像是python里的封装。
那么我们操作系统封装后到底有哪些好的服务呢。
1.GUI:图形化用户接口 (Graphical User Interface)
用户可以使用形象的图形界面进行操作,而不需要记忆复杂的命令和参数。这个是非常容易理解的,就是不同软件的ui和图形图标。但是在早期我们是没有这些图形化的,所以就有下面三个不同的接口。
2.联机命令接口实例(Windows 系统)
联机命令接口 = 交互式命令接口
如果你们有学过python,你就会对cmd这个小黑框有所印象。
特点:用户说一句,系统跟着做一句
3.脱机命令接口实例(Windows系统)
脱机命令接口 = 批处理命令接口
你可以搜索C盘中的*.bat文件,然后在记事本中打开。你会看到非常密密麻麻的代码。
他就是一次性将一整个文件进行处理。
特点:用户说一堆,系统跟着做一堆
4.程序接口
前面两种接口一般普通人都可以使用。程序接口就hi程序员特有的接口
程序接口:可以是在程序中进行系统调用(=广义指令)来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
如:写C语言”Hello World“程序的时候,在printf函数的底层就使用到了操作系统提供的与显示屏的显示相关的”系统调用“,我们让操作系统传递相应的指示,告诉硬件(显示器)去显示“Hello World”
总结成xmind。注意这里的用户接口!!!!,狭义上的用户接口是不包括GUI。
3.作为最接近硬件的层次
我们通常把覆盖了软件的机器称作扩充机器,又称之为虚拟机
操作系统对硬件机器的拓展:将CPU,内存,磁盘,显示器,键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,来实现更多更复杂的功能。
为了更好的理解,我们看一下汽车的传动系统:
类比汽车:
发动机 -- 只会转动; 轮胎 -- 只会滚;
在原始的硬件机器上覆盖一层传动系统 —— 让发动机带着轮子转动 -- 是原始的硬件机器得到拓展。
操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各个硬件能够相互协调配合,实现更多更复杂地功能。
好,知识点还是蛮多的,不知道你能不能理解这一节的内容
不管了我们直接下面讨论操作系统的特征
冲刺!冲刺!
1.1.2 操作系统的特征
1.并发
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但在微观上是交替发生的
易混淆点:并行:指两个或者多个事件在同一时刻同时发生。
个人理解为:
并发是我把一个时间段划分不同时间交替写不同科目。
并行是我一个人同时左手写英语右手写语文。
操作系统的并发性指计算机系统中”同时“运行着多个程序,这些程序宏观上来看是同时运行着的,但是在微观的角度来看是交替运行的。
操作系统就是伴随着”多道程序技术“而出现的,因此,操作系统和程序并发是一起诞生的。
注意:
单核CPU同一时刻只能够执行一个程序,各个程序只能够并发执行。
多核CPU同一时刻执行多个程序,多个程序可以并行地执行。
比如intel的第八代i3处理器就是4核CPU,意味着可以并行地执行4个程序。
但即使对于4核CPU来说,只要有4个以上的程序需要”同时“运行,那么并发性是必不可少的,所以并发性是操作系统里面一个最基础的特征。
2.共享
共享即资源共享,是指系统中的资源可以供内存中的多个并发执行的进程共同使用。
互斥共享方法:系统中的某些资源,虽然可以提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源
例子:
打视频电话的时候,我们只能够QQ和微信之间选择一个来进行视频,两者同时使用会显示摄像头已经被其他软件占用
同时共享方法:系统中的某些资源,允许一个时间段内多个进程”同时“对他们进行访问。
(同时在一般情况下都是在宏观的角度下来观测会认为是同时发生的,从微观的角度来看就能知道是交替发生)
一般情况!一般情况!一般情况!
因为我马上就会说特殊情况
例子:
使用QQ发送文件A,同时使用微信发送文件B,从宏观上来看,两边都是同时读取并发送文件,说明两个进程都是访问硬盘资源,从中读取数据。微观上来看,两个进程交替访问硬盘。
当然也会有在微观上也是同时共享:打游戏和看电视同时进行,扬声器里两个的声音就会同时发生。!!!!!!!!!
并发性与共享性之间是必要充分的:
我们还是以QQ传输文件和微信传输文件为例子。
当我们同时传输QQ文件和微信文件的时候会体现出并发性和共享性。
1.两个进程在并发地执行,“同时进行文件的传输”。(并发性)
2.两个文件也在共享访问硬盘资源。(共享性)
即使我们的文件传输没有了并发性,那么就说明我们一段时间内只能传输一个文件,那么共享性也没由存在的意义。
当我们的文件传输没有了共享性,那么我们传输文件一段时间只能QQ或微信访问硬盘。那么就没有了并发性的意义。
你懂了吗?不懂我就要哭哭了。/(ㄒoㄒ)/~~
3.虚拟
我们八股文一下:
虚拟是指把一个物理上的实体变为了若干个逻辑上的对应物。物理实体是实际存在的,而在逻辑上对应物是用户所感知到的。
这是我电脑的大致配置。机带RAM可以看出内存大概是24G.
这个是apex legend 的推荐内存:8GB RAM
这个是battle field的推荐内存:16GB RAM
你如果也打游戏你可以在你的steam里看看内存大小是多少。
很显然我还有很多别的软件的内存需求,总和会超过我的内存。那这是为什么呢?
这其中的原因就是我们的虚拟存储器技术。
这其中靠的是空分复用技术,从微观角度大块的区域被切分成不同的小空间为不同进程进行使用。
还有我们有着很多的程序在同时使用,为什么cpu能够同时运行这么多的程序呢。
这其中的原因就是我们的虚拟处理器技术。
这其中靠的就是“时分复用技术”,从微观的角度来看,长段的时间会被切分成各个微小的时间段交替去进行不同进程的服务。
这里如果没有了并发性,我们的一段时间内就只能使用一个程序,那么我们的时分复用技术就不存在了。
4.异步
异步指的就是在多道程序环境下,允许多个程序并发执行,但是由于资源的有限,进程的执行不是一贯到底的,而是走走停停的,以不可预测的速度向前推进,这就是操作系统的异步性。
我们还是以并发性里的写作业为例子来解释异步性。
我们光写一份作业就够呛了,写两份作业我们直接“妈妈生的”(大脑不够用了),所以我们写作业的时候写着写着大脑就被占满了学习的压力和疲惫不得不选择休息,打打原神什么。
所以我们的操作系统也是一样,资源被完全占据之后,就必须稍微停一下再继续运行。
结束,我马上就把后面的写完 啊啊啊啊