深入理解计算系 第一章笔记

系统的硬件组成

总线

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

I/O

I/O(input/output)系统输出和输出设备,如输入键盘 鼠标 输出 显示器
每一个I/O设备都通过一个控制器或者适配器与I/O总线相连。控制器是I/O设备本省的主印制电路板(通常称作主板),适配器则是一个插在主板插槽上的卡(排线)他们的功能都是在I/O总线和I/O设备之间传递信息。

在这里插入图片描述

主存

主存是一个临时存贮设备,在处理器执行程序时,用来存放程序和程序处理数据。主存由一组动态随机存取存储器(DRAM)芯片组成。从逻辑上来讲存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引)。其实是系统对为了管理内存进行了硬件上面的抽象,把内存抽象成逻辑上一个字节数组,方便操作。

处理器

中央处理器(CPU)简称处理器,是解释存储在主存中指令的引擎。处理器的核心是一个大小为一个字(Bit)的设备(称作 寄存器),和记录指令执行位置的程序计数器(PC)。在任何时候PC都执行主存中的某条机器语言指令(即该条指令的地址)
一个简单的指令执行过程围绕寄存器(register file)和算术/逻辑大怒焰(ALU)进行。寄存器文件是一个CPU自带的小的存储设备,由一些单个字长的寄存器组成,每个寄存器都有唯一的命名标识。ALU用来计算数据和地址值。

  1. 加载:从主内存中复制一个字节或者一个字到寄存器,已覆盖寄存器原有值
  2. 存储:从寄存器复制一个字节或者一个字到主存的某个位置,以覆盖这个位置上原来的内容
  3. 操作:把原来两个寄存器的内容复制到ALU,ALU对这两个字做算术运算,并将新的记过存到到一个寄存器中,覆盖该寄存器原来的值
  4. 跳转: 从指定本省抽泣一个字,并将这个字复制到程序计数(PC)中,以覆盖PC原有的值

Hello world程序的执行

hello world程序的编写:
在这里插入图片描述
用户输入./hello 开始读取输入的shell命令先通过总线到读入寄存器,最后通过总线将./hello命令存储到内存中
在这里插入图片描述
用户回车结束命令输入,开始执行./hello命令,从磁盘是上读取hello.c编译好的二进制文件中代码和数据通过IO总线加载到主存

在这里插入图片描述
执行main程序,读取main程序中指令,将“hello world\n”字符串从主存复制到寄存器,在从寄存器输出到显示设备

高速缓存

遵循木桶原理,程序的执行速度最终受执行效率最低的设备影响最大,由于CPU和主存之间CPU的效率更高,为了获取高性能,在CPU上设置了比主存更快 更小的存储设备称为高速缓存存储器。寄存器,L1,L2,L3的访问速度逐级递减,L3是多核心CPU共享的。
金字塔模型
在这里插入图片描述

操作系统管理硬件

执行hello程序是,shell和hello程序都没有直接访问键盘,显示器,主存,他们依靠操作系统提供中的服务实现。我们把操作系统看成应用程序和硬件之间插入的一层软件。
操作系统两个基本功能:

  1. 防止硬件被时空的应用程序滥用
  2. 向应用程序提供简单一致的机制来控制复杂而通常大不相同的低级硬件设备。
    操作系统通过几个基本的抽象概念(进程,虚拟内存,文件)
    在这里插入图片描述
    文件是对I/O设备的抽象表示,虚拟内存是主存和磁盘I/O设备的抽象表示,进程是对处理器,主存,I/O设备的抽象表示
进程和线程

进程是对操作系统对一个正在运行的程序的一种抽象。每一个进程好像在独占使用硬件。并发运行指的是一个进程的指令和另一个进程指令交错执行。一个CPU看上去并发只此昂多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。从一个进程转换到另一个进程都是有操作系统内核(kernel)管理,因此要操作系统需要保持跟踪进程运行锁需要的所有状态信息,这种状态就是上下文。
由于进程的切换比较重,需要单独分配内存资源,上下文切换消耗资源大,可以把进程拆分为更为轻量的线程,线程就是进程的执行单元,每个线程运行在进程的上下文中共享进程的内存资源,比起原来通过操作系统维护进程上下文,切换线程更轻量。

虚拟内存

虚拟内存是一个抽象的概念。它为每一个进程提供了一个假象,即每个进程都在独占的使用主存。每一个进程看到的内存都是一致的,称为 虚拟地址空间。
在这里插入图片描述
每个进程看大的虚拟地址空间由大量准确定义的区组成,每个区都有专门的功能。

  • 程序代码和数据
  • 共享库
  • 内核虚拟内存
文件

文件就是对I/O设备的抽象,包括磁盘,键盘,显示器,甚至网络,都可以看成是文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值