搜档网
当前位置:搜档网 › 操作系统实验-存储管理程序设计说课材料

操作系统实验-存储管理程序设计说课材料

操作系统实验-存储管理程序设计说课材料
操作系统实验-存储管理程序设计说课材料

本科实验报告

课程名称:操作系统B

实验项目:存储管理程序设计实验地点:

专业班级:学号:

学生姓名:

指导教师:

2011年11月

目录

存储管理程序设计

一、实验目的和要求 (1)

二、实验内容及原理 (1)

三、实验仪器及设备 (3)

四、操作方法与实验步骤 (3)

五、实验数据记录和处理 (3)

六、实验结果分析 (8)

七、实验感想 (9)

实验三存储管理程序设计

一、实验目的和要求

(一)目的

存储管理的主要功能之一是合理地分配主存空间。请求页式管理是一种常用的虚拟存储管理技术。

本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计,来了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。

(二)要求

模拟页式虚拟存储管理中硬件的地址转换和缺页中断的处理过程,并用先进先出调度算法(FIFO)处理缺页中断。

二、实验内容及原理

(1)为了装入一个页面而必须调出一页时,如果被选中调出的页面在执行中没有修改过,则不必把该页重新写到磁盘上(因磁盘上已有副本)。因此,在页表中可以增加是否修改过的标志,当执行“存”指令、“写”指令时把对应页的修改标志置成“1”,表示该页修改过,否则为“0”,表示该页未修改过。页表格式如表3-1所示。

表3-1 页表格式

(2)设计一个地址转换程序来模拟硬件的地址转换和缺页中断处理过程。当访问的页在主存时则形成绝对地址,但不去模拟指令的执行,可用输出转换后的绝对地址来表示一条指令已完成。当访问的页不在主存时则输出“*该页页号”来表示硬件产生了一次缺页中断。模拟地址转换的程序流程如图3-1所示。

(3)编制一个FIFO页面调度程序。FIFO页面调度算法总是先调出作业中最先进入主存的那一页,因此,可以用一个数组来构成页号队列。数组中每个元素是该作业已在主存的页面号,假定分配给作业的主存块数为m,且该作业开始的m页已装入主存,则数组可由m个元素组成:

P[0],P[1],…,P[m-1]

它们的初值为

P[0]∶=0,P[1]∶=1,…,P[m-1]∶= m-1

用一指针k指示当要装入新页时应调出的页在数组的位置,k的初值为“0”。

图3-1 地址转换和FIFO页面调度流程

当产生缺页中断后,操作系统总是选择P[k]所指出的页面调出,然后执行P[k]∶=要装入的新页页号

k∶=(k+1)mod m

在实验中不必实际地启动磁盘执行调出一页和装入一页的工作,而用输出“OUT调出的页号”和“IN要装入的新页页号”来模拟一次调出和装入的过程。模拟程序的流程见图3-1。

(4)假定主存的每块长度为1024个字节,现有一个共7页的作业,其副本已在磁盘上。系统为该作业分配了4块主存块,且该作业的第0页至第3页已经装入主存,其余3页尚未装入主存,该作业的页表见表3-2所示。

表3-2 作业的页表

如果该作业依次执行的指令序列如表3-3所示。

表3-3 作业依次执行的指令序列

依次执行上述的指令序列来调试你所设计的程序(仅模拟指令的执行,不必考虑指令序列中具体操作的执行)

(5)为了检查程序的正确性,可自行确定若干组指令序列,运行设计的程序,核对执行结果。

三、实验仪器及设备

计算机一台、c++6.0编程软件

四、操作方法与实验步骤

1.编写源程序

2. 编译运行

五、实验数据记录和处理

源程序:

#include

#include

#include

#include

#define N 6//实验中假定的页表长度

#define M 4//主存物理块数

struct

{int lnumber; //页号

int flag; //表示该页是否在主存,"1"表示在主存,"0"表示不在主存

int pnumber; //该页所在主存块的块号

int write; //该页是否被修改过,"1"表示修改过,"0"表示没有修改过

int dnumber; //该页存放在磁盘上的位置,即磁盘块号

}page[N]; //页表定义

int p[M];//用数组模拟]FIFO算法中的队列(使用循环队列)

int head;

void initial(void);

int do_mmap(int);//模拟地址转换

void do_page_fault(int);//缺页中断处理程序

