操作系统上机实验报告 实验一 进程的建立 本次实验主要目的是学习如何在Windows操作系统中通过编程创建和管理进程,以及实现父子进程间的协同工作。实验中使用了Dev-C++作为开发环境,通过调用Windows API函数进行进程操作。 在实验中,我们创建了两个进程:父进程和子进程。父进程负责创建子进程,并在子进程完成特定任务(读取文件)后继续执行。子进程则负责读取文件,并向文件写入数据。为了实现进程协同工作,父进程调用了`WaitForSingleObject`函数,该函数会阻塞父进程直到指定的事件(在这里是子进程的结束)发生。这样,父进程就会等待子进程执行完毕后再继续执行后面的代码,确保了进程间的顺序执行。 实验程序中,父进程的源代码使用`CreateProcess`函数创建子进程,并传递参数以执行`lab1.2.exe`。子进程则负责打开并读取`date.txt`文件,然后向文件写入10个数字(48-57),最后读取并输出文件内容。通过这种方式,父子进程实现了数据的交互和协同工作。 实验二 线程共享进程数据 本实验旨在理解线程间的数据共享机制。在同一个进程中,我们创建了一个新的线程,并在这个线程中修改了全局变量`count`的值。线程可以访问和修改与其所在进程共享的内存空间,因此线程能够直接影响到其他线程或主程序的执行。 实验中,我们定义了一个静态全局变量`count`,在主线程中初始化为10,然后创建了一个新线程`ThreadProc`。这个线程会递增`count`并输出,同时也会等待5秒钟。主线程同样输出`count`的值,展示了线程如何改变共享数据并影响主线程的输出。 通过这两个实验,我们深入理解了操作系统中的进程和线程概念,以及它们在实际编程中的应用。实验过程让我们掌握了如何使用Windows API进行进程和线程的创建、管理,以及如何实现进程间的通信和线程间的资源共享。此外,实验还提升了我们对于操作系统底层工作原理的认识,对提升软件开发能力有着重要的实践意义。
剩余17页未读,继续阅读
- 粉丝: 9852
- 资源: 4073
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- PIPE物理层接口规范:PCIe SATA USB3.1 DisplayPort 和 Converged IO 架构
- SparkSQL进阶操作相关数据
- java制作的小游戏,作为巩固java知识之用.zip
- Java语言写的围棋小游戏 半成品A Go game written in golang(Semi-finished).zip
- 基于Java-swing的俄罗斯方块游戏:源码+答辩文档+PPT.zip
- florr map详细版
- shiahdifhiahfiqefiwhfi weifwijfiwqufiqweefijeq0jfe
- registry-2.8.3<arm/amd>二进制文件
- Kotlin接口与抽象类详解及其应用
- 51单片机加减乘除计算器系统设计(proteus8.17,keil5),复制粘贴就可以运行