合肥师范学院操作系统 实验项目二

合集下载

操作系统实验指导书[2015春季学期]

操作系统实验指导书[2015春季学期]

操作系统实验指导书计算机科学与软件学院2015年实验一进程控制与描述一、实验目的通过对Windows XP编程,进一步熟悉操作系统的基本概念,较好地理解Windows XP的结构。

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows XP进程的“一生”。

二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Windows XP,Visual C++ 6.0专业版或企业版。

三、实验内容和步骤第一部分Windows 编程Windows XP可以识别的程序包括控制台应用程序、GUI应用程序和服务应用程序。

本实验中主要用到的是控制台应用程序和GUI应用程序。

1、简单的控制台应用程序创建一个名为“Hello”的应用程序, 在“开始”菜单中单击“程序”-“附件”-“记事本”命令,将程序键入记事本中,并把代码保存为1-1.cpp。

程序1-1 Windows XP的GUI应用程序#include <iostream>void main(){Std::cout<<”Hello, Windows XP”<<std::endl;}在“命令提示符”窗口运行CL.EXE,产生1-1.EXE文件:C:\> CL 1-1.cpp运行1-1.EXE程序,运行结果是:(如果运行不成功,则可能的原因是什么?)________________________________________________________________________________________________________________________________________2、GUI应用程序Windows XP Professional下的GUI应用程序,使用Visual C++编译器创建一个GUI应用程序,代码中包括了WinMain()方法,该方法GUI类型的应用程序的标准入口点。

操作系统实验报告模板

操作系统实验报告模板

操作系统实验报告模板一、实验目的本次操作系统实验的主要目的是通过实际操作和观察,深入理解操作系统的核心概念和功能,包括进程管理、内存管理、文件系统、设备管理等方面。

同时,培养学生的动手能力、问题解决能力和团队合作精神,提高对操作系统原理的掌握程度和实际应用能力。

二、实验环境1、操作系统:_____(具体操作系统名称及版本)2、开发工具:_____(如编译器、调试器等)3、硬件环境:_____(处理器型号、内存大小等)三、实验内容(一)进程管理实验1、进程创建与终止使用系统调用创建多个进程,并观察进程的创建过程和资源分配情况。

实现进程的正常终止和异常终止,观察终止时的系统行为。

2、进程调度研究不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等。

通过编程模拟实现这些调度算法,并比较它们的性能。

3、进程同步与互斥利用信号量、互斥锁等机制实现进程之间的同步与互斥。

编写多进程程序,模拟生产者消费者问题、读者写者问题等经典同步场景。

