Hệ điều hành - Chương 6: Memory management

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

 

ppt54 trang | Chia sẻ: Mr Hưng | Lượt xem: 1455 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Hệ điều hành - Chương 6: Memory management, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChương 6Memory managementKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhMục đích và yêu cầuMụ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ựcKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhNội dungKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhKhá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í MinhKhái niệm cơ sởKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhKhá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í MinhCác kiểu địa chỉ nhớKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhNạ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í MinhCơ chế thực hiện LinkingKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhLogical vs. Physical Address SpaceTậ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í MinhChuyển đổi địa chỉ nhớKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChuyển đổi địa chỉ nhớ (t.t)Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChuyển đổi vào thời điểm dịchKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChuyển đổi vào thời điểm nạpKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChuyển đổi địa chỉ (t.t)Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhMemory-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ựcKhoa 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 viKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhDynamic LoadingProcess 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ạpHữ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í MinhDynamic LinkingViệ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í MinhCơ chế OverlaysCho 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í MinhCơ chế OverlayKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhCơ chế Overlay (t.t)Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhSwapping (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àyRoll 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í MinhMinh hoạ cơ chế SwappingKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhPhân phối bộ nhớ liên tiếpBộ 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 userPhâ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í MinhPhâ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ã OsRelocation 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í MinhPhâ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 partitionsCá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í MinhPhân mảnh (Fragmentation)Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhSự phân mảnhPhâ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í MinhPhân mảnh nộiKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhFixed PartitioningKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhPhân mảnh ngọaiGiả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í MinhChiến lược PlacementKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChiến lược Placement (t.t)Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhDynamic PartitioningKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhChiến lược PlecementKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhPhân trang -pagingKo 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í MinhLượ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í MinhLược đồ biên dịch địa chỉKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhVí dụ phân trangKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhCác Frame rỗi Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhHoạt động của Page TablePage table được lưu trong bộ nhớ chínhPage-table register (PTBR) chỉ tới page tablePage-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í MinhPhân trang với TLBKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhPhân đoạn - SegmentationLượ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í MinhChương trình dưới góc nhìn của userKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhGóc nhìn logic của sự phân đọanKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhKiến trúc phân đọanĐịa chỉ logic gồm 2 thành phần:;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<SLTRKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhKiế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ạnPhân phối bộ nhớGiải quyết phân phối bộ nhớ độngFrist fit/best fitCó sự phân mảnh ngọaiKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhLượ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í MinhVí dụ về cơ chế phân đọanKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhKết hợp phân đọan với phân trang MULTICSBộ nhớ được phân thành các đọan, sau đó mỗi đoạn lại được phân trangHệ thống MULTIC giải quyết được vấn đề phân mảnh ngoại và thời gian tìm kiếm dài.Giải pháp khác so với phân đoạn ở chỗ mỗi mục của bảng phân đọan ko chứa địa chỉ cơ sở của đọan mà chứa địa chỉ cơ sở của bảng phân trang của đọan đó.Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhLược đồ MULTICSKhoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhLược đồ MULTICS của Intel 80386Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí MinhCâu hỏi và bài tậpNắm được cách đặt địa chỉ luận lý và vật lýKhông gian địa chỉ luận lý và không gian địa chỉ vật lý?Phân biệt sự giống nhau và khác nhau của cơ chế overlay và swappingCó mấy cách chuyển đổi địa chỉ nhớPhân mảnh nội là gì?Phân mảnh ngoại là gì?giải thích sự khác nhau giữa phân mảnh nội và phân mảnh ngọaiKết khối (compaction) chỉ được thực hiện tại thời điểm nào?Page (trang) là gì? Frame là gì?miêu tả các giải thuật cấp phát sau: First fit, Best fit, Worst fit.Nắm được cơ chế phân trang và phân đọan.Tại sao các kích cỡ của trang luôn là lũy thừa của 2.làm bt 9.5 trong sgk

Các file đính kèm theo tài liệu này:

  • pptchc6b0c6a1ng_63_7817.ppt
Tài liệu liên quan