1、知识总览

操作系统有并发、共享、虚拟、异步四个基本特征,并发和共享是两个最基本的特征,二者互为存在条件;

2、操作系统的特征 —— 并发

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

并行:指两个或者多个事件在同一时刻同时发生;

并发 VS 并行

eg:假设小渣和老渣每人有两个女朋友。任务1:和一号约会;任务2:和二号约会;

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

一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但是宏观上看起来就像同时执行)。

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

当今计算机一般都是多核CPU,比如Intel的第八代i3处理器就是4核CPU,这意味着同一时刻可以有4个程序并行执行,但是操作系统的并发性依然必不可少;因为当代人使用计算机绝对有4个以上的程序需要同时工作。

3、操作系统的特征 —— 共享

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

两种资源共享方式:

  • 互斥共享:系统中的某些资源,虽然可以提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源;
  • 同时共享方式:系统中的某些资源,允许一个时间段内多个进程“同时”对它们进行访问;

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

生活实例:

  • 互斥共享方式:使用QQ和微信视频,同一时间段内摄像头只能分配其中一个进程;
  • 同时共享方式:使用QQ发送文件A,同时使用微信发送文件B;宏观上,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上,两个进程是交替着访问硬盘的;

4、并发和共享的关系

并发性指计算机系统中同时存在多个运行着的程序;
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用;

通过上面的例子来看并发与共享的关系:使用QQ发送文件A,同时使用微信发送文件B。

  1. 两个进程正在并发执行(并发性);
  2. 需要共享地访问硬盘资源(共享性);

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

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

因此,并发性和共享性是互为存在条件,两者缺一不可;

5、操作系统的特征 —— 虚拟

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

举个例子一:

游戏GTA5需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内存,但是我的电脑只有4GB的内存;

问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以在我的电脑上同时运行呢?

答案:这是虚拟存储器技术,实际上只有4GB,在用户看来似乎远远大于4GB;虚拟存储器技术使用的是虚拟技术中的“空分复用技术”;

举个例子二:

某单核CPU的计算机中,用户打开了以下程序软件:QQ、微信、浏览器、迅雷、视频播放器;

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

答案:这是虚拟处理器技术,实际上只有一个单核CPU,在用户看来似乎有多个CPU在为自己服务;虚拟处理器技术是虚拟技术中的“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务;

虚拟技术

  • 空分复用技术,如虚拟存储器技术;
  • 时分复用技术,如虚拟处理器;

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

6、操作系统的特性 —— 异步性

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

举个例子:老渣要和两个女孩并发约会;

有以下执行:

  • 一号的指令1:老渣陪我吃饭;
  • 一号的指令2:老渣把心给我;
  • 二号的指令1:老渣把心给我;
  • 二号的指令2:老渣陪我吃饭;

老渣的可能约会方式:

  • 8点到9点:约会一号,陪一号吃饭;
  • 9点到10点:约会一号,把心给一号;
  • 10点到11点:约会二号,把心给二号;
  • 11点到12点:约会二号,陪二号吃饭;

在和一号约会的时候,;老渣把心给了一号,因此在和二号约会的时候,只能等一号把心还回来,这样老渣才能把心给二号,这时候二号的约会进程才能继续执行。

与一号、二号的约会相当于对两个进程的处理,每个进程都有各自需要执行的指令;
老渣的心相当于有限的系统资源,由于可分配的资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进的;

显然,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。

7、总结

  • 理解并发和并行的区别;
  • 并发和共享互为存在条件;
  • 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统中的两个最基本的特征;

