计算机组成原理吧...
计算机组成五大部分:控制器 运算器 存储器IO设备 输入设备I 输出设备O
1.一个程序运行和三大核心硬件关系
三大核心硬件:
cpu:人的大脑负责运算和控制(运算器:负责进行运算,包括数学运算和逻辑运算,
控制器:计算机的指挥系统负责控制组件工作)
存储设备:内存:速度快,基于电存储原理,断电时数据丢失,类似于人的大脑存储。
外存(硬盘):速度相对较慢,基于磁存储,数据永久保存,相当于辅助记忆设施。
程序与三大硬件关系: 程序存在硬盘,运行时内存从硬盘中读取,CPU根据指令执行程序。
2.操作系统启动流程:计算机体系三层结构:应用软件 操作系统 底层硬件
平台与跨平台:计算机硬件+操作系统=平台 同一个应用软件或程序在不同的平台下运行叫做跨平台
操作系统是个毛线?:是一个协调管理控制计算机硬件资源与应用软件资源的一个控制程序。
作用:控制硬件运行,把使用硬件的方法封装成简单的操作供上层应用软件上使用。
ps:(应用软件:应用程序相关逻辑
系统软件:控制底层硬件)
什么是编程语言? 本质上就是一种语言,是一种使计算机能够按照人的逻辑来运行的一种语言
指令集: 精简指令集:指令组成简单,不易出错,完成动作需要量大
复杂指令集:指令组成复杂,易出错,完成动作需要量小
程序----》cpu指令----》硬件
x86-64:x86是CPU型号,64代表CPU一次从内存中取出64位
CPU有向下兼容性,64位机器可以执行32位命令,从前端补位0
内核态:CPU中控制其他硬件指令集与运算相关指令集同时开启(操作系统)
用户态:CPU中只有运算相关指令开启(应用软件)
因为应用软件需要在硬盘中读取数据,所以在计算机中两种状态是不停切换的
内存 RAM:存储主力
寄存器:存储关键性数据,具有与CPU相同的存取速度,但容量小
高速缓存器: 存放经常使用的指令
ROM:只读内存,内部存放BIOS(最原始的操作系统,产商写死的核心)
CMOS:具有易失性,存取慢等缺点,但是耗电量低 由主板电池供电 负责存放BIOS的内容和时钟芯片等
机械硬盘:
磁道:一圈数据也是一串二进制
扇区:512B 站在硬盘的角度是一次读写的最小单位
操作系统在读取硬盘时一般是一个block块=》8扇区=》4KB
IO延迟:平均寻道时间:机械手臂转到所需数据磁道所花费的时间,一般为5ms
平均延时时间:找寻到数据所花费的时间,与转盘转速有关
IO延迟= 平均寻道时间+平均延时时间
优化程序的最后总是尽量使程序在内存中读数据,减少与硬盘的交互
操作系统的启动流程
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
应用程序的启动流程
1、双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统
说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)
2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动