Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Phân vùng cố định (Static Partitioning) trong Hệ điều hành C++

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về phân vùng cố định (fixed partitioning) - một kỹ thuật quản lý bộ nhớ cổ điển trong hệ điều hành.

Khái niệm

Phân vùng cố định chia bộ nhớ thành các khối (blocks) có kích thước định trước và không thay đổi. Mỗi tiến trình được cấp phát một khối đủ lớn để chứa nó. Kỹ thuật này đơn giản nhưng gây phân mảnh nội bộ (internal fragmentation).

Mã nguồn minh họa

#include <iostream>
using namespace std;

int main() {
    int blockNumber = 5, processesNumber = 3;
    int blockSize[5] = {4, 4, 4, 4, 4};
    int processSize[3] = {1, 2, 3};
    int flags[5], allocation[5];

    for (int i = 0; i < 5; i++) {
        flags[i] = 0;
        allocation[i] = -1;
    }

    // Cấp phát khối cho tiến trình (First Fit)
    for (int i = 0; i < processesNumber; i++) {
        for (int j = 0; j < blockNumber; j++) {
            if (flags[j] == 0 && blockSize[j] >= processSize[i]) {
                allocation[j] = i;
                flags[j] = 1;
                break;
            }
        }
    }

    for (int i = 0; i < blockNumber; i++) {
        if (flags[i] == 1) {
            cout << "Tiến trình " << processSize[allocation[i]] << " được cấp phát" << endl;
        }
    }
    return 0;
}

Kết quả đầu ra

Tiến trình 1 được cấp phát
Tiến trình 2 được cấp phát
Tiến trình 3 được cấp phát

Kết luận

Ví dụ minh họa thuật toán First Fit trong phân vùng cố định. Các tiến trình được cấp phát vào các khối đầu tiên phù hợp. Nếu bạn có thắc mắc, hãy để lại bình luận bên dưới.