Tải bản đầy đủ (.pdf) (57 trang)

CHƯƠNG 7: BỘ NHỚ CHÍNH Main Memory pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (905.08 KB, 57 trang )

CHƯƠNG
CHƯƠNG
7: B
7: B


NH
NH


CH
CH
Í
Í
NH
NH
Main Memory
Main Memory
8.2
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
N
N


I DUNG
I DUNG
 Background
 Swapping


 Cấpphátbộ nhớ kề (Contiguous Memory Allocation)
 Phân trang (Paging)
 Cấutrúccủabảng trang (Structure of the Page Table)
 Phân đoạn (Segmentation)
 Ví dụ: Intel Pentium
8.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
M
M


C TIÊU
C TIÊU
 Cung cấpmôtả chi tiết các phương pháp tổ chứcphần
cứng bộ nhớ.
 Thảoluậncáckỹ thuậtquảntrị bộ nhớ bao gồm phân trang,
phân đoạn.
8.4
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
Background
Background
 Chương trình phải đượcmang(từđĩa) vào trong bộ nhớ và được
sắpxếp bên trong một quá trình để chạy
 Chỉ có bộ nhớ chính và các thanh ghi là các lưutrữ mà CPU có thể

truy xuấttrựctiếp.
 Truy xuất thanh ghi mấtmột xung đồng hồ (hoặcíthơn).
 Truy xuấtbộ nhớ chínhcóthể mất nhiềuxungđồng hồ
 Cache ở giữabộ nhớ chính và các thanh ghi CPU.
 Bộ nhớđòi hỏiphải đượcbảovệđểđảmbảohoạt động đúng.
8.5
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
THANH GHI CƠ S
THANH GHI CƠ S


V
V
À
À
THANH GHI GI
THANH GHI GI


I H
I H


N
N
Base and Limit Registers
Base and Limit Registers

 Mộtcặp thanh ghi cơ sở và thanh ghi giớihạn xác định không
gian địachỉ logic
8.6
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
S
S


G
G


N K
N K


T C
T C
Á
Á
C CH
C CH


TH
TH



& D
& D


LI
LI


U V
U V


I B
I B


NH
NH


 Gắnkết địachỉ chỉ thị và dữ liệuvới địachỉ bộ nhớ xảy ra trong
ba giai đoạn khác nhau
z Thờigianbiêndịch (compile time): nếuvị trí bộ nhớ
đượcb
iếttrước, mã tuyệt đối(absolute code) có thể được
sinh ra; phảibiêndịch lạinếuvị trí khởi đầuthayđổi.
z Thờigiannạp (Load time): phảisinhramãcóthểđịnh vị
lại(relocatable code) nếuvị trí bộ nhớ không đượcbiết
trước khi biên dịch

z Thờigianthựchiện (Execution time): sự gắnkếtbị làm
trễđếntậnkhithờigianchạynếuquátrìnhcóthểđượcdi
chuyển trong khi thựchiệntừ một đoạnbộ nhớ sang một
đoạn khác. Cầnhỗ trợ phầncứng cho các ánh xạđịachỉ
(các thanh ghi cơ sở và giớihạn)
8.7
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
X
X


LÝ NHI
LÝ NHI


U BƯ
U BƯ


C C
C C


A M
A M



T CHƯƠNG
T CHƯƠNG
TRÌNH NGƯ
TRÌNH NGƯ


I D
I D
Ù
Ù
NG
NG
8.8
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
KHÔNG GIAN Đ
KHÔNG GIAN Đ


A CH
A CH


LOGIC vs
LOGIC vs
. K
. K
HÔNG

HÔNG
GIAN Đ
GIAN Đ


A CH
A CH


V
V


T LÝ
T LÝ
 Quan niệmcủamột không gian địachỉ logic gắnkếtvớimột
không gian địachỉ vậtlýtáchbiệtlàtâmđốivớiquảntrị bộ nhớ
z Địachỉ logic (Logical address) – đượcsinhrabởiCPU;
cũng đượcthamkhảonhưđịachỉảo.
z Địachỉ vật lý (Physical address) – địachỉ được nhìn thấy
bởi đơnvị bộ nhớ (memory unit)
 Các địachỉ logic và vậtlýlànhư nhau trong các sơđồgắnkết
