一、编程语言的作用

程序员通过编程语言构建程序,计算机执行程序完成工作。

二、应用程序-》操作系统-》硬件

应用程序运行在操作系统之上,操作系统运行于硬件之上。程序员开发时只需调用操作系统提供的接口即可。

三、CPU

CPU从内存中取指令、解码、执行,然后再取指、解码、执行,循环往复,直到程序终止。

CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样通常在CPU的指令集中专门提供一些指令,用来将数据从内存调入寄存器,以及将数据从寄存器存入内存。

寄存器分为:

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

2.程序计数器:保存将要取出的下一条指令的内存地址。

3.堆栈指针:指向内存中当前栈的顶端。

4.程序状态寄存器(Program Status Word,PSW):包含了条码位、CPU优先级、模式,以及各种其他控制位。在系统调用和I/O中,PSW非常重要。

四、存储器

速度从快到慢,容量从小到大:L1缓存-L2缓存-内存-磁盘-磁带

1.L1缓存(寄存器):用与CPU相同材质制造,CPU访问无延时。

2.L2缓存(高速缓存):接近CPU的高速缓存。

3.内存:主存,随机访问存储RAM,断电不保存:只读存储器ROM,断电可保存。

4.EEPROMElectrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory):断电可保存,但重写时间比RAM多,例如U盘,固态硬盘。、

5.CMOS:由BIOS电池驱动,保存配置参数和时间等。

6.磁盘:数据写入时从同一柱面的上磁道开始向下,写满柱面后切换到下一柱面。磁头从一个柱面随机移动到相邻的柱面的时间成为寻道时间。机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。

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

五、设备驱动与控制器

控制器:主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

设备本身有相对简单的接口标准。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

六、总线与南北桥

    CPU、内存以及I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信。

    北桥即PCI桥:连接高速设备

    南桥即ISA桥:连接慢速设备

七、操作系统的启动流程

1.计算机加电。

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等,俗称自检。

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

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

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

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

八、应用程序的启动流程

1.用户打开程序。

2.系统把程序代码段和数据段送入计算机的内存。

3.控制器从存储器中取指令。

4.控制器分析,执行指令,为取下一条指令做准备。

5.取下一条指令,分析执行,如此重复操作,直至执行完程序中全部指令,便可获得全部指令 。