Bài báo cáo Cơ sở hệ điều hành đề tài "Quản lí bộ nhớ" | Đại học Xây dựng Hà Nội
Bài báo cáo Cơ sở hệ điều hành đề tài "Quản lí bộ nhớ" của Đại học Xây dựng Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!
Preview text:
TRƯỜNG ĐẠI HỌC XÂY DỰNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CƠ SỞ HỆ ĐIỀU HÀNH
CHỦ ĐỀ: QUẢN LÍ BỘ NHỚ
NGƯỜI THỰC HIỆN: NHÓM 3-67IT4
QUẢN LÍ BỘ NHỚ
PHẦN 1: CÁC KHÁI NIỆM CHÍNH ....................................................................................................... 3
1. MỞ BẢI ............................................................................................................................................... 3
2. CÁC KHÁI NIỆM CHÍNH................................................................................................................ 3
PHẦN 2: CÁC KIỂU ĐỊA CHỈ NHỚ ....................................................................................................... 3
1. CÁC KIỂU ĐỊA CHỈ NHỚ ............................................................................................................... 3
2. NẠP CHƯƠNG TRÌNH VÀO BỘ NHỚ .......................................................................................... 4
3. CƠ CHẾ LINKING ............................................................................................................................ 4
PHẦN 3: CHUYỂN ĐỔI ĐỊA CHỈ NHỚ ................................................................................................. 4
1. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ ......................................................................................................... 4
2. MEMORY MANAGEMENT(MMU) ............................................................................................... 6
3. DYNAMIC LINKING ........................................................................................................................ 6
4. DYNAMIC LOADING ...................................................................................................................... 7
5. MÔ HÌNH QUẢN LÍ BỘ NHỚ THỰC ............................................................................................ 7
PHẦN 4: CẤP PHÁT BỘ NHỚ LIÊN TỤC ............................................................................................ 7
- Ý tưởng: .............................................................................................................................................. 7
1. HIỆN TƯỢNG PHÂN MẢNH BỘ NHỚ ......................................................................................... 7
3. CHIẾN LƯỢC PLACEMENT .......................................................................................................... 9
4. DYNAMIC PARTITION ................................................................................................................. 11
5. ĐỀ RA CHIẾN LƯỢC PHÁT TRIỂN HỢP LÍ ............................................................................ 12
6. TÁI ĐỊNH VỊ CÁC TIẾN TRÌNH .................................................................................................. 12
7. KĨ THUẬT HOÁN VỊ (SWAPPING) ............................................................................................. 13
8. KĨ THUẬT PHỦ LẤP (OVERLAY) .............................................................................................. 13
PHẦN 5: CẤP PHÁT BỘ NHỚ KHÔNG LIÊN TỤC .......................................................................... 14
Ý tưởng: ........................................................................................................................................... 14
1. PHƯƠNG PHÁP PHÂN TRANG(PAGING) ................................................................................ 14
2. MÔ HÌNH CHUYỂN ĐỔI ĐỊA CHỈ .............................................................................................. 14
3. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ TRONG TRANG ........................................................................ 15
4. CÀI ĐẶT BẢNG TRANG(PAGE TABLE) ................................................................................... 16
5. BẢO VỆ VÙNG NHỚ ...................................................................................................................... 16
VÍ DỤ PHÂN TRANG 2 CẤP ............................................................................................................. 17
6. BẢNG TRANG NGHỊCH ĐẢO .......................................................................................................... 18
GIẢI THUẬT TÌM TRANG ............................................................................................................... 19
CHIA SẺ ................................................................................................................................................ 19
PHÂN ĐOẠN ........................................................................................................................................ 19
CHUYỂN ĐỔI ĐỊA CHỈ...................................................................................................................... 20
KIẾN TRÚC PHÂN ĐOẠN ................................................................................................................. 22
CHIA SẺ CÁC ĐOẠN ......................................................................................................................... 23
KẾT HỢP PHÂN TRANG VÀ PHÂN ĐOẠN ................................................................................... 23
CHUYỂN ĐỔI ĐỊA CHỈ...................................................................................................................... 24
PHẦN 1: CÁC KHÁI NIỆM CHÍNH 1. MỞ BẢI
- Chương trình phải được mang vào trong bộ nhớ và đặt nó trong một tiến trình để được xử lí - Vấn đề: Khi nạp vào đâu? Nạp vào đâu? Nạp phần nào?
- Quản lí bộ nhớ giúp tối ưu hoá hoạt động của bộ nhớ
Tối ưu hoá số tiến trình cùng lúc ở trong bộ nhớ chính nhằm nâng cao tính đa chương trình
Tận dụng tối đa bộ nhớ máy tính
2. CÁC KHÁI NIỆM CHÍNH
- Quản lí bộ nhớ:
Quản lí bộ nhớ là công việc của hệ điều hành vơi sự hỗ trợ của phần cứng nhằm phân phối,
sắp xếp các process trong bộ nhớ sao cho hiệu quả tối ưu
Mục tiêu cần đạt là nạp càng nhiều process vào bộ nhớ càng tốt(gia tăng tính đa chương trình)
Trong hầu hết hệ thống, Kernel sẽ chiếm một phần cố định của bộ nhớ, phần còn lại phân
phối cho các process - Layout của bộ nhớ:
- Các yêu cầu đối với việc quản lí bộ nhớ:
Cấp phát bộ nhớ cho các process
Tái định vị(relocation): khi swapping…
Bảo vệ: phải kiểm tra truy xuất bộ nhớ có hợp lệ không
Chia sẻ: cho phép các process chia sẻ vùng nhớ chung
Kết gắn địa chỉ nhớ luận lí(logic) của user vào địa chỉ thực thi(vật lí)
- Bộ nhớ: là một dãy các ô nhớ liên tục nhau mỗi ô nhớ (một word) có một địa chỉ
- Chương trình: tập các câu lệnh (chỉ thị máy) + dữ liệu
- Nạp chương trình vào bộ nhớ => đặt các chỉ thị và dữ liệu vào các ô nhớ => xác định ánh xạ giữa
các chỉ thị, dữ liệu vào địa chỉ ô nhớ
PHẦN 2: CÁC KIỂU ĐỊA CHỈ NHỚ
1. CÁC KIỂU ĐỊA CHỈ NHỚ
- Địa chỉ vật lí: Địa chỉ vật lí (physical address – địa chỉ thực, địa chỉ tuyệt đối) là một vị trí thực trong bộ nhớ chính.
- Địa chỉ logic: Địa chỉ logic (logical address – địa chỉ luận lí) là tham chiếu đến một vị trí nhớ độc
lập với cấu trúc và tổ chucs vật lí cùa bộ nhớ.
- Địa chỉ tương đối: Địa chỉ tương đối (relative address) là một kiểu địa chỉ logic trong đó các địa
chỉ được biểu diễn tương đối so với một điểm xác định nào đó trong chương trình.
- Fact: Khi lệnh được thực thi, các tham chiếu đến địa chỉ logic phải được dịch sang địa chỉ vật lí.
Thao tác này cần sự hỗ trợ của phần cứng để đạt hiệu suất cao.
2. NẠP CHƯƠNG TRÌNH VÀO BỘ NHỚ
- Bộ linker: kêt hợp các object module thành một file nhị phân có khả năng thực thi gọi là load module
- Bộ loader: nạp load module vào bộ nhớ: 3. CƠ CHẾ LINKING
PHẦN 3: CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
1. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
- Chuyển đổi địa chỉ: quá trính ánh xạ địa chỉ từ không gian địa chỉ này sang không gian địa chỉ khác.
- Biểu diễn địa chỉ nhớ:
Trong source code: tượng trưng (symbolic – biến, hằng, pointer,….)
Thời điểm biên dịch: các địa chỉ có thể tái định vị (relocation address) hay địa chỉ tương đối(relative address)
Ví dụ: biến a ở vị trí 14 bytes so với phần header của module
Thời điểm linking/loading: địa chỉ tuyệt đối.
Ví dụ: địa chỉ nằm tại địa chỉ bộ nhớ thực: 2030.
- Việc ánh xạ chỉ thị, dữ liệu vào địa chỉ bộ nhớ có thể xảy ra tại 3 thời điểm:
Thời điểm biên dịch: nếu biết trước địa chỉ bộ nhớ của chương trình thì có thể kết gán lại
địa chỉ tuyệt dối lúc biên dịch. Nếu địa chỉ bắt dầu của vùng nhớ bị thay đổi thì sẽ phải biên dịch lại.
Thời điẻm nap: vào thời điểm loading, loader phải chuyển đổi địa chỉ khả tái định bị thành
địa chỉ thực dựa trên một địa chỉ nền. Thời điẻm thi hành:
• Khi trong qusan trình thực thi, process có thể được di chuyển từ segment
này thành segment khác trong bộ nhớ thì quá trình chuyển đổi địa chỉ
được trì hoãn đến thời điểm thực thi.
• Cần phải có hỗ trợ từ phần cứng để ánh xạ địa chỉ o Ví dụ: thanh ghi cơ
sở và thanh ghi giới hạn(base registers, limit registers).
• Sử dụng trong đa số các OS đa dụng trong đó cso các cơ chế swapping, passing, segmentation
if(địa chỉ logic) < (giá trị thanh ghi giới hạn) then (địa
chỉ vật lí) = (giá trị thanh ghi nền) + (địa chỉ logic) else báo lỗi
- Trong khi thực thi:
Địa chỉ dược chuyển đổi động trong khi thực thi
Không gian địa chỉ vật lí có thể không liên tục(nocontigunous)
Cần có phần cứng để chuyển đổi địa chỉ logic sang địa chỉ vật lí được nhanh.
2. MEMORY MANAGEMENT(MMU)
- Là một cơ chế phần cứng để ánh xạ địa chỉ logic thành địa chỉ vật lí vào thời điểm xử lí
- Trong mô hình MMU, mỗi địa chỉ phát sinh bởi một tiến trình được cộng thêm giá trị của thanh
ghi tái định vị (relocation register) tại thời điểm nó truy xuất đến bộ nhớ
- Chương trình người dùng chỉ quan tâm đến địa chỉ logic, nó không thấy địa chỉ vật lí thật sự 3. DYNAMIC LINKING
- Quá trình link một số module ngoài (external module) đuọc thực hiện sau khi tạo xong load module
- Trong windows: module ngoài là các file dll, trong Unix là các file.so (shared library)
- Load module chỉ chứa các tham chiếu đến các module ngoài. Các tham chiếu này có thể chuyển
đổi trong thời điểm sau:
Loading time(load time dynamic linking)
Run time: khi có mọt lời gọi đến thủ tục được định nghĩa trong module ngoài (run time dynamic linking)
- OS chịu trách nhiệm tìm các module ngoài và kết nối vào loadmodule( kiểm tra xem module
ngoài đã load vào bộ nhớ chưa) - Ưu điểm:
Module ngoài là một thư viện, thủ tục cung cấp các tiện ích của OS. Các chương trình thực
thi có thể dùng các phiên bản khác nhau của module ngoài mà không cần sửa đổi, biên dịch lại
Chia sẻ: một module ngoài chỉ cần nạp vào bộ nhớ một lần. Các process cần dùng module
ngoài này thì cùng chia sẻ đoạn mã của module ngoài đó.
Phương pháp dynamic linking cần có sự hỗ trợ của OS trong việc kiểm tra xem thủ tục nào
có thể chia sẻ giữa các process hay mọt phần mã của riêng process 4. DYNAMIC LOADING
- Cơ chế: chỉ khi nào được gọi đến thì một thủ tục mơi được nạp vào bộ nhớ chính tăng độ hiệu
dụng của bộ nhớ (memory utililzation) bởi vì các thủ tục ít dùng sẽ không chiếm chỗ trong
- Rất hiệu quả trong trường hợp tồn tại khối lượng lớn mã chương trình có tần suất sử dụng thấp,
không sử dụng thường xuyên.
- Không cần sự hỗ trợ tử OS
- User có trách nhiệm thiết kế và thực hiện các chương trình có dynamic loading
- OS cung cấp các thư viện hỗ trợ, tạo điều kiện cho các programmer
5. MÔ HÌNH QUẢN LÍ BỘ NHỚ THỰC
- Các cơ chế quản lí bộ nhớ thực sau đây rất ít(hầu như là không) dược dùng trong các hệ thống
hiện đại, tuy nhiên, nó là ý tưởng cơ bản cho mô hình quản lí bộ nhớ ảo sau này
Phân chia cố định(fix partition)
Phân chia động(dynamic partition)
Phân trang đơn giản(simple paging)
Phân đoạn đơn giản (simple segmentation)
- Mô hình này không bao gồm bộ nhớ ảo, chỉ duy nhất bộ nhớ thực
PHẦN 4: CẤP PHÁT BỘ NHỚ LIÊN TỤC - Ý tưởng:
Mỗi tiến trình được nạp vào một vùng nhớ liên tục đủ lớn để chứa toàn bộ tiến trình
Ưu điểm: việc chuyển đổi địa chỉ logic thành địa chỉ vật lí và ngược lại chỉ cần dựa vào một công thức đơn giản
= <địa chỉ bắt đầu> + <địa chỉ logic>
Nhược điểm: cấp phát liên tục có nhược điểm lớn nhất là không sử dụng hiệu quả bộ nhơ
do hiện tượng phân mảnh bộ nhớ
1. HIỆN TƯỢNG PHÂN MẢNH BỘ NHỚ
- Không thể nạp được một tiến trình nào đó do không có một vùng nhớ trống liên tục đủ lớn trong
khi tổng kích thước các vùng nhớ trống đủ để thoả mãn yêu cầu
- Phân mảnh ngoại(external fragmentation)
Vùng nhớ còn trống đủ lớn để thoả mãn một yêu cầu cấp phát, nhưng lại không liên tục
Dùng hết khối(compacting), nếu có thể, để gom lại thành một vùng nhớ liên tục
- Phân mảnh nội(internal fragmentation)
Vùng nhớ được cấp phát lớn hơn vùng nhớ yêu cầu
Thường xảy ra khi bộ nhớ thực được chia thành các khói kích thước cố định (fixed-size
block) và các process được cấp phát theo đơn vị khối 2. FIXED PARTITION
- Chia bộ nhớ thành nhiều partition có kích thước bằng nhau hoặc khác nhau
- Process nào có kích thước nhỏ hơn hoặc bằng kích thước của partition thì được nạp vào partition đó
- Nếu chương trình có kích thước lớn hơn partition thì phải dùng cơ chế overlay
- Nhận xét: dễ bị phân mảnh nội => không hiệu quả
3. CHIẾN LƯỢC PLACEMENT
- Partition có kích thước bằng nhau:
Còn một partition trống => process được nạp vào partition đó
Không còn partition trống nhưng trong đó process đang bị blocked => swap process đó ra
bộ nhớ phụ nhường chỗ cho process mới - Partition có kích thước khác nhau:
Gán mỗi process vào partition có kich thước nhỏ nhất, phù hợp với nó
Có hàng đợi cho mỗi partition
Giảm thiểu phân mảnh nội
Vấn để: có thể có hàng đợi full, một số hàng đợi emty
- Partition có kích thước không bằng nhau:
Chỉ có một số hàng đợi chung chó các partition
Khi cần nạp process vào bộ nhớ => chọn partition có bộ nhớ còn trống nhỏ nhất 4. DYNAMIC PARTITION
- Số lượng partition không cố định và partition có thể có kích thước khác nhau
- Mỗi process được cấp phát chính xác dung lượng bộ nhớ cần thiết
- Gây ra hiện tượng phân mảnh ngoại
5. ĐỀ RA CHIẾN LƯỢC PHÁT TRIỂN HỢP LÍ
- Dùng để quyết định cấp phát khối bộ nhớ nào còn trống cho process - Chiến lược Placement:
Best-fit: chọn khối nhớ trống nhỏ nhất vừa đru để cấp phát
First-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ đầu bộ nhớ
Next-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ vị trí cấp phát cuối cùng
Worst-fit: chọn khối nhớ trống lớn nhất
- Chọn vùng nhớ trống nào để cấp phát cho một tiến trình khi có nhu cầu:
First-fit: cấp phát vùng nhớ trống liên tục đầu tiên đủ lớn
Best-fit: cấp phát vùng nhớ trống liên tục nhỏ nhất đủ lớn. Chiến lược này tạo ra lỗ trống
nhỏ nhất còn thừa lại => phải tìm kiểm trên toàn bộ danh sách các vùng trống
Next-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ vị trí cấp phát cuối cùng
Worst-fit: cấp phát vùng nhớ trống liên tục lớn nhất đủ lớn => phải tìm kiếm trên toàn bộ danh sách .
- First-fit tốt hơn về tốc độ và Best-fit tối ưu hoá việc sử dụng bộ nhớ
6. TÁI ĐỊNH VỊ CÁC TIẾN TRÌNH
- Kết hợp các mảnh bộ nhớ trống nhỏ rời rạc thành một vùng nhớ trống lơn liên tục
- Đòi hỏi nhiều thời gian xử lí, ngoài ra sự kết buộc địa chỉ phải thực hiện vào thời điểm xử lí các
tiến trình có thể bị di chuyển trong quá trình dồn bộ nhớ
7. KĨ THUẬT HOÁN VỊ (SWAPPING)
- Cơ chế: một process có thể tạm thời bị swap ra khỏi bộ nhớ chính và lưu trên một hệ thống lưu
trữ phụ. Sau đó, process có thể được nạp lại vào bộ nhớ để tiếp tục quá trình thực thi - Chính sách: Round Robin
Roll out, Roll in: dùng theo độ ưu tiên(process có độ ưu tiên thấp bị swap out ra thay thế
cho process có độ ưu tiên cao hơn)
- Hiện nay, ít hệ thống sử dụng cơ chế swapping trên
8. KĨ THUẬT PHỦ LẤP (OVERLAY)
- Cơ chế: chia chương trình( process) thành nhiều phần nhỏ hơn bộ nhớ, mỗi phần là mọt overlay.
Tại mỗi thời điểm, chỉ giữ lại trong bộ nhớ những lệnh hoặc dữ liệu cần thiết, giải phóng các
lệnh/dữ liệu chưa hoặc không cần dùng đến
- Cơ chế này rất hữu ích khi kích thước một process lớn hơn không gian bộ nhớ cấp cho process đó
- Cơ chế này được điều khiển bởi người sử dụng(thông qua sự hỗ trợ của các thư viện lập trình)
chứ không cần sự hỗ trợ của hệ điều hành
PHẦN 5: CẤP PHÁT BỘ NHỚ KHÔNG LIÊN TỤC Ý tưởng :
chia các vùng nhớ thành các frame(segment), các tiến trình thành các fragment(pages). Các
fragment(pages) sẽ được đưa vào các frame(segment). Các frame(segment) sẽ không được lưu trữ
liên tục trên không gian vùng nhớ - Các kĩ thuật: Phân trang(paging) Phân đoạn(segment)
Phân trang kết hợp phân đoạn
1. PHƯƠNG PHÁP PHÂN TRANG(PAGING)
- Không gian địa chỉ logic của mọt tiến trình có thể không liên tục
- Chia bộ nhớ vật lí thành các khối có kích thước cố định gọi làg khung(frame) kích thước là số mũ
của 2, từ 512 đến 8192 bytes)
- Chia bộ nhớ logic thành các khối có cùng kích thước và gọi là trang (pages)
- Lưu trạng thái của tất cả khung(frame)
- Để chạy một chương trình có kích thước n trang, cần phải tìm n khung trống và nạp chương trình vào
- Tạo mọt bảng trang để chuyển đổi địa chỉ logic sang địa chỉ vật lí
- Có hiện tượng phân mảnh bộ nhớ nội vi
2. MÔ HÌNH CHUYỂN ĐỔI ĐỊA CHỈ
- Địa chỉ được tạo bỏi CPU gồm có hai phần:
Số hiệu trang(Page number)(p) được dùng như là một chỉ số của một bảng trang chứa địa
chỉ cơ sở của mỗi trang trong bộ nhớ vật lí
Địa chỉ tương đối trong trang(Page offset)(d) kết hợp với địa chỉ cơ sở để định ra không
gian địa chỉ vật lí được gởi đến bộ nhớ
Nếu kích thước của không gian địa chỉ ảo là , và kích thước của trang là thì:
3. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ TRONG TRANG
4. CÀI ĐẶT BẢNG TRANG(PAGE TABLE)
- Bảng trang được cài đặt trong bộ nhớ
- Page-table base register (PTBR) chỉ biết đến trang
- Page-table length register (PRLR) cho biết kích thước của bảng trang - Mọi sự truy cập chỉ
thị/dữ liệu đều đòi hỏi hai lần truy cập vùng nhớ : Truy cập bảng trang
Chỉ thị hoặc dữ liệu » Chậm
- Khắc phục vấn đề hai lần truy cập vùng nhớ bằng cách sử dụng một vùng đệm phần cứng tra cứu
nhanh đặc biệt(special fast-lookup hardware) gọi là associative registers hoặc translation lookaside buffers(TLBs)
- TRANSLATION LOOK-ASIDE BUFFERS
TLB tìm kiếm truy xuất dữ liệu với tốc độ cực nhanh - Ánh xạ page number:
Nếu page number có trong TLB(hit) => lấy được frame number => tiết kiệm bộ nhớ để lấy
frame number từ bảng phân trang
Ngược lại, phải lấy page number từ bẳng phân trang như bình thường
5. BẢO VỆ VÙNG NHỚ
- Làm sao biết trang nào của tiến trình nào? Cần bảo vệ các tiến trình truy xuất vào trang không phải của mình
- Việc bảo vệ vùng nhớ được cài đặt bằng cách liên kết một khung với một bit, gọi là bit kiểm tra
hợp lệ (valid-invalid bit)
- Valid-invalid bit được đính kèm vào mỗi ô trong bảng trang:
“Valid” chỉ ra rằng trang đi kèm là nằm trong không gian địa chỉ logic của tiến trình vì vậy
truy xuất trang này là hợp lệ
“Invalid” chỉ ra rằng trang đi kèm không nằm trong không gian địa chỉ logic của tiến trình
VÍ DỤ PHÂN TRANG 2 CẤP
- Một địa chỉ logic được chia thành: Page number: 20 bit Page offset: 12 bit
- Bởi vì bảng trang được phân trang, số trang tiếp tục được phân chia thành: Page number: 10 bit Page offset: 10bit
- Địa chỉ logic sẽ có cấu trúc như sau:
- Chuyển đổi địa chỉ:
- Nếu chỉ dùng một trang
Bảng trang sẽ có phần tử -
Nếu dùng phân cấp trang 2 cấp :
Bảng trang ngoài cần phần tử
Bảng trang trong có phần tử nhung có thể được đặt ở vùng nhớ phụ
6. BẢNG TRANG NGHỊCH ĐẢO
- Sử dụng một bảng trang duy nhất cho mọi tiến trình
- Một entry cho mỗi khung(bộ nhớ vật lí)
- Một entry bao gồm địa chỉ của khung và tiến trình sở hữu khung đó
- Giảm kích thước lưu trữ bảng trang, nhưng tăng thời gian tìm hiếm bảng trang - Dùng hash
table để tăng tốc tìm kiếm
GIẢI THUẬT TÌM TRANG
- Chỉ số được biến đổi hash value – chỉ số mục cần truy cập trong hash table. Sau đó, trong danh
sách liên kết mục, tìm phần tử chứa chỉ số trang để trích ra được chỉ số frame CHIA SẺ
- Ở cấp độ trang
- Đứng ở khía cạnh người dùng, khá bất tiện
- Ví dụ: đoạn mã nằm trên nhiều trang => phải chia sẻ tất cả các trang đó với nhau
- Đoạn mã phải nằm ở một bị trí giống nhau trong tất cả các không gian địa chỉ của tiến trình muốn chia sẻ PHÂN ĐOẠN
- Hỗ trợ quản lí bộ nhớ theo góc độ người dùng
- Một đoạn chương trình bao gồm nhiều phân đoạn(segment) - Đoạn mã
- Biến toàn cục, dữ liệu - Stack - Heap
- Thông thường, khi một chương trình được biên dịch. Trình biên dịch sẽ tự động xây dựng các segment
- Loader sẽ gán cho mỗi segment một số định danh riêng
- Không gian địa chỉ ảo là một tập các đoạn có tên và kích thước riêng
- Một địa chỉ logic gồm tên đoạn và offset bên trong đoạn đó
- Cho phép không gian địa chỉ vật lí cấp không liên tục cho các process - Địa chỉ logic =
- Bảng phân đoạn (segment): chuyển đổi địa chỉ hai chiều thành địa chỉ vật lí một chiều. Mỗi ô trong bảng gồm có:
Thanh ghi nền(base) – chứa địa chỉ vật lí bắt đầu của phân đoạn trong bộ nhớ chính
Thanh ghi giới hạn(limit) – chỉ kích thước của phân đoạn
Segment-table base register(STBR) lưu trữ địa chỉ của bảng phân đoạn trong vùng nhớ
Segment-table length register(STLR) chỉ số segment được sử dụng bỏi 1 chương trình
CHUYỂN ĐỔI ĐỊA CHỈ
- Mỗi địa chỉ ảo là một bộ
- Số liệ phân đoạn: được sử dụng như chỉ mục đến bảng phân đoạn
- Địa chỉ tương đối d: có giá trị trong khoảng từ 0 đến giới hạn chiều dài của phân đoạn. Nếu địa
chỉ tương đối hợp lệ, nó sẽ được cộng với giá trị chứa trong thanh ghi nền để phát sinh địa chỉ vật lí tương ứng
KIẾN TRÚC PHÂN ĐOẠN - Chia sẻ
- Có thể chia sẻ các phân đoạn giữa các chương trình
- Sử dụng chung chỉ số segment - Cấp phát - First-fit/Best-fit
- Có hiện tượng phân mảnh ngoại vi - Bảo vệ
- Mỗi entry thêm một bit “valid bit”. Nếu valid bit = 0 truy cập phân đoạn không hợp lệ - Hỗ trợ
phân quyền theo từng thao tác read/write/execute CHIA SẺ CÁC ĐOẠN
KẾT HỢP PHÂN TRANG VÀ PHÂN ĐOẠN Ý tưởng:
Phân trang trong mỗi phân đoạn
Bộ nhớ = nhiều phân đoạn
Phân đoạn = nhiều trang
- Giải quyết tình trạng phân mảnh ngoại vi
- Mỗi phần tử của bảng phân đoạn gồm hai thành phần:
Thanh ghi giới hạn(limit): kích thước của phân đoạn(giống với phân đoạn thuần)
Thanh ghi cơ sở(base): chứa địa chỉ của bảng trang của phân đoạn đó(khác với phân đoạn thuần)
CHUYỂN ĐỔI ĐỊA CHỈ
- Mỗi địa chỉ logic là một bộ ba:
Số hiệu phân đoạn(s): sử dụng như chỉ mục đến phần tử tương ứng trong bảng phân đoạn
Số hiệu trang(p): sử dụng như chỉ mục đến phần từ tương ứng trong bảng trang của phân đoạn
Địa chỉ tương đối trong trang (d): kết hợp với địa chỉ bắt đầu của trang để tạo ra địa chỉ vật
lí mà trình quản lí bộ nhớ sử dụng