Chng 6 Memory management Khoa Cng Ngh Thng

  • Slides: 54
Download presentation
Chương 6 Memory management Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp

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ơ

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ồ

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

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

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

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

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 –

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

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

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

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

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

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

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

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

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

Đị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=>

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ã

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

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

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

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ộ

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

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 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

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ớ

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ề: a. Các vùng nhớ đã được phân phối – allocated partitions b. 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

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ớ

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

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ồ

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

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 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

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

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ồ

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

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

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 – 16 MB) 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

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

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

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

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

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

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

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

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

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>;

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

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

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

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

Kết hợp phân đọan với phân trang MULTICS § Bộ nhớ được phân thành

Kết hợp phân đọan với phân trang MULTICS § Bộ nhớ được phân thành các đọan, sau đó mỗi đoạn lại được phân trang § Hệ 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í Minh

Lược đồ MULTICS Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP

Lược đồ MULTICS Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

Lược đồ MULTICS của Intel 80386 Khoa Công Nghệ Thông Tin – Đại Học

Lược đồ MULTICS của Intel 80386 Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

Câu hỏi và bài tập – – – – – Nắm được cách đặt

Câu hỏi và bài tập – – – – – Nắ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à swapping Có 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ọai Kế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 Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh