資源描述:
《進程調度及進程管理(處理機管理).ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第05講進程調度及進程管理5.1作業(yè)5.2進程5.3線程5.4小結5.5習題提高處理機(CPU)的使用率,使它盡可能處于工作狀態(tài),是操作系統(tǒng)管理功能的主要目標之一。在Linux系統(tǒng)中,提高處理機使用率的技術措施主要是多道和分時,處理機在進程之間切換,按照一定的規(guī)則輪流執(zhí)行每個進程。對于單個處理機的系統(tǒng),這些進程宏觀上看似并行執(zhí)行,而微觀上來看仍然是串行執(zhí)行的,這種執(zhí)行方式被稱為并發(fā)執(zhí)行。操作系統(tǒng)通過并發(fā)控制機制,對處理機進行分配、調度,在保證每個進程都得到公平合理執(zhí)行的同時,使系統(tǒng)中的各種資源得到充分的使用。本講主要圍繞處
2、理機管理展開,著重介紹進程的概念,同時也包括相關的兩個基本概念:作業(yè)和線程。作業(yè)是用戶向計算機系統(tǒng)提交一項工作的基本單位,是用戶在一次事務處理或計算過程中要求計算機所做工作的總和。作業(yè)和程序是兩個相互聯系而又不同的概念。如果一次業(yè)務處理可以由某一個程序完成,就是說這個業(yè)務處理只要提交這一個程序就夠了,這種情況下,這個程序就是一個作業(yè)。通常,完成一次業(yè)務需要由多個程序協(xié)同完成,這時,多個程序、這些程序需要的數據以及必要的作業(yè)說明一起構成一個作業(yè)。系統(tǒng)通過作業(yè)說明書(JCB)或者作業(yè)控制語句(JCL)控制程序和相應的數據執(zhí)行,
3、完成整個業(yè)務處理。5.1作業(yè)按照對作業(yè)的處理方式,可以分為聯機、批處理等作業(yè)。Linux系統(tǒng)中的shell提供了操作系統(tǒng)和用戶之間的聯機命令接口。Linux的shell同時提供了程序級接口。用戶通過提交一個命令或一個命令序列以批處理方式執(zhí)行特定的操作。在Linux分時批處理系統(tǒng)中,也可以根據對作業(yè)執(zhí)行時的響應特征分為前臺作業(yè)和后臺作業(yè)。在多用戶系統(tǒng)中,多個用戶、不同類型的作業(yè)可能同時請求執(zhí)行,控制和管理這些作業(yè),協(xié)調它們之間的關系,就是作業(yè)調度,作業(yè)調度是處理機調度的一部分。5.1作業(yè)計算機內存中同時存放多個相互獨立的已經
4、開始運行的程序實體,大家按照某種規(guī)則輪流使用處理器,這是現代多道操作系統(tǒng)實現資源共享,提高系統(tǒng)資源利用率的主要方式。描述這些程序實體的概念就是進程。在多道情況下,每個進程獨立地擁有各種必要的資源,占有處理機,獨立地運行。在多道系統(tǒng)中,同時存在多個進程,所以當某個進程進入等待狀態(tài)時,操作系統(tǒng)將把處理機控制權拿過來并交給其他可以運行的進程。進程之間存在著相互制約、相互依賴的約束關系。5.2進程一種最糟糕的情況是所有進程都擁有部分資源,同時在等待其他進程擁有的資源,這樣,大家都無法運行,進入一種永久等待的狀態(tài),這種情況稱為死鎖,
5、死鎖是對系統(tǒng)資源極大的浪費,必須設法避免。本節(jié)著重討論現代多道操作系統(tǒng)中的核心概念——進程,這是理解操作系統(tǒng)工作原理的基礎和關鍵。首先介紹單個進程的狀態(tài)、狀態(tài)轉換的條件和控制原語、進程在系統(tǒng)中的靜態(tài)描述等,接著介紹多個進程之間的約束關系,由此引出進程間通信的概念,通信是協(xié)調、解決進程間約束關系的惟一手段,這種約束關系處理不當造成的最嚴重的后果就是死鎖。5.2進程5.2.1進程的概念進程的概念最早出現在60年代中期,用于多道系統(tǒng),在Linux系統(tǒng)中,進程也稱為任務(task)。簡單講,進程就是正在運行的程序,更為嚴謹的表達是
6、,進程是一個具有一定獨立功能的程序關于某個數據集合的一次運行活動。進程的概念對于理解操作系統(tǒng)有決定性的意義,而真正理解進程,必須了解它的基本性質。進程是操作系統(tǒng)分配資源和進行調度的獨立單位,具有獨立性、動態(tài)性。多道系統(tǒng)中同時存在多個進程,這些進程擁有各自的資源,各自獨立地執(zhí)行,對于單處理機系統(tǒng),進程宏觀上同時運行而微觀上是依次執(zhí)行,這種情況稱為并發(fā)執(zhí)行。5.2進程1.進程和程序進程和程序是一對相互聯系的概念。程序是指令的有序集合,是一個靜態(tài)的概念,描述完成某個功能的一個具體操作過程,而進程是程序針對某一組數據的一次執(zhí)行過程
7、,更強調動態(tài)特征。一個完整的進程,包括程序、執(zhí)行程序所需要的數據,同時還必須包括記錄進程狀態(tài)的數據資料。在多道分時操作系統(tǒng)中,按照時間片輪流在各個進程間切換。對于單處理器系統(tǒng),每一個時刻只能有一個進程在執(zhí)行,當分配給該進程的時間片用完之后,不管該進程運行到什么程度,都必須立即停止,然后讓出處理器資源,下一個進程進入執(zhí)行狀態(tài)。5.2進程讓出處理器的進程必須記錄好正在運行的狀態(tài),包括寄存器、堆棧等各種信息,這些信息保證當處理器下次切換到這個進程的時候,進程能夠正確地從上次執(zhí)行到的位置繼續(xù)往下執(zhí)行。一個程序在處理相同或不同的操作
8、數據時可以同時對應于多個進程。一個進程也可以包含多個程序,某個程序在運行過程中,可能同時會調用到多個其他程序,這些具有調用關系的多個程序共同構成一次完整的運行活動,即一個完整的進程。5.2進程舉一個直觀的例子。我們在Linux系統(tǒng)下使用編輯器vi進行編輯,同時打開多個窗口,編輯多個不同名稱的文件,vi編