本文提供操作系统基础型实验与
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
型实验的实验报告示例。 以下是实验计划安排与类别: 周次 星期 实验项目名称 实验 学时 实验 类别 4~6 4 实验一 LINUX的安装与使用 4 基础 8~10 4 实验二 进程管理与通信 4 设计 12~14 4 实验三 存储管理——页面置换算法模拟 4 设计 15~16 2 实验四 文件管理(1) 4 设计 17 2 实验五 LINUX服务器配置 2 综合 请各位同学严格按示例的格式亲笔撰写本课程的实验报告!(不允许打印,如果设计实验中的源程序较长则可以打印粘贴) 实验报告是每个实验一份!总共5份 实验报告的送交日期是当次实验结束后的下一次理论课交,请注意:缺交或迟交者将判平时0分! 韶 关 学 院 学 生 实 验 报 告 册 实验课程名称:操作系统 实验项目名称:实验一 LINUX的安装与使用 实验类型(打√ ):(基础 √ 、综合 、设计 ) 院 系:信息工程学院计算机系 专 业:***** 姓 名:*** 学 号:***** 指导老师:陈正铭 韶关学院教务处编制 一、实验预习报告内容 预习日期:2007年 9 月 20 日 实验预习报告内容原则上应包括实验目的、实验所用的主要仪器药品、实验原理与公式、 实验预习疑问等项目。 【实验目的】 1、了解UNIX/LINUX的命令及使用格式。 2、熟悉UNIX/LINUX的常用基本命令。 3、复习C语言程序基本知识 4、练习并掌握UNIX提供的vi编辑器来编译C程序 5、学会利用gcc、gdb编译、调试C程序 【实验软件平台】 RedHat LINUX 9.0或 基于网络的Windows 2000+telnet+RedHat LINUX 9.0, 【实验内容】 1、通过WINDOWS操作系统中的远程登录程序telnet.exe 登录UNIX。 2、熟悉UNIX/LINUX的常用基本命令如ls、who、w、pwd、ps、pstree、top等。 3、通过WINDOWS操作系统中的FTP程序,练习WINDOWS和UNIX之间的文件交换。 4、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc编译并观察编译后的结果 5、利用gdb调试该程序 6、运行生成的可执行文件。 【实验准备】各常用linux命令的功能 1) 显示目录文件 ls 2) 建新目录 mkdir 3) 删除目录 rmdir 4) 改变工作目录位置 cd 5) 显示当前所在目录pwd 6) 查看目录大小du 7) 查看文件(可以是二进制的)内容 cat 8) 删除文件 rm 9) 复制文件 cp 10) 移动或更改文件、目录名称mv 11) 比较文件(可以是二进制的)或目录的内容 diff 12) 文件中字符串的查找 grep 13) 建立文件或目录的链接 ln 14) 查看系统中的使用者 who 15) 改变自己的username的帐号与口令 su 16) 改变文件或目录所有权 chown 17) 查看系统目前的进程 ps 18) 结束或终止进程 kill 19) 以树状图显示执行的程序 pstree 20) 监视虚拟内存 vmstat 21) 本地工作站与UNIX服务器间的文件传输 ftp 22) 检查与UNIX服务器连接是否正常 ping 23) 将文件当做E-mail的内容送出 mail 24) 读取信件 mail 25) 命令在线帮助 man 26) vi文件编辑器 vi 27) GNU C编译器 gcc 28) gdb调试工具 gdb 29) …… 【疑问】 在LINUX下的C程序的预编译和Windows下的C程序的预编译有何不同? 实验预习评分: 二、实验原始(数据)记录 实验时间:2006年10月 4日和2006年10月 18日(星期三 第1,2节) 实验同组人 :无 如有实验实验数据
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
,学生在实验预习时应画好实验数据表格,供实验填写数据。 (如果本页不够纸写,需要另纸粘加) 本页内容分两部分: 1、 记录实验者输入常用LINUX命令后终端显示的信息 2、 实验记录者使用gcc验证程序时程序的输出结果 指导教师 批阅及签名 签名: 年 月 日 三、实验报告内容 2006年 4 月 21 日 实验报告内容原则上应包括主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。 【实验步骤】 一、UNIX/LINUX的登录与退出 1、登录 在DOS环境下用MS提供的telnet程序,可使PC作为终端登录UNIX/LINUX服务器(UNIX Server)。 2、退出 在UNIX系统提示符$下,输入logout、exit或shutdown 二、常用命令的使用
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
1、目录操作 1) 显示目录文件 ls 2) 建新目录 mkdir 3) 删除目录 rmdir 4) 改变工作目录位置 cd 5) 显示当前所在目录pwd 6) 查看目录大小du 7) …… 2、文件操作 1) 查看文件(可以是二进制的)内容 cat 2) 删除文件 rm 3) 复制文件 cp 4) 移动或更改文件、目录名称mv 5) 比较文件(可以是二进制的)或目录的内容 diff 6) 文件中字符串的查找 grep 7) 建立文件或目录的链接 ln 8) …… 3、系统询问与权限口令 1) 查看系统中的使用者 who 2) 改变自己的username的帐号与口令 su 3) 改变文件或目录所有权 chown 4) …… 4、进程操作 1) 查看系统目前的进程 ps 2) 结束或终止进程 kill 3) 以树状图显示执行的程序 pstree 4) 监视虚拟内存 vmstat 5) …… 5、通信类命令 1) 本地工作站与UNIX服务器间的文件传输 ftp 2) 检查与UNIX服务器连接是否正常 ping 3) 将文件当做E-mail的内容送出 mail 4) 读取信件 mail 5) …… 6、I/O命令 1) 管道(pipe-line)的使用 | 2)
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
输入控制 > 3) 标准输入控制 < 4) …… 7、其它常用命令 1) 命令在线帮助 man 2) …… 三、使用vi文件编辑器 vi 1、vi的工作模式:输入模式(insert mode)和命令模式(command mode)。 2、者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。 3、输入以下命令即可进入vi输入模式: a(append) 在光标之后加入资料 A i(insert) 在光标之前加入资料 I 在该行之首加入资料 o(open) 新增一行于该行之下,供输入资料用 O 新增一行于该行之上,供输入资料用 Dd 删除当前光标所在行 X 删除当前光标字符 X 删除当前光标之前字符 U 撤消 · 重做 F 查找 s 替换,例如:将文件中的所有"FOX"换成"duck",用":%s/FOX/duck/g" ESC 离开输入模式 四、使用GNU C编译器 gcc 1、使用GCC 2、GCC常用选项 当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。 3、执行文件 格式: ./可执行文件名 五、使用gdb调试工具 gdb 1、调试编译代码 2、gdb基本命令 命 令 描 述 file 装入欲调试的可执行文件 kill 终止正在调试的程序 list 列出产生执行文件的源代码部分 next 执行一行源代码但不进入函数内部 step 执行一行源代码并进入函数内部 run 执行当前被调试的程序 quit 终止gdb watch 监视一个变量的值而不管它何时被改变 break 在代码里设置断点,使程序执行到这里时被挂起 make 不退出gdb就可以重新产生可执行文件 shell 不离开gdb就执行UNIX shell 命令 3、应用举例 (1)设有一源程序greet.c (2)编译,gcc -ggdb –o greet greet.c,出错 (3)gdb greet ,出现提示符(gdb),此时可在提示符下输入gdb的命令了,如: (gdb)run (gdb)list (4)退出调试状态,返回系统提示符下, (gdb)quit 【实验结果分析】 本次实验按操作步骤都得到了预期的结果,熟悉了LINUX的常用命令,为以后进一步使用LINUX打好了基础。 实验报告评分: 注:1、如有个别实验的实验报告内容多,实验报告册页面不够写,或有识图,画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。 2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。 韶 关 学 院 学 生 实 验 报 告 册 实验课程名称:操作系统 实验项目名称:实验二 进程管理 实验类型(打√ ):(基础 、综合 、设计 √ ) 院 系:信息工程学院计算机系 专 业:***** 姓 名:*** 学 号:***** 指导老师:陈正铭 韶关学院教务处编制 一、实验预习报告内容 预习日期:2006年 10 月 20 日 实验预习报告内容原则上应包括实验目的、实验所用的主要仪器药品、实验原理与公式、 实验预习疑问等项目。 【实验目的】 1、掌握进程的概念,明确进程的含义 2、认识并了解并发执行的实质 3、掌握进程另外的创建方法 4、熟悉进程的睡眠、同步、撤消等进程控制方法 5、进一步认识并发执行的实质 6、分析进程竞争资源的现象,学习解决进程互斥的方法 【实验软件平台】 RedHat LINUX 9.0或 基于网络的Windows 2000+telnet+RedHat LINUX 9.0, 【实验内容】 1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示 'parent ……',观察结果,分析原因。 3、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容。 4、利用wait( )来控制进程执行顺序。 5、修改实验(一)中的程序2,用lockf( )来给每一个进程加锁,以实现进程之间的互斥。 6、观察并分析出现的现象。 【实验准备】 (1)阅读LINUX的fork.c源码文件(见附录二),分析进程的创建过程。 (2)阅读LINUX的sched.c源码文件(见附录三),加深对进程管理概念的认识。 【实验原理】 一、进程 UNIX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。一个进程实体由若干个区(段)组成,包括程序区、数据区、栈区、共享存储区等。每个区又分为若干页,每个进程配置有唯一的进程控制块PCB,用于控制和管理进程。 PCB的数据结构如下: 1、进程表项(Process Table Entry)。包括一些最常用的核心数据 2、U区(U Area)。用于存放进程表项的一些扩充信息。 3、系统区表项。以存放各个段在物理存储器中的位置等信息。 4、进程区表 二、进程映像 UNIX系统中,进程是进程映像的执行过程,也就是正在执行的进程实体。它由三部分组成: 1、用户级上、下文。主要成分是用户程序; 2、寄存器上、下文。由CPU中的一些寄存器的内容组成,如PC,PSW,SP及通用寄存器等; 3、系统级上、下文。包括OS为管理进程所用的信息,有静态和动态之分。 三、所涉及的系统调用 1、fork( ) 创建一个新进程。 系统调用格式: pid=fork( ) 参数定义:int fork( ) fork( )返回值意义如下: 0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。 >0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。 -1:创建失败。 2、exec( )系列 系统调用exec( )系列,也可用于新程序的运行。fork( )只是将父进程的用户级上下文拷贝到新进程中,而exec( )系列可以将一个可执行的二进制文件覆盖在新进程的用户级上下文的存储空间上,以更改新进程的用户级上下文。exec( )系列中的系统调用都完成相同的功能,它们把一个新程序装入内存,来改变调用进程的执行代码,从而形成新进程。如果exec( )调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新进程,新进程的进程标识符id 与调用进程相同。 3、exec( )和fork( )联合使用 系统调用exec和fork( )联合使用能为程序开发提供有力支持。用fork( )建立子进程,然后在子进程中使用exec( ),这样就实现了父进程与一个与它完全不同子进程的并发执行。 4、wait( ) 等待子进程运行结束。如果子进程没有完成,父进程一直等待。wait( )将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait( )前已有子进程暂停或终止,则调用进程做适当处理后便返回。 系统调用格式: int wait(status) int *status; 其中,status是用户空间的地址。它的低8位反应子进程状态,为0表示子进程正常结束,非0则表示出现了各种各样的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
;高8位则带回了exit( )的返回值。exit( )返回值由系统给出。 5、exit( ) 终止进程的执行。 系统调用格式: void exit(status) int status; 其中,status是返回给父进程的一个整数,以备查考。 6、lockf(files,function,size) 用作锁定文件的某些段或者整个文件。 本函数的头文件为:#include "unistd.h" 参数定义: int lockf(files,function,size) int files,function; long size; 其中:files是文件描述符;function是锁定和解锁:1表示锁定,0表示解锁。size是锁定或解锁的字节数,为0,表示从文件的当前位置到文件尾。 【疑问】 在LINUX下可执行文件加载时进行了哪些处理? 实验预习评分: 二、实验原始(数据)记录 实验时间:2006年10月 4日和2006年10月 18日(星期三 第1,2节) 实验同组人 :无 如有实验实验数据表格,学生在实验预习时应画好实验数据表格,供实验填写数据。 (如果本页不够纸写,需要另纸粘加) 1程序****.***的运行结果: bca,bac, abc ,……都有可能。 2程序****.***的运行结果: parent… son… daughter.. daughter.. 或 parent… son… parent… daughter… 等 3程序****.***的运行结果: …… …… 请依次把本大实验中的各个程序的运行结果记录下来!要注意程序和运行结果的对应关系! 指导教师 批阅及签名 签名: 年 月 日 三、实验报告内容 2006年 4 月 21 日 实验报告内容原则上应包括主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。 1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 程序2-1.c #include
main( ) { int p1,p2; while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0) putchar('b'); else { while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0) putchar('c'); else putchar('a'); } } 【实验结果分析】从进程并发执行来看,各种情况都有可能。上面的三个进程没有同步措施,所以父进程与子进程的输出内容会叠加在一起。输出次序带有随机性。 2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示 'parent ……',观察结果,分析原因。 程序2-2.c #include main( ) { int p1,p2,i; while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0) for(i=0;i<10;i++) printf("daughter %d\n",i); else { while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0) for(i=0;i<10;i++) printf("son %d\n",i); else for(i=0;i<10;i++) printf("parent %d\n",i); } } 【实验结果分析】由于函数printf( )在输出字符串时不会被中断,因此,字符串内部字符顺序输出不变。但由于进程并发执行的调度顺序和父子进程抢占处理机问题,输出字符串的顺序和先后随着执行的不同而发生变化。这与打印单字符的结果相同。 3、 用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容。 程序2-3.c #include #include main( ) { int pid; pid=fork( ); /*创建子进程*/ switch(pid) { case -1: /*创建失败*/ printf("fork fail!\n"); exit(1); case 0: /*子进程*/ execl("/bin/ls","ls","-1","-color",NULL); printf("exec fail!\n"); exit(1); default: /*父进程*/ wait(NULL); /*同步*/ printf("ls completed !\n"); exit(0); } } 【实验结果分析】程序在调用fork( )建立一个子进程后,马上调用wait( ),使父进程在子进程结束之前,一直处于睡眠状态。子进程用exec( )装入命令ls ,exec( )后,子进程的代码被ls的代码取代,这时子进程的PC指向ls的第1条语句,开始执行ls的命令代码。 4、………… 后面的内容按照实验预习中的【实验内容】要求依次完成,要求给出结果分析! 实验报告评分: 注:1、如有个别实验的实验报告内容多,实验报告册页面不够写,或有识图,画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。 2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。