當前位置:編程學習大全網 - 編程語言 - 段式存儲管理如何完成重定位

段式存儲管理如何完成重定位

壹個實際的程序往往是由若幹段組成的,例如壹個主程序段、若幹子程序段、若幹數據段和工作區段組成,如圖3.22所示。?每個段都具有完整的邏輯意義,因此都可以獨立編程,且給每個段壹個段名。用戶程序可以用符號形式(段名和入口)調用壹個段的功能,如圖3.21主程序中“調用[X]段入口E”。程序在編譯或匯編時再給每個段名再定義壹個段號 ,用於內存分配。每壹段都可從“0”編址,段與段之間地址不連續,但段內地址是連續的。分段式存儲管理是以段為單位進行內存分配,為此提供邏輯地址的形式如下:地址結構確定後 ,壹個作業中允許的最多 段數及每段最大長度也就確定了。例如PDP-11/45的段址結構為:段號3位,段內地址(單元號)13位,也就是說壹個作業最多8段,每段最長可達8K字節。分段式存儲管理為作業的每壹個段分配壹個連續的內存區域,用來存放該段信息。分配方法同可變分區方式類似,根據段長找出壹個可容納該段的空閑區,分割這個空閑區,壹部分用來裝入該段信息,另壹部分仍為空閑區。作業各段可裝入到不相連的幾個內存區域。如下圖3.23所示。?段式存儲管理也是采用動態重定位方式裝入作業各段的,如果作業的某段找不到足夠大的空閑區時,也可采用移動技術合並分散的空閑區。地址轉換工作在作業執行時,由地址轉換機構完成從邏輯地址到絕對地址的轉換。二、轉換和地址保護為使作業正確執行 ,首先須記下各段位置 ,為此系統設立壹個“段表”記錄作業每個段在內存中首地址和長度,如圖3.22所示。在作業執行時,每執行壹條指令,硬件的地址轉換機構按邏輯地址中的段號查段表,得到該段在內存中的起始地址和長度,起始地址加上段內地址就是要訪問的內存的絕對地址。這個絕對地址如果是在該段的存儲區域內,則可訪問;否則,產生壹個地址越界中斷。段式存儲管理地址轉換過程類似於可變分區方式,根據段表表目中的起始地址和長度可以確定該段區域,即必須滿足下列不等式:起始地址

  • 上一篇:我的世界手機版命令方塊怎麽改創造和生存模式?
  • 下一篇:精靈寶可夢XY的角色介紹
  • copyright 2024編程學習大全網