计算机核心基础知识

计算机核心基础知识

一 关于编程

### 1 什么是编程语言?
	说到编程,那就得先了解什么是编程语言,编程语言就是人与计算机进行沟通的语言。
 
### 2 什么是编程?
    编程就是把人类的思维逻辑用计算机能听懂的语言翻译下来,并保存在文件之中,这个过程就是编程。

    简单来说,就是两个步骤:
    1.先将逻辑、步骤理顺;
    2.再将他们翻译为python编程语言。
 
### 3 什么是程序?
	程序就是存放代码的文件,也就是俗称的软件。

### 4 为何要编程?
	为了奴役计算机,让计算机高效地代替人去工作。

二 计算机组成原理

1 关于计算机

	计算机俗称电脑,即通电的大脑。我们使用计算机,是为了让计算机代替人类去工作。

2 计算机五大组成部分

1.) 控制器
	控制器是计算机的指挥系统,用来控制计算机的其他组件运行。

2.) 运算器
	实现算数运算和逻辑运算的部件。

PS:控制器+运算器=CPU,cpu相当于人的大脑.

3.) 存储器
	是计算机用来存放所有数据和程序的记忆部件,用来存取数据。

	存储器又分为内存与外存,内存相当于人的短期记忆,断电数据丢失。外存(如磁盘),相当于记事的本子,断电数据不会丢失,是用来永久保存数据的。

4.) 输出设备input
	输入设备是计算机接收外部输入数据的工具,如键盘、鼠标,相当于人的眼睛或耳朵。

5.) 输出设备output
	输出设备是计算机向外输出数据的工具,如显示器、打印机。

PS:存储器如内存、磁盘等既是输入设备又是输出设备,统称为IO设备。

3 计算机三大核心硬件

1).CPU
	 负责数学运算与逻辑运算,执行指令————对应人脑的执行指令的功能。

2).内存
	又称主存储器,负责临时记忆数据————对应人脑的记忆功能。
    优点:存取IO速度都快。
    缺点:断电数据丢失,所以只能用于临时保存数据。

3).硬盘
	负责永久记忆数据————对应纸质笔记本的功能。
    优点:断电数据仍然存在,所以用于永久保存数据。
    缺点:存取IO速度都较慢。

4 运行程序与计算机硬件的关系

1).程序最先存放于硬盘中;

2).程序运行时代码从硬盘加载到内存中;

3).CPU从内存中提取指令运行程序;

4).程序所产生的数据首先存储于内存中。

5 IO问题与程序的效率

#### 1.读
	把指令依赖的数据事先加载到内存,能从内存取数据就不要从硬盘取;

#### 2.写
	针对要永久存放到硬盘中的数据,应该在内存中攒一定数量的数据之后,然后一次性写入硬盘。

6 CPU详解

CPU是计算机的大脑,它的运行步骤是从内存中取指令->解码->执行。

#### 1.指令集
	CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。

#### 2.x86架构与64位
	x86即由Intel最早发明出来的CPU的代号,后来又在此颗CPU的基础上又进行了开发,因此这种架构的CPU就被统称为x86架构了。

	64位与32位,即CPU一次性从内存中取出二进制指令的位数,64bit指的是一次性能从内存中取出64位二进制指令。

	CPU具有向下兼容性,64位CPU可以兼容32位软件的运行。

#### 3.内核态与用户态
	内核态:可以控制计算机硬件,即当cpu在内核态运行时,cpu可以执行指令集中所有的指令。
	用户态:可以运行指令,但不包括控制cpu硬件。

#### 4 程序与进程
	程序就是软件,存放代码的文件。

	进程指的是程序的一次执行,是资源单位。

	# PS:线程是cpu的执行单位。
	多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程) 。

7 存储器补充:ROM和CMOS

	存储器除了常规的内存RAM和硬盘之外,还有一些特殊的存储硬件。

#### 1.ROM(Read Only Memory) 
	相当于内存,用于存放BIOS,ROM是非易失性随机访问存储,断电后内容不丢失。

#### 2.CMOS
	相当于“硬盘”:断电数据丢失,但是耗电量极低。它是易失性的,用来保持当前时间和日期和保存配置的参数。

#### 3.最基础的系统,用来运行BIOS程序。
    CPU
    ROM
    CMOS

8 硬盘详解

	硬盘一般分为基于磁信号工作的磁盘和基于电信号工作的固态硬盘,目前主流的硬盘仍然是磁盘。

磁盘01

	磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 ) 的速度旋转。

8.1 磁道:

	当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。

8.2 柱面:

	把一个戈丁手臂位置上的磁道合起来,组成一个柱面。

8.3 扇区:

	是指磁盘上划分的区域。磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,硬盘的读写以扇区为基本单位,扇区的典型值是512字节。

	数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。

8.4 平均寻道时间:

	机械手臂从一个柱面随机移动到相邻的柱面的时间称为寻道时间。

