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

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

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

Реализация динамических приоритетов в операционной системе.

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

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

Выводы.

  1. Гарантируется облуживание процессов любой важности (даже с низким исходным приоритетом).

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

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

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

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

  3. Обычные (стандартные) – большинство прикладных программ (динамический приоритет).

  4. Фоновые – получают ресурсы по остаточному принципу. Когда нет запросов от других задач.

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

Вытесняющие и не вытесняющие алгоритмы диспетчеризации.

Не вытесняющая многозадачность.

Процесс работает до тех пор, пока он сам по собственной инициативе не отдаст управление операционной системе.

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

Недостатки:

  1. Программа может игнорировать действия пользователя.

  2. Программист должен предугадывать и не допускать таких ситуаций.

Достоинства:

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

  2. Каждая программа владеет ресурсами монопольно – нет конкуренции.

Вытесняющая многозадачность.

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

Вытесняющая многозадачность основана на динамичных приоритетах.

Виртуальная память.

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

Физические ячейки памяти составляют пространство физических адресов. Возможности ЦПУ составляют логическое пространство адресов.

Логическое обычно гораздо больше физического, но реально данные могут располагаться только в физических ячейках. Для эффективного использования возможностей ЦПУ выбор адресов размещения данных не ограничивается объемом ОЗУ. ЦПУ может дать указание записать или считать данные из реально не существующего адреса. Физическим размещением таких данных занимается микросхемы обслуживания памяти. На самом деле они записывают данные на другое устройство хранения. Таким образом при работе программы одновременно существуют две системы адресов хранения данных:

  1. Логическая

  2. Физическая (где размещены реально)

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

Достоинство.

Возможность перемещения программы в физической памяти во время ее выполнения.

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

  1. Оперативный учет свободной и занятой памяти.

  2. Выделение памяти в процесс.

  3. Удаление процесса из памяти после завершения.

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

  5. Возвращение процессов в ОЗУ с других устройств хранения когда в ней освобождается место.

  6. Настройка связей логических адресов программы с физическими ячейками памяти.

Способы трансляции

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

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

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

  1. Сегментное распределение. Исторические первый метод разрывного распределения памяти. Память выделялась не одним сплошным куском а несколькими фрагментами под одну программу. ПРОГРАММА делилась программистом на логические части – на сегменты. Недостатки: фрагментация памяти. Сигмент программы это достаточно большой блок, поэтому если одновременно работают несколько программ то в память загружены довольно крупные блоки. Между первой и второй задачей остается большой кусок и в это место пытается влезть еще больший сегмент, но не помещается. Достаточно большие пустоты остаеются после удаления из оперативной памяти. Сегмент – логиеская часть программы. Переходов между разными сегментами минимизировано.

  2. Страниченое распределение – был применен более тупой подход, но более эффективный количествоенно. Память делится на блоки фиксированного размера (обычно для убосбва расчетов размер кратен степени 2ки). На диске страницы храняться в виде специального файла – файл подскачки (файл обмена, paging file). Делится на сегменты, без учета логики, сколько влезло перемещается в ОЗУ. Будет много служебной информации по работе с данными сегментами. Достоинство: минимальная возможная фрагментация. Т.е. дырка может быть в единственную страницу. Если у нас несколько процессов используют одну и тоже функцию то трудно разделять программу между несколькими процессорами.

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

Распределение оперативной памяти в разных ОС происходит по разному.

Требования к операционным системам.

Принципы построения ОС.

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

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

  1. Приницип функциональной избирательности. В любой операционной системе имеется ядро (важные модули, обеспечивающие основные функции системы):

- наиболее часто используемые модули

