BÁO CÁO BÀI TẬP LỚN Môn: Hệ Điều Hành Đề Tài: Quảnlínhớ windows Giảng viên hướng dẫn: Sinh viên thực hiện: Nguyễn Thanh Hải Nguyễn Đăng Chính I- Dẫn nhập & Khái niệm: Dẫn Nhập: Chúng ta thấy CPU dùng chung nhiều process.Do kết định thời CPU, cải tiến hiệu suất CPU lẫn tốc độ đáp ứng người dùng.Để thực việc làm tăng hiệu phải lưu giữ vài trình nhớ; tức phải dùng nhớ dùng chung Bộnhớ trung tâm họat động hệ thống máy tính đại.Bộ nhớ gồm dãy lớn words byte, mà có địa riêng chúng - 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 mốt phần cố định nhớ, phần lại phân phối cho process Các khái niệm: - Địa luận lý, hay gọi địa ảo (Virtual Address): tất địa xử lý tạo ra.Tập hợp tất địa luận lý tạo nên không gian địa luận lý - Địa vật lý, hay gọi địa thực: địa thực tế mà trình quản lý nhớ nhìn thấy thao tác.Tập hợp tất địa vật lý tạo nên không gian địa vật lý - Paging & Page File: Paging kỹ thuật sử dụng hệ thống nhớ ảo để đảm bảo liệu cần tồn (available) nhanh tốt Hệ điều hành copy (sao chép) số trang định từ thiết bị lưu trữ vào nhớ Khi chương trình cần trang mà không tồn nhớ chính, hệ điều hành copy trang cần thiết vào nhớ copy trang khác vào lại ổ đĩa Page File file ổ cứng, Windows sử dụng làm nhớ ảo để lưu trữ chương trình liệu, nhớ vật lý (RAM) không đủ chỗ chứa H1.Minh họa cho việc sử dụng nhớ ảo tạo Page File II – Hệ thống Windows quản lý logic theo cấu trúc phân trang (paging): Physical Storage: Mức tối đa dung lượng nhớ vật lý hệ thống Windows hỗ trợ khoảng từ 2GB->2TB, tùy thuộc vào phiên Windows Không gian địa ảo tiến trình nhỏ lớn tổng dung lượng nhớ vật lý máy tính Tập hợp không gian địa ảo tiến trình cư trú nhớ vật lý gọi “ working set” (mô hình Tập làm việc) Virtual Address Space: Mỗi tiến trình người dùng tảng Windows 32-bit cấp phát không gian địa ảo (Virtual Address Space) Gigabytes.Còn tảng Windows 64bit, tiến trình người dùng cấp phát không gian địa ảo lên tới Terabytes.Tất tiểu trình tiến trình truy cập vào vùng địa ảo nó, nhiên tiểu trình lại truy cập vào vùng địa ảo thuộc tiến trình khác Không gian địa ảo tiến trình tập hợp tất địa nhớ ảo mà sử dụng.Các không gian nhớ ảo thiết lập riêng tư (private), tiến trình khác không sử dụng đến chưa chia sẻ Windows hệ thống 32 bit x86 systems truy xuất (access) Gigabytes nhớ vật lý.Do thực tế bus addr vi xử lý (processor) 32 lines hay 32 bits truy xuất vùng addr từ 0x00000000 đến 0xFFFFFFFF tức có 4GB Gigabytes chia làm hai phần: - 0->2 GB dưới: chứa liệu lệnh riêng tiến trình.Vùng hoạt động chế độ user-mode, người dùng thao tác vùng 2GB - 2->4 GB trên: chứa thành phần liệu thuộc hệ điều hành, chia sẻ chung cho tiến trình, hoạt động chế độ kernel-mode, vùng hệ điều hành quản lý, người dùng tác động vào vùng (không thể đọc ghi được) H3.Không gian địa ảo cấp phát cho ba tiến trình Windows làm cấp phát vùng addr 4GB cho nhiều processes tổng nhớ truy xuất bị giới hạn 4GB? Để đạt điều này, Windows dùng đặc tính x86 processer (386 trở lên) biết đến “phân trang” (paging).Paging cho phép phần mềm sử dụng địa nhớ (được biết đến logical address: địa luận lý) khác với địa nhớ vật lý (physical memory address).Paging processor chuyển đổi logical address thành physical address cách dễ dàng.Điều cho phép process system có vùng addr logical 4GB nó.Để hiểu điều chi tiết hơn, hảy bắt đ ầu tìm hiểu cách paging môi trường làm việc x86 Processer mục Phân trang (Paging): Trong xử lý x86 vùng địa vật lý (physical address space) chia thành pages có kích thước 4KB Vì để đánh địa 4GB nhớ, cần Megabyte (1024x1024) trang (pages) có kích thước 4KB.Bộ vi xử lý dùng lớp cấu trúc để tham chiếu đến Mega pages Chúng ta nghĩ ma trận chiều kích thước 1024x1024 phần tử.Chiều thứ biết đến Page Directory chiều thứ biết Page Table.Vì cần cài đặt Page Directory với 1024 thành phần, thành phần point (trỏ đến) đến Page Table Điều cho phép có 1024 Page Table.Mỗi Page Table lại có 1024 thành phần, thành phần lại trỏ đến 4KB Page H4.Paging in x86 Processor Mỗi thành phần Page Directory Entry (PDE) có kích thước bytes trỏ đến Page Table.Tương tự , Page Table Entry (PTE) có kthước bytes trỏ đến physical address (địa vật lý) 4KB page.Để chứa 1024 PDE mà thành phần lại chứa 1024 PTE, cần tổng nhớ 4x1024x1024 bytes, có nghĩa 4MB.Vì chia tòan 4GB vùng addr cho 4KB page, cần 4MB vùng nhớ H5.Address Translation hệ thống phân trang Không gian địa ảo Windows quản lý theo kiểu phân trang, kích thước trang 4kB = 212 byte; 4GB=220 x 4kB => nhớ ảo chứa 220 trang ảo Mỗi trang ảo nằm trạng thái: - Free: trang chưa dùng để chứa liệu sử dụng tiểu trình tiến trình chứa nó, trang Free không đưa vào RAM Tham chiếu đến trang free gây lỗi (Page Fault), lỗi không xử lý - Committed: trang ánh xạ liệu, nằm RAM vùng Paging File (Paging file vùng nhớ tổ chức RAM, cho cảm giác RAM mở rộng dùng để chứa nội dung trang bị đẩy từ RAM).Khi CPU gọi đến trang Committed trang vùng Paging File xuất Page Fault, trang đẩy vào RAM để hoạt động.Còn trang RAM không xuất Page Fault - Reserved: trang chưa có nhớ vật lý, đặt trước để chứa liệu code.Khi CPU gọi đến trang xuất Page Fault Trang đ ược xử lý để chuyển sang trạng thái committed Ví dụ: Khi tiểu trình sinh ra, cần trang committed thời điểm đặt trước đến 1MB trang reserved liên tiếp cạnh trang committed, để tiểu trình sử dụng sau Hình vẽ sau mô tả mối quan hệ trạng thái trang: H6.Chuyển đổi trạng thái trang ảo hàm API Windows Page Table Management: Trong Windows, process có Page Directory Page Table Vì Windows cấp 4MB vùng nhớ cho process Khi process cài đặt, thành phần Page Directory chứa physical address (địa vật lý) Page Table Các thành phần Page Table valid (hợp lệ) , invalid (không hợp lệ) Các thành phần valid chứa physical address 4KB page cấp cho process Một thành phần invalid (không hợp lệ) chứa vài bits đặc biệt đánh dấu không hợp lệ thành phần biết Invalid PTEs (Page Table Entry) Khi memory cấp cho process,các thành phần Page Table lắp địa vật lý pages cấp Ở process điều địa vật lý sử dụng logical address (địa luận lý) mà Chi tiết việc logical address tương ứng với physical address quản lý chuyển đổi Windows Memory Manager Processor (bộ vi xử lý) Address Page Directory process định vị physical memory tham chiếu đến Page Directory Base address Page Directory Base address chứa ghi đặc biệt CPU CR3 (trên x86) Để chuyển đổi context khác, Windows tải giá trị CR để trỏ đến Page Directory base process Với cách process lấy phần phân chia 4GB physical address space (không gian địa vật lý) Tất nhiên, tổng dung lượng nhớ cấp thời điểm cho tất process hệ thống vượt số lượng RAM+kích thước pagefile theo lược đồ thảo luận cho phép Windows cấp cho process vùng address logical (hay Virtual: ảo) 4GB Chúng ta gọi vùng địa ảo (Virtual Addres sapce) process có đến range (phạm vi) 4GB address, sử dụng memory cấp cho Nếu process thử truy xuất (access) địa không cấp phép, gây access violation (sự vi phạm truy xuất) PTE tương ứng với address trỏ đến giá trị ko hợp lệ (invalid value) Cũng vậy, process ko thể cấp memory nhiều phép system Phương thức tách riêng logical memory từ physical memory có nhiều thuận lợi Một process có vùng address 4GB tuyến tính , lập trình viên ứng dụng ko phải lo lắng segments hoàn toàn không giống ngày tháng cũ làm việc với DOS Nó cho phép Windows chạy nhiều prosses lúc cho phép chúng dùng physical memory máy tính mà lo lắng chúng đè lên vùng address space process khác Một logical address process không trỏ đến physical memory cấp cho process khác (trừ chúng sử dụng phần để shared memory) Vì vậy,một process không read hay write vào memory process khác Sự chuyển đổi từ logical address (địa luận lý) sang physical address (địa vật lý) thực vi xử lý Một 32bit logical address chia thành phần hình đây: Vi xử lý loads physical address page directory lưu trữ CR3 Rồi sử dụng 10 bits thấp từ logical address mục Page directory Tạo cho processor page directory entry (PDE) trỏ đến Page Table 10 bits sử dụng mục Page Table Sử dụng 10 bits này, lấy page table entry (hay PTE) trỏ đến 4KB physical page 12 bits thấp sử dụng đánh địa bytes riêng lẻ page Windows Memory Protection: Windows hổ trợ bảo vệ memory cho tất processes mục đích để process truy xuất vùng nhớ process khác Điều đảm bảo họat động nhiều processes lúc cách trôi chảy Windows đảm bảo chế độ bảo vệ cách theo bước sau: - Chỉ đặt physical address memory định vị PTE cho process Điều đảm bảo process bắt access violation thử truy xuất địa mà không định vị - Một rouge process (tiến trình thực thi) cố gắng thay đổi page tables để truy xuất physical memory thuộc process khác, điều dẫn đến lỗi trang.Windows bảo vệ khỏi loại công chế cất giữ page tables kernel address space Cấu trúc đa bảng trang: - Windows sử dụng hai cấp bảng trang: bảng trang cấp (PT1-page table 1) bảng trang cấp (PT2-page table 2) để quản lý nhớ nhằm tránh việc quản lý tất bảng trang nhớ lúc, bảng trang kích thước trang ảo 4KB.Mỗi tiến trình có bảng trang cấp 1, 1024 bảng trang cấp - Bảng trang cấp quản lý địa vật lý bảng trang cấp 2.Bảng trang cấp có 1024 mục mục byte (hay 32 bit), quản lý địa vật lý 1024 bảng trang cấp 2.Trong mục, 20 bits đầu dùng chứa địa vật lý bảng trang cấp bảng trang cấp nạp vào RAM; 12 bit cuối chứa thuộc tính bảng trang đó, bit Present/Absent trang RAM, ngược lại gán giá trị Trong trường hợp bảng trang cấp chưa nạp vào RAM 20 bit đầu chứa toàn 0, bit Present/Absent - Bảng trang cấp quản lý địa vật lý trang ảo.Bảng trang cấp có1024 mục, mục byte (hay 32 bit), quản lý địa 1024 trang ảo.Như bảng trang cấp quản lý địa vật lý 4MB trang ảo.Cấu tạo c mục PT2 tương tự mục PT1 Tức 20 bits đầu dùng chứa địa vật lý trang ảo 12 bits lại lưu trữ số thuộc tính bảo vệ; bit Present/Absent trang RAM, ngược lại ... lưu trữ vào nhớ Khi chương trình cần trang mà không tồn nhớ chính, hệ điều hành copy trang cần thiết vào nhớ copy trang khác vào lại ổ đĩa Page File file ổ cứng, Windows sử dụng làm nhớ ảo để lưu... H6.Chuyển đổi trạng thái trang ảo hàm API Windows Page Table Management: Trong Windows, process có Page Directory Page Table Vì Windows cấp 4MB vùng nhớ cho process Khi process cài đặt, thành... table 2) để quản lý nhớ nhằm tránh việc quản lý tất bảng trang nhớ lúc, bảng trang kích thước trang ảo 4KB.Mỗi tiến trình có bảng trang cấp 1, 1024 bảng trang cấp - Bảng trang cấp quản lý địa