宁波建站模板系统企业网站建设免备案

web/2025/9/25 22:58:18/文章来源:
宁波建站模板系统,企业网站建设免备案,百度站长管理平台,wordpress外链音乐CSAPP学习 前言 一门经典的计组课程#xff0c;我却到了大四才学。 anyway#xff0c;何时都不会晚。 博主参考的教程#xff1a;本电子书信息 - 深入理解计算机系统#xff08;CSAPP#xff09; (gitbook.io)#xff0c;非常感谢作者的整理。 诚然去看英文版可以学…CSAPP学习 前言 一门经典的计组课程我却到了大四才学。 anyway何时都不会晚。 博主参考的教程本电子书信息 - 深入理解计算机系统CSAPP (gitbook.io)非常感谢作者的整理。 诚然去看英文版可以学到更多不过一边翻译一边看的过程我觉得还是效率不高的所以还是选择中文。 博主之前有一定的计算机基础所以对一些简单概念可能跳得比较快这里建议读者不懂的地方不要气馁“为什么这里三两句就讲掉了但是我还没懂”。建议多多发掘自我检索能力Search the Fxxking Web (STFW) 是计算机专业同学的一大重要能力。 Ch1. 计算机系统漫游 程序运行前4个阶段 相信尝试过一定编程学习的同学们都有过写、运行 helloworld 的经历。可能是用 Dev CVSCodeCLion 等 IDE也可能是自己在命令行执行编译运行语句本质都是一样的。 那么写了一个 helloworld.c这个程序是怎么运行起来的呢 首先计算机能直接运行的都是二进制文件01010101110101……类似这样的文件。但是要是说让我们用这种语言机器语言编程效率极低而且大概率会疯掉。 汇编语言是一种为了解决这个问题而诞生的低级语言相对好理解一些可以转换成机器语言。不过还是面向计算机的语言编程习惯主要也是按照计算机的思维走也比较难。 c语言是一种高级语言是我们人类一定程度上能理解的编程语言可以转换成汇编语言再转成机器语言供计算机运行。 gcc -o hello hello.c这条命令行语句意思是用 gcc 翻译工具把 hello.c 翻译成目标输出文件outputhello得到的可执行文件就是 hello。 翻译流程如下 预处理把文件中的注释信息去掉注释信息是给人看的对计算机运行没啥帮助把头文件展开其实头文件 #include #define 这些就是对一些格式内容的拷贝得到 .i 文件。 编译把高级语言翻译成汇编语言。相同的程序用不同高级语言写经过编译器后得到的汇编语言是相同的也就是计算机最终执行的具体行为都是一样的。感兴趣同学可以了解一下编译和翻译两种高级语言转汇编语言的方式。 汇编把 .s 汇编文件转为 .o 目标文件目标文件也是二进制形式。但是缺少一些外部链接的库暂时不能执行比如 printf 函数是在 printf.o 文件中定义的我们自己没定义所以不能自己直接用需要外链 printf.o 文件才能使用。 链接如上所述最终生成一个可执行的目标程序。 好现在是可以理解高级语言的作用让我们不用理解计算机具体运行方式就能较为简单的编程生成可执行文件。但是我们还是需要学习一下底层的编译、汇编等原理的 因为理解底层具体实现后我们才知道怎样编写的程序运行更高效同一个问题有许多解法可以写许多种程序比如 switch case 和 if else if但是并不是能解决正确性的程序就是好程序了我写一个跑一年才出结果的代码和跑1小时就出结果的代码价值也是完全不同的。对程序理解更深出现问题时我们也知道如何排查bug 不全是只有中英文字符那种程度的哦。甚至有一些安全性问题是通过对底层原理进行攻击的。 CPU硬件运行方式 程序翻译成汇编语言类似这样 main:subq $8, %rsp ; 通过从栈指针rsp减去8字节为栈分配空间。movl $.LC0, %edi ; 将字符串.LC0的地址加载到目标寄存器%edi中。call puts ; 调用puts函数该函数可能打印%edi寄存器指向的字符串。movl $0, %eax ; 通过将0移动到%eax寄存器中将返回值设置为0。addq $8, %rsp ; 通过将8字节添加到栈指针rsp释放栈上的空间。ret ; 从main函数返回。不用看懂。可以看到按照计算机思维这个程序被拆成了这么多条要执行的指令。CPU 执行程序的时候就是一条条指令执行的。 具体是怎样执行下图是 计算机基本组成的结构图。计算机五大组成部分CPU运算器控制器内存输入输出。 总线在各个设备之间传输数据用。 输入设备把信息输入给电脑的一些方式比如键盘打字鼠标点击光盘U盘我们写的程序存在磁盘上。 输出设备电脑把信息输出给我们的方式比如可以看到的显示器。输入输出设备统称 IO 设备。 主存也叫内存程序从磁盘里拿出来放到主存里运行。内存是衡量计算机运行快不快的一个重要指标因为内存小了每次能拿一小部分程序进来运行再拿下一部分效率比较低内存大了磁盘和内存之间交互可能相对就快很多磁盘里的内容往内存拿是比较占时间的。 CPU从主存里面拿一个个字节的数据进行处理。PC 是一个指针指向当前要拿的数据的位置首先从 PC 所指向的主存地址中加载几个字节到 CPU 寄存器里把寄存器中的内容复制到 ALU 中进行操作比如取到了a和b的值算ab然后可能需要把一些数据存储写回到主存中比如让 cabc的值变了那么我们可能就需要把新值写回到主存中c的位置最后 PC 跳转指向下一部分要取的字节的位置。重复上述操作直到程序执行完。 比如想跑一个 helloworld 我们经历了这些步骤 鼠标键盘输入写了一个 helloworld 程序并点击运行或 shell 输入运行语句 ./helloworld。我们输入的运行指令也是先被放到主存然后被 CPU 寄存器文件读取CPU 解析后明白我们是想执行 helloworld 文件然后再下指令从磁盘中取 helloworld 程序到主存里运行。helloworld 程序被加载到主存中虽然 CPU 是计算机的大脑中控中心但是这里磁盘数据不用经过 CPU 可以直接给主存是利用了 DMA 技术CPU 再取主存中的数据进行指令解析执行。CPU 解析指令直到我们是想在终端打印 helloworld于是驱动显示器输出设备输出显示 helloworld。 Cache 缓存 CPU 去主存取指令和去磁盘取指令其实都有一定的时间开销去磁盘开销更大。我们可以在 CPU 内部临时存一些近期可能要访问到的内容这样当访问到这部分内容的时候不需要每次都去主存去磁盘拿在自己这里就找得到就快很多。比如cab;cab;cab;cab; 执行这个指令如果第一次执行的时候 CPU 猜测a和b的值后面会不会还要用到我先在缓存里存一下以备不时之需。第二次执行的时候可以直接拿到本地缓存 cache 中存储的 ab 值进行运算不用去磁盘里再取一次了第三次第四次也是这样就比较节约时间开销。 当然缓存大小有限以此来保证 CPU 芯片大小不会太大和缓存中查找不会太慢。因此我们要设计一些缓存存储算法来决定哪些内容优先被存入缓存这个后面再细讲。 缓存结构其实是这样的著名的缓存金字塔 上面一层是下面一层的缓存。 操作系统 operating system了解一些的同学可能知道比如win系统mac系统linux系统这玩意啥用处呢。主要是实现对资源的分配管理。 比如我qq应用程序要调用键盘调用摄像头要调用键盘……首先应用程序直接去操作这些底层的 CPU主存IO 都比较麻烦而且也不安全比如qq崩溃异常状态下去调用这些设备。操作系统负责中间管理抽象出这些设备的接口供应用程序调用也保护硬件不被失控应用程序滥用。 操作系统的抽象如下 进程 一个正在运行的程序。操作系统会协调多个进程交错执行比如我现在电脑上开着微信 浏览器 Typora内核不停地切换这些进程的执行而我感觉不到。 进程切换需要保存当前进程状态切换到下一个进程的状态继续运行这个状态叫上下文 context。 一个进程可能包含多个线程他们共享这个进程的资源。 GPT 虚拟内存 操作系统让多个进程互不干扰的使用主存对每个进程来说他们只看得到自己的主存占用范围感觉好像只有自己在占用主存这就叫虚拟内存。 如图是主存中的组成从下往上地址逐渐增大。 内核虚拟内存给操作系统用的。 用户栈比如程序里的函数存到这里入栈。 共享库内存比如 printf 这种共用库。 堆比如 malloc 申请的空间存在这里也是多个程序共用。 数据存放程序数据。 虚拟内存具体实现方法后面讲解。 文件 字节序列。所有 IO 设备都可以看做是文件我们可以往文件里读写数据进行 IO 操作。这样我们对磁盘进行读写的时候其实我们并不关心具体读写 IO 行为我们只需要往磁盘文件夹里读写文件即可。 网络通信 其实网络也类似一个 IO 设备我们给网络适配器写入数据流网络适配器发送给另一台主机。 比如下例好处在于我们可以把程序存在服务器上在服务器上跑我们只需要发送简单指令。比如学习深度学习不用自己非得买一个牛逼电脑可以租牛逼服务器服务器其实也算是一种电脑和我们的客户端电脑没啥区别。 重要概念 Amdahl 定律 计算提升系统某一部分性能对整个系统所带来的效果。 α是某一部分在整个系统中占的比重k是这部分的性能加速了多少。S是最终对整个系统提升的加速效果。 比如α60%k3这一部分提升了3倍速度但是对整体速度的提升是1.67倍可见想要提升系统整体速度需要提升系统中大部分的速度。 并发 并行 并发一个系统同时运行多个活动。 并行利用并发来加速程序运行。 线程级并行 进程中多个任务的切换。 单处理器系统模拟并发即实际上是不断切换。 多处理器系统确实可以并发运行也可以加速用多线程方式写的单个程序。 超线程也叫同时多线程允许单核 CPU 执行多个控制流多个控制流共享执行单元。比如单处理器切换线程需要保存当前状态切换 pc 指针寄存器值……而超线程多个核对 pc程序计数器等有拷贝使得切换的时候不用那么麻烦比如常规单处理器切换可能需要20000个周期超线程一个周期就能切换。 指令级并行 有些系统硬件支持把一条指令拆成多个任务同时处理。 当指令周期小于1的时候一个 CPU 时钟周期可以执行平均1条以上的指令系统被称作超标量系统。

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

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

