
- •Определение, структура программного обеспечения
- •Вычислительной системы
- •Определение, функции операционной системы (ос)
- •Определение, основные принципы построения ос
- •Понятие вычислительного процесса
- •Понятие ресурса
- •Понятие активного процесса. Динамика состояний процесса
- •Понятие потока, мультипрограммирования
- •Идентификация процесса
- •Взаимодействие потоков
- •Классификация процессов
- •Классификация ресурсов
- •Понятие критических секций, основные требования к ним
- •Понятие тупика, условия его возникновения
- •14. Методы борьбы с тупиками. Описание каждого метода
- •15. Виды межпроцессных коммуникаций. Очереди сообщений. Сигналы
- •16. Виды межпроцессных коммуникаций. Конвейер. Сокеты
- •17. Понятие системных часов, таймера
- •18. Планирование выполнения процессов в системах реального времени
- •19. Отображение пространства имен на физическую память компьютера
- •20. Сегментный способ организации виртуальной памяти
- •21. Страничный способ организации виртуальной памяти
- •22. Сегментно-страничный способ организации виртуальной памяти
- •23. Управление памятью вычислительной системы
- •24. Понятие файловой системы
- •25. Особенности файловой системы fat
- •26. Особенности файловой системы ntfs
- •27. Понятие ввода/вывода. Основные задачи супервизора ввода/вывода
- •28. Режимы ввода/вывода, их характеристика
- •29. Процесс управления вводом/выводом
- •30. Понятие микроядерной операционной системы
- •В пользовательское пространство
- •31. Понятие монолитной операционной системы
- •32. Классификация операционных систем
- •33. Особенности сетевых и распределенных операционных систем
- •34. Понятие прерывания. Механизм обработки прерываний
- •35. Синхронные и асинхронные прерывания
- •36. Дисциплины диспетчеризации
- •37. Понятие утилиты. Виды утилит
- •38. Понятие компилятора, интерпретатора, отладчика, компоновщика, байт-кода
- •39. Виды систем защиты программного обеспечения
- •40. Показатели применимости и критерии оценки систем защиты программного обеспечения
Классификация процессов
Последовательный процесс (или задача) – это выполнение отдельной программы с её данными на последовательном процессоре. Также в литературе встречается другое определение процесса. Процесс – минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа).
В качестве примеров можно назвать следующие процессы (задачи): прикладные программы пользователей, утилиты и другие системные обрабатывающие программы.
Классификация процессов по временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени. Время существования интерактивного процесса определяется реакцией ЭВМ на запрос обслуживания и составляет секунды. Процессы реального времени имеют гарантированное время окончания работы и время реакции миллисекунды. Пакетные процессы запускаются один вслед за другим и время реакции часы и более.
По генеалогическому признаку различают порождающее (родительские) и порожденные (дочерние) процессы. Так, в ОС Linux, многие процессы порождаются главным процессом init, создаваемым во время загрузки ядра (рис. 5.1). Процесс login отвечает за аутентификацию пользователей в операционной системе, требуя от пользователя ввести свое имя и пароль. После прохождения пользователем аутентификации с помощью процесса login, он порождает процесс оболочки, например, bash (Вourne-again shell), дающий возможность пользователю взаимодействовать с операционной системой (рис. 5.1). После этого пользователь может задавать команды в оболочке командной строки, например, запустить программу vi (текстовый редактор) или другие.
Рис. 5.1.
По результативности различают эквивалентные, тождественные и равные процессы. Все они имеют одинаковый конечный результат, но эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Одинаковые процессы реализуются по одной программе и имеют одинаковые трассы.
По времени развития процессы делятся на последовательные, параллельные и комбинированные (для последних есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс).
По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские. Необходимо различать системные управляющие процессы, представляющие работу супервизора операционной системы и занимающиеся распределением и управлением ресурсов, от всех других процессов: системных обрабатывающих процессов, которые не входят в ядро операционной системы, и процессов пользователя. Для системных управляющих процессов в большинстве операционных систем ресурсы распределяются изначально и однозначно. Эти процессы управляют ресурсами системы, за использование которых существует конкуренция между всеми остальными процессами. Поэтому исполнение системных управляющих программ не принято называть процессами. Термин задача можно употреблять только по отношению к процессам пользователей и к системным обрабатывающим процессам. Однако это справедливо не для всех ОС. Например, в так называемых «микроядерных» ОС (в качестве примера можно привести ОС реального времени QNX) большинство управляющих программных модулей самой ОС и даже драйверы имеют статус высокоприоритетных процессов, для выполнения которых необходимо выделить соответствующие ресурсы. Аналогично и в UNIX-системах выполнение системных программных модулей тоже имеет статус системных процессов, которые получают ресурсы для своего исполнения.
По связности различают процессы:
а) взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную);
б) изолированные – слабо связанные;
в) информационно-независимые, которые используют совместные ресурсы, но имеют собственные информационные базы;
г) взаимодействующие – имеют информационные связи и разделяют общие структуры данных;
е) конкурирующие.
Порядок взаимосвязи процессов определяется правилами синхронизации. Процессы могут находиться в отношении:
а) предшествования – один всегда находится в активном состоянии раньше, чем другой;
б) приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или процессор свободен, или на нем реализуется процесс с меньшим приоритетом;
в) взаимного исключения – в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания.