操作系统上机实验报告

课程设计(上机实验)报告课程名称:计算机操作系统学生姓名:学号:所在学院:电子与信息工程学院专业:计算机科学与技术指导教师:2011年 1 月 11 日课程设计(上机实验)报告填写说明1.本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。

此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;2.本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4号宋体,1.5倍行距),禁止打印在其它纸上后剪贴;3.本报告中的“设计说明书”应按论文的格式成文,并直接书写(或打印)在本报告“设计说明书”栏目内。

其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。

说明书的篇幅应不少于2000字。

4.对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。

5.软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。

课程设计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。

课程设计(上机实验)题目:目的与任务:内容和要求:在此次实验过程中,我选择了以下几项作为实验内容:4.1 修改md命令4.2.1 修改help命令的显示方式和显示内容4.7 修改close、type等命令,允许不带文件名参数1. 改正某些缺陷2. 允许覆盖同名文件(选做内容)4.9 增加输出重定向功能(选做内容)1. type命令的输出重定向形式4.15 修改read命令,允许不带文件名参数(选做内容)课程设计(上机实习)报告4.1修改md命令命令格式:md <目录名>[ <属性>]设计思想:如果k等于2时,表示有属性参数,将参数转换为小写字母,再逐个与rh s比较,如果是则将属性与相对应的值进行或运算,如果不是则返回负值。

4.2 修改Help命令或命令行预处理程序1. 修改help命令的显示方式和显示内容设计思想:输入一个字符串,用_strlwr(字符串)转换成小写,再用strncmp(字符串,"quit",字符串长度)比较,如果是则退出,不是则将字符串转换为数字,在范围中则输出相应的提示,不是则重新输入。

4.7 修改close、type等命令,允许不带文件名参数命令形式:close——关闭当前操作文件命令形式:type——显示当前操作文件内容设计思想:增加一个全局字符数组变量Ruf,在create、open、write、read rewind或fseek等命令操作中如果成功操作,则将该命令中使用的文件的全路径(包文件名)拷贝给全局字符数组变量Ruf,在close命令中,如果没有文件名参数,则将全局字符数组变量Ruf拷贝给comd[1],其他代码都可以重用,这样就实现允许不带文件名参数的close命令。

允许不带文件名参数Type,read,write命令的实现与close 命令相似。

4.9 增加输出重定向功能1. type命令的输出重定向形式命令形式1:type <文件名1> > <文件名2>命令形式2:type <文件名1> >> <文件名2>设计思想:判断k是否为3,是表明应该执行type命令的输出重定位形式,此时判断文件名1和文件名2的存在,如果都存在则读出两文件分别放入到buffer1和buffer2字符数组中,如果comd[2]是">"则将buffer1复制给buffer2,如果comd[2]是">>"则将buffer1接到buffer2的末尾,然后调用buffer_to_file(fcbp2,Buffer2)函数将buffer2中的内容存到文件2中。

4.15 修改read命令,允许不带文件名参数设计思想:当命令中没有文件名时(k=0或comd[1][0]为'|'时),用全局字符数组变量ruf (用于存储当前操作文件的全路径名)查找文件是否还在UOF表中,否则用comd[1]查找。

如果有读开始参数,查看位置是否合法,合法则重该位置开始读,否则报错。

没有读指针参数时,则重该文件的读指针位置开始读。

如果有读个数参数,查看个数是否合法,合法这读指定个数,否则报错。

没有读个数参数时,则读到文件结束。

最后做相应的工作。

课程设计小结:指导教师意见内容及要求评定等级优良中及格不及格独立完成全部工作量设计说明书质量创新素质,综合能力编程能力,软件质量遵守纪律,出勤率综合得分对学生课程设计(上机实验)的评语:指导教师:年月日所在专业审查意见:负责人:年月日实验任务结果4.1 修改md命令题目:修改md命令,增加“属性”参数,用于创建指定属性的子目录。

命令形式如下:md <目录名>[ <属性>]属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。

例如:md user rh其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user。

运行结果:现在你可以输入各种操作命令.Help ——简易帮助信息.exit ——退出本程序.C:/>md student rhC:/>attrib student/student的属性是:RHC:/>4.2.1 修改help命令的显示方式和显示内容题目:修改HelpComd()函数,使之提供菜单式的较详细的帮助信息。

例如可以先用菜单形式简单列出各命令名称,当用户选择某个命令的序号后,再比较详细地介绍该命令,包括命令的各种形式,每种形式的功能,以及某些举例说明等等。

实验结果:现在你可以输入各种操作命令.Help ——简易帮助信息.exit ——退出本程序.C:/>help* * * * * * * * * 本系统主要的操作命令如下 * * * * * * * * * *1. attrib2. block3. cd4. check5. close6. closeall7. copy8. create9. del 10. dir 11. exit 12. fat13. fseek 14. md 15. open 16. prompt 17. rd 18. read 19. ren 20. rewind 21. type 22. undel 23. uof 24. write 25. Fc 26. replace【注】本系统命令中的英文字母不区分大小写。

1~35 ——了解对应命令功能和使用方法。

quit ——退出帮助系统。

请选择:1attrib <文件名> [±<属性>] ——修改文件属性(r、h、s)。

* * * * * * * * * 本系统主要的操作命令如下 * * * * * * * * * *1. attrib2. block3. cd4. check5. close6. closeall7. copy8. create9. del 10. dir 11. exit 12. fat13. fseek 14. md 15. open 16. prompt 17. rd 18. read 19. ren 20. rewind 21. type 22. undel 23. uof 24. write 25. Fc 26. replace【注】本系统命令中的英文字母不区分大小写。

1~35 ——了解对应命令功能和使用方法。

quit ——退出帮助系统。

请选择:2block <文件名> ——显示文件占用的盘块号。

* * * * * * * * * 本系统主要的操作命令如下 * * * * * * * * * *1. attrib2. block3. cd4. check5. close6. closeall7. copy8. create9. del 10. dir 11. exit 12. fat13. fseek 14. md 15. open 16. prompt 17. rd 18. read 19. ren 20. rewind 21. type 22. undel 23. uof 24. write 25. Fc 26. replace【注】本系统命令中的英文字母不区分大小写。

1~35 ——了解对应命令功能和使用方法。

quit ——退出帮助系统。

请选择:quitC:/>help* * * * * * * * * 本系统主要的操作命令如下 * * * * * * * * * * 1. attrib 2. block 3. cd 4. check 5. close 6. closeall 7. copy 8. create 9. del 10. dir 11. exit 12. fat 13. fseek 14. md 15. open 16. prompt 17. rd 18. read 19. ren 20. rewind 21. type 22. undel 23. uof 24. write 25. Fc 26. replace【注】本系统命令中的英文字母不区分大小写。

1~35 ——了解对应命令功能和使用方法。

quit ——退出帮助系统。

请选择:qC:/>help* * * * * * * * * 本系统主要的操作命令如下 * * * * * * * * * * 1. attrib 2. block 3. cd 4. check 5. close 6. closeall 7. copy 8. create 9. del 10. dir 11. exit 12. fat 13. fseek 14. md 15. open 16. prompt 17. rd 18. read 19. ren 20. rewind 21. type 22. undel 23. uof 24. write 25. Fc 26. replace【注】本系统命令中的英文字母不区分大小写。

1~35 ——了解对应命令功能和使用方法。

quit ——退出帮助系统。

请选择:quC:/>4.7 修改close、type等命令,允许不带文件名参数题目:修改close、type等命令,使其可以使用如下命令形式:(1) close命令改成可用如下形式:close <文件名>——关闭指定文件close——关闭当前操作文件(新增形式)(2) type命令改成可用如下形式:type <文件名>——显示指定文件内容type——显示当前操作文件内容(新增形式)所谓“当前操作文件”,是指上一次使用create、open、write、read、rewind或fseek等命令操作过的文件。

