文件管理习题及答案

文件管理习题及答案
文件管理习题及答案

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

进程管理实验报告文档

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码: #include <> #include <> #include #include <> main() {

int p1,p2; p1=fork(); ockf()函数是将文件区域用作信号量(监视锁),或控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休态,直到资源解除锁定为止。而上面三个进程,不存在要同时进入同一组共享变量的临界区域的现象,因此输出和原来相同。 (3) a) 编写一段程序,使其实现进程的软中断通信。 要求:使用系统调用fork() 创建两个子进程,再用系统调用signal() 让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill() 向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Process 1 is killed by Parent! Child Process 2 is killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent Process is killed!

实验五 文件管理

课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系) 1.程序流程图

2.逻辑设计 使用线性表表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。该结构需支持以下操作:在尾部插入,查找,修改,在任意位置删除。3、物理设计 char UserName[SizeOfUser][SizeOfUserName];//用户ID long User;//当前用户标志 struct InfoOfFile { char Name[SizeOfFileName];//文件名 bool safe[3];//Read,Write,Execute long status;//ready,open; }UFD[SizeOfUser][SizeOfFile];

linux 实验报告 文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》 级系 专业班 学号: 姓名: 指导教师:

一、实验项目:用户与组群管理 二、实验日期: 三、实验原理: 1.熟悉Linux下常用的操作指令。 2.加深对文件,目录,文件系统等概念的理解。 3.掌握Linux文件系统的目录结构。 4.掌握有关Linux文件系统操作的常用命令。 5.了解有关文件安全方面的知识。 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$ 提示符下键入有关命令。 1.浏览文件系统 〈1〉运行pwd命令,确定你当前的工作目录。 〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。) 〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i 可以显示文件的I节点号) ls –ai 〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。 〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

〈6〉使用cd命令,将工作目录改到根目录(/)上。 ①用相对路径将工作目录改到根目录。 ②用绝对路径将工作目录改到根目录。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。 〈8〉使用ls-l命令列出/dev的内容。 Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,你将工作目录移到什麽地方? 2.查看你的文件 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中。 Ls –l 反馈信息中有新文件 file1。请注意并记下文件长度为:

实验文件管理二

