文档库 最新最全的文档下载
当前位置:文档库 › 分布式系统实验报告

分布式系统实验报告

分布式系统实验报告
分布式系统实验报告

分布式计算环境实验报告

分布式计算环境实验报告 实验名称:在虚拟机下安装Linux系统和 Hadoop 专业班级:网络1101 学生学号:3110610007 学生姓名:平淑容

目录 实验目的..............................................................................P 实验仪器...............................................................................P 实验内容和步骤...................................................................P 安装过程的问题以及解决方法............................................P 代码运行以及实验结果.......................................................P 运行过程中的问题................................................................P 实验总结................................................................................P

一、实验目的 在虚拟机上安装CentOS系统并在Linux系统上安装Hadoop单机模式并且执行一个Java程序。 二、实验仪器 硬件:虚拟机CentOS 软件:Windows 7操作系统 三、实验内容及步骤 实验内容 一、安装虚拟机 二、安装Linux操作系统 三、设置静态ip 四、修改主机名 四、绑定ip和主机 五、关闭防护墙 六、关闭防火墙的自动运行 七、设置ssh 八、安装JDK 九、安装Hadoop 十、在单机上运行Hadoop 十一、Hadoop执行Java程序 实验步骤: 一、安装虚拟机 此处安装的虚拟机是VMware Workstation版本,直接从压缩包里面解压安装即可,此处不做过多介绍。 二、安装Linux系统 此处安装的Linux系统使用的是CentOS版本,直接从压缩包里面解压,然后使用VMware Workstation打开,打开之后选择开机输入用户名和密码进入linux系统。 三、Hadoop的伪分布安装步骤 1.设置静态IP ①在centOS桌面的右上角选择图标,右击修改ip值,选择静 态ip,输入需要增加的ip值、默认网关。

操作系统实验报告

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

目录 实验一 (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、程序框图

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

Nachos_Project_1_2014-操作系统实验

Nachos实验项目 本实验项目采用纽约大学计算机系相关课程的实验设计。这些实验的内容以及nachos 的完整介绍请参考相关文档。 Nachos实验项目将采用分组方式完成。每4人为一组(个别组除外)。分组确定后,未经特别批准,不得变更。请各组组长在自己的起始目录下创建试验结果提交目录“nachos”(不含引号,均为小写字母)。 每次实验,我们都将指定需要提交的内容和截止时间,第一次试验的提交内容放在起始目录下的“nachos/1”目录内,第二次的放在“nachos/2”内,依次类推。请大家关注,并严格按要求操作。一个小组只要提交一份实验报告即可。对未按实验提交要求操作而造成提交失败的,将被视为实验未完成(提交内容由程序自动收集)。 从第4周起,双周的周二下午2:30~5:30为试验时间并兼做理论课程答疑时间。实验地点在404。 实验一体验Nachos下的并发程序设计 (实验指导:os_lab.ppt) 1内容简述 本次实验的目的在于对nachos进行熟悉,并初步体验nachos下的并发程序设计。实验内容分三部分:安装nachos;用C++实现双向有序链表;在nachos系统中使用你所写的链表程序并演示一些并发错误。 2实验内容(详见英文文档nachos-lab.pdf文档3.1章) 2.1安装nachos 2.2实现双向有序链表(50%) 如对c++不很熟悉,可以参考nachos-3.4/c++example/中的有关实现。 2.3体验nachos线程系统(50%) 需要做的更改有: 1)将dllist.h, https://www.wendangku.net/doc/d74015325.html,, https://www.wendangku.net/doc/d74015325.html,等文件拷贝到nachos-3.4/code/threads/目录中。 2)修改https://www.wendangku.net/doc/d74015325.html,mon中的THREAD_H、THREAD_C、THREAD_O以保证新的文件确 实被编译了。 3)根据实验内容,https://www.wendangku.net/doc/d74015325.html,,https://www.wendangku.net/doc/d74015325.html,等文件可能需要改动。 3实验结果的提交 本实验应提交的内容: https://www.wendangku.net/doc/d74015325.html,mon https://www.wendangku.net/doc/d74015325.html, https://www.wendangku.net/doc/d74015325.html, dllist.h https://www.wendangku.net/doc/d74015325.html,

分布式系统导论实验报告

分布式系统导论 实验报告 实验(3)名称面向连接的流模式Socket 实验(4)名称三层C/S结构 实验人学号 1007XXX姓名 XXX 实验日期 2013年5月20日 报告完成日期 2013年5月21日 成绩指导教师签字 年月日

目录: 一、实验3面向连接的流模式Socket (2) 二、实验4三层C/S结构 (4) 2.1 任务一:通过无连接数据报socket实现C/S应用 (4) 2.2任务二:通过面向连接的流模式socket实现C/S应用 (6) 三、实验心得 (8)

一、实验3面向连接的流模式Socket 1、实验目标:尝试通过面向流模式的socket实现通信。 2、实验原理: 2.1、socket通常也称作"套接字",用于描述IP地址和端口,是一个 通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket和ServerSocket类库位于https://www.wendangku.net/doc/d74015325.html,包中。 ServerSocket用于服务器端,Socket是建立网络连接时使用的。 在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。 2.2、面向连接的操作使用TCP协议.一个这个模式下的socket必须 在发送数据之前与目的地的socket取得一个连接.一旦连接建立了,sockets就可以使用一个流接口:打开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高. 3、实验内容: 创建一个服务端的程序,以接受一个连接并用流模式socket接受一个消息。创建一个名为客户端程序。此程序可以请求一个连接,并使用流模式socket。 实验所用到的基本函数解释: 1)serverSocket(int port)指定的IP和端口创建一ServerSocket 对象 2)socket accept()服务端和客户端握手

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

管理信息系统实验报告97692

《管理信息系统》实验报告 实验项目:教务处排课系统分析 实验学时:18 学时 姓名: 学号: ________________ 专业班级: 实验时间: _______ 实验成绩: __________________________

东北财经大学 《管理信息系统》实验报告实验项目名称:

沟通能力,养成对问题全面分析、思考和严谨认真的态度,增强创新意识五、教师评语 签名: 日期: 管理系统实验报告

实验小组成员: 实验对象:教务处排课信息系统 实验对象背景介绍:教务管理系统是一个庞大而复杂的系统,它包括:学生学籍管理系统、排课 系统、教师管理系统、学生成绩系统、系统设置、班级信息系统、教学培养计划管理系统、教学资源管理系统、招生系统教务信息发布系统和事务处理系统。随着科学技术的进步与相应的管理信息系统的升级,教务系统管理平台充分利用互联网络B/S 管理信息模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。教务管理系统内部子系统多样庞杂, 今天我们主要讨论的研究对象是排课管理信息系统。 排课管理系统是每个学校必不可少的内容,它的优劣直接学校教学工作质量和学校的正常教学活动秩序。随着现在生源数量的不断增长以及各行业竞争日益激烈,为了满足中国社会主义事业发展对高素质人才的需求,各大高校都在尽自己努力,以本校现状及需求作为基础,以科技发展进步作为依托,发展完善一个功能完整,操作简单快捷,高效率,与本校其他教务管理系统良好适应的排课系统与之配套,使教师等教学资源利用达到最大化,为学生提供优良的教育环境。因此,东北财经大学作为一个知名的财经类高校, 要达到适应教育现状及 提高自身教育层次的目标,完善教务排课管理系统显得尤为重要。 系统功能简述排课管理系统需要合理调配各个班级专业所需的专业课程选修必修课程,相应教师,教师及上课班级,尽可能全面的考虑到教师的身体状况,工作条件,家庭状况甚至与学校距离,教师及学生时间,各种课程按重要程度以及学生兴奋点和接受能力合理排序,教师的容量用途,学校集体活动或教师会议等多方面因素,以计算机安排为主,手工调整为辅的方式做出各个院系各个专业各个班级的课程安排。 排课管理系统的目标不仅是对于原有系统进行改进提高,还使课程管理科学化系统化准确化,减少手工录入的误差可能性,方便操作者的随时添加、查询、修改,是统计表格格式规范化统一化,提高工作效率,降低人工成本,提高处理数据能力与速度,提高教学质量,优化学校教务管理系统,为学校的进一步发展提供技术支持与可能性。 系统分析(1)系统分析任务:根据系统设计任务书所确定的范围,并在充分认识原有系统的基础上进行详细的调查分析,通过问题识别、可行性分析、详细调查、系统化分析,进而确定新系统的基本目标和逻辑功能结构,最后完成新系统的逻辑方案设计。 (2)可行性分析和详细调查概述:由于实验的限制,假定建立排课管理信息系统在管理上、技术上、经 济上都是可行的。而详细调查采用一定的调查方法发现了现行系统有以下优缺点: 现有系统优缺点分析 1. 选课分为预选、正选、补退选,一定程度上完善了选课系统。 2. 在选课中,按年级差异区分次序,一定程度上缓解短时间内系统压力,保证了高年级学生顺利完成课业。 3. 学生面临选课时,具有多重选择性,使学生有机会挑选感兴趣的课程,更加人性化设置。 4. 正选是以随机抽选的形式来的话,会更具有公平性。 5?学生可以自主跨专业选择自己喜欢的课,使选课更具有自主性。 6?在登录选课系统时,需要学生输入个人账号信息,保证了学生信息隐私,具有一定的安全性。

Nachos实验报告9

计算机科学与技术学院实验报告:9 实验题目:设计并实现具有优先级的线程调度策略姓名:李威 日期:2013-12-1 学号:201100300259 班级:11级软件3班Email:sduliwei@https://www.wendangku.net/doc/d74015325.html, 实验目的: Nachos系统采用基本的FCFS的线程调度策略,修改成为具有优先级的线程调度策略 硬件环境: 软件环境: linux操作系统,Nachos操作系统 实验步骤: 1.修改Thread类的构造函数,加入优先级priority属性,并且加入getPrioty方法。以便在线程的 等待队列中找到优先级最高的线程。其中,线程优先级的范围从1到7,默认为7,即最低优先级。 修改代码如下:(https://www.wendangku.net/doc/d74015325.html,,thread.h) class Thread { …………………………………… public: Thread(char* debugName, int priority=7);// initialize a Thread ………………………………………………… int getPriority(){return this->priority; } Thread::Thread(char* threadName, int p) { if(p<1) priority = 1; else if(p>7) priority = 7; else priority = p; name = threadName; stackTop = NULL; stack = NULL; status = JUST_CREATED; #ifdef USER_PROGRAM space = NULL; #endif } 2,首先,了解Nachos系统原来的线程调度方式。通过读https://www.wendangku.net/doc/d74015325.html,,https://www.wendangku.net/doc/d74015325.html,,https://www.wendangku.net/doc/d74015325.html,文件 中的内容了解线程调度的方式。

Hadoop云计算平台实验报告V1.1

Hadoop云计算平台实验报告V1.1

目录 1实验目标 (3) 2实验原理 (4) 2.1H ADOOP工作原理 (4) 2.2实验设计 (6) 2.2.1可扩展性 (6) 2.2.2稳定性 (7) 2.2.3可靠性 (7) 3实验过程 (9) 3.1实验环境 (9) 3.1.1安装Linux操作系统 (10) 3.1.2安装Java开发环境 (14) 3.1.3安装SSH (15) 3.1.4配置网络 (15) 3.1.5创建SSH密钥安全联机 (19) 3.1.6配置Hadoop云计算系统 (19) 3.1.7配置Slaves节点 (23) 3.1.8格式化Hadoop系统 (23) 3.1.9启动Hadoop集群 (23) 3.22.实验过程 (25) 3.2.1可扩展性 (25) 3.2.1.1动态扩展 (25) 3.2.1.2动态缩减 (27) 3.2.2稳定性 (28) 3.2.3可靠性 (31) 3.2.4MapReduce词频统计测试 (32) 4实验总结 (35)

1. 掌握Hadoop安装过程 2. 理解Hadoop工作原理 3. 测试Hadoop系统的可扩展性 4. 测试Hadoop系统的稳定性 5. 测试Hadoop系统的可靠性

2.1Hadoop工作原理 Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce 的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算、存储提供了底层支持。 HDFS采用C/S架构,对外部客户机而言,HDFS就像一个传统的分级文件系统。可以对文件执行创建、删除、重命名或者移动等操作。HDFS中有三种角色:客户端、NameNode和DataNode。HDFS的结构示意图见图1。 NameNode是一个中心服务器,存放着文件的元数据信息,它负责管理文件系统的名字空间以及客户端对文件的访问。DataNode节点负责管理它所在节点上的存储。NameNode对外暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,文件被分成一个或多个数据块,这些块存储在一组DataNode上,HDFS通过块的划分降低了文件存储的粒度,通过多副本技术和数据校验技术提高了数据的高可靠性。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。DataNode负责存放数据块和处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。

操作系统实验报告

操作系统实验报告 集团企业公司编码:(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队列队尾指 针

nachos Lab7实习报告

shell实现实习报告 页脚内容1

目录 内容一:总体概述 (3) 内容二:任务完成情况 (3) 任务完成列表(Y/N) (3) 具体Exercise的完成情况 (4) 内容三:遇到的困难以及解决方法 (19) 内容四:收获及感想 (20) 内容五:对课程的意见和建议 (20) 内容六:参考文献 (20) 页脚内容2

内容一:总体概述 本次实习需要实现用户程序shell。shell是提供使用者使用界面的软件(命令解析器),他接收用户命令,然后调用相应的应用程序。本次shell实现的基础是前面已经完成的相关功能。注意到nachos已经实现简单的shell,我们只需要在此基础上进行相关的修改。 内容二:任务完成情况 任务完成列表(Y/N) 页脚内容3

具体Exercise的完成情况 设计实现一个用户程序shell,通过./nachos -x shell进入用户交互界面中。在该界面中可以查询支持的功能、可以创建删除文件或目录、可以执行另一个用户程序并输出运行结果,类似Linux上跑的bash。你实现的越完善,碰到的问题越多,学到的也会越多。 本实验所修改的代码包括内核和用户程序两部分。 首先,需要解析输入的命令,这部分现有程序已经完成 Write(prompt, 2, output); Read(&buffer[i], 1, input); 因为在Lab6中,我没有考虑标准输入和标准输出的问题,所以需要修改https://www.wendangku.net/doc/d74015325.html,处理read系统调用和处理write系统调用的部分 针对处理read系统调用的部分,如果系统调用的第3个参数是0(表示标准输入),那么读取从用户界面输入的字符串存入相应的位置 if(fd == 0){ for (int i = 0; i < count; i++) content[i] = getchar(); } 针对处理write系统调用的部分,如果系统调用的第3个参数是1(表示标准输出),那么输出缓冲区 页脚内容4

分布式实验报告

计算机科学与技术学院 实验报告 (学年度第学期) 课程名称分布式 实验名称分布式实验 姓名学号 专业计算机班级 地点教师

实验一:.NET Remoting 一:实验目的和要求: 目的:所谓.NET Remoting就是跨应用程序域边界调用程序集。Remoting服务端承载远程对象,使外界能与之通信,对外的信道可以是HTTP、TCP或者IPC。而我在此次试验中选择的是TCP。最基本的.NET Remoting应用程序应该由三部分构成: ?服务端。承载远程对象。 ?远程对象。需要跨应用程序域边界调用的程序集。 ?客户端。用于调用远程对象。 此次实验就是要在掌握的理论基础之上实现远程调用。 要求:1.进行实验预习工作; 2.准备实验必须的完整程序流程及源代码; 3.上机编程,调试程序,得到实验结果; 4.写出实验报告 二:实验环境: Visual Studio 2010 三:实验步骤: 首先下载安装Visual Studio 2010,此过程比较简单,在这就不介绍了。 远程对象是根本,服务端只是一个载体,那么我们就先要创建一个简单的远程对象:1.打开Visual Studio 2010,在在主界面中选择文件,选择“新建”→“项目”命令,新建一个Remoting类库项目。 2.把默认的Class1.cs重命名为RemoteObject.cs,打开cs文件,修改代码为: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Remoting { publicclass MyObject:MarshalByRefObject { //减法 publicint Sub(int a, int b) { return a - b; } //获得服务器时间 publicstring GetDate() {

操作系统实验报告4

《操作系统》实验报告 实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜ 修改后: #include #include int main(VOID) { STARTUPINFO si; PROCESS_INFORMA TION pi; ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, "c:\\WINDOWS\\system32\\mspaint.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) { fprintf(stderr,"Creat Process Failed"); return -1; } WaitForSingleObject(pi.hProcess,INFINITE); printf("child Complete"); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。 4.正在运行的进程 (2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include

nachos实验七实验报告

nachos实验报告七 实验题目: Extension of AddrSpace 学号:201200301057 日期:2014-11-29 班级:计软12-3 姓名:高鹏辉 实验目的: 在了解了Nachos 装入并执行单个用户进程的情况后,我们就需要进一步完成用户内存空间的扩充以便多用户程序同时驻留内存,进而使多用户进程并发执行。 硬件环境: Mem:3.9G CPU:Intel? Core?2 Quad CPU Q9500 @ 2.83GHz × 4 Disk:15.5 GB 软件环境: System:ubuntu12.04LST i386 gcc: (Ubuntu 4.6.3-1ubuntu5) 4.6.3 nachos system 实验步骤: 要在Nachos中实现多用户程序同时驻留内存并发执行,首先涉及到Nachos的两个系统调用:Exec()和Exit()。这两个系统调用也是构造父子进程并发执行的基础。假设我们有以下两个用户程序:../test/exec.c和../test/halt.c ../test/halt.c 第65页 用户进程管理设计 1 #include "syscall.h" 2 int 3 main() 4 { 5 Halt() 6 } ../test/exec.c 1 #include "syscall.h" 2 int 3 main() 4 { 5 SpacId pid; 6 pid = Exec("../test/halt.noff");

7 Halt() 8 } 在文件../test/exec.c第5行上的语句Exec是一条Nachos的系统功能调用,它的功能为装入并执行以其参数为名的可执行文件,即创建一个新的用户进程。假设我们先执行../test/exec.noff 程序,则../test/exec.noff 会在它还没有执行结束时又装入并执行另外一个程序halt.noff,并与它同时驻留内存. pageTable[i].physicalPage=usermap-->Find();避免从头开始物理存储覆盖了前一个用户程序的内存内容 利用Nachos在../userprog/bitmap.h 中文件定义的Bitmap类。利用bitmap 记录和申请内存物理帧,使不同的程序装入到不同的物理空间中去,下面是对新的内存分配存储算法,改进了对多个用户程序的同时进驻内存的支持

操作系统实验报告

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

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

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

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

人事管理系统实验报告

摘要 人事管理是企业管理中的一个重要内容,随着时代的进步,企业也逐渐变得庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下,开发一个人事管理系统就显得非常必要。本系统结合公司实际的人事、制度,经过实际的需求分析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的单机版人事管人事理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工假条信息录入、修改、查询、删除模块,员工工资信息的录入,计算,查询,以及系统用户的设置以及系统的维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。本文系运用规范研究方法进行的专题研究。全文分六个部分:第一部分,是本课题的来源和课题研究的目的和意义;第二部分,是开发工具的选择,本系统主要运用的是Visual Basic 6.0作为系统前台应用程序开发工具,Access作为后台数据库;第三部分,是系统的需求分析,主要是人事管理系统的需求分析;第四部分,是系统分析与实现,包括系统功能模块的设计和数据库的设计;第五部分,是代码的设计与实现,系统事件运行的主要代码;第六部分,是系统的实现,最后,是软件的测试 关键词:人事管理系统设计SQL Server 2005数据库Visual Basic 6.0 维护测试

第一章绪论 1.1 引言 随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。人力资源管理是结合公司实际的人事、制度,经过实际的需求分析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的单机版人事管人事理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工假条信息录入、修改、查询、删除模块,员工工资信息的录入,计算,查询,以及系统用户的设置以及系统的维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。 1.2 项目背景 本课题基于我国企业管理信息化建设现状,结合在实际工作中所遇到的问题和收获,对企业人事管理系统在设计开发等方面进行研究,重点研究系统开发中所采用的软硬件平台规范、数据库结构设计、开发工具的选择与使用,目的是从技术手段的角度阐述如何实现企业从传统经营管理模式向信息化管理模式转变的过程,以及人事管理系统在企业管理信息化中所起到的重要作用。本课题的开发主要是要花费相当多的人力和时间,虽然开发出来的软件可能离具体产生效益还有一定的距离。但是,出于通过毕业设计来丰富自己的专业知识,并从长远利益来考虑,本课题的设计开发还是具有相当大的经济可行性的。 1.3 实现意义 现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。这些都大大地缩短管理的时间。而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。信息管理,如今已是一个热门话题,它已为许

nachos01

实验一体验Nachos下的并发程序设计 一、小组成员及分工 汪于波(23020078104116):https://www.wendangku.net/doc/d74015325.html,的修改、https://www.wendangku.net/doc/d74015325.html,的修改和实验报告 潘羽龙(23020078104100):https://www.wendangku.net/doc/d74015325.html,的实现 吴道裕(23020078104132):https://www.wendangku.net/doc/d74015325.html,的实现和实验报告的完成 谭原(23020078104111):dllist.h的实现和https://www.wendangku.net/doc/d74015325.html,mon的修改 二、实验目的 对nachos进行熟悉,并初步体验nachos下的并发程序设计。 三、实验内容 1.安装nachos; 2.用C++实现双向有序链表; 3.在nachos系统中使用你所写的链表程序并演示一些并发错误 四、实验步骤 1.首先明确Nachos各部分的关系 在~/nachos/nachos-3.4/code/下有一个https://www.wendangku.net/doc/d74015325.html,mon,在code/的各个子目录下的Makefile都继承这个https://www.wendangku.net/doc/d74015325.html,mon。通过阅读https://www.wendangku.net/doc/d74015325.html,知道,main函数一旦启动,立即调用Initialize,进行初始化的操作,然后对相应的参数进行处理,之后在分模块进行相应模块下的函数调用,执行相应的功能。 2.编写相应的函数 实验要求利用对双向链表的操作来演示并发程序可能出现的错误,首先需要实现双向链表dllist,包括dllist.h,https://www.wendangku.net/doc/d74015325.html,。当DLList类实现后,需要编写链表驱动函数Insert 和Remove来对链表进行驱动。通过改写https://www.wendangku.net/doc/d74015325.html,,使得多个线程在没有进行任何互斥操作的情况下对同一数据结构进行操作,在这个过程中就可能出现并发错误。改写https://www.wendangku.net/doc/d74015325.html,mon和https://www.wendangku.net/doc/d74015325.html,。 3.详细设计 a)dllist.h(~/nachos/nachos-3.4/code/threads/) 类DLList的声明 class DLLElement { public: DLLElement(void *itemPtr,int sortKey);//initialize a list element DLLElement *next;//next element on list DLLElement *prev;//previous element on list int key; void *item; }; class DLList { public: DLList();//initialize the list DLList(int type); ~DLList();//de-allocate the list

分布式系统实验报告

目录 一、需求分析 (1) 1. 1课程设计题目 (1) 1. 2课程设计任务和要求 (1) 要求: (1) 任务: (1) 1. 3课程设计环境 (1) 1. 4实验资源配置 (1) 二、概要设计 (2) 2. 1设计内容 (2) 三、测试与操作 (2) 3.1.1 创建DFS根 (2) 3.1.2 为DFS根添加链接 (3) 3.1.3 使用DFS副本实现容错和负载均衡 (4) 3.1.4 检测实验结果 (7) 五、课程设计总结与体会 (8)

六、致谢 (8)

一、需求分析 1. 1课程设计题目 本课程设计题目为:卷影副本和分布式文件系统 1. 2课程设计任务和要求 要求: 通过DFS将整个局域网同一网段的所有的共享文件夹集成到一个树状结构中 供用户访问。 任务: 1.创建DFS根; 2.为DFS根添加链接; 3.使用DFS副本实现容错和负载均衡; 1. 3课程设计环境 Windows Server 2003 1. 4实验资源配置 1.4台虚拟机,Server1,Server2,server3和client1,server1作为域控制器,其他计算机作为域中的成员计算机; 2.将Server2,Server3,client1分别加入到域;

二、概要设计 2. 1设计内容 分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。也就是说网络资源可能分散在网络中的任何一台计算机上,用户为了能够访问到这些共享文件夹必须知道这些共享文件夹的网络路径(UNC路径)才能够访问这些共享文件夹,并且当要访问多个相关的共享文件夹时必须在“网上邻居”或“网络驱动器”之间切换。 为了避免上面这种情况,Windows Server 2003引入了DFS,DFS使得用户无需知道文件夹具体在哪台计算机上,而只需要知道DFS文件服务器的UNC路径或IP地址就可以了。因为通过DFS可以将整个局域网同一网段的所有的共享文件夹集成到一个树状结构中供用户访问,这样当用户需要访问分散在网络中的多个共享资源的时候并不需要自己去各个服务器上寻找共享文件夹,而是只需要访问DFS服务器上的共享文件夹就可以了。当用户打开这个DFS服务器上的共享文件夹访问共享资源的时候,其访问被DFS自动地重新定向到网络中共享文件夹所在的服务器上,而用户并本身不知道(也无需知道)究竟这些文件夹放置的具体位置。 除此之外DFS还可以提供容错(Fault Tolerance)和负载均衡(Load Balancing)的功能。如果共享文件夹在网络中有多个相同的副本即多个内容相同的共享文件夹放置在不同的服务器上,当其中一个副本因意外而停止共享时,用户访问该文件夹的时候DFS可以自动将其他副本提供给用户使用,从而达到容错的功能。另外DFS也会在多个副本之间自动选择一个以响应的用户的请求,降低服务器的工作强度。而这一切均不用用户参与操作,完全由DFS自动完成。共享文件的权限与DFS拓扑无关,用户能否访问DFS上的文件夹,由DFS 上共享的文件夹的实际所在的计算机上的NTFS权限和共享权限决定。 测试与操作说明 三、测试与操作 3.1.1 创建DFS根 创建基于域的DFS根的过程。事先,在服务器上创建文件名为ljj_DFS的共享文件夹,此文件夹将作为DFS访问的起点,另外,在其他两台计算机上分别创建名为“movie”和“music”的共享文件夹 ⑴在要创建DFS的计算机上(本实验中服务器A创建DFS),单击“开始”→“程序”→“管理工具”→“分布式文件系统”,打开分布式文件系统管理控制台,如图所示,在左半部分树窗口中的“分布式文件系统”上单击鼠标右键,在如图4-38所示的菜单中选择“新建根目录”。 ⑵在弹出的“欢迎使用根目录向导”对话框中单击“下一步”按钮,在分布式文件系统管理控制台中,将出现新建DFS根目录向导。

相关文档