一、并发性
指操作系统同时运行着多个程序,这些程序宏观上是同时运行的,但微观上其实是交替运行的
补充1:并发性区别于并行性
并发是指两个或多个事件在同一时间间隔内发生,事件宏观上是同时进行的,围观上市交替进行的
并行指的是两个事件在同一时刻同时发生
补充2:CPU内核
单核CPU:同一时刻只能执行一个程序,各个程序可以并发执行
多核CPU:同一时刻 可以执行多个程序,多个程序可以并行执行
二、共享性
指操作系统中的资源可供内存中多个并发执行的进程使用
共享的两种方式:
1.互斥共享
系统中的某些资源虽然可以给多个进程使用,但一个时间段只允许一个进程访问该资源
例:使用QQ和微信进行视频通话,同一时间段内摄像头资源只能分配给其中一个进程
2.同时共享
系统中的某些资源允许一个时间段多个进行“同时”对他们进行访问(所谓“同时”,往往是宏观上的,在微观上他们可能是交替地对资源进行访问)
例:使用QQ和微信发送文件,宏观上两个进程都在进行文件的发送,都在进行访问硬盘资源,但从微观上看两个进程其实是交替进行访问硬盘的
三、虚拟性
指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是具体存在的,而逻辑对应物是用户感受到的
虚拟性的两种技术:
1.空分复用技术
是指利用存储器的空闲空间分区域存放和运行其他躲到程序,以此来提高内存的利用率
例:GTA5需要4GB运行内存,QQ需要256MB运行内存,网易云音乐需要256MB运行内存……而我的电脑只有4GB运行内存,这些程序同时运行需要的运行内存远大于4GB,那么为什么这些程序可以同时在我的电脑上运行呢?因为利用了虚拟技术中的空分复用技术。我的电脑实际上运行内存只有4GB,但在用户看起来却远大于4GB
2.时分复用技术
是指利用某一设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用
例:某单核CPU计算机,用户打开了N多软件。问题:既然一个程序要被分配CPU才能正常运行,那么为什么单核CPU计算机可以同时运行这么多程序?因为利用了虚拟技术中的时分复用技术。实际上只有一个CPU在为用户服务,但在用户看来似乎有很多个CPU同事在位自己服务。微观上,CPU在各个微小的时间段交替着为各个进程服务。
四、异步性
指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底进行的,而是走走停停,已不可预知的速度向前推进,每个程序何时执行,何时暂停,何时完成都是不可预知的