• 计算机硬件基础


    计算机基础:计算机硬件

    一台电脑的最基础的组成部分

    l  硬件

    l  操作系统

    l  软件

    l  网络

    1. 为什么要学习计算机基础

    首先我们要清楚硬件、操作系统、软件、网络之间的关系。

    硬件是一台电脑的最底层的东西,操作系统是来控制操作系统的,但操作系统本身它就属于软件。软件也是用来控制硬件的,但是他不能直接去控制硬件,要通过操作系统来控制软件。而网络是用来每台电脑之间交互的。所以程序猿想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因。

    1. 计算机的硬件的介绍

    u  什么是CPU

    CPU相当于人的大脑,负责整个计算机的计算。

    u  什么是内存

    内存相当于人的记忆,负责临时的储存。

    u  什么是硬盘

    硬盘相当于人的笔记本,负责永久的储存。

    u  输入设备

    输入设备相当于人的眼睛,负责外部的信息然后把信息传给CPU。

    u  输出设备

    输出设备相当于人的表情,负责经过处理后把结果输出。

    u  什么是总线

    总线相当于人的神经,把所有的设备连接起

    1. CPU

      CPU的分类

    CPU分为内核态和用户态

    1、 内核态:控制操作系统的状态

    2、 用户态:控制客户软件的状态,不能控制硬件。 

    内核态和用户态的切换

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

    1. 存储器

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

     

    存储器系统采用如上图的分层结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差别往往是十亿数量级的

     

      寄存器即L1缓存:

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

      高速缓存即L2缓存:

    主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。高速缓存为命中,就必须访问内存,这需要付出大量的时间代价。由于高速缓存价格昂贵,所以其大小有限,有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级慢但是容易大。

      缓存在计算机科学的许多领域中起着重要的作用,并不仅仅只是RAM(随机存取存储器)的缓存行。只要存在大量的资源可以划分为小的部分,那么这些资源中的某些部分肯定会比其他部分更频发地得到使用,此时用缓存可以带来性能上的提升。一个典型的例子就是操作系统一直在使用缓存,比如,多数操作系统在内存中保留频繁使用的文件(的一部分),以避免从磁盘中重复地调用这些文件,类似的/root/a/b/c/d/e/f/a.txt的长路径名转换成该文件所在的磁盘地址的结果然后放入缓存,可以避免重复寻找地址,还有一个web页面的url地址转换为网络地址(IP)地址后,这个转换结果也可以缓存起来供将来使用。

      缓存是一个好方法,在现代cpu中设计了两个缓存,再看4.1中的两种cpu设计图。第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,对那些频繁使用的数据自,多少芯片还会按照第二L1缓存 。。。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

    1. 磁盘和磁带

    磁盘的结构

     

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

    信息写在磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

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

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

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

    数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间

    平均延迟时间

    机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

    虚拟内存:

    许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)

    磁带

    在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

    6.操作系统的启动流程和应用程序的启动流程

    操作系统的启动流程

    在计算机的主板上有一个基本的输入输出程序(Basic  Input Output system)

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

    l  计算机加电

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

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

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

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

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

     

    应用程序的启动流程

    l  输入设备将指令发给控制器。

    l  控制器通过驱动将请求发给操作系统。

    l  操作系统会去硬盘上寻找文件位置。

    l  操作系统找到文件以后会往内存里读,读完以后程序启动成功。

     

     

     

  • 相关阅读:
    subString源码分析
    我的three.js学习记录(三)
    我的three.js学习记录(二)
    2017-10-15
    我的three.js学习记录(一)
    我的Spring学习记录(三)
    我的Spring学习记录(二)
    我的Hibernate学习记录(二)
    我的Hibernate学习记录(一)
    Tomcat学习笔记
  • 原文地址:https://www.cnblogs.com/806939095xbb/p/7153577.html
Copyright © 2020-2023  润新知