操作系統內存管理問題集錦

1. 可采用哪幾種方式將程序裝入內存?它們分別適用于何種場合?

a. 首先由編譯程序將用戶源代碼編譯成若干目標模塊,再由鏈接程序將編譯后形成的目標模塊和所需的-庫函數鏈接在一起,組成一個裝入模塊,再由裝入程序將裝入模塊裝入內存;?

b. 裝入模塊的方式有: 絕對裝入方式,可重定位方式和動態運行時裝入方式;?

c. 絕對裝入方式適用于單道程序環境下;?

d. 可重定位方式適用于多道程序環境下;?

e. 動態運行時裝入方式也適用于多道程序環境下.


2. 何謂靜態鏈接及裝入時動態鏈接和運行時的動態鏈接?

a. 靜態鏈接是指事先進行鏈接形成一個完整的裝入模塊,以后不再拆開的鏈接方---式;

b. 裝入時動態鏈接是指目標模塊在裝入內存時,邊裝入邊鏈接的鏈接方式;

c. 運行時的動態鏈接是將某些目標模塊的鏈接推遲到執行時才進行.


3. 在進行程序鏈接時,應完成哪些工作?

a. 對相對地址進行修改;?

b. 變換外部調用符號.


4. 在動態分區分配方式中,可利用哪些分區分配算法?

a. 首次適應算法;?

b. 循環首次適應算法;?

c. 最佳適應算法.


5. 在動態分區分配方式中,應如何將各空閑分區鏈接成空閑分區鏈?

應在每個分區的起始地址部分,設置一些用于控制分區分配的信息,以及用于鏈接各分區的前向指針;在分區尾部則設置一后向指針,通過前,后向指針將所有的分區鏈接成一個雙向鏈.


6. 為什么要引入動態重定位?如何實現?

a. 為了在程序執行過程中,每當訪問指令或數據時,將要訪問的程序或數據的邏輯地址轉換成物理地址,引入了動態重定位.?

b. 可在系統中增加一個重定位寄存器,用它來裝入(存放)程序在內存中的起始地址,程序在執行時,真-正訪問的內存地址是相對地址與重定位寄存器中的地址相加而形成的,從而實現動態重定位.


7. 在采用首次適應算法回收內存時,可能出現哪幾種情況?應怎樣處理這些情況?

a. 回收區與插入點的前一個分區相鄰接,此時可將回收區與插入點的前一分區合并,不再為回收分區分配新表項,而只修改前鄰接分區的大小;

b. 回收分區與插入點的后一分區相鄰接,此時合并兩區,然后用回收區的首址作為新空閑區的首址,大-小為兩者之和;

c. 回收區同時與插入點的前后兩個分區鄰接,此時將三個分區合并,使用前鄰接分區的首址,大小為三區之和,取消后鄰接分區的表項;

d. 回收區沒有鄰接空閑分區,則應為回收區單獨建立一個新表項,填寫回收區的首址和大小,并根據其首址,插入到空閑鏈中的適當位置.


8. 在系統中引入對換后帶有哪些好處?

能將內存中暫時不運行的進程或暫時不用的程序和數據,換到外存上,以騰出足夠的內存空間,把已具備運行條件的進程或進程所需的程序和數據換入內存,從而大大地提高了內存的利用率.


9.為實現對換,系統應具備哪幾方面功能?

a. 對對換空間的管理;?

b. 進程的換出;?

c. 進程的換入.


10.在以進程為單位進行對換時,每次是否都將整個進程換出?為什么?

a. 以進程為單位進行對換時,每次都將整個進程換出;?

b. 目的為了解決內存緊張的問題,提高內存的利用率.


11.請較詳細地說明,引入分段存儲管理是為了滿足用戶哪幾方面的需要?

a. 方便了編程;?

b. 實現了分段共享;?

c. 實現了分段保護;?

d. 實現了動態鏈接;?

e. 實現了動態增長;


12.在具有快表的段頁式存儲管理方式中,如何實現地址變換?

首先,必須配置一段表寄存器,在其中存放段表始址和段長TL. 進行地址變換時,先利用段號S,與段長TL進行比較,若STL,表示未越界,(若S=TL,表示段號太大,訪問越界,產生越界中斷信號)于是利用段表始址和段號來求出該段對應的段表項在段表中的位置,從中求出該段的頁表始址,并利用邏輯地址中的段內頁號P來獲得對應頁的頁表項位置,從中讀出該頁所在的物理塊號b,再用塊號b和頁內地址構成物理地址.


13.為什么說分段系統較之分頁系統更易于實現信息共享和保護?

a. 對于分頁系統,每個程序段是分散存儲的,一個程序段可能對應著幾個不同的頁。為了實現信息共享和保護,則頁面之間需要一一對應起來,為此需要建立大量的頁表項;

