Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
811,42 KB
Nội dung
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT - - Đề tài: Nghiên cứu tìm hiểu quảnlýnhớtrong Hệ điều hành Window MÔN HỌC: NGUYÊN LÝ HỆ ĐIỀU HÀNH Giáo viên: Ths Nguyễn Tuấn Tú Nhóm số: Lớp: ĐH Khoa học máy tính K9 Hà Nội,ngày 21 tháng năm 2016 BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT - - Đề tài: Nghiên cứu tìm hiểu quảnlýnhớtrong Hệ điều hành Window MÔN HỌC: NGUYÊN LÝ HỆ ĐIỀU HÀNH Giáo viên: Ths Nguyễn Tuấn Tú Nhóm số: Sinh viên thực hiện: Phạm Thị Ngọc (0941060226) Hoàng Thị Thản ( 0941060210) Trần Thị Thu (0941060202) Nguyễn Thị Thuỳ (0941060228) Vũ Công Trường (0941060251) Lớp: ĐH Khoa học máy tính K9 Hà Nội, ngày 21 tháng năm 2016 Lời nói đầu Quảnlýnhớ nhiệm vụ quantrọng phức tạp hệ điều hành Bộ phận quảnlýnhớ xem nhớ tài nguyên hệ thống dùng để cấp phát chia sẻ cho nhiều tiến trình trạng thái hoạt động Vậy phải quảnlýnhớ ? CPU trao đổi thông tin với nhớ mà chương trình muốn thực thi cần nạp vào nhớ để tạo lập tiến trình tương ứng để xủ lý.Và hệ thống đa chương nhớ hệ điều hành có nhiều tiến trình hoạt động Ngoài kích thước nhớ hữu hạn yêu cầu nhớ vô hạn Chính lý đó, HĐH Window cần phải có chế quảnlýnhớ cách hiệu để có thể: đưa tiến trình vào nhớ có yêu cầu, cho dù nhớ không không gian trống ; bảo vệ tiến trình HĐH tiến trình nhớ tránh trường hợp truy xuất bất hợp lệ xảy Cơ chế hoạt động trình bày rõ phần tập lớn Và sau đề tài nghiên cứu tìm hiểu quảnlýnhớtrongHĐH window Chương 1-Dẫn nhập & Khái niệm 1.1 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ảnlý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 1.2 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ảnlý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 PageFile 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 Hình 1.1 Minh họa cho việc sửdụng bộnhớ ảo tạo Page File Chương 2- Hệ thống Windowsquảnlý logic theo cấu trúc phân trang 2.1 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 Hình2.1 Bảng so sánh giới hạn nhớ vật lý phiên khác HĐH Windows(X= không hỗ trợ) Không gian địa chỉả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) 2.2 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 64-bit, tiến trình người dùng cấp phát không gian địa chỉả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) 4Gigabytes 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) 2.3 Phân trang (Paging): Hình 2.2 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 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 1Mega 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 10 sử dụng logical address(địa luận lý)mà Chi tiết việc logical address tương ứng với physical addressnào quảnlý chuyển đổi Windows Memory Manager Processor (bộ vi xử lý) Address Page Directory process định vị physical memoryvàđược 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ị CR3 để trỏ đến Page Directory base process Với cách process lấy phần phân chia 4GB physical addressspace (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ị không 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 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, process không read hay write vào memory process khác 14 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 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 2.5 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 cùnglú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 ch ỉmà không định vị Một rouge process (tiến trình thực thi) cố gắng thay đổi pagetables để 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 2.6 Cấu trúc đa bảng trang: Windows sử dụng hai cấp bảng trang: bảng trang cấp 1(PT1- page table 1) bảng trang cấp 2(PT2-page table 2) để quảnlýnhớ nhằm tránh việc quảnlý tất bảng trang nhớ lúc, bảng trang kích thước 15 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ảnlý địa vật lý bảng trang cấp Bảng trang cấp có 1024 mục mục byte(hay 32 bit), quảnlý đị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ảnlý địa vật lý trang ảo Bảng trang cấp có 1024 mục, mục byte (hay 32 bit), quảnlý địa 1024 trang ảo.Như bảng trang cấp quảnlý địa vật lý 4MB trang ảo Cấu tạo 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 16 Hình 2.6 Cấu trúc đa bảng trang Chương 3-Quản lýnhớ ảo (bộ nhớ logic) 3.1 Bộnhớ ảo (Virtual Memory): Bộnhớ ảo kỹ thuật cho phép xử lý tiến trình không nạp toàn vào nhớ vật lýBộnhớ ảo mô hình hoá nhớ bảng lưa trữ lớn đồng ,tách biêt hẳn khái niệm không gian địa ảo (virtual address space) không gian vật lý (physical space).Một điểm lợi quantrọng chế chương trình chạy lớn nhớ vật lý Ngoài ,bộ nhớ ảo phóng đại nhơ thành nhớ luận lý cực lớn đươc hiển thị người dùng Kỹ thuật giải phóng người lập trình từ việc quan tâm đến giới hạn kích thước nhớ.Bộ nhớ ảo cho 17 phép trình dễ dàng chia sẻ tập tin không gian địa ,cung cấp chế hữu cho qúa trình Hình 3.1 Lưa đồ minh hoạ ộ nhớ ảo lớn nhớ vật lý 18 3.2 Ánh xạ (dịch) từ nhớ logic sang nhớ thực: Hình 3.2 CPU làm việc với MMU Bộ phận dịch (MMU).MMU viết tắt Memory Management Unit Để thi hành lệnh ,CPU gửi địa ảo đến MMU.Thông qua MMU,địa ảo ánh xạ tương ứng với địa vật lý cụ thể gửi tới bus địa Cuối thông qua bus địa để truy cập tới 1vùng cụ thể RAM 3.3 Page Faults 3.3.1 Page Faults gì: Page Faults ấn đề loại phần mềm nay,và phần hệ thống phần cứng,khi chương trình truy cập đến page ánh xạ không gian địa ảo chưa lưu vào nhớ vật lý MMU vi xử lý phần cứng đóng vai trò phát trường hợp xảy Page Faults.Hệ điều hành xử lý Page Faults cách Tạo Page yêu cầu dễ dàng hiểu chúng đặt nơi tong địa vật lý 19 Loại bỏ chương trình trường hợp húng có biểu hiên truy xuất không hợp lệ Trái ngược với tên gọi page faults,nó loại lỗi thường xuyên cần thiết để gia tăng số lượng nhớ sẵn có để cung cấp cho chương trình hệ điều hình có sử dụng nhớ ảo ,bao gồm Microsoft Windows,Mac OS X,linux, *BSD, Solaris, AIX, and HP-UX z/OS Một điều đáng ý mà Microsoft dùng thuật ngữ hard fault để định nghĩa page fault 3.3.2 Lý gây Page faults: 3.3.2.1 Mỗi loại trang xảy xử lý truy cập tới địa mà trang tương ứng với địa không đánh dấu MMU(đơn vị quảnlý nhớ) nạp nhớ.Các lỗi phần cứng hoăc lỗi phát sinh trường hợp phụ thuộc vào kiến trúc tập lệnh xử lý.Với tập lệnh kiến trúc ,các lỗi phần cứng câu hỏi tạo điều kiện khác truy cập vào địa trang không tải vào nhớ ,điều có nghĩa xử lý cho lỗi phần cứng phải tìm xem có tương ứng với trang lỗi hay không 3.3.2.2 Một khái niệm có liên quan với Page Fault gọi Protection fault tạo để truy cập trang mà trang tương ứng với địa yêu cầu đánh dấu đơn vị quảnlýnhớ nạp nhớ không đánh dấu cho phép hoạt động mà xử lý thực hiện.Ví dụ, trang đánh dấu không cho phép lưu trữ,trong trường hợp cố gắng để lưu trữ vào trang tạo lỗi bảo vệ, đánh dấu không cho phép thực thi mã,trong trường hợp cố gắng để lấy hướng dẫn từ trang tạo lỗi bảo vệ Một lần nữa,các lỗi phần cứng lỗi phát sinh trường hợp phụ thuộc vào tập lệnh xử lý Các thuật ngữ “Page fault” và”protection Fault” sử dụng thấy hệ điều hành xử lý lỗi ,và không thiết phải tên dành cho lỗi phần cứng xảy ra.Ví dụ, kiến trúc x86,truy cập vào page mà không trình 20 bày truy cập vào trang bảo vệ báo cáo thông qua lỗi phần cứng gọi lỗi “trang”,và phần cứng xử lý cung cấp thông tin cho xử lý lỗi trang cho biết loại truy cập cập kích hoạt lỗi,vì mà xử lý hệ điều hành phân biệt.Việc sử dụng lỗi bảo vệ không nên nhầm lẫn với trường hợp ngoại lệ lỗi x86 nói chung bảo vệ,được sử dụng để vi phạm tín hiệu nhớ truy cập dựa phân khúc 3.3.3 Các loại Page Faults khắc phục: Như biết,chỉ phần liệu thực thi chương trình lưu trữ nhớ vật lý RAM.Phần lại tổ chức lưu trữ dạng swap file(trong phiên Windows 95/98/ME với tên Win368.swp) hay page file( Windows 2000/XP/Vista/Seven với tên pagefile.sys).có nhiều tình gây “lỗi trang”,ở ta xét tình mà hệ thống xử lý được: Loại 1: Truy nhập đến1 trang reserved,tức trang đặt trước mà chưa đưa vào RAM.Khi page Fault xảy ra,trang reserved xử lý để thành trang committed(tức ánh sáng trang vào RAM) Loại 2:Page Fault xảy kỹ thuật copy-on-write(sẽ nói đây) Khi xảy lỗi trang,phải cần mang trang vắng mặt vào nhớ.Nếu khung trang trống,hệ điều hành cần thực công việc thay trangnghĩa chọn nhớ mà không sử dụng thời điểm chuyển không gian sawpping đĩa để giải phóng khung trang dành chỗ nạp trang cần truy xuất vào nhớ 21 Hình 3.3 Một “Blue Screen”xuất xảy PAGE FAULT 3.4 Quá trình dịch địa ảo: Hình 3.4 Tổ chức 32-bits địa ảo Một địa ảo trang windows chia làm phần: Giả sử CPU phát sinh địa ảo số 32 bit để tìm kiếm byte nhớBộ phận dịch Memory Management Unit(MMU) nhận địa thực thao tác dịch: Bước 1:MMU nhận 10 bits tìm PT1 để lấy địa vật lý PT2 Nếu PT2 reserved Page Fault “lỗi trang” nạp trang vào RAM Bước : Khi PT có RAM,MMU dùng 10 bits để tìm PT2 lấy địa vật lý trang chứa byte cần tìm.Nếu 22 trang trạng thái reserved xảy Page Fualt”lỗi trang” nạp vào RAM Bước 3: Khi trang có RAM,MMU dùng 12 bits cuối để tìm đến byte cụ thể khung trang trả cho CPU địa vật lý cụ thể byte cần tìm Hình 3.5 Minh họa trình dịch 3.5 KỹthuậtCopy-on-Write: Windows cho phép nhiều tiến trình khác chia sẻ physical page RAM để tiết kiệm nhớ Các trang dùng chung cho phép tiến trình dùng thay đổi nội dung không,căn vào thuộc tính bảo vệ trang chia sẻ Trong trường hợp thuộc tính bảo vệ không cho phép tiến trình chỉnh sửa trang để tranh việc tiến trình thay đổi nội dung trang làm ảnh hưởng đến tiến trình khác,Windows sử dụng kỹ thuật cpoy-on-write với nguyên lý sau: “Tất tiến trình ánh xạ đến trang dùng chung tiến trình làm thay đổi nội dung trang.Khi ,Page Fault xảy báo cho hệ thống xử lý tình nư sau: tiến trình làm trang thay đổi copy trang dùng trung vùng nhớ riêng thao tác vùng nhớ đó;các tiếng trình lại sử dung trang nhớ cũ.” 23 Hình 3.6 Minh họa kỹ thuật Copy-one-Write 3.6 Những thành phần nạp vào RAM: Bộnhớ RAM chia làm phần : The Non-Paged are : Có số phần hệ điều hành quantrọng không phân trang Khu vực RAM dùng cho phần gọi “Non Paged are” dành cho code lõi hệ thống,(Core code of system) The page tool: Được dùng để lưu trữ Mã chương trình Các pages có liệu ghi Một phần dung lượng dành cho “file cache”, lưu trữ thông tin tệp tin xử lý đọc/ghi từ ổ cứng Bất kì lượng RAM lại sử dụng để làm dung lượng nhớ Cache lớn 3.7 Page file đâu? Trong hệ thống windows, “page file” tệp tin ẩn lưu với tên pagefile.sys File tạo lần hệ điều hành boot Để xem file vào ổ lưu “page file” vào Folder Option →View chọn “Show hidden files and folders” bỏ chọn mục “Hide Protectted mode System files” 24 Hình 3.7 Một “Pages File” hệ thống Windows XP Theo mặc định , Window tự set dung lượng “pages file” gấp 1.5 lần dung lượng nhớ RAM máy tính Vậy tắt ,không dùng đến nhớ ảo máy có RAM lớn hay không? Câu trả lời “Được” Để tắt nhớ ảo, vào Control Panel→System chọn tab Advance sau click vào nút Settings Performace, tiếp tục click vào tab Advanced click vào nút Changer Chọn "No paging file " click nút Set để xóa file pagefile.sys 25 Hình 3.8 Tắt "page file"trên hệ thống Window XP Tuy nhiên việc không dùng nhớ ảo làm tiêu tốn nhiều tài nguyên RAM , dẫn tới hiệu xuất hoạt động hệ thống bị giảm.Lý thực tế,chương trình thực thi thường xuyên yêu cầu lượng lớn nhớ lượng nhớ đưa vào sử dụng.Các yêu cầu địa ô nhớ hệ thống giao cho nơi đó.Nếu tệp tin trang ( page file ) có sẵn hệ thống giao cho Nhưng tắt “ page file” (không sử dụng nhớ ảo) hệ thống giao toàn cho RAM, điều làm lãng phí nhiều tài nguyên RAM, có đến vài trăm megabytes chương trình chạy Chương 4-QUẢN LÝBỘNHỚ VẬT LÝ 4.1 Phân chia vùng RAM Working Set : Tâp trang hoạt động Modified List : Các trang bị loại khỏi Working Set liên quan đến tiến trình gọi Stand by List : Các trang bị loại khỏi Modified List liên quan đến tiến trình gọi nó, có vùng Paging File nhớ ngoài,vì xóa gốc RAM cần Zeroed List: Các trang chuyển từ Free List ghi toàn mã 4.2 Cách thức chuyển đổi vùng RAM Giải thuật hay trang đảm bảo cho trang ảo nạp vào RAM cần xóa khỏi RAM không dùng thay khác Sơ đồ sau mô tả giải thuật thay trang 26 Hình 4.1 Các vùng RAM - Khi tiến trình gọi đến trang nạp vào vùng Working Set - Cứ khoảng giây trang tiến trình rỗi Nó bị đẩy từ Working Set sang Modified List Stand by List(Tùy trường hợp cụ thể) Biểu (1) Các trang vùng có giá trị tiến trình gọi lại nạp vào Working Set Biểu (2).Khi tiến trình kết thúc trang không chia sẻ với tiền trình khác.Trang từ Working Set bị đẩy sang Free List Biểu (3) -Sau thời gian định trang Modified List bị đẩy sang vùng Stand by List, Biểu (4) Sự khác biệt vùng Modified đẩy vào Working Set nhanh hơn, Stand by List có backup nhớ Vì trang Stand by List xóa RAM đầy, cần nạp trang backup - Các trang Stand by List không gắn với giá trị bị đẩy vùng Free List, Biểu (5) Các trang Free List chứa liệu không giá trị bị ghi đè trang chuyển vào Working Set hoạt động, Biểu (6) 27 -Trong số trường hợp đặc biệt, tiến trình đòi hỏi trang hoàn toàn chưa chứa liệu để ghi thông tin mới, trang lấy từ vùng Zeroed List Zeroed List có nhờ xóa liệu trang Free List Biểu (7) 4.3 Cơ sở liệu khung trang Để quảnlý RAM, vùng trang RAM tiện lợi cho việc ánh sạ nhớ ảo vào RAM, Windows sử dụng bảng liệu khung trang Các thông tin đọc từ bảng gồm có Số thứ tự trang nhớ vật lý Vùng mà trang tồn Số bảng trang trỏ đến trang Con trỏ trỏ đến bảng trang sử dụng trang Con trỏ đến trang vùng List treen RAM …… Hình 4.2 khung Bảng liệu trang 28