学习操作系统(1)—— 初始操作系统

版权声明:本文为博主原创,未经博主允许不得转载。 https://blog.csdn.net/weixin_36904568/article/details/89222053

一:操作系统的基本概念

定义:操作系统是运行在内核态的系统软件。

  • 对于用户:管理应用程序,为应用程序提供服务
  • 对于机器:管理资源,分配资源
  • 将硬件进行抽象:
    CPU ——》进程
    磁盘 ——》文件
    内存 ——》地址空间

特征

  • 并发性:在一段时间有多个程序同时运行。(并行是在同一时间点)
  • 共享性:共享资源给应用程序。互斥共享或“同时”共享。
  • 虚拟性:一台物理机器虚拟为多个机器
  • 异步性:程序运行不一定是连续的,决定于操作系统的调用

二:操作系统的历史

  • 第一代:真空管和穿孔卡片
  • 第二代:晶体管和批处理系统
  • 第三代:集成电路芯片和多道程序设计
  • 至今:个人计算机

三:操作系统与计算机硬件

由总线连接:CPU(处理器)+内存(存储器)+IO设备(视频控制器+键盘控制器+USB控制器+硬盘控制器)

1. 计算机的管理人——CPU

(1)工作:

  1. 从内存取出指令
  2. 解码并确定类型和操作数
  3. 执行指令

(2)寄存器:由于取指令的过程很久,CPU会使用寄存器

  1. 通用寄存器:保存变量和临时结果
  2. 专门寄存器:
    程序计数器,保存下一个指令的内存地址。
    堆栈指针,指向内存栈的顶端(已经进入还未退出的框架)。
    程序状态字(PSW)寄存器:包含程序的多个控制信息。

(3)指令集:每个CPU都有一套专门的指令集

  • 在寄存器和内存之间交换字
  • 组合操作数

(4)机制

  • 简单模型:同时读取,解码,执行一条指令
  • 流水线:同时取多条指令的机制。一个CPU可以有分开的取指单元,解码单元,执行单元。一旦指令进入流水线就必须被执行完毕。
  • 超标量CPU:有多个执行单元。多个指令被取出后解码并装入缓冲区,直至执行完毕。

(5)模式:由PSW控制

  • 内核态:操作系统可以访问整个硬件。CPU可以执行所有指令
  • 用户态:CPU只能执行部分指令,禁止执行有关IO和内存访问的指令。

用户态转换内核态:可以通过系统调用这个特殊指令,陷入内核并调用操作系统。

(6)多核芯片

多线程允许CPU保存多个不同的状态,使得每个线程好像有独立的CPU在运行

2. 计算机的仓库——存储器

顶层——CPU

访问时间最快,但是容量也最小。(在N位CPU中容量为N×N位)

第二层——高速缓存

最常用的高速缓存行放置在CPU顶部或接近CPU的高速缓存。

访问较快,但是造价昂贵,容量较小。

流程:当程序需要读取存储字时,通过所引用内存地址的高位计算应该使用的缓存行
  • 如果高速缓存行在高速缓存中,则命中,无需把请求送入主存,一般需要两个时钟周期。
  • 如果高速缓存行不在高速缓存中,则未命中,必须访问主存。此时会调入新的内容

第三层——内存

(1)分类
  • RAM:随机访问存储器。早期用电磁体制作主存。
  • ROM:只读存储器。在电源切断后不会丢失内容,也无法修改,便宜。
  • EEPROM:电可擦除可编程ROM。在电源切断后不会丢失内容,可修改
  • FM:闪存。在电源切断后不会丢失内容,可修改。(通常是电子设备的存储媒介)
  • CMOS:易丢失内容(通常用来更新时间,保存计算机启动参数)
(2)虚拟内存

把程序放在下一层的磁盘,通过CPU的存储器管理单元把程序的逻辑地址转换为这一层的内存地址,把这一层的内存作为缓存。

第四层——磁盘/硬盘

容量大,但是由于是机械装置,随机访问十分慢。

(1)结构
  • 磁道:磁盘包含多个金属盘片,信息写在磁盘的同心圆上。每个磁头可以读取一段环形区域,称为磁道
  • 柱面:所有磁道合并为一个柱面
  • 扇区:磁道划分为多个扇区
(2)过程
  1. 机械臂从一个柱面移动到另一个柱面
  2. 机械臂到达正确的柱面也就是正确的磁道时,等待扇区旋转
  3. 扇区旋转到磁头下,开始读写

第五层——磁带

可以保持大量的数据,存储量最大。经常用于上一层磁盘的备份。

3. 计算机的前台货架——IO设备

包括设备管理器和设备本身

(1)设备管理器

为操作系统提供一个接口,方便操作系统控制设备。

设备寄存器

用于设备管理器的通信

  • 映射到操作系统的内存空间(需要占用一定的空间)
  • 放入专门的IO端口空间,每个寄存器都有一个端口地址(需要专门的IO命令)

激活:设备驱动程序从操作系统获取命令,翻译为值并填入设备寄存器中

设备驱动程序(CPU)

对设备管理器发出命令并接收响应的软件。

装入操作系统:
  • UNIX:内核与设备驱动程序重新连接
  • WINDOWS:在操作系统文件中设置入口,由操作系统自己装载
  • USB:动态装载驱动程序

(2)工作

满等待:需要一直占据CPU
  1. 用户程序发出一个系统调用
  2. 内核将其翻译为对应设备驱动程序的过程调用
  3. 设备驱动程序启动IO,不断检查该设备
  4. 当设备完成工作后,设备驱动程序把数据送到需要的地方并返回
  5. 操作系统把控制返回给用户
中断
  1. 用户程序发出一个系统调用
  2. 内核将其翻译为对应设备驱动程序的过程调用
  3. 设备驱动程序激活设备寄存器,设备管理器启动设备
  4. 设备完成工作后,设备管理器发出中断信号,通知中断控制器
  5. CPU决定中断:操作系统阻塞用户,把PSW和程序计数器压入栈,通过设备编号寻找设备驱动程序中的中断处理程序的地址。
  6. 中断处理程序开始后,取走PSW和程序计数器,查询设备状态
  7. 中断处理程序完成后,用户程序继续进行指令
DMA芯片

DMA芯片可以控制内存和控制器的交流,无需CPU干预。

  1. CPU对DMA进行设置
  2. 启动DMA
  3. DMA芯片完成后产生中断

4. 计算机的联络人——总线

基本部分:

  • 高速缓存总线:连接CPU和高速缓存
  • 局部总线:连接CPU和PCI桥
  • 内存总线:连接PCI桥和存储器

PCI部分:连接PCI桥、ISA桥和外部设备,传输速度快

  • PCI总线:连接USB、SCSI、图片适配器。
  • USB总线:连接键盘、鼠标等慢速IO设备
  • SCSI总线:连接高速硬盘、扫描仪等高速IO设备

ISA部分:连接ISA桥和外部设备,传输速度慢

  • IDE总线:连接磁盘、CD等磁盘IO设备
  • ISA总线:连接声卡、打印机、调制解调器

猜你喜欢

转载自blog.csdn.net/weixin_36904568/article/details/89222053