【第一章第二讲】操作系统的四个特征

操作系统有四个最基本的特征,分别是并发共享虚拟异步,其中并发和共享两者之间互为存在条件。

1. 并发

指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

😲易混淆的概念—>并行

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

注意区分时间间隔和时刻

比如说17:00就是时刻。17:00 ~ 18:00就是一个时间间隔,时间间隔代表着某个时间段,而时刻代表着的是某个时间点。

下面来举个例子来区分并发并行

假如说小渣和老渣每个人都有两个女朋友。他们都有两个任务:

  • 任务一:和一号女朋友约会
  • 任务而:和二号女朋友约会

如图分别为小渣和一号女朋友和二号女朋友

在这里插入图片描述

在这里插入图片描述

接下来分别是老渣和一号女朋友和二号女朋友:

在这里插入图片描述

在这里插入图片描述

小渣的做法:同时和一号和二号一起约会

老渣的做法:8:00 ~ 9:00和一号女朋友约会

​ 9:00 ~ 10 : 00和二号女朋友约会

那么小渣的策略就是并行的策略,老渣的策略就是并发的策略。他们都是一整天完成了两个约会任务,但是仔细看的话,小渣是同一时刻同时进行两个约会任务。而老渣任意某个时刻,最多在进行一个约会任务。

操作系统的并发性

操作系统的并发性指的是计算机系统中“同时”运行着多个程序,这些程序在宏观上看是同时运行着的,但是在微观上看,是交替运行的。

操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。

😲重要考点:

单核CPU同一时刻只能执行一个程序,各个程序之间只能并发地执行。

多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。

例如Intel的第八代i3处理器就是4核CPU,意味着可以并行地执行4个程序。

😮一些解释

可能有的同学不懂什么是单核CPU,什么是多核CPU,那么在这里举个例子。

首先回顾下基本概念,cpu,就是中央处理器,包括运算器和控制器。cpu的主要功能就是“一行一行的执行代码”。所以大家可以把cpu看成是医院的医生诊室,在一定时间内执行一行代码(给一个病人诊断治疗)。所以单核cpu就是,代码经过前面一系列的前导操作(类似于医院挂号),然后到cpu处执行时发现,就只有一个cpu,大家排队执行。(类似于10个挂号窗口挂号,结果跑到医生那只有一个医生,只能排队等)。这时候想要提升系统性能,只有两个办法,要么提升cpu性能(让医生看病快点),要么多加几个cpu(多整几个医生)。

即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,因此并发性是操作系统一个最基本的特性。

2. 共享

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

资源共享分为两种,分别是互斥共享方式同时共享方式

2.1 互斥共享方式

系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。

例如:使用QQ和微信都进行视频通话。同一时间段内,摄像头只能分配个一个进程。

2.2 同时共享方式

系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。

这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的。(即分时分享)

使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取文件并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。

🤔并发和共享的关系

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

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

我们还是通过例子来理解:

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

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

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

❤❤❤

1.如果失去并发性,则系统中只有一个程序正在执行,则共享性失去存在的意义。

例如,QQ和微信只有一个在运行了,那么也就不需要共享性了,因为资源都被正在运行的那一个程序占用了。

2.如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。

比如说硬盘资源这个时间段只能被QQ使用,那么在这个时间段内微信也就不能使用硬盘资源了,所以在这个时间段内也就只有QQ在运行,那么就没有并发了。

所以我们说,并发性和共享性是互为存在的条件的。

3.虚拟

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

我们知道:一个程序需要放入内存并给它分配CPU才能执行

例一:

比如说你的电脑的运行内存是4GB,然后一个英雄联盟的运行内存是4G,网易云音乐的运行内存是256MB,QQ运行的内存是512MB。那么,这三个应用程序所需要的运行内存已经超过4GB了,为什么电脑还能同时运行它们三个呢?

其实这里使用了虚拟存储技术中的“空分复用技术”,从而使得我们看上去内存只有4GB,但是可以运行远超4GB的程序。这里不理解虚拟存储技术和空分复用技术也没事,以后的章节中会讲到。

例二:

既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?

其实这是虚拟处理器技术。实际上只有一个单核CPU,但是在用户看来似乎有许多个CPU在同时为自己服务。

另外,时分的意思就是把一个时间段分为许多小的时间片的意思。

显然,如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。

4. 异步

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

🤔举个例子来理解一下:

比如说老渣要和两个女孩约会

一号有两个指令:1.老渣陪我吃饭

​ 2.老渣把心给我

二号有两个指令:1.老渣把心给我

​ 2.老渣陪我吃饭

那么和一号和二号的约会就相当于是两道并发程序的执行。老渣的心就相当于是有限的资源。

那么老渣可能有两种方法:

方法一:

8 : 00 ~ 9 : 00 陪一号女朋友吃饭

9 : 00 ~ 10 : 00 把心给了一号女朋友❤

10 : 00 ~ 11 : 00 陪二号女朋友吃饭

11 : 00 ~ 12 : 00 把心给了二号女朋友🚫 发生阻塞,因为老渣的心这个资源现在还没到老渣手里,还在一号女朋友这里,所以二号女朋友只能等待资源到了老渣手里,再去使用。

方法二:

8 : 00 ~ 9 : 00 陪一号女朋友吃饭

9 : 00 ~ 10 : 00 把心给了二号女朋友❤

10 : 00 ~ 11 : 00 把心给了一号女朋友🚫发生阻塞,因为老渣的这个资源还没到老渣手里,还在二号女朋友这里,所以一号女朋友只能等待资源到了老渣手里,再去使用。

11 : 00 ~ 12 : 00 陪二号女朋友吃饭

由于并发运行的程序会争抢着使用系统资源,而系统中的资源有限,因此进程的执行不是一贯到底的,而是走走停停的,以不可预知速度向前推进。

如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。

总结

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值