相关文章

网站app开发费用网站建设网络推广方案

水果店微信小程序:新鲜生活,触手可及 在这个快节奏的时代,我们都在追求更高效、更便捷的生活方式。而微信小程序,正是这样一个让生活变得更加轻松便捷的神奇工具。今天,我要向大家介绍的,就是一家独具匠心…

厦门网站快速排名优化开平网站建设

简介hexo —— 简单、快速、强大的Node.js静态博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 特性风一般的速度Hexo基于Node.js,支持多进程,几百篇文章…

购物商城网站开发腾讯云获取WordPress密码

写在前面在MySQL数据库中,索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点,索引就是为了提高数据查询的效率。今天我们来聊聊在MySQL索引优化中两种常见的方式,索引覆盖和索引下推索引覆盖要了解索引覆…

赤壁网站设计php做网站时间代码

声明 本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负! 如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦! 前言 目标网站:aHR0cHM6Ly9tZGZnaGcuNXhwb2lqaHRm…

host域名主机服务商商务企业网站模板瑞安网站开发

文章目录数据转换——transform()方法数据应用——apply()方法数据转换——transform()方法 使用aggregate()方法进行聚合运算已经在上一篇博客中详细阐述,我们知道aggregate()方法返回的数据集的形状(shape)与被分组的数据集的形状是不同的…

