《操作系统原理》 记录(23)

	/**
	 * TODO 《操作系统原理》 记录(23)
	 * 		@一致性语义
	 * 			评估文件系统对于支持共享文件的一个准则
	 * 			@UNXI 语义
	 * 				共享模式1——一个用户对于已经打开的文件写入操作会对其他打开此文件的用户【可见】
	 * 				共享模式2——允许用户共享文件的当前指针位置
	 * 					如果当前用户向前移动指针则会影响其他人的文件信息
	 * 						这里可以使用影像技术————允许其他访问者修改影像而不是修改【本源】
	 * 
	 * 			@会话语义
	 * 				一个用户的对于一个打开文件的写入不能同时被其他用户同时访问————互斥
	 * 				一旦文件关闭——则只会对再次打开会话可见——已经打开文件的用户不可见	
	 * 			
	 * 			@永久共享文件语义		
	 * 				一旦一个文件被声明为共享则不允许修改
	 * 					共享文件两个特性
	 * 						文件名称不能重复使用
	 * 						文件内容不可以修改
	 * 			
	 * 	-------------关于保护-----------------			
	 * 			@访问控制
	 * 				根据用户身份进行控制
	 *					每个用户文件和目录增加一个访问控制列表
	 *					使用控制位控制访问限制
	 *	
	 *
	 *		--
	 *		文件是由操作系统定义和实现的抽象数据类型
	 *		由一系列逻辑记录组成
	 *		
	 * -------------------------------------------------
	 * 		@文件系统实现
	 * 			@文件系统结构
	 * 				磁盘提供大量的外存空间来【维护】文件系统
	 * 					---可以原地重写
	 * 						可以从磁盘上读一块+修改+写入到原来的位置
	 * 					
	 * 					---可以直接访问磁盘上的任意一块空间
	 * 						可以很方便的顺序的或者随机的访问内存中的块
	 * 							简单的移动一下磁头指针既可以访问
	 * 			@磁盘结构		
	 * 				@引导控制块
	 * 					系统从该分区引导操作系统的所需的信息
	 * 					如果磁盘没有操作系统则为空
	 * 					引导块& 分区引导扇区
	 * 
	 * 				@分区控制块			
	 * 					超级块——主控文件表
	 * 						包括分区详细信息
	 * 							分区块数、大小空闲块的数据和指针
	 * 							空闲FCB的数量和指针
	 * 		
	 * 					目录结构用来组织文件
	 * 					FCB包含很多文件信息
	 * 		
	 * 					内存分区表包含所有安装分区信息
	 * 			
	 * 					内存目录结构用来保存近来访问过的目录信息
	 * 					
	 * 					系统范围的打开文件表包括每个打开文件的FCB拷贝和其他信息
	 * 		
	 * 					单个进程的打开文件表
	 * 						指向系统范围内已打开文件表中合适条目和其他信息的指针
	 * 						
	 * 					一旦文件被创建就可以进行I/O-__此时的文件状态是系统定义的初始状态
	 * 	
	 * 		@分区和安装
	 * 			@根分区
	 * 				包括操作系统内核和其他系统文件、在引导时装入内存	
	 *				--可以在引导时装入或者稍后手动装入
	 *					操作系统会验证设备上的文件系统确实有效
	 *					操作系统通过设备驱动程序读入文件目录确定目录格式是否正确
	 *			
	 *			@虚拟文件系统
	 *				VFS层定义一个清晰的VFS文件接口
	 *				将操作系统通用操作和具体实现分开
	 *					多个接口可以同时存在一个机器上	
	 *					允许访问多个访问器访问文件系统
	 *				
	 *				VFS通过称之【vnode】的文件表示结构
	 *					该结构包含一个数值制定者以表示位于整个网络中唯一文件描述
	 *					该网络范围内的唯一性用来支持网络文件系统
	 *					--内核为每个活动的节点保存一个vnode结构
	 *					
	 *		@目录实现
	 *			@线性列表
	 *				查找文件需要线性搜索——————算法复杂度		
	 *			
	 *			@哈希表
	 *				哈希表根据文件名到的一个hash值
	 *					返回一个指向线性列表中的元素
	 *					减低搜搜能力
	 *						由于查找可能需要搜索冲突表中的关键链表——造成查找很慢
	 *						但是整体速度优于线性列表
	 *		@分配方法
	 *			@连续分配
	 *				要求每个文件在磁盘上占有一组连续的块		
	 *				磁盘地址为磁盘定义了一个线性排序
	 *				————支持顺序访问和直接访问方式
	 *					困难在于为新文件寻找空间
	 *
	 *			@链接分配
	 *				每个文件是磁盘块的链表,磁盘块分布在磁盘的任意空间
	 *				目录包含文件的第一块指针和最后一块指针
	 *				---只能有效的用于文件的顺序访问
	 *					必须找到文件的第一个块然后指引找到最后一个指针
	 *						不能有效的支持文件的直接访问
	 *							必须知道文件的下一个指针是哪里
	 *		
	 *				---文件因为指针的所需要的空间变得更大
	 *				
	 *			@索引分配
	 *				把所有链接指针放到一起————索引块
	 *				索引分配会浪费空间
	 *					索引块指针的分配通常大于链接分配的指针
	 *						文件的最终大小会更高于链接分配的文件大小
	 *		
	 *					@分配索引块的方法
	 *						链接方案
	 *							将多个索引块链接起来
	 *								比如————一个索引块可以包含下一个索引的内容
	 *									假设下一个地址不为nil
	 *						多层索引
	 *							第一层索引块指向第二组索引块
	 *								第二层索引块指向具体文件
	 *						组合方案
	 *							索引块的前15个指针存储在inode中
	 *							其中的前12个指针指向直接块
	 *								包含了能够存储文件数据块的地址
	 *							其他三个指针指向间接块
	 *								一二三级间接块
	 *							
	 *			@性能
	 *				分配之前需要知道系统如何使用
	 *					考虑顺序访问还是随机访问
	 *									
	 * 
	 */
上一篇:第七天23号


下一篇:C 练习实例23