zoukankan      html  css  js  c++  java
  • 计算机硬件基础(一)

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

      任何一种编程语言最终的作用是通过Windows/Linux等操作系统来控制硬件工作。

       应用程序发送指令给操作系统后,操作系统首先将收到的指令进行解码然后传送给过内存,内存将硬盘对应路径的数据逐步提取供CPU使用。

    2、cpu与寄存器,内核态与用户态及如何切换?

        计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

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

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

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

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

    3、CPU工作原理:

      取指令:从应用操作系统中获取指令;

      解码:将获取的指进行解析;

      执行:将结果返还给应用程序。

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

         存储器系列:存储器按照典型访问时间,存储容量分为5个梯度,从高到低排列,寄存器,高速缓存,内存,硬盘,磁带。 

         寄存器,1ns,<1K 

         高速缓存,2ns,4M 

         内存,10ns,512-2048MB 

         硬盘,10ms,200-1000GB 

         磁带,100s,400-800GB 

         L1缓存即为寄存器,L2缓存即为高速缓存,最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。 

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

         除了主存RAM之外,许多计算机已经在使用少量的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。 

         EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。 

         还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池(BIOS电池)往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。

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

        磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。从边缘开始有一个机械臂悬在盘面上,这类似于老式黑胶唱片机上的拾音臂。信息卸载磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

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

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

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

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

     平均寻道时间

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

     平均延迟时间

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

    虚拟内存与MMU
         虚拟内存使电脑能运行大于真实内存的程序,虚拟内存一般设置为真实内存的1-1.5倍,其工作原理是在真实内存上运行重要的数据,暂时不需要的先放在硬盘的某处,这里即称为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)。
    6、磁带
        磁带价格便宜,容量大,多作为备份用,并且易于搬运。
    7、设备驱动与控制器
        设备驱动:举例内存插入主板,下面有一块芯片,控制内存,但是光有芯片不行,系统需要操控内存,但是光写让自己得硬件可以理解的程序不行,操作系统不能理解这段程序的话,操作系统不能操作内存,所以需要设备厂商写设备驱动,已操作硬件。
        控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。
    8、总线与南桥和北桥
        CPU、内存以及I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信
       北桥即PCI桥:连接高速设备
       南桥即ISA桥:连接慢速设备

    9、操作系统的启动流程:

      1、计算机加电;

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

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

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

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

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

    10应用程序的启动原理如下:

      1、在操作系统的界面打开应用程序;

      2、应用程序发送指令给操作系统,需要打开这个软件;

      3、操作系统再通知到CPU去内存调用应用程序;

      4、内存在硬盘的相应路径下找到该应用程序。

  • 相关阅读:
    js用8421码实现10进制转2进制
    什么?toggle(fn1, fn2)函数在1.9版本jq被移除? 来来来,自己撸一个
    js获取鼠标点击的对象,点击另一个按钮删除该对象
    html5小结
    iphone状态栏高度?
    制作手机相册 全屏滚动插件fullpage.js
    js 相关知识整理(一)
    css 居中问题
    进度条
    @Html.Raw()
  • 原文地址:https://www.cnblogs.com/bingpan/p/7151511.html
Copyright © 2011-2022 走看看