1現代作業系統有兩個主要特徵,作業系統的基本特徵?

2021-03-19 18:21:29 字數 4911 閱讀 4860

1樓:非同小何

現代作業系統有兩個主要特徵(併發和共享)

作業系統的基本特徵?

2樓:匿名使用者

作業系統有四個基本特徵 , 如下:

1.併發(concurrence)

並行性與併發性這兩個概念是既相似又區別的兩個概念。並行性是指兩個或者多個事件在同一時刻發生,這是一個具有微觀意義的概念,即在物理上這些事件是同時發生的;而併發性是指兩個或者多個事件在同一時間的間隔內發生,它是一個較為巨集觀的概念。在多道程式環境下,併發性是指在一段時間內有多道程式在同時執行,但在單處理機的系統中,每一時刻僅能執行一道程式,故微觀上這些程式是在交替執行的。

應當指出,通常的程式是靜態實體,它們是不能併發執行的。為了使程式能併發執行,系統必須分別為每個程式建立程序。程序,又稱任務,簡單來說,是指在系統中能獨立執行並作為資源分配的基本單位,它是一個活動的實體。

多個程序之間可以併發執行和交換資訊。一個程序在執行時需要執行時需要一定的資源,如 cpu,儲存空間,及i/o裝置等。在作業系統中引入程序的目的是使程式能併發執行。

2.共享 (sharing)

所謂共享是指,系統中的資源可供記憶體中多個併發執行的程序共同使用。由於資源的屬性不同,故多個程序對資源的共享方式也不同,可以分為:互斥共享方式 和 同時訪問方式

3.虛擬 (virtual)

是指通過技術吧一個物理實體變成若干個邏輯上的對應物。在作業系統中虛擬的實現主要是通過分時的使用方法。顯然,如果n是某一個物理裝置所對應的虛擬邏輯裝置數,則虛擬裝置的速度必然是物理裝置速度的1/n。

4.非同步 (asynchroni**)

在多道程式設計環境下,允許多個程序併發執行,由於資源等因素的限制,通常,程序的執行並非「一氣呵成」,而是以「走走停停」的方式執行。記憶體中每個程序在何時執行,何時暫停,以怎樣的方式向前推進,每道程式總共需要多少時間才能完成,都是不可預知的。或者說,程序是以一步的方式執行的。

儘管如此,但只要執行環境相同,作業經過多次執行,都會獲得完全相同的結果,因此,非同步執行方式是執行的。

可見,作業系統為了使程式併發執行而產生了程序。

程序的定義:可併發執行的程式在一個資料集合上的執行過程。

程序的特徵:

1.動態性 程序既然是程序實體的執行過程,因此程序是有一定的生命期。而程式只是一組有序指令的集合,並放在某種介質上,本身無執行的含義,因此程式是個靜態的實體。

2.併發性

3.獨立性 這是指程序實體是一個能獨立執行的基本單位,同時也是系統種獨立獲得資源和排程的基本單位。

4.非同步性

5.結構特徵 從結構上看,程序實體是由程式段、資料段及程序控制塊三部分組成。

(程序控制塊(pcb):程序控制塊是程序實體的一部分,它記錄了作業系統所需要的、用於描述程序情況及控制程序執行所需的全部資訊。os 是根據pcb來對併發執行的程序進行控制和管理的)

關於程序的總結:

定義:可併發執行的程式在一個資料集合上的執行過程,每個程序有一個自己的地址空間以及一個單一的控制流程。

要解決的問題:為了使程式能併發執行,(要併發執行就要隔離程序,使程序獨立,即每個程序有屬於自己的資料段、程式段、程序控制塊)

執行緒的出現:

我們首先回顧程序的兩個基本屬性:(1)程序使一個可擁有資源的獨立單位 (2)程序同時又是一個可以獨立排程和分派的基本單位。正是由於這兩個基本屬性,才使程序成為一個能獨立執行的基本單位,從而構成了程序併發執行的基礎。

為了使程式能併發執行,系統必須進行以下操作:

(1) 建立程序。建立一個程序時必須為之人、分配所必需的、除處理器以外的所有資源,如記憶體空間、i/o裝置以及建立相應的pcb.

(2) 撤消程序。系統在撤消程序時,需要先對這這些資源進行**,然後再撤銷pcb.

(3) 程序切換。在對程序進行切換時,由於要保留當前程序的cpu環境和設定新選中的程序的cpu環境,為此須花費不少處理器時間。

