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 ...
随机推荐
- Go Slice Tricks Cheat Sheet、Go 切片使用小妙招
AppendVector. Copy. Cut. Delete. Delete without preserving order. Cut (GC). Delete (GC). Delete with ...
- Caused by: com.sonatype.nexus.staging.client.StagingRuleFailuresException: Staging rules failure! 已解决!
问题分析 由于项目中修改了一些代码,然后没有修改版本号,直接deploy代码到仓库,最终导致错误! 根据 https://central.sonatype.org/faq/can-i-change-a ...
- python相关知识理解
Python3 基础了解 编码 Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 # -*- coding: cp-1252 -*- 标识符 · 第一个字符 ...
- Ubuntu 百度飞桨和 CUDA 的安装
Ubuntu 百度飞桨 和 CUDA 的安装 1.简介 本文主要是 Ubuntu 百度飞桨 和 CUDA 的安装 系统:Ubuntu 20.04 百度飞桨:2.2 为例 2.百度飞桨安装 访问百度飞桨 ...
- 接口测试实战| GET/POST 请求区别详解
1.请求行的 method 不同:2.POST 可以附加 body,可以支持 form.json.xml.binary等各种数据格式:3.从行业通用规范的角度来说,无状态变化的建议使用 GET 请求, ...
- 关于LVS中默认的DR模型图
虽然常用,但是关于DR模型最大的一个缺点就是Director和RS必须在同一个网络中,通过交换机连接,中间不能有路由
- Infrastructure 知识: dnf对module的处理
引言 从RHEL8/CentOS8开始,dnf取代yum作为rpm 包管理工具.与之而来的还有模块(module)这个东西. 有了它们的加持,让在同一个OS上安装不同版本的软件或者开发语言的工作比之前 ...
- WPFApplication类
Application类 应用程序类Application,以下代码自动生成且在程序中不可见,定义程序入口点方法以及程序启动程序,整个程序生命周期为执行完Main()方法里的程序.对于自定义的应用程序 ...
- Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)
什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找. 本文所涉及到的特殊结构性质的树包括: 二叉排序树. 平衡二叉树. 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求, ...
- 从零开始搭建高可用的k8s集群
一.环境准备 使用Hyper-V虚拟机功能搭建三台Centos虚拟机系统,配置好静态IP,分别为k8s-node1(192.168.0.8),k8s-node2(192.168.0.9),k8s-no ...