上节课回顾:
一.软件的开发流程:
1.需求分析阶段:
PM产品经理调研市场,分析需求,画出原型草图,召集相关技术人员开需求分析会,明确需求。
2.项目开发阶段
2.1项目设计
大家分头行动,UE与PM经常沟通,出交互原型图,UI根据原型图画出设计图,FE拿到设计图,理解需求设计前端,RD后端技术设计,QA设计测试用例,运维人员要设计好架构设计。
2.2项目开发
前后端确定开发项目整体结构,前端、程序、数据库之间的对接方式,定制开发规范、代码规范、源码管理、版本管理,然后分头开发。
2.3项目测试 开发人员进行code review,过一遍代码,审查一下,开发人员自测,改bug,QA专业测试,开发人员改bug
2.4项目上线 运维人员编写上线方案,测试
2.5环境 测试、staging、线上1:1
2、服务器的分类 尺寸:1u=4.45cm 外形:机架 刀片:集群
塔式
小型机:高端定制
ps:云主机(虚拟机) 阿里云、腾讯云、青云、ucloud
今日内容
一 计算机的硬件组成
计算机(电脑)====》模仿人
大前提:计算机的所有组成都是模仿人的某一器官或者功能去设计的
五大组成部分:
控制器:是计算机的指挥系统,负责控制所有其他硬件的运行————-》大脑
(控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。)
运算器:负责数学运算与逻辑运算—————————————–》大脑
控制器 运算器=》cpu (中央处理器)
其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算。可以说计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。
既然CPU的重点在于进行运算和判断,那么要被运算与判断的数据是从哪里来的?CPU读取的数据都是从主存储器(内存)来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。
存储器:存取数据 内存:比如内存条—————————————-》大脑的记忆功能 基于电存取数据,断电数据全部丢失 用于临时保存数据,存取速度都快
外存:比如磁盘——————————————》本子 基于磁存取数据,断电数据仍然存在 用于永久保存数据,存取速度都慢
输入设备:键盘、鼠标
输出设备:显示器、打印机
总结1: 人——-程序———》计算机硬件 人——-程序———》cpu——》计算机其他硬件
总结2:
程序的运行与计算机三大核心硬件:cpu、内存、硬件的关系: 程序首先是存放于硬盘中的 程序的运行需要先经历加载的过程——》程序的代码/数据从硬盘读入内存 然后cpu再从内存中读取指令来运行
总结3:
CPU、内存(主存储器)以及其他I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信
案列:
cpu是人的大脑,负责控制全身和运算
内存是人的记忆,负责临时存储
硬盘是人的笔记本,负责永久存储
输入设备是耳朵或眼睛或嘴巴,负责接收外部的信息存入内存
输出设备是你的脸部(表情)或者屁股,负责经过处理后输出的结果
以上所有的设备都通过总线连接,总线相当于人的神经
上课开始,老师讲课,学生听课,老师是程序员,学生是计算机,学生的器官都是计算机各部分组成
1.你通过耳朵接收老师讲的知识->输入
2.通过自己的神经,将接收的数据存入自己的内存/短期记忆(总线、内存)
3.光听不行,你还需要反应/处理老师讲的知识,于是你的大脑/cpu从短期记忆里取出知识/指令,分析知识/指令,然后学习知识/执行指令 (cpu取指、分析、执行)
4.你通过作业或者说话输出你学到的结果
5.你想要永久将知识保存下来,只能拿出一个笔记本,把刚刚学会的知识都写到本子上,这个本子就是硬盘(磁盘)
ps: 安装软件都装到硬盘里,软件的运行都是把数据加载到内存中了 所以说计算机硬盘的大小决定了能够安装的软件数目 而计算机内存的大小决定了计算机能够同时运行的软件数目
二 cpu详解
取指—-》解码—-》运行
寄存器=》与cpu一样的材质制成,速度非常快,无延迟
CPU分为精简指令集,复杂指令集
cpu 32位(二进制)-》只能运行32位的软件 cpu 64位-》既能运行32位的软件又能运行64位的软件
代码语言:javascript复制64位
cpu的位数指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的是一次性能从内存中取出64位二进制指令。
在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,到现在,个人计算机CPU通常都是x86_64的架构。
cpu具有向下兼容性,指的是64位的cpu既可以运行64位的软件,也可以运行32位的软件,而32位的cpu只能运行32位的软件。这其实很好理解,如果把cpu的位数当成是车道的宽,而内存中软件的指令当做是待通行的车辆,宽64的车道每次肯定既可以通行64辆车,也可以通信32辆车,而宽32的车道每次却只能通行32辆车
cpu具有向下兼容性
x86(CPU型号)=》复杂指令集
代码语言:javascript复制x86是针对cpu的型号或者说架构的一种统称,详细地讲,最早的那颗Intel发明出来的CPU代号称为8086,后来在8086的基础上又开发出了80285、80386....,因此这种架构的CPU就被统称为x86架构了。
由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机上面,因此,个人计算机常被称为x86架构的计算机!
程序员开发出的软件最终都要翻译成cpu的指令集才能运行,因此软件的版本必须与cpu的架构契合,举个例子,我们在MySQL官网下载软件MySQL时名字为:
Windows(x86,32-bit),ZIP Archive
(mysql-5.7.20-win32.zip)
我们发现名字中有x86,这其实就是告诉我们:该软件应该运行在x86架构的计算机上。
x86-64(*****)
摩尔定律:CPU有多条线程
cpu:2核4线程(****)
2核-》2个cpu核心
每个核内部有两条流水线=》2核有4条流水线
三 存储器详解
寄存器-》L1 高速缓存-》L2
内存 RAM=》内存 ROM=》只读内存,存取速度与内存一样,只能用于读,断电数据不丢失
内存中存放都是cpu要运行的程序 RAM=》qq、暴风影音、微信、爱奇艺视频 ROM=》BIOS(操作系统)(Basic Input Output System基本的输入输出操作系统)
cpu (计算机启动CPU先运行BIOS系统,再去安装硬盘启动win系统)
ROM(BIOS系统) RAM(windows系统)
硬盘(windows系统)
CMOS(耗电低,断电即消失)