địachỉ thời gian biên dịch và thờigiannạp; các địachỉ logic và
vật lý khác nhau trong sơđồgắnkết địachỉ thờigianthựchiện
8.9
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
ĐƠN V

ĐƠN V


QU
QU


N TR
N TR


B
B


NH
NH


Memory
Memory
-
-
Management Unit (
Management Unit (
MMU
MMU
)
)
 Thiếtbị phầncứng ánh xạđịachỉảovới địachỉ vậtlý

 Trong sơđồMMU, giá trị trong thanh ghi tái định vịđượccộng với
mỗi địachỉđượcsinhrabởimột quá trình người dùng tạithời điểm
nó đượcgửi đếnbộ nhớ.
 Chương trình người dùng giao tiếpvớicácđịachỉ logic, không bao
giờ nhìn thấycácđịachỉ thực
8.10
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
T
T
Á
Á
I Đ
I Đ


NH V
NH V


Đ
Đ


NG D
NG D
Ù
Ù

NG M
NG M


T THANH GHI
T THANH GHI
T
T
Á
Á
I Đ
I Đ


NH V
NH V


8.11
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
N
N


P Đ
P Đ



NG
NG
Dynamic Load
Dynamic Load
 Thủ tục (Routine) không đượcnạp đếntậnkhiđượcgọi
 Sử dụng không gian bộ nhớ tốthơn, thủ tục không được dùng đến
không bao giờđượcnạp
 Hữudụng khi các lượng lớn code cầnthiết cho quảnlýcáctrường
hợp không thường xuyên xảyra
 Không có hỗ trợđặcbiệttừ HĐH đượcyêucầu đượcthực thi qua
thiếtkế chương trình
8.12
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
LIÊN K
LIÊN K


T Đ
T Đ


NG
NG
Dynamic Linking
Dynamic Linking
 Liên kếtbị trì hoãn đếntậnthờigianthựchiện

 Mảnh code nhỏ, stub, được dùng để định vị thủ tụcthư viện
thường trú trong bộ nhớ thích hợp.
 Stub tự sắp đặtlạivới địachỉ thủ tụcvàthựchiệnthủ tục
 HĐH cầnkiểmtrathủ tụcnằm trong không gian địachỉ quá
trình
 Liên kết động đặcbiệthữudụng đốivớicácthư viện
 Hệ thống đượcbiếtnhư các thư việnchiasẻ (shared
libraries)
8.13
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
Swapping
Swapping
 Một quá trình có thểđược hoán chuyểntạmthờirakhỏibộ nhớ lên lưutrữ
ngoài, và sau đó được mang trở lạivàobộ nhớđểtiếptụcthựchiện.
 Lưutrữ ngoài – đĩa nhanh, đủ lớn để chứa đượccácbảnsaocủatấtcả
các ảnh bộ nhớ người dùng; phải cung cấptruyxuấttrựctiếp đếncácảnh
bộ nhớ này
 Roll out, roll in –biếnthể của swapping được dùng cho các thuật toán lập
lịch biểudựatrênưu tiên; quá trình độ ưutiênthấpbị chuyển ra, quá trình
có độ ưutiêncaođượcnạpvàovàđượcthựchiện
 Phầnlớnthời gian swap là thờigiantruyền; tổng thờigiantruyềntỷ lệ với
lượng bộ nhớđược swapped
 Các phiên bản đượcsửa đổi được tìm thấy trên nhiều HĐH (UNIX, Linux,
và Windows)
 Hệ thống duy trì mộthàngđợisẵn sàng (ready queue) các quá trình sẵn
sàng chạycóảnh bộ nhớ trên đĩa
8.14

Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
H
H
ì
ì
nh
nh


nh
nh
Swapping
Swapping
8.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
C
C


p
p
ph
ph
á

á
t
t
k
k


 Bộ nhớ chính thông thường chia thành hai phần:
z HĐH thường trú, thường đượclưu trong bộ nhớ thấpvới
vector interrupt
z Các quá trình người dùng đượclưu trong bộ nhớ cao
 Các thanh ghi tái định vịđược dùng để bảovệ các quá trình
người dùng
z Thanh ghi cơ sở (base register) chứagiátrị của địachỉ vật
lý nhỏ nhất(của vùng nhớđượccấp phát)
z Thanh ghi giớihạn (limit register) chứakhoảng địachỉ logic
(độ dài đoạnbộ nhớđượccấp phát)
z MMU ánh xạđịachỉ logic → vậtlý
8.16
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
B
B


