操作系统
一、简述
操作系统:在硬件的基础之上,够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求的一层软件。
- 带有图形界面的操作系统被称为 GUI
- 基于文本、命令行的通常称为 Shell
例如:Windows、Linux、OS X …
二、计算机硬件
CPU
CPU 是计算机的大脑,和内存进行交互并从中提取指令并执行。
执行周期:从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。
每个 CPU 都有一组可以执行的特定指令集。即,x86 和 ARM 的 CPU 不能交叉执行程序。
通用寄存器:由于访问内存获取执行或数据要比执行指令花费的时间长,因此所有的 CPU 内部都会包含一些寄存器来保存关键变量和临时结果。
程序计数器:指示下一条需要从内存提取指令的地址,提取指令后,程序计数器将更新为下一条需要提取的地址。
堆栈指针:指向内存中当前栈的顶端。堆栈指针会包含输入过程中的有关参数、局部变量以及没有保存在寄存器中的临时变量。
程序状态字寄存器:由操作系统维护的8个字节(64位) long 类型的数据集合。它会跟踪当前系统的状态。
多线程
多线程允许 CPU 保持两个不同的线程状态并且在纳秒级的时间完成切换。每个线程对操作系统来说都像是一个单个的 CPU。
多核芯片
多核芯片在其上有效地承载了四个微型芯片,每个微型芯片都有自己的独立CPU。
内存
结构越靠上存储器速度越高,容量越小,成本越高。
寄存器
位于 CPU 中,和 CPU 材料相同。
通用寄存器:由于访问内存获取执行或数据要比执行指令花费的时间长,因此所有的 CPU 内部都会包含一些寄存器来保存关键变量和临时结果。
程序计数器:指示下一条需要从内存提取指令的地址,提取指令后,程序计数器将更新为下一条需要提取的地址。
堆栈指针:指向内存中当前栈的顶端。堆栈指针会包含输入过程中的有关参数、局部变量以及没有保存在寄存器中的临时变量。
程序状态字寄存器:由操作系统维护的8个字节(64位) long 类型的数据集合。它会跟踪当前系统的状态。
高速缓存
多数由硬件控制,当应用程序需要从内存中读取关键词的时候,高速缓存的硬件会检查所需要的高速缓存行是否在高速缓存中。
时钟周期:振荡器两个脉冲之间的时间量。每秒脉冲数越高,计算机处理器处理信息的速度就越快。
主存
随机存储器(RAM):内存中最重要的一种,表示既可以从中读取数据,也可以写入数据。当机器关闭时,内存中的信息会丢失。
ROM:内容一旦存储后就不会再被修改。它非常快而且便宜,bootstrap 就存放在 ROM 中。
EEPROM(Electrically Erasable PROM) 和 闪存(flash memory):非易失性,但是可以擦除和重写。
CMOS:易失性,计算机都会使用 CMOS 存储器保持当前时间和日期。
磁盘
磁盘:一种机械装置,在一个磁盘中有一个或多个金属盘片,它们以 5400rpm、7200rpm、10800rpm 或更高的速度旋转。
磁道:磁盘一系列的同心圆。
扇区:每个磁道划分若干扇区。
固态硬盘(Solid State Disk, SSD)并不属于磁盘。
I/O 设备
I/O 设备一般包括两个部分:设备控制器和设备本身。
控制器:本身是一块芯片或者一组芯片,能够控制物理设备以及接收操作系统的指令,为操作系统提供一个更简单的接口。
设备本身:有一个相对简单的接口,而且也已经被标准化。
设备驱动程序(device driver): 专门与控制器进行信息交流,发出命令处理指令接收响应的软件
总线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OmLP244i-1583244445219)(https://cdn.jsdelivr.net/gh/btbsja/btbsjaimg@master/img