进程与线程

[b][size=large]本文围绕以下三个部分展开: [/size][/b]

[b][size=large]一、进程的定义、特征和基本状态[/size][/b]
[b][size=large]二、进程通信[/size][/b]
[b][size=large]三、线程[/size][/b]
[b][size=large]四、进程与线程的比较[/size][/b]


[b][size=large]一、进程的定义、特征和基本状态[/size][/b]

[size=medium][b]1. 定义[/b][/size]

[size=medium]进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。[/size]

[size=medium]进程是一个可拥有资源的独立单位;同时又是一个可独立调度和分配的基本单位。[/size]


[size=medium][b]2. 特征[/b][/size]

[size=medium][b](1)[/b]结构特征[/size]

[size=medium]进程实体:由 程序段、相关的数据段和PCB(Process Control Block,进程控制块)三部分构成。[/size]

[size=medium]PCB:通常的程序是不能并发执行的。为使程序(含数据)能独立运行,应为之配置一个PCB。[/size]

[size=medium]在许多情况下所说的进程,实际上是指进程实体。丽日,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程的PCB。[/size]

[size=medium][b](2)[/b]动态性[/size]

[size=medium]进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤销而消亡。”[/size]

[size=medium][b](3)[/b]并发性[/size]

[size=medium]指:多个进程实体同存于内存中,且能在一段时间内同时运行。[/size]

[size=medium][b](4)[/b]独立性[/size]

[size=medium]指:进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。[/size]

[size=medium][b](5)[/b]异步性[/size]

[size=medium]指:进程按各自独立的、不可预知的速度向前推进。或者说,进程实体按异步方式运行。[/size]


[size=medium][b]3. 进程的三种基本状态[/b][/size]

[size=medium][b](1)[/b]就绪(Ready)状态[/size]

[size=medium]当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。[/size]

[size=medium]在一个系统中,处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为 [b]就绪队列[/b]。[/size]

[size=medium][b](2)[/b]执行状态[/size]

[size=medium]进程已获得CPU,其程序正在执行。[/size]

[size=medium][b](3)[/b]阻塞状态[/size]

[size=medium]正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞。把这种暂停状态称为阻塞状态(等待状态/封锁状态)。[/size]

[size=medium]通常将这种处于阻塞状态的进程也排成一个队列。有的系统则根据阻塞原因的不同,把处于阻塞状态的进程排成多个队列。[/size]

[size=medium][b](4)[/b]状态相互转换的条件和过程[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/1453/1669a879-37d0-3910-8d96-5efcd88b9ac9.png[/img][/align]

[size=medium][b][color=red]①[/color][/b]处于就绪状态的进程,在调度程序为之分配了处理剂之后,该进程便可执行,由就绪状态转变为执行状态。[/size]

[size=medium][b][color=red]②[/color][/b]如果分配给当前进程的时间片已完而被暂停执行时,该进程由执行状态又转变为就绪状态。[/size]

[size=medium][b][color=red]③[/color][/b]如果因发生某事件而使进程的执行受阻(例如,进程请求访问某临界资源,而该资源正被其它进程访问时),使之无法继续执行,该进程将由执行状态转变为阻塞状态。[/size]


[b][size=large]二、进程通信[/size][/b]

[size=medium][b]1. 概念[/b][/size]

[size=medium]指:进程之间的信息交换。[/size]

[size=medium][b]2. 低级进程通信[/b][/size]

[size=medium]进程之间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。在进程互斥中,进程通过只修改信号量来向其他进程表明临界资源是否可用。[/size]

[size=medium][b]3. 高级进程通信[/b][/size]

[size=medium][b](1)[/b]指:用户可直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。[/size]

[size=medium]操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。这样就大大减少了通信程序编制上的复杂性。[/size]

[size=medium][b](2)[/b]随着操作系统的发展,用于进程之间实现通信的机制也在发展,并已由早期的低级进程通信机制,发展为能传送大量数据的高级通信工具机制。[/size]

[size=medium][b]4. 进程通信的类型[/b][/size]

[size=medium][b](1)[/b]共享存储器系统(Shared-Memory System)[/size]

[size=medium]在共享存储器系统中,相互通信的进程 [b]共享某些数据结构[/b] 或 [b]共享存储区[/b] ,进程之间能够通过这些空间进行通信。[/size]

[size=medium][b](2)[/b]消息传递系统(Message passing system)[/size]

[size=medium]它是当前应用最为广泛的一种进程间的通信机制。在该机制 中,进程间的数据交换是以格式化 的消息/报文(message)为单位的。[/size]

[size=medium]程序员直接利用操作系统提供的一组通信命令(原语),不仅能实现大量数据的传递,而且还隐藏了通信的实现细节,使通信过程对用户是透明的,从而大大简化了通信程序编制的复杂性,因而获得了广泛的应用。[/size]

[size=medium][b](3)[/b]管道通信[/size]

[size=medium]“管道”:指用于连接一个读进程和一个写进程,以实现它们之间通信的一个共享文件,又名 pipe 文件。[/size]


[b][size=large]三、线程[/size][/b]

[size=medium][b]1. 概念[/b][/size]

[size=medium]通常一个进程中包含多个线程,每个线程都作为利用CPU的基本单位,是花费最小开销的实体。[/size]


[size=medium][b]2. 属性[/b][/size]

[size=medium][b](1)[/b]轻型实体。线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证其独立运行的资源。[/size]

[size=medium][b](2)[/b]独立调度和分派的基本单位。[/size]

[size=medium][b](3)[/b]可并发执行。[/size]

[size=medium][b](4)[/b]共享进程资源[/size]


[b][size=large]四、进程与线程的比较[/size][/b]

[size=medium][b]1. 调度[/b][/size]

[size=medium]线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位。线程基本上不拥有资源,这样线程便能轻装前进,从而可显著提高系统的并发程度。[/size]

[size=medium][b]2. 并发性[/b][/size]

[size=medium]进程之间可并发执行,一个进程中的多个线程之间也可以并发执行,使得操作系统具有良好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量。[/size]

[size=medium][b]3. 拥有资源[/b][/size]

[size=medium]进程拥有资源,线程自己不拥有系统资源(只有一点必不可少的资源)。[/size]

[size=medium][b]4. 系统开销[/b][/size]

[size=medium]在创建或撤销进程时,操作系统付出的开销明显大于线程创建或撤销时的开销。[/size]

[size=medium]线程切换的代价也小于进程切换的代价。[/size]

[size=medium]在同步和通信的实现方面,线程也比进程容易。[/size]


[size=large]整理时重点参考:[color=red]《计算机操作系统》(第三版) -- 汤小丹、梁红兵、哲凤屏、汤子瀛 编著[/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值