簡言之,由於程序是一個資源的擁有者,因而在程序的建立、撤銷、和切換的過程中,系統必須為之付出較大的時空開銷,也正因為如此,在系統中設定的程序的數目不宜過多,程序的切換的頻率也不宜過高,但這也就限制了併發程度的進一步提高。為了解決這個問題,不少作業系統的學者們想到:將程序的兩個屬性分開,由作業系統分開處理。

即對作為排程和分派的基本單位,不同時作為獨立分配資源的單位,以使之輕裝執行;而對擁有資源的基本單位,又不頻繁地對之進行切換,在這種思想的指導下,產生了執行緒的概念。

執行緒引入的原因: 為了減少程式併發執行所付出的時空開銷,使os具有更好的併發性。

在引入執行緒的os 中,執行緒是程序中的一個實體(程序中的一個或多個指令執行流),是被系**立排程和分派的基本單位。執行緒基本上不再擁有系統資源,(只擁有一點在執行中必不可少的資源,如程式計數器、暫存器和棧),但它可與同屬一個程序的其他執行緒功能共享程序所擁有的全部資源。線一個執行緒可以建立和撤銷另一個執行緒;同一程序中的多個執行緒之間可以併發執行。

執行緒與程序的比較:

執行緒具有許多傳統程序所具有的特徵,故又稱為輕型執行緒或程序元;而把傳統的程序稱為重型程序。在引入了執行緒的os中,通常一個程序擁有若干個執行緒。下面從四個方面來比較執行緒與程序。

1.排程

在「原始」的os中,擁有資源的基本單位和獨立排程、分配的基本單位都是程序。而在引入執行緒的os中,則把執行緒作為排程和分派的基本單位,而把程序作為資源擁有的基本單位,使傳統程序的兩個屬性分開,執行緒便能輕裝執行,從而可以顯著的提高系統併發程度。在同一程序中,執行緒的切換不會引起程序切換,在由一個程序中的執行緒切換到另一程序中的執行緒時,將會引起程序切換。

2.併發性

在引入執行緒的os中,不僅程序之間可以併發執行,而且在一個程序中的多個執行緒之間亦可以併發執行,因而使os具有更好的併發性,從而能更有效的使用系統資源和提高系統吞吐量。

3.擁有資源

不論是「原始」的os,還是設有執行緒的作業系統,程序都是擁有資源的一個獨立單位,它可以擁有自己的資源。執行緒自己基本不再擁有系統資源,但它可以訪問其隸屬程序的資源。

4.系統開銷

由於在建立或撤銷程序時,系統都要為之分配或**資源,如記憶體空間,i/o裝置等。因為,os所付出的開銷將顯著地大於在建立或撤銷執行緒時的開銷。類似的,在進行程序切換時,涉及到整個當前程序cpu環境的儲存以及新被排程執行的程序的cpu 環境設定。

而執行緒切換隻須儲存和設定少量暫存器的內容,並不涉及儲存器管理方面的操作。可見,程序切換的開銷也遠大於執行緒切換的開銷。此外,由於同一程序中的多個執行緒具有相同的地址空間,使它們之間的同步和通訊的實現變得比較容易。

這個機制在現代作業系統的實現主要可分為兩大類。即根據作業系統核心是否對執行緒可感知,分為核心執行緒和使用者執行緒。

1.核心執行緒 無論是使用者程序中的執行緒還是系統程序中的執行緒,它們的建立、撤銷和切換都是由核心實現的。在核心中保留了一張執行緒控制塊,核心根據該控制塊而感知執行緒的存在並對執行緒進行控制。

2.使用者執行緒 它僅存在於使用者級中,對於這種執行緒的建立、撤銷和切換,都不利用系統呼叫實現,因而這種執行緒與核心無關。相應地,核心也並不知道使用者級執行緒的存在。

( 排程的實現方式是採用在使用者空間增加執行庫,這些執行庫被稱為「執行緒包」,每當使用者程序獲得cpu控制權,執行緒執行庫決定該從**開始執行)

( 實際上,上面所說的執行緒是作業系統排程的基本單位,實際上指的只是核心執行緒。作業系統在排程時,參考各程序內的執行緒運**況做出排程決定,如果一個程序中沒有就緒態的執行緒,那麼這個程序也不會被排程佔用cpu.

在windows 2000中,作業系統進行排程時根本就不理採執行緒是屬於哪個程序的,只是將所有的就緒執行緒統一排成若干個優先順序佇列,然後進行排程。在這個情況下,執行緒的確成了排程的最小單位)。

