进程与线程的产生

Posted on 2018-05-08 11:14  #大囚长#  阅读(389)  评论(0编辑  收藏  举报

摘自《操作系统原理》

线程产生的先提条件:
随着并行技术、网络技术和软件设计技术的发展,给并发程序设计效率带来了一系列新的问题,主要表现在:

  • 进程时空的开销大,频繁的进程调度将耗费大量处理器时间,要为每个进程分配存储空间限制了操作系统中进程的总数。
  • 进程通信的代价大,每次通信均要涉及通信进程之间或通信进程与操作系统之间的信息传递。
  • 进程之间的并发性粒度较粗,并发度不高,过多的进程切换和通信延迟使得细粒度的并发得不偿失。
  • 不适合并行计算和分布并行计算的要求,对于多处理器和分布式的计算环境来说,进程之间大量频繁的通信和切换,会大大降低并行度。
  • 不适合客户/服务器计算的要求。对于 C/S
    结构来说,那些需要频繁输入输出并同时大量计算的服务器进程(如数据库服务器、事务监督程序)很难体现效率。

线程和进程存在的根本原因:
如果说操作系统中引入进程的目的是为了使多个程序能并发执行,以改善资源使用率和提高系统效率,那么,在操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。
线程的产生思想:
把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来,前一项任务仍由进程完成,它作为系统资源分配和保护的独立单位,不需要频繁地切换;后一项任务交给称作线程的实体来完成,它作为系统调度和分派的基本单位,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。