LINUX.ORG.RU

Виртуальный Scheduler в ОС реального времени. ХЕЛП!!


0

0

Вопрос, надеюсь, что для вас простейший, потому что сам пока не очень понимаю в системном программировании на уровне семафоров и взаимодействия между процессами.

Суть: Есть виртуальный диспетчер задач ОС реального времени, который запущен в любой системе, и де-факто является просто надстройкой над обычной ОС. В нем можно создавать, процессы, удалять, тормозить их и переключать. Главный вопрос, как реализовать переключение между старым и новым процессом. Только не в контексте «как это сделано в шедулере QNX, VxWorks, etc...», а как бы это просто по-хитрей, да попроще сделать в этом курсаче, задание которого - разработать виртуальный диспетчер задач.

http://vosstanie-group.narod.ru/kr2.doc

Вот ссылка на файл. В нем описание задания курсового проекта, но суть не в этом, курсач делать не нужно. Там описание с картинками как устроен по заданию виртуальный диспетчер задач («очередь дескрипторов готовых процессов», «семафоры», «таймеры»). На последней странице этого документа содержится более корректная формулировка моего вопроса на счет «переключения процессов».

Собственно вся соль в вопросе указанном в конце документа «как это сделать в линуксе».

Заранее спасибо. Очень прошу отозваться и помочь. Пиво гарантирую, очень нужно найти ответ на вопрос.

doc-файл с описанием - это очень мило

jtootf ★★★★★
()

Ну, лезть в шедулер из процесса тебе никто не даст, поэтому самый простейший вариант - реализовать эту функцию Transfer через любую подходящую форму IPC - например, сигналы. При получении одного сигнала процесс уходит в sigsuspend() и ждет второго сигнала, который его пробудит. Поэтому для усыпления процесса посылаешь ему один сигнал, для пробуждения - другой.

MuZHiK-2 ★★★★
()

все что нужно сделать топикстартеру - портировать microC OS 2 на Linux и вырезать оттуда все что не нужно (счетные семафоры etc). работы часа на 4.

anonymous
()

До поддержки NPTL ЕМНИП libc использовала свой скедулер потоков. В случае юзерспейс скедулера, как минимум будет геморой с блокирующими сисколами, которые придется менять на асинхронные, так что вперед. %)

frey ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.