① 请教高手!!!
1。考试难度与以前差不多。
2。没有上机考试,依然采取笔试方式。
3。与三级网络相比,就我个人认为,程序员考试相对要容易。三级网络既考笔试又考上机,且考试涉及的知识面和程序员差不多广。
但主要还是由每个人的兴趣爱好来决定。
程序员比较适合今后搞编程这行,而三级网络主要适合今后从事网络工程方面的工作。
附:
2007年程序员考试大纲
一考试说明
1.考试要求:
(1)掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
(2)理解计算机的组成以及各主要部件的性能指标;
(3)掌握操作系统、程序设计语言的基础知识;
(4)熟练掌握计算机常用办公软件的基本操作方法;
(5)熟练掌握基本数据结构和常用算法;
(6)熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
(7)熟悉数据库、网络和多媒体的基础知识;
(8)掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
(9)了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(10)了解信息化、计算机应用的基础知识;
(11)正确阅读和理解计算机领域的简单英文资料。
2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出程序的相应文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序;具有助理工程师(或技术员)的实际工作能力和业务水平。
3.本考试设置的科目包括:
(1)计算机硬软件基础知识,考试时间为150分钟,笔试;
(2)程序设计,考试时间为150分钟,笔试。
二、考试范围
考试科目1:计算机硬软件基础知识
1. 计算机科学基础
1.1 数制及其转换
二进制、十进制和十六进制等常用数制及其相互转换
1.2 数据的表示
数的表示(原码、反码、补码表示,整数和实数的机内表示方法,精度和溢出)
非数值表示(字符和汉字的机内表示、声音和图像的机内表示)
校验方法和校验码(奇偶校验码、海明校验码)
1.3 算术运算和逻辑运算
计算机中二进制数的运算方法
逻辑代数的基本运算和逻辑表达式的化简
1.4 数学应用
常用数值计算(矩阵、方程的近似求解、插值)
排列组合、应用统计(数据的统计分析)
1.5 常用数据结构
数组(表态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树)、图的定义、存储和操作
1.6 常用算法
常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表)
2. 计算机系统基础知识
2.1 硬件基础知识
2.1.1 计算机系统的组成,硬件系统、软件系统及层次结构
2.1.2 计算机类型和特点
微机、工作站、服务器、大型计算机、巨型计算机
2.1.3 中央处理器CPU
算器和控制器的组成,常用的寄存器、指令系统、寻址方式、指令执行控制、处理机性能
2.1.4 主存和辅存
存储器系统
存储介质(半导体、硬盘、光盘、闪存、软盘、磁带等)
主存储器的组成、性能及基本原理
Cache的概念、虚拟存储的概念
辅存设备的类型、特性、性能和容量计算
2.1.5 I/O接口、I/O设备和通信设备
I/O接口(总线、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394)
I/O设备的类型和特性(键盘、鼠标、显示器、打印机、扫描仪、摄像头,以及各种辅存设备)
I/O设备控制方式(中断控制、DMA)
通信设备的类型和特性(Modem、集线器、交换机、中继器、路由器、网桥、网关)及其连接方法和连接介质(串行连接、并行连接,传输介质的类型和特性)
2.2 软件基础知识
2.2.1 操作系统基础知识
操作系统的类型和功能
操作系统的内核(中断控制)和进程概念
处理机管理、存储管理、设备管理、文件管理、作业管理
汉字处理
图形用户界面及其操作方法
2.2.2 程序设计语言和语言处理程序基础知识
汇编、编译、解释系统的基础知识
程序设计语言的基本成分(数据、运算、控制和传输)
过程(函数)调用
2.3 网络基础知识
网络的功能、分类、组成和拓扑结构
网络体系结构与协议(OSI/RM,TCP/IP)
常用网络设备与网络通信设备,网络操作系统基础知识和使用
Client/Server结构、Browser/Server结构
LAN基础知识
Internet基础知识
2.4 数据库基础知识
数据库管理系统的主要功能和特征
数据库模型(概念模式、外模式、内模式)
数据模型,ER图
数据操作(关系运算)
数据库语言(SQL)
数据库的主要控制功能
2.5 多媒体基础知识
多媒体基础概念,常用多媒体设备性能特征,常用多媒体文件格式类型
简单图形的绘制,图像文件的基本处理方法
音频和视频信息的应用
简单多媒体应用制作方法
2.6 系统性能指标
响应时间、吞吐量、周转时间等概念
可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性等概念
2.7 计算机应用基础知识和常用办公软件的操作方法
信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等概念
文字处理基础知识和常用操作方法
电子表格处理基础知识和常用操作方法
演示文稿制作方法
电子邮件处理操作方法
网页制作方法
3. 软件开发和运行维护基础知识
3.1 软件工程和项目管理基础知识
软件工程基本概念
软件开发各阶段的目标和任务
软件过程基本知识
软件工程项目管理基本知识
面向对象开发方法基础知识
软件开发工具与环境基础知识(CASE)
软件质量管理基础知识
3.2 软件需求分析、需求定义及软件基础知识
结构化分析概念(数据流图(DFD)、实体关系图(ER))
面向对象设计、结构化设计基础知识
模拟设计、代码设计、人机界面设计要点
3.3 程序设计基础知识
结构设计程序设计,程序流程图,NS图,PAD图
程序设计风格
面向对象设计基础知识、可视化程序设计基础知识
3.4 程序测试基础知识
黑盒测试、白盒测试、灰盒测试基础知识
测试工作流程
3.5 软件开发文档基础知识
3.6 软件运行和维护基础知识
软件运行基础知识
软件维护基础知识
4. 安全性基础知识
安全性基本概念
计算机病毒的防治,计算机犯罪的防范
访问控制
加密与解密基础知识
5. 标准化基础知识
标准化基本概念
国际标准、国家标准、行业标准、企业标准基础知识
代码标准、文件格式标准、安全标准、软件开发规范和文档标准基础知识
标准化机构
6. 信息化基本知识
信息化基本概念
全球信息化趋势,国家信息化战略,企业信息化战略和策略常识
有关的法律、法规要点
过程教育、电子商务、电子政务等常识
企业信息资源管理常识
7. 计算机专业英语
掌握计算机技术的基本词汇
能正确阅读和理解本领域的简单英文资料
考试科目2:程序设计
1. 内部设计
1.1 理解外部设计
1.2 功能划分和确定结构
数据流图、结构图
1.3 物理数据设计
确定数据组织方式、存储介质,设计记录格式和处理方式
1.4 详细输入输出设计
界面设计、报表设计
1.5 内部设计文档
对程序接口、程序功能、人机界面、输入输出、测试计划的描述
1.6 内部设计文档
2. 程序设计
2.1 模拟划分(原则、方法、标准)
2.2 编写程序设计文档
模块规格说明书(程序处理逻辑的描述、输入输出数据格式的描述)
测试要求说明书(测试类型和目标、测试用例、测试方法)
2.3 程序设计评审
3. 程序实现
3.1 编程
编程方法和标准
程序设计语言的使用
人工走查
程序文档化
3.2 程序测试
准备测试环境和测试工具
准备测试数据
写出测试报告
4. 程序设计语言(C语言为必选,其他语言可以任选一种)
4.1 C程序设计语言(ANSI C标准)
程序结构,语法,数据类型说明,可执行语句,函数调用,标准库函数,指针
4.2 C++程序设计语言(ANSI C++标准)
C++和面向对象程序设计,语法和程序结构,类、成员、构造函数、析构函数、模板、继承、多态
4.3 Java程序设计(Java 2)
Java和面向对象程序设计
语言机制(程序结构和语法,类、成员、构造函数、析构函数、继承、接口)
4.4 Visual Basic程序设计(Visual Basic 6.0)
用户界面设计
程序结构和语法
文件系统对象
访问数据库
② 利用文件系统处理数据与数据库系统处理数据有什么不同各有何优缺点
早期的数据库管理都是采用文件系统。在文件系统中,数据按其内容、结构和用途组成若干命名的文件。文件一般为某个用户或用户组所有,但可供其他用户共享。用户可以通过操作系统对文件进行打开、读、写和关闭等操作。
文件系统有明显的缺点:
(1).编写应用程序很不方便。
应用程序的设计者必须对所用的文件的逻辑及物理结构有清楚的了解。操作系统 只能打开、关 闭、读、写等几个低级的文件操作命令,对文件的查询修改等处理都须在应用程序内解决。应用程序还 不可避免地在功能上有所重复。在文件系统上编写应用程序的效率不高。
(2).文件的设计很难满足多种应用程序的不同要求,数据冗余经常是不可避免的。
为了兼顾各种应用程序的要求,在设计文件系统时,往往不得不增加冗余的数据。数据冗余不仅浪费空间,而且会带来数据的不一致性(inconsistency).在文件系统中没有维护数据一致性的监控机制,数据的一致性完全有用户负责维护。在简单的系统中勉强能应付,但在大型复杂的系统中几乎是不可能完成的。
(3).文件结构的修改将导致应用程序的修改,应用程序的维护量将很大。
(4).文件系统不支持对文件的并发访问(concurrent access)。
(5).数据缺少统一管理,在数据的结构、编码、表示格式、命名以及输出格式等方面不容易做到规范化、标准化;数据安全和保密方面,也难以采取有效的办法。
针对文件系统的缺点,人们发展了以统一管理和共享数据为主要特征的数据库系统。在数据库系统中,数据不再仅仅服务于某个程序或用户,而是看成一个单位的共享资源,由一个叫数据库管理系统(Data Management System,简称DBMS)的软件统一管理。由于有DBMS的统一管理,应用程序不必直接介入诸如打开、关闭、读写文件等低级的操作,而由DBMS代办。用户也不必关系数据存储和其他实现的细节,可在更高的抽象级别上观察和访问数据。文件结构的一些修改也可以由DBMS屏蔽,使用户看不到这些修改,从而减少应用程序的维护工作量,提高数据的独立性。由于数据的统一管理,人们可以从全单位着眼,合理组织数据,减少数据冗余;还可以更好地贯彻规范化和标准化,从而有利于数据的转移和更大范围的共享。由于DBMS不是为某个应用程序服务,而是为整个单位服务的,DBMS做得复杂一些也是可以接受的。许多在文件系统中难以实现的动能,在DBMS中都一一实现了。
例如:适合不同类型用户的多种用户界面,保证并发访问时的数据一致性的并发控制(concurrent control),增进数据安全性(security)的访问控制(access control),在故障的情况下保证数据一致性的恢复(recovery)功能,保证数据在语义上的一致性的完整性约束(integrity constraints)检查功能等。随着计算机应用的发展,DBMS的功能愈来愈强,规模愈来愈大,复杂性和开销也随之增加。目前,在一些功能非常明确且无数据共享的简单应用系统中,为减少开销,提高性能,有时仍采用文件系统;不过在数据密集型应用系统中,基本上都使用数据库系统。
现代的数据库管理系统应该具备的7个功能:
1、提供高级的用户接口
2、查询处理和优化
这里的查询(query)泛指用户对数据库所提的访问要求,不但包含数据检索,也包括修改\定义新数据等
3、数据目录管理
4、并发控制
5、恢复功能
6、完整性约束检查
7、访问控制
数据管理和数据处理一样,都是计算机系统的最基本的支撑技术。尽管计算机科学技术经历了飞速的发展,但数据管理的这一地位没有变化。数据管理将作为计算机科学技术的一个重要分支一直发展下去,社会信息化,对数据管理的要求也愈高。
③ 常见的文件系统有哪些
常见的文件系统有FAT、NTFS、ExtFAT、ext2、ext3、reiserFS、VFAT、APFS。
1、FAT文件系统。
FAT文件系统诞生于1977年,它最初是为软盘设计的文件系统,但是后来随着微软推出dos和win 9x系统,FAT文件系统经过适配被逐渐用到了硬盘上,并且在那时的20年中,一直是主流的文件系统。
2、NTFS文件系统。
它是一种比FAT32功能更加强大的文件系统,从windows 2000之后的windows系统的默认文件系统都是NTFS,而且这些windows系统只能够安装在NTFS格式的磁盘上。NTFS系统是一个日志性的文件系统,系统中对文件的操作都可以被记录下来,当系统崩溃之后,利用日志功能可以修复数据。
3、ExtFAT文件系统。
ExFAT也是微软开发的文件系统,它是专门为闪存盘设计的文件系统,单个文件突破了4G的限制,而且分区的最大容量可达64ZB,建议512TB。 ExFAT在windows,Linux以及Mac系统上,都可以读写,作为U盘或者是移动硬盘的格式还是比较合适的。
4、ext2文件系统。
ext2是为解决ext文件系统的缺陷而设计的可扩展的、高性能的文件系统,又被称为二级扩展文件系统。它是Linux文件系统中使用最多的类型,并且在速度和CPU利用率上较为突出。ext2存取文件的性能极好,并可以支持256字节的长文件名,是GNU/Linux系统中标准的文件系统。
5、ext3文件系统。
ext3是ext2文件系统的日志版本,它在ext2文件系统中增加了日志的功能。ext3提供了3种日志模式:日志(journal)、顺序(ordered)和回写(writeback)。与ext2相比,ext3提供了更好的安全性以及向上向下的兼容性能。
6、reiserFS文件系统。
reiserFS是Linux环境下最稳定的日志文件系统之一,使用快速的平衡二叉树(binary tree)算法来查找磁盘上的自由空间和已有的文件,其搜索速度高于ext2,reiserFS能够像其他大多数文件系统一样,可动态的分配索引节,而无须在文件系统中创建固定的索引节。
7、VFAT文件系统。
VFAT主要用于处理长文件的一种文件名系统,它运行在保护模式下并使用VCACHE进行缓存,并具有和Windows系列文件系统和Linux文件系统兼容的特性。因此VFAT可以作为Windows和Linux交换文件的分区。
8、APFS文件系统。
APFS是苹果公司发布的新的文件格式,替代目前所使用的HFS+格式。这一全新文件系统专门针对闪存/SSD进行优化,提供了更强大的加密、写入时复制元数据、空间分享、文件和目录克隆、快照、目录大小快速调整、原子级安全存储基元,以及改进的文件系统底层技术。
④ 简述微软的FAT32文件系统
FAT32是分区格式的一种。这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了FAT16对每一个分区的容量只有2 GB的限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大硬盘定义成一个分区而不必分为几个分区使用,大大方便了对磁盘的管理。但由于FAT32分区内无法存放大于4GB的单个文件,且性能不佳,易产生磁盘碎片。目前已被性能更优异的NTFS分区格式所取代。
分区标识: 0x0B, 0x0C(MBR)EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT)
最大单文件大小: 4 GB (Fat16分区是2 GB )
最大文件数量: 268,435,437
最长档名限制: 8.3 或者 长文件名255个字符
最大卷大小: 8 TB (在windows 2000和windows XP环境下格式化程序只能创建最大32GBFAT32文件系统,不过可以用如PQ等分区软件分出大于32GB的FAT32分区,大于32GB的FAT32分区在WIN2000/XP下使用完全正常)
记录日期: 创建、修改、访问
日期范围: 1980年1月1日至2107年12月31日
属性: 只读,隐藏,系统,卷标,子目录,档案
透明加密:不支持
透明压缩:不支持
访问许可:无限制
性能特点
编辑
FAT32(File Allocation Table)具有一个最大的优点:在一个不超过8GB 的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少磁盘的浪费,提高磁盘利用率。目前,支持这一磁盘分区格式的操作系统有Win95、Win98、Win2000、Win2003、Win Vista、Win7和Win10。部分智能手机也支持对FAT32格式存储器的直接读写(OTG)。但是,这种分区格式也有它的缺点,首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢。
约束
编辑
windows 2000和windows XP能够读写任何大小的FAT32文件系统,但是这些平台上的格式化程序只能创建最大32GB的FAT32文件系统。
在dos系统下可直接访问fat32分区,而ntfs分区则不能在dos下直接访问。
缺点
编辑
但FAT有一个严重的缺点:当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入,长期使用后会使档案资料变得逐渐分散,而减慢了读写速度。硬盘碎片整理是一种解决方法,但必须经常整理来保持FAT文件系统的效率。还有就是FAT32分区因为设计缺陷,无法支持超过4GB的单个文件.
磁盘结构
编辑
主启动区 文件 分配表 #1 文件 分配表 #2 根目录 其他所有资料...剩下磁盘空间
一个FAT文件系统包括四个不同的部分。
保留扇区
位于最开始的位置。第一个保留扇区是引导区(分区启动记录)。它包括一个称为基本输入输出参数块的区域(包括一些基本的文件系统信息尤其是它的类型和其它指向其它扇区的指针),通常包括操作系统的启动调用代码。保留扇区的总数记录在引导扇区中的一个参数中。引导扇区中的重要信息可以被DOS和OS/2中称为驱动器参数块的操作系统结构访问。
FAT区域
它包含有两份文件分配表,这是出于系统冗余考虑,尽管它很少使用,即使是磁盘修复工具也很少使用它。它是分区信息的映射表,指示簇是如何存储的。
根目录区域
它是在根目录中存储文件和目录信息的目录表。在FAT32下它可以存在分区中的任何位置,但是在早期的版本中它永远紧随FAT区域之后。
数据区域
这是实际的文件和目录数据存储的区域,它占据了分区的绝大部分。通过简单地在FAT中添加文件链接的个数可以任意增加文件大小和子目录个数(只要有空簇存在)。然而需要注意的是每个簇只能被一个文件占有,这样的话如果在32KB大小的簇中有一个1KB大小的文件,那么31KB的空间就浪费掉了。
启动扇区
编辑
格式如下
偏移(字节) 长度(字节) 说明
0x00 3 跳转指令(跳过开头一段区域)
0x03 8 OEM名称(空格补齐)。 MS-DOS检查这个区域以确定使用启动记录中的哪一部分数据。常见值是IBM 3.3(在“IBM”和“3.3”之间有两个空格)和MSDOS5.0.
0x0b 2 每个扇区的字节数。基本输入输出系统参数块从这里开始。
0x0d 1 每簇扇区数
0x0e 2 保留扇区数(包括启动扇区)
0x10 1 文件分配表数目
0x11 2 最大根目录条目个数
0x13 2 总扇区数(如果是0,就使用偏移0x20处的4字节值)
0x15 1 介质描述 0xF8 单面、每面80磁道、每磁道9扇区
0xF9 双面、每面80磁道、每磁道9扇区
0xFA 单面、每面80磁道、每磁道8扇区
0xFB 双面、每面80磁道、每磁道8扇区
0xFC 单面、每面40磁道、每磁道9扇区
0xFD 双面、每面40磁道、每磁道9扇区
0xFE 单面、每面40磁道、每磁道8扇区
0xFF 双面、每面40磁道、每磁道8扇区
同样的介质描述必须在重复复制到每份FAT的第一个字节。有些操作系统(MSX-DOS 1.0版)全部忽略启动扇区参数,而仅仅使用FAT的第一个字节的介质描述确定文件系统参数。
0x16 2 每个文件分配表的扇区(FAT16)
0x18 2 每磁道的扇区
0x1a 2 磁头数
0x1c 4 隐藏扇区
0x20 4 总扇区数(如果超过65535,参见偏移0x13)
0x24 4 每个文件分配表的扇区(FAT32)。扩展基本输入输出系统参数块从这里开始。
0x24 1 物理驱动器个数(FAT16)
0x25 1 当前磁头(FAT16)
0x26 1 签名(FAT16)
0x27 4 ID (FAT16)
0x28 2 Flags (FAT32)
0x2a 2 版本号 (FAT32)
0x2c 4 根目录启始簇 (FAT32)
0x2b 11 卷标(非FAT32)
0x30 2 FSInfo 扇区 (FAT32)
0x32 2 启动扇区备份 (FAT32)
0x34 2 保留未使用 (FAT32)
0x36 8 FAT文件系统类型(如FAT、FAT12、FAT16)
0x3e 2 操作系统自引导代码
0x40 1 BIOS设备代号 (FAT32)
0x41 1 未使用 (FAT32)
0x42 1 标记 (FAT32)
0x43 4 卷序号 (FAT32)
0x47 11 卷标(FAT32)
0x52 8 FAT文件系统类型(FAT32)
0x1FE 2 扇区结束符(0x55 0xAA)
这里描述的启动扇区能在如OS/2 1.3的启动盘上看到。早期的版本使用一个较短的基本输入输出系统参数块,它们的启动代码在前面开始(如OS/2 1.1中是偏移0x2b)。
分配表
编辑
一个分区分成同等大小的簇,也就是连续空间的小块。簇的大小随着FAT文件系统的类型以及分区大小而不同,典型的簇大小介于2KB到32KB之间。每个文件根据它的大小可能占有一个或者多个簇;这样,一个文件就由这些(称为单链表)簇链所表示。然而,这些链并不一定一个接着一个在磁盘上存储,它们经常是在整个数据区域零散的储存。
文件分配表(FAT)是映射到分区每个簇的条目列表。每个条目记录下面五种信息中的一种。
●链中下一个簇的地址
●一个特殊的文件结束符(EOF)符号指示链的结束
●一个特殊的符号标示坏簇
●一个特殊的符号标示保留簇
●0来表示空闲簇
FAT32条目值:
FAT32 描述
0x?0000000 空闲簇
0x?0000001 保留簇
0x?0000002 - 0x?FFFFFEF 被占用的簇;指向下一个簇
0x?FFFFFF0 - 0x?FFFFFF6 保留值
0x?FFFFFF7 坏簇
0x?FFFFFF8 - 0x?FFFFFFF 文件最后一个簇
注意FAT32只使用32位中的28位。高4位通常是0但它们是保留位,不要更改它们。在上面的表中它们用问号表示。
目录表
编辑
目录表是一个表示目录的特殊类型文件(现今通常称为文件夹)。它里面保存的每个文件或目录使用表中的32位条目表示。每个条目记录名字、扩展名、属性(档案、目录、隐藏、只读、系统和卷)、创建的日期和时间、文件/目录数据第一个簇的地址,最后是文件/目录的大小。
除了FAT12和FAT16文件系统中的根目录表占据特殊的根目录区域位置之外,所有其它的目录表都存在数据区域。
合法的DOS文件名包括下面一些字符:
●大写字母A-Z
●数字0-9
●空格(尽管结尾的空格被作为填充而不是文件名的一部分)
●! # $ amp;amp; ( ) - @ ^ _ ` { } ~ '
●数值 128-255
●DOS文件名位于OEM字符集。
长文件名(LFN)使用一个技巧存储在FAT文件系统上——在目录表中添加假的条目。这些条目使用一个普通文件无法使用的卷标属性标识,普通文件无法使用是由于它们被大多数旧的MS-DOS程序忽略。很显然,一个只包含卷标的目录被当作空卷,这样就允许删除;使用长文件名创建的文件在从普通的DOS删除就会发生这样的情形。
校验和也允许检验长文件名是否与8.3文件名匹配;当一个文件删除之后使用DOS在同一个目录位置重新创建之后就会出现不匹配现象。校验和使用下面的算法计算。(注意pFcbName是指向如正常目录条目中所显示的文件名的指针,例如前八个字符是文件名,最后三个是扩展名。点是隐含的。文件名中没有使用的空间将使用空格(ASCII 0x20)补齐。例如,“Readme.txt”将记录为"README TXT"。
特点
编辑
FAT32实际上是文件分区表采取的一种形式,它是相对于FAT16而言的。众所周知,Dos和Windows95采用的都是FAT16格式。至于FAT32,准确地说是在Windows95OSR2中第一次出现的,之所以没有宣传是因为当时该文件系统还不够成熟,尚处于试探阶段。那么为什么一定要推出FAT32呢?这主要是由其自身的优越性决定的。
首先,它可以大大地节约磁盘空间。文件在磁盘上是以簇的方式存放的,簇里存放了一个文件就不能再存放另外的文件。假如一个磁盘的分区大小为512MB,基于FAT16的系统的簇的大小为8KB,而FAT32系统的簇的大小仅是4KB,那么,我们存放一个3KB的文件,FAT16系统就会有5KB的空间被浪费,而FAT32的浪费则会少一些。如果分区达到1GB,FAT16的簇为16KB,而FAT32还是4KB,节省的也就更多了。
在推出FAT32文件系统之前,通常PC机使用的文件系统是FAT16。像基于MS-DOS,Win 95等系统都采用了FAT16文件系统。在Win 9X下,FAT16支持的分区最大为2GB。我们知道计算机将信息保存在硬盘上称为“簇”的区域内。使用的簇越小,保存信息的效率就越高。在FAT16的情况下,分区越大簇就相应的要增大,存储效率就越低,势必造成存储空间的浪费。并且随着计算机硬件和应用的不断提高,FAT16文件系统已不能很好地适应系统的要求。在这种情况下,推出了增强的文件系统FAT32。同FAT16相比,FAT32主要具有以下特点:
1. 同FAT16相比FAT32最大的优点是可以支持的磁盘大小达到2TB(2048GB),但是不能支持小于512MB的分区。基于FAT32的Win 2000可以支持分区最大为32GB;而基于 FAT16的Win 2000支持的分区最大2GB。
2. 由于采用了更小的簇,FAT32文件系统可以更有效率地保存信息。如两个分区大小都为2GB,一个分区采用了FAT16文件系统,另一个分区采用了FAT32文件系统。采用FAT16的分区的簇大小为32KB,而FAT32分区的簇只有4KB的大小。这样FAT32就比FAT16的存储效率要高很多,通常情况下可以提高15%。
3. FAT32文件系统可以重新定位根目录和使用FAT的备份副本。另外FAT32分区的启动记录被包含在一个含有关键数据的结构中,减少了计算机系统崩溃的可能性。
稍作补充:
功能
编辑
与以前的 FAT 文件系统实现相比,FAT32 提供了以下增强功能:FAT32 支持最大为 2 TB 的驱动器。
注意:Microsoft Windows 2000 仅能支持最大为 32 GB 的 FAT32 分区。
· FAT32 可以更高效地使用空间。FAT32 使用较小的簇(即,对于大小在 8 GB 以内的驱动器,使用 4 KB 的簇),这与大的 FAT 或 FAT16 驱动器相比,可将磁盘空间的使用率提高10% 到 15%。
· FAT32 更稳定可靠。FAT32 可以重新定位根文件夹,而且它使用文件分配表的备份副本,而不是使用默认副本。此外,FAT32 驱动器上的引导记录也得到扩展,包括了关键数据结构的备份副本。因此,与现有的 FAT16 驱动器相比,FAT32 驱动器不容易受单点故障的影响。
· FAT32 更灵活。FAT32 驱动器上的根文件夹是普通的簇链,因此它可以位于驱动器上的任何位置。以前对根文件夹数量的限制不复存在。此外,可以禁用文件分配表镜像,这样就可以让文件分配表的副本而不是让第一个文件分配表处于活动状态。这些功能允许您动态重调 FAT32 分区的大小。不过要注意,虽然 FAT32 的设计允许这一功能,但 Microsoft 将不在初始版本中实现此功能。
兼容性
编辑
软硬件的兼容问题
为了与现有程序、网络和设备驱动程序保持最大程度的兼容性,FAT32 尽可能不改动现有的 Windows 体系结构、内部数据结构、应用程序编程接口(API) 和磁盘上的格式。然而,因为需要 4 字节来存储簇值,所以许多内部的和磁盘上的数据结构以及发布的 API 都作了修改或扩展。某些情况下,现有的 API 无法在 FAT32 驱动器上运行。大多数程序不会受这些更改的影响。现有工具和驱动程序在 FAT32 驱动器上应能够继续正常运行。不过,MS-DOS 块设备驱动程序(例如 Aspidisk.sys)和磁盘工具需要经过修改才能支持 FAT32 驱动器。
所有 Microsoft 捆绑磁盘工具(格式化、Fdisk、碎片整理、基于 MS-DOS 和 Windows 的磁盘扫描)已经过修改,可以在 FAT32 中正常运行。此外,Microsoft 正在与一些主要设备驱动程序和磁盘工具厂商协作,帮助他们修改其产品以支持 FAT32。
注意:不能使用 Microsoft DriveSpace 或 DriveSpace 3 压缩 FAT32 卷。
FAT32 性能
转换到 FAT32 文件系统是您可以在基于 Windows 98 的计算机上实现的最大的一种性能增强。
双启动计算机
目前,在 Microsoft 操作系统中,只有 Windows 95 OSR2、Windows 98、Windows 2000 和 Windows Me 可以访问 FAT32 卷。MS-DOS、Windows 95 原始版和 Windows NT 4.0不识别 FAT32 分区,它们无法从 FAT32 卷启动。此外,如果使用其他操作系统(例如,Windows 95 或 MS-DOS 启动盘)启动计算机,也无法正确访问 FAT32 卷。
Windows 95 OSR2 和 Windows 98 可以在实模式下启动(例如为了运行游戏)并可以使用 FAT32 卷。
创建 FAT32 驱动器
在 Windows 95 OSR2、Windows 98 和 Windows Me 中,如果在大小超过 512 兆字节 (MB) 的硬盘上运行 Fdisk 工具,Fdisk 将提示您是否启用大磁盘支持。如果回答“是”(启用大磁盘支持),您创建的任何大于 512 MB 的分区都将被标记为 FAT32 分区。
Windows 98 和 Windows Me 中还带有一种 FAT32 转换工具,您可以使用该工具将现有驱动器转换为 FAT32 文件系统。要使用该转换工具,请按照下列步骤操作: 1. 单击开始,依次指向程序、附件、系统工具,然后单击驱动器转换器 (FAT32)。
2. 单击下一步。
3. 单击希望转换为 FAT32 文件系统的驱动器,然后单击下一步。
4. 按照屏幕上的说明操作。
支持范围
Microsoft 将支持 FAT32 文件系统的功能,以实现无错读取和在实模式或保护模式下保存文件。Microsoft 支持 Windows 95 中所带的实模式和保护模式工具。
对于旧式(较早的)程序,如果它们无法在 FAT32 卷上安装,或者无法正确保存文件或读取文件,则您必须与软件包的生产厂商联系。
注意:虽然 FAT32 文件系统所支持的硬盘容量最高可以达到 2 TB,但有些硬盘可能会因为计算机基本输入/输出系统 (BIOS) INT13 接口的限制而无法包含大于 7.8 GB 的可启动分区。请与硬件制造商联系,以确定您计算机的 BIOS 是否支持更新后的 INT13 扩展。
Windows 操作系统使用 FAT32 文件系统时存在以下限制: · 簇不能是 64 千字节 (KB) 或更大。如果簇为 64 KB 或更大,有些程序(例如安装程序)在计算磁盘空间时可能会出错。
· 卷必须包含至少 65,527 个簇,才能使用 FAT32 文件系统。您不能增加使用 FAT32 文件系统的卷上的簇大小,以致于该卷的最终簇数小于 65,527。
· 在使用 FAT32 文件系统的卷上,簇最多是 268,435,445 个。对于文件分配表 (FAT) 的空间,每簇最大为 32 KB,据此计算出的最大磁盘大小大约为 8 太字节 (TB)。
· Microsoft Windows 95 和 Microsoft Windows 98 附带的“磁盘扫描”工具是 16 位程序。这样的程序有一个内存块,该内存块的最大分配大小等于 16 MB 减去 64 KB。因此,Windows 95 或 Windows 98 的“磁盘扫描”工具无法处理使用 FAT32 文件系统(其 FAT 大小大于 16 MB 和 64 KB 之差)的卷。使用 FAT32 文件系统的卷上的 FAT 项使用 4 字节,因此 ScanDisk 无法处理使用定义的簇数大于 4,177,920(包括两个保留的簇)的 FAT32 文件系统的卷上的 FAT。将 FAT 本身包括在内,按每簇最大 32 KB 计算,卷大小为 127.53 吉字节 (GB)。
· 您不能减少使用 FAT32 文件系统的卷上的簇大小,以致于 FAT 的最终大小大于 16 MB 与 64 KB 之差。
· 在 Windows 2000 中您无法使用 FAT32 文件系统格式化大于 32 GB 的卷。Windows 2000 FastFAT 驱动程序可以安装和支持使用 FAT32 文件系统且大于 32 GB的卷(受到其他限制),但是您不能使用格式化工具创建一个这样的卷。这种现象是设计使然。如果需要创建大于 32 GB 的卷,请改用 NTFS 文件系统。
备注:在尝试格式化大于 32 GB 的 FAT32 分区时,在进程快结束时格式化会失败,并出现以下错误:
Logical Disk Manager:Volume size too big.
Windows XP 中 FAT32 文件系统的限制
当您在 Windows XP 中使用 FAT32 文件系统时,请注意下列限制: · 簇不能等于或大于 64 KB。如果簇大小为 64 KB 或更大,则有些程序(例如安装程序)可能会不正确地计算磁盘空间。
· FAT32 卷必须至少包含 65,527 个簇。您不能增加使用 FAT32 文件系统的卷上的簇大小,这样会导致卷上的簇数少于 65,527 个。
· 如果考虑到以下可变因素,则最大磁盘大小大约为 8 TB:一个 FAT32 卷上允许的最大簇数为 268,435,445,每个簇最大为 32 KB,另外还有文件分配表 (FAT) 所需的空间。
· 您不能减少 FAT32 卷上的簇大小,这样会导致 FAT 的大小大于 16 MB 减去 64 KB。
· 在 Windows XP 安装过程中,您不能使用 FAT32 文件系统格式化大于 32 GB 的卷。Windows XP 可以装入和支持大于 32 GB 的 FAT32 卷(受到其他限制),但是您不能在安装期间使用 Format 工具创建大于 32 GB 的 FAT32 卷。如果您需要格式化大于 32 GB 的卷,请使用 NTFS 文件系统来格式化。另一种方法是从 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 启动盘启动,然后使用该磁盘上包含的 Format 工具。
有关如何使用 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 启动盘格式化硬盘的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
255867 如何使用 Fdisk 和 Format 工具对硬盘进行分区或重新分区
注意:当您在 Windows XP 安装过程中试图格式化大于 32GB 的 FAT32 分区时,在格式化过程快结束时操作将会失败,并且您可能会收到以下错误信息:
Logical Disk Manager:Volume size too big.
· MS-DOS(Microsoft Windows 95 的原始版本)和 Microsoft Windows NT 4.0 及更低版本都不能识别 FAT32 分区,因此无法从 FAT32 卷启动。
· 您不能在 FAT32 分区上创建大于 (2^32)-1 字节(即 4 GB 减去 1 个字节)的文件。
FAT32格式理论上可以支持128TB的磁盘,即簇的大小乘簇的数量32K*(2^32),但由于受到软硬件的限制和其他方面的原因,不可能达到理论值。
FAT32数据恢复原理
由于FAT与FDT对数据的链式存储管理的,可以通过链式搜索查找。只有FAT表和FDT配合使用,才能可以统一管理整个磁盘文件,也就可以准确定位被删除的文件的确切位置。
在 Window操作系统下对文件的删除工作,是将FDT中该文件的第一个字符改“E5”来表示该文件已经删除,同时改写引导扇区的第二个扇区中表示该分区点用空间大小的相应信息。因此,在设计的时候,根据其存储结构,对相应的地方进行修改,搜索E5删除标志,再按被删文件数据链进行恢复。
具体步骤如下:
(1) 获取磁盘分区类型,分区存储空间,FAT、FDT、文件等存储的起始扇区。
(2) 获取FAT、FDT表项内的簇信息,即簇的删除、未使用、坏簇、以及文件占用簇的起始扇区信息等。
(3) 通过FAT、FDT计算不同文件在物理扇区的起始位置,包括有标识E5的删除文件起始位置、文件类型、占用大小和存储的所在簇。
(4) 改变删除位,通过第3步得到的结果,并按FAT表对文件进行链式查找并缓存,当达到文件所在簇尾时,停止操作。
(5) 对存储的数据进行转换,生成文件。
(6) 对文件进行异区存储。 而操作系统在读写文件时,会根据FDT中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置,然后顺序读取每个簇的内容,文件的查找如图4-1所示。具体的方法如下:
(1)在文件目录项FDT中找到存放在FAT表中的文件File的地址M(2)2*M得到FAT表中File文件数据链表首地址B。
(3)在FAT表中的B地址中,存放有文件FILE数据链表头P。
(4)P*4得到在FAT表项中的下一个偏移位置,即下一个数据链表。
(5)如果下一个数据链表内的信息为0FFFFFFH,则表示文件存储已经结束图4-1查找文件流程需要说明的是,新建文件时,系统在FAT表中查找未用的簇记录在新文件目录项中做为首簇;FDT文件目录项中,第0~7字节为文件名(若有剩余字节用20填充)第1字节表明了该文件的状态,第1字节又表明了文件的状态,00HE5H及其它字符。当该字节为00H时,表示该目录项是空表项,可以使用。当为E5H时,表示该目录项以前用过,但是文件被已经删除了。
小知识
编辑
在FAT32下,一个目录只能够容纳65536个文件。微软的官方文档没有给出。
⑤ 文件系统的设计与实现算法
直接用MFC中的CFile类就行了,所有的关于文件的操作都在里面
⑥ 如何加密文件系统,都有哪些策略
XP系统:
加密文件或文件夹
打开 Windows 资源管理器。
右键单击要加密的文件或文件夹,然后单击“属性”。
在“常规”选项卡上,单击“高级”。
选中“加密内容以便保护数据”复选框。
注意
要打开“Windows 资源管理器”,请单击“开始”,依次指向“所有程序”、“附件”,然后单击“Windows 资源管理器”。
只可以加密 NTFS 文件系统卷上的文件和文件夹。
被压缩的文件或文件夹也可以加密。如果要加密一个压缩文件或文件夹,则该文件或文件夹将会被解压。
无法加密标记为“系统”属性的文件,并且位于 systemroot 目录结构中的文件也无法加密。
在加密单个文件时,系统将询问是否要同时加密包含它的文件夹。如果选择这么做,所有将来添加进文件夹中的文件和子文件夹都将在添加时自动加密。
在加密文件夹时,系统将询问是否要同时加密文件夹内的所有文件和子文件夹。如果选择这么做,那么文件夹中当前的和将来要添加的所有文件或子文件夹都将被加密。如果选择仅加密文件夹,则文件夹中当前所有文件和子文件夹将不加密。然而,任何将来被加入文件夹的文件和子文件夹在加入时均被加密。
98
加密】
打开"我的电脑"或者"资源管理器",选择"查看"→"文件夹选项"→"文件类型"下选择要"加密"的文件后缀名,点击"编辑"。在打开的"编辑文件类型"对话框中,在"始终显示扩展名"的对话框前打上钩,然后点"确定"来关闭对话框。然后,选中该文件,按F2键,修改其后缀名,这样文件图标就会发生变化,关联的程序也会发生变化
对于有些软件,如ACDSee的browse功能,它对文件的识别是不计较后缀名的,所以对于图片文件的加密,建议用常用的打包程序,如Winzip,加密打包之后,再更改后缀名进行进一步的加密。其实这个方法也适合于其他文件的加密。
解密
方法一(适用于Windows98/Me系统):进入一个未加密的文件夹,点击菜单栏上的“查看”命令,取消“按Web页查看”选项。再次点击“查看”,选择“文件夹选项”,在弹出的对话框中选择“查看”选项卡。点击“与当前文件夹类似”,确定后即可取消本机上所有文件夹的加密。
方法二:采用方法一将会取消对所有已加密文件夹的加密属性,无法对单个文件夹进行解密操作,而且不适用于Win2000、XP系统。其实,不管是在98系统还是2000/XP系统下,破解这种类型的加密文件夹有一个通用的方法,我们甚至可以像进入自己的文件夹那样进入到加密的文件夹:假设被加密的文件夹为d:\lj,那么只需要在地址栏中输入d:\lj\folder settings\folder.htt,就可以打开改设置文件(folder.htt)。我们只要在改文件中找到进行加密的几行代码,密码就出现了
2000加密
更改本地计算机的恢复策略
单击“开始”,单击“运行”,键入 mmc /a,然后单击“确定”。
在“控制台”菜单上,单击“添加/删除管理单元”,然后单击“添加”。
在“管理单元”下,单击“组策略”,然后单击“添加”。
在“组策略对象”下,确认显示“本地计算机”,单击“完成”、“关闭”,然后单击“确定”。
在“本地计算机策略”中,单击“公钥策略”。
位置
本地计算机策略
计算机配置
Windows 设置
安全设置
公钥策略
右键单击“加密数据恢复代理”,然后单击下列某个选项:
“添加”,使用“添加恢复代理”向导将用户指派为其他恢复代理。
“创建”,使用“证书申请”向导以请求新的“文件恢复”证书。要完成该过程,必须有适当的访问权限以请求证书并且必须将证书授权机构 (CA) 配置为颁发该类型的证书。
“删除策略”,删除此 EFS 策略和每个恢复代理。删除 EFS 策略和所有恢复代理的后果是用户将无法在该计算机上对文件加密。
注意
要完成该过程,您必须登录为管理员或管理员组成员。如果您的计算机连接在网络上,则网络规则设置也可能会禁止您完成该过程。
计算机颁发默认自签名证书,该证书将本地管理员指派为默认恢复代理。如果没有其他合适的策略而删除该证书,计算机将有一个空恢复策略。空恢复策略意味着没有恢复代理。这将关闭 EFS,因此不允许用户加密此计算机上的文件。
在对恢复策略作任何更改之前,您首先应当将恢复项备份到软盘。
在域中,当安装第一个域控制器时,默认的域恢复策略将被执行。域管理员被颁发给自签发证书,它指派域管理员作为恢复代理。要更改域的默认恢复策略,请以管理员身份登录到第一个域控制器。
通过用鼠标右键单击证书,然后单击“属性”,可以对文件恢复证书进行改动。例如,您可以给证书一个好记的名称,并输入文字
⑦ 如何设计一个分布式文件系统,给出文件和目录的更新算法
分布式文件系统设计主要关注几个方面: 设计特点、分布式能力、性能、容灾、维护和扩展、成本 分布式文件系统主要关键技术: 全局名字空间、缓存一致性、安全性、可用性、可扩展性
⑧ 存储管理分区分配算法实现的课程设计
—、计算机操作系统课程设计方案
课程概况
计算机操作系统是中央电大计算机科学与技术专业(本科)的一门统设必修课。课程教学总学时72,4学分,开设一学期。前修课程为计算机组成原理、面向对象程序设计和数据结构。
计算机操作系统课是计算机专业的重要课程之一,通过学习使学员掌握计算机操作系统的设计基本原理及组成;计算机操作系统的基本概念和相关的新概念、名词及术语;了解计算机操作系统的发展特点和设计技巧和方法;对常用计算机操作系统(DOS、Windows和UNIX或Linux)会进行基本的操作使用。
• 课程主要内容
主要内容包括:计算机操作系统概述、作业管理、文件管理、存储管理、输入输出设备管理、进程及处理机管理、操作系统结构及程序设计。
二、教学内容体系及教学要求
第一章 操作系统概述
教学内容:
操作系统定义及发展;操作系统的形成和五大类型;操作系统的五大功能;表征操作系统的属性;操作系统的配置、“生成”概念
教学要求:
熟练掌握:什么是操作系统;知道操作系统有五大类型和五大功能;
掌握:至少掌握一种实际揽操作系统的安装、使用和维护;
了解:初步了解如何认识、熟悉和解剖操作系统
第二章 人机交互界面、任务、作业管理
教学内容:
人机交互界面的发展特点;第一、二、三代界面开发特点;基本的键盘命令和系统调用操作系统Shell语言;作业调度算法;
教学要求:
熟练掌握:能进行一些人机接口界面的设计;
掌握:掌握操作系统人机接口界面的基本设计思想;
了解:操作系统传统的接口界面
第三章 文件管理
教学内容:
文件管理的任务与功能;文件的结构与分类;文件的物理结构和逻辑结构;文件的目录结构;文件的存取控制和安全机制;文件系统与模型结构;
教学要求:
熟练掌握:文件的基本存取控制和系统管理;
掌握:文件系统的目录分类管理特点;
了解:文件系统的编程设计
第四章 内部存储管理
教学内容:
内存的分区、分页、分段管理概念;物理地址与逻辑地址;内存“扩充”技术;页式存储管理;段式存储管理;内存的分配算法
教学要求:
熟练掌握:内存管理中基本分配和调度方法;
掌握:掌握内存管理中各种分区、分页和分段方法的特点;
了解:内存空间的有效利用
第五章 输入输出设备管理
教学内容:
输入输出设备功能与分类;独享、共享、虚拟设备的管理特点;输入输出设备处理程序;输入输出设备的管理策略;
教学要求:
熟练掌握:掌握输入输出设备的管理特点;
掌握:掌握输入输出设备的分类设计方法;
了解:输入输出设备处理程序的编程要点
第六章 低级处理机管理
教学内容:
操作系统核心功能;“进程”概念;进程的并发与并行;进程的基本状态与转换;进程调度算法;进程的同步与互斥;进程的P—V操作;“死锁”概念;
教学要求:
熟练掌握:操作系统核心运行与“进程”的基本概念;
掌握:“进程”的基本转换状态与应用特点;
了解:进程调度算法的程序编制
第七章 操作系统程序结构
教学内容:
操作系统的层次、模块结构;操作系统的设计与检测;
教学要求:
本章教学基本要求:了解现代计算机操作系统的基本设计思想与方法
三、课程教学媒体说明
本课程使用的教学媒体主要有:文字教材、录像教材和网上教学辅导。
1. 文字教材
《计算机操作系统》(第2版)吴企渊着清华大学出版社
注:课程实验含在主教材中。
文字教材为该课程的主媒体。文字教材的编写既保持了学科体系的先进性、科学性,又兼顾操作系统的理论、技术、实现三方面的融合,并强调能力的培养。
2. 录像教材
该课程已经制作16讲课程录像,每讲50分钟,讲授课程的重点、难点、课程总结。帮助学生理解,建立操作系统的整体概念和思想,由吴企渊教授主讲。
课程录像与文字教材相对应,注意发挥录像教材艺术表现力、形象化教学的作用。
3.网上教学辅导
网上教学辅导与上述媒体有机配合,有几方面作用:(1)发布教学指导性文件、课程公告、问题咨询、参考资料;(2)按照教学进度,发布辅导文章,刊登练习自测题;(3)在课程论坛上进行实时答疑和日常答疑;(4)开展网上的教师培训和教学研讨等工作。
文字教材是学生学习的基本依据,录像教材是文字教材的补充,网上辅导则是教与学交互的便捷方式。总之,多种媒体的分工和搭配为学生提供较大的自学空间,便于学生自由选择、自主学习,提高学生的自学能力。
四、教学安排建议
1. 课程主教材及课程实验教学安排建议
教学点请根据中央电大的统一要求安排课程的面授辅导,见表1。
表1 课程主教材及课程实验教学安排建议
周次 教学内容 建议学时 实验内容 建议学时
一 操作系统课程教学安排概况介绍 2
二 操作系统定义、五大类型和五大功能 4
三 人机交互界面管理 2 Linux实践准备 1
四 作业管理任务调度 4
五 文件管理的任务和功能 2 Linux操作命令使用 1
六 文件的逻辑结构和物理结构 4
七 存储管理的任务和功能 2 命令解释程序编制 2
八 分区式分配存储管理 4
九 页式、段式分配存储管理 6 作业调度模拟编程 4
十 设备管理的任务和功能 2
十一 设备分配技术和管理 4 存储管理设计 4
十二 进程的定义和特征 4
十三 进程调度与通信 6 进程调度模拟编程 4
十四 死锁的产生和处理 2
十五 操作系统的层次模块结构 4
十六 (总复习) 4
总计 56 16
课程录像内容,见表2。
表2 录像教材内容
章 教学内容 课内学时 录像学时分配
一 操作系统概述 8学时 4
二 作业管理 8学时 2
三 文件管理 8学时 2
四 存储管理 8学时 2
五 设备管理 8学时 2
六 进程管理 10学时 4
七 操作系统程序结构 6学时 0
总计 56学时 16
2、网上辅导
网上辅导内容包括课程的教学文件、课程辅导、网络课堂。充分利用网络资源,定期与不定期的在网上提供有关的课程辅导材料,根据教学需要,适当安排网上辅导和考前答疑活动。具体安排如下:
• 教学文件
包括课程说明、教师介绍、教学大纲、教学设计方案。
• 课程辅导
包括课程作业及解答、专题辅导、练习和解答、期末自测、考核说明等;网上还提供了教师讲课教案,供各教学点教学使用。
• 网络课堂
包括直播课堂和IP课件。
网上教学活动:中央电大一般将每学期集中安排1次对学生的实时在线辅导,和1次对教师的教研活动。具体的时间安排每学期在电大在线主页上公布。
• 论坛:进行课程的日常答疑。
3、直播课堂
课程首开学期,通过教育电视台直播方式,安排4次直播课堂,每次50分。前3讲为对教学重点、难点,对教学过程中反映的共性问题和有代表性的问题进行辅导,后1讲为复习辅导和有关考试说明。直播课堂的内容挂在课程网页内。
4、作业
该课程有一份形成性考核册,即课程作业册。作业成绩计入课程总成绩。中央电大将不定期地抽查作业,检查作业的评审及完成情况。
关于课程考核的具体内容,请参考中央电大“计算机操作系统课程考核说明”。
五、教学方法的建议
• 教学建议
(1)计算机操作系统是实践性较强的课程。其特点是概念多、涉及面广。要求教学辅导要由浅入深对易混淆的概念加以详细说明,对每章的重点,管理和控制的调度算法技巧作详细介绍。
(2)在实验中着重培养学员熟练使用操作系统,以及在维护操作系统工作中的分析问题和解决问题能力。
• 学习建议
(1)学习操作系统要从宏观和微观两方面把握。在宏观上要认识操作系统在计算机系统中的地位,清楚操作系统的整体结构;微观方面应掌握操作系统是如何管理计算机的各种资源的(进程、处理机、存储器、文件、设备),理解有关概念、原理及技术。
(2)操作系统是计算机技术与管理技术的结合,学习时可以联想日常生活中熟悉的管理示例反复体会操作系统的管理方法,以加深对问题的理解。
(3)注意加强对自主学习能力和动手能力的培养,努力实现“学以致用”的目标。
⑨ 如果让你设计一个文件系统那么该文件系统可以解决哪些问题
文件系统主要是管理文件用的,可以仿照windows设计,然后添加一些特色功能,主要解决的问题就一个:更方便的管理文件。
⑩ 基于多级文件目录的文件管理系统设计的设计原理是什么有着什么样的背景知识
Flash 存储器( Flash Memory) 是一种高可靠性、高密度的固态存储器件。 其存储方式是完全非易失性的,掉电后可以保存数据;可以在线写入,并可按页连续字节写入,存取速度快,所以嵌入式系统通常使用Flash 存储器作为存储设备。 但Flash存储器也存在着两个主要缺陷:一是在重写之前必须进行擦除,因为Flash 存储器划分成很多擦除块(SectorOErase) ,对任何一位数据进行修改必须先擦除整个块(Sector) ;二是擦除块的擦除次数有限,当一个块提前达到擦除次数上限时, 将导致整个Flash 存储器无法使用。 所以,目前PC 机上很多成熟的基于磁盘的文件系统在Flash 存储器上使用都存在着不足。
嵌入式系统应具有的特点: 一是高可靠性,在恶劣环境下系统仍能正常工作;二是低消耗,受成本限制系统设计必须量体裁衣,去除冗余;三是高效率,在占用较少资源情况下保证功能需求,这样就要求算法简单,效率高。 而日志文件系统(Log-St ruct ured File System) 在数据更新时无需将数据写入原存储区域,适应Flash 存储器无法进行重写这一特点。 目前,针对Flash 存储器的缺陷而设计的Linux 下的J FFS 文件系统,就是采用简化的日志文件系统。 J FFS 文件系统将磨损均衡集成于清除机制之中,在带来掉电可恢复功能的同时,大大减少了块擦除的次数,提高了文件系统的存取速度和效率。 但是,J FFS 文件系统无法单独使用,或者使用于其它实时操作系统中。 对由于受成本和实时性限制而无法使用Linux 的一些嵌入式系统,也就无法使用J FFS 文件系统。基于上述分析,该嵌入式文件系统适合在开源实时操作系统(如μC/OS-II) 和无操作系统的情况下使用。
嵌入式文件系统原理
在日志文件系统中,一个文件被修改后不是被写入到原来的存储空间,而是被加到所有内容的后面,象日志一样被更新,这就是日志文件系统的基本原理。 由于同一个文件在文件系统中会留下不同的版本,所以系统需要设置一张表标注文件的最新与以前的版本。 在内容不断添加时为不将存储空间占满,系统设计了一种回收机制,回收无效内容占用的空间。
日志文件系统在文件更新时不用将文件写回原来的地址,这对Flash 存储器这种存储介质最为适合。 文中所设计的嵌入式文件系统采用了日志文件系统的设计原理,以及J FFS 文件系统将磨损均衡集成于清除机制之中的方法。 该系统将一个可擦写块平分为多个簇,文件的读写以簇为单位进行。簇的状态有3 种:脏、干净和空。 脏表示所存内容已被置为无效;干净表示所存数据有效;空表示可以写入数据。 文件和目录在该系统中被作为节点,一个节点占用若干个簇,节点中的内容连续存储,但不能越过块边界存储。 该系统设置一个索引节点,保存整个系统的信息,其中包含保存有各簇状态的簇状态表。
每一次文件更新后内容都将被添加至末尾处,索引节点也被更新,总是占用最末尾的干净簇。 回收脏簇时,将所要擦除块中的干净簇重写到空簇中,再进行块擦除。 当内容写至存储体末端,则从头部重新开始循环存储。 所设计的文件系统的操作过程见图1。
ic72新闻中心
嵌入式文件系统设计
Flash 存储器中的存储结构
Flash 存储器中的存储结构见图2。 该存储器中每个簇的第一个字作为簇的状态字,表示此簇是否为一个节点的首簇或空簇。 每个节点的首部存放此节点属性(文件/目录/索引节点) 和节点标识号。
ic72新闻中心
索引节点
索引节点存放该文件系统的大部分信息。 包括32 位的索引节点更新号、一张簇状态表、下一个要被擦除块的块号、给下一个新建节点(文件或目录) 的节点编号、系统根目录信息表。系统每一次更新都会产生新的索引节点,索引节点更新号加1。 按照Flash 存储器的使用寿命10 年计算,需要每秒更新136 次以上,才能达到索引节点更新号的上限,所以认为拥有最大更新号的索引节点为最新的索引节点。 簇状态表中对应每一个簇有两个Bit 位,表示各个簇的状态(干净01 ,脏11 ,空00) 。 根目录信息表存放根目录下的各个目录项,每个目录项包括:属性(文件0x1/目录0x0) 、文件名或目录名、节点编号、此文件(或目录) 对应节点的起始簇地址、根目录表的大小可变。
目录节点
目录节点存放的内容有目录名,目录项个数,及所有目录项信息。 文件节点存放文件名,文件大小,文件属性及文件内容,内存中的目录结构见图3。
ic72新闻中心
内存数据结构及基本操作
该文件系统载入(Mount ) 后,会在内存中建立一个系统的映象。 该映象包括:索引节点中的信息、目录及文件信息、每个可擦写块中包含的节点信息、未存盘的节点信息。 簇状态表、索引节点更新号、新节点编号、下一擦除块号等索引节点中的内容,在内存中均作为不同的变量。 内存中为每个文件和目录都建立了映象,数据结构见图4 和图5。
ic72新闻中心
ic72新闻中心
内存中的文件节点不包含文件真正的数据,而使用指针。 文件被打开时,在内存中创建一块新存储区域存放数据,数据指针便指向此存储区,未被打开时,此指针指向空。 对于每个目录有1 个目录层数,表示此目录的深度,如根目录的目录层数为0 ,根目录的下一级目录则为1 ,依此类推。 存储地址保存文件或目录在Flash 中的地址。 文件和目录都被存在上一级目录下,所属目录指针即指向上一级目录在内存中的数据结构,根目录的所属目录指针即为空。 对于同目录下的不同节点,在内存中使用链表将其串联,同目录文件指针即联成链表。 链表的首指针保存在上一级目录中,首目录项指针即指向链表的首项。 为提高块擦写的效率,存储在同一个可擦写块中的各个节点在内存中也建立一个链表,块队列指针即用于连成此链表。 为标识被修改的节点,利用一个未保存队列,未保存队列指针即用来建立此队列。
该文件系统载入(mount ) 时,首先顺序扫描Flash 中的每个索引节点,查找出最大的索引节点更新号,此更新号对应的索引节点即为最新的索引节点。 查找到最新索引节点后,将簇状态表等信息映射到内存的数据结构中。 依据索引节点中的根目录信息,遍历所有节点,建立内存中的目录文件结构,并将节点添加到对应的擦写块队列中。 对一个文件编辑并保存的过程见图6。
ic72新闻中心
文件打开时,先在内存中分配一块空间作为数据区,将内容写入,并定位文件节点的数据指针指向该内存中的数据区。 如果文件内容被修改,就将文件节点添加到未存盘队列,依次写入Flash 存储器中,并修改簇状态表。 保存时将内存中数据区内容写入F 中,释放申请的内存空间,修改节点中的数据指针和簇状态表,再将文件的所有上级目录重新写入Flash ,最后将更新后的索引节点内容写入Flash。 如果文件未被修改,则只需修改数据指针即可。
节点加入未存盘队列的顺序按照目录层数的大小排列,文件节点排在队列首,目录层数最大的排在其后,目录层数为1 的排在队列末尾,根目录不加入未存盘队列。
嵌入式文件系统特殊处理机制
均衡擦写机制
为了避免任意一个可擦除块因擦写次数过多而过早报废,文件系统对Flash擦写时采用了均衡擦写机制。 考虑到系统的精简性,擦写在整片Flash 的各块中依次进行,一块擦写完后,下一个被擦写的块即为后一个块,在系统的索引节点中保存了下一个要擦除的块号。 当文件系统中的剩余空间减少到设定值时,系统会擦除此块,以回收脏簇占用的空间。 对应每个可擦写块都有一个节点队列,此块中包含的节点都加入其中。块擦除的流程见图7。
ic72新闻中心
首先,将未保存于队列中的节点保存,清未保存队列。 然后将块队列中的所有文件节点转移到空簇中,同时将文件路径上的各级目录加入到未存盘队列中。 对于块队列中的目录节点,则将它和其路径上的各级目录加入未存盘队列中,按照未保存队列的顺序,依次将各个目录写入Flash 中,最后写入最新的索引节点。 因为目录节点加入未存盘队列时,按照目录层数的大小排列,所以按照未保存队列的顺序写入时,可以保证当一个目录要被写入Flash 时,它的所有下级目录已被写入Flash 中。 所有下级目录在Flash 中的存储地址都已确定。当该文件系统的空间将达到存储上限时,可能会出现特殊情况,即废簇回收时,空簇的空间不足,无法将所有干净簇重写。 文件系统为此建立了应急机制,先将文件节点内容存在内存中,这时新建一个临时未保存队列,专门保存文件节点,在块擦写完成后,将剩余的文件节点写入新的空簇中,其算法与图7 所示流程大致相同。 但是,一旦在擦写时断电,会导致该块上的所有数据丢失。
断电错误处理机制
当系统遭遇断电重新启动后,索引节点中的信息会与系统中的状态不符,这时便需要错误处理机制。 错误一般是索引节点中标注的空簇已被写入了数据,错误处理就是将此簇标志为脏簇,并查找下一个空簇重新写入。
多任务处理机制
该文件系统允许同时打开多个文件,在多任务操作系统下,为了避免冲突建立了多任务处理机制。 系统允许打开的多个文件在内存中同时被编辑修改,但是对Flash 写入操作有限制。 处理方法是设立Flash 写入保护区,在此区中只允许当前正在执行的任务执行Flash 写入操作。 实现Flash 写入保护区的方法是建立一个初始值为1 的信号量,当一个节点需要Flash 写入时,首先申请信号量,完成后再释放信号量。 Flash 写入保护区见图6 、图7。在图6 中,空操作语句是用来对多个文件的保存进行同步。 例如,有文件1 和文件2 需要保存,先将文件1 的内容写入Flash 中,文件1 路径下的目录节点被添加到未保存队列中,再将文件2 的内容写入Flash 中,文件2 路径下的目录节点也被添加到未保存队列中,最后将未保存队列中的所有节点都写入Flash 中。 这样,如果同一路径下的两个文件同时存盘,可避免路径下的相同目录节点被写入两次,从而提高了效率。 不足之处在于,如果很多文件同时存盘,会导致索引节点在一段时间内都无法写入Flash 存储器,有断电丢失的危险。 但对于一般嵌入式系统来说,很少会碰到这种情况。 当进行Flash存储器擦写时,在取块队列首节点至索引节点写入完成这段时间内都不允许进行其他Flash 存储器的写入操作,这是为了保证数据的完整性,同时也提高了文件系统的稳定性。
无目录文件系统的优化
许多嵌入式系统设计中虽没有目录管理的要求,但是对执行效率和资源消耗的要求较高。 对于不要求有目录管理的精简文件系统,在设计时也进行了优化。 精简文件系统在Flash 中的存储格式与上述设计相同,文件系统中的所有文件信息都保存在索引节点的根目录信息表中。 精简文件系统在内存中的映象则要简单很多,只包含索引节点中的信息,包括簇状态表、下一个擦除块、下一个新节点的标号和根目录信息,而不用为每个文件都建立内存中的映象,节省大量的内存空间。 文件的编辑存盘过程简化为:打开文件、编辑、将文件写入Flash 存储器、将修改后的索引节点写入Flash 存储器。 擦写则只需通过查询根目录信息表中的各个目录项,将块中的所有文件节点写入空簇即可。在无目录管理的情况下,精简文件系统占用的内存资源可以减少,操作也可便捷,提高了效率。 对于大量只需要按名存取的简单文件管理的小型嵌入式系统而言,针对Flash 存储器的简单文件系统将占用资源少,执行效率高,有很大的应用价值。
嵌入式文件系统实现及性能分析
该文件系统的实现采用了分层方法,分为3 层4 个部分:应用程序接口、文件系统核心、操作系统调用接口、Flash 存储器驱动,实现结构见图8。
ic72新闻中心
实现平台中RTOS 为μC/OSOII 实时操作系统,CPU 使用三星S4510B作为处理器,Flash 存储器芯片为FUJ ITSU 的29LV160 TE。 针对不同的实时操作系统和Flash 存储器芯片需要实现不同的操作系统接口和Flash 存储器驱动。
针对μC/ OSOII 编写操作系统调用接口,包括5个函数: ①系统调用接口初始化FS_Sys_Interface_Init ( ) ,创建互斥信号量和内存分区; ② Flash 写入关闭FS_Sys_Write_Lock ( ) ,禁止Flash 写入操作,调用μC/OS-II 中OSMutePend ( ) ; ③ Flash写入打开FS_Sys_Write_Unlock ( ) ,重新允许Flash 写入操作,调用μC/OS-II 中OSMutePost() ; ④内存空间申请FS_Sys_Mem_Alloc( ) 和内存空间添加FS_Sys_Mem_Add ( ) , 都调用OSMemGet ( ) 来完成; ⑤内存空间释放FS_Sys_Mem_Free ( ) ,调用OSMemPut ( ) 完成,将申请的内存块全部释放。针对29LV160 TE 这款Flash 存储器芯片,定义一个FlashDef 结构体的全局变量, 用于存储Flash 器件信息,并且编写针对此款Flash 的块擦写函数FS_Device_Sector_Erase ( ) 和数据写入函数FJ FS_Device_Write ( ) 。
完成这两部分的实现后,该系统就可运行调试。 测试应用程序接口(API) 。 应该提供的各部分功能,并在突然断电情况下,测试文件系统的恢复情况。无目录管理的精简文件系统的载入,可在2μs内完成,文件写入耗时主要为闪存的等待时间,系统本身只占用不到200 个字节的内存,产生的代码段大小为7 K。 完整的文件系统载入时,需要建立内存中映象,耗时根据文件数量的多少而不同,一般为10μs ,产生的代码段大小为11 K。 系统写入效率较高,在无目录管理的配置下尤其明显。 试验中系统在多次断电的情况下,系统仍能恢复至上次存盘的状态,虽会导致个别文件未更新,但不会导致文件系统崩溃。
间的关系熟悉吗?的和(并)。互斥事件(互不相容事件