日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

《操作系统》OS学习(二):启动、中断、异常

發(fā)布時間:2023/12/20 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《操作系统》OS学习(二):启动、中断、异常 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Bootloader:加載OS。操作系統(tǒng)一開始是放在DISK(硬盤)中,并不是放在內存中。

BIOS:基本I/O處理系統(tǒng)。存放在ROMRead-Only Memory)只讀存儲中

?

BIOS(Basic Input/Output System)基本輸入輸出系統(tǒng)。

首先我們需要知道,計算機加電之后,是從什么地方讀取的第一條指令,從磁盤的什么地方讀取的我的操作系統(tǒng)的內容,也就是計算機啟動的過程是怎樣的。

計算機加電后,首先是CPU的初始化過程,將各寄存器初始化,此時系統(tǒng)處于實模式下。我們要知道計算機內存分為兩種,RAM(Random Access Memory)隨機訪問存儲和ROM(Read-Only Memory)只讀存儲。其中RAM掉電內容會丟失(也就是我平時所理解的內存條內的內容比如),ROM掉電不會丟失內容。因此系統(tǒng)初始化代碼就存儲在ROM中。由于CPU初始化完成后處于實模式,尋址空間為20位也就是1M,因此系統(tǒng)初始化代碼也就是BIOS啟動固件是存儲在1M之下,如下圖。還需要知道的是,CPU初始化完后CS代碼段寄存器與IP指令指針寄存器決定了第一條要執(zhí)行的代碼在ROM中的位置,而BIOS能提供的功能也列在下圖之中:

  • 基本輸入輸出的程序(從磁盤讀數(shù)據(jù)、從鍵盤讀輸入、顯示器上顯示輸出等);
  • 系統(tǒng)設置信息(從硬盤啟動還是從網絡啟動還是從U盤啟動等);
  • 開機后自檢程序(檢查內存顯卡是否正常);
  • 系統(tǒng)自啟動程序(啟動操作系統(tǒng))等。
  • BIOS會根據(jù)設置執(zhí)行啟動程序,從磁盤把加載程序和操作系統(tǒng)內容加載到系統(tǒng)。首先BIOS將磁盤讀引導扇區(qū)加載進指定位置0x7c00,引導扇區(qū)大小限制為512byte。此時跳轉到CS:IP = 0000:7c00執(zhí)行引導扇區(qū)的程序段,通過引導扇區(qū)的程序段跳轉到讀取操作系統(tǒng)的加載程序。加載程序主要有兩個功能:

  • 將操作系統(tǒng)的代碼和數(shù)據(jù)從硬盤加載到內容中;
  • 將控制權轉移給操作系統(tǒng),也就是CS:IP跳轉到操作系統(tǒng)代碼段,執(zhí)行操作系統(tǒng)的功能。
  • 那么問題來了,既然能讀磁盤內容,為什么不直接將操作系統(tǒng)內核映像讀取到內存空間而要先讀取引導扇區(qū)的加載程序呢?這是因為不同的操作系統(tǒng)有不同的文件系統(tǒng),也就需要不同的啟動方式。而加載程序限制為512字節(jié),無法覆蓋所有類型的系統(tǒng),因此首先將磁盤引導扇區(qū)內的程序加載進來,引導扇區(qū)內的程序可以識別并加載不同類型的系統(tǒng)內核到內存中(亦或是不同的系統(tǒng)有著不同的引導扇區(qū),加載進來之后就知道是什么類型的系統(tǒng)了,至少學到現(xiàn)在還不知道,后續(xù)可能會有詳細介紹吧)。此時控制權轉移給操作系統(tǒng)內核。

    除此之外BIOS還可以使用一些簡單地系統(tǒng)調用,比如說:1. INT 10h:字符顯示;2. INT 13h:磁盤扇區(qū)讀寫;3. INT 15h:檢測內存大小;4. INT 16h:鍵盤輸入。這些系統(tǒng)調用都只是最簡單的系統(tǒng)調用,并且只能在實模式下訪問。當進入操作系統(tǒng)并且操作系統(tǒng)是保護模式,那么這些功能就不能用了。

    系統(tǒng)啟動流程

    上一節(jié)講解系統(tǒng)調用的過程中粗略的講了一下系統(tǒng)啟動的流程,然而實際上系統(tǒng)地啟動流程遠沒有那么簡單,本節(jié)就稍微詳細地講解一下。但是實際上即使是這一節(jié)也無法十分詳細講解,只是讓我們對系統(tǒng)啟動的過程有一個整體的認識而已。

    首先是BIOS讀取加載程序的過程:系統(tǒng)加電后,CPU初始化,然后BIOS初始化硬件,然后查詢主引導記錄讀取主引導扇區(qū)代碼,這是由于現(xiàn)代計算機內通常不止有一個分區(qū),不同分區(qū)內可能有不同的操作系統(tǒng),而我們需要知道我們要啟動的操作系統(tǒng)在哪個分區(qū)內(稱為活動分區(qū)),這就是通過讀取主引導記錄實現(xiàn)的。知道活動分區(qū)之后將活動分區(qū)引導扇區(qū)內的代碼讀取到內存并執(zhí)行,引導扇區(qū)內的代碼讀取文件系統(tǒng)的加載程序。這才是較為完整的讀取加載程序的過程。

    那么再詳細一點講,計算機上電后,首先是CPU初始化:CPU上電后,通過CS、IP兩個寄存器知道從0XFFFF0地址讀取第一條指令,這條指令是跳轉指令,跳轉到BIOS程序段。為什么是0XFFFF0呢,這是因為CPU上電后會初始化CS:IP = 0xf000:fff0。并且CPU初始化后處于實模式,也就是16位系統(tǒng),20位尋址空間,是通過將CS左移4位與IP相加得到最終的地址因此指令指針PC = 16*CS+IP。20位尋址空間自然意味著最大尋址空間為2^20byte,即1M。

    接下來是BIOS初始化:硬件自檢(ROM等);檢測內存(RAM)、顯卡等關鍵部件是否存在,存在的話工作狀態(tài)是否正常;查找并執(zhí)行顯卡等接口卡的BIOS(顯卡等擁有自己的BIOS固件),對設備進行初始化;之后執(zhí)行系統(tǒng)BIOS進行系統(tǒng)檢測,主要是為了檢測計算機有哪些即插即用設備,比如硬盤、光驅或者U盤;檢查完之后更新CMOS中的擴展系統(tǒng)配置數(shù)據(jù)(ESCD)告知有哪些即插即用設備;之后就可以按照指定的啟動順序從軟盤、硬盤或者光驅啟動操作系統(tǒng)。

    BIOS初始化完了,自然是要讀取主引導記錄。主引導記錄(MBR)的格式如下圖:啟動代碼限制為446字節(jié)以內,用于檢查分區(qū)表的正確性、尋找活動分區(qū)并將活動分區(qū)引導程序加載到內存;還有64字節(jié)用于存儲硬盤分區(qū)表,描述分區(qū)狀態(tài)和位置,最多表示4個分區(qū),每個分區(qū)16字節(jié);還有一個MBR結束標志字(0x55AA),占2字節(jié),只有有這個結束字才認為這條MBR是合法的MBR并執(zhí)行啟動代碼。

    當主引導記錄讀完并正確執(zhí)行啟動代碼后,活動分區(qū)引導扇區(qū)的內容就被讀入內存,分區(qū)引導扇區(qū)格式如下圖:首先是跳轉指令,這條跳轉指令是與平臺相關的,CPU不同則跳轉指令不同,跳轉至啟動代碼處;文件卷頭結構則記錄文件系統(tǒng)描述信息;結束標志也是0X55AA;啟動代碼則負責跳轉到加載程序,加載程序不存儲在引導扇區(qū),而是存儲在磁盤中,只要在啟動代碼中記錄加載程序的位置即可。

    活動分區(qū)引導扇區(qū)將加載程序讀入內存之后,加載程序的執(zhí)行狀態(tài)如下圖:加載程序并不是直接讀取操作系統(tǒng)內核,而是從文件系統(tǒng)中讀取啟動配置信息;依據(jù)配置信息(不同的內核有不同的配置信息),確定啟動的內核或啟動參數(shù)(比如是安全模式啟動還是正常模式啟動);最后根據(jù)配置加載指定內核并轉到內核執(zhí)行,此時將控制權轉移給了操作系統(tǒng)內核。

    值的一提的是,以上所說為較早版本的系統(tǒng)啟動流程,隨著技術的發(fā)展,出現(xiàn)了UEFI(Unified Extensible Firmware Interface)統(tǒng)一可擴展固件接口,這是BIOS的接任者。里面有一些新的標準,比如MBR只能存儲4個分區(qū)的方式逐漸被淘汰,現(xiàn)在出現(xiàn)了GPT(Globally Unique Identifier Partition Table)進行替代;UEFI可以選擇啟用哪些固件等。

    中斷、異常與系統(tǒng)調用

    這一節(jié)講解中斷、異常與系統(tǒng)調用,這三者也可以總稱為中斷處理機制。首先我們需要知道這三個機制的背景:1. 計算機運行過程中,內核是被完全信任的第三方;2. 只有內核可以執(zhí)行特權指令;3. 內核需要方便地為應用程序提供服務。

    那么我們?yōu)槭裁葱枰@三個機制呢?也就是說這三個機制實現(xiàn)了什么功能呢?

    中斷是為了處理外設IO的,比如當我有一個新的鍵盤和鼠標接入了計算機,或者我們在鍵盤上敲了鍵盤,此時即使計算機正在進行其他任務也需要對此作出快速響應,這就是中斷要做的事情;

    當我程序運行中出現(xiàn)了異常,比如某個在分母上的變量運行過程中變?yōu)榱?,也就是出現(xiàn)了除以0這種操作,這是不合法的,又比如說程序訪問一塊內存區(qū),而這個內存區(qū)是不允許這個程序訪問的,在運行到這一行程序之前我們無法預測這一異常,因此我們需要對這種異常有一種處理機制;

    系統(tǒng)調用則是為上層的應用程序提供了各種接口,方便應用程序使用系統(tǒng)提供的服務,而又規(guī)避安全風險問題,即應用程序只使用提供給他的服務,而不會胡亂修改內核。

    中斷、異常與系統(tǒng)調用的結構圖如下圖:當有外部設備接入或者有輸入,則告知內核(插入中斷向量表),內核通過設備驅動與外部設備交互;當應用程序執(zhí)行過程中出現(xiàn)異常,也插入中斷向量表,內核要么將異常解決掉,要么終止程序,并將程序占用的資源返還;應用程序可以直接或者通過函數(shù)庫間接地使用系統(tǒng)調用接口,插入中斷向量表,中斷向量表通過查詢系統(tǒng)調用表提供系統(tǒng)調用實現(xiàn),并將結果返還。因此可以說內核與外界打交道的接口主要就是中斷、異常與系統(tǒng)調用。

    從上圖也可以看到中斷、異常與系統(tǒng)調用的區(qū)別如下圖:系統(tǒng)調用是應用程序主動向操作系統(tǒng)發(fā)出的服務請求;異常是非法指令或其他原因導致當前指令執(zhí)行失敗(如內存出錯)后的處理請求;中斷則是來自硬件設備的處理請求。

    下圖是三者比較:

    這三者也即中斷處理機制具體實現(xiàn)過程是怎樣的呢?實現(xiàn)過程可以分為硬件和軟件兩部分。首先是硬件部分:在CPU初始化過程中會設置中斷使能標志,即在CPU做好準備工作之后才會開始接受中斷請求,在此之前是不會有反應的;此外需要根據(jù)內部或外部事件設置中斷標志,記錄出現(xiàn)了一次中斷;依據(jù)中斷向量表中的內容知道中斷源是什么,并調用相應中斷服務例程。以上為硬件部分工作內容,接下來的內容是軟件部分:1. 現(xiàn)場保存(編譯器);2. 中斷服務處理(服務例程);3. 清除中斷標記(服務例程);4. 現(xiàn)場恢復(編譯器)。

    那么如果一個中斷出現(xiàn)的時候又出現(xiàn)新的中斷會怎樣呢(此處中斷指中斷處理機制即包含中斷、異常、系統(tǒng)調用三者)?其中,硬件終端服務例程可以被打斷,比如不同硬件中斷源同時出現(xiàn),此時可以按照優(yōu)先級依次處理,而出現(xiàn)了非常重要的中斷比如電源出現(xiàn)問題時,則可以臨時禁止接收中斷請求,而被接收了的中斷請求會保持到CPU對中斷做出響應。異常服務例程也是可以被打斷的,比如異常執(zhí)行中可能出現(xiàn)硬件中斷,例如處理異常時進行磁盤IO,此時磁盤出現(xiàn)了硬件中斷,則會打盹異常服務例程去進行硬件中斷處理。異常服務例程也是可以嵌套的,比如處理異常時又出現(xiàn)了缺頁異常,此時則會產生嵌套。

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結

    以上是生活随笔為你收集整理的《操作系统》OS学习(二):启动、中断、异常的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 小珊的性放荡羞辱日记 | 中文字幕日韩一区二区三区不卡 | 亚洲在线免费 | 999视频在线播放 | 欧美日韩伊人 | 国语对白做受按摩的注意事项 | 日韩人妻无码一区二区三区99 | 在线一区二区三区视频 | 欧性猛交ⅹxxx乱大交 | 都市激情亚洲色图 | 亚洲综合自拍偷拍 | 日韩精品电影一区 | 毛片毛片女人毛片毛片 | 桃色91 | 麻豆精品视频 | 日韩av影片 | 九色在线 | 免费性视频 | 美女超碰在线 | 影音先锋伦理片 | 四虎影院成人 | 久久精品国产亚洲AV无码麻豆 | 欧洲性生活片 | 国产亚洲精品久久久久久青梅 | 红桃视频一区二区三区免费 | 亚洲永久无码7777kkk | 一区二区三区不卡视频在线观看 | 日韩porn | 欧美性受xxxx黑人猛交88 | 国产精欧美一区二区三区蓝颜男同 | 欧美丰满老熟妇aaaa片 | 天天操好逼 | 大尺度av在线 | 操干视频 | 欧美韩日国产 | 日韩成人高清 | 亚洲欧美大片 | 免费三片60分钟 | 国产免费高清 | 住在隔壁的她动漫免费观看全集下载 | 韩国美女啪啪 | 国产草草影院 | 国产视频一区二区 | 夫妻性生活自拍 | 日本在线视频一区二区 | 欧美a视频 | 久久国产精彩视频 | av天天网| 中文字幕乱码亚洲无线三区 | 首尔之春在线观看 | www.69视频 | 中文字幕日韩专区 | 日本黄色片. | 日韩中文一区 | 成人免费在线 | 精品成人无码久久久久久 | 国产无遮挡a片又黄又爽 | 日韩中文字幕国产 | 国产精品亚洲专区无码牛牛 | 丁香六月激情 | 久久久精品在线观看 | 国产成人主播 | 国产视频欧美视频 | 午夜专区 | 亚洲无码精品一区二区三区 | 三级全黄的视频 | 中文字幕高清在线免费播放 | 色不卡 | 91高清视频免费观看 | 99视频久 | 影音先锋中文字幕在线视频 | 日韩性大片 | 在线视频精品免费 | 91正在播放 | 中文字幕有码在线观看 | 国产精品久久久久999 | 日韩一区二区精品 | 亚洲综合p| 亚洲卡一卡二卡三 | 国产精品美女av | 久久激情五月 | 蜜臀av一区二区三区有限公司 | 国产亚洲av片在线观看18女人 | 国产午夜网站 | 福利片在线看 | 国产精品成人在线 | 国产精品国产三级国产aⅴ9色 | 男人的天堂影院 | 动漫3d精品一区二区三区乱码 | 操碰av | 女人的天堂网 | 肉肉视频在线观看 | 日本精品在线视频 | 国产亚洲久久 | 欧美中文字幕第一页 | 日本一区二区三区在线免费观看 | 欧美级毛片 | 婷婷五月综合激情 | 91欧美在线 |