ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับการแบ่งพาร์ติชั่นแบบตายตัวในระบบปฏิบัติการ
แก้ไขการแบ่งพาร์ติชั่น เป็นตัวจัดการหน่วยความจำในระบบปฏิบัติการ เป็นเทคนิคเก่า มันแบ่งหน่วยความจำออกเป็นบล็อกเท่า ๆ กัน ขนาดของแต่ละบล็อกถูกกำหนดไว้ล่วงหน้าและไม่สามารถเปลี่ยนแปลงได้
หน่วยความจำใช้สำหรับกระบวนการที่ต่อเนื่องกัน
ตัวอย่าง
มาดูตัวอย่างโปรแกรมที่จัดสรรหน่วยความจำตามขนาดกระบวนการกัน
#include<iostream>
using namespace std;
int main() {
int blockNumber = 5, processesNumber = 3;
int blockSize[5] = {4, 4, 4, 4, 4}, processSize[3] = {1, 2, 3};
int flags[5], allocation[5];
for(int i = 0; i < 5; i++) {
flags[i] = 0;
allocation[i] = -1;
}
// allocating the blocks to processes
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 << "Process " << processSize[allocation[i]] << " is allocated" << endl;
}
}
return 0;
} ผลลัพธ์
หากคุณรันโปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
Process 1 is allocated Process 2 is allocated Process 3 is allocated
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น