计算机系统漫游

编译系统

在这里插入图片描述

  • 预处理(Preprocessing)
    预处理器根据源代码中的预处理指令,如#include和#define等,将源代码转换为另一份源代码。预处理器的输出通常会保存在hello.i的文件中。
  • 编译(Compilation)
    编译器将预处理器生成的hello.i源代码转换为汇编语言代码,保存在hello.s的文件中。
  • 汇编(Assembly)
    汇编器将hello.s汇编代码转换为机器语言指令,并将结果保存在名为hello.o的目标文件(可重定位目标程序的格式)。
  • 链接(Linking)
    链接器将hello.o目标文件与标准库函数和其他依赖的目标文件进行链接,生成可执行文件hello(Windows中通常是hello.exe,其他系统可能没有拓展名,只叫hello)。可执行文件包含了所有程序的二进制指令和数据。

系统的硬件组成

在这里插入图片描述

I/O(待转移

I/O设备都通过控制器或适配器与I/O总线相连。

控制器和适配器之间的区别:
功能不同: 控制器是一种独立的设备,它包含了处理I/O设备请求的控制逻辑,能够直接与I/O总线进行通信。适配器是一种中间设备,主要的作用是将不兼容的I/O设备接口转换为计算机系统所支持的接口,以便计算机系统能够识别和控制这些设备。
设计不同: 控制器通常是一个独立的芯片或板卡,它集成了处理I/O设备请求的控制逻辑和与I/O总线通信的接口。适配器通常是一个小型设备,它包含了设备接口转换的电路和接口插口。
使用场景不同: 控制器通常用于控制和管理相对复杂的I/O设备,例如磁盘驱动器、网络适配器等。适配器通常用于连接较为简单的I/O设备,例如键盘、鼠标、打印机等。

CPU(待转移

CPU的核心是PC。任何时刻,PC都指向主存中的某条机器语言指令

操作系统的抽象表示

在这里插入图片描述

上下文

  • 编程语言:
    在编程语言中,上下文通常指代码执行的环境或上下文。例如,在 JavaScript 中,函数的上下文指函数执行时所在的对象上下文,也称为 this 对象。
  • 操作系统:
    在操作系统中,上下文通常指进程或线程的上下文,包括寄存器、程序计数器、堆栈指针等信息。在进行进程或线程切换时,需要保存当前上下文并加载新的上下文。
  • 数据库:
    在数据库中,上下文通常指查询的上下文环境,包括查询条件、表名、列名等信息。在进行数据库查询时,需要指定查询的上下文环境。
  • 用户界面:
    在用户界面中,上下文通常指用户当前操作的上下文环境,包括当前所在的应用程序、打开的窗口、当前选中的对象等信息。在进行用户交互时,需要考虑用户的当前上下文环境。

进程的虚拟地址空间

在这里插入图片描述

并发和并行

并发(Concurrency) 指的是多个任务交替执行的过程,这些任务可以是同时启动的,但并不一定同时执行,而是根据一定的调度策略进行交替执行。在并发执行的过程中,任务之间会发生切换,每个任务只能在某个时间段内被执行,然后再被暂停,等待下一次执行的机会。

并行(Parallelism) 则指的是多个任务同时执行的过程,这些任务可以是相互独立的,它们可以在不同的处理器核心或者多台计算机上并行执行,不需要等待其他任务的完成。在并行执行的过程中,每个任务拥有自己的执行环境和资源,不会互相干扰。

因此,尽管并发和并行的表述很相似,但是它们的含义是不同的。并发强调的是多个任务在有限的时间内交替执行,而并行则强调多个任务在同时执行,通过分配不同的资源,使得每个任务可以独立执行,从而提高计算效率。

超线程、超标量、SIMD

相同点:

通过并行执行多个指令或多个数据项,提高了处理器的执行效率和吞吐量。

都需要在处理器硬件中增加额外的执行单元和相关支持逻辑,以支持并行执行多个指令或数据项。

都可以在不增加处理器频率的情况下提高处理器性能。

不同点:

超线程主要是通过在处理器的物理核心中模拟多个逻辑核心,以提高处理器的并发度和资源利用率。而超标量和SIMD则是通过在处理器硬件中增加多个执行单元来提高指令吞吐量和数据处理能力。

超线程和超标量都是针对指令级并行(ILP)优化的技术,即在同一时间内执行多个指令。而SIMD则是针对数据级并行(DLP)优化的技术,即在同一时间内对多个数据项执行相同的操作。

超线程和超标量需要对指令进行调度和数据依赖检测,以确保指令能够正确地执行。而SIMD则不需要进行指令调度和数据依赖检测,因为所有数据项执行相同的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要坚持每天做公域引流

做公域不一定等于拍视频,真正适合小白的引流方式其实还是做图文内容,比如小红书发帖,知乎问答,微信读书,问一问等。 长期坚持每天做公域引流有以下好处: 提高品牌知名度:每天坚持做公域流量&a…

nodejs+vue+elementui学生竞赛管理系统65o97

高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生体育 能力与创新思维、学生竟赛管理系统检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而我所在学院多采用半手工管理学生竟赛的方式,所以有必要开发学生竟赛管理系统来对学生…

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模 B题 空气污染问题研究 原题再现 近十年来,我国 GDP 持续快速增长,但经济增长模式相对传统落后,对生态平衡和自然环境造成一定的破坏,空气污染的弊病日益突出,特别是日益加重的雾霾天气已经干扰…

前端管理制度

数据运营中心的管理形式: 数据运营中心的管理形式 竖向是各小组 横向是项目管理 负责人的定位: 只是工作的内容不同,没有上下级之分 帮助组员找到适合的位置,帮助大家解决问题,给大家提供资源 前端组的工作形式&am…

MySQL数据库如何实现跨服务器访问数据

点击上方蓝字关注我 在使用MySQL数据库时,很多同学经常会问,我能跨服务器访问另一库的数据么?得到的答案很多时候是让人失望的。那么如果真的需要访问,又不想使用拷贝表及数据的方式,可以实现么,又该如何实…

人工智能“涌现”时刻:数据中心如何解题?

随着科技的迅猛发展,人工智能(AI)正逐渐成为推动社会进步的关键力量。AI技术的广泛应用给我们的生活和工作带来了巨大的改变,而这一切的背后离不开数据中心的支持和创新。数据中心如何解决人工智能的挑战,成为了当今科…

无货源商城搭建的几种方案(电商商品采集API)

随着电商行业的快速发展,越来越多的商家开始考虑搭建自己的电商商城。然而,对于一些没有自己的货源或者想要快速进入电商领域的商家来说,从哪里获取商品成为了他们面临的首要问题。本文将介绍几种无货源商城的搭建方案,帮助商家快…

【创建和排查隐藏进程和隐藏计划任务】

Window 创建隐藏进程和隐藏计划任务: 隐藏进程: 在Windows中,隐藏进程主要通过修改进程属性或使用第三方工具实现。以下是一个使用PowerShell脚本创建隐藏进程的示例: $Script {Start-Process -FilePath "notepad.exe"…

2023全球数字贸易大赛--什么是 DID 身份,中青校园APP,全球碳交易=树根格致,多元空间=购物时代的web3.0,超喵Overview

目录 什么是 DID 身份,为什么需要 DID 1. 中心化身份的问题 2. 为什么 DID 一定会出现 3. DI

设二维数组a[1...m,1...n]()含有m*n个整数。写一个算法判断a中所有元素是否互不相同,并输出相关信息(yes/no)

设二维数组a[1…m,1…n]()含有m*n个整数。 写一个算法判断a中所有元素是否互不相同,并输出相关信息(yes/no) 分析其时间复杂度 代码思路: 这种如果纯暴力做的话时间复杂度非常高。 我这里考虑把题目中的二…

A JSONObject text must begin with ‘{‘ at 1 [character 2 line 1]

今天调用一个接口,返回的是json数据,但是拿到数据进行转换的报错, JSONObject resultJson new JSONObject(resuStr);报错信息是: Exception in thread "main" org.json.JSONException: A JSONObject text must begin …

navigation无法打开/vscode前面没出现虚拟环境

先做这些,打开navigate 管理员身份打开anaconda prompt conda update anaconda-navigator anaconda-navigator --reset conda update anaconda-client conda update -f anaconda-client anaconda-navigator 之后别再powershell里输命令,在cmd里切 还有cr…

地理坐标系转换

1.EPSG代码 搜索地理坐标系对应的EPSG代码 https://epsg.io/ 常用的地理坐标系EPSG代码: 2. 坐标系转换 转换网址: https://epsg.io/transform (1)修改 input coordinate system 和 output coordinate system, 可以…

VC++、MFC中操作excel时,Range.Cells和Worksheet.Cells的区别是什么?

一、变量定义 CApplication app; //Excel应用程序接口 CWorkbooks books; //工作薄集合 CWorkbook book; //工作薄 CWorksheets sheets; //工作表集合 CWorksheet sheet; //工作表 CRange range; //Excel中针对单…

Zookeeper 实战 | Zookeeper 和Spring Cloud相结合解决分布式锁、服务注册与发现、配置管理

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

攻关眼科难题!第一届爱尔眼科-四川大学科研基金完成立项

当前我国眼科患者数量不断增长,人民群众对高质量的眼健康的需要不断攀升,而目前国内眼科医疗资源远不能满足需求,疑难眼病诊疗能力及学术科研体系建设仍有较大进步空间。基于此,爱尔眼科携手四川大学共同设立爱尔眼科-四川大学科研…

php操作redis常见用法

目录 一、php连接redis 二、redis字符串用法 三、redis列表用法 四、redis集合用法 五、关闭redis phpstudy安装redis-CSDN博客 一、php连接redis Redis默认端口6379 host 为Redis服务器ip auth 访问密码 class MyRedis extends \Redis {protected $host 127.0.0.…

小程序----使用图表显示数据--canvas

需求:在小程序上实现数据可视化 思路:本来想用的是echarts或者相关的可视化插件,但因为用的是vue3,大多数插件不支持,所以用了echarts,但最后打包的时候说包太大超过2M无法上传,百度了一下&…

LeetCode Hot100 33.搜索旋转排序数组

题目&#xff1a; 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nu…

构建沉浸式 AI 文本编辑器:开源 3B 编辑器的设计原则与思路

借助于在 AutoDev 与 IDE 上的 AI 沉浸式体验设计&#xff0c;我们开始构建一个 AI 原生的文本编辑器&#xff0c;以探索沉浸式创作体验。其适用于需求编写、架构文档等等文档场景&#xff0c;以加速软件开发中的多种角色的日常工作。 GitHub&#xff1a;https://github.com/un…