四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
学号: 2014141463051 姓名: 韩睿 专业:软件 班级: 3 第 六 周 课程名称 操作系统课程设计 实验课时 实验项目 多线程及同步互斥编程 实验时间 2016年4月6日 1 实验目的 1) 理解多线程编程模型 2) 理解同步互斥编程模型 实验环境 X86,WindowsXP,VMware5.0,RedHat Linux 9.0, SSHSecureShellClient-3.2.9 Lab1 --- 协同数据计算 两个数据文件1.dat和2.dat,它们的内容分别为1 2 3 4 5 6 7 8 9 10和 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 , 设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和乘运算)。 具体要求: ? ? ? ? 在一个程序源文件内实现,文件命名为final.c 线程1从1.dat将数据读文件读到buf1中; 线程2从2.dat 将数据读到buf2中; 当buf1,buf2有数据时,线程3将buf1和buf2的结果相加和乘法处理,并将结果显示出来。 实验内容(算法、程序、步骤和方法) Lab1 --- 协同数据计算 运行结果截图: 实验结果及有关截图 注:将本文档及源程序文件final.c压缩为一个文件,命名为week07.rar,提交到课程网站。 通过本实验,我掌握了:复习了 C 语言文件读取,练习了多线程编程和同步互斥。 小 结 目前我存在的问题有:对信号量的使用仍不熟练