Thiếu bộ nhớ: Khi không còn đủ không gian trong bộ nhớ để cấp phát cho các tiến trình, hệ thống có thể gặp phải tình trạng thiếu bộ nhớ.. Điều này có thể yêu cầu việc giải phóng không gi
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TPHCM KHOA HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM
ĐỒ ÁN: HỆ ĐIỀU HÀNH
ĐỀ TÀI: QUẢN LÝ BỘ NHỚ
Giảng viên hướng dẫn : Huỳnh Luân
Sinh viên thực hiện : Phạm Sơn Tây
Hoàng Trọng Toàn
Huỳnh Nguyễn Duy Tiến
Mã số sinh viên : 169, 202, 195
TP Hồ Chí Minh, tháng 10 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TPHCM KHOA HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM
ĐỒ ÁN: HỆ ĐIỀU HÀNH
ĐỀ TÀI: QUẢN LÝ BỘ NHỚ
Giảng viên hướng dẫn : Huỳnh Luân
Sinh viên thực hiện : Phạm Sơn Tây
Hoàng Trọng Toàn
Huỳnh Nguyễn Duy Tiến
Mã số sinh viên : 169, 202, 195
TP Hồ Chí Minh, tháng 10 năm 2023
Trang 3Chúng ta đang ở kỷ nguyên thông tin Ngày nay không còn ai nghi ngơ gì vai trò của thông tin trong đời sống, trong khoa học kỹ thuật, kinh doanh cũng như trong mọi mặt vận động của xã hội, dưới mọi quy mô, từ xí nghiệp công ty cho đến quốc gia và cả quốc
tế
Nhà quản lý, các nhà nghiên cứu, các nhà công nghệ, các nhà giáo dục, các nhà sản xuất kinh doanh… không chỉ là người dùng tin mà còn là những người sản xuất ra thông tin mới Sự gia tăng nhanh chóng khối lượng tri thức khoa học tác động mạnh mẽ tới các hoạt động của các cơ quan thông tin – thư viện như cơ cấu của kho tài liệu, làm cho số lượng và chủng loại tài liệu tăng lên gấp bội
Hẳn là nhiều người ít khi biết một chiếc máy tính hoạt động nhứ thế nào và theo quy trình quy trinh quy tắc nào, để giúp mọi người biết và hiểu hơn về các thiết bị máy cùng cách hoạt động ra sao, nhóm chúng tôi xin được phép nói sâu về bộ nhớ máy chi tiết hơn đó là việc quản lý bộ nhớ (memory management), ta lần lượt trình bày các thành phần cấu trúc cũng như chức năng của bộ nhớ Tuy nhiên bài tiêu luận này cũng không tránh khỏi những thiếu sót, chúng tôi mong nhận được sự góp ý từ độc giả để được trở nên hoàn chỉnh hơn
Chúng tôi xin chân thành cảm ơn các bạn trong nhóm Hệ Điều Hành đã đọc, góp ý và chỉnh sửa chính tả cho ra phiên bản hoàn thiện nhất
Chúng tôi cũng xin chân thành cảm ơn Thầy Huỳnh Luân đã tạo điều kiện thuận lợi nhất
để hoàn thanh bài tiểu luận
Trang 4NHẬN XÉT ĐÁNH GIÁ CỦA GIẢNG VIÊN
TP Hồ Chí Minh, Ngày … tháng … năm 2023 GIẢNG VIÊN HƯỚNG DẪN
(Ký tên)
Trang 5MỤC LỤC
Phần 1 MỞ ĐẦU 1
1 Lý do chọn đề tài……… 1
2 Mục đích……… 1
3 Phạm vi đề tài……… 1
Phần 2 NỘI DUNG 2
I Tổng quan quản lý bộ nhớ 2
II Các vấn đề về bộ nhớ 2
III Các bước chuyển đổi file nguồn thành file thực thi 3
IV Nhu cầu bộ nhớ của tiến trình 4
V Truy xuất bộ nhớ 5
VI Yêu cầu quản lý bộ nhớ 6
VII Các mô hình tổ chức bộ nhớ 7
1 Mô hình bộ nhớ liên tục……… 7
2 Mô hình bộ nhớ phân đoạn……… 8
3 Mô hình bộ nhớ trang……… 8
VIII Các mô hình chuyển đổi địa chỉ 10
IX Quản lý bộ nhớ trong Windows 11
Tài liệu kham khảo 12
Trang 6
DANH MỤC HÌNH ẢNH
Hình 1 Quá trình trao đổi thông tin của bộ nhớ………2
Hình 2 Quá trình truy xuất bộ nhớ………6
Hình 3 Mô hình bộ nhớ liên tục………7
Hình 4 Mô hình bộ nhớ phân đoạn……… 8
Hình 5 Mô hình bộ nhớ trang……… 9
Hình 6 Chuyển đổi địa chỉ tĩnh……… 10
Hình 7 Phương pháp phân trang……….11
THUẬT NGỮ
First Fit Cấp phát lỗ trống đầu tiên đủ lớn
Best Fit Cấp phát lỗ trống nhỏ nhất đủ lớn
Worst Fit Cấp phát lỗ trống lớn nhất
Trang 7Phần 1 MỞ ĐẦU
1 Lý do chọn đề tài : nhiều người ít khi biết một chiếc máy tính hoạt động nhứ thế nào và theo quy trình quy trinh quy tắc nào, để giúp mọi người biết và hiểu hơn
về các thiết bị máy cùng cách hoạt động ra sao, chúng tôi chọn Quản lý bộ nhớ làm
đề tài
2 Mục đích : giúp mọi người mở rộng kiến thức cũng như có thêm tài liệu kham khảo
về việc Quản lý bộ nhớ trong Hệ điều hành
3 Phạm vi đề tài : đề tài nói xung quanh các cách thức hoạt động các chi tiết việc Quản lý bộ nhớ
1
Trang 8Phần 2 NỘI DUNG
I Tổng quan quản lý bộ nhớ
Quản lý bộ nhớ là một trong những nhiệm vụ quan trọng nhất của hệ điều hành Bộ nhớ chính là thiết bị lưu trữ duy nhất thông qua đó CPU có thể trao đổi thông tin với môi trường ngoài, do vậy nhu cầu tổ chức, quản lý bộ nhớ là một trong những nhiệm vụ trọng tâm hàng đầu của hệ điều hành
Hình 1 Quá trình trao đổi thông tin của bộ nhớ
II Các vấn đề về bộ nhớ
Chậm trễ: Khi bộ nhớ trở nên quá tải, hệ thống có thể trở nên chậm chạp Điều này có thể dẫn đến việc tiến trình chạy chậm hơn, hoặc thậm chí ngừng hoạt động Treo máy: Trong một số trường hợp, khi bộ nhớ bị quá tải, hệ thống có thể “treo” hoặc không phản ứng Điều này có thể yêu cầu khởi động lại máy tính để giải phóng bộ nhớ
2
Trang 9Lỗi: Các lỗi bộ nhớ, như lỗi truy cập bộ nhớ hoặc lỗi phân trang, có thể gây ra sự
cố cho hệ thống và ảnh hưởng đến hiệu suất và ổn định
Thiếu bộ nhớ: Khi không còn đủ không gian trong bộ nhớ để cấp phát cho các tiến trình, hệ thống có thể gặp phải tình trạng thiếu bộ nhớ Điều này có thể yêu cầu việc giải phóng không gian bằng cách đóng các tiến trình không cần thiết hoặc
mở rộng dung lượng bộ nhớ
III Các bước chuyển đổi file nguồn thành file thực thi
Để chuyển đổi ta cần thực hiện các bước :
Viết mã nguồn : Bước đầu tiên là viết mã nguồn cho chương trình của bạn Mã nguồn thường được viết bằng một ngôn ngữ lập trình như C, C++, Java, Python, v.v
Biên dịch mã nguồn : Biên dịch mã nguồn: Sau khi viết mã nguồn, bạn cần biên dịch
nó thành mã máy Quá trình này được thực hiện bởi một trình biên dịch
Liên kết mã máy : Sau khi biên dịch mã nguồn, bạn cần liên kết nó với các thư viện
và các file khác cần thiết để chạy chương trình Quá trình này được thực hiện bởi một trình liên kết
Chạy chương trình : Sau khi liên kết mã máy, bạn có thể chạy chương trình
Ví dụ cơ bản :
Bước 1: Chọn ngôn ngữ lập trình
Trong ví dụ này, chúng ta sẽ sử dụng ngôn ngữ lập trình C++
Bước 2: Viết mã nguồn
Dưới đây là mã nguồn cho chương trình C++ đơn giản:
#include <iostream>
int main() {
3
Trang 10std::cout << "Hello, world!" << std::endl;
return 0;
}
Bước 3: Biên dịch mã nguồn
Để biên dịch mã nguồn, hãy mở Visual Studio và mở file mã nguồn Sau đó, nhấp chuột phải vào file và chọn "Build"
Bước 4: Tạo file thực thi
Sau khi biên dịch mã nguồn, Visual Studio sẽ tạo ra một file thực thi có tên là
"hello_world.exe"
Bước 5: Chạy file thực thi
Để chạy file thực thi, hãy nhấp đúp vào file hoặc sử dụng lệnh sau trong terminal: /hello_world.exe
Chương trình sẽ in ra dòng chữ "Hello, world!"
IV Nhu cầu bộ nhớ của tiến trình
Nhu cầu bộ nhớ tiến trình là lượng bộ nhớ cần thiết để lưu trữ dữ liệu và mã của tiến trình Nhu cầu bộ nhớ tiến trình phụ thuộc vào nhiều yếu tố, bao gồm:
Kích thước của mã: Mã của một tiến trình bao gồm các lệnh mà CPU thực hiện
Mã này có thể rất nhỏ (vài KB) cho các chương trình đơn giản, hoặc lớn (MB hoặc GB) cho các chương trình phức tạp như hệ điều hành hoặc trò chơi video Kích thước của dữ liệu: Dữ liệu của một tiến trình bao gồm các biến, mảng, và cấu trúc dữ liệu khác Kích thước của dữ liệu phụ thuộc vào số lượng và loại dữ liệu mà tiến trình sử dụng
Kiểu dữ liệu: Các kiểu dữ liệu khác nhau có thể chiếm không gian bộ nhớ khác nhau Ví dụ, một số nguyên chiếm ít không gian hơn so với một chuỗi ký tự
4
Trang 11Khả năng sử dụng bộ nhớ: Một số tiến trình có thể sử dụng bộ nhớ hiệu quả hơn
so với các tiến trình khác Ví dụ, một tiến trình có thể sử dụng các thuật toán và cấu trúc dữ liệu hiệu quả để giảm bộ nhớ cần thiết
V Truy xuất bộ nhớ
Truy xuất bộ nhớ là quá trình lấy dữ liệu từ bộ nhớ Trong máy tính, bộ nhớ có thể là RAM, ROM, ổ cứng, ổ SSD, v.v Dữ liệu được lưu trữ trong bộ nhớ có thể là chương trình, dữ liệu, hoặc cả hai Quá trình này được thực hiện bởi CPU,quá trình truy xuất bộ nhớ bao gồm các bước sau:
Định vị dữ liệu: CPU sử dụng địa chỉ bộ nhớ để định vị dữ liệu cần truy xuất Gửi yêu cầu truy xuất: CPU gửi yêu cầu truy xuất đến bộ nhớ
Bộ nhớ trả về dữ liệu: Bộ nhớ trả về dữ liệu cho CPU
Thời gian truy xuất bộ nhớ là thời gian cần thiết để CPU lấy dữ liệu từ bộ nhớ Thời gian truy xuất bộ nhớ phụ thuộc vào nhiều yếu tố, bao gồm:
Loại bộ nhớ: Bộ nhớ truy cập ngẫu nhiên (RAM) có thời gian truy xuất nhanh hơn
bộ nhớ truy cập tuần tự (ROM)
Khoảng cách giữa CPU và bộ nhớ: Khoảng cách giữa CPU và bộ nhớ càng gần thì thời gian truy xuất càng nhanh
Công nghệ bộ nhớ: Công nghệ bộ nhớ mới hơn thường có thời gian truy xuất nhanh hơn
Dưới đây là một số ví dụ về truy xuất bộ nhớ:
Khi bạn mở một ứng dụng trên máy tính, hệ điều hành sẽ truy xuất dữ liệu ứng dụng từ bộ nhớ
Khi bạn mở một tệp trên máy tính, hệ điều hành sẽ truy xuất dữ liệu tệp từ bộ nhớ
5
Trang 12Hình 2 Quá trình truy xuất bộ nhớ
VI Yêu cầu quản lý bộ nhớ
Cấp phát bộ nhớ cần phải nhanh: Điều này đòi hỏi hệ điều hành phải có khả năng quản lý bộ nhớ một cách linh hoạt và nhanh chóng Điều này có thể được thực hiện thông qua việc sử dụng các thuật toán cấp phát bộ nhớ hiệu quả, như First Fit, Best Fit hoặc Worst Fit Mục tiêu là giảm thiểu thời gian chờ và tối đa hóa hiệu suất của hệ thống
Thu hồi bộ nhớ phải hiệu quả: Khi một tiến trình không còn sử dụng một phần
bộ nhớ nào đó, hệ điều hành phải có khả năng thu hồi và tái sử dụng không gian
đó Điều này đòi hỏi việc theo dõi và cập nhật liên tục trạng thái của bộ nhớ
Ổn định: Hệ điều hành phải ngăn chặn việc một tiến trình truy cập vào vùng nhớ của tiến trình khác Điều này đòi hỏi việc sử dụng các cơ chế bảo vệ bộ nhớ, như phân quyền truy cập và kiểm soát truy cập
6
Trang 13Hiệu quả, linh hoạt: Hệ điều hành phải có khả năng điều chỉnh việc sử dụng bộ nhớ theo nhu cầu của các tiến trình Điều này có thể được thực hiện thông qua việc
sử dụng các kỹ thuật như phân trang và đoạn, cho phép việc sử dụng bộ nhớ một cách linh hoạt và hiệu quả
VII Các mô hình tổ chức bộ nhớ
Có nhiều mô hình tổ chức bộ nhớ khác nhau có thể được sử dụng trong hệ điều hành Mỗi mô hình có ưu và nhược điểm riêng:
1 Mô hình bộ nhớ liên tục :
Trong mô hình bộ nhớ liên tục, bộ nhớ được tổ chức thành một không gian địa chỉ liên tục Mỗi tiến trình được cấp phát một không gian địa chỉ riêng, bắt đầu từ một địa chỉ cụ thể
Mô hình bộ nhớ liên tục là mô hình đơn giản nhất để thực hiện Tuy nhiên, nó có một số hạn chế, bao gồm:
Thiếu hiệu quả: Các tiến trình thường không cần tất cả bộ nhớ được cấp phát cho chúng Thiếu bảo mật: Các tiến trình có thể truy cập dữ liệu của các tiến trình khác
Hình 3 Mô hình bộ nhớ liên tục
7
Trang 142 Mô hình bộ nhớ phân đoạn
Trong mô hình bộ nhớ phân đoạn, bộ nhớ được tổ chức thành các đoạn Mỗi đoạn có kích thước và địa chỉ bắt đầu riêng
Mô hình bộ nhớ phân đoạn khắc phục một số hạn chế của mô hình bộ nhớ liên tục Nó cho phép các tiến trình chỉ được cấp phát bộ nhớ mà chúng cần, và nó giúp ngăn chặn các tiến trình truy cập dữ liệu của các tiến trình khác
Tuy nhiên, mô hình bộ nhớ phân đoạn cũng có một số hạn chế, bao gồm:
Phức tạp: Quản lý bộ nhớ phân đoạn đòi hỏi nhiều tài nguyên và thời gian hơn so với quản lý bộ nhớ liên tục
Hình 4 Mô hình bộ nhớ phân đoạn
3 Mô hình bộ nhớ trang
Trong mô hình bộ nhớ trang, bộ nhớ được tổ chức thành các trang Mỗi trang có kích thước cố định
Mô hình bộ nhớ trang kết hợp các ưu điểm của mô hình bộ nhớ liên tục và mô hình bộ nhớ phân đoạn Nó cho phép các tiến trình chỉ được cấp phát bộ nhớ mà chúng cần, và nó
8
Trang 15giúp ngăn chặn các tiến trình truy cập dữ liệu của các tiến trình khác giảm thiểu lãng phí
bộ nhớ
Tuy nhiên, mô hình bộ nhớ trang cũng có một số nhược điểm, nó phức tạp hơn mô hình
bộ nhớ liên tục và mô hình bộ nhớ phân đoạn, nó có thể dẫn đến thời gian truy xuất bộ nhớ chậm hơn
Mô hình bộ nhớ trang cũng là mô hình tổ chức bộ nhớ phổ biến nhất được sử dụng trong các hệ điều hành hiện đại
Hình 5 Mô hình bộ nhớ trang
Quy trình truy xuất bộ nhớ trang bao gồm các bước sau:
1 CPU cần truy cập dữ liệu trong bộ nhớ
2 CPU sử dụng địa chỉ trang của dữ liệu
3 Bộ nhớ quản lý chuyển đổi địa chỉ trang thành địa chỉ vật lý
4 Bộ nhớ quản lý tìm dữ liệu tại địa chỉ vật lý
5 Bộ nhớ quản lý gửi dữ liệu trở lại CPU
9
Trang 16VIII Các mô hình chuyển đổi địa chỉ
Chuyển đổi địa chỉ tĩnh: Trong mô hình này, địa chỉ logic được chuyển đổi thành địa chỉ vật lý ngay tại thời điểm biên dịch hoặc liên kết Điều này có nghĩa là, một khi tiến trình được nạp vào bộ nhớ, nó phải ở cố định ở một vị trí nhất định Mô hình này đơn giản và dễ hiểu, nhưng không linh hoạt và có thể gặp khó khăn trong việc tận dụng hiệu quả không gian bộ nhớ
Hình 6 Chuyển đổi địa chỉ tĩnh
Chuyển đổi địa chỉ động: Trong mô hình này, việc chuyển đổi từ địa chỉ logic sang vật lý được thực hiện tại thời gian chạy Điều này cho phép tiến trình di chuyển trong bộ nhớ trong suốt thời gian thực thi, giúp tối ưu hóa việc sử dụng không gian bộ nhớ Tuy nhiên, mô hình này yêu cầu các cơ chế phức tạp hơn để theo dõi vị trí của các tiến trình và quản lý việc chuyển đổi địa chỉ
10
Trang 17IX Quản lý bộ nhớ trong Windows
Trong Windows, hệ điều hành quản lý bộ nhớ bằng cách sử dụng một phương pháp gọi là phân trang Với phân trang, hệ điều hành chia bộ nhớ vật lý thành các trang nhỏ Mỗi chương trình được cấp phát một không gian địa chỉ ảo, lớn hơn bộ nhớ vật lý của nó Khi chương trình cần truy cập một trang dữ liệu, hệ điều hành sẽ tải trang đó từ ổ cứng vào bộ nhớ vật lý
Hình 7 Phương pháp phân trang
Để quản lý bộ nhớ trong Windows, người dùng có thể sử dụng các công cụ tích hợp sẵn hoặc phần mềm của bên thứ ba
Công cụ tích hợp sẵn :
Task Manager
Performance Monitor
Disk Defragmenter
Có rất nhiều phần mềm của bên thứ ba có sẵn để quản lý bộ nhớ trong Windows Một số phần mềm phổ biến bao gồm:
CleanMem
RAMRush
11
Trang 18Một cách khác để quản lý bộ nhớ trong Windows là sử dụng các kỹ thuật quản
lý bộ nhớ thủ công Các kỹ thuật này bao gồm:
Tắt các chương trình không sử dụng: Khi bạn không sử dụng một chương trình, hãy tắt nó Điều này sẽ giải phóng bộ nhớ mà chương trình đang sử dụng Tắt các dịch vụ không cần thiết: Windows khởi động một số dịch vụ khi máy tính khởi động Nếu bạn không sử dụng dịch vụ, hãy tắt nó Điều này sẽ giải phóng bộ nhớ mà dịch vụ đang sử dụng
Xóa các tập tin tạm thời: Các tập tin tạm thời được tạo ra bởi các chương trình và dịch vụ Nếu bạn không cần các tập tin tạm thời, hãy xóa chúng Điều này sẽ giải phóng bộ nhớ mà các tập tin đang sử dụng
Tài liệu kham khảo
1, monhoc.vn
https://monhoc.vn/tai-lieu/mon-he-dieu-hanh/
2, Stdocu
https://www.studocu.com/
12