У вас вопросы?
У нас ответы:) SamZan.net

Тема 5. 5.1. Прерывания За время выполнения ЭВМ текущей программы внутри машины или в ее периферийных устр

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 16.1.2025

Тема 5.

5.1. Прерывания

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

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

Этот процесс называется прерыванием программы (рис.5.1).

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

Каждое событие, требующее прерывания, сопровождается сигналом оповещения ЭВМ, который называется запросом прерывания.

К процессам, генерирующим прерывание, относятся процесс контроля правильности работы ЭВМ, процесс выполнения самой программы, операции ввода-вывода, технологический процесс в управляющей ЭВМ объекта и др.

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

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

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

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

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

Характеристики системы прерывания:

  •  Общее число запросов прерывания.
  •  Время реакции – время между появлением запроса прерывания и началом выполнения обрабатывающей программы (tp).
  •  Затраты времени на переключение (издержки прерывания) tизд = расходов времени на запоминание (tз) и восстановление (tв) состояния программы (рис.5.2).

tизд = tз + tв

Рисунок 5.2

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

  •  Глубина прерывания –максимальное число программ, которые могут прервать друг друга (рис.5.3).

Рисунок 5.3

  •  Число классов (уровней) прерывания. Если запросов много, то их делят на классы Класс – совокупность запросов, который инициирует одну и ту же обрабатывающую программу (рис.5.4).

Рисунок 5.4

Запросы всех источников поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разряды (флажки) в “1”, если есть запрос. ЗПКi - ЗПКn – классы запросов от 1 до n.

После принятия запроса и исполнения его, соответствующий разряд сбрасывается в “0”.

Прерывания в зависимости от причин , вызывающих их , делятся на : аппаратные, внутренние и программные

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

Сигналы аппаратных прерываний, возникающие в устройствах, как и других прерываний, поступают в процессор через 2 контролера прерываний (рис.5.5) у современных ПЭВМ, один из которых ведущий, а другой ведомый (2 и более для увеличения допустимого количества ПУ, т.к. 1 контролер может обслужить только 8 ПУ).

Рисунок 5.5

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

Программные , вызываемые командой прикладной программы (например, int, in ,out). Числовой операнд команды int (например int 13h) воспринимается процессором как номер вектора прерывания.

Системные программы, адреса которых хранятся в векторах прерываний в IVT, в большинстве своем являются диспетчерами, открывающими доступ к большим группам программ, реализирующим системные функции. Так, через вектор 21h (диспетчер функций DOS) осуществляется вызов практически всех функций DOS: ввод с клавиатуры, вывод на экран, обслуживание файлов и дисков, управление памятью и процессами и т.д.

В некотором смысле любая ОС почти полностью может быть описана как один большой набор обрабатывающих (прерывающих) программ.

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

Определение запросов можно организовать двояко:

  1.  периодический опрос регистра РгЗП (как продавец в магазине периодически выходит в салон посмотреть, есть ли покупатель).
  2.  Векторное прерывание :когда возникает необходимость, ПУ выдаст сигнал ЗП и выставляет адрес вектора прерывания, по которому компьютером вызывается обрабатывающая программа (колокольчик на входной двери в магазине: продавец выходит, только когда зайдет покупатель).

Вектор прерывания – вся необходимая информация для перехода к обрабатывающей программе. В ПЭВМ – это начальный адрес обрабатывающей программы.

Каждому запросу IRQ-ЗП (классу, уровню, отдельным ПУ), соответствует своя обрабатывающая программа. Векторы прерывания находятся в специальной таблице IVT, которая расположена в специально выделенных ячейках ОП. В ПЭВМ это первые 1024 байта. Таблица содержит 253 прерывания, из которых используются только 16, по 4 байта на адрес соответствующей обрабатывающей программы в виде сегмент: смещение (CS:IP), т.е. для ЗП реализована косвенная адресация № ЗПN строки таблицы IVTCS:IP обрабатывающей программы. Это делается затем , чтобы программист мог ввести свою обрабатывающую программу вместо стандартной, изменив только адрес в таблице IVT, или в процессе вычислений изменить адрес обрабатывающей программы.

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

Состояние процессора в любой момент времени характеризуется:

  •  содержание всех запоминающих устройств и прежде всего регистров CPU;
  •  состоянием всех сигналов управления CPU.

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

Однако  не все ЗУ портятся при обработке прерываний. Поэтому содержание только некоторых регистров CPU (min 3-х регистров: регистра флагов, CS и IP, где CS:IP – полный адрес возврата в прерванную программу, возможно и аккумулятора) сохраняется в стеке. После выполнения своих функций обрабатывающая программа последней своей командой iret (interrupt return –возврат из прерывания) выполняет обратные действия – извлекает из стека и помещает снова в регистры CPU исходное их состояние. Это приводит к возврату в основную программу в ту самую точку , где она была прервана.

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

Выделение наиболее приоритетного запроса

