Danh mục

Bài giảng Lập trình hệ điều hành: Chương 7 - Hà Duy Anh

Số trang: 57      Loại file: pdf      Dung lượng: 4.25 MB      Lượt xem: 18      Lượt tải: 0    
10.10.2023

Xem trước 6 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Lập trình hệ điều hành - Chương 7: Main Memory" cung cấp cho người học các kiến thức: Tổng quan, hoán vị(Swapping), cấp phát bộ nhớ liên tục, phân đoạn (Segmentation), phân trang (Paging), cấu trúc bảng trang. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hệ điều hành: Chương 7 - Hà Duy AnhKhoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ Giảng viên: Hà Duy An1.Tổng quan2.Hoán vị (Swapping)3.Cấp phát bộ nhớ liên tục4.Phân đoạn (Segmentation)5.Phân trang (Paging)6.Cấu trúc bảng trang10/28/2013 2 Chương 7: Main Memory• Chương trình phải được mang vào bộ nhớ và được đặt vào một tiến trình để thực thi.• Bộ nhớ chính và các thanh ghi là hai thiết bị lưu trữ mà CPU có thể truy cập trực tiếp• Đơn vị bộ nhớ (memory unit) chỉ nhìn thấy một luồng địa chỉ + yêu cầu đọc, hay địa chỉ + dữ liệu và yêu cầu ghi• Các thanh ghi có thể được truy cập chỉ với một chu kỳ CPU (hay ít hơn)• Truy cập bộ nhớ chính cần nhiều chu kỳ CPU hơn• Cache nằm ở giữa bộ nhớ chính và các thanh ghi• Các thao tác trên bộ nhớ cần được đảm bảo chính xác10/28/2013 4 Chương 7: Main Memory• Một cặp thanh ghi nền (base) và giới hạn (limit) xác định không gian địa chỉ của tiến trình trên bộ nhớ• CPU phải kiểm tra tất cả truy cập bộ nhớ từ không gian người dùng nằm trong khoảng giới hạn của thanh ghi nền và giới hạn10/28/2013 5 Chương 7: Main Memory10/28/2013 6 Chương 7: Main Memory• Tập hợp các chương trình trên đĩa, sẵn sàng được mang vào bộ nhớ để thực thi hình thành một hàng đợi nhập (input queue) o Nếu không có sự hỗ trợ nào, chương trình phải được nạp vào từ địa chỉ: 0000• Hầu hết các hệ thống máy tính cho phép các tiến trình có thể nằm ở bất kỳ phần nào trong bộ nhớ vật lý• Các địa chỉ ở trong các dạng thức khác nhau tại mỗi giai đoạn khác nhau của chương trình: o Các địa chỉ tượng trưng trong chương trình nguồn. o Các địa chỉ tái định vị khi biên dịch. o Các địa chỉ tuyệt đối khi nạp (loading) hoặc nối kết (linking). => Mỗi giai đoạn, việc gắng kết sẽ ánh xạ từ một không gian địa chỉ này sang một không gian địa chỉ khác.10/28/2013 7 Chương 7: Main Memory• Việc gắn kết địa chỉ (address binding) của các chỉ thị và dữ liệu vào địa chỉ bộ nhớ có thể diễn ra tại 3 giai đoạn khác nhau: o Thời điểm biên dịch (compile time): Nếu vị trí vùng nhớ được biết trước, thì có thể sinh ra mã lệnh tuyệt đối (absolute code); tuy nhiên chương trình phải được biên dịch lại nếu vị trí bắt đầu của vùng nhớ thay đổi. o Thời điểm nạp (load time): trình biên dịch phải sinh ra mã lệnh có thể tái định vị (relocatable code) nếu không thể biết được vị trí vùng nhớ tại thời điểm biên dịch. Trong trường hợp này việc gắng kết bị trì hoãn cho đến thời điểm nạp. Chương trình phải được nạp lại nếu vị trí bắt đầu của vùng nhớ thay đổi o Thời điểm thực thi (execution time): Việc gắn địa chỉ bị trì hoãn cho đến thời điểm thực thi nếu tiến trình có thể phải di chuyển được từ phân đoạn bộ nhớ (segment) này đến phân đoạn bộ nhớ khác khi thực thi. Cần thêm sự hỗ trợ của phần cứng để ánh xạ địa chỉ(ví dụ như các thanh ghi cơ sở (base) và giới hạn (limit)).10/28/2013 8 Chương 7: Main Memory10/28/2013 9 Chương 7: Main Memory• Cơ chế cho phép không gian địa chỉ luận lý tách biệt khỏi không gian địa chỉ vật lý, chính là trọng tâm của cơ chế quản lý bộ nhớ. o Địa chỉ luận lý (logical address): được sinh ra bởi CPU, cũng được xem là địa chỉ ảo (virtual address). o Địa chỉ vật lý (physical address): địa chỉ được nhìn thấy bởi bộ quản lý bộ nhớ.• Địa chỉ luận lý và vật lý là như nhau trong sơ đồ gắn kết địa chỉ tại thời điểm biên dịch và nạp chương trình.• Địa chỉ luận lý và địa chỉ vật lý sẽ khác nhau trong sơ đồ gắn kết địa chỉ tại thời điểm thực thi.10/28/2013 10 Chương 7: Main Memory• Bộ quản lý bộ nhớ (Memory management Unit – MMU): thiết bị phần cứng làm nhiệm vụ ánh xạ địa chỉ ảo sang địa chỉ vật lý => nhiều phương thức có thể được sử dụng• Một sơ đồ ánh xạ đơn giản là dùng thanh ghi tái định vị (relocation/base register): giá trị của thanh ghi tái định vị được cộng vào bất cứ địa chỉ nào sinh ra bởi tiến trình người dùng vào thời điểm nó được gửi đến bộ nhớ o MS-DOS trên Intel 80x86 sử dụng 4 thanh ghi tái định vị• Chương trình người dùng thực thi với các địa chỉ luận lý; nó không bao giờ thấy được địa chỉ vật lý thật sự10/28/2013 11 Chương 7: Main Memory10/28/2013 12 Chương 7: Main Memory• Nạp tĩnh (static loading): toàn bộ chương trình và dữ liệu được nạp một lần vào bộ nhớ vật lý cho tiến trình để chạy.• Nạp động (dynamic loading): thường trình (routine) chỉ được nạp khi nó được gọi. o Tất cả các thường trình được lưu trên đĩa theo định dạng nạp có thể tái định vị. o Bộ nạp liên kết tái định vị (relocatable link ...

Tài liệu được xem nhiều: