Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_ОС.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.9 Mб
Скачать

1. Назначение и функции операционных систем. Принципы построения опе­рационных, систем.

Операционная система - совокупность программных средств, обеспечивающих управление аппаратными ресурсами вычислительной системы и взаимодействием программных процессов с аппаратурой, другими процессами и пользователем.

Функции операционных систем.

1. Обеспечение интерфейса пользователя.

2. Управление вычислительными процессами.

3. Управление хранением данных.

4. Управление вводом и выводом информации.

5. Обеспечение пользователей средствами разработки программ.

6. Сервисное обслуживание - тестово-диагностические программы и т.п.

Типы ОС

Принципы построения операционных систем.

1. Принцип модульности.

Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему оп­ределению модуль предполагает возможность без труда заменить его на другой при наличии заданных интерфейсов. Модули строятся по функциональному принципу, особую роль играет возможность многократного вызова одного и того же модуля.

2. Принцип функциональной избирательности.

В операционной системе выделяется некоторая часть важных модулей, которые должны постоянно находиться в оперативной памяти для более эффективной организации вычисли­тельного процесса. Эту часть называют ядром, ядро явл-ся резидентным. Помимо программных модулей, входящих в состав ядра, может быть много других системных программных модулей, которые получают название подгружаемые (транзитные). Они загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями.

3. Принцип генерируемости. ОС должна иметь возможность настраиваться на определенную конфигурацию аппаратуры. Эта процедура проводится обычно при установке.

4. Принцип функциональной избыточности.(ф-ции могут выполняться разными способами)

Этот принцип учитывает возможность проведения одной и той же работы различными средствами.

5. Принцип умолчания.Некоторые параметры операционной системы могут устанавливаться по умолчанию.

6. Принцип (мобильности) переносимости.Операционная системы относительно легко должна переноситься с аппаратной платфор­мы одного типа на аппаратную платформу другого типа.

7. Принцип обеспечения безопасности вычислений.

а) защита операционной системы от прикладных программ;

б) защита прикладных процессов друг от друга;

в) защита данных от несанкционированного доступа.

8. Принцип открытой и наращиваемой операционной системы.

Открытая операционная система доступна для анализа, как пользователям, так и систем­ным специалистам, обслуживающим вычислительную систему. Наращиваемая операцион­ная система позволяет не только использовать возможности генерации, но и вводить в ее со­став новые модули, совершенствовать существующие и т.д.

9) частотный принцип (учитывает наиболее часто выполняемые действия и для них создает наиболее благоприятный режим)

2. Понятие и состояния процесса. Свойства процессов. Долгосрочное и краткосрочное планирование процессов. Дисциплины формирования очередей и дисциплины обслуживания. Приоритеты. Типовые задачи синхронизации параллельных процессов. Тупики.

«Вычислительный процесс» (или просто «процесс») -это некоторая система действий, реализующая какую-либо функцию и рассматриваемая ОС как некая единица работы. Отождествляется с выполнением программы. Процесс имеет собственное адресное пространство. Процесс проходит во времени через разные фазы. Это связано с изменениями в состояниях процесса.

Порождение - подготовка к исполнению процесса (создание виртуальной машины).

Готовность - процесс получил все ресурсы для исполнения, ожидает выделение ему времени центрального про­цессора.

Активность - исполнение процесса на процессоре.

Ожидание - ожидание выделения некоторых ресурсов.

Завершение - окончание процесса (нормальное или аварийное) – уничтожение виртуальной машины.

При порождении требуется выделение всех необходимых ресурсов. Из состояния готовности процесс может перейти в состояние ожидания или завершения.

● внутренние и внешние

● С точки зрения операционной системы процессы могут быть системными и пользовательскими.

● По генетическому признаку - порожденные (дочерние) и порождаемые (родительские).

● По динамическому признаку - последовательные, параллельные и комбинированные (про­цессы, в которых существу ют точки, где возможно существование одного параллельного про­цесса и невозможно существование другого).

