了解计算机系统

编译系统

这里写图片描述

  • 预处理阶段:将文件头文件插入程序文本中。
  • 编译阶段:翻译成汇编语言程序。
  • 汇编阶段:将汇编程序翻译成机器语言,hello.o是一个二进制文件。
  • 链接阶段:合并一些预编译好的目标文件(如标准C库中的printf函数),得到可执行文件,可以被加载到内存中,由系统执行。

计算机系统的硬件组成

这里写图片描述

这里主要记录CPU,CPU的组成包括运算执行单元(EU)、寄存器单元和控制单元(CU)等。

  • 执行单元
    • ALU:算术逻辑单元,使执行单元核心,进行算数运算(主要是加)和逻辑运算(与、或、非、异或)及移位运算。
    • 寄存器:提供数据缓冲(应该是PC)。
  • 寄存器单元
    • 通用寄存器:用户可见,汇编语言可用。与CSAPP第三章所述通用寄存器概念不同,包括其通用寄存器及堆栈指针寄存器。
    • 控制与状态寄存器:用户不可见,为系统控制专用,包括IR(指令寄存器),PC(程序计数器)。
  • 控制单元:负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。控制方式为微程序或逻辑硬布线。包含IR(指令寄存器)和ID(指令译码器)。

由于书中暂没有提及控制单元,看了半天资料无法形成逻辑闭环,直到找到了控制单元 : ),就不做过多了解了。

这里写图片描述
CPU芯片中还有一个重要的部分:高速缓存存储器,高速缓存使用静态随机访问存储器(SRAM),访问速度比主存(DRAM)快很多。

存储设备层次

这里写图片描述

计算机系统的抽象

这里写图片描述

  • 文件:文件就是字节序列,是对I/O设备的抽象。文件为应用程序提供了一个统一的视角来看待系统中可能含有的各种I/O设备。

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

  • 进程:进程是操作系统对一个正在运行的程序的一种抽象。程序运行时就好像系统上只有这个程序在运行,独享计算机的各种资源,实际上会通过上下文切换并发执行多个进程。

  • 虚拟机:虚拟机是对操作系统的抽象。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值