4 任务管理与调度

4 任务管理与调度

ID:13882107

大小:112.50 KB

页数:8页

时间:2018-07-24

4 任务管理与调度_第1页
4 任务管理与调度_第2页
4 任务管理与调度_第3页
4 任务管理与调度_第4页
4 任务管理与调度_第5页
资源描述:

《4 任务管理与调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、任务的管理与调度一、进程和线程这一节我们要解决三个问题:什么是进程?什么是线程?进程和线程之间的区别?1、进程的定义提问:什么是进程,什么是程序,进程和程序之间的区别?程序是存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体。也就是说存储到文件系统中的一个文件。进程:正在执行的一个文件,是动态的。程序是静止的,程序是动态的。2、进程四要素我们学习操作系统的时候,有的同学学过操作系统,对进程有一定的了解,有没有学过操作系统?操作系统原理当中描述的进程是什么?进程是资源分配的最小单位,线程是调度的基本单位,这是很抽象的

2、,操作系统中很多概念都是很抽象的。那么怎么去衡量,到底什么是进程,实际上在linux操作系统当中,我得到进程的四要素,我们从内核情景分析摘录出来,很经典,讲怎么衡量一个进程。第一、作为一个进程,要有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他进程公用。这是最基本的条件。第二、有进程专用的内核空间堆栈。程序在执行的过程当中都需要有堆栈的。在参数传递的时候要用到堆栈,局部变量分配的时候要用到堆栈,用户空间用到用户空间堆栈,进程在内核空间运行的时候要有内核空间堆栈,因此要有内核空间堆栈。第三、在内核中有一个task

3、_struct数据结构,即通常所说的“进程控制块”。有没有同学听说过PCB?进程控制块有什么作用?保存进程的状态以及调度信息,这是操作系统原理所提出来的PCB这样的概念,在Linux系统当中,PCB这个数据结构实际上对应了task_struct数据结构,也就是说task_struct数据结构就充当了PCB,保存了进程状态信息,要想成为一个进程,还有PCB。有了这个数据结构,进程才能够成为内核调度的基本单位接收内核的调度。第四、有独立的用户空间,非常关键。如果有独立的用户空间,则肯定是进程;如果不满足,还要看,如果没有独立的用

4、户空间,但是还有用户空间,那分为两种:一种是完全没有用户空间,一种是和别人共享的用户空间。如果完全没有用户控件,就是内核线程;如果有共享的用户空间,就是用户线程。在Linux系统当中存在:进程,用户线程,内核线程这三个概念,你以后经常会遇到这三个概念,怎么去区分它们?仅仅这两个条件就可以区分。你以后去面试,面试操作系统相关的开发,尤其是嵌入式开发,经常会问到进程和线程的区别,怎么回答这个问题?首先,说一下操作系统原理中怎么说进程和线程,进程是资源分配的最小单位,线程是调度的最小单位;第二,在Linux系统当中怎么去划分的,把

5、这个图给他画出来,非常清晰。如果说你把这个图画出来,那对这个内核真正的理解,不是说仅仅是看过几页书而已。要背下来的。3、线程的引入很多同学没有学习过操作系统,对线程及相应的概念并不是很清楚。线程技术在上个世纪60年代被提出来的。提问:为什么有了进程,还要引入线程?使用线程究竟有哪些好处?第一,线程非常“节俭”。创建一个子进程,代码段和父进程是共享的,数据段是共享的么?要拷贝,需要重新建立的,堆栈是共享的么?也不是,也是需要重新建立的。如果我们使用线程呢,所有这些都是共享的,这样,就少了很多额外的工作,这就是节俭的一个表现之一

6、。第二,有多个线程,同属于同一个进程的,使用同样的数据段,还需要管道,消息队列实现两个进程间的通信么?不需要,只需要简单定义一个变量,比如说定义一个全局变量,属于进程的数据段,可以让属于这个进程的所有线程都可以看到这个变量,这可以使线程的通信变得简单。优点:多线程程序作为一种多任务、并发执行与多进程具备同样的优点。引入线程的概念后,可以把进程和线程的使用分为以下几种模型:单进程/单线程模型(如MS-DOS):整个系统只有一个进程、一个线程。单进程/多线程模型:在单进程/多线程模型中,整个系统有一个进程、多个线程多进程/单线程

7、模型(如传统的UNIX):在多进程/单线程模型中,整个系统有多个进程,每个进程只有一个线程多进程/多线程模型(如WindowsNT、Solaris、Mach等):在多进程/多线程模型中,系统有多个进程,每个进程又可包含多个线程大多数实时内核都把整个应用当做一个没有定义的进程来对待,应用则被划分为多个任务的形式来进行处理,即单进程/多线程模型,简称任务模型。二、任务1、任务的定义:任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核调度的单位。2、任务的特性:动态性:任务状态是不断变化的。任务状态一般分为就绪态、

8、运行态和等待态。在多任务系统中,任务的状态将随着系统的需要不断进行变化。并行性:系统中同时存在多个任务,这些任务在宏观上是同时运行的。异步独立性:每个任务各自按照相互独立的不可预知的速度运行,走走停停3、任务的内容①任务包含:代码:一段可执行的程序。数据:程序所需要的相关数据(变量、工作空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。