操作系統(tǒng)學(xué)習(xí)筆記(二)

Updated December 25, 2018

存儲(chǔ)器管理

可執(zhí)行存儲(chǔ)器: 寄存器和主存儲(chǔ)器
主存儲(chǔ)器: 簡(jiǎn)稱內(nèi)存或主存. 通常, 處理機(jī)都是從主存儲(chǔ)器中取得指令和數(shù)據(jù)的, 并將其取得的指令放入指令寄存器中, 將其所讀取的數(shù)據(jù)裝入到數(shù)據(jù)寄存器中.
高速緩存: 它是介于寄存器和主存儲(chǔ)器之間的存儲(chǔ)器, 主要用于備份主存中較常用的數(shù)據(jù), 以減少處理機(jī)對(duì)主存儲(chǔ)器的訪問次數(shù), 這樣可提高程序執(zhí)行速度.
從寫程序到運(yùn)行程序

  1. 編譯: 源代碼編譯成若干個(gè)目標(biāo)模塊(編譯就是把高級(jí)語(yǔ)言翻譯成機(jī)器語(yǔ)言)
  2. 鏈接: 將一組目標(biāo)模塊以及所需庫(kù)函數(shù)鏈接在一起, 形成一個(gè)完整的裝入模塊
  3. 裝入: 將裝入模塊裝入內(nèi)存運(yùn)行

裝入的3種方式:

  1. 絕對(duì)裝入: 程序中所使用的絕對(duì)地址既可在編譯或匯編時(shí)給出, 也可由程序員直接賦予. 絕對(duì)裝入只適用于單道程序環(huán)境.
  2. 靜態(tài)重定位: 又稱可重定位裝入, 把在裝入時(shí)對(duì)目標(biāo)程序中指令和數(shù)據(jù)地址的修改過程稱為重定位. 又因?yàn)榈刂纷儞Q通常是在進(jìn)程裝入時(shí)一次完成, 以后不再改變, 故稱為靜態(tài)重定位. 靜態(tài)重定位不允許程序運(yùn)行時(shí)在內(nèi)存中移動(dòng)位置.
  3. 動(dòng)態(tài)重定位: 又稱動(dòng)態(tài)運(yùn)行時(shí)裝入, 裝入程序在把裝入模塊裝入內(nèi)存后, 并不立即把裝入模塊中的邏輯地址轉(zhuǎn)換為物理地址, 而是把地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時(shí)才進(jìn)行. 為使地址轉(zhuǎn)換不影響指令的執(zhí)行速度, 這種方式需要一個(gè)重定位寄存器的支持.

鏈接的3種方式:

  1. 靜態(tài)鏈接: 在程序運(yùn)行之前, 先把各目標(biāo)模塊及它們所需的庫(kù)函數(shù)連接成一個(gè)完整的可執(zhí)行文件, 之后不再拆開
  2. 裝入時(shí)動(dòng)態(tài)鏈接: 在裝入內(nèi)存時(shí), 采取邊裝入邊鏈接的鏈接方式. 優(yōu)點(diǎn)是便于修改和更新, 便于實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享.
  3. 運(yùn)行時(shí)動(dòng)態(tài)鏈接: 將對(duì)某些模塊的鏈接推遲到程序執(zhí)行時(shí)才進(jìn)行. 優(yōu)點(diǎn)是加快程序的鏈接過程, 節(jié)省內(nèi)存空間

連續(xù)分配方式: 指為用戶進(jìn)程分配的必須是一個(gè)連續(xù)的內(nèi)存空間

  1. 單一連續(xù)分配: 內(nèi)存被分為系統(tǒng)區(qū)和用戶區(qū), 而在用戶區(qū)內(nèi)存中只能有一道用戶程序
  2. 固定分區(qū)分配: 將整個(gè)用戶區(qū)內(nèi)存劃分為若干個(gè)固定大小的分區(qū), 在每個(gè)分區(qū)中只裝入一道作業(yè).
  3. 動(dòng)態(tài)分區(qū)分配: 又稱可變分區(qū)分配, 在實(shí)現(xiàn)動(dòng)態(tài)分區(qū)分配時(shí), 將涉及到分區(qū)分配中所用的數(shù)據(jù)結(jié)構(gòu), 分區(qū)分配算法和分區(qū)分配回收這樣三方面的問題

基于順序搜索的動(dòng)態(tài)分區(qū)分配算法

  1. 首次適應(yīng)(first fit)算法
    空閑分區(qū)以地址遞增的順序排列. 每次分配內(nèi)存時(shí)順序查找空閑分區(qū)鏈/空閑分區(qū)表, 找到大小能滿足的第一個(gè)分區(qū). 該算法保留了高址部分的大空閑區(qū), 缺點(diǎn)是低址部分不斷被劃分, 會(huì)留下很多碎片.
  2. 循環(huán)首次適應(yīng)(next fit)算法
    next fit算法在為進(jìn)程分配內(nèi)存空間時(shí), 不是每次都從鏈?zhǔn)组_始查找, 而是從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找.
  3. 最佳適應(yīng)(best fit)算法
    空閑分區(qū)以容量遞增的順序排列. 每次分配內(nèi)存時(shí)順序查找空閑分區(qū)鏈/空閑分區(qū)表, 找到大小能滿足的第一個(gè)分區(qū). 缺點(diǎn)是會(huì)留下很多碎片.
  4. 最壞適應(yīng)(worst fit)算法
    與最佳適應(yīng)算法相反, 對(duì)中, 小作業(yè)有利

基于索引搜索的動(dòng)態(tài)分區(qū)分配算法

  1. 快速適應(yīng)(quick fit)算法
  2. 伙伴系統(tǒng)(buddy system)
  3. 哈希算法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 基礎(chǔ)知識(shí) 1.1、 基本概念、 功能 馮諾伊曼體系結(jié)構(gòu)1、計(jì)算機(jī)處理的數(shù)據(jù)和指令一律用二進(jìn)制數(shù)表示2、順序執(zhí)...
    yunpiao閱讀 5,780評(píng)論 1 22
  • # 第一章復(fù)習(xí)題答案p3 1、計(jì)算機(jī)系統(tǒng)由哪些部分組成? 2、什么是計(jì)算機(jī)的操作系統(tǒng)?答:操作系統(tǒng)是計(jì)算機(jī)的一種系...
    叛逆閑人閱讀 3,755評(píng)論 0 0
  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 8,117評(píng)論 0 27
  • 生活需要一些儀式感,教育更需要儀式感。 李虹霞老師分享了這樣一個(gè)小故事:她來北京中關(guān)村三小后接手了一年級(jí)一個(gè)班,在...
    馮展奎閱讀 412評(píng)論 1 13
  • 26歲以后,在選擇護(hù)膚品上我就開始注重添加抗衰老成分的產(chǎn)品,借以對(duì)抗日漸猥瑣的地心引力。 最近,又在考慮入手口服膠...
    萬(wàn)年修得王小順閱讀 592評(píng)論 4 9

友情鏈接更多精彩內(nèi)容