- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010-12-16 嵌入式系统操作系统 吴国伟 wgwdut@ 大连理工大学软件学院 重点回顾 进程描述 进程状态和切换 进程的创建、执行和销毁 多线程的创建 第十章 Linux的进程管理--进程并发控制 10.1 Linux信号机制 10.2 Linux进程互斥 10.3 Linux进程同步 10.4 Linux进程间通信机制 10.1 Linux信号机制 信号的基本概念 信 号 机 制 信号的基本概念 信号是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 软中断信号用来通知进程发生了异步事件。 进程之间可以互相通过系统调用kill发送软中断信号。 内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。 收到信号的进程对各种信号有三种不同的处理方法: 第一种是类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数来处理。 第二种方法是,忽略某个信号,对该信号不做任何处理,就象未发生过一样。 第三种方法是,对该信号的处理保留系统的默认值,这种缺省操作,对大部分的信号的缺省操作是使得进程终止。进程通过系统调用signal来指定进程对某个信号的处理行为。 在进程表的表项中有一个软中断信号域,该域中每一位对应一个信号,当有信号发送给进程时,对应位置位。 Linux 用进程的 task_struct 中存放的信息来实现信号机制。 Linux 的信号屏蔽机制是通过一个32 位变量的位掩码来决定的,所以Linux 最多只能接受32 种信号量。 信 号 机 制 信号机制: 内核如何向一个进程发送信号、进程如何接收一个信号、进程怎样控制自己对信号的反应、内核在什么时机处理和怎样处理进程收到的信号。 内核给一个进程发送软中断信号的方法,是在进程所在的进程表项的信号域设置对应于该信号的位。 内核处理一个进程收到的信号的时机是在一个进程从内核态返回用户态时。所以,当一个进程在内核态下运行时,软中断信号并不立即起作用,要等到将返回用户态时才处理。 有关信号的系统调用 系统调用signal是进程用来设定某个信号的处理方法 系统调用kill是用来发送信号给指定进程的。 pause和alarm是通过信号实现的进程暂停和定时器,调用alarm是通过信号通知进程定时器到时 Linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数) 实践环节 请使用介绍的信号处理函数,完成对信号的使用演示. 10.2 Linux进程互斥 linux内核主要通过两种方式实现: 内核信号量(semaphore)机制 自旋锁(spin_lock)机制 内核信号量 信号量和信号是不同的东西:信号是实现约定的固定的值,而信号量是一个变量记录着某些特定信息。 对信号量的操作只有两个:P, V 在Linux 内核中定义在信号量上的两个原子操作分别为: (1) 减一操作down():当进程希望访问互斥资源的话,它调用该操作,信号量的值减一; (2) 加一操作up():当进程访问互斥资源完毕,它调用该操作,信号量的值加一。 semaphore结构 在初始化时,它的值初始化为1,当然也可以初始化为其它的正整数,那样能允许多个进程同时访问互斥资源。 整型变量count:也就是信号量的值,如果该变量值非负的话,进程可以访问互斥资源,该变量值的改变只能由上面的两个原子操作来完成; 等待进程链表指针wait:如果某个希望访问互斥资源的进程在执行完减一操作之后发现信号量的值为负值的话,进程将会挂起,并进入该链表。 自旋锁 自旋锁的思想就是在不断循环中坚持反复尝试获取一个资源(一把“锁”),直到成功为止。 自旋锁最重要的特点就是进程在等待“锁”被释放时一直占据着CPU。 一般而言,只能在极短的操作过程中才使用自旋锁。特别是决不能在阻塞操作中持有锁。 10.3 Linux进程同步 同步是一种更为复杂的互斥,而互斥是一种特殊的同步。 Linux利用进程之间互相通讯,并和核心通讯,来协调它们的行为。 Linux内核中的同步机制:原子操作、内核信号量、自旋锁的API以及进程间通信的相关机制 原子操作 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。 原子操作API 9.3 Linux进程间通信机制 信号量 消息队列 管
您可能关注的文档
- (3)终身学习(最终版).ppt
- b煤矿b机电安全管理.ppt
- (2014年考试说明作文部分).ppt
- (4上)《甘罗》课本剧.ppt
- B级考试,成人学士学位英语考试指南.ppt
- C#Socket多线程编程实例.ppt
- (9)劳动力流动:工作调整、工作搜寻与迁移.ppt
- C#与.Net程序设计课件第9章.ppt
- (OK)第9章_教学实施-扈中平主编《现代教育学》(主讲:郭孔生).ppt
- C#基础教程程序类型Web应用.ppt
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
最近下载
- 小区物业保安员岗位职责.doc VIP
- 口腔癌术后口腔冲洗技术——中华护理学会团体标准解读.pptx
- 高中高考数学所有二级结论《完整版》.docx VIP
- 五年级上册数学试题-期末测试卷人教版(含答案).docx VIP
- 某智慧交通与智慧城管PPP项目建设项目智慧城市下阶段发展建议书.doc VIP
- 智慧城市建设(智慧交通与智慧城管)PPP项目-技术标书.docx VIP
- 湖北省“腾云”联盟2024-2025学年高三上学期8月联考物理试卷含答案.pdf
- 广州数控GSK980TDc车床CNC数控系统使用手册.pdf
- 湖北省腾云联盟2024-2025学年高三上学期12月联考物理试卷含答案.docx VIP
- 药液外渗的应急预案及处理PPT.pptx VIP
文档评论(0)