"操作系统实验一:进程和线程的创建及观察"

需积分: 0 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的值会根据操作的顺序不断变化。由于线程的执行是不确定的,因此共享变量的值可能会出现非期望的结果,需要进行同步控制以避免数据竞争和不一致性。 综上所述,通过这两个实验,我们可以深入理解进程和线程的创建以及多线程共享变量操作的原理和特点。在编写程序时,需要考虑并发执行可能带来的问题,并采取相应的同步策略来保证数据的正确性和一致性。这对于开发高效、稳定的并发程序非常重要。