计算机系统漫游

这篇具有很好参考价值的文章主要介绍了计算机系统漫游。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 所有计算机系统都有相似的硬件和软件组件,它们又执行相似的功能,深入了解这些硬件如何工作以及这些组件是如何影响程序的正确性和性能,来提供程序员自身的技能。

优化程序性能

了解一些机器代码及编译器将不同的高级语言转化为机器代码的方式。比如,一个函数的开销有多大,while与for的性能对比等。

理解链接时出现的错误

一些最令人困扰的程序错误往往都与链接器操作有关,比如静态变量和全局变量的区别,为什么有些链接错误直到运行时才出现。

避免安全漏洞

缓冲区溢出错误是造成大多数网络和Internet服务器上安全漏洞的主要原因。发生这些错误是因为很少有程序员能够理解需要限制从不受信任的源接收数据的数量和格式。

表 了解编译系统如何工作的益处

1 C语言编译过程

计算机系统漫游

图 c语言编译过程

  1. 预处理阶段,预处理器根据以字符#开头的命令,修改原始的C程序。比如#include <stdio.h> 命令告诉预处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中。得到通常以.i作为文件扩展名的另一个C程序。
  2. 编译阶段,编译器将文本文件翻译成扩展名为.s的文本文件(汇编语言文件)。
  3. 汇编阶段,汇编器将.s文件翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在.o文件中。
  4. 链接阶段,如果原文件调用了该文件以外的函数,链接器会将该函数所在的目标文件以某种方式合并到当前的目标文件中,最终得到可执行目标文件。

2 处理器读并解释存储在内存中的指令

2.1 系统硬件的组成

计算机系统漫游

图 一个典型系统的硬件组成

1 总线

贯穿整个系统的一组电子管道,携带信息字节并负责在各个部件间传递。

2 I/O设备

是系统与外部世界的联系通道。每个I/O通过控制器或适配器与I/O总线相连。控制器是设备本身或者系统的主印刷电路板上的芯片组,设配器是一块插在插槽上的卡。

3 主存

是一个临时存储设备,处理器执行程序时,存储程序及其处理的数据。由一组动态随机存取存储器(DRAM)芯片组成。从逻辑上来说,存储器是一个线性的字节数组。

4 处理器

中央处理单元(CPU),是解释(或执行)存储在主存中指令的引擎。其核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器(PC)。

从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令。

寄存器文件是一个小的存储设备,由一些单个字长的寄存器组成,没一个寄存器都有唯一的名字。ALU计算新的数据和地址值。

2.2 运行hello程序

1)我们在Linux系统上输入”./hello”后,shell程序将这些字符逐一读入寄存器,再把它存放到内存中。

计算机系统漫游

图 从键盘上读取./hello命令

2) 当在键盘上敲回车键时,shell程序执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出的字符串”hello,word\n”

计算机系统漫游

图 从磁盘加载可执行文件到主存

3)一旦目标文件hello中的代码及数据被加载到主存,处理器就开始执行hello程序的main程序中的机器语言指令。这些指令将“hello,word\n”字符串的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备。

计算机系统漫游

图 将字符串从存储器写到显示器

3 高速缓存至关重要

上述代码的运行揭示了一个重要的问题,即系统花费大量的时间把信息从一个地方挪到另一个地方。

根据机械原理,较大的存储设备要比较小的存储设备运行得慢,而快速设备的造价远高于同类的低速设备。

3.1 高速缓存存储器cache

高速缓存存储器作为暂时的集结区域,存储处理器近期可能会需要的信息。

比较新的、处理能力更强大的系统有三级高速缓存:L1、L2和L3。L1容量可达到数万字节,访问速度几乎和访问寄存器文件一样快;L2容量为数十万到数百万字节,访问速度是L1的1/5,但速度依旧比主存的访问速度更快。

cache是利用高速缓存的局部性原理,即程序具有访问局部区域里的数据和代码的趋势。通过让高速缓存里存放可能经常访问的数据,大部份内存操作都能在快速的高速缓存中完成。

计算机系统漫游

图 高速缓存存储器

L1、L2及L3是用一种叫做静态随机访问存储器(SRAM)的硬件技术实现的。

计算机系统漫游

图 存储设备的层级结构

4 操作系统管理硬件

操作系统有两个级别功能:1)防止硬件被失控的应用程序滥用;2)向应用程序提供简单一致的控制复杂而又通常大不相同的低级硬件设备。

4.1 基本的抽象概念

操作系统通过几个基本的抽象概念来实现上述功能。文件是对I/O设备的抽象表示,虚拟内存是对主存和磁盘I/O设备的抽象表示,进程则是对处理器、主存和I/O设备的抽象表示。

