第11章分布式系统中的进程及处理器 研究分布式系统中线程 怎样组织处理器和进程 分布式系统中的处理器分配和调度
第11章 分布式系统中的进程及处理器 • 研究分布式系统中线程 • 怎样组织处理器和进程 • 分布式系统中的处理器分配和调度
111线程(1) 例:服务器有时因等待磁盘而进入阻塞状态 如果服务器有多个线程 当一个线程睡眠时 第二个线程就可以投入运行 引入多线程 为了得到更大的吞吐量和更高的效率
11.1 线程(1) • 例:服务器有时因等待磁盘而进入阻塞状态 如果服务器有多个线程 当一个线程睡眠时 第二个线程就可以投入运行 引入多线程 为了得到更大的吞吐量和更高的效率
计算机 进程 线程 程序计数器 (a)三个各只有一个线程的进程 (b)-个拥有三个线程的进程
(a)三个各只有一个线程的进程 (b)一个拥有三个线程的进程
线程(2) 线程 一个进程的线程都在同一个地址空间中 拥有自己的程序计数器和堆栈 线程严格按顺序执行 在多处理器系统中,它们真正并行执行 线程可以建立子线程,因等待系统调用而阻 塞 当一个线程被阻塞时,同一进程中的另一个 线程可以运行
线程(2) 线程 • 一个进程的线程都在同一个地址空间中 拥有自己的程序计数器和堆栈 线程严格按顺序执行 • 在多处理器系统中,它们真正并行执行 • 线程可以建立子线程,因等待系统调用而阻 塞 • 当一个线程被阻塞时,同一进程中的另一个 线程可以运行
线程(3) 线程共享cPU 可以共享相同的全局变量 ·共享同一个打开文件集,子进程、定时器、 信号等
线程(3) • 线程共享CPU • 可以共享相同的全局变量 • 共享同一个打开文件集,子进程、定时器、 信号等
线程(4 每个线程都可以存取任何一个虚拟地址 个线程能够读、写、甚至完全破坏另一个 线程的堆栈 在线程之间没有设置保护措施 (1)不可能;(2)没必要 进程通常来自不同的用户,可能会发生冲突 用户建立多个线程是为了协同工作,而不是 冲突
线程(4) • 每个线程都可以存取任何一个虚拟地址 一个线程能够读、写、甚至完全破坏另一个 线程的堆栈 • 在线程之间没有设置保护措施 (1)不可能;(2)没必要 • 进程通常来自不同的用户,可能会发生冲突 • 用户建立多个线程是为了协同工作, 而不是 冲突
线程(6) 进程包括的项 线程包括的项 地址空间 程序计数器 全局变量 堆栈 打开文件 寄存器集 子进程 子线程 定时器 信号 状态 信号量 计帐信息
线程 (6) 线程包括的项 程序计数器 堆栈 寄存器集 子线程 状态 进程包括的项 地址空间 全局变量 打开文件 子进程 定时器 信号 信号量 计帐信息
线程(8) 线程状态:运行,阻塞,就绪,完成 运行状态,正在使用cPU,处于活动状态 阻塞状态,等待另一线程激活它 就绪状态,已被调度,只要一轮到就运行 完成状态,已退出,但还没被父线程收回
线程 (8) 线程状态:运行,阻塞,就绪,完成 • 运行状态,正在使用CPU,处于活动状态 • 阻塞状态,等待另一线程激活它 • 就绪状态, 已被调度,只要一轮到就运行 • 完成状态,已退出,但还没被父线程收回
1112线程使用 进程中线程的三种组织方式 (a)调度员/工作者模式 (b)队列模式 (c)管道模式
11.1.2 线程使用 进程中线程的三种组织方式 (a) 调度员/工作者模式 (b) 队列模式 (c) 管道模式
文件服务器进程 调度员线程 共享缓存块 工作线程 信箱 (a)调度员/工作者模式
(a)调度员/工作者模式