计算机基础

发布时间 2024-01-09 16:31:12作者: Sn_Yz1

目录




计算机基础

# 什么是计算机?
> 计算机俗称“电脑”,包含人对计算机的终极期望,能够真的像人脑一样工作。
> 拥有处理数据、执行指令的能力,是现代科技和信息社会的重要工具

# 为什么要有计算机?
> 为了解决人类在处理大量数据和复杂计算时的困难,提高工作效率,减轻人力负担,实现自动化

计算机五大组成部分

控制器
> 计算机的指挥系统,负责控制计算机所有其他组件如何工作的
运算器
> 实现计算机的运算功能,运算包括 数学运算 与 逻辑运算
存储器/IO设备
> 计算机的记忆功能,负责数据的存取

**分类**
# 内存(基于电工作):存取数据快,一旦断电数据丢失,只能临时存取数据

# 外存(基于磁工作):存取速度慢,断电数据不丢失,可以永久保存数据
输入设备(input)
> 输入设备是计算机接收外部数据的工具, 比如:键盘、鼠标
输出设备(output)
> 输出设备是计算机对外输出数据的工具, 比如:显示器、打印机

计算机三大核心硬件(重点)

中央处理器(CPU)
'CPU 由 控制器 和 运算器 组成'

'用于计算数据、决定执行程序指令的顺序和过程'

# 指令集的分类:
	'精简指令集'
	'复杂指令集'

# X86架构、64位
	X86——CPU的型号
	64位 一次性从内存中取出二进制位数
	'CPU具有向下兼容性'

# 寄存器
	作为内存与CPU之间的缓冲,提升CPU取数据的速度,与CPU同种材质

# 内核态与用户态
	CPU最核心的是其中的'指令集'
	运算相关的指令集
	控制其他硬件的指令集

# CPU的两种工作状态
    内核态: 运行的程序是'操作系统',#可以操作计算机硬件,暴露给你所有的指令集
    用户态: 运行的程序是'应用程序',#不能操作计算机硬件
    
     
    `应用程序的运行必然涉及到计算机硬件的操作,
     那就必须由用户态切换到内核态才能实现,
     所以计算机工作时在频繁的发生内核态与用户态的转换。`
    
# 多线程和多核芯片
# 摩尔定律
'2核4线程':
    2核代表有两个CPU,4线程指的是每个CPU都有两个线程=>假4核
'4核8线程':
    4核代表有两个CPU,8线程指的是每个CPU都有两个线程=>假8核
内存
-读取速度快,基于电工作。
-用于存储正在运行的程序和临时数据。
-断电后数据立即丢失,是一种易失性存储器。
-作为CPU直接访问的存储介质,提供了高速的数据读写能力。
硬盘
-读取速度相对较慢
-用于永久保存数据,包括操作系统、应用程序和用户数据等
-断电后数据不会丢失,是一种非易失性存储器
-作为长期存储的主要设备,容量通常较大

操作系统

作用和主要功能
# 作用
  -操作系统的出现是为了简化硬件操作,提供统一的接口供应用程序使用。
  -在开发应用程序时,不同开发者无需重复编写控制硬件的底层代码,而是调用操作系统提供的接口。
  -这样,开发者能够专注于应用程序的业务逻辑,提高开发效率。

# 主要功能
  -硬件管理: 控制和管理计算机的硬件,包括CPU、内存、硬盘、输入输出设备等。
  -文件系统: 提供文件和目录的管理,让应用程序能够方便地读取和存储数据。
  -进程管理: 管理运行在计算机上的各个进程,确保它们有序、安全地运行。
  -内存管理: 分配和释放内存,以及虚拟内存的管理。
  -设备驱动程序: 提供硬件设备的驱动程序,使应用程序能够通过操作系统与硬件交互。
  -用户界面: 提供用户与计算机交互的界面,如图形用户界面(GUI)或命令行界面。
常见的操作系统
1. 客户端(PC)
  · Windows(微软)
  · macOS(苹果)
  · Linux(服务器)
2. 移动端(APP)
  · 安卓
  · iOS
  · 鸿蒙
计算机体系的三层结构
# 应用程序、用户
  在计算机系统的顶层是应用层,这是用户直接交互的层面。
  我们的主要关注通常是在这个层次上。
  我们编写和设计各种应用程序,包括但不限于网页应用、桌面应用、移动应用等。
  编写代码的目标是实现用户需求,而这些应用程序通过操作系统提供的接口来与底层硬件进行通信。

# 操作系统
  操作系统层是连接应用层和硬件层的桥梁。
  它提供了一系列的系统调用和服务,使应用程序能够在硬件上运行。
  这一层包括操作系统的内核,负责管理系统资源、进程调度、文件系统等。
  不同操作系统有不同的特性,例如Linux、Windows等,以及它们在开发中的影响。

# 计算机硬件
  硬件层是计算机系统的最底层,包括处理器、内存、存储设备、输入输出设备等。
  在这个层次上,我们关注计算机体系结构、指令集架构、存储器层次结构等概念。
  理解硬件层对于优化应用程序性能和解决一些底层问题至关重要。

补充

# RAM、ROM
-RAM:"内存"
  CMOS:存取速度慢,断电数据丢失,耗电量极低
-ROM:"只读内存"
  存放计算机厂商写死在计算机上的一段核心程序'BIOS'
 
# 磁盘
  机械硬盘:磁盘
    磁道:一圈数据,对应着一串二进制(1bit代表)
	8bit比特位 = 1Bytes字节
	1024Bytes = 1KB
	1024KB = 1MB
	1024MB = 1GB

    扇区:一个扇区通过为512Bytes,站在硬盘的解读,一次性读写数据的最小单位为扇区;操作系统一次性读写的单位是一个block快=> 8个扇区的大小 = 4096Bytes

    柱面:每层叠起来,按扇区分

# IO延迟
  '平均寻道时间':
      机械手臂转到数据所在刺刀需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的是5ms
  '平均延迟时间':
      7200转/min,120转/s,转一圈需要8ms,转半圈需要花费4ms,受限于硬盘的转速

  """IO延迟=平均寻道时间+平均延迟时间"""

  优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘中取

  'IO设备=设备的控制+设备本身'

# 总线
  PCI桥(北桥):连接高速设备
  ISA桥(南桥):连接慢速设备

# 操作系统的启动流程
  -BIOS:'Basic Input Output System'
  -BIOS被写入ROM设备

  1.计算机通电
  2.BIOS开始运行,检测硬件: CPU,内存,硬盘等
  3.BIOS读取CMOS存储器中的参数,选择启动设备
  4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
  5.根据分区信息读入bootloader启动装在模块,启动操作系统
  6.然后操作系统询问BIOS,以获得配置信息,对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序,一旦有了全部的设备驱动程序,操作系统就将他们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登陆程序或GUI

# 应用程序的启动流程
  1.双击exe快捷方式(exe文件的绝对路径,就是在告诉操作系统执行一个应用程序)
  2.操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
  3.然后控制CPU从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动