hệ điều hànhmemory chương 7 sinhvienzone com

34 30 0
hệ điều hànhmemory chương 7 sinhvienzone com

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bộ Nhớ Thực     Các kiểu địa nhớ Chuyển đổi địa nhớ Overlay swapping Vấn đề cấp phát nhớ liên tục (contiguous memory allocation)   Giải pháp fixed partitioning Giải pháp dynamic partitioning SinhVienZone.com https://fb.com/sinhvienzonevn Quản lý nhớ   Kernel chiếm vùng cố định nhớ, vùng lại dành để cấp phát cho process Cấp phát vùng nhớ cho process cho hệ thốâng hoạt động hiệu   Vd: Nạp nhiều process vào nhớ tốt để gia tăng mức độ multiprogramming Quản lý nhớ     Cấp phát vùng nhớ cho process Bảo vệ: kiểm tra truy xuất nhớ có hợp lệ không Chia sẻ: cho phép process chia sẻ vùng nhớ chung Chuyển đổi địa luận lý sang địa vật lyù SinhVienZone.com https://fb.com/sinhvienzonevn Layout nhớ Operating System Operating System Process A Current Program Process C Process B Uni-programming SinhVienZone.com Multi-programming https://fb.com/sinhvienzonevn Các kiểu địa nhớ (1/2)    Địa vật lý physical (memory) address địa mà CPU, hay MMU (nếu có), gửi đến nhớ Địa luận lý (logical address) địa mà trình sinh Các địa sinh trình biên dịch (compiler) tương đối hay khả tái định vị (relocatable): compiler giả thiết không gian địa đơn vị biên dịch (compilation unit) địa  tuyệt đối: kết biên dịch nạp vào nhớ để thực thi; dùng  SinhVienZone.com https://fb.com/sinhvienzonevn Các kiểu địa nhớ (2/2)  Khi lệnh thực thi, địa luận lý phải chuyển đổi thành địa vật lý  Sự chuyển đổi thường có hỗ trợ phần cứng để đạt hiệu cao SinhVienZone.com https://fb.com/sinhvienzonevn Khơng gian nhớ q trình SinhVienZone.com https://fb.com/sinhvienzonevn Từ mã nguồn đến file thực thi  Linker: kết hợp object module thành file thực thi   tái định vị địa tương đối phân giải external reference kết hợp object module thành load module (file nhị phân khả thực thi) System static linking library dynamic linking SinhVienZone.com System library https://fb.com/sinhvienzonevn Thực (static) linking Linker chuyển đổi địa tương đối sang địa tuyệt ñoái  Module A CALL B L1 Return L1 L length M Module A JMP “L” Module B CALL C M1 length L relocatable object modules Return Module B JMP “L+M” load module L  M  Return Return LM Module C Module C length N LMN1 Return N  Return SinhVienZone.com https://fb.com/sinhvienzonevn Chuyển đổi địa   Chuyển đổi địa chỉ: trình ánh xạ đị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…) Vào thời điểm biên dịch: thường địa tương đối  Ví dụ: a vị trí 14 byte so với vị trí bắt đầu module Thời điểm linking/loading: địa tuyệt đối int i; goto p1; 2000 250 2250 p1 symbolic address relative address physical memory SinhVienZone.com https://fb.com/sinhvienzonevn Sinh địa vật lý  Trong thực thi     Địa chuyển đổi động thực thi Không gian địa vật lý noncontiguous Cần có phần cứng để chuyển đổi địa ảo sang địa vật lý nhanh  “Phân trang” (“paging”)  “Phân đoạn” (“segmentation”) Rất phổ biến SinhVienZone.com https://fb.com/sinhvienzonevn 10 Kỹ thuật overlay (1/2)     Chỉ giữ nhớ lệnh liệu cần thiết, giải phóng lệnh/dữ liệu chưa không cần dùng đến Kỹ thuật hữu dụng kích thước process lớn kích thước vùng nhớ cấp cho Quá trình tự điều khiển việc overlay (có hỗ trợ thư viện lập trình) Có thể xem tiền thân kỹ thuật “bộ nhớ ảo” SinhVienZone.com https://fb.com/sinhvienzonevn 20 Kỹ thuật overlay (2/2) Pass 70K Pass 80K Symbol table 20K Đơn vị: byte symbol table 20K common routines 30K overlay driver 10K Common routines 30K Assembler Total memory available = 150KB nạp thực thi pass pass 80K 70K SinhVienZone.com https://fb.com/sinhvienzonevn 21 Swapping   Cơ chế: di chuyển process khỏi nhớ lưu nhớ phụ (swap out) Khi thích hợp, nạp process vào nhớ (swap in) để tiếp tục thực thi Chính sách:   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 định thời theo độ ưu tiên (prioritybased scheduling)  Process có độ ưu tiên thấp bị swap out nhường chỗ cho process có độ ưu tiên cao vừa đến SinhVienZone.com https://fb.com/sinhvienzonevn 22 Swapping Cơ chế SinhVienZone.com https://fb.com/sinhvienzonevn 23 Vấn đề cấp phát nhớ liên tục  Trong phần lại chương này, mô hình quản lý nhớ mô hình đơn giản [không dùng “bộ nhớ ảo”!]   Một process phải nạp hoàn toàn vào nhớ (ngoại trừ dùng kỹ thuật overlay) nằm liên tục (contiguous) Sẽ thảo luận giải pháp cấp phát nhớ sau   Phân chia cố định (fixed partitioning) Phân chia động (dynamic partitioning) SinhVienZone.com https://fb.com/sinhvienzonevn 24 Hiện tượng phân mảnh  Phân mảnh ngoại (external fragmentation)    Vùng nhớ trống đủ lớn để thỏa mãn yêu cầu cấp phát, lại không liên tục Dùng kết khối (compacting), có thể, để gom lại thành vùng nhớ liên tục Phân mảnh nội (internal fragmentation)  Vùng nhớ cấp phát lớn vùng nhớ yêu cầu   Ví dụ: cấp khoảng trống 18.464 byte cho process yêu cầu 18.462 byte Thường xảy nhớ thực chia thành khối kích thước cố định (fixed-sized block) process cấp phát theo đơn vị khối SinhVienZone.com https://fb.com/sinhvienzonevn 25 Phân mảnh nội operating system yêu cầu 18.462 byte (used) hole kích thước 18.464 byte Để tránh overhead quản lý byte, OS cấp phát hẳn khối 18.464 byte cho process  dư byte không dùng SinhVienZone.com https://fb.com/sinhvienzonevn 26 Fixed partitioning (1)   Khi khởi động hệ thống, nhớ chia thành nhiều phần cố định rời nhau, gọi partition, có kích thước khác Process có kích thước nhỏ kích thước partition nạp vào partition SinhVienZone.com https://fb.com/sinhvienzonevn 27 Giải pháp fixed partitioning (2)   Nếu process có kích thước lớn partition phải dùng kỹ thuật overlay Không hiệu bị phân mảnh nội: trình dù lớn hay nhỏ cấp phát trọn partition SinhVienZone.com https://fb.com/sinhvienzonevn 28 Chiến lược placement fixed partitioning (1/3)  Trường hợp partition có kích thước   Nếu partition trống  process nạp vào partition Nếu không partition trống, có process bị blocked  swap out process nhớ phụ, dành partition cho process SinhVienZone.com https://fb.com/sinhvienzonevn 29 Chiến lược placement fixed partitioning (2/3)  Trường hợp partition có kích thước không   Giải pháp  Gán process vào partition nhỏ (trống hay chưa trống) đủ chứa [best fit]  Có hàng đợi cho partition Điểm yếu giải pháp: có số hàng đợi trống (vì kích thước partition ‘quá lớn’ process) số hàng đợi dài SinhVienZone.com https://fb.com/sinhvienzonevn 30 Chiến lược placement fixed partitioning (3/3)  Trường hợp partition có kích thước không  Giải pháp  Khi cần nạp process vào nhớ  chọn partition nhỏ trống đủ chứa [best fit]  Chỉ có hàng đợi chung cho partition SinhVienZone.com https://fb.com/sinhvienzonevn 31 Giải pháp dynamic partitioning    Số lượng vị trí partition không cố định partition có kích thước khác Mỗi process cấp phát xác dung lượng nhớ cần thiết Gây tượng phân mảnh ngoại SinhVienZone.com https://fb.com/sinhvienzonevn 32 Chiến lược placement dynamic partitioning    Quyết định cấp phát khối nhớ trống cho process Mục tiêu: giảm chi phí compaction Các chiến lược placement     Best-fit: chọn khối nhớ trống nhỏ First-fit: chọn khối nhớ trống phù hợp kể từ đầu 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 SinhVienZone.com https://fb.com/sinhvienzonevn 33 Nhận xét  Cả hai giải pháp fixed dynamic partitioning không dùng hệ thống đại SinhVienZone.com https://fb.com/sinhvienzonevn 34 ... tiên cao vừa đến SinhVienZone. com https://fb .com/ sinhvienzonevn 22 Swapping Cơ chế SinhVienZone. com https://fb .com/ sinhvienzonevn 23 Vấn đề cấp phát nhớ liên tục  Trong phần lại chương này, mô... khối nhớ trống lớn SinhVienZone. com https://fb .com/ sinhvienzonevn 33 Nhận xét  Cả hai giải pháp fixed dynamic partitioning không dùng hệ thống đại SinhVienZone. com https://fb .com/ sinhvienzonevn... file thư viện dlclose() – Close file thư viện SinhVienZone. com https://fb .com/ sinhvienzonevn 18 Dynamic loading – Ví dụ SinhVienZone. com https://fb .com/ sinhvienzonevn 19 Kỹ thuật overlay (1/2) 

Ngày đăng: 28/01/2020, 22:10

Tài liệu cùng người dùng

Tài liệu liên quan