文章目錄
- 1. 前言
- 2. I/O軟件層次結構
- 2.1 用戶層軟件
- 2.2 設備獨立性軟件
- 2.3 設備驅動程序
- 2.4 中斷處理程序
1. 前言
偶然看到“程序員的護城河是什么”這個話題,作為一個工作兩年多的程序員吧,經常看到網上關于各種35歲危機、裁員甚至猝死之云云。最近也不僅思考起了這個問題:我的護城河是什么?
我的護城河不單單是指一直作為一個程序員不被開除,而是我有哪些能力讓自己始終不擔心生計?或者說是應該提升哪些能力使得自己不對未來那么擔憂和迷茫。
思考了一段時間。
首先,要排除家里“有礦”的前提(就算有礦那也得在精神層面不斷提升自己吧)。我覺得第一就是要有始終學習的習慣,不然淘汰只會提前到來;第二是要分析自己,找到自己更容易獲得資源的那個方向(這樣至少機會多點),然后先慢慢積累著。耐心的等待著量變到質變的那一刻;第三就是做好手上的事情,始終覺得“不務正業”的風險太高了,做好擅長的事情,除此之外還要盡可能的了解其他知識達到擴展知識面的目的;最后就是覺得應該在工作中積極爭取,不能只做一畝三分地,要主動出擊,爭取機會(當然了,也不能超出能力范圍太多,否則適得其反)。
以上就是我這個工作不算久的職場人的一點思考,或許還略顯淺顯,歡迎大家交流。
那么接下來繼續學習吧。
2. I/O軟件層次結構
為了讓IO相關的硬件設備能夠被上層方便的使用,相關的軟件程序是必不可少的。我們通過下圖看些IO的軟件層次結構:
2.1 用戶層軟件
用戶層軟件工作在用戶態,主要有兩個作用:
- 實現用戶交互接口;
- 通過庫函數實現系統調用;
2.2 設備獨立性軟件
設備獨立性軟件相當于所有設備的管理者。它向上一層提供調用接口,具有設備保護、容錯處理、設備分配與回收、數據緩沖區管理、邏輯設備與物理設備映射等功能。
2.3 設備驅動程序
不同設備硬件特性不同,但CPU的指令相同,因此需要各硬件設備商負責編寫自己的驅動程序軟件。驅動程序負責控制硬件設備,將CPU指令轉換成設備操作。驅動程序是以獨立進程的形式存在的。
2.4 中斷處理程序
對于IO軟件而言,中斷處理程序也是必不可少的。當CPU發出IO指令后,調用中斷程序,保存現場并阻塞當前進程,轉向IO操作;當設備完成IO后再次向CPU發起中斷信號,中斷程序繼續執行。因此中斷程序還具有直接操作硬件的能力。