(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法、最坏适应算法等。

观察内存分配和回收的过程,分析算法的优缺点。

2、虚拟内存了解虚拟内存的概念和实现原理。

通过设置页表、进行页面置换等操作,模拟虚拟内存的管理过程。

(三)文件系统实验1、文件操作实现文件的创建、打开、读写、关闭等基本操作。

研究文件的属性(如权限、大小、创建时间等)的设置和获取。

2、目录管理创建、删除目录,遍历目录结构。

实现文件和目录的重命名、移动等操作。

(四)设备管理实验1、设备驱动程序了解设备驱动程序的结构和工作原理。

编写简单的设备驱动程序,实现对特定设备的控制和数据传输。

2、设备分配与回收研究设备分配的策略,如独占式分配、共享式分配等。

实现设备的分配和回收过程,观察系统的资源利用情况。

四、实验步骤(一)进程管理实验步骤1、进程创建与终止编写程序,使用系统调用创建指定数量的进程。

操作系统(二)实验报告_上海大学计算机与科学系

操作系统(二)实验报告_上海大学计算机与科学系

操作系统(二)实验报告姓名:米博计算机工程与科学学院实验四 Linux文件系统实验一. 实验目的掌握操作系统中文件分类的概念。

了解Linux文件系统管理文件的基本方式和特点。

学会使用Linux文件系统的命令界面和程序界面的基本要领。

二.实验准备复习操作系统中有关文件系统的知识,熟悉文件的类型、i节点、文件属性、文件系统操作等概念。

熟悉《实验指导》第五部分“文件系统的系统调用”。

了解Linux文件系统的特点、分类。

阅读例程中给出的相应的程序段。

三.实验方法运行命令界面的各命令并观察结果。

用vi编写c程序(假定程序文件名为prog1.c)编译程序$gcc –o prog1.o prog1.c或$cc –o prog1.o prog1.c运行$./prog1.o观察运行结果并讨论。

四.实验内容及步骤1. 用shell命令查看Linux文件类型。

思考:Linux文件类型有哪些?用什么符号表示。

答:文件类型:没有后缀的文件、可执行文件、可读写的文本文件。

.conf —某个程序的配置文件.c — C语言程序源码文件.so —动态链接库文件.tcl — TCL脚本文件.cpp — C++语言程序源码文件.h — C或C++语言的头文件.o —程序对象文件.pl — Perl脚本文件.sh —shell批处理文件2. 用shell命令了解Linux文件系统的目录结构。

执行$ cd /lib$ ls -l|more看看/lib目录的内容,显示的函数都是系统函数。

再看看/etc,这里都是系统设置用的配置文件:/bin中是可执行程序;/home下包括了每个用户主目录。

3. 用命令分别建立硬链接文件和符号链接文件。

通过ls –il命令所示的inode、链接计数观察它们的区别。

找找一个其他目录中的文件,如:/home/zzl/mytese.c执行$ ln /home/zzl/mytest.c myt.c (建立硬链接文件)$ ln –s /home/zzl/mytest.c myt2.c (建立符号链接文件)思考:建立硬链接文件和建立符号链接文件有什么区别,体现在哪里?答:硬链接文件就是给文件取另外一个名字,链接使用inode是与元文件相同的。

合肥师范学院计算机科学与技术系汇编语言实验报告

合肥师范学院计算机科学与技术系汇编语言实验报告

实验一汇编语言的源程序的输入一实验目的1.初步了解汇编语言源程序的书写格式和要求。

2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。

3.熟练掌握在计算机上编辑、汇编、连接及运行汇编语言程序的方法。

二实验环境微型计算机一台DOS或WINDOWS操作系统,MASM开发套件。

三实验要求为运行汇编语言程序至少要在磁盘上建立以下文件:(1)编辑程序,如EDIT.EXE,用来编辑汇编源程序(2)汇编程序,如MASM.EXE,将汇编源程序汇编生成目标代码文件。

(3)连接程序,如LINK.EXE,连接目标代码程序和库函数代码生成可执行程序文件。

(4)调试程序,如DEBUG.EXE。

四实验内容上机编辑、汇编、连接、运行下列汇编源程序:assume cs:codecode segments1: db 'Good,better,best,','$'s2: db 'Never let it rest,','$'s3: db 'Till good is better,','$'s4: db 'And better,best.','$'s: dw offset s1,offset s2,offset s3,offset s4row: db 2,4,6,8start: mov ax,csmov ds,axmov bx,offset smov si,offset rowmov cx,4ok: mov bh,0mov dh,[si]mov dl,0mov ah,2int 10hmov dx,[bx]mov ah,9int 21hadd bx,2inc siloop okmov ax,4c00hint 21hcode endsend start五实验步骤一、将edit、masm、link等程序拷贝在C盘根目录下鼠标左键单击开,运行,键入command命令,进入DOS方式。

操作系统实验指导书auts

操作系统实验指导书auts

计算机系实验系列指导书适用于计算机系相关专业安徽工程科技学院计算机系操作系统课题组编写前言《计算机操作系统》是计算机系相关专业本科生的一门必修课程,该课程是后续课程计算机网络等课程的先修课程。

计算机操作系统是计算机技术和管理技术的结合,通过学习使学生掌握计算机操作系统的组成及基本设计原理,基本概念和术语;了解计算机操作系统的发展特点、设计方法以及相关的应用技巧和算法。

操作系统是计算机系统的基本组成部分,是整个计算机系统的基础和核心。

计算机操作系统课程是理论性和实践性都较强的课程,具有概念多、较抽象、涉及面广的特点。

操作系统的实验选择UNIX或Linux环境,用C语言编程,要求熟悉UNIX或Linux操作系统的命令,同时具有一定的C语言或其它语言的编程能力。

本课程实验总体介绍如下:1、本课程上机实验的任务:通过该实验真正认识多进程、多线程、微核、死锁、文件系统、缓存等概念及实现原理;在充分理解原理和算法的基础上,发挥学生自我创造力,鼓励并创造机会让学生提出新的算法或实现。

课程实验通过应用层编程调用系统接口加深对进程、内存、文件和设备等功能的理解。

具体为实验1-5。

2、本课程上机实验重点与难点:并发控制,内核代码的分析与设计。

3、本课程上机实验运用软件名称:Linux Red Hat 9.0 , vi编辑器、gcc编译器,4、总学时:实验学时:10学时5、参考资料:计算机操作系统. 汤子瀛,西安电子科技大学出版社(第3版)《Linux设备驱动程序》第二版Alessandro Rubini & Jonathan Corbet编著魏永明骆刚等译中国电力出版社2002年11月第一版。

《Linux操作系统内核分析》陈莉君编人民邮电出版社第一版。

《Linux操作系统内核实习》 Gary Nutt 著机械工业出版社。

目录----------------------------------------------------------4---------------------------------------------------------13 ---------------------------------------------------------20---------------------------------------------------------28---------------------------------------------------------38实验一熟悉LINUX环境和命令(一)LINUX常用命令简介实验目的1、了解UNIX/LINUX的命令及使用格式。

实验报告七 操作系统安全配置(安徽农业大学)

实验报告七  操作系统安全配置(安徽农业大学)

实验七操作系统安全配置姓名:学号:班级:2班实验组别:同组实验者姓名:指导教师:章恒日期:成绩:【实验报告要求】1.使用软件对一台操作系统是Windows 2000 Server的计算机进行风险评估,并写出风险评估报告。

实验一网络安全扫描工具Nessus的使用1、网络安全扫描工具Nessus的安装。

(2)配置扫描策略。

如下图所示。

(3)新建一个扫描任务,并开始扫描。

(4)查看扫描报告3、扫描主机和网络。

利用Neessus的功能,对指定的主机和学生所在的网络进行服务和端口开放等情况的扫描。

信息安全风险评估软件RiskAssess的使用【实验前需要学习掌握的知识】1、复习信息安全风险评估的基本过程,了解信息安全风险评过程的每一个阶段需要完成的工作;2、掌握矩阵法和相乘法两种常用的安全风险计算方法。

【实验目的】1、掌握信息安全风险评估软件RiskAssess的安装方法和主要功能;2、利用信息安全风险评估软件RiskAssess完成一个信息安全风险评估实例。

【实验内容】1、风险评估软件RiskAssess的安装打开安装盘,运行可执行文件Setup.exe,进入软件安装界面,如下图所示。

根据安装界面提示,完成软件安装。

2、熟悉RiskAssess的主要功能(1)建立一个新的评估工程,如下图所示。

(2)选择“风险评估准备”——“风险评估向导”,如下图所示。

根据界面提示,完成风险评估准备工作。

(3)评估要素的识别。

对资产识别、脆弱性识别、威胁识别进行填写。

如下图所示。

(4)选择风险评估方法,矩阵法或相乘法。

(5)风险管理。

完成已有安全措施确认,风险处理计划并生成阶段文档。

(6)评估文档管理。

利用此功能可以实现对评估项目所有文档的管理。

3、RiskAssess的实际应用。

使用RiskAssess,完成课堂讲授的信息安全风险评估实例——企业“数字兰曦”的信息安全风险评估工作。

实验三简单网络扫描器的设计与实现。

【实验前需要学习掌握的知识】1、复习TCP、UDP、IP和ICMP 数据报的报文格式,复习TCP 连接建立和终止的过程;2、复习基本的套接字网络编程方法;3、掌握利用Libnet接口函数库构造网络数据包的方法;4、了解常用网络扫描器的主要功能和实现方法。

操作系统Lab2实验报告

操作系统Lab2实验报告

深入学习 操作系统的原理和实 现细节,包括进程通 信、死锁处理、虚拟 化技术等。
实践应用
希望将所学的操作系 统知识应用到实际项 目中,提高自己的实 践能力。
持续学习
随着技术的不断发展 ,操作系统也在不断 更新和进步,需要保 持持续学习的态度。
探索新领域
对于新兴的操作系统 领域,如云操作系统 、物联网操作系统等 ,也希望有所涉猎和 探索。
学生将了解操作系统内核的组成和功能,以及操作系统如何通过内核 实现各种基本功能。
学生将通过实验深入了解操作系统的内部实现细节,提高自己对操作 系统设计和实现的认知水平。
02
实验内容
进程管理实验
总结词
理解进程状态及其转换、进程控制块PCB的组成、进程调度算法。
详细描述
通过实验,我们深入了解了进程的概念、状态及其转换。进程控制块PCB的组成,包括进程标 识符、进程状态、优先级、CPU寄存器内容等信息。此外,我们还学习了进程调度算法,如先 来先服务、最短作业优先、优先级调度等,并进行了模拟实验。
THANKS
感谢观看
操作系统Lab2实验 报告
汇报人:
202X-01-08
目录
• 实验目的 • 实验内容 • 实验结果与分析 • 问题与改进建议 • 总结与展望
01
实验目的
理解操作系统的基本概念
01
掌握核心概念
02
操作系统是计算机系统的核心软件,负责管理计算机硬件和软件资源 ,为用户提供便利的操作界面和高效的服务。
03
操作系统具有并发性、虚拟性、异步性和随机性的特点,这些特点决 定了操作系统在计算机系统中的重要地位和作用。
04
操作系统的基本功能包括进程管理、内存管理、文件管理和设备管理 ,这些功能是操作系统实现其核心目标的基础。

合肥工业大学操作系统实验报告

合肥工业大学操作系统实验报告

操作系统实验报告班级:计算机科学与技术姓名:学号:实验3 进程的创建一、实验目的练习使用EOS API 函数CreateProcess 创建一个进程,掌握创建进程的方法,理解进程和程序的区别。

调试跟踪CreateProcess 函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。

二、实验过程记录1./*Hello.c*/#include "EOSApp.h"int main(int argc, char* argv[]){int i;for (i = 1; i <= 5; i++) {printf("Hello,world! %d\n", i);Sleep(1000);}printf("Bye-bye!\n");return 0;}作用:测试软盘镜像中的程序。

输出"Hello,world! I”并循环输出五次,每次挂起1000ms,最后输出” Bye-b ye!”。

结果:2./*NewProc.c*/#include "EOSApp.h"int main(int argc, char* argv[]){STARTUPINFO StartupInfo;PROCESS_INFORMATION ProcInfo;ULONG ulExitCode; // 子进程退出码INT nResult = 0; // main 函数返回值。

0 表示成功,非0 表示失败。

#ifdef _DEBUG__asm("int $3\n nop");#endifprintf("Create a process and wait for the process exit...\n\n");//// 使子进程和父进程使用相同的标准句柄。

//StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE);StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.StdError = GetStdHandle(STD_ERROR_HANDLE);//// 创建子进程。

15104210xx xx -实验二

15104210xx xx -实验二
实验报告
课程名称:移动设备平台开发
院系:计Байду номын сангаас机学院
专业班级:软件工程
学号:
学生姓名:
开课时间:2017至2018学年第一学期
合肥师范学院计算机学院
《移动设备平台开发》课程验证性实验报告
实验名称
Activity生命周期
实验时间
2017.9.14
学生姓名
实验地点
实验室
同组人员

专业班级
软件一班
1、实验目的
(4)设Override七种回调方法;
(3)打开Logcat置过滤器;
(5)查看Log打印信息;
4、实验步骤
(1)创建TestActivity项目,并不勾选自动创建activity;
(2)自己手动地创建一个activity命名为TestActivity继承Activity类;
(3)在AndroidManifest.xml中注册自定义的activity类;
(1)了解Activity生命周期;
(2)掌握Activity生命周期中的七个回调方法;
(3)掌握日志工具的使用;
2、实验主要仪器设备和材料:
硬件:微型计算机
软件:Eclipse、JDK、SDK、ADT
3、实验内容和原理:
(1)创建TestActivity类;
(2)AndroidManifest.xml注册TestActivity类
(4)在logcat中进行信息过滤设置;
(5)运行程序,进行测试,在logcat中查看输出信息
5、实验现象、实验数据记录:
(1)注册新的acticity
(2)Logcat中设置信息过滤
(3)第一次直接运行结果

合肥学院TCPIP协议分析及应用实验报告 (2)

合肥学院TCPIP协议分析及应用实验报告 (2)

计算机科学与技术系实验报告专业名称网络工程课程名称 TCP/IP协议项目名称 DNS班级学号姓名同组人员实验日期 2014.12一、实验目的与要求:1.实验目的(1)掌握DNS的报文格式(2)掌握DNS的工作原理(3)掌握DNS域名空间的分类(4) 理解DNS高速缓存的作用2.实验环境拓扑结构源主机: F的IP地址:172.16.0.26 目的主机:A的IP地址:172.16.0.21 B的IP地址:172.16.0.22 C的IP地址:172.16.0.23 D的IP地址:172.16.0.24 E的IP地址:172.16.0.25 默认网关和DNS:172.16.0.254二、实验内容1.实验原理(1)DNS报文格式标识标志问题数资源记录数授权资源记录数额外资源记录数查询问题回答(资源记录数可变)授权(资源记录数可变)额外信息(资源记录数可变)(2)Internet域名空间的分类在Internet中,域名空间划分为三个部分:类属域、国家域和反向域。

1)类属域:按照主机的类属行为定义注册的主机。

