bài giảng điện tử quản lý bộ nhớ

75 55 0
bài giảng điện tử quản lý bộ nhớ

Đ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

– 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ý

Ngày đăng: 25/06/2020, 10:30

Từ khóa liên quan

Mục lục

  • – Quản lý bộ nhớ

  • Nội dung

  • Tổng quan

  • Tổng quan : Các vấn đề về Bộ nhớ

  • Ví dụ

  • Các bước chuyển đổi chương trình

  • Các bước huyển đổi source program -> .exe

  • Slide 8

  • Thuật ngữ

  • Nhu cầu bộ nhớ của tiến trình

  • Logical and Physical Address Spaces

  • Truy xuất bộ nhớ

  • Thời điểm kết buộc đòa chỉ ?

  • Chuyển đổi đòa chỉ

  • CPU, MMU and Memory

  • Yêu cầu quản lý bộ nhớ

  • Tái đònh vò (Relocation)

  • Bảo vệ (Protection)

  • Chia sẻ (Sharing)

  • Tổ chức logic (Logical Organization)

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

Tài liệu liên quan