« Home « Kết quả tìm kiếm

Giáo Trình Hệ Điều Hành –quản lý bộ nhớ


Tóm tắt Xem thử

- QUẢN LÝ BỘ NHỚ.
- Hiểu các cách khác nhau để quản lý bộ nhớ.
- Vận dụng một tiếp cận quản lý bộ nhớ phù hợp với hệ thống xác định.
- Trong chương này chúng ta sẽ thảo luận nhiều cách khác nhau để quản lý bộ nhớ.
- Bộ nhớ là trung tâm để điều hành hệ thống máy tính hiện đại.
- Các chỉ thị này có thể gây việc nạp bổ sung các từ và lưu trữ tới các địa chỉ bộ nhớ xác định..
- Chương trình này được mang vào trong bộ nhớ và được đặt trong một quá trình để nó được thực thi.
- Phụ thuộc vào việc quản lý bộ nhớ đang dùng, quá trình có thể được di chuyển giữa đĩa và bộ nhớ trong khi thực thi.
- Khi một quá trình được thực thi, nó truy xuất các chỉ thị và dữ liệu từ bộ nhớ.
- Cuối cùng, một quá trình kết thúc và không gian bộ nhớ của nó được xác định là trống..
- Hầu hết các hệ thống cho phép một quá trình người dùng nằm ở bất cứ phần nào của bộ nhớ vật lý.
- Giá trị trong thanh ghi tái định vị được cộng vào mỗi địa chỉ được tạo ra bởi quá trình người dùng tại thời điểm nó được gởi tới bộ nhớ.
- Trong thảo luận của chúng ta gần đây, toàn bộ chương trình và dữ liệu của một quá trình phải ở trong bộ nhớ vật lý để quá trình thực thi.
- Kích thước của quá trình bị giới hạn bởi kích thước của bộ nhớ vật lý.
- Để đạt được việc sử dụng không gian bộ nhớ tốt hơn, chúng ta có thể sử dụng nạp động (dynamic loading).
- Chương trình chính được nạp vào bộ nhớ và được thực thi.
- Yêu cầu này làm lãng phí cả không gian đĩa và bộ nhớ chính.
- Nếu chưa, chương trình này sẽ nạp chương trình con vào trong bộ nhớ.
- Để cho phép một quá trình lớn hơn lượng bộ nhớ được cấp phát cho nó, chúng ta sử dụng cơ chế phủ lắp (overlays).
- Để nạp mọi thứ một lần, chúng ta cần 200KB bộ nhớ.
- Bây giờ chúng ta có thể chạy trình hợp ngữ trong 150KB bộ nhớ.
- Một quá trình cần ở trong bộ nhớ để được thực thi.
- Do đó, bộ định thời biểu CPU sẽ cấp những phần thời gian tới những quá trình khác trong bộ nhớ.
- Nếu liên kết địa chỉ được thực hiện tại thời điểm hợp dịch hay nạp thì quá trình không thể được di chuyển vào không gian bộ nhớ khác vì.
- Bộ phân phát kiểm tra để thấy quá trình tiếp theo trong hàng đợi ở trong bộ nhớ không.
- Một quá trình có thể đang chờ thao tác nhập/xuất khi chúng ta hoán vị quá trình đó tới nơi trống bộ nhớ của nó.
- V Cấp phát bộ nhớ liên tục.
- Bộ nhớ chính phải cung cấp cho cả hệ điều hành và các quá trình người dùng khác nhau.
- Do đó, chúng ta cần cấp phát những phần khác nhau của bộ nhớ chính trong những cách hiệu quả nhất có thể.
- Phần này chúng ta giải thích một phương pháp thông dụng, cấp phát bộ nhớ liên tục..
- Bộ nhớ thường được phân chia thành hai phân khu, một cho hệ điều hành định vị và một cho các quá trình người dùng.
- Chúng ta có thể đặt hệ điều hành ở bộ nhớ cao hay bộ nhớ thấp.
- Do đó, trong giáo trình này chúng ta sẽ thảo luận chỉ trường hợp hệ điều hành định vị trong bộ nhớ thấp.
- Chúng ta thường muốn nhiều quá trình người dùng định vị trong bộ nhớ tại cùng thời điểm.
- Trong cấp phát bộ nhớ liên tục, mỗi quá trình được chứa trong một phần bộ nhớ liên tục..
- V.1 Bảo vệ bộ nhớ.
- Địa chỉ được tái định vị này được gửi tới bộ nhớ (như hình VII-5)..
- Trong phương pháp này bộ nhớ được chia sẻ cho hệ điều hành và một chương trình duy nhất của người sử dụng.
- Quá trình này được toàn quyền sử dụng bộ nhớ dành cho nó..
- Hình 0-6 Tổ chức bộ nhớ trong hệ thống đơn chương.
- Khi một quá trình được cấp không gian, nó được nạp vào bộ nhớ và sau đó nó có thể cạnh tranh CPU.
- Khi một quá trình kết thúc, nó giải phóng bộ nhớ của nó, sau đó hệ điều hành có thể đặt một quá trình khác từ hàng đợi nhập..
- Bộ nhớ được cấp phát tới quá trình cho đến khi các yêu cầu bộ nhớ của quá trình kế tiếp không thể được thoả.
- không có khối bộ nhớ trống (hay lỗ) đủ lớn để quản lý quá trình đó.
- Bộ nhớ có 5 quá trình và 3 lỗ trống.
- Hình 0-9 Quản lý bộ nhớ bằng bản đồ bit.
- Việc sắp xếp các phân đoạn theo địa chỉ hay theo kích thước tuỳ thuộc vào giải thuật quản lý bộ nhớ.
- Hình 0-10 Quản lý bộ nhớ bằng danh sách liên kết.
- Trong trường hợp xấu nhất, chúng có thể có một khối bộ nhớ trống nằm giữa mỗi hai quá trình.
- Nếu tất cả bộ nhớ này nằm trong một khối trống lớn, chúng ta có thể chạy nhiều quá trình hơn..
- V.5 Quản lý bộ nhớ với hệ thống bạn thân.
- Bây giờ chúng ta hãy xem cách hệ thống buddy làm việc khi một quá trình 70K được hoán vị vào bộ nhớ trống 1M.
- Phân mãnh bộ nhớ có thể là phân mãnh trong hoặc phân mãnh ngoài.
- Với tiếp cận này, bộ nhớ được cấp phát tới một quá trình có thể là lớn hơn một chút so với khối được yêu cầu.
- Giải thuật kết khối đơn giản nhất là di chuyển tất cả quá trình tới cuối bộ nhớ.
- Phân trang là cơ chế quản lý bộ nhớ cho phép không gian địa chỉ vật lý của quá trình là không kề nhau.
- Bộ nhớ vật lý được chia thành các khối có kích thước cố định được gọi là các khung (frames).
- Khi một quá trình được thực thi, các trang của nó được nạp vào các khung bộ nhớ sẳn dùng từ vùng lưu trữ phụ.
- Bảng trang chứa địa chỉ nền của mỗi trang trong bộ nhớ vật lý.
- Mô hình phân trang bộ nhớ được hiển thị như hình VII-13..
- Hình 0-13 Mô hình phân trang của bộ nhớ luận lý và vật lý.
- Thí dụ: xét bộ nhớ trong hình VII-14.
- Địa chỉ luận lý 3 (trang 0, độ dời 3) ánh xạ tới địa chỉ vật lý 23 (=(5x4)+3).
- Nếu một khung là 4 KB, thì hệ thống với những mục từ 4 bytes có thể đánh địa chỉ cho 2 44 bytes (hay 16 TB) bộ nhớ vật lý..
- Do đó, nếu quá trình yêu cầu n trang, ít nhất n khung phải sẳn dùng trong bộ nhớ.
- Sự thật, chương trình người dùng được phân bố khắp bộ nhớ vật lý mà nó cũng quản lý các quá trình khác..
- Không có cách định địa chỉ bộ nhớ bên ngoài bảng trang của nó và bảng chứa chỉ những trang mà quá trình sở hữu..
- Tác vụ này yêu cầu một truy xuất bộ nhớ.
- Sau đó, chúng ta có thể truy xuất tới nơi được mong muốn trong bộ nhớ.
- TLB là bộ nhớ kết hợp tốc độ cao.
- Nếu số trang không ở trong TLB (còn gọi là mất TLB), tham chiếu bộ nhớ tới bảng trang phải được thực hiện.
- Khi số khung đạt được, chúng ta có thể dùng nó để truy xuất bộ nhớ (như hình VII-16).
- Để việc sử dụng bộ nhớ chính bị giảm nhiều hơn, VAX phân trang các bảng trang quá trình người dùng..
- Sau đó, hệ điều hành phải dịch tham chiếu này vào một địa chỉ bộ nhớ vật lý.
- Bảng trang đảo có một mục từ cho mỗi trang thật (hay khung) của bộ nhớ.
- Mỗi mục từ chứa địa chỉ ảo của trang được lưu trong vị trí bộ nhớ thật đó, với thông tin về quá trình sở hữu trang đó.
- Do đó, chỉ một bảng trang trong hệ thống và nó chỉ có một mục từ cho mỗi trang của bộ nhớ vật lý.
- Chỉ một bản sao của bộ soạn thảo cần được giữ trong bộ nhớ vật lý.
- Chia sẻ bộ nhớ giữa các quá trình trên hệ điều hành tương tự chia sẻ không gian địa chỉ của một tác vụ bởi luồng.
- Ngoài ra, bộ nhớ được chia sẻ như một phương pháp giao tiếp liên quá trình.
- Một số hệ điều hành cài đặt bộ nhớ được chia sẻ dùng các trang được chia sẻ..
- Hệ điều hành dùng bảng trang bên trong gặp khó khăn khi cài đặt bộ nhớ được chia sẻ.
- Bộ nhớ được chia sẻ thường được cài đặt như nhiều địa chỉ ảo (một địa chỉ cho mỗi quá trình chia sẻ bộ nhớ) mà chúng được ánh xạ tới một địa chỉ vật lý.
- Tầm nhìn bộ nhớ của người dùng không giống như bộ nhớ vật lý.
- Tầm nhìn người dùng được ánh xạ vào bộ nhớ vật lý.
- Việc ánh xạ cho phép sự khác nhau giữa bộ nhớ luận lý và bộ nhớ vật lý..
- Phân đoạn là một cơ chế quản lý bộ nhớ hỗ trợ tầm nhìn bộ nhớ của người dùng.
- Mặc dù người dùng có thể tham chiếu tới các đối tượng trong chương trình bởi một địa chỉ hai chiều, bộ nhớ vật lý là chuỗi một chiều các byte.
- Nếu độ dời này là hợp lệ thì nó được cộng thêm giá trị nền của phân đoạn để tạo ra địa chỉ trong bộ nhớ vật lý của byte mong muốn.
- Các phân đoạn được lưu trong bộ nhớ vật lý như được hiển thị.
- Bảng phân đoạn có một mục từ riêng cho mỗi phân đoạn, cho địa chỉ bắt đầu của phân đoạn trong bộ nhớ vật lý (hay nền) và chiều dài của phân đoạn đó (hay giới hạn).
- Bộ định thời biểu dài phải tìm và cấp phát bộ nhớ cho tất cả các phân đoạn của chương trình người dùng.
- Vì sự phân đoạn dùng giải thuật tái định vị động nên chúng ta có thể gom bộ nhớ bất cứ khi nào chúng ta muốn.
- Intel 386 sử dụng phân đoạn với phân trang cho việc quản lý bộ nhớ.
- Nếu địa chỉ không hợp lệ, lỗi bộ nhớ được tạo ra, dẫn đến một trap tới hệ điều hành.
- Rõ ràng, chúng ta không muốn cấp phát bảng trang liên tục trong bộ nhớ.
- sau đó bảng có thể được mang vào bộ nhớ theo yêu cầu..
- Các giải thuật quản lý bộ nhớ cho hệ điều hành đa chương trải dài từ tiếp cận hệ thống người dùng đơn tới phân đoạn được phân trang.
- Mỗi địa chỉ bộ nhớ được được tạo ra bởi CPU phải được kiểm tra hợp lệ và có thể được ánh xạ tới một địa chỉ vật lý.
- Cơ chế này cho phép nhiều quá trình được chạy hơn là có thể đặt vào bộ nhớ tại cùng một thời điểm.

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt