CPU chỉ có thể trao đổi thông tin với bộ nhớ
chính
Các chương trình muốn được thực thi cần được
nạp vào bộ nhớ chính, tạo lập tiến trình tương
ứng để xử lý
Các hệ thống đa chương trên bộ nhớ chính ngoài
HĐH có thể có nhiều tiến trình đang hoạt động
Kích thước bộ nhớ chính là hữu hạn nhưng yêu
cầu bộ nhớ thì vô hạn
79 trang |
Chia sẻ: lylyngoc | Lượt xem: 1631 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 3 Quản lý bộ nhớ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3
Quản lý bộ nhớ
1. TỔNG QUAN
1.1 Vì sao phải tổ chức, quản lý bộ nhớ?
CPU chỉ có thể trao đổi thông tin với bộ nhớ
chính
Các chương trình muốn được thực thi cần được
nạp vào bộ nhớ chính, tạo lập tiến trình tương
ứng để xử lý
Các hệ thống đa chương trên bộ nhớ chính ngoài
HĐH có thể có nhiều tiến trình đang hoạt động
Kích thước bộ nhớ chính là hữu hạn nhưng yêu
cầu bộ nhớ thì vô hạn
…
3
1.1 Vì sao phải tổ chức, quản lý bộ nhớ?
Như vậy, HĐH cần phải tổ chức quản lý bộ nhớ
một cách hợp lý để có thể:
Đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi
có yêu cầu, cho dù khi trên bộ nhớ không còn
không gian trống
Bảo vệ các tiến trình của hệ điều hành và các tiến
trình trên bộ nhớ, tránh các trường hợp truy xuất
bất hợp lệ xảy ra.
4
1.2 Nhiệm vụ quản lý bộ nhớ
Tái định vị
Bảo vệ bộ nhớ
Chia sẻ bộ nhớ
Tổ chức bộ nhớ logic
Tổ chức bộ nhớ vật lý
5
Tái định vị (Relocation)
Trong các hệ thống đa chương không gian bộ
nhớ chính thường được chia sẽ cho nhiều tiến
trình và yêu cầu bộ nhớ của các tiến trình luôn
lớn hơn không gian bộ nhớ vật lý mà tiến trình
mà hệ thống hiện có
Cần thực hiện cơ chế hoán đổi (Swap):
Một chương trình đang hoạt động trên bộ nhớ sẽ bị
đưa ra đĩa (swap-out) và sẽ được đưa vào lại
(swap-in) tại thời điểm thích hợp
Khi thực hiện swap-in 1 chương trình vào lại bộ
nhớ HĐH phải định vị nó đúng vào vị trí mà trước
khi nó bị swap-out
6
Bảo vệ bộ nhớ (Protection)
Mỗi tiến trình phải được bảo vệ để chống lại sự
truy xuất bất hợp lệ vô tình hay có chủ ý của các
tiến trình khác.
Mỗi tiến trình chỉ được phép truy suất đến không
gian địa chỉ mà HĐH đã cấp cho nó
Bộ phận Qlý bộ nhớ phải biết không gian địa chỉ
của tất cả các tiến trình trên bộ nhớ
Khi tiến trình đưa ra địa chỉ truy xuất bộ phận Qlý
bộ nhớ phải kiểm tra tất cả các yêu cầu truy xuất
bộ nhớ của mỗi tiến trình
7
Chia sẻ bộ nhớ (Sharing)
Bất kỳ một chiến lược nào được cài đặt đều
phải có tính mềm dẻo để cho phép nhiều tiến
trình có thể truy cập đến cùng một địa chỉ trên
bộ nhớ chính
Ví dụ, khi có nhiều tiến trình cùng thực hiện
một chương trình thì việc cho phép mỗi tiến
trình cùng truy cập đến một bản copy của
chương trình sẽ thuận lợi hơn khi cho phép
mỗi tiến trình truy cập đến một bản copy sở
hữu riêng.
8
Tổ chức bộ nhớ logic (Logical organization)
Bộ nhớ chính của hệ thống máy tính được tổ
chức như là một dòng hoặc một mảng
Không gian địa chỉ bao gồm một dãy có thứ tự
các byte hoặc các word.
Bộ nhớ phụ cũng được tổ chức tương tự
Cách tổ chức này có sự kết hợp chặt chẻ với
phần cứng máy tính nhưng lại không phù hợp với
cách xây dựng của chương trình
Đại đa số các chương trình được tổ chức thành
các modul
9
Tổ chức bộ nhớ vật lý (Physical organization)
Bộ nhớ máy tính được tổ chức theo 2 cấp:
Bộ nhớ chính: tốc độ truy xuất nhanh, nhưng giá
thành cao và dữ liệu không thể tồn tại lâu dài trên
nó.
Bộ nhớ phụ: giá rẻ, dung lượng lớn, dữ liệu được
lưu trữ lâu dài nhưng tốc độ truy xuất chậm.
Theo giản đồ 2 cấp này, việc tổ chức luồng thông
tin giữa bộ nhớ chính và bộ nhớ phụ là nhiệm vụ
quan trọng của hệ thống
10
1.3. Không gian địa chỉ và không gian
vật lý
Địa chỉ logic (logical address) – còn gọi là địa chỉ ảo ,
là tất cả các địa chỉ do bộ xử lý tạo ra.
Địa chỉ vật lý (physical address) - là địa chỉ thực tế mà
trình quản lý bộ nhớ nhìn thấy và thao tác.
Không gian địa chỉ – là tập hợp tất cả các địa chỉ ảo
phát sinh bởi một chương trình.
Không gian vật lý – là tập hợp tất cả các địa chỉ vật lý
tương ứng với các địa chỉ ảo.
Việc ánh xạ tại thời điểm thực thi từ địa chỉ ảo tới địa
chỉ vật lý được thực hiện bởi một thiết bị phần cứng
được gọi là bộ quản lý bộ nhớ MMU (memory-
management unit)
11
Sô ñoà taùi ñònh vò ñoäng (Dynamic Relocation)
CPU saûn sinh Ñòa chæ loâ-gíc
MMU thöïc hieän: Ñòa chæ loâ-gíc + Noäi dung thanh
ghi taùi ñònh vò ==> Ñòa chæ vaät lyù
12
Vò trí vaø Chöùc naêng cuûa MMU
(MMU göûi caùc ñòa chæ
vaät lyù sang Boä nhôù)
13
SÖÛ DUÏNG BASE REGISTER VAØ LIMIT REGISTER
(Soá byte cuûa Job2)
(Ñòa chæ byte
ñaàu cuûa Job2)
Memory
14
THUAÄT GIAÛI BAÛO VEÄ BOÄ NHÔÙ
(Baét loãi truy caäp sai ñòa chæ)
(CPU saûn sinh 1
ñòa chæ boä nhôù)
Job i
15
Cô cheá overlay
Taïi moãi thôøi ñieåm, chæ giöõ laïi trong boä
nhôù nhöõng leänh hoaëc döõ lieäu caàn thieát,
giaûi phoùng caùc leänh/döõ lieäu chöa hoaëc
khoâng caàn duøng ñeán.
Cô cheá naøy raát höõu duïng khi kích thöôùc
moät process lôùn hôn khoâng gian boä nhôù
caáp cho process ñoù.
Cô cheá naøy ñöôïc ñieàu khieån bôûi ngöôøi
söû duïng (thoâng qua söï hoã trôï cuûa caùc
thö vieän laäp trình) chöù khoâng caàn söï hoã
trôï cuûa heä ñieàu haønh
16
Pass 1 70K
Pass 2 80K
Symbol table 20K
Common routines 30K
Assembler
Total memory
available = 150KB
Cô cheá overlay
symbol
table
20K
common
routines
30K
overlay
driver
10K
pass 1 pass 2
80K70K
Ñôn vò: byte
naïp vaø thöïc thi
17
Cô cheá swapping
Moät process coù theå taïm thôøi bò swap ra khoûi boä
nhôù chính vaø löu treân moät heä thoáng löu tröõ phuï.
Sau ñoù, process coù theå ñöôïc naïp laïi vaøo boä nhôù
ñeå tieáp tuïc quaù trình thöïc thi.
Swapping policy: hai ví duï
Round-robin: swap out P
1
(vöøa tieâu thuï heát quantum
cuûa noù), swap in P
2
, thöïc thi P
3
,…
Roll out, roll in: duøng trong cô cheá ñònh thôøi theo ñoä
öu tieân (priority-based scheduling)
Process coù ñoä öu tieân thaáp hôn seõ bò swap out nhöôøng choã
cho process coù ñoä öu tieân cao hôn môùi ñeán ñöôïc naïp vaøo
boä nhôù ñeå thöïc thi
Hieän nay, ít heä thoáng söû duïng cô cheá swapping treân
18
Minh hoïa cô cheá swapping
19
Phaân maûnh (fragmentation)
Phaân maûnh ngoaïi (external fragmentation)
Kích thöôùc khoâng gian nhôù coøn troáng ñuû ñeå thoûa maõn moät
yeâu caàu caáp phaùt, tuy nhieân khoâng gian nhôù naøy khoâng
lieân tuïc coù theå duøng cô cheá keát khoái (compaction) ñeå
gom laïi thaønh vuøng nhôù lieân tuïc.
Phaân maûnh noäi (internal fragmentation)
Kích thöôùc vuøng nhôù ñöôïc caáp phaùt coù theå hôi lôùn hôn
vuøng nhôù yeâu caàu.
Ví duï: caáp moät khoaûng troáng 18,464 bytes cho moät
process yeâu caàu 18,462 bytes.
Hieän töôïng phaân maûnh noäi thöôøng xaûy ra khi boä nhôù thöïc
ñöôïc chia thaønh caùc khoái kích thöôùc coá ñònh (fixed-sized
block) vaø caùc process ñöôïc caáp phaùt theo ñôn vò khoái. Ví
duï: cô cheá phaân trang (paging).
20
Phaân maûnh noäi
operating
system
(used)
yeâu caàu keá tieáp laø
18,462 bytes !!!
hole kích thöôùc
18,464 bytes
caàn quaûn lyù khoaûng
troáng 2 bytes !?!
OS seõ caáp phaùt haún khoái 18,464 bytes
cho process dö ra 2 bytes khoâng duøng!
21
Phaân caáp boä nhôù
22
– Laø nguyeân taéc quan troïng cuûa heä thoáng maùy
tính.
– Thoâng tin töø RAM coù theå ñöôïc cô cheá phaàn
cöùng ñöa vaøo boä nhôù nhanh hôn goïi laø Cache.
Khi CPU caàn chính thoâng tin ñoù, khoâng caàn phaûi
truy xuaát RAM, maø laáy ngay töø Cache.
– Loaïi boä nhôù naøy khoâng do HÑH quaûn lyù vaø caáp
phaùt.
– Thöïc teá, RAM (Boä nhôù Sô caáp) laø loaïi Cache
nhanh so vôùi ñóa cöùng (Boä nhôù thöù caáp) vaø HÑH
coù chöùc naêng quaûn lyù söï löu chuyeån döõ lieäu
giöõa 2 loaïi boä nhôù
NGUYEÂN TAÉC LÖU GAÀN (CACHING)
23
2. KỸ THUẬT CẤP PHÁT BỘ NHỚ
25
Kỹ thuật phân vùng cố định (Fixed partitioning)
Kỹ thuật phân vùng động (Dynamic partitioning)
Kỹ thuật phân trang (Paging)
Kỹ thuật phân đoạn (Segmentation)
2.1 Kỹ thuật phân vùng cố định
Không gian địa chỉ được chia thành 2 vùng cố
định
Vùng địa chỉ thấp dùng để chứa HĐH
Vùng còn lại cấp cho các tiến trình được nạp vào
bộ nhớ chính (user program)
26
2.1 Kỹ thuật phân vùng cố định
Với hệ thống đơn chương:
Việc quản lý bộ nhớ đơn giản vì vùng nhớ user program
chỉ cấp cho 1 chương trình
HĐH sử dụng 1 thanh ghi giới hạn để ghi địa chỉ ranh
giới giữa HĐH và chương trình người sử dụng
Khi chương trình người sử dụng đưa ra địa chỉ cần truy
xuất, HĐH sẽ so sánh với giá trị giới hạn được ghi trong
thanh ghi giới hạn
Nếu nhỏ hơn giá trị giới hạn thì HĐH từ chối việc truy suất
Ngược lại, nếu lớn hơn sẽ cho phép truy xuất
=> Nhiệm vụ quản lý sẽ trở nên đơn giản
27
2.1 Kỹ thuật phân vùng cố định
Với hệ thống đa chương:
Vùng nhớ user program được chia n phần không nhất thiết
phải bằng nhau. Mỗi phần được được gọi là 1 phân vùng
Mỗi tiến trình có thể được nạp vào 1 phân vùng bất kỳ nếu
kích thước của nó <= kích thước của phân vùng và phân
vùng này còn trống
Khi có tiến trình cần được nạp vào bộ nhớ mà không còn
phân vùng trống thí HĐH sẽ swap-out 1 tiến trình tại 1 phân
vùng nào đó có kích thước vừa đủ, không chứa tiến trình
đang ở trạng thái ready hoặc running và không có quan hệ
với tiến trình đang ở trạng thái running khác để nạp tiến
trình vừa có yêu cầu
28
2.1 Kỹ thuật phân vùng cố định
(8M)
(8M)
(8M)
(8M)
(8M)
(8M)
(8M)
OS (8M)
2M
4M
6M
8M
8M
12M
16M
OS(8M)
Phân vùng kích thước bằng nhau Phân vùng kích thước không bằng nhau
Ví dụ về phân vùng cố định của bộ nhớ 64MByte
29
2.1 Kỹ thuật phân vùng cố định
Có 2 khó khăn với việc dùng phân vùng cố định có
kích thước bằng nhau
Thứ 1: Nếu chương trình có kích thước quá lớn so với
1 kích thước của phân vùng, để giải quyết việc này thì:
Người lập trình phải thiết kế chương trình theo cấu
trúc overlay
Chỉ 1 phần cần thiết của chương trình mới được nạp
vào bộ nhớ lúc nạp chương trình. Khi cần mudun nào
đó mà không sẵn có trong bộ nhớ người sử dụng phải
nạp nó vào đúng phân vùng của chương trình và sẽ
ghi đè lên bất kỳ chương trình hoặc dữ liệu ở trong đó
30
2.1 Kỹ thuật phân vùng cố định
Thứ 2: Khi kích thước của chương trình nhỏ hơn
kích thước của 1 phân vùng hoặc lớn hơn kích
thước của phân vùng nhưng không phải là bội
số của kích thước phân vùng.
Điều này gây ra sự phân mảnh nội vi, lãng phí
bộ nhớ
31
2.1 Kỹ thuật phân vùng cố định
Để khắc phục nhược điểm này có thể sử dụng
phân vùng cố định có kích thước không bằng
nhau
Có 2 lựa chọn để đưa tiến trình vào dạng phân
vùng này
32
2.1 Kỹ thuật phân vùng cố định
Lựa chọn 1:
Mỗi phân vùng có một hàng
đợi tương ứng
Khi 1 tiến trình cần được nạp
vào bộ nhớ sẽ đưa vào hàng
đợi của phân vùng có kích
thước vừa đủ để chứa nó để
được đưa vào phân vùng
Nhược điểm: Có thể có phân
vùng đang trống nhưng lại có
nhiều tiến trình đang chờ để
vào phân vùng khác
OS
Tiến trình
mới
33
2.1 Kỹ thuật phân vùng cố định
Lựa chọn 2:
Dùng 1 hàng đời chung cho
tất cả các phân vùng
Khi có tiến trình muốn nạp
vào bộ nhớ nhưng chưa
được nạp sẽ được đưa vào
hàng đợi
Khi có phân vùng trống,
HĐH sẽ chọn tiến trình có
kích thước vừa đủ để đưa
vào phân vùng
Phương pháp này gây khó
khăn trong việc lựa chọn tiến
trình để nạp vào phân vùng
OS
Tiến trình
mới
34
2.2 Kỹ thuật phân vùng động
Vùng nhớ user program không được phân chia
trước
Khi có tiến trình nạp vào bộ nhớ HĐH cấp cho
nó không gian nhớ đúng kích thước của nó
Khi tiến trình kết thúc vùng nhớ của nó sẽ được
thu hồi để HĐH cấp cho tiến trình khác kể cả tiến
trình mới có kích thước nhỏ hơn vùng nhớ của
tiến trình đã giải phóng đã giải phóng
35
2.2 Kỹ thuật phân vùng động
OS- 128k
Process1
64k
Process2
128k
Process3
32k
Process4
128k
Process5
120kProcess6
65k
1. Tiến trình 1,2,3,4 lần lượt được
nạp vào bộ nhớ
2. Tiến trình 2 kết thúc, vùng nhớ
được giải phóng
3. Tiến trình 5 được nạp vào vùng
nhớ của tiến trình
2 vừa giải phóng
4. Tiến trình 6 yêu cầu được nạp vào
bộ nhớ nhưng không thể vì không
có vùng nhớ trống phù hợp để
nạp trong khi tổng dung lượng
nhớ còn trống lớn hơn kích thước
mà tiến trình yêu cầu
36
2.2 Kỹ thuật phân vùng động
Trong kỹ thuật phân vùng động, HĐH phải đưa ra các
cơ chế thích hợp để quản lý các khối nhớ đã cấp phát
hay còn trống trên bộ nhớ.
HĐH sử dụng 2 cơ chế: Bản đồ bít và Danh sách liên
kết.
Hai cơ chế HĐH đều chia không gian nhớ thành các
đơn vị cấp phát có kích thước bằng nhau, các đơn vị
cấp phát liên tiếp nhau tạo thành 1 khối nhớ, HĐH
cấp phát các khối nhớ này cho các tiến trình
37
2.2 Kỹ thuật phân vùng động
Cơ chế bản đồ Bit: Mỗi đơn vị cấp phát được đại
diện bởi một Bit trong bản đồ bit. Đơn vị cấp phát
còn trống đại diện bằng bit 0, ngược lại đại diện
bằng bit 1.
Bản đồ bit
38
2.2 Kỹ thuật phân vùng động
Cơ chế danh sách liên kết:
Mỗi khối trên bộ nhớ được đại diện bởi một phần tử
trong danh sách liên kết
Mỗi phần tử gồm 4 trường chính:
Trường đầu tiên: cho biết khối nhớ đã cấp phát (kí
hiệu P) hay còn trống (kí hiệu H)
Trường thứ 2: cho biết thư tự của đơn vị cấp phát
đầu tiên trong khối
Trường thứ 3: cho biết đơn vị tổng số đơn vị cấp
phát trong khối
Con trỏ Next
39
2.2 Kỹ thuật phân vùng động
40
2.2 Kỹ thuật phân vùng động
Khi có một tiến trình cần được nạp vào bộ nhớ mà
bộ nhớ có nhiều hơn một khối nhớ trống có kích
thước lớn hơn kích thước của tiến trình đó, HĐH
phải quyết định chọn một khối nhớ phù hợp để nạp
tiến trình sao cho việc lựa chọn này dẫn đến việc sử
dụng bộ nhớ chính là hiệu quả nhất.
Thuật toán mà HĐH sử dụng trong trường hợp này:
Best-fit, Worst-fit, First-fit, và Next-fit
41
42
Duøng ñeå quyeát ñònh caáp
phaùt khoái boä nhôù troáng
naøo cho moät process
Muïc tieâu: giaûm chi phí
compaction
Caùc chieán löôïc placement
Best-fit: choïn khoái nhôù troáng
nhoû nhaát
First-fit: choïn khoái nhôù troáng
phuø hôïp ñaàu tieân keå töø ñaàu
boä nhôù
Next-fit: choïn khoái nhôù troáng
phuø hôïp ñaàu tieân keå töø vò trí
caáp phaùt cuoái cuøng
Worst-fit: choïn khoái nhôù
troáng lôùn nhaát
Bộ nhớ chính được chia thành các phần bằng
nhau và cố định, được đánh số bắt đầu từ 0 và
được gọi là các khung trang (page frame).
Không gian địa chỉ của các tiến trình cũng được
chia thành các phần có kích thước bằng kích
thước của một khung trang được gọi là các trang
(page).
Khi tiến trình nạp vào bộ nhớ thì các trang được
nạp vào các khung trang bất kỳ còn trống có thể
không liên tiếp nhau.
2.3 Kỹ thuật phân trang
Cơ chế MMU trong kỹ thuật phân trang
44
Cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa
chỉ trong cơ chế phân trang là bảng trang (pages
table). Mỗi phần tử trong bảng trang cho biết các địa
chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong
bộ nhớ vật lý (số hiệu khung trang trong bộ nhớ vật
lý đang chứa trang ). Mỗi tiến trình có bảng trang
riêng
Chuyển đổi địa chỉ
45
Mỗi địa chỉ phát sinh bởi CPU được chia thành hai
phần:
số hiệu trang - Page number (p): sử dụng như chỉ
mục đến phần tử tương ứng trong bảng trang.
địa chỉ tương đối trong trang - Page offset (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.
Neáu kích thöôùc cuûa khoâng gian ñòa chæ aûo laø 2m, vaø kích
thöôùc cuûa trang laø 2
n
(ñôn vò laø byte hay word tuøy theo
kieán truùc maùy) thì
p d
page number page offset
m n bits
(ñònh vò töø 0 2m n 1)
n bits
(ñònh vò töø 0 2n 1)
Baûng phaân trang seõ coù toång coäng 2
m
/2
n
= 2
m n
muïc (entry)
2.3 Kỹ thuật phân trang
CPU p d f d
f
p
page table
logical
address
physical
address
physical
memory
f 00…00
f 11…11
f frames
46
VD
47
Tổ chức lưu trữ bảng trang:
48
Đa số các hệ điều hành cấp cho mỗi tiến trình
một bảng trang.
Nếu hệ điều hành quản lý một không gian địa chỉ
có dung lượng quá thì bảng trang đòi hỏi một
vùng nhớ qúa lớn
=> Giải pháp: Phân trang đa cấp.
49
Phaân trang ña caáp
Baûo veä boä nhôù
Vieäc baûo veä boä nhôù ñöôïc hieän thöïc baèng caùch gaén
vôùi frame caùc bit baûo veä (protection bits) ñöôïc giöõ
trong baûng phaân trang. Caùc bit naøy bieåu thò caùc thuoäc
tính sau
read-only, read-write, execute-only
Ngoaøi ra, coøn coù moät valid/invalid bit gaén vôùi moãi muïc
trong baûng phaân trang
“valid”: cho bieát laø trang cuûa process, do ñoù laø moät trang
hôïp leä.
“invalid”: cho bieát laø trang khoâng cuûa process, do ñoù laø
moät trang baát hôïp leä.
Baûo veä baèng valid/ invalid bit
Moãi trang nhôù coù kích thöôùc 2K = 2048
Process coù kích thöôùc 10,468 phaân maûnh noäi ôû frame 9
(chöùa page 5), caùc ñòa chæ aûo > 12287 laø caùc ñòa chæ invalid.
kieåm tra truy xuaát ñeán baûng phaân trang coù naèm trong baûng hay
khoâng.
00000
10468
12287
2 v
3 v
4 v
7 v
8 v
9 v
0 i
0 i
frame
number
valid/
invalid bit
0
1
2
3
4
5
6
7
0
1
2 page 0
3 page 1
4 page 2
5
6
7 page 3
8 page 4
9 page 5
...
page n
16383
14 bit
Chia sẻ bộ nhớ trong cơ chế phân trang
52
Cho phép chia sẻ các trang giữa các tiến trình ánh
xạ nhiều địa chỉ logic vào một địa chỉ vật lý duy nhất.
HĐH kiểm tra các thao tác truy xuất trên khung trang
tương ứng có hợp lệ với thuộc tính bảo vệ của nó
không.
53
Loại bỏ được hiện tượng phân mảnh ngoại vi nhưng vẫn
còn hiện tượng nội vi Nếu kích thước của tiến trình không
phải là bội số của kích thước 1 khung trang.
Có sự phân biệt rạch ròi giữa góc nhìn của người
dùng và bộ phận quản lý bộ nhớ:
Góc nhìn của người sử dụng: Tiến trình của người dùng
nhìn bộ nhớ như là một không gian liên tục, đồng nhất
và chỉ chứa duy nhất bản thân tiến trình này.
Góc nhìn của bộ nhớ vật lý: Tiến trình của người sử
dụng được lưu trữ phân tán khắp bộ nhớ, trong bộ nhớ
đồng thời cũng chứa những tiến trình khác.
Phần cứng đảm nhiệm việc chuyển đổi địa chỉ logic
thành địa chỉ vật lý. Sự chuyển đổi này là trong suốt
đối với người sử dụng.
2.4 Kỹ thuật phân đoạn
Bộ nhớ chính được chia thành các phần cố định
có kích thước không bằng nhau, được đánh số bắt
đầu từ 0 được gọi là các phân đoạn
Không gian địa chỉ là một tập các phân đoạn
(segments).
Các phân đoạn là những phần bộ nhớ kích thước
khác nhau và có liên hệ logic với nhau. Mỗi phân
đoạn có một tên gọi (số hiệu phân đoạn) và một độ
dài.
Người dùng sẽ thiết lập mỗi địa chỉ với hai giá trị:
.
54
55
Cơ chế MMU trong kỹ thuật phân đoạn
56
Cần phải xây dựng một ánh xạ để chuyển đổi các
địa chỉ 2 chiều được người dùng định nghĩa
thành địa chỉ vật lý một chiều. Sự chuyển đổi
này được thực hiện qua một bảng phân đoạn.
Mỗi thành phần trong bảng phân đoạn bao gồm
một thanh ghi nền và một thanh ghi giới hạn:
Thanh ghi nền lưu trữ địa chỉ vật lý nơi bắt đầu phân
đoạn trong bộ nhớ
Thanh ghi giới hạn đặc tả chiều dài của phân đoạn.
2.4 Kỹ thuật phân đoạn
Chuyển đổi địa chỉ:
Mỗi địa chỉ ảo là một bộ
Số hiệu phân đoạn s : được sử dụng như chỉ mục đến
bảng phân đoạn (địa chỉ cơ sở của phân đoạn mà
đoạn chương trình tương ứng được nạp)
đị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 (cho biết độ dài của phân đoạn)
57
58
9.59
VD
Chia sẻ phân đoạn
60
Một ưu điểm khác của kỹ thuật phân đoạn là khả
năng chia sẻ ở mức độ phân đoạn. Nhờ khả năng
này, các tiến trình có thể chia sẻ với nhau từng
phần chương trình (ví dụ các thủ tục, hàm), không
nhất thiết phải chia sẻ toàn bộ chương trình như
trường hợp phân trang
Mỗi tiến trình có một bảng phân đoạn riêng, một
phân đoạn được chia sẻ khi các phần tử trong
bảng phân đoạn của hai tiến trình khác nhau cùng
chỉ đến một vị trí vật lý duy nhất
Chia sẻ code trong hệ phân đoạn
61
2.4 Kỹ thuật phân đoạn
Khi tiến trình được nạp vào bộ nhớ thì tất cả các
đoạn của nó được nạp vào các phân đoạn còn trống
trên bộ nhớ, các phân đoạn này có thể không liên tục
nhau
Để theo dõi các đoạn của các tiến trình khác nhau
trên bộ nhớ HĐH sử dụng các bảng phân đoạn
(SCT), thông thường mỗi tiến trình có 1 bảng phân
đoạn riêng
62
63
Trong hệ thống sử dụng kỹ thuật phân đoạn , hiện
tượng phân mảnh ngoại vi lại xuất hiện khi các khối
nhớ tự do đều quá nhỏ, không đủ để chứa