void run_first_instructon(int);//执行进程的第一条指令

void run_a_instruction(int);//CPU执行一条指令

void print_page_and_fifoqueue(void);//输出页表和FIFO队列

main()

{

int laddress, paddress;//逻辑地址,物理地址

int lnumber, ad, pnumber;//页号,页内地址和物理块号

initial();

print_page_and_fifoqueue();//输出页表和FIFO队列

run_first_instructon(0x0000);//运行进程的第一条指令的地址

cout<<"输入下一条指令的逻辑地址(0~32767)(-1 to end)"<

cin>>laddress;

while(laddress>32767){

cout<<"输入错误! 请重新输入下一条指令的逻辑地址(0~32767)(-1 to end)"<

cin>>laddress;

}

while(laddress!=-1){

lnumber=laddress>>10;//取逻辑地址的页号lnumber

if(page[lnumber].flag==1){//指令所在的页面已装入在内存中

paddress=do_mmap(laddress);//形成物理地址

cout<

run_a_instruction(paddress);

cout<<"此指令执行是否修改所在页lnumber="<

char change;

cin>>change;

if(tolower(change)=='y'){

page[lnumber].write=1;print_page_and_fifoqueue();

}

}

else{//缺页中断

cout<

do_page_fault(lnumber);//直接转去缺页中断处理

continue;//本循环结束,重新执行指令

}

cout<<"输入下一条指令的逻辑地址((0~32767),-1 to end)\n";

cin>>laddress;

while(laddress>32767){//输入正确性检测

cout<<"输入错误! 请重新输入下一条指令的逻辑地址(0~32767)(-1 to end)"<

cin>>laddress;

}

}

cout<<"进程运行结束!"<

system("PAUSE");

return 0;

}

//手工初始化页表和p[M]队列

void initial(void)

{

int i;

for(i=0; i<=5; i++){

page[i].lnumber=i;

if(i<=M-1){//预装入算法初始化页表的前四项

cout<<"输入页号为"<

cin>>page[i].pnumber;

page[i].flag=1;//存在标志置1

}

}

//初始化FIFO的队列

head=0;

for(i=0; i<=M-1; i++)

p[i]=i;

}

//输出页表和FIFO队列

void print_page_and_fifoqueue(void)

{

int i;

cout<<"输出页表!\n";

cout<

<

for(i=0; i<=N-1; i++)

cout<

cout<<"输出FIFO对列:\n";

cout<

cout<<"head="<

for(i=0; i<=M-1;i++)

cout<

}

//模拟地址转换

int do_mmap(int laddress)

{

int lnumber, ad, pnumber, paddress;

lnumber=laddress>>10;//取逻辑地址的页号lnumber

ad=laddress&0x3ff;//页内地址

pnumber=page[lnumber].pnumber;//从页表中取得块号pnumber

paddress=pnumber<<10|ad;

return paddress;

}

//CPU执行一条指令,输出物理地址表示指令执行完成

void run_a_instruction(int paddress)

{

cout<

}

//执行进程的第一条指令

void run_first_instructon(int laddress)

{

int lnumber, ad, pnumber, paddress;

lnumber=laddress>>10;//取逻辑地址的页号

if(page[lnumber].flag==1)

paddress=do_mmap(laddress);//形成物理地址

cout<

run_a_instruction(paddress);

cout<<"此指令执行(0x0000)是否修改所在页面lnumber="<

char change;

cin>>change;

if(tolower(change)=='y'){//若指令执行完时修改了页面,则置write标志位位1 page[lnumber].write=1;

print_page_and_fifoqueue();

}

cout<<"********第一条指令执行完成(地址为0x0000)***********"<

}

//页面写回磁盘

void write_to_harddisk(int j)

{

cout<

}

//缺页中断处理程序

void do_page_fault(int lnumber)

{

int j;//j是选择淘汰的页

j=p[head];

p[head]=lnumber;//lnumber是新装入的页号

head=(head+1)%M;

//若淘汰出主存的页j已修改,则写会磁盘

if(page[j].write==1)

write_to_harddisk(j);//页j写回磁盘

//修改页表

page[j].flag=0;//页表中第j页的存在标志为0

page[lnumber].flag=1;//页表第lnumber的存在标志为1

page[lnumber].write=0;//页表第lnumber的修改标志为0

page[lnumber].pnumber=page[j].pnumber;//第拉怒目布尔页的主存块号为第j页原主存块号

cout<

cout<<"按任意键将查看“页面置换”之后的页表page[N]和FIFO队列信息"<

system("PAUSE");

print_page_and_fifoqueue();

}

六、实验结果分析

七、实验感想

本实验是通过请求页式存储管理中页面置换算法的模拟设计,来了解虚拟存储技术的特点,掌握请求页式存储管理页面置换算法。该程序通过查找页表,得到该页所在外存的物理块号。如果此时内存未满,能容纳新页,则启动磁盘I/O将所缺之页调入内存,然后修改页表。如果内存已满,则须按某种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调入,修改页表。利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入过程对用户是透明的。先进先出算法总是最先淘汰最先进入内存的页面,比较简单,容易理解,即选择在内存中驻留时间最久的页面予以淘汰。该算法是把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个置换指针,使它总是指向最老页面。CPU接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中断处理程序。在编写程序时,还要设置一个缺页中断指针,当出现缺页时指针增一,最后通过总页数和缺的页数,算出缺页率。通过本实验,更深刻的了解了存储器的管理方式,还有页表置换算法的认知,通过不同的算法来对内存的页面进行管理。另外,编程之前要做好整体规划,充分掌握整个程序下各个小模块的功能和他们之间调度的关系,先实现各个模块子程序,这样效率很高。

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

操作系统实验报告实验名称:文件管理 专业班级:网络工程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;

操作系统课程设计文件系统管理)

操作系统课程设计Array文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 2013年1月8日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。 二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。 以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计

4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 四、需求分析 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名” 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory);在主文件目录中,每个用户目录文件都占有一个目

操作系统实验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");

管理信息系统实验课程教案

《管理信息系统》 实验

《管理信息系统》实验教案 课程概况: 《管理信息系统》实验课程是会计学、财务管理、市场营销专业的专业实验课程。总学时:18学时。 本课程的教学对象是会计学、财务管理、市场营销专业的本科学生,学生在学习本课程时应具有《管理学基础》、《财务会计》、《计算机基础》、《企业管理》、《数据库理论与应用》等课程方面的知识。 本课程着重于通过上机实习,培养和提高学生实际应用计算机的基本技能,使学生通过系统开发方法与使用技术的学习,提高运用计算机来处理管理业务的能力,使之成为管理信息系统系统的维护员、操作员,并具有成为系统管理员和分析设计员的持续学习能力。 本课程的主要任务是使学生掌握管理信息系统系统基本操作方法与技能,培养和提高学生实际应用的技能。 实验主要内容 实验一系统管理 实验二基础档案设置 实验三总账管理系统初始设置 实验四总账管理系统日常业务处理 实验五总账管理系统银行对账 实验六总账管理系统期末处理 实验七 UFO报表管理(一) 实验八 UFO报表管理(二) 实验九 UFO报表管理(三) 实验一系统管理 【实验目的】 掌握用友ERP-U8软件中有关财务管理系统中的系统管理的相关内容,理解系统管理在整个财务管理系统中的作用及重要性,充分理解财务分工的意义。 【实验内容】 1. 建立单位账套 2. 增加操作员 3. 进行财务分工 4. 备份账套数据 5.账套数据引入 6.修改账套数据 【实验资料】 1. 建立新账套 (1) 账套信息

账套号:001;账套名称:北京光明科技有限公司;采用默认账套路径;启用会计期:2006年1月;会计期间设置:1月1日至12月31日。 (2) 单位信息 单位名称:北京光明科技有限公司;单位简称:光明公司。 (3) 核算类型 该企业的记账本位币为人民币(RMB);企业类型为工业;行业性质为新会计制度;账套主管为学生本人;按行业性质预置科目。 (4) 基础信息 该企业有外币核算,进行经济业务处理时,需要对存货、客户、供应商进行分类。 (5) 分类编码方案 科目编码级次:42222 其他:默认 (6) 数据精度 该企业对存货数量、单价小数位定为2。 2. 财务分工 (1) 学号的后4位学生本人(口令:1)--账套主管 负责财务软件运行环境的建立,以及各项初始设置工作;负责财务软件的日常运行管理工作,监督并保证系统的有效、安全、正常运行;负责总账系统的凭证审核、记账、账簿查询、月末结账工作;负责报表管理及其财务分析工作。 具有系统所有模块的全部权限。 (2) 002 陈亮(口令:2)--出纳 负责现金、银行账管理工作。 具有“总账-凭证-出纳签字”权限,具有“总账-出纳”的全部操作权限。 (3) 003 赵红(口令:3)--会计 负责总账系统的凭证管理工作以及客户往来和供应商往来管理工作。 具有“总账-凭证-凭证处理”的全部权限,具有“总账-凭证-查询凭证、打印凭证、科目汇总、摘要汇总表、常用凭证、凭证复制”权限,具有“总账-期末-转账设置、转账生成”权限。 【实验要求】 1. 以系统管理员Admin的身份注册系统管理。 【操作指导】 1. 启动系统管理 执行“开始”|“程序”|“用友ERP-U8”|“系统服务”|“系统管理”命令,进入“用友ERP-U8〖系统管理〗”窗口。 2. 登录系统管理 (1) 执行“系统”|“注册”命令,打开“注册〖系统管理〗”对话框。

