Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы

.docx
Скачиваний:
13
Добавлен:
23.02.2015
Размер:
59.3 Кб
Скачать

Обвинцев Олег Александрович

Операционные системы оболочки и среды.

Основные понятия.

Бит – это мельчайшая единица информации.

Байт – это набор битов, в индустрии ПК – 8 бит.

В сложных вычислениях длина байта переменная. Часто употребляемые объекты имеют сокращенное название (описание) Экономия времени на обработку и передачу данных.

Байт позволяет закодировать символ языка и даже целое понятие.

Файл – объем машинной информации, возможно разнородной, существующий как единое целое, и имеющий уникальный идентификатор.

Вся информация пользователя в компьютере храниться в виде файлов.

Каталог – это список имен объектов логически собранных в одну группу по каким-либо признакам.

Для удобства работы с большим количеством файлов каталоги организуют в упорядоченную структуру.

Базовое (системное) ПО.

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

Основные группы базового ПО.

  1. Операционные системы.

  2. Системы управления файлами.

  3. Интерфейсные оболочки для взаимодействия пользователя с операционной системой.

  4. Системы программирования.

  5. Утилиты – настройка и оптимизация устройств и программ.

Операционные системы.

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

Операционная система находится между прикладным ПО и аппаратурой.

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

Основные функции операционной системы.

  1. Прием и обработка заданий от пользователя (команды с клавиатуры, действия манипулятором и т.д.).

  2. Прием и обработка запросов от исполняющихся программ.

  3. Загрузка с внешних устройств хранения в ОЗУ программ, подлежащих исполнению.

  4. Инициация загруженных в ОЗУ программ – действия, в результате которых программа начинает исполняться.

  5. Идентификация и учет всех исполняющихся программ и нужных для этого ресурсов.

  6. Обеспечение работой системы управления файлами и/или СУБД.

  7. Обеспечение мультипрограммирования – одновременное исполнение нескольких программ на одном процессоре.

  8. Организация и управление вводом/выводом – обмен данными между устройствами и программами.

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

  10. Распределение ОЗУ между исполняющими программами и организация виртуальной памяти.

  11. Обеспечение независимости программ друг от друга (защита программ).

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

  13. Восстановление системы после частичных сбоев.

  14. Обеспечение работы систем программирования для создания новых программ.

Система управления файлами.

Модуль операционной системы организует работу с файлами , как с логическими объектами (скрывает их физические характеристики).

Функции системы управления файлов.

  1. Обеспечение обмена данными между программами.

  2. Централизованное распределение памяти внешних устройств для хранения данных.

  3. Выполнение операций с файлами.

  4. Работа с устройствами, как с файлами.

  5. Обмен данными между файлами.

  6. Защита файлов от несанкционированного доступа (права доступа).

Процедура загрузки операционной системы.

При подаче питания на компьютер запускается маленькая программа начальной загрузки операционной системы, которая храниться в BIOS. Она загружается в ОЗУ и активизируется. Находит первое, готовое к работе устройство хранения данных из списка разрешенных и доступных (жесткий диск, USB-устройства). На этом устройстве находит его программу-загрузчик, загружает в ОЗУ и передает ей управление. Этот загрузчик определяет на устройстве активный раздел, находит в нем загрузчик операционной системы, загружает его и передает ему управление.

Загрузчик активного раздела загружает в ОЗУ ядро операционной системы и передает управление ей.

Операционная система инициализирует базовые программные и аппаратные средства и запускает необходимые службы (может расширять или заменять стандартные службы BIOS).

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

Файловая система.

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

Файловая система определяет способ организации данных на носителе.

Элементы файловой системы.

  1. Совокупность всех файлов в компьютерной системе.

  2. Совокупность данных для управления файлами: дескрипторы (описатели файлов), таблицы свободного и занятого пространства памяти на устройстве хранения.

  3. Комплекс программ для выполнения операций с файлами (система управления файлами).

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

Виды файловых систем.

FAT – основой является таблица размещения файлов. File Allocation Table. Это информационная структура в которой записаны характеристики всех файлов на устройстве хранения (имена, место расположения в устройстве, атрибуты и т.д.).

Каждый элемент таблицы прописывает один кластер в области данных устройства хранения. Кластер – это минимальная адресуемая единица данных; минимальный объем, выделяемый для записи данных. Объем кластера измеряется в кластерах. Объем кластеров (логическое единицы) измеряется в секторах (физическая единица хранения данных). Каждая ячейка FAT содержит данные по принадлежности кластера к какому-либо файлу. Поэтому кластеры одного файла могут хранится на устройстве где угодно.

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

