目录
正文
1.IO
1.1概念
O操作是计算机与外部世界进行交互的基本方式,它涉及到数据在计算机内部和外部世界之间的流动。它包括两个方向:
- 输入(Input):数据从外部设备(如键盘、鼠标、扫描仪等)流入计算机系统。
- 输出(Output):数据从计算机流向外部设备(如显示器、打印机、扬声器等)。
1.2同步IO和异步IO
同步IO(Synchronous IO)和异步IO(Asynchronous IO)是两种不同的数据传输方式,它们在程序的控制流程和性能优化方面有着显著的区别。
同步IO是一种传统的IO操作方式,其特点如下:
- 阻塞性:在同步IO操作中,当一个调用发出后,调用者(通常是CPU或程序)会被阻塞,直到数据传输操作完成。这意味着在等待数据传输的过程中,调用者不能执行其他任务。
- 顺序性:同步IO操作是顺序执行的,即IO操作必须等待前一个操作完成后才能开始下一个操作。
- 简单性:由于其阻塞性质,同步IO的编程模型相对简单,容易理解和实现。
- 效率问题:由于调用者在数据传输期间不能执行其他任务,这可能导致资源浪费和性能瓶颈,特别是在高延迟或大数据量传输的场景中。
异步IO是一种更为现代的IO操作方式,其特点如下:
- 非阻塞性:在异步IO操作中,调用者发出IO请求后不会被阻塞,可以继续执行后续操作。数据传输完成后,操作系统会通知调用者。
- 并发性:异步IO允许同时启动多个IO操作,提高了程序的并发处理能力。
- 复杂性:由于IO操作是非阻塞的,编程模型相对复杂。需要使用回调函数、事件、或未来/承诺(future/promise)等机制来处理数据传输完成后的逻辑。
- 效率:异步IO可以提高CPU的利用率和程序的吞吐量,特别是在IO等待时间较长的情况下,因为调用者可以在等待数据传输时执行其他任务。
在实际应用中,同步I/O和异步I/O都有着各自的优缺点,需要根据具体的应用场景来选择合适的方式。
2.存储
2.1概念
存储是计算机系统中用来存储数据和程序的重要组成部分,主要包括内存和辅助存储设备两种类型:
- 主存储(Primary Storage):也称为内存或RAM(Random Access Memory),是计算机的主要工作区,用于存储当前正在运行的程序和处理的数据。特点是访问速度快,但数据在断电后会丢失。
- 辅助存储(Secondary Storage):用于长期保存数据,即使在断电的情况下也不会丢失。常见的辅助存储设备包括硬盘驱动器(HDD)、固态驱动器(SSD)、光盘、USB闪存驱动器等。
2.2性能指标
存储设备的性能通常由以下几个指标衡量:
- 数据传输速率:设备每秒可以传输的数据量,通常以MB/s或GB/s为单位。
- 访问时间:从请求数据到数据可用的时间,包括寻址时间和传输时间。
- IOPS(每秒输入/输出操作数):设备每秒可以处理的读写操作次数。
3.硬盘
3.1概念
硬盘是计算机系统中常用的外部存储设备,用于长期存储数据和程序。硬盘通常由一个或多个盘片、磁头、电机和控制电路组成,通过磁性记录技术将数据存储在盘片上。
3.2类型
根据不同的分类方法可以有很多不同的类型,这里就简单阐述两类:
- 传统硬盘驱动器(HDD):使用旋转的盘片和磁头进行数据存储和读写,具有较大的存储容量和相对较低的价格。
- 固态硬盘(SSD):使用闪存芯片进行数据存储和读写,具有较快的读写速度、低功耗和抗震抗摔等优点,但价格较高。
3.3性能指标
硬盘的性能计算涉及到多个方面,包括硬盘的物理特性、操作效率、数据传输速率以及用户的实际应用场景等,这里给几个影响因素。
硬盘转速:硬盘转速通常以每分钟旋转次数(RPM)来衡量,它是硬盘性能的一个重要指标。转速越高,读写头到达磁道上任意位置的时间就越短,从而提高数据访问速度。常见的转速有5400 RPM、7200 RPM,甚至10000 RPM或更高。
平均访问时间:平均访问时间是硬盘从接收到指令到开始从盘片上读取或写入数据所需的平均时间。它包括寻道时间和旋转延迟。计算公式如下:平均访问时间=平均寻道时间+旋转延迟
IOPS (每秒输入/输出操作数):IOPS是衡量硬盘性能的另一个重要指标,它表示硬盘每秒钟可以执行的读写操作次数。IOPS越高,硬盘处理高并发请求的能力越强。
吞吐量:吞吐量是硬盘在单位时间内可以处理的数据量,通常以MB/s表示。它受到数据传输速率和硬盘的IOPS的影响。
4.文件系统
4.1概念
文件系统是计算机操作系统用于有效地存储、组织、管理和访问磁盘上的数据的一种系统。它负责数据的存储、检索和更新,并控制数据访问的权限。
4.2类型
不同的操作系统使用不同的文件系统:
- Windows:通常使用NTFS(New Technology File System)。
- macOS:主要使用HFS+(Hierarchical File System Plus)或APFS(Apple File System),后者是较新的文件系统,提供更好的性能和安全性。
- Linux:可以使用多种文件系统,如ext4、XFS、FAT32等。
- Unix-like系统:通常使用ext4、XFS、UFS等。
4.3结构
文件系统通常包含以下组件:
- 文件:数据的基本存储单元,可以包含文本、图像、视频等。
- 目录:用于组织和管理文件的层次结构。
- inode(索引节点):在Unix-like系统中,inode是文件系统中的一个数据结构,用于存储文件的元数据,如文件大小、创建时间、权限等,但不存储文件名或数据内容。
- 文件描述符:在程序中,用于访问文件的数字标识符。
4.4工作原理
文件系统的工作原理涉及以下几个关键步骤:
- 挂载:将文件系统附加到操作系统的目录结构中,使其可访问。
- 打开文件:获取文件描述符,用于后续的读写操作。
- 读写文件:通过文件描述符,操作系统可以定位到文件的inode和数据块,进行数据的读写操作。
- 关闭文件:完成文件操作后,关闭文件描述符,释放系统资源。
总结
本文主要对一些有关文件的基础知识进行了简单的概述和总结,大部分的知识都可以留下一个简单印象即可。有想了解的内容,可以更深层地阅读有关书籍和文章。