- размер ядра должен быть минимальным

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

  1. Генирируемости ОС. Ядро и основные компоненты должны находится в оперативной памяти. Центральная управляющая программа операционной системы должна иметь возможность настраивать (подстраивать), находящиеся в ОЗУ важные модули под конкретную конфигурацию вычислительного комплекса, или решаемых задач. Обычно выполняются редко перед длительной эксплуатацией. Например в Linux системах имеется возможность сгенирировать нестандартное ядро. Для других операционных систем конфигурирования происходит на этапе установки. Принцип функциональной избыточности. Возможность выполнения одних и тех же действий разными средствами (УПРАВЛЕНИЕ ресурсами, организация взаимаодействия процессов и т.д. ).

  2. Принцип виртуализации – предстваление структуры системы в виде набора планировщиков процессов, распределителей ресурсов, и единой системы централизованного распределения (ресурсов). Операционная система скрывает от пользователя и приложений реальные ресурсы заменяя их абстракцией (МОДЕЛЬЮ, предаствалением). Пользователь работет с машиной в образах и терминах предметной области, а не терминах компьютера.

Характеристики виртуальной машины.

  1. Едино образная по логике работы память.

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

  3. Произвольное количесвто внешних устройств (виртуальных)., способных работать параллельно или последовантельно, СИНХРОННО ИЛИ асинхронно. Информация на этих устройствах не ограничивается по размеру.

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

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

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

Для этого применяются стандартные интерфейсы.

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

Принцип совместимости.

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

Приемственность и стандартность интерфейса пользователя.

Виды совместимости.

  1. На уровне двоичных кодов самый крутой вид совместимости – испольяемая программа exe файл может запускатся в другой операционной системе.

- совместимы команды процессора

- совместимы системные вызовы

- совместимы вызовы библиотек

  1. Совместимость на уровне исходных тектов программ.

-наличие нужного компилятора в состове программного обеспечения

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

3. Совместимость на уровне архитектур компьютеров.

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

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

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

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

Операционная систмеа должна позволять вносить дополнения, не нарушая своей целостности. Это возможнос если система строится по модульному принципу. Модули это самостоятельные части которые не влияют на другие компоненты.

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

  1. Модульная структура – модули взаимодействуют только через странартизованный интерфейс.

  2. Использование объектов. Это идея модельности, но перенесенная на данные (абстрактные типы данных над которыми можно выполнять только те действия, которые приедусмотрены содержимым объекта). Замена, Добавление новых и увделение старых объектов не требует изменения кодов программы и другие обхекты при этом тоже никка не меняются.

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

  4. Возможность вызова удаленных процедур (процудура одного сервера доступны любым другим)

  5. Загружаемые драйверы

Принцип пененосимости или мобильности.

Это возможность перемещения операционной системы с одной программно-аппаратной платформы на другую.

Элементы принципа (правила переносимости).

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

- ИСКЛЮЧЕНИЕ кода, работающего с аппаратурой напрямую, т.е через страндартный интерфейс

- Принцип безопасности

Направления безопасности:

- защита ресурсов одного пользователя от других.

-защита от захвата одним пользователем всех ресурсов системы.

- защита от несанкционированного доступа

Уровни (классы безопастности) по Оранжевой книги.

D - система не соответствует требованиям всех других классов.

C- подуровни C1 и C2 (большинство современных операционных систем)

- идентификация и аутентификация пользователя при входе.

- избирательный контроль доступа

-владелец объекта задает права его использования.

- средства наблюдения и фиксации важных событий

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

A – это формальная математически обоснованная доказательство соответствия системы трубованиям безопасности.

До 90% процессорного времени занимают процедуры безопасности.

Командный язык операционной системы.

Это набор команд и их синтаксис с помощью которых происходит управление работой компьютера.

Режим командной строки.

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

В операционной системе Windows каждое устрйоство хранения считается автономным. Обозначается буквами латинского алфовита (диск а:, диск b:, диск…., диск z: - 26). Кроме способа обозначения устройств хранения есть зарезервированные имена для других устройства prn:

фИзическое устройство хранения данных может быть разбито на несколько логических (один дисковод, но несколько логических дисков – c:,d:,e:).

