操作系统概念学习笔记 第五章 线程

概述:

  线程,有时称为轻量级进程,是CPU使用的基本单元,它由线程ID、程序计数器、寄存器集合和堆栈组成。

  线程与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源

  优点:

    1 响应度高

    2 资源共享:线程默认共享它们所属进程的内存和资源。能允许一个应用程序在同一地址空间内有多个不同的活动线程。

    3 经济:线程创建和上下文切换比进程更为经济

    4 多处理器体系结构的利用

  用户线程与内核线程:

    1 用户线程在内核之上支持,并在用户层通过线程库来实现。线程库提供对线程创建、调度和管理的支持而无需内核支持。由于内核并不知道用户级的线程,所以所有线程的创建和调度是在用户空间内进行的,而无需内核干预。用户级线程通常能快速地创建和管理,缺点是一个线程阻塞会引起整个进程阻塞。

    2 内核线程是由操作系统直接支持,内核在其空间内执行线程创建、调度和管理。内核线程创建和管理比用户线程慢,但是不容易阻塞进程,在多处理器环境下,内核能在不同处理器上调度线程。

 

 

多线程模型

  三种常用类型的线程实现:

    1 多对一模型:将许多用户级线程映射到一个内核线程。线程管理是在用户空间进行的,因而效率比较高,但是如果一个线程执行了阻塞系统调用,那么整个进程就会阻塞。多线程不能并行运行在多处理器上。一些线程库、不支持内核级线程的操作系统使用多对一模型。

    2 一对一模型:将每个用户线程映射到一个内核线程。提供了更好的并发功能。缺点是创建一个用户线程就需要创建一个相应的内核线程,开销影响程序性能,所以这种模型的绝大多数实现限制了系统所支持的线程数量。Windows NT 、Windows 2000、OS/2实现了一对一模型。

    3 多对多模型:多路复用了许多用户级线程到同样数量或更小数量的内核线程上。内核线程的数量可能与特定应用程序或特定机器有关,solaris 2、 IRIX、 HP-UX、 Tru64 UNIX都支持这种模型。

 

 

若干多线程问题

  取消:线程取消是在线程完成之前来终止线程的任务。

    要被取消的线程通常称为目标线程。目标线程的取消可在如下两种情况下发生:

      1 异步取消:一个线程立即终止目标线程

      2 延迟取消:目标线程不断地检查它是否应终止,这允许目标线程有机会按着有序方式来终止自己

  信号处理:信号可以被同步或异步接收,所有信号具有同样模式:

    1 信号是由特定事件的发生所产生的

    2 产生的信号要发送到进程

    3 一旦发送,型号必须要加以处理

    同步型号发送到执行操作而产生信号的同一进程

    异步信号是由运行进程之外的事件所产生

    每个信号可能由两种可能的处理程序中的一种来被处理:

      1 缺省信号处理程序

      2 用户定义的信号处理程序

    每个信号都有缺省信号处理程序(default signal handler),这是当处理信号时由内核运行的,可以用用户定义的信号处理程序函数来改写

    多线程程序发送信号,因为进程可能有多个线程,通常存在如下选择:

      1 发送信号到信号所应用的线程

      2 发送信号到进程内的每个线程

      3 发送信号到进程内的某些线程

      4 规定一个特定线程以接收进程的所有信号

    发送信号的方法依赖于所产生信号的类型

  线程池

    多线程服务器潜在问题:

      1 关于在处理请求之前用以创建线程的时间,以及线程在完成其工作之后就要被丢弃这一事实

      2 如果允许所有并发请求都通过新线程来处理,并没有限制数量,无限制的线程会用尽系统资源

    解决方案:线程池

    线程池:在进程开始时创建一定数量的线程,并放入到池中坐以等待工作。

    优点:

      1 通常用现有线程处理请求要比等待创建新的线程要快

      2 线程池限制了在任何时候可存在线程的数量,这对那些不能支持大量并发线程的系统尤为重要

    池中线程的数量可以通过系统中CPU的数量、物理内存的大小和并发客户的请求的期望值来启发地设置。更高级的线程池体系结构能动态调整池中线程的数量以适应使用情况

  线程特定数据

    同属一个进程的线程共享进程数据。有些情况下每个线程可能需要一定数据的自己的拷贝,这种数据称为线程特定数据。

 

 

Pthread线程

  Pthread是指POSIX标准定义的,它定义线程创建API和同步API。这是线程行为的规范,不是实现。

posted @ 2013-09-21 11:30  褐色键盘  阅读(262)  评论(0)    收藏  举报