Bài giảng Hệ điều hành: Chương 7 - ThS. Hà Lê Hoài Trung

69 13 0
Bài giảng Hệ điều hành: Chương 7 - ThS. Hà Lê Hoài Trung

Đ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ài giảng Hệ điều hành - Chương 7: Quản lý bộ nhớ cung cấp cho người đọc các kiến thức: Khái niệm cơ sở, các kiểu địa chỉ nhớ, chuyển đổi địa chỉ nhớ, verlay và swapping, mô hình quản lý bộ nhớ đơn giản. Mời các bạn cùng tham khảo nội dung chi tiết.

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 giaû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 library dynamic linking Khoa KTMT static linking System library Cơ chế thực linking Module A CALL B L1 Return 0 Module A JMP “L” L  Return L Module B Module B CALL C M1 length L relocatable object modules length M JMP “L+M” load module L  M  Return Return LM Module C Module C length N LMN1 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 int i; goto p1; 2000 250 2250 p1 symbolic address relocatable address physical memory Khoa KTMT 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 1024 LOAD j j 1424 LOAD 2224 LOAD 2224 Link/Load Compile 2224 2224 Source code JUMP 1424 JUMP 1424 1424 DATA Physical memory addresses 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 Một ví dụ phân đoạn stack 1400 procedure procedure segment segment function sqrt symbol table segment main program limit base 1000 1400 400 6300 400 4300 1100 3200 1000 4700 segment table segment segment 2400 3200 stack 4300 main 4700 symbol table 5700 6300 logical address space function sqrt physical memory space Khoa KTMT 55 Phần cứng hỗ trợ phân đoạn segment table s limit base CPU s d  yes + physical memory no trap; addressing error Khoa KTMT 56 Chuyển đổi địa chế phân đoạn Ví dụ Khoa KTMT 57 Chia sẻ đoạn limit base 25286 43062 4425 68348 editor data segment segment editor segment table process P1 logical address space process P1 68348 limit base 25286 43062 8850 90003 data segment logical address space process P2 data 72773 editor segment 43062 segment table process P2 90003 data 98853 physical memory Khoa KTMT 58 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 59 3.Kết hợp phân trang phân đoạn Khoa KTMT 60 3.Kết hợp phân trang phân đoạn Khoa KTMT 61 Bài tập hệ thống với 30 bit địa logic Nếu kích thước trang 1K bytes kích thước bảng trang giả sử mục bảng trang chứa bytes  Xét Khoa KTMT 62 Bài tập  Cho bảng trang tiến trình P1 – Địa ảo 2345 chuyển thành địa vật lý bao nhiêu? – Địa vật lý 9876 chuyển thành địa ảo bao nhiêu?  Biết kích thước frame 1K bytes Khoa KTMT 63 Bài tập Giả sử nhớ phân thành phân vùng có kích thước 100K, 400K, 200K, 300K 500K ( theo thứ tự ), cho biết tiến trình có kích thước 212K, 417K, 112K 426K ( theo thứ tự ) cấp phát nhớ nào, sử dụng : a) Thuật toán First fit b) Thuật toán Best fit c) Thuật toán Worst fit d) Thuật toán Next fit Thuật toán cho phép sử dụng nhớ hiệu qủa trường hợp ?  Khoa KTMT 64 Bài tập  Cho bảng trang tiến trình P1 – Địa ảo 3333 chuyển thành địa vật lý bao nhiêu? – Địa vật lý 8888 chuyển thành địa ảo bao nhiêu?  Biết kích thước frame 1K bytes Khoa KTMT 65 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 66 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 67 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 68 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 69 ... gian nhớ cấp cho process Cơ chế điều khiển người sử dụng (thông qua hỗ trợ thư viện lập trình) không cần hỗ trợ hệ điều hành Khoa KTMT 17 Cơ chế overlay (tt) Pass 70 K Pass 80K Symbol table 20K... lượng lớn mã chương trình có tần suất sử dụng thấp, không sử dụng thường xuyên (ví dụ thủ tục xử lý lỗi) Hỗ trợ từ hệ điều hành ‟ Thông thường, user chịu trách nhiệm thiết kế thực chương trình... 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

Ngày đăng: 08/05/2021, 12:51

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

Tài liệu liên quan