《unix进程的通信》ppt课件
55页1、第10章 UNIX系统的进程通信,进程是在特定的环境中执行的 进程执行中需要进行进程间的协调 进程间的协调机制是进程通信 本章描述UNIX进程通信的机制和方法,进程通信基本概念,进程通信随着相关技术的发展不断增加复杂化度、灵活性,通常包括控制信息传递和大批量信息传递。 1. 通信方式 1) 主从式-通信进程间有主从之分 2) 会话式-用请求/服务方式完成通信 3) 消息或邮箱机制-通过消息缓冲或邮箱完成通信 4) 共享存储区通信-通过共享缓冲区通信,2. Unix中进程通信包括三种: .基本通信用于传递进程间的控制信息; .管道通信将管道文件作为通信的介质,传递进程间的信息; .IPC(Inter Process Commuation)通信用于进程间大量的数据传送。,UNIX基本通信,1. 锁文件通信 通信进程双方将某个文件的建立与撤消作为一个锁标志,即约定:在某个指定目录中(通常会是/tmp目录)查找是否有一个双方约定好的锁文件存在。 存在时完成一种处理 不存在时完成另一种操作,例: 两进程P1和P2试图访问一个不能同时进入的临界资源打印机时,设定一个锁文件,执行中: P1查询锁文件
2、是否存在,若不存在P1创建锁文件lock_file,然后使用该资源; 使用完后释放该资源并删除lock_file; 如锁文件存在P1等待一个时间再进行锁文件的查询。 P2也执行与P1相似动作达到对共享临界资源的访问。 可以用系统调用creat、unlink及库函数sleep完成,2. 用记录/文件锁定进行通信 通过对文件或文件中的记录锁定实现通信,在UNIX中有一些加锁的系统调用和函数,可实现: 建议型锁定-文件/记录可被锁定,进程执行时访问判断锁定的位置,决定是否能执行相应的访问。 例:多个进程对某文件都具有访问权,通过对文件锁定位置的判别,实现进程间的合作,并访问文件内容。 这种锁对rogue(诬赖)进程没有控制。,强制型锁定-确定一个锁协议,提供附加的安全性。即对文件做每一个read及write系统调用时检测锁信息,满足时访问,否则不能访问(包括rogue 进程)。 例: 如某文本文件x.dat(不可执行),它对某进程组ID=12的进程开放,同时用chmod关闭进程组ID=12的执行位,构成强制型锁定。 通过系统调用fcntl及库函数lockf可完成文件中记录的锁定。,系统调用f
3、cntl: 功能:对文件或文件中部分内容进行锁定。 头文件:, 调用方式:int fcntl(int fid, int cmd, *arg*); 参数说明: fid有效的整数,表示已打开的文件描述符 cmd整数值,说明fcntl完成的行为,在头文件fcntl.h中 *arg*选项,若采用锁时引用了一个flock结构,fcntl.h中定义的常量: F_SETLK: 设置或删除一个锁定,行为基于flock结构 F_SETLKW: 与F_SETLK相同,但记录不可用时阻塞 F_GETLK: 通过flock结构返回锁定状态信息,第三个参数引用的flock结构: typedef struct flock short l_type; /*锁定类型*/ short l_whence; /*开始位置*/ off_t l_start; /*相对位移*/ off_t l_len; /*长度(0=文件尾)*/ long l_sysid; /分布的进程ID,适应分布体系*/ pid_t l_pid; /与文件相关的进程ID*/ long pad4; /*备用*/ flock_t;,信号,信号的概念 signa
4、l函数 发送一个信号 kill, raise alarm和pause函数 可靠的信号机制,信号的概念,Signal 软中断 处理异步事件的机制 每个信号有一个名字(以SIG开头) 定义为一个整数 () 如何产生一个信号 按终端键,硬件异常,kill(2)函数,kill(1)命令,软件条件,.,Linux/UNIX中的信号,Signals in Linux/UNIX (contd),信号处理,忽略信号 不能忽略的信号: SIGKILL, SIGSTOP 一些硬件异常信号 执行系统默认动作 捕捉信号,signal函数,改变指定signum信号的处理方式. #include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); (返回值: 如果成功则返回先前的handler,否则返回SIG_ERR) “handler”: 用户定义的函数,或 SIG_DEF,或 SIG_IGN,signal函数(contd),程序示例 static void sig_usr(int);
《《unix进程的通信》ppt课件》由会员shaoy****1971分享,可在线阅读,更多相关《《unix进程的通信》ppt课件》请在金锄头文库上搜索。
集团公司复工复产疫情防控工作方案
村肺炎疫情实施方案
公司经营科新型冠状病毒突发应急机制
春节企业复工和疫情防控工作的实施方案
复工复产新型肺炎防控应急工作方案
党员对新型冠状病毒疫情防控心得
大学生党员疫情防控工作心得体会
工地停工后的复工方案
抗击防控新型肺炎疫情心得感悟
肺炎疫情防控宣传工作方案
2020教师抗击疫情防控工作心得体会
抗击肺炎疫情学生倡议书
全面抗击新型肺炎疫情倡议书
新型冠状病毒感染的肺炎防治知识竞赛题
新型冠状病毒肺炎防控方案
公务员学新冠肺炎疫情工作讲话感想体会
公司复工疫情防控实施方案
教师疫情防控工作心得体会
新型冠状病毒感染的肺炎办公及生产经营场所防控措施
校园新型冠状病毒感染肺炎疫情防控工作方案
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2024-05-03 43页
2023-11-15 30页
2023-11-16 31页