- •1. Автоматы и формальные языки. Классификация формальных языков и автоматов. Концепция порождения и распознавания. (та)
- •2. Технологические процессы изготовления печатных плат. (ктоп)
- •3. Прерывания в мпс. Типы прерываний. (мпс)
- •1. Регулярные языки и конечные автоматы. (та)
- •2. Индуктивные паразитные наводки в цепях эва. (ктоп)
- •3. Обмен информацией между микропроцессором и внешним устройством. (мпс)
- •1. Контекстно-свободные грамматики и магазинные автоматы. (та)
- •2. Эффективность электромагнитного экранирования. Расчёт электромагнитных экранов. (ктоп)
- •3. Система ввода-вывода. Параллельный порт. (мпс)
- •1. Произвольные автоматы и машина Тьюринга. (та)
- •2. Емкостные паразитные наводки в цепях эва. (ктоп)
- •3. Понятие «технология программирования». Характеристики качества программного обеспечения. Сложность по. Пути ограничения сложности. (тп)
- •1. Абстрактный синтез конечных автоматов. Минимизация и детерминация конечных автоматов. Автоматы Мили и Мура. (та)
- •2. Понятие надёжности электронного аппарата. Расчёт времени безотказной работы. (ктоп)
- •3. Модели жизненного цикла по. Методологии разработки сложных программных систем. Примеры «тяжелого» и «легкого» процесса. (тп)
- •1. Структурный автомат. Канонический метод структурного синтеза автоматов. Этапы синтеза. (та)
- •2. Конструкции корпусов эа и механизмы переноса тепла в них. (ктоп)
- •3. Универсальный язык моделирования uml, его назначение. Варианты использования. Диаграммы вариантов использования. Диаграммы классов. (тп)
- •1. Память структурного автомата. Элементы памяти. Триггеры. (та)
- •2. Роль стандартизации в технике конструирования. Применение ескд и естд. (ктоп)
- •3. Универсальный язык моделирования uml, его назначение. Диаграммы взаимодействия: последовательные и кооперативные. Применение этих диаграмм. (тп)
- •Кооперативные диаграммы
- •1. Экспертный метод весовых коэффициентов важности. (моделирование)
- •2. Понятие вычислительного процесса и ресурса, классификация ресурсов, основные виды ресурсов. (спо)
- •3. Универсальный язык моделирования uml, его назначение. Диаграммы деятельности. Диаграммы состояний. Применение этих диаграмм. (тп)
- •1. Планирование и обработка результатов расслоенного (ступенчатого) эксперимента. (моделирование)
- •2. Процессы, состояния процесса, операции над процессами, планирование и диспетчеризация процессов. (спо)
- •3. Тестирование и отладка по. Основные принципы тестирования. Стратегии тестирования программных модулей. Методы структурного тестирования. (тп)
- •1. Полный факторный эксперимент (пфэ). (моделирование)
- •2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на низком уровне. (спо)
- •3. Тестирование по. Основные принципы тестирования. Структурное и функциональное тестирование. Методы функционального тестирования. (тп)
- •1. Модифицированный метод случайного баланса (ммсб). (моделирование)
- •2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на высоком уровне. (спо)
- •3. Эволюция технологий программирования. Структурное программирование. Объектно-ориентированное программирование. (тп)
- •1. Метод наименьших квадратов с предварительной ортогонализацией факторов (мнко). (моделирование)
- •2. Тупики, типы ресурсов для изучения тупиковых ситуаций, необходимые условия возникновения тупиков, стратегии предотвращения тупиков (спо)
- •3. Стадии разработки новой сапр и программного обеспечения сапр. (сапр)
- •1. Планирование второго порядка. Типы планов, их особенности.
- •2. Стратегии управления памятью: стратегии вталкивания, стратегии размещения, стратегии выталкивания. (спо)
- •3. Основная функция сапр. Классификация объектов сапр. (сапр)
- •1. Задача оптимизации. Метод крутого восхождения (Бокса-Уилсона). (моделирование)
- •2. Файловая система, функции файловой системы, состав файловой системы, архитектура, примеры современных файловых систем. (спо)
- •3. Виды и назначение составляющих компонентов сапр. Аннотация. (сапр)
- •1. Оптимизация в условиях ограничений. (моделирование)
- •2. Иерархия памяти. Эволюция видов организации памяти. Особенности страничной, сегментной и сегментно-страничной организации памяти. (спо) Иерархия памяти
- •Эволюция видов организации памяти
- •Сегментация
- •Страничная организация памяти
- •Комбинированная сегментно-страничная организация памяти
- •3. Моделирование в сапр. Виды моделей. Применение.
- •1. Цифровые интегральные микросхемы. Серии интегральных микросхем. Параметры цифровых имс. (схемотехника)
- •2. Концепция файловых систем fat32 и ntfs: структура логического диска, возможности, преимущества. (спо)
- •3. Метод конечных элементов. Особенности р- и h-версий. Применение. (сапр)
- •1. Базовые логические элементы (блэ). Параметры и характеристики блэ. (схемотехника)
- •2. Стандартный интерфейс ieее-1284. (ипу)
- •3. Графические стандарты сапр. Уровни связи. Международные организации, устанавливающие стандарты. (сапр)
- •1. Основные типы (технологии) базовых логических элементов. Сравнительная характеристика серий ттл, ттлш, кмоп, эсл, иил (схемотехника)
- •2. Стандартный интерфейс rs-232c. (ипу)
- •3. Основные концепции графического программирования в сапр. Краткий обзор (сапр)
- •2. Шина расширения eisa. (ипу)
- •3. Виртуальная инженерия. Понятие. Компоненты. (сапр)
- •1. Комбинационные схемы: шинный формирователь, схема сравнения, сумматоры. (схемотехника)
- •1) Шинный формирователь
- •Сумматор Сумматор (англ. – adder) – цифровой узел, вычисляющий код арифметической суммы входных кодов. Сумматор с последовательным переносом
- •2. Организация стандартной шины pci. (ипу)
- •3. Типы данных сапр, поддерживаемых субд. Классификация. (сапр)
- •1. Триггеры. Принцип действия основных типов триггеров. (схемотехника)
- •2. Вид и организация устройств памяти. Интерфейсы устройств памяти. (ипу)
- •3. Базы данных сапр. Особенности хранения и применения. (сапр)
- •1. Счётчики. Основные типы счётчиков. (схемотехника)
- •2) Организация стандартной шины pci (ипу)
- •2. Интерфейсы графических адаптеров и мониторов. (ипу)
- •3. Общие принципы построения вычислительных сетей. Состав сети, квалификация вычислительных сетей. Топологии сетей. (сети)
- •1. Постоянное запоминающее устройство (пзу). Характеристика основных типов пзу. (схемотехника)
- •2. Параллельный интерфейс нжмд ата и его последовательная модернизация Serial ata. (ипу)
- •3. Модель osi. Уровни модели osi. Функции, выполняемые уровнями. (сети)
- •1. Оперативное запоминающее устройство (озу). Статическое и динамическое озу. (схемотехника)
- •2. Функциональное устройство звуковой карты, интерфейс midi, электромузыкальный цифровой синтезатор. (ипу)
- •Стандарт на аппаратуру и программное обеспечение
- •3. Система передачи данных в сети. Типы линий связи. Основные характеристики каналов связи. (сети)
- •1. Буферная память типа fifo ("очередь") и lifo ("магазин"). (схемотехника)
- •2. Структура центрального процессора. Основные блоки. (мпс)
- •3. Кодирование информации. Виды кодов. Самосинхронизирующиеся коды. (сети)
- •1. Базовый принцип конструирования и конструктивные модули. (ктоп)
- •2. Традиционная архитектура мпс по принципам фон Неймана. (мпс)
- •3. Способы доступа к сети. Метод доступа опроса/выбора. Маркерный метод доступа. (сети)
- •1. Показатели качества конструкции. (ктоп)
- •2. Система ввода-вывода. Последовательный порт. (мпс)
- •3. Технологии локальных сетей. Сравнить особенности технологий Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, fddi. Оборудование локальных сетей. (сети)
- •1. Влияние внешних факторов на работу эа и методы борьбы с ними. (ктоп)
- •2. Типы памяти микропроцессора. Подключение памяти. (мпс)
- •3. Технологии глобальных сетей X.25, Frame Relay, атм. Формат блока данных. Основные процедуры, используемые протоколы. (сети)
2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на низком уровне. (спо)
Параллельными называются процессы, которые существуют одновременно. Два параллельных процесса могут быть независимыми либо взаимодействующими
Независимыми или асинхронными являются процессы, множества переменных которых не пересекаются. Под переменными в этом случае понимаются файлы данных, а также области оперативной памяти, сопоставленные определенным в программе и промежуточным переменным. Независимые процессы не влияют на результаты работы друг друга, т.к. не могут изменить значения переменных другого независимого процесса. Они могут явиться причиной задержек исполнения других процессов, т.к. вынуждены разделять ресурсы системы. Асинхронным параллельным процессам требуется периодически синхронизироваться и взаимодействовать друг с другом.Взаимодействующие процессы совместно используют некоторые переменные, и выполнение одного процесса может повлиять на выполнение другого.
Проблемы критических участков. Взаимоисключения
При выполнении параллельных процессов может возникать проблема, когда каждый процесс, обращающийся к разделяемым данным, исключает для всех других процессов возможность одновременного с ним обращения к этим данным - это называется взаимоисключением (mutual exclusion).
Ресурс, который допускает обслуживание только одного пользователя за один раз, называется критическим ресурсом. Если несколько процессов хотят пользоваться критическим ресурсом в режиме разделения времени, им следует синхронизировать свои действия таким образом, чтобы этот ресурс всегда находился в распоряжении не более чем одного их них.
Для каждого процесса могут быть выделены участки, в которых происходит обращение к критическим ресурсам, они называются критическими участками. Рассмотрим пример, поясняющий выше сказанное.
Пример. Пусть два процесса X и Y разделяют переменную СЧЕТ. Если оба процесса попытаются увеличить СЧЕТ на 1 одновременно, то окончательное значение этой переменной может оказаться неверным. Рассмотрим следующую последовательность событий:
1.процесс X запоминает значение переменной СЧЕТ в некоторой локальной переменной СЧЕТ_Х;
2.процесс Y запоминает значение переменной СЧЕТ в некоторой локальной переменной СЧЕТ_Y;
3.процесс Х увеличивает значение СЧЕТ_Х на 1 и записывает его в СЧЕТ;
4.процесс Y увеличивает значение СЧЕТ_Y на 1 и записывает его в СЧЕТ.
Заметим, что хотя каждый процесс увеличил значение СЧЕТ на 1, ее окончательное значение увеличилось только на 1, а не на 2. Чтобы избежать таких нежелательных явлений, увеличение разделяемой переменной СЧЕТ следует рассматривать как критический участок.
Рассмотрим несколько решений проблем синхронизации критических участков
Синхронизация параллельных процессов на низком уровне
Большинство приемов, применяемых для синхронизации процессов, тесно связаны с аппаратными средствами. Это блокировка памяти, операция “проверка и установка” и семафоры.
Блокировка памяти
Взаимоисключения могут быть реализованы аппаратно, если сделать операции над памятью неделимыми. То есть, если каждый из процессов пытается поместить какие-либо значения в одну и ту же ячейку, то спор разрешается аппаратурой: если одному процессу разрешается выполнить операцию засылки немедленно, то другому приходится ждать пока первый не закончит операцию - такое разрешение спора и называется блокировкой памяти( storage interlock).
Механизм блокировки памяти предотвращает одновременный доступ к разделяемой переменной, но не предотвращает чередование доступа. Таким образом, если критические интервалы исчерпываются одной командой обращения к памяти, данного средства может быть достаточно для непосредственной реализации взаимного исключения. Если же критические секции требуют более одного обращения к памяти, то задача становится сложной. Рассмотрим различные попытки использования механизма блокировки памяти для организации взаимного исключения при выполнении критических интервалов.
Семафоры
Концепция использования семафоров для реализации взаимоисключений предложена Дейкстрой.
Семафор или общий семафор (semaphore) - это целая переменная, значение которой можно опрашивать и менять только при помощи специальных неделимых (как команда testandset) операций P и V. Эти операции являются примитивами относительно семафора, который указывается в качестве параметра операций. Здесь семафор выполняет роль вспомогательного критического ресурса, т.к. операции P и V неделимы при своем выполнении и взаимно исключают друг друга.
Двоичный семафор может принимать только значения 0 или 1. Считающий семафор может принимать целые неотрицательные значения.
Операция Р над семафором S записывается как P(S), алгоритм ее выполнения следующий:
if S>0 then S:=S-1 else <ожидать на S>
Операция V над семафором S , V(S), имеет следующий алгоритм выполнения:
if <один или несколько процессов ожидают на S>
then <разрешить одному из этих процессов продолжить работу>
else S:=S+1
Мьютексы
Одним из вариантов семафорных механизмов для организации взаимного исключения являются мьютексы. Термин mutex произошел от англ. mutual exclusion semaphore, что переводится как семафор взаимного исключения. Мьютексы реализованы во многих ОС, их основное назначение – организация взаимного исключения для задач из одного и того же или разных процессов.
Мьютексы – это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний – отмеченном или неотмеченном (открыт или закрыт). Если какая-либо задача, принадлежащая любому процессу, становится владельцем мьютекса, то он переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным.
Организация последовательного доступа к ресурсам с использованием мьютексов становится проще, т.к. в каждый момент только одна задача может владеть этим объектом. Для того чтобы объект мьютекс стал доступен задачам, принадлежащим разным процессам, при создании ему необходимо присвоить имя, потом это имя нужно передать «по наследству» задачам, которые должны его использовать для взаимодействия. Для этого вводятся специальные системные вызовы, в которых указываются начальное значение мьютекса, его имя и, возможно, атрибуты защиты. Если начальное значение мьютекса равно true, то считается, что задача, создающая этот объект, будет им сразу владеть. Можно указать в качестве начального значения false – в этом случае мьютекс не принадлежит ни к одной из задач и только специальным обращением к нему можно изменить его состояние