合集下载

线代上机实验报告(3篇)

线代上机实验报告(3篇)

第1篇一、实验目的1. 掌握线性代数基本概念和基本运算方法。

2. 熟悉MATLAB软件在解决线性代数问题中的应用。

3. 提高实际操作能力和编程能力。

二、实验环境1. 操作系统:Windows 102. 软件环境:MATLAB R2019b3. 实验设备:计算机三、实验内容1. 矩阵的基本运算2. 矩阵的秩3. 矩阵的逆4. 线性方程组的求解5. 特征值和特征向量6. 二次型及其标准形四、实验步骤1. 矩阵的基本运算(1)创建矩阵A:A = [1, 2, 3; 4, 5, 6; 7, 8, 9](2)计算矩阵A的转置:A_transpose = A'(3)计算矩阵A的行列式:det_A = det(A)(4)计算矩阵A的逆:A_inverse = inv(A)2. 矩阵的秩(1)创建矩阵B:B = [1, 2, 3, 4; 5, 6, 7, 8; 9, 10, 11, 12](2)计算矩阵B的秩:rank_B = rank(B)3. 矩阵的逆(1)创建矩阵C:C = [1, 2; 3, 4](2)判断矩阵C是否可逆:is_inverse = rank(C) == size(C, 1)(3)如果可逆,计算矩阵C的逆:C_inverse = inv(C)4. 线性方程组的求解(1)创建矩阵A和B:A = [1, 2; 3, 4]B = [5; 6](2)使用MATLAB内置函数求解线性方程组:x = A \ B5. 特征值和特征向量(1)创建矩阵D:D = [4, 1; 2, 3](2)计算矩阵D的特征值和特征向量:[V, D] = eig(D)6. 二次型及其标准形(1)创建矩阵E:E = [2, 1; 1, 3](2)计算矩阵E的特征值和特征向量:[V, D] = eig(E)(3)将二次型E化为标准形:Q = V D inv(V)五、实验结果与分析1. 矩阵的基本运算(1)矩阵A:1 2 34 5 67 8 9(2)矩阵A的转置:1 4 72 5 83 6 9(3)矩阵A的行列式:(4)矩阵A的逆:-1.5 0.50.5 -0.52. 矩阵的秩矩阵B的秩为2。

迷宫问题_上机实验报告

迷宫问题_上机实验报告

一、实验目的1. 熟悉迷宫问题的基本概念和解决方法。

2. 掌握一种或多种迷宫求解算法。

3. 通过编程实践,提高算法设计和编程能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 开发工具:PyCharm三、实验内容迷宫问题是指在一个二维网格中,给定起点和终点,求解从起点到终点的路径。

本实验采用深度优先搜索(DFS)和广度优先搜索(BFS)两种算法进行迷宫求解。

1. 深度优先搜索(DFS)(1)算法原理:DFS算法是一种非确定性算法,其基本思想是沿着一个分支一直走到底,直到无法继续为止,然后回溯到上一个节点,再选择另一个分支继续走。

(2)算法步骤:a. 初始化迷宫,将起点设置为当前节点,将终点设置为目标节点。

b. 创建一个栈,将起点入栈。

c. 当栈不为空时,执行以下操作:a. 弹出栈顶元素,将其标记为已访问。

b. 判断是否为终点,如果是,则输出路径并结束算法。

c. 获取当前节点的上下左右邻居节点,如果邻居节点未被访问,则将其入栈。

d. 当栈为空时,算法结束。

(3)代码实现:```pythondef dfs(maze, start, end):stack = [start]visited = set()path = []while stack:node = stack.pop()if node == end:return path + [node]visited.add(node)for neighbor in get_neighbors(maze, node): if neighbor not in visited:stack.append(neighbor)path.append(node)return Nonedef get_neighbors(maze, node):x, y = nodeneighbors = []if x > 0 and maze[x-1][y] == 0:neighbors.append((x-1, y))if y > 0 and maze[x][y-1] == 0:neighbors.append((x, y-1))if x < len(maze)-1 and maze[x+1][y] == 0:neighbors.append((x+1, y))if y < len(maze[0])-1 and maze[x][y+1] == 0:neighbors.append((x, y+1))return neighbors```2. 广度优先搜索(BFS)(1)算法原理:BFS算法是一种确定性算法,其基本思想是从起点开始,按照一定顺序遍历所有节点,直到找到终点。

