Chapter 4 多執行緒 (Multi Thread)

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

© 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 典型操作系统概述.
第6章 计算机网络基础 信息技术基础.
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
北京中医药大学东直门医院 把握“癌”的命脉 祁烁 血液肿瘤科.
第1单元 操作系统概论 第一节 绪论 操作系统定义.
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
中央广播电视大学开放教育试点课程 计算机操作系统.
操作系统原理 Principles of Operating System
你,是扼殺 孩子競爭力的幫兇嗎?.
辦理實習工場安全衛生業務經驗分享 新竹高工實習輔導主任  黃俊燁.
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
臺北市立松山家商 103學年度第1學期 學校日 教學說明 簡報
逃出生天游戏介绍 胡永泽 高振卓 答辩人:.
“服务器服务于Internet”报告会 倪光南 1999年7月6日
天文望远镜集成建模研究 杨德华 南京天文光学技术研究所 30 NOV, 年中国虚拟天文台年会 广西师范大学 桂林
3D繪圖軟體 CATIA V5介紹 第十一組 劉子剛.
雲端運算虛擬主機技術的發展.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
IBM DB2 Personal Edition 試用報告
課程名稱:計算機概論 授課老師:李春雄 博士
计算机应用基础 第二章 操作系统基础 2018/11/16.
1-1 電腦的起源 1-2 電腦的演進 1-3 電腦的種類 1-4 電腦與生活
作業系統 補充: 雲端運算.
Applied Operating System Concepts
第4章 作業系統的介紹及操作.
第8章作業系統.
分散式資料庫管理系統 與主從式系統 資料庫系統設計實務與管理,5e
从UNIX到Windows的 电信软件移植实践
作 業 系 統 第三組 楊育翰 顏瑞霖.
基于压缩算法的tile64多核处理器性能研究
讲师:田家华 第1章 认识计算机 本章要点   计算机的发展 计算机的组成.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Operating System Internals and Design principles
主題九 認識作業系統.
第2章 Linux概述 2.1 操作系统的功能和分类 2.2 Linux操作系统概述 2.3 Linux的应用现状与前景
網路資源的建立--LINUX系統 國立東華大學電算中心 陳鴻彬.
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
线程(Thread).
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
作業系統 (Operating System)
Operating System Principles 作業系統原理
第二章 Linux简介 Linux概述 Linux系统的特点 Linux中使用的应用程序 Linux的组成 Linux版本介绍
第3章 認識處理元.
软件测试方法和技术 第7讲 验收测试.
ONLINE PARTS ORDERING 海能达备件商城系统.
第1章 网络操作系统概述.
Operation System(OS).
RTOS.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
靜宜大學專用 PowerPoint 檔案 數位教材
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
第7章 進階的同步 觀念與實務.
政黨政治.
導 論 教學投影片.
VR虛擬書店 模組化系統 組員 : 黃品珅 江宗祐 陳煒杰 郭晏誌 指導教授 : 劉興民 教授.
詳細說明.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
作業系統概論 授課老師: 羅習五.
Operating System Software School of SCU
亞洲大學 資訊工程學系 多重來源影像監控系統
作業系統概論 授課老師: 羅習五.
Chapter 4 Multi-Threads (多執行緒).
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

Chapter 4 多執行緒 (Multi Thread) 4.1 概論 4.2 多執行緒模式

4.1 概論(Overview) 執行緒(Thread)是 CPU 使用時的一個基本單位,它是由一個執行緒ID、程式計數器(Program Counter)、一組暫存器(Register),以及一個堆疊(Stack)空間所組成。

4.1.1 動 機(Motivation) 許多在桌上型PC執行的套裝軟體都是多執行緒。應用程式通常都製作成有許多執行緒控制的個別行程。網頁瀏覽器可能有一個執行緒顯示影像或文字,而另一執行緒則從網路擷取資料。文書處理器可能有一個執行緒在顯示圖形,另一個執行緒從使用者讀入按鍵,而第三個執行緒在背景下執行拼字和文法校正。

4.1.2 利益(Benefits) 撰寫多執行緒程式有下列四個好處: 應答(Responsiveness): 將交談式的應用程式多執行緒化,可以在一個程式某一部份被暫停,或程式在執行冗長操作時,依然繼續執行,因此增加了對使用者的應答。 資源分享(Resource Sharing): 執行緒間將共用它們所屬行程的記憶體和資源。程式碼和資料共用的好處是讓應用程式有數個不同的執行緒在同一位址空間活動。 經濟(Economy): 對於行程產生所配置的記憶體和資源耗費很大。反之,因為執行緒共用它們所屬行程的資源,所以執行緒的產生和內容交換就比較經濟。憑經驗去測量出產生和維護行程比執行緒多出多少時間可能很困難,但通常產生和維護行程會比執行緒更費時。 可擴展性(Scalability): 在多處理器的架構下,多執行緒的利益可以大幅提升,因為每一執行緒可以並行地在不同的處理器上執行。不論有多少CPU可以使用,單一執行緒只能在一個CPU上執行。

4.1.3 多核心程式的撰寫(Multicore Programming) 在多核心系統中編寫程式,目前的挑戰有以下五個領域: 1.切割活動(Dividing Activities): 檢查應用程式來找出可以被切割成個別的、同時發生的任務,因此可以在個別的核心上平行地執行。 2.平衡(Balance): 當識別任務可以平行地執行時,程式員也必須保證任務執行為相等的工作。 3.資料分裂(Data Splitting): 正如同應用程式被分割成個別的任務,藉由任務來存取和運用的資料必須被分割到個別的核心上執行。 4.資料相依性(Data Dependency): 藉由任務存取的資料必須在兩個或多個任務之間檢查其相依性。在一個任務依靠另一個任務的情況下,程式員必須確認任務的執行與資料的相依性是同步的。 5.測試與除錯(Testing & Debugging): 當一個程式在多核心上平行地執行時,有許多不同的執行路徑。測試和除錯這類同步的程式原來就比測試和除錯單一執行緒的應用程式更加困難。

4.2 多執行緒模式(Multithreading Models) 執行緒的支援可以由使用者層次提供(User Thread)或是由核心提供(Kernel Thread) 使用者執行緒的支援是在Kernel之上,核心執行緒直接由OS支援和管理 4.2.1 多對一模式(Many-to-One Model) 只有一個使用者執行緒可以存取Kernel 數個執行緒也不能在Multiprocessor並行處理 一旦其中一個使用者執行緒 呼叫System Halt時, 整個Process就暫停

4.2.2 一對一模式(One-to-One Model) Each user-level thread maps to kernel thread Examples Windows NT/XP/2000 Linux Solaris 9 and later 允許MultiThreading在Multi Processor上並行執行 產生User Thread時就要產生相對應的Kernel Thread 產生Kernel Thread的額外負擔造成應用程式性能(Performance)上的負擔

4.2.3 多對多模式(Many-to-Many Model) Allows many user level threads to be mapped to many kernel threads Allows the operating system to create a sufficient number of kernel threads Solaris prior to version 9 Windows NT/2000 with the ThreadFiber package

二層模式 (Two-level Model) Similar to M:M, except that it allows a user thread to be bound to kernel thread Examples IRIX HP-UX Tru64 UNIX Solaris 8 and earlier