BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

19 9 0
BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Đ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

HaNoi University of Science and Technology Shool of Electronics and Telecomunication BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH Đề tài: Mô quản lý nhớ hệ điều hành Linux GVHD: TS.Nguyễn Thanh Bình SVTH: • Nguyễn Tất Đạt • Nguyễn Nhật Bằng • Phan Hà Duy 20172455 20172422 20172516 January 11, 2022 MỤC LỤC Mục tiêu chương I: Tìm hiểu lý thuyết 1.1 Bộ nhớ (RAM) 1.1.1 Tổng quan 1.1.2 Swapping .6 1.1.3 Mơ hình cấp phát không liên tục 1.2 Bộ nhớ ảo 10 Demand paging .10 1.2.1 Page Replacement .11 1.2.2 Cấp phát số lượng frame (Allocation of frames): 14 1.2.3 Thrashing .15 CHƯƠNG II: CÀI ĐẶT .16 2.1 Cài đặt FIFO 16 2.2 Cài đặt LRU 17 2.3 Cài đặt process 17 Chương III: Mô .18 3.1 Cấu trúc chương trình .18 3.2 Chạy mô 18 Tài liệu tham khảo 19 DANH MỤC• HÌNH ẢNH HÌNH 1.1 MƠ HÌNH PHÂN TRANG HÌNH 1.2 CƠ CHẾ MMU TRONG PAGING HÌNH 1.3 CƠ CHÊ CHUYỂN ĐỔI ĐỊA CHỈ CỦA MMU HÌNH 1.4 MỘT PAGE TABLE CĨ THÊM TRẠNG THÁI MỖI PHẦN TỬ HÌNH 1.5 VÍ DỤ VỀ CHỈA SẺ BỘ NHỚ HÌNH 1.6 QUY TRÌNH XỬ LÝ PAGE FAULT HÌNH 1.7 THUẬT TỐN CƠ HỘI THỨ HÌNH 1.8 MƠ HÌNH WORKING-SET HÌNH 3.1 VÍ DỤ VỀ MƠ PHỎNG MỤC TIÊU • Tìm hiểu quản lý nhớ hệ điều hành 9 10 13 15 18 • Làm quen với hệ điều hành Linux-Ubuntu • Cài đặt thuật tốn quản lý nhớ • Mơ q trình quản lý nhớ mà sử dụng phương pháp quản lý nhớ khác nhau, qua so sánh độ hiệu thuật toán phương pháp CHƯƠNG I: TÌM HIỂU LÝ THUYẾT Quản lý nhớ chức hệ điều hành xử lý quản lý nhớ di chuyển q trình qua lại nhớ ổ đĩa trình thực thi Quản lý nhớ theo dõi vị trí nhớ, nhớ cấp phát cho số quy trình hay chưa sử dụng Nó kiểm tra lượng nhớ cấp cho tiến trình Nó định tiến trình ưu tiên chạy trước tiến trình chạy sau Nó theo dõi trạng thái vùng nhớ nhớ cập nhật lại trạng thái chạy tiến trình 1.1 Bộ nhớ (RAM) 1.1.1 Tổng quan CPU truy câp vào nhớ phụ, ổ đĩa mà truy cập trực tiếp vào nhớ ghi Vì chương trình muốn chạy đươc cần phải truyền liệu chương trình đến vị trí xác định nhớ Các địa chương trình thực thi (dạng exe) địa tương đối, cần chuyển đổi thành địa tuyệt đối nhớ Việc chuyển đổi xảy giai đoạn sau: • Thời điểm biên dịch (complie time): Nếu thời điểm biên dịch, biết vị trí mà tiến trình nạp vào nhớ, trình biên dịch phát sinh mã với địa tuyệt đối Tuy nhiên, sau có thay đổi vị trí chương trình cần phải biên dịch lại chương trình • Thời điểm nạp (load time): Nếu thời điểm nạp, chưa thể biết vị trí mà tiến trình nạp vào nhớ, trình biên dịch phát sinh mã tương đối Khi nạp chương trình vào nhớ, hệ điều hành chuyển địa tương đối thành địa tuyệt đối biết vị trí bắt đầu lưu trữ tiến trình Khi có cố thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực lại việc chuyển đổi địa chỉ, không cần biên dịch lại chương trình • Thời điểm xử lý (execution time): Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ sang vùng nhớ khác trình tiến trình xử lý, việc chuyển đổi địa thực vào lúc tiến trình thực thi Chức chuyển đổi địa phần cứng thực gọi MMU (memory management unit) Xử lý khơng gian địa • Địa logic: địa CPU tạo ra, gọi địa ảo • Địa lý: địa thực nhớ chính, địa mà memory nhìn thấy, cịn gọi địa tuyệt đối Địa ảo địa vật lý giống lược đồ theo thời gian thời gian biên dịch thời gian tải Địa ảo địa vật lý khác lược đồ theo địa chỉ thời gian xử lý • Khơng gian địa ảo: tập hợp tất địa ảo tiến trình • Khơng gian địa vật lý: tập hợp tất địa vật lý tương ứng với địa ảo tiến trình 1.1.2 Swapping Swapping chế' mà nhớ khơng đủ để cung cấp cho tiến trình, hệ thống tạm thời di chuyể’n số tiến trình khơng sử dụng từ sang nhớ phụ nhường phần nhớ cho tiến trình cần sử dụng Tại thời điể’m sau, hệ thcíng hốn đổi lại từ nhớ phụ nhớ Cơ chế giúp chạy song song nhiều tiến trình lại làm giảm hiệu suất hoạt động Tổng thời gian thực swap bao gồm thời gian cần thiết để di chuyển tồn q trình sang nhớ phụ sau chép trở lại nhớ với thời gian q trình lấy lại nhớ 1.1.3 Mơ hình cấp phát khơng liên tục * Mơ hình phân trang (Paging): Bộ nhớ vật lý chia thành khối có kích thước cố định frame Không gian địa ảo chia thành khối có kích thước với frame gọi trang (page) Khi tiến trình đưa vào nhớ để xử lý, trang tiến trình cất vào frame cịn trơng, tiến trình kích thước N trang cần N khung trang trơng Hình 1.1 Mơ hình phân trang > Cấu trúc địa ảo: Để dễ dàng phân tích địa ảo thành số' hiệu trang địa tương đối, phần cứng qui định kích thước trang lũy thừa (9 Thuật toán OPT (Optimal Page Replacement Algorithm): Chọn frame lâu sử dụng tương lai Thuật toán bảo đảm số lượng lỗi trang phát sinh thấp Tuy nhiên thuật tốn khó cài đặt thường khơng thể biết trước chuỗi truy xuất tiến trình > Thuật tốn LRU (Least-recently-used): Thuật tốn LRU dùng thời điể’m cuối trang truy xuất (dùng khứ gần để’ dự đoán tương lai gần) Với trang, ghi nhận thời điể’m cuối trang truy cập, trang chọn để thay trang lâu chưa truy xuất với suy nghĩ trang có khả sử dụng _ Cài đặt thuật toán LRU: • Sử dụng đếm: Thêm vào cấu trúc phần tử page table trường ghi nhận “thời điể’m truy xuất gần nhất”, thêm vào cấu trúc CPU ghi đếm (counter) Mỗi lần thực truy xuất đến trang, giá trị counter tăng lên ghi giá trị counter vào trường “thời điể’m truy xuất gần nhất” phần tử tương ứng với trang page table Khi victim frame trang có giá trị trường “thời điể’m truy xuất gần nhất” nhỏ • Sử dụng danh sách liên kết: Dùng một dslk lưu trữ số hiệu trang, trang cuối danh sách trang truy xuất gần nhất, trang đầu danh sách trang lâu chưa sử dụng Nếu có page fault có frame trống thêm nút chứa số hiệu trang truy xuất vào cuối danh sách, khơng có khung trống trang chọn làm victim frame trang đầu danh sách, hủy nút đầu thêm nút chứa số hiệu trang truy xuất vào cuối danh sách Nếu khơng có page fault chuyể’n nút chứa số hiệu trang hành xuống cuối danh sách > Các thuật toán xấp xỉ LRU: > Thuật toán dùng bit lịch sử: Mỗi page sử dụng thêm bit lịch sử (history) Sau khoảng thời gian định (thường 100 milliseconds), ngắt đồng hồ phát sinh quyền điều khiể’n chuyể’n cho hệ điều hành Hệ điều hành cập nhật bit lịch sử page cách dịch bit lịch sử sang phải vị trí để loại bỏ bit thấp đặt bit reference page vào bit cao bit history page bit history lưu trữ tình hình truy xuất đến page chu kỳ cuối Nếu bit history 00000000 page tương ứng có khả không dùng chu kỳ cuối, bit history 11111111 page tương ứng dùng đến lần chu kỳ cuối Nếu xét bit history số ngun khơng dấu victim frame frame có giá trị history nhỏ Số lượng > bit history thay đổi tùy theo phần cứng, số bít history nhiều việc chọn victìm frame xác Thuật tốn hội thứ 2: Tìm page theo nguyên tắc FIFO, kiểm tra bit reference page Nếu bit reference 0, chọn page này, bit reference gán lại tìm page FIFO tìếp theo (cho page hội thứ hai) Một page cho hội thứ hai không bị thay tất page khác thay cho hội thứ hai Nếu page thường xuyên sử dụng, bit reference trì giá trị page không bị thay Nếu tất bít reference thuật tốn trở thành FIFO Thuật tốn cài đặt dslk vịng reterence pages rerence pages circular queue of pages circular queue of pages (a) Hình 1.7 Thuật tốn hội thứ > Thuật toán hội thứ nâng cấp (NRU): (b) Xem bit reference dirty bit cặp có thứ tự tạo thành lớp sau : > - Lớp (0,0): gồm page có (ref,dirty)=(0,0) Những page thuộc lớp không truy xuất gần không bị sửa đổi, paeg tốt để thay - Lớp (0,1): page không truy xuất gần bị sửa đổi Trường hợp khơng thật tốt, page cần lưu trữ lại trước thay thế' - Lớp (1,0): page truy xuất gần đây, không bị sửa đổi Page có thể’ nhanh chóng tiếp tục sử dụng - Lớp (1,1): page truy xuất gần đây, bị sửa đổi Page nhanh chóng tiếp tục sử dụng trước thay cần phải lưu trữ lại Lớp có độ ưu tiên thấp nhất, lớp có độ ưu tiên cao Một page thuộc bố’n lớp page chọn làm victim frame page tìm thấy lớp có độ ưu tiên thấp Các thuật tốn thống kê: Sử dụng biến đếm lưu số' lần truy xuất đến trang + Thuật toán LFU (least frequently used): Thay page có giá trị biến đếm nhỏ nhất, nghĩa page sử dụng + Thuật tốn MFU (most frequently used): Thay page có giá trị biến đếm lớn nhất, nghĩa page sử dụng nhiều 1.2.2 Cấp phát số lượng frame (Allocation of frames): Với tiến trình, cần phải cấp phát số' frame tối thiểu để tiến trình có thể’ hoạt động Số’ frame tối thiểu qui định kiến trúc máy tính, số’ frame tối đa xác định dung lượng nhớ vật lý có thể’ sử dụng 1.2.2.1 Các cách cấp phát frame: > Cấp phát ngang bằng: Nếu có m frame n tiến trình, tiến trình cấp m/n frame Cấp phát đơn giản không hiệu > Cấp phát theo tỉ lệ kích thước: Tùy vào kích thước tiến trình để cấp phát số’ frame > Cấp phát theo tỉ lệ độ ưu tiên: Số lượng frame cấp cho tiến trình phụ thuộc vào độ ưu tiên tiến trình Tiến trình có độ ưu tiên cao cấp nhiều frame để tăng tố’c độ thực 1.2.2.2 Cấp phát toàn cục cấp phát cục bộ: > Thay toàn cục: Chọn victim frame từ tập tất frame hệ thống, frame cấp phát cho tiến trình khác Ví dụ chọn trang tiến trình có độ ưu tiên thấp làm victim frame Thuật tốn thay tồn cục cho phép hệ thcíng có nhiều khả lựa chọn hơn, số' frame cấp cho tiến trình thay đổi, tiến trình khơng thể kiểm sốt tỷ lệ phát sinh page fault > Thay cục bộ: Chỉ chọn trang thay tập frame cấp cho tiến trình phát sinh page fault, số' frame cấp cho tiến trình khơng thay đổi 1.2.3 Thrashing Khi tiến trình khơng có đủ frame để chứa trang cần thiết cho việc xử lý, thường xun phát sinh page fault, phải dùng đến nhiều thời gian sử dụng CPU để thực thay trang Hệ điều hành thấy hiệu sử dụng CPU thấp tăng mức độ đa chương, dẫn đến trì trệ tồn hệ thcíng Để ngăn cản tình trạng trì trệ xảy ra, cần phải cấp cho tiến trình đủ frame cần thiết để hoạt động Vấn đề biết tiến trình cần trang? ❖ Mơ hình Working-set: Tập làm việc tiến trình thời điểm t tập trang tiến trình truy xuất đến A lần truy cập cuối tính thời điểm t page rerence table Hình 1.8 Mơ hình Working-set Gọi WSSi ( A , t) số' phần tử tập working set tiến trình Pi thời điểm t m số' frame trố'ng D = £WSSi tổng số' frame u cầu cho tồn hệ thốíng Hệ điều hành giám sát working set tiến trình Pi thời điểm t cấp phát cho tiến trình Pi số' frame với số' phần tử tập làm việc (WSSi)(A, t-1) Nếu tổng số' frame u cầu tiến trình hệ thốíng vượt q frame sử dụng (D>m), xảy tình trạng thrashing Khi hệ điều hành chọn tiến trình để tạm dừng, giải phóng frame tiến trình chọn để tiến trình khác có đủ frame hồn tất cơng việc CHƯƠNG II: CÀI ĐẶT • Ở chương nhóm định cài đặt mơ thuật tốn thay trang FIFO LRU Để cài đặt thuật toán bọn em sử dụng kiểu liệu list unordered_map Kiểu list tạo danh sách liên kết với mục đích chọn victim frame theo thứ tự danh sách, victim frame chọn phần tử cuối danh sách theo phần tử đầu danh sách trang có độ ưu tiên chọn làm victim frame thấp Kiểu unordered_map khoảng chứa thành phần số hiệu vị trí danh sách liên kết để thể ánh xạ từ page đến frame Cấu trúc chung thuật toán bao gồm: > thành phần: • dq: Danh sach liên kết thể độ sử dụng frame • ma: Map lưu trữ giá trị tham chiếu vào nhớ • nframe: Số lượng frame cấp phát • pfault: Biến đếm page fault > Hàm tạo > void set_frame(int n): Hàm đặt số lượng frame cấp phát cho tiến trình > void refer(int x): Hàm cấp frame để tiến trình sử dụng tìm victim frame để thay nhớ đầy > > > int get_pfault(): Hàm trả giá trị page fault sau trình chạy sử dụng nhớ tiến trình void display(): Hàm hiển thị frame cấp phát đặt nhớ void free(): Giải phóng nhớ Về thuật tốn FIFO LRU sử dụng thành phần hàm giống khác hàm refer 2.1 Cài đặt FIFO Khi thực cấp phát frame, hàm refer thực tìm map xem frame nạp vào nhớ chưa: > Nếu nạp sẵn nhớ việc cho tiến trình sử dụng không cập nhật lại danh sách dq map ma > Nếu chưa nạp nhớ thực hiện: • Tăng số lượng page fault lên • Kiểm tra danh sách liên kết có chiều dài lượng frame tối đa cấp phát cho tiến trình khơng Nếu có nghĩa nhớ đầy thực giải thuật FIFO để’ tìm victim frame, sau thay trang frame yêu cầu FIFO thực xóa phần tử cuối dq ma, theo nhớ trống Việc cấp phát frame thêm frame vào đầu dq ma Vì việc đẩy phần tử cận cuối lúc đầu thành phần tử cuối danh sách đảm bảo chế vào trước trước 2.2 Cài đặt LRU Khi thực cấp phát frame, hàm refer thực tìm map xem frame nạp vào nhớ chưa: > Nếu nạp sẵn nhớ xóa phần tử khỏi danh sách dq map ma sau cập nhật lại cách thêm frame yêu cầu vào đầu danh sách > Nếu chưa nạp nhớ thực hiện: • Tăng số lượng page fault lên • Kiểm tra danh sách liên kết có chiều dài lượng frame tối đa cấp phát cho tiến trình khơng Nếu có nghĩa nhớ đầy thực giải thuật LRU để’ tìm victim frame, sau thay trang frame yêu cầu LRU thưc xóa phần tử cuối dq ma, nhớ trống Frame yêu cầu thêm vào đầu dánh sách Phần tử cuối dánh sách ln victim frame, frame sử dụng mà có nhớ( kể phẩ’n tử cuối ) frame chuyể’n lên đầu tức khả bị chọn làm victim frame thấp 2.3 Cài đặt process Do trọng tâm đề tài chế thay trang nên nhóm mơ tiến trình đơn giản, gồm thành phần chính: ^ id: ID tiến trình > stat: Trạng thái tiến trình > Hai kiểu sử dụng nhớ FIFO LRU: meml, mem2 Ứng với loại nhớ sử dụng mà có hàm thực chức tương ứng: > Hàm tạo ^ req1/req2: Thực yêu cầu cấp phát nhớ > get_pf1/get_pf2: Tính tốn giá trị page fault sau q trình sử dụng nhớ > disp1/disp2: Hiển thị thơng tin tiến trình > stop: Dừng tiến trình CHƯƠNG III: MƠ PHỎNG 3.1 Cấu trúc chương trình Chương trình thực người dung muốn kết thúc > > > > > > Khởi tạo tiến trình (cứ tiến trình khởi tạo chương trình có id khác nhau) Đặt số' lượng frame tối đa mucín cấp phát cho tiến trình Lựa chọn loại nhớ muố'n sử dụng (bộ nhớ sử dụng FIFO hay LRU ?) Cấp phát frame cho tiến trình sử dụng Hiể’n thị thơng tin tiến trình số' lượng page fault sau trình tiến trình chạy xong Kết thức tiến trình chạy 3.2 Chạy mơ Hình 3.1 Ví dụ mơ Q trình mơ tiếp diễn tạo tiến trình để người dung tự mô muốn dừng lại Mỗi kết thúc lần mơ tiến trình dừng tiến trình tạo khơng có chia sẻ nhớ TÀI LIỆU THAM KHẢO [1] Ninh Xuân Hải & Huỳnh Trọng Thưa Giáo trình Hệ điều hành Học viện cơng nghệ bưu viễn thơng năm 2008 [2] Avi Silberschatz, Peter Baer Galvin, Greg Gagne Operating System Concepts Essentials Second Edition, 2013 < https://vimentor.com/vi>, truy cập vào 26/3/2021 ... CHƯƠNG I: TÌM HIỂU LÝ THUYẾT Quản lý nhớ chức hệ điều hành xử lý quản lý nhớ di chuyển q trình qua lại nhớ ổ đĩa q trình thực thi Quản lý nhớ theo dõi vị trí nhớ, nhớ cấp phát cho số quy trình... hệ điều hành Linux- Ubuntu • Cài đặt thuật tốn quản lý nhớ • Mơ q trình quản lý nhớ mà sử dụng phương pháp quản lý nhớ khác nhau, qua so sánh độ hiệu thuật tốn phương pháp CHƯƠNG I: TÌM HIỂU LÝ... sẻ nhớ 1.2 Bộ nhớ ảo Bộ nhớ ảo kỹ thuật dùng nhớ phụ lưu trữ tiến trình, phần tiến trình chuyển vào-ra nhớ nhớ phụ phép thực thi tiến trình mà khơng cần nạp tồn vào nhớ vật lý Với kỹ thuật nhớ

Ngày đăng: 12/01/2022, 19:13

Hình ảnh liên quan

1.1.3. Mô hình cấp phát không liên tục - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

1.1.3..

Mô hình cấp phát không liên tục Xem tại trang 6 của tài liệu.
Hình 1.2. Cơ chế' MMU trong paging - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.2..

Cơ chế' MMU trong paging Xem tại trang 7 của tài liệu.
Hình 1.3. Cơ chê chuyển đổi địa chỉ của MMU - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.3..

Cơ chê chuyển đổi địa chỉ của MMU Xem tại trang 8 của tài liệu.
Hình 1.4. Một page table có thêm trạng thái mỗi phần tử - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.4..

Một page table có thêm trạng thái mỗi phần tử Xem tại trang 9 của tài liệu.
Hình 1.5. Ví dụ về chỉa sẻ bộ nhớ - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.5..

Ví dụ về chỉa sẻ bộ nhớ Xem tại trang 9 của tài liệu.
Hình 1.6. Quy trình xử lý page fault - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.6..

Quy trình xử lý page fault Xem tại trang 10 của tài liệu.
Hình 1.7. Thuật toán cơ hội thứ 2 - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 1.7..

Thuật toán cơ hội thứ 2 Xem tại trang 13 của tài liệu.
❖ Mô hình Working-set: - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

h.

ình Working-set: Xem tại trang 15 của tài liệu.
Hình 3.1. Ví dụ về mô phỏng - BÁO cáo bài tập lớn hệ điều HÀNH đề tài mô phỏng quản lý bộ nhớ trong hệ điều hành linux

Hình 3.1..

Ví dụ về mô phỏng Xem tại trang 19 của tài liệu.

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

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

Tài liệu liên quan