王道 —— 操作系统的四个特征相关推荐

  1. 操作系统(二)操作系统的四个特征

    1.2操作系统的四个特征 目录 1.2操作系统的四个特征 1.2.1 并发 1.2.2 共享 1.2.3 虚拟 1.2.4 异步 1.2.5 小结 操作系统共有四个基本的特征:并发.共享.虚拟.异步. ...

  2. 【操作系统】—操作系统的四个特征

    [操作系统]-操作系统的四个特征 本章节的思维导图如下 一.操作系统的特征-并发 并发:是指两个或者多个事件在同一时间间隔内发生.这些事件宏观上是同时发生的,但是微观上是交替发生的. 并行:指两个或者 ...

  3. 操作系统原理 —— 操作系统的四个特征:并发、共享、虚拟、异步 (二)

    本章我们来聊一下操作系统的四个特征 在我们的操作系统中有四个特征:并发.共享.虚拟.异步,我们结合每一个特征来进行讲解,我们先来看并发. 并发 这里所说的并发,最好不联想到并发编程.咱们就简简单单理解 ...

  4. 【王道操作系统笔记】操作系统的四个特征

    并发 指两个或多个事件在同一时间间隔发生.这些事件宏观上是同时发生的,微观上是交替发生的. 区别并行:并行指两个或多个事件同一时刻同时发生 操作系统的并发性:计算机系统同时存在着多个运行着的程序 一个 ...

  5. 操作系统的概念、四个特征以及os的发展和分类

    计算机系统概述 1.操作系统的概念 2.操作系统的四个特征 3.操作系统的发展与分类 ) 1.操作系统的概念 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件 ...

  6. java面向对象特征及阐述,Java面向对象四个特征

    Java面向对象有四个特征:抽象.封装.继承.多态.其中封装.继承.多态又被称为Java的基本特征. 抽象: Java中会把客观事物抽象成一个类.类就是封装了数据以及操作这些数据的代码逻辑实体.用字符 ...

  7. 4 计算机系统的异步性,计算机操作系统的最基本特征是什么

    原文:https://www.php.cn/faq/467208.html 计算机操作系统的最基本特征是:1.并发性:计算机系统中同时存在多个程序,宏观上看,这些程序是同前推进的.2.共享性.3.随机 ...

  8. ML之k-NN:k-NN实现对150朵共三种花的实例的萼片长度、宽,花瓣长、宽数据统计,根据一朵新花的四个特征来预测其种类

    ML之k-NN:k-NN实现对150朵共三种花的实例的萼片长度.宽,花瓣长.宽数据统计,根据一朵新花的四个特征来预测其种类 目录 输出结果 实现代码 输出结果 实现代码 from sklearn im ...

  9. mysql事务的 四个特征(ACID)

    事务的 四个特征(ACID) 事务具有四个特征:原子性( Atomicity ).一致性( Consistency ).隔离性( Isolation )和持续性( Durability ).这四个特性 ...

最新文章

  1. 企业网络推广专员浅析是否网站权重越高企业网络推广效果越好?
  2. python教学视频下载-Python机器学习入门教程全套视频下载【传智播客】
  3. [CF407B] Long Path
  4. Python教程:自定义排序全套方案
  5. 用python找对象_还在单身的你 Python教你如何脱单
  6. draw什么计算机软件,[计算机软件及应用]化学绘图软件ChemDraw使用简介.ppt
  7. 一款好用且开源的图像处理软件----imageJ
  8. 树莓派_360wifi2_佳能MP236打印机
  9. 各大浏览器的内核分别是什么?
  10. PDF怎么编辑修改文字?
  11. QQ防诈骗记录查询-网络交易信誉分查询认证源码
  12. 成熟男人和女孩的精彩对白
  13. 【机器学习】22个开源的机器学习库,帮助您选择一个适合您的管道工具。
  14. 卡巴斯基遭攻击 Duqu 2.0 翻译
  15. SparkCore之共享变量的解释
  16. dataframe数据标准化处理_数据标准化处理
  17. 软件测试面试题:数据库大厂面试真题
  18. 微信考勤 | 微信智慧解决方案
  19. [NESCAFE27] 探险队
  20. python游戏模块 - 26 小项目-坦克行动 / 大球吃小球

热门文章

  1. vs的form标签引起css走样问题
  2. TypeScript入门教程 之 枚举 Enums
  3. Docker部署安装MongoDB
  4. Nginx 架构详解
  5. Spring MVC @RequestMapping Annotation示例
  6. LeetCode刷题 --杂篇 --数组,链表,栈,队列
  7. php 字符串混合分割并存入数组
  8. npm 开发中 常用依赖包
  9. chrome地址栏命令
  10. node js 技术架构_[视频] Node JS中的干净架构