日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

OS- -操作系统概念

發布時間:2024/4/11 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OS- -操作系统概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OS- -操作系統概念

文章目錄

  • OS- -操作系統概念
    • 一、操作系統概念
      • 進程
      • 地址空間
      • 文件
      • 保護
      • shell

部分操作系統提供了特定的基礎概念和抽象,例如進程、地址空間、文件等,它們是需要理解的核心 內容。

一、操作系統概念

進程

  • 操作系統一個很關鍵的概念就是 進程(Process)。進程的本質就是操作系統執行的一個程序。
  • 與每個 進程相關的是地址空間(address space),這是從某個最小值的存儲位置(通常是零)到某個最大值的 存儲位置的列表。
  • 在這個地址空間中,進程可以進行讀寫操作。地址空間中存放有可執行程序,程序所 需要的數據和它的棧。
  • 與每個進程相關的還有資源集,通常包括寄存器(registers)(寄存器一般包 括程序計數器(program counter)和堆棧指針(stack pointer))、打開文件的清單、突發的報 警、有關的進程清單和其他需要執行程序的信息。你可以把進程看作是容納運行一個程序所有信息的一 個容器。
  • 對進程建立一種直觀感覺的方式是考慮建立一種多程序的系統。
  • 考慮下面這種情況:用戶啟動一個視頻編輯程序,指示它按照某種格式轉換視頻,然后再去瀏覽網頁。
  • 同時,一個檢查電子郵件的后臺進程被喚醒并開始運行
  • 這樣,我們目前就會有三個活動進程:視頻編輯器、Web瀏覽器和電子郵件接收程 序。
  • 操作系統周期性的掛起一個進程然后啟動運行另一個進程,這可能是由于過去一兩秒鐘程序用完了CPU分配的時間片,而CPU轉而運行另外的程序。
  • 像這樣暫時中斷進程后,下次應用程序在此啟動時,必須要恢復到與中斷時刻相同的狀態,這在我們用 戶看起來是習以為常的事情,但是操作系統內部卻做了巨大的事情。
  • 這就像和足球比賽一樣,一場完美 精彩的比賽是可以忽略裁判的存在的。這也意味著在掛起時該進程的所有信息都要被保存下來。
  • 例如, 進程可能打開了多個文件進行讀取。與每個文件相關聯的是提供當前位置的指針(即下一個需要讀取的字節或記錄的編號)。當進程被掛起時,必須要保存這些指針,以便在重新啟動進程后執行的read 調用將能夠正確的讀取數據。

  • 在許多操作系統中,與一個進程有關的所有信息,除了該進程自身地址空 間的內容以外,均存放在操作系統的一張表中,稱為進程表(process table),進程表是數組或者鏈 表結構,當前存在每個進程都要占據其中的一項。

  • 所以,一個掛起的進程包括:進程的地址空間(往往稱作磁芯映像,core image,紀念過去的磁芯存 儲器),以及對應的進程表項(其中包括寄存器以及稍后啟動該進程所需要的許多其他信息)。

  • 與進程管理有關的最關鍵的系統調用往往是決定著進程的創建和終止的系統調用。

  • 考慮一個典型的例 子,有一個稱為 命令解釋器(command interpreter)或shell的進程從終端上讀取命令。此時, 用戶剛鍵入一條命令要求編譯一個程序。shell必須先創建一個新進程來執行編譯程序,當編譯程序結束 時,它執行一個系統調用來終止自己的進程。

  • 如果一個進程能夠創建一個或多個進程(稱為子進程),而且這些進程又可以創建子進程,則很容易 找到進程數,如下所示

  • 上圖表示一個進程樹的示意圖,進程A創建了兩個子進程B和進程C,子進程B又創建了三個子進程 D、 E、 F合作完成某些作業的相關進程經常需要彼此通信來完成作業,這種通信稱為進程間通信(interprocess communication)

  • 其他可用的進程系統調用包括:申請更多的內存(或釋放不再需要的內存),等待一個子進程結束,用 另一個程序覆蓋該程序。

  • 有時,需要向一個正在運行的進程傳遞信息,而該進程并沒有等待接收信息。例如,一個進程通過網絡 向另一臺機器上的進程發送消息進行通信。為了保證一條消息或消息的應答不丟失。發送者要求它所在 的操作系統在指定的若干秒后發送一個通知,這樣如果對方尚未收到確認消息就可以進行重新發送。在 設定該定時器后,程序可以繼續做其他工作。

  • 在限定的時間到達后,操作系統會向進程發送一個 警告信號(alarm signal)。這個信號引起該進程 暫時掛起,無論該進程正在做什么,系統將其寄存器的值保存到堆棧中,并開始重新啟動一個特殊的信 號處理程,比如重新發送可能丟失的消息。這些信號是軟件模擬的硬件中斷,除了定時器到期之外,該 信號可以通過各種原因產生。許多由硬件檢測出來的陷阱,如執行了非法指令或使用了無效地址等,也 被轉換成該信號并交給這個進程。

  • 系統管理器授權每個進程使用一個給定的UID(User IDentification)。每個啟動的進程都會有一 個操作系統賦予的UID,子進程擁有與父進程一樣的UID,用戶可以是某個組的成員,每個組也有一個GID(Group IDentification)

  • 在UNIX操作系統中,有一個UID是 超級用戶(superuser),或者Windows中的管理員 (administrator),它具有特殊的權利,可以違背一些保護規則。在大型系統中,只有系統管理員掌 握著那些用戶可以稱為超級用戶。

地址空間

  • 每臺計算機都有一些主存用來保存正在執行的程序。在一個非常簡單的操作系統中,僅僅有一個應用程序運行在內存中。為了運行第二個應用程序,需要把第一個應用程序移除才能把第二個程序裝入內存。
  • 復雜一些的操作系統會允許多個應用程序同時裝入內存中運行。為了防止應用程序之間相互干擾(包括 操作系統),需要有某種保護機制。雖然此機制是在硬件中實現,但卻是由操作系統控制的。
  • 上述觀點涉及對計算機主存的管理和保護。另一種同等重要并與存儲器有關的內容是管理進程的地址空 間。通常,每個進程有一些可以使用的地址集合,典型值從0開始直到某個最大值。一個進程可擁有的 最大地址空間小于主存。
  • 在這種情況下,即使進程用完其地址空間,內存也會有足夠的內存運行該進 程。
  • 但是,在許多32位或64位地址的計算機中,分別有2^32 或 2^64字節的地址空間。
  • 如果一個進程有 比計算機擁有的主存還大的地址空間,而且該進程希望使用全部的內存,那該怎么處理?在早期的計算 機中是無法處理的。
  • 但是現在有了一種虛擬內存的技術,正如前面講到過的,操作系統可以把部分地 址空間裝入主存,部分留在磁盤上,并且在需要時來回交換它們。

文件

  • 幾乎所有操作系統都支持的另一個關鍵概念就是文件系統。

  • 如前所述,操作系統的一項主要功能是屏蔽 磁盤和其他I/O設備的細節特性,給程序員提供一個良好、清晰的獨立于設備的抽象文件模型。

  • 創建文 件、刪除文件、讀文件和寫文件都需要系統調用。在文件可以讀取之前,必須先在磁盤上定位和打開 文件,在文件讀過之后應該關閉該文件,有關的系統調用則用于完成這類操作。

  • 為了提供保存文件的地方,大多數個人計算機操作系統都有目錄(directory)的概念,從而可以把文 件分組。

  • 比如,學生可以給每個課程都創建一個目錄,用于保存該學科的資源,另一個目錄可以存放電 子郵件,再有一個目錄可以存放萬維網主頁。

  • 這就需要系統調用創建和刪除目錄、將已有文件放入目錄 中,從目錄中刪除文件等。目錄項可以是文件或者目錄,目錄和目錄之間也可以嵌套,這樣就產生了文 件系統

  • 進程和文件層次都是以樹狀的結構組織,但這兩種樹狀結構有不少不同之處。一般進程的樹狀結構層次不深(很少超過三層),而文件系統的樹狀結構要深一些,通常會到四層甚至五層。

  • 進程樹層次結構是 暫時的,通常最多存在幾分鐘,而目錄層次則可能存在很長時間。

  • 進程和文件在權限保護方面也是有區 別的。一般來說,父進程能控制和訪問子進程,而在文件和目錄中通常存在一種機制,使文件所有者之 外的其他用戶也能訪問該文件。

  • 目錄層結構中的每一個文件都可以通過從目錄的頂部即 根目錄(Root directory)開始的路徑名 (path name)來確定

  • 絕對路徑名包含了從根目錄到該文件的所有目錄清單,它們之間用斜杠("/")分隔符 分開,最開始的斜杠分隔符代表的是根目錄/ ,也就是文件系 統的絕對路徑。

  • 出于歷史原因,Windows下面的文件系統以("")來作為分隔符,但是Linux會以("/")作為分隔 符。

  • 在上面的系統中,每個進程會有一個 工作目錄(working directory),對于沒有以斜線開頭給出絕對地址的路徑,將在這個工作目錄下尋找。

  • 如果/Faculty/Prof.Brown是工作目錄,那么/Courses/CS101與上面給定的絕對路徑名表示的是同一個文件。

  • 進程可以通過使用系統調用指定新 的工作目錄,從而變更其工作目錄。

  • 在讀寫文件之前,首先需要打開文件,檢查其訪問權限。若權限許可,系統將返回一個小整數,稱作文 件描述符(file descriptor),供后續操作使用。若禁止訪問,系統則返回一個錯誤碼。

  • 在UNIX中,另一個重要的概念是 特殊文件(special file)。提供特殊文件是為了使I/O設備看起 來像文件一般。這樣,就像使用系統調用讀寫文件一樣,I/O設備也可以通過同樣的系統調用進行讀 寫。

  • 特殊文件有兩種,一種是塊特殊文件(block special file)和 字符特殊文件(character special file)。塊特殊文件指那些由可隨機存取的塊組成的設備,如磁盤等。比如打開一個塊特殊 文件,然后讀取第4塊,程序可以直接訪問設備的第4塊而不必考慮存放在該文件的文件系統結構。

  • 類似 的,字符特殊文件用于打印機、調制解調起和其他接受或輸出字符流的設備。按照慣例,特殊文件保存 在/dev目錄中。例如,/devv/lp是打印機。

