免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1720 | 回复: 0
打印 上一主题 下一主题

【用TCP/IP进行网际互联-卷二】进程的同步 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-12 21:45 |只看该作者 |倒序浏览
1.互斥
s=screate(1) //产生信号量
wait(s)                              wait(s)
...code1...                         ...code2...
signal(s)                            signal(s)
任何时候只有一个进程执行关键代码

2.队列的同步
生产者(队列满时阻塞)                           消费者(队列空时阻塞)
s1=screate(N)(N为队列长度)(表示所剩空间)
s2=screate(0)            (表示队列中项数)
生产者:wait(s1)  //所剩空间-1                  消费者:wait(s2) //队列项数-1
       ...insert item...                            ...extract item...
       signal(s2) //队列项数+1                        signal(s1) //可用空间+1

在端口的消息队列中就使用这种机制

2.IP协议与传输协议之间的数据报传递

由信号量控制的缓冲区
|-1-|-2-|...|-k-|                      UDP数据报端口
       |
       |                               |  | |
    TCP输入进程                          \ | /
       |                                  |
       |                                  |
      |—|                                |
      |—| 发送到TCP的报文段端口            |
      |—|                               |
       |                                |
        \                              /
         \                            /
          ————    ——————————
                 \  /
                IP进程

TCP有独立的进程接收IP进程的报文段,因而IP和TCP之间必须使用进程间通信的机制进行通信
UDP模块不作为独立的进程存在,而直接将报文根据目的协议端口号放在相应的端口中,使应用程序可以从这些端口中提取数据报。

3.网络硬件和应用程序之间数据经历路径总结

                                     输出进程结构


输入进程结构



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74413/showart_1963259.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP