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
372,7 KB
Nội dung
– Quản lý nhớ Noäi dung n n n Tổng quan n Nhu cầu nhớ tiến trình n Các vấn đề nhớ Chuyển đổi đòa n Các côn n Các mô hình chuyển đổi đòa Vai trò Quản lý nhớ HĐH n n g đoạn Các yêu cầu Các mô h ình tổ chức nhớ n Mô hình Liên tục n Mô hình Không liên tục Tổng quan n Chương trình cần nạp vào Bộ nhớ để thi hành CPU truy xuất trực tiếp Main Memory n n Chương trình nạp vaò BNC tổ chức theo cấu trúc tiến trình tương ứng n n Ai cấp ph BNC cho tiến Chương trình nguồnát sử dụng đòa trình chỉ?symbolic thực BNC n n Tiến trình thực thi truy cập điạ Ai chuyển đổi đòa ? Bộ phận Quản lý Bộ nhớ HĐH Mô hình tổ chức ? Cơ chế hỗ trợ Chiến lược thực Tổng quan : Các vấn đề Bộ nhớ n n Cấp phát Bộ nhớ : n Uniprogramming : n Multiprogramming : n BNC giới hạn, N tiến trình ? n Bảo vệ ? Chia sẻ ? Không khó rình thay đổi kích thước n Tiến t 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 n thức chuyển đổi ? n Phụ thuộc vào Mô hình tổ chức BNC ? n Cần hỗ trợ phần cứng ? Tiến trình thay đổi vò trí BNC ? Ví dụ 0x9000 OS 0x7000 Môi trường đa nhiệm gcc 0x4000 nachos 0x3000 emacs 0x0000 n Nếu nachos cần thêm không gian ? n Nếu nachos có lỗi thực thao tác ghi vào đòa 0x n 7100? thường trú 0x4000? Khi gcc biết n Nếu emacs cần nhiều nhớ dung lượng vật lý có? 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 Các bước huyển đổi source program -> exe A.C B.C int x; F() int y; x = { OS printf(“Hi”); 12; } y = 5; F(); B.O A.O // x // y ? // F() -2 // F() … x ? // y ? // [?] = 12; // [0] = 12; // ? // [2] = 5; // jmp F // //external // object ? // // F() ? // jmp ? x // [?] = 5; y // [3] = 12; // [5] = 5; // jmp Test.exe CuuDuongThanCong.com https://fb.com/tailieudientucntt Thuật ngữ n Đòa logic – gọi đòa ảo , tất đòa xử lý tạo n Đòa chỉphysic - đòa chỉthực tế mà trình quản thao lýtác nhớ nhìn thấy n Không gian đòa – tập hợp tất đòa ảo phát sinh chương trình n Không gian vật lý – tập hợp tất đòa vật ảo đòa lý tương ứng với CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhu cầu nhớ tiến trình low address system data segment (PCB) Tiến trình gồm có: … n code segment n n read from program file by exec n usually read-only n can be shared data segment push %ebp 8048315: mov %esp,%ebp 8048317: mov 0xc(%ebp),%eax 804831a: add 0x8(%ebp),%eax 804831d: pop %ebp 804831e: ret initialized global variables (0 / NULL) 804831f : n uninitialized global variables 804831f: n heap 8048320: dynamic memo n e.g., allocated using malloc ry grows against higher addresses n variables in a function n stored register states (e.g calling funct8i0o4n83E45I:P) n n grows against lower addresses system data segment (PCB) segment pointers n pid n program and stack pointers n … code segment initialized variables uninitialized variables push %ebp data segment mov %esp,%ebp n stack segment n n 8048314: n n n 8048314 : data segment n process A heap 8048322: $0x18,%esp 8048325: 8048328: sub mov $0x0,%eax and $0xfffffff0,%esp 804832d: sub %eax,%esp 804832f: movl $0x0,0xfffffffc(%ebp) 8048336: movl $0x2,0x4(%esp,1) 804833e: movl $0x4,(%esp,1) call 8048314 804834a: mov %eax,0xfffffffc(%ebp) 804834d: leave 804834e: ret 804834f: nop … … Stack cho thread stack possible stacks for more threads 10 Bảng trang đa caáp 100 0 1 2 Page Table caáp 32 Tabl Page e caáp 11 Tabl Page e caáp 2 13 14 15 CuuDuongThanCong.com 10 Page Table caáp 82 Page Table cấp 216 https://fb.com/tailieudientucntt 17 Bảng trang nghòch đảo (Inverted Page Table) n Sử dụng bảng trang nghòch đảo cho tất tiến trình n Mỗi phần tử bảng trang nghòch đảo mô tả frame, có cấu trúc n : số hiệu page mà frame chứa đựng n : id tiến trình sỡ hữu trang n Mỗi đòa ảo ba n Khi tham khảo đến nhớ phát sinh, phần đòa ảo đưa đến cho trình hần tử tương lýđảo, nhớ p đòa vật lý ứng bảng trangquản nghòch nếể tìm tìm thấy, phát sinh Kiến trúc bảng trang nghòch đảo 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 Tra cứu Page Table để chuyển đổi đòa n Tra cưu thân data Làm đe n Tìm cách lưu PT cache n n å cải thiện : Cho phép tìm kiếm nhanh PT lớn, cache nhỏ : lưu đủ ? n Lưu n Phần ? n phần PT Các số hiệu trang truy cập gần 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 Bufer (TLB) n Cho phép tìm kiếm tốc độ cao n Kích thư phần tử) n g 64 ớc giới hạn (thường khôn Mỗi entry TLB chứa số hiệu page frame tương ứng chứa page n Khi chuyể ất TLB n đổi đòa chỉ, truy xu 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 65 Translation Lookaside Buffer Chuyển đổi đòa với Paging virtual address p d f CPU physical address d f d TLB p f Memory f f PT Sử dụng TBL 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 Mỗi segment bảo vệ tùy theo ngữ nghóa đối tượng bên segment n Paging : ược gắn thêm phần tử PT đ bit bảo vệ n 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 n Chia sẻ: ong KGĐC Cho nhiều phần tự tr trỏ đến vò trí KGVL n Segmentation : chia sẻ mức module chương trình CuuDuongThanCong.com n Paging : chia sẻ trang https://fb.com/tailieudientucntt 69 Sharing Pages: A Text Editor Sharing Pages: A Text Editor ed + data ed + data ed + data Chia seû Page = Chia seû code Đánh giá mô hình chuyển đổi đòa n n Giả sử có: n tm : thời gian truy xuất BNC n tc : thời gian truy xuất cache n hit-ration : tỉ lệ tìm thấy số hiệu trang p TLB truyEfective c Công thức ập tính thựcthời tế gian (Time Acess) đến đối tượng BNC n n bao gồm thời gian chuyển đổi đòa thời gian truy TEA = (time biding add + time acces memory) xuất liệu n Linker-Loader n TEA = tm (data) n Base + Bound n TEA = (tc + tc) + tm (Base & Bound) n (data) Segmentation n TEA = tc + (ST cache) n tm (data) Paging n Không sử dụng TLB : TEA n = tm + tm (PT mem) n (data) Có sử dụng TLB : n TEA = hit-ratio ( tc tc + tm + + tm ) + (1- hit-ratio)( tm ) 73 CuuDuongThanCong.com htt ps ://fb com /tai lieudientucn tt n Giả sử: n Có lỗi xảy tốn 8ms để thay trang n Nếu trang thay đổi nội dung tốn 20ms n Giả sử 70% trang có thay nội dung n Truy cập nhớ tớn 100ns n Hỏi tỉ lệ lỗi trang để đảm bảo EMAT không vượt 200ns n EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart o verhead) ... thi truy cập điạ Ai chuyển đổi đòa ? Bộ phận Quản lý Bộ nhớ HĐH Mô hình tổ chức ? Cơ chế hỗ trợ Chiến lược thực Tổng quan : Các vấn đề Bộ nhớ n n Cấp phát Bộ nhớ : n Uniprogramming : n Multiprogramming... Tổng quan n Nhu cầu nhớ tiến trình n Các vấn đề nhớ Chuyển đổi đòa n Các côn n Các mô hình chuyển đổi đòa Vai trò Quản lý nhớ HĐH n n g đoạn Các yêu cầu Các mô h ình tổ chức nhớ n Mô hình Liên... xử lý tạo n Đòa chỉphysic - đòa chỉthực tế mà trình quản thao lýtác nhớ nhìn thấy n Không gian đòa – tập hợp tất đòa ảo phát sinh chương trình n Không gian vật lý – tập hợp tất đòa vật ảo đòa lý