b. 而對于分段系統,每個段都從0開始編址,并采用一段連續的地址空間,這樣在實現共享和保護時.只需為所要共享和保護的程序設置一個段表項,將其中的基址與內存地址一一對應起來即可.


14.分頁和分段有何區別?

a. 分頁和分段都采用離散分配的方式,且都要通過地址映射機構來實現地址變換,這是它們的共同點;

b. 對于它們的不同點有三,第一,從功能上看,頁是信息的物理單位,分頁是為實現離散分配方式,以消減內存的外零頭,提高內存的利用率,即滿足系統管理的需要,而不是用戶的需要;而段是信息的邏輯單位,它含有一組其意義相對完整的信息,目的是為了能更好地滿足用戶的需要;

c. 頁的大小固定且由系統確定,而段的長度卻不固定,決定于用戶所編寫的程序;

d. 分頁的作業地址空間是一維的,而分段的作業地址空間是二維的.


15.試全面比較連續分配和離散分配方式.

a. 連續分配是指為一個用戶程序分配一個連續的地址空間,包括單一連續分配方式和分區式分配方式,前者將內存分為系統區和用戶區,系統區供操作系統使用,用戶區供用戶使用,是最簡單的一種存儲方式,但只能用于單用戶單任務的操作系統中;分區式分配方式分為固定分區和動態分區,固定分區是最簡單的多道程序的存儲管理方式,由于每個分區的大小固定,必然會造成存儲空間的浪費;動態分區是根據進程的實際需要,動態地為之分配連續的內存空間,常用三種分配算法: 首次適應算法FF,該法容易留下許多難以利用的小空閑分區,加大查找開銷;循環首次適應算法,該算法能使內存中的空閑分區分布均勻,但會致使缺少大的空閑分區;最佳適應算法,該算法也易留下許多難以利用的小空閑區;

b. 離散分配方式基于將一個進程直接分散地分配到許多不相鄰的分區中的思想,分為分頁式存儲管理,分段存儲管理和段頁式存儲管理. 分頁式存儲管理旨在提高內存利用率,滿足系統管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,在實現共享和保護方面優于分頁式存儲管理,而段頁式存儲管理則是將兩者結合起來,取長補短,即具有分段系統便于實現,可共享,易于保護,可動態鏈接等優點,又能像分頁系統那樣很好的解決外部碎片的問題,以及為各個分段可離散分配內存等問題,顯然是一種比較有效的存儲管理方式;c. 綜上可見,連續分配方式和離散分配方式各有各自的特點,應根據實際情況加以改進和利用.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452866.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java同名變量在list中添加兩次_快速解決List集合add元素,添加多個對象出現重復的問題...

首先我們在new 一個對象的時候,對象的id是唯一確定的;將對象add入list中時,放入list中的其實是對象的引用 ;而每次循環只是簡單的set 對象的屬性,set新的屬性值,而add進list中的對象還是同一個對象id&#…

python面試題總結(1)--語言特性

