多任务,多进程,多线程解析

来源:互联网 发布:centos 6.5 64位 镜像 编辑:程序博客网 时间:2024/05/16 12:32

先弄清几个基本概念:
进程和线程都是操作系统中的概念,主要是面向计算机而言的。进程是执行中的程序,包括当前活动(通过处理器的值和处理器寄存器的内容来表示)。通常还包括进程栈,数据段和堆。程序本身不是进程,程序只是被动实体,如存储在磁盘上包含一系列指令的文件,而进程是活动实体,它有一个程序计数器来表示下一条要执行的指令和相关资源的集合。当一个可执行文件装入内存时,程序才能成为进程。每个进程可能处于下列状态之一:新建,运行,等待,就绪,终止。
线程也可以被看做轻量级进程。在引入了线程的操作系统中,一个进程可以有一到多个线程。在传统操作系统中,把进程作为拥有资源的基本单位和独立调度,分派的基本单位,而在引入线程的操作系统中,把线程作为调度和分派的基本单位,进程作为资源拥有的基本单位。因此,线程实际是要共享所属进程的内存的资源。
而任务一般是面向用户的。每个运行的任务就是操作系统所做的一件事情,例如你在用字处理软件编辑文档。而多任务则是多个任务可以同时进行,通常一个任务对应一个到多个进程。因此,多任务是以多进程为基础的。

操作的系统的多进程实现了多任务并发执行,程序的多线程实现了进程的并发执行。多任务、多进程、多线程的前提都是要求操作系统提供多任务、多进程、多线程的支持。例如现代的操作系统linux 等都有多任务、多进程、多线程的支持。
进程拥有进程控制块(PCB),操作系统通过进程控制块来识别进程的存在。PCB中一般包括的信息有:进程状态,程序计数器,CPU寄存器,CPU调度信息,内存管理信息,记账信息(CPU时间,实际使用时间等),I/O状态信息。操作系统通过进程调度来实现多任务的并发执行。调度的模式有两种:协作(非抢占)调度和抢占式调度。CPU调度可在以下四种环境中发生:
       1.当一个进程从运行状态切换到等待状态。
       2.一个进程从运行状态到就绪状态
       3.一个进程从等待状态到就绪状态
       4.一个进程终止
当调度只在上述1和4两种情况下发生时,称调度方案是非抢占的,否则是抢占的。

多线程也是在实际应用中因为有需要才发展起来的。例如为了减少程序延迟,增加程序可处理的实例数量等。多线程模型拥有4个优点:响应度高,资源共享,经济,多处理器体系结构的利用。

原创粉丝点击