intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 6: Quản lý bộ nhớ

Chia sẻ: Sdfas Vfdtg | Ngày: | Loại File: PDF | Số trang:46

113
lượt xem
16
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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)

Chủ đề:
Lưu

Nội dung Text: Bài 6: Quản lý bộ nhớ

  1. 6. Quản lý bộ nhớ  Khái niệm cơ sở  Nhiệm cụ của quản lý bộ nhớ  Overlay và swapping  Mô hình quản lý bộ nhớ đơn giản – Fixed partitioning – Dynamic partitioning – Cơ chế phân trang (paging) – Cơ chế phân đoạn (segmentation) TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.2
  2. Khái niệm cơ sở cơ  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. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.3
  3. Khái niệm cơ sở cơ  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ệ: phải kiểm tra truy xuất bộ nhớ 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 chỉ nhớ luận lý của user vào địa chỉ thực TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.4
  4. Nhiệm vụ của quản lý bộ nhớ  Trong các hệ thống đơn chương trình (uniprogramming), trên bộ nhớ chính ngoài hệ điều hành, chỉ có một chương trình đang thực hiện.  Trong các hệ thống đa chương (multiprogramming) trên bộ nhớ chính ngoài hệ điều hành, có thể có nhiều tiến trình đang hoạt động.  Do đó nhiệm vụ quản lý bộ nhớ của hệ điều hành trong hệ thống đa chương trình sẽ phức tạp hơn nhiều so với trong hệ thống đơn chương trình. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.5
  5. Nhiệm vụ của quản lý bộ nhớ  Đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi nó có yêu cầu, kể cả khi trên bộ nhớ không còn không gian trống,  Bảo vệ chính hệ điều hành và các tiến trình trên bộ nhớ tránh các trường hợp truy xuất bất hợp lệ xảy ra. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.6
  6. Nhiệm vụ của quản lý bộ nhớ  Bộ phận quản lý bộ nhớ phải thực hiện các nhiệm vụ sau đây: – Sự tái định vị (Relocation): không gian bộ nhớ chính thường được chia sẻ cho nhiều tiến trình khác nhau và yêu cầu bộ nhớ của các tiến trình luôn > không gian bộ nhớ vật lý mà hệ thống có được. – Do dó, một chương trình đang hoạt động trên bộ nhớ cũng có thể bị đưa ra đĩa (swap-out) và nó sẽ được đưa vào lại (swap-in) bộ nhớ tại một thời điểm thích hợp. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.7
  7. Nhiệm vụ của quản lý bộ nhớ  Vấn đề đặt ra là khi đưa một chương trình vào lại bộ nhớ thì hệ điều hành phải định vị nó vào đúng vị trí mà nó đã được nạp trước đó.  Để thực hiện được điều này hệ điều hành phải có các cơ chế để ghi lại tất cả các thông tin liên quan đến một chương trình bị swap-out, các thông tin này là cơ sở để hệ điều hành swap-in chương trình vào lại bộ nhớ chính và cho nó tiếp tục hoạt động. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.8
  8. Nhiệm vụ của quản lý bộ nhớ  Bảo vệ bộ nhớ (Protection): Mỗi tiến trình phải được bảo vệ để chống lại sự truy xuất bất hợp lệ vô tình hay có chủ ý của các tiến trình khác.  Để thực hiện điều này hệ thống quản lý bộ nhớ phải biết được không gian địa chỉ của các tiến trình khác trên bộ nhớ và phải kiểm tra tất cả các yêu cầu truy xuất bộ nhớ của mỗi tiến trình khi tiến trình đưa ra địa chỉ truy xuất. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.9
  9. Nhiệm vụ của quản lý bộ nhớ  Chia sẻ bộ nhớ (Sharing): Bất kỳ một chiến lược nào được cài đặt đều phải có tính mềm dẻo để cho phép nhiều tiến trình có thể truy cập đến cùng một địa chỉ trên bộ nhớ chính  Ví dụ, khi có nhiều tiến trình cùng thực hiện một chương trình thì việc cho phép mỗi tiến trình cùng truy cập đến một bản copy của chương trình sẽ thuận lợi hơn khi cho phép mỗi tiến trình truy cập đến một bản copy sở hữu riêng. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.10
  10. Nhiệm vụ của quản lý bộ nhớ  Tổ chức bộ nhớ logic (Logical organization): Bộ nhớ chính của hệ thống máy tính được tổ chức như là một dòng hoặc một mảng, không gian địa chỉ bao gồm một dãy có thứ tự các byte hoặc các word. Bộ nhớ phụ cũng được tổ chức tương tự. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.11
  11. Nhiệm vụ của quản lý bộ nhớ  Tổ chức bộ nhớ vật lý (Physical organization): bộ nhớ máy tính được tổ chức theo 2 cấp: bộ nhớ chính và bộ nhớ phụ. – Bộ nhớ chính cung cấp một tốc độ truy cập dữ liệu cao, nhưng dữ liệu trên nó phải được làm tươi thường xuyên và không thể tồn tại lâu dài trên nó. – Bộ nhớ phụ có tốc độ truy xuất chậm và rẻ tiền hơn so với bộ nhớ chính nhưng nó không cần làm tươi thường xuyên. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.12
  12. Cơ chế overlay  Tại mỗi thời điểm, chỉ giữ lại trong bộ nhớ những lệnh hoặc dữ liệu cần thiết, giải phóng các lệnh/dữ liệu chưa hoặc không cần dùng đến.  Cơ chế này rất hữu dụng khi kích thước một process lớn hơn không gian bộ nhớ cấp cho process đó.  Cơ chế này được điều khiển bởi người sử dụng (thông qua sự hỗ trợ của các thư viện lập trình) chứ không cần sự hỗ trợ của hệ điều hành TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.13
  13. Cơ chế swapping  Một process có thể tạm thời bị swap ra khỏi bộ nhớ chính và lưu trên một hệ thống lưu trữ phụ. Sau đó, process có thể được nạp lại vào bộ nhớ để tiếp tục quá trình thực thi. Swapping policy: hai ví dụ – Round-robin: swap out P1 (vừa tiêu thụ hết quantum của nó), swap in P2 , thực thi P3 ,… – Roll out, roll in: dùng trong cơ chế định thời theo độ ưu tiên (priority-based scheduling)  Process có độ ưu tiên thấp hơn sẽ bị swap out nhường chỗ cho process có độ ưu tiên cao hơn mới đến được nạp vào bộ nhớ để thực thi  Hiện nay, ít hệ thống sử dụng cơ chế swapping trên TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.14
  14. Minh họa cơ chế swapping cơ TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.15
  15. Kỹ thuật cấp phát bộ nhớ (nạp chương trình vào bộ nhớ chính)  Trong chương này, mô hình quản lý bộ nhớ là một mô hình đơn giản, không có bộ nhớ ảo.  Một process phải được nạp hoàn toàn vào bộ nhớ thì mới được thực thi (ngoại trừ khi sử dụng cơ chế overlay).  Các cơ chế quản lý bộ nhớ sau đây rất ít (hầu như không còn) được dùng trong các hệ thống hiện đại – Phân vùng cố định (fixed partitioning) – Phân vùng động (dynamic partitioning) – Phân trang đơn giản (simple paging) – Phân đoạn đơn giản (simple segmentation) TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.16
  16. Kỹ thuật phân vùng cố định (Fixed Partitioning)  Bộ nhớ chính đượ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ệ điều hành – Phần còn lại, tạm gọi là phần user program, là sẵn sàng cho việc sử dụng của các tiến trình khi các tiến trình được nạp vào bộ nhớ chính.  Trong các hệ thống đơn chương, phần user program cấp cho một chương trình duy nhất=> nhiệm vụ quản lý bộ nhớ của hệ điều hành trong trường hợp này chỉ kiểm soát sự truy xuất bộ nhớ của chương trình người sử dụng, không cho nó truy xuất lên vùng nhớ của hệ điều hành. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.17
  17. Kỹ thuật phân vùng cố định (Fixed Partitioning)  Trong các hệ thống đa chương, phần user program lại được phân ra thành nhiều phân vùng (partition) với các vùng cố định có kích thước bằng nhau hay không bằng nhau.  Trong trường hợp này một tiến trình có thể được nạp vào bất kỳ partition nào nếu kích thước của nó nhỏ hơn hoặc bằng kích thước của partition và partition này còn trống. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.18
  18. Kỹ thuật phân vùng cố định (Fixed Partitioning)  Khi có tiến trình cần được nạp vào bộ nhớ nhưng tất cả các partition đều đã chứa các tiến trình khác thì hệ điều hành có thể chuyển một tiến trình hợp lệ (kích thước vừa đủ, không đang ở trạng thái ready hoặc running, không có quan hệ với các tiến trình running khác, ...), ra ngoài (swap out), để lấy partition trống đó nạp tiến trình vừa có yêu cầu.  Đây là nhiệm vụ phức tạp của hệ điều hành, hệ điều hành phải chi phí cao cho công việc này. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.19
  19. Kỹ thuật phân vùng cố định (Fixed Partitioning)  Có hai trở ngại trong việc sử dụng các phân vùng cố định với kích thước bằng nhau:  Thứ nhất: – Khi kích thước của chương trình là quá lớn so với kích thước của một partition -> phải thiết kế chương trình theo cấu trúc overlay. – Cấu trúc chương trình overlay tiết kiệm được bộ nhớ nhưng yêu cầu cao ở người lập trình. TT Công Nghệ Thông Tin, Đại Học Công Nghiệp TP HCM 9.20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2