• 计算机硬件介绍知识


    ---恢复内容开始---

    简单的个人计算机中有CPU,内存以及I/O设备都是通过一条系统总线(bus)连接起来并通过其他设备通信。

    大脑CPU,从内存中 取指令->解码->执行,重复命令,周而复始,直到完成程序。

    因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的   寄存器 。

    寄存器的分类:

    1用于保存变量和临时结果的通用存储器

    2程序计数器是对于程序员而言的存储器,它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令

    3堆栈指针,指向内存中当栈的顶端。

    4程序状态寄存器,包含了条码位,cpu优先级,模式(用户态和内核态),以及各种其他控制位。

    内核态与用户态

      内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

      用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

    内核态与用户态切换  

      用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

    存储器

    计算机中第二重要的就是存储了,所有人都意淫着存储:速度快+容量大+价钱便宜。然后同时兼备三者是不可能的,所以有了如下的不同的处理方式

    顶层的存储器速度较高,容量较小。

    寄存器即L1缓存:

    用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB。

     高速缓存即L2缓存:

    主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中。

     磁盘

    磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。

    每个磁头可以读取一段换新区域,称为磁道。

    把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

    每个磁道划成若干扇区,扇区典型的值是512字节

    平均寻道时间

    机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置

    平均延迟时间
    机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
    虚拟内存:
    计算机支持虚拟内存机制,该机制使计算机可以运行大于物理储存的程序,方法是将正在使用的程序放入内存取执行,而不需要执行的程序则放到磁盘的某个地方,这个地方就叫虚拟内存,在linux中交swap。

    磁带

    I/O设备一般包括两个部分:设备控制器和设备本身

    控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

    控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

    设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

    总线

    北桥即PCI桥:连接高速设备

    南桥即ISA桥:连接慢速设备

    启动计算机

    在计算机的主板上有一个基本的输入输出程序。

    BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。

    启动流程

    1.计算机加电

    2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

    3.BIOS读取CMOS存储器中的参数,选择启动设备

    4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

    5.根据分区信息读入bootloader启动装载模块,启动操作系统

    6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格,穿件需要的进程,并在每个终端上启动登录程序或GUI。

     

    ---恢复内容结束---

  • 相关阅读:
    读《构建之法- 现代软件工程》一书
    自我介绍
    jQuery Validate表单验证
    oracle数据库 expdp/impdp 和 exp/imp
    Java JDK安装及环境配置
    《JavaScript》JS中的跨域问题
    Python语言基础
    .net web 应用程序C#
    C# string 常用方法
    前端获取URL和SESSON中的值
  • 原文地址:https://www.cnblogs.com/wanghaohao/p/7155604.html
Copyright © 2020-2023  润新知