iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
2
自我挑戰組

OS作業系統學習系列 第 2

第二天 作業系統結構

  • 分享至 

  • xImage
  •  

第二天 作業系統結構

作業系統的服務有三類:使用者function、檔案系統及系統本身資源分享。
對使用者來說,服務有使用者介面(CLI命令型態、GUI圖形化、Batch批次)、程式執行和I/O系統的行程。對檔案系統而言,有檔案的新增、刪除、查詢、目錄、通訊跟錯誤的偵測。而系統本身的服務包含,資源的分配(主要有CPU cycles、主記憶體、檔案儲存跟I/O裝置)、紀錄系統被使用多少以及保護系統安全。
此圖可以顯示作業系統的服務
https://ithelp.ithome.com.tw/upload/images/20181017/20112132924l6cHwt8.png
上圖中的system call,是使用者或程式透過使用者介面的運用跟作業系統溝通。跟作業系統本身的服務要溝通時那些API就是系統呼叫。下面的圖可以解釋API、system call跟作業系統的關係
https://ithelp.ithome.com.tw/upload/images/20181017/20112132pUkFnw3cLW.png

系統呼叫時,參數的傳遞是非常重要的。有三種較為常見的傳遞方法,1.簡單的就直接傳到寄存器內,2.在Linux較常用的是把參數存在address of block內在傳進去,3.用push或stack的方式,這樣參數的傳遞可以比較多。

而系統的呼叫有哪些呢?其實系統呼叫可以做的事有非常多,像是process control、file management、device management、information maintenance、communication跟protection。
那system call跟system program有什麼區別呢?簡單來說,system call是programmer寫程式來跟系統溝通,而system program就是讓使用者運用來跟系統溝通,使用者不需用寫程式。

作業系統的架構從舊到新可分為,simple structure(MS-DOS) -> more complex(UNIX) -> layered(an abstraction) -> microkernel(Mach)
作業系統架構歷史中microkernel是非常重要的,讓kernel的部分縮小,讓多數的部分移到user的地方。所有的作業系統因為太複雜,轉變成一個個的模組,當有需要用到時再load下來執行,這樣方便管理且有共同介面可以溝通。現在多數的作業系統都是混合型的,把不同的模組組合在一起。

作業系統的除錯非常重要,因為作業系統是非常大的,所以會需要log files來記錄。如果發生錯誤時,會產生core dump把現在的狀態記錄下來。在除錯中,也會運用trace listing,把發生事件的過程記錄下來。

作業系統並不是專為一個系統,因為每個硬體並不一樣,所以會用SYSGEN告訴我們configuration是適合用哪種再把kernel載下來。講到SYSGEN就會連帶提到system boot,system boot就是開機時,會從一個固定的地方(例如:硬碟)把kernel load 下來。

以上的圖片源自課程operating-system structures ppt


上一篇
第一天 作業系統簡介
下一篇
第三天 程序(process)概念--上
系列文
OS作業系統學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言