
- •1. Виды ресурсов и возможности их разделения
- •2. Процессы и потоки.
- •3. . Память и отображения, виртуальное адресное пространство
- •4. Сегментная, страничная и сегментно-страничная организация памяти
- •5. Основные системные таблицы ввода-вывода
- •6. Файловая система fat
- •7. Понятие тупиковой ситуации при выполнении параллельных вычислительных процессов
- •8. Методы борьбы с тупиками
- •9. Открытость и безопасность операционных систем.
1. Виды ресурсов и возможности их разделения
• Термин ресурс обычно применяется по отношению к многократно используемым, относительно стабильным и часто недостающим объектам, которые запрашиваются, задействуются и освобождаются в период их активности. Другими словами, ресурсом называется всякий объект, который может распределяться внутри системы.
• Ресурсы могут быть разделяемыми, когда несколько процессов используют их одновременно (в один и тот же момент времени) или параллельно (попеременно в течение некоторого интервала времени), а могут быть и неделимыми (рис. 1.).
• Основные виды ресурсов вычислительной системы:
• 1. Процессор, точнее — процессорное время. Процессорное время делится попеременно (параллельно).
• 2. Память. Оперативная память может делиться и одновременно, и попеременно. Внешняя память может разделяться и одновременно, а доступ к ней всегда разделяется попеременно.
• 3. Внешние устройства, как правило, могут разделяемыми и выделенными.
• 4. Программные модули (прежде всего, системные). Могут быть однократно и многократно используемыми. Однократно используемые могут быть правильно выполнены только один раз, являются неделимым ресурсом. Повторно используемые программные модули могут быть непривилегированными, привилегированными и реентерабельными.
• Привилегированные программные модули работают при отключенной системе прерываний. Непривилегированные программные модули могут быть прерваны во время своей работы (нельзя считать разделяемыми). В реентерабельных модулях обеспечено сохранение промежуточных результатов для прерываемых вычислений.
• Существуют еще повторно входимые программные модули. Они состоят привилегированных секций.
• 5. Информационные ресурсы, в качестве ресурсов могут выступать данные как в виде переменных, находящихся в оперативной памяти, так и в виде файлов. Информационные ресурсы можно разделять, если они используются только для чтения.
2. Процессы и потоки.
• Мультипрограммный режим предполагает, что операционная система организует выполнение нескольких вычислительных процессов на одном компьютере, и каждый вычислительный процесс не зависит от другого процесса.
• Термин мультизадачный режим работы стали применять как раз для тех случаев, когда необходимо обеспечить взаимодействие между вычислениями.
• Понятие процесса было введено для реализации идей мультипрограммирования.
• Для реализации мультизадачности было введено понятие легковесные (thin) процессы, или, как их теперь называют, потоки выполнения, нити, или треды (threads).
• Когда говорят о процессах (process), то хотят отметить, что операционная система поддерживает их обособленность. Потоки обеспечивают внутренний параллелизм, который может быть в самих процессах.
• Каждый поток выполняется строго последовательно и имеет свой программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-потомки, поскольку любой процесс состоит, по крайней мере, из одного потока. Подобно традиционным процессам, каждый поток может находиться в одном из активных состояний. Пока один поток заблокирован, другой поток того же процесса может выполняться. Потоки разделяют процессорное время, как и обычные процессы. Потоки имеют одно виртуальное адресное пространство свого процесса, разделяют глобальные переменные.
• В отличие от процессов, между потоками нет полной защиты. Все потоки одного процесса всегда решают общую задачу пользователя.