管理信息系统实验指南电子教案

实验一信息搜索方法及企业信息化战略分析 一、实验题目 信息搜索方法及企业信息化战略分析 二、实验课时 课内2课时、课外2课时。 三、实验目的 1、掌握获取信息的方法。 2、学会Google和Baidu的高级搜索技巧。 3、通过分析沃尔玛如何用信息技术提升其竞争力理解信息化对一个企业的战略意义。 四、实验内容和要求 (1)掌握Google、Baidu等搜索引擎的使用方法; (2)收集关于沃尔玛的资料,分析沃尔玛如何利用信息技术整合资源,其管理信息系统的建设情况。每人提交一份分析实验报告。 实验二信息系统分析(一)——管理业务流程调查 一、某厂产品库存管理系统业务流程调查范例 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备

理、库存帐务管理和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,库存管理组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。 产品入库管理的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 产品出库管理的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。 产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。 产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。 表2 产品入库单第册号 表4 产品入库流水帐页

操作系统文件管理_答案

第六部分文件管理 1、文件系统的主要目的就是( )。 A、实现对文件的按名存取 B、实现虚拟存储 C、提供外存的读写速度 D、用于存储系统文件 2、文件系统就是指( )。 A、文件的集合 B、文件的目录集合 C、实现文件管理的一组软件 D、文件、管理文件的软件及数据结构的总体 3、文件管理实际上就是管理( )。 A、主存空间 B、辅助存储空间 C、逻辑地址空间 D、物理地址空间 4、下列文件的物理结构中,不利于文件长度动态增长的文件物理结构就是( )。 A、顺序文件 B、链接文件 C、索引文件 D、系统文件 5、下列描述不就是文件系统功能的就是( )。 A、建立文件目录 B、提供一组文件操作 C、实现对磁盘的驱动调度 D、实现从逻辑文件到物理文件间的转换 6、文件系统在创建一个文件时,为它建立一个( )。 A、文件目录 B、目录文件 C、逻辑结构 D、逻辑空间 7、索引式(随机)文件组织的一个主要优点就是( )。 A、不需要链接指针 B、能实现物理块的动态分配 C、回收实现比较简单 D、用户存取方便 8、面向用户的文件组织机构属于( )。 A、虚拟结构 B、实际结构 C、逻辑结构 D、物理结构 9、按文件用途来分,编译程序就是( )。 A、用户文件 B、档案文件 C、系统文件 D、库文件 10、将信息加工形成具有保留价值的文件就是( )。 A、库文件 B、档案文件 C、系统文件 D、临时文件 11、文件目录的主要作用就是( )。 A、按名存取 B、提高速度 C、节省空间 D、提高外存利用率 12、如果文件系统中有两个文件重名,不应采用( )。 A、一级目录结构 B、树型目录结构 C、二级目录结构 D、A与C 13、文件系统采用树型目录结构后,对于不同用户的文件,其文件名( )。 A、应该相同 B、应该不同 C、可以不同,也可以相同 D、受系统约束 14、文件系统采用二级文件目录可以( )。 A、缩短访问存储器的时间 B、实现文件共享 C、节省内存空间 D、解决不同用户间的文件命名冲突

操作系统实验文件管理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);

(最新)《管理信息系统实验》课程教学大纲(1)

