Bài tiểu luận về bộ nhớ ảo trong tổ chức máy tính, tìm hiểu về bộ nhớ ảo, cấu trúc, lượng RAM có thể, những tinh năng khác,... Các bộ đệm chuyển đổi, các bảng trang, giám sát trang, trang ghim, threashing, ....
1 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN / ĐỒ ÁN CUỐI KÌ MƠN TỔ CHỨC MÁY TÍNH Virtual Memory Người hướng dẫn: TS Mai Ngọc Thắng Người thực hiện: Thái Trung Tín - 51503315 Lớp : 15050301 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN / ĐỒ ÁN CUỐI KÌ MƠN TỔ CHỨC MÁY TÍNH Virtual Memory Người hướng dẫn: TS Mai Ngọc Thắng Người thực hiện: Thái Trung Tín - 51503315 Lớp : 15050301 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016 LỜI CẢM ƠN Trong suốt trình nghiên cứu đề tài Bộ nhớ ảo (Virtual Memory), em gặp nhiều khó khăn từ cách tiếp cận trình bày ý tưởng nhờ có TS Mai Ngọc Thắng - Khoa Cơng nghệ thơng tiin - Trường đại học Tôn Đức Thắng - tận tình hướng dẫn giúp em nhìn nhận vấn đề cụ thể, tiếp cận đề tài dễ dàng Em xin chân thành cảm ơn thầy lời bảo vô quý báu thầy giúp em có thu hoạch q giá để hồn thành q trình nghiên cứu Bài thu hoạch thực khoảng thời gian gần tuần Bước đầu vào thực tế, tìm hiểu lĩnh vực sáng tạo nghiên cứu khoa học, kiến thức em hạn chế nhiều bỡ ngỡ Do vậy, khơng tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp quý báu quý Thầy Cô bạn học lớp để kiến thức em lĩnh vực hoàn thiện Một lần em xin chân thành cảm ơn TP.Hồ Chí Minh,ngày 20 tháng 04 năm 2016 Thái Trung Tín ĐỒ ÁN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn TS Mai Ngọc Thắng Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường đại học Tơn Đức Thắng không liên quan đến vi phạm tác quyền, quyền tơi gây q trình thực (nếu có) TP.Hồ Chí Minh,ngày 20 tháng 04 năm 2016 Tác giả Thái Trung Tín PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận giáo viên hướng dẫn TP.Hồ Chí Minh,ngày 20 tháng 04 năm 2016 Thái Trung Tín Phần đánh giá giáo viên chấm TP.Hồ Chí Minh,ngày 20 tháng 04 năm 2016 Thái Trung Tín TĨM TẮT Để nghiên cứu vè quan trọng nhớ ảo, số vấn đề đặt để tiếp cận vấn đề Tại chạy chương trình nặng RAM máy tính có? Tại có lúc truy xuất liệu nhanh chậm khác nhau? Cách xử lý địa nhớ ảo? Tại hệ điều hành lập trình nhớ ảo sản phẩm mình? Một số kết thu nhớ ảo trung gian địa ảo địa vật lý, dịch từ địa ảo sang địa vật lý, tốc độ phụ thuộc vào vi trí liệu có nhớ hay chưa phụ thuộc vào số tính Memory Management Unit hay Translation Lookaside Buffer, biết thêm cơng thức chế để biên dịch địa ảo Bộ nhớ ảo thực chất "double RAM", ta có RAM thực có nhiêu RAM ảo (trên hệ điều hành Windows) MỤC LỤC LỜI CẢM ƠN PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN TÓM TẮT MỤC LỤC DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ 11 CHƯƠNG - MỞ ĐẦU .13 0.1 Bộ nhớ ảo 13 0.1.1 Định nghĩa .13 0.1.2 Đặc điểm 13 0.1.3 Mục tiêu thiết lập nhớ ảo 14 0.1.4 Phân loại 14 0.1.5 Cơ chế nhớ ảo 14 0.2 Lỗi trang 16 0.3 Bảng trang 18 0.3.1 Bảng trang 18 0.3.2 Giám sát trang .19 0.3.3 Trang ghim 20 0.3.4 Thrashing .20 0.3.5 Truyền dịch địa bảng trang : Thay ghi .22 0.4 Translation Lookaside Buffer(TLB)-Bộ đệm chuyển đổi 24 0.4.1 Định nghĩa .24 0.4.2 Cơ chế TLB 24 0.4.3 Lỗi TLB .25 0.4.4 Xử lý lỗi TLB .25 0.4.5 Xử lý lỗi trang 26 0.4.6 Sự tương tác TLB Cache 26 0.5 Bảo vệ nhớ (Memory Protection) .28 CHƯƠNG TỔNG QUAN 29 0.6 CÔNG THỨC 29 0.6 Công thức 29 0.7 Vấn đề đặt .29 0.8 Tài liệu tham khảo .30 10 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT • TLB : Translation Lookaside Buffer (Bộ đệm chuyển đổi) • PTE : Page Table Entry • MMU : Memory Management Unit (đơn vị quản lý vùng nhớ) • LRU: Least-recently using • OS: Operating System 16 CHƯƠNG MỞ ĐẦU Hình 1.3: Dịch địa Nguồn: Mr.Aaron Tan Tuck Choy, slides School of Computing, National University of Singapore 1.2 Lỗi trang Truy xuất đến trang đánh dấu bất hợp lệ làm phát sinh lỗi trang Khi dò tìm bảng trang để lấy thông tin cần thiết cho việc chuyển đổi địa chỉ, nhận thấy trang yêu cầu truy xuất bất hợp lệ, chế phần cứng phát sinh ngắt để báo cho hệ điều hành Hệ điều hành xử lý lỗi trang sau: -B1: Kiểm tra truy xuất đến nhớ hợp lệ hay bất hợp lệ 1.2 LỖI TRANG 17 Hình 1.4: TLB Cache chế dịch địa • Nếu truy xuất bất hợp lệ: kết thúc tiến trình • Ngược lại: đến bước -B2: Tìm vị trí chứa trang muốn truy xuất đĩa -B3: Tìm khung trang trống nhớ chính: • Nếu tìm thấy: đến bước • Nếu khơng khung trang trống, chọn khung trang “nạn nhân” chuyển trang “nạn nhân” nhớ phụ (lưu nội dung trang chiếm giữ khung trang lên đĩa), cập nhật bảng trang tương ứng đến bước -B4: Chuyển trang muốn truy xuất từ nhớ phụ vào nhớ chính: nạp trang cần truy xuất vào khung trang trống chọn (hay vừa làm trống), cập nhật nội dung bảng trang, bảng khung trang tương ứng -B5: Tái kích hoạt tiến trình người sử dụng 18 CHƯƠNG MỞ ĐẦU Hình 1.5: Sơ đồ truy xuất gặp lỗi trang 1.3 Bảng trang 1.3.1 Bảng trang -Không gian địa ảo chia thành nhiều trang nhớ Bảng trang nơi lưu trữ trang ,địa thông tin, nơi biên dịch địa ảo, biên dịch quản lý thiết bị phần cứng gọi “đơn vị quản lý vùng nhớ” (Memmory Management Unit - MMU) Hình 1.6: MMU nhớ ảo 1.3 BẢNG TRANG 19 -Khi lập trình, lệnh truy xuất dùng lượng khơng gian lớn Không gian gọi luận lý (ảo) Nếu truy xuất khơng gian dù RAM nhỏ hệ điều hành chạy tốt Để quản lý việc nạp ghi nhớ ảo, hệ điều hành chia nhớ ảo thành trang ảo có kích thước 2i (256, 512, 1K, 2K, 4K, 8K, ) Bộ nhớ RAM chia thành nhiều trang thật có kích thước thật kích thước ảo -Nếu trang đa diện sẵn cổng vào "trang bảng" chứa địa vùng nhớ thật nơi mà trang lưu -Còn trang khơng diện sinh khái niệm giám sát trang Hình 1.7: Bảng trang với số trang không nằm nhớ 1.3.2 Giám sát trang -”Nếu tượng “trang lỗi” xuất từ phần cứng, hệ thống giám sát trang truy cập vào ổ lưu trữ phụ, trả trang có lưu địa ảo nơi trang lỗi xuất hiện, sau cập nhật "trang bảng" để phản chiếu vị trí vật lí 20 CHƯƠNG MỞ ĐẦU nhớ ảo báo biên dịch thực lại yêu lại.”(Trích: Wikipedia-Bộ nhớ ảo) -Nếu tràn nhớ, “giám sát trang” bắt buộc phải giải phóng trang nhớ để lưu giữ trang thay Least-recently using (LRU - sử dụng nhất”) để loại bỏ trang sử dụng 1.3.3 Trang ghim ”Các tên gọi khác: trang khóa, trang cố định hay trang kết nối Hệ điều hành có khu vực nhớ ghim (không trao đổi để lưu trữ thứ cấp)”.(Trích: Wikipedia-Bộ nhớ ảo) 1.3.4 Thrashing Thrashing làm lãng phí thời gian chuyển trang đến đến nơi lưu -> làm chậm công việc có ích Ngun nhân: Do tiến trình khơng có đủ trang, hệ điều hành tang mức độ đa chương trình Thời điểm: Tỷ lệ fault page cao tràn nhớ Hình 1.8: Thrashing Hình 1.9: Thrashing Cách khắc phục: Sử dụng thuật toán thay trang cục thay trang ưu tiên để hạn chế thrashing Sử dụng mơ hình cục bộ: mơ hình working-set (https://en.wikipedia.org/wiki/Working-set) 1.3 BẢNG TRANG Thêm nhớ thực Giảm số lượng nhiệm vụ hoạt động hệ thống 21 22 CHƯƠNG MỞ ĐẦU 1.3.5 Truyền dịch địa Page Table: Thay ghi Thay Khi xảy lỗi trang, khơng có khung trang trống, hệ điều hành cần thực công việc thay trang – chọn trang nằm nhớ mà không sử dụng thời điểm chuyển khơng gian đĩa để giải phóng khung trang dành chỗ nạp trang cần truy xuất vào nhớ - Nếu có lỗi trang phải thực chuyển Hình 1.10: Truyền dịch bảng trang Nguồn: Mr.Aaron Tan Tuck Choy, slides School of Computing, National University of Singapore trang nhớ phụ nạp trang khác vào nhớ Bit cập nhật (dirty bit) dung để giảm bớt số lần chuyển trang - Bit nằm valid để kiểm tra trang có cập nhật hay khơng : • Giá trị 1: trang cập nhật lưu đĩa • Giá trị 0: trang không bị thay đổi Ghi 1.3 BẢNG TRANG 23 - Ghi xuyên : Thông tin ghi hai mức kế liền - Ghi sau: Thông tin ghi mức nhớ - Ưu điểm - Ghi xuyên: : đơn giản, dễ triển khai - Ghi sau: ghi tốc độ đệm 24 1.4 1.4.1 CHƯƠNG MỞ ĐẦU Translation Lookaside Buffer (TLB) - Bộ đệm chuyển đổi Định nghĩa -Do bảng nằm nhớ nên truy xuất bảng trang cần khoảng thời gian định để truy xuất đến nhớ -TLB – đệm chuyển đổi làm nhiệm vụ tang tốc trình tìm kiếm bảng trang nhớ -TLB thực chất cache, làm tăng tốc đọ truy cập nhớ -TLB biên dịch địa ảo sang địa thật, TLB lưu trữ song song cặp địa ảo/thực, xử lý trang lỗi đĩa thay nhớ 1.4.2 Cơ chế TLB Hình 1.11: Sơ đồ hoạt động TLB Khi trình truyền tải liệu từ địa ảo đến địa vật lý yêu cầu, TLB thực hiện: 1.4 TRANSLATION LOOKASIDE BUFFER (TLB) - BỘ ĐỆM CHUYỂN ĐỔI 25 -Tìm trang có offset (chữ d hình) từ địa ảo -Tìm trang ảo TLB -Nếu thấy điền offset vào khung trang vật lý truy xuất vùng nhớ -Nếu khơng thấy qua bảng trang tìm kiếm nhớ chính, trang khơng tồn nhớ tạo trang lỗi khởi động lại trang tìm thấy 1.4.3 Lỗi TLB -Nếu trang có nhớ • Nạp PTE từ nhớ thử lại • Có thể xử lý phần cứng phần mềm: Nếu xử lý phần cứng: gây phức tạp cho cấu trúc bảng trang Nếu xử lý phần mềm: đưa ngoại lệ đặc biệt, với mơt cách xử lý tích cực -Trang khơng có nhớ • Cập nhật bảng trang • Khởi tạo lại hướng dẫn bị đứt gãy Trích: Mr Aaron Tan Tuck Choy, Slides School of Computing, National University of Singapore 1.4.4 Xử lý lỗi TLB Lỗi TLB biểu thị • Trang diện PTE khơng có TLB • Trang khơng diện Phải xác nhận lỗi TLB trước ghi đè địa Xử lý cách chép PTE từ nhớ sang TLB • Sau khởi tạo lai đường dẫn • Nếu trang khơng diện lỗi trang xảy Trích: Mr Aaron Tan Tuck Choy, Slides School of Computing, National University of Singapore 26 CHƯƠNG MỞ ĐẦU Hình 1.12: Using the TLB Nguồn: Computer Organization and Design 1.4.5 Xử lý lỗi trang • Sử dụng lỗi địa ảo để tìm PTE • Định vị trang dĩa • Chọn trang để thay • Đọc trang vào nhớ cập nhật bảng trang • Tạo nên q trình khả thi lần • Khởi tạo lại từ lỗi đường dẫn Trích: Mr Aaron Tan Tuck Choy, Slides School of Computing, National University of Singapore 1.4.6 Sự tương tác TLB Cache -Dữ liệu khơng thể có mặt cache khơng có mặt nhớ - 1.4 TRANSLATION LOOKASIDE BUFFER (TLB) - BỘ ĐỆM CHUYỂN ĐỔI 27 Hình 1.13: Xử lý lỗi trang Hình 1.14: TLB Cache Nguồn: Mr.Aaron Tan Tuck Choy, slides School of Computing, National University of Singapore • Bước 1: lấy so sánh thơng tin tag • Bước 2: để tìm địa trang vật lý 28 CHƯƠNG MỞ ĐẦU • Bước 3, 4: kết hợp địa trang vật lý địa offset byte cần quan tâm cho địa vật lý hoàn chỉnh 1.5 Bảo vệ nhớ -Có thể chia sẻ phận khơng gian địa ảo • Nhưng cần thiết để bảo vệ chống lại truy cập không tiêu chuẩn • yêu cầu hỗ trợ OS -Phần cứng hỗ trợ cho OS • Chế độ giám sát đặc quyền • Hướng dẫn đặc quyền • Các bảng trang cổng thơng tin khác truy cập chế độ giám sát • Hệ thống gọi ngoại lệ Trích: Mr Aaron Tan Tuck Choy, Slides School of Computing, National University of Singapore Chương TỔNG QUAN 2.1 Trình bày cơng thức tốn học Physical Address = Virtual Address + Base address of Page frame Trong đó: Physical Address: địa vật lý nhớ Virtual Address: địa ảo Base address of Page frame: địa sở khung trang 2.2 2.2.1 Vấn đề đặt Nếu máy tính khơng có nhớ ảo, chuyện xảy ra? -Nguồn RAM khơng dồi có nhớ ảo, người sử dụng phải cân nhắc số lượng chương trình chạy máy -Nếu chạy chương trình nặng, vượt khỏi tầm kiểm sốt RAM thực khơng chạy chương trình ghi nhiều hư hỏng cho máy 2.2.2 Giải pháp Tăng lượng RAM thực máy cách mua RAM rời lắp vào máy có giới hạn lượng RAM (thông thường 8GB, laptop hạng cao cấp 16GB) 29 30 CHƯƠNG TỔNG QUAN TÀI LIỆU THAM KHẢO Computer Organization and Design: The Hardware/Software Interface, Revised Fourth Edition, Henessy Slides School of Computing, National University of Singapore, Mr Aaron Tan Tuck Choy ... HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN / ĐỒ ÁN CUỐI KÌ MƠN TỔ CHỨC MÁY TÍNH Virtual Memory Người hướng dẫn: TS Mai Ngọc Thắng Người thực hiện: Thái Trung Tín - 51503315 Lớp : 15050301... 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016 LỜI CẢM ƠN Trong suốt trình nghiên cứu đề tài Bộ nhớ ảo (Virtual Memory) , em gặp nhiều khó khăn từ cách tiếp cận trình bày ý tưởng nhờ có TS Mai Ngọc Thắng -... lý lỗi trang Hình 1.14: TLB Cache 12 Chương MỞ ĐẦU 1.1 Bộ nhớ ảo 1.1.1 Định nghĩa Bộ nhớ ảo (Virtual Memory) nhớ hệ thống tạo từ hệ điều hành nằm ổ cứng Nó liên kết địa ô nhớ dùng phần mềm, gọi