操作系统的4个特征
目录
1 前言
程序员肯定都知道并发的概念,都知道在多线程的情况下,线程争抢CPU资源时有时候会造成并发问题,但当时一直都搞不清楚程序并发时如何争抢CPU资源的这个概念,这也促使我由下而上先来学习操作系统。
2 四个特征
2.1 并发
并发:指两个或多个事件在同一时间间隔内发生。这些事情宏观上是同时发生的,微观上是交替发生的
并行:指两个或多个事件在同一时刻同时发生
举例:假如有小扎男和老扎男每个人都有两个女朋友。任务1:和1号女朋友约会;任务2:和2号女朋友约会。

小扎同时和两个女朋友一起约会,老扎分时段的和女朋友约会(8点~9点和1号女朋友,9点~10点和2号女朋友,10点~11点又和1号女朋友),这时小札的约会方式就是并行,老扎的约会方式就是并发。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但是宏观上看起来是同时执行)事实上,操作系统就是伴随着“多道程序技术”而出现的,因此操作系统和并发是一起诞生的。
当今的计算机,一般都是多核CPU的,像我的是4核8线程。

这说明同一时刻我的电脑上有4个程序可以同时执行,但是操作系统的并发性依然必不可少,因为我们的电脑上不可能最多只运行4个程序。
注意:就算的你的计算机是单核的,你也可以打开多个应用程序。
2.2 共享
共享:资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
资源共享方式也分为两种:1 互斥共享方式 2 同时共享方式
1)互斥共享方式:系统中的某些资源,虽然可以提供给多个进程中使用,但一个时间段内只允许一个进程访问该资源
2)同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。
所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替的对该资源进行访问的
例如:
互斥共享方式:使用QQ和微信视屏。同一时间段内摄像头只能分配给其中的一个进程
同时共享方式:使用QQ发送文件A,使用微信发送文件B.宏观上看,两边都是同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程交替着访问硬盘。
由此可见:并发和共享是存在关系的
并发性指计算机系统中同时存在着多个运行中的程序
共享性指系统中的资源可供内存中多个并发执行的进程共同使用
通过上述例子来看并发和共享的关系(使用QQ发送文件A,同时使用微信发送文件B)
1 两个进程正在并发执行(并发性)
2 需要共享的访问硬盘资源(共享性)
如果失去了并发性,那么系统中只有一个程序正在运行,则共享性失去了存在的意义,
如果失去了共享性,那么QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。

2.3 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上的对应物(后者)是用户感受到的。
举个例子:我的电脑有4GB的内存,假使我要同时打开穿越火线(4GB)、QQ(256M、网易云(256M),
这些程序同时所需的内存大于4GB,为什么还能同时运行呢?(注意:一个程序需要放入内存并给他分配CPU才能执行)
因为虚拟存储器技术。实际只有4GB内存,在用户看来往往大于4GB。

大家都知道,单核CPU的计算机也可以打开多个软件,但是一个程序需要被分配CPU才能正常执行,那么为什么单核CPU能够同时运行这么多程序。
这就是虚拟处理器技术。实际上只有一个单核CPU,但在用户看来有6个CPU在同时为自己服务。
虚拟机中“时分复用技术”。微观上处理机在各个微小的时间段内交替着为各个进程服务。

2.4 异步
异步是指:在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的资源不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
3 总结
之前也说了,自己在多线程环境下线程争抢CPU资源的问题上有些迷茫,了解了操作系统的4个特性后,自己稍稍有点明白了。
问题:两个线程能够同时运行,但CPU一个时间点只能操作一个线程,如何保证同时运行?
这是我之前迷茫的点,线程并发时,是一个时间段内多个线程交替运行的。所以说,我们看到的多个线程并发运行,其实是宏观上面的,它是在很短很短的时间内线程交替运行而成。

浙公网安备 33010602011771号