8.5 平均延迟时间:

	机械手臂达到正确的磁道之后,还必须等待旋转到数据所在的扇区下,这段时间称为延迟时间。
以7200转/60s的磁盘为例:
    120转/s
    转一圈花费:8ms
    平均寻道时间:4ms
    平均延迟时间:5ms

# 磁盘容量单位 TB,PB, Eb, Zb, YB
1B= 8bit(2进制位称为bit位) 
1KB=2(10)B=1024B; 括号中的数字为2的指数(即多少次方) 
1MB=2(10)KB=1024KB=2(20)B; 
1GB=2(10)MB=1024MB=2(30)B。 
1TB=2(10) GB=1024GB=2(40)B 
1PB=2(10) TB=1024TB=2(50)B 
1EB=2(10) PB=1024PB=2(60)B 
1ZB=2(10) EB=1024EB=2(70)B 
1YB=2(10) ZB=1024ZB=2(80)B 

1Byte相当於一个英文字母
Kilobyte(KB)=1024B相当於一则短篇故事的内容。 
Megabyte(MB)=l024KB相当於一则短篇小说的文字内容。 
Gigabyte(GB)=1024MB相当於贝多芬第五乐章交响曲的乐谱内容。 
Terabyte(TB)=1024GB相当於一家大型医院中所有的X光图片资讯量。 
Petabyte(PB)=l024TB相当於50%的全美学术研究图书馆藏书资讯内容。 
Exabyte (EB)=1024PB;5EB相当於至今全世界人类所讲过的话语。 
Zettabyte(ZB)=1024EB如同全世界海滩上的沙子数量总和。 
Yottabyte(YB)=1024ZB相当於7000位人类体内的微细胞总和。

8.6 虚拟内存:

	虚拟内存机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方称为虚拟内存,在Linux中称为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,称为存储器管理单元(Memory Management Unit MMU)。

9 I/O设备

cpu和存储器并不是操作系用唯一需要管理的资源,I/O设备也是非常重要的一环。

# **I/O设备一般包括两个部分:设备控制器和设备本身。**

# 控制器:
	是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器) ,控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

# 控制器的功能:
	通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口。

# 设备本身:
	有相对简单且标准的接口,这样大家对可以为其编写驱动程序了。想要调用设备,必须跟该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统,必须把设备驱动程序安装到操作系统中。

10 总线

# 多总线模式

北桥即PCI桥:连接高速设备(CPU,内存) 。

南桥即ISA桥:连接慢速设备。

主板详图

11 启动计算机

	在计算机的主板上,有一个基本的输入输出程序(Basic  Input Output system) 。

	BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存ROM中。

#### 1.启动流程:
    (1) 计算机加电;

    (2) BIOS开始运行,检测硬件:cpu、内存、硬盘等;

    (3) BIOS读取CMOS存储器中的参数,选择启动设备;

    (4) 从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位) ;

    (5) 根据分区信息读入bootloader启动加载模块,启动操作系统;

    (6) 然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表) ,穿件需要的进程,并在每个终端上启动登录程序或GUI。

三 操作系统

1 什么是操作系统

操作系统是一个协调、管理、控制计算硬件资源与应用软件资源的一个控制程序。

2 什么是平台

# 平台=计算机硬件+操作系统

# 常见的平台有:windows系统+某硬件,Android+某硬件,Linux+某硬件。

# 跨平台性:
	由于平台的多种多样,我们开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,就可以极大的提高开发效率。

3 计算机体系的三层结构

1.) 应用程序/用户

2.) 操作系统(Windows、mac、Linux) ————————文件

3.) 计算机硬件(cpu、内存、硬盘) ——————————硬盘

四 编程语言分类

1 机器语言

1.) 定义:机器语言指的是能被机器直接识别的编程语言,也就是二进制,是最低级的语言,直接与机器交互。

2.) 优点:程序运行速度最快,效率最高。

3.) 缺点:
    (1) 开发效率低,编程指令记忆困难;

    (2) 编程过于复杂,实现简单功能都需要很多步骤。

2 汇编语言

1.) 定义:使用英文标签取代二进制指令的编程语言。

2.) 优点:
    (1) 程序运行较快,仅次于机器语言;
    (2) 解决了及其语言二进制指令难以记忆的问题。

3.) 缺点:编程较机器语言简便,但仍较为复杂。

3 高级语言

1.) 定义:用人类可以理解的表达方式编写程序,需要经过翻译才能被计算机理解、运行的编程语言。

2.) 分类:按照翻译方式的不同,可分为
    编译型(C、GO) :,第一次运行时翻译,以后就不需要翻译) ;

    解释型(python、shell) :,一边运行一边翻译) 两种。
 
运行效率:机器语言>汇编语言>高级语言(编译型>解释型) 

开发效率:机器语言<汇编语言<高级语言
posted @ 2020-03-04 02:44  越关山  阅读(462)  评论(0)    收藏  举报