Различают абсолютный и относительный приоритеты.

Запрос, имеющий абсолютный приоритет, прерывает программу и инициирует выполнение обрабатывающей программы.

Запрос с относительным приоритетом является первым кандидатом на обслуживание после завершения выполнения текущей команды.

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

Есть процедуры прерывания с опросом источников (флажков) прерывания в регистре запросов аппаратным или программным путем. Каждому запросу соответствует разряд в РгЗП. Чем левее разряд, тем выше приоритет запроса.

 Цепочечная схема определения приоритетного запроса представлена на рис.5.6. Как и в предыдущих случаях, приоритет запросов прерывания возрастает с уменьшением номера запроса.

Процедура определения приоритетного запроса инициируется сигналом “Приоритет”, поступающим на цепочку последовательно включенных схем “И”. При отсутствии запросов этот сигнал пройдет по цепочке и не сформирует сигнал общего запроса прерывания. Если появится несколько сигналов запроса, то сработает первой крайняя слева схема “И” (имеющая больший приоритет по расположению) и заблокирует прохождение сигнала “Приоритет” дальше. Сигнал этой схемы через схему “ИЛИ” формирует общий сигнал прерывания.

Рисунок 5.6

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

Более гибким и динамичным является векторное прерывание, при котором исключается опрос флажков регистра прерывания.

Прерывание называется векторным, если источник прерывания, выставляя запрос прерывания, посылает в процессор (выставляет на шине интерфейса) код адреса в памяти своего вектора прерывания.

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

Программно-управляемый приоритет прерывающих программ

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

В ЭВМ широко применяются 2 способа реализации программно-управляемого приоритета прерывающих программ:

  •  использование порога прерывания (в малых и микроЭВМ);
  •  маски прерывания (в ЭВМ общего назначения).

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

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

 Маска прерывания (рис.5.7) представляет собой двоичный код, разряды которого поставлены в соответствие запросам или классам прерывания. Маска загружается в командой программы в регистр маски РгМ. “1” в разряде регистра маски разрешает, а “0” запрещает (маскирует) прерывание текущей программы от соответствующего запроса. Каждая прерывающая программа (если ее тоже могут прервать при многоуровневом прерывании) может установить свою маску, где “1” будут соответствовать запросам с более высоким приоритетом, чем текущая обрабатывающая программа.

Рисунок 5.7

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

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

ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА

 Вводом-выводом (ВВ) называется передача данных между ядром ЭВМ (процессор + ОП) и периферийными устройствами.

ВВ представляет собой единственное средство взаимодействия ЭВМ с “внешним миром” и архитектура ВВ (режимы работы, форматы команд, особенности прерываний, скорость обмена и т.д.) непосредственно влияют на эффективность всей ЭВМ. Сложность управления в подсистеме объясняется следующими факторами:

  •  необходимостью одновременного контроля за состоянием многих ПУ и процессов ввода-вывода;
  •  разнообразием режимов взаимодействия пользователя с ЭВМ;
  •  необходимостью дополнять или изменять ПУ в составе ЭВМ.

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

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

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

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

Многие функции управления ВВ являются общими и не зависят от типа ПУ, а другие являются специфичными для данного ПУ. Поэтому выполнение общих функций возлагают на общие для групп ПУ унифицированные устройства, например, контроллеры прямого доступа к памяти, процессоры (каналы) ввода-вывода, а специфичные – на специализированные для данного типа ПУ электронные блоки управления – адаптеры с соответствующими программами согласования – драйверами.

Основные функции построения и структуры

подсистемы ввода-вывода

Принципы построения и структура подсистем ввода-вывода (ПВВ) сильно различаются в зависимости от типа ЭВМ и ее назначения. Определяющими факторами являются разнообразие и число ПУ в составе ЭВМ, интенсивность операций ввода-вывода.

Можно выделить 2 основных принципа построения и соответствующие структуры ПВВ:

  •  ПВВ с одним общим интерфейсом или общей шиной ввода-вывода;
  •  ПВВ с множеством интерфейсов и процессорами (каналами) ввода-вывода.

Структура с общим интерфейсом (рис.5.8) предполагает наличие общей шины (магистрали), к которой подсоединяются все модули, в совокупности образующие ЭВМ: процессор, ОП, ПЗУ, ПУ (периферийные устройства).

Рисунок 5.8

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

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

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

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

В ЭВМ с каналами ввода-вывода отсутствует однородность в структуре потоков и форматов передаваемых данных, что приводит к необходимости иметь в ЭВМ несколько специализированных интерфейсов:

  •  интерфейс основной памяти (обмен ОП с процессором и каналами ВВ);
  •  интерфейс процессор – каналы;
  •  интерфейс ввода-вывода;
  •  малый интерфейс (обмен между каналами и устройствами управления ПУ).

Управление вводом-выводом

