1、编程语言的作用及与操作系统和硬件的关系
一个完整的计算机系统包括硬件、操作系统、软件(即程序员开发的各种软件)三部分组成。
各程序员开发的软件若直接调用计算机的硬件,如硬盘读取、音频播放等,则软件不仅编写复杂同时影响开发效率,因此程序员开发的软件需通过计算机操作系统间接调用计算机各硬件。如下图:
即编写各种计算机软件的编程语言可看作程序员与计算机沟通的介质,程序员通过编程语言编写软件从而达到控制计算机的目的。
2、计算机硬件
计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。简言之,计算机硬件是构成计算机的物质基础,是计算机系统的核心。从外观上来看,微机由主机箱和外部设备组成。
根据计算机之父冯·诺依曼的划分,计算机由运算器、控制器、存储器、输入设备、输出设备五部分组成。通常把运算器与控制器合称为中央处理器(Central Processing Unit,CPU)。
其中:
CPU是计算机的核心,负责计算机的运算及程序控制;
存储器是计算机的记忆设备,用来存放程序和数据
输入设备是计算机接收外部信息和数据的设备。常用输入设备有:键盘、鼠标、扫描仪等
输入设备是输出计算机处理后的数据。常用的输出设备有:显示器、打印机等
在计算机中,计算机各硬件是通过各类总线连接在一起的。
2.1处理器(cpu)
CPU是计算机的核心,负责处理计算机的各种逻辑运算和程序控制等。CPU处理的流程是:从内存读取指令->解析指令->执行指令,执行完之后继续从内存读取指令->解析指令->执行指令,知道所有的程序被执行完毕。
由于CPU的读写速度远大于内存的读写速度,为最大限度发挥CPU的效率,将CPU的一些常用指令集存入一个能够快速读写设备中,即寄存器。
寄存器的读写速度介于CPU和内存之间。
(计算机处理应用程序流程图)
寄存器分类:
1) 通用寄存器:用来保存变量和临时结果
2) 程序计数器:保存将要取出的下一条指令的内存地址。在指令取出后,程序计数器就被更新以便执行后期的指令
3)堆栈指针寄存器:它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量
4)程序状态字寄存器(Program Status Word, PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。
3、内核态与用户态
由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络,因此CPU划分出两个权限等级 -- 用户态 和 内核态
在程序状态字寄存器中与一个二进制位用来控制CPU的模式,
内核态: 当CPU在内核态运行时,CPU可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态: 用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用)
内核态与用户态的切换:
用户态程序发出使用操作系统的需求(使用硬件设备)
->用户程序启用系统调用
->寄存器执行指令
->CPU切换到内核态
->启用操作系统获得服务
->操作系统重置CPU为用户态并返回系统调用结果
4、存储器
存储器(Memory)是计算机中用于保存信息的记忆设备。广义概念中只要能保存二进制数据的都可以是存储器。
常用存储器有:
寄存器即L1缓存:用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延。
高速缓存即L2缓存:主要由硬件控制高速缓存的存取,最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。
L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。
内存(RAM):既能读取也能写入的存储器,存储速度快,断电后数据全部消失
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM):具有非易私性,擦除和重写。不过重写时花费的时间比写入RAM要多。
闪存(flash memory):具有非易私性,闪存通常作为存储媒介,多应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了
只读存储器(ROM):储的内容是固定不变的,只能读出而不能写入的半导体存储器。通常用于BIOS中。
CMOS存储器:易失性,多用来存储计算机bios的设置,如当前时间日期、系统启动盘信息等。
Bios电池:用于CMOS存储器供电
磁盘:磁盘结构如下图:
(常见计算机硬盘结构)
(磁盘结构图)
磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计便,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。
每个磁头可以读取一段换新区域,称为磁道
把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面
每个磁道划成若干扇区,扇区典型的值是512字节
磁盘存储的基本单位是一个二进制位,读写的基本单位是扇区
操作系统中磁盘文件存储管理的最小单位叫:“块(block)”,一般一个块为8个扇区
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置
平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
6、虚拟内存与MMU
虚拟内存:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。在CPU中将正在使用的程序放入内存去执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存。
MMU即存储器管理单元(Memory Management Unit):是CPU中负责在虚拟内存中将不需要执行的磁盘程序快速映射到内存地址的部件
磁带:在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)
7、设备驱动与控制器
设备驱动:即设备驱动程序,是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作,是硬件和系统之间的桥梁。
控制器:是计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令. 主要功能:从内存中取出一条指令,并指出下一条指令在内存中位置,对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。
8、总线与南桥和北桥
总线(Bus):是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
北桥即PCI桥:是电脑主板芯片组中的一枚。北桥被用来处理高速信号、通常处理CPU(处理器)、RAM(内存)和南桥芯片之间的通信。
南桥即ISA桥:连接慢速设备,南桥芯片主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等。
9、操作系统的启动流程
启动流程
1) 计算机加电
2) BIOS开始运行,检测硬件:cpu、内存、硬盘等
3) BIOS读取CMOS存储器中的参数,选择启动设备
4) 从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5) 根据分区信息读入bootloader启动装载模块,启动操作系统
6) 然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
10、应用程序的启动流程
1) 启动应用程序
2) 应用程序将需求发送操作系统
3) CPU从内存中读取指令、解析指令、执行指令
4) 操作系统输出CPU执行结果
来源:https://www.cnblogs.com/hedeyong/p/6875017.html