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 ...
随机推荐
- docker容器编排原来这么丝滑~
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概念介绍: Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker ...
- Warmup小记
什么是warmup 热身,在刚刚开始训练时以很小的学习率进行训练,使得网络熟悉数据,随着训练的进行学习率慢慢变大,到了一定程度,以设置的初始学习率进行训练,接着过了一些inter后,学习率再慢慢变小: ...
- line-height: 1; line-height: 100%;是什么意思
先简单看个例子: css 页面: 应该猜测出来了: line-height: 1; = line-height: 100%; = font-size: 50px; 把哪一个放到最后都是一样的.我理解的 ...
- Java语言学习day24--7月30日
###17创建子类对象过程的细节 * A 创建子类对象过程的细节 * 如果子类的构造方法第一行写了this调用了本类其他构造方法,那么super调用父类的语句还有吗? * 这时是没有的,因为this( ...
- Java语言学习day13--7月14日
今日内容介绍1.循环练习2.数组方法练习 ###01奇数求和练习 * A: 奇数求和练习 * a: 题目分析 * 为了记录累加和的值,我们需要定义一个存储累加和的变量 * 我们要获取到1-100范围内 ...
- 攻防世界-MISC:give_you_flag
这是攻防世界新手练习区的第四题,题目如下: 点击附件一下载,打开后发现是一个gif动图 可以看到动图有一瞬间出现了一个二维码,找一个网站给他分离一下 得到一张不完整的二维码(然后就不知道该怎么办了,菜 ...
- springboot:使用异步注解@Async的前世今生
在前边的文章中,和小伙伴一起认识了异步执行的好处,以及如何进行异步开发,对,就是使用@Async注解,在使用异步注解@Async的过程中也存在一些坑,不过通过正确的打开方式也可以很好的避免,今天想和大 ...
- Maven install没有将jar包加载到本地仓库
错误描述 使用mvn install:install-file -Dfile=ojdbc8-19.3.0.0.jar -DgroupId=com.oracle -DartifactId=ojdbc8 ...
- ONNXRuntime学习笔记(四)
接上一篇在Python端的onnx模型验证结果,上一篇在Pytorch和onnxruntime-gpu推理库上分别进行效果效率统计分析,结论要比最初设置的50ms高很多,这一篇我将在C++端写个测试代 ...
- 百度SEO算法技术的局限性,怎么做才能有收益
不知道大家有没有发现,我们使用百度的频率在减少,就算有时遇到一些问题,需要用百度来寻找答案,也会经常遇到搜索不到答案的情况.到底是出了什么问题?难道网络上的资源不够丰富了?浩如烟海的互联网,居然搜索不 ...