计算机基础知识详解
计算机五大组成、三大核心、以及操作系统的启动流程和应用程序的启动流程
计算机的五大组成部分
1,控制器:是计算机的指挥系统,负责控制计算机所有其他组件如何工作
2,运算器:运算包括数学运算与逻辑运算
3,存储器/IO设备:计算机的记忆功能,负责数据的存取
分类:
内存(基于电工作):存取数据较快,断电数据丢失,只能临时存取数据
外存(硬盘,基于磁工作):存取速度较慢,断电数据也不丢失,可以永久保存数据
4,输入设备input:如键盘,鼠标
5,输出设备output:如打印机,显示器
ps:控制器+运算器=cpu
计算机三大核心硬件
1,cpu
2,内存
3,硬盘
操作系统的概念
操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一个控制程序,它位于计算机硬件与应用软件之间,起承上启下的作用
意义:
1,控制计算机硬件的基本运行
2,把使用硬件的复杂操作封装成简单的功能,给上层的应用程序使用
程序的区分
计算机硬件是死的,计算机硬件的运行都受软件控制,所以说软件相当于计算机的灵魂。
具体来说软件分为两种:
1,应用软件:应用程序相关逻辑
2,系统软件:控制底层硬件
计算机系统三层结构
1,应用程序
2,操作系统
3,计算机硬件
ps:计算机硬件+操作系统=》平台
两种主要的cpu种类
1,精简指令集:每个指令的运行时间都很短,完成的动作也很单纯、指令的执行效能较佳
2,复杂指令集:若要做复杂的事情,就要由多个指令来完成,复杂指令集中,每个小指令可以执行一些较低阶的硬盘操作,指令数目多而且复杂,每条指令的长度并不相同,因此指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。
x86架构
x86是针对cpu的型号或者说架构的一种统称,最早发明出来的cpu代号8086,后来在8086的基础上又开发出了80285、80386。。。。因此这种架构被统称为x86架构
64位
cpu的位数指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的是一次性能从内存中取出64位二进制指令。
内核态与用户态
代表cpu的两种工作状态
1,内核态:运行的程序是操作系统,可以操作计算机硬件
2,用户态:运行的程序是应用程序,不能操作计算机硬件
ps:内核态与用户态的转换:应用程序的运行必然涉及到计算机硬件的操作,那么就必须有用户态切换到内核态才能实现,所以计算机工作时频繁发生内核态与用户态的转换
多线程与多核芯片
2核4线程:2核代表有两个cpu,4线程指的是每个cpu都有两个线程 =》假4核
4核8线程:4核代表有4个cpu,8线程指的是每个cpu都有两个线程 =》假8核
存储器
1,RAM:内存
2,ROM:只能读内存
存放计算机厂商写死计算机上的一段核心程序 = 》BIOS
3,CMOS:存储速度慢,断电数据会丢失,但是耗电极低
4,硬盘:
机械硬盘:
磁盘:
磁道:一圈数据,对应着一串二进制(1bit代表一个二进制)8bit=1Bytes字节、1024Bytes=1kb、1024kb=1MB、1024MB=1GB、1024GB=1TB、1024TB=1PB
扇区:一个扇区通常为521Bytes,一次性读写数据的最小单位为扇区,操作系统一次读写的单位是一个block块 =》8扇区大小=4096Bytes
5, 固态硬盘:
IO延迟:固态硬盘转速一般7200转/min、120转/s,转一圈需要花费8ms
平均寻道时间:机械手臂转到数据所在磁道需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的时间是5ms
平均延迟时间:转半圈需要花费4ms,受限于硬盘的转速
IO延迟 = 平均寻道时间+平均延迟时间
所以优化程序运行效率的核心法则:能从内存中存取数据,就不要从硬盘取
IO设备 = 设备的控制+设备本身
操作系统的启动流程
1.计算机加电
2.BIOS开始运行,检测硬件: cpu、 内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
应用程序的启动流程
1、双击exe快捷方式–》exe文件的绝对路径,就是在告诉操作系统
说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对 路径)
2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动
版权声明:本文为zylwy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。