Для активизации нужного устройства хранения подается команда в виде его имени.

Структура данных на устройстве хранения.

В основе любого устройства среде WINDOWS лежит корневой каталог. Всегда обозначается одинаково \. В нем могут находится файлы и подкаталоги.

\

A

B

C

1

2

3

4

11

12

41

42

\A\1\11 – переход в каталог

.. – шаг назад

..\12 переход из каталога 11 в каталог 12

..\..\..\с\4\42 – переход из каталога 11 в каталог 42

..\с\3 из в в каталог 3

..\..\3 Из 41в 3

Переход от корневого каталога (гарантия).

Команды для работы с каталогами

Dir (Directory) - вывод на экран содержимого указанного каталога. Dir Путь.

Примечание: без указания пути показывает содержимое текущего каталога.

Dir /w (width) вводит просто имена (вид вывода каталога).

/p (page) постраничный вывод

Md (make) – создание каталогов.

Рекомендации для имен.

-Имя должно состоять из минимального количества символов.

- одно слово (слитно)

- латинскими буквами

Cd (change …) – переместится в другой каталог

Rd(remove) – удалить каталог

Примечания:

- каталог невозможно удалить изнутри

- невозможно удалить непустой каталог

Команды для работы с файлами.

Type – вывод на экран содержимого файла.

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

Copy – копирование источник информации + приемник информации

Con (console)

Copy a.txt con: - вывод содержимого файла на дисплей

Prn:

Copy con: a.txt – создавать текстовый файл

После этого курсор переходит на новую строку, вводится тело файла

Enter - переход на новую строку

Окончание файла – contl+z или ^z

Ren переименование (старое имя. А затем новое)

Del (delete) – удаление

Шаблон

Это инструмент для выбора группы файлов из исходного набора по заданным критериям

Шаблоны формируются при помощи 2х символов.

*-замещает символы начинаю с той позиции в которой находится и до конца имени или расширения файлов a*.*

? – делает неважным любой символ в определенной позиции

Регистратор (реестр) Windows.

Любой сложной программе надо хранить множество настроек: системных, сетевых, пользовательских. Каким образом хранить эти настройки?

Исторически сложилось несколько подходов:

  1. Хранение настроек в наборе специальных файлов:

- файлы инициализации ОС (настройки ОС)

- файлы настроек приложений

- файл регистрационной базы данных

Файлы инициализации ОС.

В старых версиях системы такие файлы как win.ini – конфигурация системы (установленные программы), system.ini – устройства, драйверы, аппаратные средства, probmen.ini – настройки программ, winfile.ini – настройка файлов, control.ini настройка панели управления.

Файлы инициализации приложений.

Количество и размеры окон, настройки цвета, путь к каталогу программы, индивидуальные настройки пользователя. Файл регистрационной базы данных (reg.dat – иерархическая база данных). Информация о взаимодействии программ между собой, ассоциация с файлами и тому подоб подобное

Подобное.

Неудобство ini-файлов.

- Сложность правки (настройки) вручную.

-Неопределенное место хранения. Каталог дистрибутива, каталог установленной программы, системные каталоги.

- незащищенность от случайного изменения (слабая защита).

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

Реестр.

Единственный (единый) источник данных, хранилище настроек.

Единообразный доступ к данным.

Удобство работы программ установки приложений.

Все нужные данные ищутся в реестре, новые записываются туда же. Это позволяет в дальнейшем корректно использовать и удалять программу.

Отыскание, распознавание и учет устройства компьютера (при каждом запуске).

Обеспечение данными работы всех устройств и программ.

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

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

Обеспечение индивидуальных настроек разных аппаратных конфигураций.

Структура реестра.

Древовидная. Все развилки называются ключами, а пути к развилкам ветвями. Ключи верхнего уровня называются корневыми (начинается с буквы H(handle).