您的位置:首页 > 运维架构 > Linux

17-嵌入式linux的多任务编程--0--多任务

2010-06-10 21:41 288 查看
《arm嵌入式linux系统开发技术详解》



1--什么是多任务 ??



当操作系统使用某种策略允许两个或多个进程并发共享一个cpu时,他称为多任务运行,或多道程序运行。

在规定的时间片过期或某些事件发生前,一直执行某个进程。然后,操作系统切换到另一个进程。这种切换十分迅速,给人一种这些

进程都是同时执行的错觉。而是事实上,同一时刻在一个cpu上只能激活一个进程。这种进程间的切换在所有进程完成前一直进行。并发共享策略决定何时切换进程

。该策略有操作系统后其他进程强制执行。多任务可以分为三个级别:对话级、进程级、线程级。



个人理解:

操作系统 同一时刻,只能执行一个进程, 有 并发共享策略决定 进程切换。 切换时间非常短,早在一种同一时刻很多进程执行的错觉。



1.1 对话级多任务



对话间的多任务有用户控制。

。。。。。



个人理解:

可以由用户在界面、控制台等等 切换各个 应用程序。



1.2

进程级多任务



进程是运行着的程序,是操作系统执行任务的基本单位。进程具备文本、数据和堆栈片断,以及他自己的资源。资源可以是文件、对象句柄、设备、互斥量、管道,等等。操作系统管理进程以及他的资源。每个进程有着独立的运行环境。进程和进程间是相互颗粒但有时相互联系的,一个进程运行出错不会影响到别的进程运行,两个进程之间可以通过管道等方式通信,或者通过信号哦量的工具同步运行。因此,进程是实现多任务处理的核心单元。



个人理解:



1.3

进程完成单独的任务,每个任务有可能有自己的控制流程。这些流程有轻量级的进程构成,简称线程。进程的线程并发执行称作线程级多任务。举例:



当用户使用鼠标或键盘上的按键从一个对话移到另一个对话时,发生的是对话间的多任务。用户从当前对户切换到另一个对话,师大当前对话成为后台对话,同时激活了另一个对话,这时将发生上下文切换。进行上下文切换任务的进程或线程抢占或释放了对处理器的控制权,而另一个进程或线程随即释放或得到处理器的控制权。



在窗口系统中每时每刻倒在进行着上下文切换,而进程级的上下文切换代价十分昂
贵,频繁的切换不但不能体现多任务系统的优势,反而降低了系统的整体反映速度。

线程是轻量级的进程,他有进程创建,并与创建它的进程工作在同一内存空间中,不但可以与同一进程中的其他线程共享数据和文件描述符,而且线程间的切换过程也是十分快捷和低成本的。因此越来越多的多任务处理在底层都采取线程来实现。



问一下自己?????

什么是进程??

进程线程的关系??

为什么要采用线程??



1.4 多任务处理的特点





对话间的多任务是一个高级别的多任务,他受用户控制。进程间的多任务以及多线程在低级别上实现。有设计他的程序员控制。程序员创建进程,并决定每个进程的线程数
,任务的优先级,以及什么时候挂起、什么时候终止。

(进程的线程数量 有 程序员 在创建进程时 决定)

图 如下:



多任务的目的是增加系统能完成的工作量,提高资源的利用率。多任务通过保持系统资源(处理、I/o等)的繁忙,并防止他们在系统同中处于非激活状态时使用资源,是的多个任务能共享系统资源。



当今的流行操作系统基本上都支持多进程和多线程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: