1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuong07 memory management

66 451 0

Đ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

Nội dung

Chương Quản lý nhớ  Khái niệm sở  Các kiểu đòa nhớ (physical address , logical address)    Chuyển đổi đòa nhớ Overlay swapping Mô hình quản lý nhớ đơn giản – – – – – Fixed partitioning Dynamic partitioning Cơ chế phân trang (paging) Cơ chế phân đoạn (segmentation) Segmentation with paging Khoa KTMT Khái niệm sở    Chương trình phải mang vào nhớ đặt tiến trình để xử lý Input Queue – Một tập hợp tiến trình đóa mà chờ để mang vào nhớ để thực thi User programs trải qua nhiều bước trước xử lý Khoa KTMT Khái niệm sở     Quản lý nhớ công việc hệ điều hành với hỗ trợ phần cứng nhằm phân phối, xếp process nhớ cho hiệu Mục tiêu cần đạt nạp nhiều process vào nhớ tốt (gia tăng mức độ đa chương) Trong hầu hết hệ thống, kernel chiếm phần cố đònh nhớ; phần lại phân phối cho process Các yêu cầu việc quản lý nhớ – – – – – Cấp phát nhớ cho process Tái đònh vò (relocation): swapping,… Bảo vệ: phải 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 Kết gán đòa nhớ luận lý user vào đòa thực Khoa KTMT Các kiểu đòa nhớ  Đòa vật lý (physical address) (đòa thực) vò trí thực nhớ  Đòa luận lý (logical address) vò trí nhớ diễn tả chương trình ( gọi đòa ảo virtual address) – Các trình biên dòch (compiler) tạo mã lệnh chương trình mà tham chiếu nhớ đòa luận lý – Đòa tương đối (relative address) (đòa khả tái đònh vò, relocatable address) kiểu đòa luận lý đòa biểu diễn tương đối so với 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 Khoa KTMT Nạp chương trình vào nhớ   Bộ linker: kết hợp object module thành file nhò phân khả thực thi gọi load module Bộ loader: nạp load module vào nhớ System System library library dynamic linking Khoa KTMT static linking System System library library Cơ chế thực linking Module A CALL B length L relocatable object modules L − Return length M load module JMP “L” JMP “L+M” L + M − Return M − Return Module A L − Return L Module B Module B CALL C L + M Module C Module C length N L + M + N − Return N − Return Khoa KTMT 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,…) – Thời điểm biên dòch: thường đò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 thực Ví dụ: liệu nằm đòa nhớ thực 2030 2000 int i; goto p1; p1 2250 250 symbolic address relocatable address Khoa KTMT physical memory Chuyển đổi đòa (tt)  Đòa lệnh (instruction) liệu (data) chuyển đổi thành đòa thực xảy ba thời điểm khác – Compile time: biết trước đòa 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  Khuyết điểm: phải biên dòch lại thay đổi đòa nạp chương trình – Load time: Vào thời điểm loading, loader phải chuyển đổi đòa khả tái đònh vò thành đòa thực dựa đòa (base address)  Đòa thự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 Khoa KTMT Sinh đòa tuyệt đối vào thời điểm dòch Symbolic addresses PROGRAM Absolute addresses 1024 JUMP i i Physical memory addresses 1024 JUMP 1424 JUMP 1424 1424 LOAD j DATA j 1424 LOAD 2224 LOAD 2224 Link/Load Compile 2224 2224 Source code Absolute load module Khoa KTMT Process image Sinh đòa thực vào thời điểm nạp Relative (relocatable) addresses Symbolic addresses PROGRAM JUMP i 1024 JUMP 400 i 400 LOAD j Physical memory addresses 1424 LOAD 1200 Compile JUMP 1424 LOAD 2224 Link/Load DATA 1200 j Source code 2224 Relative load module Khoa KTMT Process image 10 User view chương trình    Thông thường, chương trình biên dòch Trình biên dòch tự động xây dựng segment Ví dụ, trình biên dòch Pascal tạo segment sau: – Global variables – Procedure call stack – Procedure/function code – Local variable Trình loader gán segment số đònh danh riêng Khoa KTMT procedure procedure stack stack symbol symbol table table function function sqrt sqrt main program main program Logical address space 52 Phân đoạn  Dùng chế phân đoạn để quản lý nhớ có hỗ trợ user view – Không gian đòa ảo tập đoạn, đoạn có tên kích thước riêng – Một đòa luận lý đònh vò tên đoạn độ dời (offset) bên đoạn (so sánh với phân trang!) Khoa KTMT 53 Phân đoạn (tt) logical address space physical memory space segment segment segment segment Khoa KTMT 54 Cài đặt phân đoạn  Đòa luận lý cặp giá trò (segment number, offset)  Bảng phân đoạn (segment table): gồm nhiều mục, mục chứa – base, chứa đòa khởi đầu segment nhớ – limit, xác đònh kích thước segment   Segment-table base register (STBR): trỏ đến vò trí bảng phân đoạn nhớ Segment-table length register (STLR): số lượng segment chương trình ⇒ Một số segment s hợp lệ s < STLR Khoa KTMT 55 Một ví dụ phân đoạn stack stack 1400 procedure procedure procedure segment segment function function sqrt sqrt symbol symbol table table segment main program main program segment limit base 1000 1400 400 6300 400 4300 1100 3200 1000 4700 segment table segment 2400 3200 stack 4300 4700 symbol table 5700 6300 logical address space main function sqrt physical memory space Khoa KTMT 56 Phần cứng hỗ trợ phân đoạn segment table s limit base CPU CPU s d < yes + physical physical memory memory no trap; addressing error Khoa KTMT 57 Chuyển đổi đòa chế phân đoạn Ví dụ Khoa KTMT 58 Chia sẻ đoạn editor editor segment data data 11 segment limit base 25286 43062 4425 68348 segment data data 22 segment logical address space process P2 editor segment table process P1 logical address space process P1 editor editor 43062 68348 data 72773 limit base 25286 43062 8850 90003 segment table process P2 90003 data 98853 physical memory Khoa KTMT 59 3.Kết hợp phân trang phân đoạn  Kết hợp phân trang phân đoạn nhằm kết hợp ưu điểm đồng thời hạn chế khuyết điểm phân trang phân đoạn: – Vấn đề phân đoạn: Nếu đoạn lớn không nạp vào nhớ – Ý tưởng giải quyết: paging đoạn, cần giữ nhớ page đoạn cần Logic Addr = Khoa KTMT 60 3.Kết hợp phân trang phân đoạn Khoa KTMT 61 3.Kết hợp phân trang phân đoạn Khoa KTMT 62 Bài Tập Xét khơng gian có nhớ luận lý kích thước trang 1KB Tính số trang độ dời (offset) địa sau: a) 2.375 b) 19.366 c) 30.000 d) 256 e) 16.385  Khoa KTMT 63 Bài Tập Xét khơng gian có nhớ luận lý có 64 trang, trang có 1024 từ, từ byte ánh xạ vào nhớ vật lý có 32 trang: a) Địa nhớ vật lý có bit? b) Địa nhớ luận lý có bit? c) Có mục bảng phân trang? Mỗi mục chứa bit?  Khoa KTMT 64 Bài tập Xét hệ thống sử dụng kỹ thuật phân trang, với bảng trang lưu trữ nhớ a) Nếu thời gian cho lần truy xuất nhớ bình thường 100 nanoseconds, thời gian cho thao tác truy xuất nhớ hệ thống ? b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) 85%, thời gian để tìm TLBs 20 nanosecond, tính thời gian truy xuất nhớ hệ thống ( effective memory reference time) Khoa KTMT 65 Bài tập Xét bảng phân đoạn sau : Segment Base Length 219 600 2300 14 90 100 1327 580 1952 96 Cho biết địa vật lý tương ứng với địa logic sau : a 0,430 b 1,100 c 2,500 d 3,400 e 4,112 Khoa KTMT 66

Ngày đăng: 10/07/2016, 09:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w