计算机基础
人---------编程语言--------》计算机
去包子店
付款
把包子送回来
-
计算机硬件(*****)
- (运算器,控制器)=》CPU
负责运行人类程序的硬件是CPU
- 存储器
内存:存取速度都快,基于电工作的,断电数据就丢失,不能永久保存数据=========》人脑的记忆功能
外存(磁盘):存取速度都慢,基于磁工作的,断电数据不丢失,可以永久保存数据===》人的笔记本 - 输入设备
键盘 - 输出设备
显示器
- (运算器,控制器)=》CPU
-
看图总结:
- CPU存取的数据和指令都来自于内存
- 内存称之为主存
主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。
-
三大核心硬件(CPU、内存、硬盘)(*****)
程序的运行流程
- 程序最先是存放于硬盘中的
- 程序的运行一定是先把程序的代码由硬盘加载到内存
- 然后CPU从内存中取出指令运行
-
什么是操作系统?为啥要有操作系统?(*****)
- 操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的控制程序
它位于计算机硬件与应用软件之间,起承上启下的作用 - 操作的系统意义:
控制计算机硬件的基本运行
将硬件操作的复杂细节封装成简单的接口来提供给应用程序或用户使用
- 操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的控制程序
-
计算机体系的三层结构(*****)
- 应用程序、用户
- 操作系统
- 计算机硬件
-
平台与跨平台(*****)
- 平台具体指的是应用程序的运行平台,或者说用户的使用平台
- 平台=操作系统+计算机硬件
- 跨平台是指应用程序能够在不同的平台上运行
-
CPU详解
- CPU的分类与指令集
- x86-64(*****)
CPU具有向下兼容性
64的CPU既能运行32位的程序也能运行64位的程序 - 内核态与用户态(*****)
? 代表CPU的两种工作状态
? 1、内核态:运行的程序是操作系统,可以操作计算机硬件
? 2、用户态:运行的程序是应用程序,不能操作计算机硬件? 内核态与用户态的转换
? 应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到
? 内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换
-
存储器
- RAM:内存
- ROM:“只读内存”
? 存放计算机厂商写死计算机上的一段核心程序=》BIOS
- CMOS:存取速度慢,断电数据丢失,耗电量极低
- 硬盘:
? 固态硬盘
? 机械硬盘:磁盘
? 磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位)
? 8bit比特位=1Bytes字节
? 1024Bytes=1KB
? 1024KB=1MB
? 1024MB=1GB
? 1024GB=1TB
? 1024TB=1PB? 扇区:
? 一个扇区通过为512Bytes
? 站在硬盘的解读,一次性读写数据的最小单为为扇区
?
? 操作系统一次性读写的单位是一个block块=》8扇区的大小=4096Bytes
? 柱面
- IO延迟(*****)
? 7200转/min
? 120转/s
? 1/120转/s=转一圈需要花费8ms? 平均寻道时间:机械手臂转到数据所在磁道需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的是5ms
? 平均延迟时间:转半圈需要花费4ms,受限于硬盘的转速
? IO延迟=平均寻道时间+平均延迟时间
? 优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取
- 虚拟内存
- IO设备=设备的控制+设备本身
-
总线
-
操作系统的启动流程(*****)
BIOS介绍
? BIOS:Basic Input Output System
? BIOS被写入ROM设备裸机:
? CPU
? ROM:充当内存,存放BIOS系统
? CMOS:充当硬盘操作系统的启动流程(*****)
- 计算机加电
- BIOS开始运行,检测硬件:CPU、内存、硬盘等
- BIOS读取CMOS存储器中的参数,选择启动设备
- 从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
- 根据分区信息读入bootloader启动装载模块,启动操作系统
- 然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
应用程序的启动流程(*****)
- 双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)
- 操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
- 然后控制CPU从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动
原文地址:https://www.cnblogs.com/guanxiying/p/12397448.html