操作系统原理实验指导书2012
操作系统原理实验指导
3、实验题
(1)设计一个内存分配模拟程序。假定在计算机系统作业后备队列中有六个等待调度运行的作业,参与分配的内存大小为32KB,采用简单页式管理,每个页帧的大小为1KB。根据要求进行内存的分配和回收。要求打印内存分配表。有关作业的组织和作业有关参数的设置请自行设计,要大致符合实际情况。
main()
{
int i;
if (fork())
{
i=wait();
printf(“It is parent process.\n”);
printf(“The child process, ID number %d, is finished.\n”,i);
}
else{
print(“It is child process.\n”);
(2)自选设计一个进程调度算法,并加以实现。
实验三存储器管理
1、目的与要求
目的:存储器管理是操作系统重要的组成部分,提高存储器的效率始终是操作系统研究的重要课题之一。虚拟存储技术是用来扩大存储容量的一种重要方法。学生应独立地使用一种开发工具或高级语言编写几个常用的存储分配算法,并能设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的理解,巩固所学的知识。
操作系统实验指导
操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。
操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。
实验指导手册Ver2012
操作系统实验指导手册赵霞北京工商大学计算机与信息工程学院2012-9目录前言 (3)实验1:Linux的安装与基本操作 (4)目的与要求 (4)1.用Ubuntu 11.04的光盘安装系统 (4)2.操作系统启动模式 (4)3.用户管理 (5)4.进程管理 (7)5.文件系统命令 (7)6.vim编辑器 (9)7.使用U盘 (11)参考命令: (11)要求: (11)8.基本网络管理命令 (12)9.其他网络管理命令 (12)10.SSH服务与客户端 (13)11.网络服务器配置 (13)实验2:shell编程和GCC编程环境 (15)目的 (15)1.shell编程 (15)2.GCC编程环境 (16)3.GDB调试 (18)实验3:编程与调试:进程管理 (22)目的 (22)1.练习1 (22)2.练习2 (23)3.练习3 (24)4.练习4 (25)5.练习5 (26)实验4:编程与调试:内存管理 (28)目的 (28)1.练习1 (28)2.练习2 (29)3.练习3 (30)实验5:编程与调试:文件操作 (31)目的 (31)1.练习1 (31)2.练习2 (33)3.练习3 (36)实验6:编程与调试:网络通信 (41)目的 (41)1.练习1 (41)2.练习2 (42)3.练习3 (44)4.练习4 (46)实验7:编程与调试:线程编程 (48)目的 (48)1.练习1 (48)2.练习2 (49)综合实验 (56)1.题目: (56)2.目的 (56)3.实验要求与评价 (56)4.实验内容及学时安排 (57)前言本实验指导手册供学习《操作系统》课程的学生和教师使用。
实验内容包括:独立实验共7个,综合实验1个。
实验1偏重使用和操作,实验2-7偏重编程和开发,由教师根据课时安排和学生的实际情况选择。
学生也可以根据自己的情况和兴趣在课外学习和研究使用参考。
给读者的建议:1、对于Linux操作系统的初学者,配合各类Linux操作系统使用类的书籍使用,建议到图书馆里借阅适合自己的相关参考书。
操作系统原理实验报告
2012 软件工程(嵌入式)
学号:____________ 姓名:____________
苏州大学计算机科学与技术学院 2015 年 3 月
目录
操作系统原理实验报告
一、实验环境............................................................................................ 1
5
操作系统原理实验报告 6
操作系统原理实验报告 7
操作系统原理实验报告 8
操作系统原理实验报告
实验二、进程间的通信
实验环境:
实验环境一:Windows 平台
实验时间:
6 小时
实验目的:
初步了解 windows 环境下进程间通信的机制,掌握如何利用消息、共享内存 和剪贴板三种进程间通信机制中的任意 2 种进行通信的原理,并利用 win32API 函数编写实例程序。
[提示] 1、从 root 注册进系统,可以通过用户图形界面中的菜单创建用户组并为用
户分配注册号,也可以通过 shell 命令创建用户组,创建用户组的 shell 命令格式
2
操作系统原理实验报告
如下:
groupadd -g group_ID group_name
为用户分配注册号的 shell 命令格式如下:
usermod options login_ID
其中,任选项 options 可以为如下内容:
-c comment
表示注释信息
-d pathname
表示当前目录
-g group_ID
表示主用户组名
-G supplementary_group_ID 表示主用户组的增补组名
操作系统原理实验指导书
目录实验一系统功能调用 (2)实验二熟悉Linux环境 (5)实验三shell脚本 (14)实验四进程控制 (18)实验五进程间通信 (22)(一) 信号量机制实验 (22)实验五进程间通信 (28)(二) 进程的管道通信实验 (28)实验五进程间通信 (32)(三) 消息的发送与接收实验 (32)实验五进程间通信 (38)(四) 共享存储区通信 (38)实验六死锁避免的算法 (38)实验七存储管理 (38)1. 常用页面置换算法 (38)2.动态分区分配算法 (38)实验八文件操作 (38)实验一系统功能调用【实验目的】1.熟悉操作系统的系统功能调用。
2.掌握用C语言实现系统功能调用的方法和步骤。
3.掌握利用10H号功能调用(BIOS的显示I/O功能调用)来实现对屏幕的操作与控制。
【预习内容】1.预习DOS、BIOS系统功能调用。
2.预习C语言实现系统功能调用的方法。
【实验内容】1.在屏幕的指定区域内显示字符串。
(必做题)2.在屏幕的指定区域内画框,在框内显示字符串。
(提高题)3. 在屏幕的指定区域内动画显示字符串。
(附加题)【实验报告】1.列出调试通过程序的清单,并加注释。
2.给出必要的程序设计思路和方法(或列出流程图)。
3.总结上机调试过程中所遇到的问题和解决方法及感想。
【实验相关资料】int86(0X10, &r, &r)函数:对BIOS调用的标准函数其中0X10是BIOS调用类型号(相当于INT n调用的中断类型号n),是10H号中断调用,是一个显示I/O调用。
BIOS借助此中断产生的功能调用控制PC机屏幕上的文本和图形。
通过给AH 寄存器设置适当的值选择想要的功能调用,然后发中断10H。
第一个&r是指向联合类型REGS的指针,用于接收调用的功能号及其它一些指定的入口参数,以便传给相应寄存器。
第二个&r是指向联合类型REGS的指针,用于接收功能调用后的返回值,即出口参数。
《操作系统原理》课程实验指导书
}
else { //大于0是父进程
printf("The parent:%d\n", getpid());
x=4;
}
printf("x=%d\n",x);
}
验证操作:
(45)程序运行共输出了几条语句?
(46)x的值输出了几次?
思考:
(47)x为什么会输出不同的值?
16.并发执行
#include <sys/types.h>
相关准备知识
Linux操作系统命令接口。
实验步骤
以图形化方式登录Linux系统,在桌面单击鼠标右键,选新建终端。
8.文件、目录管理。
(29)pwd
功能:显示用户当前所处的目录的绝对路径。
语法:pwd
例如,以root身份登录后,使用命令pwd将显示/root信息。
(30)ls
功能:列出目录的内容,类似于DOS下的dir命令。
(37)rm
功能:删除一个目录中的一个或多个文件或目录。
语法:rm 文件名…
例如,rm /tmp/my.c将删除/tmp目录下的my.c文件。
(38)clear
功能:清除屏幕上的信息,清屏后,提示符移动到屏幕左上角。
9.C程序开发
(39)使用vi编辑C语言源程序
(40)gcc编译和链接
(41)运行程序。
实验对象
本实验开设对象为计算机科学与技术和网络工程专业本科学生,本课程为必修课程。
课程简介
《操作系统原理》是计算机专业的核心课程之一。通过本课程的学习和实验,使学生掌握操作系统基本概念和原理,提高自身计算机的应用素质,并且培养学生熟练使用系统调用编程技能,为他们以后的专业学习奠定良好的基础。
2012操作系统实验指导书
操作系统实验指导书实验一生产者和消费者问题(6学时)1、实验目的要求1)、通过编写程序,掌握基本的同步互斥算法,理解生产者和消费者模型。
2)、了解多线程并发执行机制,线程间的同步和互斥。
3)、学习使用同步对象,掌握相应的API。
2、实验主要内容编写基础的生产者消费者程序,程序反映了生产者和消费者的工作过程,其中缓冲区只存放一类产品,生产者消费者只对一类产品进行操作。
1)创建生产者和消费者线程2)生产和消费规则a)系统中有多个生产者,生产者每次只生产一种产品;b)系统中有多个消费者,消费者每次可以消费一个产品。
c)生产者与消费者共享一个具有n个缓冲区的缓冲池。
d)生产者与消费者互斥使用缓冲池,即某一时刻只允许一个生产者或消费者使用缓冲池。
e)不允许消费者进程到一个空缓冲池去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲池中投放产品。
f)缓冲池不要求是循环环形缓冲区,也不要求一定是顺序访问,生产者可以将产品投放入任意的空缓冲区。
3、实验仪器设备PC兼容机。
实验二、死锁避免(银行家算法6学时)1、实验目的要求1). 了解死锁产生的必要条件。
2). 了解安全序列的定义和意义以及如何在动态分配资源的过程中采用死锁避免算法防止系统进入不安全序列状态。
3). 掌握Dijkstra银行家算法的具体实现。
2、实验主要内容模拟建立进程链表,包含各进程最大请求资源数。
进程实时提出指定资源请求数,在为进程实际分配资源向量之前,进入安全算法,测试按该进程当前资源要求分配是否会导致系统进入不安全状态,即所有进程中是否存在一进程序列为安全系列,使所有进程能够完成。
否则拒绝分配,要求进程重新提出资源申请。
主要数据结构:(1)假设三种可用资源avail[3](2)一个进程链表各进程数据类型用一个结构体定义,包括7个域:进程名name;资源a最大需求needa;资源b最大需求needb;资源c最大需求needc;资源a分配量alloa;资源b分配量allob;资源c分配量alloc;进程结束向量completed;下一个进程结构指针*next;(3)一个进程资源请求表包括3个域:进程名name;资源a请求量rea;资源b请求量reb;资源c请求量rec;4.主函数中包括5个函数调用:initpcb初始化进程链表,建立链表头节点;createpcb建立进程链表;inputactpcb输入进程资源请求表;inputerr判断进程资源请求表是否有效;banker 银行家算法,试探分配,检测是否安全,安全则进行资源分配,否则撤销分配。
操作系统实验指导书
操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。
《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。
通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。
对加深理解和掌握操作系统相关原理有重要帮助。
2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。
对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。
·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。
·上机后,分析实验结果并写出实验报告。
3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。
实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。
如果程序未能通过,应分析其原因。
二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。
三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。
2012-操作系统实验内容
实验一进程的创建和控制1、实验目的通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。
2、实验内容(1)了解系统调用fork()、exec()、exit()、和waitpid()的功能和实现过程。
(2)编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。
(3)编写一段程序,使用系统调用fork()来创建一个子进程。
紫禁城通过系统调用exec()更换自己的执行代码,显示新的代码“new program.”后,调用exit()结束。
而父进程则调用waitpid()等待子进程结束,并在子进程结束后显示子进程的标示符,然后正常结束。
实验二使用动态优先权的进程调度算法模拟1、实验目的通过动态优先权算法的模拟加深对进程概念进程调度过程的理解。
2、实验内容(1) 用C语言来实现对N个进程采用动态优先权优先算法的进程调度。
(2) 每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:•进程标识数ID。
•进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。
•进程已占用的CPU时间CPUTIME。
•进程还需占用的CPU时间ALLTIME。
当进程运行完毕时,ALLTIME变为0。
•进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,将进入阻塞状态。
•进程被阻塞的时间BLOCKTIME,表示已足赛的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。
•进程状态START。
•队列指针NEXT,用来将PCB排成队列。
(3) 优先数改变的原则:•进程在就绪队列中呆一个时间片,优先数加1。
•进程每运行一个时间片,优先数减3。
(4) 假设在调度前,系统中有5个进程,它们的初始状态如下:具体格式如下:RUNNING PROG:iREADY-QUEUE:-〉id1-〉id2BLOCK-QUEUE:-〉id3-〉id4= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = =ID 0 1 2 3 4PRIORITY P0 P1 P2 P3 P4CUPTIME C0 C1 C2 C3 C4ALLTIME A0 A1 A2 A3 A4STARTBLOCK T0 T1 T2 T3 T4BLOCKTIME B0 B1 B2 B3 B4STA TE S0 S1 S2 S3 S4实验三使用动态分区分配方式的模拟1、实验目的了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。
操作系统实验指导书
操作系统实验指导书《操作系统原理》实验指导书适用专业:课程代码: 8400220 学时: 10 学分:编写单位:编写人:审核人:审批人:年月《操作系统原理》实验指导书适用于计算科学与技术专业、信息科学专业前言操作系统原理是一门理论性与实践性较强的学科,开设本实验课程的目的在于培养学生的实践能力,促使理论与实践的结合。
实现操作系统功能和高级程序设计语言编程的应用,已成为我校计算机学科教学的主要内容。
本实验指导书介绍了实验环境、上机实验步骤、各实验项目的目的要求及内容,最后附有实验报告的格式,作为我校操作系统课程上机实验指导的主要依据。
根据实验大纲要求,包含两个实验及其相关实验作业。
要完成上述内容,单纯依靠课内上机是不够的,希望同学们课外多多花时间练习,熟能生巧。
对不同年级或专业的学生可根据学生具体情况调整实验内容。
目录前言 (1)一、实验环境 (3)二、上机实验步骤 (3)1.启动V ISUAL C++6.0开发环境 (3)2.创建一个项目 (3)3.关闭工作空间 (7)三、实验项目 (8)实验一进程的调度(5学时) (8)实验二存储管理(5学时) (10)四. 参考文献 (11)西华大学计算机系上机实践报告 (12)一、实验环境操作系统原理课程的实验环境如下:1. 硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境Windows98/2000/XP操作系统VC++6.0或其它的开发工具。
二、上机实验步骤下面以Visual C++ 6.0为例简单介绍开发Windows应用程序的步骤。
Visual C++ 6.0中的MFC AppWizard(应用程序向导)可以使用户自动生成一些常用的标准程序结构和编程风格。
例如一般的Windows 应用程序结构、DLL应用程序结构、单文档(SDI)应用程序结构、多文档(MDI)应用程序结构等。
下面详细介绍利用MFC AppWizard创建一个Windows应用程序的步骤:1.启动Visual C++ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0,显示Visual C++ 6.0开发环境主窗口。
《操作系统》实验指导手册
《操作系统》实验指导书计算机科学教研室2009.9目录实验一熟悉Windows2000/XP中的进程和线程实验二编程实现进程的控制实验三Windows中的线程与线程同步现象实验四操作系统中的经典线程同步问题实验五死锁避免—银行家算法的实现实验六Windows内存管理实验七分页内存管理算法模拟实验八页面置换算法的模拟实现实验九磁盘调度中的电梯调度算法实现实验十Windows中的消息机制实验一熟悉Windows2000/XP中的进程和线程一、实验目的1、熟悉Windows2000/XP中任务管理器的使用。
2、通过任务管理器识别操作系统中的进程和线程的相关信息。
3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。
二、实验理论基础及教材对应关系1、实验理论基础:(1)操作系统中的进程和线程的概念;(2)进程PCB的各项指标含意;2、本实验内容主要对应于教材第2章。
三、实验内容与步骤1、启动操作系统自带的任务管理器:方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。
如下图所示:2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并完成下表(填满即可):表一:统计进程的各项主要信息3、从桌面启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。
再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是,原因是。
4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化、得到的结论是(说出explorer.exe进程的作用)。
5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进程“explorer.exe”的各项信息,并填写下表:表二:统计线程的各项信息进程:explorer.exe 中的各个线程6、注意某些线程前有“+”,如图所示:,说明二者之间的差异是。
操作系统实验指导书(完整版)
《计算机操作系统实验》指导书(第二版)实验一LINUX的安装与使用 (2)实验二进程管理与通信 (27)实验三存储管理——页面置换算法模拟 (51)实验四文件管理 (56)实验五LINUX服务器配置(选做) (62)实验报告撰写指导 (72)韶关学院信息工程学院计算机系教师:陈正铭2007-9-10实验一LINUX的安装与使用【实验目的】1、了解与掌握RED HAT LINUX 9.0的安装过程。
2、熟悉LINUX的命令及使用格式与常用基本命令。
【实验内容】1、使用图形化安装模式安装RED HAT LINUX 9.0。
2、使用WINDOWS操作系统中的远程登录程序telnet.exe 登录LINUX。
3、练习使用LINUX的常用基本命令如ls、cd、who、pwd、ps、pstree、top等。
4、掌握WINDOWS和LINUX之间的文件共享方法。
【实验指导】一、Red Hat Linux 9光盘启动安装过程1、准备工作(1)购买或下载Redhat9的安装光盘(3张盘)或镜像文件,下载地址:校园网FTP站点。
或从红帽子主站下载∶/(2)在硬盘中至少留2个分区给安装系统用,挂载点所用分区推荐4G以上,交换分区在256M 左右比较适合,文件系统格式不论,反正安装过程会重新格式化。
(假如使用虚拟机vm安装建议最少留6G存储空间)(3)记录下你电脑中下列设备型号∶鼠标、键盘、显卡、网卡、显示器。
及网络设置用到的IP地址、子网掩码、默认网关和DNS名称服务器地址等信息。
2、安装红帽子Red Hat Linux 9将光驱设为第一启动盘,放入第一张安装光盘后重新启动电脑,如果你的光驱支持自启动, 如无意外将出现如下图:直接按回车键后将出现如下图1 ,如果你不处理30秒后也会自动进入。
在图1中提示:是否测试安装CD的内容的完整性,选―OK‖开始测试安装CD;选―Skip‖不测试安装CD开始安装出现图6所示,如果是第一次安装当然要测试安装CD,选―OK‖后回车,出现如下图2选―Test‖测试安装光盘的文件,选―Eject CD‖测试光盘以外的安装文件,这里我选择―Test‖后回车,出现如下图3正在测试第一张安装CD,测试完后显示如下图4所示看到上图最后一行英文―It is OK to install from this med ia‖说明这张安装CD是OK的,按―Enter‖键回车后,显示如下图5所示选择―Continue‖并回车开始安装。
操作系统课内实验指导书
操作系统原理课内实验指导书实验一:用户接口实验准备知识为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现人机交互。
经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。
前者主要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方便地使用计算机的各种资源。
1.控制台命令接口操作系统向用户提供一组控制台命令,用户可以通过终端输入命令的方式获得操作系统的服务,并由此来控制自己作业的运行。
一般来讲,控制台命令应该包含:一组命令、终端处理程序以及命令解释程序。
1)bash的由来当登录Linux或者打开一个xterm时,当前默认的shell就是bash。
Bash是GNU Project 的shell。
GNU Project是自由软件基金会(Free Software Foundation)的一部分。
它对Linux 下的许多编程工具负责。
Bash(Bourne Again Shell)是自由软件基金会发布的Bourne shell 的兼容程序。
它包含了其他有些shell的许多良好的特性,功能非常的全面。
很多Linux版本都供bash。
2)bash的大致原理bash处理自己的脚本时,先找到需要处理的命令名称,进而在当前用户的默认命令目录中找到对应的命令,这些默认目录一般是/usr/bin、/bin或/sbin。
在执行这些命令时,先使用进程创建系统调用fork(),在使用exex()来执行这些命令。
3)建立bash脚本编辑文件可以用最熟悉的编辑器来编辑这个文本文件,比如文件名为script,在shell下输入:$ vi script#! /bin/bashEcho Hello World!然后保存,退出。
测试脚本。
使用指令:$ source script更改脚本属性使用指令:$ chmod a+x script将脚本程序设置为可执行。
执行脚本使用指令:$ ./script4)关键字参考Echo 在终端上显示Bash 特殊变量1~9,保存当前进程或脚本的前9个参数。
操作系统实验指导书
操作系统原理实验指导书(2*5=10学时)实验1 操作系统环境通过调查研究活动和对Windows、Linux系统运行的观察分析,回顾计算环境的基本术语,加深理解有关操作系统的基础概念,掌握主流操作系统的命令和图形界面,学会操作系统的主要系统管理操作。
1.1 操作系统的计算环境1.2 Windows XP系统管理1.3 访问Linux系统§1.1 操作系统的计算环境背景知识本实验帮助回顾Windows 、UNIX和Linux的术语,加深理解有关操作系统的基础概念。
调查Windows、UNIX和Linux的使用情况,看哪些机构在使用Windows、UNIX或者Linux系统;研究Web站点,看哪些网站分别支持着Windows、UNIX和Linux操作系统的应用。
实验目的通过实验,加深对以下内容的理解基本的计算机硬件组件;计算机操作系统;Windows的发展和版本;UNIX和Linux的历史和版本;Windows XP、UNIX或Linux操作环境。
调查Windows、UNIX和Linux系统的使用情况,研究支持Windows和Linux的Web站点。
工具/准备工作在开始本实验之前,请回顾教材的相关内容,了解学校或者其他机构中使用了哪些操作系统,找出是否在用Windows、UNIX和Linux,以及在哪里使用这些操作系统。
实验内容与步骤1、识别一台计算机的4个主要硬件组成部分。
2、复习3个概念:内核、shell、文件系统。
3、Windows XP操作系统的主要优点是什么?4、UNIX操作系统的主要优点是什么?5、Linux操作系统的主要优点是什么?6、列举Linux操作系统的主要组成部分。
7、Linux内核管理着哪几件事情?8、Linux系统的主要shell的名字和它们各自默认的提示符是什么?9、操作系统的文件系统由哪几部分组成的?10、找出实际使用的几种操作系统,请列举其版本、支持厂商和服务器的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术专业适用操作系统原理实验指导书南京工业大学信息科学与工程学院2008年4月目录一、实验目的 (1)二、实验要求与内容 (1)2.1 实验题目 (1)2.2 初始目录结构 (1)2.3 系统操作命令简介 (1)2.4 几点说明 (2)三、设计方案 (3)3.1 采用FAT文件格式 (3)3.2 目录项(FCB)结构 (3)3.3 根目录 (4)3.4 主要函数 (4)3.5 用户已打开文件表(UOF) (5)3.6 程序中有关变量的说明 (5)1. 当前目录curpath数据结构 (5)2. 删除文件恢复表udtab数据结构 (5)3. 全局变量ffbp和Udelp (5)4. 全局数组comd[5][PATH_LEN] (6)5. 全局数组temppath[PATH_LEN] (6)3.7 主要函数的流程图 (6)1. 主函数main()的流程图 (6)2. create命令流程图 (6)3. cd命令流程图 (7)4. del命令流程图 (8)5. dir命令流程图 (8)6. md命令流程图 (9)7. rd命令流程图 (9)8. open命令流程图 (10)9. close命令流程图 (10)10. write命令流程图 (11)11. read命令流程图 (12)12. copy命令流程图 (12)13. ren命令流程图 (14)14. attrib命令流程图 (14)15. undel命令程序流程图 (15)16. FindPath( )函数程序流程图 (15)《操作系统实验》指导书17. FindFCB( )函数程序流程图 (15)18. ProcessPath( )函数程序流程图 (17)四、实验任务 (18)4.1 修改md命令 (18)4.2 修改Help命令或命令行预处理程序 (18)1. 修改help命令的显示方式和显示内容 (18)2. 修改命令行预处理程序 (18)4.3 新增fc命令,实现两个文件的比较 (18)4.4 新增replace命令,实现文件取代 (18)4.5 新增move命令,实现文件“搬家”及子目录改名 (19)4.6 新增batch命令,实现批处理 (19)4.7 修改close、type等命令,允许不带文件名参数 (21)4.8 完善copy命令 (22)1. 改正某些缺陷 (22)2. 允许覆盖同名文件(选做内容) (22)4.9 增加输出重定向功能(选做内容) (22)1. type命令的输出重定向形式 (22)2. dir命令的输出重定向形式 (23)4.10 修改del、copy等命令,使其可以使用统配符*(选做内容) (23)4.11 修改copy命令,增加合并复制功能(选做内容) (23)4.12 修改程序,实现多磁盘文件系统(选做内容) (24)4.13 修改磁盘块容量(选做内容) (24)4.14 修改undel命令(选做内容) (25)1. 删除文件恢复表udtab不用数组存储,而直接存储在磁盘空间 (25)2. 修改undel命令的执行方式并增强其功能 (25)3. 采用类似于Windows的回收站方案 (26)4.15 修改read命令,允许不带文件名参数(选做内容) (26)4.16 修改write命令,允许不带“文件名”参数(选做内容) (26)4.17 修改write命令,增加“删除”方式(选做内容) (27)五、模拟文件管理系统中操作命令使用说明 (27)六、学生应提交的实验材料 (33)6.1 《实验报告》 (33)6.2 源程序清单及其可执行文件 (33)6.3 程序测试、运行的结果 (33)操作系统原理实验指导书一、实验目的理解操作系统文件系统的某些工作原理,学习文件操作命令的设计方法。
通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。
培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。
二、实验要求与内容2.1 实验题目模拟文件管理系统的设计设计实现一个简单的模拟文件管理系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS的有关命令)。
具体要求如下列2.2和2.3。
2.2 初始目录结构程序初始化时构造如图1所示的目录结构。
图中auto是(普通)文件(初始化时假设是空文件),其余都是子目录(目录文件)。
2.3 系统操作命令简介在模拟文件管理系统中,要求可以实现如下操作:⏹改变当前目录:cd [<目录名>]。
当前目录(工作目录)转移到指定目录下。
指定目录不存在时,给出错误信息。
若命令中无目录名,则显示当前目录路径。
⏹创建文件:create <文件名> [<属性>]。
创建一个指定名字的新文件,即在目录中增加一目录项,不考虑文件的内容。
对于重名文件给出错误信息。
⏹删除文件:del <文件名>。
删除指定的文件,即清除其目录项和回收其所占用磁盘空间。
对于只读文件,删除前应询问用户,得到同意后方能删除。
当指定文件正在使用时,显示“文件正在使用,不能删除”的信息,当指定文件不存在时给出错误信息。
⏹显示目录:dir[ <目录名>[ <属性>]]。
显示“目录名”指定的目录中文件名和第一级子目录名。
若指定目录不存在,则给出错误信息。
⏹创建目录:md <目录名>。
在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录。
对于重名目录给出错误信息。
⏹删除目录:rd 目录名。
若指定目录为空,则删除之,否则,给出“非空目录不能删除”的提示。
不能删除当前目录。
⏹打开文件:open <文件名>。
若指定文件存在且尚未打开,则打开之,并在用户打开文件表(UOF)中登记该文件的有关信息。
若指定文件已经打开,则显示“文件已打开”的信息;若指定文件不存在,则给出错误信息。
只读文件打开后只能读不能写。
⏹写文件:write <文件名> [<位置>][insert]。
在文件的指定位置处写入新内容。
⏹读文件:read <文件名> [<位置m> [<字节数n>]]。
从已打开文件中读指定内容并显示。
⏹关闭文件:close <文件名>。
若指定文件已打开,则关闭之,即从UOF中删除该文件对应的表项。
若文件未打开或文件不存在,分别给出有关信息。
⏹显示文件内容:type <文件名>。
显示指定文件的内容。
若指定文件不存在,则给出错误信息。
⏹复制文件:copy <源文件名> <目标文件名>。
命令功能:为目标文件建立目录项,分配新的盘块,并将源文件的内容复制到目标文件中。
⏹文件改名:ren <原文件名> <新文件名>。
将指定文件的名字改为“新文件名”。
若原文件不存在,给出错误信息。
若原文件存在,但正在使用,也不能改名,同样显示出错信息。
应检查新文件名是否符合命名规则以及是否存在重名问题。
⏹显示、修改文件或目录属性:attrib <文件名>[ <文件属性>]。
若命令中无“文件属性”参数,则显示指定文件的属性;若命令中有“文件属性”参数,则修改指定文件的属性。
此命令对目录名同样适用。
2.4 几点说明⏹命令中的目录名和文件名可以统称为路径名,支持绝对路径(又称全路径)和相对路径;⏹路径名是由目录结构中各级目录文件名和普通文件名(必定是最后一个名)用分隔符“/”连接而成的字符串组成。
其中以字符“/”开始的路径名是绝对路径,表示从根目录开始;不是以字符“/”开始的路径名是相对路径,表示从当前目录开始。
当前目录又称工作目录。
⏹本系统规定,名字(文件名或目录名)的命名规则如下:(1) 名字长度不能超过FILENAME_LEN-1个字节,即10个字符(符号常数FILENAME_LEN为11)。
允许输入的名字超过10个字符,但只有前10个字符有效;(2) 名字一般由字母(区分大小写)、数字、下划线等组成,名字允许是汉字;(3) 名字不能包含以下16个字符之一:" * + , / : ; < = > ? [ \ ] | space(空格)(4) 名字中允许包含字符“.”,但它不能是名字的第一个字符,故“.”、“.abc”、“..”和“..abc”等等都是不合法的名字。
“..”代表父目录是例外,但它并非由用户通过键盘输入的名字,故不需要符合名字的命名规则。
⏹本系统中,命令名(如dir)和命令参数中的有关关键字(如append或app、insert或ins等)不区分大小写。
文件名和目录名中的字母是区分大小写的。
⏹命令格式中,“<...>”代表某个字符串,“[ ]”中内容为可选项。
三、设计方案本系统提供的参考程序在C++环境中开发,下面介绍系统的设计方案。
3.1 采用FAT文件格式文件在磁盘上的组织采用FAT文件格式,为了设计程序方便,本系统的FAT表用整型数组FAT[K]表示(K为总盘块数,本系统中假定K=5000,即共有5000个盘块),而实际的操作系统,FAT表是存储在磁盘中的,当系统启动时装入内存。
FAT[0]中存储空闲盘块数。
磁盘空间用字符数组Disk[K][SIZE] (其中SIZE为每个盘块的字节数,即盘块的容量)表示。
本系统设定磁盘块容量为64。
3.2 目录项(FCB)结构本模拟系统的文件目录项(FCB)结构如下:struct FCB //每个目录项16个字节{char FileName[11]; //文件名最多10个字符且以'\0'结尾char Fattrib; //文件属性short int Addr; //文件首块号short int Fsize; //文件长度};◆为简单,本系统不考虑文件扩展名,文件名为1~10个字符,以结尾标记'\0'存储(实际操作系统目录项中文件名一般没有结尾标记),命令中输入的文件名若超过10个则截取前10个字符。
◆文件属性为1个字节,其二进制位对应的属性如下图所示。
◆文件的首块号Addr=0代表空文件(此时文件长度Fsize=0)。
文件名(目录名)的第一个字符的ASCII码为0E5H或00H,代表空目录项。
其中0E5H是目录项被删除后的标志,00H代表该目录项从未使用过。
◆每个目录项占用16个字节,因系统中假设磁盘块大小SIZE=64,因此,每个盘块可存储4个目录项。
◆除根目录外,每个目录中的第一个目录项存储父目录的FCB(该目录项的名字为“..”),其地址是父目录的首块号,它的作用是相当于指向父目录的指针,用于实现从该目录退回父目录。