编程语言的作用及与操作系统和硬件的关系
应用程序-》操作系统-》硬件
作为一个零基础小白,今天通过计算机基础明白了编程语言说白了就是一门“语言”,它可以让程序员给计算机下达指令,进行沟通。程序员利用它编写软件,而软件必须运行在操作系统之上,再由操作系统来控制硬件。第一层为应用程序,第二层为操作系统,第三层为硬件。
cpu-》内存-》磁盘
老师的记忆方法借鉴cpu 内存和磁盘6
cpu是人的大脑,负责运算
内存是人的记忆,负责临时存储
硬盘是人的笔记本,负责永久存储
输入设备是耳朵或眼睛,负责接收外部的信息传给cpu
输出设备是你的表情,负责经过处理后输出的结果
以上所有的设备都通过总线连接,总线相当于人的神经
上课开始,老师讲课,学生听课,老师是程序员,学生是计算机,学生的器官都是计算机各部分组成
1.老师通过学生的眼睛和耳朵将自己的知识/指令传给学生(输入)
2.学生在接收知识/指令后,通过自己的神经,将其放入自己的内存/短期记忆(总线、内存)
3.学生的大脑/cpu从短期记忆里取出知识/指令,分析知识/指令,然后学习知识/执行指令 (cpu取指、分析、执行)
4.学生的表情会直接反映出自己是否听懂,这就是输出,老师瞅一眼就知道学生有没有学会(输出)
5.学生想要永久将知识保存下来,只能拿出一个笔记本,把刚刚学会的知识都写到本子上,这个本子就是硬盘(磁盘)
CPU是运行速度最快的硬件所以一切计算都需要它,内存是运行速度慢于cpu硬件同时一切要处理的数据都会先进入内存之后等待cpu来提取,磁盘是运行速度最慢的硬件同时永久储存一切数据提供给内存调用。cpu从内存中进行(取指->解码->执行),所以第一层是cpu ,第二层内存,硬盘是底层。
cpu与寄存器,内核态与用户态及如何切换
寄存器的速度慢于cpu快于内存,是由cpu相同材质的晶体管制造而成的,因为cup执行命令的时间远快于访问内存数据的时间,所以cpu当中都有用来保存cpu变量和临时数据的寄存器,从而提高执行命令速度,提升工作效率。寄存器分为1:通用寄存器
2:程序计数器
3:堆栈指针
4:程序状态字寄存器
寄存器分为两种状态:1,是用户状态:对硬盘是没有控制的,只能计算
2,是内核状态:获取cpu所有指令,控制所有硬盘操作
内核态与用户态切换:用户程序必须使用(system call)系统调用,系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。
存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
存储器结构:
第一层:寄存器;一般响应时间为1ns,存储容量一般<1kb;1级缓存(L1);用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延
第二层:高速缓存;一般响应时间为2ns,存储容量一般4mb;2级缓存(L2);最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中
第三层:内存;一般响应时间为10ns,存储容量一般512~2048mb;随机访问存储(RAM);易失性存储,断电后所有数据消失。
第四层:磁盘;一般响应时间为10ms,存储容量一般200~1000gb
第五层:磁带;一般响应时间100s,存储容量一般400~800gb
容量换算:1Byte=8bit;1KB=1024Byte;1MB=1024KB;1GB=1024MB;1TB=1024GB。
EEPROM和闪存:他们是非失性存储方式,断电后,仍然保有数据;但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。
cmos:cmos是失性存储设备,断电后所有数据消失。很多计算机又利用cmos来保存时间和日期,为了可以长期保存数据,所以CMOS存储器和递增时间的电路以由一小块电池维持供电,cmos还可以保存参数,比如哪一个是启动磁盘。
bios:其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。bios程序保存在cmos内
磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU
磁盘结构:磁头:在机械手臂前端接触磁盘的位置
磁道:硬盘上面的纹理(盘面,计算方式为二进制)
扇区:磁盘里面的每一个小圆弧,每个圆弧默认值为512bytes
柱面:各磁盘相同位置上磁道的合集
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置
平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
虚拟内存:将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存
mmu:在linux中称为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)
磁带
磁带:在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)
设备驱动与控制器
i/os设备一般包括两部分:1:设备控制器;负责发送和接受指令
2:设备本身
设备驱动:操作系统和输入输出设备间的粘合剂。驱动负责将操作系统的请求传输,转化为控制器能够理解的命令。
总线与南桥和北桥
小型计算机中沿用了多年,并也用在早期的IBM PC中。但是随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。
北桥即PCI桥:连接高速设备
南桥即ISA桥:连接慢速设备
操作系统的启动流程
通电——BOIS运行,检测硬件(cpu,内存,硬盘)——BIOS读取CMOS存储器中的参数,选择启动设备——从启动设备行读取第一个扇区的内容(MBR)——根据分区信息读入bootloader启动装载模块,启动操作系统——操作系统询问BIOS,获得配置信息——初始化相关表格,加载进程,并在终端启动登录或GUI
应用程序的启动流程
双击应用程序(软件)---软件将数据写入内存----CPU从内存中读取数据并执行然后返回内存-----启动软件