Понятия вычислительного процесса, треда, ресурса. Прерывания.
Объяснить понятия task, process, thread
Понятие вычислительного процесса и ресурса является основными при
рассмотрении ОС. Последовательный процесс (задача) – выполнение отдельной
программы. Процессор, являющийся носителем данных выполняет операции
связанные с их обработкой. примеры процессов задач (прикладные программы
пользователей, утилиты). Процессом может быть редактирование текста,
трансляция исходной программы, её компоновка, исполнение.
Thread (поток, тред) 0 легковесный процесс.
У каждого процесса имеется свое адресное пространство и выделенные
ресурсы. Такая обособленность нужна для того, чтобы защитить один процесс
от другого. поскольку они совместно используют все ресурсы вычислительной
системы, конкурируют друг с другом. В общем случае процессы никак не
связаны между собой и могут принадлежать даже различным пользователям. ОС
считает процессы несвязанными и независимыми при этом ОС берет на себя
роль арбитра в конкуренции по поводу ресурсов.
Треды или потоки легковесными эти задачи называют потому, что ОС не
должна для них организовывать полноценную виртуальную машину. Эти задачи не
имеют собственных ресурсов. Они развиваются в том же виртуальном адресном
пространстве, могут пользоваться теми же файлами, виртуальными устройствами
и иными ресурсами, что и данный процесс. Единственное, что необходимо треду
– процессорный ресурс. В однопроцессорной системе треды разделяют между
собой процессорное время также, как это делают обычные процессы. В
мультипроцессорной системе треды могут выполняться одновременно если не
встречают конкуренции из-за обращения к другим ресурсам.
Прерывания представляют собой механизм позволяющий координировать
параллельное функционирование отдельных устройств вычислительной системы и
реагировать на особые состояния возникающие при работе процессора.
Прерывания – это принудительная передача управления от выполняющейся
программы к системе, а через неё к соответствующей программе обработки
прерываний, происходящая при определенном событии. Основная цель введения
прерываний – реализация асинхронного режима работы и распараллеливания
работы отдельных устройств вычислительного комплекса. Механизм прерываний
реализуется аппаратно-программными средствами.
Структуры систем прерываний могут быть самыми различными, но все они
имеют общую особенность – прерывание непременно ведет за собой изменение
порядка выполнения команд процессором. Механизм обработки прерываний
включает в себя следующие элементы:
1. Установление факта прерывания (прием и идентификация сигнала на
прерывание).
2. Запоминание состояния прерванного процесса (состояние процесса
определяется значением счетчика команд, содержимым регистра
процессора, спецификацией режима: пользовательский или
привилегированный)
3. Управление аппаратно передается программе обработки прерывания. В этом
случае, в счетчик команд заносится начальный адрес подпрограммы
обработки прерывания, а в соответствующие регистры из слова
состояния.???
4. Сохранение информации прерванной программе, которую не удалось спасти
с помощью действий аппаратуры.
5. Обработка прерывания. Работа может быть выполнена той же
подпрограммой, которой было передано управление на 3-ем шаге, но в ОС
чаще всего эта обработка реализуется путем вызова соотв. подпрограммы.
6. восстановление информации относящейся к прерванному процессу.
7. Возврат в прерванную программу.
Первые 3 шага реализуются аппаратными средствами, а остальные –
программно.
Главные функции механизма прерывания:
1. Распознавание или классификация прерывания.
2. Передача управления обработчику прерывания.
3. Корректное возвращение к прерванной программе
Прерывания возникающие при работе выч. системы можно разделить на
внешние и внутренние. Внешние прерывания вызываются асинхронными событиями,
которые происходят вне прерываемого процесса. Пример – прерывание от
таймера, прерывание от внешних устройств, прерывание по вводу/выводу,
прерывание по нарушению питания, прерывание с пульта оператора, прерывание
от другого процессора или другой ОС.
Внутренние прерывания вызываются событиями, которые связаны с работой
процессора и являются синхронными с его операциями. Например: при нарушении
адресации (когда указан запрещенный или несуществующий адрес) либо
обращение к отсутствующему сегменту или странице при организации
виртуальной памяти; при наличии в поле кода операции незадействованной
2ичной комбинации; при делении на 0; при переполнении или исчезновения
порядка; при обнаружении ошибок четности, ошибок в работе различных
устройств аппаратуры средствами контроля.
Программные прерывания. Эти прерывания происходят по соответствующей
команде прерывания т. е. по этой команде процессор осуществляет те же
действия, что и при обычных внутренних прерываниях. Данный механизм был
специально введен для того, чтобы переключение на системные программные
модули происходило не просто как переход на подпрограмму, а точно таким же
образом как и в обычных прерываниях. Этим обеспечивается автоматическое
переключения процессора в привилегированный режим с возможностью
исполнения любых команд. Сигналы, вызывающие прерывания, формируются вне
процессора или в самом процессоре, при этом возникать они могут
одновременно. Выбор одного из них для обработки осуществляется на основе
приоритета, приписанных к каждому типу прерывания. Учет приоритета
прерывания может быть встроен в технические средства, а также определяться
ОС.