编程语言的作用及与操作系统和硬件的关系

ぐ巨炮叔叔 提交于 2019-12-26 19:18:13

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、编程语言的作用及与操作系统和硬件的关系

 

    作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。

 

    关系:编程语言会通过编译软件写成程序,程序是不能直接和硬件来进行交互的,而操作系统是用来管理计算机硬件设备的,所以我们可以就可以在操作系统上来运行程序,让操作系统去管理与配置内存、决定系统资源供需的优先次序、控制输入与输出、操作网络与管理文件系统等基本任务。

 

二、应用程序、操作系统、硬件之间的关系

 

    硬件上运行操作系统,操作系统上运行应用程序,应用程序通过Windows API调用操作系统函数从而和计算机硬件交互。

 

三、cpu、内存、磁盘之间的关系

 

   1.CPU即中央处理器,CPU从内存或缓存中取出指令,放入指令寄存器,并对指令进行解码,然后发出各种控制命令,从而完成一条指令的执行。

 

   2.CPU并不能直接调用存储在硬盘上的系统、程序和数据,必须将硬盘的有关内容通过总线存储在内存中,才能被CPU读取运行。因而,内存可以理解为硬盘和CPU的“中转站”。

 

   3.当运行数据大小超出物理内存的时候,这时系统就会将硬盘上的部分空间模拟成内存——虚拟内存,并将暂时不运行的程序或不使用的数据存放到这部分空间之中,等待需要的时候方便及时调用。

 

   4.内存是带电储存,断电消失,并且容量有限,如果想长期储存的话还需要将数据存放到硬盘中。

 

四、cpu与寄存器,内核态与用户态及如何切换

1.寄存器是cpu的一部分,因为cpu从内存得到指令或数据的时间比cpu执行指令花费的时间要长,所以将关键变量和临时数据保存到寄存器里面,访问速度和CPU同速或半速,用来避免内存速率比CPU慢几个数量级的瓶颈问题,寄存器的分类:

 

     a.通用寄存器:用来保存cpu运行中产生的变量和临时结果。

     b.程序计数器:cpu只能同时做一件事情,所以在运行过程中会在多个指令中来回切换执行,程序计数器用来存放这些指令的状态。

     c.堆栈指针:堆栈指针的的作用是在堆栈过程中始终指向栈顶,取出指令,然后cpu去运行。栈就是先进后出的一种数据结构。

     d.程序状态字寄存器:无论是系统软件还是应用软件执行后都得转换成cpu的指令,状态字寄存器用来控制用户态和内核态两种状态。

 

2.当cpu可以访问内存里的所有数据,并且可以访问外围设备(硬盘, 网卡等硬件)时为内核态,CPU也可以将自己从一个程序切换到另一个程序;受限的访问内存, 且不允许访问外围设备时为用户态,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。

 

3.所有用户程序都是运行在用户态的,但是有时候程序确实需要做一些内核态的事情,例如从硬盘读取数据, 或者从键盘获取输入等。 而唯一可以做这些事情的就是操作系统, 所以此时用户程序就需要使用系统调用,操作系统请求以程序的名义来执行这些操作,此时就会从用户态切换到内核态。

 

五、L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOSBIOS电池

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.控制器是计算机中的一个实体设备,实现I/O设备和计算机之间的数据交换,它是CPU与I/O设备之间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,以使处理机从繁杂的设备控制事务中解脱出来。

 

2.设备驱动是操作系统和输入输出设备间的粘合剂。驱动负责将操作系统的请求传输,转化为特定物理设备控制器能够理解的命令。

九、总线与南桥和北桥

1.总线将计算机内部各部件连接,并且实现了计算机各功能部件之间的信息传输。

 

2.南桥连接慢速设备,硬盘,显示器等设备。

 

3.北桥连接高速设备,CPU,内存等设备。

 

十、操作系统的启动流程

1.机器加电,bios启动检查硬件设备。

 

2. bios读取COMS中存储的参数,选择启动设备。

 

3.从启动设备中读取第一个扇区的内容。

 

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

 

5.操作系统文件会从bios中获取配置参数。会检查计算机设备的驱动程序,如果有设备缺少会提示用户缺少驱动,如果全动加载成功,则操作系统会将他们加入到内核中。

 

十一、应用程序的启动流程

1.输入设备将指令发给控制器。

 

2.控制器通过驱动器将请求发给操作系统。

 

3.操作系统会去硬盘上寻找文件位置。

 

4.操作系统找到文件以后会往内存里读,读完以后程序启动成功。

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