第3章 用戶接口_第1頁
第3章 用戶接口_第2頁
第3章 用戶接口_第3頁
第3章 用戶接口_第4頁
第3章 用戶接口_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、12345678910111213141516編譯器或匯編器目標模塊源程序其他目標模塊主存中運行動態(tài)裝入的系統庫編譯時間編譯時間連接裝配時間連接裝配時間動態(tài)鏈接加載運行時間運行時間連接裝配程序主存映像文件應用程序處理步驟示意圖應用程序處理步驟應用程序處理步驟17181920 操操 作作 系系 統統用戶通過操作系統使用計算機示意圖21 操作命令:操作命令: 作業(yè)控制語言 鍵盤命令 圖形界面 操操 作作 系系 統統系統功能調用系統功能調用操作系統提供的用戶接口示意圖22實際操作系統實際操作系統: MS-DOS Windows Linux (UNIX)提供什么樣的用戶界面提供什么樣的用戶界面?232

2、4 操作系統提供實現各種功能的例行子程序。操作系統提供實現各種功能的例行子程序。應應用用程程序序 i 系統調用系統調用 中中 央央處理機處理機存儲器存儲器外外 部部設設 備備應應 用用程程 序序計算機系統部件計算機系統部件系統功能調用示意圖25 采用統一進管方式采用統一進管方式 系統提供系統提供 訪管指令、訪管中斷訪管指令、訪管中斷 顯示一個顯示一個字符串字符串讀文件讀文件 應用程序應用程序 j read( ); 操作系統統功能模塊操作系統統功能模塊 訪管指令訪管指令 (自愿進管指令自愿進管指令) svc n svc 表示機器訪管指令的操作碼記憶符,表示機器訪管指令的操作碼記憶符,n為地址碼為

3、地址碼 (功能號功能號)系統功能調用示意圖26 訪管中斷訪管中斷 當處理機執(zhí)行到訪管指令時發(fā)生中斷,該中斷稱為訪管中當處理機執(zhí)行到訪管指令時發(fā)生中斷,該中斷稱為訪管中 斷,它表示正在運行的程序對操作系統的某種需求。斷,它表示正在運行的程序對操作系統的某種需求。 操作系統提供實現各種功能的例行子程序,其中的每一個功能對應訪管 指令的一個功能號。例如: svc 0 顯示一個字符顯示一個字符 svc 1 打印一個字符串打印一個字符串 系統功能調用是用戶在程序一級請求操作系統服務的一種系統功能調用是用戶在程序一級請求操作系統服務的一種手段,它是帶有一定功能號的手段,它是帶有一定功能號的“訪管指令訪管指

4、令”。其功能是由操。其功能是由操作系統中的程序完成的,即由軟件方法實現的。作系統中的程序完成的,即由軟件方法實現的。27 a1a0ai例行子程序例行子程序入口地址表入口地址表A+0A+1A+i保護現場;保護現場;取取 i 值;值;按按i 值轉移;值轉移; 恢復現場;恢復現場;訪管中斷訪管中斷處理程序處理程序 svc i 用戶程序用戶程序+ASub mam例行子程序例行子程序Sub 0Sub 1Sub ia0a1ai系統調用的執(zhí)行過程編寫各服務功能的例行子程序訪管中斷處理程序:保護現場、調用例行子程序、恢復現場構造例行子程序的入口地址表功能號與例行服務子程序一一對應。用戶程序中安排訪管指令由陷入

5、指令自帶參數:陷入指令的長度有限,且還要攜帶系統調用功能號,只能自帶有限的參數通過有關通用寄存器來傳遞參數:這些寄存器應是系統程序和用戶程序都能訪問的,由于寄存器個數限制,無法傳遞較多的參數在內存中開辟專用堆棧區(qū)來傳遞參數28系統調用方式(系統調用方式(INT)與程序中一般的調用方式的相同點)與程序中一般的調用方式的相同點改變指令流程重復執(zhí)行和公用改變指令流程后需要返回原處 系統調用方式(系統調用方式(INT)與程序中一般的調用方式的)與程序中一般的調用方式的不不同點同點 運行在不同的系統狀態(tài)過程調用:調用前后狀態(tài)相同,用戶態(tài)或核態(tài)系統調用:INT指令,用戶態(tài)核態(tài)返回問題過程調用:正常返回調用

6、過程系統調用:可能引起進程調度系統調用命令中,同一程序中不包含被調用代碼:好處?系統調用涉及到PSW:狀態(tài)管理、標志寄存器29系統調用代碼屬于OS,庫函數由軟件開發(fā)商提供,由編譯工具鏈入用戶程序。系統調用代碼的執(zhí)行引起CPU狀態(tài)的變化:用戶態(tài)核心態(tài)庫函數的執(zhí)行不會引起CPU狀態(tài)的變化:用戶態(tài)303132 abc(); abc(); syscall; system_call: sys_abc SYSEXITsysabc() 用戶態(tài)用戶態(tài)核心態(tài)核心態(tài)用戶程序系統調用 在libc標準庫中的封裝例程系統調用處理程序系統調用服務例程Linux系統調用過程33int main() getuid(); int getuid(void) long_res; int $0 x80; ENTRY(system_call) pushl % esx SAVE_ALL GET_CURRENT(%ebx) call sys_getuid16 RESTORE_ALLasmlinkage longsys_getuid16(void) return high2lowuid (current_uid);用戶程序用戶程序系統調用處理程序系統調用處理程序標準標準C庫庫內核例程內核例程getuid系統調用過程3435進入函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論