《arm嵌入式linux系统开发技术详解》
1--什么是多任务 ??
当操作系统使用某种策略允许两个或多个进程并发共享一个cpu时,他称为多任务运行,或多道程序运行。
在规定的时间片过期或某些事件发生前,一直执行某个进程。然后,操作系统切换到另一个进程。这种切换十分迅速,给人一种这些
进程都是同时执行的错觉。而是事实上,同一时刻在一个cpu上只能激活一个进程。这种进程间的切换在所有进程完成前一直进行。并发共享策略决定何时切换进程
。该策略有操作系统后其他进程强制执行。多任务可以分为三个级别:对话级、进程级、线程级。
个人理解:
操作系统 同一时刻,只能执行一个进程, 有 并发共享策略决定 进程切换。 切换时间非常短,早在一种同一时刻很多进程执行的错觉。
1.1 对话级多任务
对话间的多任务有用户控制。
。。。。。
个人理解:
可以由用户在界面、控制台等等 切换各个 应用程序。
1.2
进程级多任务
进程是运行着的程序,是操作系统执行任务的基本单位。进程具备文本、数据和堆栈片断,以及他自己的资源。资源可以是文件、对象句柄、设备、互斥量、管道,等等。操作系统管理进程以及他的资源。每个进程有着独立的运行环境。进程和进程间是相互颗粒但有时相互联系的,一个进程运行出错不会影响到别的进程运行,两个进程之间可以通过管道等方式通信,或者通过信号哦量的工具同步运行。因此,进程是实现多任务处理的核心单元。
个人理解:
1.3
进程完成单独的任务,每个任务有可能有自己的控制流程。这些流程有轻量级的进程构成,简称线程。进程的线程并发执行称作线程级多任务。举例:
当用户使用鼠标或键盘上的按键从一个对话移到另一个对话时,发生的是对话间的多任务。用户从当前对户切换到另一个对话,师大当前对话成为后台对话,同时激活了另一个对话,这时将发生上下文切换。进行上下文切换任务的进程或线程抢占或释放了对处理器的控制权,而另一个进程或线程随即释放或得到处理器的控制权。
在窗口系统中每时每刻倒在进行着上下文切换,而进程级的上下文切换代价十分昂
贵,频繁的切换不但不能体现多任务系统的优势,反而降低了系统的整体反映速度。
线程是轻量级的进程,他有进程创建,并与创建它的进程工作在同一内存空间中,不但可以与同一进程中的其他线程共享数据和文件描述符,而且线程间的切换过程也是十分快捷和低成本的。因此越来越多的多任务处理在底层都采取线程来实现。
问一下自己?????
什么是进程??
进程线程的关系??
为什么要采用线程??
1.4 多任务处理的特点
对话间的多任务是一个高级别的多任务,他受用户控制。进程间的多任务以及多线程在低级别上实现。有设计他的程序员控制。程序员创建进程,并决定每个进程的线程数
,任务的优先级,以及什么时候挂起、什么时候终止。
(进程的线程数量 有 程序员 在创建进程时 决定)
图 如下:
多任务的目的是增加系统能完成的工作量,提高资源的利用率。多任务通过保持系统资源(处理、I/o等)的繁忙,并防止他们在系统同中处于非激活状态时使用资源,是的多个任务能共享系统资源。
当今的流行操作系统基本上都支持多进程和多线程。