类属域的顶级符号包括com、edu、gov、int、mil、net、org等。

2)国家域:按照国家定义注册的主机。

国家域的顶级符号包括cn、us、zw等。

3)反向域:把一个地址映射为名字。

(3)DNS高速缓存当服务器向另一个服务器请求映射并收到它的响应时,它会在把结果发送给客户之前,把这个信息存储在它的DNS高速缓存中。

若同一客户或另一个客户请求同样的映射,它就检查高速缓存并解析这个问题。

高速缓存减少了查询时间,提高了效率。

2.实验流程概述1)在机房调试好需做的拓扑结构2)根据拓扑结构,配置小组成员各自电脑的IP地址,子网掩码和网管3)根据课件中的具体实验要求和实验步骤进行操作3.实验具体步骤与实验结果本实验将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。

现仅以主机A和B为例,说明实验步骤。

合肥师范学计算机网络实验指导书

合肥师范学计算机网络实验指导书

计算机网络实验指导书实验一基本网络命令 (3)实验二局域网组网 (6)实验三交换机基本配置 (9)实验四路由器基本配置 (12)实验五虚拟局域网VLAN (16)实验六路由协议配置 (21)实验七利用三层交换机实现不同VLAN间通信 (25)实验八广域网实验 (31)实验九交换机端口聚合 (35)实验十快速生成树配置 (38)实验十一 WINDOWS 2000网络服务配置 (41)实验十二代理服务的配置与管理 (43)实验一基本网络命令一、实验目的1.了解网络命令的基本功能2.掌握基本网络命令的使用方法3.握使用网络命令观察网络状态的方法。

二、实验环境4.硬件环境:配备网卡的计算机,通过集线器或交换机互联。

5.软件环境:WINDOWS 2000。

三、实验内容在本实验中对WINDOWS环境下的基本网络命令的使用方法进行介绍,并给出具体范例。

四、实验步骤范例一、PING命令PING命令只有在安装了TCP/IP协议后才可以使用。

PING命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。

当网络出现问题时,可以用这个命令来预测故障机确定故障源。

如果执行PING命令不成功,则可以预测故障出现在以下几个方面:网线是否连通、网络适配器是否正确、IP地址是否可用等。

但PING成功是证明当前主机与目的主机间存在一条连通的路径。

(1)PING命令的主要参数如下:--t:使当前主机不断地向目的主机发送数据,直到按ctrl+c中断--n count:发送count指定的ECHO数据包数,默认值为4。

--i TTL:将“生存时间”字段设置为TTL指定的值。

--w timeout :指定超时间间隔(单位为毫秒),默认为1000。

(2)通常用PING命令验证本地计算机和网络中计算机间的路由是否存在,即PING目标主机的IP地址看它是否响应:ping IP-address (3)下面是用PING命令测试网络连接是否正常的主要步骤:1)ping 127.0.0.1。

合肥工业大学操作系统实验报告

合肥工业大学操作系统实验报告

