Миграция процессов в ОС xv6

Я хочу написать программу, которая может сохранять состояние процесса, когда он выходит из файла, и другую программу, чтобы перезагрузить состояние этого процесса и запустить его, если он оставлен в ОС xv6. Что-то вроде сохранения состояния процессов, когда вы переключаетесь между процессами в планировщике.

Но проблема в том, что я новичок в ОС xv6 и понятия не имею, с чего начать. Я думаю, что могу сделать часть сохранения, но я не знал, как можно перезагрузить состояние процесса в ЦП и запустить его.

Может ли кто-нибудь помочь мне с некоторыми ресурсами для начала?
Любая помощь с программированием xv6 была бы хорошей.


person Sparrow7000    schedule 11.01.2016    source источник
comment
Может быть, чтение proc.c вам поможет !! Все дело в том, чтобы снова прочитать сохраненный файл, вернуть его в ptable и изменить состояние на runnable.   -  person Sarah Akhavan    schedule 15.01.2016


Ответы (1)


До сих пор я понимал, что мне нужно написать два новых системных вызова и добавить их в ядро ​​ОС xv6. Таким образом, с помощью одного системного вызова я могу сохранить состояние процесса, а с помощью другого - перезагрузить предыдущее состояние и продолжить.
Файлы ядра ОС, которые необходимо изменить, упоминаются в этом посте https://stackoverflow.com/a/13205101/3057558.
Если вы проверите файлы, вы поймете, какие строки нужно изменить.

person Sparrow7000    schedule 16.01.2016