操作系统进程和线程实验报告.docx

上传人:b****5 文档编号:6093425 上传时间:2023-01-03 格式:DOCX 页数:10 大小:1.75MB
下载 相关 举报
操作系统进程和线程实验报告.docx_第1页
第1页 / 共10页
操作系统进程和线程实验报告.docx_第2页
第2页 / 共10页
操作系统进程和线程实验报告.docx_第3页
第3页 / 共10页
操作系统进程和线程实验报告.docx_第4页
第4页 / 共10页
操作系统进程和线程实验报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

操作系统进程和线程实验报告.docx

《操作系统进程和线程实验报告.docx》由会员分享,可在线阅读,更多相关《操作系统进程和线程实验报告.docx(10页珍藏版)》请在冰豆网上搜索。

操作系统进程和线程实验报告.docx

操作系统进程和线程实验报告

一.进程的创建

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

 在语句p1=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了.这两个进程的几乎完全相同,将要执行的下一条语句都是if(p1==0).而fork函数有三种返回值。

(1)在父进程中,fork返回新创建子进程的进程ID;

   

(2)在子进程中,fork返回0;

   (3)如果出现错误,fork返回一个负值;

所以,子进程中p1==0,输出Iamchild。

父进程p1>0,输出Iamparent。

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

在语句p1=fork()之前,只有父进程执行,putchar(‘x’)语句将x放入父进程的缓冲区。

当成功创建子进程后,子进程复制父进程的缓冲区。

接着子进程运行输出xby,父进程输出xay。

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

在语句p1=fork()之前,只有父进程执行,putchar(‘x’)语句将x放入父进程的缓冲区。

当成功创建子进程后,子进程复制父进程的缓冲区。

接着子进程输出b后,执行exit(0)系统调用终止执行。

父进程输出a后继续输出y。

所以父进程输出xay而子进程输出xb。

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

语句while(p1=fork()==-1)创建了子进程和父进程。

父进程执行到wait()时,等待子进程的终止信号,当子进程执行完exit(0)后,父进程才继续执行。

实现了父进程等待子进程。

1.编辑源程序。

2.编辑结果如下。

child.c

child_parent.c

3.编译和运行程序。

4.运行解释结果

语句while(p1=fork()==-1)创建了子进程和父进程。

父进程执行wait(0)等待子进程的终止信号。

子进程加载child程序,输出Iamachild。

子进程结束发出终止信号给父进程,父进程收到终止信号,继续执行,最后也执行exit(0),终止。

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

pthread_create()函数创建进程。

第一个参数为指向线程标识符的指针,及程序中的id1,id2,

第二个参数设置线程属性,程序中没设置,即为NULL,第三个参数是运行函数的起始地址,用指针指向myThread函数的起始地址,最后一个参数是运行函数的参数。

该程序创建了两个进程,id1,id2。

在线程要运行的函数中设置了sleep函数,两个进程交替执行输出Thisisthe1/2stpthread

created。

最后pthread_join函数为线程阻塞的函数,等待线程的结束,当函数返回是,被等待的线程的资源被收回。

1.编辑源程序。

2.编辑结果如下。

3.编译和运行程序。

4.运行解释结果

函数pthread_mutex_init生成了一个互斥锁。

该程序创建了两个线程。

两个线程交替执行,并使用互斥锁,对公共变量number进行递增。

实现了两个线程对一个数的递加。

最后使用pthread_join函数阻塞。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1