OSDev http://osdev.su/ |
|
Создание нового процесса в пользовательском режиме http://osdev.su/viewtopic.php?f=6&t=3811 |
Страница 1 из 1 |
Автор: | Sebt [ 21 июл 2019, 17:43 ] |
Заголовок сообщения: | Создание нового процесса в пользовательском режиме |
Добрый день. Дописываю мультизадачность. Функция создания нового процесса кажется работает верно. Я пробовал создавать процессы, проверял директории страниц, переключаются ли и защищены ли. Вроде все работает. Но возникла трудность после. Я скомпилировал парочку elf программ, в которых просто циклично вызывается системный вызов печати на экран. Работает верно. Добавил системный вызов fork, вызвал из одной скомпилированной программы и получил какую то ерунду. Родительский процесс из которого собственно и был вызван fork продолжает работу. Форк создал новый процесс и почему то вернул ноль два раза. Это крайне странно. В добавок условие после форка вызова форка, которое проверяет родительский или дочерний процесс, не выполняется в теле условия с дочерним процессом, а с родительским - выполняется. Следовательно после вызова форка он туда вовсе не вернулся. Даже примерно не могу предположить что пошло не так. |
Автор: | Himik [ 21 июл 2019, 19:37 ] |
Заголовок сообщения: | Re: Создание нового процесса в пользовательском режиме |
Так и должно быть, потому что родительскому и дочернему процессу возвращаются разные значения. Родительскому - номер дочернего процесса, а дочернему процессу только 0. Поэтому и условие по результату функции отрабатывает по-разному. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |