- •Курсовая работа
- •Порождение процессов
- •Взаимодействие процессов
- •1 Теоретический вопрос «Процессы в ос Windows и ос Unix» 4
- •2 Решение задачи «Об обедающих философах» 10
- •3 Список использованных источников 17
- •1 Теоретический вопрос «Процессы в ос Windows и ос Unix» 4
- •2 Решение задачи «Об обедающих философах» 10
- •3 Список использованных источников 17
- •Теоретический вопрос «Процессы в ос Windows и ос Unix»
- •Процессы и потоки в ос Windows
- •Завершение процессов
- •Потоки в операционных системах Windows
- •Процессы и потоки в ос unix
- •Порождение процессов
- •Взаимодействие процессов
- •Завершение процессов
- •Потоки в операционных системах unix
- •Выводы по процессам и потокам ос Windows и ос Unix
- •Решение задачи «Об обедающих философах»
- •Постановка задачи
- •Построение сетевой модели задачи
- •Листинг процедур решения задачи
- •Результат выполнения программы решения задачи
- •Список использованных источников
Завершение процессов
В операционных системах семейства Windows завершение процесса производится функцией ExitProcess. Причинами завершения процесса может быть завершение работы программы, использующей данный процесс, обнаружение процессом фатальной ошибки, ошибка, вызванная самими процессом, связанная с ошибкой в программе и выполнение процессом системного вызова, приказывающего операционной системе завершить некоторые другие процессы. В Windows при завершении процесса не завершаются все созданные им процессы. [4, С. 118]
Потоки в операционных системах Windows
Для порождения и завершения потоков в операционных системах семейства Windows используются функции CreateThread и ExitThread. При создании процесса Windows по умолчанию создается один поток, который называется главным (основным) потоком приложения. Так как всегда потоков больше, чем физических процессоров для их выполнения, то потоки выполняются не одновременно, а по очереди. [2]
Основные составляющие потока в исполнительной системе NT:
Уникальный идентификатор, называемый идентификатором клиента
Содержимое набора регистров, отражающее состояние процессора
Два стека: один используется потоком при работе в пользовательском режиме, а другой – в режиме ядра
Собственная область памяти, предназначенная для использования подсистемами, библиотеками периода выполнения и динамически подключаемыми библиотеками (DLL). [3]
Фактически, в операционных системах Windows выполняются не процессы, а потоки, поэтому взаимодействие потоков равноценно взаимодействию процессов с тем условием, что потоки одного процесса выполняются только в адресном пространстве этого процесса. [2]
Процессы и потоки в ос unix
Порождение процессов
В UNIX для создания нового процесса используется системный вызов fork. Этот вызов создает точную копию вызывающего процесса. После выполнения системного вызова fork два процесса, родительский и дочерний, имеют единый образ памяти, единые строки описания конфигурации и одни и те же открытые файлы. Смысл этого двухступенчатого процесса заключается в том, чтобы позволить дочернему процессу управлять его файловыми дескрипторами после разветвления. [4, С. 117]
Взаимодействие процессов
Поскольку OC UNIX является многозадачной ОС, то необходимо параллельное выполнение нескольких процессов. При этом актуальной является проблема управления взаимодействием процессов. Для управления взаимодействием процессов в фазе "пользователь", OC UNIX предоставляет средства внешней синхронизации и коммуникации процессов.
Чтобы обеспечить возможность внешней синхронизации процессов в фазе "пользователь" OC UNIX имитирует для каждого процесса систему программных прерываний, называемых сигналами. Сигнальный механизм позволяет процессу реагировать на различные события, моменты появления которых не могут быть заранее предусмотрены.
Под коммуникацией процессов в OC UNIX понимается реализация обмена данными между параллельно выполняющимися процессами. Способом такого взаимодействия процессов является обмен данными через файл, когда два или более процессов записывают данные в некоторый файл, выбранный по договоренности, другие процессы читают данные из этого файла. Для коммуникации процессов через файл характерны следующие проблемы.
Ограничения по объему файла обмена.
Ограничение прав доступа к файлу обмена.
Отсутствие синхронизации при обмене.
Возможность искажения или потери данных через в файле независимо от процессов, которые используют его для обмена.
Время существования файла обмена не зависит от времени жизни использующих его процессов, поэтому данные в файле продолжают сохраняться и тогда, когда их никто не использует.
