1 / 6
文档名称:

操作系统实验报告.docx

格式:docx   大小:31KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告.docx

上传人:xiaobaizhua 2022/7/28 文件大小:31 KB

下载得到文件列表

操作系统实验报告.docx

相关文档

文档介绍

文档介绍:课程实验报告
课程名称: 线程控制实验
专业班级:_
学 号:
姓 名:
报告日期: 2013年12月03日
计算机科学与技术学院
线程控制实验
一、目的和要求
通过本实验掌握在Linux操作系统中遵循Posix非公共资源调用部分同时执行从而 节省了时间;在调用公共资源时会产生等待时间,从而产生了延时。
四、心得体会
虽然安装Linux很久了,但是还没有试过编程,所以去了实验室啥也不会, 想百度发现自己的机子连不了网,只好仔细阅读老师给的线程控制实验文档,试 着把例子运行了一下,之后又请教了大神,观摩了许久,才完成了程序。由于模 仿例子编程,在助教检查时回答问题时全答错了,看来上课不够用心,对程序及 进程的理解不够深刻。本次实验之后,我终于明白,并发执行并不是只有一个子 进程睡眠时另一个子进程才开始运行,各子进程同时开始并发执行,同时在助教 的讲解下,对各程序函数意义有了深刻认识。
源程序:
多进程:
#includevstdio・h> #includevpthread・h> #>
#include<>
#include<>
#include<>
#define MAX 25000
#include <sys/>
pthread_mutex_t mutex;
float sum=0;
void child(int *k)
{
int i;
float j;
float sum1=0;
for(i=1;i<MAX;i++)
{
srand(time(0));
j=(float)rand()/rand(); pthread_mutex_lock(&mutex); sum=sum+j;
pthread_mutex_unlock(&mutex); sum1=sum1+j;
} printf("Thread%d:sum%d=%.4f\n",*k,*k,sum1); sleep(1);
}
int main(void)
{
int k1=1,k2=2,k3=3,k4=4;
pthread_t child1,child2,child3,child4;
struct timeval start;
struct timeval end;
gettimeofday(&start,NULL);
pthread_mutex_init (&mutex,NULL);
pthread_create(&child1, NULL, (void *)&child, &k1); pthread_create(&child2, NULL, (void *)&child, &k2); pthread_create(&child3, NULL, (void *)&child, &k3); pthread_create(&child4, NULL, (void *)&child, &k4); pthread_join(child1,NULL); pthread_join(child2,NULL); pthread_join(child3,NULL); pthread_join(child4,NULL);
pr