计算机基础

一、编程语言的作用及与应用程序、操作系统、硬件之间的关系

作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。
关系:编程语言会通过编译软件写成程序,程序是不能直接和硬件来进行交互的,而操作系统是用来管理计算机硬件设备的,所以我们可以就可以在操作系统上来运行程序,让操作系统去管理与配置内存、决定系统资源供需的优先次序、控制输入与输出、操作网络与管理文件系统等基本任务。
硬件上运行操作系统,操作系统上运行应用程序,应用程序通过Windows API调用操作系统函数从而和计算机硬件交互。

二、cpu、内存、磁盘之间的关系
1.CPU即中央处理器,CPU从内存或缓存中取出指令,放入指令寄存器,并对指令进行解码,然后发出各种控制命令,从而完成一条指令的执行。
2.CPU并不能直接调用存储在硬盘上的系统、程序和数据,必须将硬盘的有关内容通过总线存储在内存中,才能被CPU读取运行。因而,内存可以理解为硬盘和CPU的“中转站”。
3.当运行数据大小超出物理内存的时候,这时系统就会将硬盘上的部分空间模拟成内存——虚拟内存,并将暂时不运行的程序或不使用的数据存放到这部分空间之中,等待需要的时候方便及时调用。
4.内存是带电储存,断电消失,并且容量有限,如果想长期储存的话还需要将数据存放到硬盘中。

三、cpu与寄存器,内核态与用户态及如何切换
1.寄存器是cpu的一部分,因为cpu从内存得到指令或数据的时间比cpu执行指令花费的时间要长,所以将关键变量和临时数据保存到寄存器里面,访问速度和CPU同速或半速,用来避免内存速率比CPU慢几个数量级的瓶颈问题
2.当cpu可以访问内存里的所有数据,并且可以访问外围设备(硬盘, 网卡等硬件)时为内核态,CPU也可以将自己从一个程序切换到另一个程序;受限的访问内存, 且不允许访问外围设备时为用户态,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。
3.所有用户程序都是运行在用户态的,但是有时候程序确实需要做一些内核态的事情,例如从硬盘读取数据, 或者从键盘获取输入等。 而唯一可以做这些事情的就是操作系统, 所以此时用户程序就需要使用系统调用,操作系统请求以程序的名义来执行这些操作,此时就会从用户态切换到内核态。

四、L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
1.寄存器既L1缓存,材质、速度和CPU相同,CPU访问寄存器时无延时
2.L2缓存被称为告诉缓存,CPU比较常用的会放在L2缓存中,访问速度会比L1缓存慢。
3.所有的程序都是在内存中运行的,计算机在运行中,操作系统也会在内存中运行。内存的速度会慢于L1和L2缓存,CPU访问的先后顺序是先访问L1缓存吗,然后访问L2缓存,再访问内存,最后访问硬盘,每次访问的命中率为80%。
4.EEPROM和闪存都是一种储存器,可以擦除和重写,但是重写的速度介于内存和磁盘之间。被应用于便携式电子设备的存储媒介,磁盘,固态硬盘等,都是应用闪存。
5.CMOS也是一类存储介质,它是易失性的,断电既消失,但是因为它的耗电亮很小,所以采用它来存储一些系统的参数配置,一块电池能使用若干年。

五、平均寻道时间,平均延迟时间,虚拟内存与MMU
1.平均寻道时间它是指硬盘在接收到系统指令后,磁头从开始移动到移动至数据所在的磁道所花费时间的平均值。
2.平均延迟时间机械臂到达正确的磁道之后,使得要读取的扇区转到读写头的下方这段时间的平均值,为平均延迟时间。
3.当计算机运行大小大于物理内存的程序时,会在硬盘中分块一块空间,然后将内存中程序不常用的数据放到硬盘的那块空间中,当用到的时候在拿回到内存中,这时内存和虚拟的内存空间会形成映射,成为存储器管理单元(MMU)。这种方式的运行速度会比正常情况下低。

六、磁带
速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。

七、总线与南桥和北桥
1.总线将计算机内部各部件连接,并且实现了计算机各功能部件之间的信息传输。
2.南桥连接慢速设备,硬盘,显示器等设备。
3.北桥连接高速设备,CPU,内存等设备。

八、操作系统的启动流程
1.机器加电,bios启动检查硬件设备。
2. bios读取COMS中存储的参数,选择启动设备。
3.从启动设备中读取第一个扇区的内容。
4.根据分区信息读入bootloader启动装载模块,启动操作系统。
5.操作系统文件会从bios中获取配置参数。会检查计算机设备的驱动程序,如果有设备缺少会提示用户缺少驱动,如果全动加载成功,则操作系统会将他们加入到内核中。

九、应用程序的启动流程
1.输入设备将指令发给控制器。
2.控制器通过驱动器将请求发给操作系统。
3.操作系统会去硬盘上寻找文件位置。
4.操作系统找到文件以后会往内存里读,读完以后程序启动成功。

 原文来自:http://blog.sina.com.cn/s/blog_13d84115b0102y97y.html

原文地址:https://www.cnblogs.com/0704L/p/7151128.html