湖北汽院嵌入式系统开发实验重点分析.docVIP

  • 43
  • 0
  • 约1.61万字
  • 约 15页
  • 2016-06-08 发布于湖北
  • 举报

湖北汽院嵌入式系统开发实验重点分析.doc

实验二 嵌入式 Linux 多线程通信实验 程( thread)是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源, 如文件描述和信号处理。 P( S): ① 将信号量 S 的值减 1,即 S=S-1; ② 如果 S≥0,则该进程继续执行;否则该进程状态置为阻塞状态,进程 PCB 排入信号量 PCB 队列末尾,放弃 CPU,等待 V 操作的执行。 V( S): 1 将信号量 S 的值加 1,即 S=S+1; 2 如果 S≤0,释放信号量队列中第一个 PCB 所对应的进程,将进程状态由阻塞态改为就 绪态。执行 V 操作的进程继续执行。 #include stdio.h #include unistd.h #include pthread.h #include semaphore.h #define MAXSIZE 10 int stack[MAXSIZE]; int size=50; int front=-1,rear=0; sem_t avail,full; //avail 表示可用的空缓冲区,full 表示已存放产品的缓冲区 //生产者 pthread_t provider,customer,end; void provider_fun(void) //full 表示已存放产品的缓冲区 { int i=1; sleep(5); while(i=size)

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档