操作系統基礎(第一章)_第1頁
操作系統基礎(第一章)_第2頁
操作系統基礎(第一章)_第3頁
操作系統基礎(第一章)_第4頁
操作系統基礎(第一章)_第5頁
已閱讀5頁,還剩63頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

操作系統設計與實現主講教師:徐戰亞Email:zhanyaxu@163.com指定教材TheMINIXBook:“OperatingSystems:設計與實現”byAndrewTanenbaumandAlbertWoodhull,第二版.中文版:操作系統設計與實現(第二版) (電子工業出版社)嵌入式實時操作系統uCOS-II[邵貝貝]需要具備的一些技能編程語言: --C(C++)and匯編 --數據結構&計算機組成原理操作系統組成基礎概念進程:核心輸出&輸出:對外內存管理:銜接體文件系統:持久化操作系統的功能:

管理系統軟硬件資源擴展計算機的功能向用戶提供服務基礎概念1.1什么是操作系統?1.2基本發展史1.3核心概念s…..1.4系統調用是什么?1.5操作系統的組成Applications……..Hardware:CPU/Memory/HD/DVD/Wireless…OS….硬件如何與軟件相銜接?KernelofSVR2ofAT&TUnixhardwareSystemCallInterfaceLibrariesUserprogramstrapuserFilesubsysBuffercacheHardwareControlCharacterblockdevicedriversProcessControlSubsys.Inter-ProcessCommunicationSchedulerMemoryManagementkernelMinixOSStructureProcessManagementInitUserProcessUserProcessUserProcess……..MemoryManagerFileSystemNetworkserverdiskttyclocksystemEthernetKernelUserServerI/O操作系統在計算機系統中的地位操作系統的地位:緊貼系統硬件之上,所有其他軟件之下(是其他軟件的共同環境)引入操作系統的目標有效性(系統管理人員的觀點):管理和分配硬件、軟件資源,合理地組織計算機的工作流程方便性(用戶的觀點):提供良好的、一致的用戶接口,彌補硬件系統的類型和數量差別可擴充性(開放的觀點):硬件的類型和規模、操作系統本身的功能和管理策略、多個系統之間的資源共享和互操作1.1.2操作系統的作用操作系統的作用(1)

OS是計算機硬件、軟件資源的管理者。管理對象包括:CPU、存儲器、外部設備、信息(數據和軟件);管理的內容:資源的當前狀態(數量和使用情況)、資源的分配、回收和訪問操作,相應管理策略(包括用戶權限)。操作系統的作用(2)

OS是用戶使用系統硬件、軟件的接口。系統命令(命令行、菜單式、命令腳本式、圖形用戶接口GUI);系統調用(形式上類似于過程調用,在應用編程中使用)。操作系統的作用(3)

