Python全栈_Day1_计算机硬件

1. 编程语言

1.1编程语言的介绍及其作用

  编程语言是人与计算机之间沟通的媒介,程序员通过编程语言告诉计算机如何工作。

  日常生活中,人与人之间沟通的语言有英语,日语,法语等,同样,编程语言也有很多种,比较常见的有Java、C#、PHP、Python、C语言、汇编……下面是2017年3月各语言的排名

2017年1月编程语言排名

 1.2编程语言与操作系统、硬件的关系

  操作系统运行硬件之上,将各种硬件封装为一个统一的平台,为使用编程语言开发出来的应用软件提供统一的运行环境。这样开发应用软件时就不用关心硬件细节及不同硬件带来的兼容性问题。

2. 计算机硬件介绍

  计算机硬件主要包括CPU、内存、硬盘及各种输入输出设备

2.1 CPU

  CPU是计算机最核心的部件,计算机所有运算都由CPU完成,程序最终被转换为一条条指令后将在CPU中被执行,相当于计算机的大脑。

  每一个CPU都有一套指令集,不同型号的CPU指令集可能会不一样,比较有代表性的就是Intel和AMD的CPU指令集有较大的差异,因此不同CPU可能会有兼容性的问题,好在这个问题在操作系统层已经解决了

  CPU工作过程会频繁的读取指令和产生一些临时数据,如果这些数据直接向内存读写将消耗大量时间,所以在CPU里加入读写速度非常快的寄存器。

  寄存器的分类:

  1. 通用寄存器:保存变量和临时结果

  2. 程序计数器:保存程序当前运行到哪里了

  3. 堆栈指针:保存栈顶的位置

  4. 程序状态寄存器(PSW):保存程序运行的状态,如CPU优先级、用户态还是内核态,运算产生的进位、借位、溢出位等

  内核态和用户态及其切换

  通常在PSW寄存器中有一个寄存器用于控制这两种模式

  内核态:可执行该CPU支持的所有指令

  用户态:只能执行一部分指令,操作硬件的指令将被禁止

  操作系统工作在内核态,可以操作硬件,而平时用的应用软件都工作在用户态模式,这时不允许操作硬件,但是有时候应用软件会有操作的需求(如读取硬盘数据),此时,就要经历用户态转换到内核态的过程,应用程序通过系统调用转为内核态让操作系统帮忙操作硬件。

2.2 存储器

  理想的存储器应该同时满足3点:读写速度快、容量大、成本低,然而三者不可兼得,所以计算的存储器采用分层结构,通过不同的存储器来兼顾这三点

  L1缓存—寄存器:材质与CPU相同,拥有与CPU一样快的读写速度,但成本很高,因此容量很小

  L2缓存—高速缓存:读写速度和成本介于寄存器与内存之间,计算机运行时会有一些资源的某部分被频繁使用,如某个频繁访问的文件的地址。此时将该文件在磁盘的地址放入缓存,就可以避免反复寻址,从而带来性能提升。

  内存:读取速度比寄存器和高速缓存小,但成本也比它们小,而且读取速度还是比磁盘快得多因此内存是临时数据的主要存储器

  寄存器、高速缓存、内存都是易失性存储器(RAM),掉电后数据就会丢失,除了RAM,还有非易失性存储器(ROM),掉电后数据不会丢失,但它是只读的出厂时编程完毕后就不能修改,BIOS程序就存在ROM中。

  EEPROM和闪存也是非易失性的,但他们可以擦除和读写,U盘、固态硬盘都是闪存

  CMOS在计算机中用于保存时间、日期,他是易失性的,功耗非常小,所以计算机主板上有一个纽扣电池为其供电,保证计算机断电时时间正常更新,另外CMOS还保存一些配置参数,如启动盘等。

2.3磁盘

  磁道:每个磁头可以读取的一段换新区域

  柱面:每个戈丁手臂位置上所有磁道合起来组成一个柱面

  扇区:每个磁道被等分的若干个弧段

  平均寻道时间:机械臂从一个柱面随机移动到相邻柱面的时间称为寻道时间

  平均延迟时间:机械臂到达正确磁道后等待旋转到数据所在扇区下的时间

  虚拟内存:将正在使用程序放入内存去执行,暂时不需要执行的程序放到磁盘某块地方,这部分空间称为虚拟内存,在Linux中称为Swap。

      内存管理单元(MMU):由CPU中负责虚拟内存的快速映射内存地址的部件

2.4 磁带

  磁带虽然读写速度低于磁盘,但相同容量下成本比磁盘低,可移动性强,常用于备份

2.5 IO设备

  设备驱动:操作系统控制设备控制器的程序

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

2.6 总线

  南桥(ISA桥):连接慢速设备

  北桥(PCI)桥:连接高速设备

3. 操作系统与应用程序的启动

  操作系统启动流程:

  1.通电

  2.BIOS运行检测硬件

  3.BIOS读取CMOS参数,选择启动设备

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

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

  6.操作系统通过BIOS获得配置信息,检查每个设备的驱动程序是否存在,若不存在则要求用户安装,若存在则将驱动程序调入内核。然后初始相关表格,穿件需要的进程,并在每个终端启动登录程序或GUI。

  应用程序的启动

  用户双击应用程序的快捷方式——通过快捷方式链接到该应用程序(用户也可以直接在这里打开应用程序)——应用程序在操作系统上运行

原文地址:https://www.cnblogs.com/chenrenjian/p/6875221.html