如何将网址提交到一些权重比较高的网站wordpress 去除评论框

注解是什么? 注解可以理解成注释、标记、标签的意思,用来标记类、方法等。就相当于现实生活中的一些事物,上边贴一个标签或者写一些注释性文字来描述它可以用来做什么、怎么用、何时用等信息。Java中的注解也是一样的,用来表示被标…

广告设计就业方向和前景南昌网站建设方案优化

文章目录1. 逻辑回归二分类2. 垃圾邮件过滤2.1 性能指标2.2 准确率2.3 精准率、召回率2.4 F1值2.5 ROC、AUC3. 网格搜索调参4. 多类别分类5. 多标签分类5.1 多标签分类性能指标本文为 scikit-learn机器学习(第2版)学习笔记逻辑回归常用于分类任务 1. 逻…

seo网站设计团购网站案例

鲸参谋监测的京东平台9月份空气净化器市场销售数据已出炉! 9月份,空气净化器的销售同比上年增长。根据鲸参谋平台的数据显示,今年9月,京东平台空气净化器的销量将近15万,同比增长约1%;销售额将近2亿元&…

政务公开网站建设整改方案手机在网上怎么创建自己的网站

问题: 级数敛散性和积分敛散性的区别联系是什么?学习的目的是什么?最重要的目的是什么? 主要内容。 部分和 s ∑ i 1 n u i s \sum_{i1}^{n} u _{i} si1∑n​ui​ 注意:部分和不是数列的一部分之和,…

