Bài giảng Nguyên lý hệ điều hành: Chương 8 - Phạm Quang Dũng

13 164 0
Bài giảng Nguyên lý hệ điều hành: Chương 8 - Phạm Quang Dũng

Đ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 Nguyên lý hệ điều hành - Chương 8 giới thiệu về bộ nhớ chính của hệ điều hành. Nội dung chính của chương này cung cấp mô tả chi tiết các cách tổ chức phần cứng bộ nhớ; thảo luận các kỹ thuật quản lý bộ nhớ khác nhau, bao gồm phân trang và phân đoạn; cung cấp mô tả chi tiết về Intel Pentium, bộ xử lý hỗ trợ cả phân đoạn đơn thuần và phân đoạn kết hợp với phân trang. Mời các bạn cùng tham khảo.

Nội dung chương BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH „ Kiến thức „ Swapping „ Phân phối nhớ liên tiếp - Contiguous Allocation Chương 8: Bộ nhớ „ Phân trang - Paging „ Phân đoạn - Segmentation Phạm Quang Dũng Bộ môn Khoa học máy tính Khoa Cơng nghệ thơng tin Trường Đại học Nông nghiệp Hà Nội DĐ: 0979784189 Website: fita.hua.edu.vn/pqdung „ Kết hợp phân đoạn với phân trang - Segmentation with Paging „ Ví dụ: Intel Pentium Bài giảng Nguyên lý Hệ điều hành Mục tiêu 8.2 Phạm Quang Dũng ©2008 8.1 Kiến thức 8.1.1 Về Về phầ phần cứng „ Cung cấp mô tả chi tiết cách tổ chức phần cứng „ Chương trình phải đưa từ đĩa vào nhớ nhớ „ Thảo luận kỹ thuật quản lý nhớ khác nhau, bao gồm phân trang phân đoạn „ Bộ nhớ chính, cache, ghi nhớ mà CPU có „ Cung cấp mơ tả chi tiết Intel Pentium, xử lý hỗ trợ phân đoạn đơn phân đoạn kết hợp với phân trang Bài giảng Nguyên lý Hệ điều hành đặt vào tiến trình để chạy thể truy nhập trực tiếp „ Yêu cầu nhớ phải bảo vệ để đảm bảo hoạt động đắn 8.3 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.4 Phạm Quang Dũng ©2008 Các ghi base và limit Bảo vệ vệ nhớ nhớ với cá ghi base & limit „ Cặp ghi base limit xác định không gian địa hợp lệ mà tiến trình người sử dụng phép truy nhập Sự bảo vệ nhớ thực cách so sánh địa user mode với ghi base limit Nếu địa nằm ngồi khoảng địa xác định ghi mắc bẫy chuyển sang monitor mode Bài giảng Nguyên lý Hệ điều hành 8.5 Phạm Quang Dũng ©2008 Sử dụng ghi base limit (tiếp) „ Các lệnh nạp ghi base limit lệnh đặc quyền Bài giảng Nguyên lý Hệ điều hành 8.6 Phạm Quang Dũng ©2008 8.1.2.Liên kế kết cá lệ lệnh và liệ liệu tới bộ nhớ nhớ Sự liên kết địa lệnh liệu (của tiến trình) tới địa nhớ xảy giai đoạn khác nhau: „ Compile time: Nếu vị trí nhớ biết trước, m㠄 Khi thực monitor mode, HĐH không hạn chế truy nhập nhớ xác (absolute code) sinh ra; phải biên dịch lại mã vị trí bắt đầu thay đổi vd chương trình COM MS DOS „ Load time: Phải sinh mã tái định vị (relocatable ⇒ cho phép HĐH nạp chương trình người sử dụng vào nhớ, đưa chương trình ngồi có lỗi code) vị trí nhớ khơng biết giai đoạn biên dịch „ Execution time: Sự liên kết bị hoãn lại đến giai đoạn chạy trình thực tiến trình bị chuyển từ đoạn nhớ đến đoạn khác Cần có hỗ trợ phần cứng để ánh xạ địa (ví dụ, base limit registers) Hầu hết HĐH đa sử dụng phương pháp Bài giảng Nguyên lý Hệ điều hành 8.7 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.8 Phạm Quang Dũng ©2008 Các bướ bước xử xử lý chương trì trình ngườ người sử sử dụng 8.1.3 Logical vs Physical Address Space „ Khái niệm không gian địa logic (logical address space) tách riêng với không gian địa vật lý (physical address space) để quản lý nhớ thích hợp z Logical address – tạo CPU; gọi địa ảo (virtual address) z Physical address – địa nhận biết đơn vị quản lý nhớ (memory unit) „ Các địa logic (ảo) vật lý giai đoạn liên kết địa compile-time load-time; chúng khác execution-time Bài giảng Nguyên lý Hệ điều hành 8.9 Phạm Quang Dũng ©2008 MemoryMemory-Management Unit (MMU) Bài giảng Nguyên lý Hệ điều hành 8.10 Phạm Quang Dũng ©2008 Định vị vị độ động sử sử dụng ghi đị định vị vị „ Là thiết bị phần cứng ánh xạ địa ảo tới địa vật lý „ Trong lược đồ MMU, giá trị ghi định vị (relocation register) cộng với tất địa sinh tiến trình người sử dụng thời điểm gửi tới nhớ „ Chương trình người sử dụng làm việc với địa logic; khơng nhận địa vật lý thực Bài giảng Nguyên lý Hệ điều hành 8.11 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.12 Phạm Quang Dũng ©2008 8.1.4 Dynamic Loading 8.1.5 Dynamic Linking „ Tiến trình nạp vào nhớ gọi „ Sử dụng không gian nhớ tốt hơn; tiến trình khơng dùng đến khơng nạp „ Việc liên kết hoãn lại đến execution time „ Đoạn mã nhỏ, stub, sử dụng để định vị thường trình thư viện cư trú nhớ (memory-resident library routine) thích hợp, để nạp thư viện thường trình chưa sẵn sàng „ Hữu ích trường hợp số lượng lớn mã cần xử lý xuất „ Khi thực hiện, stub kiểm tra thường trình cần đến có nhớ tiến trình chưa, z chưa chương trình nạp thường trình vào nhớ; „ Khơng yêu cầu hỗ trợ đặc biệt từ HĐH, thực z rồi: stub tự thay địa thường trình thực thường trình thơng qua thiết kế chương trình „ Liên kết động đặc biệt hữu dụng thư viện chương trình, việc cập nhật thư viện (vd sửa lỗi) Bài giảng Nguyên lý Hệ điều hành 8.13 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.2 Swapping 8.14 Phạm Quang Dũng ©2008 Giả Giản đồ đồ Swapping „ Một tiến trình tạm thời đưa khỏi nhớ tới backing store (swap out), sau đưa trở lại nhớ để thực tiếp (swap in) „ Backing store – đĩa tốc độ nhanh, đủ lớn để lưu trữ tất hình ảnh nhớ cho tất người sử dụng; phải cung cấp truy nhập trực tiếp tới hình ảnh nhớ „ Hệ thống trì ready queue chứa tiến trình sẵn sàng chạy có ảnh nhớ chứa backing store nhớ „ Khi trình lập lịch CPU định thực tiến trình, gọi trình điều vận „ Trình điều vận kiểm tra tiến trình queue có nhớ chưa, chưa có khơng cịn vùng nhớ rỗi đủ lớn, đưa tiến trình nhớ backing store đưa tiến trình mong muốn vào Bài giảng Nguyên lý Hệ điều hành 8.15 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.16 Phạm Quang Dũng ©2008 Swapping (tiế (tiếp) 8.3 Phân phố phối bộ nhớ nhớ liên tiế tiếp „ Phần lớn thời gian hoán đổi thời gian chuyển liệu; tổng thời gian chuyển tỷ lệ thuận với dung lượng nhớ hoán đổi z Vd: giả sử dung lượng tiến trình người sử dụng 10 MB backing store đĩa cứng có tốc độ truyền liệu 40 MB/s Thời gian truyền chiều từ/đến nhớ = 1/4 s = 250 ms giả sử trễ trung bình = ms ⇒ Tổng truyền chiều = 258 ms ⇒ Tổng swap in + swap out = 258 x = 516 ms „ Roll out, roll in – biến thể hoán đổi sử dụng cho thuật giải lập lịch dựa mức ưu tiên (priority-based scheduling); tiến trình có mức ưu tiên thấp bị thay để tiến trình có mức ưu tiên cao nạp thực 8.17 z Nơi HĐH cư trú, thường vùng nhớ thấp, chứa bảng vector ngắt z Các tiến trình người sử dụng chứa vùng nhớ cao „ Phân phối đơn partition (Single-partition allocation) z Các ghi định vị sử dụng để bảo vệ tiến trình người sử dụng không ảnh hưởng lẫn không thay đổi liệu mã HĐH z Relocation register chứa giá trị địa vật lý nhỏ nhất; limit register chứa dải địa logic - địa logic phải nhỏ limit register „ Sự hoán đổi khác HĐH UNIX, Linux, Windows Bài giảng Nguyên lý Hệ điều hành „ Bộ nhớ chia thành phần: Phạm Quang Dũng ©2008 z MMU ánh xạ địa logic theo cách động Bài giảng Nguyên lý Hệ điều hành 8.18 Phạm Quang Dũng ©2008 Phân phố phối liên tiế tiếp (tiếp) Ví dụ ghi Relocation Limit „ Phân phối đa partition (Multiple-partition allocation) z Hole – khối nhớ khả dụng; hole có kích thước khác nằm rải rác khắp nhớ z Khi tiến trình đến, phân phối cho hole đủ lớn z HĐH trì thông tin về: a) vùng nhớ phân phối - allocated partitions b) vùng nhớ tự - free partitions (hole) OS OS OS OS process process process process process process process Bài giảng Nguyên lý Hệ điều hành 8.19 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành process process 10 process process 8.20 process Phạm Quang Dũng ©2008 Bài tố toán phân phố phối vù vùng nhớ nhớ độ động Sự phân mả mảnh - Fragmentation Làm để đáp ứng yêu cầu kích thước n từ danh sách „ External Fragmentation – tổng không gian nhớ tự thực tế đủ đáp ứng yêu cầu, khơng nằm kề free holes „ Internal Fragmentation – nhớ phân phối lớn „ First-fit: Phân phối hole có đủ độ lớn „ Best-fit: Phân phối hole nhỏ có đủ độ lớn; phải tìm kiếm tồn danh sách, trừ DS xếp theo dung lượng „ Có thể làm giảm external fragmentation cách nén lại z Tạo hole lại nhỏ „ Worst-fit: Phân phối hole lớn nhất; phải tìm kiếm tồn danh sách (compaction) z Di chuyển nội dung nhớ để đặt tất vùng nhớ tự lại với thành khối lớn z Tạo hole lại lớn z Kết khối tiến hành tái định vị động, First-fit best-fit tốt worst-fit mặt tốc độ sử dụng nhớ Bài giảng Nguyên lý Hệ điều hành không đáng kể so với nhớ yêu cầu; khác biệt kích thước nhớ bên partition, khơng sử dụng 8.21 Phạm Quang Dũng ©2008 thực execution time „ phương pháp khác phân phối nhớ không liên tục Bài giảng Nguyên lý Hệ điều hành 8.4 Phân trang - Paging 8.22 Phạm Quang Dũng ©2008 Lượ Lược đồ đồ biên dị dịch đị địa chỉ „ Không gian địa logic tiến trình khơng kề nhau; tiến trình phân phối nhớ vật lý lúc sau nhớ sẵn có „ Địa tạo CPU chia thành: z Page number (p) – sử dụng làm index tới page table, chứa địa sở (base address) trang nhớ vật lý „ Chia nhớ vật lý thành khối có kích thước cố định bội số (512 bytes - 16 MB),được gọi frame z Page offset (d) – kết hợp với địa sở để xác định địa nhớ vật lý „ Chia nhớ logic thành khối kích thước - page page number „ Luôn theo dõi tất frame trống „ Để chạy chương trình có kích thước n pages, cần phải tìm n frames cịn trống nạp chương trình „ Thiết lập bảng phân trang (page table) để biên dịch (translate) địa logic thành địa vật lý z 2n page offset p d m-n n = kích thước page (byte word) z 2m = kích thước khơng gian địa logic „ Sự phân đoạn diễn bên (Internal fragmentation) Bài giảng Nguyên lý Hệ điều hành 8.23 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.24 Phạm Quang Dũng ©2008 Lượ Lược đồ đồ dịch đị địa chỉ (tiế (tiếp) Bài giảng Nguyên lý Hệ điều hành 8.25 Mơ hì hình phân trang Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Ví dụ phân trang 8.26 Phạm Quang Dũng ©2008 Các Frame rỗ rỗi Vd: Địa logic (page 1, offset 0); theo bảng phân trang, trang ánh xạ tới frame ⇒ địa logic ánh xạ tới địa vật lý = x + = 24 Trước phân phối Sau phân phối 32-byte memory and 4-byte pages Bài giảng Nguyên lý Hệ điều hành 8.27 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.28 Phạm Quang Dũng ©2008 Phân trang vớ với TLB Sự thự thực thi củ Page Table „ Page table lưu nhớ „ Page-table base register (PTBR) tới page table „ Page-table length register (PRLR) cho biết kích thước page table „ Trong lược đồ phân trang, truy nhập lệnh/dữ liệu yêu cầu lần truy nhập nhớ: cho page table cho lệnh/dữ liệu → truy nhập chậm „ Vấn đề lần truy nhập nhớ giải cách sử dụng nhớ cache tra cứu nhanh đặc biệt gọi nhớ liên kết - associative memory (TLB) Bài giảng Nguyên lý Hệ điều hành 8.29 Phạm Quang Dũng ©2008 Bảo vệ vệ nhớ nhớ Bài giảng Nguyên lý Hệ điều hành 8.30 Phạm Quang Dũng ©2008 Valid (v) - Invalid (i) Bit bả bảng phân trang „ Sự bảo vệ nhớ thực thi cách kết hợp protection bit với frame „ Mỗi phần tử bảng phân trang gắn thêm valid–invalid bit z “valid” (=1) cho biết trang tương ứng không gian địa logic tiến trình, trang hợp lệ z “invalid” (=0) cho biết trang khơng có không gian địa logic Bài giảng Nguyên lý Hệ điều hành 8.31 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.32 Phạm Quang Dũng ©2008 Các trang chia sẻ sẻ Shared Pages Example „ Một lợi điểm phân trang khả chia sẻ mã chung, Vd: hệ thống hỗ trợ 40 đặc biệt quan trọng môi trường chia sẻ thời gian user, user thực „ Shared code text editor gồm 150KB mã 50KB liệu z Một copy read-only code chia sẻ tiến trình (i.e., text editors, compilers, window systems) - Nếu không chia sẻ z Mã chia sẻ phải xuất vị trí khơng gian địa liệu, cần 8000KB logic tất tiến trình - Nếu chia sẻ 150KB mã, tốn 150 + 40 x 50 „ Private code and data = 2150 KB nhớ z Mỗi tiến trình giữ copy mã liệu riêng z Các trang mã liệu riêng xuất đâu không gian địa logic Bài giảng Nguyên lý Hệ điều hành 8.33 Phạm Quang Dũng ©2008 8.5 Phân đoạ đoạn - Segmentation Bài giảng Nguyên lý Hệ điều hành 8.34 Phạm Quang Dũng ©2008 Chương trì trình dướ gó góc nhì nhìn củ ngườ người sử sử dụng „ Là lược đồ quản lý nhớ hỗ trợ cách nhìn người sử dụng nhớ: „ Mỗi chương trình tập hợp đoạn Mỗi đoạn đơn vị logic như: main program, procedure, function, method, object, local variables, global variables, common block, stack, symbol table, arrays Bài giảng Nguyên lý Hệ điều hành 8.35 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.36 Phạm Quang Dũng ©2008 Góc nhì nhìn logic củ sự phân đoạ đoạn „ Địa logic gồm thành phần: , Kiế Kiến trú trúc phân đoạ đoạn „ Segment table – tương tự bảng phân trang, mục bảng gồm có: z base – chứa địa vật lý đoạn nhớ z limit – xác định độ dài đoạn „ Segment-table base register (STBR): trỏ tới vị trí bảng phân đoạn nhớ „ Segment-table length register (STLR): xác định số đoạn mà chương trình sử dụng; user space Bài giảng Nguyên lý Hệ điều hành physical memory space 8.37 Phạm Quang Dũng ©2008 segment number s hợp lệ s < STLR Bài giảng Nguyên lý Hệ điều hành Kiế Kiến trú trúc phân đoạ đoạn (tiế (tiếp) 8.38 Phạm Quang Dũng ©2008 Lượ Lược đồ đồ phân đoạ đoạn „ Phân đoạn z đoạn có kích thước khác (khác với phân trang) „ Định vị z động z thực bảng phân đoạn „ Phân phối nhớ z giải toán phân phối nhớ động z first fit/best fit z có phân mảnh ngồi Bài giảng Nguyên lý Hệ điều hành 8.39 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.40 Phạm Quang Dũng ©2008 10 8.6 Kế Kết hợ hợp phân đoạ đoạn vớ với phân trang Ví dụ phân đoạ đoạn MULTICS „ Bộ nhớ phân thành đoạn, sau đoạn lại phân trang „ Hệ thống MULTICS giải vấn đề phân mảnh thời gian tìm kiếm dài „ Giải pháp khác so với phân đoạn chỗ mục bảng phân đoạn không chứa địa sở đoạn mà chứa địa sở bảng phân trang đoạn Bài giảng Nguyên lý Hệ điều hành 8.41 Phạm Quang Dũng ©2008 Lượ Lược đồ đồ MULTICS Bài giảng Nguyên lý Hệ điều hành 8.43 Bài giảng Nguyên lý Hệ điều hành 8.42 Phạm Quang Dũng ©2008 Lượ Lược đồ đồ MULTICS củ Intel 80386 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.44 Phạm Quang Dũng ©2008 11 8.7 Example: Example: The Intel Pentium Sự biên dị dịch đị địa chỉ logic thành đị địa chỉ vật lý Pentium „ Hỗ trợ cách quản lý nhớ: phân đoạn, phân đoạn kết hợp với phân trang „ CPU sinh địa logic z địa đưa tới segmentation unit (đơn vị phân đoạn)  segmentation unit tạo địa tuyến tính ứng với địa logic z Địa tuyến tính đưa tới paging unit (đơn vị phân trang)  paging unit sinh địa vật lý nhớ  segmentation unit paging unit tạo thành tương ứng MMU Bài giảng Nguyên lý Hệ điều hành 8.45 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Intel Pentium Segmentation 8.46 Phạm Quang Dũng ©2008 Pentium Paging „ Kích thước trang KB MB „ cờ Page Size (trong page directory): z = 1: kích thước page frame MB  phân chia địa tuyến tính 32 bit: = z = 0: kích thước page frame chuẩn KB  Sử dụng lược đồ phân trang mức, phân chia địa tuyến tính 32-bit sau: Bài giảng Nguyên lý Hệ điều hành 8.47 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.48 Phạm Quang Dũng ©2008 12 Pentium Paging Architecture Linear Address in Linux Được chia thành phần: Bài giảng Nguyên lý Hệ điều hành 8.49 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 8.50 Phạm Quang Dũng ©2008 ThreeThree-level Paging in Linux End of Chapter Bài giảng Nguyên lý Hệ điều hành 8.51 Phạm Quang Dũng ©2008 13 ... fragmentation) Bài giảng Nguyên lý Hệ điều hành 8. 23 Phạm Quang Dũng ©20 08 Bài giảng Nguyên lý Hệ điều hành 8. 24 Phạm Quang Dũng ©20 08 Lượ Lược đồ đồ dịch đị địa chỉ (tiế (tiếp) Bài giảng Nguyên lý Hệ điều. .. phần: Bài giảng Nguyên lý Hệ điều hành 8. 49 Phạm Quang Dũng ©20 08 Bài giảng Nguyên lý Hệ điều hành 8. 50 Phạm Quang Dũng ©20 08 ThreeThree-level Paging in Linux End of Chapter Bài giảng Nguyên lý Hệ. .. đoạn Bài giảng Nguyên lý Hệ điều hành 8. 41 Phạm Quang Dũng ©20 08 Lượ Lược đồ đồ MULTICS Bài giảng Nguyên lý Hệ điều hành 8. 43 Bài giảng Nguyên lý Hệ điều hành 8. 42 Phạm Quang Dũng ©20 08 Lượ Lược

Ngày đăng: 30/01/2020, 01:35

Từ khóa liên quan

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

Tài liệu liên quan