1.2 操作系统的第二个功能——并发功能 -《zobolの操作系统学习札记》
1.2 操作系统的第二个功能——并发功能
在虚拟化技术的基础上,我们可以实现并发功能。
问1:什么是并发功能?并发功能是必要的吗?
粗略地讲,并发功能就是同时做多件事情的能力。
现实中我们遇到的很多问题,都是可以同时计算的,如果我们的计算机操作系统有并发功能那么就可以节省时间,比如GPU的诞生。此外很多操作都是有时间限制要求,这就要求我们必须在做一件事情的同时,也要不断地记录运行时间。最常见的就是计时器功能。

没有并发功能,很多实时性的任务,计算机系统都将无法完成。
我们也无法实现一边听歌,一边上网。

问2:并发功能必须要求拥有多核CPU吗?
不是,并发功能是建立在虚拟化技术的基础上的,并发的进程数和线程数跟CPU的数量无关。就算只有一个单核CPU,操作系统依然可以使用并发功能,实现多线程同步操作。
问3:多核CPU和单核CPU对并发功能的实现,有影响吗?
但是如果计算机系统有多核CPU,操作系统可以拥有更多的线程数量,从而更好地实现并行同步上网听歌功能。此外多核CPU可以实现绝对的并行计算。
比如假如有两个任务,A需要3分钟,B需要5分钟。操作系统都可以实现让用户感觉这两个任务是同时运行的。但是单核CPU的总运行时间一定是大于等于8分钟的,多核CPU却可以实现大于等于5分钟。
毕竟虽然实现了将硬件资源虚拟化,但硬件资源的总量还是固定不变的,单核CPU的计算力未必小于多核CPU,但是底层无法实现真正的多核计算,肯定实际上还是单行计算的。
问4:并发功能的并发性是绝对的,还是相对的?
大多数情况下都是相对于我们人类感知来讲的并行,也有少部分情况下,是绝对的。
假如是单核CPU,那么从硬件层面一定是单向的,无法进行并行计算操作。但是操作系统通过不断的切换线程,可以实现一种伪并行,让用户感觉好像是在同时运行多个线程。其实底层还是计算一会A,停下来,计算一会B,只是间隔短人类感受不到。
假如是多核CPU,那么操作系统可以将两个任务分配个两个计算核心,这样硬件层就实现了绝对的并发性。不过,操作系统的线程数一般都是远大于CPU核心数,所以大多数情况多核也是操作系统提供的相对并发性。
是否能否实现真并发,取决于硬件层能否支持并行计算。硬件的并行计算典型就是GPU
问5:GPU显卡的并发性是如何实现的?
GPU就是我们平常使用的显卡,用来进行图形计算或矩阵计算。我们一般买的CPU上都会赠送一个集成显卡,没有显卡,我们的计算机屏幕会一片漆黑。
GPU就是特异化的CPU,是矩阵化数量核数的CPU。
图形现实本身是要消耗一定计算能力的(实际占比还不小),早期黑框框的DOS界面一般CPU自己的线性计算能力就能承担。但是随着现代的界面可视化和各种三维游戏的出现导致对新的并行图形计算能力的需求出现。
每一个二维图像都可以看作是一个矩阵,如果我们每一个矩阵元素都用一个CPU去并行计算,就可以花费计算一个像素的时间,计算出整个图像的数据。
GPU可以看作是由矩阵化数量(比如300×500个)CPU核心的集成,每一个核心的计算能力有限,专门为图形矩阵计算做了硬件优化。
GPU是并行,并发性的最典型例子。操作系统的并发性主要是靠复用思想,时间片轮转思想,线程进程思想、
虚拟内存思想以及多核CPU等技术共同实现的。
1.2 操作系统的第二个功能——并发功能 -《zobolの操作系统学习札记》的更多相关文章
- 1.4 操作系统的其余功能 -《zobolの操作系统学习札记》
1.4 操作系统的其余功能 操作系统除了虚拟化.并发.存储管理三个主要功能,还有许多子功能,我主要介绍几种常见的功能比如 目录 1.4 操作系统的其余功能 稳定性 高性能 隔离保护 易用性(可视化) ...
- 1.3 操作系统的第三个功能——存储管理功能 -《zobolの操作系统学习札记》
1.3 操作系统的第三个功能--存储管理功能 作者zobol:关于操作系统概论-存储管理功能,我给出下列问题: 目录 1.3 操作系统的第三个功能--存储管理功能 问1:操作系统的文件管理系统主要是负 ...
- 1.1 操作系统的第一个功能——虚拟化硬件资源 -《zobolの操作系统学习札记》
1.1 操作系统的第一个功能--虚拟化硬件资源 目录 1.1 操作系统的第一个功能--虚拟化硬件资源 问1:操作系统一般处于计算机系统的哪一个位置? 问2:管理硬件资源为什么要单独交给操作系统? 问3 ...
- 2.2 追求并发的极致-线程概论 -《zobolの操作系统学习札记》
2.2 追求并发的极致-线程概论 为了追求程序运行之间的并发性,计算机科学家们发明了进程.为了进一步的追求进程内部的并发性,工程师们又提出了线程. 正是线程的出现,给予了程序员更多地操纵OS的自由,可 ...
- 设计C/S架构应用程序的并发功能
C/S架构的ERP.CRM程序有的是以并发点(Concurrency)来销售,并发点是指同时在线人数.并发数量大时,理论上程序的运行速度会慢,软件供应商(vendor)也以控制并发的上限以解决客户对系 ...
- threading模块和queue模块实现程序并发功能和消息队列
简介: 通过三个例子熟悉一下python threading模块和queue模块实现程序并发功能和消息队列. 说明:以下实验基于python2.6 基本概念 什么是进程? 拥有独立的地址空间,内存,数 ...
- React 并发功能体验-前端的并发模式已经到来。
React 是一个开源 JavaScript 库,开发人员使用它来创建基于 Web 和移动的应用程序,并且支持构建交互式用户界面和 UI 组件.React 是由 Facebook 软件工程师 Jord ...
- ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS) 1. 网站资源: ROSwiki官网:http://wiki.ros.org/cn GitHub ...
- Atiit 常见功能 常用功能与模块的最快速解决方案
Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...
随机推荐
- Unity制作特写镜头
##类似这种效果 黑边的大小可以自行调整 ###这里为了方便直接用两个Button绑定了方法,有需要自行调用方法 ##1.首先制作上下两层黑边 创建Canvas然后在canvas上新建空物体,命名为C ...
- 茴香豆的“茴”有四种写法,Python的格式化字符串也有
茴香豆的"茴"有四种写法,Python的格式化字符串也有 茴香豆的"茴"有四种写法,Python的格式化字符串也有 被低估的断言 多一个逗号,少一点糟心事 上下 ...
- mmdetection训练出现nan
训练出现nan 在使用MMDetection训练模型时,发现打印信息中出现了很多nan.现象是,loss在正常训练下降的过程中,突然变为nan. 梯度裁减 在模型配置中加上grad_clip: opt ...
- 初始celery
使用celery执行异步任务 下载celery,redis pip3 install celery#在这里我使用的是celery==4.2.2#当celery版本过低的话celery配置可能会略有不同 ...
- PAT练习——1094 The Largest Generation (25 point(s))
题目如下: #include<iostream> #include<vector> #include<algorithm> using namespace std; ...
- vue动态路由实现原理 addRoute
vue新版router.addRoute基础用法 新版Vue Router中用router.addRoute来替代原有的router.addRoutes来动态添加路由.子路由 在添加子路由的时候 比如 ...
- Springboot中整合knife4j接口文档
在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发. 什么是knife4j 简单说knife4j就swagge ...
- XCTF练习题---CRYPTO---wtc_rsa_bbq
XCTF练习题---CRYPTO---wtc_rsa_bbq flag:flag{how_d0_you_7urn_this_0n?} 解题步骤: 1.观察题目,下载附件 2.下载后是一个文件,不清楚格 ...
- 4.27-Postman和JMeter总结及实战描述
一.数据格式 常用的请求方法有8种,但是最常用的有4-5种 1.GET 获取资源 2.POST 添加资源(对服务端已存在的资源也可以做修改和删除操作) 3.PUT 修改资源 4 .DELETE删除资源 ...
- Dnscat2隧道
0x01 前言 DNS是用来做域名解析的,是连接互联网的关键,故即使是企业内网,在防火墙高度关闭下,也有着很好的连通性,但是黑客却可以通过将其他协议的内容封装再DNS协议中,然后通过DNS请求和响 ...