操作系统实验报告班级:计算机科学与技术姓名:学号:实验3 进程的创建一、实验目的练习使用EOS API 函数CreateProcess 创建一个进程,掌握创建进程的方法,理解进程和程序的区别。

调试跟踪CreateProcess 函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。

二、实验过程记录1./*Hello.c*/#include "EOSApp.h"int main(int argc, char* argv[]){int i;for (i = 1; i <= 5; i++) {printf("Hello,world! %d\n", i);Sleep(1000);}printf("Bye-bye!\n");return 0;}作用:测试软盘镜像中的程序。

输出"Hello,world! I”并循环输出五次,每次挂起1000ms,最后输出” Bye-bye!”。

结果:2./*NewProc.c*/#include "EOSApp.h"int main(int argc, char* argv[]){STARTUPINFO StartupInfo;PROCESS_INFORMATION ProcInfo;ULONG ulExitCode; // 子进程退出码INT nResult = 0; // main 函数返回值。

0 表示成功,非0 表示失败。

#ifdef _DEBUG__asm("int $3\n nop");#endifprintf("Create a process and wait for the process exit...\n\n");//// 使子进程和父进程使用相同的标准句柄。

//StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE);StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.StdError = GetStdHandle(STD_ERROR_HANDLE);//// 创建子进程。

安徽大学操作系统试验二

安徽大学操作系统试验二

操作系统实验银行家算法班级:软件工程学号:E21314003 姓名:李世实验目标1.理解银行家算法。

2.掌握进程安全性检查的方法及资源分配的方法。

3.加深了解有关资源申请、避免死锁等概念。

4.体会和了解死锁和避免死锁的具体实施方法。

实验要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。

