作業系統 第四章 行程.

Slides:



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

定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
© 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 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
2013届 计算机科学与技术专业 毕业设计(论文) 启动报告
第十章 UNIX系统内核结构 10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理
校园信息管理系统 河北科技大学网络中心 2000/4/10.
噪音 合作人员: 季陆铭,徐梦溪,赵杰,杨申捷.
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
主讲:陈笑蓉 贵州大学计算机科学与技术学院
第二章 进程的描述与控制管理.
作業系統 第六章 同步與死結.
第二章 项目一:企业厂区与车间平面设计 1.
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
多核体系结构与并行编程模型 计算机科学导论第八讲
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
第8章 机床操作 主讲:臧红彬 博士.
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
数据结构算法 模拟练习及解答二 绍兴文理学院 计算机系计算机应用教研室.
造气DCS综合优化控制系统 介绍 石家庄兴盛德隆科技有限公司.
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
协议宏串行通信 陈建瓴.
操作系统 (并发进程) 徐锋 南京大学计算机科学与技术系 2018年9月18日3时52分.
行程管理簡介 日期 : 2018/9/21.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
chapter 1-Introduction
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
经典同步问题.
作業系統 第六章 同步與死結.
Chapter 3 行程觀念 (Process Concept)
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
第三章 进程互斥与同步 进程通信 Communication.
进程操作.
Process management(程序管理)
操作系统原理 Operating System Principles
光的干涉在现代科学中的应用 2007级中法班 张进
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
李元金 计算机与信息工程学院 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 1/
第六章. 系统调度,COW Fork和IPC (lab4)
第12章 shell编程基础 本章主要介绍shell编程的基础知识。shell脚本的执行类似于Linux下的任何其他命令,脚本可以包含复杂的逻辑,也可以包含一系列Linux命令行指令。在一个shell程序内可以运行其他shell脚本。通过本章的学习,读者可以学到如何使用bash(最流行的Linux.
李元金 计算机与信息工程学院 第 3 讲 进程管理(1) 李元金 计算机与信息工程学院 1/
電子音樂 通訊系 B 楊穎穆.
第2章 进程管理 2.1 进程概念 2.2 线程 2.3 进程管理 2.4 进程间通信 2.5 经典进程同步问题 2.6 管程
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
电子电路课程设计 TEL:025-
作業系統 第三章 作業系統結構.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
作業系統 第三章 作業系統結構.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
微信商城系统操作说明 色卡会智能门店.
项目一 了解计算机 项目二 选配计算机硬件 项目三 组装计算机 项目四 设置BIOS和硬盘分区 项目五 安装操作系统和常用软件
核心系统数据库组 了解应用服务器 核心系统数据库组
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
程序管理 蘇偉順助教.
Computer Science & Information Management
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab4.
LED 旋转屏 制作:刘致先 指导老师:程智宾 单位:福建信息职业技术学院.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
顺序查找与二分查找复习.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
《操作系统设计与实现》 Linux系统编程.
提醒實驗做完了 實驗失敗,自動發通知 到line群組發通知 自動抓paper, 然後貼到Line群組
Presentation transcript:

作業系統 第四章 行程

第四章 行程 行程概念 行程簡介 行程的狀態 行程控制區塊 行程排程 行程的建立與結束 執行緒 行程合作 行程間溝通 摘要

行程概念 行程與程式主要的不同點: 行程,簡單來說,就是一個執行中的程式。 程式是被放在外部的儲存裝置如磁碟上,而行程則被放在記憶體中。 程式在儲存裝置中是靜態的,而行程在記憶體中是動態的,它會隨著一些事件的發生而產生相對的改變。 行程,簡單來說,就是一個執行中的程式。

行程簡介 行程就是一個執行中的程式。 一個行程包括了 相對應的程式碼 CPU 中各暫存器的值 行程堆疊 資料區段

行程的狀態 一個行程在執行過程中,會改變很多狀態。 一個行程的狀態通常有下列幾種: 新建 執行 等待 就緒 終結

行程狀態圖 新建 允許進入 離開 中斷 結束 就緒 執行 排程器分派 I/O或事件結束 I/O或等待事件 等待

行程控制區塊 行程控制區塊(PCB),儲存行程在執行時相關的資訊。 PCB 中通常包括了 行程狀態 CPU 暫存器 排程資訊 I/O 狀態 當行程進行切換時,需要將目前行程的相關資訊記錄在該行程的 PCB 中,並將另一個行程的 PCB 載入至系統中,這個動作稱為內文切換。

行程控制區塊 行程狀態 行程代號 程式計數器 暫存器 … 記憶體限制 己開啟的檔案串列

行程的切換 行程P0 作業系統 行程P1 中斷或系統呼叫 將狀態儲存至 PCB 0 執行中 閒置 由 PCB 1 載入狀態

第四章 行程 行程概念 行程排程 排程佇列 排程器 內文切換 行程的建立與結束 執行緒 行程合作 行程間溝通 摘要

行程排程 為了增加 CPU 的使用效率而提出多個行程的觀念。 一個單 CPU 的系統來說,隨時只能有一個行程在執行。 如何排程是影響作業系統效能最重要的因素。

排程佇列 一個行程在執行期間會在各種不同的佇列中進出。 一個系統中通常有 工作佇列 就緒佇列 等待佇列 裝置佇列

就緒佇列與裝置佇列 head tail 暫存器 … 就緒佇列 磁碟1 佇列 磁碟2 佇列 PCB7 PCB2 PCB5 PCB1 PCB9

排程器 作業系統中主要的排程器有: 長程排程器和短程排程器最大的不同點 執行的頻率 中程排程器最主要的用途在於降低系統多工的程度,以增加系統可用記憶體的大小。

內文切換 當 CPU 的使用權由一個行程轉到另一個行程時需進行內文切換。 內文切換動作所花的時間對系統而言是額外的負擔 。 執行緒降低內文切換所花的時間。

第四章 行程 行程概念 行程排程 行程的建立與結束 行程的建立 行程的結束 執行緒 行程合作 行程間溝通 摘要

行程的建立與結束 不同行程在系統中可以同時執行,而且必須能動態地被建立與刪除,如此才能有效地運用或共享系統資源來完成系統的目標。 如何有效地建立和刪除行程也是影響作業系統效能的重要因素。

行程的建立 一個行程能在執行的期間透過系統呼叫建立很多新的行程。 建立新行程的行程稱為父行程,而新建立的行程稱為子行程。 UNIX 系統中,使用行程代號(PID)來分辦不同的行程。 系統呼叫 fork() execve() wait()

行程樹 root kswapd keventd init_task bash ypbind crond …

行程的結束 一個行程結束時,需要將執行期間內用到的資源如實體記憶體、虛擬記憶體、開啟的檔案和使用的 I/O 裝置等,都會交還給作業系統。 系統呼叫 exit() about()

第四章 行程 行程概念 行程排程 行程的建立與結束 執行緒 行程合作 行程間溝通 摘要 執行緒概念 執行緒的優點 使用者和核心執行緒 多執行緒的模型 行程合作 行程間溝通 摘要

執行緒 系統呼叫 fork() 的缺點 若行程間可以共用一部分的記憶體空間,那麼額外的負擔就能減少,這也就是建立執行緒的基本理由。 需要做大量記憶體的複製 進行內文切換時需付出相當的代價 兩個行程間無法直接進行溝通 若行程間可以共用一部分的記憶體空間,那麼額外的負擔就能減少,這也就是建立執行緒的基本理由。

執行緒觀念 執行緒 傳統的行程 輕量級行程 使用 CPU 資源的基本單元 包含了一個程式計數器、一組暫存器和一個堆疊空間 與其他的執行緒共用同一個位址空間 傳統的行程 重量級行程 可看成是只有一個執行緒在執行的行程

傳統行程與執行緒行程 程式 資料 檔案 程式 資料 檔案 暫存器 堆疊 暫存器 暫存器 堆疊 堆疊 執行緒 執行緒 單執行緒 多執行緒

執行緒的優點 使用執行緒來取代傳統行程有幾項優點: 資源共享容易 節省記憶體空間 快速的內文切換 平行處理

使用者和核心執行緒 在作業系統中,有兩種方式來支援執行緒 使用者執行緒 核心執行緒 利用執行緒函式庫來提供的 建立與管理執行緒時比較有效率 若行程中的執行緒暫停,則同行程中其他所有執行緒也都會暫停執行 核心執行緒 由作業系統直接支援 建立與管理執行緒時比使用者執行緒來得慢 若行程中的執行緒暫停,核心可以安排其他在同行程中的執行緒繼續執行

多執行緒的模型 實作執行緒時通常有三種模型 多對一模型 - 將許多個使用者執行緒對應到同一個核心執行緒。 一對一模型 - 將一個使用者執行緒對應到一個核心執行緒。 多對多模型 - 將使用者執行緒對應到相同或是較少數目的核心執行緒。

多對一模型 使用者執行緒 核心執行緒

一對一模型 核心執行緒 使用者執行緒

多對多模型 使用者執行緒 核心執行緒 核心執行緒 核心執行緒

第四章 行程 行程概念 行程排程 行程的建立與結束 執行緒 行程合作 緩衝區 生產者 消費者 行程間溝通 摘要

行程合作 當多個行程同時在一個系統中執行時,可能會形成: 典型行程合作的問題: 多個獨立的行程 - 指行程之間沒有任何共享的資料。 一些合作的行程 - 指行程之間有共享的資料。 典型行程合作的問題: 生產者 - 產生資訊給消費者 消費者 - 消耗生產者所產生的資訊

緩衝區 當生產者和消費者同時執行時,需要有一個緩衝區給生產者存放產品,以提供給消費者使用。 緩衝區可分為: 無限緩衝區 有限緩衝區 緩衝區由作業系統提供的 IPC 機制來產生,或是直接經由程式設計師在程式中使用共享記憶體的機制來進行。

生產者與消費者的例子 使用共享記憶體機制 生產者及消費者的行程共享了下列的變數: 這個例子中同時最多只能使用到 n-1 個緩衝區的空間 #define BUF_SIZE int iIn = 0, iOut = 0 user_def_type buffer[BUF_SIZE] 這個例子中同時最多只能使用到 n-1 個緩衝區的空間

生產者 do { … 產生一個型別為 user_def_type 的資料並存放於 nextp /* 若緩衝區己滿則等待 */ while ((iIn + 1) % BUF_SIZE == iOut); ; buffer[iIn] = nextp; iIn = (iIn + 1) % BUF_SIZE; } while (FALSE);

消費者 do { while (iIn = iOut); /* 若緩衝區為空則等待 */ ; nextc = buffer[iOut]; iOut = (iOut + 1) % BUF_SIZE; … 將存於 nextc 的資料消耗掉 } while (FALSE);

第四章 行程 行程概念 行程排程 行程的建立與結束 執行緒 行程合作 行程間溝通 基本架構 直接溝通 間接溝通 同步 緩衝 例外狀況 摘要

行程間溝通 共享記憶體利用一塊行程間共享的緩衝區來進行合作的溝通,而溝通的方式完全由程式設計師自行設計。 行程間溝通(IPC)由作業系統提供。 IPC 包含了一些機制,讓行程與行程間能夠進行溝通與同步。 共享記憶體或是 IPC 的機制是可以同時使用的。

基本架構 行程間溝通(IPC)為作業系統所提供用來達到行程間資料交換與共享的機制。 IPC 通常會提供兩個函式: send() - 傳送訊息 recv() - 接收訊息 行程間在溝通時會建立一條通訊鏈結。透過鏈結send() 和 receive() 就可以傳送和接收訊息。 實作傳送與接收功能時有幾種方法: 直接或間接的溝通 對稱或非對稱溝通 傳送複製或只傳送參考

直接溝通 每個行程要與其他行程進行溝通時,必須要明確地指出訊息傳送的目的地或接收訊息的來源。 可分為對稱與非對稱,而 send() 和 receive() 分別被定義成 對稱 – send(A, message) /*傳送訊息給 A 行程*/ receive(B, message) /*從 B 行程接收訊息*/ 非對稱 – send(A, message) /*傳送訊息給 A 行程 */ receive(id, message)/*從任何一個行程接收一個訊息。 其中 id 這個變數代表正在與接 收端進行溝通的行程 */

直接溝通(續) 使用 IPC 機制程式較容易撰寫。 do { …. /* 生產者產生新的資料 p_product */ … send(消費者, p_product); } while (FALSE); 生產者行程 do { receive(生產者, c_product); … /* 消費者消耗c_product */ } while (FALSE); 消費者行程

間接溝通 訊息的傳送與接收是透過信箱來完成。 send() 與 receive() 可定義為 send(A, message) /*傳送一個訊息到 A 信箱*/ receive(A, message)/*從 A 信箱接收一個訊息*/ 多個行程同時共用相同的信箱,若多個行程同時接收訊息,那個行程會收到訊息? 同時只允許兩個行程共享信箱 同時只允許一個行程呼叫 receive() 交給作業系統,讓作業系統決定由誰得到訊息

間接溝通(續) 信箱的擁有者可以為 若信箱的擁有者為作業系統,則作業系統必須提供功能讓行程去: 行程 作業系統 建立一個新的信箱 透過信箱去傳送和接收訊息 銷毀一個信箱

同步 行程間可透過 send() 與 receive() 來進行同步。 實作 send() 與 receive() 時,可為 阻隔式發送 非阻隔式發送 阻隔式接收 非阻隔式接收 當 send() 與 receive() 皆為阻隔式時,發送端與接收端之間就會是同步的。

緩衝 一個鏈結中,可能設置緩衝區來暫時儲存正在鏈結中傳遞的訊息,一般是用訊息佇列來實作。 實作訊息佇列時可使用下列幾種方法: 無緩衝 有限緩衝 無限緩衝 使用有緩衝的訊息佇列時,若行程間需要同步則需另外處理。

例外狀況 例外處理,用來處理各種例外狀況的一種錯誤回復機制。 當下列狀況發生時,系統可能需要進行錯誤的回復: 行程結束 訊息遺失 訊息的錯誤