华南理工大学 陈虎 博士 tommychen74@yahoo.com.cn 多核处理器上的操作系统 华南理工大学 陈虎 博士 tommychen74@yahoo.com.cn.

Slides:



Advertisements
Similar presentations
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
Threads 线程  为什么要引入线程 – WEB 服务器 同时处理多个客户请求 – 创建多个进程降低响应时间 – 进程开销较大 ( 上下文切换 )  线程 ( 轻量级进程 ) – 是 CPU 调度的一个基本单位.
報酬遞增與新的商業世界.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2.7 线程 2.7.1线程的其本概念.
操作系统原理 Principles of Operating System
靜宜大學專用 PowerPoint 檔案 數位教材
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
实用操作系统概念 张惠娟 副教授 1.
8.1 系統軟件、應用軟件和驅動程序 電腦軟件 是使電腦處理指定工作的一連串指令 大致可分大為三類: 驅動程序 系統軟件 應用軟件.
第八章 涉外知识产权的国际保护 本章学习重点: 1、涉外知识产权的法律冲突及其法律 适用原则; 2、国际条约对涉外知识产权的保护原则
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
作業系統的結構 日期 : 2018/9/17.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
计算机应用基础 第二章 操作系统基础 2018/11/16.
OpenMP简介和开发教程 广州创龙电子科技有限公司
CHAPTER 4 THREADS,SMP,AND MICROKERNELS
第4章 作業系統的介紹及操作.
作 業 系 統 第三組 楊育翰 顏瑞霖.
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
讲师:田家华 第1章 认识计算机 本章要点   计算机的发展 计算机的组成.
操作系统原理 Operating System Principles
存储系统.
SVN服务器的搭建(Windows) 柳峰
第2章 Linux概述 2.1 操作系统的功能和分类 2.2 Linux操作系统概述 2.3 Linux的应用现状与前景
辅导课程六.
Chapter 4 多執行緒 (Multi Thread)
操作系统原理 Operating System Principles
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
Windows网络操作系统管理 ——Windows Server 2008 R2.
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
作業系統 (Operating System)
操作系统原理 Operating System Principles
第2章 进程的描述与控制 2.1 进程及其描述 2.2 进程基本状态及其相互转换 2.3 进程控制 2.4 线程 进程的引入
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
逆向工程-汇编语言
CPU结构和功能.
Threads 线程 为什么要引入线程 线程(轻量级进程) WEB服务器 同时处理多个客户请求 创建多个进程降低响应时间
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
作業系統 第三章 作業系統結構.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
第1章 网络操作系统概述.
會計資訊系統 大帳省財務庫存管理系統(Beyond) 士林高商(資料來源:啟發出版社) 簡報者:黃瑞萍老師.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
靜宜大學專用 PowerPoint 檔案 數位教材
进程概念.
第9章 多线程 王德俊 上海交通大学继续教育学院.
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
信号量(Semaphore).
導 論 教學投影片.
本节内容 模块隐藏 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
临界区问题的硬件指令解决方案 (Synchronization Hardware)
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Zookeeper的应用 Hbase Kafka Twitter Storm Spark—mesos+zookeeper.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十七讲 密码执行(1).
第十二讲 密码执行(上).
本节内容 SEMAPHORE 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
作業系統的操作 2019/8/9 明誠中學編製.
4.理財規劃者適格性分析與實作 理財規劃重點 生涯階段 「就業前準備階段」(學習階段) 「初入社會階段」 「確定職涯階段」 「維持職涯階段」
Presentation transcript:

华南理工大学 陈虎 博士 tommychen74@yahoo.com.cn 多核处理器上的操作系统 华南理工大学 陈虎 博士 tommychen74@yahoo.com.cn

参考文献 Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, Prentice Hall, 2001 David A. Solomon, Inside Microsoft Windows 2000(Windows 2000内核揭密), 3nd Edition, Microsoft Press,2001 Curt Schimmel, UNIX Systems for Modern Architectures(现代体系结构上的UNIX系统:内核程序员的SMP和Caching技术),Addison Wesley, 1994

线程与进程 进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。 程序:只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。 线程(Thread):是进程的一个实体,是CPU调度和分派的基本单位。

线程和进程 (续) 线程和进程的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。

什么是线程 一个执行状态(包括运行running, 准备好ready,挂起suspend等) 在线程未运行时需要保存上下文(PC,寄存器的值等) 线程有自己的独立运行堆栈 有些系统的线程可以有自己的私有存储空间 一个进程派生出的所有线程共享一个统一的地址空间

操作系统中的进程和线程 根据进程与线程的设置,操作系统大致分为如下类型: 单进程、单线程: MS-DOS大致是这种操作系统; 多进程、单线程: 多数UNIX(及类UNIX的LINUX) 是这种操作系统; 多进程、多线程: Win32(Windows NT/2000/XP等)、Solaris 2.x和OS/2都是这种操作系统; 单进程、多线程: VxWorks是这种操作系统。

用户级线程 所有线程管理都由用户实现; 线程切换开销小; 一个线程挂起导致所有线程挂起; 内核不知道线程的存在: 内核调度的单位是进程

内核级线程 内核调度的基本单位是线程(Windows) 内核保持了所有线程和进程的上下文现场

组合方案 可以直接创建内核级线程,也可以在内核级线程上创建应用级线程(Solaris)

线程的主要特点 使用线程的主要好处是: 缺陷: 在进程内创建、终止线程比创建、终止进程要快; 同一进程内的线程间切换比进程间的切换要快,尤其是用户级线程间的切换。 一个进程的所有线程共享该地址空间,线程之间的数据交换非常方便 线程对解决客户/服务器模型非常有效 缺陷: 一个线程出现异常情况可能导致所有线程崩溃。

多线程合理利用 多线程确实给应用开发带来了许多好处,在以下情况下可以考虑使用多线程: 应用程序中的各任务相对独立; 某些任务耗时较多; 各任务需要有不同的优先级; 对于一些实时系统应用,应考虑多线程。

多核处理器上操作系统关键问题 线程调度机制; 锁、信号量的实现机制; 存储器一致性的管理机制; 重点:线程调度机制

分时共享调度机制 有一个唯一的调度队列

空间共享调度策略 多个线程组被划分在固定的多处理器区域上

Windows 2000的多线程调度机制 可运行处理器集合掩码(affinity mask) 理想处理器(ideal processor) 指定了线程运行的处理器集合 初始化为所有可以使用的处理器 可以通过SetThreadAffinityMask函数改变 理想处理器(ideal processor) 线程应该运行的处理器 初始化时随机选择 可以通过SetThreadIdealProcessor函数改变 备选处理器(next processor) 线程运行的备选处理器

Windows 2000的线程调度策略 当有线程处于就绪状态时,按照以下次序选择处理器运行 优先选择理想处理器; 然后选择备选处理器; 当前处理器(正在调度代码的处理器) 从可运行处理器集合掩码的最低位向最高位扫描,检查是否有空闲处理器

Windows 2000的线程调度策略 如果所有处理器都处于忙的状态,则检查可否抢占其中一个处理器上的线程,检查顺序为: 理想处理器 备选处理器 可运行处理器掩码的最高位开始扫描

课堂讨论 相对于多进程而言,使用多线程在多核处理器上设计程序有何优势? 为什么在Windows 2000中总是希望将特定线程尽量指定在一个处理器上运行?