Applied Operating System Concepts

Slides:



Advertisements
Similar presentations
作者 : 陳鍾誠 單位 : 金門技術學院資管系 URL : 日期 : 2016/7/21 行程的同步 註:本章學術性較重,但考試常考。
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
Chapter 3: Operating-System Structures操作系统结构
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
Foundations of Computer Science
创新实验 课程说明 计算机学院 孙彤 计算机学院 张明.
四資二甲 第三週作業 物件導向程式設計.
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
CHAP 2 Computer-System Structures 计算机系统结构
Chapter 13 輸入/輸出系統 (I/O Systems)
Chapter 6 同步 (Synchronization)
天文望远镜集成建模研究 杨德华 南京天文光学技术研究所 30 NOV, 年中国虚拟天文台年会 广西师范大学 桂林
Operating System Process Management - 4 Monday, August 11, 2008.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
人际交往:科学与艺术.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
作 業 管 理 指導:盧淵源教授 第四組:碩士專班 N 徐天志 N 林耀宗 N 陳丁雲
第8章作業系統.
从UNIX到Windows的 电信软件移植实践
Java语言程序设计 第七部分 多线程.
作 業 系 統 第三組 楊育翰 顏瑞霖.
中国公私合作伙伴关系(PPP )现状 Disclaimer:
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Operating System Internals and Design principles
HLA - Time Management 陳昱豪.
Chapter 3 行程觀念 (Process Concept)
创建型设计模式.
ICT RTOS Research Group 胡伟平,王剑
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Chapter 4 多執行緒 (Multi Thread)
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
971研究方法課程第九次上課 認識、理解及選擇一項適當的研究策略
What’s wrong? public int listen() { lock.acquire();
线程(Thread).
第一次课后作业 1. C/C++/Java 哪些值不是头等程序对象 2. C/C++/Java 哪些机制采用的是动态束定
作業系統 (Operating System)
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
Operating System Principles 作業系統原理
第3章 認識處理元.
C/C++/Java 哪些值不是头等程序对象
IBM SWG Overall Introduction
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
Operation System(OS).
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
第7章 進階的同步 觀念與實務.
導 論 教學投影片.
Process Description And Control
An organizational learning approach to information systems development
CHAPTER 6 Concurrency:deadlock And Starvation
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Create and Use the Authorization Objects in ABAP
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
作業系統概論 授課老師: 羅習五.
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
Operating System Software School of SCU
Race Conditions and Semaphore
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
Nachos Project Assignment 2
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

Applied Operating System Concepts Chap 5 Threads 线程 Applied Operating System Concepts

Applied Operating System Concepts Contents内容 Benefits 益处 Thread 线程综述 User and Kernel Threads 用户和内核线程 Multithreading Models 多线程模型 Solaris 2 Threads Solaris 2线程 Windows2000 Threads Windows2000线程 Java Threads Java线程 Summary(总结) Homework作业 Applied Operating System Concepts

Applied Operating System Concepts Benefits 益处 Responsiveness 响应 Resource Sharing 资源共享 Economy 经济性 Utilization of MP Architectures MP体系结构的运用 Applied Operating System Concepts

Applied Operating System Concepts Threads 线程 A thread (or lightweight process) is a basic unit of CPU utilization; it consists of: 线程(轻型进程)是CPU运用的一个基本单元,包括 program counter 程序计数器 register set 寄存器集 stack space 栈空间 A thread shares with its peer threads its: 一个线程与它的对等线程共享: code section 代码段 data section 数据段 operating-system resources 操作系统资源 collectively know as a task. 总体作为一个任务 A traditional or heavyweight process is equal to a task with one thread 传统的或重型进程等价于只有一个线程的任务 Applied Operating System Concepts

Applied Operating System Concepts Threads线程(Cont.) In a multiple threaded task, while one server thread is blocked and waiting, a second thread in the same task can run. 在一个多线程任务中,当一个服务器线程被阻塞后,在同一个任务中的第2个线程可运行 Cooperation of multiple threads in same job confers higher hroughput and improved performance. 同一作业中多线程协同导致高吞吐量并改善性能 Applications that require sharing a common buffer (i.e., producer-consumer) benefit from thread utilization. 应用程序需要共享一个公用的缓冲(即生产者-消费者),从线程运用中得利 Applied Operating System Concepts

Applied Operating System Concepts Threads线程(Cont.) Threads provide a mechanism that allows sequential processes to make blocking system calls while also achieving parallelism. 线程提供了一种机制,允许序列进程阻塞系统调用同时还能实现并行 Kernel-supported threads 内核支持线程(Mach and OS/2). User-level threads; supported above the kernel, via a set of library calls at the user level (Project Andrew from CMU). 用户级线程;在内核之上,通过用户级的库调用 Hybrid approach implements both user-level and kernel-supported threads (Solaris 2). 混合处理实现用户级和内核支持线程 Applied Operating System Concepts

Thread and Process线程和进程 Scheduling调度 线程是调度的基本单位,同一进程中的线程切换不会引起进程切换。 Concurrence并发 线程可以提高系统的并发性。 Resource资源 进程拥有资源,是资源分配的基本单位,而线程则不拥有资源,但它可以访问创建它的进程所拥有的资源。 Context Switch上下文切换 线程的上下文切换的代价比进程小。 Applied Operating System Concepts

Windows 2000 Process and Thread Windows 2000进程和线程 Applied Operating System Concepts

Single and Multithreaded Processes 单个和多线程进程 Applied Operating System Concepts

Thread and Child Process线程和子进程 Applied Operating System Concepts

User-Level Threads (ULT) 用户线程 Thread Management Done by User-Level Threads Library,such as thread creation, scheduling and management. 由用户级线程库进行管理的线程,如线程创建、调度等。 The kernel is unaware of user-level thread, all thread creation and scheduling are done in user space without the need for kernel intervention 。内核看不到ULT,线程的创建和调度在用户空间,不需要内核的干预。 Examples例子 - POSIX Pthreads - Mach C-threads - Solaris threads Applied Operating System Concepts

User-Level Threads 用户线程(Cont.) Process Scheduling BLOCK Process Process cause Thread RUN Thread BLOCK Thread BLOCK single-threaded multi-threaded 单线程进程 多线程进程 运行线程的阻塞导致整个进程阻塞 运行进程的阻塞不会导致进程的阻塞 Applied Operating System Concepts

Kernel-Level Threads 内核线程 Supported by the Kernel 由内核支持 KLT creation ,scheduling, and management are done by the kernel in kernel space.KLT创建、调度和管理由内核在核心空间运行。 KLT are generally slower to create and manage than ULT. KLT创建和管理通常比ULT慢。 Examples例子 - Windows 95/98/NT - Solaris - Digital UNIX Applied Operating System Concepts

Multithreading Models 多线程模型 Many-to-One 多对一 One-to-One 一对一 Many-to-Many 多对多 Applied Operating System Concepts

Applied Operating System Concepts Many-to-One多对一 Many User-Level Threads Mapped to Single Kernel-Level Thread. 多个用户级线程映像进单个内核线程 Multiple threads are unable to run in parallel on multiprocessor.多个线程不能并行运行在多个处理器上。 Thread management is done in user space ,so it’s efficient, but the entire process will block if a thread makes a blocking system call. 线程管理在用户态执行,因此是高效的,但一个线程的阻塞系统调用会导致整个进程的阻塞。 Used on Systems That Do Not Support Kernel Threads. 用于不支持内核线程的系统中 Applied Operating System Concepts

Many-to-one Model多对一模型 Applied Operating System Concepts

Applied Operating System Concepts One-to-One一对一 Each User-Level Thread Maps to Kernel-Level Thread. 每个用户级线程映像进内核线程 More concurrency than the many-to-one model 比多对一模型有更好的并发性 Allow multiple threads to run in parallel on multiprocessor 允许多个线程并行运行在多个处理器上 Creating a ULT requires creating the corresponding KLT 创建一个ULT需要创建一个KLT,效率较差 Examples - Windows 95/98/NT - OS/2 Applied Operating System Concepts

One-to-one Model一对一模型 Applied Operating System Concepts

Applied Operating System Concepts Many-to-many 多对多 Many ULTs maps to a smaller or equal number of KLTs. 多个ULT映射为相等或小于数目的KLT. More concurrency 更好的并发性 Examples Solaris Irix Digital UNIX Applied Operating System Concepts

Many-to-many Model多对多模型 Applied Operating System Concepts

Solaris 2 Threads Solaris 2线程 Applied Operating System Concepts

Solaris Process Solaris 线程 Applied Operating System Concepts

Applied Operating System Concepts Windows 2000 Thread W2K线程 线程状态 Ready就绪:可以被调度执行 Standbly备用:下一次可以运行 Running运行:执行线程 Waiting等待:由于某个事件阻塞 Transition转换:准备好运行但资源不可用时,由等待进入转换 Terminated终止:运行结束。 Applied Operating System Concepts

Windows 2000 Thread W2K线程(cont.) Applied Operating System Concepts

Applied Operating System Concepts NT线程的有关API CreateThread()函数在调用进程的地址空间上创建一个线程,以执行指定的函数;返回值为所创建线程的句柄。 ExitThread()函数用于结束本线程。 SuspendThread()函数用于挂起指定的线程。 ResumeThread()函数递减指定线程的挂起计数,挂起计数为0时,线程恢复执行。 Applied Operating System Concepts

Applied Operating System Concepts Java Threads Java线程 Java Threads May be Created by: Java线程可如下创建: Extending Thread class 扩充线程类 Implementing the Runnable interface 实现可运行接口 Applied Operating System Concepts

Extending the Thread Class 线程类型的扩展 class Worker1 extends Thread { public void run() { System.out.println(“I am a Worker Thread”); } Applied Operating System Concepts

Creating the Thread 创建线程 public class First { public static void main(String args[]) { Worker runner = new Worker1(); runner.start(); System.out.println(“I am the main thread”); } Applied Operating System Concepts

The Runnable Interface 可运行接口 public interface Runnable { public abstract void run(); } Applied Operating System Concepts

Implementing the Runnable Interface 可运行接口的实现 class Worker2 implements Runnable { public void run() { System.out.println(“I am a Worker Thread”); } Applied Operating System Concepts

Creating the Thread 创建线程 public class Second { public static void main(String args[]) { Runnable runner = new Worker2(); Thread thrd = new Thread(runner); thrd.start(); System.out.println(“I am the main thread”); } Applied Operating System Concepts

Java Thread Management Java线程的管理 suspend() – suspends execution of the currently running thread. 挂起 - 暂停当前线程的运行 sleep() – puts the currently running thread to sleep for a specified amount of time. 睡眠 - 让当前线程入睡一段指定的时间 resume() – resumes execution of a suspended thread. 恢复 - 再执行被挂起的线程 stop() – stops execution of a thread. 停止 - 停止一个线程的执行 Applied Operating System Concepts

Java Thread States Java线程状态 Applied Operating System Concepts

Applied Operating System Concepts Summary(总结) The process model introduced in Chapter 4 assumed that a process was an executing program with a single thread of control. Many modern operating systems now provide features for a process to contain multiple threads of control. This chapter introduces many concepts associated with multithreaded computer systems and covers how to use Java to create and manipulate threads. We have found it especially useful to discuss how a Java thread maps to the thread model of the host operating system. Applied Operating System Concepts

Applied Operating System Concepts 作业 P132 5.1 5.2 5.4 Applied Operating System Concepts