Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
1,37 MB
Nội dung
Chương – Quản lý nhớ CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung n Tổng quan n n n Chuyển đổi địa n n n Các công đoạn Các mô hình chuyển đổi địa Vai trò Quản lý nhớ HĐH n n Nhu cầu nhớ tiến trình Các vấn đề nhớ Các yêu cầu Các mô hình tổ chức nhớ n n Mô hình Liên tục Mô hình Không liên tục CuuDuongThanCong.com https://fb.com/tailieudientucntt Tổng quan n Chương trình cần nạp vào Bộ nhớ để thi hành n n n n CPU truy xuất trực tiếp Main Memory Chương trình nạp vaò BNC tổ chức theo cấu trúc tiến trình tương ứng Ai cấp phát BNC cho tiến trình ? Chương trình nguồn sử dụng địa symbolic n n Tiến trình thực thi truy cập điạ thực BNC Ai chuyển đổi địa ? HĐH Bộ phận Quản lý Bộ nhớ Mô hình tổ chức ? CuuDuongThanCong.com Cơ chế hỗ trợ Chiến lược thực https://fb.com/tailieudientucntt Tổng quan : Các vấn đề Bộ nhớ n Cấp phát Bộ nhớ : n Uniprogramming : Không khó n Multiprogramming : n n BNC giới hạn, N tiến trình ? Bảo vệ ? Chia sẻ ? Tiến trình thay đổi kích thước ? n Tiến trình lớn BNC ? Chuyển đổi địa tiến trình n Thời điểm chuyển đổi địa ? n Công thức chuyển đổi ? n n n n n Phụ thuộc vào Mô hình tổ chức BNC ? Cần hỗ trợ phần cứng ? Tiến trình thay đổi vị trí BNC ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ OS Môi trường đa nhieäm gcc nachos emacs n n n n 0x9000 0x7000 0x4000 0x3000 0x0000 Nếu nachos cần thêm không gian ? Nếu nachos có lỗi thực thao tác ghi vào địa 0x7100? Khi gcc biết thường trú 0x4000? Nếu emacs cần nhiều nhớ dung lượng vật lý có? CuuDuongThanCong.com https://fb.com/tailieudientucntt Các bước chuyển đổi chương trình C program: test.c Compiler Object:test.o Linker lib.o Executable: test.exe Loader Memory CuuDuongThanCong.com https://fb.com/tailieudientucntt Các bước huyển đổi source program -> exe CuuDuongThanCong.com https://fb.com/tailieudientucntt A.C B.C int x; int y; x = 12; y = 5; F(); F() { printf(“Hi”); } B.O A.O // x // y // [0] = 12; // [2] = 5; // jmp F //external // object -2 // F() … // // // // // // F() x y [3] = 12; [5] = 5; jmp OS ? ? ? ? ? ? // // // // // // F() x y [?] = 12; [?] = 5; jmp ? Test.exe CuuDuongThanCong.com https://fb.com/tailieudientucntt Thuaät ngữ n n n n Địa logic – gọi địa ảo , tất địa xử lý tạo Địa physic - địa thực tế mà trình quản lý nhớ nhìn thấy thao tác Không gian địa – tập hợp tất địa ảo phát sinh chương trình Không gian vật lý – tập hợp tất địa vật lý tương ứng với địa ảo CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhu cầu nhớ tiến trình low address Tiến trình gồm có: n code segment n n n n read from program file by exec usually read-only can be shared data segment n n n initialized global variables (0 / NULL) uninitialized global variables heap n n n n stack segment n n n n n n n … 8048314 : segment pointers pid program and stack pointers … code segment 8048314: 8048315: push mov %ebp %esp,%ebp 8048317: 804831a: mov add 0xc(%ebp),%eax 0x8(%ebp),%eax 804831d: 804831e: pop ret %ebp initialized variables 804831f : 804831f: push %ebp 8048320: 8048322: 8048325: mov sub and %esp,%ebp $0x18,%esp $0xfffffff0,%esp 8048328: mov $0x0,%eax 804832d: sub %eax,%esp 804832f: 8048336: movl movl $0x0,0xfffffffc(%ebp) $0x2,0x4(%esp,1) movl call $0x4,(%esp,1) 8048314 mov leave %eax,0xfffffffc(%ebp) 804834d: 804834e: 804834f: ret nop variables in a function 804833e: 8048345: stored register states (e.g calling function EIP) 804834a: grows against lower addresses system data segment (PCB) n n dynamic memory e.g., allocated using malloc grows against higher addresses system data segment (PCB) uninitialized variables data segment process A heap … … Stack cho thread stack possible stacks for more threads high address CuuDuongThanCong.com data segment n https://fb.com/tailieudientucntt 10 Baûng trang đa cấp 100 0 1 2 Page Table caáp 32 3 Page Table caáp CuuDuongThanCong.com Page Table caáp 82 10 11 12 Page Table caáp 14 15 Page Table caáp 216 13 https://fb.com/tailieudientucntt 17 61 Bảng trang nghịch đảo (Inverted Page Table) n n Sử dụng bảng trang nghịch đảo cho tất tiến trình Mỗi phần tử bảng trang nghịch đảo mô tả frame, có cấu trúc n n n n : số hiệu page mà frame chứa đựng : id tiến trình sỡ hữu trang Mỗi địa ảo ba Khi tham khảo đến nhớ phát sinh, phần địa ảo đưa đến cho trình quản lý nhớ để tìm phần tử tương ứng bảng trang nghịch đảo, tìm thấy, địa vật lý phát sinh CuuDuongThanCong.com https://fb.com/tailieudientucntt 62 Kiến trúc bảng trang nghịch đảo CuuDuongThanCong.com https://fb.com/tailieudientucntt 63 Lưu trữ Page table : Tiết kiệm thời gian n Mỗi truy cập BNC cần truy xuất BNC lần : n n n Tra cứu Page Table để chuyển đổi địa Tra cưu thân data Làm để cải thiện : n Tìm cách lưu PT cache n n Cho phép tìm kiếm nhanh PT lớn, cache nhỏ : lưu đủ ? n n Lưu phần PT Phần ? n Các số hiệu trang truy cập gần CuuDuongThanCong.com https://fb.com/tailieudientucntt 64 Translation Lookaside Buffer (TLB) n Vùng nhớ Cache CPU sử dụng để lưu tạm thời phần PT gọi Translation Lookaside Buffer (TLB) n n Cho phép tìm kiếm tốc độ cao Kích thước giới hạn (thường không 64 phần tử) Mỗi entry TLB chứa số hiệu page frame tương ứng chứa page n Khi chuyển đổi địa chỉ, truy xuất TLB trước, không tìm thấy số hiệu page cần thiết, truy xuất vào PT để lấy thông tin frame n CuuDuongThanCong.com https://fb.com/tailieudientucntt 65 Translation Lookaside Buffer CuuDuongThanCong.com https://fb.com/tailieudientucntt 66 Chuyển đổi địa với Paging virtual address CPU p d f physical address f d d TLB p f Memory f f PT CuuDuongThanCong.com https://fb.com/tailieudientucntt 67 Sử dụng TBL CuuDuongThanCong.com https://fb.com/tailieudientucntt 68 Bảo vệ chia sẻ Segmentation Paging n Bảo vệ n Segmentation : phần tử ST gắn thêm bit bảo vệ n n Paging : phần tử PT gắn thêm bit bảo vệ n n Mỗi segment bảo vệ tùy theo ngữ nghóa đối tượng bên segment Mỗi page không nhận thức ngữ nghóa đối tượng bên page, nên bảo vệ áp dụng cho toàn trang, không phân biệt Chia sẻ: Cho nhiều phần tự KGĐC trỏ đến vị trí KGVL n n Segmentation : chia sẻ mức module chương trình Paging : chia sẻ trang CuuDuongThanCong.com https://fb.com/tailieudientucntt 69 Sharing Pages: A Text Editor CuuDuongThanCong.com https://fb.com/tailieudientucntt 70 Sharing Pages: A Text Editor ed + data ed + data ed + data Chia seû Page = Chia sẻ code v CuuDuongThanCong.com https://fb.com/tailieudientucntt 71 Đánh giá mô hình chuyển đổi địa n Giả sử có: n tm : thời gian truy xuất BNC tc : thời gian truy xuất cache n hit-ration : tỉ lệ tìm thấy số hiệu trang p TLB n n Công thức tính thời gian truy cập thực tế (Time Effective Acess) đến đối tượng BNC n n bao gồm thời gian chuyển đổi địa thời gian truy xuất liệu TEA = (time biding add + time acces memory) CuuDuongThanCong.com https://fb.com/tailieudientucntt 72 n Linker-Loader n n TEA = tm (data) Base + Bound n TEA = (tc + tc) + (Base & Bound) n Segmentation n n TEA = Paging n tc tm (data) + (ST cache) Không sử dụng TLB : n TEA = tm tm (data) + tm (PT mem) n Có sử dụng TLB : n TEA = hit-ratio ( tc tc + tm + tm ) CuuDuongThanCong.com + (data) tm ) + (1- hit-ratio)( (TLB) (data) https://fb.com/tailieudientucntt 73 n n n n n n Giả sử: Có lỗi xảy tốn 8ms để thay trang Nếu trang thay đổi nội dung tốn 20ms Giả sử 70% trang có thay nội dung Truy cập nhớ tớn 100ns Hỏi tỉ lệ lỗi trang để đảm bảo EMAT không vượt 200ns CuuDuongThanCong.com https://fb.com/tailieudientucntt 74 n EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart overhead) CuuDuongThanCong.com https://fb.com/tailieudientucntt 75 ... Các chiến lược thông dụng để chọn partition: n n n First-fit: chọn partition tự Best-fit: chọn partition tự nhỏ đủ chứa tiến trình Worst-fit: chọn partition tự lớn đủ chứa tiến trình 2M First... module, với yêu cầu bảo vệ cho module khác nhau: n n n n instruction modules : execute-only data modules : read-only hay read/write số module private, số khác public OS cần hỗ trợ chế phản ánh mô... https://fb.com/tailieudientucntt 12 Thời điểm kết buộc địa ? Có thể thực việc kết buộc địa thời điểm : n § Compile-time: § § § § Load-time: § § § § Phát sinh địa tuyệt đối Phải biết trước vị trí nạp chương trình Phải biên