- 相關推薦
操作系統的主要功能有哪些
操作系統是計算機系統中最基本的系統軟件,它用于有效地管理系統資源,并為用戶使用計算機提供了便利的環境。下面小編為大家介紹操作系統的主要功能有哪些吧!
主要功能
操作系統的主要功能是資源管理,程序控制和人機交互等。計算機系統的資源可分為設備資源和信息資源兩大類。設備資源指的是組成計算機的硬件設備,如中央處理器,主存儲器,磁盤存儲器,打印機,磁帶存儲器,顯示器,鍵盤輸入設備和鼠標等。信息資源指的是存放于計算機內的各種數據,如文件,程序庫,知識庫,系統軟件和應用軟件等。 操作系統位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統的用戶界面,輸入命令。操作系統則對命令進行解釋,驅動硬件設備,實現用戶要求。以現代觀點而言,一個標準個人電腦的OS應該提供以下的功能:
進程管理(Processing management)
內存管理(Memory management)
文件系統(File system)
網絡通訊(Networking)
安全機制(Security)
用戶界面(User interface)
驅動程序(Device drivers)
資源管理
系統的設備資源和信息資源都是操作系統根據用戶需求按一定的策略來進行分配和調度的。操作系統的存儲管理就負責把內存單元分配給需要內存的程序以便讓它執行,在程序執行結束后將它占用的內存單元收回以便再使用。對于提供虛擬存儲的計算機系統,操作系統還要與硬件配合做好頁面調度工作,根據執行程序的要求分配頁面,在執行中將頁面調入和調出內存以及回收頁面等。
處理器管理或稱處理器調度,是操作系統資源管理功能的另一個重要內容。在一個允許多道程序同時執行的系統里,操作系統會根據一定的策略將處理器交替地分配給系統內等待運行的程序。一道等待運行的程序只有在獲得了處理器后才能運行。一道程序在運行中若遇到某個事件,例如啟動外部設備而暫時不能繼續運行下去,或一個外部事件的發生等等,操作系統就要來處理相應的事件,然后將處理器重新分配。
操作系統的設備管理功能主要是分配和回收外部設備以及控制外部設備按用戶程序的要求進行操作等。對于非存儲型外部設備,如打印機、顯示器等,它們可以直接作為一個設備分配給一個用戶程序,在使用完畢后回收以便給另一個需求的用戶使用。對于存儲型的外部設備,如磁盤、磁帶等,則是提供存儲空間給用戶,用來存放文件和數據。存儲性外部設備的管理與信息管理是密切結合的。
信息管理是操作系統的一個重要的功能,主要是向用戶提供一個文件系統。一般說,一個文件系統向用戶提供創建文件,撤銷文件,讀寫文件,打開和關閉文件等功能。有了文件系統后,用戶可按文件名存取數據而無需知道這些數據存放在哪里。這種做法不僅便于用戶使用而且還有利于用戶共享公共數據。此外,由于文件建立時允許創建者規定使用權限,這就可以保證數據的安全性。
程序控制
一個用戶程序的執行自始至終是在操作系統控制下進行的。一個用戶將他要解決的問題用某一種程序設計語言編寫了一個程序后就將該程序連同對它執行的要求輸入到計算機內,操作系統就根據要求控制這個用戶程序的執行直到結束。操作系統控制用戶的執行主要有以下一些內容:調入相應的編譯程序,將用某種程序設計語言編寫的源程序編譯成計算機可執行的目標程序,分配內存儲等資源將程序調入內存并啟動,按用戶指定的要求處理執行中出現的各種事件以及與操作員聯系請示有關意外事件的處理等。
人機交互
操作系統的人機交互功能是決定計算機系統“友善性”的一個重要因素。人機交互功能主要靠可輸入輸出的外部設備和相應的軟件來完成。可供人機交互使用的設備主要有鍵盤顯示、鼠標、各種模式識別設備等。與這些設備相應的軟件就是操作系統提供人機交互功能的部分。人機交互部分的主要作用是控制有關設備的運行和理解并執行通過人機交互設備傳來的有關的各種命令和要求。
虛擬內存
虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。
用戶接口
用戶接口包括作業一級接口和程序一級接口。作業一級接口為了便于用戶直接或間接地控制自己的作業而設置。它通常包括聯機用戶接口與脫機用戶接口。程序一級接口是為用戶程序在執行中訪問系統資源而設置的,通常由一組系統調用組成。
在早期的單用戶單任務操作系統(如DOS)中,每臺計算機只有一個用戶,每次運行一個程序,且次序不是很大,單個程序完全可以存放在實際內存中。這時虛擬內存并沒有太大的用處。但隨著程序占用存儲器容量的增長和多用戶多任務操作系統的出現,在程序設計時,在程序所需要的存儲量與計算機系統實際配備的主存儲器的容量之間往往存在著矛盾。例如,在某些低檔的計算機中,物理內存的容量較小,而某些程序卻需要很大的內存才能運行;而在多用戶多任務系統中,多個用戶或多個任務更新全部主存,要求同時執行獨斷程序。這些同時運行的程序到底占用實際內存中的哪一部分,在編寫程序時是無法確定的,必須等到程序運行時才動態分配。
用戶界面
用戶界面(User Interface,簡稱 UI,亦稱使用者界面[1])是系統和用戶之間進行交互和信息交換的媒介,它實現信息的內部形式與人類可以接受形式之間的轉換。
用戶界面是介于用戶與硬件而設計彼此之間交互溝通相關軟件,目的在使得用戶能夠方便有效率地去操作硬件以達成雙向之交互,完成所希望借助硬件完成之工作,用戶界面定義廣泛,包含了人機交互與圖形用戶接口,凡參與人類與機械的信息交流的領域都存在著用戶界面。用戶和系統之間一般用面向問題的受限自然語言進行交互。目前有系統開始利用多媒體技術開發新一代的用戶界面。
操作系統原理
什么是進程?
進程的出現,是為了是操作系統可以以一種有序的方式管理應用的執行,以達到以下目的:
資源對多個應用程序是可用的;
物理處理器在多個應用程序之間切換以保證所有程序都在執行中;
處理器和I/O設備能得到充分利用;
所有現在操作系統采用的方法都是依據一個或者多個進程存在的應用程序執行的一種模型。 到底什么是進程呢?
進程是一組元素組成的實體,它可以是一個正在執行中的程序,也可以是一個能分配給處理器并由處理器執行的實體。
進程的兩個基本元素是:程序代碼(program code)和代碼相關聯的數據集(set of data)。
在進程執行時,任意給定一個時間,進程都可以唯一地表征為以下元素:
標識符:進程的唯一標識符,用來區別其他進程
狀態:進程在不同的生命周期有著不同的狀態
優先級:相對于其他進程的優先級
程序計數器:程序中即將被執行的下一條指令的地址
內存指針:包含程序代碼和進程相關數據的指針,還有和其他進程共享內存塊的指針
I/O狀態信息:包括顯示的I/O請求、分配給進程的I/O設備和被進程使用的文件列表等
記賬信息:可能包括處理器時間總和、使用的時鐘數總和、時間限制、記賬號等
上述的列表信息被存放在一個稱為進程控制塊的數據結構中,該控制塊由操作系統創建 和管理。
進程狀態
在任何時刻,進程可以處于以下兩種狀態之一:運行態和未運行態,這是最簡單的兩狀態模型。在這個模型中,會有一個調度器(dispatcher),使處理器從一個進程切換到另外一個進程。
內存狀態轉換'
由于存在著一些處于非運行狀態但已經就緒等待執行的進程,而同時存在另外一些處于堵塞狀態等待I/O操作結束的進程。
因此,解決這一問題比較自然的方法是使用五狀態模型: 運行態、就緒態、堵塞/等待態、新建態和退出態。
五狀態模型'
(1)被掛起的進程
上述的基本狀態提供了一種為進程建立系統模型的方法,并指導系統的實現。但是,往這個模型中添加其他狀態也是合理的。
由于處理器的運行速度遠大于I/O,以至于內存中所有的進程都在等待I/O的情況也是很常見的。因此,即使是多道程序設計,大多數處理器仍然可能處于空閑狀態。
一種解決方案是增大內存,使得內存中可以存在更多的進程。然而這種方案顯然是治標不治本的。
另外一種解決方案是交換(swapping)。當內存中沒有處于就緒狀態的進程時,操作系統就把被阻塞的進程換出到磁盤中的掛起隊列(suspend queue)。操作系統在此之后取出掛起隊列中的另一個進程,或者接受一個新進程,將其加載到內存中運行。這時,在進程狀態模型中添加了另外一個狀態:掛起態。
當操作系統從掛起隊列中取出一個依然阻塞的進程是毫無意義的,因為它仍然沒有準備好執行。所以為了區分被掛起的進程哪些是可以取出的,需要設計另外一種掛起模型:
為了區分,需要四個狀態:
就緒態:進程在內存中并可以執行
阻塞態:進程在進程中并等待一個事件
阻塞/掛起態:進程在外存中并等待一個事件
就緒/掛起態:進程在外存中,但是只要被載入內存就可以執行
總結一下掛起的進程的概念:
進程不能被立即執行。
進程可能是或不是正在等待一個事件。如果是,阻塞條件不依賴于掛起條件,阻塞事件的 的發生不會使進程立即執行。
為組織進程的執行,可以通過代理把這個進程置于掛起狀態,代理可以是進程自己,也 可以是父進程或者操作系統。
除非代理顯示的命令操作系統進行狀態轉換,否則進程無法從這個狀態中轉移。
除了因為提供更多的內存空間,進程還會因為什么原因被掛起呢?
在所有這些導致進程掛起的情況中,掛起進程的活動都是由最初請求掛起的代理請求的。
進程描述
操作系統控制計算機系統內部的事件,它為處理器執行進程而進行調度「schedule」和分派 「dispatch」,給進程分配資源,并響應用戶程序的基本服務請求。因此,操作系統可以被視為管理系統資源的實體。
操作系統為了控制進程和管理資源需要哪些信息呢?
>>(1)操作系統的控制結構
為了管理進程和資源,操作系統構造并維護它所管理的每個實體的信息表。
操作系統維護四種不同類型的表:內存、I/O、文件和進程。
內存表「memory tables」用于跟蹤內存和外存。內存表必須包括一下信息:
分配給進程的內存
分配給進程的外存
內存塊或者虛擬內存塊的保護屬性
管理虛擬內存所需要的任何信息
I/O表「I/O tables」用于管理計算機系統中的I/O設備和通道。在任何給定的時刻,一個I/O 設備或者是可用的,或者是已分配給某個特定的進程。如果正在進行I/O操作,則操作系統需 要知道I/O操作的狀態和作為I/O傳送的源與目標的內存單元。
文件表「file tables」用于提供關于文件是否存在、文件在外存中的位置、當前狀態和屬性 的信息。
進程表「process tables」為了管理和操作進程所必須使用的表。
(2)進程控制結構
操作系統在管理和控制進程時,首先必須知道進程的位置,然后,它必須知道在管理時所必需的進程的屬性(如進程ID、進程狀態)。
進程位置
想一個最基本的問題:進程的物理表示是什么?
回想之前關于進程的定義,進程至少包括一個或者一組被執行的程序,與這些程序相關聯的 局部變量、全局變量和任何已定義常量的數據單元。因此,一個進程至少包括足夠的內存空 間,以保存該進程的程序和數據;此外,程序的執行通常設計用于跟蹤過程調用和過程間參 數傳遞的棧。最后,與每個進程相關聯的還有操作系統用于控制進程的許多屬性,也就是進 程控制塊。程序、數據、棧和屬性的集合稱為進程映像「process image」。
在最簡單的情況下,進程映像保存在鄰近的活連續的存儲塊中。因此,操作系統必須知道每 個進程在磁盤中的位置;對于在內存中的進程,需要知道其在內存中的位置。
現代操作系統嘉定分頁硬件允許用不連續的物理內存來支持部分常駐內存的程序。在任何給 定的時刻,進程映像的一部分可以在內存中,剩余部分可以在外存中。因此,操作系統維護 的進程表必須表明每個進程映像中每頁的位置。
進程屬性
操作系統所需要的每個進程信息的簡單分類:
進程標識信息
進程狀態信息
進程控制信息
所有的操作系統中,每個進程都分配了唯一的一個數字來表示進程標識符。除此之外, 還分配一個用戶標識符,用于表明擁有該進程的用戶。
處理器狀態信息包括處理器寄存器的內容。當進程被中斷時,所有寄存器中的信息必須 被保存起來,使得進程恢復執行時,這些信息可以被恢復。
進程控制塊中的第三類主要信息是進程控制信息,用于操作系統控制和協調各種活動進 程所需要的額外信息。
進程控制塊中可能還包含構造信息,包括將進程控制塊鏈接起來的指針。
進程控制塊的作用
進程控制塊是操作系統中最重要的數據結構。操作系統中的每個模塊,包括那些設計調度、 資源分配、中斷處理、性能檢測和分析的模塊,都可能讀取或者修改進程控制塊。
進程控制
>>(1)執行模式
為了保護操作系統和重要的操作系統表不受用戶程序的干涉,操作系統通常使用兩種模式管理進程:特權模式『也稱為系統模式(system mode)、控制模式(control mode)或者內核模式 (kernel mode)』,和用戶模式。
在內核模式下,軟件具有對處理器及所有指令、寄存器和內存的控制能力,這一級的控制對用戶程序不是必需的,并且為了安全也不是用戶程序可以訪問的。
>>(2)進程創建
操作系統一般安裝以下步驟創建進程:
給進程分配一個唯一的進程標識符。此時,主進程表中增加一條新表項,其對應該進程。
給進程分配空間。包括進程映像中的所有元素。
初始化進程控制塊。進程控制信息部分的初始化基于標準默認值和為該進程所請求的屬 性。
設置正確的連接。
創建或者擴充其他數據結構。
>>(3)進程切換
關于進程切換,有著一些問題。
進程什么時候進程切換?
執行模式切換和進程切換之間有什么區別?
進程切換時,操作系統必須對它控制的各種數據結構做什么?
何時切換進程
通常,下列原因可能造成進程切換。
模式切換
如果存在一個未處理的中斷,處理器會做以下工作:
把程序計數器置成中斷處理程序的開始地址。
從用戶模式切換到特權模式,使得中斷處理代碼可以包含有特權的指令。
進程的狀態變化
如果當前正在運行的進程被轉換到另外一個狀態(就緒、掛起等),則操作系統必須使其環境發生實質性的變化:
保存處理器的上下文環境,包括程序計數器和其他寄存器。
更新當前處于運行態進程的進程控制塊,包括將進程狀態改變到另外一個狀態。
將進程的進程控制塊移 到相應的隊列。
選擇另一個進程執行。
更新所算則進程的進程控制塊。
更新內存管理的數據結構。
恢復處理器在被選擇的進程最近一次切換出運行狀態時的上下文環境。
【操作系統的主要功能有哪些】相關文章:
操作系統有哪些07-21
操作系統有哪些05-24
操作系統有哪些09-21
操作系統的主要功能07-14
電腦有哪些操作系統?08-23
有哪些國產操作系統08-01
操作系統有哪些【實用】07-20
電腦操作系統有哪些07-28
電腦有哪些操作系統07-08