Bài giảng hệ điều hành chương 7 quản lý bộ nhớ

66 1.1K 0
Bài giảng hệ điều hành   chương 7  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

CT107 Hệ Điều Hành Chương Quản lý nhớ Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn) Bộ môn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014 [CT107] Ch7 Quản lý nhớ Mục Tiêu Mô tả chi tiết phương pháp tổ chức nhớ Giải thích kỹ thuật quản lý nhớ bao gồm phân trang phân đoạn Một số ví dụ thực tế quản lý nhớ: quản lý phân đoạn xử lý Intel Pentium quản lý địa nhớ HĐH Linux TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Nội Dung Tổng quan Bộ nhớ Tiến trình Hoán vị (swapping) Cấp phát nhớ kề (Contigous allocation) Phân trang (Paging) Các cấu trúc bảng trang Phân đoạn (Segmentation) Kết hợp phân trang phân đoạn Phụ lục – Một Số Ví Dụ TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Tổng quan nhớ Giới Thiệu Bộ Nhớ CPU truy xuất trực tiếp ghi nhớ ⇒ Để thực thi chương trình, đoạn mã chương trình phải tải vào nhớ đặt tiến trình Thanh ghi: dạng nhớ đặc biệt, đặt bên CPU tối đa chu kỳ CPU để truy xuất Bộ nhớ chính: tốc độ truy xuất chậm ghi, đòi hỏi vài chu kỳ Bộ nhớ cache: nhớ trung gian ghi nhớ chính, tốc độ truy xuất nhanh, chậm ghi Việc bảo vệ nhớ cần thiết để đảm bảo thực thi đắn tiến trình, đặc biệt môi trường đa nhiệm TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Thanh ghi ghi giới hạn Thanh Ghi Nền & Thanh Ghi Giới Hạn 8.1 Back Hỗ trợ việc phân chia vùng nhớ cho tiến trình Thanh ghi (base): xác định giới hạn vùng nhớ vật lý thấp Thanh ghi giới hạn (limit): xác định kích thước vùng nhớ ⇒ Địa vùng nhớ mà tiến trình truy xuất: [base, base+limit] operating system 256000 process 300040 300040 process base 120900 420940 process limit 880000 1024000 Figure 8.1 A base and a limit register define a logical address TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ Protection [CT107] Ch7 Quản lý nhớof memory space is accomplished by having the CPU hardware compare every address Tổng quan Bộ nhớ Tiến trìnhgenerated in user mode with the registers Any attempt bykhông a program Bảo vệ gian nhớexecuting in user mode to access operating-system memory or other users’ memory results in a trap to the operating system, which treats the attempt as a fatal error (Figure 8.2) This scheme prevents a user program from (accidentally or deliberately) modifying the code or data structures of either the operating system or other users The base and limit registers can be loaded only by the operating system, which uses a special privileged instruction Since privileged instructions can Được thực thi CPU,mode, sử dụng t/ghi t/ghi giớiexecutes hạn be executed onlybởi in kernel and since onlycơ thesở operating system in kernel mode, only the operating system can load the base and limit registers Bảo Vệ Không Gian Nhớ Bằng Phần Cứng Hai ghi thay đổi HĐH, với quyền đặc biệt base CPU address base ϩ limit yes ≥ yes < no no trap to operating system monitor—addressing error memory Figure 8.2 Hardware address protection with base and limit registers TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Gắn kết địa (Address binding) Gắn Kết (Binding) Địa Chỉ Tập hợp chương trình chờ đợi để nạp vào nhớ tạo thành hàng đợi vào (input queue) Các tiến trình nạp vào vùng (sẵn sàng) nhớ, không thiết từ địa 00000 Một chương trình thường trãi qua số bước trước thực thi ⇒ Sự biểu diễn địa nhớ g/đoạn khác nhau: Các địa tượng trưng chương trình nguồn Các địa tái định vị biên dịch Các địa tuyệt đối nạp (loading) kết nối (linking) Binding: ánh xạ địa từ không gian sang không gian khác TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Gắn kết thị liệu vào nhớ Gắn Kết Dữ Liệu & Chỉ Thị Vào Bộ Nhớ Có thể diễn giai đoạn khác nhau: Thời điểm biên dịch: sinh mã lệnh tuyệt đối (absolute code) biết trước vị trí vùng nhớ Tuy nhiên, phải biên dịch lại vị trí bắt đầu vùng nhớ thay đổi Thời điểm nạp: việc gắn kết xảy thời điểm nạp trình biên dịch sinh mã lệnh tái định vị (relocatable code) – vị trí vùng nhớ biên dịch Thời điểm thực thi: việc gắn kết xảy thời điểm tiến trình bị di chuyển từ phân đoạn (segment) nhớ sang phân đoạn nhớ khác thực thi Cần hỗ trợ phần cứng (e.g t/ghi t/ghi giới hạn) Được sử dụng nhiều HĐH TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Gắn kết thị liệu vào nhớ Các Bước Xử Lý Một Chương Trình 8.1 Background 355 source program compiler or assembler other object modules compile time object module linkage editor load module system library dynamically loaded system library dynamic linking load time loader in-memory binary memory image execution time (run time) Figure 8.3 Multistep processing of a user program TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ [CT107] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Không gian địa vật lý luận lý Không Gian Địa Chỉ Vật Lý & Luận Lý Việc gắn kết không gian nhớ vật lý luận lý trọng tâm chế quản lý nhớ Địa luận lý (logical address): sinh CPU, gọi địa ảo (vitual address) Địa vật lý (physical address): nhìn thấy quản lý nhớ Địa luận lý vật lý giống sơ đồ gắn kết địa thời điểm biên dịch nạp chương trình; khác sơ đồ gắn kết thời điểm thực thi Không gian địa luận lý: tập tất địa luận lý Không gian địa vật lý: tập tất địa vật lý TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 10 [CT107] Ch7 Quản lý nhớ Phân đoạn (Segmentation) Hai Góc Nhìn Bộ Nhớ Phân đoạn cung cấp chế ánh xạ không gian địa luận lý không gian địa vậtstack lý subroutine 1400 segment segment subroutine segment stack Sqrt segment symbol table limit segment Sqrt segment segment 2400 symbol table main program segment segment limit base 1000 1400 segment 400 400 main logical address space3 1100 program 1000 segment 6300 4300 3200 4700 segment table base 1400 1000 1400 400 segment 6300 3200 400 2400 4300 1100 3200 segment 1000 4700 segment table 4300 4700 3200 segment segment 4300 4700 5700 segment segment logical address space segment 6300 6700 segment physical memory 5700 6300 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ segment 52 [CT107] Ch7 Quản lý nhớ Phân đoạn (Segmentation) Kiến trúc hệ thống phân đoạn Kiến Trúc Hệ Thống Phân Đoạn Một địa luận lý bao gồm cặp: segment_number , offset Bảng phân đoạn (segment table): chứa mục ánh xạ địa luận lý (2 chiều) vào địa vật lý chiều; mục gồm: base: chứa địa vật lý khởi đầu đoạn nhớ vật lý limit: định chiều dài đoạn Segment-table base register (STBR): ghi trỏ đến bảng phân đoạn nhớ Segment-table length register (STLR): ghi số lượng đoạn sử dụng chương trình TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 53 [CT107] Ch7 Quản lý nhớ Phân đoạn (Segmentation) Phần cứng hỗ trợ phân đoạn Phần Cứng Hỗ Trợ Phân Đoạn Một Chapter đoạn có số hiệu s hợp lệ s < STLR Main Memory 366 s limit base CPU s segment table d yes < + no trap: addressing error TS Trần Công Án (Khoa CNTT&TT) Figure 8.8 Ch7 Segmentation hardware [CT107] Quản lý nhớ physical memory 54 [CT107] Ch7 Quản lý nhớ Phân đoạn (Segmentation) Phần cứng hỗ trợ phân đoạn Ví Dụ Về Phân Đoạn subroutine stack 1400 segment segment segment Sqrt segment main program segment 2400 symbol table segment limit base 1000 400 400 1100 1000 1400 6300 4300 3200 4700 segment table 3200 segment 4300 4700 segment segment logical address space 5700 6300 6700 segment physical memory TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 55 [CT107] Ch7 Quản lý nhớ Phân đoạn (Segmentation) Bảo vệ chia sẻ đoạn Bảo Vệ Và Chia Sẻ Đoạn Chia sẻ đoạn: Bảo vệ đoạn: kết hợp mục bảng phân đoạn editor bit bảo vệ để đánh dấu đoạn hợp lệ/không hợp lệ segment data segment base 25286 43062 4425 68348 editor segment data segment logical address space process P2 [CT107] Ch7 Quản lý nhớ 43062 editor segment table process P1 logical address space process P1 bits kiểm soát quyền (đọc, ghi, thực thi, ) TS Trần Công Án (Khoa CNTT&TT) limit 68348 data 72773 limit base 25286 43062 8850 90003 segment table process P2 90003 data 98853 physical memory! 56 [CT107] Ch7 Quản lý nhớ Kết hợp phân trang phân đoạn Kết Hợp Phân Trang Và Phân Đoạn Nhằm giải trường hợp bảng phân đoạn lớn Ý tưởng: phân đoạn bảng phân trang (segmented paging) Mỗi tiến trình có bảng phân đoạn nhiều bảng phân trang Mỗi mục bảng phân đoạn ánh xạ vào bảng phân trang Cấu trúc địa luận lý: seg _number , page_number , offset seg_number : số mục bảng phân đoạn, dùng để xác định địa bảng phân trang page_number : số mục bảng phân trang, dùng để xác định số khung offset: xác định địa nhớ vật lý TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 57 [CT107] Ch7 Quản lý nhớ Kết hợp phân trang phân đoạn Dịch Địa Chỉ TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 58 [CT107] Ch7 Quản lý nhớ Kết hợp phân trang phân đoạn Ví Dụ frame frame frame frame frame frame frame TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 59 Phụ Lục – Ví Dụ [CT107] Ch7 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang Trong BXL Intel Pentium Sử dụng sơ đồ: phân đoạn kết hợp phân đoạn với phân trang Sơ đồ dịch địa phân đoạn: CPU logical address segmentation unit linear address Địa luận lý (segmentation): paging unit s g p 13 page number Địa tuyến tính (paging): TS Trần Công Án (Khoa CNTT&TT) physical address p1 [CT107] Ch7 Quản lý nhớ p2 physical memory page offset d 61 [CT107] Ch7 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Đoạn logical address selector offset descriptor table segment descriptor + 32-bit linear address TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 62 [CT107] Ch7 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang (linear address) page table page directory 31 22 21 offset 12 11 page table 4-KB page page directory CR3 register 4-MB page offset page directory 31 TS Trần Công Án (Khoa CNTT&TT) 22 21 [CT107] Ch7 Quản lý nhớ 63 [CT107] Ch7 Quản lý nhớ Phụ lục – Một Số Ví Dụ Mở Rộng Địa Chỉ PAE TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 64 [CT107] Ch7 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang Cấp Trên Linux TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch7 Quản lý nhớ 65 [...]... Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ physical memory 26 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging) Mô hình phân trang Mô Hình Phân Trang frame number 0 page 0 page 1 page 2 page 3 0 1 2 3 1 4 3 7 page table logical memory 1 page 0 2 3 page 2 4 page 1 5 6 7 page 3 physical memory TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 27 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging)... trong các hệ điều hành hiện tại: Swapping bình thường bị vô hiệu hóa Nó chỉ được kích hoạt khi nhu cầu bộ nhớ đạt đến 1 ngưỡng nào đó TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 18 [CT1 07] Ch7 Quản lý bộ nhớ Cấp phát bộ nhớ kề nhau (Contigous allocation) Giới thiệu Cấp Phát Bộ Nhớ Kề Nhau Là một trong các p/pháp cấp phát bộ nhớ được sử dụng đầu tiên Bộ nhớ chính thường được chia thành 2... vùng nhớ thấp (các vector ngắt) Tiến trình người dùng: được tổ chức trong vùng nhớ cao Mỗi tiến trình được cấp phát một vùng nhớ đơn, liên tục Bộ quản lý bộ nhớ thực hiện ánh xạ địa chỉ luận lý sang vật lý vào thời gian thực thi (động): địa chỉ vật lý = địa chỉ luận lý + giá trị thanh ghi tái định vị TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 19 [CT1 07] Ch7 Quản lý bộ nhớ Cấp phát bộ nhớ. .. Tổng quan về Bộ nhớ và Tiến trình Bộ quản lý bộ nhớ – Memory Management Unit Bộ Quản Lý Bộ Nhớ – Sự Tái Định Vị Động Chapter 8 Main Memory relocation register 14000 CPU logical address 346 ϩ physical address 14346 memory MMU Figure 8.4 Dynamic relocation using a relocation register TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 12 [CT1 07] Ch7 Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình... vào TLBs TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 32 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging) Phân trang với TLB Phân Trang Với TLB logical address CPU p d page frame number number TLB hit physical address f d TLB p TLB miss f physical memory page table TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 33 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging) Thời gian truy xuất...[CT1 07] Ch7 Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Bộ quản lý bộ nhớ – Memory Management Unit Bộ Quản Lý Bộ Nhớ - MMU Là thiết bị phần cứng làm nhiệm vụ ánh xạ địa chỉ luận lý sang địa chỉ vật lý Có nhiều phương pháp được sử dụng, ví dụ như phương pháp dùng thanh ghi tái định vị (reallocation register) – địa chỉ bộ nhớ sử dụng bởi tiến trình sẽ được cộng... rác trong bộ nhớ (do sự cấp phát, thu hồi bộ nhớ) Khi 1 t/trình xuất hiện, nó được phân 1 lỗ trống đủ chứa nó Khi 1 t/trình kết thúc, vùng nhớ dành cho nó sẽ được thu hồi thành lỗ trống và kết hợp với lỗ trống liền kề nếu có Hệ thống sẽ duy trì thông tin về các phân khu đã cấp phát và lỗ trống TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 21 [CT1 07] Ch7 Quản lý bộ nhớ Cấp phát bộ nhớ kề nhau... Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 15 [CT1 07] Ch7 Quản lý bộ nhớ Hoán vị (swapping) Hoán Đổi (Swapping) Là một kỹ thuật cho phép tổng không gian bộ nhớ của các tiến trình lớn hơn tổng không gian nhớ vật lý: Một (hay một phần) tiến trình có thể được di chuyển tạm thời từ bộ nhớ chính ra các thiết bị lưu trữ phụ (cuộn ra – roll/swap out) rồi sau đó di chuyển ngược vào bộ nhớ chính để tiếp tục... (đ/vị thời gian) m: thời gian 1 chu kỳ truy xuất bộ nhớ α: tỷ lệ tìm thấy (hit ratio) – tỷ số giữa số lần chỉ số trang được tìm thấy trong TLB trên tổng số lần truy cập bộ nhớ Ví dụ: ε = 20ns, α = 0.8, m = 100ns ⇒ ETA = 140ns TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 34 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging) Bảo vệ bộ nhớ Bảo Vệ Bộ Nhớ (Memory Protection) Mỗi khung được gắn một... Look-aside Buffer – TLBs) TS Trần Công Án (Khoa CNTT&TT) [CT1 07] Ch7 Quản lý bộ nhớ 31 [CT1 07] Ch7 Quản lý bộ nhớ Phân trang (Paging) Bộ nhớ kết hợp Bộ Nhớ Kết Hợp – TLBs Là thanh ghi cực nhanh, chứa ánh xạ giữa trang và khung Có kích thước nhỏ: 64 – 1024 mục Được xem như là bộ đệm của bảng trang Cơ chế làm việc (ánh xạ p, d vào bộ nhớ vật lý) : Nếu p nằm trong TLBs: lấy ngay được số frame Ngược lại: truy ... CNTT&TT) [CT1 07] Ch7 Quản lý nhớ [CT1 07] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Không gian địa vật lý luận lý Không Gian Địa Chỉ Vật Lý & Luận Lý Việc gắn kết không gian nhớ vật lý luận lý trọng... CNTT&TT) [CT1 07] Ch7 Quản lý nhớ [CT1 07] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Tổng quan nhớ Giới Thiệu Bộ Nhớ CPU truy xuất trực tiếp ghi nhớ ⇒ Để thực thi chương trình, đoạn mã chương trình... 10 [CT1 07] Ch7 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Bộ quản lý nhớ – Memory Management Unit Bộ Quản Lý Bộ Nhớ - MMU Là thiết bị phần cứng làm nhiệm vụ ánh xạ địa luận lý sang địa vật lý Có nhiều

Ngày đăng: 27/04/2016, 20:00

Từ khóa liên quan

Mục lục

  • Tổng quan về Bộ nhớ và Tiến trình

    • Tổng quan về bộ nhớ

    • Thanh ghi nền và thanh ghi giới hạn

    • Bảo vệ không gian nhớ

    • Gắn kết địa chỉ (Address binding)

    • Gắn kết chỉ thị và dữ liệu vào bộ nhớ

    • Không gian địa chỉ vật lý và luận lý

    • Bộ quản lý bộ nhớ – Memory Management Unit

    • Nạp động (Dynamic loading)

    • Liên kết động (dynamic linking)

    • Hoán vị (swapping)

      • Roll in, Roll out

      • Cài Đặt Hoán Đổi

      • Cấp phát bộ nhớ kề nhau (Contigous allocation)

        • Giới thiệu

        • Bảo vệ vùng nhớ

        • Cấp phát đa phân khu động

        • Phân trang (Paging)

          • Định địa chỉ trong phân trang

          • Cấu trúc hệ thống dịch địa chỉ

          • Mô hình phân trang

          • Ví dụ về phân trang

          • Phân mảnh trong trong phân trang

          • Cài đặt bảng trang

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

  • Đang cập nhật ...

Tài liệu liên quan