第3章 認識處理元.

Slides:



Advertisements
Similar presentations
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
Advertisements

第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
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.
WCI361 Windows Vista WCI361 Windows Vista 运行性能设计与 改进.
计算机基础 与应用案例教程 第一篇 基础理论篇 第4章 计算机软件系统.
第 20 章 檢視系統資訊.
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
第1单元 操作系统概论 第一节 绪论 操作系统定义.
Foundations of Computer Science
创新实验 课程说明 计算机学院 孙彤 计算机学院 张明.
红旗Linux认证培训 课程介绍.
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
香港普通話研習社科技創意小學 周順強老師.
中央广播电视大学开放教育试点课程 计算机操作系统.
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
CHAP 2 Computer-System Structures 计算机系统结构
Chapter 2: Computer-System Structures计算机系统结构
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
第四章 存储器管理.
Chapter 13 輸入/輸出系統 (I/O Systems)
Universal Serial Bus USB
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Core Switch 設定 Port的開啟與關閉 Virtual LAN建立 將Port指定到Virtual LAN
第 2 章 中央處理單元.
作業系統 第十三章 檔案系統實例.
高雄應用科技大學 有線網路建置實習(I) 聯易科技股份有限公司 Ben 李政勳
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
Windows Vista 操作系统最新安全特性
Applied Operating System Concepts
第4章 作業系統的介紹及操作.
第8章作業系統.
作 業 系 統 第三組 楊育翰 顏瑞霖.
Linux 圖形操作介面 GUI -- X-window 與 Webmin
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
讲议: PXE 介绍及实现 Jarvis
Operating System Internals and Design principles
Chapter 3 行程觀念 (Process Concept)
华南理工大学 陈虎 博士 CUDA编程模型 华南理工大学 陈虎 博士
Chapter 4 多執行緒 (Multi Thread)
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
What’s wrong? public int listen() { lock.acquire();
第三章 项目设定.
线程(Thread).
操作系统实验 lab1-系统引导
作業系統 (Operating System)
第五章,抢占式调度(lab3).
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
Operating System Principles 作業系統原理
作業系統 第三章 作業系統結構.
Operation System(OS).
作業系統 Operating System 第四單元 檔案系統
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
Windows 程式設計 (使用 C++ / C#)
第7章 進階的同步 觀念與實務.
Chapter 11 使用者資料包通訊協定.
Process Description And Control
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
作業系統概論 授課老師: 羅習五.
Operating System Software School of SCU
第11章 儲存裝置 與其管理.
Nachos Project Assignment 2
作業系統概論 授課老師: 羅習五.
2019 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab7.
测试功能 目录 页 程序的状态监视功能 ……………... 2 程序状态监视的模式 …………………………. 3
Presentation transcript:

第3章 認識處理元

基本觀念 處理元(process)也有人翻譯成行程,是作業系統裡頭執行當中的程式 通常使用者在電腦的作業系統中可以下指令或是執行各種程式,結果就是產生一些處理元 假如作業系統中有許多使用者,則可能產生的處理元的數量就非常多,可是CPU的處理能力有限,所以作業系統必須安排好處理元的執行先後順序,這就是處理元的排程(process scheduling)

電腦系統中正在執行的程式 微軟Windows作業系統:透過[工作管理員]可以打開視窗,裡頭的處理程序就是我們這裡講的處理元。 UNIX類型的作業系統:可以使用ps指令,顯示目前執行當中的處理元。

記憶體中處理元的內容結構

處理元的內涵 執行的目標程式碼(object code)。 程式執行時所用到的資料。 程式執行時所需要的資源(resources)。 處理元執行時的狀態(status of execution)。

處理元的內涵與所處的環境

處理元描述資料(process descriptor) 處理元上回暫停(suspend)時,處理器暫存器內儲存的內容。 處理元在處理器內的狀態(即processor state)。 位址空間對應(address space mapping)的細節。 處理元使用的記憶體狀態(memory state)。 處理元堆疊的指標(stack pointer)。 已配置給處理元的資源。 處理元所需要的資源。

處理元的狀態圖

從作業系統的啟動程序觀察 處理元的衍生過程 電腦開機以後,CPU會開始從記憶體中所謂的開機始點(bootstrap entry point) ,擷取指令執行。這是系統開始執行的第一個程式,裡頭包括了一些最基本的作業,最後的目標當然是建立起作業系統執行的環境 一旦作業系統開始載入執行,馬上會控制電腦系統的硬體資源,同時產生所需要的資料結構與硬體設備的狀態(device state) 作業系統的啟動程序決定於第一個執行的處理元,這也是作業系統執行前唯一執行中的處理元

UNIX的啟動程序 UNIX系統開始是以單一使用者(single user)與多處理元(multiple process)的模式執行 單一使用者指superuser,UNIX系統的啟動程序中有一部分是執行/etc/rc檔案,rc代表run control,裡頭含有shell commands,將一些要先執行的程式執行起來, 通常rc執行的工作與系統的組態(configuration)有關

傳統的UNIX系統 傳統的UNIX系統供多人登入使用, 通常伺服器的每個序列埠(serial port)都會執行一個對應的getty程式 getty會呼叫login程式執行,讓使用者登入 使用者登入之後,所用的就是shell介面,使用者執行的shell有個別的資料與堆疊,使用者登出(logout)之後,shell結束,回到login程式,等待下一個使用者登入

系統呼叫(system call) 系統呼叫是作業系統和使用者程式(user program)之間的介面 不同的作業系統所提供的系統呼叫也不太一樣,但是觀念都十分類似 假如從電腦開始啟動的時候想起,我們可以發現最初執行的處理元不必太複雜,只要能把作業系統帶起來就行了 作業系統本身的功能複雜,有許多功能是借著系統呼叫再產生的,如此一來,系統就能在已有的基礎上發展出來

常見的幾種系統呼叫的類型 處理元管理的系統呼叫。 傳訊(Signaling) 的系統呼叫。 檔案管理的系統呼叫。 目錄管理的系統呼叫。 保護(protection) 的系統呼叫。 時間管理的系統呼叫。

UNIX中一些相關的系統呼叫

CPU執行的模式 Kernel mode。 User mode。

處理元在執行時被懸置(suspend) 的原因 為了空出記憶體空間。 作業系統認定該處理元有問題。 使用者請求懸置處理元。 處理元周期式地執行。 父處理元的請求。

作業系統中可能用到的控制表格

處理元的屬性 處理元的辨識資訊(process identification) 。 處理元的狀態(process state) 。 處理元的控制資訊(process control information) 。

程式獲取資料的方式

各種常見的應用程式介面

程式間交換資訊的方法

用pipe做程序間通訊(IPC) 的方法

處理元與執行緒 : 觀念的釐清 處理元(process)是一種電腦要完成的工作(task) 處理元在作業系統中是指執行中的程式,而且具有兩個明顯的特徵 : 處理元可以擁有資源,處理元要經由作業系統排程執行 從某些角度來看,這兩種特徵似乎是各自獨立的,作業系統可以分別處理,這種想法衍生出執行緒(thread)的觀念 執行緒算是一種輕量級的處理元(lightweight process) ,是執行分派(dispatching)的單位,處理元則是資源擁有的單位

處理元與執行緒的關係

執行緒的特徵 執行的狀態(execution state) 。 在沒有執行時與執行緒相關的資訊(thread context) 。 執行堆疊(execution stack) 。 每個執行緒存放區域變數(local variables)的靜態空間(static storage) 。 對於所屬處理元的記憶體與資源的使用要和其他的執行緒共享。

處理元的模型(process model)

執行緒的使用有什麼好處呢? 執行緒的產生需要的時間比處理元短,終止執行緒所需要的時間也比處理元短。 在同一個處理元中的執行緒之間切換(switch)很快。 不同處理元之間的溝通常需要作業系統核心(kernel)的參與,同一個處理元的執行緒之間的溝通就不需要讓kernel插手了,因此效率比較高。

執行緒的基本作業 產生(spawn) 阻絕(block) 阻絕解除(unblock) 完成(finish)

運用在RPC中的執行緒觀念

執行緒的種類 在執行緒的實作上,有兩個比較大的執行緒類別,即使用者層次的執行緒(user-level threads)與核心層次的執行緒(kernel-level threads) 在單純的使用者執行緒的環境中,執行緒的管理由應用本身負責,作業系統核心可以完全不管 應用系統使用threads library來處理跟執行緒相關的工作

執行緒的種類

Windows 2000處理元的主要特徵 Windows 2000的處理元以物件(objects)來表示。 一個處理元可能包含一個或多個執行緒。 處理元物件與執行緒物件。

Linux對於執行緒與處理元的管理 Linux中的處理元是以一個叫做task_struct的資料結構來表示的,系統記錄一個task表格,有指標指向目前定義的task_struct資料結構 Linux的處理元有一個比較特殊的Zombie狀態,這是當處理元已經終止(terminated) ,但是task_structure仍然存在於process table中 Linux沒有使用另外的結構來表示執行緒,所以Linux基本上沒有區分處理元與執行緒的觀念