Bài giảng Hệ điều hành Máy tính: Lecture 9 do Nguyễn Thanh Sơn biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm: Các kiểu địa chỉ nhớ, chuyển đổi địa chỉ nhớ, overlay và swapping, mô hình quản lý bộ nhớ đơn giản, fixed partitioning (Phân chia cố định), dynamic partitioning (Phân chia động),...
Bộ Nhớ Thực BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Kiến trúc hệ thống nhớ Tốc độ cao Dung lượng nhỏ Giá thành cao Vd: file-system data Tốc độ thấp Dung lượng lớn Giá thành thấp BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Nội dung Các kiểu địa nhớ Chuyển đổi địa nhớ Overlay swapping Mơ hình quản lý bợ nhớ đơn giản Fixed partitioning (Phân chia cố định) Dynamic partitioning (Phân chia động) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Quản lý nhớ Phân phới và xếp các process bộ nhớ cho hệ thống hoạt động hiệu Ví dụ: nạp càng nhiều process vào bộ nhớ càng tốt (gia tăng mức độ đa chương) Thông thường, kernel chiếm mợt phần cớ định bợ nhớ, phần lại phân phối cho các process Yêu cầu đối với việc quản lý bộ nhớ Cấp phát vùng nhớ cho các process Tái định vị (relocation): swapping,… Bảo vệ: phải kiểm tra truy xuất bộ nhớ có hợp lệ khơng Chia sẻ: cho phép các process chia sẻ vùng nhớ chung Kết gán địa nhớ luận lý process vào địa thực BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Các kiểu địa nhớ Địa vật lý physical (memory) address địa mà bợ nhớ chính được tham chiếu (từ CPU, hay MMU=Mmemory Management Unit) Địa luận lý (logical address) địa một ô nhớ mà mợt q trình sinh Các trình biên dịch (compiler) tạo mã lệnh chương trình mà tham chiếu bộ nhớ BK Địa tương đối (relative address) (địa khả tái định vị , relocatable address) địa được biểu diễn tương đới so với mợt vị trí xác định chương trình Ví dụ: 12 byte so với vị trí bắt đầu chương trình,… Địa tuyệt đối (absolute address): địa “tương đương” với địa thực TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Các kiểu địa nhớ (tt.) Khi lệnh được thực thi, các địa luận lý phải được chuyển đổi thành địa vật lý Thao tác chuyển đổi này thường có hỗ trợ phần cứng để đạt hiệu suất cao BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Nạp chương trình vào nhớ Bộ linker: BK tái định vị địa tương đối và phân giải các external reference kết hợp các object module thành một file nhị phân khả thực thi gọi là load module System static linking library dynamic linking TP.HCM Khoa Khoa học & Kỹ thuật Máy tính System library Thực linking Module A CALL B length L relocatable object modules JMP “L” L Return L Return L Module B Module B CALL C length M JMP “L+M” load module L M Return M Return Module A L M Module C Module C length N L M N Return N Return BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Chuyển đổi địa Chuyển đổi địa chỉ: trình ánh xạ một địa từ không gian địa sang không gian địa khác Biểu diễn địa nhớ Trong source code: symbolic (các biến, hằng, pointer,…) Thời điểm biên dịch: thường là địa khả tái định vị Ví dụ: a vị trí 14 bytes so với vị trí bắt đầu module Thời điểm linking/loading: địa tuyệt đới Ví dụ: liệu tương đương địa bộ nhớ thực 2030 int i; goto p1; 2000 250 2250 p1 symbolic address BK relocatable address physical memory TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Chuyển đổi địa (tt.) Địa lệnh (instruction) và liệu (data) được chuyển đổi thành địa tuyệt đối các thời điểm Compile time: biết trước địa bộ nhớ chương trình kết gán địa tuyệt đới lúc biên dịch Ví dụ: chương trình COM MS-DOS, phát biểu assembly org xxx Khuyết điểm: phải biên dịch lại thay đổi địa nạp chương trình Load time: thời điểm biên dịch, chưa biết quá trình nằm đâu bợ nhớ compiler phải sinh mã khả tái định vị Vào thời điểm loading, loader phải chuyển đổi địa khả tái định vị thành địa tuyệt đối dựa một địa (base address) Địa tuyệt đối được tính toán vào thời điểm nạp chương trình phải tiến hành reload địa thay đổi BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 10 Ưu điểm dynamic linking Các external module là thư viện cung cấp các tiện ích OS Chương trình thực thi dùng các phiên khác external module mà không cần sửa đổi, biên dịch lại Chia sẻ mã (code sharing): cần nạp external module vào bộ nhớ một lần Các process dùng external module này chia sẻ đoạn mã external module tiết kiệm không gian nhớ và đĩa Dynamic linking cần hỗ trợ OS để kiểm tra xem mợt thủ tục nào được chia sẻ các process hay là phần mã riêng mợt process (bởi có OS mới có quyền thực việc kiểm tra này) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 16 Dynamic loading Chỉ cần được gọi đến mợt thủ tục mới được nạp vào bợ nhớ tăng đợ hiệu dụng bợ nhớ (memory utilization) thủ tục khơng được gọi đến không chiếm chỗ bộ nhớ Rất hiệu trường hợp tồn khối lượng lớn mã chương trình có tần śt sử dụng thấp, khơng được sử dụng thường xun (ví dụ thủ tục xử lý lỗi) Quá trình tự điều khiển dynamic loading Hệ điều hành cung cấp một số thủ tục thư viện hỗ trợ BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 17 Kỹ thuật overlay Tại thời điểm, giữ lại bộ nhớ lệnh liệu cần thiết, giải phóng các lệnh/dữ liệu chưa khơng cần dùng đến Kỹ thuật này rất hữu dụng kích thước một process lớn không gian bộ nhớ cấp cho process Quá trình tự điều khiển việc overlay (có hỗ trợ thư viện lập trình) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 18 Kỹ thuật overlay (tt.) Pass 70K Pass 80K Symbol table 20K Common routines 30K Assembler Total memory available = 150KB Đơn vị: byte symbol table 20K common routines 30K overlay driver 10K Nạp và thực thi pass pass BK 80K 70K TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 19 Cơ chế swapping BK Mợt process tạm thời bị swap khỏi bợ nhớ lưu bợ nhớ phụ Khi thích hợp, process được nạp lại vào bợ nhớ để tiếp tục thực thi Swapping policy: hai ví dụ Round-robin: swap out P1 (vừa tiêu thụ hết quantum nó), swap in P2 , thực thi P3 ,… Roll out, roll in: dùng chế định thời theo đợ ưu tiên (priority-based scheduling) Process có độ ưu tiên thấp bị swap out nhường chỗ cho process có đợ ưu tiên cao vừa đến Hiện nay, hệ thớng sử dụng chế swapping TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 20 Minh họa chế swapping BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 21 Mơ hình quản lý nhớ Trong chương này, mơ hình quản lý bợ nhớ là mợt mơ hình đơn giản, khơng có bợ nhớ ảo Mợt process phải được nạp hoàn toàn vào bợ nhớ mới được thực thi (ngoại trừ dùng kỹ thuật overlay) Các chế quản lý bộ nhớ sau rất ít (hầu khơng còn) được dùng các hệ thớng đại Phân chia cố định (fixed partitioning) Phân chia động (dynamic partitioning) Phân trang đơn giản (simple paging) Phân đoạn đơn giản (simple segmentation) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 22 Phân mảnh Phân mảnh ngoại (external fragmentation) Kích thước khơng gian nhớ trớng đủ lớn để thỏa mãn một yêu cầu cấp phát, khơng gian nhớ này lại khơng liên tục Có thể dùng kết khối (compacting) để gom lại thành vùng nhớ liên tục Phân mảnh nội (internal fragmentation) Kích thước vùng nhớ được cấp phát lớn vùng nhớ yêu cầu Ví dụ: cấp một khoảng trống 18.464 byte cho một process yêu cầu 18.462 byte Thường xảy bộ nhớ thực được chia thành các khối kích thước cố định (fixed-sized block) và các process được cấp phát theo đơn vị khối BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 23 Phân mảnh nội operating system Yêu cầu là 18.462 bytes (used) Hole kích thước 18.464 bytes Cần quản lý khoảng trống bytes OS cấp phát hẳn khối 18.464 bytes cho process dư bytes không dùng BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 24 Fixed partitioning Khi khởi động hệ thớng, bợ nhớ được chia thành nhiều phần cớ định rời nhau, gọi partition, có kích thước khác Process nào có kích thước nhỏ kích thước partition được nạp vào partition Nếu process có kích thước lớn partition phải dùng kỹ thuật overlay Nhận xét Không hiệu bị phân mảnh nội: mợt chương trình dù lớn hay nhỏ được cấp phát trọn một partition BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 25 Chiến lược placement Trường hợp partition có kích thước Nếu partition trớng process mới được nạp vào partition Nếu khơng partition trớng, có process bị blocked swap process bộ nhớ phụ nhường chỗ cho process mới BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 26 Chiến lược placement (tt.) Trường hợp partition có kích thước không nhau: giải pháp Gán process vào partition nhỏ nhất đủ chứa Có hàng đợi cho partition Giảm thiểu phân mảnh nội Vấn đề: có mợt sớ hàng đợi trớng (vì khơng có process với kích thước tương ứng) và hàng đợi dày đặc BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 27 Chiến lược placement (tt.) Trường hợp partition có kích thước khơng nhau: giải pháp Chỉ có mợt hàng đợi chung cho partition Khi cần nạp một process vào bợ nhớ chọn partition nhỏ nhất trớng và đủ chứa BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 28 Dynamic partitioning Số lượng và vị trí partition không cố định và partition có kích thước khác Mỗi process được cấp phát xác dung lượng bợ nhớ cần thiết Gây tượng phân mảnh ngoại BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 29 Chiến lược placement dynamic partitioning Dùng để định cấp phát khối bộ nhớ trống nào cho một process Mục tiêu: giảm chi phí compaction Các chiến lược placement BK Best-fit: chọn khối nhớ trống nhỏ nhất First-fit: chọn khối nhớ trống phù hợp kể từ đầu bộ nhớ Next-fit: chọn khối nhớ trống phù hợp kể từ vị trí cấp phát cuối Worst-fit: chọn khối nhớ trống lớn nhất TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 30 ... Best-fit: chọn khối nhớ trống nhỏ nhất First-fit: chọn khối nhớ trống phù hợp kể từ đầu bộ nhớ Next-fit: chọn khối nhớ trống phù hợp kể từ vị trí cấp phát cuối Worst-fit:...Kiến trúc hệ thống nhớ Tốc độ cao Dung lượng nhỏ Giá thành cao Vd: file-system data Tốc độ thấp Dung lượng lớn Giá thành thấp BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Nội dung... chuyển đổi địa khả tái định vị thành địa tuyệt đối dựa một địa (base address) Địa tuyệt đối được tính toán vào thời điểm nạp chương trình phải tiến hành reload địa thay đổi BK TP.HCM