day01计算机基础
计算机三层结构

软件开发流程

运维职责
1.软件724365运行 ==>监控
2.数据备份
3.优化
计算机组成
控制器 运算器 存储器 输入输出设备

cpu
控制和运算
存储器
存储器之内存
1.内存条相当于人脑的记忆功能,只能临时存放数据
2.内存里存放的都是电信号,断电数据则丢失,相当于人脑失去记忆
3.cpu是从内存中取出指令来运行的,运行指令产生的数据也会放入内存中,所以内存又称之为主存,因为程序运行过程中产生的数据都是先存放于内存中
存储器指硬盘
1.硬盘相当于人的本子,可以永久保存数据
2.磁盘里存放的是磁信号,固态硬盘里存放的电子,断电数据都不会丢失,相当于人把事物记录到本子上肯定不会忘记了
3.程序运行过程中产生的数据一定是先存放于内存中的,若想永久保存,必须由内存刷如硬盘
硬盘支架
硬盘接口
1、IDE 早期并口
2、SATA 串口
3、SCSI 小型机专用
4、SAS 串行连接的SCSI
区别
他们的主要区别在于价格、性能、用途以及支持的设备数量上
1、SATA 拥有较低的成本并满足个人用户的需要,
2、SCSI 和 SAS 则提供了更好的性能和更多设备支持,适合在商用环境中使用
3、并且,SAS 是目前唯一同时与 SATA 兼容的协议,可以在同一控制器上运行的两种硬盘类型。
PCI_E
1.M2接口,遵循的就是PCI-e协议,所以你也可以将m2接口称之了pci-e通道之类的接下来就是为源(也就是我们的固态磁盘)按照PCI-e协议定制一种接口,于是诞生了NVMe专为SSD硬盘准备的,NVMe是一种存储协议,专门为利用固态驱动器(SSD)的NAND闪存的性能而设计的。NVMe是在PCI-E的基础上进行设计和实现,
接口组合
硬盘及接口性能
1、硬盘:SSD(固态)>机械硬盘
2、硬盘接口:SAS> SATA
硬盘与接口的组合玩法
0、SSD硬盘+NVMe====》如果是SSD,还是建议用NVMe
1、SSD硬盘+SAS接口=》过去费钱的组合,性能不如0,但高于下述组合
2、SSD硬盘+SATA接口=》对速度要求比较高场景下的常规组合
3、机械硬盘+SAS接口=》对速度没有特殊要求场景下的常规组合
4、机械硬盘+SATA接口=》穷人套餐,对速度要求较低,通常用于企业内部应用
热数据和冷数据
据统计,高并发场景下,用户大量访问的仅仅只是那一小戳数据,比例大致为
25%的数据=》用户经常访问=》热数据
75%的数据=》用户不经常访问-》冷数据
针对这25%的核心数据,如果资金充裕,我们通常放在SSD+SAS盘上,一般常规的做法都是放在:15000转/分机械磁盘+SAS口上,比较经济实惠
其实我们暴露给外部用户的核心的业务都推荐使用:转速是15000转/分的机械磁盘+SAS口
一般内网应用或者数据备份才选择:7200或10000转/分的机械磁盘+SATA口
RAID
RAID技术的本质就是对硬盘做集群,将多块合并成为一块虚拟的大盘,可以带来好处
1、容量的增大
2、读写速度提升
3、防止单点故障
raid0
经过条带化处理,将数据分割成很多份,然后同时并行写入多个硬盘,以提高数据传输的速度。但如果其中一个硬盘发生故障,那么所有的数据都将无法恢复。
raid1
将两个或更多的磁盘镜像成一个单一的数据源,提供完全的冗余。如果其中一个硬盘故障,数据依然可以从其他硬盘上获取。
raid5
至少需要三个硬盘,其中一个硬盘会被用来存放用于数据恢复的校验信息。如果其中一个硬盘故障,数据可以从剩余的硬盘恢复。
raid10
将RAID 0和RAID 1结合起来,既实现数据冗余,也提高了数据传输速度。需要最少四个磁盘,其中任意一个硬盘故障,数据可以从其他硬盘恢复。
制作硬件RAID
raid技术有软件raid与硬件raid之分,考虑到性能,我们通常用硬件raid,这就需要使用raid卡了
有RAID卡后,一般磁盘就会插到RAID卡上,而不是直接插到主板上了
存储容量单位
1DB=1024NB; // DB(DoggaByte)
1NB=1024BB, // NB(NonaByte)
1BB=1024YB; // BB(BrontoByte)
1YB=1024ZB; // 尧字节 (YB,YottaByte)
1ZB=1024EB; // 泽字节(ZB,ZettaByte)
1EB=1024PB; // 艾字节(EB,ExaByte)
1PB=1024TB; // 拍字节(PB,PetaByte)
1TB=1024GB; // 太字节(TB,TeraByte)
1GB=1024MB; // 吉字节(GB,Gigabyte)
1MB=1024KB; // 兆字节(MB,MegaByte)
1KB=1024B // 千字节(KB,KiloByte)
1B=8bit // 字节(B,Byte)
小b:代表一个二进制位
大B:代表一个字节,8个二进制位才构成一个字节,即8b等于1B
市面上卖硬盘的都是按1000计算,号称500G硬盘=5001000B1000KB*1000MB
主板
1、北桥:连接高速设备,cpu、内存等,影响系统性能
2、南桥:连接低速设备,如磁盘、usb接口、音频设备、以及其他pci设备,南桥会产生大量的数据流
PCI插槽
也就是外设组件互连插槽,主要是用来连接各种外部设备和扩展卡的。
下面是一些常见的可以连接到PCI插槽的设备类型:
显卡:用于处理和输出图像到显示器的设备。
声卡:用于处理音频数据的设备。
网络卡:使得电脑可以连接到有线或无线网络的设备。
USB卡:提供额外的USB接口的设备。
硬盘控制器:使得电脑可以连接到IDE或SCSI硬盘的设备。
总的来说,电脑上的PCI插槽提供了一个连接和安装各种不同功能设备的接口,从而拓展电脑的功能和性能。
CMOS:
是一个存储设备,用于存放BIOS配置的内容、系统事件等
CMOS电池:
断电后给主板的CMOS供电
ROM:
“只读内存”存放计算机厂商写死计算机上主板上的一段核心程序=》BIOS
主板芯片组
主板芯片组是主板上最重要的部件,主板的功能主要取决于芯片组。芯片组负责管理CPU和内存、各种总线扩展以及外设的支持
BIOS芯片组
BIOS (basic input output system)芯片(CMOS芯片):负责主板通电后各部件自检,设置,保存,一切正常后才能启动操作系统。记录了电脑最基本的信息,是软件与硬件打交道的最基础的桥梁,没有它电脑就不能工作。
机箱
主板电源
1.服务器双电源模块
2.UPS
3.柴油发电机加油罐
风扇组
服务器分类
1.按尺寸
1U 2U
2.按外形
机架式 刀片式 塔式
3.按品牌
IBM dell
去IOE
小型机(高端定制服务器) 过时感念
云服务器
机房机柜服务器摆放
远程管理卡
服务器采购清单
计算机体系三层结构与优化
三大核心硬件
cpu 内存 硬盘
程序的运行和三大硬件的关系
1、程序最先存放与硬盘中,程序的运行会先把程序相关内容从硬盘读入内存-》称之为程序的加载或启动
2、然cpu从内存中读取指令来运行-》称之为程序的运行过程
所以,
若想加快程序的启动速度,应该换一块好硬盘+接口
若想能同时运行的程序数比较多,应该加内存
三层结构
应用程序
操作系统
计算机硬件(cpu、内存、硬盘)
优化思路
计算密集型软件和io密集型软件
计算密集型
优化cpu
io密集型
优化思路:核心就是围绕IO的优化,尽可能少地减少硬盘IO及网络IO,例如
1、针对读数据操作,能从内存读就不要从硬盘读,能从本地硬盘读就不要从网络读,永远就近访问
2、针对写数据操作,先在内存中攒一大波数据,然后再一次性刷入硬盘
四个层次优化
1、硬件优化
2、操作系统内核优化
3、应用程序优化
4、网络优化
buffer与cache
大家都说linux系统效率高,到底高在哪里呢?其中一个方面就是buffer与cache的设计
linux系统觉得我们日常内存都不会用满,所以它自作主张,会从free内存中借走一部分内存
这些借走的内存一部分用作buffer、一部分用作cache
buffer称之为缓冲区:linux系统会将要写入硬的数据先缓冲到buffer,然后一次性刷入硬盘,以此减少io次数
cache称之为高速缓存:linux系统会将硬盘读入内存的数据缓存到cache里,下次读的时候直接从cache取即可
cache空间可以随便清理,而buffer空间在清理之前最好先执行刷新命令
笔记
一 引入
什么是计算机?为何要有计算机?《模仿游戏》
计算机诞生的目的就是为了取代人力
说到底,计算机就是人类的奴隶
银行行长------------------------------柜台人员
接收用户输入的账号
接收用户输入的密码
判断 输入的账号 等于 正确的账号 并且 输入的密码 等于 正确的密码:
告诉用户登录成功
否则:
告诉用户登录失败
程序员------------------------------计算机
用编程语言把上述步骤翻译下来
什么是编程语言?
人-------------人类的语言---------------人
人-------------编程语言---------------计算机
什么是编程?
1、把想让计算机做事的步骤想清楚
2、用一种计算机能听懂的语言(编程语言)把做事的步骤翻译下来
为何要编程?
为了让计算机取代人力
什么是程序?
程序就是一堆代码文件
ps:
计算机硬件就是一堆废铁,计算机的运行全都受程序控制
可以说程序是计算机硬件的灵魂
硬件的以外的都叫软件
软件可以分为两大类
1、操作系统:就是一个协调、管理、控制计算机硬件资源与应用软件资源的一个控制程序
2、应用软件
计算机体系的三层结构
应用程序
操作系统(linux、windows,mac)
硬件
上节课复习:
1、软件的开发流程
需求分析阶段:
1、PM产品经理:调研市场,需求分析,原型草图
2、PM召集所有相关技术人员开需求分析会:n次=》需求明确
项目开发阶段:
1、项目设计:
UE与PM产品经理=》交互原型图
UI根据原型图-》设计图
FE=》前端设计
RD=》后端技术设计
QA=》测试用例设计
OP=》运维架构设计
2、项目开发
前后端分头开发
合并
项目测试
1、开发人员进行code review=》过一遍代码,审查一下
2、开发人员自测=》改bug
3、QA专业测试=》改bug
项目上线:
1、运维人员编写上线方案
2、测试
环境
测试
staging
线上
2、服务的分类
1、尺寸:1u=4.45cm
2、外形:
机架
刀片:集群
塔式
小型机:高端定制
ps:云主机
阿里云
腾讯云
青云
ucloud
一 计算机的硬件组成
计算机(电脑)====》人
大前提:计算机的所有组成都是模仿人的某一器官或者功能去设计的
五大组成部分:
控制器:是计算机的指挥系统,负责控制所有其他硬件的运行-------------》大脑
运算器:负责数学运算与逻辑运算---------------------------------》大脑
控制器+运算器=》cpu中央处理器
存储器:存取数据
内存:比如内存条----------------------------------------》大脑的记忆功能
基于电存取数据,断电数据全部丢失
用于临时保存数据,存取速度都快
外存:比如磁盘------------------------------------------》本子
基于磁存取数据,断电数据仍然存在
用于永久保存数据,存取速度都慢
输入设备
键盘、鼠标
输出设备
显示器、打印机
总结1:
人-------程序---------》计算机硬件
人-------程序---------》cpu------》计算机其他硬件
总结2:程序的运行与计算机三大核心硬件cpu、内存、硬件的关系
程序最先是存放于硬盘中的
程序的运行需要先经历加载的过程:程序的代码/数据从硬盘读入内存
然后cpu再从内存中读取指令来运行
ps:
安装软件都装到硬盘里,软件的运行都是把数据加载到内存中了
所以说计算机硬盘的大小决定了能够安装的软件数目
而计算机内存的大小决定了计算机能够同时运行的软件数目
二 cpu详解
取指----》解码(内存中读取的指令转换为cpu指令)----》运行
寄存器=》与cpu一样的材质制成,速度非常快,无延迟
cpu 32位-》只能运行32位的软件
cpu 64位-》既能运行32位的软件又能运行64位的软件
cpu具有向下兼容性
x86=》复杂指令集
x86-64(*****)
摩尔定律:18个月
cpu:2核4线程(****)
2核-》2个cpu核心
每个核内部有两条流水线=》2核有4条流水线
三 存储器详解
寄存器-》L1
高速缓存-》L2
内存
RAM=》可读可写内存
ROM=》只读内存,存取速度与内存一样,只能用于读,断电数据不丢失
内存中存放都是cpu要运行的程序
RAM=》qq、暴风影音、微信、爱奇艺视频
ROM=》BIOS(Basic Input Output System基本的输入输出操作系统)
cpu cpu
ROM(BIOS系统) RAM(windows系统)
CMOS(配置) 硬盘(windows系统)
硬盘
机械硬盘
固态硬盘
上节课复习:
1、计算机的分类
个人pc:
台式机
笔记本:断电后有电池续命
服务器:最好一直开机运行着,不要宕机
注意:对硬件的损耗巨大,极容易损坏,要做好硬件监控,防患于未然
服务器的服务类:
尺寸:1u、2u、4u
外型:
机架式
刀片
塔式
云主机
小型机=》高端定制(过时)
品牌:dell、惠普、IBM
计算机组成:
cpu(控制器+运算器)
存储器:
内存:
内存条:存取速度都快,断电数据丢失
外存:
机械磁盘:存取速度都慢,断电数据不丢失
输入设备
输出设备
三大核心硬件:
cpu
内存
硬盘
linux系统会把内存分为两种区域:
buffer:缓冲区,攒一大波数据,再刷入硬盘
cache:缓存,把硬盘的数据在内存中缓存好,cpu取的时候可以直接从内存取
ps:
1、x86-64
2、2核4线程 物理层面2核,假的4核
真4核>2核4线程>纯2核
内核态与用户态:
内核态——>操作系统正在控制硬件
用户态-->应用程序正在运行
cpu cpu
ROM=>BIOS 内存:windows
CMOS=>存储BIOS配置数据 硬盘
今日内容
一:硬盘
机械磁盘
磁道
扇区:
硬盘的最小读写单位是一个扇区=》512Bytes
操作系统读写的最小单位是一个block块->8扇区的大小->4k
柱面
分区指的就是从一个柱面开始到另外一个柱面结束,中间所包含的所有盘片所对应的磁盘
ps:
buffer缓冲区-》大卡车
操作系统的block块-》收纳箱
硬盘的扇区-------->单个快递盒子
大卡车里存放了n个收纳箱,每个收纳箱子里存放了8个快递盒子
7200转/分
120转/s
转一圈花费的时间:0.008s
平均延迟时间:转半圈花费的时间4ms
平均寻道时间:5ms
固态硬盘:
依赖电子存取数据
虚拟内存:swap分区
二:计算机启动过程
1、计算机加电
2、启动BIOS(计算机启动一定会先启动bios系统),扫描启动设备,从某一个启动设备中找到操作系统
3、读取启动设备的第一个扇区的大小(称之为主引导记录mbr)
446 bootloader=》grub程序
64分区信息
2结束标志位
4、grub程序负责将操作系统内核装载入内存,启动操作系统
5、操作系统会让BIOS去检测驱动程序
三:
网线:
橙白
橙
绿白
蓝
蓝白
绿
棕白
棕
千兆网卡-》双绞线
万兆网卡-》光纤
上节课复习:
1、硬盘本身的分类
机械磁盘
io时间=平均寻道时间+平均延迟时间
buffer=》写缓冲区
cache=》读缓存
虚拟内存swap
固态硬盘
内核态与用户态
一:硬盘接口
IDE并口
SATA串口
SCSI
SAS(SATA+SCSI)
光纤通道
SSD+SAS====》土豪
SSD+SATA===============》常规,对速度有特殊要求
机械磁盘+SAS===========》常规,比较核心业务使用,对速度要求常规
机械磁盘+SATA===》内部服务
多块硬盘要连接到RAID卡(阵列卡)上
然后制作raid
raid0
至少1块盘
容量:n块盘合在一起的总容量
性能:理论上是n块盘合在一起的读写速度,实际上是要略低一些
冗余性:不允许坏任何一块盘
场合:追求读写性能,但是对数据安全性没有啥要求,例如集群服务器
特点:追求速度,不考虑数据安全
raid1
只能2块盘
容量:1块盘的容量
性能:几乎就是一块盘的读写速度
冗余性:可以坏一块盘,另外一块盘有完整的数据
场合:对数据安全性有要求,对速度读写速度没有特殊要求,例如服务器的系统盘
特点:追求数据安全,不考虑速度
raid5(介于raid0与raid1之间,是一种折中的方案)
至少3快盘,两两之间做奇偶校验-》异或运算,相同结果为0,不同结果为1
容量:废掉1块盘的容量,等量盘的情况下,容量低于raid0
性能:读写速度低于raid0,高于raid1
冗余性:可以坏一块盘,其余两块盘可以通过奇偶校验推导出坏盘的数据
场合:一般的场合都可以使用
raid10
至少有4块盘
raid1和raid0的整合的产物,兼顾了raid1的数据安全性与raid0的性能,但是成本大幅度提升
通常用于数据库服务器
优化的基本原则
1、针对读操作,数据能从内存取就不要从硬盘
2、针对写操作,在内存中攒一波再写入硬盘
raid=》"硬盘的集群"
计算机体系三层结构及优化
操作系统的发展史
无操作系统 针孔卡片
批处理系统=》分时操作系统(多人通过连接设备连接到主机)=》unix=》linux

浙公网安备 33010602011771号