860 likes | 1.03k Views
Операционные системы. КГТУ им.И.Раззакова, ИУиБ.каф.ИСЭ Преподаватель: Белоконь П.И.
E N D
Операционные системы КГТУ им.И.Раззакова, ИУиБ.каф.ИСЭ Преподаватель: Белоконь П.И.
Операционная система (ОС) – обязательная часть системного программного обеспечения, обеспечивающая эффективное функционирование ПК в различных режимах, организующая выполнение программ и взаимодействие пользователя и внешних устройств с компьютером. • ОС позволяет абстрагироваться от деталей реализации аппаратного обеспечения, предоставляя разработчикам программного обеспечения минимально необходимый набор функций. С точки зрения обычных пользователей компьютерной техники ОС включает в себя и программы пользовательского интерфейса.
Функции ОС: • Загрузка приложений в оперативную память и их выполнение. • Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода). • Управление оперативной памятью (распределение между процессами, виртуальная память). • Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой системе. • Пользовательский интерфейс. • Сетевые операции, поддержка стека протоколов.
Дополнительные функции: • Параллельное или псевдопараллельное выполнение задач (многозадачность). • Взаимодействие между процессами: обмен данными, взаимная синхронизация. • Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений. • Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
Операционные системы, нужны если • вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. • различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют системные библиотеки часто используемых подпрограмм (функций);
между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от несанкционированного доступа, а возможная ошибка в программе не вызывала тотальных неприятностей; • необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». • пользователь должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ.
Поколения ВС • 1-е поколение, 50-е годы: ЭВМ на электронных вакуумных лампах. • 2-е поколение, 60-е годы: ЭВМ на дискретных полупроводниковых приборах (транзисторах). • 3-е поколение, 70-е годы: компьютеры на полупроводниковых интегральных схемах с малой и средней степенью интеграции (сотни тысяч транзисторов в одном корпусе). • 4-е поколение, 80-90 годы: компьютеры на больших и сверхбольших интегральных схемах, основная из которых – микропроцессор (сотни тысяч - десятки миллионов активных элементов в одном кристалле). • 5-е поколение, настоящее время: компьютеры с многими десятками параллельно работающих микропроцессоров, позволяющих строить эффективные системы обработки знаний; компьютеры на сверхсложных микропроцессорах с параллельно-векторной структурой, одновременно выполняющих десятки последовательных инструкций программы. • 6-е и последующие поколения: оптоэлектронные компьютеры с массовым параллелизмом и нейронной структурой, с распределенной сетью большого числа (десятки тысяч) несложных микропроцессоров, моделирующих архитектуру нейронных биологических систем.
История ОС • Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа. • Системы пакетной обработки (1955-1965г.г.), которые просто автоматизировали запуск одной программ за другой и тем самым увеличивали коэффициент загрузки процессора. • Многозадачность (1965-1980) - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько задач. Пока одна задача выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении задач , а выполняет другую задачу. • Спулинг (spooling-подкачка) в то время задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел.
Системы разделения времени - вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. • Разботана многопользовательская система MULTICS, которая должна была обеспечивать одновременную работу сотни пользователей. • Эта работа в дальнейшем развилась в систему UNIX. • Появилось много разновидностей несовместимых UNIX, основные из них были System V и BSD. Чтобы было возможно писать программы, работающие в любой системе UNIX, был разработан стандарт POSIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать системы UNUX. • В 1974г. был выпущен центральный процессор Intel 8080, для него была создана операционная система CP/M. В 1977г. она была переработана для других процессоров, например Zilog Z80. • В начале 80-х была разработана система MS-DOS, и стала основной системой для микрокомпьютеров.
В 80-х годах стало возможным реализовать графический интерфейс пользователя (GUI - GraphicalUserInterface). Первой реализовала GUI корпорация Macintosh. • С 1985 года стала выпускаться Windows, в то время она была графической оболочкой к MS-DOS вплоть до 1995г., когда вышла Windows 95. • IBM и Microsoft начинали совместно разрабатывать операционную систему OS/2. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Первая версия вышла 1987г. • В дальнейшем Microsoft отошла от разработки OS/2, и стала разрабатывать Windows NT. Первая версия вышла в 1993г.
В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных операционных систем. • Сетевая операционная система не имеет отличий от операционной системы однопроцессорного компьютера. Она обязательно содержит программную поддержку для сетевых интерфейсных устройств (драйвер сетевого адаптера), а также средства для удаленного входа в другие компьютеры сети и средства доступа к удаленным файлам. • Распределенная операционная системапредставляется пользователям простой системой, в которой пользователь не должен беспокоиться о том, где работают его программы или где расположены файлы, все это должно автоматически обрабатываться самой операционной системой. • В 1987г. была выпущена операционная система MINIX (прототип LINUX), она была построена на схеме микро ядра. • В 1991г. была выпущена LINUX, в отличии от микроядерной MINIX она стала монолитной. • Чуть позже вышла FreeBSD (основой для нее послужила BSD UNIX).
Классификация ОСПо организации доступа • Пакетные (OS 360) • Интерактивные (Windows, Unix) • Реального времени (QNX)
Классификация ОС по выполнению программ • Однопрограммные – выполняют одну программу (первые версии DOS); • Многопрограммные – в памяти находится несколько программ, но выполняется только одна из них (активная программа) (последние версии DOS, Win3.x); • Многозадачные – выполняют несколько программ одновременно (Win 95 и старше, UNIX). Программа – последовательность машинных команд; хранится как файл на диске. Задача, процесс, задание, job – программа, которая запущена на выполнение; находится в оперативной памяти ЭВМ. При одновременном выполнении нескольких задач одним процессором в каждый момент времени он работает только с одной задачей и по определенным правилам переключается на следующую
Основные виды интерфейсов ОС • Командная строка – Команды вводят с клавиатуры • Меню – Команды выбирают из списка • Графический интерфейс – Значки перетаскивают мышью Каждый новый интерфейс наследует возможности предшествующих
Перспективные интерфейсы • Чувствительный экран – TouchScreen • Распознавание рукописного текста • Речевой (голосовой) интерфейс: ввод-вывод • Автоматический перевод речи • Виртуальная реальность • Интерфейс для инвалидов. • Комбинированные устройства: цифровой фотоаппарат/сканер+ распознавание текста+голос+ перевод • Проект Киборг (вживление микросхем)
Требования, предъявляемые к ОС • Расширяемость. Код должен быть написан таким образом, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы. • Переносимость. Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа. • Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. • Совместимость. ОС должна иметь средства для выполнения прикладных программ, написанных для других операционных систем. Пользовательский интерфейс должен быть совместим с существующими системами и стандартами. • Безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других. • Производительность. Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.
Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. • Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами • планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, • а также занимается созданием и уничтожением процессов, • обеспечивает процессы необходимыми системными ресурсами, • поддерживает взаимодействие между процессами.
В однозадачных ОС управление процессами решает следующие задачи: • загрузка программы в память, подготовка ее к запуску и запуск на выполнение; • выполнение системных вызовов процесса; • обработка ошибок, возникших в ходе выполнения; • нормальное завершение процесса; • прекращение процесса в случае ошибки или вмешательства пользователя.
В многозадачном режиме добавляются задачи: • эффективная реализация параллельного выполнения процессов на единственном процессоре, переключение процессора между процессами; • выбор очередного процесса для выполнения с учетом заданных приоритетов процессов и статистики использования процессора; • исключение возможности несанкционированного вмешательства одного процесса в выполнение другого; • предотвращение или устранение тупиковых ситуаций, возникающих при конкуренции процессов за системные ресурсы; • обеспечение синхронизации процессов и обмена данными между ними.
Создать процесс - это значит: • создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст; • включить дескриптор нового процесса в очередь готовых процессов; • загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
Состояние процессов • ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; • ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса; • ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
Планирование процессов включает в себя решение следующих задач • определение момента времени для смены выполняемого процесса; • выбор процесса на выполнение из очереди готовых процессов; • переключение контекстов "старого" и "нового" процессов.
смена активного процесса происходит, если • процесс завершился и покинул систему, • произошла ошибка, • процесс перешел в состояние ОЖИДАНИЕ, • исчерпан квант процессорного времени, отведенный данному процессу
два основных типа процедур планирования процессов • Non-preemptivemultitasking - невытесняющая многозадачность - это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс. • Preemptive multitasking - вытесняющая многозадачность - это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей(процессом).
Требования к алгоритмам планирования • Справедливость- гарантировать каждому процессу доступ к процессору • Эффективность- постараться занять процессор на 100%, не позволяя ему простаивать в ожидании процессов готовых к исполнению • Сокращение полного времени выполнения • Сокращение времени ожидания • Сокращение времени отклика программ(процессов)
Алгоритмы планирования • First –Come, First-Served- первым пришел, первым обслужен. • Round Robin • Shortest –Job-First • Приоритетное планирование
Способы обмена информацией между процессами • Сигнальные • Канальные • Разделяемая память
Механизмы синхронизации • Критические секции-объект синхронизации потоков, позволяющий предотвратить одновременное выполнение некоторого набора операций (обычно связанных с доступом к данным) несколькими потоками • Семафоры-объект, позволяющий войти в заданный участок кода не более чем nпроцессам • Мониторы-высокоуровневый механизм взаимодействия и синхронизации процессов, обеспечивающий доступ к неразделяемым ресурсам
Взаимная блокировка (тупик) — ситуация, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами
Функции ОС по управлению памятью: • отслеживание свободной и занятой памяти; • выделение памяти процессам и освобождение памяти при завершении процессов; • вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов; • возвращение их в оперативную память, когда в ней освобождается место; • настройка адресов программы на конкретную область физической памяти.
Распределение памяти • Выделение памяти для загрузкипрограмм: – Статическоепри компиляции программы – Динамическоево время выполнения программы
Логическое и физическоеадресное пространство Обычно программист обращается к памяти через символьные переменные и не указывает физические адреса Физический адрес – номер ячейки в микросхеме памяти; выставляется на шине адреса. • Привязка к физическим адресам – при загрузке программы в память перед исполнением • Имена переменных связываются с адресами ячеек в 2 этапа: – система программирования (символьное имя – логический адрес) – ОС (логический адрес – физический адрес)
Схемы управления памятью • Схема с фиксированными разделами • Один процесс в памяти –однозадачная ОС (M-DOS) • Оверлейная структура • Свопинг • Схемы с переменными разделами • Страничная память • Сегментно-страничная память
Схема с фиксированными разделами • Память разбивается на несколько разделов с фиксированними размерами. Поступающие процессы помещаются в тот или иной раздел. Связывание логических и физических адресов процесса происходит на этапе его загрузки в конкретный раздел, иногда на этапе компиляции. • Реализована в IBM OS/360, DEC RSX-11 • Недостаток- сильная фрагментация памяти, т.к процесс не полностью занимает выделенный ему раздел
Оверлейная структура • Оверлей – перекрытие программных секций. –E.overlay = перекрытие, лежать поверх • Программа разбита на главную часть (main) и сегменты (segment). В памяти находятся главная часть (включая оверлейный менеджер) и неперекрывающиеся сегменты. Остальные сегменты расположены на диске. • Одна и та же область ОЗУ используется несколькимипрограммными секциями, которые загружаются по очереди по мере вызова подпрограмм. За счет этого в памяти находится только те процедуры, которые выполняются, и требуется меньший объем оперативной памяти. Такая структура закладывается программистом при составлении программы. Программист сам делит программу на части и указывает, какие модули будут оверлейными.
Свопинг • Свопинг – временное освобождение ОЗУ за счет сохранения информации на диске. Временное сохранение части ОЗУ или одного из процессов на диске; в освободившуюся область загружают другие задачи. • Для свопинга выделяется дисковое пространство или логический диск, куда не может обращаться пользователь. • Своп-файл, область свопинга, файл подкачки, В отличие от оверлея, организацией свопингом занимается ОС.
Страничная организация памяти • Память делится на страницы одинакового размера. • Память разбивается на физические страницы, программа – на виртуальные. Часть виртуальных страниц находится в ОЗУ, часть – на диске, файле подкачки (paging file), или страничный файл, - место на диске. Иногда также называют swap file. В ОС UNIX - специальный раздел диска (swap). • Физический адрес: (номер физической страницы и смещение). • Виртуальный адрес: (номер виртуальной страницы и смещение). • Проблема: замедление работы из-за частого обращения к диску: – нарастить память – меньше параллельных задач – изменить дисциплину замещения (ОС) • Менее требовательные приложения
Сегментно-страничнаяорганизация памяти • Программа делится настраницы объединенные в сегменты- логически завершенные части. • Виртуальный адрес = сегмент + страница + индекс. • Достоинства: – сегменты в памяти целиком - реже подкачка – страницы россыпью - меньше фрагментация • Затраты: – таблица дескрипторов сегментов – таблицы адресов страниц по сегментам • Нужна аппаратная поддержка механизма.
Виртуа́льная па́мять — технология, которая была разработана с целью увеличения общего объема памяти, организации множества адресных пространств памяти, их защиты и автоматизации процесса перемещения машинного кода и данных между основной памятью компютера и вторичным хранилищем. • В настоящее время эта технология имеет аппаратную поддержку на всех современных процессорах. • В случае расположения данных на внешних запоминающих устройствах память может быть представлена, например, специальным разделом на жестком диске (partition) или отдельным файлом на обычном разделе диска.
Менеджер виртуальной памяти— часть операционной системы, благодаря которой можно адресовать память большую, чем объем физической памяти (ОЗУ). Благодаря виртуальной памяти можно запускать множество ресурсоёмких приложений, требующих большого объёма ОЗУ. Максимальный объём виртуальной памяти, который можно получить, используя 24-битную адресацию, — 16 мегабайт. Физическая память при этом ограничена 8 мегабайтами. С помощью 32-битной адресации можно адресовать до 4 ГБ виртуальной памяти
Применение механизма виртуальной памяти позволяет: • упростить адресацию памяти клиентским программным обеспечением; • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти); • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью);
Стратегии управления виртуальной памятью • Стратегия выборки-в какой момент следует переписать страницу из вторичной памяти в первичную • Алгоритм размещения- в какой участок памяти разместить поступающую страницу • Алгоритм замещения- какую страницу нужно вытолкнуть во внешнюю память, чтобы освободить место в оперативной памяти
Последовательность операций при “page fault” • Найти некоторую занятую страницу в основной памяти • Переместить в случае необходимости ее содержимое во внешнюю память • Переписать в этот страничный кадр содержимое нужной виртуальной страницы из внешней памяти • Должным образом модифицировать необходимый элемент таблицы страниц • Продолжить выполнение процесса, которому эта страница понадобилась
Алгоритмы замещения страницы • Алгоритм FIFO. Выталкивание первой пришедшей страницы (временные метки) • Выталкивание дольше всего не использовавшейся страницы. Алгоритм LRU. • Выталкивание редко используемой страницы. Алгоритм NFU.
Правила локального и глобального замещения страниц • Правило локального замещения выделяет каждому процессу или группе взаимосвязанных процессов определённое количество страниц. Если процессу нужна новая страница, он должен вытолкнуть одну из собственных. • Правило глобального замещения страниц позволяет брать страницы любого процесса, используя глобальные критерии выбора.
Наиболее часто используемые критерии поиска: • Less Recently Used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений. • Last Recently Used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.