操作系统上机报告

操作系统上机报告

操作系统上机报告实验一、匿名管道通信一、实验目的学会创建匿名管道,并且能够利用管道进行进程间的通信。

二、实验内容分别建立名为Parent的单文档应用程序和Child的单文档应用程序作为父子进程,由父进程创建一个匿名管道,实现父子进程向匿名管道写入和读取数据。

三、设计与实现过程本实验在VC6.0上实现▪ A.父进程▪先建一个Parent的单文档应用程序,增加“创建管道”“读取数据”“写入数据”三个菜单,并添加消息响应函数OnPipeCreate(),OnPipeRead(),OnPipeWrite()。

在CParentView类中增加成员变量HANDLE类型的hRead,hWrite,初始化变量,并在析构函数中释放句柄:▪void CParentView::OnPipeWrite()▪{▪if(!CreatePipe(…)) /*创建匿名管道*/▪{▪ /*显示消息“创建管道失败!”*/▪ /*退出*/▪}▪if(!CreateProcess(…)) /*创建子进程*/▪{▪ /*关闭句柄hRead、hWrite*/▪ /*显示消息“创建子进程失败!”*/▪ /*退出*/▪}▪}▪void CParentView::OnPipeRead()▪{▪ /*定义一个字符数组,用于存放读取的数据*/▪if(!ReadFile(…)) /*读取数据*/▪{▪ /*显示消息“读取数据失败!”*/▪ /*退出*/▪}▪/*打印读取的数据*/▪/*退出*/▪void CParentView::OnPipeWrite()▪{▪/*定义一个字符数组,用于存放写入的数据*/▪if(!WriteFile(…)) /*写入数据*/▪ /*显示消息“写入数据失败!”*/▪ /*退出*/▪}▪}▪ B.子进程▪建一个Child的单文档,在CChildView中增加两个成员HANDLE 型的成员变量hRead,hWrite,并添加消息响应函数OnPipeRead(),OnPipeWrite(),再添加虚函数OnInitialUpdate(),并在析构函数中释放句柄。

windows7实验报告

windows7实验报告

windows7实验报告篇一:Win7操作实验报告WINDOWS 7 上机实验报告七在,盘根目录上建立一个文件夹,文件夹的名字为自己的名字+“_win7_09”,完成后文件夹名如“张三_win7_09”。

完成作业后将所有结果(屏幕截图)放在文件夹下,并将文件夹压缩成一个压缩文件上传。

,、设置在不同窗口中打开不同的文件夹,将窗口画面保存为“打开文件夹的窗口设置.jpg”。

,、设置在导航窗格是显示所有文件夹,将窗口画面保存为“导航窗格.jpg”。

,、设置显示隐藏的文件、文件夹和驱动器,将窗口画面保存为“显示隐藏的文件.jpg”。

,、在桌面使用日历工具,将窗口画面保存为“小工具设置.jpg”。

,、设置删除文件时显示删除确认对话框。

将窗口画面保存为“删除文件设置.jpg”。

,、修改计算机显示颜色为,,位色,将窗口画面保存为“显示颜色设置.jpg”。

,、设置计算机显示文本自定义为130%,将窗口画面保存为“自定义显示文本设置.jpg”。

,、打开添加输入法对话框,将窗口画面保存为“添加输入法.jpg”。

,、设置win7桌面背景,任意选择一副图片,设置图片位置为平铺,将该对话框截图,保存文件名为“设置桌面背景.jpg”。

篇二:计算机基础1实验报告win7基本操作《大学计算机基础?》课程实验报告学院年级专业姓名学号任课教师上机地点实验教师(以上由学生填写)西南大学计算机与信息科学学院计算机基础教育系2015年10 月18 日实验成绩记载课程实验报告一一、实验题目:Win7的基本操作、文件管理与控制面板的使用二、实验目的:1.掌握桌面主题的设置2. 掌握任务栏的使用和设置3. 掌握任务切换的方法4. 掌握?开始?菜单的组织5.掌握快捷方式的创建6. 掌握文件夹的显示方式7.掌握文件夹和文件的创建/属性查看和设置 8.熟悉文件和文件夹的搜索9.体验文件和文件夹的压缩存储与解压缩三、实验主要内容及过程(实验主要内容的介绍、主要的操作步骤)1.在本地机上建立文件夹,对文件夹进行复制,设为只读并创建快捷方式a.点击硬盘D,右击鼠标新建文件夹b.选择?复制?对文件夹进行操作c.选中新建文件夹,选择?属性???常规??勾选?隐藏?使文件夹隐藏,选?只读?使文件夹显示。

计算机操作系统上机实验报告

计算机操作系统上机实验报告

计算机操作系统(cāo zuò xì tǒnɡ)上机实验报告
云南师范大学信息(xìnxī)学院
实验报告
学号:134100010姓名:姜兴玲班级:计科13A 课程名称:操作系统实验名称:存储管理
实验性质:①综合性实验②设计性实验③验证性实验试验时间:2015年5月5日试验地点:睿智4栋212
本试验所用的设备:计算机一台
实验目的
了解计算机的存储并学会管理。

实验内容及过程:
1.右键单击工具栏,打开任务管理器查看性能来了解CPU
使用和页面文件使用。

2、单击开始设置控制面板系统
单击高级然后选择性能的设置来设置系统、管理系统
3、性能和维护打开控制面板切换到分类视图,选择性能和维护来进行操作。

小结:
通过对控制面板的熟悉我们能更好的了解计算机并且能对存储管理更好的了解和学习!
任课教师评语
教师签字: 年月日
注:每学期至少一次设计性实验。

每学期结束请任课教师按时按量统一(tǒngyī)交到教学秘书处
内容总结
(1)计算机操作系统上机实验报告。

操作系统上机实验

操作系统上机实验

一、操作系统环境(Windows 2000 系统管理)背景知识:Windows 2000 Professional的“管理工具”中集成了许多系统管理工具,利用这些工具,管理员可以方便地实现各种系统维护和管理功能。

这些工具都集中在“控制面板”的“管理工具”选项下,用户和管理员可以很容易地对它们操作和使用。

在默认情况下,只有一些常用工具——如服务、计算机管理、事件查看器、数据源 (ODBC) 、性能和组件服务等——随Windows 2000系统的安装而安装。

1) 服务启动和停止由Windows系统提供的各项服务。

2) 计算机管理器管理磁盘以及使用其他系统工具来管理本地或远程计算机。

3) 事件查看器显示来自于Window和其他程序的监视与排错信息。

例如,在“系统日志”中包含各种系统组件记录的事件,如使用驱动器失败或加载其他系统组件;“安全日志”中包含有效与无效的登录尝试及与资源使用有关的事件,如删除文件或修改设置等,本地计算机上的安全日志只有本机用户才能查看;“应用程序日志”中包括由应用程序记录的事件等等。

4) 数据源 (ODBC) 添加、删除以及配置ODBC数据源和驱动程序。

5) 性能显示系统性能图表以及配置数据日志和警报。

6) 组件服务配置并管理COM+ 应用程序。

另一些工具则随系统服务的安装而添加到系统中,例如:1) Telnet服务器管理查看以及修改Telnet服务器设置和连接。

2) Internet服务管理器管理IIS、Internet和Intranet Web站点的Web服务器。

3) 本地安全策略查看和修改本地安全策略,诸如用户权限和审计策略。

实验类型:验证性实验目的1) 了解和学习Windows系统管理工具及其使用;2) 熟悉Windows系统工具的内容和应用;由此,进一步熟悉Windows操作系统的应用环境。

工具/准备工作在开始本实验之前,请回顾教科书的相关内容。

需要准备一台运行Windows 2000 Professional操作系统的计算机。

操作系统实验报告(2)

计算机实验报告(2)操作系统部分一、基本要求和内容1.了解操作系统的基本功能.2.认识WINDOWS桌面的各部分组成,掌握基本的桌面操作.3.掌握各种基本操作对象的操作方法.4.学会使用WINDOWS帮助.5.了解基本的DOS命令和基本的命令行操作方法.6.熟练掌握文件操作方法.7.掌握对图标的操作方法(移动/拖曳/单击/双击/右击等等).8.熟悉资源管理器窗口和”我的电脑”(“计算机”)窗口.9.掌握启动控制面板的方法,了解控制面板的主要功能,掌握使用控制面板对软硬件进行设置的方法。

10.掌握“运行”对话框的使用方法。

11.了解“任务管理器”的简单使用方法。

12.熟悉“画图”“记事本”“计算器”“写字板”等常用应用程序。

13.开始POWERPOINT的基本使用.二、通过上机实验解决下列问题1. CTRL+ALT+DEL 组合键的功能是:打开【任务管理器】窗口2.全角和半角的区别是:半角是一个字符,全角是两个字符3. CTRL+A组合键的功能是:全部选中CTRL+C组合键的功能是:复制CTRL+V组合键的功能是:粘贴CTRL+X组合键的功能是:剪切CTRL+Z组合键的功能是: 撤销ALT+PRINTSCREEN组合键的功能是:复制当前窗口、对话框或其他对象到剪贴板中任务栏隐藏时通过什么组合键可以看到任务栏:Ctrl+Alt+Del进行窗口切换的组合键是:ALT+Tab4.“画图”应用程序默认保存文件类型是:*.png“记事本”应用程序默认保存文件类型是: *.txt.DOC是什么文件类型Word文档.EXE是什么文件类型可执行文件(程序文件)5.鼠标的基本操作方法包括:指向、单击、双击和拖动鼠标指针附近有漏沙钟表示当前的状态是: 沙漏是等待,因为程序先是从硬盘上读取,然后再到内存,芯片在其期间进行运算,再没真正的打开程序时,系统认为它没正真的启动6.资源管理器左下角窗格(即”文件夹”窗口)显示的是:系统中的所有资源以分层树型的结构显示出来7.一般情况下,对文件进行重命名时,不应该修改文件的扩展名,因为: 如果修改了后缀名则会导致文件属性更改,文件无法打开8.文件的属性主要包括哪些:“只读”、“存档”、“隐藏”9.选择多个连续的文件可以采用哪些方法:使用鼠标先选定第一个文件或文件夹,然后按住Shift键,用鼠标单击最后一个文件或文件夹,这样在第一个对象和最后一个对象之间的所有文件或文件夹将全部被选中,包括第一个和最后一个文件或文件夹。

学生上机实验报告模板

学生上机实验报告模板1. 实验目的本次实验的目的是XXXXXXXX。

2. 实验环境- 操作系统:Windows 10- 开发工具:Visual Studio Code- 编程语言:Python 3.9.53. 实验内容本次实验需要完成以下任务:1. XXXXXXXX2. XXXXXXXX3. XXXXXXXX4. 实验步骤步骤一:XXXXXXX详细描述实验的第一步骤,包括相关代码和操作说明。

import numpy as npa = np.zeros((3, 3))print(a)步骤二:XXXXXXX详细描述实验的第二步骤,包括相关代码和操作说明。

import pandas as pddata = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky'],'Age': [28, 34, 29, 42]}df = pd.DataFrame(data)print(df)步骤三:XXXXXXX详细描述实验的第三步骤,包括相关代码和操作说明。

