线程模型 口每个线程拥有自己的栈 局部变量、返回地址 Thread 2 Thread 1 hread 3 Thread 1s 日自目 Thread 3's stack stack Kernel 2002-6-28 东北大学软件所于戈 第四章分布式进程管理
2002-6-28 东北大学软件所 于戈 第四章 分布式进程管理 11 线程模型 ❑每个线程拥有自己的栈 – 局部变量、返回地址
线程的用途 口例1:包含3个线程的字处理器 三三三E K Keyboard Disk 2002-6-28 东北大学软件所于戈 第四章分布式进程管理
2002-6-28 东北大学软件所 于戈 第四章 分布式进程管理 12 线程的用途 ❑例1:包含3个线程的字处理器
例2:多线程的Web服务器 Web server process Dispatcher thread Worker thread User space Web page cache Kernel Kernel space Network connection 2002-6-28 第四章分布式进程管理 13 东北大学软件所于戈
2002-6-28 东北大学软件所 于戈 第四章 分布式进程管理 13 例2:多线程的Web服务器
多线程示例代码 (a):分派者线程( dispatcher)源代码 (b):工作者线程( worker)源代码 while(TRUE) while(TRUE) get_next_request(&buf) wait_for_work(&but) handoffwork(&buf); look_for_-page_in-cache(&buf, &page): if(page_not_in-cache(&page read-page_from_disk(&buf, &page): return_page(&page) 2002-6-28 东北大学软件所于戈 第四章分布式进程管理
2002-6-28 东北大学软件所 于戈 第四章 分布式进程管理 14 多线程示例代码 (a): 分派者线程(dispatcher)源代码 (b): 工作者线程(worker)源代码
多线程服务器的组织方式 (a)分派者/工作者模型(b)团队模型 (c)管道模型 文件服务器进程派遺者线程工作者线程 共享块 cache 工作请求 到达 (a) 邮箱 (b) (c)内核 2002-6-28 第四章分布式进程管理 15 东北大学软件所于戈
2002-6-28 东北大学软件所 于戈 第四章 分布式进程管理 15 多线程服务器的组织方式 (a)分派者/工作者模型(b)团队模型 (c)管道模型