- •Перечень лекций по дисциплине
- •Лекция 1. Эволюция ос (4 часа)
- •Пакетные ос
- •Ос с разделением времени
- •Однозадачные ос для пэвм
- •Многозадачные ос для пк с графическим интерфейсом
- •Вопросы для самоконтроля
- •Лекция 2. Программное обеспечение. Виды программ ос (4 часа)
- •Утилиты
- •Вопросы для самоконтроля
- •Лекция 3. Сравнительные характеристики ос ( 2часа)
- •1) По назначению;
- •1. Мэйнфреймы
- •2. Серверные (сетевые) ос
- •3. Многопроцессорные ос
- •6. Встроенные ос
- •7. Ос для Smart-карт
- •2) По режиму обработки задач;
- •По способу взаимодействия с системой;
- •4) По способам построения (архитектурным особенностям систем).
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Сравнительные характеристики ос реального времени и разделения времени
- •Вопросы для самоконтроля
- •Лекция 4. Основные сведения об ос (2 часа)
- •Вопросы для самоконтроля
- •Лекция 5. Назначение и основные функции операционных систем (4 часа)
- •Машинно-зависимые компоненты ос
- •Вопросы для самоконтроля
- •(4 Часа)
- •Преимущества и недостатки микроядерной архитектуры
- •Способы реализации прикладных программных сред
- •Вопросы для самоконтроля
- •Лекция 8. Принципы обработки прерываний (2часа)
- •Вопросы для самоконтроля
- •Лекция 9. Интерфейс пользователя. Разновидности интерфейсов (4 часа)
- •Вопросы для самоконтроля
- •Лекция 10. Разделение доступа к данным в ос (2 часа)
- •Вопросы для самоконтроля
- •Лекция 11. Вычислительный процесс и ресурсы пк (4 часа)
- •Вопросы для самоконтроля
- •Лекция 12. Управление процессами (4 часа)
- •Защита адресного пространства задач
- •Вопросы для самоконтроля
- •Лекция № 13. Планирование процессов (4 часа)
- •1. Планирование очереди процессов на начало обработки цп
- •2. Планирование распределения времени работы цп между процессами
- •3. Планирование очереди запросов на обмен
- •4. Планирование порядка обработки прерываний
- •Планирование процессора
- •Вопросы для самоконтроля
- •Лекция 14. Взаимодействие процессов (4 часа)
- •Вопросы для самоконтроля
- •Лекция 15. Стратегия планирования процессов (4 часа)
- •Вопросы для самоконтроля
- •Литература
Вопросы для самоконтроля
Что такое планирование процессов в ОС?
Перечислите задачи планирования процессов в ОС.
Назовите основные требования к планированию процессов в ОС.
Какие Вы знаете стратегии планирования процессов?
Что такое диспетчеризация процессов?
Что такое планировщик задач? Долгосрочный и краткосрочный планировщик.
В чем основное отличие краткосрочного и долгосрочного планировщика?
Назовите основной метод планирования процессов?
Назовите основное условие для планирования процессов в системе.
Какие различают приоритеты при планировании процессов и в каких случаях они применяются?
Лекция 14. Взаимодействие процессов (4 часа)
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться параллельно на разных вычислительных системах, взаимодействуя между собой.
Для чего процессам нужно заниматься совместной деятельностью? Какие существуют причины для их кооперации?
Одной из причин является повышение скорости работы. Когда один процесс ожидает наступления некоторого события (например, окончания операции ввода-вывода), другие в это время могут заниматься полезной работой, направленной на решение общей задачи. В многопроцессорных вычислительных системах программа разделяется на отдельные кусочки, каждый из которых будет исполняться на своем процессоре.
Второй причиной является совместное использование данных. Различные процессы могут, к примеру, работать с одной и той же динамической базой данных или с разделяемым файлом, совместно изменяя их содержимое.
Третьей причиной является модульная конструкция какой-либо системы. Типичным примером может служить микроядерный способ построения операционной системы, когда ее различные части представляют собой отдельные процессы, общающиеся путем передачи сообщений через микроядро.
Наконец, это может быть необходимо просто для удобства работы пользователя, желающего, например, редактировать и отлаживать программу одновременно. В этой ситуации процессы редактора и отладчика должны уметь взаимодействовать друг с другом.
Взаимодействующий (совместный) процесс – процесс, который может влиять на исполнение других процессов или испытывать их влияние.
Преимущества взаимодействующих процессов очевидны:
1. Совместное использование данных; процессы могут работать с общими данными, при условии их синхронизации.
2. Ускорение вычислений.
3. Модульность: организация взаимодействующих процессов – это метод параллельного решения задачи, декомпозируемой на относительно независимые части, части, каждую из которых решает один из взаимодействующих процессов
4. Удобство.
Виды организации взаимосвязи процессов
С точки зрения видов взаимосвязи родительского и дочернего процессов, процессы подразделяются на независимые, подчиненные и сопроцессы.
Подчиненный процесс – процесс, зависящий от процесса-родителя. Подчиненный процесс уничтожается при уничтожении родительского процесса, как в системах UNIX и ОС "Эльбрус". Процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов.
Независимый процесс – дочерний процесс, выполняемый независимо от процесса-родителя. Типичные примеры: процессы-демоны в UNIX, запускаемые начальным процессом init. Например, cron – процесс-демон, организующий вызов заданных в специальной таблице crontab действий с заданной периодичностью (автоматическое резервное копирование всех файловых систем на ленту в полночь); smbd – процесс-демон, управляющий серверным программным обеспечением SAMBA для сетевого доступа с Windows-машин к файлам UNIX-машины.
Сопроцесс – процесс, равноправно взаимодействующий с другими такими же процессами; хранит свое текущее локальное управление; взаимодействует с другим сопроцессом с помощью операций resume (Q). Взаимодействие нескольких сопроцессов друг с другом операторами resume полностью равноправно. Данный механизм взаимодействия принципиально отличается от вызова процедуры. Операция detach(открепить) переводит сопроцесс в пассивное состояние, в котором могут быть доступны только его глобальные данные, но его программа уже завершена и не подлежит повторному запуску. Сопрограммное взаимодействие реализовано в языке СИМУЛА-67, который, как известно, стал родоначальником объектно-ориентированного подхода.
Процессы не могут взаимодействовать не общаясь. Общение процессов обычно приводит к изменению их поведения в зависимости от полученной информации. Если деятельность процессов остается неизменной при любой принятой ими информации, то это означает, что они на самом деле не нуждаются во взаимном общении. Процессы, которые влияют на поведение друг друга путем обмена информацией, принято называть кооперативными или взаимодействующими процессами, в отличие от независимых процессов, не оказывающих друг на друга никакого воздействия и ничего не знающих о взаимном сосуществовании в вычислительной системе.
Различные процессы в вычислительной системе изначально представляют собой обособленные сущности. Работа одного процесса не должна приводить к нарушению работы другого процесса. Для этого, в частности, разделены их адресные пространства и системные ресурсы, и для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы. Нельзя просто поместить значение, вычисленное в одном процессе, в область памяти, соответствующую переменной в другом процессе, не предприняв каких-либо дополнительных организационных усилий. Давайте рассмотрим основные аспекты организации совместной работы процессов.
Как правило, процессы могут взаимодействовать через общие буферы данных. Взаимодействие заключается в передаче данных между процессами или совместном использовании некоторых ресурсов и обычно реализуется с помощью таких механизмов, как транспортеры, очереди, сигналы и семафоры.
Семафоры - переменные для подсчета сигналов запуска, сохраненных на будущее.
Были предложены две операции down и up (аналоги sleep и wakeup).
Прежде чем заблокировать процесс, down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу. up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании. down уменьшает значение семафора на 1 или блокирует процесс, если семафор =0.
Транспортеры (каналы) – они являются средством взаимодействия родственных процессов, представляют собой область памяти, имеющую файловую организацию, для которой обеспечивается запись и считывание данных в транспортере, реализуется очередь обслуживания. Порядок записи на транспортер неизменен, не допускается повторное считывание данных. Обмен данными происходит не непосредственно, а через транспортер.
Очереди могут обеспечить передачу или использование общих данных без перемещения данных, а с передачей элемента очереди, содержащего указатель данных и объем массива данных. Очередь используется вместе с механизмом общей памяти. Элемент очереди может быть считан с уничтожением или без уничтожения этого элемента. Чтение элемента может осуществляться в соответствии с механизмом очереди, например, fifo или стека. Чтение элементов очереди осуществляется только процессом, создавшим очередь. Все другие процессы могут только записать элемент в очередь. Создающий очередь процесс может выполнять следующие действия над очередью: 1) создание очереди; 2) просмотр очереди; 3) чтение очереди; 4) закрытие очереди. Записывающий процесс осуществляет действия: 1) открыть очередь; 2) записать в очередь; 3) закрыть очередь. Имя очереди, которое присваивается создающим процессом, имеет вид полной спецификации файла. Ожидание элемента в очередь организуется с помощью семафора, сигнализирующего о записи элемента в очередь. Дополнительные функции для работы с очередью: 1) определение количества элементов в очереди в текущий момент; 2) очистка очереди, создавшим ее процессом. Преимущества очереди: 1) передача данных осуществляется по указателю без копирования; 2) гибкие изменения порядка передачи и доступа; 3) возможность просмотра элементов очереди без их удаления.
Сигналы – это механизм передачи требования от одного процесса к другому на немедленное выполнение действия. Обработчик сигнала создается процессом с перемещается в начало первого потока процесса. При передаче управления обработчику передается адрес возврата и тип принятого сигнала. Процесс, посылающий сигнал типа флаг может передавать дополнительную информацию обработчику сигналов. Характер выполняемых действий при выполнении сигнала: 1) обработка системной ошибки при появлении сигнала; 2) блокирование сигнала; 3) передача управления подпрограмме.
В ОС OS/2 и Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени — DDE (Dynamic Data Exchange). Он стандартизует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенным процессом. Для которого используется DDE, является печать.
Другим способом обмена данными является OLE (связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах созданных другой программой. Пример — буфер обмена.
Тупики
Тупик — это ситуация, когда процесс ожидает события, которое никогда не произойдет вследствие занятости необходимого процессу ресурса другим процессом, который также ожидает какого-либо события. Типики приводят к зависаниям системы.
Для борьбы с тупиками ОС должна их обнаруживать и нарушать одно из условий существования тупика или игнорировать тупик. Большинство ОС (Unix, Windows) игнорируют тупики.
