Mô tả:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÀI GIẢNG MÔN
HỆ ĐIỀU HÀNH
Giảng viên:
ThS. Nguyễn Thị Ngọc Vinh
Bộ môn:
Khoa học máy tính- Khoa CNTT1
Học kỳ/Năm biên soạn: I/ 2009 - 2010
CHƢƠNG 3: QUẢN LÝ BỘ NHỚ
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 2
NỘI DUNG
1.
2.
3.
4.
5.
6.
7.
Địa chỉ và các vấn đề liên quan
Một số cách tổ chức chƣơng trình
Các yêu cầu quản lý bộ nhớ
Phân chƣơng bộ nhớ
Phân trang bộ nhớ
Phân đoạn bộ nhớ
Bộ nhớ ảo
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 3
I. ĐỊA CHỈ VÀ CÁC VẤN ĐỀ LIÊN QUAN
Vấn đề gán địa chỉ:
Khi viết chƣơng trình, sử dụng địa chỉ
dƣới dạng tên (biến, hàm)
Khi dịch, chƣơng trình dịch ánh xạ các
tên đó theo địa chỉ tƣơng đối tính từ
đầu file obj(biến, hàm)
Chƣơng trình liên kết ánh xạ tiếp địa
chỉ đó thành địa chỉ tƣơng đối tính từ
đầu chƣơng trình
Mã nguồn mô
đun khác
(printf.c)
Mã nguồn
(prog.c)
Chương trình
dịch
Chương trình
dịch
Mô đun object
(printf.o)
Mô đun object
(prog.o)
Thư viện hóa
Thư viện
(*.lib)
HDH đọc chƣơng trình vào bộ nhớ
để thực hiện; vị trí trong bộ nhớ
không biết trƣớc
=> HDH cần có khả năng gán địa chỉ
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Chương trình
liên kết
Mô đun tải
được
(prog.exe)
Chương trình
tải (hệ điều
hành)
Tiến trình trong
bộ nhớ
Trang 4
I. ĐỊA CHỈ VÀ CÁC VẤN ĐỀ LIÊN QUAN
Địa chỉ logic:
Gán cho các lệnh và dữ liệu không phụ thuộc vào vị trí
cụ thể tiến trình trong bộ nhớ
Chƣơng trình ứng dụng chỉ nhìn thấy và làm việc với
địa chỉ logic này
Là địa chỉ tƣơng đối tức là mỗi phần tử của chƣơng
trình đƣợc gán một địa chỉ tƣơng đối đối với một vị trí
nào đó
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 5
I. ĐỊA CHỈ VÀ CÁC VẤN ĐỀ LIÊN QUAN
Địa chỉ vật lý:
Là địa chỉ chính xác trong bộ nhớ máy tính
Các mạch nhớ sử dụng để truy nhập tới chƣơng trình và
dữ liệu
Địa chỉ logic đƣợc chuyển thành địa chỉ vật lý nhờ
khối ánh xạ địa chỉ.
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 6
II. MỘT SỐ CÁCH TỔ CHỨC CHƢƠNG TRÌNH
1. Tải trong quá trình thực hiện
Hàm chƣa bị gọi thì chƣa tải vào bộ nhớ
Chƣơng trình chính đƣợc load vào bộ nhớ và chạy
Khi có lời gọi hàm:
Chƣơng trình sẽ kiểm tra hàm đó đƣợc tải vào chƣa.
Nếu chƣa, chƣơng trình sẽ tiến hành tải sau đó ánh xạ địa chỉ
hàm vào không gian chung của chƣơng trình và thay đổi bảng
địa chỉ để ghi lại các ánh xạ đó
Lập trình viên đảm nhiệm, HDH cung cấp các hàm thƣ
viện cho tải động
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 7
II. MỘT SỐ CÁCH TỔ CHỨC CHƢƠNG TRÌNH
2. Liên kết động và thƣ viện dùng chung
Liên kết tĩnh: các hàm và thƣ viện đƣợc
liên kết luôn vào chƣơng trình
Lãng phí không gian cả trên đĩa và
MEM trong
Trong giai đoạn liên kết, không kết nối
các hàm thƣ viện vào chƣơng trình mà
chỉ chèn các thông tin về hàm thƣ viện
đó (stub)
Mô đun khác
(printf.c)
Mã nguồn
(prog.c)
Chương trình
dịch
Chương trình
dịch
Mô đun object
(printf.o)
Mô đun object
(prog.o)
Thư viện hóa
Chương trình
liên kết
Mô đun tải
được
(prog.exe)
Thư viện dùng
chung (*.dll)
Chương trình tải
động (hệ điều
hành)
Chương trình tải
(hệ điều hành)
Tiến trình trong bộ nhớ
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 8
II. MỘT SỐ CÁCH TỔ CHỨC CHƢƠNG TRÌNH
2. Liên kết động và thƣ viện dùng chung
Các modul thƣ viện đƣợc liên kết trong quá trình thực
hiện:
Không giữ bản sao các modul thƣ viện mà tiến trình giữ stub
chứa thông tin về modul thƣ viện
Khi stub đƣợc gọi, nó kiểm tra modul tƣơng ứng đã có trong bộ
nhớ chƣa. Nếu chƣa, thì tải phần còn lại và dùng.
Lần tiếp theo cần sử dụng, modul thƣ viện sẽ đƣợc chạy trực
tiếp
Mỗi modul thƣ viện chỉ có 1 bản sao duy nhất chứa trong MEM
Cần hỗ trợ từ HDH
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 9
III. CÁC YÊU CẦU QUẢN LÝ BỘ NHỚ
1. Cấp phát lại
Cần có khả năng tráo đổi các tiến trình vào và ra ngoài
MEM để tối đa sử dụng vi xử lý
Không thể yêu cầu tiến trình đƣợc chuyển lại vào MEM
thì phải vào đúng chỗ nó đã dùng trƣớc khi bị chuyển ra
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 10
III. CÁC YÊU CẦU QUẢN LÝ BỘ NHỚ
2. Bảo vệ
Mỗi tiến trình phải đƣợc bảo vệ khỏi các tham chiếu
không mong muốn từ các tiến trình khác vào vùng nhớ
dành cho mình
Mọi tham chiếu bộ nhớ của 1 tiến trình phải đƣợc kiểm
tra lúc chạy
HDH không đoán trƣớc đƣợc mọi tham chiếu MEM =>
phần cứng VXL đảm nhiệm
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 11
III. CÁC YÊU CẦU QUẢN LÝ BỘ NHỚ
3. Chia sẻ
Nhiều tiến trình cần và đƣợc phép truy cập vào cùng 1
vùng nhớ
Các tiến trình đang cộng tác cần chia sẻ truy nhập tới 1
cấu trúc dữ liệu
=> Phải cho phép truy cập tới các vùng chia sẻ
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 12
III. CÁC YÊU CẦU QUẢN LÝ BỘ NHỚ
4. Cấu trúc logic & cấu trúc vật lý
Cấu trúc logic:
MEM đƣợc cấu trúc 1 cách tuyến tính gồm các byte,
còn chƣơng trình đƣợc tổ chức thành các modul
Phải đáp ứng để:
Các modul có thể đƣợc viết và thông dịch 1 cách độc lập
Mức độ bảo vệ có thể khác nhau
Modul có thể đƣợc chia sẻ giữa các tiến trình
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 13
III. CÁC YÊU CẦU QUẢN LÝ BỘ NHỚ
4. Cấu trúc logic & cấu trúc vật lý
Cấu trúc vật lý:
2 mức:
Bộ nhớ chính: nhanh; chi phí cao, dung lƣợng ít
Bộ nhớ phụ: dung lƣợng lớn, cho phép lƣu chƣơng trình và
dữ liệu trong thời gian dài
Hệ thống có trách nhiệm chuyển đổi thông tin giữa 2
mức
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 14
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
1. Phân chƣơng cố định
Chia MEM thành các chƣơng với số lƣợng nhất định,
không thay đổi, gán cho tiến trình 1 chƣơng chứa data,
lệnh
Kích thƣớc các chƣơng bằng nhau:
Đơn giản
Kích thƣớc chƣơng trình > kích thƣớc chƣơng => không thể
cấp phát
Gây phân mảnh trong
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 15
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
1. Phân chƣơng cố định
Kích thƣớc các chƣơng khác nhau:
Chọn chƣơng có kích thƣớc nhỏ nhất: cần có hàng đợi
lệnh cho mỗi chƣơng:
Giảm phân mảnh trong, tối
ƣu cho từng chƣơng
Hệ thống không tối ƣu
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 16
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
1. Phân chƣơng cố định
Kích thƣớc các chƣơng khác nhau:
Dùng hàng đợi chung cho mọi chƣơng:
Chƣơng sẵn có nhỏ nhất sẽ
đƣợc cấp phát
Khi 1 chƣơng đƣợc giải
phóng: chọn tiến trình gần
đầu hàng độ nhất và có
kích thƣớc phù hợp nhất
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 17
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
1. Phân chƣơng cố định
Ƣu điểm: đơn giản, ít xử lý
Nhƣợc điểm:
Số lƣợng chƣơng xác định tại thời điểm tạo hệ thống hạn chế số
lƣợng tiến trình hoạt động
Kích thƣớc chƣơng thiết lập trƣớc: không hiệu quả
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 18
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
2. phân chƣơng động
Kích thƣớc, số lƣợng và vị trí chƣơng đều có thể thay đổi
Khi có yêu cầu, HDH cấp cho tiến trình 1 chƣơng có kích
thƣớc đúng bằng tiến trình đó
Khi tiến trình kết thúc sẽ tạo vùng trống trong MEM
Các vùng trống nằm cạnh nhau đƣợc nhập lại thành vùng
lớn hơn
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 19
IV. KỸ THUẬT PHÂN CHƢƠNG BỘ NHỚ
2. Phân chƣơng động
Tránh phân mảnh trong
Gây phân mảnh ngoài: dồn những vùng trống nhỏ thành lớn
(nén)
Sử dụng các chiến lƣợc cấp chƣơng
Chọn vùng thích hợp đầu tiên
Vùng thích hợp nhất
Vùng không thích hợp nhất
www.ptit.edu.vn
GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 20
- Xem thêm -