Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

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

 

3.2. средства диагностики и восстановления работоспособности ЭВМ и ОС.

- программы диагностики ОС

- откат к последней работоспособной конфигурации

- средства реанимации поврежденных и удаленных файлов

 

Возможность развития.

 

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

 

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

 

4.3. исправление (обнаружение программных ошибок)

 

4.4. новые версии и редакции ОС

 

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

1. управление процессами

2. управление памятью

3. управление файлами

4. управление внешними устройствами

5. защита данных

6. администрирование

7. интерфейс прикладного программирования

8. пользовательский интерфейс

 

Архитектура операционной системы

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

 

Большинство современных ОС представляет собой хорошо структурированные модульные системы способные к развитию, расширению и переносу на новые платформы, разработанные с использованием основных принципов:

 

28.02.13

 

1. модульная организация ОС

2. функциональная избыточность

3. функциональная избирательность

4. параметрическая универсальность

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

6. разделение модулей на две группы по функциям: ядро – включает модули, выполняющие основные функции ОС; модули, выполняющие вспомогательные функции

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

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

9. минимизация функций ядра за счет реализации самых важных функций

 

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

 

Такая организация ОС предполагает следующую структуру:

- главная программа, которая вызывает требуемые сервисные процедуры

- сервисные процедуры, реализующие системные вызовы

- утилиты, обслуживающие сервисные процедуры

 

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

 

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

 

05.03.13.

Для обеспечения высокой скорости работы ОС модули ядра в большинстве своем загружаются в соответствующие разделы оперативной памяти и являются резидентами, т.е. постоянно там находятся. Они работают в привилегированном режиме, обеспечивающим защиту ядра от работы приложений и возможность работы модулей ядра с полным набором машинных инструкций, что обеспечивает решение задачи управления ресурсами ЭВМ. Остальные модули ОС, не вошедшие в ядро, являются транзитными и загружаются в оперативную память по мере необходимости. Вспомогательные модули подразделяют на группы: утилиты ОС - программы, выполняющие отдельные задачи управления, сопровождения и оптимизации вычислительной машины; системные обрабатывающие программы – набор программ, являющихся составной частью ОС и обеспечивающий возможность простейшей обработки различной информации; библиотеки процедур – обеспечивают упрощение разработки программ за счет использования стандартных библиотек ввода/вывода, математических функций и др; приложения пользователей – программы, устанавливаемые на компьютер по желанию пользователя.

 

Многослойная архитектура многоуровневой ОС включает:

1. средства аппаратной поддержки - значительная часть функций ОС выполняется аппаратными средствами. Чисто программных ОС в настоящее время не существует. В современных системах есть средств аппаратной поддержки, которые прямо учувствуют в вычислительных процессах:

- система прерываний

- средства поддержки привилегированного режима

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

- системный таймер

- средства переключения контекстов процессов

- средства защиты памяти и др.

 

2. машинно-зависимые модули ОС – в этих модулях отражается специфика аппаратной платформы компьютера. Он призван скрыть от вышестоящих слоев деталей технического устройства ЭВМ.

 

3. базовые механизмы ядра. Набор модулей этого слоя выполняет наиболее примитивные операции ядра:

- переключение между процессами

- диспетчеризацию прерываний

- перемещение страниц между основной и дисковой памятью и тд.

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

 

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

 

5. интерфейс системных вызовов – верхний слой ядра ОС, взаимодействующий с приложениями и системными утилитами. Образует прикладной и программный интерфейс ОС. Функции API, обслуживающие системные вызовы предоставляют доступ к ресурсам систем в удобной и компактной форме.

 

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

 

Данная многоуровневая архитектура имеет ряд проблем:

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

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

 

МИКРОЯДЕРНАЯ АРХИТЕКТУРА ОС

 

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

 

07.03.13

 

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

 

Достоинства микроархитектуры:

- единообразный интерфейс

- простота расширяемости

- высокая гибкость

- высокая надежность

- поддержка распределенных систем

- поддержка объектно-ориентированного программирования

 

Тема 2: Организация вычислительного процесса

Концепция процессов и потоков

 

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

 

Стек – структура данных, которая обслуживается по принципу: последним пришел – ушел первым.

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

 

В настоящее время большинство ОС поддерживает информацию по четырем основным категориям:

- процессам

- памяти

- устройствам ввода/вывода

- файлам

 

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

 

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

 

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

 

12.03.13

 

Процесс рассматривается ОС как заявка на предоставление всех ресурсов, кроме процессорного времени. Оно распределяется ОС между более мелкими единицами – потоками.

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

 

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

 

МУЛЬТИПРОГРАММИРОВАНИЕ

 

14.03.13

 

Мультипроцессорная обработка.

 

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

 

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

- симметричные системы – термин относится как архитектуре, так и к способу организации вычислительного процесса. Система предполагает однотипность и единообразие подключения всех процессоров и использования ими единой, общей ля всех памяти. Для обеспечения большой скорости обмена между памятью и процессорами они должны находиться в одном корпусе, что существенно снижает возможность масштабирования, ограничивая число процессоров 8-16 единицами. Такое масштабирование называют вертикальным. Так как все процессоры используют одну и ту же память, скорость обмена данными между процессорами максимальная, что обеспечивает высокую производительность для системы в целом. Управление всеми процессорами осуществляет одна ОС, обеспечивая симметричное мультипроцессирование. С точки зрения ОС все процессоры равноправны и она не отдает предпочтения ни одному из них. Разные процессоры в какой-то момент времени могут одновременно обслуживать, как разные, так и одинаковые модули общей ОС, которые являются рентабельными или повторно водимыми. ОС является децентрализованной, ее модули могут выполняться на любом процессоре. Загрузкой процессоров управляет планировщик, который выбирает очередную задачу, которая будет выполняться на данном процессоре. Одна задача при параллельных процессах может решаться на нескольких ЦП.

-ассиметричная система – предполагают, что процессоры системы могут быть разнотипными, как по характеристикам и подключению, так и по функциональной роли. Процессору может быть назначена определенная функциональная ниша – вычисления, обработка графики. Вывод информации на печать и тд. Такая неоднородность ведет к структурным различиям во фрагментах системы, содержащих различные процессы. Так как каждый процессор может иметь свое подключение, отпадает требование единого корпуса. Система может состоять из нескольких блоков, каждый из которых может содержать любое число процессоров. Такое масштабирование называют горизонтальным, а саму систему – кластерами. В такой системе возможно только ассиметричное мультипроцессирование, поскольку здесь есть иерархия подчинения процессоров по принципу «ведущий-ведомый». В таки системах ОС работает на главном ЦП, который управляет всеми остальными ресурсами.

 

Управление процессами и потоками

Любая современная ОС в своем составе имеет подсистему управления системами и потоками, которая непосредственно влияет на функционирование ОС.

Ее основные функции:

1. создание процессов и потоков

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

3. изоляция процессов

4. планирование выполнения процессов и потоков

5. диспетчеризация потоков

6. синхронизация процессов и потоков

7. завершение и уничтожение процессов и потоков

 

19.03.13

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

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

Планирование осуществляется на основе информации, хранящейся в описателях процессов и потоков. Принимается во внимание приоритет потоков, время их нахождения в очереди, суммарное время выполнения и тд.

Диспетчеризация заключается в реализации найденного в ходе планирования решения. В организации непосредственного переключения с одного потока на другой. Включает три этапа:

· Сохранение контекста текущего потока

· Загрузка контекста потока выбранного в результате планирования

· Запуск нового потока на выполнение

В случае, когда система решает несколько независимых задач несмотря на то, что они выполняются асинхронно, может возникнуть необходимость во взаимодействии при обмене данными. Согласование скоростей и потоков позволяет предотвратить эффект “гонок” и взаимных блокировок.

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

События приводящие к завершению процесса:

1. Обычный выход, связанный с завершение задачи.

2. Выход по ошибке (в том числе пользовательской).

3. Выход по неисправимой программной ошибке.

4. Уничтожение другим процессом.

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

Модели процессов и потоков.

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

Образ процесса – множество, в которое входит программа, данные, стеки и атрибуты процессов.

