Материал операционной системы - PullRequest
0 голосов
/ 09 февраля 2012

Я хочу понять, что происходит в стеке процессов, различных сегментах и ​​т. Д., Когда происходит переключение контекста между процессами и потоками.В основном я хочу знать, как каждый сегмент изменяется между переключениями контекста в параллельном программировании.Как лучше всего прочитать об этом?Можете ли вы предложить учебники или видео для операционных систем?

Я не уверен, правильно ли я сформулировал свой вопрос, дайте мне знать. Пожалуйста, предложите.

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Вероятно, лучше всего начать читать код для определенных операционных систем:

Функция kernel/sched.c ядра Linux sched_fork(), вероятно, является хорошим местом для начала чтения; он запускает совершенно новую задачу, поэтому мне кажется, что он дает вам хороший обзор внутренних функций планировщика и управления памятью задач.

Функция sys/kern/sched.c ядра FreeBSD sched_switch() напрямую переключается между текущим процессом и следующим процессом; это, вероятно, легче читать, чем вариант Linux.

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

Веб-сайт FXR позволяет легко следить код в различных операционных системах. (Спасибо, Роберт, если вы читаете!) Из списка FXR я бы предложил изучить Plan9, Minix и OpenSolaris - они дальше от дерева FreeBSD, чем другие, более связанные, производные от BSD дистрибутивы.

0 голосов
/ 10 февраля 2012

Начните с Руководства по системному программированию Intel 3A, если вы хотите понять уровень ч / б.Затем перейдите к исходному коду ядра Linux и, как сказал sarnold.

0 голосов
/ 09 февраля 2012

Вы задали довольно загруженный вопрос.Я рекомендую вам начать с учебника и продолжить свой путь оттуда.Книга, почти всегда используемая студентом по информатике:

Основные понятия операционной системы

...