常见的操作系统
MacOs IOS Windows Android Linux
计算机系统对的层次结构
如图所示:我们可以看到操作系统所在的位置。
当中裸机主要包含了内存,CPU,硬盘和主板一类的。
什么是操作系统?
控制和管理整个计算机系统的硬件和软件的资源,并合理的组织带哦读计算机的工作和资源的分配。提供各用户和其他软件方便的接口和环境。它是计算机中系统中最基本的系统软件。也可以这么说,操作系统是系统资源的管理者,向上层(如上图)提供方便易用的服务,是最接近硬件的一层软件。
那么操作系统要做一些什么事情呢?
补充:执行一个程序前需要将该程序放在内存中,才能被CPU处理。
我们说操作系统的功能和目标是系统资源的管理者,那么他能做什么呢?如图示。
如何理解向上层提供方便易用的服务
因为硬件只能听得懂二进制的指令(0101),所以硬件对外暴露的是不友好的交互接口,操作系统对外暴露了友好的交互接口。这里采用了一种封装的思想,就是操作系统把一些不友好的硬件功能封装成简单易用的服务,使用户能更加方便的使用计算机,那么用户呢也就不需要去关心底层硬件的原理,只需要去对操作系统发出命令。
那么操作系统对上层提供了哪些简单易用的服务呢?
1)GUI(Graphical User Interface):图形化用户接口
用户可以使用图形界面进行操作,不再需要记忆负责的命令、参数,在我们常用的Windows系统中,我们可以进行简单的去删除,创建文件夹等。
2)程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过编写程序代码间接使用。(就比如我们在写C语言的输出时,在printf函数的底层就是使用到操作系统提供的显示相关的“系统调用”,程序员->C语言库函数->操作系统提供的程序接口:由一系列系统调用组成->操作显示器(硬件)显示)。注意:系统调用(也被叫做广义指令)类似于函数调用,是应用程序请求操作系统服务的唯一方式。
3)联机命令接口:也称为交互式命令接口。它的特点是用户敲一行命令,系统就执行一行命令。
4)脱机命令接口:也称为批处理命令接口。它的特点是用户敲一堆命令,系统就执行一堆命令。
大量文字不好阅读,我在这里画一张图。
这个时候我们可以理解了,为什么在计算机系统的层次结构中的图片中,用户和操作系统有一段接触的面积了。
如何理解操作系统作为最接近硬件的层次?
操作系统需要实现对硬件机器的拓展。我们说在裸机上面安装操作系统提议提供资源管理功能和方便用户的服务功能,让这个裸机成为更强,更加方便的机器。注意:如果一台计算机没有任何软件支持的话,我们就可以称它为裸机了。覆盖了软件的机器成为扩充机器(也称作虚拟机)。
操作系统的四个特征。
1.并发 2.共享 3.虚拟 4.异步
并发:指的是两个或多个事件在同一时间间隔内发生。这件事件宏观上是同时发生的,但微观上是交替。
并行:指的是两个或多个事件在同一时刻同时发生。
说明:并发和共享二者互为存在条件。
那么操作系统的并发性指的是什么呢?
指的是计算机系统中“同时”运行这多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行。操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
注意 :单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行。
不管是对于几核的CPU来说,只要超过这个数量的程序“同时”运行,那么来说,并发性是必不可少的,所以,并发性是操作系统最基本的特性。
共享:资源共享,指的是系统中的资源可提供内存中多个并发执行的进程共同使用。
操作系统有两种资源共享方式:
1)互斥共享方式:系统中的某些资源,虽然可以提供多个进程使用,但一个时间段内只允许一个进程访问该资源。 比如打视频,同一时间内摄像头只能分配给其中一个进程。
2)同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对他们进行访问。
注意:这里所说的”同时“往往是宏观上的,而在微观上,这些进程可能是交替的对该资源进行访问的。(也就是分时共享)。
并发和共享的关系
并发性:计算机系统中同时存在着多个运行着的程序。
共享性:系统中的资源可供内存中多个并发执行的进程共同使用。
如果系统失去了并发性,那么在系统中就只有一个程序正在运行,则共享性失去存在的意义。
如果系统失去了共享性,那么也就无法并发。
所以它们属于互为存在的条件。
虚拟:把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑的对应物是用户感受到的。
理解虚拟之前先了解另一个知识点:一个程序需要放入内存并给它分配CPU才能执行。
虚拟技术中的“时分复用技术。微观上处理机在各个微小的时间段内交替着为各个进程服务。
如果失去了并发性,则一个时间段内系统中只能运行一个程序,那么也就是说失去了实现虚拟性的意义了。也就是说,没有并发性,也就谈不上虚拟性。
画个图:
异步:在多个程序环境下,允许多个程序并发执行。但由于资源有限,进程的执行不是一贯到底的,而是走走停停
,以不可预知的速度向前推进,这就是进程的异步性。
如果失去了并发性,则系统只能串行的运行各个程序,那么每个程序的执行会一路顺风。所以,只有系统拥有并发性,才有可能导致异步性。
注意:本文章知识是笔者在学习操作系统的学习笔记,由于笔者的能力有限,会出现一些无法预料的错误,如果您在浏览的时候发现了错误,还请您及时在评论区留言,笔者会在第一时间处理。本篇文章是笔者一个一个字敲出来的,如果出现了错别字,也请您在评论区留言。