Первоначально элементы FAT были 12, а потом 16-и разрядными. Таким образом в 16 разрядах может быть сформировано 2 16= 65536 различных значений это значит, что в таблице могут храниться данные. В свою очередь это значит, что на диске любого объема максимальное количество кластеров всегда одинаково. Сектора разделена на две части: служебная информация, полезная информация 512 б. Корневой каталог в FAT размещается в фиксированном месте логического диска и имеет фиксированный размер (в одном кластере умещается) поэтому может содержать не более 512 элементов.

VFAT – windows 3.11. Система позволяла обрабатывать файлы в защищенном режиме процессора. Структура FAT осталась не изменой, разрядность тоже, но все программные модули для работы с файлами стали 32 разрядными. В windows 95 VFAT получила поддержку длинных имен файлов, а также механизм преобразования длинных имен файлов в короткие и наоборот.

Недостатки FAT-16.

  1. Ограниченное количество кластеров, не соответствует современным возможностям.

  2. Ограничение на объем логического диска.

  3. Ограничение на расположение и объем корневого каталога.

FAT 32.

Появилась в Windows 95 OSR 2. Новая система – не является развитием FAT-16. Позволяет адресовать 2 32 кластеров (4394967296 – 4 Тб). Фактически учитываются только 28 разрядов. Это позволило уменьшить размер кластера и более эффективно использовать устройство памяти.

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

Примечание: максимальная длина имени 256 символов, а размер полных координат файла 260 символов.

NTFS.

Все элементы файловой системы одинаковы. Повышенная надежность за счет протоколирования действий. Расширенная функциональность. Ориентировано на устройства хранения, на тома размером более 400 Мб. Максимальный размер тома и файла 264 байт – 16 Эб. Время поиска файлов не прямопропорционально их количеству.

Объектная модель безопасности – все элементы системы рассматриваются как самостоятельные объекты. Пользователи обладают разными правами.

Каждый объект имеет множество свойств – потоков. Пример: любой файл в NTFS имеет традиционный поток – содержимое. Дополнительно этот же файл может хранить сколько угодно каких угодно данных, например, тело вирусов. Дополнительные потоки не видны стандартными средствами операционных систем.

Структура тома с файловой системой NTFS.

Служебная зона (MFT Master Fill Table – общая таблица файлов – централизованный каталог, описывающий все файлы диска). Занимает 12% от общего объема диска. Первые 16 файлов в этой зоне являются служебными и отвечают за какой-либо аспект работы системы (карта свободного пространства, журнал операций). Их имена начинаются с символа $. Пользователю не видны, находятся в фиксированном месте диска. Для надежности MFT зона хранится в двух экземплярах – в начале и в середине диска.

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

Важные замечания. Файловые системы, имеющие разные основы, требуют разных обслуживающих программ (соответствующих).

Системы программирования.

  1. Транслятор с языка программирования на машинный.

  2. Библиотеки подпрограмм (стандартные функции).

  3. Редактор исходного текста программ.

  4. Компоновщик – исполняемые модули большинства приложений собираются из нескольких исходных файлов.

  5. Для создания программы под определенные требования могут задействоваться разные наборы исходных файлов.

  6. Отладчик – модуль выполнения программ в пошаговом режиме т.е. приостановка программ после выполнения каждого оператора, для поиска и исправления ошибок.

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

Вычислительный процесс и ресурс.

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

Часто является дефицитом. Разделяемый ресурс – может разделятся между процессами при использовании.

Организация многозадачности.

В первых компьютерах все процессы выполнялись одним ЦПУ, поэтому программы могли выполняться только последовательно после полного завершения предыдущей.

С ростом количества элементов компьютера ЦПУ слишком много отвлекался на управление ими (этими элементами), а производительность в решении задач падала. Поэтому было использовано разделение труда. Устройства получили собственный блок управления и смогли работать одновременно в ЦПУ. Производительность системы в целом повысилась, но процессор являлся самым быстрым элементом и все равно часто простаивал.

Мультипрогаммый режим – пока одна программа выполняет операции ввода/вывода, другая обрабатывается процессором.

В/В

ЦПУ

В/В

ЦПУ

Примечания.

  1. Каждая отдельная задача в параллельном режиме выполняется дольше, чем в последовательном (затраты на переключение между задачами).

  2. Общее время выполнения набора задач в параллельном режиме может быть меньше, чем в последовательном.

Выделение ресурса процессу.

  1. Задача запрашивает ресурс у операционной системы. У центрального модуля. И указывает его характеристики и режимы использования.

  2. Операционная система переключает ЦПУ с исполнения текущей задачи на выполнение короткой служебной программы для выделения ресурса.

  3. Ресурс будет выделен, если:

- он свободен и на него нет запросов от задач большей важности;

- текущий и предыдущий запрос допускают совместное использование ресурса;

- ресурс может быть отобран у менее важных задач.

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

Возможные состояния задачи (процесса).

  1. Активное состояние – исполнение процессов, процесс конкурирует с другими процессами за ресурсы вычислительной системы:

- выполнение – все нужные процессу ресурсы выделены (в однопроцессорной системе в этом состоянии каждый момент времени может находиться единственный процесс).

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

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

  1. Пассивное (не активное) – процесс только известен системе (зафиксирован, идентифицирован, учтен), но в конкуренции за ресурсы не участвует (хотя его существование уже сопряжено с представлением ему ресурсов).

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

  1. Команда пользователя

  2. Выбор из очереди ожидания модулем управления ОС

  3. Вызов одной задачи из другой

  4. Сигнал от внешнего устройства

  5. Естественное окончание работы программы

Причины выхода из состояния выполнения

  1. Естественное завершение или завершение по команде пользователя

  2. Передача ресурсов задачам с более высоким приоритетом

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

  4. Блокировка (обязательный ввод/вывод) не возможность представления запрошенного ресурса.

Реализация последовательного процесса в операционной системе.

И сам процесс и ситуация в которой он существует имеют много параметров. Для хранения и управления на каждый процесс заводится специальная информационная структура – дескриптор.

Элементы дескриптора.

  1. Идентификатор процесса (PID) – это уникальное имя, по которому процесс определяется в системе.

  2. Тип (класс) процессов – набор правил работы с процессом.

  3. Приоритет – важность, значимость для системы, право первоочередного исполнения.

  4. Текущее состояние процесса

  5. Информация о ресурсах, которыми процесс владеет или имеет право пользоваться.

  6. Место в памяти, где сохраняется значение регистров процессора (контекст задачи), в случае прерывания исполнения.

  7. Место в памяти, для взаимодействия с другими процессами.

  8. Параметры времени запуска (время активации, периодичность)

Примечания:

  1. Для повышения производительности дескрипторы располагаются в оперативной памяти. Для каждого состояния процессов операционная система ведет свой список.

  2. В разных операционных системах количество дескрипторах и способ их организации разные.

Процессы и нити (потоки).

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

Основные виды ресурсов компьютеров.

  1. Аппаратные ресурсы

– Процессор (процессорное время)

