"操作系统实验一:进程和线程的创建及观察"
需积分: 0 192 浏览量
更新于2024-01-05
收藏 6.06MB DOCX 举报
本文总结了两个实验,分别是进程和线程的创建实验以及共享变量的多线程操作实验。
第一个实验要求在Linux环境下编写一个应用程序an_ch2_1b,该程序不断输出以下信息:"Those output come from child,[系统时间]"。同时,编写另一个应用程序an_ch2_1a,该程序创建一个子进程并执行an_ch2_1b程序。观察程序运行的结果并解释现象。
通过运行结果观察,我们可以发现an_ch2_1b程序不断地输出信息"Those output come from child,[系统时间]"。这是因为an_ch2_1a程序创建了一个子进程,子进程会复制父进程的代码段、数据段和堆栈,从而执行an_ch2_1b程序的代码并输出相应的信息。由于子进程是独立于父进程的,它有自己的代码执行流程和独立的系统时间。因此,当an_ch2_1b程序输出信息时,显示的系统时间也不同。
第二个实验要求在Linux环境下编写一个控制台应用程序,该程序有一个共享的整型变量shared_var,初始值为0。程序创建一个线程并使其与主线程并发执行。主线程和新创建的线程都不断进行循环,并输出shared_var的值。主线程在循环中不断对shared_var执行加1操作,而新创建的线程则不断对shared_var执行减1操作。我们观察程序的运行结果。
根据运行结果观察,我们发现shared_var的值会不断地在主线程和新创建的线程之间进行加减操作。这是因为主线程和新创建的线程同时访问并操作了共享的变量shared_var,由于线程间的并发执行,它们的操作可能会相互冲突。主线程不断地执行加1操作,而新创建的线程不断地执行减1操作,这导致shared_var的值会根据操作的顺序不断变化。由于线程的执行是不确定的,因此共享变量的值可能会出现非期望的结果,需要进行同步控制以避免数据竞争和不一致性。
综上所述,通过这两个实验,我们可以深入理解进程和线程的创建以及多线程共享变量操作的原理和特点。在编写程序时,需要考虑并发执行可能带来的问题,并采取相应的同步策略来保证数据的正确性和一致性。这对于开发高效、稳定的并发程序非常重要。
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
H等等H
- 粉丝: 43
- 资源: 337
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析