Bài tập lớn môn học hệ điều hành nghiên cứu tìm hiểu về quản lý bộ nhớ trong trong hđh linux

37 2 0
Bài tập lớn môn học hệ điều hành nghiên cứu tìm hiểu về quản lý bộ nhớ trong trong hđh 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

Trong môi trường hệ thống này, việc quản lý bộ nhớ đóng một vaitrò cực kỳ quan trọng, ảnh hưởng trực tiếp đến hiệu suất và ổn định của hệ thống.Đề tài nghiên cứu này nhằm tập trung vào v

lOMoARcPSD|39222806 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - - BÀI TẬP LỚN MÔN HỌC NGUYÊN L䤃Ā HỆ ĐIỀU HÀNH Tên đề tài: Nghiên cứu tìm hiểu về quản lý Bộ nhớ trong trong HĐH Linux Nhóm thực hiện: Nhóm 4 – Lớp: 20231IT6067013 Giáo viên hướng dẫn: Nguyễn Tuấn Tú Thành viên trong nhóm: 1 Trần Tuấn Anh - 2022600749 2 Trần Danh Khang - 2022600905 3 Phạm Thị Quyên - 2022600278 4 Đặng Thị Cẩm Tú - 2022601285 5 Nguyễn Thị Hoài Linh - 2022600372 Hà Nội 2023 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 Mục lục DANH MỤC HÌNH ẢNH 5 LỜI MỞ ĐẦU 6 CHƯƠNG 1: KHÁI NIỆM HỆ ĐIỀU HÀNH VÀ HỆ ĐIỀU HÀNH LINUX 7 1.1 Hệ điều hành là gì? 7 1.2 Giới thiệu hệ điều hành Linux 7 CHƯƠNG 2: BỘ NHỚ ẢO 8 2.1 Khái niệm bộ nhớ ảo 8 2.2 Mô hình bộ nhớ ảo 9 2.3 Khái niệm không gian hoán đổi và Tạo không gian hoán đổi .11 2.3.1 Khái niệm không gian hoán đổi 11 2.3.2 Tạo không gian hoán đổi 12 2.4 Sử dụng không gian hoán đổi 13 2.5 Định vị không gian hoán đổi 14 CHƯƠNG 3: CACHES 14 3.1 Linux Page Cache 15 3.2 Bu昀昀er Cache 16 3.3 Page Cache 16 3.4 Swap Cache 16 4 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 3.5 Hardware Cache 17 3.6 Swap Cache 17 CHƯƠNG 4: CƠ CHẾ PHÂN ĐOẠN, PHÂN TRANG .18 4.2 Cơ chế phân trang 19 4.2.1 Nhu cầu phân trang .19 4.2.2 Trang lưu trữ (Page Cache) 20 4.2.3 Bảng trang (Page table) 21 4.2.4 Định vị và giải phóng trang 22 4.2.4.1 Định vị trang .23 4.2.4.2 Giải phóng trang 24 CHƯƠNG 5: CƠ CHẾ QUẢN LÝ BỘ NHỚ VẬT LÝ, ÁNH XẠ BỘ NHỚ 25 5.1 Bộ định vùng 25 5.2 Các vùng .25 5.3 Ánh xạ bộ nhớ .26 CHƯƠNG 6: CẤP PHÁT VÀ GIẢI PHÓNG VÙNG NHỚ 28 6.1 Khái niệm vùng nhớ .28 6.1.1 Một số khái niệm cơ bản về vùng nhớ 28 6.1.2 Các chế độ cấp phát vùng nhớ .28 6.2 Cấp phát vùng nhớ 29 6.2.1 Hàm cấp phát bộ nhớ 29 6.2.2 Thuật toán .33 6.3 Giải phóng vùng nhớ 33 6.4 Truy xuất con trỏ NULL 35 5 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 KẾT LUẬN 37 Danh Mục Hình Ảnh HÌNH 2.1 : MÔ HÌNH TRỪU TƯỢNG CỦA SỰ ÁNH XẠ TỪ ĐỊA CHỈ ẢO ĐẾN ĐỊA CHỈ VẬT LÝ HÌNH 3.1 LINUX PAGE CACHE HÌNH 4.1: KERNEL/USER LINEAR ADDRESSES HÌNH 4.2 MỨC BẢNG TRANG HÌNH 4.3 CẤU TRÚC DỮ LIỆU CỦA FREE_AREA HÌNH 5.1 ARES OF VIRTUAL MEMORY 6 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 Lời mở đầu Hệ điều hành Linux, với cơ sở mã nguồn mở và tính linh hoạt cao, đã trở thành một trong những nền tảng quan trọng và phổ biến nhất trong thế giới công nghệ hiện đại Trong môi trường hệ thống này, việc quản lý bộ nhớ đóng một vai trò cực kỳ quan trọng, ảnh hưởng trực tiếp đến hiệu suất và ổn định của hệ thống Đề tài nghiên cứu này nhằm tập trung vào việc hiểu và tối ưu hóa quản lý bộ nhớ trong hệ điều hành Linux Trải qua nhiều phiên bản và sự phát triển liên tục, Linux đã có những cải tiến vượt bậc trong cách tiếp cận và sử dụng bộ nhớ của máy tính Bài báo cáo này sẽ đi sâu vào nghiên cứu cách mà Linux quản lý bộ nhớ, từ cách thức hoạt động của kernel đến các cơ chế quản lý bộ nhớ ảo, cũng như quản lý bộ nhớ vật lý và ảo hóa Đồng thời khám phá các công cụ và kỹ thuật tối ưu hóa bộ nhớ trong Linux để cải thiện hiệu suất, tăng cường khả năng đáp ứng và tối ưu hóa sử dụng tài nguyên Nghiên cứu này cũng sẽ đưa ra các phân tích về ưu điểm, nhược điểm cũng như các thách thức mà việc quản lý bộ nhớ trong Linux đối diện Cuối cùng, mục tiêu của bài báo cáo là cung cấp cái nhìn sâu rộng hơn về cách Linux quản lý bộ nhớ, từ đó tạo ra các phương pháp và giải pháp tối ưu hóa để nâng cao hiệu suất và đáng tin cậy của hệ thống Trong quá trình làm bài, nhóm tuy đã rất cố gắng nhưng chắc chắn không tránh khỏi những thiếu sót, rất mong nhận được sự giúp đỡ của thầy để bài viết hoàn thiện hơn 7 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 CHƯƠNG 1: KHÁI NIỆM HỆ ĐIỀU HÀNH VÀ HỆ ĐIỀU HÀNH LINUX 1.1 Hệ điều hành là gì? Hệ điều hành là một bộ chương trình được cài đặt sẵn (dưới dạng các File trên các vật mang tin: băng từ, đĩa từ) có chức năng: Nhìn nhận theo chức năng này, hệ điều hành được quan niệm như là một hệ thống quản lý tài nguyên Thoả mãn ở mức cao nhất yêu cầu đa dạng của người dùng 1.2 Giới thiệu hệ điều hành Linux Linux là một hệ điều hành máy tính được phát triển từ năm 1991, dựa trên hệ điều hành Unix và viết bằng ngôn ngữ C Đây là một hệ điều hành được phát hành miễn phí và có nhiều ưu điểm vượt trội nên thường được sử dụng nhiều hơn là Windows hay những hệ điều hành nào khác Là một hệ điều hành mã nguồn mở Linux đã thực sự tạo ra một cuộc cách mạng trong lĩnh vực máy tính với bùng nổ về số lượng người dùng cũng như sự đánh giá cao về trải nghiệm mà nó đem lại Dưới đây là một số điểm chính về hệ điều hành Linux: - Mã nguồn mở: Linux được phát triển theo mô hình mã nguồn mở, điều này có nghĩa là mã nguồn của nó có sẵn và có thể được sửa đổi, phát triển, và phân phối lại theo các điều khoản của Giấy phép Công cộng GNU (GNU General Public License - GPL) Điều này tạo ra một cộng đồng rộng lớn của các nhà phát triển trên toàn thế giới đóng góp vào việc phát triển và duy trì hệ điều hành - Nhân Linux (Linux Kernel): Nhân Linux là phần quan trọng nhất của hệ điều hành, chịu trách nhiệm cho việc quản lý tài nguyên như bộ nhớ, CPU, các thiết bị ngoại vi và giao tiếp giữa phần mềm và phần cứng - Hệ thống tập tin: Linux sử dụng hệ thống tập tin ext4 phổ biến, nhưng cũng hỗ trợ nhiều loại hệ thống tập tin khác nhau như btrfs, XFS, và nhiều loại khác - Giao diện người dùng: Linux có nhiều phiên bản giao diện người dùng, trong đó có GNOME, KDE, Xfce, và LXQt Mỗi phiên bản có đặc điểm và phong cách riêng, nhưng đều cung cấp môi trường desktop đầy đủ chức năng và thân thiện với người dùng 8 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 - Distributions (Bản phân phối): Có nhiều bản phân phối Linux (distros) khác nhau, mỗi bản phân phối thường có các đặc điểm, ưu điểm, và mục tiêu sử dụng cụ thể Ví dụ như Ubuntu, Fedora, Debian, CentOS, và Arch Linux - Quản lý gói và trình quản lý phần mềm: Hệ điều hành Linux thường sử dụng các hệ thống quản lý gói như APT (Advanced Package Tool), YUM, Pacman, để quản lý cài đặt và cập nhật phần mềm - An ninh và ổn định: Linux nổi tiếng với độ ổn định và bảo mật cao Cộng đồng mã nguồn mở tích cực theo dõi và vá lỗ hổng an ninh, điều này giúp tăng cường sự tin tưởng của người dùng Hệ điều hành Linux đã trở thành một lựa chọn phổ biến cho nhiều môi trường sử dụng, từ máy tính cá nhân đến máy chủ và thiết bị nhúng, thể hiện tính linh hoạt và khả năng tùy chỉnh của nó CHƯƠNG 2: BỘ NHỚ ẢO 2.1 Khái niệm bộ nhớ ảo Bộ nhớ ảo là một vùng thuộc không gian lưu trữ của bộ nhớ phụ hệ thống máy tính (chẳng hạn như ổ cứng HDD hoặc SSD) Nó hoạt động như thể là một phần của RAM hoặc bộ nhớ chính hệ thống Bộ nhớ ảo sử dụng cả phần cứng và phần mềm để cho phép máy tính bù đắp sự thiếu hụt bộ nhớ vật lý, tạm thời chuyển dữ liệu từ bộ nhớ truy cập ngẫu nhiên (RAM) sang ổ lưu trữ Ánh xạ các phần bộ nhớ thành các tệp đĩa cho phép máy tính coi bộ nhớ phụ như thể nó là bộ nhớ chính 2.2 Mô hình bộ nhớ ảo Mô hình địa chỉ ảo là một khái niệm quan trọng trong hệ điều hành và kiến trúc máy tính Nó liên quan đến cách mà bộ xử lý và hệ điều hành quản lý và sử dụng bộ nhớ Dưới đây là một giải thích cơ bản về mô hình địa chỉ ảo: 1 Địa chỉ Vật lý (Physical Address): 9 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806  Khái niệm: Là địa chỉ thực tế của ô nhớ trong bộ nhớ vật lý của hệ thống  Đặc điểm: Mỗi ô nhớ được xác định bằng một địa chỉ vật lý duy nhất, thường là một con số thập lục phân 2 Địa chỉ Ảo (Virtual Address):  Khái niệm: Được sử dụng trong quá trình thực hiện các thao tác trên bộ nhớ, không nhất thiết phải trùng với địa chỉ vật lý  Đặc điểm: Địa chỉ ảo được sử dụng bởi các tiến trình và chương trình khi chúng thao tác với bộ nhớ 3 Đơn vị Quản lý Bộ nhớ (MMU - Memory Management Unit):  Khái niệm: Phần của bộ xử lý hoặc hệ điều hành chịu trách nhiệm chuyển đổi địa chỉ ảo sang địa chỉ vật lý và ngược lại  Đặc điểm: MMU thực hiện vai trò quan trọng trong quản lý bộ nhớ và giúp tạo ra không gian địa chỉ ảo 4 Bảng Trang (Page Table):  Khái niệm: Cấu trúc dữ liệu để ánh xạ địa chỉ ảo sang địa chỉ vật lý thông qua các trang nhỏ  Đặc điểm: Bảng trang giúp hệ thống theo dõi quy hoạch và quản lý bộ nhớ dựa trên các trang nhỏ này 5 Phân Trang (Paging):  Khái niệm: Kỹ thuật quản lý bộ nhớ trong đó bộ nhớ và đĩa được chia thành các trang nhỏ cố định  Đặc điểm: Giúp tối ưu hóa việc sử dụng bộ nhớ và quản lý các trang một cách linh hoạt 6 Chế độ Bảo vệ (Protection Mode):  Khái niệm: Hỗ trợ quản lý quyền truy cập vào các phần khác nhau của bộ nhớ  Đặc điểm: Đảm bảo an toàn và bảo mật, vì nó ngăn chặn các tiến trình từ việc ghi vào hoặc thực thi các phần nhất định của bộ nhớ 10 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 Để cho sự chuyển đổi dễ dàng hơn thì bộ nhớ ảo và bộ nhớ vật lý được chia thành nhiều khúc có kích thước thích hợp gọi là trang Tất cả các trang này có cùng kích thước để dễ quản lý Linux trên hệ thống Alpha AXP sử dụng trang 8Kbyte, còn trên hệ thống Intel x86 là trang 4Kbyte Mỗi trang được cung cấp một số duy nhất gọi là số khung trang ( PFN : Page Frame Number ) Hình 2.1 : Mô hình trừu tượng của sự ánh xạ từ địa chỉ ảo đến địa chỉ vật lý Khi vi xử lý cần truy cập một địa chỉ ảo, nó sẽ truy cập bảng trang để tìm PFN của trang đó Sau đó, nó sẽ sử dụng PFN này để truy cập trang bộ nhớ vật lý tương ứng Trong hệ thống bộ nhớ ảo, địa chỉ ảo được chia thành hai phần: phần offset và phần PFN Phần offset xác định vị trí của dữ liệu hoặc mã trong một trang, còn phần PFN xác định trang bộ nhớ vật lý mà dữ liệu hoặc mã đó nằm trên đó Nếu kích thước trang là 4 Kbyte, thì bit 11:0 của địa chỉ ảo chứa phần offset, còn bit 12 trở lên chứa phần PFN Khi vi xử lý muốn truy cập một địa chỉ ảo, nó sẽ đọc hai phần này Sau đó, vi xử lý sẽ sử dụng phần PFN để tìm trang bộ nhớ vật lý tương ứng Cuối cùng, vi 11 Downloaded by MON HOANG (monmon3@gmail.com) lOMoARcPSD|39222806 xử lý sẽ sử dụng phần offset để truy cập đến vị trí dữ liệu hoặc mã cần thiết trong trang bộ nhớ vật lý đó Quá trình chuyển từ địa chỉ ảo sang địa chỉ vật lý được dựa trên các bảng phân trang Mỗi tiến trình có một bảng phân trang riêng Bảng phân trang chứa thông tin về việc một trang ảo được ánh xạ đến trang vật lý nào 2.3 Khái niệm không gian hoán đổi và Tạo không gian hoán đổi 2.3.1 Khái niệm không gian hoán đổi Linux phân chia bộ nhớ truy cập ngẫu nhiên (RAM) thành các ngăn nhớ gọi là các trang Hoán đổi là quá trình ở đó một trang nhớ được sao chép tới không gian được cấu hình trước trên ổ cứng (không gian hoán đổi) nhằm giải phóng trang nhớ đó Kích thước được kết hợp từ bộ nhớ vật lý và không gian hoán đổi là tổng dung lượng bộ nhớ ảo Có 2 lý do quan trọng mà cần phải thực hiện việc hoán đổi Trước tiên khi hệ thống yêu cầu bộ nhớ lớn hơn bộ nhớ vật lý hiện tại đang có thì nhân hệ thống sẽ được chuyển sang các trang được sử dụng ít hơn và nhường bộ nhớ cho các ứng dụng đang cần xử lý ngay Thứ hai, số lượng các trang quan trọng được sử dụng bởi một ứng dụng trong suốt giai đoạn khởi động có thể chỉ được dùng để khởi tạo rồi sau đó không dùng lại nữa Hệ thống có thể chuyển đổi giữa các trang này và giải phóng bộ nhớ cho các ứng dụng khác hay thậm chí cho cả cache lưu trữ ổ Tuy nhiên việc hoán đổi cũng không phải hoàn toàn tốt So với bộ nhớ, các ổ chạy rất chậm Tốc độ bộ nhớ có thể được đo bằng nano giây (ns) trong khi tốc độ ổ đo bằng mili giây (ms), do đó truy cập ổ chậm hơn hàng chục nghìn lần truy cập vào bộ nhớ vật lý Càng thực hiện hoán đổi nhiều thì hệ thống sẽ càng chậm Đôi khi hoán đổi quá mức hoặc nhiều lần liên tiếp sẽ xảy ra ở một trang được chuyển ra rồi ngay lập tức lại được chuyển vào rồi lại chuyển ra rồi cứ thế tiếp tục Trong mỗi trường hợp thì hệ thống sẽ tìm ra các vùng nhớ trống và cùng lúc đưa vào chạy ứng dụng Trường hợp này chỉ cần thêm RAM Linux có hai loại không gian hoán đổi: partition hoán đổi và tập tin hoán đổi Partition hoán đổi là một phần độc lập của ổ cứng được sử dụng chỉ để hoán đổi; không một tập tin nào khác được lưu trữ ở đây Tập tin hoán đổi là một tập tin đặc 12 Downloaded by MON HOANG (monmon3@gmail.com)

Ngày đăng: 25/03/2024, 17:26

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

Tài liệu liên quan