实验代码:#include <iostream.h>int Available[100];int Max[50][100];int Allocation[50][100];int Need[50][100];int Request[50][100];int Finish[50];int p[50];intm,n; //M个进程,N类资源int Safe(){inti,j,l=0;int Work[100]; //可利用资源数组for (i=0;i<n;i++)Work[i]=Available[i];for (i=0;i<m;i++)Finish[i]=0;for (i=0;i<m;i++){if (Finish[i]==1)continue;else{for (j=0;j<n;j++){if (Need[i][j]>Work[j])break;}if (j==n){Finish[i]=1;for(int k=0;k<n;k++)Work[k]+=Allocation[i][k];p[l++]=i;i=-1;}else continue;}if (l==m){cout<<"系统是安全的"<<'\n';cout<<"系统安全序列是:\n";for (i=0;i<l;i++){cout<<p[i];if (i!=l-1)cout<<"-->";}cout<<'\n';return 1;}}}int main(){inti,j,mi;cout<<"输入进程的数目:\n";cin>>m;cout<<"输入资源的种类:\n";cin>>n;cout<<"输入每个进程最多所需的各类资源数,按照"<<m<<"x"<<n<<"矩阵输入\n";for (i=0;i<m;i++)for(j=0;j<n;j++)cin>>Max[i][j];cout<<"输入每个进程已经分配的各类资源数,按照"<<m<<"x"<<n<<"矩阵输入\n";for (i=0;i<m;i++){for(j=0;j<n;j++){cin>>Allocation[i][j];Need[i][j]=Max[i][j]-Allocation[i][j];if (Need[i][j]<0){cout<<"你输入的第"<<i+1<<"个进程所拥有的第"<<j+1<<"个资源错误,请重新输入:\n";j--;continue;}}}cout<<"请输入各个资源现有的数目:\n";for (i=0;i<n;i++)cin>>Available[i];Safe();while (1){cout<<"输入要申请的资源的进程号:(第一个进程号为0,第二个进程号为1,依此类推)\n";cin>>mi;cout<<"输入进程所请求的各个资源的数量\n";for (i=0;i<n;i++){if (Request[mi][i]>Need[mi][i]){cout<<"所请求资源数超过进程的需求量!\n";return 0;}if (Request[mi][i]>Available[i]){cout<<"所请求资源数超过系统所有的资源数!\n";return 0;}}for (i=0;i<n;i++){Available[i]-=Request[mi][i];Allocation[mi][i]+=Request[mi][i];Need[mi][i]-=Request[mi][i];}if (Safe())cout<<"同意分配请求~~~\n";else{cout<<"SORRY╮(╯▽╰)╭……你的请求被拒绝…\n";for (i=0;i<n;i++){Available[i]+=Request[mi][i];Allocation[mi][i]-=Request[mi][i];Need[mi][i]+=Request[mi][i];}}for (i=0;i<m;i++)Finish[i]=0;char Flag; //标志位cout<<"是否再次请求分配?是请按Y/y,否请按N/n"; while (1){cin>>Flag;if (Flag=='Y'||Flag=='y'||Flag=='N'||Flag=='n')break;else{cout<<"请按要求重新输入:\n";continue;}}if (Flag=='Y'||Flag=='y')continue;else break;}}调试实验:(数据参考教材P113)。

“操作系统”课程实践教学环节的研究与设置

“操作系统”课程实践教学环节的研究与设置

