4.操作硬盘

操作硬盘

如下为机械硬盘

一、硬盘相关概念

CPU 通过 IO 接口与硬盘通信,针对硬盘的 IO 接口是“硬盘控制器”。硬盘控制器和硬盘是连接在一起的,是专门驱动硬盘设备的模块电路。这种接口也称为集成设备电路(Integrated Drive Electronics,IDE)。后来,又将此接口使用的技术规范归纳成全球硬盘标准,于是产生了 ATA(Advanced Technology Attachment)。硬盘串行接口称为(Serial ATA,SATA),硬盘并行接口称为(Parallel ATA,PATA)。

PATA 接口的线缆称为 IDE 线,一个 IDE 线上可以挂两块硬盘,一个是主盘(Master)、一个从盘(Slave)。现代的主盘和从盘之间的区别不明显了。主板上提供两个 IDE 插槽,分别位 IDE0 和 IDE1。支持 4 块 IDE(PATA)硬盘。

按照 ATA 标准,这两个插槽称为“通道”,IDE0 称为 Primary 通道,IDE1 称为 Secondary 通道。也就是说,每个通道上分别有主盘和从盘。

查看更多

文件系统原理2

1. 文件表(文件结构)

为什么要有文件表(文件结构)?

  • 操作系统应该允许一个进程同时、多次、打开同一个文件(并不关闭)
  • 同样的,该文件应该被允许被多个不同的进程同时打开
  • 那么,我们需要实现文件任意位置的读写,执行读写操作时,需要指定偏移量作为该文件内的起始地址。也就是说,该文件每被打开一次,文件读写的偏移量都可以任意指定。
查看更多

6.保护模式2

保护模式二

保护模式的保护主要体现在段描述符的属性字段中,这些属性只是用来描述一块内存的性质,是用来给 CPU 做参考的,当有实际行动在这片内存上发生时,CPU 用这些属性来检查动作的合法性,从而起到保护的作用。

一、向段寄存器加载选择子时的保护

当引用一个内存段时,就是往段寄存器中加载个选择子,为了避免出现非法引用内存段的情况,CPU 会做如下检查:

1. 首先根据选择子的值验证段描述符是否超越界限

处理器先检查选择子 TI 位的值,如果为 0,则从全局描述符表寄存器 gdtr 中拿到 GDT 基地址和 GDT 界限值。如果 TI 为 1,则从局部描述符表寄存器 ldtr 获取。

CPU 需要保证选择子是正确的,判断的标准是选择子的索引值一定要小于等于描述符表(GDT 或 LDT)中描述符的个数。段描述符(8字节)的最后 1 字节一定要在描述符表的界限地址之内,因此索引值要满足表达式:描述符表基地址 + 选择子中的索引值 * 8 + 7 <= 描述符表基地址 + 描述符表界限值

GDT 的第 0 个描述符是空描述符。虽然可以往寄存器中加载值为 0 的选择子,但在使用时 CPU 将抛出异常。

查看更多

可编程中断控制器8259A

一、问题来源?

可屏蔽中断是通过 INTR 信号线进入 CPU 的,一般可独立运行的外部设备,如打印机、声卡等,其发出的中断都是可屏幕中断,都共享这一根 INTR 信号线通知 CPU。

任务是串行在 CPU 上执行的,CPU 每次只能执行一个任务。对于多个同时发生的中断应该如何处理呢?

如果使用 CPU 来做这个事情,不仅要占用 CPU 时间,而且还要占用内存来存储中断队列。因此 8259A 这个芯片出现了。

8259A 的作用是负责所有来自外设的中断,其中就包括来自时钟的中断。8259A 用于管理和控制可屏蔽中断,他表现在屏蔽外设中断,对他们实行优先级判决,向 CPU 提供中断向量号等功能。并且可以通过编程的方式来设置这些功能。

二、介绍 8259A

Inter 处理器共支持 256 个中断,但 8259A 只可以管理 8 个中断,因此 Inter 处理器提供了一种解决方案,将多个 8259A 组合,官方术语叫做:级联。

查看更多

11.中断

中断

一、中断分类

内部中断:来自 CPU 内部的中断。按中断是否正常来划分,分为“软中断” 和 “异常”

外部中断:来自 CPU 外部的中断。按是否导致宕机来划分,分为“可屏蔽中断” 和 “不可屏蔽中断”

1. 外部中断

外部的中断源必须是某个硬件。因此外部中断又称为硬件中断。

CPU 提供了两条信号线,分别是 INTR(INTeRrupt)和 NMI(Non Maskable Interrupt)。外部中断是通过这两根信号线通知 CPU 的。

查看更多

定时器 8253

计算机中的时钟,大致可以分为两大类:内部时钟和外部时钟

内部时钟

内部时钟是指处理器中内部元件,如运算器、控制器的工作时序,主要用于控制、同步内部工作过程的步调。内部时钟是由晶体振荡器产生的,简称晶振,它位于主板上,其频率经过分频之后就是主板的外频,处理器和南北桥之间的通信就是基于外频。

Intel 处理器将此外频乘以某个倍数(也称为倍频)之后便称为主频。处理器取指令、执行指令中消耗的时钟周期,都是基于主频的。内部时钟是由处理器固件结构决定的,在出厂时就设定好了,无法改变。处理器内部元件的工作速度是最快的,所以内部时钟的时间单位粒度比较精细,通常是纳秒级别的

注意:内部定时是无法改变的

外部时钟

外部时钟是指处理器与外部设备或外部设备之间通信时采用的一种时序,比如 I/O 接口和处理器之间在 A/D 转换时的工作时序、两个串口设备之间进行数据传输时也要事先同步时钟等。外部设备的速度对于处理器来说就很慢了,所以其时钟的时间单位粒度较大,一般是毫秒级或秒级的

查看更多