- память (оперативная память – для мультипрограммного режима должна эффективно разделяться между параллельными процессорами

- максимальный объем памяти каждому процессу – максимальная производительность т.е. скорость выполнения каждого процесса.

- минимальный объем память – каждому процессу выдает по минимуму. Максимальное количество параллельных процессов.

- внешняя память – проблемы с распознаванием, ниже быстродействие.

Примечания:

  1. Сама память и доступ к ней являются разными ресурсами и предоставляются не зависимо друг от друга.

  2. Внешние устройства могут работать параллельно с несколькими пользователями (файловый сервер) или последовательно (принтер).

2. Программные ресурсы

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

- многоразовые

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

- не привилегированные – это обычные программы (прикладные) – направленные на решение задач пользователя. Могут быть прерваны во время работы, причем дальнейшая работоспособность программы и сохранность данных не гарантируется.

- информационные – разного рода данные.

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

Классификация операционных систем.

Критерии классификации (различия) могут быть самыми разными.

- По назначению (сферы применения).

1. Общего назначения, те которые мы видим чаще всего

2. Специального назначения (ОС для мобильного).

3. Для задач реального времени – отклик системы не должен превышать заданного времени (обработка поступающих заданий не должно превышать заданных периодов времени).

- по режиму обработки задач

1. однопрограммные (в банках) – задачи могут выполнятся только последовательно. Все ресурсы компьютера передаются исполняющейся задачи (монопольное использование).

2. многозадачные – одновременно могут решаться несколько задач. Ресурсы компьютера разделяются между процессами.

- количество одновременно работающих пользователей

1. однопользовательские

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

- Количество процессоров (ядер)

1. симметричная – все задачи равномерно распределяются между всеми процессорами.

2. асимметричная – сама операционная система целиком выполняется на одном из процессоров, а прикладные задачи распределяются по остальным процессорам.

- Архитектура

- Монолитная операционная система – представляет собой единую программу, работающую в привилегированном режиме. Очень эффективна для статического набора задач. Любое развитие сильно затруднено.

- Микроядерная – на основе микроядра – ядро это программ выполняющая основные функции операционной системы, работает в привилегированном режиме.

Функции высокого уровня выполняют специальные компоненты – серверы, работающие в пользовательском режиме.

Функционирование (принцип технологии клиент - сервер)

  1. компонент операционной системы или прикладная программа – отправляет ядру операционной системы запрос на обслуживание.

  2. Ядро идентифицирует запрос – ядро идентифицирует запрос и перенаправляет его нужному серверу.

  3. Сервер выполняет задание и возвращает результаты ядру.

  4. Ядро отправляет ответ клиенту.

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

Кроме того серверы хорошо защищены друг от друга как пользовательские процессы.

  1. Аппаратные платформы

- персональные компьютеры

- мобильные

- гаджеты

-миникомпьютеры

- большие компьютеры

- кластеры компьютеров

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

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

- Сетевая информационная система (работа в сети) – взаимодействие между компьютерами по сети.

Управление памятью и задачами в операционной системе.

Управление памятью. Для выполнения задачи ее нужно разместить в ОЗУ. Механизмы распределения памяти между задачами определяют эффективность использования ресурсов системы и ее производительность. Во время выполнения надо сохранять промежуточные данные, подгружать новые, выгружать результаты. Операционная система тоже является программой и при работе занимает некоторый объем память. Остаток ОЗУ распределяется между исполняемыми программами.

Функции по управлению задачами.

  1. Создание и удаление задач (по запросам от пользователей или программ).

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

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

Планирование и диспетчеризация.

Стратегии планирования:

  1. Вычисления должны заканчиваться по возможности в том же порядке, в каком начинались.

  2. Для производительности первыми должны выполняться наиболее короткие процессы.

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

Диспетчеризация.

Дисциплины диспетчеризации – это правила очередности исполнения задач.

Классы дисциплин диспетчеризации :

  1. Бесприоритетные – выбор задачи для исполнения выполняется без учета ее важности и продолжительности обслуживания.

  2. Приоритетные – отдельные задачи имеют преимущественное право исполнения.

Основные правила (дисциплины) диспетчеризации.

  1. Облуживание в порядке живой очереди – задачи обслуживаются в порядке их появления. Если во время исполнения задача блокируется, то после разблокировки она обслуживается вне очереди. Достоинства: простота реализации – малые затраты времени и системных ресурсов. Недостатки: 1. При росте количества одновременно исполняемых заданий среднее время ожидания обслуживания растет пропорционально количеству заданий. 2. Время ожидания не зависит от затрат на исполнение заданий (одинаковое и у коротких и у длинных).

  2. Обслуживание в первую очередь коротких заданий.

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

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

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

Доля времени каждой задачи в этом цикле зависит от ее важности.

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

Примечание:

  1. Если квант цикла обработки мал, то система будет дольше переключаться между задачами, чем их решать.

  2. Если квант велик, то система будет плохо реагировать на внешние события (действия пользователя).

Критерии эффективности диспетчеризации.

  1. Загруженность ЦПУ.

-ПК

-средняя загруженность 2-3%

- пиковая загруженность 100%

- Сервер

- средняя загруженность 15- 40%

- пиковая от 90-100%

2. Пропуская способность процессора.

Это количество процессов, выполняемых в единицу времени.

  1. Время оборота. Время от появления процесса во входной очереди до момента его завершения.

  2. Время ожидания. Это суммарное время нахождение процесса в очередях.

Приоритеты процессов.

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

Причины необходимости изменения приоритетов.

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

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

Многие задачи требуют обязательного выполнения за строго определенный интервал времени.

Способы гарантированного облуживания.

  1. Выделять малую долю процессорного времени любому классу процессов, если хотя бы один процесс этого класса готов к исполнению.

  2. Выделять минимальную долю процессорного времени конкретному процессу если он готов к выполнению.

  3. Выделять конкретному процессу столько времени, чтобы он мог выполниться к нужному сроку.