Добрый день.
Дописываю мультизадачность. Функция создания нового процесса кажется работает верно. Я пробовал создавать процессы, проверял директории страниц, переключаются ли и защищены ли. Вроде все работает. Но возникла трудность после. Я скомпилировал парочку elf программ, в которых просто циклично вызывается системный вызов печати на экран. Работает верно. Добавил системный вызов fork, вызвал из одной скомпилированной программы и получил какую то ерунду. Родительский процесс из которого собственно и был вызван fork продолжает работу. Форк создал новый процесс и почему то вернул ноль два раза. Это крайне странно. В добавок условие после форка вызова форка, которое проверяет родительский или дочерний процесс, не выполняется в теле условия с дочерним процессом, а с родительским - выполняется. Следовательно после вызова форка он туда вовсе не вернулся. Даже примерно не могу предположить что пошло не так.
|