Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Кафедра Математической кибернетики и информационных технологий
Методические указания
и задания на курсовую работу
по дисциплине
ОПЕРАЦИОННЫЕ СИСТЕМЫ
для студентов 3 курса
заочного факультета
направление подготовки 090302
профиль «Информационные системы и технологии»
Москва 2016
и задания на курсовую работу
по дисциплине
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Составитель Королькова Т.В., старший преподаватель
Утверждено на заседании кафедры МК и ИТ
Протокол заседания кафедры МКиИТ № 2 от 16 октября 2013 года.
Рецензент проф., д.т.н. Е.Н.Турута
Целями освоения дисциплины «Операционные системы» являются получение студентами знаний в области фундаментальных понятий и общих принципов организации операционных систем, включая изучение таких аспектов, как организация файловых систем, управление памятью, управление процессами, механизмы межпроцессного взаимодействия, вопросы обеспечения безопасности, а также изучение слушателями основных возможностей наиболее популярных современных операционных систем.
Изучение курса ОС предполагает самостоятельную проработку рекомендованной литературы, список которой приведен в конце работы, слушание лекций, выполнение цикла лабораторных работ, а также выполнение и защиту курсовой работы. Настоящее пособие содержит полный перечень вопросов, подлежащих изучению, индивидуальные варианты заданий и методические указания для выполнения курсовой работы, которые помогут студентам сориентироваться в учебном материале курса, установить логические связи между отдельными его разделами, проверить свои знания, успешно выполнить курсовую работу. Для более полного охвата вопросов курса в конце работы приведен список основной и дополнительной литературы.
ОС компьютера – это комплекс взаимосвязанных программ, обеспечивающий взаимодействие пользователя с вычислительной системой, а также управляющий ресурсами вычислительной системы. В соответствии с этим определением ОС выполняет две группы функций:
предоставление пользователю вместо реальной аппаратуры компьютера расширенной виртуальной машины;
повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Функциональные компоненты ОС автономного компьютера: подсистема управления процессами, подсистема управления памятью, подсистема управления файлами и внешними устройствами, подсистема защиты данных и администрирования, интерфейс прикладного программирования, пользовательский интерфейс.
Главным требованием, предъявляемым к операционной системе, является выполнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ.
Традиционно к ОС предъявлялись следующие требования: прозрачность (незаметность работы) служебных программ, гарантированная надежность, максимальная скорость выполнения, минимальный машинный код, использование стандартных средств для связи с приложениями. Кроме этого, современная операционная система должна обладать свойствами расширяемости, совместимости, переносимости, безопасности и отказоустойчивости.
Определение ОС. Назначение и функции операционной системы.
Место ОС в структуре вычислительной системы.
Понятие ресурса. Управление ресурсами в вычислительной системе.
Критерии эффективности и классы ОС.
Эволюция ОС.
Современный этап развития ОС.
Функциональные компоненты ОС персонального компьютера.
Требования, предъявляемые к современным ОС.
Классификации ОС.
Какие события в развитии технической базы вычислительных машин стали вехами в истории ОС?
Может ли компьютер работать без ОС?
В чем состоят современные тенденции развития ОС?
Назовите абстрактно сформулированные задачи ОС по управлению любым типом ресурса. Конкретизируйте эти задачи применительно к процессору, памяти, внешним устройствам.
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:
1. Ядро выполняет
- базовые функции ОС (управление процессами, памятью, устройствами ввода/вывода;
- функции, решающие внутрисистемные задачи организации вычислительного процесса, (переключение контекстов, загрузка/выгрузка страниц, обработка прерываний);
- функции для поддержки приложений, создающие для них прикладную программную среду. Приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения тех или иных действий. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API.
2. Вспомогательные модули
- утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы, например, программы сжатия диска, архивирования и т.д.;
- системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики;
- программы дополнительных услуг (специальный вариант пользовательского интерфейса, калькулятор, игры);
- библиотеки процедур (библиотеки математических функций, функций ввода/вывода и т.д.).
Монолитная архитектура - это такая схема организации операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур.
Следующий этап в эволюции архитектур ОС - организация ОС как иерархии уровней с хорошо определенными связями между ними. Нижним уровнем в таких системах обычно является аппаратура, верхним уровнем - интерфейс пользователя.
Современной тенденцией в разработке операционных систем является перенесение значительной части системного кода на уровень пользователя и, следовательно, минимизация ядра. Такой подход к построению ядра называется микроядерной архитектурой ОС или моделью клиент-сервер. Суть микроядерной архитектуры - в привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие базовые функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами ввода/вывода, которые практически невозможно выполнить в пользовательском режиме. Все остальные функции ядра оформляются в виде приложений, работающих в пользовательском режиме. В настоящее время именно операционные системы, построенные с использованием модели клиент-сервер и концепции микроядра, в наибольшей степени удовлетворяют требованиям, предъявляемым к современным ОС.
Многозадачные ОС подразделяются на три класса в соответствии с использованными при их разработке критериями эффективности: системы пакетной обработки, системы разделения времени, системы реального времени.
Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, т.е. решение максимального числа задач в единицу времени.
Повышение удобства и эффективности работы пользователя является целью ОС разделения времени. В системах разделения времени пользователям предоставляется возможность интерактивной работы сразу с несколькими приложениями. Всем приложениям попеременно предоставляется квант процессорного времени, таким образом, пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
Критерий эффективности работы ОС реального времени – способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата. ОС реального времени предназначены для управления от компьютера различными техническими объектами или технологическими процессами.
Архитектура ОС. Ядро и вспомогательные модули.
Классическая архитектура ОС.
Микроядерная архитектура ОС. Монолитные и многослойные ОС.
Многослойная модель ядра ОС.
ОС пакетной обработки информации.
ОС разделения времени.
ОС реального времени.
В чем состоят отличия в работе процессора в привилегированном и пользовательском режиме?
Можно ли, анализируя двоичный код программы, сделать вывод о невозможности ее выполнения в пользовательском режиме?
Опишите порядок взаимодействия приложений с ОС, имеющей микроядерную архитектуру.
Может ли программа, эмулируемая на «чужом» процессоре, выполняться быстрее, чем на «своем»?
Подсистема управления процессами и потоками занимается их созданием и удалением, поддерживает взаимодействие между ними, а также распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками. Основной задачей мультипрограммной ОС является распределение ресурсов между процессами и потоками – двумя базовыми единицами работы ОС. В ОС в которых существуют как процессы, так и потоки, процесс рассматривается ОС как заявка на потребление всех видов ресурсов, кроме одного – процессорного времени. Процессорное время распределяется между другими единицами работы – потоками, представляющими собой последовательности команд.
Для синхронизации процессов и потоков, решающих общие задачи и совместно использующих ресурсы, в ОС имеются специальные средства: критические секции, семафоры, мьютексы, события, таймеры. Отсутствие синхронизации может приводить к таким нежелательным последствиям, как тупики и гонки.
Функции ОС по управлению процессами.
Процессы и потоки, состояния потока.
Планирование и диспетчеризация потоков, моменты перепланировки.
Алгоритм планирования, основанный на квантовании.
Приоритетное планирование.
Алгоритмы планирования ОС пакетной обработки: «первым пришел –
первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
Алгоритмы планирования в интерактивных ОС: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование.
Планирование в ОС реального времени.
Синхронизация процессов и потоков: цели и средства синхронизации.
Ситуация состязаний (гонки). Способы предотвращения.
Способы реализации взаимных исключений: блокирующие переменные, критические секции, семафоры Дейкстры.
Взаимные блокировки. Условия, необходимые для возникновения тупика.
Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа.
Предотвращение взаимоблокировок. Алгоритм банкира для одного вида ресурсов.
Предотвращение взаимоблокировок. Алгоритм банкира для нескольких видов ресурсов.
Синхронизирующие объекты ОС: системные семафоры, мьютексы, события, сигналы.
Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).