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

Содержание

Открытые системы и объектно-ориентированный подход В связи с применением открытых систем весьма перспективным направлением представляется объектно-ориентированный подход проектирования и программирования. Объектно-ориентированное программирование - это относительно новый подход к разработке программных систем.

Слайд 1Тема 2-2. Основы разработки программ для распределенной обработки данных
Гончаров Сергей Леонидович
Старший

преподаватель

Слайд 2Открытые системы и объектно-ориентированный подход
В связи с применением открытых систем весьма

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

Компьютерные сети

МИОЭС


Слайд 3Основные принципы объектно-ориентированного подхода:
данные и процедуры объединяют в программные объекты;
для связи

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

Компьютерные сети

МИОЭС


Слайд 4Объектно-ориентированные системы обладают следующими основными cвойствами:
инкапсуляция (скрытие реализации) - данные и процедуры

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

Компьютерные сети

МИОЭС


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

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

Компьютерные сети

МИОЭС


Слайд 6Компьютерные сети

МИОЭС


Слайд 7Параллельные вычислительные системы
Параллельные вычислительные системы — это физические компьютерные, а также программные

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

Компьютерные сети

МИОЭС


Слайд 8Параллелизм
Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на

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

Компьютерные сети

МИОЭС


Слайд 9Параллелизм
Писать программы для параллельных систем сложнее, чем для последовательных, так как

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

Компьютерные сети

МИОЭС


Слайд 10Параллелизм на уровне битов
Эта форма параллелизма основана на увеличении размера машинного слова.


Увеличение размера машинного слова уменьшает количество операций, необходимых процессору для выполнения действий над переменными, чей размер превышает размер машинного слова.
К примеру: на 8-битном процессоре нужно сложить два 16-битных целых числа. Для этого вначале нужно сложить нижние 8 бит чисел, затем сложить верхние 8 бит и к результату их сложения прибавить значение флага переноса. Итого 3 инструкции. С 16-битным процессором можно выполнить эту операцию одной инструкцией.

Компьютерные сети

МИОЭС


Слайд 11Параллелизм на уровне инструкций
Компьютерная программа — это, по существу, поток инструкций, выполняемых

процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы.
Данный приём известен как параллелизм на уровне инструкций. Продвижения в развитии параллелизма на уровне инструкций в архитектуре компьютеров происходили с середины 1980-х до середины 1990-х.
Современные процессоры имеют многоступенчатый конвейер команд.
Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе.
Процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности.

Компьютерные сети

МИОЭС


Слайд 12Параллелизм данных
Основная идея подхода, основанного на параллелизме данных, заключается в том,

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

Компьютерные сети

МИОЭС


Слайд 13Параллелизм задач
Стиль программирования, основанный на параллелизме задач, подразумевает, что вычислительная задача

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

Компьютерные сети

МИОЭС


Слайд 14Распределённые операционные системы
Распределённая ОС, динамически и автоматически распределяя работы по различным

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

Компьютерные сети

МИОЭС


Слайд 15Распределенные базы данных
Распределённые базы данных (англ. "Distributed DataBase", DDB) представляют определённым образом

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

Компьютерные сети

МИОЭС


