操作系统实验报告4
- 格式:doc
- 大小:214.00 KB
- 文档页数:13
操作系统实验实验报告一、实验目的操作系统是计算机系统中最为关键的核心软件,它管理着计算机的硬件资源和软件资源,为用户提供了一个方便、高效、稳定的工作环境。
本次操作系统实验的目的在于通过实际操作和实践,深入理解操作系统的基本原理和核心概念,掌握操作系统的基本功能和操作方法,提高对操作系统的认识和应用能力。
二、实验环境本次实验使用的操作系统为 Windows 10 专业版,开发工具为Visual Studio 2019,编程语言为 C 和 C++。
实验硬件环境为一台配备Intel Core i7 处理器、16GB 内存、512GB SSD 硬盘的个人计算机。
三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新的进程,并在完成任务后终止进程。
在实验中,我们使用了 Windows API 函数 CreateProcess 和 TerminateProcess 来完成进程的创建和终止操作。
通过观察进程的创建和终止过程,深入理解了进程的生命周期和状态转换。
2、进程同步与互斥为了实现进程之间的同步与互斥,我们使用了信号量、互斥量等同步对象。
通过编写多线程程序,模拟了多个进程对共享资源的访问,实现了对共享资源的互斥访问和同步操作。
在实验中,我们深刻体会到了进程同步与互斥的重要性,以及不正确的同步操作可能导致的死锁等问题。
(二)内存管理实验1、内存分配与释放使用 Windows API 函数 VirtualAlloc 和 VirtualFree 进行内存的分配和释放操作。
通过实验,了解了内存分配的不同方式(如堆分配、栈分配等)以及内存释放的时机和方法,掌握了内存管理的基本原理和操作技巧。
2、内存分页与分段通过编程模拟内存的分页和分段管理机制,了解了内存分页和分段的基本原理和实现方法。
在实验中,我们实现了简单的内存分页和分段算法,对内存的地址转换和页面置换等过程有了更深入的理解。
(三)文件系统实验1、文件操作使用 Windows API 函数 CreateFile、ReadFile、WriteFile 等进行文件的创建、读取和写入操作。
windows操作系统实验报告Windows操作系统实验报告引言:在计算机科学领域,操作系统是一种控制和管理计算机硬件和软件资源的软件。
它是计算机系统中最基本的软件之一,负责协调和管理计算机的各种活动。
Windows操作系统是由微软公司开发的一种广泛使用的操作系统,它具有用户友好的界面和丰富的功能。
本实验报告将介绍Windows操作系统的基本特征、安装过程和常见问题解决方法。
一、Windows操作系统的基本特征1. 多任务处理:Windows操作系统能够同时运行多个程序,使得用户可以在同一时间内进行多个任务。
这种特征大大提高了计算机的效率和使用便捷性。
2. 图形用户界面:Windows操作系统采用了直观的图形用户界面,使得用户可以通过鼠标和键盘进行操作。
用户可以通过点击图标、拖拽文件等方式来执行各种任务,这种界面设计大大降低了用户的学习成本。
3. 文件管理系统:Windows操作系统提供了强大的文件管理系统,用户可以创建、复制、移动和删除文件和文件夹。
此外,用户还可以通过搜索功能快速找到需要的文件。
4. 网络功能:Windows操作系统支持网络连接,用户可以通过网络传输文件、共享资源和访问远程计算机。
这种功能使得用户可以方便地进行远程办公和文件共享。
二、Windows操作系统的安装过程Windows操作系统的安装过程相对简单,以下是一般的安装步骤:1. 准备安装介质:首先,需要准备Windows操作系统的安装光盘或USB安装盘。
确保安装介质是正版和可靠的。
2. BIOS设置:进入计算机的BIOS设置界面,将启动顺序设置为从光盘或USB 设备启动。
保存设置并重启计算机。
3. 安装过程:计算机重新启动后,按照屏幕上的提示选择语言、时区和键盘布局等选项。
然后,选择安装类型和磁盘分区方式。
最后,等待安装过程完成。
4. 配置系统:安装完成后,系统会要求设置用户名和密码等信息。
此外,还可以选择安装必要的驱动程序和常用软件。
篇一:操作系统实验报告完全版《计算机操作系统》实验报告班级:姓名:学号:实验一进程控制与描述一、实验目的通过对windows 2000编程,进一步熟悉操作系统的基本概念,较好地理解windows 2000的结构。
通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows 2000中进程的“一生”。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:windows 2000 professional、visual c++6.0企业版。
三、实验内容和步骤第一部分:程序1-1windows 2000 的gui 应用程序windows 2000 professional下的gui应用程序,使用visual c++编译器创建一个gui应用程序,代码中包括了winmain()方法,该方法gui类型的应用程序的标准入口点。
:: messagebox( null, “hello, windows 2000” , “greetings”,mb_ok) ;/* hinstance */ , /* hprevinstance */, /* lpcmdline */, /* ncmdshow */ )return(0) ; }在程序1-1的gui应用程序中,首先需要windows.h头文件,以便获得传送给winmain() 和messagebox() api函数的数据类型定义。
接着的pragma指令指示编译器/连接器找到user32.lib库文件并将其与产生的exe文件连接起来。
这样就可以运行简单的命令行命令cl msgbox.cpp来创建这一应用程序,如果没有pragma指令,则messagebox() api函数就成为未定义的了。
这一指令是visual studio c++ 编译器特有的。
接下来是winmain() 方法。
其中有四个由实际的低级入口点传递来的参数。
计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360117姓名乐云指导教师周学权计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360114姓名郭鑫指导教师周学权操作系统实验实验1 使用虚拟机安装系统 4学时【实验目的】1.了解虚拟机软件的使用。
2.了解使用虚拟机安装Windows及Ubuntu操作系统。
【实验内容】1. 安装虚拟机软件VirtualBox。
2. 配置VirtualBox环境安装WindowsXP,并在虚拟机中启动windowsXP。
3. 配置VirtualBox环境安装Ubuntu 10.10,并在虚拟机中启动Ubuntu。
【实验环境】VirtualBox4.0Windows XPUbuntu 8.04【实验过程】一、创建虚拟机首先运行VirtualBox,单击左上角的“新建”。
单击下一步。
出现如下图的界面,在名称后输入自己起的名字,如test选择自己想要安装的系统类型和版本,本次试验是安装windows xp系统设置完成后,单击下一步。
接下来是设置虚拟机的内存大小,本次实验操作的计算机内存为4GB,所以我选择分配给我的虚拟机的内存为512MB,然后单击下一步。
接着创建虚拟硬盘,选择创建新的虚拟硬盘,单击下一步。
选择虚拟硬盘的类型,默认选择了VDI类型,单击下一步。
接下来选择为动态扩展类型,因为计算机的存储空间不大。
单击下一步。
动态扩展:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间的范围就为0~10G。
固定大小:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间永远不是10G,不管虚拟磁盘空间是否被全部使用。
选择虚拟机在本地磁盘中的位置和大小,单击下一步。
确认虚拟机的详细情况,点击下一步。
这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机安装操作系统选择刚才创建的虚拟机,然后单击上方的“开始”弹出了首次运行向导,单击下一步。
《操作系统》课程实验报告一、实验目的本次《操作系统》课程实验的主要目的是通过实际操作和观察,深入理解操作系统的工作原理、进程管理、内存管理、文件系统等核心概念,并掌握相关的操作技能和分析方法。
二、实验环境1、操作系统:Windows 10 专业版2、开发工具:Visual Studio Code3、编程语言:C/C++三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新进程,并观察进程的创建过程和资源分配情况。
同时,实现进程的正常终止和异常终止,并分析其对系统的影响。
2、进程同步与互斥使用信号量、互斥锁等机制实现进程之间的同步与互斥。
通过模拟多个进程对共享资源的访问,观察并解决可能出现的竞争条件和死锁问题。
(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。
观察在不同的内存请求序列下,内存的分配和回收情况,并分析算法的性能和优缺点。
2、虚拟内存管理研究虚拟内存的工作原理,通过设置页面大小、页表结构等参数,观察页面的换入换出过程,以及对系统性能的影响。
(三)文件系统实验1、文件操作实现文件的创建、打开、读取、写入、关闭等基本操作。
观察文件在磁盘上的存储方式和文件系统的目录结构。
2、文件系统性能优化研究文件系统的缓存机制、磁盘调度算法等,通过对大量文件的读写操作,评估不同优化策略对文件系统性能的提升效果。
四、实验步骤(一)进程管理实验步骤1、进程创建与终止(1)使用 C/C++语言编写程序,调用系统函数创建新进程。
(2)在子进程中执行特定的任务,父进程等待子进程结束,并获取子进程的返回值。
(3)通过设置异常情况,模拟子进程的异常终止,观察父进程的处理方式。
2、进程同步与互斥(1)定义共享资源和相关的信号量或互斥锁。
(2)创建多个进程,模拟对共享资源的并发访问。
(3)在访问共享资源的关键代码段使用同步机制,确保进程之间的正确协作。
(4)观察并分析在不同的并发情况下,系统的运行结果和资源竞争情况。
宁德师范学院计算机系
实验报告
(2014—2015学年第二学期)
课程名称操作系统
实验名称实验四存储管理
专业计算机科学与技术(非师)年级2012级
学号B2012102147 姓名王秋指导教师王远帆
实验日期2015-05-20
图1 word运行情况
“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。
启动应用程序的另一个实例并观察它的内存需求。
请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:第二个实例占用内存22772K,比第一个实例占用的内存大很多
2、教师批改学生实验报告应在学生提交实验报告10日内。
《操作系统原理》实验报告
实验序号:4 实验项目名称:进程控制
一、实验目的及要求
1. 加深对进程信号量的理解。
2. 理解进程同步与互斥机制。
3. 掌握Linux操作系统下的进程控制编程。
二、实验设备(环境)及要求
1.虚拟机VMware Workstation、Ubuntu操作系统和C语言编程。
2.编写一段程序,使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Ctrl C键),当捕捉到中断信号后,父进程调用kill()向两个子进程发出信号,子进程捕捉到信号后,分别输出下面信息后终止:
child process 1 is killed by parent!
child process 2 is killed by parent!
父进程等待两个子进程终止后,输出以下信息后终止:
parent process is killed!
三、实验内容与步骤
代码:
在终端上进行测试
四、实验结果与数据处理
五、分析与讨论
了解了计算机进程的管理以及signal()函数的作用。
六、教师评语成绩。
一、实验目的1. 理解操作系统基本原理,包括进程管理、内存管理、文件系统等。
2. 掌握操作系统的基本命令和操作方法。
3. 通过实验加深对操作系统原理的理解和掌握。
二、实验环境1. 操作系统:Linux2. 编程语言:C语言3. 开发工具:Eclipse三、实验内容本次实验主要分为以下几个部分:1. 进程管理实验2. 内存管理实验3. 文件系统实验四、实验步骤及结果1. 进程管理实验实验步骤:- 使用C语言编写一个简单的进程管理程序,实现进程的创建、调度、同步和通信等功能。
- 编写代码实现进程的创建,通过调用系统调用创建新的进程。
- 实现进程的调度,采用轮转法进行进程调度。
- 实现进程同步,使用信号量实现进程的互斥和同步。
- 实现进程通信,使用管道实现进程间的通信。
实验结果:- 成功创建多个进程,并实现了进程的调度。
- 实现了进程的互斥和同步,保证了进程的正确执行。
- 实现了进程间的通信,提高了进程的效率。
2. 内存管理实验实验步骤:- 使用C语言编写一个简单的内存管理程序,实现内存的分配、释放和回收等功能。
- 实现内存的分配,采用分页存储管理方式。
- 实现内存的释放,通过调用系统调用释放已分配的内存。
- 实现内存的回收,回收未被使用的内存。
实验结果:- 成功实现了内存的分配、释放和回收。
- 内存分配效率较高,回收内存时能保证内存的连续性。
3. 文件系统实验实验步骤:- 使用C语言编写一个简单的文件系统程序,实现文件的创建、删除、读写等功能。
- 实现文件的创建,通过调用系统调用创建新的文件。
- 实现文件的删除,通过调用系统调用删除文件。
- 实现文件的读写,通过调用系统调用读取和写入文件。
实验结果:- 成功实现了文件的创建、删除、读写等功能。
- 文件读写效率较高,保证了数据的正确性。
五、实验总结通过本次实验,我对操作系统原理有了更深入的理解和掌握。
以下是我对实验的几点总结:1. 操作系统是计算机系统的核心,负责管理和控制计算机资源,提高计算机系统的效率。
操作系统实验报告(一)Linux基本操作与编程(验证性 2学时)1、实验目(de):1)熟悉Linux操作系统(de)环境和使用.2)了解LINUX系统(de)安装过程.(注:表示可选择)3)掌握Linux环境下(de)命令操作.2、实验内容:(1)完成LINUX系统(de)登录,启动终端.进行下列操作并记录结果(要求:结果以屏幕截图表示).1)运行pwd命令,确定你当前(de)工作目录.2)利用以下命令显示当前工作目录(de)内容: ls –l3)运行以下命令: ls –al4)使用mkdir命令建立一个子目录subdir.5)使用cd命令,将工作目录改到根目录(/)上.6)使用ls-l命令列出/dev(de)内容.7)使用不带参数(de)命令cd改变目录,然后用pwd命令确定你当前(de)工作目录是哪里8)使用命令cd ../..,你将工作目录移到什么地方(2)在LINUX下查看你(de)文件.1)利用cd命令,将工作目录改到你(de)主目录上.2)将工作目录改到你(de)子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中.3)使用cat命令查看file1文件(de)内容.4)利用man命令显示date命令(de)用法: man date5)将date命令(de)用法附加到文件file1(de)后面:man date >> file16)利用cat命令显示文件file1(de)内容.7)利用ls -l file1命令列出文件file1(de)较详细(de)信息.运行ls -l/bin 命令显示目录(de)内容.8)利用ls -l/bin|more命令行分屏显示/bin目录(de)内容.9)利用cp file1 fa命令生成文件file1(de)副本.然后利用ls -l命令查看工作目录(de)内容.10)用cd命令返回你(de)主目录,输入命令ls –l后,解释屏幕显示(de)第一列内容(de)含义.(3)编写能输出“Hello world”问候语(de)C程序,并在终端中编译、执行.要求记录所使用(de)命令及结果.操作步骤:1)在文本编辑器中,编写C程序如下:include ""main(){ printf("hello"); }2) 在终端中,用gcc命令进行编译,生成可执行文件a.gcc –o a3) 在终端中执行a (de)命令如下:./a(4)编写一个程序:显示信息“Time for Play”,并能在后台运行一段时间(自定义)后,弹出信息提醒用户.要求记录所使用(de)命令及结果.(提示:使用sleep(s)函数)3、实验结果分析:(对上述实验内容中(de)各题结果,进行分析讨论.并回答下列问题)(1)进程包括哪些特征间断性, 失去封闭性, 不可再现性, 动态性, 并发性, 独立性(2)在Linux中,如何设置前、后台命令和程序(de)执行命令后直接加 & ,这个命令就在后台执行;正在运行(de)命令,使用Ctrl+z ,就挂起; jobs命令,可以现实后台,包括挂起(de)命令;使用 bg %作业号就可以把挂起(de)命令在后台执行;使用 fg %作业号就可以把后台命令调到前台(3)你所使用(de)Linux系统(de)内核版本是多少用什么命令查看内核版本目前你所了解(de)各发行版本(de)情况如何Linux version (gcc version (Red Hat (GCC) ) 1 SMP Tue Jan 2911:48:01 EST 2013(4)你对Linux系统有什么认识linux是一款开放性(de)操作系统,也可以说成是开放(de)源代码系统,这些代码可以完全自由(de)修改可以再任何(de)计算机上去运行它,也就是“可移植性”,其次大家都知道,linux是由UNIX(de)概念所开发出来(de),所以它也继承了UNIX(de)稳定和效率(de)特点4、总结:你对本次实验有什么体会或看法.操作系统实验报告(二)文件访问权限设置与输入输出重定向(2学时)一、实验目(de)1、掌握linux(de)文件访问权限设置.2、熟悉输入输出重定向和管道操作.二、实验内容1、启动进入红帽linux系统2、设置文件权限:在用户主目录下创建目录test,进入test目录,用vi 创建文件file1,并输入任意(de)文字内容.用ls -l显示文件信息,注意文件(de)权限和所属用户和组.对文件file1设置权限,使其他用户可以对此文件进行写操作:chmod o+w file1.用ls -l查看设置结果.取消同组用户对此文件(de)读取权限:chmod g-r file1.查看设置结果.用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行(de)权限:chmod 755 file1.设置完成后查看设置结果.3、输入、输出重定向和管道(1) 输出重定向用ls命令显示当前目录中(de)文件列表:ls –l.使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中:ls –l > list.查看文件list中(de)内容,注意在列表中会多出一个文件list,其长度为0. 这说明shell是首先创建了一个空文件,然后再运行ls命令:cat list.再次使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中.这次使用追加符号>>进行重定向:ls –l >> list.查看文件list(de)内容,可以看到用>>进行重定向是把新(de)输出内容附加在文件(de)末尾,注意其中两行list文件(de)信息中文件大小(de)区别:cat list.重复命令ls –l > list.再次查看文件list中(de)内容,和前两次(de)结果相比较,注意list文件大小和创建时间(de)区别.(2) 管道who |grep root命令(de)结果是命令ls –l |wc –l结果是4、退出linux系统操作步骤:在主菜单上选择“注销” ->关闭计算机.三、实验结果与讨论(根据实验结果回答下列问题)1. 文件(de)权限如下:-rw-r—r-- 1 root root 19274 Jul 14 11:00回答:-rw-r—r-- (de)含义是什么答:是LINUX/FTP(de)简易权限表示法:对应于本用户-所在组-其他人(de)权限,每一个用执行(x)-读取(r)-写入(w)如本题若是说自己可以读取写入不可以执行,所在组和其他人只能读取.2、文件(de)所有者添加执行权限(de)命令是答:chmod u+x 、赋予所有用户读和写文件权限(de)命令是四、答:chmod a+w,a+r 个人体会(你对本次实验有什么体会或看法)操作系统实验报告(三)文件和目录管理一、实验目(de)1) 掌握在Linux系统下(de)文件和文件系统(de)概念及命令;2) 掌握Linux系统下(de)目录操作.二、实验内容1. 进入linux终端后,用命令(de)操作结果回答下列问题:1)vi(de)三种工作模式是其中不能进行直接转换(de)是什么模式到什么模式命令模式、文本输入模式、末行模式命令模式不能直接到末行模式2)在vi中退出时,保存并退出(de)操作步骤是Ese:wq3)用vi 创建myfile1文件,并在其中输入任意文字一行,创建myfile2文件,任意输入文字3行.请问执行命令:cat <myfile1 >myfile2 后,myfile2中还有几行内容该命令(de)作用是用命令操作验证你(de)回答.myfile2中还有1行内容该命令(de)作用是替换myfile(de)内容4)请用至少两种不同(de)命令创建一个文本文件(),在其中写入“我是2014级学生,我正在使用Linux系统.”,记录命令及执行结果.1、Vi创建2、5)用___pwd________命令可查看所创建文件(de)绝对路径,写出它(de)绝对路径__/root_________;用___ls -l________命令查看该文件(de)类型及访问权限,其访问权限(数字和字母)分别是多少__-rw- r- - r- - 6 4 4______________.6)若将该文件(de)访问权限修改为:所有者有读写权限;其他用户只读;同组用户可读写,请写出命令,并记录结果.7)查找my开头(de)所有文件,可___find my_________命令,写出命令并记录结果8)在/home下创建子目录user,并在其中创建2个文件,名为file1和file2,file1(de)内容是/root目录(de)详细信息;file2(de)内容任意,最后将这两个文件合并为file3文件,请先写出命令序列,并在终端中验证,记录结果.2. 文件及目录操作,写出操作所使用(de)命令,并记录结果.在终端中完成下列命令操作,并记录结果在root用户主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录.查看mydir和myfile(de)默认权限查看当前myfile和mydir(de)权限值是多少将myfile文件分别复制到root 和dd1(de)主目录中将root主目录中(de)myfile改为yourfile通过从键盘产生一个新文件并输入I am a student查找文件是否包含student字符串三、实验结果与分析,回答下列问题:1、能够创建文件(de)命令有哪些vi 和cat>name2、能够查看当前目录(de)绝对路径(de)命令是pwd3、Linux中按用户属性将用户分成哪些类型根据文件(de)访问权限,用户又被分成哪些类型能够查看文件访问权限(de)命令是用户同组其他可读可写可执行 cat f1四、小结(本次实验(de)体会或小结)操作系统实验报告(四)作业调度算法模拟(验证性2学时)1、实验目(de):1)掌握作业调度(de)主要功能及算法.2)通过模拟作业调度算法(de)设计加深对作业管理基本原理(de)理解.3)熟悉Linux环境下应用程序(de)编程方法.2、实验内容:(1)作业调度算法(FCFS)编程模拟:编制一段程序,对所输入(de)若干作业,输入、输出数据样例如下表所示.按FCFS算法模拟调度,观察、记录并分析调度(de)输出结果情况.输入输出样例1:FCFS算法include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void fcfs(){ int i,j,t=0,tw=0,tt=0;for(i=0;i<SIZE-1;i++)for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb){x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf("开始时间作业号到达时间运行时间完成时间等待时间周转时间\n");for(i=0;i<SIZE;i++){printf(" %d",t);t=t+job[i].tr;tw=t-job[i].tb-job[i].tr; b; o,job[i].tb,job[i].tr,t,tw,tt);}}void main(){load();fcfs();}(2)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法,分别用下面两组输入、输出数据样例进行模拟,观察分析运行结果.输入输出样例2:SJF算法输入输出A 0 4B 0 3C 0 5D 0 2E 0 1A 0 6 10 10B 0 3 6 6C 0 10 15 15D 0 1 3 3E 0 0 1 1include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void sjf()n=i; pl[i].pfn=ERR;}for(i=1;i<total;i++){ pfc[i-1].next=&pfc[i];pfc[i-1].pfn=i-1;}pfc[total-1].next=NULL;pfc[total-1].pfn=total-1;freepf_head=&pfc[0];}void FIFO(int total){ int i,j;pfc_type p,t;initialize(total);busypf_head=busypf_tail=NULL;for(i=0;i<page_len;i++){if(pl[page[i]].pfn==ERR){ diseffect+=1;if(freepf_head==NULL){p=busypf_head->next;pl[busypf_head->pn].pfn=ERR; freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;}p=freepf_head->next;freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head; else{ busypf_tail->next=freepf_head;busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%d",diseffect);}main(){ int i; int k;printf(“请输入页(de)引用序列:\n”); for(k=0;k<page_len;k++)scanf("%d",&page[k]);for(i=4;i<=7;i++){printf("%2d page frames ",i);FIFO(i);}参考程序LRU算法,略三、实验结果分析:(对上述实验各题所使用(de)原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析.)随着块数(de)增加,缺页数目也减少,4个实验中3个实验(de)块数增加到了5以后,即使块数再增加,缺页数目也是保持不变.只有实验4,块数增加到7以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。
一、实验题目:文件管理实验--Linux下的文件管理二、实验目的和要求:实验目的:(1)加深对文件、目录、文件系统等概念的理解。
(2)掌握 Linux 文件系统的目录结构。
(3)掌握有关 Linux 文件系统操作的常用命令。
(4)了解有关文件安全性方面的知识。
实验要求:(1)正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
(2)能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
(3)正确地理解文件的权限,并能进行相应更改。
(4)理解文件的类型及其表示形式。
(5)理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验内容:(1)使用pwd,cd,ls等命令浏览文件系统。
(2)使用cat,cp,mv,head,tail,rm等命令查看你的文件。
(3)使用ln命令进行文件的硬连接和符号连接。
软中断通信(4)使用find,grep命令进行文件查找和模式匹配。
(5)使用chmod命令修改文件的权限。
四、实验步骤:(说明:对本实验涉及的教材中的相关内容进行归纳总结,只需简要说明即可。
)1、用root账号登录到终端,使用pwd命令查看当前目录2、用cd命令将当前目录切换到“/”目录下3、使用ls明令查看Linux的目录结构,了解各目录存放与系统相关的文件14、使用 cat、more、head、tail等命令显示 /etc/inittab文件内容5、使用grep 命令在/etc/inittab 文件中查询“initdefault”字符串26、使用find 命令查找 /目录下所有以main 开头的文件7、使用 cp 命令将/etc目录下的inittab文件拷贝到/root目录下8、使用 sort 和uniq 命令对 /root目录下的inittab文件排序后输出其结果39、统计inittab文件的字节数、行数、字数10、用mkdir命令在/root目录下创建一个test目录11、用cp命令将/etc目录及其下所有内容复制到test目录下12、使用cd和ls查看/root/test/etc 下的内容413、将test目录改名为test214、删除test2五、实验总结:通过本次实验,让我懂得了怎样创建文件以及文件管理命令的使用,对Linux的掌握和了解进一步加深。
操作系统实验4-4实验报告一、实验目的本次操作系统实验 4-4 的目的是深入了解和掌握操作系统中进程管理的相关知识和技术,通过实际操作和观察,加深对进程调度算法、进程同步与互斥等概念的理解,并提高解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。
三、实验内容1、进程调度算法的实现先来先服务(FCFS)算法短作业优先(SJF)算法时间片轮转(RR)算法优先级调度算法2、进程同步与互斥的实现使用信号量实现生产者消费者问题使用互斥锁实现哲学家进餐问题四、实验步骤1、进程调度算法的实现先来先服务(FCFS)算法设计数据结构来表示进程,包括进程ID、到达时间、服务时间等。
按照进程到达的先后顺序将它们放入就绪队列。
从就绪队列中选择第一个进程进行处理,计算其完成时间、周转时间和带权周转时间。
短作业优先(SJF)算法在设计的数据结构中增加作业长度的字段。
每次从就绪队列中选择服务时间最短的进程进行处理。
计算相关的时间指标。
时间片轮转(RR)算法设定时间片的大小。
将就绪进程按照到达时间的先后顺序放入队列。
每个进程每次获得一个时间片的执行时间,若未完成则重新放入队列末尾。
优先级调度算法为每个进程设置优先级。
按照优先级的高低从就绪队列中选择进程执行。
2、进程同步与互斥的实现生产者消费者问题创建一个共享缓冲区。
生产者进程负责向缓冲区中生产数据,消费者进程从缓冲区中消费数据。
使用信号量来控制缓冲区的满和空状态,实现进程的同步。
哲学家进餐问题模拟多个哲学家围绕一张圆桌进餐的场景。
每个哲学家需要同时获取左右两边的筷子才能进餐。
使用互斥锁来保证筷子的互斥访问,避免死锁的发生。
五、实验结果与分析1、进程调度算法的结果与分析先来先服务(FCFS)算法优点:实现简单,公平对待每个进程。
缺点:对短作业不利,平均周转时间可能较长。
短作业优先(SJF)算法优点:能有效降低平均周转时间,提高系统的吞吐量。
操作系统实验报告4一、实验目的本次操作系统实验的目的在于深入了解和掌握操作系统中进程管理、内存管理、文件系统等核心概念和相关操作,通过实际的实验操作,增强对操作系统原理的理解和应用能力,提高解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程语言为 C++,开发工具为 Visual Studio 2019。
三、实验内容与步骤(一)进程管理实验1、进程创建与终止使用 C++语言编写程序,创建多个进程,并在进程中执行不同的任务。
通过进程的标识符(PID)来监控进程的创建和终止过程。
2、进程同步与互斥设计一个生产者消费者问题的程序,使用信号量来实现进程之间的同步与互斥。
观察生产者和消费者进程在不同情况下的执行顺序和结果。
(二)内存管理实验1、内存分配与释放编写程序,使用动态内存分配函数(如`malloc` 和`free`)来分配和释放内存。
观察内存的使用情况和内存泄漏的检测。
2、内存页面置换算法实现几种常见的内存页面置换算法,如先进先出(FIFO)算法、最近最少使用(LRU)算法和最佳置换(OPT)算法。
通过模拟不同的页面访问序列,比较不同算法的性能。
(三)文件系统实验1、文件创建与读写使用 C++语言的文件操作函数,创建一个新文件,并向文件中写入数据。
从文件中读取数据,并进行数据的处理和显示。
2、文件目录操作实现对文件目录的创建、删除、遍历等操作。
观察文件目录结构的变化和文件的组织方式。
四、实验结果与分析(一)进程管理实验结果与分析1、进程创建与终止在实验中,成功创建了多个进程,并通过控制台输出观察到了每个进程的 PID 和执行状态。
可以看到,进程的创建和终止是按照程序的逻辑顺序进行的,操作系统能够有效地管理进程的生命周期。
2、进程同步与互斥在生产者消费者问题的实验中,通过信号量的控制,生产者和消费者进程能够正确地实现同步与互斥。
当缓冲区为空时,消费者进程等待;当缓冲区已满时,生产者进程等待。
操作系统实验(四)实验报告--虚拟内存操作系统实验(四)虚拟内存1、实验题目页面置换算法模拟——OPT、FIFO和LRU算法2、实验目的了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法,如最佳(Optimal)置换算法、先进先出(Fisrt In First Out)置换算法和最近最久未使用(Least Recently Used)置换算法3、实验内容1)OPT算法:需要发生页面置换时,算法总是选择在将来最不可能访问的页面进行置换。
2)FIFO算法:算法总是选择在队列中等待时间最长的页面进行置换。
3)LRU算法:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,那么,在最近未来是不大可能被访问的。
4、程序代码#include<iostream>#include <cstdlib>#include <time.h>#include <cstdio>#define L 30///页面走向长度最大为30using namespace std;int M=4; ///内存块struct P///定义一个结构体{int num,time;}p[30];int Input(int m,P p[L])///打印页面走向状态{m=30;int i,j;j=time(NULL);///取时钟时间srand(j);///以时钟时间x为种子,初始化随机数发生器cout<<"页面走向: ";for(i=0; i<m; i++){p[i].num=rand( )%10;///产生1到10之间的随即数放到数组p中p[i].time=0;cout<<p[i].num<<" ";}cout<<endl;return m;}void print(P *page1)///打印当前的页面{P *page=new P[M];page=page1;for(int i=0; i<M; i++)cout<<page[i].num<<" ";cout<<endl;}int Search(int e,P *page1 )///寻找内存块中与e相同的块号{P *page=new P[M];page=page1;for(int i=0; i<M; i++)if(e==page[i].num)return i; ///返回i值return -1;}int Max(P *page1)///寻找最近最长未使用的页面用于OPT算法{P *page=new P[M];page=page1;int e=page[0].time,i=0;while(i<M) ///找出离现在时间最长的页面{if(e<page[i].time) e=page[i].time;i++;}for( i=0; i<M; i++)if(e==page[i].time)return i; ///找到离现在时间最长的页面返回其块号return -1;}int Count(P *page1,int i,int t,P p[L])///记录当前内存块中页面离下次使用间隔长度用于OPT算法{P *page=new P[M];page=page1;int count=0;for(int j=i; j<L; j++){if(page[t].num==p[j].num )break;///当前页面再次被访问时循环结束else count++;///否则count+1}return count;///返回count的值}int main(){int c=1;int m=0,t=0;float n=0;///缺页次数m=Input(m,p);///调用input函数,返回m值M=4;P *page=new P[M];///dowhile(c==1||c==2||c==3){int i=0;for(i=0; i<M; i++) ///初试化页面基本情况{page[i].num=0;page[i].time=m-1-i;}cout<<"1:FIFO页面置换"<<endl;cout<<"2:LRU页面置换"<<endl;cout<<"3:OPT页面置换"<<endl;cout<<"按其它键结束程序;"<<endl;cin>>c;if(c==1)///FIFO页面置换///FIFO();{n=0;cout<<" FIFO算法页面置换情况如下: "<<endl;cout<<endl;while(i<m){if(Search(p[i].num,page)>=0) ///当前页面在内存中{cout<<p[i].num<<" "; ///输出当前页p[i].numcout<<" "<<endl;i++; ///i加1}else ///当前页不在内存中{if(t==M)t=0;else{n++; ///缺页次数加1page[t].num=p[i].num; ///把当前页面放入内存中cout<<p[i].num<<" ";print(page); ///打印当前页面t++; //下一个内存块i++; ///指向下一个页面}}}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" ="<<n/m<<endl;}if(c==2)///LRU页面置换,最近最久未使用{n=0;cout<<" LRU算法页面置换情况如下: "<<endl;cout<<endl;while(i<m){int a;t=Search(p[i].num,page);if(t>=0)///如果已在内存块中{page[t].time=0;///把与它相同的内存块的时间置0for(a=0; a<M; a++)if(a!=t)page[a].time++;///其它的时间加1cout<<p[i].num<<" ";cout<<"不缺页"<<endl;}else ///如果不在内存块中{n++; ///缺页次数加1t=Max(page); ///返回最近最久未使用的块号赋值给tpage[t].num=p[i].num; ///进行替换page[t].time=0; ///替换后时间置为0cout<<p[i].num<<" ";print(page);for(a=0; a<M; a++)if(a!=t)page[a].time++; ///其它的时间加1}i++;}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" = "<<n/m<<endl;}if(c==3)///OPT页面置换{n=0;cout<<" OPT算法置换情况如下:"<<endl;cout<<endl;while(i<m){if(Search(p[i].num,page)>=0)///如果已在内存块中{cout<<p[i].num<<" ";cout<<" "<<endl;i++;}else///如果不在内存块中{int a=0;for(t=0; t<M; t++)if(page[t].num==0)a++;///记录空的内存块数if(a!=0) ///有空内存块{int q=M;for(t=0; t<M; t++)if(page[t].num==0&&q>t)q=t;///把空内存块中块号最小的找出来page[q].num=p[i].num;///把缺页换过来n++; ///缺页次数加一cout<<p[i].num<<" ";print(page);i++;}else{int temp=0,s;for(t=0; t<M; t++) ///寻找内存块中下次使用离现在最久的页面if(temp<Count(page,i,t,p)){temp=Count(page,i,t,p);s=t;}///把找到的块号赋给spage[s].num=p[i].num;n++;cout<<p[i].num<<" ";print(page);i++;}}}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" = "<<n/m<<endl;}}///while(c==1||c==2||c==3);return 0;}5、心得体会通过该实验,是我对虚拟内存更加了解,对最佳置换算法、先进先出算法、最近最久算法更加了解。
操作系统实验报告操作系统是计算机科学中十分重要的一门课程,本次实验是关于操作系统的,通过实验,我们可以更深入地了解操作系统的相关知识和操作。
本篇文章将着重介绍本次操作系统实验的内容和实验过程中的收获。
一、实验内容本次实验内容主要涉及操作系统的进程、线程和进程同步三部分。
具体内容包括:1. 进程的创建和管理2. 线程的创建和管理3. 进程同步的实现在实验过程中,我们将分别使用C语言和Linux操作系统实现上述功能。
二、实验过程1. 进程的创建和管理在这一部分实验中,我们要创建多个进程,实现进程的调度和管理功能。
我们采用了Linux系统下的fork()函数,用于创建子进程。
在程序运行时,首先创建一个父进程,然后使用fork()函数创建四个子进程,每个子进程都有自己的进程号(pid),并在屏幕上输出该进程号以示区分。
为了实现进程的调度功能,我们在代码中加入了sleep()函数,用于将进程挂起一段时间,然后再轮流执行其他进程。
2. 线程的创建和管理在这一部分实验中,我们使用了C语言的POSIX线程库pthread.h,实现多线程的功能。
同样地,我们采用了Linux系统下的fork()函数来创建线程。
在代码运行时,我们创建了两个线程,并在屏幕上输出线程号(tid)以示区分。
为了实现线程的调度和管理功能,我们在代码中加入了pthread_join()函数,用于等待线程的执行完成。
3. 进程同步的实现在这一部分实验中,我们使用了Linux系统下的进程同步工具——信号量(semaphore)。
在代码中,我们使用sem_init()函数创建信号量,使用sem_wait()函数阻塞进程或线程,使用sem_post()函数释放进程或线程。
为了更好地理解信号量的工作原理,我们将代码分为生产者和消费者两部分,其中生产者用于向缓冲区添加数据,消费者则用于删除数据。
在这个过程中,我们需要使用信号量控制生产者和消费者的数量,避免出现生产过多或消费过多的情况。
操作系统课程实验报告一、实验目的操作系统是计算机系统中最为关键的软件之一,它负责管理计算机的硬件资源和软件资源,为用户提供一个良好的工作环境。
通过操作系统课程实验,旨在深入理解操作系统的基本原理和功能,提高对操作系统的实际操作能力和问题解决能力。
二、实验环境本次实验使用的操作系统为Windows 10 和Linux(Ubuntu 1804),开发工具包括 Visual Studio Code、gcc 编译器等。
三、实验内容(一)进程管理1、进程创建与终止在 Windows 系统中,使用 C++语言创建多个进程,并通过进程句柄控制进程的终止。
在 Linux 系统中,使用 fork()系统调用创建子进程,并通过 exit()函数终止进程。
2、进程同步与互斥使用信号量实现进程之间的同步与互斥。
在 Windows 中,利用CreateSemaphore()和 WaitForSingleObject()等函数进行操作;在Linux 中,通过 sem_init()、sem_wait()和 sem_post()等函数实现。
(二)内存管理1、内存分配与释放在 Windows 中,使用 HeapAlloc()和 HeapFree()函数进行动态内存的分配与释放。
在 Linux 中,使用 malloc()和 free()函数完成相同的操作。
2、内存页面置换算法实现了几种常见的内存页面置换算法,如先进先出(FIFO)算法、最近最少使用(LRU)算法等,并比较它们的性能。
(三)文件系统管理1、文件创建与读写在 Windows 和 Linux 系统中,分别使用相应的 API 和系统调用创建文件,并进行读写操作。
2、目录操作实现了目录的创建、删除、遍历等功能。
四、实验步骤(一)进程管理实验1、进程创建与终止(1)在 Windows 系统中,编写 C++程序,使用 CreateProcess()函数创建新进程,并通过 TerminateProcess()函数终止指定进程。
windows操作系统实验报告1. 实验目的本实验旨在通过对Windows操作系统的实际操作,了解和掌握Windows操作系统的基本功能、应用程序管理、文件管理以及网络连接等方面的知识。
2. 实验环境本次实验使用的操作系统为Windows 10,并安装了常用应用程序和网络连接工具。
3. 实验步骤3.1 Windows操作系统的基本功能3.1.1 开机与关机在实验机器上按下电源按钮,进行开机操作,待Windows系统完全加载后,进入桌面。
点击“开始”按钮,选择“关机”选项,进行关机操作。
3.1.2 桌面的基本元素桌面是Windows操作系统的主要工作区域,它包含了以下基本元素:- 桌面图标:代表文件、文件夹或快捷方式,用于快速访问。
- 任务栏:位于屏幕底部,用于启动应用程序、显示当前运行的任务和系统图标等。
- 通知区域:位于任务栏的右侧,显示系统图标和通知。
3.2 应用程序管理3.2.1 启动应用程序在任务栏上单击鼠标右键,选择“启动任务管理器”打开任务管理器窗口。
点击“应用程序”选项卡,可以查看当前正在运行的应用程序。
双击某个应用程序图标或右键单击该应用程序图标,选择“打开”即可启动相应的应用程序。
3.2.2 切换应用程序使用Alt+Tab键可以在多个应用程序之间快速切换。
3.2.3 关闭应用程序在应用程序的窗口右上角找到“X”按钮,点击即可关闭该应用程序。
3.3 文件管理3.3.1 创建文件夹在桌面或文件资源管理器中,右键单击空白处,选择“新建” -> “文件夹”,输入文件夹名称即可创建新的文件夹。
3.3.2 复制、粘贴文件选中需要复制的文件或文件夹,按下Ctrl+C进行复制,在目标位置按下Ctrl+V进行粘贴。
3.3.3 删除文件选中需要删除的文件,按下Delete键或右键单击文件选择“删除”。
3.3.4 文件搜索点击“开始”按钮,在搜索框中输入文件名或相关关键词,系统会在磁盘中搜索匹配的文件并显示结果。
《操作系统》实验报告
实验序号: 4 实验项目名称:进程控制
Printf(“child Complete”);
CloseHandle(pi.hProcess);
CloseHandle(pi hThread);
﹜
修改后:
#include <stdio.h>
#include <windows.h>
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<windows.h>
#include<iostream>
修改后:
#include<windows.h>
#include<iostream>
//利用进程和操作系统的版本信息的简单示例
void main()
{
//提取这个进程的ID号
DWORD dwIdThis=::GetCurrentProcessId();
//获得这一进程和报告所需的版本,也可以发送0以便指明这一进程DWORD dwVerReq=::GetProcessVersion(dwIdThis);
WORD wMajorReq=((WORD)dwVerReq>16);
WORD wMinorReq=((WORD)dwVerReq&0xffff);
std::cout<<"Process ID:"<<dwIdThis
<<",requires OS:"<<wMajorReq<<wMinorReq<<std::endl;
//设置版本信息的数据结构,以便保存操作系统的版本信息OSVERSIONINFOEX osvix;
::ZeroMemory(&osvix,sizeof(osvix));
osvix.dwOSVersionInfoSize=sizeof(osvix);
//提取版本信息和报告
::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix)); std::cout<<"Running on OS:"<<osvix.dwMajorVersion<<"."
<<osvix.dwMinorVersion<<std::endl;
//如果是NTS(Windows2000)系统,则提高其优先权
if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&
osvix.dwMajorVersion>=5)
{
//改变优先级
::SetPriorityClass(
::GetCurrentProcess(), //利用这一进程
HIGH_PRIORITY_CLASS); //改变为high //报告给用户
std::cout<<"Task Manager should now now indicate this"
"process is high priority."<<std::endl;
}
}
实验参考:①在Visual C++窗口的工具栏中单击“打开”按钮,在“打开“对话框
中找到并打开4-2.cpp源程序。
②单击Build菜单中的Compile 4-2.cpp命令,再单击“是”按钮确认。
系统对4-2.cpp 源程序进行编译。
③编译完成后,单击Build菜单中的Build 4-2.exe命令,建立4-2.exe可执行文件。
④在工具栏单击Execute Program(执行程序)按钮,执行4-2.exe程序。
实验任务:写出程序运行后的以下几项结果。
当前PID信息1628 。
当前操作系统版本Running on OS:5.1 。
系统提示信息Task Manager should now now indicate thisprocess is high priority 。
5、终止进程
(3)编程三下面给出了一个终止进程的应用程序(文件名为4-3.cpp),它先创建一个子进程,然后命令它发出“自杀弹”互斥体去终止自身的运行。
阅读该程序并完成
int main(int arqc,char * argv﹝﹞)
﹛
//决定其行为是父进程还是子进程
if(argc>1 & & ::strcmp(argv﹝1﹞,”child”)==0) ﹛
Child();
﹜
else
﹛
Parent();
﹜
Return 0;
﹜
修改后:
#include<windows.h>
#include<iostream>
#include<stdio.h>
static LPCTSTR g_szMutexName="w2kdg.ProcTerm.mutex.Suicide";
//创建当前进程的克隆进程的简单方法
void StartClone()
{
//提取当前可执行文件的文件名
TCHAR szFilename[MAX_PATH];
::GetModuleFileName(NULL,szFilename,MAX_PA TH);
}
分析:程序4-3.cpp说明了一个进程从“生”到“死”的整个一生,第一次执行时,
它创建一个子进程,其行为如同“父亲”。
在创建子进程之前,先创建一个互斥的内核对象,其行为对于子进程来说,如同一个“自杀弹”。
当创建子进程时,就打开了互斥体并在其他线程中进行别的处理工作,同时等待着父进程使用ReleaseMutex()API发出“死亡”信号。
然后用Sleep()API调用来模拟父进程处理其他工作,等完成时,指令子进程终止。
当调用ExitProcess()时要小心,进程中的所有线程都被立刻通知停止。
在设计应用程序时,必须让主线程在正常的C++运由期关闭(这是由编译器提供默认行为)之后来调用这一函数。
当它转向受信状态时,通常可创建一个每个活动线程都可等待和停止的终止事件。
在正常的终止操作中,进程的每个工作线程都要终止,由主线程序员调用ExitProcess()。
接着,管理层对进程增加的所有对象释放引用,并将用GetExitChodeProcess()建立的退出代码从STILL ACTIVE改变为ExitProcess()调用中返回的值。
最后,主线程对象也如同进程对象一样转变为受信状态。
等到所有打开的句柄都关闭之后,管理层的对象管理器才销毁进程对象本身。
还没有一种函数可取得终止后的进程对象为其参数,从而使具其“复活”。
当进程对象引用一个终止了的对象时,有好几个API函数仍然是有用的。
进程可使用退出代码将终止方式通知给调用GetExitCodeProcess ()的其他进程。
同时,GetProcessTimes()API函数可向主调者显示进程的终止时间。
实验参考:①在Visual C++窗口的工具栏中单击“打开”按钮,在“打开”对话框
中找到并打开4-3.cpp命令源程序。
②单击Build菜单中的Compile 4-3.cpp命令,再单击“是”按钮确认。
系统对4-3.cpp 源程序进行编译。
③编译完成后,单击Build菜单中的Build4-3.exe命令,建立4-3.exe可执行文件。
实验任务:写出程序的运行结果。
四、程序调试(结果及分析)
五、总结与体会
六、教师评语
成绩
签名:
日期:。