
- •Курсовая работа
- •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 завершение процесса производится системным вызовом exit. Причинами завершения процесса может быть завершение работы программы, использующей данный процесс, обнаружение процессом фатальной ошибки, ошибка, вызванная самими процессом, связанная с ошибкой в программе и выполнение процессом системного вызова, приказывающего операционной системе завершить некоторые другие процессы. В UNIX как и в Windows при завершении процесса не завершаются все созданные им процессы. [4, С. 118]
Потоки в операционных системах unix
Потоки отсутствовали в оригинальной архитектуре UNIX и были добавлены под влиянием современных архитектур персональных компьютеров, в которых переключение контекста исполнения между процессами занимает значительно большее время, чем переключение контекста исполнения между потоками. Однако ценой эффективного переключения между потоками является сильное влияние потоков в рамках одного процесса друг на друга (критическая ошибка в одном потоке приводит к завершению всего процесса), поэтому в UNIX-системах потоки традиционно используются редко. [2]
Выводы по процессам и потокам ос Windows и ос Unix
В операционных системах Windows и UNIX используются похожие функции для порождения и завершения процессов (CreateProcess/fork и ExitProcess/exit).
В обеих операционных системах важной является задача взаимодействия процессов, так как и Windows и Unix – многозадачные операционные системы.
В операционных системах семейства UNIX потоки отсутствовали в оригинальной архитектуре и были добавлены под влиянием современных архитектур персональных компьютеров, поэтому используются гораздо реже, чем в ОС Windows.
Решение задачи «Об обедающих философах»
Постановка задачи
В 1965 году Дейкстра сформулировал и решил проблему синхронизации, названную им задачей обедающих философов.
Пять философов сидят за круглым столом и у каждого из них есть тарелка спагетти. Эти спагетти настолько скользкие, что есть их можно только двумя вилками. Между каждыми двумя тарелками лежит одна вилка. Внешний вид стола показан на рисунке 3.
Рисунок 3 – Обеденный стол философов
Жизнь философа состоит из чередующихся периодов приема пищи и размышлений. (Это положение из разряда абстракции даже в отношении философов, но вся их остальная деятельность к задаче не относится.) Когда философ становится голоден, он старается поочередно в любом порядке завладеть правой и левой вилкой. Если ему удастся взять две вилки, он на некоторое время приступает к еде, затем кладет обе вилки на стол и продолжает размышления. [4, С. 203-204]
Построение сетевой модели задачи
Сетевая модель, представляющая задачу «обедающие философы», изображена на рисунке 4. Интерпретация элементов сетевой модели следующая. Маркированная позиция М[i] – i-й философ находится в состоянии размышления, маркированная позиция Е[i] – i-й философ находится в состоянии потребления пищи. Позиция R[j] определяет наличие или отсутствие на столе j-й вилки: если позиция маркирована, то вилка лежит на столе, если не маркирована, то вилка взята и находится в руке философа. Переход GET[i] интерпретируется как взятие i-м философом соседних вилок и переход из состояния размышления к еде. Переход PUT[i] интерпретируется как возврат i-м философом левой и правой вилок и переход от еды к размышлению.
Рисунок 4 – Сетевое представление задачи об "обедающих философах"
Следует отметить, что представленная сеть может моделировать различные ситуации из различных проблемных областей.