操作系统-进程和线程-定义、引入目的、特征、区别与比较

1.进程的定义:
  进程是进程实体的运行过程,是对运行时程序的封装,是系统进行资源分配和调度的一个独立单位。
  
  
2.引入进程的目的 / 为什么要有进程:
  为了使进程实体能和其它进程实体并发执行,以提高资源利用率和系统吞吐量。
 
 
3.进程的特征:
 ①动态性 ②并发性 ③独立性 ④异步性
   
   
4.线程的定义:
  线程是进程的子任务,是CPU调度和分派的基本单位。
  
  
5.引入线程的目的 / 为什么要有线程:
  为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
  
  
6.线程与进程的比较 / 线程与进程的区别
  ①调度的基本单位:
  进程是资源分配的最小单位,线程是CPU调度的最小单位。当线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,必然会引起进程的切换。
  ②并发性(比较):
  不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,不同进程中的线程也能并发执行,这使得OS具有更好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量。(如有的应用程序需要执行多个相似的任务,如果仍采用传统的单线程的进程来执行该任务,则每次只能为一个客户服务,但如果在一个进程中可以设置多个线程,将其中的一个专用于监听客户的请求,则每当有一个客户请求时,便立即创建一个线程来处理该客户的请求。)
  ③拥有资源:
  进程可以拥有资源,并作为系统中拥有资源的一个基本单位。然而,线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源,除此之外,还允许多个线程共享该进程所拥有的资源。(每个线程中都应具有 一个用于控制线程运行的线程控制块TCB、用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。)
  进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。(资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。
  ④独立性:
  在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。进程间不会相互影响;线程一个线程挂掉将导致整个进程挂掉。
  ⑤系统开销:
  由于在创建或撤销进程时,系统都要为之分配或回收其它资源,如内存空间和I/O设备等。因此,操作系统所付出的开销将显著地大于在创建或撤销线程时的开销。类以地,在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。可见,进程规换的开销也远大于线程切换的开销。
  ⑥支持多处理机系统:
  进程适应于多核、多机分布;线程适用于多核。对于单线程进程,不管有多少处理机,该进程只能运行在一个处理机上。对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机上,使它们并行执行,加速了进程的完成。
  ⑦通信
  由于同一进程中的多个线程有相同的地址空间,致使它门之间的同步和通信的实现也变得比较容易。进程间通信IPC,线程可以直接读于进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。在有的系统中,线程的切换、同步和通信都无须操作系统内核的干预。
  ⑧其他
  一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。
进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值