zoukankan      html  css  js  c++  java
  • 计算机基础硬件部分

    一台完整的计算机系统包括3方面:计算机硬件、操作系统、应用软件(也就是程序要开发的QQ、微信等),以下是计算机基础中硬件的基础知识:

    1.编程语言的作用及与操作系统和硬件的关系

      编程语言,是用来解决人跟计算机之间信息传递的问题。相当于,我要跟英国人交流,我需要学会他们使用的英语;

      操作系统,本质上也是软件,它主要用来控制计算机硬件。另外,提供简单的接口给应用软件,从而使得应用软件开发变得简单、高效。(假如没有操作系统,我们开发每个软件的时候,就需要写怎么去控制硬件,这个将是非常耗时、而且门槛较高的事情。)

     

    2.应用程序-》操作系统-》硬件

      操作系统是运行在硬件之上,用来控制硬件的程序,应用程序是运行于操作系统之上,所以我们开发应用程序时,只要调用操作系统提供的借口就可以。

     

    3.cpu-》内存-》磁盘

      cpu,处理器,是计算机的大脑部分,从内存中读取指令—解码—执行,然后再去内存在读取下一条指令,解码,执行,直到程序被执行完成;

      内存,存储器系统的主力,主存通常称为随机访问存储RAM,容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据全部消失。

      磁盘,存储器系统的一员,可以永久储存数据,断电后数据不消失。现在分为固态硬盘、机械硬盘,机械硬盘衡量的标准是转速。


    4.cpu与寄存器,内核态与用户态及如何切换

      cpu与寄存器

      每个cpu都有一套可执行的专门指令集,任何软件的执行最终都要转化成cpu的指令去执行。因为cpu从内存中读取指令的时间,比cpu解码、执行的时间要长很多,为了提高效率,cpu内部有用来保存关键变量,以及关键信息的寄存器。(寄存器的物理材质跟cpu的材质一样,故读取没有时间差)

      寄存器的分类:

      ①通用寄存器:用来保存临时变量和运算结果;

      ②程序计数器:保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令;

      ③堆栈指针:指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量;

      ④程序状态字寄存器  (Program Status Word,PSW):这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常非常非常重要!!!!!


      内核态与用户态及如何切换

      内核态:当CPU在内核态下工作时,cpu可以执行指令集中多有的指令,所以也就是可以操作所有的硬件。

      用户态:用户程序在用户态下运行,可以执行指令集中的一部分指令,这些执行不包括对于硬件的操作。

      如何切换:用户程序使用系统调用,系统调用陷入内核并调用操作系统,TRAP指令把用户态切换为内核态,并启用操作系统获得服务;

    5.存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池

      储存器,根据典型的访问时间由少到多,依次是:寄存器、高速缓存器、内存、磁盘、磁带。并且存储空间,由小到大。

      L1缓存,也就是寄存器,包含在cpu中,物理材质跟cpu一样,所以cpu访问他没有延时;

      L2缓存,也就是高速缓存器,最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。缓存是一个好方法,在现代cpu中设计了两个缓存,再看4.1中的两种cpu设计图。第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,对那些频繁使用的数据自,多少芯片还会按照第二L1缓存 。。。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

      内存(RAM),存储器系列的主力,cpu在高速缓存中不能找到的,都会去内存中寻找读取,内存有断电就遗失的特点;

      EEPROM(电可擦除可编程ROM):非遗失性存储设备。他们可以擦除和重写,不过重写时花费的时间比写入RAM要多。

      闪存,闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

      CMOS(互补金属氧化物半导体储存器),主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。CMOS RAM芯片由系统通过一块备用电池供电,因此无论是在关机状态中,还是遇到系统掉电情况,CMOS信息都不会丢失。

      BOIS,基本输入输出系统,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

    6.磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU

      磁盘结构:如下图,在一个轴上有若干磁盘,每个盘面上下各一个磁头,通过磁头接触磁盘的磁道来读取信息;

      

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

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

      虚拟内存:为了能够保证可以执行大于内存的空间的程序(含系统占用的内存),需要在磁盘上单独划分出区域来充当内存,空间大小大概为内用的1.5-2倍左右。假如内存很大的情况下,其实是不需要虚拟内存的。

      MMU,存储器管理单元。

    7.磁带

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

    8.设备驱动与控制器

      设备驱动,主要是计算机硬件的驱动,因为各个计算机硬件有不同的厂家,为了能够兼容操作系统,就需要每个硬件来有专门的驱动。

      控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

    9.总线与南桥和北桥

      总线,连接各个硬件的媒介,

      北桥,连接高速设备,

      南桥,连接慢速设备,

      

    10.操作系统的启动流程

      ①计算机通电;

      ②BOIS(basic input output system) 程序去检测CPU,内存,硬盘等;

      ③BOIS去CMOS中读取基本的配置文件,选择启动设备,例如去哪个硬盘启动;

      ④读取选择的第一个扇区中MBR(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位),

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

      ⑥操作系统询问BOIS中各个硬件的配置信息,假如都有驱动程序,把它们导入到内核中,然后初始化需要的进程,

      

    11.应用程序的启动流程

      ①输入设备将指令传递给驱动程序,然后传递到控制器;

      ②控制器把指令传递到操作系统中;

      ③操作系统去硬盘上找对应的应用程序文件;

      ④操作系统把应用程序文件放到内存中读取;

      ⑤cpu读取内存中的指令,解码,执行。

  • 相关阅读:
    qt一直编译
    JavaWeb-国际化之Locale
    JavaWeb-文件下载
    JavaWeb-文件上传案例
    JavaWeb-使用fileload组件
    JavaWeb—文件上传基础
    JavaWeb-其他Listener监听器(3)
    JavaWeb-其他Listener监听器(2)
    JavaWeb-其他的servlet监听器(1)
    JavaWeb——通过Listener理解域对象生命周期
  • 原文地址:https://www.cnblogs.com/fengqing89/p/7153218.html
Copyright © 2011-2022 走看看