В ЭВМ применяется 3 режима ВВ:

  •  программный;
  •  по прерываниям;
  •  ПДП (прямой доступ к памяти).

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

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

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

Программный ввод-вывод

Здесь действия по ВВ реализуются командами прикладной программы. При необходимости ВВ в соответствующем месте программы используют команды IN или OUT.

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

Процессор проверяет флажок готовности с помощью одной или нескольких команд. Если флажок установлен, то выполняется собственно ввод-вывод. Если же флажок сброшен (0), процессор выполняет цикл из 2-3 команд с повторной проверкой флажка, пока ПУ не будет готово к операциям. Данный цикл называется циклом ожидания.

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

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

Ввод-вывод по прерываниям

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

В микропроцессорах 8086 и наших К580 и К1810, использующих интерфейс “мультиплекс”, реализовано 2 процедуры прерывания.

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

Рисунок 5.9

ПУ, которому понадобилось прервать работу процессора, выставляет сигнал запроса прерывания на одну из линий (8 линий) запросов прерывания. Получив запрос, контроллер прерывания выдает сигнал прерывания процессору, на что процессор отвечает двумя сигналами “Подтверждение прерывания”. Первым сигналом МП подтверждает прием сигнала прерывания, а вторым – свою готовность к дальнейшей работе с прерываниями.

Контроллер прерывания КП выставляет на шину адреса (разряды 8-10) код номера принятого запроса. ПУ, опознавшее номер “своего” запроса, выставляет на шину данных адрес вектора прерывания вместе с сигналом, что это адрес, поступающий  в процессор, по которому процессор определяет адрес обрабатывающей программы и приступает к обработке прерывающей программы.

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

Прямой доступ к памяти

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

Прямым Доступом к Памяти называется способ обмена данными между ОП и ПУ. Таким образом, ПДП разгружая процессор от обслуживания ввода-вывода, позволяет ему не останавливать выполнение программы во время ввода-вывода данных с ПУ. Повышение скорости ввода-вывода делает ЭВМ более приспособленной к работе в системах реального времени.

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

  •  первоначальное расположение информации (откуда);
  •  адрес, куда ее следует занести (куда);
  •  какое число байт она занимает (объем);

Как только контроллер ПДП получает эту информацию от МП (микропроцессора), он берет управление по перекачке блоков данных на себя.

Структурная схема контроллера ПДП приведена на рис.5.9.

При инициировании операции ввода-вывода в счетчик текущих данных ТСчД заносится размер подлежащего передаче блока (число байт или слов), а в регистр текущего адреса данных РгТАД – начальный адрес области ОП, используемой при передаче. При передаче каждого байта содержимое РгТАД увеличивается на 1 (при этом формируется адрес очередной ячейки ОП, участвующей в передаче). Одновременно уменьшается на 1 содержимое текущего счетчика данных (количество байт) ТСчД. Обнуление ТСчД указывает на завершение передачи.

Рисунок 5.10

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

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

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

Как правило, реализуются 2 варианта арбитража: параллельный (децентрализованный) и последовательный (централизованный).

В процедуре параллельного арбитража (рис.5.11) используются 8 линий запросов ЗДП и соответственно 8 линий разрешения доступа РДП. Каждое устройство соединено со своей линией ЗПД и линией РПД.

Рисунок 5.11

Арбитр сравнивает приоритеты поступивших запросов ЗПД и выдает сигнал РПД самому приоритетному устройству по его линии. Хотя время такого арбитража невелико, он требует дополнительной аппаратуры, и ограничивается число устройств в системе числом входов и выходов схемы арбитра.

Более просто реализуется “последовательный арбитраж” (рис.5.12).

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

Рисунок 5.12

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




1. Предмет и задачи возрастной психологии
2. Методические указания по Оформлению выпускной квалификационной работЫ
3. Определение стоимости основных фондов
4. Тема 9 Організація праці План лекції
5. Вариант 4 Таблица 1
6. Характеристика Роду Сомоподібні (Siluriformes)
7. за изменений в налоговой либо валютной системе он может понести значительные убытки при осуществлении пред
8. Утверждаю Начальник Восточного окружного Управления образования Департамента образования г
9. Лекция 3 Основы управления свойствами материалов и изделий Свойства материалов как способность реагиров
10. А 81 призёр Вагунина Сабина Бахрамовна 2
11. Экономика труда являются трудовой потенциал общества и пути его наиболее рационального использования в ин
12. У хворого запалення середнього вуха ускладнилось мастоідітом
13. техническое обоснование социологического исследования
14. Введение в историю экономической мысли.
15. Трудности правописания сложных слов
16. РЕФЕРАТ Дипломный проект состоит из расчётнопояснительной записки объёмом 122 страниц в т
17. Статья 37 Конституции РФ закрепляя в п.
18. рациональное животное обозначенное максимизацией своих экономических доходов; ~ люди реагируют на эко
19. Переводческий анализ
20. Тема- Вводный инструктаж