实验六:文件系统 、目的要求 1用高级语言编写与调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容与执行过程有比较深入的了解。 2、要求设计一个n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write 等命令。 二、例题: ①设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 ②程序采用二级文件目录(即设置主目录[MFD])与用户文件目录(UEDK 另外, 为打开文件设置了运行文件目录(AFD。 ③为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 ④算法与框图: a、因系统小,文件目录的检索使用了简单的线性搜索。 b、文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。 c、程序中使用的主要设计结构如下: I、主文件目录与用户文件目录(MFD UFD) U、打开文件目录(AFD)即运行文件目录) U F D 文件名 保护码 文件长度 文件名

三、调度算法的流程图 四、文件管理源程序 #includevstdio、h> #include #includevmalloc、h> #include typedef struct ufd { char [10];/* 文件名*/ char procode[8];/* 属性*/ int length;/* 文件长度*/ struct ufd *nextfile;/* 指向下一个文件*/ }UFD;

电子文件管理作业指导

文件分发部门:( )

文件变更历史: History of docume nt cha nging:

1. 目的Aim 规范电子文件的管理程序。 To standardizes the procedure of electronic document management. 2. 范围Scope 本SOP适用于本公司所有的电子版本的GMP文件。 This SOP applies to all our company Selectronic GMP documents. 3. 职责Duty 3.1 QA部负责建立和更新本SOP QA department is responsible to establish and update this SOP. 3.2各部门和车间负责本部门电子文件的管理。 The departments and workshops are responsible to manage their electronic documents. 3.3 QA负责监督全公司电子文件的管理。 QA department is responsible to supervise the electronic document management of entire company. 4. 内容Content 4.1. 制定原则Principle 4.1.1. 所有文件必须同时具有电子版本,电子版本文件的内容和格式必须同纸质版本一致;附属的记录,与源文件放置在同一个文件夹里。Electronic version of each document should be available and consistent with the paper version; subsidiary records should be placed in the same folder together with source document. 4.1.2. 电子版本文件的名称须与文件名称一致,由文件名称和文件编号组成,比如:“文件的分类 与编码SOP ”。 The name of electronic version must be consistent with the paper version, including title and code, for example: “SOP - Taxonomy and code of GMP documents ” . 4.1.3. 电子版本由文件起草人负责,在文件批准后,将最终版本递交给文件管理QA。 After a document approved, the document drafter submits the final electronic version to document administrative QA. 4.1.4. 未递交电子版本的文件,QA部不予发放文件。 QA department shall not dispense a document until the electronic version has been received by QA department.

操作系统实验文件管理C 代码

#include #include #include #include #include using namespace std; #define BLKSIZE 512 // 数据块的大小 #define BLKNUM 512 // 数据块的块数 #define INODESIZE 32 // i节点的大小 #define INODENUM 32 // i节点的数目 #define FILENUM 8 // 打开文件表的数目//用户 typedef struct { char user_name[10]; // 用户名 char password[10]; // 密码 } User; //i节点 typedef struct { short inum; // 文件i节点号 char file_name[10]; // 文件名

char type; // 文件类型 char user_name[10]; // 文件所有者 short iparent; // 父目录的i节点号 short length; // 文件长度 short address[2]; // 存放文件的地址 } Inode; //打开文件表 typedef struct { short inum; // i节点号 char file_name[10]; // 文件名 short mode; // 读写模式(1:read, 2:write, // 3:read and write) } File_table; // 申明函数 void login(void); void init(void); int analyse(char *); void save_inode(int); int get_blknum(void); void read_blk(int); void write_blk(int);

文件系统与文件管理

学生课程实验报告书课程:《Linux操作系统》 级系 专业班 学号: 姓名: 指导教师: 2012—2013学年第 2 学期

一、实验项目:文件系统与文件管理 二、实验日期:2011年11月21日 三、实验原理: 掌握文件系统的挂载与卸载;磁盘配额管理;文件的权限修改;文件的归档与压缩; 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 1.对/文件系统实施用户级配额管理,对普通用户hellen与jerry进行配额 管理,磁盘空间软配额为300M,硬配额为350M,文件数量配额为:软配额12个,硬配额为15个。写出配额的具体步骤,并测试用户级配额是否成功。 答案:首先,创建hellen和jerry两个用户,配额步骤如下: 1)使用任何文本编辑工具编辑/etc/fstab文件,对“LABEL=/”所在行进行修改,增加命令选项usrquota。 2)重启电脑或者输入mount –o remount / 重新挂载/ 3)利用quotacheck命令创建https://www.360docs.net/doc/5916728406.html,er文件。 #touch https://www.360docs.net/doc/5916728406.html,er #quotacheck –mc /home

4)edquota hellen ,编辑hellen用户的bolck的软配额为300M,硬配额为350M,inodes的软配额为12个,硬配额为15个,修改内容如下: block soft hard inodes soft hard 0 307200 358400 0 12 15 5)将同样的配额设定复制给jerry用户 # edquota -p hellen jerry 6)启动配额管理 #quotaon –avu 之后,对配额进行测试,发现当拷贝文档个数大于12个或者文件大小超过300M的时候,终端进行警告提示,当文件个数大于15个或者文件大小超过350M的时候,不能往/写入任何内容。 2.在桌面环境下,选中有个文件或文件夹进行相应权限的修改。 3.用chmod命令分别用数字模式和功能模式修改/root/install.log文件属性。 答案:功能模式下修改权限 1)增加同组用户写入:chmod g+w /root/install.log 2)增加其他用户写入:chmod o+w /root/install.log 3)增加文件所有者写入:chmod u+w /root/install.log 4)增加同组用户读:chmod g+r /root/install.log 5)增加其他用户读:chmod o+r /root/install.log 6)增加文件所有者读:chmod u+r /root/install.log

