一、编程语言的作用及与操作系统和硬件的关系
1.语言作为人与人之间交流的介质,编程语言是计算机对人发出的操作指令实现某个功能的一个介质,是计算机能够识别,执行的一套 ,实现人所要的结果。
2.硬件只能够识别最简单的是/否,开/关,等,既0和1来代表,操作系统对这些硬件进行读取,识别,编程语言在操作系统上实现更高级,复杂的功能。
二、应用程序-操作系统-硬件
1.硬件承载着操作系统,应用程序在操作系统上实现各种功能,
2.操作系统实现对硬件的控制和响应,
三、CPU-内存-磁盘
1. CPU作为计算机的中央处理器,接受来自计算机所有的指令,对指令进行调取,解码,执行,
2.内存是对其他还没有执行的指令进行暂时的存储,等待CPU的处理,是受电的影响,断电则数据消失,
3.磁盘是可以长时间保存数据,不受电的影响,
四、cpu与寄存器,内核态与用户态及如何切换
1.CPU作为计算机处理速度最快,与内存的处理速度存在速度差,所以在CPU和内存之间有一个寄存器,用于存储CPU待处理的指令和临时数据。存储容量很小,小与4k.
当CPU在同时处理多个进程时(程序),中止其中一个程序处理另外一个程序,中止的程序指令暂时保存在寄存器内,当处理完当前程序, 再处理之前中止的程序,从寄存器重新载入。
2.内核态和用户态就是CPU划分出的不同的权限等级,因为要限制不同程序之间访问的能力,防止窃取别的程序的数据,获取外围设备的数据发送到网络造成的损失。
内核态:可以控制硬件,内存,键盘,鼠标,CPU等,CPU的指令可以访问所有硬件的功能。
用户态:只能执行CPU所有指令中的一小部分,不包含硬件的指令,
3.内核态与用户态的切换:
用户态从磁盘读取文件,将数据值和指令存放在寄存器内,CPU切换到内核态,启用操作系统, 不被用户态程序访问,系统调用完,操作系统重置CPU为用户态返回系统
调用结果。
五、L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
1.L1缓存:用cpu相同的材质制成,CPU访问没有时延,在CPU内部,
2.L2缓存:与L1缓存和CPU存在1ns--2ns的延迟,存放经常使用的文件,避免重复从硬盘读取,毕竟硬盘读取的速度慢,
3.内存:计算机存储数据的主要硬件,容易丢失,断电数据消失,
4.eeprom和闪存:为弥补内存断电数据消失的缺点,在断电后内部数据不消失,在出厂时,已经编程完毕,不可更改,启动计算机的加载模块存放在ROM中,
闪存可以重复 擦除和重写,闪存的速度在磁盘和RAM之间,
5.CMOS/BIOS:CMOS存储计算机当前的时间和日期,是出厂自带电池供应, 还可以保存配置的一些参数,比如开机密码,那个是启动磁盘等,固化在计算机主板上,
BIOS(基本的输入输出系统)是一小段程序,存放在CMOS里,为计算机提供最底层的、最直接的硬件设置和控制,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。
六、磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU
1.磁盘结构:计算机外部存储的设备,是机械设备,由多个金属盘组成,中间有金属柱串住,每个盘面有上下两个磁头进行读写,信息存在每个盘面的磁道上,
2.平均寻道时间:磁头一个柱面随机移动到相邻的柱面的时间成为寻道时间,只是找到了磁道,但不知道具体的数据存放在哪个圆圈的位置上,
3.平均延迟时间:磁头到达数据所在的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间,
4.虚拟内存:计算机需要处理多个程序, 正在使用的程序存放在内存内,其他待处理的程序存放在磁盘里,这个地方成为虚拟内存,在Linux称为swap,这种机制是快速的映射内存地址,由CPU的一个存储器管理单元负责,就是MMU(Memory Management Unit MMU),
七、磁带
价格相同,比磁盘的容量大,容易移动,在地震火灾中有 优势,可做备份,读取速度慢宇磁盘,
八、设备驱动与控制器
作为计算机的一部分,输入设备,输出,各种接口等,都需要控制器控制这些设备,控制器就是在主板上在插入磁盘,内存,等的接口 ,接受来自操作系统的指令,控制这些硬件设备,
设备驱动:调用这些设备,就需要为这些接口编写程序,控制器 提供设备驱动给操作系统,并安装在操作系统上。
九、总线与南桥和北桥
总线:计算机的CPU,内存,磁盘,I/O等设备都需要一个线路连接起来,并通过这个线路与其他设备进行通信。
南桥:连接键盘,鼠标,显示器,磁盘,打印机,慢速设备,
北桥:连接CPU,一级缓存,内存,高速设备,
十、操作系统启动流程
1.计算机通电,
2.BIOS启动,检测CPU,内存,磁盘,网卡等,
3.BIOS在CMOS里读取参数,寻找启动设备,
4.系统BIOS将磁盘第一个物理扇区加载到内存,读取并执行位于硬盘第一个物理扇区的MBR,
5.根据分区信息读入bootloader启动装载模块,启动操作系统,
6.操作系统访问BIOS, 获得配置信息,检查是否有全部的设备驱动,然后操作系统将他们全部调入到内核,
十一、应用程序的启动流程
1.操作系统启动后,双击应用程序,CPU开始读取在磁盘里的应用程序文件,相关数据暂时存储在内存里,等待CPU处理,CPU调用内容的数据,发送指令到相关设备,直到全部处理完毕,