關於執行緒的總結:

出現的背景:由於程序是一個資源的擁有者,因而在程序的建立、撤銷、和切換的過程中,系統必須為之付出較大的時空開銷,限制了併發程度的進一步提高。

要解決的問題:解決程序的建立、撤銷、和切換的過程中,系統必須為之付出較大的時空開銷的問題

解決的方法:將程序的兩個屬性分開,由作業系統分開處理。把「獨立排程、分配的基本單位」這個屬性分離出來作為執行緒;而把程序作為資源擁有的基本單位,執行緒作為程序中的一個實體而存在。

應用程式域的出現:

(來自msdn)

在.***出現以前,一個程序下,只能執行一個應用程式,而在,***出現後,一個程序下,可以執行多個應用程式,這都是因為應用程式域的出現。

以前使用程序邊界來隔離在同一臺計算機上執行的應用程式。每一個應用程式被載入到單獨的程序中,這樣就將該應用程式與在同一臺計算機上執行的其他應用程式相隔離。

隔離這些應用程式的原因在於記憶體地址是與程序相關的;在目標程序中,不能通過任何有意義的方式使用從一個程序傳遞到另一個程序的記憶體指標。此外,您不能在兩個程序間進行直接呼叫。您必須代之以使用**,它提供一定程度的間接性。

應用程式域提供安全而通用的處理單元,公共語言執行庫可使用它來提**用程式之間的隔離。您可以在具有同等隔離級別(存在於單獨的程序中)的單個程序中執行幾個應用程式域,而不會造成程序間呼叫或程序間切換等方面的額外開銷。在一個程序內執行多個應用程式的能力顯著增強了伺服器的可伸縮性。

隔離應用程式對於應用程式安全也是十分重要的。例如,您可以在單個瀏覽器程序中執行幾個 web 應用程式中的控制元件,同時使這些控制元件不能訪問彼此的資料和資源。

應用程式域所提供的隔離具有以下優點(引入原因):

在一個應用程式中出現的錯誤不會影響其他應用程式。因為型別安全的**不會導致記憶體錯誤,所以使用應用程式域可以確保在一個域中執行的**不會影響程序中的其他應用程式。

能夠在不停止整個程序的情況下停止單個應用程式。使用應用程式域使您可以解除安裝在單個應用程式中執行的**。

應用程式域形成了託管**的隔離、解除安裝和安全邊界。執行緒是公共語言執行庫用來執行**的作業系統構造。在執行時,所有託管**均載入到一個應用程式域中,由特定的作業系統執行緒來執行。

應用程式域和執行緒之間不具有一對一的相關性。在任意給定時間,在單個應用程式域中可以執行幾個執行緒,而且特定執行緒並不侷限在單個應用程式域內。也就是說,執行緒可以自由跨越應用程式域邊界;不為每個應用程式域建立新執行緒。

在任意給定時間,每一執行緒都在一個應用程式域中執行。執行庫會跟蹤在哪些應用程式域中有哪些執行緒正在執行。

作業系統有什麼作用,作業系統有哪兩個重要的作用

作業系統 bai的主要作用 作業系統的du主要功能是資源管zhi理,程dao序控制和人機互動等。計回算機系統的資源答可分為裝置資源和資訊資源兩大類。裝置資源指的是組成計算機的硬體裝置,如 處理器,主儲存器,磁碟儲存器,印表機,磁帶儲存器,顯示器 鍵盤輸入裝置和滑鼠等。資訊資源指的是存放於計算機內的各...

作業系統有什麼作用,什麼是作業系統 它的主要作用是什麼

作業系統的作用 1 程序管理 由於大部分的計算機只包含一顆 處理器,在單核心 core 的情況下多程序只是簡單迅速地切換各程序,讓每個程序都能夠執行,在多核心或多處理器的情況下,所有程序透過許多協同技術在各處理器或核心上轉換。2 記憶體管理 根據帕金森定律 你給程式再多記憶體,程式也會想盡辦法耗光 ...

目前主要的作業系統有

不確定你問哪方面的?還有問這個寬泛的問題,真正要解決的問題是?先回復如下資訊 電腦作業系統 windows系列 xp win7 windows2003 windows2008 linux系列 ubuntu redhat fedora 這個發行版很多,有一定基礎的人用可以,辦公麻煩點 蘋果mac系列 ...