- •Структура и основные компоненты вычислительной системы
- •Структура эвм:
- •Система прерываний.
- •Алгоритм чтения из оперативной памяти следующий:
- •Понятие ос
- •1. Классификация операционных систем
- •2. Особенности областей использования операционных систем
- •3. Управление процессами
- •3.1. Состояние процессов
- •3.2. Алгоритмы планирования процессов
- •3.3. Вытесняющие и невытесняющие алгоритмы планирования
- •3.4. Функции планировщика-диспетчера
- •3.4.1 Приостановка процесса
- •3.4.2. Отсрочка процесса
- •3.4.3. Активизация процесса
- •3.4.4. Ведущие и разделяемые процессами планировщики-диспетчеры
- •4. Средства синхронизации и взаимодействия процессов
- •4.1. Проблема синхронизации
- •4.2. Критическая секция
- •4.3. Синхронизация процессов на основе семафорных операций
- •5. Управление памятью
- •5.1. Типы адресов
- •5.2. Методы распределения памяти с использованием дискового пространства. Виртуальная память
- •5.3. Страничное распределение
- •5.4. Сегментное распределение
- •5.5. Сегментно-страничное распределение
- •5.6. Свопинг
- •5.7. Процессы и нити в распределенных системах
- •Машинные языки Какие у машинных языков достоинства и недостатки?
- •Что такое язык ассемблера?
- •В чем преимущества алгоритмических языков перед машинными?
- •Формализация типов ос (классификация) ос
5.6. Свопинг
Разновидностью виртуальной памяти является свопинг.
На рисунке 26 показан график зависимости коэффициента загрузки процессора в зависимости от числа одновременно выполняемых процессов и доли времени, проводимого этими процессами в состоянии ожидания ввода-вывода.
Рис. 26. Зависимость загрузки процессора от числа задач и интенсивности ввода-вывода
Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех счетных задач. Однако для того, чтобы обеспечить такую же загрузку интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются десятки таких задач. Необходимым условием для выполнения задачи является загрузка ее в оперативную память, объем которой ограничен. В этих условиях был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс.
При свопинге, в отличие от рассмотренных ранее методов реализации виртуальной памяти, процесс перемещается между памятью и диском целиком, то есть в течение некоторого времени процесс может полностью отсутствовать в оперативной памяти. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.
5.7. Процессы и нити в распределенных системах
В традиционных ОС понятие нити тождественно понятию процесса. В действительности желательно иметь несколько нитей управления, разделяющих единое адресное пространство, но выполняющихся квазипараллельно.
Предположим, например, что файл-сервер блокируется, ожидания выполнения операции с диском. Если сервер имеет несколько нитей управления, вторая нить может выполняться, пока первая нить находится в состоянии ожидания. Это повышает пропускную способность и производительность. Эта цель не достигается путем создания двух независимых серверных процессов, потому что они должны разделять общий буфер кэша, который требуется им, чтобы быть в одном адресном пространстве.
На рисунке 27,а показана машина с тремя процессами. Каждый процесс имеет собственный программный счетчик, собственный стек, собственный набор регистров и собственное адресное пространство. Каждый процесс не должен ничего делать с остальными, за исключением того, что они могут взаимодействовать посредством системных примитивов связи, таких как семафоры, мониторы, сообщения. На рисунке 27,б показана другая машина с одним процессом. Этот процесс состоит из нескольких нитей управления, обычно называемых просто нитями или иногда облегченными процессами. Во многих отношениях нити подобны мини-процессам. Каждая нить выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Нити разделяют процессор так, как это делают процессы (разделение времени). Только на многопроцессорной системе они действительно выполняются параллельно. Нити могут, например, порождать нити-потомки, могут переходить в состояние ожидания до завершения системного вызова, как обычные процессы, пока одна нить заблокирована, другая нить того же процесса может выполняться.
Рис. 27. а) три процесса с одной нитью каждый; б) один процесс с тремя нитями
Нити делают возможным сохранение идеи последовательных процессов, которые выполняют блокирующие системные вызовы (например, RPC для обращения к диску), и в то же время позволяют достичь параллелизма вычислений. Блокирующие системные вызовы делают проще программирование, а параллелизм повышает производительность.