计算机系统漫游

图 操作系统提供的抽象表示

4.1.1 虚拟内存

虚拟内存是一个抽象概念,它为每个进程提供了一个假象,即每个进程都独占地使用主存。每个进程看到的内存都是一致的,称为虚拟地址空间。

计算机系统漫游

图 C语言进程的虚拟地址空间

  1. 堆区。代码和数据区在进程一开始运行时就被指定了大小,而堆可在运行时动态地扩展和收缩。
  2. 内存映射/共享库。存放像C标准库和数学库这样的共享库的代码和数据的区域。
  3. 。用来实现函数调用。在运行期间可动态地扩展和收缩。

4.1.2 文件

就是字节序列,仅此而已。每一个I/O设备,包括磁盘、键盘、显示器,甚至网络,都可以看成是文件。文章来源地址https://www.toymoban.com/news/detail-498933.html

到了这里,关于计算机系统漫游的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 希望所有计算机专业同学都知道这些老师

    翁恺老师是土生土长的浙大码农,从本科到博士都毕业于浙大计算机系,后来留校教书,一教就是20多年。 翁恺老师的c语言课程非常好,讲解特别有趣,很适合初学者学习。 郝斌老师的思路是以初学者的思路来思考的,非常适合小白,你不理解的问题,基本上他都会详细说

    2024年02月05日
    浏览(45)
  • 希望所有计算机专业同学看到这篇大一规划

    自学计算机的大彬来分享下几点宝贵经验。 1、看下 计算机科学速成课 ,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、操作系

    2023年04月13日
    浏览(51)
  • 希望所有计算机学生能看到这篇c语言教程

    大部分程序员走入编程世界第一个学习的语言就是C语言。 作为一门古老的编程语言,c语言拥有48年的发展历程。 C语言是学习计算机程序设计语言的入门语言。最全面的编程面试网站 C语言是一门偏底层的语言,学好它,可以让你更好的了解计算机。 学会了C语言,你就能学

    2024年02月01日
    浏览(46)
  • 内网安全 信息收集(收集内网计算机的所有信息 进行攻击.)

    在   渗透测试人员 进入一个内 网后,面对的是一片 “ 未知的区域 ”,所以 渗透测试人员首先会对当前所 处的网络环境进行判断,通常的判断分为三种. (1) 我是谁? —— 对计算机的角色进行判断. (2)我在哪? —— 对目前机器所处位置区域的判断。 (3)这是哪?

    2024年02月02日
    浏览(49)
  • 在VSCode中导出安装的所有插件并在其他计算机进行导入

    如图所示: 当您在另一台计算机上导出了 Visual Studio Code 编辑器已安装的扩展程序列表时,您可以按照以下步骤在另一台计算机上安装这些扩展程序: 将扩展程序列表文件(例如 “extensions.txt”)复制到您要安装扩展程序的计算机上的任何位置。 在您要安装扩展程序的计算

    2024年02月16日
    浏览(43)
  • 计算机组成原理-计算机系统概述

    目录 一,基本组成  二、各部件工作原理 2.1存储器 2.2运算器  2.3控制器  2.4输入设备 2.5输出设备 一条指令的工作原理  三、计算机系统的层次结构  三种基本语言 四、计算机性能指标         “存储程序”的概念,指将指令以二进制代码的形式事先输入计算机的主存

    2024年02月05日
    浏览(95)
  • 计算机组成原理之计算机硬件发展和计算机系统的组成

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年01月24日
    浏览(86)
  • 计算机组成原理(1)--计算机系统概论

    计算机系统由“硬件”和“软件”两大部分组成。 所谓“硬件”,是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机 设备的实物组成,如主机、外部设备等。 所谓“软件”,它看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成。(

    2024年01月16日
    浏览(61)
  • 计算机组成原理(一)计算机系统概论

    计算机组成原理这门课可以说是计算机专业最重要的基础,身为计算机专业非常重要,所以需要自己好好琢磨,不要应付考试。 计算机硬件系统的主要组成为五大部分,分别为存储器、运算器、控制器、输入设备和输出设备。 简述一下计算机的工作原理,假设要用计算机来

    2024年02月08日
    浏览(74)
  • 「计算机控制系统」3. 计算机控制系统的数学描述

    差分方程 Z变换 脉冲传递函数 计算机控制系统的响应 几种不同的 差分 : 前向差分和后向差分没有本质区别,在控制系统中一般用后向差分。 在连续系统中,用微分方程来描述系统的运动。而在离散系统,则使用 差分方程 : 差分方程是确定时间序列的方程,因为可以通过

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包