下载此文档

临界区.ppt


文档分类:行业资料 | 页数:约43页 举报非法文档有奖
1/43
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/43 下载此文档
文档列表 文档介绍
共享存储器程序设计 Programming with Shared Memory Part 1 Heavyweight processes 重量级进程 Pthreads 标准线程 Threads( 线程) Accessing shared data( 访问共享数据) Critical sections( 临界区) Lecture 9 Shared memory multiprocessor system( 共享存储器多处理机) 任一处理器可访问任何存储单元。存在单一编址空间( single address space ), 即每个存储单元都由一个地址范围内的特定地址所指定。共享存储多处理器系统编程利用共享存储来保存数据,所有的处理器都可访问这些数据,而不需要把数据通过消息传递发送到目的地。 Shared Memory Programming 通常,共享存储编程比较方便,但由于需要多处理器访问共享的数据,程序员需要小心控制这些处理器。随着共享存储系统,特别是多核系统 multi-core systems 的出现,为它们编写程序变得越来越重要。 Methods for Programming Shared Memory Multiprocessors ?使用重量级进程 Using heavyweight processes. ?使用线程 Using threads. Example Pthreads , Java threads ?用完全新的程序语言实现并行- 不流行. Example: Ada . ?修改现有的顺序程序设计语言以构成新的并行语言 Example: UPC ( http:// / unified parallel C) ?piler directives and libraries 的顺序程序设计语言 Example: OpenMP We will look mostly at threads and OpenMP Using Heavyweight Processes 使用重量级进程操作系统像 UNIX 大都是基于进程的概念设计的. 处理器的时间被多个进程分享,处理器的使用从一个进程切换到另一个进程. 可以在固定的时间间隔切换,也可以是当活动的进程的执行发生停滞时切换. Fork-join 结构语句 FORK-JOIN construct UNIX System Calls 当 fork 被成功调用,向子进程返回 0,向父进程返回子进程 ID 若 fork 调用失败,向父进程返回-1 UNIX System Calls SPMD model with different code for master process and forked slave process. #include < > #include < > #include < > #include <sys/ > int main(){ pid_t pid ; int status = -10; pid =fork(); if(pid ==0) { printf("i am in son proc\n"); printf("pid = % d\n ", getpid () );// 取得当前进程的 PID int t = wait(&status ); //wait 会导致父进程阻塞,直到它的 1个子进程结束或者父根本没有子进程。//这个调用会返回该子进程的 PID 。如果有错误,返回-1 printf("t = % d\n ", t); printf("status = % d\n ", status); //子进程下面没有子进程, wait 返回-1, status 也未变化 exit(0); }else { sleep(3);// 执行挂起一段时间(毫秒) printf("i am in father proc\n"); int t = wait(&status ); // wait(&status ) 返回子进程的 pid // wait() 会等待子进程执行结束,然后回过来的执行父进程 printf("t = % d\n ", t); printf("status = % d\n ", status); }}

临界区 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数43
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2105194781
  • 文件大小917 KB
  • 时间2017-01-16