Tải bản đầy đủ (.pptx) (75 trang)

bài giảng điện tử quản lý bộ nhớ

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 (504.11 KB, 75 trang )

– Quản lý bộ nhớ

1


Nội dung

n

n

n

Tổng quan
n

Nhu cầu bộ nhớ của tiến trình

n

Các vấn đề về bộ nhớ

Chuyển đổi đòa chỉ
n

Các côn

n

Các mô hình chuyển đổi đòa chỉ


Vai trò Quản lý bộ nhớ của HĐH
n

n

g đoạn

Các yêu cầu

Các mô h

ình tổ chức bộ nhớ

n

Mô hình Liên tục

n

Mô hình Không liên tục

2


Tổng quan

n

Chương trình cần được nạp vào Bộ nhớ chính để thi hành
CPU chỉ có thể truy xuất trực tiếp Main Memory


n

n

Chương trình khi được nạp vaò BNC sẽ được tổ chức theo cấu trúc của
tiến trình tương ứng

n

n

Ai cấp ph

BNC
cho tiến
Chương trình nguồnát
sử
dụng
đòa trình
chỉ?symbolic
chỉ thực trong BNC

n

n

Tiến trình thực thi truy cập điạ

Ai chuyển đổi đòa chỉ ?


Bộ phận Quản lý Bộ nhớ
HĐH

Mô hình tổ chức ?

Cơ chế hỗ trợ

Chiến lược thực hiện

3


Tổng quan : Các vấn đề về Bộ nhớ

n

n

Cấp phát Bộ nhớ :
n

Uniprogramming :

n

Multiprogramming :
n

BNC giới hạn, N tiến trình ?


n

Bảo vệ ? Chia sẻ ?

Không khó

rình thay đổi kích thước

n

Tiến t

n

Tiến trình lớn hơn BNC ?

?

Chuyển đổi đòa chỉ tiến trình
n

Thời điểm chuyển đổi đòa chỉ ?

n

Công

n


thức chuyển đổi ?

n

Phụ thuộc vào Mô hình tổ chức BNC ?

n

Cần sự hỗ trợ của phần cứng ?

Tiến trình thay đổi vò trí trong BNC ?
4


Ví dụ

0x9000
OS
0x7000

Môi trường đa nhiệm

gcc
0x4000
nachos
0x3000
emacs

0x0000


n

Nếu nachos cần thêm không gian ?

n

Nếu nachos có lỗi và thực hiện thao tác ghi vào đòa chỉ 0x

n

7100? nó thường trú tại 0x4000?
Khi nào gcc biết rằng

n

Nếu emacs cần nhiều bộ nhớ hơn dung lượng vật lý hiện có?

5


Caùc böôùc chuyeån ñoåi chöông trình

C program: test.c
Compiler

Object:test.o

Linker

lib.o


Executable: test.exe

Loader

Memory

6


Caùc böôùc huyeån ñoåi source
program -> .exe

7


A.C

B.C
int x;

F()

int y; x =

{

OS

printf(“Hi”);


12;

}

y = 5;
F();

B.O

A.O
0 //

x

2 //

y

? // F()

0 -2 //

F() …

x

? //

y


? // [?] = 12;

4 // [0] = 12;
5 //

? //

[2] = 5;

6 // jmp F

3 //

//external
// object

? //

0 // F()

? // jmp ?

x

5 //

[?] = 5;

y


7 // [3] = 12;
8 //

[5] = 5;

9 // jmp 0

Test.exe
CuuDuongThanCong.com

/>
8


Thuật ngữ

n

Đòa chỉ logic – còn gọi là đòa chỉ ảo , là tất cả các đòa chỉ do
bộ xử lý tạo ra

n

Đòa chỉphysic

-

là đòa chỉthực


tế mà trình quản

và thao
lýtác
bộ nhớ nhìn thấy
n

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

n

Không gian vật lý – là tập hợp tất cả các đòa chỉ vật
ảo

đòa chỉ

lý tương ứng với các

CuuDuongThanCong.com

/>
9


Nhu cau boọ nhụự cuỷa tieỏn trỡnh
low address
system data segment (PCB)

Tin trỡnh gm cú:



n

code segment
n

n

read from program file by exec

n

usually read-only

n

can be shared

data segment

push

%ebp

8048315:

mov

%esp,%ebp


8048317:

mov

0xc(%ebp),%eax

804831a:

add

0x8(%ebp),%eax

804831d:

pop

%ebp

804831e:

ret

initialized global variables (0 / NULL)

804831f <main>:

n

uninitialized global variables


804831f:

n

heap

8048320:

dynamic memo

n

e.g., allocated using malloc

ry

grows against higher addresses

n

variables in a function

n

stored register states (e.g. calling funct8i0o4n83E45I:P)

n
n


grows against lower addresses

system data segment (PCB)

segment pointers

n

pid

n

program and stack pointers

n



code segment

initialized variables

uninitialized variables
push

%ebp

data segment
mov


%esp,%ebp

n

stack segment

n

n

8048314:

n

n

n

8048314 <add>:

data segment

n

process A
heap

8048322:

$0x18,%esp


8048325:

8048328:

sub

mov

$0x0,%eax

and

$0xfffffff0,%esp
804832d:

sub

%eax,%esp

804832f:

movl

$0x0,0xfffffffc(%ebp)

8048336:

movl


$0x2,0x4(%esp,1)

804833e:

movl

$0x4,(%esp,1)

call

8048314 <add>

804834a:

mov

%eax,0xfffffffc(%ebp)

804834d:

leave

804834e:

ret

804834f:

nop


...



Stack cho cỏc thread
stack
possible stacks for
more threads

10


Logical and Physical Address Spaces


Truy xuất bộ nhớ

Đòa chỉ của Instruction và data trong program source code là symbolic:

n

n

n

goto errjmp;

n

X = A + B;


Những đòa chỉ symbolic này cần được liên kết (bound) với ộ nhớ vật


các đòa chỉ thực trong b
trước khi thi hành code
Address binding: ánh xạ đòa chỉ từ không gian đòa chỉ (KGĐC)

n

KGĐC khác
n

Thời điểm thực hiện address binding ?
n

compile ti

n

load time

n

execution time.

me

này vào



Thời điểm kết buộc đòa chỉ ?

n

Có thể thực hiện việc kết buộc đòa chỉ tại 1 trong 3
thời điểm :

§

Compile-time:

§
§
§

§

Phát sinh đòa chỉ tuyệt đối
Phải biết trước vò trí nạp chương trình
Phải biên dòch lại chương trình khi vò trí nạp thay đổi

Load-time:

§
§
§

§


Khi biên dòch chỉ phát sinh đòa chỉ tương đối
Khi nạp, biết vò trí bắt đầu sẽ tính lại đòa chỉ tuyệt đối
Phải

y đổi

Execution-time:

tái nạp khi vò trí bắt đầu tha
Khi biên dòch,nạp chỉ phát sinh đòa chỉ tuong đối

§
§
§

Trì hoãn thời điểm kêt buộc đòa chỉ tuyệt đối đến khi thi hành
Khi đó ai tính toán đòa chỉ tuyệt đối ?

§

CuuDuongTha

P hần cứng : MMU

nCong.c

om

/>
13



Chuyeån ñoåi ñòa chæ

MMU
gcc
Translation box
Physical

Load

Store
virtual

legal addr?

address

Illegal?

CPU
error
d ata

add

ress

Physical
memory



CPU, MMU and Memory


Yêu cầu quản lý bộ nhớ

Tăng hiệu suất sử dụng CPU

n

Cần hỗ trợ Multiprogramming

n

Lưu trữ cùng lúc nhiều tiến trình trong BNC ?

n

n

Các yêu cầu khi tổ chức lưu trữ tiến trình:
1.

Relocation

2.

Protection


3.

Sharing

4.

Logical

5.

Physical Organization
Organization


Tái đònh vò (Relocation)

Không biết trước chương trình sẽ được nạp vào BN ở vò trí nào

n

để xử lý.
Một tiến trình có thể được di dời trong bộ nhớ sau khi đã nạp C

n

n

Tiến trìn
n


h tăng
trưởng
? để có thể sử dụng BNC hiệu qủa
HĐH sắp xếp lại
các tiến
trình
hơn.


Bảo vệ (Protection)

Không cho phép tiến trình truy cập đến các vò trí nhớ đã cấp

n

cho tiến trình khác (khi chưa có phép).
Không thể thực hiện

n

việc kiểm tra hợp lệ tại thời đ


iểm
biên
dòch
hay
chương trình có thể
được
tái

đònh
vò.na
Thực hiện kiểm tra tại thời điểm thi hành

n

n

Cần sự hỗ trợ của phần cứng.

ïp,


Chia sẻ (Sharing)

n

Cần cho phép nhiều tiến trình tham chiếu đến cùng một
vùng nhớ mà không tổn hại đến tính an toàn hệ thống :
n

Tiết kiệm chỗ lưu trữ cho các module dùng chung.

n

Cho phép các tiến trình cộng tác có khả năng chia sẻ dữ liệu.


Tổ chức logic (Logical Organization)


Người dùng viết chương trình gồm nhiều module, với các yêu

n

cầu bảo vệ cho từng module có thể khác nhau:
n

instruction modules : execute-only.

n

data mo
n

n

d/write.

một số module
là :private,
sốhay
khác
dules
read-only
rea có thể là public.

OS cần hỗ trợ các cơ chế có thể phản ánh mô trình

hình logic của chng



Tổ chức vật lý (Physical Organization)

n

Cấp phát vùng nhớ vật lý sao cho hiệu quả

n

Và dễ dàng chuyển đổi chương trình qua lại giữa BNChính và
BNPhụ


Các mô hình tổ chức bộ nhớ

Cấp phát Liên tục (Contigous Allocation)

n

n

Linker – Loader

n

Base & Bound

Cấp phát

n


n

Segmentation

n

Paging

Không liên
tục
n Contigous
Allocation)

(No


Cấp phát Liên tục (Contigous Allocation)

n

n

Nguyên tắc :
n

Chương trình được nạp toàn thể vào BNC để thi hành

n


Cần một vùng nhớ liên tục, đủ lớn để chứa Chương

Không gian đòa chỉ : liên tục
trình

n

Không gian vật lý : có thể tổ chức
n

Fixed partition

n

Variable

partition
n

2 mô hình đơn giản
n

Linker – Loader

n

Base & Bound

23



Fixed Partitioning

n

Phân chia KGVL thành các partitions

n

Có 2 cách phân chia partitions :

n

n

kích thước bằng nhau

n

kích thước khác nhau

Mỗi tiến trình sẽ được nạp vào
một partition để thi hành
n

Chiến lược cấp phát partition ?


Chiến lược cấp phát partitions cho tiến trình


n

Kích thước partition bằng nhau
n

n

không có gì phải suy nghó !

Kích thước partition không bằn
n

Sử dụng nhiều hàng đợi
n

Cấp cho tiến trình partition với kích

nhau(đủ
: lớn để
thước bégnhất
chứ

a tiên trình)
n

Khuyết điểm : phân bố các tiến
trình vào các partition không
đều, một số tiến trình

CuuD


p h a ûi đ ợi trong khi
uon

gTh

anC

ong.

com

/>
25


×