首页 > 代码库 > 计算机基础知识
计算机基础知识
编程语言与操作系统之间的关系
编程语言如python,他的作用就是告诉操作系统要做什么,之后操作交给操作系统去运行。就像菜谱一样,编程语言告诉操作系统需要倒油,放葱姜蒜,然后翻炒,最后出锅。
操作系统则为用户提供了一个平台,使计算机硬件更形象的体现在使用者面前,用户只需要去操作系统,就可以很好的控制计算机各个硬件的运作,而不需要考虑需要怎么做,该怎么做。
操作系统与硬件之间,操作系统控制硬件为用户工作,而不用用户去管理硬件运行。
编程语言的目的是为了做出一个软件,相应的,变成语言也是一种应用软件,运行在操作系统之上,通过操作系统来调取计算机硬件资源为之工作。
计算机硬件知识
cpu与内存,磁盘的联系
cpu作为高速运算设备,具有很快的运行速度,数据处理是存储设备的几倍,如果没有内存的加入,CPU与磁盘之间会产生很高的硬件资源浪费,CPU等待磁盘去读出数据给CPU处理。内存(内存是一种高速存储设备,比硬盘速度快)的加入使处理器与磁盘中间出现了一个缓存,大量的待处理数据可以放入内存中等待处理器去运算,CPU无须等待硬盘缓慢的读取速度,而可以高效的运算。
CPU寄存器及用户态内核态的联系
什么是寄存器?寄存器的分类有哪些?
因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以CPU内部就需要一些用来保存关键变量和临时数据设备,这些设备被称为寄存器。
寄存器在使用的环境不同中可分为1,通用存储器:用来保存一些关键变量和临时结果
2,程序计数器:它保存了将要取出下一条指令的内存空间。
3,堆栈指针:只想内存中堆栈的顶端。保存每一个没有退出的过程的框架。
4,程序状态字寄存器:保存了指令运行的结果和指令状态,中断信息等……
用户态与内核态
多数CPU中都会有这两种状态,psw中有一个二进制位来控制这两种模式切换。
什么是用户态?
用户态是应用软件在用户状态下运行,运算调用了CPU的一个子集,(子集中不包含硬件指令)无法调用cpu整个指令集,在psw中的模式也是禁止状态。
什么是内核态?
在cpu内核状态下运行,可以执行指令集中的所有指令,包含硬件的使用指令。
内核态与用户态的切换使用。
在应用软件的过程中,一般情况下使用用户态去完成一些任务,有一些任务则会调用硬件去完成,在此过程中,应用软件不能无权限的随意调用硬件资源,由此就需要操作系统去加以控制使用,当应用软件需要使用硬件的时候,通过对操作系统发出请求,操作系统做出响应给予硬件调用。其中中psw二进位的变化去完成切换操作。
存储器基本知识
存储器分为缓存,内存,磁盘,磁带
缓存
缓存就是数据缓冲区cache,用于高速设备数据的处理的缓冲。
缓存速度快,在cpu中的一级缓存接近与CPU,cpu访问该缓存无延迟。
二级缓存为高速存储交换,在二级缓存中牵扯到一个CPU数据读取的命中率。
由于二级缓存由硬件控制,内存中的高速缓存行 按照0-64字节为行,64-127为行1。当某个应用访问存储时,硬件检查该数据是否在高速缓存行内。如果是,则命中,直接读取使用。如果没有则调用总线向内存发出访问,从内存读取数据进行处理。
闪存与EEPROM,都是非易失性存储器,可反复进行擦写,速度比硬盘快。体积小,便于携带。
CMOS与BIOS电池
CMOS是一块易失性存储芯片,掉电后数据丢失,在CMOS中存储了计算机时间及启动顺序信息及计算机一些配置信息,为防止计算机关机后CMOS丢失数据,计算机中都为CMOS配备一块电池,防止信息丢失。
在内存的分类中,分为两种,一种是易失性内存(RAM),掉电后数据消失,还有一种为非易失性内存(ROM),速度快且不会因为掉电而造成数据丢失,通常用在引导操作系统bios芯片中。
我们计算机中的主存储器就是RAM,易失性内存。
磁盘,也就是硬盘,作为一种低速但是容量大的存储设备,在计算机中一直担任着数据保存的主要角色。大容量的优点,使其一直得以在计算机中使用(主要是固态硬盘成本太高,容量太小且不稳定。)硬盘是一种通过机械操读取数据的设备,内部由盘片,磁头,驱动马达进行控制读取数据。
硬盘结构示意图
硬盘的性能主要看转速,容量。
转速是指磁盘在硬盘中每分钟的旋转速度,速度越快,相对的获取数据越快。
硬盘的容量是已二进制位bit来存储的,我们所说的磁盘容量就是说硬盘可以存储多少二进制位。
当硬盘需要存储数据时,会将大数据进行分块处理,没块儿分为4kB,进行数据的写入,这样做的目的是为了硬盘的高效运作
硬盘的读取过程由盘片的旋转,磁头寻道配合完成。
数据的存储最小单位是磁道,磁头读过后切换下一条磁道,把一个戈丁手臂上位置的所有磁道合成,则是一个柱面。
其中每个磁道化成若干扇区,这个扇区典型值为512字节
硬盘的平均寻道时间就是硬盘在得到读取数据的请求后,机械臂从伺服状态进入工作状态,寻找磁道。
硬盘的平均延迟时间就是硬盘在到达正确磁道后,数据信息是否在这个扇区,如果在直接读取,不在则等待扇区扇面的到达。
虚拟内存的概念MMU内存管理单元
虚拟内存的使用是为了缓解大型软件在内存中使用,内存容量不够的问题。虚拟内存是在硬盘中划出来一块与内存的交换空间,把软件中一些不关键数据保存到硬盘中,当内存需要调用的时候,mmu内存管理单元会在内存与虚拟内存中建立映射关系,交换内存与虚拟内存中的数据。
磁带
磁带的价值在于容量大且价格低廉,在地震水灾中转移性强,常用来做备份使用。
IO设备及设备控制器
I/O设备为计算机提供标准接口,和规范的协议,程序员可以根据标准协议对设备进行复杂编程操作,从而为硬件提供驱动给操作系统。
设备控制器负责连接各个设备,接受操作系统指令对设备进行调用,为操作系统提供一个清晰的管理端口。
设备驱动与控制器
硬件安装后需要安装驱动才能与操作系统做出沟通,当系统需要调用该硬件的时候,就需要控制器去协调使用,根据进程的优先级进行排队,插队中断使用。
总线与南北桥控制器
系统总线用于传输设备的数据信息,控制信息,和地址信息。在系统总线中又可细分为数据总线和控制总线,设备地址总线。
南北桥芯片用于控制总线设备,如显卡,内存,声卡,网卡等
南桥芯片连接低速设备如(usb,ATA,PCI)
北桥芯片连接高速设备(如CPU,内存,PCI-E等)
计算机启动过程
计算机加电,BIOS检测硬件,CPU,内存,硬盘,读取CMOS启动设置,启动设备,读取引导硬盘引导程序bootloader加载启动模块启动操作系统。从BIOS中或许硬件配置信息,检测硬件时候存在驱动程序,有,则调入内核,无则提示用户硬件驱动缺失。
应用软件的启动顺序
用户使用鼠标操作双击应用快捷方式,操作系统做出响应按照路径查找应用软件数据,找到数据存入内存中,数据提交到缓存中交由CPU进行数据处理,cpu完成数据处理后返还结果,操作系统做出响应,应用软件打开。
计算机基础知识