Bài giảng Hệ điều hành - Chương 7: Quản lý bộ nhớ (Phần 1) - Trần Thị Như Nguyệt
Chương 7: Quản lý bộ nhớ - 1
Câu hỏi ôn tập chương 6
Nêu điều kiện để thực hiện giải thuật Banker?
Nêu các bước của giải thuật Banker?
Nêu các bước của giải thuật yêu cầu tài nguyên?
Nêu các bước giải thuật phát hiện deadlock?
Khi deadlock xảy ra, hệ điều hành làm gì để phục
hồi?
Dựa trên yếu tổ nào để chấm dứt quá trình bị
deadlock?
Quản lý bộ nhớ
2
Câu hỏi ôn tập chương 6 (tt)
Cho 1 hệ thống có 4 tiến trình P1 đến P4 và 3 loại tài
nguyên R1 (3), R2 (2) R3 (2). P1 giữ 1 R1 và yêu cầu
1 R2; P2 giữ 2 R2 và yêu cầu 1 R1 và 1 R3; P3 giữ 1
R1 và yêu cầu 1 R2; P4 giữ 2 R3 và yêu cầu 1 R1
Vẽ đồ thị tài nguyên cho hệ thống này?
Deadlo
Chuỗi an toàn? (nếu có)
Quản lý bộ nhớ
3
Câu hỏi ôn tập chương 6 (tt)
Tìm Need?
Hệ thống có an toàn không?
Nếu P1 yêu cầu (0,4,2,0) thì có thể cấp phát
cho nó ngay không?
Quản lý bộ nhớ
4
Mục tiêu
Hiểu được các khái niệm cơ sở về bộ nhớ
Hiểu được các kiểu địa chỉ nhớ và cách chuyển đổi
giữa các kiểu này
Hiểu được các cơ chế và mô hình quản lý bộ nhớ
Quản lý bộ nhớ
5
Nội dung
Khái niệm cơ sở
Các kiểu địa chỉ nhớ
Chuyển đổi địa chnhớ
Overlay và swapping
Mô hình quản lý bộ nhớ
Quản lý bộ nhớ
6
Nội dung
Khái niệm cơ sở
Các kiểu địa chỉ nhớ
Chuyển đổi địa chnhớ
Overlay và swapping
Mô hình quản lý bộ nhớ
Quản lý bộ nhớ
7
Khái niệm cơ sở
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ꢅ
Input Queue – Một tập hợp của những tiến trꢀnh
trên đꢆa mꢁ đang chꢇ để được mang vꢁo trong bộ
nhớ để thực thi.
User programs trải qua nhiều bước trước khi được
xꢄ lꢅ (compiler – Linking – Loader – Exe)
Quản lý bộ nhớ
8
Khái niệm cơ sở (tt)
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ả.
Mục tiêu cần đꢍt được lꢁ nꢍp cꢁng nhiều process
vꢁo bộ nhớ cꢁng tꢊt (gia tăng mức độ đa chương)
Trong hầu hết cꢌc 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.
Quản lý bộ nhớ
9
Khái niệm cơ sở (tt)
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ệ: hớ 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 chnhớ luận lꢅ của user vꢁo địa chỉ
thực
Quản lý bộ nhớ
10
Nội dung
Khái niệm cơ sở
Các kiểu địa chỉ nhớ
Chuyển đổi địa chnhớ
Overlay và swapping
Mô hình quản lý bộ nhớ
Quản lý bộ nhớ
11
Các kiểu địa chỉ nhớ
Địa chꢀ vꢁt lꢂ (physical address) (địa chꢀ thꢃc) lꢄ mꢅt vị trꢆ thꢃc
trong bꢅ nhꢇ chꢆnh
Địa chꢀ luꢁn lꢂ (logical address) lꢄ mꢅt vị trꢆ nhꢇ đưꢈc diꢉn tꢊ
trong mꢅt chương trꢋnh (cꢌn gꢍi lꢄ địa chꢀ ꢊo virtual address).
Cꢎc trꢋnh biên dịch (compiler) tạo ra mꢏ lệnh chương trꢋnh mꢄ trong
đꢐ mꢍi tham chiếu bꢅ nhꢇ đꢑu lꢄ địa chꢀ luꢁn lꢂ
Địa chꢀ tương đối (relative address) (địa chꢀ khꢊ tꢎi định vị,
relocatable address) lꢄ mꢅt kiꢒu địa chꢀ luꢁn lꢂ trong đꢐ cꢎc địa chꢀ
đưꢈc biꢒu diꢉn tương đối so vꢇi mꢅt vị trꢆ xꢎc định nꢄo đꢐ trong
chương trꢋnh.
Vꢆ dꢓ: 12 byte so vꢇi vị trꢆ bꢔt đầu chương trꢋnh,…
Địa chꢀ tuyệt đối (absolute address): địa chꢀ tương đương vꢇi địa chꢀ
thꢃc.
Quản lý bộ nhớ
12
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 khꢊ
thꢃc thi gꢍi lꢄ load module.
Bꢅ loader: nạp load module vꢄo bꢅ nhꢇ chꢆnh
Quản lý bộ nhớ
13
Cơ chế thực hiện linking
0
0
Module A
CALL B
Module A
relocatable
object modules
JMP “L”
length L
Return
Return
L 1
L 1
L
Module B
0
Module B
CALL C
JMP “L+M”
load module
length M
length N
L M 1 Return
L M Module C
Return
M 1
0
Module C
L M N 1
Return
Return
N 1
Quản lý bộ nhớ
14
Cꢎc bưꢇc nạp chương trꢋnh vꢄo bꢅ nhꢇ
ABBOTT.C
COSTELLO.C
int idunno;
...
“SOURCE
CODE”
...
int whosonfirst (int x)
{
...
}
whosonfirst(idunno);
...
Khi mỗi file đưꢈc biên
dịch, cꢎc địa chꢀ chưa
biết, vì thế các cờ
đưꢈc dùng đꢒ đꢎnh
dấu
Compiler
Compiler
ABBOTT.OBJ
COSTELLO.OBJ
...
...
“OBJECT
CODE”
MO
CALL whosonfirst
...
whosonfirst:
...
Trình linker kết nối
các files, vì thế nó có
thꢒ thay thế các chỗ
đꢎnh dấu vꢇi địa chꢀ
thꢁt
Memory
Linker
HAHAHA.EXE
H
...
MOVE R1, 2388
CALL 1547
...
...
MOVE R1, R5
...
(value of idunno)
...
MOVE R1, 22388
CALL 21547
Loader/
locator
...
...
MOVE R1, R5
...
(value of idunno))
Phꢊi xꢎc định địa 21547
chꢀ bꢅ nhꢇ bꢔt đầu22388
đꢒ thꢃc thi
1547
2388
Nội dung
Khái niệm cơ sở
Các kiểu địa chỉ nhớ
Chuyển đổđa chnhớ
Overlay và swapping
Mô hình quản lý bộ nhớ
Quản lý bộ nhớ
16
Chuyển đổi địa chỉ
Chuyꢒn đổi địa chꢀ: quꢎ trꢋnh ꢎnh xạ mꢅt đị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: symbolic (cꢎc biến, hằng, pointer,…)
Trong thời điꢒm biên dịch: thường lꢄ địa chꢀ khꢊ tꢎi định vị
Vꢆ dꢓ: a ở vị trꢆ 12 byte so vꢇi vị trꢆ bꢔt đầu module
Thời điꢒm liking/loading: cꢐ thꢒ lꢄ địa chꢀ thꢃc.
Vꢆ dꢓ: dữ liệu nằm tại địa chꢀ bꢅ nhꢇ thꢃc 2030
2000
0
int i;
goto p1;
p1
2250
250
symbolic address
relocatable address
physical memory
Quản lý bộ nhớ
17
Chuyển đổi địa chỉ (tt)
Địa chꢀ lệnh vꢄ dữ liệu đưꢈc chuyꢒn đổi thꢄnh địa chꢀ thꢃc cꢐ thꢒ
xꢊy ra tại ba thời điꢒm khꢎc nhau.
Compile time: nếu biết trưꢇc địa chꢀ bꢅ nhꢇ của chương trꢋnh thꢋ cꢐ
thꢒ kết gꢎn địa chꢀ tuyệt đối lúc biên dịch
Vꢆ dꢓ: chương trꢋnh .COM của MS-DOS
Khuyết điꢒm: phꢊi biên dịch lại nếu thay đổi địa chꢀ nạp chương
trình
Load time: vꢄo thời điꢒm loading, loader phꢊi chuyꢒn đổi địa chꢀ
khꢊ tꢎi định vị thꢄnh địa chꢀ thꢃc dꢃa trên mꢅt địa chꢀ nꢑn
Địa chꢀ thꢃc đưꢈc tꢆnh toꢎn vꢄo thời điꢒm nạp chương trꢋnh
phꢊi tiến hꢄnh reload nếu địa chꢀ nꢑn thay đổi
Quản lý bộ nhớ
18
Sinh địa chỉ tuyệt đối vào thời điểm dịch
Symbolic
addresses
Absolute
addresses
Physical memory
addresses
1024
1024
PROGRAM
JUMP i
JUMP 1424
LOAD 2224
JUMP 1424
LOAD 2224
i
j
424
LOAD j
DATA
Link/Load
Compile
2224
2224
Source code
Absolute load module
Process image
Quản lý bộ nhớ
19
Sinh địa chỉ tuyệt đối vào thời điểm nạp
Relative
(relocatable)
addresses
Symbolic
addresses
Physical memory
addresses
PROGRAM
0
1024
JUMP i
JUMP 400
JUMP 1424
1424
i
j
LOAD j
DATA
LOAD 1200
LOAD 2224
Compile
Link/Load
1200
2224
Relative
load module
Source code
Process image
Quản lý bộ nhớ
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 7: Quản lý bộ nhớ (Phần 1) - Trần Thị Như Nguyệt", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_he_dieu_hanh_chuong_7_quan_ly_bo_nho_phan_1_tran_t.pdf

