计算机系统漫游

编译系统

在这里插入图片描述

  • 预处理(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数据库时,很多同学经常会问,我能跨服务器访问另一库的数据么?得到的答案很多时候是让人失望的。那么如果真的需要访问,又不想使用拷贝表及数据的方式,可以实现么,又该如何实…

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

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

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

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

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

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

地理坐标系转换

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

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…

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

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

小程序----使用图表显示数据--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…

【MySql】14- 实践篇(十二)-grant权限/分区表/自增Id用完怎么办

文章目录 1.grant之后要跟着flush privileges吗&#xff1f;1.1 全局权限1.2 db 权限1.3 表权限和列权限1.4 flush privileges 使用场景 2. 要不要使用分区表?2.1 分区表是什么?2.2 分区表的引擎层行为2.3 分区策略2.4 分区表的 server 层行为2.5 分区表的应用场景 3. 自增Id…

Python自动化办公:PDF文件的分割与合并

我们平时办公中&#xff0c;可能需要对pdf进行合并或者分割&#xff0c;但奈何没有可以白嫖的工具&#xff0c;此时python就是一个万能工具库。 其中PyPDF2是一个用于处理PDF文件的Python库&#xff0c;它提供了分割和合并PDF文件的功能。 在本篇博客中&#xff0c;我们将详细…

服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌linux操作系统服务器&#xff0c;服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。 服务器故障&检测&#xff1a; 服务器在运行过程中突然瘫痪&#xff0c;管理员对服务器进行了重装…

MySQL的Linux安装

在MySQL官网下载压缩包MySQL :: Download MySQL Community Server (Archived Versions) 下载完成后将压缩包上传到Linux中。我这里是下的CentOS的压缩包。 并且用的是FinalShell连接工具&#xff0c;可以选择压缩包直接上传。 ​ 上传完毕后&#xff0c;新建mysql文件夹&…

vue3中readonly和shallowReadonly

readonly: 深度只读数据 获取一个对象 (响应式或纯对象) 或 ref 并返回原始代理的只读代理。 只读代理是深层的&#xff1a;访问的任何嵌套 property 也是只读的。 shallowReadonly 浅只读数据 创建一个代理&#xff0c;使其自身的 property 为只读&#xff0c;但不执行…

在线陪诊系统: 医学科技的革新之路

医疗服务的数字化时代已经到来&#xff0c;而在线陪诊系统正是医学科技革新的杰出代表。通过巧妙的技术代码&#xff0c;这一系统不仅实现了患者和医生之间的远程互动&#xff0c;还将医疗服务推向了一个更加智能化的未来。在这篇文章中&#xff0c;我们将深入探讨在线陪诊系统…