线程(Thread).

Slides:



Advertisements
Similar presentations
© 2004 By Default 公共实验中心现代教育技术中心 王德东 2015 年 10 月 16 日 多媒体教室设备使用培训多媒体教室设备使用培训.
Advertisements

学年度工作总结 —— 上海建桥学院 —— 上海建桥学院 实验室与资产管理处 实验室与资产管理处.
Shinysky Infotech Co., Ltd. Copyright (C) 讯天 DPAS 动态口令认证系统 产品简介.
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
审核评估释义 余国江 教学质量监控与评估处.
Information Resource Management
第一章 十六世紀中葉以前的臺灣與原住民 第一節 考古發掘與史前文化.
量化vs質性研究分析 量化vs質性研究分析 報告人:王秀民.
自信心训练教材 如何提高自己的自信心 -Jerrywang.
Foundations of Computer Science
十五條佛規 後學:張慈幸
唐宋傳奇、筆記小品和史書、論著中的寓言 中碩二 吳佳樺.
兒童期 7 青春期 兩性圓舞曲 乘客:七年級同學 司機:張立杰老師.
湖南省怀化市中小学信息技术 学科考试系统培训交流
九阳通过社会化媒体开卖面条机.
2-何鍇卉 14-曹凱茹 19-陳亮妤 21-陳思瑜 37-蔡庭瑜 39-賴俞亨 40賴思恩
星星知我心 談古話今….. ……..觀星望斗 主講人: 陽光青春美少男.
道路交通管理 授课教师:于远亮.
反垃圾掩埋場相關報告 組長:文煊 組員:鄭侃文 李浩暐 胡育睿 李瑞耘 朱祐賢 林承宇.
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
陶板屋 組員:陳婷 劉峻愷 趙崇佑 陳鵬如.
"性"不"性"由你 性別平等之探討 北屯國小 張文陵.
Linux基礎學習 課本:Ubuntu Linux 管理與架站實務 博碩文化出版發行.
操作系统原理 Principles of Operating System
組員: 洪暐翔、 賴峻毅 侯家豪、 賴琦穎 指導老師: 王惠鈴 老師
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
特殊教育課程與教學調整現場實務 特教小組 執行秘書 林坤燦.
§3.4 进程控制 进程从创建到消灭的整个自下而上期中有三个基本状态,称为进程调度状态:执行、就绪、等待(阻塞)。
8.1 系統軟件、應用軟件和驅動程序 電腦軟件 是使電腦處理指定工作的一連串指令 大致可分大為三類: 驅動程序 系統軟件 應用軟件.
國立花蓮女中101學年度 開學典禮簡報.
逃出生天游戏介绍 胡永泽 高振卓 答辩人:.
政黨法草案分析 第七組:黃于萱 謝宜儒 溫庭如 許家懷 陳奕蕙 馬繹筑 明立錦.
学前教育原理 主讲:李德明.
中央广播电视大学计算机课程 操 作 系 统.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
台中市不動產經紀人職業工會 不動產經紀營業員 複訓班
IBM DB2 Personal Edition 試用報告
Applied Operating System Concepts
第4章 作業系統的介紹及操作.
Android 课程讲义 智能手机开发
ICT RTOS Research Group 胡伟平,王剑
作業系統 家庭和小型企業網路– 第二章.
網路資源的建立--LINUX系統 國立東華大學電算中心 陳鴻彬.
Chapter 4 多執行緒 (Multi Thread)
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
What’s wrong? public int listen() { lock.acquire();
进程操作.
Process management(程序管理)
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
作業系統 (Operating System)
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
Operating System Principles 作業系統原理
中国科学技术大学计算机系 陈香兰(0512- ) 助教:孟宁 Fall 2009
第二章 Linux简介 Linux概述 Linux系统的特点 Linux中使用的应用程序 Linux的组成 Linux版本介绍
第3章 認識處理元.
软件测试方法和技术 第7讲 验收测试.
第1章 网络操作系统概述.
计算机组装、维修及 实训教程 第17章 微机软件的安装与设置 2019年4月11日星期四.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
第7章 進階的同步 觀念與實務.
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
Computer Science & Information Management
凌群電腦新一代   交易所TCP/IP Gateway
售后培训系列之V9系统中心安装 SecManage 网安事业部 广州售后-王长绪.
此处添加标题 汇报人:宝藏PPT.
Chapter 4 Multi-Threads (多執行緒).
Presentation transcript:

线程(Thread)

举例:从fork()看线程 main() { int pid = 0; printf(“the parent is going to fork\n”); if ((pid = fork()) != 0) printf(“I am the father of %d\n”, pid); else printf(“I am the child\n”); }

Single-threaded vs Multi-threaded (单线程 vs 多线程)

线程间共享内存空间

线程相对于进程的优势 Responsiveness (e.g. Web应用前端) Resource Sharing (e.g. shared variable) Economy (e.g. save memory) Utilization of MP Architectures

用户级线程(User Threads) 线程管理(创建、资源申请、调度、通信等)由user-level threads library“一手包办”,不靠OS内核 举例,Three primary thread libraries: Java threads POSIX pthreads Win32 threads

内核级(Kernel Threads) 线程管理由操作系统内核的kernel-level threads实现 举例 Windows XP/2000 Solaris

多线程(Multithreading)模型 Many-to-One One-to-One Many-to-Many

Many-to-One模型 这种模型将多个user-level threads映射至同一个kernel thread。构成一组对应关系。 操作系统运行环境里,可以存在很多组。 举例 Linux GNU Portable Threads,即GNU pth 凡是不支持线程的OS内核,都可以用这个模型

Many-to-One模型

One-to-One模型 这种模型将每个user-level thread映射至一个kernel thread 举例 Windows NT/XP/2000 Solaris 9 and later

One-to-one模型

Many-to-Many模型 这种模型将m个user-level threads映射至n个kernel threads 操作系统既可以一对一支持线程,又可以让一个kernel level thread兼顾多个用户级线程 OS内核相对较复杂 举例 Solaris prior to version 9 Windows NT/2000 with the ThreadFiber package

Many-to-Many模型

Two-level模型 与m:n的Many-to-Many模型相似,突出了n=1的情形 举例 IRIX HP-UX Tru64 UNIX Solaris 8 and earlier

Two-level模型

线程管理相对于进程管理,带来的新问题 fork()操作和exec()操作的语义有变 撤销线程(Thread cancellation) Signal handling Thread pools Thread specific data Scheduler activations …………

fork()操作和exec()操作的语义 某个线程调用了fork(),那么,这次fork()操作仅仅复制调用线程呢?还是复制(与调用线程同属于一个task的)所有线程?

撤销线程(Thread Cancellation) 语义:在线程正常完成操作前,终止它 至少有“撤销”语义: 异步(Asynchrous)撤销:terminates the target thread immediately 延后(Deferred)撤销:allows the target thread to periodically check if it should be cancelled

END