還有一種與進程和文件相關的特性是管道,管道(pipe)是一種虛文件,他可以連接兩個進程

  • 如果A和B希望通過管道對話,他們必須提前設置管道。當進程A相對進程B發送數據時,它把數據 寫到管道上,相當于管道就是輸出文件。這樣,在UNIX中兩個進程之間的通信就非常類似于普通文件 的讀寫了。

保護

  • 計算機中含有大量的信息,用戶希望能夠對這些信息中有用而且重要的信息加以保護,這些信息包括電子郵件、商業計劃等,管理這些信息的安全性完全依靠操作系統來保證。例如,文件提供授權用戶訪 問。
  • 比如UNIX操作系統,UNIX操作系統通過對每個文件賦予一個9位二進制保護代碼,對UNIX中的文 件實現保護。該保護代碼有三個位子段,一個用于所有者,一個用于與所有者同組(用戶被系統管理員 劃分成組)的其他成員,一個用于其他人。
  • 每個字段中有一位用于讀訪問,一位用于寫訪問,一位用于 執行訪問。這些位就是著名的「wx位。例如,保護代碼rwxr-x–x的含義是所有者可以讀、寫或 執行該文件,其他的組成員可以讀或執行(但不能寫)此文件、而其他人可以執行(但不能讀和寫)該 文件。

shell

  • 操作系統是執行系統調用的代碼。
  • 編輯器、編譯器、匯編程序、鏈接程序、使用程序以及命令解釋符 等,盡管非常重要,非常有用,但是它們確實不是操作系統的組成部分。
  • 下面我們著重介紹一下UNIX 下的命令提示符,也就是shell , shell雖然有用,但它也不是操作系統的一部分,然而它卻能很好 的說明操作系統很多特性,下面我們就來探討一下。
  • shell有許多種,例如sh、csh、ksh以及bash等,它們都支持下面這些功能,最早起的shell可以追 溯到sh
  • 用戶登錄時,會同時啟動一個shell,它以終端作為標準輸入和標準輸出。首先顯示提示符 (prompt),它可能是一個美元符號($),提示用戶shell正在等待接收命令,假如用戶輸入
data
  • shell會創建一個子進程,并運行date做為子進程。在該子進程運行期間,shell將等待它結束。在子進 程完成時,shell會顯示提示符并等待下一行輸入。
  • 用戶可以將標準輸出重定向到一個文件中,例如
date > file
  • 同樣的,也可以將標準輸入作為重定向
sort <filel> file2
  • 這會調用sort程序來接收filel的內容并把結果輸出到file2
  • 可以將一個應用程序的輸出通過管道作為另一個程序的輸入,因此有
cat filei file2 file3 | sort > /dev/lp
  • 這會調用cat應用程序來合并三個文件,將其結果輸送到sort程序中并按照字典進行排序。sort應用 程序又被重定向到/dev/lp ,顯然這是一個打印操作。

總結

以上是生活随笔為你收集整理的OS- -操作系统概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。