实验八,文件管理

实验八文件管理 一、实验目的: 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 二、实验要求: 要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 三、实验内容: 设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作算法与框图。因系统小,文件目录的检索使用了简单的线性搜索。 文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。 四、运行结果:

五、心得体会: 通过这次试验我学会了如何创建一个用户,已经在此用户下保存多个文件,同时也学会了如何为文件设置保护措施,只允许单个用户访问。这些综合性的知识都在本实验中得到了很好的运用,因此我对文件的管理也得到了一定的锻炼。 六、附录: #include #include #include #include struct user {char name[10]; }user[10]; int in=0; struct link { struct file { char name[10];

实验3 文件管理

实验三文件管理 一、实验目的 理解文件系统的主要概念及文件系统内部功能和实现过程。 二、实验内容 采用二级文件目录结构,编写程序实现文件系统的文件存储空间的管理、文件的物理结构、目录结构管理和文件操作。具体如下: 1、设计一个有m个用户的文件系统,每个用户最少可保存一个文件。 2、规定用户在一次运行中只能打开K个文件。 3、系统能检查键入命令的正确性,出错时应能显示出错原因。 4、对文件应能设置保护措施,如只能执行、允许读、允许写等。 5、对文件的操作设计提供一套文件操作: CREATE建立文件; DELETE删除文件; OPEN打开文件; CLOSE关闭文件; READ读文件; WRITE写文件。 三、实验要求 ①详细描述实验设计细想、程序结构及各模块设计思路。 ②详细描述程序所用数据结构及算法 ③给出测试用例及实验结构 ④为增加程序可读性,在程序中进行适当注释说明 ⑤认真进行实验总结,包括:设计中遇到的问题、解决方法和收获 ⑥实验报告撰写要求结构清晰、描述准确逻辑性强 四、实验过程 举例:主文件目录 mfd=record username :string[maxlen]; files :array[1..K] of ufd; ofiles :arrau[1..S] of uod end; 用户打开文件目录表: uod=record filename:string[maxlen]; attrib:attrib;

status:(open,create); rp,up:integer; end; 用户文件目录: ufd=record fielname:string[maxlen]; attrib ro,rw); len:integer; addr:integer; end; 流程图: 二、主要数据结构 界面采用VC6 MFC环境开发

计算机操作系统实验-文件管理

哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 班级:实验学院一班 学号:6040310110 姓名:张元竞 设计成绩报告成绩指导老师

一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)

实验-文件管理(二)

实验六:文件系统 一、目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 2、要求设计一个n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二、例题: ①设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 ②程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 ③为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 ④算法与框图: a、因系统小,文件目录的检索使用了简单的线性搜索。 b、文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。 c、程序中使用的主要设计结构如下: Ⅰ、主文件目录和用户文件目录(MFD、UFD) Ⅱ、打开文件目录(AFD)(即运行文件目录)

三、调度算法的流程图 四、文件管理源程序 #include #include #include #include typedef struct ufd { char [10];/*文件名*/ char procode[8];/*属性*/

int length;/*文件长度*/ struct ufd *nextfile;/*指向下一个文件*/ }UFD; typedef struct mfd { char username[10];/*用户名*/ struct ufd *link;/*指向该用户的第一个文件*/ }MFD; typedef struct protected_flag { char code[4]; }PRO; typedef struct afd/*运行文件目录*/ { char [10];/*打开文件名*/ char procode[4]; int rwpointer;/*读写指针*/ }AFD; PRO flag[3]={"100",/*只读*/ "110",/*读写*/ "001"/*可执行*/ }; UFD *rw_pointer;/*读写指针*/ AFD *afd=NULL; MFD [10]; int num;/*当前用户个数*/ void displayallfile() { int i; UFD *p; for(i=0;i); printf("文件属性: %s\t||",p->procode); printf("文件长度: %d\n\n",p->length); p=p->nextfile; } }

作业六(文件管理2011)

作业六 姓名学号班级 一、单项选择题 1.操作系统中对数据进行管理的部分叫做 B 。 A、数据库系统 B、文件系统 C、检索系统 D、数据存储系统 2.文件系统是指D。 A、文件的集合 B、文件的目录 C、实现文件管理的一组软件 D、文件、管理文件的软件及数据结构的总体集 3.从用户角度看,引入文件系统的主要目的是D。 A、实现虚拟存储 B、保存系统文档 C、保存用户和系统档案 D、实现对文件的按名存取 4.文件的逻辑组织将文件分为记录式文件和 B 文件。 A、索引文件 B、流式文件 C、字符文件 D、读写文件 5.文件系统中用 C 管理文件。 A、作业控制块 B、外页表 C、目录 D、软硬件结合的方法 6.为了对文件系统中的文件进行安全管理,任何一个用户在进入系统时都必须进行注册,这一级安全管理是 A 安全管理。 A、系统级 B、目录级 C、用户级 D、文件级 7.为了解决不同用户文件的“命名冲突”问题,通常在文件系统中采用B。 A、约定的方法 B、多级目录 C、路径 D、索引 8.一个文件的绝对路径名是从 B 开始,逐步沿着每一级子目录向下追溯,最后到指定文件的整个通路上所有子目录名组成的一个字符串。 A、当前目录 B、根目录 C、多级目录 D、二级目录 9.对一个文件的访问,常由 A 共同限制。 A、用户访问权限和文件属性 B、用户访问权限和用户优先级 C、优先级和文件属性 D、文件属性和口令 10.磁盘上的文件以A单位读写。 A 、块B、记录C、柱面D、磁道 11.磁带上的文件一般只能 A 。 A、顺序存取 B、随机存取 C、以字节为单位存取 D、直接存取 12.使用文件前必须先 C 文件。 A、命名 B、建立 C、打开 D、备份 13.文件使用完毕后应B。 A、释放 B、关闭 C、卸下 D、备份

兰州大学操作系统实验七存储管理题目和答案

实验七实验报告 实验名称:7 存储管理 实验目的: 1.观察系统存储器使用情况 2.观察进程使用存储器的情况 3.掌握通过内存映像文件提高性能的方法 4.掌握动态内存分配技术 实验时间 3学时 预备知识: 1.存储相关的命令 free 显示系统使用和未被使用的内存数量(可以实时执行) 输出包含的标题有 3 行信息: Mem。此行包含了有关物理内存的信息。包括以下详细内容: total。该项显示可用的物理内存总量,单位为KB。该数字小于安装的物理内存的 容量,是因为内核本身也要使用一小部分的内存。 used。该项显示了用于应用程序超速缓存数据的内存容量。 free。该项显示了此时未使用且有效的内存容量。 Shared/buffers 缓冲区/cached。这些列显示了有关内存如何使用的更为详细的信息。 -/+ buffers/cache。Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。这部分内存在需要用于其他目的时可以释放。 free列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。 Swap。该行显示有关交换内存利用率的信息。该信息包含全部、已使用和释放的可用内存容量。 vmstat 报告进程、内存、分页、IO等多类信息(使用手册页) size 列出目标文件段大小和总大小(使用手册页)

2./proc文件系统(使用手册页man 5 proc) /proc/meminfo 内存状态信息 /proc/stat 包含内存页、内存对换等信息。 /proc/$pid/stat 某个进程的信息(包含内存使用信息) /proc/$pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。 /proc/$pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。 3.内存映像文件 内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。这样做可以加速I/O操作,并可以共享数据。 3.1 mmap(建立内存映射) 表头文件#include #include 定义函数void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize); 函数说明mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。参数start指向欲对应的内存起始地址,通常设为NULL,代表让系统自动选定地址,对应成功后该地址会返回。参数length代表将文件中多大的部分对应到内存。 参数prot代表映射区域的保护方式有下列组合 PROT_EXEC 映射区域可被执行 PROT_READ 映射区域可被读取 PROT_WRITE 映射区域可被写入 PROT_NONE 映射区域不能存取 参数flags会影响映射区域的各种特性 MAP_FIXED 如果参数start所指的地址无法成功建立映射时,则放弃映射,不 对地址做修正。通常不鼓励用此旗标。 MAP_SHARED对映射区域的写入数据会复制回文件内,而且允许其他映射该 文件的进程共享。 MAP_PRIV A TE 对映射区域的写入操作会产生一个映射文件的复制,即私人的

文档管理作业指导书

文档管理作业指导书

1.目的 为进一步规范科室往来文件资料及本科室文件资料的管理,便于资料的查找及长期保存,特制订本管理规定。 2.范围 本科室收文、发文、往来信函资料及科室内部各种资料等 3. 定义 无 4. 职责 4.1从医院、学校等下发的医疗、科研、行政类文件由科主任本人或科主任指定专人负责分类管理。 4.2从医院、学校等下发的护理文件由护士长负责分类管理。 4.3要查阅文件需经科主任或护士长同意,并做好登记,及时归还。 4.4各类文档资料筛选、整理、归类、保存、销毁由科主任指定专人负责。 5.工作程序 5.1科室收文 5.1.1科室收到文件由护士长用《收文簿》登记(包括收文日 期、来文字号、事由、密级、主办单位等); 5.1.2先送科室主任、主要负责人及相关部门阅读,然后送其 他有关需要阅知的对象,收文者进行签收; 5.1.3根据来文的有效期限及保存价值进行取舍,具有保存价

值的文件予以保留,并为每份文件编写科室收文号(收文号以年度为限,第二年的收文重新编号),将收文号记入《收文簿》,以便于查找; 5.1.4若科室人员需借阅相关文件,在护士长进行借阅登记后 借出,用后及时归还; 5.1.5文件存放以年度为界限,在第二年初将前一年文件分类 归档(如其他院校来文、院办来文、医教部来文、政治部来文等),每个类别编写相应的归档卷号,注意检查卷内文件的联系及卷内文件的保存价值,无保存价值的文件进行销毁。 5.2科室发文 5.2.1根据工作需要拟出准备发文的草稿,经审核无误后填入 科室的《发文审批表》; 5.2.2《发文审批表》上详细注明拟稿人、审稿人、主送、抄 送部门等; 5.2.3送科主任签字通过后,由行政办编排、校对、打印、用 印,记录入《发文簿》,分别交送相关部门执行,各负责人签收; 5.2.4行政办保留一份文件存档; 5.2.5以年度为单位对文件进行整理归档。 5.3其他资料: 5.3.1工作中涉及到各类资料、往来信函等,为便于管理,根 据其重要性及类别建档,建档以利于查找为原则,将资料分别纳入

操作系统文件系统实验

实验四文件系统实验 一.实验题目: 文件系统实验 二.实验目的: 阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 了解设计一个n个用户的文件系统,每个用户可以保存M个文件。用户在一次运行中只能打开一个文 件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令. 三.实验设备及环境: 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统,C语言软件。 四.实验内容及要求: 在阅读所给文件系统源程序的基础上,画出其实现的详细流程图,并给出有关的数据结构和说明。 五. 实验方法内容 1.算法流程图

(2)void Execute(int i,int len,int cmdset)执行命令函数流程图 (3)创建文件

