文章目錄
- 作業系統的定位
- 設計作業系統的目的
- 作業系統之上之下分別有什么
- 管理的精髓:先描述,再組織
作業系統的定位
簡單來說,作業系統就是一款進行軟硬體資源管理的軟體,
設計作業系統的目的
- 與硬體進行互動,管理所有的軟硬體資源,
- 為用戶程式(應用程式)提供一個良好的執行環境,
作業系統之上之下分別有什么
首先,我們肉眼可見的就是計算機實物,也就是計算機底層的硬體,這些硬體看似是一個個羅列出來的,但實際在底層都遵守馮諾依曼的組織形式,

而單單只有這些硬體是不夠的,還需要有一個軟體來對這些硬體進行管理,例如,記憶體何時從輸入設備讀取資料?讀取多少資料?記憶體何時重繪緩沖區到輸出設備?是按行重繪還是全重繪?這些都是由軟體進行管理的,而這個軟體就是作業系統(Operator System),

此時這里有一個問題:難道作業系統直接和底層硬體打交道嗎?
舉個例子,如果作業系統自己來完成鍵盤的讀取操作,那么只要你的鍵盤讀取方式進行了改變,那么作業系統的內核源代碼就需要進行重新編譯,這對作業系統來說維護成本太高了,
于是我們又在作業系統與底層硬體之間增加了一層驅動層,驅動層的主要作業就是單獨去控制底層硬體的,例如,鍵盤有鍵盤驅動,網卡有網卡驅動,硬碟有硬碟驅動,磁盤有磁盤驅動,驅動簡單來說就是去訪問某個硬體,訪問這個硬體的讀、寫以及硬體當前的狀態等等,驅動層就是直接和硬體打交道的,而驅動一般是由硬體制造廠商提供的,或是由作業系統相關的模塊進行開發的(例如網卡),
此時作業系統就只需關心何時讀取資料,而不用關心資料是如何讀取的了,也就是完成了作業系統與硬體之間的解耦,

那作業系統究竟管理些什么呢?作業系統主要進行以下四項管理:
- 記憶體管理:記憶體分配、記憶體共享、記憶體保護以及記憶體擴張等等,
- 驅動管理:對計算機設備驅動驅動程式的分類、更新、洗掉等操作,
- 檔案管理:檔案存盤空間的管理、目錄管理、檔案操作管理以及檔案保護等等,
- 行程管理:其作業主要是行程的調度,

而作業系統再往上就是我們所處的位置,在這里我們就可以用命令列或是圖形化界面進行各種操作,這一層被稱為用戶層,

但作業系統為了保護自己,對上只暴露了一些介面,而不會讓用戶直接訪問作業系統,這一系列介面被稱為系統呼叫介面,

但這些系統呼叫介面對我們普通用戶來說使用成本又太高了,因為要使用系統呼叫前提條件是你得對系統有一定了解,所以在系統呼叫介面之上又構建出了一批庫,例如libc和libc++,實際上在語言級別上使用的各種庫,就是封裝了系統呼叫介面的,我們就是通過呼叫這些庫當中的各種函式(例如printf和scanf)進行各種程式的撰寫,

管理的精髓:先描述,再組織
要想學好作業系統,那么就必須正確理解到底什么是管理,
這里我們舉一個實際的例子來談談管理,現在給出三個角色:學生、輔導員和校長,很明顯,校長在這三個人當中是管理者,學生是被管理者,那么輔導員充當什么角色呢?

仔細想想,實際上完成任何一件事都要經過兩個程序,首先是決定要不要做這件事或是如何做這件事(決策),然后就是去做這件事情(執行),校長作為管理者來管理學生,校長實際上就是那個做決策的人,但是校長作出決策后并不需要自己來執行,而是讓輔導員去執行,所以輔導員的主要任務就是執行管理者的決策,我們通常將其稱為執行者,

雖然說校長是管理學生的,但是我們在學校一般情況下是看不到校長本人的,那么校長是如何做到在不看到我們的情況下對我們進行管理的呢?
舉個例子,現在校長要求輔導員將計算機成績排名前十的學生的各科資料以及平時表現記錄拿過來,他將從這十名同學之中選出三名學生參加本次的編程大賽,當輔導員將資料拿來后校長選出三名學生說:“就這三個了,你找個老師對這三名學生進行一下強化訓練,然后參加本次的編程大賽,”然后校長就什么也不管了,
在這個程序中,校長根本沒有見過這三名同學,就對其進行了管理,他根據的是什么?沒錯,他根據的是資料,
實際上,學校將我們每個學生的各種資訊都進行了管理,基本資訊、成績資訊以及健康資訊等等,

每這么一套資訊就描述了一名學生,校長通過對這些資訊的管理就能做到對學生的管理,這么一套資訊在C語言當中我們稱之為抽象結構體,而在C++當中又叫做面向物件,
當學生的數量多起來了,校長就可以將全部學生的資訊組織起來,當然組織的方式有很多種(鏈表、順序表、樹),而每種組織方式都有其自己的優勢,于是就有了一門課程專門教我們管理資料的方式,那就是資料結構,這里我們假設校長以雙鏈表的形式將學生的資訊組織起來,

此時校長對各個學生的管理,實際上就變成了對這個雙鏈表的增刪查改,當有新生時直接向該雙鏈表加入一個結點,當學生畢業后直接將學生資訊從該雙鏈表當中移除即可,
總結一下: 管理者管理被管理者,實際上是先將被管理者的各種資訊進行描述,然后再將多個被管理者的描述資訊根據某種資料結構組織起來,最后管理者管理被管理者實際上就是對資料結構的管理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297577.html
標籤:其他
