网络与通信 实验报告3

网络与通信 实验报告3
网络与通信 实验报告3

《网络与通信》课程实验报告实验三:数据包结构分析

DF(Don't Fragment)

DF=1,不允许分片

DF=0,允许分片

段偏移:分片后的分组在原分组中的相对位置,总共13比特,单位为8字节

寿命:TTL(Time To Live)丢弃TTL=0的报文

协议:携带的是何种协议报文

1 :ICMP

6 :TCP

17:UDP

89:OSPF

头部检验和:对IP协议首部的校验和

源IP地址:IP报文的源地址

目的IP地址:IP报文的目的地址

思考题2:(6分)得分:写出实验过程并分析实验结果。

操作过程:

捕获面板:报文捕获功能可以在报文捕获面板中进行完成,如下是捕获面板的功能图:图中显示的是处于开始状态的面板。

捕获过程报文统计:在捕获过程中可以通过查看下面面板查看捕获报文的数量和缓冲区的利用率。

捕获报文查看:

专家分析

专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的诊断结果可以查看在线帮助获得。

在下图中显示出在网络中WINS查询失败的次数及TCP重传的次数统计等内容,可以方便了解网络中高层协议出现故障的可能点。

对于某项统计分析可以通过用鼠标双击此条记录可以查看详细统计信息且对于每一项都可以通过查看帮助来了解起产生的原因。

解码分析

下图是对捕获报文进行解码的显示,通常分为三部分。功能是按照过滤器设置的过滤规则进行数据的捕获或显示。过滤器可以根据物理地址或IP地址和协议选择进行组合筛选。

统计分析

对于Matrix,Host Table,Portocol Dist. Statistics等提供了丰富的按照地址,协议等内容做了丰富的组合统计,比较简单,可以通过操作很快掌握这里就不再详细介绍了。

指导教师评语:

日期:

操作系统实验报告

操作系统实验报告 ' 学号: 姓名: 指导老师: 完成日期: ~

目录 实验一 (1) 实验二 (2) 实验三 (7) 实验四 (10) 实验五 (15) 实验六 (18) 实验七 (22) \

实验一 UNIX/LINUX入门 一、实验目的 了解 UNIX/LINUX 运行环境,熟悉UNIX/LINUX 的常用基本命令,熟悉和掌握UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。 二、实验内容 熟悉 UNIX/LINUX 的常用基本命令如ls、who、pwd、ps 等。 练习 UNIX/LINUX的文本行编辑器vi 的使用方法 熟悉 UNIX/LINUX 下c 语言编译器cc/gcc 的使用方法。用vi 编写一个简单的显示“Hello,World!”c 语言程序,用gcc 编译并观察编译后的结果,然后运行它。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验程序 #include <> #include <> int main() { printf ("Hello World!\n"); return 0; } 五、实验感想 通过第一次室验,我了解 UNIX/LINUX 运行环境,熟悉了UNIX/LINUX 的常用基本命令,熟悉和掌握了UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。

实验二进程管理 一、实验目的 加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。 二、实验内容 (1)进程创建 编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 (2)进程控制 修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 (3)进程的管道通信 编写程序实现进程的管道通信。使用系统调用pipe()建立一个管道,二个子进程P1 和P2 分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验设计 1、功能设计 (1)进程创建 使用fork()创建两个子进程,父进程等待两个子进程执行完再运行。 (2)进程控制 使用fork()创建两个子进程,父进程等待两个子进程分别输出一句话再运行。 (3)进程的管道通信 先创建子进程1,向管道写入一句话,子进程1结束后创建子进程2,向管道写入一句话,最后父进程从管道中读出。 2、数据结构 子进程和管道。 3、程序框图

小学3-6年级科学实验报告单上下册汇总(苏教版).

苏教版三----六年级科学下册实验报告单汇总 苏教版小学科学三年级下册实验一览表 单元课题实验名称实验材料 实验 类型周次 第一单元 土壤与生命2了解土壤 用实验证明土壤里 含有空气 烧杯、玻璃棒、土壤、水 观察 1 用实验证明土壤里 含有腐殖质和水 酒精灯、三脚架、石棉网、蒸 发皿、玻璃片、烧杯、土壤 演示 1 3肥沃的土壤 做肥料袋袋子、土、水果皮、菜叶、水自制 2 模拟水土流失实验 喷壶、水、平盘、有植被土壤 和无植被土壤各一块 演示 2 第二单元 植物的一生1果实和种子 探究种子里面有什 么 用水泡过的蚕豆、放大镜、镊 子 分组 4 2根和茎探究茎的作用芹菜的茎、红墨水、烧瓶 观察 4 第三单元 固体和液体1认识固体 研究固体的共同性 质 桌、直尺、玻璃、红领巾等学 生自己身边的物品 观察 7 探究固体的混合前 后重量和体积的变 化情况 黄豆、米、面粉、天平、量筒 分组 7 2把固体放到 水里 探究固体的沉浮 蜡烛、小瓶盖、粉笔、布、水 槽、树叶、苹果、铁钉 分组 8 3认识液体 研究同体积液体的 重量 油、水、蜂蜜、量筒、天平 分组 9 4把液体倒进 水里 研究液体的沉浮油、水、蜂蜜、烧杯演示9 研究液体混合前后 重量和体积的变化 情况 酒精、水、天平、量筒(量杯) 演示 9 5使沉在水里 的物体浮起来 探究使物体上浮的 办法 水槽、盐、糖、味精、玻璃棒、 汤匙 分组 10 第四单元关心天气2气温有多高测量气温温度计分组12 3雨下得多大制作雨量筒大饮料瓶、剪刀、硬纸片制作13 4今天刮什么 风 制作风向标 硬纸板、大头针、泡沫板、小 珠子 制作15

小学科学三年级下册演示实验报告单 实验内容:观察研究土壤 年级:三年级下册第一单元 课题:2、了解土壤 实验器材:湿土块、含较多腐殖质的土壤、餐巾纸、烧杯、水、三角架、石棉网、酒精灯、蒸发皿 实验类型:学生操作实验和教师演示实验 实验步骤操作要点 1.分组研究土壤成分1、让学生用餐巾纸包住刚从花圃里挖出的土块(不要太干燥),然后用手使劲握一握,观察餐巾纸的变化。如果观察不到水迹,说颜色变黄了等等,可让学生观察餐巾纸的背面,一般会有明显的潮湿斑迹。 2、将刚才的土块放入水中,引导学生仔细观察土壤刚放进水里和过了一会儿的发现与变化。 3、用玻璃棒沿着同一方向进行搅拌,引导学生边搅拌边观察,停止搅拌,耐心观察3——5分钟。 4、学生分组实验,用文字或图示的方法记录实验现象。 5、交流实验现象。(搅拌之后,可能时间较短,难以进行沉淀,教师可以将自己事先做好的一杯拿出来提供给学生观察,让学生有个完整的认识。) 2. 演示研究土壤成分1、将石棉网放在三角架上,上面放上盛有土壤的蒸发皿(选用腐殖质较多的黑色土壤),下面用酒精灯点燃加热。 2、酒精灯使用:(1)使用前,酒精不超过瓶体的2/3。(2)打开灯帽,点燃火柴由下往右上方在灯芯上划过,使灯芯点燃。(3)用外焰加热。(4)熄灭酒精灯时,不要吹灭,用灯帽盖上灯芯,使火焰熄灭,如果是玻璃灯帽,还需提起灯帽再轻轻放下,以免会被吸紧。 3、持续加热一段时间,让学生观察变化,等到有白烟冒出后,可以请学生代表上来闻一闻,闻的时候提醒学生不能直接去闻,应该用手扇一些白烟到旁边闻。 4、交流实验现象。

操作系统实验报告三

课程实验报告 课程名称姓名实验名称实验目的及要求 实验3进程并发与同步 1、加深对进程概念的理解,区分进程并发执行与串行执行; 2、掌握进程并发执行的原理,理解进程并发执行的特点; 3、了解fork()系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用; 4、能利用相应的系统调用实现进程树与进程间的同 步。 实 验操作系统:linux Un bu ntu 11.10 环 境实验工具:Vmware 实验内容 1、编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father ”,儿子进 程执行时屏幕显示“ I am son ",女儿进程执行时屏幕显示“ I am daughter ”。 要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析 2、连续4个fork()的进程家族树,family1-1.c 程序清单如下: #in clude main () { fork(); fork(); fork(); fork(); printf( A\n ”); } 请根据程序运行结果,画出进程家族树,并分析原 因。

3、 修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束, 才可以输出消息。 写出相应的同 步控制,并分析运行结果。 4、 创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 写出相应的程序代码并分析程序运行结果。 1、编写一 C 语言程序,实现在程序运行时通过系统调用 fork()创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“ I am father ”, 儿子进程执行时屏幕显示“ I am son ”,女儿进程执行时屏幕显示“ I am daughter "。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 法 描 述 及 实 验 步 骤 调 试过 程及实 验结果

电大操作系统本科实验报告

中央广播电视大学计算机科学与技术专业操作系统(本科) 实验报告 院系:_______________ 班级:________ 学生姓名:_____________ 学号:______ 指导教师:________ 完成日期2015年月日

一、实验题目: Linux应用及shell编程 二、实验目的和要求: 目的 1.掌握Linux一般命令格式和常用命令。 2.学会使用vi编辑器建立、编辑文本文件。 3.了解shell的作用和主要分类。 4.学会bash脚本的建立和执行方式。 5.理解bash的基本语法。 6.学会编写简单的shell脚本。 要求 1.登录进入系统,修改个人密码。 2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。 3.进入vi。建立一个文件,如。进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。最后,将该文件存盘。回到shell状态下。 4.运行,编译该文件,会发现错误提示。理解其含义。 5.利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。 6.对主教材第2章中的适当例题进行编辑,然后执行。从而体会通配符、引号、输入输出重定向符、成组命令的作用;能正确使用自定义变量、位置参数、环境变量、输入/输出命令;能利用if语句、while语句、for语句和函数编写简单的脚本。 三、实验内容: 1.正确地登录和退出系统。 2.熟悉使用ls,cp,cat,等常用命令。 3.进入和退出vi。利用文本插入方式建立一个文件。

5.建立简单shell脚本并执行它。 四、实验技术和方法: Linux中各种脚本语言 五、实验环境: 虚拟机,ubuntuserver版,shell 六、实验步骤和结果: 1.正确地登录和退出系统。 使用exit命令退出系统 2.熟悉使用cat,cd,cp,ls,mor,rm,vi,who等常用命令。 2.使用vi编写 按:wq存储,并退出 5.建立shell脚本并执行它。 使用VI创建ex1文件,内容含三条命令date/pwd/cd.. 七、实验结果分析: 无 实训3 一、实验题目: 进程管理 二、实验目的和要求: 目的 1.加深对进程概念的理解,明确它与程序的区别,突出理解其动态性特征。

三年级科学下册实验报告单

实验一、温度和温度计 活动1:感受1号杯和2号杯里水的冷热 1号杯水() 2号杯水() 活动2:观察温度计 .观察常用液体温度计的主 要构造。 你观察温度计上有摄氏度 (℃)的标记吗? 你观察温度计上每一小格表 示多少? 最高()最低() 你观察温度计的最高温度和 最低温度是多少? 实验现象温度计里面的液柱热了就会上升,冷了就会下降。 活动3:下面的温度你会读和写吗? 28摄氏度写作: 20摄氏度写作: 零下5摄氏度写作: -21℃读作: 31℃读作: 实验要求:用温度计测量水的温度。 实验用品:400ml烧杯一个一支温度计适量冷水和一暖壶热水吸水纸废物瓶。 步骤操作要求评分标准满分得分1 清点仪器用品按材料清单清点材料用品是否齐全(5分)。 5

2 观察温度计的 零刻线、分度值 和量程。 A、观察温度计的零刻线。(10分) B、观察温度计的分度值和量程 。(10分) 20 3 用手感知水温。将手指伸入烧杯中(冷水)或将手放在烧杯 外壁(热水),手的感觉 (10分),估测水的温度(10分)。 20 4 将温度计测量 水的温度。 A、手拿温度计上端,将其竖直放入水中。(10 分) B、温度计的玻璃泡要完全浸没在水中,玻璃 泡不要碰烧杯的侧壁和底部。(10分) C、等示数稳定时再读数。读数时,要让玻璃 泡继续停留在水中。(10分) D、视线要和温度计的示数保持相平。连续三 次测水的温度分别为、、 ,平均水温为。(15分) 45 5 整理仪器,擦拭 桌面。 A、将温度计擦干放回原处。(5分) B、擦拭桌面。(5分) 10 实验三、水结冰了 一、实验名称:水结冰了 二、实验目的:观察水在不同温度下温度计的读数 三、实验步骤: 1、在试管里加入一半的纯净水,用温度计测量并记录试管里水的温度 2、拿一只保温杯(或在普通塑料杯外包裹一块干毛巾)在杯内装满碎冰, 把试管插入碎冰中,用温度计观测试管里水温的变化 3、在碎冰里加入较多的食盐,保持几分钟持续观测试管里的水温 4、观测试管里的水开始结冰时的温度 四、实验器材:试管、保温杯、温度计、碎冰块、食盐、纯净水。 水结冰了的实验记录表

操作系统实验报告三

课程实验报告

3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。 算法描述及实验步骤 1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”, 儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。 调试过程及实验结果

总结 1、实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。这一点需要注意。返回结果时,由于每一次的不确定性,所以要想得到比较具有说服性的,就必须经过多次的测试。 2、连续4个fork()的进程家族树在进行实验的时候可能会出现进程输出信息一直一样的情况,需要多次执行输出才有可能会看到输出结果不一样的情况

操作系统实验报告

操作系统实验报告 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

实验二进程调度1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言 4设计思想: (1)程序中进程可用PCB表示,其类型描述如下:

structPCB_type { intpid;//进程名 intstate;//进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 intcpu_time;//运行需要的CPU时间(需运行的时间片个数) } 用PCB来模拟进程; (2)设置两个队列,将处于“就绪”状态的进程PCB挂在队列ready中;将处于“阻塞”状态的进程PCB挂在队列blocked中。队列类型描述如下: structQueueNode{ structPCB_typePCB; StructQueueNode*next; } 并设全程量: structQueueNode*ready_head=NULL,//ready队列队首指针 *ready_tail=NULL,//ready队列队尾指 针

三年级下册科学实验报告单

河北版三年级下册科学实验报告单 实验操作要求及评分标准 1. 清点器材(15分) (1)有清点实验器材的动作。(5分)(2)能准确说出器材名称。(10分) 2. 进行实验(50分) (1)正确使用仪器,合乎规范,注意安全。(10分) (2)按正确的实验步骤,通过观察、实验、制作等活动,进行操作。(30分)(3)实验过程中,集中精力,仔细观察,及时做好记录。(10分) 3. 填写实验报告(20分) (1)简要写出实验步骤。(10分) (2)记录实验现象,得出实验结论。(10分) 4. 整理仪器、收拾桌面(15分)(1)仪器归位、摆放整齐。(10分)(2)桌面整洁。(5分) (一)实验名称: 观察物体发生时的现象 实验器材:鼓和鼓槌、绿豆、钢锯条。实验步骤: 1.把绿豆放在鼓皮上,用鼓槌敲击鼓,观察绿豆。 2.把锯条放在课桌上,一半落空,一只手按住桌上一端,另一只手拨动锯条。 实验现象:1. 绿豆跳动 2. 锯条颤抖 实验结论:物体发声时振动。 (二)实验名称: 水能传声

实验器材:水槽、砂纸。 实验步骤: 1. 水槽中加满水。 2. 一个同学在水中磨砂纸,另一个同学将耳朵贴在水槽边听。 实验现象:听到了磨砂纸声音。实验结论:水能传声音。 (三)实验名称: 光的传播实验实验目的: 研究光是怎样传播的。 实验器材:手电筒一个、完全相同的中间带孔的硬纸片三张、纸屏一个。 实验步骤: 1. 将三张中间带孔的硬纸片、纸屏排在一条直线上(孔在一条直线上),用手电筒从一端向纸屏上照射,观察现象。 2. 将中间的硬纸片错开,用手电筒从一端向纸屏上照射,观察现象。实验现象:孔在一条直线上时,观察到纸屏上有光;将中间的硬纸片错开,孔不在一条直线上时,观察到纸屏上没有光。 实验结论:光是沿直线传播的。 (四)实验名称:光的反射实验 实验目的:光是否可以被反射。 实验器材:手电筒一个、中间带缝的硬纸片1张、平面镜一个、纸和尺子。 实验步骤:将中间带缝的硬纸片、平面镜放在纸上,排在一条直线上,用手电筒从硬纸片缝隙一端向平面镜上照射,改变平面镜摆放的角度观察现象,画出光的传播路线。

操作系统实验报告 实验三

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第二学期) 课程名称:操作系统开课实验室:信自楼445 2013 年 5 月 16 日 一、实验要求 对给定的一个页面走向序列,请分别用先进先出算法和二次机会算法,计算淘汰页面的顺序、缺页次数和缺页率,具体的页面走向可参考教材例题或习题。 二、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 三、实验原理及基本技术路线图(方框原理图) 用C或C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。 提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存区域,对该空间进行

流程图:

数据结构定义: 我提供定义了两个类。第一个类就是页面类,在这类里面包括一些重要的数据成员。

有页号(page_no),页框号(frame_no),页面是否在内存的标志(flag(1表示在内存,0表示不在内存)),访问次数(times)。另一个类是进程控制块类PCB。类的数据成员有id(进程编号),name(进程名),size(进程大小),*p(页类指针)。在本类中,有一些成员函数:构造函数(用来初始化本类的所有数据),displayPCB(输出函数),convert(地址映射函数),allocation(分配函数),restore(回收函数)。另外还有一些类外的函数:initMemorySpace(初始化内存空间的函数),displayMemorySpace(输出内存空间的状态1(表示占用)0(表示空))。 四、所用仪器、材料(设备名称、型号、规格等)。 计算机一台 五、实验方法、步骤 程序代码: #include #include #include using namespace std; const int frame_size=1024;//页框长度,固定为 1k const int page_size=1024;//页面长度,固定为 1k const int memory_size=102400;//内存容量,固定为 100k const int frame_number=memory_size/frame_size;// 100k/1k=100 frames int *memory;//指针变量,用来存内存的状态1还是0。 void initMemorySpace()//初始化内存空间 { int i,ran,times; time_t t;//定义time_t对象 t t=time(0); srand(t);//随机改变每秒 times=0;//变量times初始化为0,变量的功能是检查内存空间是否有一半空了没。 memory=new int[frame_number];//申请内存空间,有frame_number 这么大的空间 for(i=0;i

操作系统实验报告-中南大学

操作系统原理试验报告 班级: 学号: 姓名:

实验一:CPU调度 一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。 三、实验题目 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 四、实验要求 PCB内容: 进程名/PID; 要求运行时间(单位时间); 优先权; 状态: PCB指针; 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度 4、最好采用图形界面; 5、可随时增加进程; 6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 7、每次调度后,显示各进程状态。 实验二:内存管理 一、实验内容 主存储器空间的分配和回收 二、实验目的 帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 三、实验题目 在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验要求 1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 2、结合实验一,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针} 3、采用最先适应算法分配主存空间; 4、进程完成后,回收主存,并与相邻空闲分区合并 .1、Vo类说明(数据存储结构) 进程控制块PCB的结构: Public class PCB{ //进程控制块PCB,代表一个进程 //进程名,作为进程的标识; private String name; //要求运行时间,假设进程运行的单位时间数; private int time; //赋予进程的优先权,调度时总是选取优先数小的进程先执行; private int priority; //状态,假设有“就绪”状态(ready)、“运行”状态(running)、 //“后备”状态(waiting)、“挂起”状态(handup) private String state; //进程存放在table中的位置 private int start; //进程的大小 private int length; //进程是否进入内存,1为进入,0为未进入 private int isIn; //进程在内存中的起始位置 private int base; //进程的大小 private int limit; //一些get和set方法以及构造器省略… };

操作系统实验报告

《操作系统原理》实验报告 实验项目名称:模拟使用银行家算法判断系统的状态 一、实验目的 银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强对操作系统中死锁的认识,以及如何寻找到一个安全序列解除死锁。 二、实验环境 1、硬件:笔记本。 2、软件:Windows 7 , Eclipse。 三、实验内容 1.把输入资源初始化,形成资源分配表; 2.设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查; 3.设计安全性算法,检查某时刻系统是否安全; 4.设计显示函数,显示资源分配表,安全分配序列。 四、数据处理与实验结果 1.资源分配表由进程数组,Max,Allocation,Need,Available 5个数组组成; 实验采用数据为下表: 2.系统总体结构,即菜单选项,如下图

实验的流程图。如下图 3.实验过程及结果如下图所示

1.首先输入进程数和资源类型及各进程的最大需求量 2.输入各进程的占有量及目前系统的可用资源数量 3.初始化后,系统资源的需求和分配表 4.判断线程是否安全

5.对线程进行死锁判断 五、实验过程分析 在实验过程中,遇到了不少问题,比如算法无法回滚操作,程序一旦执行,必须直接运行到单个任务结束为止,即使产生了错误,也必须等到该项任务结束才可以去选择别的操作。但总之,实验还是完满的完成了。 六、实验总结 通过实验使我对以前所学过的基础知识加以巩固,也对操作系统中抽象理论知识加以理解,例如使用Java语言来实现银行家算法,在这个过程中更进一步了解了银行家算法,通过清晰字符界面能进行操作。不过不足之处就是界面略显简洁,对于一个没有操作过计算机的人来说,用起来可能还是有些难懂。所以,以后会对界面以及功能进行完善,做到人人都可以看懂的算法。

三年级科学实验报告单

实验内容:鹦鹉站立制作实验 年级:三年级上册第一单元 课题:1、做一名小科学家 实验器材:彩色卡纸一张、剪刀、回形针 实验类型:教师演示、学生操作 实验结论:回形针分别别在鹦鹉的脚的两侧,可以使鹦鹉平稳站立在手指上。

实验内容:蜗牛观察实验 年级:三年级上册第二单元 课题:1、校园里的小动物 实验器材:蜗牛一只、大号餐盘、菜叶、肉片、苹果皮、鸡蛋、面包、醋、啤酒、玻璃片 实验类型:教师放在食物展台上展示实验 实验结论:上述食物,蜗牛只吃菜叶,如用书上几种材料,蜗牛除了菜叶还喜欢黄瓜。遇到醋或者酒之类刺激物体,蜗牛会立刻缩回到壳里。

实验内容:水的毛细现象 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:不同颜色的水、纸巾;粉笔、纱布、塑料片、玻璃片(2块,在其中一块玻璃片上绕上几圈透明胶);两支粗细不一样的玻璃管; 实验类型:教师演示实验、学生操作实验

实验结论:水能沿着缝隙或小孔向上“爬升”,这种现象叫做毛细现象。孔隙越小,水爬升得越高。

大中小学三年级科学上册分组实验报告单实验内容:观察水 年级:三年级上册第三单元 课题:2、神奇的水 实验器材:滴管、一元硬币、烧杯、回形针每组一盒;戳好洞的可乐瓶一只、水盆一个;大小烧杯各一只、橡皮泥一块、50克砝码一只、细线一根。 实验类型:水的表面张力为学生操作实验,会喷射的水和会托举的水为教师演示实验,水的溶解实验为学生操作实验

实验结论: 会团结的水:水面会成一个圆弧形,因为表面的水有一股相互之间拉着的力,可以承受一点的重量。 会喷射的水:瓶子上方小孔的水喷射的距离近,下方小孔的水喷射的距离远,因

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

操作系统实验报告

操作系统教程实验报告 专业班级 学号 姓名 指导教师

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

操作系统实验报告1

操作系统 实验报告 班号:1303107 学号:1130310726 姓名:蔡鹏

1.请简述head.s 的工作原理。 head.s实在32位保护模式下运行的。我认为这段程序主要包括两个部分:1.初始化设置。2.任务执行与切换。 初始设置主要包括了:1.设置GDT表2.设置系统定时芯片3. 设置IDT表(0x08时钟中断和0x80系统调用中断)4.切换到任务0执行 任务切换和执行包括了:1.任务0和任务1 , 2.时钟中断, 3.系统中断 两个任务的在LDT中代码段和数据段描述符的内容都设置为:基地址0x0000;段限长值为0x03ff,实际段长度为4MB。因此在线性地址空间中这个?内核?的代码和数据段与任务的代码和数据段都从线性地址0开始并且由于没有采用分页机制,所以他们都直接对应物理地址0开始处。 为了每隔10毫秒切换运行的任务,head.s程序中把定时器芯片8253的通道0设置成每隔10毫秒就向中断控制芯片8259A发送一个时钟中断请求信号。PC机的ROM BIOS开机时已经在8259A中把时钟中断请求信号设置成中断向量8,因此我们需要在中断8的处理过程中执行任务切换操作。任务切换的实现是查看current变量中的当前运行的任务号,如果为0,就利用任务1的TSS选择符作为操作数执行远跳转指令,从而切换到任务1中,否则反之。

每个任务在执行时,会首先把一个字符的ASCII码放入寄存器AL中,然后调用系统中断调用int 0x80,而该系统调用处理过程则会调用一个简单的字符写屏子程序,把寄存器AL中的字符显示在屏幕上,同时把字符显示的屏幕的下一个位置记录下来,作为下一次显示字符用。在显示过一个字符后,任务代码会使用循环语句延迟一段时间,然后又跳转到任务代码开始处继续循环执行,直到运行了10毫秒而发生了定时中断,从而代码会切换到另一个任务执行。对于任务A,寄存器AL中始终存放字符‘A’,而任务B运行时AL中始终存放字符‘B’。因此程序运行时我们将看到一连串的‘A’和一连串的‘B’间隔的连续不断的显示在屏幕上。若出现了一个‘C’,是由于PC机偶然产生了一个不是时钟中断和系统调用中断的其他中断。因为我们已经在程序中给所有其他中断安装了一个默认中断处理程序。当出现一个其他中断时,系统就会运行这个中断处理程序,于是就会在屏幕上显示一个‘C’,然后退出中断。 4.请记录head.s 的内存分布状况,写明每个数据段,代码段,栈段 的起始与终止的内存地址。

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

操作系统大型实验报告

操作系统大型实验报告 姓名林丹学号200626410112 班级软件工程2+3(061)得分 一、实验目的: 了解动态分区分配方式中使用的数据结构,熟悉最优分配算法,并进一步加深对动态扮区存储管理方式包括理解分配内存资源及回收资源及其实现过程的理解。 二、实验环境: Win2000/WinXP VC++6.0 三、实验内容: (1)用C++语言分别实现采用最佳适应算法的动态分区分配过程excellent() 和回收过程mfree()。 (2)假设初试状态下,可用的内存空间为1024KB,并初始化空闲区和已分配区 (3)每次分配和回收后显示空闲内存分区链情况(共有多个空闲分区,每个空闲分区的大小分别为多大,以及空闲标记)。 (4) 回收内存时若存在连续的空闲结点则合并,处理释放内存产生的碎片。 四.实验代码及分析解释 程序主要以数组形式实现,相关函数如下: 1.void initial() 初始化空间段(空闲区和已分配区),大小可自定。 2.void excellent() 采用最优算法分配内存,。 3.void print() 输出已经分配和空闲资源情况。 4.void mfree() 回收内存,若存在连续的空闲结点则合并 5.void main() Main主函数,实现整个过程;包括选择对作业的操作类型,选0退出程序,选1进行内存分配,选2撤消某作业并回收资源选3输出已经分配和空闲资源情况。 源程序: #include #include #include //getch() #include #include #include const int MAXJOB=20; //定义最大作业数

相关文档
最新文档