操作系统的特征
操作系统的特征主要有四个,并发、共享、虚拟、异步,其中并发和共享是两个最基本的特征,二者互为存在条件。
操作系统的并发性
并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:值两个或多个时间在同一时刻发生。
操作系统的并发性指计算机系统中同时存在着多个运行着的程序。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行),事实上,操作系统就是伴随着"多道程序技术"而出现的。因此,操作系统和程序并发是一起诞生的。
当今的计算机,一般都是多核CPU,比如Intel的第八代i3处理器就是4核CPU,这意味着同一时刻可以有4个程序并行执行,但是操作系统的并发性依然必不可少。
操作系统的共享性
共享:即资源共享,是指操作系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式:第一种是互斥共享方式,系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源;第二种是同时共享方式,系统中的某些资源,允许一个时间段内多个进程“同时”对它们进行访问,所谓的"同时"往往是宏观上的,而在微观上,浙西诶进程可能是交替地对该资源进行访问的(即分时共享)。
生活实例:在生活中,使用QQ或者微信和朋友视频聊天,那么同一时间段内只能分配给其中的一方摄像头,这就是互斥共享方式;再比如使用QQ向朋友发送A文件,使用微信向朋友发送B文件,这些文件都是存储在硬盘中的,QQ和微信可以同时的访问硬盘资源,这就是同时共享方式,但是需要注意的是从宏观上来看,QQ和微信这两个进程是同时的访问硬盘中的资源的,但是从微观上来看,QQ和微信这两个进程,其实是交替着访问硬盘资源的。
并发性:指计算机系统中同时存在着多个运行的程序。
共享性:指系统中的资源可供内存中多个并发执行的进程共同使用。
为什么说操作系统的并发性与共享性互为存在条件呢?因为,如果失去了并发性,操作系统中不能同时运行多个程序,每个时间段只有一个程序在运行,则肯定是不会有两个正在运行的程序共用同一个资源了,因为根本没有两个程序在同时运行;如果失去了共享性,操作系统中两个同时运行的程序不能够共享同一个资源,加入你想要用QQ发送A文件给朋友,同时用微信发送A文件给朋友,那么因为失去了共享性,所以QQ和微信在一个时间段内,只能有一方访问硬盘中的文件资源,所以这就没办法保证QQ和微信同时运行了。因此,总的来说,如果失去了并发性,共享性就会消失,如果失去了共享性,并发性就会消失,故操作系统的并发性与共享性是互为存在条件的。
操作系统的虚拟性
虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上的对应物(后者)是用户感受到的。
用一个例子来理解虚拟这个特性:
背景知识:一个程序需要放入到内存并给它分配CPU才能执行。
GTA5这个游戏需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内存…而我的电脑的内存是4GB,那么问题来了,这些程序同时运行需要的内存远大于4GB,那么为什么他们还可以在我的电脑上同时运行呢?
答:这是虚拟存储器技术。实际只有4GB的内存,在用户看来似乎远远大于4GB,虚拟技术中的"空分复用技术"
再举一个例子,某单核CPU的计算机中,用户同时打开了QQ,QQ音乐,谷歌,印象笔记这些程序,问题来了,既然是一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎有多个CPU在同时为自己服务,这是虚拟技术中的“时分复用技术”,微观上处理机CPU在各个微小的时间段内交替着为各个进程服务。
虚拟技术分为空分复用技术(如虚拟器存储技术),和时分复用技术(如虚拟处理器技术),显然,如果失去了并发性,则一个时间段内系统中只能运行一道程序,那么就是去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
操作系统的异步性
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。注意,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底,只有系统拥有了并发性,才可能导致异步性。