計算機操作系統概述

計算機操作系統概述

計算機系統概覽

計算機系統組成

其實說白了,計算機系統就是由硬件子系統和軟件子系統所組成的。

硬件子系統借助電,磁,光等等觸發來促成物理部件的協作以完成任務,是系統工作的實體。包括了 CPU, IO設備,等等。

軟件子系統則是由一些文件或者程序組成,負責指揮系統完成指定的工作。粗略可以分為,系統軟件,支撐軟件和應用軟件。大家耳熟能詳的操作系統也是軟件,且至關重要。

計算機系統的視圖


對於不同人,看到一部計算機肯定看到的東西,使用的視角都不同。對於 os 設計者,他只會看到硬件部分,因為這就是他要打交道的對象。對於語言處理程序的設計者,例如開發 JVM 的大老們,看到的就是 os 和硬件部分。對於一般我們俗稱的碼農,看到的會是語言處理,加上 os 和硬件。而對於一般用戶當然都會看到。

計算機硬件系統

硬件系統組成


如圖可以看到,硬件系統由 CPU, Memory 和外圍設備,以及一條連接他們的總線所組成。

存儲程序計算機

存儲程序計算機是當今計算機主流的結構,先來看看下圖;

存儲計算機的體系結構是由 Von Neumann 提出的。主要特點有以下 5 點:

  1. 以運算單位為核心
  2. 善用主存,利用內存組織數據流
  3. 內存按線性訪問,線性編址內存空間
  4. 指令 = 操作碼 + 地址
  5. 數據以二進制編碼

CPU

中央處理器可以說是整個計算機系統的核心,主要由運算單元 + 控制單元 + 寄存器組成。來看看經典的馮諾伊曼所描述的中央處理器的結構:

而在 CPU 內靠甚麼來在 CPU 中的寄存器,運算和控制單元通信呢?靠的是一條內部總線。下圖顯示的是更詳細的 CPU 中的組成:

可以看到,CPU 中有著很多重要的寄存器,而又靠的系統總線和主存進行數據信號的通信。

計算機軟件系統

程序員的計算機系統視圖


今天如果只有單純的硬件子系統,那麼程序員將只能通過機器語言控制硬件已完成任務,然而機器語言極不友好。因此在底層的硬件系統上,又多了 os,但這樣還是不夠直觀也不夠方便。在 os 之上又多了數據庫管理系統,這樣就可以允許程序員使用我們熟知的數據庫語言像是 sql 來對信息進行存儲和獲取。再上去就有語言處理程序,使程序員可以更輕鬆的使用高級語言,像是 c, c++, java, python 等等更好理解的編程語言來指揮軟件系統。

計算機程序的執行過程


本人其實一直很好奇一個由我們編寫的程序是怎麼在計算機上運行的,看看這張圖應該會明白許多。首先我們肯定是用高級語言進行編程。對於這個程序,可能會被編譯程序解析,也可能被解釋程序解析。如果對於編譯程序和解釋程序尚不清楚的,可以先去看看 编译程序和解释程序有什么区别?。或是你也可以直接編寫匯編程序,然後經過匯編處理。不論是採用哪一種方式編程,最終都會變成一段目標代碼程序。接著進入連接程序,將目標代碼程序中所使用的一些庫進行鏈結,變成一個可執行程序(exe)。生成一個可執行程序後,接著要裝進內存,以供 cpu 進行調度等等。有時候,cpu 還得跟數據庫系統或是文件系統等等數據存儲外設進行通信獲取程序執行所需的數據。

操作系統

操作系統定義

Operating System,簡稱 OS 也就是操作系統。OS 可以說是計算機系統最基礎的系統軟件,管理軟硬件資源以及協作,控制程序執行,改善人機介面,為用戶使用計算機提供良好的工作環境。一般而言,操作系統主要由以下子系統構成:

  1. 進程調度子系統
  2. 進程通信子系統
  3. 內存管理子系統
  4. 設備管理子系統
  5. 文件管理子系統
  6. 網絡通信子系統
  7. 作業控制子系統

從資源管理角度看 OS

上面提到,OS 負責管理軟硬件資源。而操作系統管理的硬件不外乎就是 cpu, memory, 以及所有外圍設備。而對於軟件,則就是數據流以及程序。

從程序控制角度看 OS

發展歷程

在早期的批處理系統中,CPU 和 I/O 仍然是串型工作的,大大浪費了 CPU 的處理能力。那時的操作系統只能在同一時間處理一個可執行程序,且必須等到 CPU 執行完,I/O 才能執行,十分沒有效率。

而隨著 CPU 技術的快速發展,I/O 卻停滯不前,兩者的速度不匹配的矛盾愈來愈明顯。為了使 CPU 的效率最大化,多道程序設計的概念出現。

多道程序設計

多道程序設計的概念就是在同一時間,允許多個程序進入計算機內存。從宏觀上來看,這些被裝入內存的多道程序的併行的,他們都同時被運行著。但從微觀上說又是串型的,他們還是得輪流占用 CPU。至於如何決定占用 CPU 的方式,會有一個調度器和交替算法來做仲裁。來看看一個實際的例子,多道程序設計如何提高 CPU 的利用率:

從人機交互角度看 OS

在人機交互方面,操作系統改善了人機交互界面,使用戶使用計算機更加直觀方便。著名的 Xerox 實驗室就曾研發出鼠標,菜單和導航欄作為 WIMP 界面,大大提升了操作系統的人機交互。

從程序接口角度看 OS

對於用戶而言,要怎麼向操作系統請求服務呢?操作系統提供了一個程序接口,在這邊我們稱為系統調用。

系統調用指的就是操作系統實現某種功能的完整調用的過程,而操作系統則對外提供了一些訪問操作系統的接口和機制。

而計算機系統中實現系統調用的機制稱為陷入處理機制。對於每個系統調用都會先做好編號。

具體做法就是設計一張系統調用地址入口表,每個入口地址指向對應的系統調用的程序,並也會約定好對應的系統調用所需的參數類型以及個數。此外,陷入處理機制在實際執行系統調用之前還得保留cpu現場,以在執行完系統調用時能恢復到原狀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值