应用程序-》操作系统-》硬件
语言是用来沟通的介质,是用来交流的。编程语言也一样,只不过编程语言是用来跟计算机交流的,是程序员跟计算机之间交流的媒介。程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因。
程序员用编程语言写程序,最终开发出的结果就是一个软件,而软件必须运行在操作系统上才可以。
编程语言只不过是我们给操作系统一些指令而已,但真正与计算机硬件交流的并不是我们所说的编程语言,而是操作系统在给计算机硬件交流。操作系统的出现就是运行于硬件之上,来控制硬件的,是管理计算机硬件资源,控制其他程序运行并为用户提供操作界面的系统软件的集合,操作系统也是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。我们也可以直接跟计算机硬件交流,但是太麻烦了,耗时耗力,严重影响了开发的效率。操作系统的出现就是运行于硬件之上,来控制硬件的,我们开发时,只需要调用操作系统为我们提供的简单而优雅的接口就可以了。
cpu-》内存-》磁盘
cpu一个大脑,计算机的大脑,强大而又飘渺。计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。
内存,一个计算机的记忆,用来临时存储的。内存就是处在cpu与硬盘之间,相当于媒介。因为硬盘的运行读取速度相对较慢,给用户的体验不好。如果有内存条,会把硬盘里的软件放入内存里用来提高运行速度。但是内存是易失性存储,断电后数据全部消失。
磁盘,用来存储文件的,相对于磁带来说虽然存储容量没有磁盘大,但是比磁盘的运行速度快,对于一般的用户来说,磁盘是个不错的选择。
cpu与寄存器,内核态与用户态及如何切换
cpu:它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。cpu其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。
内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。而且在用户态的状态下无法访问硬件
用户态与内核态的切换是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。
存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
计算机的主存储器不能同时满足存取速度快、存储容量大和成本低的要求,在计算机中必须有速度由慢到快、容量由大到小的多级层次存储器,以最优的控制调度算法和合理的成本,构成具有性能可接受的存储系统。寄存器,1ns,<1K,高速缓存,2ns,4M,内存,10ns,512-2048MB,硬盘,10ms,200-1000GB, 磁带,100s,400-800GB这五个存储器速度是越来越慢,但是存储容量是越来越大的。寄存器即L1缓存,跟cpu一样,相同的材质,相同的速度。告诉缓存则成为L2缓存,相对于寄存器来说比较慢,但是比内存快!内存,主存是易失性存储,断电后数据全部消失。EEPROM和闪存一种掉电后数据不丢失的存储芯片。CMOS,易失性的,许多计算机利用CMOS存储器来保持当前时间和日期,CMOS还可以保存配置的参数。
磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU
平均寻道时间实际上是由转速、单碟容量等多个因素综合决定的一个参数。一般来说,硬盘的转速越高,其平均寻道时间就越低;单碟容量越大,其平均寻道时间就越低。当单碟片容量增大时,磁头的寻道动作和移动距离减少,从而使平均寻道时间减少,加快硬盘速度。
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下的时间。
虚拟内存对于许多计算级来说都支持,虚拟内存可以运行大于物理内存的程序,运行原理是将正在运行的程序或者必须运行的程序都会在内存中运行,但是相对于计算机目前不重要的运行程序都会放到磁盘的某个地方,而这个地方就成为虚拟内存,虚拟内存一般在内存的1.5到2倍之间。
MMU是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的。
磁带
如果不比速度,可以说磁带的存储容量相对于其他存储介质来说已经很大了,而且容易携带,可移动性强。一般用来存储备份。缺点,读取速度太慢了!
设备驱动与控制器
控制器就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口
设备驱动是有相对简单的接口且标准的,程序员可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。
总线与南桥和北桥
总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。所谓的北桥(PCI)就是连接高速设备,高速设备有高速缓存,CPU,主存储器。南桥(ISA)连接慢速设备,慢速设备一般都是通过USB等外接设备。
操作系统的启动流程
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
应用程序的启动流程
应用程序的启动是双击桌面上的快捷方式,快捷方式会发送信息给操作系统,然后会在磁盘中找到相对应的文件调到内存中,然后CPU运行。
来源:https://www.cnblogs.com/De-Luffy/p/7151510.html