1.3计算机硬件的介绍
我们可以将计算机简单的抽象为,cpu,内存,以及I/O设备都由一条系统总线连接起来并通过系统总线与其他设备进行通信。
1.3.1处理器
1.cpu是计算机的’大脑’,负责从内存取出指令并执行指令。
2.每一个cpu都有一套可执行的专门的指令集。
3.cpu的基本周期为:从内存中取出指令–>指令译码–>确定操作类型和取操作数–>执行指令–>将结果保存
4.其实,cpu的大部分时间并不是用于执行指令,而是用在了访问内存以获得指令和数据,那如何解决该问题?
可以在cpu内部设置寄存器,用于保存关键变量和临时数据(通用寄存器),还有专用寄存器(程序计数器pc和堆栈指针)
5.操作系统必须知晓所有寄存器,在多路时间复用cpu中,操作系统经常会中止一个正在运行的程序去执行另一个程序,这是操作系统就需要保存所有寄存器中的值,以便下一次正常运行该程序
6.cpu执行指令方式的演变
当一条指令被读取,译码,执行后,才会进行下一条指令的读取—>采用流水线模式—>超标量CPU(cpu被分为多个执行单元,两条及以上的指令被取出,解码并装入缓冲区。一旦有执行单元空闲就会去缓冲区取可处理的指令,并执行。直至缓冲区中的内容被处理完。)
7.大多数cpu具有两种模式(内核态和用户态)。通常,是由PSW中的一个二进制位控制这两种模式。在内核态下,cpu可以执行指令集中的每一条指令,并使用硬件的每一种功能。而用户程序在用户态下,仅允许执行指令集中的一个子集和访问所有功能中的一个子集。
8.为了从操作系统中获得服务,用户程序必须使用系统调用以陷入内核并调用操作系统。TRAP指令就是用于把用户态转换成内核态,并启动操作系统
1.3.2存储器
在理想情况下,存储器应该读取迅速,容量极大,价格便宜,但这几乎是不可能实现的。故存储器采用分层的结构,越上层,速度越快,容量越小,价格越贵。
结构如下(自顶向下):
第一层:cpu中的寄存器,用与cpu相同的材料制成,和cpu一样快。
第二层:高速缓存,大多数由硬件控制。
第三层:主存,存储器的主力,包含RAM(随机访问存储器);ROM(只读存储器),可用于启动计算机的的引导加载模块;EEPROM和闪存;CMOS
1.3.3磁盘
1.3.4I/O设备
1.I/O设备一般包括两个部分:设备控制器和设备本身。控制器是插在电路板上一块或一组芯片,其可以物理的控制设备,为操作系统提供一个简单的接口,屏蔽掉读取和写入数据时,控制器对设备的复杂操作。
2.对于设备本身,其由一个相对简单的接口,该接口既不能做复杂的工作,又已经被标准化了。由于实际的设备接口被隐藏在控制器中,所有操作相同看到的只是对控制器的接口。
3.每类设备控制器都是不同的,所有,需要不同的软件进行控制,专门用于与控制器对话,发出命令并接收响应的软件,称之为设备驱动程序。
4.为了能够使用设备驱动程序,必须将设备驱动程序装入操作系统中,使其可以在内核态下运行。
1.3.5总线
总线用于在不同的设备之间传送数据和消息,相当于人体的神经。
在2004年出现PCIe总线之前,大多数总线采用并行且共享的架构,这种架构表示多台设备使用相同的总线传输数据,但存在一个问题是当多个设备要传输数据时,如何仲裁那个设备先传。
相反,PCIe总线采用串行总线架构,通过一台被称为数据通路的链路传递集合了所有位的一条消息。
1.3.6启动设备
在每台计算机上都有一块双亲板(上有一个称为基本输入输出系统(BIOS)的程序),这个程序存放在闪速RAM中,具有非易失性,但在发现BIOS中存在错误时可以通过操作系统对其进行修改。
计算机启动时,BIOS开始运行。它首先检测所安装的RAM数量,键盘等基本设备是否已经安装并正常响应。接着开始扫描PCIe和PCI总线并找出连在上面的所有设备。如果现有设备与系统上一次启动时的设备不同,则新设备会被配置。
然后,BIOS通过尝试存储在CMOS存储器中的设备清单决定启动设备。用户可以在系统刚启动的时候进入一个BIOS配置程序,对设备清单进行修改。
最后,操作系统询问BIOS,以获得配置信息。对于每种设备,系统检查对应的驱动程序是否存在。若没有,系统会要求用户插入含该设备驱动程序的CD-ROM或从网络上下载相应的驱动程序。一旦有了全部的设备驱动程序,操作系统就将他们调入内核,然后初始化有关表格,创建需要的任何背景,并在每个终端上启动登录程序或CGI。
1.4操作系统大观园
1.4.1大型机操作系统
用于大型机的操作系统主要面向多个作业的同时处理。系统主要提供三类服务:批处理,事物处理和分时。
批处理系统:处理不需要交互式用户干预的周期性作业
事务处理系统:负责处理大量小的请求
分时系统:运行多个远程用户同时在计算机上运行作业
1.4.2服务器操作系统
服务器可以是大型的个人计算机,工作站,甚至是大型机。
他们通过网络同时为若干个用户服务,并且允许用户共享硬件和软件资源,服务器可以提供打印服务,文件服务和web服务。
1.4.3多处理器操作系统
获得大量联合计算能力的常用方法是将多个CPU连接成单个的系统。
依据连接和共享方式的不同,这些系统称为并行计算机,多计算机或多处理器。他们需要专有操作系统。
1.4.5个人计算机操作系统
现代个人计算机操作系统都支持多道程序处理,在启动时,通常由几十个程序开始允许,目的是为单个用户提供良好的支持。
1.4.6掌上计算机操作系统
掌上计算机:一种可以握在手中操作的小型计算机。android操作系统和苹果的iOS操作系统。
1.4.7嵌入式操作系统
嵌入式系统在用来控制设备的计算机中(微波炉,电视,汽车等)运行。区分掌上系统和嵌入式系统的主要特征是,不可信软件不可以按装在嵌入式系统上。主要的嵌入式操作系统有,linux,QNX和VxWorks等
1.4.8传感器节点操作系统
传感器是一种靠电池驱动且内建有无线电的小型计算机。
每个传感器节点是一个配有CPU,RAM,ROM以及一个或多个环境传感器的实实在在的计算机。节点上运行一个小型但真实的操作系统,通常该系统是靠事件驱动,可以响应外部事件,或者基于内部时钟进行周期性的测量。TinyOS是一个用于传感器节点的知名操作系统。
1.4.8智能卡操作系统
最小的操作系统运行在智能卡上,智能卡是一种包含一块CPU芯片的信用卡。它有非常严格的运行能耗和存储空间的限制。有些智能卡是面向JAVA的,意味着在该智能卡的ROM中有一个JAVA虚拟机解释器。
来源:freebuf.com 2021-04-04 22:37:45 by: hu666666
请登录后发表评论
注册