● По связности - процессы изолированные, т.е. полностью независимые друг от друга; инфор­мационно независимые (не зависимые по данным, но используют некие общие ресур­сы); взаимодействующие (имеют информационные связи между собой); конкурирующие (име­ют и информационные связи и используют одни и те же ресурсы).

На каждый процесс заводится специальная структура – дескриптор процесса. Он содержит PID, таблицу адресов памяти процесса, приоритет процесса, текущее состояние процесса, информацию о событиях, связанных с этим процессом, контекст процесса (состояние регистра). Дескрипторы обычно постоянно располагаются в ОП, организуются в очереди, перемещаются из одной очереди в другую при изменении состояния процесса.

Долгосрочное и краткосрочное планиро­вание процессов.

Основным подходом к организации того или иного метода управления процессами, обеспе­чивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов.

Возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе ресурсов. Такая задача называется пла­нированием вычислительных процессов.

Все управление процессами строится по двухуровневому принципу:

1. Уровень долгосрочного планирования - управление на уровне задания и задачи.

2. Уровень краткосрочного планирования - поддержка процесса в его основных фазах.

При долгосрочном планировании решается, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти. При этом выбираются процессы из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых к выполнению процессов должны находиться - в разной пропорции - как процессы, ориентированные на ввод/вывод, так и процессы, ориентированные преимущественно на работу с центральным процессором.

Долгосрочное планирование связано с созданием виртуальной машины и дескрипторов про­цессов (информация о идентификаторе процесса, о ресурсах, которые затребованы или исполь­зуются процессом, о состоянии процесса, включая фиксацию текущего, условия перехода к следующему состоянию, ссылки на области памяти, о родственных связях процесса, учетная информация, связанная с этим процессом).

При краткосрочном планировании решается, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на исполнение.

В большинстве современных операционных систем долгосрочное планирование отсутствует. Стратегия планирования определяет, какие процессы мы планируем на выполнение для того, чтобы достичь поставленной цели. Можно выделить следующие основные стратегии:

1. по возможности заканчивать вычисления (вычислительные процессы) в том же самом порядке, в котором они были начаты;

2. отдавать предпочтение более коротким процессам;

3. предоставлять всем пользователям (процессам пользователей) одинаковые услуги, в том числе и одинаковое время ожидания.

Дисциплины формирования очередей и дисциплины обслуживания. При­оритеты.

Известно большое количество правил (дисциплин диспетчеризации), в соответствии с которыми формируется список (очередь) готовых к выполнению задач. Различают два больших класса дисциплин обслуживания - бесприоритетные и приоритетные.

При бесприоритетном обслуживании выбор задачи производится в некотором заранее установленном порядке без учета их относительной важности и времени обслуживания.

При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляется преимущественное право попасть в состояние исполнения. Приоритет может являться величиной постоянной, а может изменяться в процессе обслуживания процесса.

Диспетчеризация без перераспределения процессорного времени, то есть не вытесняющая многозадачность - это такой способ диспетчеризации процессов, при котором активный процесс выполняется до тех пор, пока он сам не отдаст управлению диспетчеру задач для выбора из очереди другого процесса.

Диспетчеризация с перераспределением процессорного времени между задачами, то есть вытесняющая многозадачность - это такой способ, при котором решение о переключении про­цессора с выполнения одного процесса на выполнение другого процесса принимается диспетчером задач, а не самой активной задачей.

К основным дисциплинам обслуживания относятся:

1.Бесприоритетная дисциплина FIFO (first in first out) - задачи обслужива­ются «в порядке очереди», то есть в порядке их появления. Вновь приходящие задачи ставятся в конец очереди.

2.Бесприоритеная дисциплина LIFO (last in first out) – очередь организуется с помощью стековой структуры, сначала обслуживаются задачи, пришедшие последними. Вновь приходящие задачи ставятся в начало очереди.

3. Дисциплина обслуживания RR предполагает, что каждая задача получает процессорное время порциями (квантами). После окончания кванта времени задача снимается с про­цессора, и он передается следующей задаче. Снятая задача ставится в конец очереди за­дач готовых к выполнению.