При управлении процессами ОС использует данные сосредоточенные в двух информационных структурах:

1. Дескриптор – содержит такую информацию о процессе, которая необходима ядру в течение всей жизни процесса, независимо от его активности и нахождения образа (в оперативной памяти или на диске). Дескриптор и процессор объединяются в таблицу процессов, которая размещается в области ядра. Эта информация используется ОС для синхронизации и планирования

2.

 

21.03.13

 

В дескрипторе содержится информация:

1. по идентификации процесса

- идентификатор процесса

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

 

2. по состоянию процесса

3. для управления процессом

 

Контекст процесса

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

 

Типичная модель процесса в упрощенном виде имеет всего одну очередь процессов всегда готовых к выполнению. На практике такая ситуация маловероятна и рано или поздно часть процессов по какой-то причине будут заблокированы. Стоящий впереди очереди заблокированный процесс остановит всю очередь, поэтому надо либо существенно усложнять процесс диспетчеризации, обеспечивая возможность поиска и определения первого готового к выполнению процесса и эвакуация впереди стоящих заблокированных, либо менять саму схему. Как правило, идут по второму пути, добавляя вторую очередь, в которую переводят все процессы, заблокированные по какой-то причине. Там они ожидают события, которое приведет их в разряд готовых к выполнению. Недостатком такой схемы является то, что процессор работает намного быстрее операций ввода-вывода. Это приведет к тому, что через короткий промежуток времени все процессы будут заблокированы, ожидая операции ввода-вывода. Выходом является либо увеличение оперативной памяти (дорого), либо использование в качестве расширения оперативной памяти дискового пространства, куда выгружать процессы с неблагоприятным прогнозом выполнения по времени (свопинг).

 

26.03.13

 

Потоки и их модели

При создании потоков ОС создает специальную информационную структуру – описатель потока, в котором находятся блок управления потоком и его контекст.

 

Способы реализации пакетов потока:

 

1. в пространстве пользователя (ULT).

В программе, состоящей из ULT потоков, все действия по управлению потоков выполняет само приложение. Ядро о потоках ничего не знает и управляет решением на уровне процесса. Для этого в каждом процессе имеет собственная управляющая структура, включающая библиотеки подпрограмм для работы с потоками (их создание, уничтожение, блокировка…) и таблицу потоков, содержащий счетчик команд, идентификатор потока, регистры состояния и другое. Когда поток переходит в состояние готовности или блокировки, вся информация для повторного запуска хранится в таблице потока.

Достоинства схемы:

- повышение производительности за счет отсутствия потерь времени на переключение в режим ядра и обратно

- упрощенная система управления процессами за счет снижения уровня детальности – ядро о потоках ничего не знает

- использование потоков на уровне пользователя применимо для любой ОС, в том числе и не поддерживающей управление потока

 

Недостатки:

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

- невозможно обрабатывать потоки на разных процессорах – система закрепляет весь процесс за одним процессором

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

- внутри одного потока не существует прерываний по таймеру

 

2. на уровне ядра (KLT)

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

 

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

- возможность обработки одновременно нескольких потоков одного процесса на разных процессорах

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

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

 

Недостаток:

- потеря времени при переключении в режим ядра и обратно.

 

Планирование заданий, процессов и потоков.

 

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

 

28.03.13

 

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

 

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

 

Независимо от типа планирования основными участниками планирования являются:

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

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

- долгосрочное планирование – осуществляется в период принятия решения о добавлении процесса в множество выполняемых системой процессов.

 

Алгоритмы планирования потоков.

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

1. выполнение – активное состояние потока, во время которого он обладает всеми необходимыми ресурсами и обрабатывается ЦП.

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

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

 

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

 

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

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

Базовые особенности:

- планирование распределяется между ОС и прикладными программами

- необходимость частой передачи управления между ОС и задачи

- зависания приложений могут привести к краху системы

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

Особенности:

- функции планирования сосредоточены в ОС

- планирование осуществляется на основе квантования процессорного времени

- планирование на основе учета приоритета потоков

 

Date: 2016-07-18; view: 466; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию