码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统学习笔记

时间:2015-06-29 13:11:28      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

 
对文件系统原理学习的理解
 
按需分配。打开的文件属性才放入内存中。
关键点是记录某个文件用到哪几块磁盘地址。一个文件可能占多个磁盘块,可能是一个。关键在于文件的的大小

文件名,磁盘块地址,多个。
连续分配:一个文件占据了3个磁盘块。是连续在一起的。
读的性能很好,读一个文件的内容只要一次操作,找到第一个磁盘块,后面的磁盘块就知道了。不用继续旋转。
缺点是,磁盘碎片多。要想避免碎片,要多进行碎片整理(不显示,太耗费性能)。所以这种方式不适合变化大小的文件。适合固定大小。比如CD文件。
链表分配:解决磁盘碎片。文件占用三个磁盘块,这三个磁盘块可以在任意位置,很方便扩充文件的容量。比如文件增加内容,要加一个磁盘块,随便去哪里拖一个磁盘块挂上去。有一个指针指向磁盘块地址。
缺点是,随机读写耗费性能。比如要读一个文件的第6个磁盘块的内容,必须从找到文件的第一个磁盘块然后顺着顺序第二,第三.....第五全部读到,才能知道第六个磁盘块在哪里。
为了提高速度。把文件的链表放到内存中。
在内存中存储链表。
多少个文件。就要多少个链表项吗?
为了解决占用内存过多问题(磁盘容量比内存大多了。




疑问,这个链表项是如何设计的呢。
链表这种数据结构要看看。。
文件名,目录是特殊的文件。
目录下有子目录如何实现的。文件最终在目录下
 
 
 
为什么window要进行分区而linux系统不用分区?

现在明白其中原理了。

window 之所以要进行分区。就是因为,它需要区分不同的文件系统。当你请求一个文件时,给出路径,操作系统就能知道向哪个文件系统去请求,就是因为分区。一个分区只能有一个文件系统。window通过盘符(c,d,e,f等字母)来确定文件系统。

Linux不需要分区。因为它做了一个抽象层。来管理所有文件系统。
操作系统针对这个抽象层来获取数据。
使用挂载的方式。a 和b两个磁盘可以挂载到同一个目录下去。读取文件的时候,关心的是所有文件系统的抽象层操作,可以理解成接口。

 

操作系统学习笔记

标签:

原文地址:http://www.cnblogs.com/wangtao_20/p/4391101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!