Презентация Основы разработки программ для распределенной обработки данных онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Основы разработки программ для распределенной обработки данных абсолютно бесплатно. Урок-презентация на эту тему содержит всего 62 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Основы разработки программ для распределенной обработки данных
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:62 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:237.37 kB
- Просмотров:117
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Открытые системы и](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img1.jpg)
Содержание слайда: Открытые системы и объектно-ориентированный подход
В связи с применением открытых систем весьма перспективным направлением представляется объектно-ориентированный подход проектирования и программирования.
Объектно-ориентированное программирование - это относительно новый подход к разработке программных систем.
№3 слайд
![Основные принципы](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img2.jpg)
Содержание слайда: Основные принципы объектно-ориентированного подхода:
данные и процедуры объединяют в программные объекты;
для связи объектов используют механизм посылки сообщения;
объекты с похожими свойствами объединяют в классы;
объекты наследуют свойства других объектов через иерархию классов.
№4 слайд
![Объектно-ориентированные](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img3.jpg)
Содержание слайда: Объектно-ориентированные системы обладают следующими основными
cвойствами:
инкапсуляция (скрытие реализации) - данные и процедуры объекта скрываются от внешнего пользователя, и связь с объектом ограничивается набором сообщений, которые «понимает» объект;
полиморфизм (многозначность сообщений) - одинаковые сообщения по-разному понимаются разными объектами, в зависимости от их класса;
динамическое (позднее) связывание - значение имени (область памяти для данных или текст программы для процедур) становится известным только во время выполнения программы;
абстрактные типы данных - объединение данных и операций для описания новых типов, позволяющие использовать новые типы наравне с уже существующими.
наследование - позволяет при создании новых объектов использовать свойства уже существующих объектов, описывая заново только те свойства, которые отличаются.
№5 слайд
![Объектно-ориентированный](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img4.jpg)
Содержание слайда: Объектно-ориентированный подход реализации системы хорошо согласуется с основными свойствами открытых систем
Дружественность. Удобство взаимодействия человека с системой требует от последней наличия всех трех вышеуказанных качеств.
Мобильность. Инкапсуляция позволяет хорошо скрыть машинно-зависимые части системы, которые должны быть реализованы заново при переходе на другую платформу.
Расширяемость. Наследование позволяет сэкономить значительные средства при расширении системы, поскольку многое не нужно создавать заново, а некоторые новые компоненты можно получить, лишь слегка изменив старые.
Интероперабельность. Способность системы взаимодействовать с другими системами базируется на принципе посылки сообщения и соответствующих понятиях полиморфизма и динамического связывания.
№7 слайд
![Параллельные вычислительные](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img6.jpg)
Содержание слайда: Параллельные вычислительные системы
Параллельные вычислительные системы — это физические компьютерные, а также программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах.
Например, для быстрой сортировки массива на двухпроцессорной машине можно разделить массив пополам и сортировать каждую половину на отдельном процессоре.
Сортировка каждой половины может занять разное время, поэтому необходима синхронизация.
№8 слайд
![Параллелизм Идея](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img7.jpg)
Содержание слайда: Параллелизм
Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно.
Обычно параллельные вычисления требуют координации действий.
Параллельные вычисления существуют в нескольких формах:
параллелизм на уровне битов,
параллелизм на уровне инструкций,
параллелизм данных,
параллелизм задач.
Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.
№9 слайд
![Параллелизм Писать программы](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img8.jpg)
Содержание слайда: Параллелизм
Писать программы для параллельных систем сложнее, чем для последовательных, так как конкуренция за ресурсы представляет новый класс потенциальных ошибок в программном обеспечении (багов), среди которых состояние гонки является самой распространённой.
Взаимодействие и синхронизация между процессами представляют большой барьер для получения высокой производительности параллельных систем.
№10 слайд
![Параллелизм на уровне битов](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img9.jpg)
Содержание слайда: Параллелизм на уровне битов
Эта форма параллелизма основана на увеличении размера машинного слова.
Увеличение размера машинного слова уменьшает количество операций, необходимых процессору для выполнения действий над переменными, чей размер превышает размер машинного слова.
К примеру: на 8-битном процессоре нужно сложить два 16-битных целых числа. Для этого вначале нужно сложить нижние 8 бит чисел, затем сложить верхние 8 бит и к результату их сложения прибавить значение флага переноса. Итого 3 инструкции. С 16-битным процессором можно выполнить эту операцию одной инструкцией.
№11 слайд
![Параллелизм на уровне](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img10.jpg)
Содержание слайда: Параллелизм на уровне инструкций
Компьютерная программа — это, по существу, поток инструкций, выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы.
Данный приём известен как параллелизм на уровне инструкций. Продвижения в развитии параллелизма на уровне инструкций в архитектуре компьютеров происходили с середины 1980-х до середины 1990-х.
Современные процессоры имеют многоступенчатый конвейер команд.
Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе.
Процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности.
№12 слайд
![Параллелизм данных Основная](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img11.jpg)
Содержание слайда: Параллелизм данных
Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных.
Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины.
Распределением данных между процессорами занимается программа.
Роль программиста в этом случае обычно сводится к заданию настроек векторной или параллельной оптимизации компилятору, директив параллельной компиляции, использованию специализированных языков для параллельных вычислений.
№14 слайд
![Распределённые операционные](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img13.jpg)
Содержание слайда: Распределённые операционные системы
Распределённая ОС, динамически и автоматически распределяя работы по различным машинам системы для обработки, заставляет набор сетевых машин обрабатывать информацию параллельно.
Пользователь распределённой ОС, вообще говоря, не имеет сведений о том, на какой машине выполняется его работа.
Распределённая ОС существует как единая операционная система в масштабах вычислительной системы.
Каждый компьютер сети, работающей под управлением распределённой ОС, выполняет часть функций этой глобальной ОС.
Распределённая ОС объединяет все компьютеры сети в том смысле, что они работают в тесной кооперации друг с другом для эффективного использования всех ресурсов компьютерной сети.
№15 слайд
![Распределенные базы данных](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img14.jpg)
Содержание слайда: Распределенные базы данных
Распределённые базы данных (англ. "Distributed DataBase", DDB) представляют определённым образом связанные между собой БД, рассредоточенные на какой-либо территории (локально или регионально), обеспечивающие свободный обмен информацией и поиск данных в них.
№16 слайд
![Распределенные базы данных](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img15.jpg)
Содержание слайда: Распределенные базы данных
При распределённой обработке работа с базой (представление данных, их обработка и др.) ведётся на компьютере клиента, а поддержание базы в актуальном состоянии – на сервере.
При этом такие БД обычно располагаться на нескольких серверах – различных узлах компьютерной сети, а некоторые данные могут дублироваться.
№17 слайд
![Распределенные базы данных](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img16.jpg)
Содержание слайда: Распределенные базы данных
Размещение частей общей БД бывает избыточным или безызбыточным.
При избыточном размещении определяют степень дублирования частей (фрагментов) единой БД. Чтобы поддерживать целостность БД необходимо постоянно корректировать все её копии.
Преимущества дублирования уменьшаются, когда увеличивается стоимость хранения её частей, что связано с необходимостью обеспечивать устойчивость системы.
№18 слайд
![Распределенные базы данных](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img17.jpg)
Содержание слайда: Распределенные базы данных
Создание распределённых баз данных (РБД) вызвано попыткой одновременного решения двух задач: интеграции и децентрализации.
Интеграция подразумевает централизованное управление и ведение баз данных.
Децентрализация обеспечивает хранение данных там, где они появились и обрабатываются.
№20 слайд
![Распределенные банки данных](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img19.jpg)
Содержание слайда: Распределенные банки данных (РБнД)
Если накапливаемая в сетях машиночитаемая (электронная) информация не размещается на одной ЭВМ, то доступ к подобным базам и банкам данных осуществляется с помощью сетевых СУБД.
Они дают возможность безадресно обращаться к любым данным (аналогично обычным БД, расположенным на одной ЭВМ) и порой предоставляют пользователям новые, ранее неизвестные, возможности работы с информацией.
При этом возникают новые проблемы, решение которых осуществляется путём использования новых технологий.
№22 слайд
![POSIX POSIX англ. Portable](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img21.jpg)
Содержание слайда: POSIX
POSIX (англ. Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой.
Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.
№25 слайд
![Необходимость стандарта](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img24.jpg)
Содержание слайда: Необходимость стандарта
Стандарт POSIX необходим по той причине, что, несмотря на то, что операционная система UNIX де-факто является стандартом, все же среди ее реализаций есть достаточное количество различий, не позволяющих создавать полностью переносимые приложения.
Но, если для переносимости на другую платформу приложений UNIX достаточно небольшого количества изменений, портируемость приложений реального времени вызывает гораздо больше трудностей, поскольку существует огромное количество систем реального времени.
UNIX не является системой реального времени и стандартом де-факто для этих приложений.
№26 слайд
![Переносимость приложений](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img25.jpg)
Содержание слайда: Переносимость приложений
Необходимость добиться переносимости приложений для систем реального времени привела к созданию в среде разработчиков POSIX соответствующей рабочей группы.
Эта рабочая группа разрабатывает стандарты, которые добавляют к службам операционных систем, используемых приложениями реального времени, свойства POSIX (или UNIX).
Ее задача формулируется так: "Для поддержки переносимости приложений реального времени разработать стандарты, содержащие минимальное количество синтаксических или семантических изменений или дополнений к стандартам POSIX".
№27 слайд
![Приложения реального времени](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img26.jpg)
Содержание слайда: Приложения реального времени
Во многих приложениях реального времени, таких как небольшие встроенные системы, есть ограниченный набор специальных физических средств, для которых нужны операционные системы с минимальными функциональными возможностями.
Например, во многих системах может отсутствовать жесткий диск, аппаратный диспетчер памяти, а объем памяти может быть небольшим.
Для таких систем необходимо, чтобы стандарт позволял реализацию только конкретного подмножества POSIX-функций.
№30 слайд
![Диспетчеризация процессов](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img29.jpg)
Содержание слайда: Диспетчеризация процессов реального времени
В базовом стандарте определяется модель параллельной работы процессов, но никакого механизма диспетчеризации и никакой концепции приоритетов не специфицируется.
Для приложений реального времени, которые должны быть переносимыми, необходимо специфицировать некоторый механизм диспетчеризации, удовлетворяющий специфике реального времени.
В стандарте POSIX.4 специфицируется три механизма диспетчеризации.
У каждого процесса есть атрибут диспетчеризации, который должен устанавливаться в соответствии с одним из трех механизмов:
* SCHED_FIFO: это механизм приоритетной диспетчеризации с фиксированными приоритетами, при которой процессы с одинаковыми приоритетами обрабатываются по принципу "первым пришел - первым вышел" (FIFO). Этот механизм должен обслуживать минимум 32 уровня приоритетов.
* SCHED_RR: этот механизм подобен механизму SCHED__FIFO, но в нем для диспетчеризации равноприоритетных процессов используется метод квантования времени (круговая диспетчеризация).
* SCHED_OTHER: этот механизм диспетчеризации определяется конкретной реализацией.
№31 слайд
![Диспетчеризация процессов](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img30.jpg)
Содержание слайда: Диспетчеризация процессов реального времени
Распространенным методом диспетчеризации процессов в системах реального времени является метод диспетчеризации с фиксированными приоритетами.
Он очень прост, и, назначая процессам приоритеты монотонно-пропорционально или монотонно-пропорционально с учетом некоторого порога, можно добиться его высокой эффективности.
Используя эти методы диспетчеризации, а также функции установки приоритета каждого процесса и функции включения (разрешения) нужного метода, в операционных системах в стандарте POSIX можно выполнять диспетчеризацию приложений реального времени.
№32 слайд
![Блокирование виртуальной](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img31.jpg)
Содержание слайда: Блокирование виртуальной памяти
Хотя в стандарте POSIX.1 использование виртуальной памяти не требуется, в UNIX-системах этот механизм широко распространен.
Он очень эффективен при работе программ, не относящихся к программам реального времени, но приводит к непредсказуемости времени реакции системы.
Для того чтобы ограничить время доступа к памяти, в стандарте POSIX.4 определяются функции блокировки (фиксации) в памяти всего адресного пространства процесса или отдельных его областей.
Эти функции следует использовать для критичных ко времени процессов, а также для процессов, с которыми синхронизируются критичные ко времени процессы.
В этом случае время их реакции может быть предсказуемым.
№33 слайд
![Синхронизация процессов С. В](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img32.jpg)
Содержание слайда: Синхронизация процессов
С. В стандарте POSIX.4 определяются функции управления синхронизацией процессов с помощью семафоров-счетчиков.
Эти семафоры идентифицируются по имени, находящемся в некотором пространстве имен, определяемом при реализации стандарта.
Это пространство имен может совпадать, но не обязательно, с пространством имен файлов.
Семафор-счетчик - это общий механизм синхронизации, который позволяет реализовать взаимно исключающий доступ к разделяемым ресурсам, передачу сигналов, ожидание процессов и другие механизмы синхронизации.
Одним из наиболее распространенных применений семафоров является совместное использование данных процессами.
№34 слайд
![Синхронизация процессов К](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img33.jpg)
Содержание слайда: Синхронизация процессов
К сожалению, семафоры-счетчики, определение которых дается в стандарте POSIX.4, допускают "незаконное отрицание приоритета" .
Отрицание приоритета возникает тогда, когда высокоприоритетный процесс вынужден ждать завершения некоторого действия, выполняемого процессом с более низким приоритетом.
При использовании соответствующих протоколов, отрицание приоритета может быть законным, вызванным продолжительностью выполнения критических секций, то есть секций кода, во время выполнения которых процесс резервирует конкретный ресурс для монопольного использования.
Однако при использовании условных семафоров может возникнуть незаконное отрицание приоритета; это означает, что задержка высокоприоритетных задач вызывается не длительностью выполнения критических секций, а зависит от общего времени выполнения низкоприоритетных задач.
Эта ситуация может возникнуть тогда, когда высокоприоритетная задача ожидает освобождения низкоприоритетной задачей семафора, который управляет доступом к разделяемым ресурсам, а низкоприоритетная задача вытеснена задачей с промежуточным значением приоритета.
№35 слайд
![Разделяемая Память В](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img34.jpg)
Содержание слайда: Разделяемая Память
В соответствии с POSIX.1 процессы имеют независимые адресные пространства, но во многих приложениях реального времени (и других) требуется совместное использование, с очень малыми издержками, большого количества данных.
Это возможно в случае, если процессы могут разделять части физической памяти.
В стандарте POSIX.4 определяются объекты разделяемой памяти, представляющие собой участки физической памяти, которые могут отображаться на адресное пространство процесса.
Когда два или несколько процессов отображают один и тот же объект, они разделяют связанный с ним участок памяти.
Как и в случае семафоров, объекты разделяемой памяти идентифицируются по имени, принадлежащему некоторому пространству имен, которое определяется при реализации стандарта.
Если к объектам данных, находящихся в разделяемой памяти, нужен взаимно исключающий доступ, для управления этим доступом можно использовать семафоры.
№36 слайд
![Сигналы реального времени](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img35.jpg)
Содержание слайда: Сигналы реального времени
Механизм сигналов позволяет извещать о событиях, возникающих в системе, но требования приложений реального времени полностью удовлетворить не может.
Сигналы не могут образовывать очереди, поэтому некоторые события могут теряться.
Сигналы не могут иметь приоритетов, из-за чего возможно увеличение времени отклика на события, требующие неотложной реакции.
Так как многие системы реального времени должны обеспечивать быстрый обмен событиями, интерфейс сигналов в стандарте POSIX.4 расширен, чтобы получить следующие возможности:
Сигналы реального времени устанавливаются в очередь, поэтому события не теряются.
Необработанные сигналы реального времени извлекаются из очереди по приоритетам, где в качестве приоритета служит номер сигнала.
Сигналы реального времени содержат дополнительное поле данных, которое может использоваться прикладной системой для обмена между генератором сигнала и его обработчиком.
Расширен диапазон доступных прикладной системе сигналов.
№37 слайд
![Взаимодействие процессов Для](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img36.jpg)
Содержание слайда: Взаимодействие процессов
Для взаимодействия процессов определяется простой механизм очередей сообщений.
Очереди сообщений идентифицируются по имени, принадлежащему некоторому пространству имен, определяемому при реализации стандарта.
Сообщения имеют связанное с ними поле приоритета и извлекаются из очереди в соответствии с приоритетом.
Это способствует сокращению незаконного отрицания приоритета, возникающего в системе.
Передача и получение сообщений может блокироваться и разблокироваться; передача и получение не синхронизируются, то есть, отправитель не ждет, когда получатель действительно извлечет сообщение из очереди.
№38 слайд
![Часы и таймеры Определяются](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img37.jpg)
Содержание слайда: Часы и таймеры
Определяются часы реального времени, которые измеряют время с точностью настенных часов.
Эти часы должны обеспечивать разрешение минимум 20 мс.
Так как время представляется с наносекундным разрешением, разработчики могут воспользоваться высокоточными аппаратными часами.
Для отсчета временных интервалов на основе часов реального времени или других часов, определенных при реализации стандарта, могут создаваться таймеры.
По истечении заданного интервала времени эти таймеры генерируют сигнал, направленный процессу, создавшему данный таймер.
№39 слайд
![Асинхронный Ввод Вывод В](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img38.jpg)
Содержание слайда: Асинхронный Ввод/Вывод
В стандарте определяются функции, которые обеспечивают возможность совмещать прикладную обработку и операции В/В, инициированные данным приложением.
Асинхронные операции В/В подобны обычным операциям В/В, за исключением того, что после того как процесс инициировал асинхронную операцию В/В, он продолжает выполняться параллельно этой операции.
Когда операция завершается, данному приложению может быть послан сигнал.
№42 слайд
![Интерфейс для поддержки](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img41.jpg)
Содержание слайда: Интерфейс для поддержки нескольких параллельных действий
В стандарте POSIX.4a определяется интерфейс для поддержки нескольких параллельных действий внутри каждого POSIX-процесса.
Этот интерфейс называется "нитями" (threads).
Нити, определяемые в POSIX.4a, имеют некоторое состояние взаимодействия, которое обладает меньшим контекстом, чем состояние процесса.
Все нити внутри одного процесса разделяют одно и то же адресное пространство.
№43 слайд
![Управление нитями Эти функции](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img42.jpg)
Содержание слайда: Управление нитями
Эти функции позволяют управлять созданием и завершением выполнения нитей, а также связанными с ними операциями.
Определяются функции создания нити, ожидания завершения нити, нормального завершения нити, открепления нити (то есть указания разработчику, что связанная с нитью память может после завершения нити перераспределяться) или создания конкретной нити только в том случае, если она еще не была создана.
Другие функции позволяют управлять идентификаторами нитей.
Определяются также функции для управления атрибутами при создании нитей, такими, как размер стека, возможность перераспределения памяти, занимаемой нитью после ее создания, и т.п.
№44 слайд
![Диспетчеризация нитей В. Для](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img43.jpg)
Содержание слайда: Диспетчеризация нитей
В. Для нитей определяются те же методы диспетчеризации, что и для процессов в стандарте POSIX.4 (приоритетное вытеснение, с FIFO- или круговым обслуживанием равноприоритетных нитей).
Так как в системе могут одновременно существовать два планировщика (диспетчера) - планировщик процессов и планировщик нитей - определяется концепция конкурентного пространства.
Конкурентное пространство некоторой нити - это набор нитей, с которыми она конкурирует за центральный процессор.
При реализации может возникнуть три основных вида различных конкурентных пространств:
Глобальная Диспетчеризация. Все нити имеют глобальное конкурентное пространство, и, следовательно, диспетчеризация каждой нити производится с учетом всех остальных нитей, имеющихся в системе, независимо от того, какому процессу они принадлежат.
Локальная Диспетчеризация. Нити конкурируют только с другими нитями того же самого процесса. Диспетчеризация производится на двух уровнях. Сначала подвергаются диспетчеризации все процессы по отношению друг к другу. Затем нити выбранного процесса конкурируют друг с другом за центральный процессор.
Смешанная Диспетчеризация. Некоторые нити имеют глобальное конкурентное пространство, а другие v локальное. Диспетчеризация производится на двух уровнях: на первом уровне диспетчеризации подвергаются процессы и глобальные нити; на втором уровне происходит диспетчеризация локальных нитей выбранного процесса.
Наилучшие результаты для приложений реального времени дает глобальная и смешанная диспетчеризация, так как в этих случаях можно производить диспетчеризацию на одном и том же уровне всех, самых разных, конкурирующих объектов, обладающих жесткими временными требованиями.
№45 слайд
![Синхронизация нитей Для нитей](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img44.jpg)
Содержание слайда: Синхронизация нитей
Для нитей определяется два примитива синхронизации: мьютексы и условные переменные.
Мьютексы используются для синхронизации взаимно исключающего (mutually exlusive) доступа нитей к разделяемым ресурсам, а условные переменные используются для сигнализации и ожидания событий среди нитей.
Мьютексы определяются с помощью трех альтернативных протоколов синхронизации:
NO_PRIO_INHERIT. Приоритет нити не зависит от ее владения мьютексами (мьютексом владеет данная нить, которая его заблокировала);
PRIOJNHERIT. Нить, владеющая некоторым мьютексом, наследует приоритеты нитей, ожидающих захвата этого мьютекса. Это протокол наследования приоритетов;
PRIO_PROTECT. Когда нить блокирует захваченный ею мьютекс, она наследует приоритет, соответствующий данному мьютексу. Этот приоритет определяется прикладной программой как атрибут мьютекса. В случае использования соответствующего значения, равного наименьшему целому числу, превышающему значения приоритетов, получаем протокол приоритетной защиты, называемый также эмуляцией протокола с перекрытием приоритета .
Используя один из двух последних протоколов, можно избежать незаконного отрицания приоритета, достигая, таким образом, высокой эффективности работы системы с жесткими требованиями к характеристикам реального времени.
№48 слайд
![Таймауты Некоторые службы](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img47.jpg)
Содержание слайда: Таймауты
Некоторые службы операционной системы могут приостанавливать вызывающий процесс на неопределенный период времени, пока не освободятся и не станут доступными необходимые ресурсы.
Службы, которые могут с наибольшей вероятностью использоваться в критичных ко времени участках прикладных программ и в которых еще не используются таймауты:
Ожидать семафор для разблокирования;
Ожидать прибытия сообщения в очередь сообщений;
Послать сообщение для установки его в очередь;
Ожидать мьютекс для разблокирования.
№49 слайд
![Часы времени выполнения Для](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img48.jpg)
Содержание слайда: Часы времени выполнения
Для каждого процесса и каждой нити определяются необязательные часы процессорного времени.
Для управления часами времени выполнения используются интерфейсы часов и таймеров.
На базе этих часов могут определяться таймеры; они могут измерять излишний расход времени процессом или нитью, позволяя динамически выявлять программные ошибки или ошибки вычисления максимально возможного времени выполнения (в наихудшем случае)..
№50 слайд
![Спорадический сервер](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img49.jpg)
Содержание слайда: Спорадический сервер
Определяется новый механизм диспетчеризации (SCHED_SPORADIC), в котором реализуется алгоритм диспетчеризации спорадического сервера.
Этот механизм может использоваться для обработки апериодических событий на нужном уровне приоритета.
При этом гарантированно удовлетворяются временные требования, предъявляемые к низкоприоритетным задачам.
Спорадический сервер обеспечивает быстрое время отклика и делает поведение системы, в которой обрабатываются апериодические события, предсказуемым.
№51 слайд
![Управление прерываниями](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img50.jpg)
Содержание слайда: Управление прерываниями
Многие системы реального времени должны иметь возможность захватывать прерывания, сгенерированные специальными устройствами, и обрабатывать их в прикладной программе.
Предложенные в стандарте функции позволяют процессу или нити обслужить прерывание с помощью разработанной пользователем подпрограммы обработки прерываний, блокироваться в ожидании прибытия прерывания и защитить критичные участки кода от прерывания.
Из-за множества отличий в обработке прерываний в разных архитектурах определяемые интерфейсы не позволят достигнуть полной переносимости прикладных программ.
Однако с помощью данного интерфейса, благодаря установлению эталонной модели и заключению немобильного кода в определенные модули, переносимость приложений улучшается.
№52 слайд
![Управление устройствами ввода](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img51.jpg)
Содержание слайда: Управление устройствами ввода/вывода
В системах реального времени взаимодействие со средой обычно происходит через специальные устройства, такие, как цифровые или аналоговые устройства ввода/вывода, счетчики и т. п.
Драйверы этих специальных устройств обычно пишутся разработчиком приложения, а стандартизованные интерфейсы этих драйверов позволяют хорошо определить прикладные операции, вызывающие такой драйвер.
Определяется функция, которая позволяет прикладной программе передать управляющую информацию в драйвер и из драйвера устройства.
Аналогично программам, использующим функции управления прерываниями, программы, использующие функции управления устройствами, могут не быть полностью переносимыми, так как сами драйверы обычно немобильны.
Однако при использовании стандартного эталонного интерфейса взаимодействия с драйверами устройств переносимость прикладных систем улучшается.
№55 слайд
![Подмножество интерфейсов Для](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img54.jpg)
Содержание слайда: Подмножество интерфейсов
Для маленьких встроенных систем реального времени было бы предпочтительно некоторое подмножество этих интерфейсов.
Например, многие небольшие встроенные системы имеют ограниченную аппаратную поддержку, из-за чего очень трудно реализовать такие возможности, как файловая система или независимые адресные пространства для процессов.
Определяются четыре системы реального времени:
Минимальная Система. Соответствует небольшой встроенной системе без диспетчера памяти (MMU), файловой системы (диска) и терминала В/В. Разрешается только один процесс, но с параллельным выполнением нескольких нитей.
Контроллер реального времени. Соответствует управляющей системе специального назначения. Подобен минимальному профилю реального времени, но с добавлением файловой системы и терминала В/В. Разрешается только один процесс с несколькими нитями.
Специализированная Система. Соответствует большой встроенной системе без файловой системы. В ней выполняется несколько процессов и нитей.
Многоцелевая Система. Соответствует большой системе реального времени со всеми поддерживаемыми функциями.
№57 слайд
![TCP это транспортный](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img56.jpg)
Содержание слайда: TCP
— это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета.
Гарантирует целостность передаваемых данных и уведомление отправителя о результатах передачи.
Реализация TCP, как правило, встроена в ядро ОС, хотя есть и реализации TCP в контексте приложения.
№58 слайд
![SOCKET Сокеты англ. socket](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img57.jpg)
Содержание слайда: SOCKET
Со́кеты (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью.
Сокет — абстрактный объект, представляющий конечную точку соединения.
Следует различать клиентские и серверные сокеты.
Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети, а серверные — с коммутаторами.
Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.
Интерфейс сокетов впервые появился в Unix.
Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами.
№59 слайд
![Принципы сокетов Каждый](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img58.jpg)
Содержание слайда: Принципы сокетов
Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы не могут использовать порты меньше 1024).
Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения.
При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т.д.
Каждый сокет имеет свой адрес.
ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес.
Если привязать сокет к UNIX-адресу, то будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него.
Сокеты типа INET доступны из сети и требуют выделения номера порта.
Обычно клиент явно подсоединяется к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные между ним и сервером.
№60 слайд
![HTTP англ. HyperText Transfer](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img59.jpg)
Содержание слайда: HTTP
(англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
№61 слайд
![URI Основным объектом](/documents_6/b7f7f7957a3a72d01546814c5dea92e2/img60.jpg)
Содержание слайда: URI
Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента.
Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное.
Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д.
Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
Скачать все slide презентации Основы разработки программ для распределенной обработки данных одним архивом:
Похожие презентации
-
Разработка программных приложений для работы с базами данных
-
Программирование и разработка веб-приложений. Использование Python для работы с базой данных
-
Разработка параллельных программ для систем с распределенной памятью
-
Проектирование БД и создание программ для обработки данных по темам тестирования студентов
-
Дипломный проект. Программный комплекс «Система деканат» для обработки данных студентов МИРЭА
-
Разработка программного обеспечения для подключения к базам данных на платформе Microsoft . NET
-
Разработка программного модуля для формирования таблиц данных в среде пакета «Statistica» для анализа методом дисперсионного анализа
-
Проект: перевод. Последовательность действий для разработки обработчика событий
-
Разработка программной платформы для создания и проведения квест-мероприятий
-
Разработка программы для шифрования и дешифрования текста особой важности