《管理信息系统实验》教学大纲(Experiment of Management Information System,0820010S0) 一、前言 1、课程概述 管理信息系统既是一门课程,又是一门学科。从学科角度看,管理信息系统是管理科学、系统科学、信息技术等多学科综合发展起来的边缘性、综合性、系统性的学科,是运用管理理论、信息理论、系统理论、计算机科学等学科的概念和方法,融合提炼组成的一套新的学科体系,它既具有较深和较宽的理论基础,又是一门实践性很强的学科。从课程角度看,管理信息系统涵盖了管理学、信息学、数据库等方面的理论知识和计算机技术、网络技术、信息系统的应用与实践,是一门理论与实践、管与工相结合的专业基础课。 管理信息系统实验作为管理信息系统的实践环节,重点在于将学习到的知识、理论应用于实践,体会认识,形成观念;同时,在实践中,发展知识、理论,拓宽认知,积累经验。真正达到“知行合一,行为终极”的目的。 2、课程性质 管理信息系统实验是信息管理与信息系统本科专业的专业基础必修课,也是管理学、经济类各专业的学科共同课。 3、学分与学时 本课程为1学分,14学时。 4、教学目的与要求 【教学目的】:通过本课程的实践,要让学生将学习得到的知识、理论变为实践中的经验、理念,从实践的角度,培养学生的信息思维、信息素养,养成在未来的工作、生活中通过收集信息了解问题,应用信息技术构建信息系统解决问题的习惯,从而提高学生在各自的专业领域、生存环境中观察问题、分析问题、解决问题和实际思考的能力。 【教学要求】:

(1)紧密结合信息技术的新发展、新应用,通过体验实验感受信息技术; (2)强调“信息思维”,注重信息数据,通过数据库、数据分析实验感受信息社会环境; (3)清楚信息技术的价值在于实际的应用,通过信息技术在企业成功应用案例的收集实验感受现代企业生存、竞争的根本; (4)实践教学环节要以理论教学内容为基础,让学生尽可能地通过实践体会、掌握借助信息技术解决实际问题的方法,培养信息思维习惯。 5、使用对象 本课程的教学对象为全校管理学、经济类各专业的本科学生。 6、先修课程要求 《大学计算机基础》、《计算机程序设计》和《管理学》。 二、实验课程的内容、要求及学时分配

管理信息系统实验指导书(参考Word)

《管理信息系统》实验指导书 课程代码:16020051 英文名称:Management Information System,MIS 适用对象:信息管理与信息系统本科专业、工商管理类本科专业 学时学分:共48学时,其中理论教学32学时、实践16学时。3学分。 一、实验的地位、作用 管理信息系统实验作为课程实践性环节之一,是教学过程中必不可少的重要内容。通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学内容;增强管理信息系统的感性认识;掌握管理信息系统分析、开发的基本方法;培养学生理论与实践相结合的能力。 二、实验开设对象 本实验开设对象为《管理信息系统》课程的学习者(信息管理与信息系统专业及工商管理专业本科学生),实验为必修内容。 三、基本原理及课程简介 《管理信息系统》是一门培养学生信息系统分析、设计、开发能力的理论课程,同时要求学生具有较强的动手实践能力。在信息管理与信息系统专业的培养计划中,它是核心课程。本课程在教学内容方面着重基本理论、基本知识和基本方法。在实践能力方面着重培养系统分析方法、系统设计方法与基本技能的训练。实验课程不同于理论课程,应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养,共开设5个实验项目。实验1-4侧重单项技能训练,实验5为综合性实验。 四、指导教师 原则上由管理信息系统课程讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间内完成相关课程实验。 五、实验设备配置

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

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

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

旅游管理信息系统实验教案

名师精编精品教案 黄冈师范学院 旅游管理信息系统 实 验 教 案 授课班级:旅游20XX级 指导教师:杨鹤 20XX年10月

目录 实验一数据库概念结构设计.................................................................................................... - 1 -实验二Access数据库的基本操作 ......................................................................................... - 5 -

实验一数据库概念结构设计 【实验项目编号】419013550001 【实验项目名称】数据库概念结构设计 【实验目的】熟悉数据库设计的概念、步骤和方法,掌握通过绘制E-R图进行关系型数据库概念结构设计的方法和步骤。 【实验设备】 1.微型计算机; 2.Windows XP操作系统,Microsoft Visio; 【实验步骤及内容】 一、数据库设计的概念和步骤 数据库的设计主要经过下列五个步骤: 1. 需求分析:明确系统建设的目标,制定规划,组织队伍,准确了解与分析用户需求。通过调查进行功能需求分析,确定数据与处理的关系,形成数据字典。 2. 概念结构设计:将分析结果抽象成数据模型。对数据进行分类、组织,形成实体、属性、联系,形成基本E-R图。 3. 逻辑设计:将概念结构转换为关系模式,确定主键;采用规范化理论来对关系模式进行优化。 4. 物理结构设计:进行索引和存储结构设计。 5. 系统实施:将上述设计的成果付诸实际。 本实验主要介绍用E-R图进行概念结构设计的方法,并演示使用SQL Server进行数据库实施的过程。 二、Microsoft Office Visio 2003介绍 1. Office Visio是微软推出的一款绘图工具,他能够方便商务人员和专业技术人员就复杂信息、系统和流程进行可视化处理、分析和交流。目前,使用比较广泛的是该工具的2003版本。 2. Visio能够帮助用户创建具有专业外观的图表,以便理解、记录和分析信息、数据、系统和过程。创建Visio 图表非常简单、快捷,令人印象更加深刻。 3. 目前,Visio已经成为图表绘制的标准,很多专业机构都要求提交的文档资料中,插图必须使用Visio来进行绘制。因此,学习Visio的使用,不光对掌握信息系统的开发知识非常重要,也是文档处理能力中不可或缺的一项基本要素。 三、用Microsoft Visio进行E-R图的绘制 1. 打开Microsoft Visio,在“选择数据类型”中点击“框图\基本框图”,如图1-1所示;

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

实验七实验报告 实验名称: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 对映射区域的写入操作会产生一个映射文件的复制,即私人的

操作系统精髓与设计原理-第12章-文件管理

第12章文件管理 复习题: 12.1、域和记录有什么不同? 答:域(field)是基本数据单位。一个域包含一个值。记录(record)是一组相关的域的集合,它可以看做是应用程序的一个单元。 12.2、文件和数据库有什么不同? 答:文件(file)是一组相似记录的集合,它被用户和应用程序看做是一个实体,并可以通过名字访问。数据库(database)是一组相关的数据集合,它的本质 特征是数据元素间存在着明确的关系,并且可供不同的应用程序使用。 12.3、什么是文件管理系统? 答:文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。12.4、选择文件组织时的重要原则是什么? 答:访问快速,易于修改,节约存储空间,维护简单,可靠性。 12.5、列出并简单定义五种文件组织。 答:堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。顺序文件是最常用的文件组织形式。在这类文件中,每个记录 都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度 固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存 各个域的值,每个域的域名和长度是该文件结构的属性。索引顺序文件保留 了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个 特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记 录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中 的记录可以根据它前面记录的指针进行定位。索引文件:只能通过索引来访 问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针 指向这条记录即可。此外,还可以使用长度可变的记录。直接文件或散列 文件:直接文件使用基于关键字的散列。 12.6、为什么在索引顺序文件中查找一个记录的平均搜索时间小于在顺序文件中的平均 搜索时间? 答:在顺序文件中,查找一个记录是按顺序检测每一个记录直到有一个包含符合条件的关键域值的记录被找到。索引顺序文件提供一个执行最小穷举搜索的索引 结构。 12.7、对目录执行的典型操作有哪些? 答:搜索,创建文件,删除文件,显示目录,修改目录。 12.8、路径名和工作目录有什么关系? 答:路径名是由一系列从根目录或主目录向下到各个分支,最后直到该文件的路径 中的目录名和最后到达的文件名组成。工作目录是一个这样的目录,它是含有用 户正在使用的当前目录的树形结构。 12.9、可以授予或拒绝的某个特定用户对某个特定文件的访问权限通常有哪些? 答:无(none),知道(knowledge),执行(execution),读(reading),追加(appending), 更新(updating),改变保护(changing protection),删除(deletion)。 12.10、列出并简单定义三种组块方式。 答:固定组块(fixed blocking):使用固定长度的记录,并且若干条完整的记录被保存在一个块中。在每个块的末尾可能会有一些未使用的空间,称为内部碎片。

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

昆明理工大学信息工程与自动化学院学生实验报告 (201 —201 学年第二学期) 课程名称:操作系统开课实验室:年月日 一、实验目的 用C或C++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。从而 对各种文件操作命令的实质内容和执行过程有比较深入的了解。 二、实验原理及基本技术路线图(方框原理图) 用C模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。 功能设计: Help 显示命令帮助 dir 显示当前目录下的文件和文件夹 exit 退出系统 create [文件名] 创建文本文件 cdir [目录名] 创建文件夹 read [文件名] 读取一个文件最多可同时读取五个 close[文件名] 关闭一个文件 edit [文件名] 编辑一个文件 cd [目录名] 进子目录或者上级目录 attr [文件名] 显示该文件的属性 del [文件名] 删除文件 rename [文件名] 重命名

编辑功能流程图

删除文件流程图创建文件流程图 核心算法: bool Format(void); //格式化 bool install(void); //装载虚拟硬盘的数据 void login(void); /用户登陆

void showMenu(void);//显示功能菜单 bool onAction(void);//用户选择功能并执行 void createFile(string str);//创建文件 bool read(string str);//读取文件 void editFile(string str);//编辑文件 void Delete(string str);//删除一个文件 数据结构: /*---------常变量------*/ const unsigned int BLOCK_SIZE=512; //块长 const unsigned int DATA_BLOCK_NUM=512; //数据块数量 const unsigned int DINODE_START=4*BLOCK_SIZE; //inode起始位置 const unsigned int DINODE_SIZE=512; //inode大小 const unsigned int DINODE_NUM=32; //inode数量 const unsigned int DATASTART=(2+DINODE_NUM)*BLOCK_SIZE; //数据区的开始地址 const unsigned int ACCOUNT_NUM=10; //用户数量 /*inode结构体*/ struct inode{ unsigned short di_tag; /*inode标识*/ unsigned short di_number; /*关联文件数,当为0时表示删除文件,如一个目录至少 包含两个文件:"."和".."*/ unsigned short di_mode; /*存取模式:0为目录,1为文件*/ unsigned short di_userID; /*当前inode所属用户0为根目录ID,一次下去是管理员目

操作系统文件管理系统模拟实验

文件管理系统模拟 1.实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 2.实验内容 为Linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条) login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 3.实验提示 (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 4.源代码 #include #include #include #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M #define DISKSIZE 1024 //磁盘块的大小1K #define DISK_NUM 1024 //磁盘块数目1K #define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT表大小 #define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号 #define ROOT_DISK_SIZE sizeof(struct direct) //根

计算机操作系统第七章-文件管理资料

第七章文件管理 第一节文件和文件系统 一、文件系统的引入 1、用户在使用计算机的过程中遇到的有关软件资源的两个基本问题: ●产生了新的资源时:怎样长期存放; ●使用系统中现有资源时:怎样检索,如何使用; 解决的方法:把信息以一种单元--文件--的形式存储在磁盘或其他外部存储介质上。文件由操作系统来统一管理,包括:文件的结构,命名,存取,使用,保护,以及实现方法。 2、现代OS中引入文件系统的目的 ●管理系统和用户的软件资源,让用户实现对信息的“按名存取”; ●提供信息的存储、检索、更新、共享和文件保护等一系列文件操作,使用户能方便有效地使用和操作文件; ●文件系统给用户带来的好处是:使用方便、数据安全、接口统一 3、文件系统的功能 ●统一管理文件的存储空间(外存空间),实施存储空间的分配与回收●实现文件的按名存取:名字空间映射存储空间 ●实现文件信息的共享,并提供文件的保护和保密措施 ●向用户提供一个方便使用的接口 ●系统维护及向用户提供有关信息 ●提供与I/O的统一接口 文件系统在操作系统接口中占的比例最大,用户使用操作系统的

感觉在很大程度上取决于对文件系统的使用效果。 二、文件系统中的相关概念 1、数据项:构成文件内容的基本单位 ●基本数据项。这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,即原子数据,又称为数据元素或字段。它的命名往往与其属性一致。 ●组合数据项。它是由若干个基本数据项组成的,简称组项。 2、记录:是一组相关数据项的集合,用于描述一个对象在某方面的一组属性。 3、关键字:是能唯一标识一个记录的数据项。记录的关键字可以不止一个;关键字可以是一个基本数据项,也可以是一个组合数据项。 4、文件:是指由创建者所定义的、具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。 在有结构的文件中,文件由若干个相关记录组成(是记录的序列);而无结构文件则被看成是一个字符(字节)流。 文件是文件系统中一个最大的数据单位,它描述了一个对象集。 图7-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];//

相关主题