第四章多能程 第4章多线程 4.1线程的概念 42线程的状态和线程管理 43多线程的实现
第四章 多线程 第4章 多线程 ◼ 4.1 线程的概念 ◼ 4.2 线程的状态和线程管理 ◼ 4.3 多线程的实现
第四章多能程 4.1线程的概念 4.1.1线程的引入 4.1,2线程的概念
第四章 多线程 4.1 线程的概念 ◼ 4.1.1 线程的引入 ◼ 4.1.2 线程的概念
第四章多能程 4.11线程的引入 进程引入的目的: ■使得多个程序并发执行,以改善资源利用率 提高系统的吞吐量 ■进程机制存在的问题 进程是资源的拥有者,在进程的创建、撤消和 切换中,系统必须为之付出较大的时空开销 填写相关表格(PCB表,各种队列,地址映射、 I/O文件表格) 地址空间转换 ■两次模式开关(用户模式——内核模式—用户模 式)
第四章 多线程 4.1.1 线程的引入 ◼ 进程引入的目的: ◼ 使得多个程序并发执行,以改善资源利用率、 提高系统的吞吐量。 ◼ 进程机制存在的问题 ◼ 进程是资源的拥有者,在进程的创建、撤消和 切换中,系统必须为之付出较大的时空开销。 ◼ 填写相关表格(PCB表,各种队列,地址映射、 I/O文件表格) ◼ 地址空间转换 ◼ 两次模式开关(用户模式——内核模式——用户模 式)
第四章多能程 4.11线程的引入 可题的原因 ■进程是被调度的单元,同时又拥有资源。 解决办法:引入线程概念 线程作为CPU调度单位,而进程只作为其他 瓷源分配单位。 线程只拥有必不可少的资源,如:线程状态、寄存 器上下文和栈 ■线程同样具有就绪、阻塞和执行三种基本状态
第四章 多线程 4.1.1 线程的引入 ◼ 问题的原因: ◼ 进程是被调度的单元,同时又拥有资源。 ◼ 解决办法:引入线程概念 ◼ 线程作为CPU调度单位,而进程只作为其他 资源分配单位。 ◼ 线程只拥有必不可少的资源,如:线程状态、寄存 器上下文和栈 ◼ 线程同样具有就绪、阻塞和执行三种基本状态
第四章多能程 4.1.2线程的概念 定义( Thread 线程是进程内相对独立的、可调度的执行单元 性质 线程是进程内一个相对独立的可执行单元 线程是操作系统的基本调度单元 ■每个进程在创建时,至少需要为它创建一个线程 线程可以创建其它线程 ■同一进程的多个线程共享这个进程的资源 ■线程之间需要通信和同步机制 线程有生命周期,在这个周期中有状态变化
第四章 多线程 4.1.2 线程的概念 ◼ 定义(Thread) ◼ 线程是进程内相对独立的、可调度的执行单元 ◼ 性质 ◼ 线程是进程内一个相对独立的可执行单元 ◼ 线程是操作系统的基本调度单元 ◼ 每个进程在创建时,至少需要为它创建一个线程 ◼ 线程可以创建其它线程 ◼ 同一进程的多个线程共享这个进程的资源 ◼ 线程之间需要通信和同步机制 ◼ 线程有生命周期,在这个周期中有状态变化
第四章多能程 4.1.2线程的概念 优点 ■创建和撤销线程的开销比进程小 ■线程之间开关的开销比进程小 ■线程通信不需要内核参与,简单有效 方便和简化了用户的程序设计
第四章 多线程 4.1.2 线程的概念 ◼ 优点 ◼ 创建和撤销线程的开销比进程小 ◼ 线程之间开关的开销比进程小 ◼ 线程通信不需要内核参与,简单有效 ◼ 方便和简化了用户的程序设计
第四章多能程 4.2线程的状态和线程管理 线程的状态 就绪状态:线程已经具备执行条件,等待调 度程序分给CPU; ■运行状态:线程正在CPU上运行; ■等待状态:线程正在等待某事件发生
第四章 多线程 4. 2 线程的状态和线程管理 ◼ 线程的状态 ◼ 就绪状态:线程已经具备执行条件,等待调 度程序分给CPU; ◼ 运行状态:线程正在CPU上运行; ◼ 等待状态:线程正在等待某事件发生
第四章多能程 Create and initialize thread object Reinitialize Initialized Place in ready queue Wait is complete Terminated Waiting Ready Thread Kernel stack s on Execution outswapped Select for an object completes handle execution Preempt Transition Running Preempt(or time Standby quantum ends) Context-switch to it and start its execution(dispatching) Windows2000线程状态
第四章 多线程 Windows 2000线程状态
第四章多能程 Runnable Pick to Standby Switch Run Preempted Ready y Running Unblock/resume Resource Block Terminate Available Resource available Suspend Transition Waiting Terminated Unblock Resource not available Not runnable Windows nt的线程状态
第四章 多线程 Resource Available Unblock/Resume Resource Available Unblock Resource Not Available Block/ Suspend Terminate Switch Pick to Run Preempted Transition Waiting Terminated Not Runnable Runnable Ready Standby Running Windows NT的线程状态
第四章多能程 4.2线程的状态和线程管理 ■线程的描述 每个线程由一个相应的TCB,其中的信息包括 线程状态 线程不运行时,保存的现场信息(PC、PSW、GR、 SI) 个执行堆栈 存放局部变量的主存区
第四章 多线程 4. 2 线程的状态和线程管理 ◼ 线程的描述 ◼ 每个线程由一个相应的TCB,其中的信息包括 ◼ 线程状态 ◼ 线程不运行时,保存的现场信息(PC、PSW、GR、 SI) ◼ 一个执行堆栈 ◼ 存放局部变量的主存区