(4)写文件流程图 (5)修改文件执行权限 (6

2.主要的常量变量 char cmd[64]; //存放用户输入命令 char buffer[36]; char user[32];//存放当前登陆的用户名 typedef char ALFA[12]; ALFA KWORD[keynum]; struct UFD{//用户文件管理模块 char filename[32]; //文件名 int safecode; //文件保护码 long length; //文件长度 }*curfile = NULL; struct MFD{//用户登陆信息管理模块 char username[32]; //用户名 bool filepoint; //用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件 }*curuser = NULL,*elseuser=NULL; typedef UFD UFD; typedef MFD MFD; 3.主要模块 void KeyWord()//初始化命令关键字 int LoginDisplay() //登陆选项操作函数 bool Login(int SELETE)//用户登陆,注册函数 void DisplayUFD()//打印用户信息,包括用户的各个文件 //名称、长度和操作权限的设置信息 void ByeFile(bool BOOL)//注销函数,调用次函数用户可以退出系统 bool ClearUserFile()//用户要将自己的注册目录从系统彻底删除 //首先将该用户目录下的全部文件删除 void ClearUserMes()//删除用户全部信息 void CreatFile()//在当前用户目录下创建文件 void DeleteFile() //删除当前目录下一个文件的操作 void ListAllFile()//显示当前用户目录下的文件信息 bool QueryModElse(bool BOOL,bool &flag)//查询其它用户目录下文件的文件 //当该文件的权限允许当前用户对其执行有关操作时,返回ture bool QueryMod(bool BOOL)//查询权限 bool WriteRight(int len,bool BOOL)//查看是否已经正确地写入到该文件信息中 void WriteLengthToFile(int Len,bool BOOL)//将文件长度写入文件管理模块中 void WriteFile()//向文件写入信息的操作 void ReadFile()//读文件函数 void ChangeMod()//修改某文件的执行权限 void Execute(int i,int len,int cmdset)//执行命令函数 void Command()//读取用户输入的命令,并将其转换成系统能识别的命令 void main() 4.代码 /***************************************************************** * 文件名: Simple_file_system.c * 功能: 简单文件管理系统模拟程序 *******************************************************************/ #include #include #include #include #include "conio.h" #include #define NULL 0 #define keynum 10 #define getspace(type) (type*)malloc(sizeof(type)) char cmd[64]; //存放用户输入命令 char buffer[36];//

操作系统课程设计-文件管理实验报告

操作系统课程实验报告 2013~2014年度第1学期 院系: 学号: 姓名: 任课教师:成绩评定:实验一题目:文件管理

完成日期:年月日 1、实验目的 了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。实验要求用高级语言编写和调试一个简单的模拟文件管理程序。加深理解有关盘块的分配与回收、目录管理等的具体实施策略。 2.、实验内容 模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。建立相应的数据结构(如:位示图等),模拟盘块管理。可以参照图6界面进行设计。 3、算法设计 1)、定义主面板MainFrame,布局好各个控件,并初始化 /* * 往node节点下添加一个子节点obj; */ public void addChild(Object obj, DefaultMutableTreeNode node) { if (obj != null && node != null) { DefaultMutableTreeNode temp = new DefaultMutableTreeNode(obj); if (node.getAllowsChildren()) node.add(temp); if(!((String) obj).equals("A:\\") && ((String) obj).length() <= 3)// 防止读取A软

驱,会出现异常;用于初始用的; addChildren(cmd.listAll((String) obj), temp); } } /* * 在node节点下添加数组children; */ public void addChildren(String[] children, DefaultMutableTreeNode node) { if (children != null && node != null) { for (int i = 0; i < children.length; i++) { addChild(children[i], node); } } } /* * 对树的节点进行预提取; */ public void addPrefetchChildren(String path, DefaultMutableTreeNode node) { addChildren(cmd.listDirectory(path), node); } /* * 对路径路径进行连接;(已经获得了所有的整个路径,需要量转化) */ public String toFilePath(String str) { // 先去掉头尾的[]; String pa = str.substring(1, str.length() - 1); String[] temp = pa.split(", "); String path = ""; for (int i = 1; i < temp.length; i++) { if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点; path += "\\"; path += temp[i]; } return path; } public String toPFilePath(String str) { // 先去掉头尾的[]; String pa = str.substring(1, str.length() - 1); String[] temp = pa.split(", "); String path = "";

相关文档
最新文档