关于计算机对外存(硬盘等)的访问

来源:百度知道 编辑:UC知道 时间:2024/05/17 16:52:29
希望大家尽量从偏硬、底层的角度回答。

首先,计算机是怎么知道有哪些外存储设备的?
如果我来实现,假设把内存和I/0设备统一编址,那么固定一个地址范围给I/0设备使用,通过扫描此地址范围,得到设备响应,进而确定有哪些设备。

其次,计算机能识别外存储设备的类型吗?由软件识别吧?
应该是可以。但是有这个必要吗?在硬件上,反正都是访问外设(或者其接口)的寄存器而已。此寄存器的地址是如何分配的呢?

再次,对大存储容量的外存而言,计算机操作系统都是通过文件系统(可以理解成一种数据组织格式吧)进行成块访问的吧(也就是说根据块地址-像硬盘的磁道、扇区什么的访问,而不能像内存般由于一个字节一个地址能精确到字节)?那么,磁道、扇区的划分规则是统一的吗(包括SD卡、U盘等)?如果不是,那么它们是怎样和计算机协商以表明我不是这样划分的呢?

说白了,我就是想知道当计算机读写一个文件(在硬盘、sd卡、u盘等任何外存储设备上)时,计算机是怎样软硬结合实现数据从外存(或其接口)的寄存器到内存,再到外存的。

估计我的分不好拿。当比较有乐趣哈

首先:除开USB即插即用 硬盘是在启动是加载进内存的
通过总线访问。
计算机识别外存储器是操作系统的事,但是设备必须有自己的说明数据。
格式化磁盘等就把磁道 柱面 扇区确定了 操作系统识别设备时就获得这些信息,通过算法表就能分块的读写你的设备。

一般是4KB一个(簇)访问单位

你对计算机的硬件了解的还是可以但软件你是有点欠缺啊!
你首先问计算机是怎么知道有哪些外存设备,这是windows 系统软件识别的啊,
你假设把内存和I/O统一编址?你是要改变系统软件的程序段吗 ?这个你会吗 ?其实很简单关键看你的系统了不过这个是不允许改的!
计算机能不能检测到你的外存类型主要是看你用的系统软件的版本!现在的XP VISTA 都可以支持。肯定是系统软件来识别?有这个必要吗 呵呵 其实检测出是那种设备太太简单了 只是你不懂程序而已。这都是为了维护计算机的安全和方便。应该说是不可缺少的。时间关系我不多说了 理解多少看你的 了 又什么疑问你再给我信息吧!