YOMEDIA
Bài giảng Hệ điều hành - Chương 4: Memory (Lương Minh Huấn)
Chia sẻ: Bạch Khinh Dạ Lưu
| Ngày:
| Loại File: PDF
| Số trang:89
61
lượt xem
14
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài giảng Hệ điều hành - Chương 4: Memory (Lương Minh Huấn) có nội dung trình bày về các khái niệm cơ sở, các kiểu địa chỉ nhớ, chuyển đổi địa chỉ nhớ, cấp phát bộ nhớ liên tục, cấp phát bộ nhớ không liên tục, quản lý bộ nhớ, nạp chương trình vào bộ nhớ,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Hệ điều hành - Chương 4: Memory (Lương Minh Huấn)
- TRƯỜNG ĐẠI HỌC SÀI GÒN
CHƯƠNG 4: MEMORY
GV: LƯƠNG MINH HUẤN
- NỘI DUNG
I. Khái niệm cơ sở
II. Các kiểu địa chỉ nhớ
III. Chuyển đổi địa chỉ nhớ
IV.Cấp phát bộ nhớ liên tục
V. Cấp phát bộ nhớ không liên tục
- I. KHÁI NIỆM CƠ SỞ
➢ Một chương trình muốn chạy thì phải được nạp vào trong bộ nhớ chính.
➢ Vấn đề:
▪ Khi nào nạp?
▪ Nạp vào đâu?
▪ Nạp những phần nào?
➢ Quản lý bộ nhớ giúp tối ưu hóa hoạt động của bộ nhớ
▪ Tối ưu hóa số tiến trình cùng lúc ở trong bộ nhớ chính nhằm nâng cao
tính đa chương
▪ Tận dụng tối đa bộ nhớ của máy tính
- I. KHÁI NIỆM CƠ SỞ
➢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ả tối ưu.
➢Mục tiêu cần đạt là nạp càng nhiều process vào bộ nhớ càng tốt
(gia tăng tính đa chương).
➢Trong hầu hết 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.
- I. KHÁI NIỆM CƠ SỞ
➢Nhiệm vụ của quản lý bộ nhớ:
▪ Tổ chức và quản lý bộ nhớ vật lý
▪ Tổ chức và quản lý bộ nhớ logic
▪ Định vị và tái định vị các tiến trình
▪ Chia sẻ bộ nhớ cho các tiến trình
▪ Bảo vệ vùng nhớ của các tiến trình
- I. KHÁI NIỆM CƠ SỞ
➢Layout của bộ nhớ:
- II. CÁC KIỂU ĐỊA CHỈ NHỚ
➢Bộ nhớ: là một dãy các ô nhớ liên tục
nhau
➢Mỗi ô nhớ (một word) có một địa chỉ
➢Chương trình = tập các câu lệnh (chỉ
thị máy) + dữ liệu
➢Nạp chương trình vào bộ nhớ => đặt
các chỉ thị và dữ liệu vào các ô nhớ
=> xác định ánh xạ giữa các chỉ thị,
dữ liệu vào địa chỉ trong bộ nhớ
- II. CÁC KIỂU ĐỊA CHỈ NHỚ
➢ Địa chỉ vật lý (physical address – địa chỉ thực, địa chỉ tuyệt đối) là một vị trí thực
trong bộ nhớ chính.
➢ Địa chỉ logic (logical address – địa chỉ luận lý) là tham chiếu đến một vị trí nhớ
độc lập với cấu trúc, và tổ chức vật lý của bộ nhớ.
▪ 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ỉ logic.
➢ Địa chỉ tương đối (relative address) là một kiểu địa chỉ logic trong đó các địa chỉ
được biểu diễn tương đối so với một điểm xác định nào đó trong chương trình.
➢ Khi lệnh được thực thi, các tham chiếu đến địa chỉ logic phải được dịch sang địa
chỉ vật lý. Thao tác này cần có sự hổ trợ của phần cứng để đạt hiệu suất cao.
- 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ớ:
- CƠ CHẾ THỰC HIỆN LINKING
- III.CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
➢Chuyển đổi địa chỉ: quá trình ánh xạ đị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: tượng trưng (symbolic – biến, hằng, pointer,..)
▪ Thời điểm biên dịch: các địa chỉ có thể tái định vị (relocatable
address), hay địa chỉ tương đối (relative address).
• Ví dụ: biến a ở vị trí 14 bytes so với phần header của module.
▪ Thời điểm linking/ loading: địa chỉ tuyệt đối. Ví dụ: địa chỉ nằm tại
địa chỉ bộ nhớ thực: 2030.
- III. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
- III. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
➢Việc ánh xạ chỉ thị, dữ liệu vào địa chỉ bộ nhớ có thể xảy ra tại 3
thời điểm:
▪ Thời điểm biên dịch: nếu địa chỉ vùng nhớ được biết trước thì mã
lệnh tuyệt đối (có địa chỉ tuyệt đối) có thể được tạo ra ngay tại thời
điểm biên dịch. Nếu địa chỉ bắt đầu của vùng nhớ bị thay đổi thì sẽ
phải biên dịch lại.
▪ Thời điểm nạp: Tạo ra các mã lệnh có thể tái định vị (relocatable
code) nếu địa chỉ vùng nhớ không thể biết tại thời điểm biên dịch.
- III. CHUYỂN ĐỔI ĐỊA CHỈ NHỚ
▪ Thời điểm thi hành: Việc kết
hợp mã lệnh và địa chỉ sẽ
được trì hoãn cho đến lúc
chạy chương trình nếu tiến
trình đó có thể bị di chuyển từ
phân đoạn nhớ này đến phân
đoạn nhớ khác. Cần phải có
hỗ trợ từ phần cứng để ánh xạ
địa chỉ (ví dụ: thanh ghi cơ sở
và thanh ghi giới hạn (base
registers, limit registers)).
- CHUYỂN ĐỔI VÀO THỜI ĐIỂM DỊCH
➢Ví dụ: chương trình .com của MS-DOS, phát biểu assembly org
xxx
- CHUYỂN ĐỔI VÀO THỜI ĐIỂM NẠP
- CHUYỂN ĐỔI VÀO THỜI ĐIỂM THỰC THI
- DYNAMIC LINKING
➢ Quá trình link một số module ngoài (external module) được thực hiện sau
khi đã tạo xong load module.
▪ Trong windows: module ngoài là các file dll, trong Unix là các file .so
(shared library).
➢ Load module chỉ chứa các tham chiếu đến các module ngoài. Các tham
chiếu này có thể chuyển đổi trong thời điểm sau:
▪ Loading time (load time dynamic linking)
▪ Run time: khi có một lời gọi đến thủ tục được định nghĩa trong module
ngoài. (run time dynamic linking).
➢ OS chịu trách nhiệm tìm các module ngoài và kết nối vào load module (kiểm
tra xem module ngoài đã load vào bộ nhớ chưa).
- DYNAMIC LINKING
➢Ưu điểm:
➢Module ngoài là một thư viện, thủ tục cung cấp các tiện ích của
OS. Các chương trình thực thi có thể dùng các phiên bản khác
nhau của module ngoài mà không cần sửa đổi, biên dịch lại.
➢Chia sẻ: một module ngoài chỉ cần nạp vào bộ nhớ một lần. Các
process cần dùng module ngoài này thì cùng chia sẻ đoạn mã của
module ngoài đó.
➢Phương pháp dynamic linking cần có sự hổ trợ của OS trong việc
kiểm tra xem thủ tục nào có thể chia sẻ giữa các process hay một
phần mã của riêng process.
- DYNAMIC LOADING
➢Cơ chế: chỉ khi nào được gọi đến thì một thủ tục mới được nạp
vào bộ nhớ chính => tăng độ hiệu dụng của bộ nhớ (memory
utilization) bởi vì các thủ tục ít dùng sẽ không chiếm chỗ trong bộ
nhớ.
➢Rất hiệu quả trong trường hợp tồn tại khối lượng lớn mã chương
trình có tần xuất sử dụng thấp, không sử dụng thường xuyên.
➢Không cần sự hổ trợ từ OS.
▪ User có trách nhiệm thiết kế và thực hiện các chương trình có
dynamic loading.
▪ OS cung cấp các thư viện hổ trợ, tạo điều kiện cho các programmer.
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...