Слайд 16Распределенные базы данных
При распределённой обработке работа с базой (представление данных, их

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

Компьютерные сети

МИОЭС


Слайд 17Распределенные базы данных
Размещение частей общей БД бывает избыточным или безызбыточным. 
При избыточном размещении определяют степень

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

Компьютерные сети

МИОЭС


Слайд 18Распределенные базы данных
Создание распределённых баз данных (РБД) вызвано попыткой одновременного решения

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

Компьютерные сети

МИОЭС


Слайд 19Распределенные базы данных
Выделяют однородные и неоднородные РБД.
В неоднородных РБД используются

различные СУБД.
Основная проблема при этом заключается в сложности их интеграции.

Компьютерные сети

МИОЭС


Слайд 20Распределенные банки данных (РБнД)
Если накапливаемая в сетях машиночитаемая (электронная) информация не размещается

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

Компьютерные сети

МИОЭС


Слайд 21POSIX

Компьютерные сети

МИОЭС


Слайд 22POSIX
POSIX (англ. Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих

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

Компьютерные сети

МИОЭС


Слайд 23Стандарт POSIX
В стандарте POSIX определяется переносимый интерфейс для UNIX-подобных операционных систем.


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

Компьютерные сети

МИОЭС


Слайд 24POSIX
POSIX - это развивающийся набор стандартов, каждый их которых охватывает различные

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

Компьютерные сети

МИОЭС


Слайд 25Необходимость стандарта
Стандарт POSIX необходим по той причине, что, несмотря на то,

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

Компьютерные сети

МИОЭС


Слайд 26Переносимость приложений
Необходимость добиться переносимости приложений для систем реального времени привела к

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

Компьютерные сети

МИОЭС


Слайд 27Приложения реального времени
Во многих приложениях реального времени, таких как небольшие встроенные

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

Компьютерные сети

МИОЭС


Слайд 28Профили
Рабочая группа определила четыре профиля для контекста приложений реального времени:
для

небольших встроенных систем,
контроллеров реального времени,
больших встроенных систем и
больших систем реального времени.

Компьютерные сети

МИОЭС


Слайд 29РАСШИРЕНИЯ ДЛЯ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ

Компьютерные сети

МИОЭС


Слайд 30Диспетчеризация процессов реального времени
В базовом стандарте определяется модель параллельной работы процессов,

но никакого механизма диспетчеризации и никакой концепции приоритетов не специфицируется.
Для приложений реального времени, которые должны быть переносимыми, необходимо специфицировать некоторый механизм диспетчеризации, удовлетворяющий специфике реального времени.
В стандарте POSIX.4 специфицируется три механизма диспетчеризации.
У каждого процесса есть атрибут диспетчеризации, который должен устанавливаться в соответствии с одним из трех механизмов:
* SCHED_FIFO: это механизм приоритетной диспетчеризации с фиксированными приоритетами, при которой процессы с одинаковыми приоритетами обрабатываются по принципу "первым пришел - первым вышел" (FIFO). Этот механизм должен обслуживать минимум 32 уровня приоритетов.
* SCHED_RR: этот механизм подобен механизму SCHED__FIFO, но в нем для диспетчеризации равноприоритетных процессов используется метод квантования времени (круговая диспетчеризация).
* SCHED_OTHER: этот механизм диспетчеризации определяется конкретной реализацией.

Компьютерные сети

МИОЭС


Слайд 31Диспетчеризация процессов реального времени
Распространенным методом диспетчеризации процессов в системах реального времени

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

Компьютерные сети

МИОЭС


Слайд 32Блокирование виртуальной памяти
Хотя в стандарте POSIX.1 использование виртуальной памяти не требуется,

в UNIX-системах этот механизм широко распространен.
Он очень эффективен при работе программ, не относящихся к программам реального времени, но приводит к непредсказуемости времени реакции системы.
Для того чтобы ограничить время доступа к памяти, в стандарте POSIX.4 определяются функции блокировки (фиксации) в памяти всего адресного пространства процесса или отдельных его областей.
Эти функции следует использовать для критичных ко времени процессов, а также для процессов, с которыми синхронизируются критичные ко времени процессы.
В этом случае время их реакции может быть предсказуемым.

Компьютерные сети

МИОЭС


Слайд 33Синхронизация процессов
С. В стандарте POSIX.4 определяются функции управления синхронизацией процессов с

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

Компьютерные сети

МИОЭС


Слайд 34Синхронизация процессов
К сожалению, семафоры-счетчики, определение которых дается в стандарте POSIX.4, допускают

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

Компьютерные сети

МИОЭС


Слайд 35Разделяемая Память
В соответствии с POSIX.1 процессы имеют независимые адресные пространства, но

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

Компьютерные сети

МИОЭС


Слайд 36Сигналы реального времени
Механизм сигналов позволяет извещать о событиях, возникающих в системе,

но требования приложений реального времени полностью удовлетворить не может.
Сигналы не могут образовывать очереди, поэтому некоторые события могут теряться.
Сигналы не могут иметь приоритетов, из-за чего возможно увеличение времени отклика на события, требующие неотложной реакции.
Так как многие системы реального времени должны обеспечивать быстрый обмен событиями, интерфейс сигналов в стандарте POSIX.4 расширен, чтобы получить следующие возможности:
Сигналы реального времени устанавливаются в очередь, поэтому события не теряются.
Необработанные сигналы реального времени извлекаются из очереди по приоритетам, где в качестве приоритета служит номер сигнала.
Сигналы реального времени содержат дополнительное поле данных, которое может использоваться прикладной системой для обмена между генератором сигнала и его обработчиком.
Расширен диапазон доступных прикладной системе сигналов.

Компьютерные сети

МИОЭС


Слайд 37Взаимодействие процессов
Для взаимодействия процессов определяется простой механизм очередей сообщений.
Очереди сообщений

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

Компьютерные сети

МИОЭС


Слайд 38Часы и таймеры
Определяются часы реального времени, которые измеряют время с точностью

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

Компьютерные сети

МИОЭС


Слайд 39Асинхронный Ввод/Вывод
В стандарте определяются функции, которые обеспечивают возможность совмещать прикладную обработку

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

Компьютерные сети

МИОЭС


Слайд 40Другие Функции
В стандарте POSIX.4 определяются другие функции, такие, как синхронизированный ввод/вывод,

файлы реального времени и т. п.

Компьютерные сети

МИОЭС


Слайд 41THREADS-РАСШИРЕНИЕ

Компьютерные сети

МИОЭС


Слайд 42Интерфейс для поддержки нескольких параллельных действий
В стандарте POSIX.4a определяется интерфейс для

поддержки нескольких параллельных действий внутри каждого POSIX-процесса.
Этот интерфейс называется "нитями" (threads).
Нити, определяемые в POSIX.4a, имеют некоторое состояние взаимодействия, которое обладает меньшим контекстом, чем состояние процесса.
Все нити внутри одного процесса разделяют одно и то же адресное пространство.

Компьютерные сети

МИОЭС


Слайд 43Управление нитями
Эти функции позволяют управлять созданием и завершением выполнения нитей, а

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

Компьютерные сети

МИОЭС


Слайд 44Диспетчеризация нитей
В. Для нитей определяются те же методы диспетчеризации, что и

для процессов в стандарте POSIX.4 (приоритетное вытеснение, с FIFO- или круговым обслуживанием равноприоритетных нитей).
Так как в системе могут одновременно существовать два планировщика (диспетчера) - планировщик процессов и планировщик нитей - определяется концепция конкурентного пространства.
Конкурентное пространство некоторой нити - это набор нитей, с которыми она конкурирует за центральный процессор.
При реализации может возникнуть три основных вида различных конкурентных пространств:
Глобальная Диспетчеризация. Все нити имеют глобальное конкурентное пространство, и, следовательно, диспетчеризация каждой нити производится с учетом всех остальных нитей, имеющихся в системе, независимо от того, какому процессу они принадлежат.
Локальная Диспетчеризация. Нити конкурируют только с другими нитями того же самого процесса. Диспетчеризация производится на двух уровнях. Сначала подвергаются диспетчеризации все процессы по отношению друг к другу. Затем нити выбранного процесса конкурируют друг с другом за центральный процессор.
Смешанная Диспетчеризация. Некоторые нити имеют глобальное конкурентное пространство, а другие v локальное. Диспетчеризация производится на двух уровнях: на первом уровне диспетчеризации подвергаются процессы и глобальные нити; на втором уровне происходит диспетчеризация локальных нитей выбранного процесса.
Наилучшие результаты для приложений реального времени дает глобальная и смешанная диспетчеризация, так как в этих случаях можно производить диспетчеризацию на одном и том же уровне всех, самых разных, конкурирующих объектов, обладающих жесткими временными требованиями.

Компьютерные сети

МИОЭС


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


Мьютексы используются для синхронизации взаимно исключающего (mutually exlusive) доступа нитей к разделяемым ресурсам, а условные переменные используются для сигнализации и ожидания событий среди нитей.
Мьютексы определяются с помощью трех альтернативных протоколов синхронизации:
NO_PRIO_INHERIT. Приоритет нити не зависит от ее владения мьютексами (мьютексом владеет данная нить, которая его заблокировала);
PRIOJNHERIT. Нить, владеющая некоторым мьютексом, наследует приоритеты нитей, ожидающих захвата этого мьютекса. Это протокол наследования приоритетов;
PRIO_PROTECT. Когда нить блокирует захваченный ею мьютекс, она наследует приоритет, соответствующий данному мьютексу. Этот приоритет определяется прикладной программой как атрибут мьютекса. В случае использования соответствующего значения, равного наименьшему целому числу, превышающему значения приоритетов, получаем протокол приоритетной защиты, называемый также эмуляцией протокола с перекрытием приоритета .
Используя один из двух последних протоколов, можно избежать незаконного отрицания приоритета, достигая, таким образом, высокой эффективности работы системы с жесткими требованиями к характеристикам реального времени.

Компьютерные сети

МИОЭС


Слайд 46Другие функции
Для управления специфическими данными, связанными с нитями, для завершения нитей,

для посылки сигналов нитям и управления реентерабельными функциями, в стандарте POSIX.4а определяются и другие функции.

Компьютерные сети

МИОЭС


Слайд 47ДОПОЛНИТЕЛЬНЫЕ РАСШИРЕНИЯ СТАНДАРТА ДЛЯ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ

Компьютерные сети

МИОЭС


Слайд 48Таймауты
Некоторые службы операционной системы могут приостанавливать вызывающий процесс на неопределенный период

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

Компьютерные сети

МИОЭС


Слайд 49Часы времени выполнения
Для каждого процесса и каждой нити определяются необязательные часы

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

Компьютерные сети

МИОЭС


Слайд 50Спорадический сервер
Определяется новый механизм диспетчеризации (SCHED_SPORADIC), в котором реализуется алгоритм диспетчеризации

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

Компьютерные сети

МИОЭС


Слайд 51Управление прерываниями
Многие системы реального времени должны иметь возможность захватывать прерывания, сгенерированные

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

Компьютерные сети

МИОЭС


Слайд 52Управление устройствами ввода/вывода
В системах реального времени взаимодействие со средой обычно происходит

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

Компьютерные сети

МИОЭС


Слайд 53Другие функции
В POSIX.4b определяются и другие интересные возможности, такие, как эффективное

создание процесса (spawn).

Компьютерные сети

МИОЭС


Слайд 54ПРОФИЛИ ПРИКЛАДНЫХ КОНТЕКСТОВ РЕАЛЬНОГО ВРЕМЕНИ

Компьютерные сети

МИОЭС


Слайд 55Подмножество интерфейсов
Для маленьких встроенных систем реального времени было бы предпочтительно некоторое

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

Компьютерные сети

МИОЭС


Слайд 56ПРОТОКОЛЫ И ИНТЕРФЕЙСЫ

Компьютерные сети

МИОЭС


Слайд 57TCP
— это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за

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

Компьютерные сети

МИОЭС


Слайд 58SOCKET
Со́кеты (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при

таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью.
Сокет — абстрактный объект, представляющий конечную точку соединения.
Следует различать клиентские и серверные сокеты.
Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети, а серверные — с коммутаторами.
Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.
Интерфейс сокетов впервые появился в Unix.
Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами.

Компьютерные сети

МИОЭС


Слайд 59Принципы сокетов
Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы

не могут использовать порты меньше 1024).
Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения.
При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т.д.
Каждый сокет имеет свой адрес.
ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес.
Если привязать сокет к UNIX-адресу, то будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него.
Сокеты типа INET доступны из сети и требуют выделения номера порта.
Обычно клиент явно подсоединяется к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные между ним и сервером.

Компьютерные сети

МИОЭС


Слайд 60HTTP
(англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных

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

Компьютерные сети

МИОЭС


Слайд 61URI
Основным объектом манипуляции в HTTP является ресурс, на который указывает URI

(англ. Uniform Resource Identifier) в запросе клиента.
Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное.
Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д.
Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.

Компьютерные сети

МИОЭС


Слайд 62Спасибо за внимание!
Компьютерные сети

МИОЭС


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика