线程与进程的区别以及联系

在操作系统中,线程与进程是非常重要的概念,深刻地理解它们很有必要。那么,什么是线程,什么是进程呢?它们之间又有什么区别什么联系呢?

进程是具有独立功能的程序关于某个数据集合的一次运行活动,可以申请和运行资源,是系统资源分配和调度的最小单位。一个程序可以对应一个或多个进程,一个进程可以对应一个程序或一段程序。进程由程序(描述进程要完成的功能)、数据集合(程序在执行时所需要的数据和工作区)、PCB控制块(包含进程的描述信息和控制信息,进程存在的唯一标志)组成,在进程创建时,创建PCB,进程结束时,撤销PCB。

PCB包含进程标识信息(进程的内部(系统分配给它的标示)和外部标示符(name of a person)),处理机状态信息(通用寄存器值,指令计数器值,程序状态字PSW值,用户栈指针值),进程调度信息(进程状态,进程优先权,进程调度的其他信息),其他信息(程序及数据指针,进程同步和通讯机制,资源清单,连接指针)。

进程的状态分为就绪(准备执行),执行(Running:占用处理机,单处理机环境中,某一时刻仅一个进程占用处理机),阻塞(Blocked:等待某事件发生才能执行,如等待I/O完成等),新建(进程已经创建,但未被OS接纳为可执行进程),终止(Terminated:因停止或取消,被OS从执行状态释放)5个状态。

进程的调度:

调度是指,在一个队列中,按照某种方法(算法),选择一个合适的个体的过程。

进程调度的算法:

FCFS(先来先服务算法):同时适合于三种调度。非剥夺调度方式,实现简单,看似公平。注意:后进入队列的运行时间较短的进程或者IO型进程而言,可能需要较长时间的等待。对段进程不公平。

短进程优先(对FCFS的改进):非剥夺。难以准确预测进程的执行时间。可能导致长进程饥饿。采用非剥夺调度方式,未考虑进程的紧迫程度,不适合于分时系统和事务处理系统

时间片轮转调度法:用户数多时进程急剧增加。时间片大小会影响处理性能。进程切换会增加系统额外开销。太长太短都不好。综合考虑系统最大用户数,响应时间,系统效率等因素

基于优先级的调度算法。

反馈调度法。

实时系统(Real-Time System)。

线程:线程是CPU分配和调度最小的单位,一个进程可以有一个或者多个线程(最少有一个)。引入线程是为了减少程序并发执行时系统所付出的额外开销,使系统具有更好的并发性。线程自身基本上不拥有系统资源,只拥有少许运行中必不可少的私有资源,线程可与同属一个进程的其他线程共享进程的全部资源。进程中的所有线程共享该进程的状态。三种基本状态:就绪执行阻塞

时间: 2024-10-10 11:08:21

线程与进程的区别以及联系的相关文章

iOS线程和进程的区别和联系

线程和进程的区别主要在于它们是不同的操作系统资源管理方式.进程有独立的地址空间,一个进程崩溃后,在保护模式的影响下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径.线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等同于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些.但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程. 线程是CPU独立运行和独立调度的基本单位(可以理解为一个进程中执行的代码

iOS_线程和进程的区别与联系

呼~明天有一家面试,不知道为啥,有点小紧张... 首先是线程和进程的联系: 线程和进程都是由操作系统所负责的程序运行的基本单元,系统利用该基本单元实现对应用的并发性. 接下来就是线程和进程的区别: 线程和进程最大的区别就是它们是操作系统的两种资源管理方式,进程有独立的地址空间,一个进程奔溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同的执行路线,线程有自己的堆栈和局部变量,但是线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但

线程与进程的区别以及对多线程并发的理解

转自: http://blog.sina.com.cn/s/blog_12f5264ff0102v8eq.html http://blog.csdn.net/suxinpingtao51/article/details/8113509 http://blog.csdn.net/cqkxboy168/article/details/9026205/ 一.线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程.

线程与进程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源 (3)线程是处理器调度的基本单位,但进程不是. 4)二者均可并发执行. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有

操作系统(10 线程和进程的区别 --非法操作)

1.并发执行:多进程和多线程. 2.  apache 和 iis 对比(多进程和多线程的之间区别) apache 是多进程实现的,iis是多线程实现的. 区别: 1>效率上:线程效率比进程效率高. 2>稳定性:线程和进程比,线程不稳定,一个线程出现问题,多个线程一起出现问题.而进程是独立的,有自己独立的空间. 3>安全性:进程是隔离的,单独的.线程之间可以互相访问 3.平时会遇到一些非法操作,非法操作的原理是? 因为操作系统分为两个态,用户只能存在于用户态,不能越界到内核态.只要用户越界

线程与进程极其区别

1.进程和线程 1.1 概述: 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行. 相对进程而言,线程是一个更加接近于执

C语言中线程和进程的区别

线程是指进程内的一个执行单元也是进程内的可调度的实体,与进程的区别 1) 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 2) 并发性:不仅进程之间可以并发执行,同一个进程之间的多个线程可以并发执行 3) 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但是可以访问隶属于进程的资源 4)系统开销: 在创建或撤销进程时,由于系统都要之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销

线程和进程的区别(详细)

1.线程的基本概念 概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源.一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行. 好处 :(1)易于调度. (2)提高并发性.通过线程可方便有效地实现并发性.进程可创建多个线程来执行同一程序的不同部分. (3)开销少.创建线程比创建进程要快,所需开销很少.. (4)利于充分发挥多处

Python线程与进程的区别

进程的基本概念 概念进程就是一个程序在一个数据集上的一次动态执行过程. 进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成:数据集则是程序在执行过程中所需要使用的资源:进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志. 线程的基本概念 概念线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资