import matplotlib.pyplot as pltx = np.arange(0, 2 * np.pi, 0.1)y = np.sin(x)plt.plot(x, y)plt.show()5. 实验结果本次实验结果如下:- 步骤一执行结果为:[[0. 0. 0.][0. 0. 0.][0. 0. 0.]]- 步骤二执行结果为:Name Age0 Tom 281 Jack 342 Steve 293 Ricky 42- 步骤三执行结果为:一幅展示正弦函数的图像。

6. 实验总结通过本次实验,我掌握了XXXXXXXX,并且熟悉了XXXXXXXX。

在实验过程中,我遇到了一些问题,如XXXXXXXX,但通过查询资料和请教同学,最终成功解决了这些问题。

操作系统PV操作实验报告

操作系统PV操作实验报告计算机科学与工程系《计算机操作系统》实验报告实验名称:_ PV操作成绩:___________专业班级:姓名:学号:实验日期 : 2012 年 03月19日软件环境:Windows XP~开发工具:vc++6.0硬件环境:CPU: interl 硬盘: 150 G 内存: 512 M 一、实验目的了解并掌握进程的同步和互斥二、实验内容选用C语言编写程序,利用P,V操作解决单生产者和单消费者问题。

三、实验要求1.分别改造P操作和V操作及生产、消费程序;2.在main()中利用循环通过相关的控制量,分别激活生产者和消费者;、3.为了简单起见,生产者和消费者只对单缓区进行操作,如:生产者将数字“1”填入缓冲区,而消费者将数值“0”填入缓冲区。

三、实验主要界面、程序及相关说明 1.主要程序代码Var mutex,empty,full: semaphore:=1,n,0;buffer:array[0,…,n-1] of item;in,out: integer:=0,0;beginparbeginproceducer: begin repeatproducer an item nextp;wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1) mod n;signal(mutex);signal(full);until false;endconsumer: beginrepeatwait(full);wait(mutex);nextc:=buffer(out); out:=(out+1) mod n; signal(mutex);signal(empty);consumer the item in nextc;until false;endparendend2.运行主界面如图三—2所示图三—23.相关说明假定在生产者和消费者之间的公用缓冲池中,具有n个缓冲区,这时可利用互斥信号量mutex实现诸进程对缓冲池的互斥使用。

操作系统上机练习报告

操作系统上机实验报告班级:学号:姓名:实验一进程的建立【实验目的】创建进程及子进程在父子进程间实现进程通信【实验软硬件环境】VC++6.0 或者Linux 操作系统【实验内容】创建进程并显示标识等进程控制块的属性信息;显示父子进程的通信信息和相应的应答信息。

(进程间通信机制任选)【实验程序及分析】在linux操作系统桌面建立test1.c程序文件如下:#include<unistd.h>#include<string.h>#include<stdlib.h>#include<stdio.h>main(){char father[] = {"the message is from father!"};char child[] = {"the message is from child!"};int chan1[2],chan2[2];char buff[50];pipe(chan1);pipe(chan2);int F = fork();printf("%d ",F);if(F>0){sleep(3);printf("this is father progress\n");close(chan1[0]);// close chan1 readclose(chan2[1]);// close chan2 writewrite(chan1[1],father,strlen(father));close(chan1[1]);//sleep(10);read(chan2[0],buff,50);sleep(3);printf("Father process: %s\n",buff);printf("this father process whose ID is: %d\n",getpid());}else if (F==0){printf("this is child progress\n");//close(chan1[1]);//close chan1 writeclose(chan2[0]);//close chan2 readread(chan1[0],buff,50);sleep(3);printf("Child process: %s\n",buff);write(chan2[1],child,strlen(child));close(chan2[1]);printf("this child process whose ID is: %d\n",getpid());printf("this child process whose father's ID is: %d\n",getppid()); }else{"creat fork() error!\n";}}产生结果如下:【实验心得体会】1、通过本次实验,我认识到管道通信在进程之间的应用,了解并掌握了进程建立与通信的相关机制;2、熟悉了Linux操作系统的一些简单操作,并体会到了Linux操作系统的设计理念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档