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

Нажмите для полного просмотра!
Основы разработки программ для распределенной обработки данных, слайд №1Основы разработки программ для распределенной обработки данных, слайд №2Основы разработки программ для распределенной обработки данных, слайд №3Основы разработки программ для распределенной обработки данных, слайд №4Основы разработки программ для распределенной обработки данных, слайд №5Основы разработки программ для распределенной обработки данных, слайд №6Основы разработки программ для распределенной обработки данных, слайд №7Основы разработки программ для распределенной обработки данных, слайд №8Основы разработки программ для распределенной обработки данных, слайд №9Основы разработки программ для распределенной обработки данных, слайд №10Основы разработки программ для распределенной обработки данных, слайд №11Основы разработки программ для распределенной обработки данных, слайд №12Основы разработки программ для распределенной обработки данных, слайд №13Основы разработки программ для распределенной обработки данных, слайд №14Основы разработки программ для распределенной обработки данных, слайд №15Основы разработки программ для распределенной обработки данных, слайд №16Основы разработки программ для распределенной обработки данных, слайд №17Основы разработки программ для распределенной обработки данных, слайд №18Основы разработки программ для распределенной обработки данных, слайд №19Основы разработки программ для распределенной обработки данных, слайд №20Основы разработки программ для распределенной обработки данных, слайд №21Основы разработки программ для распределенной обработки данных, слайд №22Основы разработки программ для распределенной обработки данных, слайд №23Основы разработки программ для распределенной обработки данных, слайд №24Основы разработки программ для распределенной обработки данных, слайд №25Основы разработки программ для распределенной обработки данных, слайд №26Основы разработки программ для распределенной обработки данных, слайд №27Основы разработки программ для распределенной обработки данных, слайд №28Основы разработки программ для распределенной обработки данных, слайд №29Основы разработки программ для распределенной обработки данных, слайд №30Основы разработки программ для распределенной обработки данных, слайд №31Основы разработки программ для распределенной обработки данных, слайд №32Основы разработки программ для распределенной обработки данных, слайд №33Основы разработки программ для распределенной обработки данных, слайд №34Основы разработки программ для распределенной обработки данных, слайд №35Основы разработки программ для распределенной обработки данных, слайд №36Основы разработки программ для распределенной обработки данных, слайд №37Основы разработки программ для распределенной обработки данных, слайд №38Основы разработки программ для распределенной обработки данных, слайд №39Основы разработки программ для распределенной обработки данных, слайд №40Основы разработки программ для распределенной обработки данных, слайд №41Основы разработки программ для распределенной обработки данных, слайд №42Основы разработки программ для распределенной обработки данных, слайд №43Основы разработки программ для распределенной обработки данных, слайд №44Основы разработки программ для распределенной обработки данных, слайд №45Основы разработки программ для распределенной обработки данных, слайд №46Основы разработки программ для распределенной обработки данных, слайд №47Основы разработки программ для распределенной обработки данных, слайд №48Основы разработки программ для распределенной обработки данных, слайд №49Основы разработки программ для распределенной обработки данных, слайд №50Основы разработки программ для распределенной обработки данных, слайд №51Основы разработки программ для распределенной обработки данных, слайд №52Основы разработки программ для распределенной обработки данных, слайд №53Основы разработки программ для распределенной обработки данных, слайд №54Основы разработки программ для распределенной обработки данных, слайд №55Основы разработки программ для распределенной обработки данных, слайд №56Основы разработки программ для распределенной обработки данных, слайд №57Основы разработки программ для распределенной обработки данных, слайд №58Основы разработки программ для распределенной обработки данных, слайд №59Основы разработки программ для распределенной обработки данных, слайд №60Основы разработки программ для распределенной обработки данных, слайд №61Основы разработки программ для распределенной обработки данных, слайд №62

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы разработки программ для распределенной обработки данных. Доклад-сообщение содержит 62 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





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

Слайд 2





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

Слайд 3





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

Слайд 4





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

Слайд 5





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

Слайд 6


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

Слайд 7





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

Слайд 8





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

Слайд 9





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

Слайд 10





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

Слайд 11





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

Слайд 12





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

Слайд 13





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

Слайд 14





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

Слайд 15





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

Слайд 16





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

Слайд 17





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

Слайд 18





Распределенные базы данных
Создание распределённых баз данных (РБД) вызвано попыткой одновременного решения двух задач: интеграции и децентрализации.
Интеграция подразумевает централизованное управление и ведение баз данных.
Децентрализация обеспечивает хранение данных там, где они появились и обрабатываются.
Описание слайда:
Распределенные базы данных Создание распределённых баз данных (РБД) вызвано попыткой одновременного решения двух задач: интеграции и децентрализации. Интеграция подразумевает централизованное управление и ведение баз данных. Децентрализация обеспечивает хранение данных там, где они появились и обрабатываются.

Слайд 19





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

Слайд 20





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

Слайд 21





POSIX
Описание слайда:
POSIX

Слайд 22





POSIX
POSIX (англ. Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. 
Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.
Описание слайда:
POSIX POSIX (англ. Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.

Слайд 23





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

Слайд 24





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

Слайд 25





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

Слайд 26





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

Слайд 27





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

Слайд 28





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

Слайд 29





Расширения для приложений реального времени
Описание слайда:
Расширения для приложений реального времени

Слайд 30





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

Слайд 31





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

Слайд 32





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

Слайд 33





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

Слайд 34





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

Слайд 35





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

Слайд 36





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

Слайд 37





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

Слайд 38





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

Слайд 39





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

Слайд 40





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

Слайд 41





Threads-расширение
Описание слайда:
Threads-расширение

Слайд 42





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

Слайд 43





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

Слайд 44





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

Слайд 45





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

Слайд 46





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

Слайд 47





Дополнительные расширения стандарта для приложений реального времени
Описание слайда:
Дополнительные расширения стандарта для приложений реального времени

Слайд 48





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

Слайд 49





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

Слайд 50





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

Слайд 51





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

Слайд 52





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

Слайд 53





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

Слайд 54





Профили прикладных контекстов реального времени
Описание слайда:
Профили прикладных контекстов реального времени

Слайд 55





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

Слайд 56





Протоколы и интерфейсы
Описание слайда:
Протоколы и интерфейсы

Слайд 57





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

Слайд 58





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

Слайд 59





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

Слайд 60





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

Слайд 61





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

Слайд 62





Спасибо за внимание!
Описание слайда:
Спасибо за внимание!



Похожие презентации
Mypresentation.ru
Загрузить презентацию