计算机操作系统-操作系统的特征

操作系统的特征

  • 并发
  • 共享
  • 虚拟
  • 异步

其中并发和共享是最基本的特征,二者互为存在条件

  • 并发

指两个或多个事件在同一个时间间隔内发生。这些事件宏观上是同时发生的,但在微观上是交替发生的。易与之混淆的概念-并行。

操作系统的并发

指的是计算机操作系统中同时存在着多个运行着的程序。

对于单核CPU,同一个时刻只能执行一个程序,当有多个程序需要执行时,操作系统就会采取并发的方式,在微观上交替地运行这多个程序(即操作系统会协调多个程序的交替执行)。

实际上,操作系统就是伴随着“多道程序技术”而出现的。故操作系统核程序并发是一起诞生的。

对于多核CPU处理器,例如8核,就意味着在操作系统中可以同时并行地执行8个程序,但是这不代表并发性不重要,相反,并发性仍然是必不可少的。因为虽然有8核,但有可能运行的程序不止8个,因为操作系统本身就会创建一些进程来维护管理整个系统。

并行

指两个或多个事件在同一个时刻发生。

  • 共享

即资源共享,指的是系统中的资源可供内存中多个并发执行的进程共同使用。

两种资源共享方式

1.互斥共享方式

系统中的某些资源,虽然供给多个进程使用,但一个时间段内只允许一个进程访问该资源。注意,这里的时间标度是时间段,即从宏观的角度上看,是互斥的。

2.同时共享方式

系统中的某些资源,允许在一个时间段内由多个进程“同时”对他们进行访问。注意,这里的时间标度同样是时间段,也就是说,是宏观上的同时。至于微观上,有的是同时,也有的是交替(分时共享)。

并发性和共享性之间的关系

之前提到了,二者是操作系统的最基本的特征,并且二者是互为存在关系。下面对此进行解释。

并发性:指两个或多个事件在同一个时间间隔内发生。这些事件宏观上是同时发生的,但在微观上是交替发生的。易与之混淆的概念-并行。

共享性:即资源共享,指的是系统中的资源可供内存中多个并发执行的进程共同使用。

举例说明

用QQ发送文件A,同时用微信发送文件B

1.两个进程正在并发执行(并发性)

2.需要共享地访问硬盘资源(共享性)

根据并发性的定义,同时要允许多个程序,既然要在同时运行多个程序,那么必然会同时对计算机的资源进行使用,而后者,正是共享性的定义。

如果失去了并发性,即系统中某一时间段内只能有一个程序在运行,则共享性就失去了意义,反正只有一个程序在运行,资源就只能给这个程序用,那还谈什么资源共享呢?

如果失去了共享性,即计算机资源在某一个时间段内只能被一个程序所使用,那么如果要同时运行多个程序,多出来的这些程序并没有资源可用,那就无法执行,就不存在并发。

  • 虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物是用户感受到的。

一个程序需要放入内存并给他分配CPU才能执行

举例说明

由前面提到的,一个程序运行的前提是其需要放入内存中。所以每个程序时都会有相应需要的运行内存。但是内存有限,而实际上经常遇到运行的程序所需的内存加起来大于物理上实际所具有的内存。这里就是应用了虚拟存储器技术,用户的视角计算机所具有的内存远远大于硬件上实际具有的内存。

这是虚拟技术中的“空分复用技术”

再比如,对于单核CPU的计算机中,用户一次同时运行了5个程序,但是由前面的内容可知,一个程序要被分配CPU后才能正常运行,这又是怎么做到的。同样,这也是虚拟处理器技术,实际上只有一个CPU,但从用户的视角来看,是有5个CPU在同时为自己服务。

这是虚拟技术中的“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务。

所以,所谓的虚拟,就是用户视角中的情况和实际的情况之间的差别。即用户视角中的情况就是定义里的由用户感受到的逻辑上的对应物,实际存在的物理实体则是实际的情况。所以虚拟更像是一种现象,从用户的视角去看待问题。而虚拟技术就是在研究如何让用户能产生与实际情况不相符的错觉。也可以从这个角度看,用户视角更像是宏观的视角,而实际的情况则是微观的视角,所以虚拟技术中采用各种复用技术,这个复用技术是微观上的体现,但是从宏观上看,就是同时、共享等等。

虚拟性和并发性的关系

虚拟技术

  • 空分复用技术
  • 时分复用技术

如果没有并发性,虚拟性就没有存在的意义

因为没有并发性意味着一个时间段内只能有一个程序的执行,而所谓虚拟是在描述用户的感受和实际之间的区别,一个时间段内只能有一个程序的执行时,用户也必然只能感受到一个时间段内只有一个程序的执行,这和实际情况是一致的,那么虚拟性就没有存在的意义了。

  • 异步

指的是在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底而是走走停停的,以不可预知的速度向前推进,这就是进程的异步性。

举例说明

程序A的指令1是占用资源a完成相关操作,指令2是占用资源b完成相关操作

程序B的指令1是占用资源b完成相关操作,指令2是占用资源c完成相关操作

当程序AB并发执行时,A先执行,占用了资源a,B占用了资源b,假设当A的指令1执行完之后,B的指令1还没执行完,即b资源仍被程序B所占有,那么可知此时程序A的指令2无法执行,即程序A的运行受到了停滞,只有当程序B的指令1执行完后,将资源b释放了,程序A才能使用资源b从而完成指令2的执行。这就是异步性,程序AB虽然看起来时并发的交替的,但实际上二者执行的步调是不一致的,这是资源有限所造成的,这也就是异步的体现。

异步性与并发性的关系

可知异步性的产生是由于资源有限所造成的,而如果失去了并发性,在某一个时间段内只能有一个程序执行,那么计算机所有的资源都是供这个唯一的程序使用的,那也就不会因为资源的有限性产生异步现象,程序会在一个时间段内执行到底,不会受到阻碍产生停滞。同样可以这么理解,因为异步,表示步调不相同,既然是要判断想不相同,必然是一个相对比的过程,那么必然需要一个以上个数的程序才有步调是否一致的说法。所以只有系统拥有并发性,才可能导致异步性。

猜你喜欢

转载自blog.csdn.net/weixin_39721347/article/details/86481737