黄埔做网站公司it外包企业排名

方差可以反应变量的离散程度,是因为它度量了数据点与均值的差异。方差是每个数据点与均值的差的平方和的平均值,它可以反映数据点在均值附近的分布情况。如果方差较小,说明数据点更加集中在均值附近,离散程度较小;如果…

中山企业建网站wordpress无法缩进

云服务器可以装多个系统吗 内容精选换一换示例:购买并登录Windows弹性云服务器示例:购买并登录Linux弹性云服务器云平台提供了多种实例类型供您选择,不同类型的实例可以提供不同的计算能力和存储能力。同一实例类型下可以根据CPU和内存的配置…

教做视频的网站建产品网站怎么做

每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始:“ 你是被监视。 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器。 我知道是因为...我建造了它。 “当然,我们的技术人员知道得更多。 庞大的电气和软件工程师团…

网站域名如何起网站素材站

程序员不仅拥有将抽象概念转化为实际应用的能力,还通常具备强大的逻辑思维和问题解决能力。然而,许多程序员并不满足于仅仅在一家公司工作,他们渴望通过副业来实现个人价值的最大化,增加收入,甚至探索自己的创业梦想。…

网站内部优化做静态网站选用什么服务器

9.3.3 内连接(INNER JOIN) 内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据。也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的…

网站建设建站网易互客网站建设怎么做帐

建立时间和保持时间的模型分析 起点是源触发器D1的采样时刻,终点是目的触发器D2的采样时刻,假设起点已经满足了建立时间和保持时间要求,现在分析终点采样时刻是否同样满足要求。 其中 Tco:数据正确采样后从D端到达Q端的延时,触发器固有属性,不可改变。TDelay:D1输出端…

昆明c2c网站建设苏州市网站

未完待续...T1:牛牛的方程式titlesolutioncodeT2:牛牛的猜数游戏titlesolutioncodeT3:牛牛的凑数游戏titlesolutioncodeT1:牛牛的方程式 title solution 因为浮点错误炸了70pts 这个三元一次不定方程呢,其实也没有…

网站做境外第三方支付关于申请建设网站申请报告

题干: 给出一个n1个点的树,以及p个点对,需要断开一些点,使得这p个点对路径不连通。输出应该断开的最少点数。 解题报告: 从那p个点对入手的话:首先考虑只有一对点的话,肯定是这条路径上的随便…

微博营销网站服务器维护要多久

冒泡排序 冒泡排序是一种 稳定 的排序算法。 它的工作原理是每次检查相邻两个元素,如果前面的元素与后面的元素满足给定的排序条件,就将相邻两个元素交换。当没有相邻的元素需要交换时,排序就完成了。 假设我们想要从小到大进行排序&#…

电商网站开发的项目描述张艺兴粉丝做的网站

本题使用go语言完成: 思路:1.先求出整个数组的和 2.用一个循环整个和减去左和看是否等于右和,如果等于,返回索引下标 寻找数组的中心索引 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一…

已有网站开发安卓app做体彩网站怎么做

情况介绍:一、由于硬盘或者分区的操作方式其实都一样,所以我这里就以分区为例。二、/home分区2.6G,由如下pv组成:/dev/sda5 100M/dev/sda6 200M/dev/sda7 300M/dev/sda8 400M/dev/sda9 500M/dev/sda10 600M/dev/sda11 500M很碎对吧…