Bài giảng nguyên lý hệ điều hành chương 3 GV đặng quang hiển - Pdf 32

NGUYÊN LÝ HỆ ĐIỀU HÀNH
(3 Tín chỉ)

GV: Đỗ Công Đức
Khoa khoa học máy tính


Chương 3: QUẢN LÝ BỘ NHỚ
 Bộ nhớ là thiết bị lưu trữ dữ liệu của máy tính thông qua đó CPU
có thể trao đổi thông tin với môi trường ngoài
 Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ
(word) và mỗi từ có một địa chỉ
 Việc trao đổi thông tin với môi trường ngoài là thao tác đọc ghi dữ
liệu vào bộ nhớ tại một địa chỉ cụ thể
 Bộ nhớ gồm có: bộ nhớ trong (chính) và bộ nhớ ngoài (phụ).
Nhưng bộ nhớ thì có hạn mà yêu cầu bộ nhớ thì vô hạn.
 Bộ nhớ là tài nguyên dùng để cấp phát và chia sẻ cho nhiều tiến
trình đang ở trong trạng thái kích hoạt.
 Công cụ quản lý bộ nhớ là phân trang (paging) và phân đoạn
(Segmentation). HĐH kết hợp phân trang và phân đoạn để quản lý
6/28/2014

Chương 3. Quản lý bộ nhớ

2


Chương 3: QUẢN LÝ BỘ NHỚ

3.1. Nhiệm vụ của quản lý bộ nhớ
3.2. Các cấu trúc chương trình

Cấp các vùng nhớ cho các tiến trình có yêu cầu

Để làm tốt nhiệm vụ này bộ phận quản lý bộ nhớ phải thực hiện

6/28/2014

Chương 3. Quản lý bộ nhớ

4


NHIỆM VỤ CỦA QUẢN LÝ BỘ NHỚ
3.1.1 Sự tái định vị (Relocation)
 Trong hệ thống đa chương bộ nhớ được chia sẻ cho nhiều tiến trình
nên và bộ nhớ của các tiến trình yêu cầu thì luôn luôn lớn hơn bộ
nhớ vật lý của hệ thống.
 Khi không còn không gian bộ nhớ chính để nạp thì một chương
trình đang chạy trên bộ nhớ có thể Swap out ra đĩa và được Swap
in vào lại vào thời điểm thích hợp
 HĐH phải lưu lại tất cả các thông tin Swap out để khi Swap in vào
lại phải đúng vị trí đã được nạp trước đó để tiếp tục hoạt động
 Sau khi thực hiện xong thì HĐH phải tổ chức lại bộ nhớ để chuẩn
bị nạp các tiến trình khác có yêu cầu. Đôi khi chương trình swap
out có thể được swap in vào lại nhưng không đứng vị trí mà nó
được nạp trước đó
6/28/2014

Chương 3. Quản lý bộ nhớ

5

cho các tiến trình để HĐH có thể nạp được nhiều tiến trình vào bộ
nhớ và tiến trình này có thể hoạt động đồng thời với nhau

6/28/2014

Chương 3. Quản lý bộ nhớ

7


NHIỆM VỤ CỦA QUẢN LÝ BỘ NHỚ
3.1.4 Tổ chức bộ nhớ Logic
Đa số các chương trình đều được chia thành các modul, một vài
trong số đó là không thể thay đổi (read only, execute only). Nếu HĐH
và phần cứng giao dịch với các chương trình của người sử dụng, dữ
liệu trong các modul thì một số thuận lợi có thể thấy rõ sau đây
 Các modul có thể được viết và biên dịch độc lập, với tất cả các
tham chiếu từ một modul đến modul khác được giải quyết bởi hệ
thống tại thời điểm chạy
 Các mức độ khác nhau của sự bảo vệ, read-only, execute-only, có
thể cho ra các modul khác nhau
 Nó có thể đưa ra các cơ chế để các modul có thể được chia sẻ giữa
các tiến trình
 Công cụ đáp ứng cho yêu cầu này là sự phân đoạn (segmentation)
6/28/2014

Chương 3. Quản lý bộ nhớ

8


6/28/2014

Chương 3. Quản lý bộ nhớ

10


CẤU TRÚC CHƯƠNG TRÌNH
 Một chương trình được thực hiện phải được nạp vào bộ nhớ chính,
sau đó procssor đọc các lệnh từ bộ nhớ vào bên trong thanh ghi và
giải mã và tổ cức thực hiện
 Để nạp chương trình vào bộ nhớ thì bộ nhớ chính phải còn không
gian trống lớn hơn kích thước chương trình
 Nếu kích thước bộ nhớ chính không đủ cũng có thể nạp được nhiều
chương trình có kích thước lớn hơn không gian bộ nhớ vào bộ nhớ.
Yêu cầu người lập trình biết cách viết chương trình, dịch chương
trình theo đúng cấu trúc chương trình chuẩn. Điều này phải có sự
hỗ trợ của của trình biên dịch và các ngôn ngữ lập trình.
 Các cấu trúc chương trình như tuyến tính, động, overlay, phân
trang, phân đoạn
6/28/2014

Chương 3. Quản lý bộ nhớ

11


CẤU TRÚC CHƯƠNG TRÌNH
3.2.1 Cấu trúc chương trình tuyến tính
 Cấu trúc này thì các modul, các thư viện đều được dịch thành một

Chương 3. Quản lý bộ nhớ

13


CẤU TRÚC CHƯƠNG TRÌNH
3.2.2 Cấu trúc chương trình động
 Chương trình được viết dưới các modul riêng lẽ, mỗi modul thực
hiện một chức năng nào đó
 Cấu trúc động chương trình được biên dịch thành các modul riêng
lẽ, các thư viện không được tích hợp vào trong modul chính. Như
vậy với một chương trình nhưng dịch theo cấu trúc động thì nó tốn
bộ nhớ nhỏ hơn nhưng tính độc lập của nó kém hơn tuyến tính
 Cấu trúc động chương trình gồm modul chính và các modul khác.
Modul chính có thể gọi modul khác của chương trình vào bộ nhớ
 HĐH chỉ nạp modul chính vào bộ nhớ, modul chính chỉ chứa chủ
yếu là các dữ liệu dùng chung, các thủ tục khởi, các lời gọi thủ tục,
thư viện. Khi cần thì modul chính mới gọi các modul khác
6/28/2014

Chương 3. Quản lý bộ nhớ

14


CẤU TRÚC CHƯƠNG TRÌNH
3.2.2 Cấu trúc chương trình động
 Khi nạp thêm modul vào bộ nhớ thì chỉ nạp một modul mà có thủ
tục hay thư viên có sử dụng. Khi thực hiện xong thì nó có thể giải
phóng bộ nhớ để cấp cho cho modul khác Như vậy cấu trúc động


Chương 3. Quản lý bộ nhớ

16


CẤU TRÚC CHƯƠNG TRÌNH
3.2.3 Cấu trúc chương trình Overlay
 Cấu trúc Overlay chương trình cũng được biên dịch thành các
modul riêng lẽ và được phân thành các lớp, các modul trong cùng
một lớp có thể khác nhau, kích thước của modul lớn nhất là kích
thước của lớp
 Modul của lớp 0 có thể nạp modul của lớp 1,2,3…vào bộ nhớ
modul trong cùng lớp không được gọi lẫn nhau
 Cấu trúc Overlay đòi người lập trình cung cấp đầy đủ các thông tin
cần thiết như: chương trình gồm modul nào, modul gồm có thủ tục,
thư viện nào, kích thước của modul và chương trình chia bao nhiêu
lớp modul để cung cấp cho chương trình biên dịch xây dựng sơ đồ
biên dịch và thực thi. Sơ đồ này gọi là sơ đồ Overlay
6/28/2014

Chương 3. Quản lý bộ nhớ

17


CẤU TRÚC CHƯƠNG TRÌNH
3.2.3 Cấu trúc chương trình Overlay
 HĐH dùng sơ đồ Overlay để điều khiển thực thi chương trình
 Các sơ đồ Overlay chứa trong chương trình, chứa trong một tập tin


Chương 3. Quản lý bộ nhớ

19


CẤU TRÚC CHƯƠNG TRÌNH
3.2.4 Cấu trúc chương trình phân trang
 Cấu trúc phân trang các modul được biên dịch thành một modul
duy nhất và được chia thành các phần có kích thước bằng nhau
 Để thực hiện chương trình cấu trúc phân trang HĐH phải được
phân trang gồm các không gian có kích thước bằng nhau, bằng với
kích thước các trang chương trình gọi là các khung trang (Frame)
 Khi thực hiện chương trình, HĐH có thể nạp tất cả các trang của
chương trình vào tại các khung trang liên tiếp hoặc không liên tiếp
trên bộ nhớ
 HĐH phải xây dựng các bảng điều khiển trang (PCT: page control
table) để biết được một trang đã được nạp vào bộ nhớ, nếu nạp rồi
thì được chứa ở khung trang nào để xử lý
6/28/2014

Chương 3. Quản lý bộ nhớ

20


CẤU TRÚC CHƯƠNG TRÌNH
3.2.5 Cấu trúc chương trình phân đoạn
 Cấu trúc phân đoạn các modul được biên dịch thành các modul
riêng lẻ và gọi là các đoạn chương trình

tốc độ truy xuất dữ liệu trên bộ nhớ vì phải thông qua PCT, SCT
6/28/2014

Chương 3. Quản lý bộ nhớ

22


KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH
3.3.1 Kỹ thuật phân vùng cố định
 Không gian địa chỉ được chia thành 2 phần cố định:
• Phần nằm ở vùng địa chỉ thấp dùng để chứa chính HĐH
• Phần còn lại là phần user program, sẵn sàng cho việc sử dụng
của các tiến trình khi được nạp vào bộ nhớ chính.
 Phần user progaram đối với:
• HĐH đơn nhiệm: chỉ cấp cho 1 chương trình duy nhất, đơn
giản, kiểm soát được sự truy xuất của người sử dụng. Bằng cách
tạo ra một thanh ghi giới hạn địa chỉ. Khi truy xuất vào một địa
chỉ nào đó thì HĐH so sanh với địa chỉ đã ghi trong thanh ghi
giới hạn. Nếu nhỏ hơn không cho truy xuất, ngược lại cho truy
xuất. Việc này có sự hỗ trợ phần cứng.
6/28/2014

Chương 3. Quản lý bộ nhớ

23


KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH
3.3.1 Kỹ thuật phân vùng cố định

hiện tượng này gọi là phân mảnh bộ nhớ.
6/28/2014

Chương 3. Quản lý bộ nhớ

25


Trích đoạn KỸ THUẬT BỘ NHỚ ẢOKỸ THUẬT BỘ NHỚ ẢO
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status