YOMEDIA
ADSENSE
BÀI 7 QUẢN LÍ BỘ NHỚ
85
lượt xem 9
download
lượt xem 9
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Là công việc của HĐH với sự hỗ trợ của phần cứng nhằm phân phối, sắp xếp các P trong bộ nhớ sao cho hiệu quả - Mục tiêu: chứa càng nhiều P càng tốt - Kernel chiếm một phần cố định của bộ nhớ, phần còn lại chia cho các P Địa chỉ vật lý (Physical Address): là địa chỉ thực trong bộ nhớ chính - Địa chỉ luận lý (Logical Address): là một địa chỉ nhớ được diễn tả trong một trương trình (còn gọi là địa chỉ ảo)....
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: BÀI 7 QUẢN LÍ BỘ NHỚ
- BÀI 7 QUẢN LÍ BỘ NHỚ Group6789.com I. KHÁI NIỆM - QLBN là công việc của HĐH với sự hỗ trợ của phần cứng nhằm phân phối, sắp xếp các P trong bộ nhớ sao cho hiệu quả - Mục tiêu: chứa càng nhiều P càng tốt - Kernel chiếm một phần cố định của bộ nhớ, phần còn lại chia cho các P II. CÁC KIỂU - Địa chỉ vật lý (Physical Address): là địa chỉ thực trong ĐỊA CHỈ bộ nhớ chính NHỚ - Địa chỉ luận lý (Logical Address): là một địa chỉ nhớ được diễn tả trong một trương trình (còn gọi là địa chỉ ảo) Địa chỉ tương đối (Relative adress): là 1 kiểu địa chỉ luận lý (địa chỉ khả tái định vị) trong đó địa chỉ được biểu diễn tương đối so với một vị trí xác định nào đo trong chương trình Địa chỉ tuyệt đối (absolute address): địa chỉ tương ứng với địa chỉ thực Cách nạp chương trình vào bộ nhớ. - Linker kết hợp các Object module tạo thành file nhị phân khá phức tạp được gọi là load module - Sau đó bộ Loader có nhiệm vụ nạp load module vào bộ nhớ chính.
- Cơ chế thực hiện Linking - Thay vì các Module Object được tách ra ban đầu, chúng ta sẽ gộp chúng lại thành một load module bằng cách định vị lại địa chỉ tương đối của từng Object Module. III. CHUYỂN - Chuyển đổi địa chỉ là một quá trình ánh xạ một địa chỉ ĐỔI ĐỊA CHỈ từ không gian địa chỉ này sang không gian địa chỉ khác. NHỚ - Các thời điểm mà địa chỉ lệnh (instruction) và địa chỉ dữ liệu (data) có thể biến thành địa chỉ vật lý 1. Compile time
- Ta có i là instruction (địa chỉ lệnh) và j là địa chỉ dữ liệu. i và j được chuyển đổi thành các địa chỉ thực ngay sau khi Compile nếu ta biết được địa chỉ vật lý bộ nhớ của chương trình Khuyết điểm:phải biên dịch lại nếu thay đổi địa chỉ nạp chương trình (thay đổi địa chỉ vật lý trong bộ nhớ) 2. Load time Ta có i và j được chuyển đổi thành các địa chỉ khả tái định vị vào thời điểm Compile. Vào thời điểm Loading, loader phải chuyển đổi các địa chỉ khả tái định vị này thành địa chỉ thực dựa trên một địa chỉ nền (base address). Khuyết điểm: địa chỉ nền thay đổi phải reload vì ta có địa chỉ thực của chương trình đã được tính toán vào thời điểm nạp chương trình 3. Excution time (thời gian thực thi):
- - Nếu trong quá trình thực thi, process có thể di chuyển từ segment (khúc) này đến segment khác trong bộ nhớ thì quá trình chuyển đổi địa chỉ bộ nhớ bị gián đoạn - Cần sự hỗ trợ của phần cứng để ánh xạ địa chỉ. - Có các cơ chế swapping, paging, segmentation. IV.DYNAMIC - Dynamic linking: là quá trình link đến một module ngoài (external LINKING module) sau khi đã tạo xong load module VS Ví dụ trong windows: module ngoài là các file .dll còn trong linux là .so DYNAMIC LOADING - Load module chứa các stub(gốc) tham chiếu (refer) đến routine (function) của external module - Khi stub được thực thi lần đầu (tức là khi process gọi routine), stub sẽ nạp routine vào bộ nhớ, tự thay thế địa chỉ của routine và routine được thực thi - Stub cần sự hỗ trợ của OS để biết được routine có được nạp vào bộ nhớ hay chưa - Ưu điểm của Dynamic linking: External Module thường là 1 thư viện cung cấp các tiện ích của OS. Các chương trình có thể dùng chúng mà không cần sửa đổi hay biên dịch lại. mà không cần sửa đổi hay biên dịch lại. Code sharing: External module chỉ cần nạp vào bộ nhớ một lần. các process cần dùng external module này thì cùng chia sẻ code giúp tiết kiệm không gian nhớ và ổ đĩa. Dynamic linking cần sự hỗ trợ của OS để biết được phần thủ tục nào đó là phần mã chia sẻ, hay là phần mã của riêng 1 process. V. OVERLAY Overlay(Phủ lắp) AND - Mục tiêu: chỉ giữ lại những lệnh or data cần thiết, giải phóng các vùng SWAPPING dữ liệu chưa hoặc không cần dùng. - Phù hợp với các process có kích thước lớn hơn so với bộ nhớ mà nó được cấp. - Chế độ user mode. Không cần Can thiệp từ OS.
- - Trong hình có 2 phần (pass 1+2).Vùng nhớ còn 90Kb. Không thể nhét 2 thằng vào được. Do đó từng thằng sẽ vào, sau khi thằng 1 được thực hiện xong, nó giải phóng, và thằng tiếp theo sẽ được vào. SWAPPING - Một process có thể tạm thời bị swap ra ngoài bộ nhớ chính và lưu trữ ở một bộ hệ thống lưu trữ khác. Sau đó sẽ được nạp lại để tiếp tục quá trình. (được swap theo Round-Robin và Priority- based scheduling) - Hiện nay ít hệ thống sử dụng cơ chế swapping trên. VI. PHÂN MẢNH Phân mảnh ngoại Phân mảnh nội (Fragmentation) (external fragmentation) (internal fragmentation) - Kích thước không gian nhớ - Kích thước vùng nhớ được cấp phát không đủ để thỏa mãn yêu có thể lớn hơn vùng nhớ được yêu cầu cấp phát, tuy nhiên cầu. không gian nhớ này không - Hiện tượng phân mảnh nội xảy ra liên tục. Có thể dùng cơ khi bộ nhớ thực được chia thành chết kết nối để gom chúng các khối có kích thước cố định và lại thành một vùng nhớ các process được cấp phát theo đơn vị khối 6.1 Phân vùng bộ nhớ cố - Bộ nhớ chính được chia thành nhiều phần (partitions) có kích thước định bằng nhau (Fixed partitioning) - Process nào có size < hoặc == kích thước partition đó thì được vào. - Nếu chương trình có kích thước lớn hơn partition thì phải dùng cơ chế overlay
- - Xảy ra hiện tượng phân mảnh nội Không hiểu quả Chiến lược Placement TH1: Các Partitions có kích thước bằng nhau: - Nếu partition nào trống, process sẽ được nạp vào partition đó - Nếu không, tìm trong bộ nhớ có process nào đang bị blocked, sau đó tiến hành swap process đó ra bộ nhớ phụ và thay process mới vào TH2: Các partitions có kích thước không bằng nhau: Giải pháp 1: - Tạo hàng đợi cho mỗi partition - Gán mỗi process phù hợp với partitions - ĐƯỢC LỢI: giảm thiểu phân mảnh nội. - VÂN ĐỀ: có thể có một số hàng đợi không chứa Process nào. Giải pháp 2: - Cho 1 hàng đợi chung cho mọi partitions. - Khi cần nạp một process vào bộ nhớ chính, chọn partition còn trống và hợp size nhất. 6.2 Phân vùng bộ nhớ - Số lượng partitions không cố định và kích thước của chúng khác động nhau (Dynamic Partitions) - Mỗi process được cấp phát chính xác bộ nhớ cần thiết. - Nhận xét đến một lúc nào đó, bộ nhớ sẽ không đủ để cấp phát cho 1 process mới nên gây ra hiện tượng phân mảnh ngoại Chiến lược placement 4 Chiến lượt cơ bản: - Best – fit:Chọn khối nhớ trống nhỏ nhất: - First – fit: Chọn khối nhớ trống phù hợp đầu tiên kể từ đầu bộ nhớ - Next – fit: Chọn khối nhớ trống phù hợp đầu tiên kể từ vị trí cấp phát cuối cùng - Worst – fit: chọn khôi nhớ trống lớn nhất
- VII. CƠ CHẾ - RAM được chia thành các frame. PHÂN - Bộ nhớ luận lý (không gian địa chỉ luận lý) là tập địa chỉ luận lý TRANG mà một process bất kì sinh ra được chia thành các page (Paging) - Bảng phân trang (pagetable) ánh xạ địa chỉ luận lí th ành địa chỉ thực A Chuyển đổi địa chỉ trong PAGING Nhìn vào hình vẽ ta có: Địa chỉ luận lí bao gồm : - p: là số hiệu trang (page number) - d: Địa chỉ tương đối trong trang (Page offset) Nếu kích thước của Không gian địa chỉ ảo là 2m và kích thước của mỗi trang là 2n thì ta sẽ có được tổng cộng là 2m-n trang. Tức là lúc đó ta cũng sẻ có được một Page Table có chừng ấy số trang. B Cài đặt bảng trang Bảng phân trang được lưu trữ ở trong bộ nhớ chính. - Ứng với 1 process sẽ có 1 bảng phân trang. - Thanh ghi Page-Table base (PTBR) trỏ đến bảng phân trang. - Thanh ghi Page- Table Length (PTLR) biểu thị kích thước của bảng
- phân trang Dễ dàng thấy được sau khi có địa chỉ logic PTBR sẽ trỏ đến page trong page table và kết hợp với page offset để cho ra địa chỉ vật lý C EAT(Effective Acess Time) - Thời gian tìm kiếm (lookup) trong TLB là : - Thời gian 1 chu trình truy xuất bộ nhớ (memory acess) là: x - Hit ratio: tỉ số giữa số lần chỉ số trang được tìm thấy trong TLB với số lần truy xuất khởi nguồn từ CPU (kí hiệu ) - Khi chỉ số trang có trong TLB (hit) : +x - Khi chỉ số trang không có tỏng TLB (miss): +x+x EAT= ( + x) + ( + 2x)(1 – ) =(2 – )x + Trong đó: ( + x) : là tích của Hitraito với thời gian khi chỉ số trang có trong TLB. ( + 2x)(1 – ) : là tích của thời gian khi chỉ số trang không có trong TLB với 1-Hitraito. Ví dụ: đơn vị tính bằng nano giây - Look up: 190; - Memory access 15; - Hitraito:0.8 Lúc đó EAT = (190+15)*0.8 +(15x2+190)*(1-0.8)=208 D Bảng Trang Đa Cấp - Bao gồm bảng trang cấp 1 và bảng trang cấp 2. - Bảng trang cấp 1 (outer-page table)chứa các địa chỉ của bảng trang cấp 2. - Bảng trang cấp 2 (page table) là tập hợp các page )
- - E. Bảo vệ bộ nhớ - Gắn frame (khung trang) với các bit bảo vệ được giữ trong bảng phân trang. - Các bit này biểu thị các thuộc tính: read-only, read-write, execute- only - Ngoài ra còn có một valid/invalid bit gắn với mỗi entry (mục) trong bảng phân trang. Nhận xét:Cơ chế phân trang làm không gian địa chỉ ảo tách biệt hoàn toàn với không gian bộ nhớ thức. nghĩa là phải thực hiện phép ánh xạ. VIII. PHÂN ĐOẠN - Thực tế cho thấy, dưới con mắt của người dùng, chương trình được (Segmentation) chia thành các đoạn. Mỗi đoạn (segment) là một đơn vị luận lí của chương trình. - Thông thường khi 1 chương trình được biên dịch. Trình biên dịch sẽ tự động xây dựng các segment. Sau đó trình loader sẽ gán mỗi segment một số định danh riêng 1. Cơ chế phân đoạn:
- - Không gian địa chỉ ảo là một tập các segment, mỗi đoạn có tên và kích thước riêng. - Địa chỉ luận lý: được định vị bằng tên và độ dời bên trong đoạn đó (tương tự như paging) 2. Cài đặt phân đoạn (Segment Hardware): - Địa chỉ luận lý là một cặp giá trị (segment number, offset). - Bảng phân đoạn (segment table) chứa: Base: chứa địa chỉ khởi đầu của segment trong bộ nhớ Limit: xác định kích thước segment. - STBR (Segment table base Register): Thanh ghi trỏ đến vị trí bảng phân đoạn trong bộ nhớ. - STLR (Segment table Length Register): Thanh ghi mô tả số lượng segment của 1 chương trình Vd: Segment 1: có địa chỉ thưc trong bộ nhớ vật lý là 6300 và độ dài 400. Segment 2: có địa chỉ thực trong BNVL là 4300 và kính thước 1100. PHẦN CỨNG THAM GIA HỖ TRỢ PHÂN ĐOẠN(NGƯỢC LẠI VỚI PAGING)
- Chia sẻ các đoạn tương tự như chia sẻ trang: dùng chung cùng 1 data nào đó để tiết kiệm bộ nhớ IX. KẾT HỢP - Mục đích: giải quyết được những khuyết điểm, phát huy ưu điểm PHÂN của cả hai hình thức. TRANG VÀ Vấn đề của phân đoạn: Nếu một đoạn quá lớn thì nó có thể không nạp PHÂN ĐOẠN đươc vào bộ nhớ - Ý tưởng: chia đoạn thành các page, khi đó ta chỉ cần giữ trong bộ nhớ các page của đoạn hiện đang cần - Hình vẽ cho chúng ta thấy giả sử s= 5,p=4,d=234 S=5 => STBR sẽ trỏ đến bảng phân đoạn đến seg thứ 5. Trong đó có địa chỉ thực và giới hạn Như đã nói, mỗi seg được chia ra thành các trang. Muốn truy cập
- trang p=4 ta phải xác định được vị trí của page đó (bằng cách sử dụng PTBR). Sau đó kết hợp với d=234 (page offset) ta sẽ được vị trí chính xác của nó trong bộ nhớ vật lý
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn