ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับการแบ่งพาร์ติชั่นแบบตายตัวในระบบปฏิบัติการ
แก้ไขการแบ่งพาร์ติชั่น เป็นตัวจัดการหน่วยความจำในระบบปฏิบัติการ เป็นเทคนิคเก่า มันแบ่งหน่วยความจำออกเป็นบล็อกเท่า ๆ กัน ขนาดของแต่ละบล็อกถูกกำหนดไว้ล่วงหน้าและไม่สามารถเปลี่ยนแปลงได้
หน่วยความจำใช้สำหรับกระบวนการที่ต่อเนื่องกัน
ตัวอย่าง
มาดูตัวอย่างโปรแกรมที่จัดสรรหน่วยความจำตามขนาดกระบวนการกัน
#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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น