1 理论课教案.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《》理论课教案 第章 一、整章授课思路 [900分钟] 1. 回顾、预习检查、任务、目标部分 [5分钟] 3 2. 信号(135分钟) 总结 [2分钟] 6 二、 学员问题汇总 6 三、 作业布置 7 课时:20课时 授课人:XXX 本章目标 熟练掌握进程间通信的方法 参考资料推荐 ——提供参考资料及经典书籍 Unix网络编程(第2卷 进程间通信) 了解Unix/Linux进程间通信的方式 掌握和熟练运用信号编程 掌握和熟练运用管道编程 掌握和熟练运用文件锁编程 了解IPC的基本原理 掌握和熟练运用信号量编程 掌握和熟练运用消息队列编程 掌握和熟练运用共享内存编程 本章重点 信号量 共享内存 本章难点 信号量 共享内存 整章授课思路 【900分钟】 本章依次讲解: 信号的基本理论 信号的发送 多信号的处理 管道的基本理论 管道的编程 使用管道的注意问题 FIFO的基本理论及运用 信号量的基本理论 信号量编程 消息队列的基本理论 消息队列编程 共享内存的基本概念 共享内存编程 回顾、预习检查、任务、目标部分 【5分钟】 根据PPT中提供的问题,逐一提问学员,注意给予学员引导,建立学员的信心。 进程间通信的方法有?信号、文件锁、管道、FIFO、信号量、共享内存、消息队列 哪一种方法最有效,最快?共享内存 哪些方法是system V IPC?:信号量、共享内存、消息队列 必须要求是亲属进程间才能通信的方法是?管道 信号【90分钟】 2.1 信号的基本理论 引入: 由前一章节的并发编程引入进程间通信,由中断来引入信号。 讲解要点: 信号的基本概念 信号是什么: 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。 ?信号是传送给进程的事件通知,? 它可以完成进程间异步事件的通信.? 导致信号产生的原因很多,? 但总体说来有三种可能:? (1)? 程序错误.? 当硬件出现异常,? 除数为 0 或者软件非法访问等情况时发生.? (2)? 外部事件.? 当定时器到达,? 用户按健中断或者进程调用 abort 等信号发送函数时方生.? (3)? 显式请求.? 当进程调用 kill, raise 等信号发送函数或者用户执行 shell 命令 kill 传递信号时发生.? 同样的,? 当进程收到信号时有三种处理方式:? (1)? 系统默认.? 系统针对不同的信号有不同的默认处理方式.? (2)? 忽略信号.? 信号收到后,? 立即丢弃.? 注意信号 SIGSTOP 和 SIGKILL 不能忽略.? (3)? 捕获信号.? 进程接收信号,? 并调用自定义的代码响应之.? –l命令,向学员讲解Linux支持的信号及前31个信号和后31个信号的差别。 附:不可靠信号和可靠信号(此处部分仅供教员参考) 不可靠信号 Linux信号机制基本上是从Unix系统中继承过来的。早期Unix系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,因此,把那些建立在早期机制上的信号叫做不可靠信号,信号值小于SIGRTMIN的信号都是不可靠信号。这就是不可靠信号的来源。它的主要问题是:进程每次处理信号后,就将对信号的响应设置为默认动作。在某些情况下,将导致对信号的错误处理;因此,用户如果不希望这样的操作,那么就要在信号处理函数结尾再一次调用signal(),重新安装该信号。 信号可能丢失,后面将对此详细阐述。 因此,早期unix下的不可靠信号主要指的是进程可能对信号做出错误的反应以及信号可能丢失。 Linux支持不可靠信号,但是对不可靠信号机制做了改进:在调用完信号处理函数后,不必重新调用该信号的安装函数(信号安装函数是在可靠机制上的实现)。因此,Linux下的不可靠信号问题主要指的是信号可能丢失。 可靠信号 随着时间的发展,实践证明了有必要对信号的原始机制加以改进和扩充。所以,后来出现的各种Unix版本分别在这方面进行了研究,力图实现可靠信号。由于原来定义的信号已有许多应用,不好再做改动,最终只好又新增加了一些信号,并在一开始就把它们定义为可靠信号,这些信号支持排队,不会丢失。同时,信号的发送和安装也出现了新版本:信号发送函数sigqueue()及信号安装函数sigaction()。POSIX.4对可靠信号机制做了标准化。但是,POSIX只对可靠信号机制应具有的功能以及信号机制的对

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档