Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แก้ไขพาร์ติชั่น (หรือสแตติก) ในระบบปฏิบัติการใน C ++


ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับการแบ่งพาร์ติชั่นแบบตายตัวในระบบปฏิบัติการ

แก้ไขการแบ่งพาร์ติชั่น เป็นตัวจัดการหน่วยความจำในระบบปฏิบัติการ เป็นเทคนิคเก่า มันแบ่งหน่วยความจำออกเป็นบล็อกเท่า ๆ กัน ขนาดของแต่ละบล็อกถูกกำหนดไว้ล่วงหน้าและไม่สามารถเปลี่ยนแปลงได้

หน่วยความจำใช้สำหรับกระบวนการที่ต่อเนื่องกัน

ตัวอย่าง

มาดูตัวอย่างโปรแกรมที่จัดสรรหน่วยความจำตามขนาดกระบวนการกัน

#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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น