联系我们contact

电 话:13902182895
联 系 人:张经理
地  址:天津市开发区第三大街豪威大厦1602
 

首页 > 新闻中心 > 进程和线程定义,概念,区别详解

新闻中心

进程和线程定义,概念,区别详解

    时间:2018-05-11


【转载】



进程的定义及基本概念:


狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。


组成


进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。


结构


结构特征:进程由程序、数据和进程控制块三部分组成。


状态


这里写图片描述


调度算法


实时系统中:FIFO(First Input First Output,先进先出算法),SJF(Shortest Job First,最短作业优先算法),SRTF(Shortest Remaining Time First,最短剩余时间优先算法)。 

交互式系统中:RR(Round Robin,时间片轮转算法),HPF(Highest Priority First,最高优先级算法),多级队列,最短进程优先,保证调度,彩票调度,公平分享调度。


线程的定义及基本概念


一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。


线程之间的关系


一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。


特点


轻型实体(线程的实体包括程序、数据和TCB。tcb用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。)

独立调度和分派的基本单位。()

可并发执行

共享进程资源(所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。 

进程和线程的区别


(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; 

(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源 

(3)线程是处理器调度的基本单位,但进程不是. 

(4)二者均可并发执行.


线程同步


Mutex(互斥锁):用来锁住共用的内存,同时只有一个线程访问

这时的解决方法,就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。后到的人发现钥匙架空了,就知道必须在门口排队等着了。这种做法叫做”信号量”(Semaphore),用来保证多个线程不会互相冲突。 

不难看出,mutex是semaphore的一种特殊情况(n=1时)。也就是说,完全可以用后者替代前者。但是,因为mutex较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。

总结:


进程是资源分配的基本单位,线程是调度的基本单位。进程包含线程,线程共用进程的资源。


 

上一篇:关于 Java 变量的可见性问题

下一篇:session与cookie的介绍和两者的区别之其相互的关系

天津红翔吉瑞是天津市一家正规的天津软件开发公司,从事专业的软件开发业务

首页 公司简介 新闻中心 案例中心 联系我们
天津红翔吉瑞网络科技发展有限公司 版权所有 津ICP备16005209号-2   电话:13902182895 联系人:张经理   地址:天津市开发区第三大街豪威大厦1602