OS是擴展機(extendedmachine)/虛擬機(virtualmachine)。在裸機上添加:設備管理、文件管理、存儲管理(針對內存和外存)、處理機管理(針對CPU);另外,為合理組織工作流程:作業管理、進程管理。OS的定位計算機系統(層次結構)軟件硬件及固件(裸機)應用軟件系統軟件編輯軟件編譯軟件操作系統操作系統的非形式化定義(關鍵點):系統軟件,程序模塊的集合,資源管理和用戶接口功能1.1.3操作系統舉例MSOS:MSDOS,Windows98,WindowsXP,Windows2000,Windows2003,Vista…..UNIX:BSD,SRV4,OSF1,SCOUNIX,AIX,Solaris,Minix,Linux,RedHat,NOS:NovellNetwareRTOS:VxWorks,pSoS,Nucleus,RTOS1.2操作系統的發展歷史1.2.1推動操作系統發展的主要動力1.2.2手工操作1.2.3單道批處理系統(simplebatchprocessing)1.2.4多道批處理系統(multiprogrammingsystem)1.2.5分時系統(time-sharingsystem)1.2.6個人計算機1.2.7MINIX的歷史1.2.1推動操作系統發展的主要動力資源利用率需要提高:CPU的占用率,外設繁忙程度…更多外設需要支持:指令位,8位、16位、32位、64位…更多用戶需求要滿足:商務、辦公、家庭、開發…更多新領域要支持:設計、科學計算、數據管理、娛樂…更多應用形態要滿足:集中式、共享式、個人式…1.2.2手工操作1946~50年代(電子管vacuumtubes),集中計算(計算中心),計算機資源昂貴;工作方式用戶:用戶既是程序員,又是操作員;用戶是計算機專業人員;編程語言:為機器語言;輸入輸出:紙帶或卡片;計算機的工作特點用戶獨占全機:不出現資源被其他用戶占用,資源利用率低;CPU等待用戶:計算前,手工裝入紙帶或卡片;計算完成后,手工卸取紙帶或卡片;CPU利用率低;主要矛盾計算機處理能力的提高,手工操作的低效率(造成浪費);用戶獨占全機的所有資源;提高效率的途徑專門的操作員,批處理1.2.3單道批處理系統(simplebatchprocessing,uniprogramming)50年代末~60年代中(晶體管):利用磁帶把若干個作業分類編成作業執行序列,每個批作業由一個專門的監督程序(Monitor)自動依次處理。可使用匯編語言開發。批處理中的作業的組成:用戶程序數據作業說明書(作業控制語言)批:供一次加載的磁帶或磁盤,通常由若干個作業組裝成,在處理中使用一組相同的系統軟件(系統帶)兩種批處理方式(1)--聯機批處理用戶提交作業:以紙帶或卡片為介質;操作員合成批作業:結果為磁帶介質;批作業處理:對批作業中的每個作業進行相同的處理:從磁帶讀入用戶作業和編譯鏈接程序,編譯鏈接用戶作業,生成可執行程序;啟動執行;執行結果輸出。這時的問題:慢速的輸入輸出處理仍直接由主機來完成。輸入輸出時,CPU處于等待狀態。兩種批處理方式(2)--脫機批處理利用衛星機完成輸入輸出功能。主機與衛星機可并行工作。衛星機:完成面向用戶的輸入輸出(紙帶或卡片),中間結果暫存在磁帶或磁盤上。作業控制命令由監督程序(monitor)來執行,完成如裝入程序、編譯、運行等操作。優點:同一批內各作業的自動依次更替,改善了主機CPU和I/O設備的使用效率,提高了吞吐量。缺點:磁帶或磁盤需要人工裝卸,作業需要人工分類,監督程序易遭到用戶程序的破壞(由人工干預才可恢復)。通道和中斷技術60年代初,發展了通道技術和中斷技術,這些技術的出現使監督程序在負責作業運行的同時提供I/O控制功能。通道:用于控制I/O設備與內存間的數據傳輸。啟動后可獨立于CPU運行,實現CPU與I/O的并行。通道有專用的I/O處理器,可與CPU并行工作可實現I/O聯機處理中斷是指CPU在收到外部中斷信號后,停止原來工作,轉去處理該中斷事件,完畢后回到原來斷點繼續工作。中斷處理過程:中斷請求,中斷響應,中斷點(暫停當前任務并保存現場),中斷處理例程,中斷返回(恢復中斷點的現場并繼續原有任務可處理算術溢出和非法操作碼,死循環(利用時鐘中斷進行超時限定)監督程序發展為執行系統(executivesystem),常駐內存單道批處理的主要問題CPU和I/O設備使用忙閑不均(取決于當前作業的特性)。對計算為主的作業,外設空閑;對I/O為主的作業,CPU空閑;1.2.4多道批處理系統(multiprogrammingsystem)60年代中~70年代中(集成電路),利用多道批處理提高資源的利用率。多道批處理的運行特征多道:內存中同時存放幾個作業;宏觀上并行運行:都處于運行狀態,但都未運行完;微觀上串行運行:各作業交替使用CPU;在當前運行的作業需作I/O處理時,CPU轉而執行另一個作業。(I/O完成后是否立刻恢復執行?要等到其他程序再次I/O時)Job3Job2Job1OperatingsystemMemorypartitionsFigure1-4.Amultiprogrammingsystemwiththreejobsinmemory多道批處理系統的特點優點:資源利用率高:CPU和內存利用率較高;作業吞吐量大:單位時間內完成的工作總量大;缺點:用戶交互性差:整個作業完成后或中間出錯時,才與用戶交互,不利于調試和修改;作業平均周轉時間長:短作業的周轉時間顯著增長;批處理:交互性差--提高對CPU利用率;分時處理:用戶與應用程序隨時交互,控制程序運行,適于商業和辦公事務處理--縮短響應時間1.2.5分時系統(time-sharingsystem)--70年代中期至今“分時”的含義分時是指多個用戶分享使用同一臺計算機。多個程序分時共享硬件和軟件資源。多個用戶分時:單個用戶使用計算機的效率低,因而允許多個應用程序同時在內存中,分別服務于不同的用戶。有用戶輸入時由CPU執行,處理完一次用戶輸入后程序暫停,等待下一次用戶輸入--時走時停前臺和后臺程序(foreground&background)分時:后臺程序不占用終端輸入輸出,不與用戶交互--現在的圖形用戶界面(GUI),除當前交互的程序(輸入焦點)之外,其他程序均作為后臺通常按時間片(timeslice)分配:各個程序在CPU上執行的輪換時間。分時系統的特點人機交互性好:在調試和運行程序時由用戶自己操作。共享主機:多個用戶同時使用。用戶獨立性:對每個用戶而言好象獨占主機。現在的許多操作系統都具有分時處理的功能,在分時系統的基礎上,操作系統的發展開始分化,如實時系統、通用系統、個人系統等。AnApplicationMULTICS MULTiplexedInformationandComputingService1.2.6個人計算機PersonalComputerOperatingSystem

針對單用戶使用的個人計算機進行優化的操作系統。個人計算機操作系統的特征應用領域:事務處理、個人娛樂,系統要求:使用方便、支持多種硬件和外部設備(多媒體設備、網絡、遠程通信)、效率不必很高。常用的個人計算機操作系統單用戶單任務:MSDOS單用戶多任務:OS/2,MSWindows3.x,Windows95,WindowsNT,Windows2000Professional多用戶多任務:UNIX(SCOUNIX,Solarisx86,Linux,FreeBSD)1.2.7MINIX的歷史多用戶多任務,16/32/64位BSD,SVR4(模塊式結構),OSF/1(微內核結構)

1965年:MIT的Multics,由于規模和進展而沒有達到目標;1969年:AT&T,PDP-11上的16位操作系統;1974年:UNIX系統正式發表(第五版),在大學得到使用和好評;1980年:UniversityofCaliforniaatBerkeley為VAX11發表BSD4.0;以后,UNIX就以AT&T和Berkeley為主分別開發,有多種變種;1989年:UI(UNIXInternational)發表UNIXsystemVRes4.0;使BSD和SystemV在用戶界面上統一;1991年芬蘭大學生LinusBenedictTorralds開發了第一個Linux版本。1994年:Linux1.0Bell實驗室早期UNIX和C加州大學伯克利分校BSD4At&T的系統VHP-UXAIXSolarisSCOUNIXLinuxMINIXMULTICS-UNIXUNIX(6)free萊昂氏源代碼分析UNIX(7)notfree—toUniv,justmentionedthetheoryMINIXallthecodesaredifferentForthelimitationofMINIX(justforteaching)LinuxappearedRedhatUNIX系統的特點字符用戶界面和圖形用戶界面GUI(XWindow)。搶先式多任務,多線程。支持動態鏈接。支持對稱式多處理。虛擬存儲:段頁式,有存儲保護。文件系統:多級目錄,文件卷可以在子目錄下動態裝卸。無文件屬性,可有別名。采用設備文件的形式(讀寫,參數控制)。設備驅動程序修改后需要重新編譯連接生成內核。支持多種硬件平臺。易移植:主要代碼用C語言寫成;變種很多,很難標準化。概念一:進程進程的創建和銷毀過程示意圖:

ABCDEFChild-processProcessInterprocesscommunicationRequestmorememoryReleasemorememoryWaitchildprocessterOverlayanotherprog……eg:Vector<int>m_VecProcessesandTasks>psPIDTTYTIMECMD2910pts/40:00tcsh>ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot000Sep25?0:01schedroot100Sep25?0:00/etc/init-root200Sep25?0:00pageoutroot300Sep25?0:01fsflushroot22310Sep25?0:00/usr/lib/utmpdroot17910Sep25?0:00/usr/sbin/cronroot27310Sep25?0:00/usr/lib/saf/sac-t300root5610Sep25?0:00/usr/lib/devfsadm/devfseventdroot5810Sep25?0:00/usr/lib/devfsadm/devfsadmdroot10610Sep25?0:00/usr/sbin/rpcbindroot19710Sep25?0:01/usr/sbin/nscdroot10810Sep25?0:00/usr/sbin/keyservroot16810Sep25?0:00/usr/sbin/syslogdroot11810Sep25?0:00/usr/lib/netsvc/yp/ypbindroot15910Sep25?0:00/usr/lib/autofs/automountdTheInternalStructureofMinixMinixisstructuredinfourlayers.Userprocesses(Init)ServerprocessesI/Otasksandsystemtask(Disktask)ProcessmanagementProcessManagementinMinixBottomlayerofthestructure.Catcheshardwareinterruptsandsoftwaretraps.Performsscheduling.Handlesmessagesbetweenprocesses(checksforprotection,locatessendandreceivebuffers,copiesmessagesbetweensendersandreceiver’sbuffers.)概念二:文件文件的存在隱藏了OS與外設的交互細節,方便用戶管理:如:讀寫我們的磁盤驅動器,我們只需要使用read(),write()這些函數,實際的交互,都是由OS的驅動來具體完成,程序員不用關心。當磁盤出錯,相應的錯誤信息會通過OS里的系列錯誤返回代碼返回,用戶可以獲得具體信息。早期的Linux在訪問磁盤和光驅時,需要使用“mount”命令來掛裝磁盤,訪問的位置也是固定的:/mnt/floppy。Filesystem文件保護機制—Linux必會技能rwxr--r--=rwxr--r--r:readw:writex:execute(file)search(folder,directory)Owner(whocreatethedirectoryorfile)ThesamegroupusersTheusersofothergroups一個文件有的權限部有三組rwxrwxrwx

每一位只有兩種可能:一種是這個位的權限如r另一種是-表是無此權限,所以可以用二制表示有和沒有,但為簡化所以chmod后而跟是8進制數,每個數代表屬主屬組和其它,r為4,w為2,x為1-為0,將每組中的三個要素的數字加到一起就是這個組的權限代數,每個權限與進制數的關系如下rwxrwxrwx

421421421也就是4+2+1=74+2+1=74+2+1=7所以最大權限是777

又如下面的權限就是660

rw-rw-

420420000

4+2=6,4+2=6,0

再如下面的權限是526

r-x-w-rw-

401020420也就是說想把一個文件的權限變成以上情況則輸入chmod526filename;0751呢

但在此要說明一下,只是運行chmod的用戶對此文件有w的權限才能重新設置文件權限。

root可設置任何文件的權限.Howtousemount/mnt/floppy/mnt/cdromitisthedefaultdirectoryformountfloppyandcd-rom,it’sfolder,andinsomelinuxsystems,thedefaultisempty,wecanaddfilesthere,butoncetherealdriverismounted,theoriginalfileswon’tbevisit,whenwechangeourfloppy,wehavetounmountthedisk,andremountthenewone.文件的另類存在設備文件Inlinux,inordertomaketheI/Odeviceslooksmorelikefile,thespecialappeared. blockspecialfiledisk characterspecialfileprinter,modem

由于設備文件就代表了整個設備,就可以使用標準命令直接操作設備文件,從而直接訪問硬件設備。利用這種方式,能完成很多有用的工作,但是這種方式也非常危險,例如對硬盤設備文件的操作失誤會破壞整個硬盤的數據。幸好大部分直接訪問設備的操作都為讀取相應數據的操作,而不需要寫入磁盤設備。當某個設備不可使用,則其對應的設備文件也不能正常訪問,因此直接訪問設備文件可以判斷對應的設備是否真正正常。例如,判斷連接到第一個串口,ttyd0上的鼠標是否正常工作,使用命令“cat</dev/ttyd0”來查看ttyd0上的輸入數據,如果連接的有鼠標且工作正常,那么在移動鼠標的同時屏幕上就會顯示出接收到的雜亂數據。如果沒有反應,說明鼠標工作不正確。但這也可能是其他程序接管了這個設備.文件的另類存在

管道文件Pipe連接兩個進程的虛擬文件ABPipefileMore:sometimes,theoutputofaprocess

isacommonfile,sometimestheoutputisapipefile,wehavetousespecialsystemcalltodistinguishthem.概念三:ShellEditors、compilersassemblerslinkersinterpretersnotbelongtoOS,butfromthem,wecouldfamiliarwiththeOS.#/bin/shShellacommandinterpreter manycommandthere,wewillfamiliarwiththemlater.Eg:ShXXX.shchangeit’sproperty,andrunit概念四:系統調用SystemCall系統調用是操作系統提供給軟件開發人員的唯一接口,開發人員可利用它使用系統功能。OS核心中都有一組實現系統功能的過程(子程序),系統調用就是對上述過程的調用。Forcomputer’sdifferenttype,thesystemcallaredifferent,andalmostallthebasicfunctionsareprogrammedbyassemblerlanguage.Eg:CallreadfunctioninClanguage. count=read(file,buffer,nbytes); file:thefileweareoperateon; buffer:thebufferareaweareusing; nbytes:thebyteswewillread. (sometimes,thecountmaylessthennbytes)SystemCallofMinixSixParts.Processmanagement .Signals.Filemanagement .Directory&FilesSystemManagement.Protection .TimeManagementInMinx:Anyfilehasanonlyidtoidentifyit,andanyfilehasani-node,ittelluswhoownsthefile,andwherethediskblocksare.Thedirectoryisafile,itstoredthei-nodeandfilename,nowbacktoourlink:16814030705938Mailgamestestbinmemof.cprog1Beforeweuselink/usr/ast/usr/jim1681407030705938Mailgamestestnodebinmemof.cprog1Afterweuselink/usr/ast/usr/jimMount:mount(“/dev/fd0”,“/mnt/”,0)bindevmntlibbindevmntlibCacheTomakethefilecouldbevisitedmorequickly,almostalltheOSdesignacache,similarwiththecacheofourCPU.Advantage: improveit’sspeed.Disadvantage: mayleadtocrash. resaon: howtoavoidtheprob:CacheCPUDirTable1.5操作系統的架構通過分析操作系統的系統調用來分析操作系統的大概架構發展過程:這里將介紹四種架構:**Monolithicsystems—整體式**Layeredsystems分層式**Virtualmachines虛擬機**Client-servermodel客戶-服務機模型1.51MonolithicSystemsInthistechnique:eachprocedureinthissystemhasawell-definedinterfaceintermsofparametersandresults.eachoneisfreetocallanyotherone.Howtorealizethis:compilesalltheindividualprocedures,andthenbindsthemtogethertoasingleobject.Eachprocedureisvisibletoallothers.Userprogram2Userprogram1Kernelcall3421ServiceProcedureDispatchtableUserprogramruninusermodeOperatingsystemruninkernelmodeHowitworks1.Userprogramtrapstothekernel

useankernelcallorsupervisorcall2.Operatingsystemdeterminesservicenumberrequired

fromtheparameterstochecktheservicenumber3.Operatingsystemcallsserviceprocedure

checkdispatchtable,ensuredthesyscall4.Controlisreturnedtouserprogrambacktousermode,returnthevaluesSimplify-WhatweneedwhendesignanOS?

**Amainprograminvokestherequestedserviceprocedure;(3)**Asetofserviceprocedurescarryoutthesystemcalls;(2)**Asetofutilityprocedureshelptheserviceprocedures.MainProcedureServiceProcedureUtilityProcedure1.52LayeredSystemsComparewiththeprepic,itlookslikeasimplifiedlayeredsystem,eachlayerservesforit’supperlevel,andifweaddmoredetailsthere,wewillgottheTHE.DijkstraandhisstudentsdesignedthesystemforElectrologicaX8--1968TheTHEisofsixlayers,eachlayerchargeofit’swork,andserveforupperlayers.Wheninthislayer,weneedn’tcaremoredetailofotherlayers.LayerFunction543210TheoperatorUserprogramsInput/outputmanagementOperator-processcommunicationMemoryanddrummanagementProcessorallocationandmultiprogrammingLayersofTHELayer0:providedthebasicmultiprogrammingoftheCPU;Layer1:didthememorymanagement;Layer2:handledcommunicationbetweeneachprocessandoperationconsole;Layer3:Input/OutputmanagementLayer4:UserprogramsLayer5:TheoperatorBut!!!Alltheselayersjustthedesignaid,infact,allthepartsareultimatelylinkedtogetherintoasingleobjectprogram.InMULTICSLayersisreplacedbyconcentricrings,andeachringdiddifferenttotheothers,soitismorepopular,andsystemcallhasmorestrictcheckontheirparameters.InnerringhashigherprivilegethethebiggeronekernelOperatorProgr

溫馨提示

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

評論

0/150

提交評論