4. Приоритетная дисциплина обслуживания с динамическим приоритетом. Сначала обслу­живаются задач и имеющие более высокий приоритет. Приоритет может изменяться в зависимости от времени обслуживания или от времени ожидания процесса в очереди. Приоритеты могут быть относительными (после обслуживания одного процесса выбирается следующий с более высоким приоритетом) и абсолютными (если во время обслу­живания одного процесса приходит процесс с более высоким приоритетом, то процесс с более высоким приоритетом вытесняет из обслуживания процесс с более низким при­оритетом, который ставится в очередь и дообслуживается после).

Типовые задачи синхронизации параллельных процессов. Семафоры. Тупики.

Операционная система должна обеспечивать надежные механизмы синхронизации задач. Так как задачи разделяют данные (ресурсы) и должны сообщаться друг с другом, то должны существовать механизмы блокирования и ком­муникации.

Задачи синхронизации.

  1. Задача взаимного исключения – связана с использованием какого-либо ресурса без его разделения. Критический ресурс – такой ресурс, который не допускает одновременного использования несколькими процессами.

Критическая секция – фрагмент программы, который работает с монопольно выделенным критическим ресурсом. Такой механизм называется механизм взаимоисключения.

● одновременно внутри критической секции не должно находится более одного процесса

● ни один процесс не может находиться в критической секции бесконечно долго

● ни один процесс не должен бесконечно долго ждать входа в критическую секцию

● если процесс, находящийся в критической секции, остановлен или завершен, то режим взаимоисключения д.б.отменен.

2. Семафорные примитивы Дейкстры. Семафор - переменная специального типа, которая доступна параллельным процессам для проведения над ней только операций: «закрытия» и «открытия», названных соответственно Р- и V- операциями. Эти операции являются примитивами относительно семафора, который указывается в качестве параметра опера­ций. Здесь семафор выполняет роль вспомогательного критического ресурса, так как операции Р и V неделимы в своем исполнении и взаимно исключают друг друга. Сема­форный механизм работает по схеме, в которой сначала исследуется состояние критиче­ского ресурса, идентифицируемое значением семафора, а затем уже осуществляется до­пуск к критическому ресурсу или отказ от него на некоторое время. При отказе исполь­зуется режим «пассивного ожидания». Поэтому в состав механизма включают средства формирования и обслуживания очереди ожидающих процессов. Самый простой – двоичный семафор(откр/закр), счетный семафор предполагает, что константа изменения семафора не равна 1, массив семафоров.

  1. Задача «Производитель - потребитель» - один процесс генерирует некоторую информацию, а другой ее использует. Необходимо, чтобы потребитель получал достоверную информацию. Необходимо выполнить требования взаимного исключения при обращении к этому ресурсу. Надо учитывать состояние области памяти. Для производителя: свободно - занято, для потребителя – есть ли там информация, обновлялась ли она.

  1. Задача «Читатель-писатель» - работа с общей областью памяти, куда можно записывать и от куда можно читать. Читатели могут одновременно читать информацию из памяти при условии, что в этот момент не идет запись. Писатели могут записывать информацию, но не может быть одновременной записи от нескольких писателей. Потребителей может быть несколько. С т.з. читателей – ресурс разделяемый, а не критический. С т.з. писателей, если хотя бы один читатель занят чтением, то доступ к критическому ресурсу закрыт для всех пользователей. Писатели имеют более высокий приоритет перед читателями.

При параллельном исполнении процессов могут возникать ситуации, при которых два или более процесса все время находятся в заблокированном состоянии (например, каждый из про­цессов ожидает ресурс, занятый другим). Такие ситуации называют тупиками. Говорят, что процесс находится в состоянии тупика, если он ждет события, которое никогда не произойдет. Борьба с тупиковыми ситуациями основывается на одной из трех стратегий:

1. Предотвращение тупика - запрет существования опасных состояний.

2. Обход тупика - запрет входа в опасное состояние.

3. Обнаружение тупика путем проверки текущих событий (например, наличие замкнутой цепочки запросов).