第二章:操作系統概述 ||《操作系統:精髓與設計原理》

一、操作系統的目標和功能

三個目標:

  1. 方便:易於使用
  2. 有效:可以高效利用計算機系統的資源
  3. 擴展能力:不妨礙有效開發、測試和引用新的功能

1、作為用戶/計算機介面的操作系統

2、作為資源管理器的操作系統

3、操作系統的易擴展性

二、操作系統的發展

1、串列處理

兩個問題:

  1. 調度:對計算機的利用率低
  2. 準備時間:太長且容易出錯

2、簡單的批處理系統

可以將作業整理成一批,利用監控程序按順序處理作業。提高了CPU利用率。

3、多道程序設計批處理系統

在批處理系統的基礎上,當一個作業等待I/O時,可以切換到里一個可能不在等待I/O的作業。進一步提高了CPU利用率。

4、分時操作系統

多個用戶分享處理器時間的技術叫分時。

三、主要的成就

進程、內存管理、信息保護和安全、調度和資源管理、系統結構

1、進程

進程即正在執行的一段程序,也可以看做處理器的抽象。

進程可以看做三部分構成:

  1. code:一段可執行的程序
  2. data:程序所需要的相關數據
  3. context:程序的執行上下文

2、內存管理

操作系統的5個責任:

  1. 進程隔離
  2. 自動分配和管理
  3. 支持模塊化程序設計
  4. 保護和訪問控制
  5. 長期存儲

3、信息保護和安全

4類問題:

  1. 可用性:系統不被打斷
  2. 保密性:用戶不能督導未授權訪問的數據
  3. 數據完整性:保護數據不被惡意修改
  4. 認證:確認用戶身份以及消息、數據的合法性

4、調度和資源管理

需要考慮的三個因素

  1. 公平性:給予不同類作業相等機會的資源訪問機會
  2. 有差別的響應性:區分不同的作業類並作出合理的調度,比如調出等待I/O的進程
  3. 有效性:儘可能大的吞吐量和最小的響應時間

5、系統結構

關鍵術語:

  • 批處理:所謂批處理(batch processing )就是將作業按照它們的性質分組(或分批),然後再成組(或成批)地提交給計算機系統,由計算機自動完成後再輸出結果,從而減少作業建立和結束過程中的時間浪費。多道批處理系統_百度百科
  • 批處理系統:批處理是指用戶將一批作業提交給操作系統後就不再干預,由操作系統控制它們自動運行。這種採用批量處理作業技術的操作系統稱為批處理操作系統。
  • 執行上下文:又稱進程狀態,是操作系統用於管理和控制進程所需要的內部數據。這種內部信息和進程是分開的,不允許進程直接訪問。上下文包括操作系統管理進程以及處理器正確執行進程所需要的所有信息比如處理器各種寄存器的信息、進程優先順序、是否等待I/O等。
  • 中斷:中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序並轉入處理新情況的程序,處理完畢後又返回原被暫停的程序繼續運行。
  • 作業:作業是用戶在一次算題過程中或一個事務處理中要求計算機系統所做的工作的集合。作業是一個比程序更為廣泛的概念,它不僅包含了通常的程序和數據,而且還應配有一份作業說明書。
  • 作業控制語言:作業控制語言是指用來實現對用戶作業的組織和管理的各種控制命令或控制語句的有序集合。不同計算機系統的作業控制語言格式不同,各有特點。但他們所實現的主要功能是相同的。
  • 內核:內核是操作系統最基本的部分。它是為眾多應用程序提供對計算機硬體的安全訪問的一部分軟體,這種訪問是有限的,並且內核決定一個程序在什麼時候對某部分硬體操作多長時間。內核,是一個操作系統的核心。是基於硬體的第一層軟體擴充,提供操作系統的最基本的功能,是操作系統工作的基礎,它負責管理系統的進程、內存、設備驅動程序、文件和網路系統,決定著系統的性能和穩定性。現代操作系統設計中,為減少系統本身的開銷,往往將一些與硬體緊密相關的(如中斷處理程序、設備驅動程序等)、基本的、公共的、運行頻率較高的模塊(如時鐘管理、進程調度等)以及關鍵性數據結構獨立開來,使之常駐內存,並對他們進行保護。通常把這一部分稱之為操作系統的內核。
  • 內存管理:內存管理是指軟體運行時對計算機內存資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並且在適當的時候釋放和回收內存資源。
  • 微內核:微內核是內核的一種精簡形式。將通常與內核集成在一起的系統服務層被分離出來,變成可以根據需求加入的選件,這樣就可提供更好的可擴展性和更加有效的應用環境。所有服務(包括設備驅動)在用戶模式下運行,而處理這些服務同處理其他的任何一個程序一樣。因為每個服務只是在自己的地址空間運行。所以這些服務之間彼此之間都受到了保護。使用微內核設計,對系統進行升級,只要用新模塊替換舊模塊,不需要改變整個操作系統。

  • 管程:管程是由局部於自己的若干公共變數及其說明和所有訪問這些公共變數的過程所組成的軟體模塊。管程在功能上和信號量及PV操作類似,屬於一種進程同步互斥工具,但是具有與信號量及PV操作不同的屬性。
  • 單體內核:單體內核:大內核,將OS的全部功能都做進內核中,包括調度、文件系統、網路、設備驅動器、存儲管理。比如設備驅動管理、資源分配、進程間通信、進程間切換管理、文件系統、存儲管理、網路等。單體內核是指在一大塊代碼中實際包含了所有操作系統功能,並作為一個單一進程運行,具有唯一地址空間。大部分UNIX(包括Linxu)系統都採用的單體內核。與之對應的微內核:微內核與單體內核不同,微內核只是將OS中最核心的功能加入內核,包括IPC通信、地址空間分配和基本的調度,這些東西處在內核態運行。如:WINCE系統。而其他功能如設備驅動、文件系統、存儲管理、網路等作為一個個處於用戶態的進程而向外提供某種服務來實現,而且這些處於用戶態的進程可以針對某些特定的應用和環境需求進行定製。有時,也稱這些進程為伺服器。
  • 多道批處理系統:在批處理系統的基礎上增加了多道的特性。系統內可同時容納多個作業。這些作業放在外存中,組成一個後備隊列,系統按一定的調度原則每次從後備作業隊列中選取一個或多個作業進入內存運行,運行作業結束、退出運行和後備作業進入運行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。多道批處理系統_百度百科
  • 多道程序設計:多道程序設計技術是指在內存同時放若干道程序,使它們在系統中並發執行,共享系統中的各種資源。當一道程序暫停執行時,CPU立即轉去執行另一道程序。
  • 多任務:多任務處理是指用戶可以在同一時間內運行多個應用程序,每個應用程序被稱作一個任務。而多道程序設計是不同時間(一個時間段內)運行不同的程序,但同一時間只會運行一個程序。
  • 多線程:在一個程序中,這些獨立運行的程序片段叫作「線程」(Thread),利用它編程的概念就叫作「多線程處理(Multithreading)」。具有多線程能力的計算機因有硬體支持而能夠在同一時間執行多於一個線程(台灣譯作「執行緒」),進而提升整體處理性能。參考鏈接:多線程有什麼用?
  • 操作系統:操作系統(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程序,是直接運行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在操作系統的支持下才能運行。
  • 物理地址:
  • 特權指令:
  • 進程:
  • 進程狀態:
  • 實地址:
  • 常住監控程序:
  • 時間片輪轉:
  • 調度:
  • 串列處理:處理機按順序工作方式逐一順序的執行程序中的指令。用戶按順序訪問處理機。與之相對應的是並行處理。
  • 對稱多處理:
  • 任務:
  • 線程:
  • 分時:
  • 分時系統:
  • 單道程序設計:
  • 虛地址:

PS:

廣告時間啦~

理工狗不想被人文素養拖後腿?不妨關注微信公眾號:

歡迎關注~


推薦閱讀:

如何調試多線程的程序?
銀河麒麟系統的前世今生
linux內核情景分析之頁面換出
命令行中四個常見命令的使用
一基於事件處理的RTOS原型內核的介紹-2_概念與約定

TAG:操作系統 | Unix | Linux |