第10章 ARMLinux进程线程开发实例.ppt

上传人:本田雅阁 文档编号:2565519 上传时间:2019-04-09 格式:PPT 页数:17 大小:430.51KB
返回 下载 相关 举报
第10章 ARMLinux进程线程开发实例.ppt_第1页
第1页 / 共17页
第10章 ARMLinux进程线程开发实例.ppt_第2页
第2页 / 共17页
第10章 ARMLinux进程线程开发实例.ppt_第3页
第3页 / 共17页
第10章 ARMLinux进程线程开发实例.ppt_第4页
第4页 / 共17页
第10章 ARMLinux进程线程开发实例.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《第10章 ARMLinux进程线程开发实例.ppt》由会员分享,可在线阅读,更多相关《第10章 ARMLinux进程线程开发实例.ppt(17页珍藏版)》请在三一文库上搜索。

1、www.embedu.org,嵌入式Linux C编程入门(第2版) (By Farsight),http:/ ARM Linux进程线程开发实例,本章目标 进程相关的基本概念 ARM Linux的进程描述符、任务结构以及文件描述符的概念 ARM Linux中线程的实现 Linux进程创建的相关API Linux进程执行的相关API Linux进程退出的相关API Linux进程等待的相关API Linux进程间通信的几种常见方法:如管道、信号、共享内存、消息队列等 Linux中线程创建和退出的相关API Linux中修改线程属性的方法 Linux中对线程的控制访问 Linux中多任务管理器的

2、实现 守护进程的编写,www.embedu.org,进程描述符及任务结构,(1)进程是一个独立的可调度的活动(E.Cohen,D.Jofferson)。 (2)进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源(P.Denning)。 (3)进程是可以并行执行的计算部分(S.E.Madnick,J.T.Donovan)。,www.embedu.org,Linux中进程描述符,Linux系统中包括下面几种类型的进程。 交互进程 批处理进程 守护进程 进程的创建、执行和终止,www.embedu.org,进程的调度,进程调度是指确定CPU当前执行哪个进程。 Linux进程调度策略是以优

3、先级调度为基础的,即优先运行优先级最高的进程。 在优先级调度的基础上,通过被分配的优先级的范围,又可以把进程分为实时进程(这里的实时是软实时)和一般进程。 实时进程优先于一般进程,并由特殊的调度策略来保证它们的(软)实时性。,www.embedu.org,Linux中进程调度算法,Linux 2.6内核中实现了一个O(1)的调度算法,也就是说每一次调度所需要的时间与该CPU内的总进程数无关。相比于以前的Linux内核调度算法最坏情况O(n)的复杂度要高效、精巧许多,而且由此也可以使得实时进程的实时性得到更加充分的保证。,www.embedu.org,Linux中的线程,Linux中实现线程的机

4、制非常独特。从内核的角度来说,它并没有线程这个概念。Linux把线程都当作进程来实现,仅仅将其视为使用某些共享资源的进程。每个线程都用有惟一隶属于自己的task_struct,所以在内核中,它看起来就像一个普通的进程(只是该进程和其他一些进程共享某些资源,如地址空间等)。,www.embedu.org,Linux中进程间通信,管道(Pipe)及有名管道(named pipe) 信号(Signal) 消息队列 共享内存 信号量 套接字(Socket),www.embedu.org,ARM Linux进程控制相关API,fork exec函数族 exit和_exit wait和waitpid,ww

5、w.embedu.org,管道通信,管道是Linux中进程间通信的一种方式,它把一个程序的输出直接连接到另一个程序的输入。 Linux的管道主要包括两种 无名管道 有名管道。,www.embedu.org,有名管道的创建,有名管道的创建可以使用函数mkfifo,该函数类似文件中的open操作,可以指定管道的路径和打开的模式。 在创建管道成功之后,就可以使用open、read、write这些函数了,www.embedu.org,信号通信,发送信号的函数:kill()、raise()。 捕获信号的函数:alarm()、pause()。 处理信号的函数:signal()。,www.embedu.or

6、g,共享内存,共享内存允许两个或更多进程共享一给定的存储区。因为数据不需要在各个进程之间复制,所以这是最快的一种进程间通信方式。使用共享内存时的关键点在于如何在多个进程之间对一给定的存储区进行同步访问。 共享内存的实现分为3个步骤 创建共享内存 映射共享内存 撤销映射的操作,www.embedu.org,消息队列,消息队列就是一个消息的链表。 消息队列的实现包括创建或打开消息队列、添加消息、读取消息和控制消息队列这4种操作,www.embedu.org,ARM Linux线程相关API,线程创建和退出 mutex线程访问控制 信号量线程控制,www.embedu.org,Linux守护进程,守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。,www.embedu.org,怎样创建一个简单的守护进程。,创建子进程,父进程退出 在子进程中创建新会话 改变当前目录为根目录 重设文件权限掩码 关闭文件描述符,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1