Linux 程序设计实验指导书
多进程(线程)并发执行
一、实验目的
1、对理论课中学习的程序、进程、线程等概念作进一步的理解,明确程序、
进程和线程的区别;
2、加深理解进程(线程)并发执行的概念,认识多进程(线程)并发执行的
实质;
3、观察进程(线程)争夺资源的现象,分析其过程和原因,学习解决进程
(线程)互斥的方法;
4、了解 Linux 系统中多进程之间通过信号量、消息队列、共享内存通信的基
本原理和应用方法。
5、掌握线程利用条件变量进行同步的方法。
二、实验内容
1、模拟公司会计与出纳行为,会记收账并往公司账户存钱,出纳从公司同一
账户取钱用于开支,假定公司只有一个出纳和一个会计。编程实现会计与出纳
行为。
2、不采取同步措施情况下,记录会计与出纳分别对账户进行一次存取操作的
结果,分析问题。
3、解决 2 中的问题。
4、如果出纳取钱时发现账户钱不够,便通知会计收账并存钱,等到会计告诉
出纳已存足够钱以后,重新取钱。而会计只有收到出纳的账户钱不够的通知时,
才收账并存钱。用线程及条件变量机制编程实现这一问题。
三、实验原理
多进程、线程的并发执行、进程及线程控制、进程及线程同步、条件变量等
四、实验步骤
1、打开虚拟机,并运行 linux 操作系统;
2、进入 vim 编辑器,根据实验内容,分别编写源程序,保存并退出;
3、编译并运行程序;
4、记录实验结果