操作系统 实验报告 并发程序设计
### 操作系统实验报告——并发程序设计 #### 实验目的 本次实验的主要目的是让学生通过实践掌握Windows环境下多进程并发程序的设计方法,并通过程序的实际运行结果验证分时系统以及并发程序设计的优势。 - **掌握Windows环境下多进程并发程序设计方法**:通过实际编程,学生能够理解和运用Windows操作系统提供的API进行多进程的创建与管理。 - **验证分时系统和并发程序设计的优越性**:通过对比单进程与多进程程序的运行效率,直观展示并发编程对于提高系统资源利用率和整体性能的作用。 #### 实验要求 为了顺利完成实验,学生需要具备以下基础知识: - **熟悉Windows操作系统**:理解Windows操作系统的基本概念,了解其工作原理。 - **熟练使用VC++进行程序开发**:能够运用VC++工具编写、编译和调试C/C++程序。 #### 实验内容 实验分为两部分: 1. **单进程运行特点**:分析单进程模式下,当一个进程在执行I/O操作(例如读写磁盘文件)时,CPU处于等待状态的情况。这种情况下,其他进程无法利用CPU资源,导致资源浪费。 2. **多进程运行特点**:介绍多进程环境下,如何通过进程间的并发执行来提高系统的运行效率。实验设计了两个进程:`WriteFile`(写磁盘进程)和`Calculate`(计算进程)。这两个进程将分别实现磁盘文件写入功能和简单的计算任务,每个进程预计运行时间为5秒。 - **设计两进程顺序执行程序**:首先实现两个进程的顺序执行,并记录所需的时间。 - **设计两进程并发执行程序**:然后设计两个进程的并发执行,并再次记录所需的时间。 #### 实验原理 1. **Windows进程原理**:在Windows系统中,每一个执行文件(`.exe`)被视作一个进程。Windows支持多任务处理,允许多个执行文件(进程)同时运行。 2. **VC++并发程序设计原理** - **启动执行文件**:使用`WinExec`函数启动一个执行文件的运行。该函数接受命令行参数和执行文件窗口的显示特性。 - **创建进程**:通过`CreateProcess`函数创建一个新的进程。此函数接受执行文件名、命令行参数、进程和线程的安全属性等信息。 - **进程开始信息**:设置`STARTUPINFO`结构体,其中包含了进程开始时所需的信息。 - **进程创建返回信息**:`PROCESS_INFORMATION`结构体包含了新创建进程的句柄、标识号等信息,可用于后续对进程的操作。 - **等待进程结束**:使用`WaitForInputIdle`函数等待一个进程结束。这个函数接受进程句柄和最大等待时间作为参数。 #### 实验步骤与结果 1. **单进程运行**:在单进程模式下,两个进程按顺序执行。记录下总的执行时间。 2. **多进程运行**:将两个进程设置为并发执行。同样记录总的执行时间。 3. **比较结果**:通过比较两种模式下的执行时间,观察并发编程对于提高效率的作用。 #### 实验结果 - **写入D盘**: - **串行运行时间**:见图1-1。 - **并行运行时间**:见图1-2。 - **写入U盘**: - **串行运行时间**:见图2-1。 - **并行运行时间**:见图2-2。 通过以上实验数据的对比分析,我们可以清晰地看到并发程序设计在提高系统资源利用率和整体性能方面的重要作用。特别是在多任务环境中,合理利用并发编程技术能够显著提升系统的响应速度和处理能力。
- xixishuige12013-12-25感谢,虽然不能用
- wzq13292015-03-17很实用,谢谢
- 粉丝: 4
- 资源: 24
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助