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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统基本分段存储管理方式

發布時間:2025/4/5 windows 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统基本分段存储管理方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、分段存儲管理方式的引入

---- 引入分段存儲管理方式,主要是為了滿足用戶和程序員的下述一系列需要:

1)方便編程

通常,用戶把自己的作業按照邏輯關系劃分為若干個段,每個段都是從0開始編址,并有自己的名字長度

因此,希望要訪問的邏輯地址是由段名(段號)和段內偏移量(段內地址)決定的。

2)信息共享

在實現對程序和數據的共享時,是以信息的邏輯單位為基礎的。比如共享某個例程和函數,分頁系統中的“頁”只是存放信息的物理單位(塊),

并無完整的意義,不便于實現共享,然而段卻是信息的邏輯單位

3)信息保護

信息保護同樣是對信息的邏輯單位進行保護,因此,分段管理方式能更有效和方便的實現信息保護功能。

4)動態增長

在實際應用中,往往有些段,特別是數據段,在使用過程中會不斷地增長,而事先又無法確切地知道數據段會增長到多大。前面的幾種存儲

管理方式都難以應付這種動態增長的情況,分段存儲管理方式能較好的解決這一問題。

5)動態鏈接

動態鏈接是指在作業運行之前,并不把幾個目標程序段鏈接起來。要運行時,先將主程序所對應的目標程序裝入內存并啟動運行,當運行過程

中又需要調用某段時,才將該段(目標程序)調入內存并進行鏈接。可見,動態鏈接也要求以段作為管理的單位。

?

2、分段和段表

---- 在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段?定義了一組邏輯信息。每個段都有自己的名字,通常可用一個段號

代替段名每個段都從0開始編址,并采用一段連續的地址空間。段的長度由相應的邏輯信息組的長度決定,因而各段長度不等。整個作業的

地址空間分成多個段,是二維的

---- 在動態分區(可變分區)分配方式中,系統為整個進程分配一個連續的內存空間。而在分段式存儲管理系統中,則是為每個分段分配一個

連續的分區,而進程中的各個段可以離散地裝入內存中不同的分區中。為使程序能正常運行,即能從物理內存中找出每個邏輯段所對應的位置,

應像分頁系統那樣,在系統中為每個進程建立一張段映射表,簡稱“段表”。

---- 每個段在表中占有一個表項,其中記錄了該段在內存中的起始地址(“基址”)和段長(字節)。段表一般放在內存中。在配置了段表后,

執行中的進程可通過查找段表找到每個段所對應的內存區。可見,段表是用于實現從邏輯段物理內存區的映射。

?

3、地址變換機構

---- 為了實現從進程的邏輯地址到物理地址的變換功能,在系統中設置了段表寄存器,用于存放段表始址?段表長度TL。在進行地址變換時,

系統將邏輯地址中的段號S(0~TL-1)段表長度TL進行比較。--? 若S>=TL,表示段號太大,是訪問越界,于是產生越界中斷信號;

---- ?若未越界,則根據段表的始址和該段的段號,計算出該段對應段表項的位置(段表的始址+段號x段表項的長度),從中讀出該段在內存的

起始地址,然后再檢查段內地址d是否超過該段的段長SL。若超過,即d>SL,同樣發出越界中斷信號;若未越界,則將該段的基址段內地址d

相加,即可得到要訪問的內存物理地址

---- 像分頁系統一樣,當段表放在內存中時,每當要訪問一個數據,都需訪問兩次內存(第一次是得到物理地址,第二次是從地址中取數據),

從而極大地降低了計算機的速率。解決方法是再增設一個聯想存儲器(TLB),用于保存最近常用的段表項。一般情況下是段比頁大,因而

段表項的數目比頁表項的數目少,需要的TLB也相對較小,可以顯著的減少存取數據的時間。

?

4、分頁和分段的主要區別

---- 分頁和分段系統都采用離散分配方式,且都要通過地址映射機構來實現地址變換。但在概念上兩者完全不同,主要表現在3個方面:

-- 1)頁是信息的物理單位,分頁是為實現離散分配方式,消減外部碎片,提高內存的利用率。分頁僅僅是由于系統管理的需要而不是用戶的需要。

段則是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了更好的滿足用戶的需要。

-- 2)頁的大小固定且由系統決定,由系統把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬件實現的,因而在系統中只能有一種大小的頁面;

段的長度不固定,決定于用戶所編寫的程序,通常由編譯程序在對源程序進行編譯時,根據信息的性質來劃分。

-- 3)分頁的作業地址空間是一維的,即單一的線性地址空間,程序員只需利用一個記憶符,即可表示一個地址;而分段的作業地址空間是二維的

程序員在標識一個地址時,既需給出段名,又需給出段內地址

?

5、信息共享

---- 段的共享:即允許若干個進程共享一個或多個分段。

----?可重入代碼(Reentrant Code)又稱為“純代碼”(Pure Code),是一種允許多個進程同時訪問的代碼。為使各個進程所執行的代碼完全相同,

絕對不允許可重入代碼在執行中有任何改變。因此,可重入代碼是一種不允許任何進程對它進行修改的代碼

---- 但事實上,大多數代碼在執行時都可能有些改變,例如,用于控制程序執行次數的變量以及指針、信號量及數組等。為此,在每個進程中,都必

須配以局部數據區,把在執行中可能改變的部分拷貝到該數據區,這樣,程序在執行時,只需對該數據區(屬于該進程私有)中的內容進行修改,并

不去改變共享的代碼,這時的可共享代碼即成為可重入碼。

?

轉自:http://blog.csdn.net/dongyanxia1000/article/details/51787275

總結

以上是生活随笔為你收集整理的操作系统基本分段存储管理方式的全部內容,希望文章能夠幫你解決所遇到的問題。

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