版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2023/12/51討論操作系統結構,一般包括3個方面:操作系統所提供的服務
2.1操作系統服務操作系統為用戶和程序員提供的接口
2.2操作系統的用戶界面
2.3系統調用
2.4系統調用類型
2.5系統程序操作系統組成部分及其相互關系
2.6操作系統結構
2.7虛擬機基本內容2023/12/522.1操作系統服務操作系統服務一般包括:用戶界面:CUI、GUI程序執(zhí)行:裝入程序、運行程序I/O操作:底層的I/O操作(啟動、讀寫、關閉等)文件系統操作:創(chuàng)建/復制/移動/刪除/檢索文件/目錄、
列舉文件信息等通信:IPC(進程間通信)、RPC(遠程過程調用)等錯誤檢測:硬件錯誤、算術溢出、非法地址訪問等資源分配:CPU、存儲器、外部設備等統計:用戶用時記帳、資源利用率等保護與安全:登錄驗證、進程越界訪問、非法訪問等2023/12/532.2操作系統的用戶界面2023/12/54系統接口—用戶通過它來使用操作系統對大多數用戶來說,操作系統是一個“黑盒子”操作系統鍵盤命令鼠標點擊網絡數據屏幕輸出文件改變……引導告訴了我們這個盒子是怎么放入內存的?在“打開這個盒子”之前要“了解盒子的入口”2.2操作系統的用戶界面2023/12/552.2操作系統的用戶界面2.2.1命令解釋程序命令解釋程序是OS的特殊程序DOS中的COMMAND.COMUNIX、Linux中的Shell(B-Shell、C-Shell)命令解釋程序的主要作用是獲取并執(zhí)行用戶給定的下一條命令內部命令、外部命令2023/12/56命令行是怎么回事?命令是什么?命令輸入后發(fā)生了什么?#include<stdio.h>intmain(int
argc,char*argv[]){printf(“ECHO:%s\n”,argv[1]);}gcc–ooutputoutput.c
./output“hello”命令,一段程序而已intmain(int
argc,char*argv[]){charcmd[20];while(1){scanf(“%s”,cmd);
if(!fork()){exec(cmd);}else{wait();}}//while(1)}也是一段程序:shell,即/bin/sh命令得以工作的原因:OS提供了printf,fork,exec等函數(接口)2.2操作系統的用戶界面我們可以自己開發(fā)的命令行界面?。?023/12/572.2操作系統的用戶界面2.2.2圖形用戶界面DOS中的Windows1.0-3.12Windows中的DesktopLinux中的X-WindowMacOSXAqua我們自己開發(fā)的WindowsDesktop例子1例子2設置系統啟動時自動啟動自制桌面2023/12/58使GUI工作,OS提供消息框架和相關API硬件輸入Windows應用程序iGUI是怎么回事?鼠標點擊OUTPUT以后…
voidCOutputDlg::OnOK(){GetDlgItemText(IDC_EDIT1,m_outStr);FILE*fp=fopen("d:\\out.txt","w");
fprintf(fp,m_outStr,m_outStr.GetLength());
fclose(fp);}系統消息隊列消息循環(huán)WinMain()WM_MOUSEDOWN應用消息隊列iWinProc1WinProc2OUTPUT按鈕的WinProc(){caseWM_MOUSEDOWN:
OnOK();}2023/12/59總結前述最重要的概念用戶使用計算機總結:應用操作系統提供的接口編寫程序;應用這些程序解決問題命令行:命令程序+shell+字符顯示GUI:消息處理程序+消息框架+圖形顯示應用程序:將上述部分組成一個整體…因此:用戶通過OS接口使用計算機;OS接口影響計算機的使用方式這么重要,得起個名字:
接口表現為函數調用,又由OS提供,叫系統調用系統調用是學習操作系統的首要任務…系統調用2.3系統調用2023/12/510對于指令跳轉也一樣實現了隔離…怎么實現系統調用?將內核程序和用戶程序隔離比較好!區(qū)分內核態(tài)和用戶態(tài):一種處理器“硬件設計”系統調用處理器保護環(huán)0123核心態(tài)OS服務用戶態(tài)CPL(CS)RPL(DS)DPL檢查當前程序執(zhí)行在什么態(tài)(哪層環(huán))?由于CS:IP是當前指令,所以用CS的最低兩位來表示:0是內核態(tài),3是用戶態(tài)訪問的數據段最低2位內核態(tài)可以訪問任何數據,用戶態(tài)不能訪問內核數據2.3系統調用當前指令段最低2位被調用代碼段級別2023/12/511對于Intelx86,那就是中斷指令intint指令將使CS中的CPL改成0,“進入內核”這是用戶程序發(fā)起的調用內核代碼的唯一方式若用戶程序想調內核代碼:寫一段包含int指令的代碼系統調用的實現:(1)用戶程序中寫上一段包含int指令的代碼(2)OS寫中斷處理代碼,獲取欲調用程序的編號(3)OS根據編號轉去執(zhí)行相應的代碼由誰做?庫函數!系統調用編號2.3系統調用硬件提供了“主動進入內核的方法”DOS為INT21H,Windows2K為2EH,Linux為080H)2023/12/512系統調用的處理過程
SystemCalli號系統調用用戶程序A0SUB0SUB1SUBiSUBnA1AiAn……系統調用處理子程序取系統功能號查入口地址表相應入口地址結束處理恢復現場A0A1…Ai…An保護CPU現場陷入指令
int系統調用陷入機構入口地址表2.3系統調用01…i…n2023/12/513系統調用展開執(zhí)行示例應用程序intmain(){…scanf(…);…}C庫展開intread{…moveeax,3int0x80;…}中斷處理entry(system_call){saveall…callsys_read3…restoreall;}內核函數sys_read3(){…ret}用戶態(tài)核心態(tài)2023/12/5142.3系統調用系統調用號:用寄存器eax內容指定最多直接傳遞3個參數:用寄存器ebx,ecx,edx有3種傳遞參數的方式:(1)直接用寄存器ebx,ecx,edx,最多3個參數(2)指定內存塊,任意多個參數,可以用ebx、
ecx、edx任意2個指定地址和個數(3)用系統棧,任意多個參數,寄存器可用可不
用(因為參數個數可放在棧內)系統調用參數傳遞2023/12/5152.3系統調用API:ApplicationProgramInterfaceAPI是對SystemCall的封裝Win32API2000多個POSIXAPI100多個JavaAPI10000多個Linux2.X版本有200多個系統調用SystemCall更底層,使用需知道更多細節(jié)API是用SystemCall封裝而成,使用方便,
程序可移植性好API與SystemCall的區(qū)別與聯系2023/12/5162.4系統調用類型進程控制:創(chuàng)建、裝入、執(zhí)行、終止、等待、喚醒、
內存分配與釋放…
…文件管理:創(chuàng)建、刪除、打開、關閉、讀、寫、重定
位、屬性獲取及設置…
…設備管理:請求、釋放、讀、寫、重定位、屬性獲得
設置、連接與斷開信息維護:讀取/設置系統數據、讀取/設置時間及日
期、讀取/設置進程/文件/設備等屬性通信:創(chuàng)建/刪除通信連接、收發(fā)消息、連接/斷開遠
端設備五大類:進程控制、文件管理、設備管理、信息維護、通信2023/12/5172.5系統程序文件管理:創(chuàng)建、刪除、復制、命名、備份、格式化
等,如資源管理器等系統維護:監(jiān)測、設置、性能分析等,如:安裝軟件,
TaskManager,RegEdit,PS,LS,Kill等程序開發(fā)支持:各類語言編輯/編譯器,IDE開發(fā)環(huán)境,
數據庫系統通信:遠程登錄,網上鄰居,網頁瀏覽器等系統程序:介于操作系統與用戶應用程序之間的程序,主要提供一個方便的環(huán)境,利用開發(fā)程序和執(zhí)行程序2023/12/5182.6操作系統結構MS-DOS層次結構1.簡單結構:整個操作系統似乎是個單一的整體,不注重模
塊的劃分和接口與功能層次。典型例子:DOS應用程序系統駐留程序MS-DOS設備驅動ROMBOIS設備驅動2023/12/5192.6操作系統結構Linux單內核結構用戶態(tài)系統庫(函數庫)應用程序系統調用接口模塊內核(進程管理、存儲管理、文件管理、設備管理、網絡管理)設備驅動計算機硬件核心態(tài)單內核2023/12/5202.6操作系統結構分層操作系統結構模型2.分層結構:整個操作系統分為若干層,至底向上層層封裝第i層只能調用0..i-1層提供的函數或調用;更嚴格的分層:第i層只能調用i-1層提供的函數或調用2023/12/521
操作系統服務進程客戶進程1客戶進程2文件服務器進程服務器主存服務器……
微內核(消息傳遞、進程調度、內存管理)計算機硬件
用戶進程用戶態(tài)核心態(tài)客戶通過微內核發(fā)送消息給文件服務器2.6操作系統結構微內核結構模型3.微內核結構:將最基本的功能作為內核存在,主要包括最小的進程管理、內存管理和通信功能,其他功能作為系統程序或用戶程序出現。2023/12/522
2.7虛擬機VMWare結構模型虛擬機:是一種操作系統的特結構。首先,對硬件進行第1層抽象封裝(一般是一個完整的操
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年綠色生態(tài)建筑農民工勞動合同示范3篇
- 二零二五年度防盜門行業(yè)市場分析報告合同2篇
- 二零二五版加油站智能監(jiān)控與數據分析合同3篇
- 二零二五白云區(qū)觀白活力中心房地產合作開發(fā)投資框架合同2篇
- 二零二五年度智能家電產品研發(fā)與銷售合同3篇
- 二零二五版養(yǎng)殖企業(yè)與個體養(yǎng)牛戶合作合同3篇
- 二零二五版數據中心機房租賃及數據備份服務合同2篇
- 基于2025年度5G網絡技術研發(fā)合作合同2篇
- 二零二五版拌和站產品質量追溯與售后服務合同2篇
- 二零二五版建筑工程土方中介合同糾紛調解機制3篇
- 課題申報書:GenAI賦能新質人才培養(yǎng)的生成式學習設計研究
- 外配處方章管理制度
- 2025年四川長寧縣城投公司招聘筆試參考題庫含答案解析
- 駱駝祥子-(一)-劇本
- 《工程勘察設計收費標準》(2002年修訂本)
- 全國醫(yī)院數量統計
- 【MOOC】PLC技術及應用(三菱FX系列)-職教MOOC建設委員會 中國大學慕課MOOC答案
- 2023七年級英語下冊 Unit 3 How do you get to school Section A 第1課時(1a-2e)教案 (新版)人教新目標版
- 泌尿科主任述職報告
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
評論
0/150
提交評論