Hallo,
wir sollen Prozesse erzeugen, diese manuell pausieren und fortsetzen können und als zweite Aufgabenstellung die laufenden Prozesse dann mit einem Scheduler "managen" (Round Robin).
Die Prozesse sollen wir allerdings nicht per fork() erzeugen, sondern die Prozesse sollen wir "simulieren" indem wir in dem Hauptprogramm andere Programme ausführen. Das heißt ich hab irgendwie meine main.cpp , aus dieser führe ich dann ein Beispielprogramm bla.cpp mit execve() aus, was dann ein neuer Prozess ist. Dann muss ich irgendwie in der main.cpp speichern wie weit der Programmzähler in der bla.cpp ist, denn ich will den Prozess ja auch pausieren können und zum späteren Zeitpunkt dort fortsetzen können wo er zuletzt aufgehört hat.
Weiß wer wie das geht? In der Aufgabenstellung steht an sich nicht direkt was von execve() , sondern sowas:
Jeder simulierte Prozess führt ein Programm aus. Die Programme werden aus Linux-Dateien gelesen und im Befehlsspeicher gespeichert. Wenn ein neuer Prozess simuliert wird, wird zuerst seine Programm-Datei gelesen und gespeichert werden.
Klar ich kann das bla.cpp Programm mittels read(), write() auslesen und von mir aus in einen String speichern. Aber ich glaub nicht das ich dann diesen String in meinem Hauptprogramm irgendwie befehl für befehl ausführen kann?
Hat da wer nen tipp?