1. 談談對 Python 和其他語言的區別 答: Python 是一門強類型的可移植、可擴展、可嵌入的解釋型編程語言,屬于動態語言;其語法簡潔優美、功能強大無比、應用領域非常廣泛且具有強大完備的第三方庫。 (注:語言有無類型…

視頻網站盈利模式與營銷策劃

在與數十家視頻網站進行信息網絡傳播權交易過程中,在研究視頻網站內容和盈利模式基礎上,綜合自己在傳統媒體和新媒體領域十幾年的策劃和營銷經驗,我發現:視頻網站的盈利模式其實早就形成多種體系,但是盈利之路艱難&…

USACO 06JAN 牛的舞會 洛谷2863

題目描述 The N (2 < N < 10,000) cows are so excited: it’s prom night! They are dressed in their finest gowns, complete with corsages and new shoes. They know that tonight they will each try to perform the Round Dance. Only cows can perform the Round…

[UWP]了解模板化控件(4):TemplatePart

原文:[UWP]了解模板化控件(4)&#xff1a;TemplatePart1. TemplatePart TemplatePart&#xff08;部件&#xff09;是指ControlTemplate中的命名元素。控件邏輯預期這些部分存在于ControlTemplate中&#xff0c;并且使用protected DependencyObject GetTemplateChild(String ch…

動態重定位的增加的緊湊功能

動態重定位增加了緊湊的功能&#xff0c;在動態的分區分配時&#xff0c;可以對外部碎片進行緊湊來為沒有內存空間進行存儲的進程進行分配。

java 重載 equals_實現Student類的equals重載函數

[java]代碼庫//測試類public class StudentDemo {public static void main(String[] args) {Student s1 new Student("000","張三",18);Student s2 new Student("000","張三",18);//隨便改boolean flag s1.equals(s2);System.out.p…

python面試題總結(2)--編碼規范

1. 什么是 PEP8? 答&#xff1a;PEP8 --《Python Enhancement Proposal #8》&#xff08;8 號 Python 增強提案&#xff09;&#xff0c;他針對的 Python 代碼格式而編訂的風格指南。 2. 了解 Python 之禪么&#xff1f; 答&#xff1a;通過 import this 語句可以獲取其具體…

【Unity熱更新】學會AssetsBundle打包、加載、卸載

本教程詳細講解什么是AssetBundle壓縮包機制!然后構建 AssetBundle、加載 AssetBundle 以及卸載 AssetBundle 的簡要教程。這一個流程就是熱更新! AssetBundles 簡介 1.什么是AssetBundles? AssetBundles是Unity中一種用于打包和存儲資源(如模型、紋理、聲音等)的文件格…

Confluence 6 訪問你的宏正文(body)

請查看 Writing User Macros 頁面獲得有關如何寫用戶宏的介紹。 這個頁面介紹你可以在用戶宏中可以使用的的代碼信息。 訪問你的宏正文&#xff08;body&#xff09; 在你用戶宏模板中的 $body 對象可以訪問訪問到傳遞到你宏正文中的內容。 當你的宏有指定的正文的時候&#xf…

hibernate主鍵生成策略

1、hibernate 要求實體類里面有一個屬性作為唯一值&#xff0c;對應的表字段是主鍵&#xff0c;主鍵可以不同的生成策略 2、hibernate 主鍵生成策略有很多的值 <generator class"native"></generator> 3、在class屬性里面有很多值 &#xff08;1&#xf…

jboss mysql cluster_jboss配置mysql數據庫連接池

jboss配置mysql數據庫連接池下面YJBYS小編為大家整理了關于jboss配置mysql數據庫連接池的文章&#xff0c;希望對你有所幫助。更多Java認證考試信息&#xff0c;盡在應屆畢業生培訓網!1&#xff1a;配置&#xff1a;JDK 1.5JBoss4.0.4Mysql5.0Myeclipse 4.12&#xff1a;建立數…

P2P-挑戰和機遇

近年來互聯網上對等連接P2P應用發展迅速&#xff0c;MP3和視頻文件共享下載的P2P流已經成為寬帶用戶流量的主體。基于P2P的即時通信和互聯網電話&#xff08;如Skype&#xff09;發展迅速&#xff0c;對等廣播P2P流媒體等正在興起。P2P協同計算和網格方興未艾。P2P 應用支持網絡…

python面試題總結(3)-- 數據類型(字符串)

1. 列舉 Python 中的基本數據類型&#xff1f; 答&#xff1a; Python3 中有六個標準的數據類型&#xff1a;數字&#xff08;Number&#xff09;、字符串&#xff08;String&#xff09;、列表&#xff08;List&#xff09;、元組&#xff08;Tuple&#xff09;、集合&#…

網頁中JS函數自動執行常用三種方法

&#xff08;1&#xff09;最簡單的調用方式&#xff0c;直接寫到html的body標簽里面&#xff1a; <body οnlοad"myFunction()"></body> <script type"text/javascript"> function myFunction(){ …

Jetty - Container源碼分析

1. 描述 Container提供管理bean的能力。 基于Jetty-9.4.8.v20171121。 1.1 API public interface Container {// 增加一個bean&#xff0c;如果bean是一個Container.Listener則隱含調用addEventListener(Container.Listener)方法// Container.Listener只關心兩個事件&#xff1…

Ubuntu中安裝FastDFS

1 安裝fastdfs依賴包 解壓縮libfastcommon-master.zip進入到libfastcommon-master的目錄中執行 ./make.sh執行 sudo ./make.sh install 2 安裝fastdfs 解壓縮fastdfs-master.zip進入到 fastdfs-master目錄中執行 ./make.sh執行 sudo ./make.sh install 3 配置跟蹤服務器tra…

python基本語句及其意思_Python語法基礎(1),一

一、Python的對象模型對象是Python語言中最基本的概率&#xff0c;在Python中處理的一切都是對象。Python中許多內置對象可提供編程者使用&#xff0c;內置對象可直接使用&#xff0c;如數字、字符串、列表 、del等&#xff1b;非內置對象需要導入模塊才能使用&#xff0c;如正…

什么是隧道技術

隧道技術是一種通過互聯網絡基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據可以是不同協議的數據幀或包&#xff0c;隧道協議將這些其它協議的數據幀或包重新封裝在新的包頭中發送&#xff0c;被封裝的數據包在隧道的兩個端點之間通過公共互聯網絡進行路由&#xff0c;…