设为首页 加入收藏

TOP

Linux下创建进程线程以及通信技术的使用
2014-11-24 07:23:48 来源: 作者: 【 】 浏览:1
Tags:Linux 创建 进程 线程 以及 通信技术 使用

一、实验目的


学习使用Linux的系统调用和pthread线程库编写程序,进一步理解、掌握操作系统进程、线程概念,利用信号量解决进程同步与互斥。


二、实验内容


1.Fibonacci序列是0, 1, 1, 2, 3, 5, 8, .... ,通常它可以表示为:


f ib0 = 0


f ib1 = 1


f ibn = f ibn 1 + f ibn 2


编写一个C程序,使用系统调用fork()创建两个子进程P1和P2。他们的任务如下:


1)子进程P1打印自己的pid,然后使用exec(族)系统调用显示当前目录下文件和子目录的详细信息。


2)子进程P2中生成Fibonacci序列,序列的个数在程序命令行中作为参数传入,例如,参数为7,则子进程P2生成的Fibonacci序列为0、1、2、3、5、8、13。通过某种进程通信机制(共享内存、管道、消息等IPC机制),子进程P2把生成的Fibonacci序列发送给父进程,并由父进程输出(打印)Fibonacci序列。在父子进程通信的过程中必须实现同步,以使在子进程完成生成序列之前,父进程不会输出Fibonacci序列。使用wait()系统调用可以实现各进程的同步。执行必要的错误检查以保证不会接受命令行参数传递来的负值。


2. 编写程序实现生产者-消费者问题。使用linux的Pthread线程库,创建2个生产者线程和2个消费者线程。生产者线程计算当前的时间,把时间、第几次计算时间的序号(循环次数)和线程ID作为一个消息,把消息放入缓冲区,消费者线程从缓冲区读出一个消息并显示消息。缓冲区大小为5个,每个生产者线程生产10个消息,每个消费者线程消费10个消息,即生产和消费分别为20次。


生产者及消费者线程之间需要实现同步和互斥,Pthread线程库的信号量机制可以完成这一任务。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇编译Linux最新内核详细教程 下一篇Linux 块设备驱动 实例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)
·有没有Java swing教 (2025-12-25 15:19:09)
·Start, Stop, and Di (2025-12-25 14:50:57)
·C语言入门教程:零基 (2025-12-25 14:50:54)