• 计算机基础之硬件


    计算机基础之硬件

    程序员与计算机之间沟通是通过编程语言和操作系统,程序员通过写编程语言做成软件,软件运行在操作系统上,转化为计算机(硬件)理解的机器语言。

    一台计算机包括的部分有:CPU,内存,外存,I/O设备,他们之间通过总线(bus)链接起来。

    1.       处理器

    CPU从内存中读取数据,解码,执行,每个CPU都有一套可执行的专门指令集。

    CPU内部有一些寄存器,用来存储一些关键变量和临时数据,寄存器的材质和CPU一样,运行速度快,用来调和cpu高速度和内存低速度的矛盾。

    寄存器可分为4种:

    1通用寄存器:保存关键变量和临时文件

    2程序计数器:CPU一次只能运行一条指令,但可以运行“多个”指令,寄存器用来记录正在运行的指令的运行程度和下一条指令的运行程度和他们对应在内存中的地址

    3堆栈指针:堆栈 先进后出   队列 先进先出

    4程序状态字寄存器PSW:利用二进制位对用户态和内核态之间切换

    CPU的两种模式:

    用户态:应用软件对硬件发送指令不可执行。若要切换必须使用系统调用(system call),使用TRAP指令

    内核态:操作系统可以对硬件CPU发送指令并全部执行

    寄存器的维护:操作系统必须知道所有的寄存器,以便记录每个程序的运行程度。

    CPU在逐渐发展的过程中,可以同时取出,解码多个指令,存入缓冲区,最后同时执行。

    随着CPU硬件的扩大,性能也逐渐增强,

    1.加入寄存器

    2.多线程。引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,把线程作为独立运行和独立调配的基本单位。进程是一个程序在处理机上的一次执行过程,可以申请和拥有系统资源,通过程序计数器的值和处理寄存器的内容来表示。多个线程共享数据空间,每个线程都有自己的执行堆栈和程序计数器为其执行上下文,并且速度高于进程间的上下文切换。

    3多核芯片 一枚处理器中集成两个或多个完整的内核,相互独立,并行处理,提高性能。

    2.       存储器

    寄存器>高速缓存>内存>磁盘>磁带

    L1缓存:寄存器 容量:32CPU中为32*32

                          64cpu中为64*64

    L2缓存:高速缓存 放在cpu内部或接近cpu的地方,程序需要读取存储时,硬件检查高速缓存,若找到则为高速缓存命中,若找不到,则未命中,访问内存。CPUL2的访问有1-2个时钟周期的延迟

    主存 RAM 随机访问存储 易失性

    ROM  只读,非易失性 用于启动计算机的引导加载模块存放在ROM中(BIOS程序)

    闪存 应用于固态硬盘 速度上介于RAM和磁盘之间,可擦出重写

    CMOS 易失性 保持当前的日期,时间和配置的参数 BIOS电池永久供电

    磁盘 写入磁盘:Linux操作系统中8个扇区为一个block ,4kb       硬盘最小的读写单位,一个扇区512bit

    读取磁盘:

    平均寻道时间:机械手臂移动和磁头找到数据所在磁道的时间

    平均延迟时间:机械手臂找到磁道之后旋转到扇区的时间

     虚拟内存:在linux中称为swap,快速的映射内存地址,由CPU中的一个部件负责,成为存储器管理单元MMU

    上下文切换:从一个程序切换到另一个程序

    磁带:常用于地震灾害和备份时

     I/O设备 包括控制器和设备

    控制器: 是主板上的一块或一组芯片,目的是为操作系统屏蔽这些复杂而具体的工作。

    4  总线 bus

    计算机各个部件之间传递信息的公共通信干线。

    北桥 PCI 连接高速设备

    南校 ISA 连接慢速设备

    5启动计算机的流程

       计算机插电后首先启动BIOS程序(存放于RAM中),

    程序检测输入输出设备状况,

    读取CMOS中的参数和配置信息,

    读取系统盘的第一个扇区,根据读取的信息载入bootloader模块,启动操作系统,

    操作系统询问BIOS,获得配置信息和设备驱动程序。

    BIOS程序产生的数据存储在CMOS

  • 相关阅读:
    PyCharm 3.4注册码
    监控Oracle索引是否被启用
    Oracle execute plan 原理分析与实例分享(转)
    6 个重构方法可帮你提升代码质量(转载)
    跟我一起学Oracle 11g【2】----用户管理(转载)
    notecore设置linux/Unix系统文件权限
    Unicode特殊字符的坑
    net多线程
    走过的HttpClient坑
    Postgre备份还原
  • 原文地址:https://www.cnblogs.com/liuguniang/p/6534430.html
Copyright © 2020-2023  润新知