Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1363124
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: LINUX

2015-05-07 18:23:57

     linux进程状态机由之前的3态模型,后续转换成了5态模型,5态模型主要是软件系统的复杂性越来越高了,不能像3态模型中的将所有的进程全部放到内存,而是引入了一个task_interruptible,task_uninterruptible,将它换到交换区,所谓的可中断,是指进程是否可以因为事件被唤醒,而不是中断的原来语义,最多也只能说是中断进程的状态的这种牵强的解释。
     为什么会出现线程模型的概念?
      linux早期版本的多线程应用的支持并不好,线程的创建、调度都在用户态完成的pthread库,对于一个单进程的多线程的程序,单个线程阻塞有会导致其他的线程也阻塞,否则就要在开发时都使用非阻塞的技术开发。后来linux提供了LWP来更好的支持多线程应用的开发,轻量级的进程基本可以做到共享一些资源,地址空间,打开的文件等,因此就诞生了轻量级进程与线程的关联的实现方式,这样每个线程就由内核来调度了,一个线程睡眠之后,另一个线程就不用阻塞了。POSIX兼容的pthread库使用linux轻量级进程的情况有linux Threads,Native Posix Thread Library(NTPL),其实兼容二字就表现在pthread与轻量级进程的结合
     
阅读(872) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~