560 likes | 748 Views
Chương 6. Memory management. Mục đích và yêu cầu. Mục đích: Nắm được các khái niệm cơ sở về quản lý bộ nhớ, các kiểu địa chỉ nhớ và cách chuyển đổi. Yêu cầu: Hiểu được cơ chế Overlay và Swapping cũng như mô hình quản lý bộ nhớ thực. Nội dung. Khái niệm cơ sở.
E N D
Chương 6 Memory management Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Mục đích và yêu cầu Mục đích: • Nắm được các khái niệm cơ sở về quản lý bộ nhớ, các kiểu địa chỉ nhớ và cách chuyển đổi. Yêu cầu: • Hiểu được cơ chế Overlay và Swapping cũng như mô hình quản lý bộ nhớ thực Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Nội dung Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Khái niệm cơ sở • chúng ta thấy rằng CPU có thể được dùng chung bởi nhiều process. Do kết quả định thời CPU, chúng ta có thể cải tiến hiệu suất của CPU lẫn tốc độ đáp ứng của user. Để thực hiện việc làm tăng hiệu quả này chúng ta phải lưu giữ vài quá trình trong bộ nhớ; tức là chúng ta phải dùng bộ nhớ dùng chung. • bộ nhớ là trung tâm họat động của hệ thống máy tính hiện đại. Bộ nhớ gồm một dãy lớn của các words hoặc các byte, mỗi cái đó đều có địa chỉ của riêng chúng. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Khái niệm cơ sở Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Khái niệm cơ sở • Thông thường, một chương trình cư trú trên đĩa như một file thực thi nhị phân, Chương trình phải được mang vào trong bộ nhớ và được đặt bên trong một quá trình để cho nó thực thi.Tùy thuộc vào sự quản lý bộ nhớ đang dùng. Quá trình có thể được duy trì giữa đĩa và bộ nhớ trong khi thực thi. Một nhóm quá trình trên đĩa đang chờ để được mang vào trong bộ nhớ hình thành hàng đợi(input queue). • Thủ tục bình thường là chọn một quá trình trong hàng đợi và nạp quá trình đó vào trong bộ nhớ. Khi quá trình thực thi nó truy xuất lệnh và dữ liệu từ bộ nhớ. Cuối cùng là quá trình kết thúc và không gian bộ nhớ của nó được khai bào trả lại hệ thống. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Các kiểu địa chỉ nhớ Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Nạp chương trình vào bộ nhớ (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Cơ chế thực hiện Linking Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Logical vs. Physical Address Space • Tập hợp tất cả các địa chỉ luận lý (địa chỉ ảo vitual address) tạo nên ko gian địa chỉ luận lý • Tập hợp tất cả các địa chỉ vật lý (địa chỉ thực) tạo nên ko gian địa chỉ vật lý • Các địa chỉ logic (ảo) và vật lý là như nhau trong các giai đoạn liên kết địa chỉ compiler time và load time; chúng khác nhau trong execcution time. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chuyển đổi địa chỉ nhớ Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chuyển đổi địa chỉ nhớ (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chuyển đổi vào thời điểm dịch Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chuyển đổi vào thời điểm nạp Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chuyển đổi địa chỉ (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Memory-Management Unit (MMU) • Là thiết bị phần cứng địa chỉ ảo tới địa chỉ vật lý. • Trong lược đồ MMU, giá trị trong thanh ghi định vị (relocation register) được cộng với tất cả địa chỉ được sinh ra bởi process của user tại thời điểm nó được gửi tới bộ nhớ. • Chương trình của user làm việc với các địa chỉ luân lý nó ko bao giờ nhận ra các địa chỉ vật lý thực Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Định vị động sử dụng thanh ghi định vi Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Dynamic Loading • Process chỉ được nạp vào bộ nhớ khi nó được gọi=> tăng độ hiệu dụng cua hệ thống (memory utilization) bởi vì các process ít sử dụng sẽ ko bao giờ chíếm chỗ trong hệ thống. • Sử dụng ko gian bộ nhớ tốt hơn, process ko dùng đến thì ko bao giờ được nạp • Hữu ích trong trường hợp số lượng lớn mã cần xử lý nhưng hiếm khi xuất hiện (ví dụ các thủ tục xử lý lô các thủ tục xử lý lỗi), • Ko yêu cầu sự hỗ trợ đặc biệt từ Os. (Được thực hiện thông qua thiết kế chương trình của user, Os chủ yếu cung cấp 1 số thủ tục hỗ trợ tạo điều kiện dễ dàng cho user) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Dynamic Linking • Việc liên kết hõan lại đến execution time • Đọan mã nhỏ, stub được sử dụng để định vị thường trình thư viện cư trú trong bộ nhớ (memory-resident library routime) thích hợp. • Khi được thực hiện, stub kiểm tra thường trình cần đến có trong bộ nhớ. Của process chưa, nếu chưa thì chương trình nạp thường trình vào bộ nhớ. Nếu rồi, stub tự thay thế chính nó bởi địa chỉ của thường trình rồi thực hiện thường trình đó. • Liên kết động đặc biệt hữu dụng đối với các thư viện chương trình, nhất là trong việc cập nhật thư viện (vd sửa lỗi). Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Cơ chế Overlays • Cho phép một quá trình có kích thước lớn hơn bộ nhớ cấp cho nó được thực hiện. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Cơ chế Overlay Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Cơ chế Overlay (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Swapping (hoán đổi) • Một process có thể được swap(hoán đổi) ra khỏi bộ nhớ chính để tới nơi lưu trữ phụ (backing store) và sau đó, được đưa trở lại bộ nhớ để thực thi tiếp. • Backing store - ổ đĩa đủ lớn để cung cấp bản sao của tất cả hình ảnh bộ nhớ cho tất cả user, phải cung cấp sự truy nhập trực tiếp tới các ảnh bộ nhớ này • Roll out, roll in – biến thể hoán đổi được sử dụng cho thuật giải lập lịch dựa trên mức ưu tiên (priority-based scheduling); process có mức ưu tiên thấp bị thay ra để process có mức ưu tiên cao hơn được nạp vào và thực hiện. • Phần lớn thời gian swap là thời gian chuyển dữ liệu, tổng thời gian chuyển tỉ lệ thuận với dung lượng bộ nhớ hoán đổi. • Sự hoán đổi khác nhau ở các Os UNIX, Linux, Windows. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Minh hoạ cơ chế Swapping Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân phối bộ nhớ liên tiếp • Bộ nhớ chính được chia thành 2 phần: • Vùng nhớ thấp : chứa Os, bảng vecter ngắt. • Vùng nhớ cao: chứa các process của user • Phân phối đơn partition (single-partition allocation) • Phân phối đa partition (Multiple-partition allocation) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân phối đơn partition (single-partition allocation) • Lược đồ thanh ghi định vị được sử dụng để bảo vệ các process của uer từ các process khác và từ sự thay đổi dữ liệu và mã Os • Relocation register chứa giá trị địa chỉ vật lý nhỏ nhất: limit register chứa dải các địa chỉ logic – mỗi địa chỉ logic phải nhỏ hơn limit register. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân phối đa partition(Multiple-partition allocation) • Hole – khối bộ nhớ khả dụng; các hole có kích thước khác nhau nằm rải rác khắp bộ nhớ. • Khi 1 process đến, nó được phân phối bộ nhớ từ 1 hole đủ lớn. • Os duy trì thong tin về: • Các vùng nhớ đã được phân phối – allocated partitions • Các vùng nhớ còn tự do – freepartitions (hole) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân mảnh (Fragmentation) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Sự phân mảnh • Phân mảnh ngọai (External fragmentation) Tổng ko gian bộ nhớ thực tế đủ đáp ứng yêu cầu, nhưng nó ko nằm kề nhau. • Phân mảnh nội (Internal fragmentation) bộ nhớ được phân phối lớn hơn so với bộ nhớ được yêu cầu. Phần kích thước khác biệt ko được sử dụng. • Làm giảm phân mảnh ngoại bằng cách kết khối lại (compaction): • Di chuyển các nội dung bộ nhớ để đặt tất cả các vùng nhớ tự do lại với nhau thành một khối lớn. • Kết khối chỉ có thể tiến hành nếu sự tái định vị là động, và nó được thực hiện trong execution time. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân mảnh nội Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Fixed Partitioning Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân mảnh ngọai • Giải pháp cho vấn đề phân mảnh ngọai là kết khối (compation). Mà mục tiêu của nó là luôn luôn xê dịch nội dung bộ nhớ để đặt tất cả phần còn trống lại với nhau trong một khối lớn. • Việc kết khối không phải lúc nào cũng thực hiện được. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chiến lược Placement Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chiến lược Placement (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Dynamic Partitioning Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chiến lược Plecement Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân trang -paging • Ko gian địa chỉ thực (vật lý) của 1 process có thể ko liên tục nhau. • Bộ nhớ thực được chia thành các khối có kích thước cố định là bội số của 2 (512 bytes – 16MB) gọi là frame. • Bộ nhớ logic cũng được chia thành các khối có cùng kích thước gọi là trang nhớ (page). • Os luôn theo dõi tất cả các frame còn trống. • Để chạy chương trình có kích thước n pages, cần phải tìm n frames còn trống và nạp chương trình. • Os cần thiết lập bảng phân trang (page table) để chyển các địa chỉ logic thành các địa chỉ thực. • Cơ chế phân trang khiến bộ nhớ bị phân mảnh nội, tuy nhiên lại khắc phục được phân mảnh ngọai. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Lược đồ biên dịch địa chỉ • Địa chỉ được tạo ra bởi CPU được chia thành: • Page number (p) – được sử dụng làm chỉ mục trong page table. Chứa địa chỉ cơ sở (base address) của mỗi trang trong bộ nhớ vật lý. • Page offset (d) – kết hợp với địa chỉ cơ sở để xác định địa chỉ bộ nhớ vật lý được gởi đến bộ nhớ. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Lược đồ biên dịch địa chỉ Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Ví dụ phân trang Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Các Frame rỗi Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Hoạt động của Page Table • Page table được lưu trong bộ nhớ chính • Page-table register (PTBR) chỉ tới page table • Page-table length register (PRLR) cho biết kích thước của page-table. • Trong lược đồ phân trang, mọi sự truy nhập lệnh/dữ liệu yêu cầu 2 lần truy nhập bộ nhớ: 1 cho page table và 1 cho lệnh/data, truy nhập chậm hơn. • Vấn đề 2 lần truy nhập bộ nhớ có thể được giải quyết bằng cách sử dụng 1 bộ nhớ cache tra cứu nhanh đặc biệt gọi là bộ nhớ liên kết – associative memory (TLB) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân trang với TLB Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Phân đoạn - Segmentation • Lược đồ quản lý bộ nhớ giúp user nhìn thấy bộ nhớ. • Thực tế, 1 chương trình là tập hợp các phân đoạn, mỗi đoạn là một đơn vị luận lý như là : main program, proceduce function method object local variables, global variables. common block stack. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Chương trình dưới góc nhìn của user Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Góc nhìn logic của sự phân đọan Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Kiến trúc phân đọan • Địa chỉ logic gồm 2 thành phần: <segment-number,offset>; • Segment table – tương tự bảng phân trang, mỗi mục của bảng gồm có: • Base – chứa địa chỉ vật lý đầu tiên của đoạn trong bộ nhớ. • Limit – xác định độ dài của đọan. • Segment-table base register (STBR): trỏ tới vị trí của bảng phân đọan trong bộ nhớ • Segment-table length register (SLTR): xác định số đọan mà một chương trình sử dụng: => một chỉ số segment s là hợp lệ nếu s<SLTR Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Kiến trúc phân đọan (t.t) • Phân đọan: • Các đoạn có các kích thước khác nhau • Định vị • động • được thực hiện bởi bảng phân đoạn • Phân phối bộ nhớ • Giải quyết phân phối bộ nhớ động • Frist fit/best fit • Có sự phân mảnh ngọai Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Lược đồ phân đọan(phần cứng hỗ trợ phân đọan) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Ví dụ về cơ chế phân đọan Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh