1.4.1. Yêu cầu phải quản lý bộ nhớ
Bộ nhớ là thiết bị l−u trữ duy nhất mà thơng qua đĩ CPU cĩ thể trao đổi thơng tin với mơi tr−ờng bên ngồi. Do vậy, nhu cầu tổ chức, quản lý bộ nhớ là một trong những nhiệm vụ cơ bản hàng đầu của hệ điều hành. Bộ nhớ đ−ợc tổ chức nh− mảng một chiều các từ nhớ (word), mỗi từ nhớ cĩ một địa chỉ. Việc trao đổi thơng tin với mơi tr−ờng bên ngồi đ−ợc thực hiện thơng qua các thao tác đọc/ghi dữ liệu vào một địa chỉ cụ thể nào đĩ trong bộ nhớ.
Hệ điều hành chịu trách nhiệm cấp phát khơng gian nhớ cho các tiến trình khi cĩ yêu cầu. Để thực hiện tốt nhiệm vụ này, hệ điều hành cần phải xem xét một số khía cạnh sau:
- Sự t−ơng ứng giữa địa chỉ logic và địa chỉ vật lý: Làm thế nào để chuyển đổi một địa chỉ logic thành một địa chỉ vật lý.
- Quản lý bộ nhớ vật lý bao gồm: Phân bổ khơng gian nhớ cho các tiến trình hoạt động, thu hồi khơng gian nhớ khi tiến trình kết thúc, quản lý đ−ợc khơng gian nhớ tự do.
- Chia sẻ thơng tin: Cho phép các tiến trình đang hoạt động trong bộ nhớ cĩ thể chia sẻ thơng tin với nhau.
- Bảo vệ bộ nhớ: Ngăn chặn các tiến trình xâm phạm đến vùng nhớ đ−ợc cấp phát cho các tiến trình khác.
1.4.2. Các sơ đồ quản lý bộ nhớ
1.4.2.1. Sơ đồ phân hoạch cố định
Bộ nhớ đ−ợc chia thành n phần khơng nhất thiết phải bằng nhau và mỗi phần đ−ợc sử dụng nh− một bộ nhớ độc lập gọi là một phân hoạch. Mỗi phân hoạch cĩ thể nạp đ−ợc một ch−ơng trình và tổ chức thực hiện một cách đồng thời. Nh− vậy trên lý thuyết nếu cĩ n phân hoạch thì sẽ cĩ thể nạp đ−ợc n ch−ơng trình và thực hiện một cách đồng thời (n đ−ợc gọi là hệ số song song của hệ thống).
1.4.2.2. Sơ đồ phân hoạch động
Trong sơ đồ này, bộ nhớ cĩ một bảng quản lý khơng gian nhớ tự do thống nhất. Khi thực hiện ch−ơng trình, hệ thống dựa vào kích th−ớc ch−ơng trình để phân bổ khơng gian nhớ thích hợp, tạo thành một vùng nhớ độc lập và tạo bảng quản lý riêng. Khi các ch−ơng trình kết thúc, bộ nhớ giành cho nĩ sẽ bị thu hồi.
1.4.2.3. Sơ đồ hốn đổi (swapping)
Sơ đồ hốn đổi dựa trên nguyên tắc nội dung ch−ơng trình ở trạng thái chờ đợi trong một khoảng thời gian dài sẽ đ−ợc tạm thời chuyển ra bộ nhớ ngồi (swap out) để giải phĩng vùng nhớ cấp phát cho ch−ơng trình khác hoạt động. Khi ch−ơng trình kết thúc trạng thái chờ nĩ sẽ đ−ợc nạp trở lại bộ nhớ trong (swap in) để tiếp tục thực hiện.
Ch−ơng 2 - Vi điều khiển và ngơn ngữ lập trình cho vi điều khiển