源 的 Lnx操作 系统 作 为教学 用实 例操 作 系统 , 精 iu 并 心选择其 中的部分源代码作 为教学案例 , 组成案例 库 , 每一 个 案 例 , 师给 出其 实 现 的具 体 功 能 、 对 教 使 用 的算法 设计 , 求学 生写 出详 细 的代 码 阅读 注 释 , 要 画 出尽可 能 详 细 的程 序 设 计 流 程 图。 目前 , 已经 设 置 的代码 分析 案例 。( 见表 1 )
The Re e r h a d De i n o e a i g S se pe i e t Co r e s a c n sg f Op r tn y t m Ex rm n u s
Z HAO W e—u HE in xa i a ,C h N Ja .i ,DON L G i
[ 摘
要] 文章 阐述 了操作 系统课 程实践教学环节 目前的发展现状 , 探索并构 建适合本 校实际情 况的多
层 次的实践教学体系 , 设置 了合理 的实验 项 目, 提供 了方便的实验 环境平 台 , 让学生 能够循 序渐进 的参
与到课 程实践 中, 取得 了较好 的教学 效果。
【 关键词 ] 操作 系统 ; 实践环节 ; 教学改革 [ 中图分 类号]G 4 . 6 23 [ 文献标识码 ]A [ 文章编号 ]10 -0 2 2 1 )70 7 -3 099 (0 1 0 - 40 4 0
实施 起 来有 一定 难度 。
这是 实 践教 学体 系 中的第 二 个 层 次 。为 了能够 真 正采 用 启 发 式 、 案例 式 及 分 组 讨 论式 等互 动 教 学 方法 , 学生 从枯燥 、 让 乏味 的被 动 的填 鸭 式 的抽 象 原
理 学 习中解脱 出来 , 高解 决 问题 的能 力 , 择 了开 提 选

合肥师范学院操作系统 实验项目二

合肥师范学院操作系统 实验项目二

实验项目二进程管理一、实验目的1.理解进程的概念,掌握父、子进程创建的方法。

2.认识和了解并发执行的实质,掌握进程的并发及同步操作。

二、实验内容1.编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I amson”,女儿进程执行时屏幕显示“I am daughter”。

2.多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。

记下这种情况,试简单分析其原因。

3.修改程序,在父、子进程中分别使用wait()、exit()等系统调用“实现”其同步推进,并获取子进程的ID号及结束状态值。

多次反复运行改进后的程序,观察并记录运行结果。

三、源程序及运行结果源程序1:#include<sys/types.h>#include<unistd.h>#include<stdio.h>int main(int argc, char ** argv ){char *message;int n;int pid=fork();if(pid < 0)printf("error!");else if( pid == 0 ){message="This is daughter!";pid=getpid();n=3;}else{int pid=fork();if (pid < 0)printf("error!");else if( pid == 0 ){message="This is son!";pid=getpid();n=3;}else{message="This is father " ;n=3;}}for(;n>0;n--){puts(message);sleep(1);}return 0;}运行结果:(截图)源程序2:#include<stdlib.h>#include<unistd.h>#include<sys/types.h>#include<sys/wait.h>int main(int argc, char ** argv){char *msg;int n;pid_t pid=fork();int status,i;int code;if(pid<0){printf("Error!");exit(1);}else if(pid==0){msg="I am son!";n=3;code=50;}else{msg="I am father!Wait for son.";n=2;code=0;}for(n=3;n>0;n--){puts(msg);sleep(1);}if(pid!=0){pid=wait(&status);i=WEXITSTATUS(status);print f("child’s pid =%d .exit status=%d\n",pid , i); }exit(code);}运行结果:四、实验分析与总结1.实验内容1运行结果为什么无固定顺序,fork()函数创建进程是如何并发执行的。

安徽工业大学操作系统实验报告

安徽工业大学操作系统实验报告

《操作系统教程》实验报告书专业班级物141班学号*********姓名程裕博指导教师郭玉华安徽工业大学计算机实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application(控制(2)台应用程序)。

(3)掌握WINDOWS API的使用方法。

(4)编写测试程序,理解用户态运行和核心态运行。

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所示,编译成可执行文件并执行。

linux系统及应用(应用开发)实验报告册

linux系统及应用(应用开发)实验报告册

..合肥师范学院实验报告册2013-2014第二学期系别计算机科学与技术实验课程linux系统及应用专业11级计算机科学与技术班级嵌入式应用技术姓名学号指导教师何冀军实验项目一览表实验一Linux系统安装和简单配置一、实验目的(1)掌握Linux操作系统的安装步骤;(2)掌握Linux系统的简单配置方法;(3)掌握Linux系统的启动、关闭步骤。

二、实验内容(1)安装Linux系统;(2)配置Linux系统运行环境;(3)正确地启动、关闭系统。

三、实验软件VMWare Workstation 5.0;Red hat linux 9.0镜像文件;四、实验主要步骤(1)配置并安装操作系统;(2)vi创建程序并实用GCC编译;(3)运行程序;五、实验结果实验项目二Linux基本命令的使用一、实验目的(1)掌握Linux一般命令格式;(2)掌握有关文件和目录操作的常用命令;(3)掌握有关进程操作的常用命令;(4)熟练使用man命令。

二、实验内容(1)正确地登陆和退出系统;(2)熟悉date,cal,who,echo,clear,passwd命令;(3)在用户主目录下对文件进行如下操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等;(4)对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等;(5)利用man显示date,echo等命令的手册页;(6)显示系统中的进程信息。

三、实验软件VMWare Workstation 5.0;Red hat linux 9.0;四、实验主要步骤1、登录进入系统,修改个人密码。

2、使用简单命令:date,cal,who,echo,clear等,了解linux命令格式;3、浏览文件系统:(1)运行pwd命令,确定当前工作目录;(2)运行ls –l命令,理解各字段含义;(3)运行ls –ai命令,理解各字段含义。

(4)使用cd命令,将工作目录改到根目录(/)上。

合肥师范实训任务一笔记

合肥师范实训任务一笔记

实训任务一2012年7月6日13:481,安装并汉化思科模拟器PT(Packet Tracer),极大的还原并模拟真实网络环境2,熟悉界面、设备、操作3,搭建网络实训拓扑PS:关于线缆:网线:学名双绞线分类:按连接设备的不同a,直通线:连接不同类型的设备b,交叉线:连接相同类型的设备A类:终端设备、路由器B类:交换机口诀:同类交叉、异类直通线序标准:八个不同颜色铜线按一定的顺序进行排列568B:白橙橙白绿蓝白蓝绿白棕棕568A:白绿绿白橙蓝白蓝橙白棕棕规律:1、2和3、6互换两头一样的是直通线、两头不一样的是交叉线4,配置基本参数:主机名、接口命令基础:如果询问yes/no,选择no,万一进入了yes向导,可以按ctrl+c退出看到各种模式:主机名>Router>:用户模式,只能使用极其有限的查看命令Router>enable:进入特权模式Router#:特权模式Router#configure terminal:进去配置模式Router(config)#:配置模式Router(config)#hostname R1:配置主机名R1(config)#interface fa0/0:进入某个接口的配置模式R1(config-if)#:接口配置模式R1(config-if)#ip address 12.0.0.1 255.255.255.252:给接口配置IPR1(config-if)#no shutdown:开启接口(思科默认路由器的接口都为关闭状态)exit:返回上一层模式5,配置DHCP:A,创建DHCP地址池:R1(config)#ip dhcp pool zongbuB,创建可分配的IP地址:R1(dhcp-config)#network 192.168.1.0 255.255.255.0 PS:默认网关:Default Gateway,该网络的出口,通常都是该网络出口路由器的接口IPC,创建可分配的网关:R1(dhcp-config)#default-router 192.168.1.1 PS:DNS:域名解析系统,负责把网址与IP进行相互转换D,创建可分配的DNS:R1(dhcp-config)#dns-server 8.8.8.86,分别测试总部内、分部内、互联网内的通讯。

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

实验项目二进程管理
一、实验目的
1.理解进程的概念,掌握父、子进程创建的方法。

2.认识和了解并发执行的实质,掌握进程的并发及同步操作。

二、实验内容
1.编写一C语言程序,实现在程序运行时通过系统调用fork( )
创建两个子进程,使父、子三进程并发执行,父亲进程执行
时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am
son”,女儿进程执行时屏幕显示“I am daughter”。

2.多次连续反复运行这个程序,观察屏幕显示结果的顺序,直
至出现不一样的情况为止。

记下这种情况,试简单分析其原
因。

3.修改程序,在父、子进程中分别使用wait()、exit()等系统调
用“实现”其同步推进,并获取子进程的ID号及结束状态值。

多次反复运行改进后的程序,观察并记录运行结果。

三、源程序及运行结果
源程序1:
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
int main(int argc, char ** argv )
{
char *message;
int n;
int pid=fork();
if(pid < 0)
printf("error!");
else if( pid == 0 )
{
message="This is daughter!";
pid=getpid();
n=3;
}
else
{
int pid=fork();
if (pid < 0)
printf("error!");
else if( pid == 0 )
{
message="This is son!";
pid=getpid();
n=3;
}
else
{
message="This is father " ;
n=3;
}
}
for(;n>0;n--)
{
puts(message);
sleep(1);
}
return 0;
}
运行结果:(截图)
源程序2:
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main(int argc, char ** argv)
{
char *msg;
int n;
pid_t pid=fork();
int status,i;
int code;
if(pid<0)
{
printf("Error!");
exit(1);
}
else if(pid==0)
{
msg="I am son!";
n=3;
code=50;
}
else
{
msg="I am father!Wait for son.";
n=2;
code=0;
}
for(n=3;n>0;n--)
{
puts(msg);
sleep(1);
}
if(pid!=0)
{
pid=wait(&status);
i=WEXITSTATUS(status);
print f("child’s pid =%d .exit status=%d\n",pid , i); }
exit(code);
}
运行结果:
四、实验分析与总结
1.实验内容1运行结果为什么无固定顺序,fork()函数创建进程
是如何并发执行的。

答:fork函数创建的进程抢占CPU不同,从而导致被CPU调度执行的顺序不同,所以运行结果是无固定顺序的。

fork函数调用成功后,子进程与父进程并发执行相同的代码,但由于子进程继承父进程的顺序指针,从fork后的语句开始执行的,fork函数在子进程和父进程的返回值不同,它们执行不同的分类,所以可以并发执行。

2.实验内容3是如何实现父子进程的同步执行的。

答:运用了wait和exit函数,父进程必须在这两个子进程终止后终止,父进程调用wait函数,被阻塞,调入等待队列,子进程结束时,执行exit函数,函数向父进程发终止信号,父进程提取子进程结束状态值,从wait返回,继续执行源程序,完成同步。

总结:了解函数返回值一次原来还可以有多个输出,学习c时,以为
就只能一次输出。

开阔的视野。

对操作系统课程有了兴趣。

相关文档
最新文档