计算机硬件基础(一)

谁说胖子不能爱 提交于 2020-04-05 20:54:02

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、内存在硬盘的相应路径下找到该应用程序。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!