• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

ISOArron

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

进程同步

4.1 并行编程

  1. 并行编程方法
    1. 程序员识别并形成分,利用操作系统支持的进程(线程)机制提供的系统调用或高层的并幸苦函数,生成进程(线程)并使其执行并行子任务
  2. 操作系统的支持
    1. 相关系统调用
      1. fork():创建一个新进程。子进程继承父进程的程序空间,复制父进程的数据区和用户栈区。
            1. 父进程返回值为子进程的pid
            2. 子进程返回值为0
      2. exit(status):进程结束。从内核中删除调用进程,并将status传回给父进程。
      3. wait(&status):等待子进程结束。
            1. 当有多个子进程时,任意一个子进程调用结束后,就会将控制返回调用者。
            2. 子进程的pid作为返回值
      4. waitpid(pid,...):等待pid所指的进程结束。
      5. exec类系统调用:改变进程映像,将原有的映像作废,用新的执行文件初始化进程映像。
  3. 多进程和多线程的区别
    1. 多线程共享全局变量,而进程之间需要通过消息传递系统调用交换数据。进程在内核空间是共享的。
    2. 进程安全性高
    3. 线程开销小

4.2 进程的同步和互斥

同步关系----------直接制约关系:协调等待,时间先后顺序所产生
互斥关系----------间接制约关系:竞争使用独占式资源所产生
  1. 同步问题
    1. 进程P1执行S1,S3进程P2执行S2,则P1在执行S3之前必须等待P2执行完S2。

  1. 临界段问题
    1. 实质是:进程之间互斥使用资源

消费者进程和生产者进程产生了互斥,若按照T0-3的代码顺序执行,将导致生产者加入队列头的缓冲区消失!
      1. 临界资源:一次仅允许一个进程使用的资源。
      2. 临界段:相关进程必须互斥执行的程序段。
 

posted on 2021-09-16 11:44  ISOArron  阅读(50)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3