Facebook
From Filip, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 208
  1. #include <iostream>
  2. #include <vector>
  3.  
  4.  
  5.  
  6. struct Process
  7. {
  8.         int processID;
  9.         std::string processName;
  10.         int processState; //0=virgin, 1=running, 2=ready, 3=waiting, 4=terminated;
  11.        
  12.         Process* parent; //procesy przedstawiają drzewo, gdzie rodzic jest procesem macierzystym
  13.         std::vector<Process*> children; //a dzieci jego procesami potomnymi
  14.  
  15.         int regA;    // 4 rejestry procesora
  16.         int regB;
  17.         int regC;
  18.         int regD;
  19.        
  20.         int programCounter; //bieżąca czynność (wskazana przez licznik rozkazów)
  21.         std::string programData; //kod programu
  22.         std::string programText; //kod programu
  23.         int programSize;
  24.         Process* programPosition;
  25.         bool processBlocked;
  26.  
  27.         Process(int ID, std::string name, int fatherID)
  28.         {
  29.                 processState = 0;
  30.                 processBlocked = false;
  31.                 processID = ID;
  32.         }
  33. };
  34.  
  35. struct RAM //przykładowa tablica pamięci RAM
  36. {
  37.         int Ram[128];
  38. };
  39.  
  40. struct ProcessManagment
  41. {
  42.         Process* init; //proces, który wytwarza się przy startowaniu systemu
  43.         RAM* ram; //tablica pamięci od zarządzania pamiecią
  44.        
  45.         ProcessManagment()
  46.         {
  47.                 init->processID = 0;
  48.                 init->processName = "init";
  49.                 init->parent = nullptr;
  50.         }
  51.  
  52.         int FindID(); //wyszukaj wolne ID
  53.         bool ProcessIsExecuted(std::string name); //zaznacza czy proces jest w trakcie wykonywania
  54.  
  55.         void AddProcess(std::string name);
  56.         void Fork(std::string name, int parentID); //dodaj proces potomny
  57.  
  58.         void KillProcess(int ID); //zabij process
  59.         void FreezeProcess(int ID); //wstrzymaj wykonywanie procesu, np. gdy czeka na zasoby
  60.         void UnFreezeProcess(int ID); //przywróć działanie procesu
  61.         void PrintProcess(int ID); //wyświetl właściwości procesu
  62.         void PrintAllProcesses(); //wyświetla wszystkie procesy
  63. };
  64.  
  65. int main()
  66. {
  67.        
  68.  
  69.  
  70.  
  71.  
  72.  
  73.         return 0;
  74. }