o
o
v

v


b
b


nh
nh


v
v


i
i
base register
base register
v
v
à
à
limit register
limit register
8.17
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005

C
C


p
p
ph
ph
á
á
t
t
k
k


(Cont.)
(Cont.)
 Cấpphátđangăn (multiple-partition allocation)
z Lỗ (Hole) – khốibộ nhớ sẵncó; cáclỗ kích cỡ khác nhau và
trảiratrênbộ nhớ
z Khi quá trình đếnnóđượccấp phát mộtlỗđủlớn để chứa quá
trình
z Hệđiều hành duy trì thông tin về :
a) các ngăn đượccấp phát b) các ngăntự do (hole)
OS
process 5
process 8
process 2
OS

process 5
process 2
OS
process 5
process 2
OS
process 5
process 9
process 2
process 9
process 10
8.18
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
C
C


p
p
ph
ph
á
á
t
t
lưu
lưu

tr
tr


đ
đ


ng
ng
 First-fit: Cấp phát lỗđầutiênphùhợp
 Best-fit: Cấp phát lỗ nhỏ nhất trong các lỗ phù hợp
 Worst-fit: Cấp phát lỗ lớnnhất
Làm thế nào thỏamãnyêucầukíchcỡ n từ một danh sách các lỗ tự do
First-fit và best-fit tốthơnworst-fit về tốc độ và sử dụng lưutrữ
8.19
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
Phân
Phân
m
m


nh
nh
(Fragmentation)
(Fragmentation)

 Phân mảnh ngoài (External Fragmentation) –Tổng không gian
bộ nhớđủđểđáp ứng yêu cầunhưng không kề (gồmnhững mảnh
nhỏ nằmrải rác trong bộ nhớ)
 Phân mảnh trong (Internal Fragmentation) –Bộ nhớ đượccấp
phát cho quá trình lớnhơnbộ nhớ đượcyêucầu, phầnbộ nhớ
“dư”trở nên “lãng phí”
 Giảmsự phân mảnh ngoài bởi“dồn nén” - compaction
z Dồnnội dung bộ nhớđã đượccấp phát về một phía bộ nhớ,
như vậycác“mảnh” nhỏ bộ nhớ tự do sẽ được“dổnvề phía
ngượclại, hợplại thành mộtkhốilớn
z “Dồn nén” - Compaction chỉ có thể thựchiệnvớitáiđịnh vị
động và đượctiếnhànhở thờigianchạy
8.20
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
Phân
Phân
trang
trang
-
-
Paging
Paging
 Bộ nhớ vậtlýđược chia thành các khốikíchthướccốđịnh,
đượcgọilàcáckhung-frames (kích thướclàlũythừacủa2,
thường nằm trong khoảng 512 bytes đến 8,192 bytes)
 Bộ nhớ logic (của quá trình) được chia thành các khối cùng
kích thước, đượcgọi là các trang - pages

 Lưuvếttấtcả các khung tự do
 Bảng trang đượcsử dụng để dịch địachỉ logic sang địachỉ vật

 Có thể dẫn đếnhiệntượng phân mảnh trong
8.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005


đ
đ


d
d


ch
ch
đ
đ


a
a
ch
ch



 ĐịachỉđượcsinhrabởiCPU được chia thành hai phần:
z Số trang - Page number (p) – được dùng như chỉ số
trong bảng trang, “ô” ở chỉ sốđólưu địachỉ cơ sở của
khung chứa trang
z Độ dời trang - Page offset (d) – Đượctổ hợpvới địa
chỉ cơ sởđểxác định địachỉ vậtlý
z Đốivới không gian địachỉ logic 2
m
và kích thước trang 2
n
page number
page offset
p
d
m - n
n
8.22
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
Ph
Ph


n
n
c
c



ng
ng
phân
phân
trang
trang
8.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005


h
h
ì
ì
nh
nh
phân
phân
trang
trang
c
c


a

a
b
b


nh
nh


logic
logic
v
v
à
à
b
b


nh
nh


v
v


t
t



8.24
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
V
V
í
í
d
d


phân
phân
trang
trang
Bộ nhớ 32-byte và kích thướctrang4-byte
8.25
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Feb 22, 2005
C
C
á
á
c
c

khung
khung
t
t


do
do
Trướckhi cấp phát
Sau khi cấpphát

×