作业系统PPT课件

上传人:沈*** 文档编号:202091821 上传时间:2023-04-21 格式:PPT 页数:50 大小:1.02MB
收藏 版权申诉 举报 下载
作业系统PPT课件_第1页
第1页 / 共50页
作业系统PPT课件_第2页
第2页 / 共50页
作业系统PPT课件_第3页
第3页 / 共50页
资源描述:

《作业系统PPT课件》由会员分享,可在线阅读,更多相关《作业系统PPT课件(50页珍藏版)》请在装配图网上搜索。

1、作業系統第四章 行程與執行緒 教學目標n行程的概念n行程的操作 n執行緒 n行程間的通訊(IPC)行程的概念n行程.程式n行程的狀態n行程控制表n本文切換(Context Switch)行程.程式n程式(program)被動的觀念一堆程式碼,定義要執行的任務n行程(process)主動的觀念主動執行被賦予的任務執行的基本單位行程的狀態n剛產生剛產生(new)作業系統正在產生這個行程,包括從硬碟將程式碼載入到記憶體中,和配置使該行程能夠執行所需要的系統資源等 n執行中執行中(running)該行程正在使用CPU做某些運算中 n等待等待(waiting)該行程正等待某件事情的發生而暫停執行,例如:

2、等待某次I/O運算的完成或等待其他行程送訊號過來等n就緒就緒(ready)該行程目前只有在等待使用CPU的機會,而CPU正被其他的行程使用中 n結束結束(terminated)該行程目前已經完成了任務,並且結束了執行 行程狀態之間的轉移剛產生結束就緒執行中等待資源配置完成資源配置完成執行結束執行結束等待等待I/O或事件或事件I/O完成或完成或事件發生事件發生分派執行分派執行中斷執行中斷執行行程控制表(PCB)n目的方便管理各個行程n每一個行程會有一個相對應的行程控制表n依據各平台,記錄該行程的相關資訊行程狀態CPU排班CPU暫存器狀態記憶體管理輸入輸出Linux的行程控制表範例 struct

3、task_struct volatile long state;unsigned long flags;unsigned long policy;int prio,static_prio;unsigned int time_slice;cpumask_t cpus_allowed;/*本行程依目前CPU規劃的狀態*/struct thread_struct thread;struct mm_struct*mm;sigset_t blocked;struct sigpending pending;struct files_struct*files;void*journal_info;行程狀態行程

4、狀態輸出輸入輸出輸入相關資訊相關資訊CPU暫存器狀態暫存器狀態記憶體管理記憶體管理相關資訊相關資訊CPU排班相關資訊排班相關資訊本文切換(Context Switch)n目的多工、增加CPU的使用效率n方法先釋放出CPU使用權的行程,儲存其執行時的狀態,包括CPU內暫存器的內含值,以及所屬記憶體的內容等將整個系統的狀態,回復成下個要執行的行程被系統儲存下來的狀態行程的觀點與CPU的觀點 行程1的CPU執行時間行程1的CPU執行時間行程1的I/O等待時間行程1的CPU執行時間行程1的I/O等待時間行程1的CPU執行時間行程3的CPU執行時間由行程的觀點:單一行程的執行模式由行程的觀點:單一行程的

5、執行模式由由CPU的觀點:行程間的切換執行的觀點:行程間的切換執行行程2的CPU執行時間本文切換的範例PCSPPCSPPCSPCPU暫存器組暫存器組新行程的記憶體新行程的記憶體舊行程的記憶體舊行程的記憶體(1)儲存舊儲存舊行程狀態行程狀態(2)回復新回復新行程狀態行程狀態程式碼堆疊(3)新行程新行程開始執行開始執行PC:程式計數器,記錄執行到程式的哪一行SP:堆疊指標,記錄行程相關資料的所在位址本文切換的問題n缺點整體系統的額外負擔n解決策略調整本文切換的頻率另外增加硬體(e.g.多CPU暫存器組、多CPU)使用執行緒(thread)行程的操作n行程的產生n行程的結束行程的產生n配置新行程在執

6、行時所需的系統資源PCB、記憶體、檔案、輸入輸出裝置、.n行程樹通常除了系統的第一個行程外,其餘的所有行程都是由該行程產生被產生的行程也可以產生另外的新行程產生的行程為父行程,被產生的為子行程n產生的方式-系統呼叫系統呼叫 POSIX API的fork(),Unix/LinuxWin32 API的CreateProcess(),Windows行程樹示意圖行程的產生與替換之範例行程的結束n釋放該行程擁有的系統資源 n時機該行程的父行程呼叫行程結束的系統呼叫,以結束該行程的執行該行程已經執行完畢n分類串接式結束非串接式結束執行緒(thread)n概念n層級與對應模式 執行緒的概念nWhy?行程的產

7、生、結束和本文切換的負擔大nWhat?執行的基本單位輕量型行程同個行程內的所有執行緒,共用相同的位址空間(程式碼、資料、.)行程.執行緒執行緒的優點(相較於行程)n加快反應速度n資源分享n經濟性本文切換(1/5 in Solaris)產生與結束執行緒(1/3 in Solaris)執行緒的層級n核心層級完全由作業系統操作、管理在執行(running)狀態下,表示正佔據CPU時間所有此層級的執行緒,可看成屬於同一行程(核心)n使用者層級屬於某個使用者模式的行程若全由使用者模式執行緒函式庫來管理n在執行(running)狀態下,不見得一定正佔據CPU時間n具有較高的可攜性(e.g.POSIX PT

8、hreads)依實作方式不同,和核心層級執行緒有不同的對應方式:兩個層級間執行緒的對應n1:1對應模式nN:1對應模式nM:N對應模式1:1對應模式1:1對應模式的優缺點n優點每增加一個使用者層級的執行緒,就可以有多一個搶到的CPU執行機會,執行緒的並行性(concurrency)比較好當一個執行緒呼叫系統呼叫而被卡住時(如等待I/O),其他執行緒還有執行機會,而且只透過一層的核心層級排班,執行效率比較高n缺點比較耗核心層級的資源,產生過多的核心層級執行緒,會降低整個系統的執行效率多數支援這種模式的作業系統會限制執行緒的總數n範例Windows系列的CreateThread()N:1對應模式N

9、:1對應模式的優缺點n優點減少核心的負擔方便移植到各個平台的作業系統n缺點同個行程內的任何一個執行緒,只要呼叫系統呼叫而被暫停(如等待I/O),則整個行程內的所有執行緒就都必須一起等待,沒有另外取得CPU執行權的機會n範例Solaris的Green threadsGNU的POSIX PThreads M:N對應模式M:N對應模式的優缺點n優點具有較大的彈性可以避免前兩種對應模式的缺點,例如,某一使用者層級執行緒被卡住時,可以安排別的核心層級執行緒處理同一行程中的其他執行緒,避免同個行程中的所有執行緒都要跟著暫停執行n缺點需要比較複雜的使用者層級排班,跟1:1對應模式比起來執行效率就比較差一點n

10、範例Solaris有支援過M:N對應模式,但是在Solaris 9之後就改成1:1對應模式Java執行緒nJava程式是架構在Java虛擬機器(JVM)之上,而JVM則架構在既有的作業系統之上nJVM的實作方式並沒有強制性的規範,只需要提供上層Java程式執行介面的一致性就好了n在Windows XP採用1:1對應模式,每個Java執行緒對應到一個核心執行緒nSolaris剛開始是以N:1對應模式實作JVM,後來又有M:N對應模式的實作出現,而在Solaris 9之後又改成1:1對應模式n使用底層作業系統提供的API例如,在Windows下就是使用Win32 API 行程間的通訊n並行行程的分

11、類n共用記憶體模式n訊息傳遞模式n訊息傳遞的行為分類n訊息傳遞的實作方式並行行程的分類n互相獨立執行過程中不會受其他行程的影響,而各自完成自己的任務n有合作關係透過共用資源共用資源(如資料結構、訊號機制等)的使用,來互相溝通合作以共同完成某些任務但是它們的執行結果常常會因為存取共用資源而彼此受到影響 行程間互相合作的好處n資訊分享n提升運算效能n模組化n便利性如何達到行程間互相合作的目的?n行程間的通訊(IPC)共用記憶體模式訊息傳遞模式共用記憶體模式共用記憶體行程行程A的位址空間的位址空間行程行程B的位址空間的位址空間實體記憶體實體記憶體(1)建立記憶建立記憶體區塊,放體區塊,放入位址空間,

12、入位址空間,並設成可共並設成可共用用(2)取得記取得記憶體區塊,憶體區塊,並放入位址並放入位址空間空間潛在問題!nA和B兩行程同時用一台印表機做列印?結果可能是A印一行,接著B印一行,交錯而成n解決方法同步機制(synchronization mechanism)訊息傳遞模式本機中的行程訊息傳遞不同機器上的行程訊息傳遞基本指令模式nsend(訊息)to(目的地)nreceive(訊息)from(來源)訊息傳遞模式的行為分類n單向與雙向n直接與間接n暫停式與非暫停式n有緩衝區與無緩衝區n可靠與不可靠n對應模式 直接與間接會晤現象等待確認通知(1/2)等待確認通知(2/2)對應模式一對一一對多多對

13、多訊息傳遞的實作方式n信號(Signal)機制例如:kill(行程代碼,信號種類)n虛擬溝通管道例如:管線(pipe)、信箱(mailbox)、訊息佇列(message queue)和承接口(socket)等 n輸入輸出裝置例如:檔案系統信號之使用範例虛擬溝通管道 訊息佇列之使用範例檔案系統之使用範例小結n行程是作業系統內所有動作的核心,其基本狀態包括剛產生、就緒、執行中、等待以及結束等n作業系統必須提供一些機制,用來動態產生一個新的行程和將它結束掉n執行緒也是基本的執行單位,用來減少作業系統內的行程個數,以及增加整體系統的執行效率n行程間要互相合作必須靠行程間通訊(IPC)的機制,包括共用記憶體和訊息傳遞兩種模式

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!