您的位置:首页 > 其它

进程与线程

2015-06-03 19:30 246 查看
进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,进程包含了正在运行的一个程序的所有状态的信息。

(1)动态性:可以动态地创建、结束;

(2)并发性:可以独立调度并占用处理机运行;

(3)独立性:不同进程相互之间不影响;

(4)制约性:因共享数据和资源二而相互制约。

进程和程序之间的联系:

(1)进程是处于执行态程序的抽象,

程序=文件(静态);进程=执行中的程序=程序+执行状态。

(2)同一个程序的多次执行过程为不同的进程;进程执行需要内存(保存)和CPU(执行指令)。

进程和程序之间的区别:

(1)进程是动态的,程序是静态的;程序是有序代码的集合,进程是程序的执行有核心态和用户态。

(2)进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。

(3)组成不同:进程组成包括程序、数据和进程控制块。

进程控制块PCB,Process Control Block,操作系统管理控制进程运行所用信息的集合,是进程存在的唯一标志。包括,进程标识信息,处理机现场保存,进程控制信息(调度和状态信息,进程间通信信息,存储管理信息,进程占用的资源,有关数据结构连接信息)。

进程状态:

进程创建:系统初始化、用户请求、进程创建进程系统调用。

进程等待(阻塞):系统服务某种操作无法马上完成,需要的数据还没有到达。

进程会被抢占(运行变为就绪):高优先级进程就绪、进程执行当前时间用完。

进程唤醒(等待到就绪):被阻塞的进程需要的资源满足了,等待的事件到达;只能被别的进程或操作唤醒。





三状态进程模型:运行Running、就绪Ready、等待(阻塞)Blocked

启动:NULL→创建;进入就绪队列:创建→就绪;

被调度:就绪→运行;时间片用完、被抢先:运行→就绪

挂起进程模型:

处于挂起状态的进程映像在磁盘上,目的是减少进程占用内存。

等待挂起状态Block-suspend:进程在外存并等到某事件出现;

就绪挂起状态Ready-suspend:进程在外存,只要进入内存即可运行

挂起Suspend:把一个内存转到外存,(内存)等待→等待挂起,就绪→就绪挂起,运行→就绪挂起。(外存)等待挂起→就绪挂起;

激活Active:就绪挂起→就绪;等待挂起→等待



线程:是进程的一部分,描述指令流执行的状态,是进程中指令执行流的最小单元,是CPU调度的基本单元,(寄存器、堆栈)。

线程 = 进程------(减去)共享资源



优点是:一个进程可以同时多个线程;各个线程之间可以并发执行;各个线程之间可以共享地址空间和文件资源。

缺点是:之间没有隔离,一个线程崩溃,会导致其所属进程的所有线程崩溃。



线程和进程的比较:

(1)进程是资源分配的单位,线程是CPU调度单位;

(2)进程拥有一个完整的资源平台,而线程只独享指令流执行的必要资源,如寄存器和栈。

(3)线程具有就绪、等待、运行三种基本状态和状态间的转换关系;

线程能减少并发执行的时间和空间开销:线程创建和终止时间比进程短,同一进程内的线程切换时间比进程短,可以不通过内核直接通信。

线程的实现方式:

用户线程:在用户空间;由一组用户级的线程库函数来完成线程的管理,不依赖操作系统内核,切换速度快;缺点是线程发起系统调用而阻塞时,整个进程进入等待状态;不支持基于线程抢占CPU,只按进程分配CPU时间。

内核线程:在内核中实现;

轻量级进程:在内核中实现,支持用户线程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: