Linux 相关概念

本贴最后更新于 2782 天前,其中的信息可能已经时异事殊

1. 我们使用文件时要怎么样来能提高磁盘 IO 速度?

如果你知道你的要新建的文件大概会占用多大的空间的话,比如 1M。那么你新建文件时就顺便和操作系统说一下,让它帮你将文件的 size 预留下来。这样实际上操作系统时会尽可能为你分配连续的 block,这样你再读取这个文件时,磁头就省去很多寻道时间了,IO 速度就显得快多了

2. 问题:磁盘“分区”有什么作用:

  • 数据的安全性,如要重装系统的时候,只需要重整系统盘的数据,不会影响其他盘的数据
  • 系统性能,读取数据时候,不会盲目读取,只需要扫描特定分区即可

3. 简述 BIOS

BIOS 是一段软件程序,被写入到主板上,这个 BIOS 就是开机时计算机执行的第一个程序,BIOS 分析计算机中可以开机的硬盘,然后读取硬盘第一扇区的 MBR(主引导分区),运行里面的引导程序。这个引导程序的目的是 load 操作系统内核文件,从而运行“操作系统”这个软件。

4. 机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的?

操作系统通过按磁道对应的柱面划分分区,来降低磁盘 IO 所花费的的寻道时间 ,进而提高磁盘的读写性能

5. touch 一个新的空文件占用磁盘空间吗? 占用的话占用多少?

一个空文件占一个 inode(一般为 256byte)

6. 新建一个空目录占用磁盘空间吗?占用多少?和新建一个文件相比,哪个占用的更大?

一个空目录占一个 block(一般为 4k)+ 一个 inode(一般为 256byte)

7. 你知道文件名是记录在磁盘的什么地方吗?

文件名是存在目录占用的 block 中的

8. 文件名最长多长?受什么制约?

文件名最长不得超过 255byte

9. 文件名太长了会影响系统性能吗?为什么会产生影响?

文件名长了会对系统性能产生影响,因为这可能会导致更多的磁盘 IO , 增加在目录下查找文件的开销

10. 一个目录下最多能建立多少个文件?

这个其实是受限于你目录所在分区的 inode 数量,你有 100W 个 inode,你最多就可以新建 100W 个文件。但是单个目录下文件数量最好不要过万,否则会因为缓存过多的目录数据而带来系统性能的问题

11. 新建一个内容大小 1k 的文件,实际会占用多大的磁盘空间?

实际会占用 1 个 block(一般为 4k)和一个 inode(一般为 256byte)

12. 向操作系统发起读取文件 2Byte 的命令,操作系统实际会读取多少呢?

文件系统在向磁盘发起 IO 请求的时候,也是以 block size 为单位的,哪怕你只向操作系统发起读取文件的 2Byte 数据,但是操作系统会一次性给你读取一个 block(一般为 4KB)回来

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...