2160

Прикладная теория цифровых автоматов

Конспект

Информатика, кибернетика и программирование

Общая постановка задачи синтеза комбинационных схем. Особенности синтеза многоуровневых схем. Интерпретация основных понятий теории вероятностей на основе теории множеств. Равномерное распределение непрерывной случайной величины. Характеристики СМО с абсолютными приоритетами. Однопросмотровый, двухпросмотровый и многопросмотровый ассемблеры. Объекты ядра в ОС Windows. Базовый логический элемент транзисторно-транзисторной логики.

Русский

2013-01-06

4.51 MB

136 чел.

Прикладная теория цифровых автоматов 4

1. Общая постановка задачи синтеза комбинационных схем. Синтез комбинационных схем в различных элементных базисах (мультиплексоры, ПЛМ, И-НЕ). Критерии эффективности. Особенности учета ограничений в различных элементных базисах 4

2. Синтез схем в базисе И-НЕ. Особенности синтеза многоуровневых схем. Методы вынесения за скобки и допустимых конфигураций. 5

3. Общая постановка задачи анализа схем. Универсальные и специальные методы анализа. Анализ схем в базисе И-НЕ. 7

4. Логическое и временное моделирование схем. Методы параллельного и событийного моделирования. Понятие риска, классификация и методы его обнаружения. 7

5. Неисправности в комбинационных схемах. Модель константных неисправностей. Особенности проявления неисправностей в схемах из элементов И-НЕ. Проверяющий и диагностирующий тесты. Процедура построения диагностирующего теста. 8

6. Неисправности в комбинационных схемах, классификация. Проверяющий тест и его полнота. Функциональный подход к построению полного проверяющего теста для схем в базисах И-НЕ и ПЛМ. 10

7. Дискретные автоматы, модели Мура и Мили. Каноническое представление структуры автомата. Реализация памяти в синхронных и асинхронных автоматах. Основные типы триггеров 11

8. Основные этапы синтеза последовательностных схем. Особенности их реализации для синхронных и асинхронных автоматов. 14

ТЕОРИЯ ВЕРОЯТНОСТИ И МАТЕМАТИЧЕСКАЯ СТАТИСТИКА 16

9.Понятие случая. Классическая формула для вычисления вероятности случайного события. Статистическая вероятность случайного события. 16

10.Интерпретация основных понятий теории вероятностей на основе теории множеств. Алгебра событий. Аксиомы теории вероятностей. 17

11.Формула полной вероятности. Формула Байеса. 18

12.Закон распределения случайной величины. Статистический ряд. 18

13.Определение функции распределения случайной величины. Свойства функции распределения. 19

14.Плотность распределения. Свойства плотности распределения. 20

Свойства плотности распределения 20

15.Числовые характеристики случайных дискретных и непрерывных случайных величин. 20

16.Биномиальное распределение 23

17.Равномерное распределение непрерывной случайной величины. 23

18.Показательное распределение непрерывной случайной величины. 24

19.Нормальное распределение. Стандартное нормальное распределение. 25

20.Геометрическое распределение. Понятие простейшего потока. Свойства простейшего потока. Связь простейшего потока с распределением Пуассона. 27

21.Статистические оценки. Точечные оценки параметров распределения. Свойства оценок. 28

22.Критерии проверки статистических гипотез. Критерий согласия Пирсона. 28

МОДЕЛИРОВАНИЕ 29

23. Характеристики обслуживания заявок в системах массового обслуживания (СМО). 29

24. Стационарный режим. Формулы Литтла. Нотация СМО. 30

25. СМО с неограниченной очередью. Уравнения для вероятностей состояний. Основные характеристики для многоканальных и одноканальных СМО. 31

26. СМО типа G/M/1. Формула Поллячека - Хинчина. 33

27. Характеристики СМО при многомерном входящем потоке. СМО с относительными приоритетами. 34

28. Характеристики СМО с абсолютными приоритетами. Смешанные приоритеты. Закон сохранения времени ожидания для СМО без потерь. 35

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

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ 39

30. Линейные структуры данных: массив, список, магазин, стек, дек. 39

31. Таблицы. Неупорядоченная, двоичная упорядоченная и хеш-таблицы. 43

32. Деревья. Двоичные, сбалансированные и Б-деревья. 46

33. Классификация систем программирования 53

34. Однопросмотровый, двухпросмотровый и многопросмотровый ассемблеры. Компоненты ассемблера. Алгоритм работы ассемблера. 53

35. Однопросмотровый и многопросмотровый макропроцессоры. Таблицы макропроцессора. Алгоритм работы процессора. 56

36. Загрузчики. Абсолютный, перемещающий и связывающий загрузчики. 57

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ 60

37. Состав ПО ЭВМ. Классификация систем программирования. 60

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

39. Машинно-независимая оптимизация программ. 62

40. Лексический анализ. 62

41. Нисходящий синтаксический анализ. 64

42. Восходящий синтаксический анализ. 66

ОПЕРАЦИОННЫЕ СИСТЕМЫ 68

43.Объекты ядра в ОС Windows. Управление процессами в Windows. 68

44.Управление процессами в ОС UNIX. 71

45.Методы организации виртуальной памяти. Алгоритмы замещения страниц 73

46.Файловая система NTFS. 76

47.Виртуальная файловая система VFS UNIX. 79

48.Взаимодействие процессов в рамках компьютерной сети. Удаленный вызов подпрограмм. 81

КОМПЬЮТЕРНАЯ ЭЛЕКТРОНИКА И СХЕМОТЕХНИКА 82

49. Базовая схема транзисторного ключа на биполярном транзисторе. Способы повышения быстродействия ключа. 82

50.Усилительный каскад на биполярном транзисторе, включенном по схеме с общим эмиттером. Температурная стабилизация рабочей точки усилителя. 84

51. Базовый логический элемент транзисторно-транзисторной логики. 86

52. Базовый логический элемент КМОП-логики. 89

53. Статический запоминающий элемент. Схема реализации. Принцип и режимы его работы. 91

54. Динамический запоминающий элемент. Схема реализации. Принцип и режимы его работы. 93

55. Триггеры с динамическим управлением (схема трех триггеров). Схемы реализации на базе логических элементов. Режимы и временные диаграммы работы. 95

56. Двухступенчатые JK-nриггеры. Схемы реализации на базе логических элементов. Режимы и временные диаграммы работы. 97

ПРОЕКТИРОВАНИЕ МИКРОПРОЦЕССОРНЫХ СИСТЕМ 102

57. Классификация микропроцессоров и микропроцессорных комплектов. 102

58. Структура процессора с принстонской (Фон Неймановской) архитектурой. 103

59. Структура ядра микроконтроллера с гарвардской архитектурой. 106

60. Основные этапы проектирования микропроцессорной системы. 108

61. Средства поддержки разработок микропроцессорных систем. 109

62. Основные тенденции развития микроконтроллеров, микропроцессоров. 112

ЦИФРОВЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ 112

63. Архитектура системы команд. Основные типы команд. Способы адресации. Форматы команд. 112

64. Структурная организация и методы проектирования управляющих автоматов с жесткой логикой. Методы синхронизации 114

65. Структурная организация управляющих автоматов с программируемой логикой. Естественная адресация. Смешанное микропрограммирование 118

66. Центральный процессор. Структурная организация и функциональное назначение блоков процессора. Цикл процессора. 121

67. Арифметико-логическое устройство. Структурная организация. Типы обрабатываемых данных и особенности исполнения команд. 123

68. Внутренняя память ЦВМ. Статические и динамические запоминающие устройства. Структурная организация SRAM и DRAM. Режимы работы. 125

69. Организация защиты памяти ЦВМ. Назначение. Возможные схемные решения. 127

ОСНОВЫ КОНСТРУИРОВАНИЯ ЭВМ 129

70.Системный подход при конструировании и технологии производства ЭВМ и систем. 129

71.Задачи конструкторского проектирования ЭВМ и систем. Одноуровневый и многоуровневый принципы проектирования. 130

72.Типовые конструкции ЭВМ и систем. Математическая модель конструкций ЭВМ и систем. 132

73.Математические модели объектов схемно-топологического конструирования 134

74. Методы и алгоритмы компоновки типовых элементов конструкций ЭВМ и систем. 137

75. Задача размещения элементов элементов конструкций ЭВМ и систем 140

76. Задача трассировки элементов элементов конструкций ЭВМ и систем 141

ОХРАНА ТРУДА 150

80.Предмет дисциплины, основные термины и определения. 150

81. Закон Украины Об охране труда. Понятие охраны труда. Сфера действия закона. Гарантии прав граждан на охрану труда. 150

82. Структура государственного управления охраной труда. Основные принципы государственной политики в области охраны труда. 151

83. Государственный надзор и общественный контроль за охраной труда. 151

84. Система организации охраны труда на производстве. Обучение по вопросам охраны труда. Виды инструктажей. 152

85. Порядок проведения, расследования и учета несчастных случаев на производстве. Состав комиссии, сроки проведения расследования. 152

86. Опасные и вредные производственные факторы. Определение и классификация. 152

87. Психофизиологические опасные и вредные производственные факторы. Примеры характерные для работы оператора и программиста. 153

88. Виды производственной вибрации. Влияние на организм человека. Гигиеническое нормирование и контроль параметров вибрации. 153

89. Методы защиты от вибрации. Индивидуальные и коллективные средства защиты. 153

90. Шум. Классификация. Причины возникновения. Воздействие на организм человека. Гигиеническое нормирование и контроль параметров шума. 153

91.Методы защиты от шума. Индивидуальные и коллективные средства защиты от шума в компьютерных классах. 154

92.Инфра- и ультразвук. Влияние на организм человека. 154

93. Освещение, классификация, основные светотехнические единицы. 154

94.Количественные и качественные показатели освещения. 154

95.Требования предъявляемые к системам искусственного освещения и источникам света. 155

96.Виды естественного освещения. Санитарное нормирование. Приборы контроля. 155

97. Влияние параметров производственной воздушной среды на здоровье человека. Основные метеорологические параметры воздуха рабочей зоны, их нормирование. 155

98. Санитарное нормирование загрязнений воздуха рабочей зоны. Классы вредных веществ. Характер действия на организм человека. 156

99. Вентиляции. Виды и классификация. Принцип действия аэрации. Производственная вентиляция — система устройств, обеспечивающих на рабочих местах микроклимат и чистоту 156

100.Виды обще обменной вентиляции производственных помещений. ПДК вредных веществ. Оснащение помещений с компьютерной техникой вентиляцией. 157

101. Действие электрического тока на организм человека. Факторы, влияющие на исход поражения человека электрическим током. 157

102. Классификация воздействия на организм человека по величине тока. «Не отпускающий» ток. 157

103. Классификация помещений по степени электроопасности. Причины электротравм и способы их предупреждения. 157

104. Возможные случаи включения человека в цепь электрического тока. 157

105. Оценка опасности прикосновения к <<рабочей>> фазе в трехфазных сетях с изолированной нейтралью. 158

106. Оценка опасности прикосновения к <рабочей>>фазе в трехфазных сетях с глухозaземлённой нейтралью. 159

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

108. Защитное заземление электроустановок. Принцип действия. Напряжение прикосновения. 159

109. Растекание тока при замыкании на землю. Шаговое напряжение. 160

110.Причины возникновения пожаров. Пожароопасность компьютерных помещений. 160

111.Оснащение компьютерных классов первичными средствами пожаротушения. Системы пожаротушения, их состав. 160

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

113. Организационные мероприятия по обеспечению пожарной безопасности. Средства для тушения компьютерного оборудования. 161


ПРИКЛАДНАЯ ТЕОРИЯ ЦИФРОВЫХ АВТОМАТОВ

1. Общая постановка задачи синтеза комбинационных схем. Синтез комбинационных схем в различных элементных базисах (мультиплексоры, ПЛМ, И-НЕ). Критерии эффективности. Особенности учета ограничений в различных элементных базисах.

6. Неисправности в комбинационных схемах, классификация. Проверяющий тест и его полнота. Функциональный подход к построению полного проверяющего теста для схем в базисах И-НЕ и ПЛМ.

Понятие неисправности. Неисправностью

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

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

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

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

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

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

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

Метод построение минимального полного проверяющего теста.

Тривиальный тест (для комбинационных схем, содержащий все 2n наборов) всегда полон. Встает задача уменьшения длины теста с сохранением свойства полноты. Полный проверяющий тест с наименьшим числом наборов называется минимальным. Известен точный метод построения минимального теста для схем с небольшим числом входов и элементов. Метод основан на таблице функций неисправностей, строки которой сопоставлены 2n наборам входных переменных схемы, а столбцы – всем возможным вариантам неисправностей, включая пустую (исправную схему). Каждый столбец представляет реализуемую схемой булеву функцию с учетом варианта неисправностей. Если для некоторых вариантов неисправностей булевы функции совпадают, то такие неисправности являются неразличимыми и им сопоставляется один столбец таблицы функций неисправностей.

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

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

Минимальный полный проверяющий тест строится на основе анализа влияния неисправностей на работу схемы. Тесты, которые строятся по схеме, называются структурными (Метод активизации одномерного пути, Активизирующий многомерный путь алгоритм Рота или d-алгоритм).

Построение проверяющего теста для ПЛМ.

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

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

Построение наборов, проверяющих правильность реализации рассматриваемого интервала, основано на следующих утверждениях:

Утверждение 1. Для проверки расширение интервала k-го ранга в пространстве n переменных достаточно (n-k) элеменов множества М0, расположенных каждый симметрично интервалу по осям внешних переменных интервала.

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

Построение проверяющего теста двухуровневых КС на элементах И-НЕ.

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

Проверяющий тест для неисправностей и на полюсах элементов и в полюсах двухуровневой схемы на элементах И-НЕ строятся по следующему алгоритму:

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

2) Для каждого интервала покрытия выбирается один его элемент, не покрытый другими интервалами покрытия.

7. Дискретные автоматы, модели Мура и Мили. Каноническое представление структуры автомата. Реализация памяти в синхронных и асинхронных автоматах. Основные типы триггеров

Определение ДА с памятью.

Двоичный набор бу значений выходных сигналов ДА с памятью в текущий момент времени t определяется набором бх входных сигналов и состоянием S(t) памяти в этот момент времени. Этим ДА с памятью отличается от КС.

Y1

Синхронный дискретный автомат с состояниекм S(t) памяти

Хn

Х1

Ym

Xi,yi €{0,1)

В структурной теории рассматриваются ДА с конечным числом состояний S(t) €{s0,s1,…,sk). В начальный момент времени t0 память автомата имеет начальное состояние S0=S(t0). Состояние автомата во времени изменяются: вх. набор бх и текущее состояние S(t) определяют однозначно выходной набор бy и следующее состояние s(t+1), подчеркнём, что s(t),s(t+1) €(s0,…sk). Поскольку в начальный момент времени состояние автомата известно, то и поведение автомата во времени однозначно определяется последовательностью входных наборов. Поэтому широко применяется другое название ДА с памятью - последовательностные схемы.

Модели Мили и Мура дискретного автомата.

Модель Мили: Y(t) = F(X(t),S(t)), S(t+1)= Ф(X(t),S(t)).

Модель Мура: Y(t) = F*(S(t)), S(t+1) = Ф*(X(t),S(t)),

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

Граф автомата.

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

Si

Sj

Si

Sj

V бх

бу

бу

Рис.4

а

V бх/бу

б

Структура автомата на основе комбинационной схемы и памяти.

Память должна хранить значения переменных Z1(t),…,ZL(t), представляющих настоящее состояние S(t). При переходе к времени t+1 память должна принимать сформированные КС значения переменных Z1(t+1),…,ZL(t+1), представляющих следующее состояние S(t+1), и сменить текущее состояние S(t) на S(t+1). Тем самым текущее время t передвигается к t+1. Для синхронных автоматов моменты смены времени определяются моментами перехода импульсов серии синхронизации.

С __––__––__––__––__––__––

t 0 1 2 3 4 5

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

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

 yi = fi(x1,…,xn,z1,…,zL), 1<=i<=m;

 zj(t+1)=Фj(x1,…,xn,z1,…,zL),1<=j<=L.

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

Х1

Хn

У1

Ym

Остаётся организовать переход времени от t к t+1 , который в синхронных автоматах реализуется за счёт памяти, хранящей целый такт значения zj, полученные в момент времени t.

Z1(t)

ZL(t)

Z1(t+1)

ZL(t+1)

КС

Память

За это время КС успевает сформировать значения переменных y1,…,ym, z1(t+1),…,zL(t+1).В момент перехода от времени t к t+1 состояние памяти изменяет значения z1,…,zL на z1(t+1),…,zL(t+1) и, таким образом, осуществляется переход от времени t к t+1.

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

Необходимо ещё преобразовать схему, обеспечив режим установки автомата в начальное состояние S0. Для чего используют специальную входную переменную: xn+1, которая =1 в режиме установки в начальное состояние,=0,в рабочем режиме.

Схема реализации автомата на двойных D-триггерах:

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

Х1

Хn

У1

Ym

Остаётся организовать переход времени от t к t+1 , который в синхронных автоматах реализуется за счёт памяти, хранящей целый такт значения zj, полученные в момент времени t.

Z1

ZL

Z1

ZL

КС

Если для всех j (1<=j<=L) значения zj на выходе комбинационной схемы совпадают со значениями zj на ее входе, то автомат находится в устойчивом состоянии бх S1S1. Если какие-то переменные в наборе б1, …, бL на выходе КС не равны значениям на входах КС, то значения этих переменных сменяются, переходный процесс продолжается по цепочке неустойчивых состояний в устойчивое состояние бх S1S1, которое сохраняется и поддерживается за счет линий обратных связей по внутренним переменным.

Триггеры.

Триггером называется дискретное устройство с двумя устойчивыми состояниями S0 и S1, которое сохраняет свое состояние при одних входных наборах и изменяет его при других входных наборах. Одно устойчивое состояние кодируется 0 (S0), другое – 1 (S1). Триггер – элементарное устройство памяти, которое может хранить, принимать и выдавать один бит информации. Обычно выходная информация триггера представляется в парафазном коде, т.е. двумя взаимно инверсными выходами Q и и значение выходной функции Q совпадает со значением внутреннего состояния триггера: в состоянии S0 Q=0, , в состоянии S1 Q=1, .

RS-триггер имеет 2 входа R и S и два взаимно инверсных выхода Q и .

Функционирование RS-триггера:

R

S

Q(t+1)

0

0

Q(t)

0

1

1

1

0

0

1

1

х

JK-триггер – синхронное устройство с дополнительным входом (синхросигналом), передний фронт которого означает переход времени t к t+1.

J

K

Q(t+1)

0

0

Q(t)

0

1

0

1

0

1

1

1

Т-триггер – это синхронный триггер, т.е. для него обязателен синхросигнал С

T

Q(t+1)

0

Q(t)

1

Q(t+1)

D(t)

D-триггер

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

Двойной D-триггер. Если С1=С2=0, то оба триггера не изменяют свои состояние. При С1=1 и С2=0 триггер D1 запоминает входной сигнал, триггер D2 не изменяет свое состояние. При С1=0, С2=1, состояние D1 переписывается на D2, D1 не меняет свое состояние.

Двойной JK-триггер. Двойной RS-триггер.

 

8. Основные этапы синтеза последовательностных схем. Особенности их реализации для синхронных и асинхронных автоматов.

Процесс проектирования включает в себя следующие этапы:

  1.  Описание автомата на языке таблицы переходов и выходов;
  2.  Минимизация числа состояний;
  3.  Кодирование состояний;
  4.  Переход к системе булевых функций;
  5.  Построение функциональной схемы.

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

Таблица переходов и выходов синхронного автомата

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

Таблица переходов и выходов асинхронного автомата

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

  1.  Рассматривается начальное состояние S0, которое при одном входном наборе объявляется устойчивым. Строится столбец ТПиВ, соответствующий состоянию S0 и имеющий столько строк, сколько различных входных наборов имеет автомат. Столбец считается не заполненным, кроме элемента, объявленного устойчивым состоянием S0.Задается требуемый по алгоритму набор значений выходных сигналов. Число состояний автомата равно 1.
  2.  Выбирается очередное введенное состояние Sj, для которого еще не заполнен столбец примитивной таблицы. Находится элемент таблицы, в который записано для соответствующего входного набора бх устойчивое состояние Sj, вычисляются с бх наборы бхс. Для каждого элемента бхсSj определяется следующее состояние. Им может быть уже ранее введенное состояние, если в рассматриваемой строке бхс таблицы состояний есть объявленное устойчивым состояние с требуемым по алгоритму набором значений выходных сигналов; Если такого состояния нет, то вводится новое состояние Si. В состоянии Si устойчивым объявляется полное состояние бхсSi и задается требуемый по алгоритму набор значений выходных сигналов. Число состояний увеличивается на 1. Во всех элементах столбца Sj, которые соответствуют не соседним с набором бх входным кодам, записывается неопределенное значение следующего состояния. Если есть состояния, для которых не заполнен столбец ТПиВ, то выполняется п.2, иначе таблица построена.

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


Задача минимизации числа состояний для синхронного автомата.

Задача минимизации производится после составления таблицы переходов и выходов(ТПиВ).

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

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

Алгоритм минимизации состоит в следующем.

Строится матрица отношения эквивалентности состояний. Заполняются 0 все элементы матрицы, пары состояний которых тождественно не эквивалентны и 1 – пары состояний которых тождественно эквивалентны.

  1.  Если вся матрица заполнена, переход к п.2, иначе проверяем эквывалентность пары, что приводит к появлению нескольких влекомых пар:
  2.  Если влекомой паре на матрице эквивалентности соответствует элемент, равный 1, то ее не записываем.
  3.  Если влекомая пара уже встречалась, то ее не запоминаем.
  4.  Если влекомой паре соответствует неопределенный элемент матрицы эквивалентности, то ее запоминаем для последующей проверки на эквивалентность, что опять приводит к появлению новых влекомых пар и цепочек проверяемых влекомых пар (формируется дерево влекомых пар):

а) Если влекомой паре соответствует 0, то пара неэквивалентна и неэквивалентны все пары, получаемые из цепочки влекомы пар от этой пары к корню дерева. В соответствующих этим парам элементах матрицы проставляются 0. Переход к п.1.

б) Если все влекомые пары проверены во всех цепочках новые влекомые пары не появляются и не встречаются неэквивалентные, то все влекомые пары во всех цепочках могут быть объявлены эквивалентными и на соответствующих им местах проставляются 1. Переход к п.1.

  1.  Заполненная матрица эквивалентности определяет разбиение множества состояний на классы эквивалентности. Задаем i=0. Вводим в 0-ой класс состояние S0 и все состояния, для которых элементы строки S0 равны 1. S0 и все эти строки вычеркиваем.
  2.  i=i+1. Находим не вычеркнутую строку и записываем соответствующее ей состояние в класс i. Включаем в класс все состояния, для которых эл-ты выбранной строки равны 1. Вычеркиваем все строки, соответствующие состояниям, вошедшим в i-ый класс. Если есть не вычеркнутые строки, переход к п.3.
  3.  Если последнее состояние Sk исходного автомата не вошло ни в один из сформированных классов, то формируем из него самостоятельный класс. Строим новый автомат, эквивалентный исходному и имеющий минимально возможное число состояний, равное число i+1 построенных классов эквивалентности.

Задача минимизации числа состояний для асинхронного автомата.

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

Постановка задачи кодирования состояний.

Цифровой автомат – модель устройства, оперирующего двоичными сигналами. Входные и выходные переменные представлены как двоичные, однако внутренние состояния S0,S1,…,Sk рассмотрены как некоторая абстракция: единственным свойством состояний является то, что они различные. Переход к двоичным переменным при представлении состояний – главная цель кодирования состояний. Вводятся L двоичных переменных z1,…,zL и наборы значений этих переменных используется для представления состояний(кодирования состояний) цифрового автомата. Необходимо соблюдать следующие условие: различные состояния должны быть закодированы различными кодами. Поскольку при L переменных существует 2L различных набора, то k+1 <= 2L и Lmin = ]log2(k+1)[. Переменные z1,…,zL называются внутренними переменными автомата.

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

Методы кодирования состояний для синхронного автомата.

Тривиальное кодирование – состоянию с номером i соответствует L-разрядное двоичное число i.

Метод алгебраического кодирования.

Метод кодирования на основе матрицы желательности соседства.

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

Методы кодирования состояний асинхронного автомата.

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

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

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

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

Переход к системе булевых функций

Используя ТПиВ после кодирования состояний и матрицу кодирования, переставляем столбцы таблицы в соответствии с упорядочением кодов состояний в коде Грея. Символы состояний заменяются соответствующими кодами, получив привычное представление матрицы в коде Грея. Затем функции строятся в матричном виде. Упрощенные д.н.ф. строятся по интервальному покрытию.

ТЕОРИЯ ВЕРОЯТНОСТИ И МАТЕМАТИЧЕСКАЯ СТАТИСТИКА

9.Понятие случая. Классическая формула для вычисления вероятности случайного события. Статистическая вероятность случайного события.

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

Опыт со случайным исходом – опыт, с варьирующимися результатами.

Случайное явление – явление, которое при многократном воспроизведении одного и того же опыта протекает по – разному.

Вероятность случайного события {А} Р(А) – степень возможности случайного события, численная мера возможности наступления случайного события.

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

Достоверное событие – событие, которое будет наблюдаться в каждом опыте.

Невозможное событие – событие, которое не наблюдается ни в одном опыте.

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

Несовместные события – такие события, если никакие 2 из них не могут появиться вместе.

Равновозможные события – если по условиям опыта ни одно событие не является более возможным, чем другое.

Случаями называют события, которые образуют полную группу, несовместные и равновозможные.

Случай, благоприятный случайному событию {А} – такой случай, если его появление влечёт за собой появление события {А}.

Классическая формула вычисления вероятности Р(А) случайного события {А}:

Недостатком классического определения вероятности Р(А) случайного события А является то, что оно предполагает, что число элементарных исходов – конечно. На практике часто встречаются испытания, число возможных исходов которых бесконечно. В данном случае классическое определение вероятности неприменимо, что указывает на ограниченность классического определения. Также часто невозможно представить результат в виде совокупности элементарных событий. Ещё труднее доказать, что элементарные события равновозможны.

Для определения статистической вероятности события проводиться серия из n опытов, где n – велико. В результате каждого опыта событие А может произойти, а может и не произойти. Частота появления события А может быть определена из отношения:

 

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

10.Интерпретация основных понятий теории вероятностей на основе теории множеств. Алгебра событий. Аксиомы теории вероятностей.

Пространство элементарных событий — множество Ω всех различных исходов случайного эксперимента.

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

Всякое подмножество множества Ω элементарных событий называется случайным событием. Говорят, что в результате эксперимента произошло случайное событие , если (элементарный) исход эксперимента является элементом A.

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

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

Соответствие терминов

Теория вероятностей

Теория множеств

Пространство элементарных событий

Множество

Элементарное событие

Элемент множества

Событие

Подмножество

Достоверное событие

Подмножество, совпадающее с множеством

Невозможное событие

Пустое подмножество

Сумма A + B событий A и B

Объединение  

Произведение AB событий A и B

Пересечение

Событие, противоположное A

Дополнение A

События A и B несовместны

 пусто

События A и B совместны

не пусто

Алгебра событий.

Некоторую совокупность L событий называют алгеброй событий, если она удовлетворяет следующим условиям. Эта совокупность L содержит невозможное событие и достоверное событие . Если L содержит некоторое событие А, то она содержит и противоположное событие А*. Если совокупность L содержит некоторые события A1,A2,…,Ak, то она содержит и объединение С=Ai и пересечение D=∩Аi этих событий.

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

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

Разностью А\B событий А и В называется событие, состоящее в том, что А произошло, а В – нет.

События А и В называются совместными, если они могут произойти оба в результате одного опыта. В противном случае (то есть если они не могут произойти одновременно) события называются несовместными.

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

Из определения несовместных событий следует, что их произведение является невозможным событием.

Говорят, что события А1, А2,…,Ап образуют полную группу, если в результате опыта обязательно произойдет хотя бы одно из событий этой группы.

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

Аксиомы вероятностей:

1. Каждому событию {A} поставлено в соответствие число Р(А), называемое вероятностью события A.

2. Если события {А1}, {А2}, …, {Аn} попарно несовместны, то (аксиома счетной аддитивности).

3.Вероятность достоверного события {А} равна 1: Р(А) = 1.

11.Формула полной вероятности. Формула Байеса.

Пусть производиться опыт. Об условиях проявления опыта и его результатах можно сделать предположение: в результате может произойти n событий Hi, с вероятностью Р(Hi). Известно, что события Hi, несовместны, то есть и образуют полную группу событий: . Исходя из результатов опыта можно сделать вывод, что событие А может наступить при условии наступления одного из событий Hi, с вероятностью . Вероятность называется условной. Запись означает “вероятность события А при условии, что Hi произошло”

Так как события Hi, образуют полную группу и несовместны по условиям опыта (в ходе опыта неизбежно появление только одного события Hi, ), то событие А можно представить в следующем виде: , тогда вероятность события А можно представить в виде: , а так как события несовместны: . Вероятность событие , то есть события “А и Hi произошли одновременно” можно представить как произведение вероятностей событий Нi и (A|Hi), то есть (вероятность события “произошло событие Нi и событие “произошло событие А при условии, что произошло событие Нi””) или . Тогда . Выражение называется формулой полной вероятности. Расшифровка формулы полной вероятности: вероятность события А, которое может произойти лишь при появлении одного из несовместных событий Hi, , образующих полную группу, равно сумме произведений вероятностей каждого из этих событий Р(Нi) на соответствующую условную вероятность Р(A|Hi).

В результате опыта событие А может произойти при условии появления одного из несовместных событий Hi, , образующих полную группу. Поскольку заранее неизвестно какое именно событие Hi при условии появления события А, то вероятность называют априорной (доопытной) события . Запись означает “вероятность события Hi при условии, что А произошло”. Часто бывает необходимо знать априорную вероятность. По теореме умножения вероятностей имеем: , тогдадля ненулевых вероятностей Р(Hi) и Р(А). Выражение называется формулой Байеса. Используя формулу полной вероятности можно получить следующую запись: .

12.Закон распределения случайной величины. Статистический ряд. 

Случая величина – величина, принимающая в результате опыта то или иное значение. Множество значений, которое принимает случайная величина – множество значений случайной величины. Если данное множество счётно (конечно), то данная случайная величина называется дискретной случайной величиной.

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

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

  1.  упорядоченные значения признака;
  2.  вероятность появления значения признака.

Для дискретной случайной величины Х, которая принимает множество значений n статистический ряд примет следующий вид:

 

х1

………………

xi

……………………

xn

p1

……………….

pi

……………………

pn

это вероятность того, что в результате опыта с.в. примет значение хi

-это несовместные события и образуют полную группу

13.Определение функции распределения случайной величины. Свойства функции распределения.

Функция распределения случайной величины F(x) – функция, характеризующая распределение случайной величины Х. То есть это такая функция F(x), значение которой в точке х равно вероятности события , то есть события состоящего из тех случаев, для которых : . Так же функцию распределения называют функцией накопленной вероятности. Данная функция обладает следующими свойствами:

1. F(x) неубывающая функция своего аргумента, т.е. при х2>x1 F(x2)F(x1).

Доказательство:

Пусть даны 2 значения х1 и х2 на числовой оси эти два значения займут определенное значение х2>x1

С

В

А

Х

   х1                х2

Событие А состоит в том, что случайная величина Х примет значение, меньшее х1: {Х<x1}

Событие В состоит в том, что случайная величина Х примет значение, меньшее х2: {Х<x2}

Событие С состоит в том, что случайная величина Х примет значение, находящееся в интервале : {х1Х<x2}

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

2. .

Доказательство.

Так как по определению , то есть в данном случае . Так как значения случайной величины Х лежат в интервале , то есть нет значений, меньших , случайная величина Х не может принять значение, меньшее , значит, событие является невозможным, а вероятность такого события по определению равна 0: , значит: .

3. .

Доказательство.

Так как по определению , то есть в данном случае . Так как значения случайной величины Х лежат в интервале , то есть нет значений, больших , случайная величина Х не может принять значение, большее , значит, событие является достоверным, так как произойдёт при люом значении случайной величины Х, а вероятность такого события по определению равна 1: , значит: .

4.

Так как по определению , в вероятность по определению лежит в интервале , значит

, то есть .

14.Плотность распределения. Свойства плотности распределения.

Для описания непрерывной случайной величины Х используют понятие плотности распределения(или плотности вероятности)

Определим понятие плотности вероятности как отношение вероятности попадания случайной величины Х на интервал к величине интервала :.

Воспользовавшись свойством функции распределения: Р(x<X<x+Δx)=F(x+Δx)-F(x) получим . Полученное выражение позволяет вычислить среднюю плотность вероятности на участке Δx. Если перейти к пределу х0 тогда получим. То есть плотность распределения случайной величины Х – это производная функции распределения случайной величины Х. Плотность распределения случайной величины Х определена только для непрерывных случайных величин.

Плотностью распределения непрерывной случайной величины Х в точке х называется производная ее функции распределения в этой точке.

Выразим вероятность попадания непрерывной случайной величины Х на участок от  до . Так как , а так как функция плотности вероятности является производной от функции распределения, то исходя из формулы Ньютона-Лейбница: , то есть . Аналогично:

Свойства плотности распределения

  1.  Функция плотности вероятности f(x)-неотрицательная функция

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

  1.  Интеграл

Док-во: . Известно, что и , значит .

Геометрическая интерпретация свойства: площадь над кривой распределения равна 1.

15.Числовые характеристики случайных дискретных и непрерывных случайных величин.

Виды числовых характеристик случайных величин:

  1.  Характеристики положения:
  2.  Математическое ожидание;
  3.  Мода;
  4.  Медиана;
  5.  Начальный момент.

  1.  Характеристики рассеивания:

2.1. Дисперсия;

2.2. Среднее квадратичное отклонение;

2.3. Центральный момент.

  1.  Дополнительные характеристики:

3.1. Коэффициент асимметрии.

3.2. Коэффициент эксцесса.

Математическое ожидание – характеристика положения, называемое центром распределения, относиться к первой группе. Математическое ожидание дискретной случайной величины Х – сумма произведений значений, которые принимает дискретная случайная величина Х, на вероятности появления этих значений: . Если случайная величина Х принимает бесконечное множество значений, то . Если данный ряд сходиться, то говорят, что в данном случае математическое ожидание случайной величины Х определено, в противном случае (ряд расходиться) говорят, что математическое ожидание случайной величины Х не определено.

Для непрерывной случайной величины математическое ожидание определяется как: (так как -вероятность того, что случайная величина примет значение х). Если данный интеграл сходиться, то говорят, что в данном случае математическое ожидание случайной величины Х определено, в противном случае (интеграл расходиться) говорят, что математическое ожидание случайной величины Х не определено.

Математическое ожидание для непрерывной случайной величины и дискретной случайной величины обладает одинаковыми свойствами:

  1.  Математическое ожидание постоянной с (которую можно считать дискретной случайной величиной с одним возможным значением с, принимаемым ею с вероятностью 1 равно этой постоянной:
  2.  Математическое ожидание суммы равно сумме математических ожиданий:
  3.  Математическое ожидание суммы постоянной величины и случайной величины равно сумме постоянной и мат.ожиданию случайной величины:
  4.  Математическое ожидание произведения двух независимых случайных величин равно произведению их математических ожиданий:
  5.  Математическое ожидание произведения постоянной величины на случайную величину равно произведению постоянной на мат.ожиданию случайной величины:

Мода случайной величины Х – наиболее вероятное значение случайной величины Х. Иногда в совокупности встречается более, чем одна мода (в данном случае можно сказать, что совокупность мультимодальна).

Медиана хм случайной величины Х – средневероятное значение, которое обладает следующим свойством: . Для непрерывной случайной величины:

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

Для непрерывной случайной величины дисперсия определяется как: (так как -вероятность того, что случайная величина примет значение х и следовательно, вероятность центрированной случайной величины). Если данный интеграл сходиться, то говорят, что в данном случае дисперсия случайной величины Х определена, в противном случае (интеграл расходиться) говорят, что дисперсия случайной величины Х не определена.

Дисперсия для непрерывной случайной величины и дискретной случайной величины обладает одинаковыми свойствами.

Свойства дисперсии:

1) Дисперсия постоянной величины равна нулю:D[c]=0

2) Дисперсия произведения постоянной величины на случайную величину равна произведению квадрата постоянной величины на дисперсию случайной величины:

3) Дисперсия суммы постоянной с и случайной величин равна дисперсии случайной величины:

4) Дисперсия суммы двух независимых случайных величин равна сумме дисперсий этих величин:

Среднее квадратичное отклонение случайной величины Х является квадратным корнем из дисперсии случайной величины Х:

Для более голубоокого изучения случайной величины используются моменты. Моменты: начальные; центральные.

Начальный момент S-того порядка случайной величины Х – математическое ожидание S-той степени данной случайной величины. Для дискретной случайной величины Х начальный момент S-того порядка: , для непрерывной случайной величины Х: . Свойства начального момента S-того порядка аналогичны свойствам математического ожидания (начального момента первого порядка) .

Центральный момент S-того порядка случайной величины Х – математическое ожидание S-той степени центрированной случайной величины. Для дискретной случайной величины Х начальный момент S-того порядка: , для непрерывной случайной величины Х: . Свойства начального момента S-того порядка аналогичны свойствам дисперсии (центрального момента второго порядка) .

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

mx  

SK=0  

mx  

SK>0  

mx  

SK<0  

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

 

mx  

εх=0  

0.5 

mx  

εх<0  

0.5 

mx  

εх>0  

0.5 

Коэффициент эксцесса – мера остроты пика распределения случайной величины. Коэффициент эксцесса равен, где центральный момент четвёртого порядка, -среднее квадратичное отклонение.

16.Биномиальное распределение.

Пусть проводиться серия из n опытов, в результате которых может произойти события {А} с постоянной вероятностью Р(А) = р. Соответственно, вероятность того, что событие {А} не произойдёт , то есть произойдёт событие , обратное {А} . Тогда вероятность того, что события {А} произойдёт в m случаях из n, : , где - число сочетаний (комбинаций) появления события А и Ā (данное выражение известно, как формула Бернулли). Говорят, что дискретная случайная величина Х распределена по биноминальному закону, если . Параметрами данного распределения являются р и n.

Числовые характеристики биноминального распределения:

М(m)=np - математическое ожидание частоты появления события А при n независимых испытаниях;

D(m)=npq - дисперсия частоты появления события. А;

- среднее квадратическое отклонение частоты.

Функция плотности вероятности имеет вид:

17.Равномерное распределение непрерывной случайной величины.

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

Определим функцию распределения случайной величины для различных значений случайной величины Х:

;

.

Если а = 0, b=1, то такое распределение называют стандартным равномерным распределением.

Основные характеристики: математическое ожидание , дисперсия:

18.Показательное распределение непрерывной случайной величины.

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

Пусть имеет место простейший поток события с интенсивностью .

Поток событий можно изобразить последовательностью точек на оси времени 0—t каждая из которых имеет определенную координату.

Иллюстрация к определению простейшего потока

Простейший (или стационарный пуассоновский) поток событий обладает свойствами:

1. Стационарность. Поток называется стационарным, если вероятность попадания того или иного числа событий на элементарный участок времени длиной т (рис. 5.3, а) зависит только от длины участка и не зависит от того, где именно на оси t расположен этот участок.

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

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

Будем рассматривать величину t как непрерывную случайную величину T, которая равна времени между двумя событиями. Тогда из определения функции распределения имеем: . Для того, чтобы случайная величина T приняла значение, меньшее t, нужно, чтобы в интервале (0;t) произошло хотя бы одно событие. Тое есть надо найти вероятность события {в интервале (0;t) произошло хотя бы одно событие}. В данном случае целесообразно найти вероятность противоположного события ={в интервале (0;t) не произошло ни одно событие}. Тогда искомая вероятность будет равно. Так как мы имеем дело с простейшим потоком (пуассоновским), то можно найти вероятность того, что на интервале произойдёт 0 событий (то есть, не произойдёт ни одного): . Тогда искомая вероятность . Так как , то функция распределения имеет вид: . Так как функция плотности распределения является производной от функции распределения: , то функция плотности вероятности для экспоненциального распределения: , тогда

Основные характеристики:

Математическое ожидание:

Дисперсия:

С показательным распределением связано одно свойство:

Вероятность безотказной работы элемента на интервале времени длительностью t не зависит от времени предшествующей работы, а зависит от длительности t.

T

   t1                t1+dt

Пусть событие А = {вероятность безотказной работы на интервале (0,t1)}, В = {вероятность безотказной работы на интервале (t1, t1 +dt)}, С = {вероятность безотказной работы на интервале (0, t1 +dt)}. Вероятности событий: , Безотказная работа на интервале (0,t2) (событие С) означает безотказную работу на интервале (0,t1) (событие А) и на интервале (t1,t2) (событие В), то есть произведение событий А и В. Тогда Р(С) = Р(А)*Р(В), отсюда: . То есть вероятность безотказной работы на интервале не зависит от времени предшествующей работы, а зависит от длительности интервала.

19.Нормальное распределение. Стандартное нормальное распределение.

Случайная величина Х распределена по нормальному закону с параметрами , если её плотность вероятности имеет вид: . Следовательно, функция распределения имеет вид: . Математическое ожидание указывает максимальное значение кривой плотности вероятности.

Нормальное распределение обладает следующим свойством: если непрерывные случайные величины Х1, Х2 независимы и имеют нормальное распределение и математическими ожиданиями и дисперсиями , то Х1+ Х2 тоже имеет нормальное распределение с математическим ожиданием и дисперсией .

Стандартным нормальным распределением называют нормальное распределение с математическим ожиданием и дисперсией .

Вычисление значения функции распределения случайной величины, распределённой по нормальному закону, сложно, так как интеграл неберущийся, и табулирование функции с 2 параметрами требует много памяти. В связи с этим предложен следующий подход: Х – непрерывная случайная величина, параметры распределения известны. Будем рассматривать случайную величину Z, определённую следующим образом: , где Z – непрерывная случайная величина. Произведём замену для стандартного нормального распределения: . Данная функция более удобна для табулирования, хотя интеграл по – прежнему неберущийся. Для получения значения интеграла используют функцию Лапласа. Функция Лапласа – функция специального вида, обозначается Ф:  

Свойства функции Лапласа:

  1.  Монотонно возрастает
  2.  Нечётная:
  3.  ,

Функция Лапласа протабулированна на интервале (0;4). Вычислив значение Ф(Z) можно получить значение функции распределения: , . Вероятность попадания случайной величины Х на интервал (x1;x2): . Если границы интервала симметричны относительно математического ожидания: , то Также нормальное распределение подчиняется правилу трёх сигм: если случайная величина распределена нормально, то вероятность того, что данная величина отклониться от своего математического ожидания на величину, большую, чем утроенное среднее квадратичное отклонение, практически равно 0. (Именно поэтому функции Лапласа протабулирована на интервале (0;4)):

Пусть границы интервала (x1;x2): ,, где , тогда , , отсюда: .

20.Геометрическое распределение. Понятие простейшего потока. Свойства простейшего потока. Связь простейшего потока с распределением Пуассона.

Пусть производиться n опытов с целью появления события А, вероятность которого , тогда вероятность того, что событие А не произошло, то есть вероятность события, обратного событию А: . Говорят, что дискретная случайная величина Х подчиняется геометрическому распределению, если выражает число безуспешных попыток до первого успеха. Дискретная случайная величина Х принимает следующие значения: 0,1,2,…, m,…. Вероятность возможных значений определяется по формуле: .

Основные характеристики: математическое ожидание: , дисперсия:

Поток событий можно изобразить последовательностью точек на оси времени 0—t каждая из которых имеет определенную координату.

Иллюстрация к определению простейшего потока

Простейший (или стационарный пуассоновский) поток событий обладает свойствами:

1. Стационарность. Поток называется стационарным, если вероятность попадания того или иного числа событий на элементарный участок времени длиной т (рис. 5.3, а) зависит только от длины участка и не зависит от того, где именно на оси t расположен этот участок.

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

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

Будем рассматривать величину t как непрерывную случайную величину T, которая равна времени между двумя событиями. Тогда из определения функции распределения имеем: . Для того, чтобы случайная величина T приняла значение, меньшее t, нужно, чтобы в интервале (0;t) произошло хотя бы одно событие. Тое есть надо найти вероятность события {в интервале (0;t) произошло хотя бы одно событие}. В данном случае целесообразно найти вероятность противоположного события ={в интервале (0;t) не произошло ни одно событие}. Тогда искомая вероятность будет равно. Так как мы имеем дело с простейшим потоком (пуассоновским), то можно найти вероятность того, что на интервале произойдёт 0 событий (то есть, не произойдёт ни одного): . Тогда искомая вероятность . Так как , то функция распределения имеет вид: . Так как функция плотности распределения является производной от функции распределения: , то функция плотности вероятности для экспоненциального распределения: , тогда

21.Статистические оценки. Точечные оценки параметров распределения. Свойства оценок.

Множество однородных объектов, подлежащих изучению называется статическая (или генеральная) совокупность.

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

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

Виды статистических оценок:

Точечные – значение параметра распределения (математическое ожидание, дисперсия и т.д.)

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

В математической статистике сформулированы свойства, которыми должны обладать оценки:

  1.  Свойство состоятельности: , где . Характеризует сходимость по вероятности оценки к истинному значению некоторого параметра () при неограниченном увеличении объема выборки n, то есть неограниченном увеличении объема выборки оценка сколь угодно мало отличается от истинного значения некоторого параметра.
  2.  Свойство несмещенности оценки: , то есть если математическое ожидание оценки равно оцениваемому параметру генеральной совокупности. Характеризует отсутствие систематических отклонений оценки от параметра при любом конечном, в то числе и малом, объёме выборки. Если оценка не обладает данным свойством, то оценка называется смещённой и допускает систематическую ошибку
  3.  Свойство эффективности . Так как элементы составленного множества несмещённых и состоятельных оценок будут иметь разные средние квадратичное отклонения. Ясно, что чем меньше будет среднее квадратичное отклонение, тем меньше вероятность ошибки при определении приближённого параметра генеральной совокупности. Поэтому целесообразно выбрать оценку, у которой среднее квадратичное отклонение будет минимальным.

В математической статистике доказано, что оценка является состоятельной, несмещённой и эффективной только для нормально распределенной случайной величины.

22.Критерии проверки статистических гипотез. Критерий согласия Пирсона.

На разных этапах статистических исследований проявляется необходимость классификации данных. Но в распоряжении исследователя имеется только выборка (то есть совокупность объектов, отобранных для статистического наблюдения из генеральной совокупности, при этом число объектов выборки ,как правило, меньше числа элементов генеральной совокупности). Поэтому решения, которые принимаются по выборке, будут содержать случайные ошибки. Любое предположение исследователя о законе генерального распределения, которое принимается на основе выборки, представляет собой статистическую гипотезу, вероятность которой необходимо проверять согласуются или нет данные наблюдения с выдвинутой гипотезой. То есть можно расхождения между фактическими и теоретическими характеристиками считать случайными и незначительными или неверна сама гипотеза. Гипотеза, подлежащая проверке называется нулевой Н0.В ходе исследования могут быть приняты 2 решения:

  1.  Выборочные данные противоречат данной гипотезе и она отвергается;
  2.  Выборочные данные согласуются с данной гипотезой и она принимается.

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

  1.  Ошибка первого рода (отвергается верная гипотеза)
  2.   Ошибка второго рода (принимается ошибочная гипотеза).

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

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

Виды критериев:

  1.  правосторонний

R

                     RКР

  1.  Левосторонний:

R

                     RКР

  1.  ,

R

      RКРЛ                              RКРП

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

  1.  Анализ выборки
  2.  Оценка числовых характеристик.

Для проверки гипотез о распределении Пирсон предложил использовать величину статистического критерия: , где - весовой коэффициент, - статистическая частота, полученная по выборке, -теоретическая частота. Пирсон показал, что если весовой коэффициент равен практически не зависит от распределения генеральной совокупности.

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

МОДЕЛИРОВАНИЕ

23. Характеристики обслуживания заявок в системах массового обслуживания (СМО).

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

Структурная схема СМО:

Основные характеристики простейших СМО

Важным параметром СМО является коэффициент загрузки , который определяется как отношение интенсивности поступления требований к интенсивности обслуживания

  1.  Коэффициент загрузки устройства или канала

  1.  Время пребывания заявки в системе

- время ожидания заявки в очереди на обслуживание

- среднее время обслуживания

  1.  Длина очереди

  1.  Среднее число заявок в системе

 

Основные факторы, влияющие на характеристики СМО, это:

  1.  интенсивность входного потока
  2.  время обслуживания (т.е. время нахождения заявки в обслуживающих приборах );
  3.  дисциплина обслуживания.

24. Стационарный режим. Формулы Литтла. Нотация СМО.

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

t < t1, t > t2 - участки нестационарного, переходного режима

(tl, t2) - CMO находится в стационарном режиме, т.е. в режиме, когда ее характеристики не зависят от времени.

Условие существования стационарного режима — загрузка меньше единицы.

1-я формула Литтла:

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

— среднее число заявок в СМО

- среднее время пребывания в системе

2-я формула Литтла

 

— среднее число заявок в очереди

- среднее время ожидания в очереди

Для удобства задания СМО предложена нотация вида А/В/С, где

  1.  А - тип входного потока, т.е. функция плотности вероятности, описывающая интенсивность поступления заявок или вид распределения промежутков времени между последовательностью заявок;
  2.  В - тип обслуживания, т.е. функция плотности вероятности, представляющая время обслуживания или вид распределения промежутков времени обслуживания заявок;
  3.  С - число обслуживающих приборов.

Приняты следующие обозначения:

M — Марковское (простейший входной поток, экспоненциальное время обслуживания)

Ek — Эрланга k-го порядка

D — детерминированное (не случайное)

G — произвольное (General)

В некоторых случаях эту нотацию расширяют: A/B/C/D/E/F, где

  1.  D - дисциплина обслуживания заявок. Приняты следующие дисциплины :
  2.  Обслуживание в порядке поступления - FIFO (first in-first out)
  3.  Обслуживание в обратном порядке LIFO – (last infirst out)
  4.  Разделение обслуживающего прибора всеми заявками PS - Processor Sharing. При этом каждая из заявок обслуживается одновременно с остальными, но с быстродействием 1/n, где n - число заявок.
  5.  Обслуживание в случайном порядке RANDOM, т.е. с равной вероятностью выбора из очереди.
  6.  Обслуживание с приоритетами:

а) Абсолютные приоритеты, при этом очередная обслуживаемая заявка снимается, а заявка с более высоким приоритетом тут же начинает обслуживаться.

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

  1.  Е - емкость накопителя, т.е. длина очереди.
  2.  F - емкость источника заявок.

В случае отсутствия Е и F предполагается, что их значение сколь угодно велико.

25. СМО с неограниченной очередью. Уравнения для вероятностей состояний. Основные характеристики для многоканальных и одноканальных СМО.

СМО M/M/N/∞ . Входной поток — простейший с интенсивностью .

Время обслуживания — экспоненциальное со средним , интенсивностью .

Очередь не ограничена, дисциплина выбора — FIFO.

Состояния системы нумеруются по числу заявок в системе:

S0 - В СМО заявок нет (все каналы свободны),

S1 - занят один канал , остальные свободны;

Sn - заняты все n каналов (очереди нет);

Sn+1 - заняты все n каналов, одна заявка стоит в очереди;

Sn+k - заняты все n каналов, К заявок стоит в очереди;

Граф состояний:

1) (Число заявок в СМО <= числу каналов N) — нет очереди

2) - есть очередь

Условия существования стационарного режима

  1.  , - загрузка одного канала;

  1.   R — среднее число занятых каналов

Распределение финальных вероятностей задается решением системы уравнений Колмогорова:

Общее правило составления уравнений Колмогорова:

1) В левой части уравнения записываем финальную вероятность данного состояния Рi, умноженную на суммарную интенсивность переходов из данного состояния,

2) в правой части - сумму произведений интенсивностей всех потоков, входящих в i-oe состояние, на вероятности тех состояний, из которых эти потоки исходят.

Решение системы уравнений Колмогорова: (Для нахождения финальных вероятностей)

M/M/N/

M/M/1/

1) R — среднее число занятых каналов

2) - вероятность простоя

3) L — среднее число заявок в очереди

4) n — среднее число заявок в системе

5) — среднее время пребывания заявки в очереди

6) - среднее время пребывания заявки в системе

26. СМО типа G/M/1. Формула Поллячека - Хинчина.

СМО типа M/G/1 представляет собой одноканальную СМО с произвольной длительностью обслуживания и неограниченной очередью.

Время обслуживания заявки распределено по произвольному закону B(t) с плотностью вероятности b(t)

Среднее время обслуживания

Второй начальный момент

Среднее время W ожидания заявки в очереди

- время, необходимое для завершения обслуживания ранее выбранной заявки,

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

- средняя длина очереди

- среднее время обслуживания

- интенсивность входного потока

- загрузка СМО

(1)

Определение среднего времени дообслуживания заявки

 (2)

Формула Поллячека — Хинчина

 (3)

Таким образом, можно вычислить все основные характеристики СМО M/G/1

 (3)

(4)

(5)

(6)

где

- интенсивность входного потока

- среднее время обслуживания

- второй начальный момент

27. Характеристики СМО при многомерном входящем потоке. СМО с относительными приоритетами.

Характеристики СМО при многомерном входящем потоке

Характеристики заявок i-го типа

Усредненные характеристики

СМО с относительными приоритетами

Схема СМО с относительными приоритетами

Организация обслуживания с относительными приоритетами:

  1.  Заявки k-го приоритета накапливаются в очереди Ok
  2.  Дисциплина обслуживания в очереди Оk — FIFO
  3.  Заявки из k+1 -й очереди не выбираются на обслуживание до тех пор, пока есть хотя бы одна заявка в k-й очереди. k = 1,2...n-1

Пусть в СМО поступают N простейших потоков с интенсивностями . Времена обслуживания — случайные величины и известными средними и вторыми начальными моментами . Дисциплина обслуживания — относительные приоритеты.

Определим среднее время пребывания в очереди заявки k-го приоритета в стационарном режиме.

В некоторый момент времени в СМО поступает заявка k — го приоритета. Тогда она ждет в очереди случайное время :

где - время дообслуживания заявки.

, - длительность обслуживания заявок данного и более высоких приоритетов, поступивших в СМО ранее данной заявки,

, - длительность обслуживания заявок более высоких приоритетов, поступивших в СМО позже данной заявки, за время , которые будут обслужены ранее данной заявки

Для средних времен получим:

(1)

(2)

где

Остальные характеристики вычисляются по формулам:

  

28. Характеристики СМО с абсолютными приоритетами. Смешанные приоритеты. Закон сохранения времени ожидания для СМО без потерь.

Схема СМО с абсолютными приоритетами

Организация обслуживания с абсолютными приоритетами

  1.  обслуживающий канал занят обслуживанием заявки k-го приоритета
  2.  на вход поступает заявка jo приоритета
  3.  при k < j (у прибывшей заявки более низкий или такой же приоритет) заявка jo приоритета заносится в конец соответствующей очереди
  4.  при k > j (у прибывшей заявки более высокий приоритет) - обслуживание заявки k-го приоритета прерывается
  5.  Прерванная заявка заносится в начало очереди k-го приоритета и диспетчер переключает канал на обслуживание заявки jo приоритета.
  6.  Обслуживание прерванных заявок может производиться:

1) от начала обслуживания

2) от момента прерывания (дообслуживание).

Среднее время ожидания в очереди заявок k — го приоритета равно:

- среднее время ожидания начала обслуживания

- среднее время ожидания в прерванном состоянии

Разность длительностей ожидания заявок k-го приоритета

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

Закон сохранения времени ожидания справедлив для CMO, удовлетворяющих следующим требованиям:

1. Отсутствие отказов в обслуживании

2. Все входные потоки независимые и простейшие

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

4. Время обслуживания не зависит от входных потоков

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

при любой дисциплине обслуживания

где

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

СМО со смешанными приоритетами

В одноканальную СМО поступают N потоков заявок. Выделяются три группы потоков:

  1.  Nj первых потоков имеют абсолютные приоритеты
  2.  потоки Nj + 1, ..., Nj + N2 - относительные приоритеты,
  3.  потоки Nj + N2 + 1, ..., N - бесприоритетное обслуживание.

Среднее время ожидания в очереди заявок k-го приоритета:

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

СтМО или стохастическая сеть — это совокупность взаимосвязанных СМО. (заявка при обслуживании проходит несколько СМО последовательно, прежде чем покинуть СтМО)

СтМО изображается графом с N+1 вершинами, где вершина 0 является источником заявок а остальные N вершин — СМО.

Характеристики СМО в составе СтМО

Каждая CMOj характеризуется:

1) числом каналов обслуживания

2) временем обслуживания в канале

Заявка из источника с вероятностью Р0 может поступить в СМО j. Выходя из СМО i, заявка с вероятностью Рij может поступить в СМО j, j = 0, .... ,N.

Матрица вероятностей передач описывается следующим образом:

  

В стационарном режиме для СтМО характерно:

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

Разомкнутые СтМО

СтМО называется открытой или разомкнутой, если интенсивность источника не зависит от числа заявок, находящихся в сети.

Разомкнутые СтМО применяются в качестве моделей систем в которых находится переменное число заявок - вычислительных систем с разделением времени. Заявки - запросы со стороны пользователя на выполнение отдельных работ.

Для разомкнутых СтМО известна интенсивность источника заявок  - система (1) имеет единственное решение вида (2)

(1)

(2)

- коэффициент передачи - среднее число прохождений какой-либо заявки через СМО i в процессе обслуживания.

Параметры разомкнутой сети

1) N - число СМО, образующих сеть;

2) - интенсивность потока заявок на выходе

источника S0;

3) матрица вероятностей передач

где Рij - вероятность того, что заявка из системы Si направляется Sj,

4) Каждая СМО i характеризуется

  1.  К - числом каналов обслуживания
  2.  - средним временем обслуживания в канале

Условие существования стационарного режима: одновременность выполнения условий стационарности для всех узлов сети: или , учитывая, что

Характеристики в стационарном режиме

Узловые характеристики: - для всех систем (узлов) Si, i=l,..., n.

Сетевые характеристики:

1) L - средняя суммарная длина очередей,

2) m - среднее число заявок, пребывающих в сети,

3) w - среднее время ожидания заявки в очередях,

4) u - среднее время пребывания заявки в СтМО.

Экспоненциальная стохастическая сеть

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

Узловые характеристики экспоненциальной разомкнутой сети

Средняя длина очереди:

Вероятность простоя

Средняя загрузка одного канала

Полная загрузка узла (СМО)

В стационарном режиме:

Среднее число заявок в узле

Среднее время ожидания заявки в очереди

Среднее время пребывания заявки в узле

Для случая (Все СМО одноканальные)

   

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

30. Линейные структуры данных: массив, список, магазин, стек, дек.

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

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

1.Массив

Массив – это набор однотипных пронумерованных элементов, расположенных на непрерывном участке оперативной памяти.

Для массива определены операции:

  1.  Запись (аргумент: значение и номер элемента, результат: отсутствует)
  2.  Чтение (выборка)(аргумент: номер элемента, результат: значение выбранного элемента).

Ошибка возникает, если номер элемента выходит за пределы, установленные для массива.

Двумерный массив

1

2

j

m

1

11

12

1j

1m

l

2

21

22

2j

2m

i

i1

i2

ij

im

n

n1

n2

nj

nm

Представление массива в памяти по строкам:

Aij=Am+(i-1)*m*l+(j-1)*l=Am+((i-1)*m+j-1)*l; 1...n

Aij=Am+(i*m+j)*l, 0..n-1

2.Список

Список – набор пронумерованных однотипных элементов переменной длины. Для списка определены операции:

  1.  Выборка элемента (чтение). Аргумент: номер элемента, результат\6 значение элемента. Ошибка: элемента с заданным номером нет.
  2.  Добавление элемента. Аргумент: номер элемента и значение, результат: отсутствует. Ошибка: элемента с заданным номером нет.
  3.  Удаление элемента. Аргумент: номер элемента, результат: отсутствует. Ошибка: элемента с заданным номером нет.
  4.  Возможна операция «запись в элемент». Аргументы: номер и значение, результат: нет. Ошибка: элемента с заданным номером нет.

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

  1.  Реализация списка массивом

Для реализации списка массивом кроме массива, хранящего значения элементов, необходимо иметь 2 переменных:

S – размер массива, т.е. максимальное количество элементов.

С – текущее количество элементов списка.

При пустом списке С=0.

S

0

1

2

n-1

n

5

8

6

C

3

Выборка:

При выборке некоторого i-го элемента (элементы стоят друг за другом), операция заключается в чтении i-го элемента из массива.

Тв=1 уо (условная операция)

Добавление:

Добавить V после i-го элемента.

n/2 элементов * 2 уо

Тдоб=(n+1) уо

Туд = n уо

  1.  Динамический список

Динамический список представляет собой набор связанных записей.

Список может быть:

  1.  Однонаправленный
  2.  Двунаправленный.

1. Однонаправленный список

Однонаправленный список реализуется с помощью типового элемента, который содержит 2 поля:

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

Операции:

1. Выборка i-го элемента: В(i)→Аi. Чтобы вычислить Аi нужно просмотреть (i-1) элемент.

ТАi=i уо, Твыборки=(i+1) уо

2. Вставка (добавление) элемента после i-го элемента.

Tдоб.≈ (i+2)уо, Тдоб.=(n/2+2)

  1.  Удаление элемента из списка

Тудал.≈ (i+2)уо, Тудал.=Тдоб.=(n/2+2)

Сравнение динамического списка со списком в массиве

Выборка

Удаление

Добавление

Статический массив

1

n

n+1

Динамический список

n/2 + 1

n/2 + 2

n/2 + 2

Резюме:

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

2. Двунаправленный динамический список

Однонаправленный динамический список можно обрабатывать только от начала к концу, а в обратную сторону – нет.

Двунаправленный список строиться из типового элемента следующей структуры:

Информация

Указатель

предыдущего

Указатель

последующего

При вставке нового элемента после текущего выполняются действия:

  1.  Создается новый элемент
  2.  Значение указателя на следующий элемент из текущего переписывается в новый и значение предыдущего указателя из последующего элемента переноситься в новый.
  3.  Указатель на следующий элемент текущего и предыдущий последующего получают значения адреса нового элемента.

3. Стек

Стек – это структура данных, которая функционирует по принципу FILO (first input, last output).

Для стека определены следующие операции:

  1.  Чтение. Аргумент отсутствует, результат: значение верхнего элемента стека. При чтении верхний элемент удаляется. Операция завершается с ошибкой, если стек пуст.
  2.  Запись. Аргумент: значение, результат: отсутствует. Значение записывается в стек и становиться верхним.

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

Стек может быть реализован с помощью массива или динамического списка.

  1.  Реализация с помощью массива

Для реализации требуется:

  1.  массив, хранящий значение элементов стека;
  2.  две переменные: S – максимальное число элементов (размерность массива) и С – текущее количество элементов.

Операция запись 

  1.  Проверка состояния стека на наличие свободных элементов, если элементов нет, то ошибка.
  2.  Запись значения в элемент с индексом С и увеличение С на величину.

Файлы WS:

int WT (char V) { //сначала увеличиваем элемент с номером С

if (C=S) return 1; // затем увеличиваем С на 1

m[C++]=V; //чтобы отдельно не делать С++

return 0; //стек пуст, если С=0

}

2. Реализация с помощью динамического списка

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

Первый элемент стека – вершина списка. Если в стеке наверх положили элемент, то мы его добавляем перед первым элементом в списке – операция записи в стек.

Операция чтения элемента из стека соответствует выполнению двух операция со списком:

  1.  Выборка первого элемента.
  2.  Удаление первого элемента.

Признаком пустого стека является пустой (нулевой) указатель. Признаком полного стека является ошибка при выделении памяти для добавления элемента в список.

4. Очередь

Очередь - это структура, функционирующая по принципу FIFO (first input, first output).

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

Для очереди определены две операции:

  1.  Чтение.
  2.  Запись.

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

Очередь может быть реализована массивом или динамическим списком.

  1.  Реализация очереди массивом

Для реализации массивом необходим массив и четыре переменные:

S – максимальное количество элементов очереди.

y – состояние очереди.

f, l -= указатели на i-й и последний элементы очереди.

f будет указывать на 1-й элемент очереди, l – на свободное место после последнего элемента.

(рисунок)

При очереди массив закольцован. Процесс записи массивов в очередь можно представить следующим образом (l указывает на свободную переменную).

  1.  Реализация очереди динамическим списком

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

Операция чтения из очереди соответствует выборке первого элемента списка и его удалению.

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

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

Операции с очередью соответствуют выборке и удалению первого/последнего элемента списка и добавлению элемента после последнего/перед первым элементом списка.

5. Дек

Дек – это структура данных, которая представляет собой двунаправленную очередь или двусторонний стек.

Дек реализуется с помощью массива и двунаправленного списка.

  1.  Реализация с помощью массива

Набор элементов соответствует очереди.

  1.  Реализация данных с помощью двунаправленного списка

Операциям дека соответствуют операции удаления и добавление элементов в начало и конец списков. Условно выбирается ??? соответственно левая и правая сторона дека, т.е. начало или конец списка и устанавливается соответствие операции.

31. Таблицы. Неупорядоченная, двоичная упорядоченная и хеш-таблицы.

Таблица – структура данных, в которой информация идентифицируется некоторым значением, называемым ключом. Элементы таблицы состоят обычно из поля ключа и поля информации. Для таблицы определены следующие операции: выборка, добавление и удаление.

  1.  Выборка. Аргумент: <значение ключа>, результат: [информация из записи с заданным ключом]. Операция завершается с ошибкой, если нет записи с заданным ключом.
  2.  Добавление. Аргумент: <значение нового ключа, соответствующая информация>, результат: [ - ]. Производится добавление новой записи с заданным ключом и информацией. Операция завершается с ошибкой, если в таблице уже есть запись с заданным ключом. При программной реализации из-за ограничений на число записей также может возникнуть ошибка переполнения.
  3.  Удаление. Аргумент: <значение ключа>, результат: [ - ]. Выполняется удаление информации с заданным ключом из таблицы. Операция завершается с ошибкой, если нет записи с заданным ключом.

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

Ключ может быть:

  1.  простым;
  2.  частичным;
  3.  составным.

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

Частичный ключ представляет собой значение части поля.

Составной ключ: значение получается из конкатенации (присоединения) нескольких полей или их частей.

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

Различные способы реализации таблицы отличаются способом реализации поиска записи и выполнения операции.

Неупорядоченная таблица

Это таблица, в которой ключи никаким образом не упорядочены.

Таблица реализуется с помощью массива записей или списка.

  1.  Поиск

Поскольку ключи не упорядочены, то необходимо просматривать все ключи последовательно.

Tп = С/2 – ключ найден

Т’п = С – ключ не найден

  1.  Выборка

- Поиск элемента, если элемент не найден, то завершение с ошибкой.

- Выборка информации с заданной записи

С/2 + 1 = Тв = Тп+1 - трудоемкость выборки

  1.  Добавление

- Выполняется поиск. Если элемент найден, то завершение с ошибкой.

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

Перед записью необходимо проверить условие полноты таблицы С=S.

С + 2 =Тд = T’п + 2 – трудоемкость поиска

  1.  Удаление

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

- Переписываем последнюю запись на место удаляемой и уменьшаем количество записей на 1.

С/2 + 3 = Ту = Тп +3 – трудоемкость удаления

Преимущества

  1.  Простые алгоритмы.
  2.  Таблица может быть реализована на основе массива или динамического списка.

Основной недостаток

Трудоемкость операции поиска, просмотр ½ или всех элементов.

Упорядоченная двоичная таблица

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

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

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

Алгоритм двоичного поиска

С – количество записей;

l, r - левая и правая границы поиска;

i, x – номер и значение ключа средней записи;

key – искомый ключ.

  1.  Устанавливается зона поиска: l=0, r=c-1.
  2.  Проверяется условие завершения поиска: r<l → ключ отсутствует, переход к п.6.
  3.  Вычисление номера средней записи: i=(l+r)/2.
  4.  Анализ ключа. Если key=x, то запись найдена, переход к п.6.

- если key<x – переход к верхней зоне, r=i-1;

- если key>x – переход к нижней зоне, l=i+1.

  1.  Переход к п.2.
  2.  Конец.

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

Тп = ]log2C] – трудоемкость двоичного поиска

Операция добавления

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

Тд = Тп +n/2 * 2 + 1 (y.o.) = ]log2n[ + n + 1

Операция удаления

Выполняется поиск. Если запись не найдена, то завершение с ошибкой. Иначе: выполняется удаление записи.

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

Туд. = Тп + n/2 * 2 (у.о.) = ]log2n[ + n

 

Сравнение неупорядоченной и упорядоченной таблицы

неупорядоченная

упорядоченная

n

10

1000

10

1000

Тв

6

501

5

11

Тд

6

501

15

1011

Туд

7

502

14

1010

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

ХЕШ-таблица

ХЕШ-таблицу можно рассматривать как модификацию неупорядоченной таблицы с целью повышения эффективности поиска. Также ХЕШ-таблицу можно рассматривать как таблицу прямого доступа с выделением одного элемента для нескольких ключей.

n 1: Тп = n/2

n m: Тп = n/(m*2)

ХЕШ-таблица с открытым перемешиванием

Таблица создается на базе массива записей, который распределяется для всех групп таблицы. В группу выделяется определенное множество ключей. Разделение ключей по группам выполняется с помощью ХЕШ-функции. Аргументам функции является ключ, результат – номер группы (в некоторых случаях номер первой записи в массиве). ХЕШ-функция задается жестко и не изменяется в процессе работы с таблицей. ХЕШ-функция должна быть подобрана таким образом, чтобы ключи равномерно распределялись по группам, а для этого необходимо знать закон распределения ключей в процессе работы, что бывает очень редко. Если закон неизвестен, считают, что ключи следуют по равномерному распределению.

Операция поиска

Выполняется по массиву записей, начиная с группы, указанной ХЕШ-функцией. Операция завершается в трех случаях:

  1.  Ключ обнаружен (поиск успешен).
  2.  Обнаружена пустая запись → ключ отсутствует и текущая запись является местом добавления ключа.
  3.  Просмотрены все элементы таблицы → ключ отсутствует и добавлять некуда.

Массив записей закольцован, поэтому после просмотра последней записи осуществляется переход к первой.

(есть пример в конспекте)

ХЕШ-таблица с цепочками переполнения

ХЕШ-таблица с цепочками переполнения состоит из первичной таблицы и цепочек переполнения, которые реализуются динамическим списком или вторичной таблицей. Размер первичной таблицы равен числу групп. В этой таблице для каждой группы есть только одна запись. Таблица имеет три поля: ключ, информация и указатель на цепочку.

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

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

32. Деревья. Двоичные, сбалансированные и Б-деревья.

Дерево – это набор вершин и связей между ними (дуг), которые удовлетворяют следующим правилам:

  1.  Каждая вершина, кроме корня, имеет только одну предыдущую вершину (родителя).
  2.  Корень не имеет родителя и является единственным в дереве.

Вершина дерева может иметь несколько или не иметь потомков.

Степень вершин – количество потомков.

Лист – вершина без потомков.

Степень дерева – максимальная степень его вершин.

Вершины дерева располагаются по уровням.

Уровень – расстояние от вершины до корня.

Глубина (уровень) – максимальный уровень вершины.

Для дерева определены следующие операции:

  1.  Поиск вершины (выборка).
  2.  Добавление вершины.
  3.  Удаление вершины.
  4.  Получение полного списка вершин дерева (обход дерева).
  5.  Получение списка потомков для вершины (одного или всех уровней).
  6.  Получение списка предков вершины.

Дерево представляется с помощью нелинейного списка и указателя на корень дерева.

Типовой элемент для дерева N имеет структуру:

Информация

(код вершины)

Указатель

родителя

Указатель

потомка 1

Указатель

потомка 2

Указатель

потомка N

Указатель родителя обеспечивает двунаправленную обработку.

Пример:

В основном, просмотр и обработка деревьев осуществляется от корня к листьям. В таком случае в типовом элементе отказаться от указателя на родителя.

Информация

(код вершины)

Указатель

потомка 1

Указатель

потомка 2

Указатель

потомка N

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

Двоичные деревья

Двоичное дерево – дерево со степенью два.

Для построения дерева используется следующий типовой элемент:

код

вершины

указатель на

левого потомка

указатель на

правого потомка

Наиболее широкое распространение получило двоичное упорядоченное дерево, оно имеет упорядоченность вершин.

Для каждой вершины выполняется правило: код текущей вершины больше всех вершин левого поддерева (ЛП) и меньше всех кодов вершин правого поддерева (ПП).

Пример:

Выполнение операций с двоичными деревьями

  1.  Поиск вершины.

Алгоритм поиска

k – код вершины;

р – указатель на текущую вершину;

х – код текущей вершины;

t – указатель на корень дерева.

1. p присвоить значение t.

2. Если р – пустой указатель, то вершина отсутствует, переход к п.5.

3. Значение кода текущей вершины сравнивается с искомым кодом:

а) k = x, вершина найдена, переход к п.5;

б) k < x, указатель на левое поддерево;

в) k > x, указатель на левое поддерево.

Пример

  1.  Операция обхода дерева.

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

  1.  Прямой – вершины записываются в следующем порядке: К – Лв – Пв.
  2.  Обратный: Лв – К – Пв.
  3.  Концевой: Лв – Пв - К

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

Процедуру обработки вершин можно разбить на 3 фрагмента

  1.  Операция добавления

Добавление в упорядоченном дереве включает в себя:

  1.  Поиск.
  2.  Если заданная вершина отсутствует, то добавление.

Добавление всегда выполняется в лист дерева, т.е. добавляемая вершина всегда является листом. Добавление происходит в ту ветку, где прекращен поиск.

  1.  Операция удаления

Выполняется в два действия:

  1.  Поиск вершины.
  2.  Если он успешен. то удаление вершины.

Операция удаления вершины имеет три варианта решения, которые зависят от связи вершины с другими.

  1.  Вершина-лист

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

  1.  Удаляется вершина с одним потомком.

Удаление вершины заключается в перенаправлении указателя на текущую вершину на вершину-потомок, а затем удаление самой вершины.

 

  1.  Удаление вершины с двумя потомками.

Существуют два правила удаления такой вершины:

  1.  Указатель на текущую вершину перенаправляется на вершину (корень) левого поддерева, а вершина (корень) правого поддерева присоединяется к самой правой вершине левого поддерева.
  2.  Указатель перенаправляется на корень правого поддерева, а корень левого поддерева присоединяется к самой левой вершине правого поддерева.

← Самая левая вершина поддерева – это вершина с пустым левым указателем, в которую можно попасть из корня только по левым указателям.

Самая правая вершина поддерева – то же самое, но с правой стороны.

Сбалансированные деревья (AVL-деревья)

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

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

Идеально сбалансированным деревом является дерево, в каждой вершине которого число вершин левого поддерева и правого поддерева различаются не более чем на 1.

Сбалансированное дерево – это дерево, в каждой вершине которого глубина правого поддерева и глубина левого поддерева различаются не более чем на 1.

Идеально сбалансированное дерево всегда сбалансировано.

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

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

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

LL – поворот (левый-левый);

LR – поворот (левый-правый);

RR – поворот (правый-правый);

RL – поворот (правый-левый).

  1.  LL-поворот

  1.  LR-поворот

RR-поворот выполняется по правилам LL- поворота с симметричным отображением.

RL-поворот выполняется как LR.

Структура сбалансированного дерева

Вершина сбалансированного дерева содержит дополнительное поле «признак баланса», которое может принимать три значения:

1: Если длина правого поддерева больше левого (HL<HR).

0: Если длина левого равна длине правого (HL=HR).

-1: Если длина левого больше длины правого (HL>HR).

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

true: если в вершине различные длины поддеревьев.

false: если длины поддеревьев равны.

Общий алгоритм добавления вершины в сбалансированное дерево

  1.  Производится добавление новой вершины, в которой признак баланса устанавливается в 0 и флаг баланса в true.
  2.  После этого производится возврат от добавленной вершины к корню, в процессе которого корректируются признаки баланса вершин. Процесс заканчивается:
  3.  Достигли корня и обработали все дерево. Дерево является сбалансированным.
  4.  При корректировке признака баланса получено недопустимое значение (2 или -2), следовательно, в данной вершине возник дисбаланс и выполняется балансировка дерева по рассмотренным ранее схемам.

Правила корректировки признака баланса

  1.  Если флаг баланса “false”, то признак баланса не изменятся.
  2.  Если флаг “true”:
  3.  Если в вершину пришли с правого поддерева, то признак увеличивается на 1. Если с левого, то уменьшается на 1.
  4.  Если признак равен 0, то флаг устанавливается в ‘false’.

Б-деревья

Б-деревья относятся к классу сильно ветвящихся деревьев.

Дерево строится на основе следующего типового элемента, который является вершиной дерева:

k1

k2

kn

p0

p1

p2

pn

Вершина дерева содержит n ключей и (n+1) указателей.

Указатель p0 указывает на поддерево, содержащее ключи, меньше k1, pn указывает на ключи, большие kn, pi указывает на ключи, большие ki и меньшие ki+1.

p0<k1, pn > kn, ki+1 < pi > ki

Ключи отсортированы в порядке возрастания.

Свойства Б-дерева

  1.  Все листья дерева находятся на одном уровне.
  2.  Все вершины дерева, кроме корня, имеют от n/2 до n ключей.

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

Общий алгоритм поиска

  1.  Указатель на текущую вершину устанавливается на корень.
  2.  Если указатель пустой, то поиск завершен с ошибкой и переход к п.5.
  3.  Производится поиск заданного ключа среди вершин текущей вершины (применяется двоичный поиск). Если ключ найден, то установка признака успешного поиска и переход к п.5.
  4.  Если ключа нет, то указателю на текущую вершину присваивается значение соответствующего указателя по значению ключа. Переход к п.2.
  5.  Конец.

Добавление ключа

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

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

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

(рисунок)

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

33. Классификация систем программирования

Классификацию выполним по степени взаимодействия программной системы с аппаратной частью компьютера.

Система программирования

Назначение и состав

Используемые языки

Языки разработки

1. Операционная система

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

Языки управления заданиями

Assembler, C (для визуализации)

2. Системы программирования низкого уровня

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

Состав: ассемблер (транслятор), редактор связей (компоновщик), загрузчик, простой текстовый редактор, отладчики, библиотека.

Ассемблер (+ иногда дополнительные языки)

Ассемблер, в настоящее время С

3. Системы программирования на универсальных языках

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

Языки высокого уровня (C, Paskal)

Раньше Ассемблер, сейчас С, Paskal

4. Системы программирования на специализированных языках

Разработка прикладных программ. Состав: СУБД, САПР, системы удаленного доступа.

Специализированные языки (SQL, FoxPro, GPSS, HTML и т.д.)

Универсальные языки

5. Прикладные программы

Предназначены для решения конкретных задач пользователя.

Специализированные языки, реже – универсальные языки

34. Однопросмотровый, двухпросмотровый и многопросмотровый ассемблеры. Компоненты ассемблера. Алгоритм работы ассемблера.

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

Решаемые задачи:

  1.  Распределение памяти для переменных и программ.
  2.  Создание машинного кода программы, т.е. построение кодов команд для соответствующих операторов исходной программы.
  3.  Формирование объектного кода.
  4.  Формирование протокола трансляции (листинга).

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

Структура объектного кода

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

  1.  Карта-заголовок

H<имя модуля><длина модуля в ОП>

Назначение: задание имени модуля и заказ требуемого для него объема памяти.

  1.  Карта объявления внешней переменной

D<имя внешней переменной><значение (адрес)><перемещаемость>

Назначение: указание информации о внешней переменной.

  1.  Карта объявления внешней ссылки

R<имя внешней ссылки>[,…,]

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

  1.  Карта тела программы (карта кода программы)

Т<адрес данных><длина данных><данные>

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

  1.  Карта модификации

М<адрес данных><длина данных><формула>[,…,]

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

Форма модификации: <имя внешней ссылки> ±

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

  1.  Карта конца модуля

Е<точка входа>

Точка входа – адрес первой выполняемой команды.

Двухпросмотровый ассемблер

Основная задача, решаемая ассемблером – это посторенние машинных кодов команд по текстовым операторам. Для построения кода команды необходимо знать:

  1.  код операции;
  2.  типы и значения операндов.

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

В случае использования символического имени в операнде, возможны два случая:

1. Если соответствующая переменная или метка уже встретились в предыдущих операторах, то их значение известно (адрес) и можно генерировать код команды.

2. Переменная или метка еще не встретились, значит, их значение не известно, следовательно, построить код команды невозможно.

Поэтому задача построения кода программы решается в два просмотра.

Задача первого просмотра:

Распределить память для программы и определить значения переменных или меток.

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

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

Задача второго просмотра:

  1.  Формирование кода программы (кодов команд).
  2.  Формирование всех карт объектного модуля и создание объектного кода или объектного модуля.
  3.  Формирование или дополнение протокола трансляции (файла листинга).

В процессе трансляции используется ряд постоянных и переменных структур данных (таблиц).

Постоянные таблицы

  1.  Таблица форматов команд (ТФК)

Содержит информацию о коде операции, длине команды и формате кодирования команды. Состоит из полей:

  1.  мнемокод команды;
  2.  тип первого операнда;
  3.  тип второго операнда;
  4.  длина команды;
  5.  код операции (обычно значение первого байта);
  6.  вид формата команды (одно или несколько полей).

Ключ таблицы составной и включает в себя первые три поля.

Таблица используется при первом просмотре для определения длины команды, а также для определения формата и кода операции.

Таблица заполняется ???? и не изменяется в процессе трансляции.

  1.  Таблица регистров

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

  1.  имя регистра;
  2.  код (номер) регистра;
  3.  тип регистра.

Таблица используется на первом просмотре для определения типа регистров, на втором просмотре – код регистра (???).

Ключом является имя регистра.

Переменные таблицы

  1.  Таблица символических имен

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

  1.  имя (идентификатор);
  2.  значение (для переменной и метки это адрес, для переменной – ее значение);
  3.  перемещаемость. Значение переменной перемещаемо, если адрес (переменная, метка). Если это константа, то не перемещаема;
  4.  тип переменной;
  5.  длина значения переменной.

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

  1.  Таблица литералов

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

Функционирование двухпросмотрового транслятора (ассемблера)

Первый просмотр

Распределение памяти заключается в определении адресов для всех команд и всех переменных (адресов меток и идентификаторов переменных).

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

При первом просмотре СчАКу присваивается 0, а затем последовательно обрабатываются все операторы программы.

  1.  Если оператор содержит метку или переменную, то они записываются в ТСИ с текущим значением СчАК.
  2.  Если оператор - директива, то длина команды равно 0, переход к следующему оператору.
  3.  Если оператор – команда, то определяются типы операндов и по ТФК определяется ее длина, которая прибавляется в СчАК. Переход к следующему оператору.
  4.  Если оператор – псевдодиректива объявления данных, то вычисляется требуемый объем памяти в байтах и на это число увеличивается СчАК. Переход к обработке следующего оператора.

По окончанию трансляции значение СчАК равно длине программы.

Второй просмотр

Основная задача: формирование кодов команд, которые оформляются в виде карты Т.

  1.  СчАК := 0
  2.  Считывается очередной оператор.
  3.  Если директива, то длина команды равна 0, выполняются действия, соответствующие директиве и переход к п.2.
  4.  Если команда, то определяются типы операндов и выбирается соответствующая строка ТФК, устанавливается длина команды и формат. Используя таблицу регистров, таблицу символьных имен, значения операндов, формируется код команды, переход к п.8.
  5.  Если псевдодиректива, то производится преобразование значений переменных в двоичный формат и запись в буфер данных. Устанавливается длина команды, равная длине данных.
  6.  Если сформирована команда или данные, то формируется карта Т и записывается в объектный код.
  7.  Формируется строка листинга, которая записывается в файл протокола.
  8.  Счетчик увеличивается на длину кода и переход к п.2.

Однопросмотровый ассемблер

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

Таблица неразрешенных ссылок содержит поля:

  1.  имя ссылки;
  2.  адрес;
  3.  тип ссылки;
  4.  значение ссылки;
  5.  базовый адрес;
  6.  размер.

Базовый адрес используется тогда, когда используется относительная, а не абсолютная адресация.

(есть пример в конспекте)

Многопросмотровый ассемблер

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

В однопросмотровом ассемблере ссылка должна быть определена до использования.

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

При первом просмотре производится формирование ТСИ. При этом в таблицу записываются переменные, значения которых определены и флаг наличия неопределенных переменных. Если после (?????)

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

(есть пример в конспекте)

35. Однопросмотровый и многопросмотровый макропроцессоры. Таблицы макропроцессора. Алгоритм работы процессора.

Макропроцессор (макрогенератор) – предназначен для текстовой замены фрагментов текста программы с учетом параметров.

Первые макропроцессоры были разработаны для ассемблеров, чтобы реализовать механизм макрокоманд. Вновь макропроцессор появился в языке Си.

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

В процессе функционирования макропроцессор использует три структуры данных:

1. Таблица макрокоманд

Предназначена для хранения данных о встретившихся макроопределениях (т.е. список допустимых макрокоманд). Содержит поля:

  1.  имя макроопределения;
  2.  указатель на первую строку и на последнюю строку текста макроопределения в массиве макроопределений.

2. Таблица макроопределений (массив)

Предназначена для хранения текста макроопределения (т.е. по структуре это массив строк).

3. Массив аргументов

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

Алгоритм однопросмотрового макропроцессора основан на изъятии из текста программы макроопределения, записи его в массив макроопределений с заменой формальных параметров в тексте на их номера, на извлечении макроопределения из массива и вставки его на место макрокоманды с заменой номеров на фактические параметры.

Алгоритм:

  1.  Инициализация структур данных (очистка их).
  2.  Чтение очередного оператора из буфера вставки. Если буфер пустой, то чтение очередной строки из входного файла.
  3.  Если очередной оператор macro, то обработка макроопределения
  4.  Запись параметров оператора в массив аргументов.
  5.  Добавление в таблицу макрокоманд строки с именем макроопределения и номером первой свободной строки в массиве макроопределений.
  6.  Копирование всех строк из буфера или файла до соответствующего ENDM в массив макроопределений с заменой формальных параметров на их номера в массиве аргументов.
  7.  Запись в последнюю строку таблицы макрокоманд номера последней использованной строки массива макроопределений. Переход к п.2.
  8.  Если текущий оператор – макрокоманда, то формирование макрорасширения по макрокоманде и макроопределению.
  9.  Запись параметров макрокоманды в массиве аргументов.
  10.  Определение по таблице макрокоманд номера первой и последней строки макрорасширения.
  11.  Вставка на место макрокоманды в буфер текста из массива макроопределения с заменой номеров параметров на значения элементов из массива аргументов.
  12.  Переход к п.2.
  13.  Запись текущей строки (оператора) в выходной поток. Если оператор не равен END, то к п.2.
  14.  Конец.

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

(есть пример в конспекте)

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

Загрузчик – это системная программа, предназначенная для загрузки в оперативную память исполняемого модуля (загрузочного модуля) и передачи ему управления.

Загрузчик состоит из машинно-зависимой и машинно-независимой частей.

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

Машинно-зависимая часть – это способ формирования адреса.

Существуют 4 способа организации памяти:

  1.  непрерывная;
  2.  сегментная;
  3.  страничная;
  4.  виртуальная.

Непрерывная память

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

Сегментная память

Используется в том случае, когда разрядность слова меньше разряда адреса оперативной памяти. В этом случае адрес представляет собой два значения:

  1.  адрес начала сегмента;
  2.  смещение внутри сегмента.

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

Страничная память

Используется тогда же, когда и сегментная, но адрес оперативной памяти формируется из двух значений:

  1.  номер страницы;
  2.  смещение в странице.

№ страницы

Смещение в странице

Смещение в странице имеет размерность слова, а номер страницы зависит от объема адресуемой памяти.

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

Виртуальная память

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

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

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

Впервые такой вариант был применен в машинах IBM.

Абсолютный загрузчик

Предназначен для загрузки в оперативную память абсолютного загрузочного модуля и передачи ему управления.

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

Абсолютный загрузочный модуль содержит три типа карт:

H<имя модуля><длина модуля><адрес загрузки>

Т<адрес данных><длина данных><данные>

Е<точка входа>

Алгоритм функционирования абсолютного загрузчика:

  1.  Открытие файла с загрузочным модулем.
  2.  Чтение и обработка карты Н.
  3.  Заказать в операционной системе блок памяти заданной длины по адресу загрузки. Если память не выделена, то сообщение об ошибки и переход к п.7.
  4.  Чтение очередной карты.
  5.  Если карта Т, то определение адреса данных и длины данных и загрузка данных из карты в оперативную память. Переход к п.4.
  6.  Если карта Е, то определение точки входа, передача управления на точку входа.
  7.  Конец.

Преимущества загрузчика:

  1.  Загрузчик простой, представляет программу из одного, максимум двух циклов.
  2.  Маленький размер загрузчика.

Недостаток:

Программа загружается по конкретному адресу.

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

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

Перемещающий загрузчик

Предназначен для загрузки в оперативную память перемещаемого загрузочного модуля и передачи ему управления.

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

Содержит карты:

H<имя модуля><длина модуля>

Т<адрес данных><длина данных><данные>

M<адрес данных><длина данных>[<имя начала>]

Е<точка входа>

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

Алгоритм перемещающего загрузчика:

  1.  Открытие файла с перемещаемым модулем.
  2.  Чтение карты Н и ее обработка.
  3.  Заказать в операционной системе блок памяти заданной длины. Если память не выделена, то сообщение об ошибке и переход к п.8. Иначе адресу загрузки присваивается значение адреса выделенной памяти.
  4.  Чтение очередной карты.
  5.  Если карта Т, то определение адреса данных и длины данных. Запись данных из карты по адресу <адрес_данных + адрес_загрузки> и переход к п.4.
  6.  Если карта М, то определение адреса данных и длины данных. Увеличение на значение адреса загрузки данных заданной длины по адресу <адрес_данных + адрес_загрузки>. Переход к п.4.
  7.  Если карта Е, то определение значения точки входа и передача управления по адресу <точка_входа + адрес_загрузки>.
  8.  Конец.

Преимущество:

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

Недостаток:

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

Связывающий загрузчик

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

Связывающий загрузчик разбивается на два модуля:

  1.  Редактор связей.
  2.  Перемещающий загрузчик.

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

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

Основная задача редактора связей, это:

  1.  Распределение памяти для модулей программы.
  2.  Определение значений внешних переменных.
  3.  Модификация кода программы в местах, где использованы внешние ссылки или перемещаемое выражение.

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

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

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

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

Задача первого просмотра:

  1.  Определение длины модуля.
  2.  Определение внешних переменных и их значений в модулях.
  3.  Определение внешних ссылок модуля.
  4.  Распределение памяти для модулей и расчет значений внешних переменных в программе.

Задачи второго просмотра:

  1.  Загрузка кода программы в оперативную память.
  2.  Модификация кода программы в соответствии со значениями внешних переменных.
  3.  Передача управления загруженной программе.

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

  1.  Таблица распределения памяти. Содержит поля: ключ → имя модуля, длина модуля, адрес в оперативной памяти.
  2.  Список внешних имен (таблица). Содержит поля: имя внешней переменной, имя модуля, значение внешней переменной, перемещаемость, тип внешних переменных, ключ внешних переменных.
  3.  Список внешних ссылок (таблица). Содержит поля: имя внешней переменной, имя модуля.

Алгоритм первого просмотра

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

  1.  для таблицы распределения памяти (Н);
  2.  для таблицы внешних переменных (D);
  3.  для списка внешних ссылок.

Алгоритм:

  1.  Выделение памяти для двух таблиц и списка.
  2.  Открытие очередного файла с объектным модулем. Если нет, то к п.10.
  3.  Чтение очередной карты модуля.
  4.  Если карта Н, то определение имени модуля и его длины и запись их в таблицу распределения памяти (ТРП), переход к п.3.
  5.  Если карта D, то определение имени внешней переменной, ее значения и перемещаемость, запись новой строки в таблицу внешних переменных (ТВП), переход к п.3.
  6.  Если карта R, то определение имени внешней ссылки, запись новой строки в список внешних ссылок (СВС), переход к п.3.
  7.  Если карта Е, то закрыть файл объектного модуля и перейти к п.2.
  8.  Пропустить карты Т, М, переход к п.3.
  9.  Проверка на разрешимость внешних ссылок. Для всех имен внешних ссылок нужно найти соответствующие внешние переменные. Если имеются ссылки без переменных, то программа содержит ошибки, формирование сообщения, завершение работы загрузчика.
  10.  Конец.

Алгоритм второго просмотра

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

При втором просмотре обрабатываются карты Н, Т, М и Е для главного модуля.

  1.  Расчет длины программы. Это сумма длин всех модулей.
  2.  Заказ в операционной системе блока памяти, равного длине программы. Если блок выделен, то адрес программы равен адресу выделенного блока, иначе сообщение об ошибке и завершение работы программы.
  3.  Расчет адресов модулей в оперативной памяти. Первый модуль равен адресу программы, последний – адресу предыдущего модуля + его длина.
  4.  Расчет значений внешних переменных. Для всех перемещаемых внешних переменных их значение увеличивается на адрес загрузки их модуля.
  5.  Открытие очередного файла с оперативным модулем, переход к п.2.
  6.  Чтение очередной карты.
  7.  Если карта Н, то определение имени модуля и выборка адреса модуля по ТРП, переход к п.6.
  8.  Если карта Т, то определение адреса и длины данных, загрузка данных из карты по адресу: адрес данных + адрес модуля. Переход к п.6.
  9.  Если карта М, то определение адреса и длины модифицированных данных, выделение из карты фрагмента формулы модификации (???). Определяется значение внешней ссылки по таблице внешних переменных и прибавляется ими вычитается соответствующее значение по адресу: адрес данных + адрес модуля с учетом длины модифицируемых данных. Переход к п.6.
  10.  Если карта Е или модуль является главным, то сформировать адрес первой выполняемой команды, который равен: точка входа + адрес модуля. Закрываем файл объектного модуля, переход к п.5.
  11.  Если карты D, R, то пропустить их и переход к п.6.
  12.  Конец.

Имя главного модуля является заранее определенным (например, в Си ‘main’, в Паскале - ‘program’ и т.д.) или главным модулем является первый модуль в списке объектных модулей (например, Ассемблер).

(есть пример в конспекте)

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

37. Состав ПО ЭВМ. Классификация систем программирования. 

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

Классификация ПО ЭВМ

  1.  По способу распространения:
  2.  лицензионное;
  3.  свободно распространяемое.
  4.  По способу использования:
  5.  системное программное обеспечение (СПО);
  6.  пакеты прикладных программ общего назначения (текстовые редакторы, табличные процессоры, СУБД, математические пакеты);
  7.  специализированные пакеты прикладных программ (для решения конкретных задач на конкретном предприятии с использованием существующей на данный момент нормативно-правовой базы).
  8.  По ориентации на поддержку процессов:
  9.  Инструментарий поддержки технологических процессов:
  10.  универсальный инструментарий, который можно использовать в нескольких технологических процессах (процесс-независимый нструментарий).
  11.  Инструментальные системы разработки и сопровождения программных продуктов:
  12.  инструментальные среды программирования;
  13.  средства автоматизации разработки программ (CASE-средства);
  14.  интегрированные среды и репозитории проекта.
  15.  Инструментарий поддержки коллективной разработки.
  16.  По функциональному назначению:
  17.  Редакторы, поддерживающие конструирование (формирование) многочисленных программных документов.
  18.  Анализаторы, производящие:
  19.  статическую обработку документов, осуществляя различные виды их контроля, выявление определенных свойств и накопление статистических данных;
  20.  динамический анализ программ.
  21.  Преобразователи, позволяющие:
  22.  автоматически приводить документы к другой форме представления;
  23.  синтезировать какой-либо документ из отдельных частей.
  24.  Инструменты поддержки процесса выполнения программы, позволяющие исполнять:
  25.  описания процессов или отдельных их частей, представленных в виде, отличном от машинного кода;
  26.  машинный код с дополнительными возможностями его интерпретации.
  27.  По категориям:
  28.  вспомогательные программы;
  29.  пакеты разработчика;
  30.  инструментальные средства.
  31.  По предоставляемому интерфейсу:
  32.  интерфейс командной строки;
  33.  графический пользовательский интерфейс.

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

Системы программирования – предназначены для оптимизации разработки программ для ЭВМ: машинно-ориентированные (ассемблер), процедурно-ориентированные (C,Паскаль, Бейсик), объектно-ориентированные (VB, Delphi,VC++,VC++Builder).

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

Транслятор – программа, которая переводит программу на исходном входном языке на эквивалентную ей программу на результирующем машинном языке.

Делятся на однопроходные и много проходные.

По способу формирования объектного кода различают 2 типа трансляторов:

- компилятор;

- интерпретатор.

Компиляторы – это программы, в которой процесс трансляции и выполнение объектной программы разделены во времени (С++).

Интерпретаторы – это программы, в которой процесс трансляции и выполнения объектной программы совмещены во времени (basic, java, pascal).

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

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

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

Схема трансляции:

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

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

Семантический анализатор – проверяет правильность текста исходной программы на основании формального описания семантики языка программирования (неформального описания). Если семантический анализ выполняется без использования формальных методов, то этот блок входит в один из блоков синтеза объектной программы.

39. Машинно-независимая оптимизация программ.

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

Оптимизация программ производится на уровне: 1) исходной программы (циклов, линейных участков, ветвлений); 2) промежуточной формы; 3) объектной программы.

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

1) строим ПОЛИЗ

2) формируем триады

2.1 операнды записываются в стек

2.2. если встречается знак операции, то из стека выталкивается необходимое число операндов; слева записывается знак операции.

2.4 в верхушку стека записывается триада с соответствующим номером.

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

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

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

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

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

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

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

40. Лексический анализ.

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

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

Общий алгоритм лексического анализатора можно представить следующим образом:

1) удаление пробелов и комментариев.

2) выделение идентификаторов и формирование таблицы идентификаторов.

3) выделение констант и преобразование их во внутреннюю форму. Формирование таблицы констант.

4) Выявление лексических ошибок (недопустимое служебное слово, недопустимый символ).

5) Выявление грубых синтаксических ошибок.

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

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

Выделяют методы непрямого и прямого Л.А.

Непрямой Л.А. (Л.А. с возвратами) заключается в последовательной проверке версий о классах лексем. Если проверка текущей версии не подтверждается, то происходит откат назад по цепочке символов и осуществляется проверка следующей версии.

Прямой Л.А. позволяет определить значение лексемы без отката назад по цепочке символов.

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

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

Эти причины заключаются в следующем:

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

Приведём пример построение Л.А. для логических операций.

Таких как:

1) x1 & x2 ;

2) x3 ^ !x3 & (x2 # !x2) ;

3) if x1 then x1 else !x2x3 ;

4) if x1 & x2 & x3 then x3 ^ !x3 & (x2 # !x2) else x1 & (!x1 # (x2 ^ !x2)).

Диаграмма состояний будет иметь следующий вид.

#&^)te

x

0..9

( )

!#&^

t

e

f

i

К1

К1

К1

1

l

s

e

h

e

n

2

3

4

5

6

7

К1

К1

К1

8

Н1

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

0

1

2

3

4

5

6

7

8

!

30

40

#

30

40

&

30

40

^

30

40

(

20

)

20

40

0..9

8

i

1

f

10

e

2

10

7

40

l

3

s

4

t

5

40

h

6

n

10

x

8

41. Нисходящий синтаксический анализ.

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

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

Существуют нисходящие и восходящие методы синтаксического анализа. Нисходящие методы (разбор сверху вниз) начинают анализ с начального символа или аксиомы и пытаются построить вывод S=>α T , при котором цепочка α- цепочка терминальных символов, входящих в то или иное предложение языка.

Существует несколько проблем, возникающих при разборе сверху вниз:

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

К нисходящим СА относятся методы LL(1) и рекурсивный спуск.

В методе рекурсивного спуска программа зависит от входной грамматики. Для каждого нетерминала грамматики создается своя процедура, носящая его имя; ее задача - начиная с указанного места исходной цепочки найти подцепочку, которая выводится из этого нетерминала. Если такую подцепочку считать не удается, то процедура завершает свою работу вызовом процедуры обработки ошибки и останавливает разбор. Если подцепочку удалось найти, то осуществляется возврат в точку вызова. Тело каждой такой процедуры разрабатывается по правилам вывода для соответствующего нетерминала. Терминал распознаётся самой процедурой, а нетерминал соответствует вызовам процедур носящих их имена.

Например:

 

Программная реализация будет иметь следующий вид:

#include<stdio.h>

int c; File *fp:

void S() { A(); B(); if (c!=’’) E(); }

void A() {….}; void B() {….}; void E() {….};

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

Структура транслятора основанного на методе LL(1)

Объектное описание (объектный язык)

Дерево разбора

Цепочка лексем

Исходное описание (исх. язык)

Л.А.

С.А.

Генерация кода

Управляющая таблица

Синтаксис языка

Строкам управляющей таблицы М для грамматики G(V,T,P,S) ставятся в соответствие элементы множества {VUTU$} ($-маркер дна стека), столбцам - элементы множества {T U "lambda"}("lambda" - пустая строка). Перед началом работы алгоритма в рабочий стек заносятся символы $ и S. Возможные значения элементов таблицы и их интерпретация алгоритмом разбора приведены в таблице:

N п/п

Значение элемента таблицы

Интерпретация алгоритмом разбора

1

Номер i порождающего правила грамматики

Удаление символа из стека; запись этого выходной стек; запись части правила номер i в рабочий стек справа на лево начиная с последнего символа

2

"сдвиг"

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

3

"допуск"

Конец работы

4

"ошибка"

Вывод сообщения об ошибке; конец работы

В методе LL(1) созданная грамматика нуждается в преобразовании. Это преобразование нужно для ликвидации ситуаций «разветвления», когда возможны несколько вариантов дальнейшего пути.

В общем случае LL(1) грамматика – это такая грамматика, когда для множества альтернативных правил

, множества попарно не пересекаются. При этом множество состоит из множества всех терминальных символов длины 1 с которых начинаются выводимые цепочки из .

Существуют следующие правила:

1) Правило левой факторизации. Если есть несколько альтернативных правил вида

, то цепочку вывода можно заменить

2) Левая рекурсия. Нетерминал называется леворекурсивным, если, применяя к нему одно или более правил можно вывести цепочку начатую этим нетерминалом.

Правило называется леворекурсивным, если оно используется на первом шаге такого вывода.

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

Например:  

Правило устранения:

Правило вида: преобразуется в 2 правила:

3) Правило одиночной замены. 

4) Замена края.

Пусть грамматика содержит «N» правил с левой частью <А> и других таких правил нет. и есть правила вида:

Тогда грамматику можно преобразовать к след. виду:

Пример преобразования грамматики:

42. Восходящий синтаксический анализ.

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

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

Существуют нисходящие и восходящие методы синтаксического анализа. Методы восходящего С.А. нашли широкое применение в действующих трансляторах. Общая идея состоит в следующем: входящая программа рассматривается как строка символов S1,S2,..,Sk. Восходящий распознаватель отыскивает часть строки, которую можно привести к нетерминальному символу. Такая часть строки называется фразой. А операция приведения фразы к нетерминальному символу называется сверткой (редукцией). Фраза, которая прямо приводима к нетерминальном символу, называется непосредственно приводимой фразой. В большинстве восходящих анализаторов отыскивается самая левая непосредственно приводимая фраза, которая называется основой. После выделения основы выполняется свертка основы в нетерминальный символ. Процесс продолжается либо до получения начального символа, либо до установления ошибки. В общем случае если имеются альтернативные правила и редукция с помощью 1-го правила невозможна, то делается попытка применить второе альтернативное правило. Последовательность промежуточных строк, которая заканчивается начальным символом, называется разбор.

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

К алгоритмам восходящего синтаксического анализа относятся:

  1.  анализ на основе LR(k)-грамматики
  2.  анализ методом предшествования

 Алгоритм синтаксического анализа на основе LR(k)-грамматики относится к классу алгоритмов восходящего разбора.

Метод предшествования работает с помощью грамматики предшествования. Это такая КС – грамматика, в которой для каждой упорядоченной пары терминалов и нетерминальных символов выполняется не более чем одно из трёх правил отношений предшествования:

1) ;

2) ; L(<D>) – множество самых левых символов выводимых из правила <D>.

3) ; R(<C>) – множество самых правых символов выводимых из правила <C>.

Структура транслятора основанного на методе предшествования.

Объектное правило

Разбор

Лексема

Входная программа

Л.А.

С.А. (Распознаватель)

Генерация кода

Матрица предшествования

Таблица правил

Пр1

Имя п/п 1

…..

………….

ПрN

Имя п/п N

Распознаватель предшествования использует рабочий стек. Символы входной строки поочерёдно записываются в стек, до тех пор, пока, между символом вершины стека Sl и символом входной строки Si не появится отношение > (Sl > Si). Тогда стек рассматривается в направлении от вершины к началу, пока между двумя очередными символами Sk и Sk-1 не установится отношение < (Sk-1 < Sk). Тогда часть строки от Sl до Sk - «основа» и отыскивается правило вида и если необходимо вызывается семантическая подпрограмма, которая обрабатывает строку и преобразовывает в промежуточную форму.

Правила, при помощи которых переводят в методы предшествования.

1) исключение пустых правил. (!!!! посмотреть и дописать!!!!!)

 

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

2) устранение конфликтов «перенос-опознание».

 

Данная грамматика содержит «конфликт переноса-опознания», для магазинного символа <B> и входного символа a. Для устранения конфликта переноса-опознания надо ввести новый нетерминал <B’>  <B> и, а затем заменить все вхождения <B> в правой части правил, кроме самых правых вхождений.

Пример:

 

<U>

L(<U>)

R(<U>)

<П>

<В>

<B’>,<T>,<T’>,<M>, i, (

<B’>,<T>,<T’>,<M>,i, )

<В’>

<T>,<B’>,<T’>,<M>, i, (

<T>,<T’>,<M>,i, )

<Т>

<T’>,<M>, i, (

<T’>,<M>, i,)

<Т’>

<M>,<T’>, i, (

<M>, i, )

<М>

i, (

i, )

Матрица предшествования:

(

i

<М>

*

<Т’>

<Т>

+

<В’>

)

<В>

)

>

>

>

>

i

>

>

>

>

<М>

>

>

>

>

*

<

<

=

<Т’>

=

>

>

>

<Т>

>

>

>

+

<

<

<

<

=

<В’>

=

(

=

=

<В>

<

<

<

<

<

<

=

<

<

<

<

<

<

=

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

ОПЕРАЦИОННЫЕ СИСТЕМЫ

43.Объекты ядра в ОС Windows. Управление процессами в Windows.

Объекты ядра Windows используются системой и приложениями для управления самыми разнообразными ресурсами, например, процессами, потоками, файлами и др.

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

Приложение не имеет прямого доступа к объектам ядра, для этого существуют специальные функции Windows. Доступ к объектам ядра программа может получить только через эти функции. Каждая функция, создающая объект ядра, возвращает хэндл созданного объекта (в русскоязычной литературе используется также слово «описатель»). Хэндл - это всего лишь некое значение, уникально идентифицирующее объект ядра в пределах данного процесса. Следует заметить, что значения описателей зависят от конкретного процесса. То есть, если с помощью какого-либо способа Вы передадите значение хэндла потоку другого процесса, то использование этого значения во втором процессе приведет к ошибке.

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

Основная структура, которая описывает процесс в Windows - это блок управления процессом (PCB, Process control block). В состав PCB обычно включают:

  1.  состояние, в котором находится процесс;
  2.  программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей;
  3.  содержимое регистров процессора;
  4.  данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.);
  5.  учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.);
  6.  информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом; таблица открытых файлов).

Блок управления процессом (PCB) реализован в виде набора связанных структур, главная из которых называется блоком процесса EPROCESS. Соответственно, каждый поток также представлен набором структур во главе с блоком потока ETHREAD.

Процесс создается функцией CreateProcess (а также CreateProcessAsUser и CreateProcessWithLogonW).

Процесс завершается с помощью функций ExitProcess, TerminateProcess. Каждый новый процесс содержит, по крайней мере, один поток, остальные потоки создаются динамически.

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

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

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

В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение - приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель).

44.Управление процессами в ОС UNIX.

Задачи UNIX

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

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

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

Программы и процессы

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

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

Типы процессов Unix 

Свойства и идентификаторы процесса

Свойства процесса

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

Идентификаторы процесса

Процесс всегда имеет свой уникальный номер - PID (process ID). PID - это целое число в диапазоне допустимых целых чисел Процесс с номером 0 - это обычно процесс свопинга. Процесс с номером 1 - это всегда init, процесс, который порождает все остальные процессы в системе при ее старте. У всех процессов, кроме init, есть родительский процесс, и каждому процессу, кроме его собственного идентификатора PID, соответствует идентификатор родительского процесса (PPID - parent process ID).

Эффективные идентификаторы

EUID (effective UID - эффективный идентификатор пользователя) владельца процесса и eGID (effective GID - эффективный идентификатор группы) группы процесса.

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

При регистрации пользователя в системе утилита login(l) запускает командный интерпретатор, — login shell, имя которого является одним из атрибутов пользователя. При этом идентификаторам DID (EUID) и GID KEGID процесса shell присваиваются значения, полученные из записи Пользователя в файле паролей /etc/passwd. Таким образом, командный интерпретатор обладает правами, определенными для данного пользователя.

Получение идентификаторов

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

uid t getuid(void);

uid_t geteuid(void);

gid t getgid(void);

gid_t getegid(void);

Процесс также может изменить значения этих идентификаторов с помошью системных вызовов:

#int setegid(gid_t egid);

int seteuid(uid_t euid) ;

int setgid(gid_t gid);

Системные вызовы setuid и setgid устанавливают сразу реальный и эффективный идентификаторы, а системные вызовы seteuid и setegid — только эффективные.

Создание процесса

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

#include <sys/types.h>      

#include <unistd.h>      

pid_t fork (void);

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

Дочерний и родительский процесс

Дочерний процесс наследует атрибуты родителя:

  1.  идентификаторы пользователя и группы
  2.  переменные окружения,
  3.  диспозицию сигналов и их обработчики,
  4.  ограничения, накладываемые на процесс,
  5.  текущий и корневой каталог,
  6.  маску создания файлов,
  7.  все файловые дескрипторы, включая файловые указатели,
  8.  управляющий терминал.

Различия между родителем и потомком:

  1.  дочернему процессу присваивается уникальный идентификатор PID,
  2.  идентификаторы родительского процесса PPID у этих процессов различны,
  3.  дочерний процесс свободен от сигналов, ожидающих доставки
  4.  значение, возвращаемое системным вызовом fork(2) различно для родителя и потомка.

Запуск задачи

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

Пользователь, работая в командном режиме (в командном интерпретаторе shell) запускает команду ls(): 

  1.   Текущий процесс (shell) делает вызов fork(), порождая вторую копию shell.
  2.  В свою очередь, порожденный shell вызывает ехес(), указывая в качестве параметра имя исполняемого файла, образ которого необходимо загрузить в память вместо кода shell.
  3.  Код ls() замещает код порожденного shell, и утилита ls(l) начинает выполняться.
  4.  По завершении работы ls(l) созданный процесс "умирает"

Команды управления процессами

Команды наблюдения за процессами

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

  1.  UID - эффективный идентификатор владельца процесса (реальный выводится при использовании ключа -f).
  2.  В колонке S - state (состояние) - указывается состояние процесса. Состояния бывают следующие: O (ON PROC) - процесс находится в процессоре и выполняется; S (Sleeping) - процесс ждет завершения события (например, ввода-вывода); R (Runnable) - процесс готов к выполнению и ждет своего кванта в очереди к процессору; Z (Zombie) - процесс стал <зомби>, так как завершился, а родительский процесс не подождал его завершения; T (sTopped) - процесс остановлен по сигналу остановки или в процессе трассировки.
  3.  Идентификатор PID - уникальный идентификатор процесса, используется при передаче ему сигналов.
  4.  PPID - идентификатор родительского процесса.
  5.  CMD - команда, которой был запущен процесс.

Основным средством управления процессами является команда kill, передающая процессу сигналы:kill [-ключи] номер_процесса Например, для завершения процесса sendmail можно выполнить следующие действия:

: ps auxw | grep sendmail

root 2057 0.0 0.2 2664 444 ? S Jul08 3:24 sendmail: accepting connections

kill 2057

kill 2057

kill: (2057) - No such pid 

45.Методы организации виртуальной памяти. Алгоритмы замещения страниц.

Виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи:

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

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

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

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

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

3.Объем ввода-вывода для выгрузки части программы на диск может быть меньше, чем при свопинге, и поэтому каждая программа будет работать быстрее

Страничное распределение памяти

  1.  В наиболее простом и наиболее часто используемом случае страничной ВП она (и ОП) представляются состоящими из наборов блоков или страниц одинакового размера
  2.  Виртуальные адреса делятся на страницы (page)
  3.  Соответствующие единицы в ОП образуют страничные кадры (page frames)
  4.  В целом, система поддержки страничной ВП памяти называется пейджингом (paging)
  5.  Передача данных между памятью и диском всегда осуществляется целыми страницами

  1.  Выполняемый процесс обращается по виртуальному адресу v = (p, s)
  2.   Механизм отображения ищет номер страницы p в таблице отображения и определяет, что эта страница находится в страничном кадре n, формируя реальный адрес из n и s 
  3.  Отображение должно происходить корректно даже в сложных случаях
  4.  ОС поддерживает одну или несколько (при наличии нескольких сегментов памяти) таблиц страниц для каждого процесса
  5.  При использовании одной таблицы страниц для ссылки на нее обычно используется специальный регистр
  6.  При переключении процессов диспетчер должен найти его таблицу страниц, указатель на которую, таким образом, входит в контекст процесса

Сегментное распределение памяти

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

  1.  С точки зрения пользователя ВП процесса представляется обычно не как линейный массив байтов, а как набор сегментов переменного размера (данные, код, стек)
  2.  Сегментация - схема управления памятью, поддерживающая этот взгляд пользователя
  3.  Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа
  4.  Логическое адресное пространство представляет собой набор сегментов
  5.  У каждого сегмента имеются имя (номер), размер и другие параметры (уровень привилегий, разрешенные виды обращений, флаги присутствия)
  6.  Пользователь специфицирует каждый адрес двумя значениями: номером сегмента и смещением
  7.  Это отличается от схемы пэйджинга, где пользователь задает только один адрес, который разбивается аппаратурой на номер страницы и смещение прозрачным для программиста образом
  8.  Каждому сегменту соответствует линейная последовательность адресов от 0 до максимума
  9.  Различные сегменты могут иметь разные длины, которые могут меняться динамически (например, сегмент стека)
  10.  В элементе таблицы сегментов, помимо физического адреса начала сегмента (если виртуальный сегмент содержится в основной памяти), содержится размер сегмента
  11.  Если размер смещения в виртуальном адресе выходит за пределы размера сегмента, возникает прерывание

  1.  Аппаратная поддержка сегментов относительно слабо распространена (главным образом, на процессорах архитектуры Intel)
  2.   Характеризуется довольно медленной загрузкой селекторов в сегментные регистры, выполняемой при каждом переключении контекста и при каждом переходе между разными сегментами

Странично-сегментное распределение памяти

Алгоритмы замещения страниц

  1.  В большинстве компьютеров имеются простейшие аппаратные средства, позволяющие собирать некоторую статистику обращений к памяти
  2.  Два специальных флага на каждый элемент таблицы страниц
  3.  Флаг обращения (R) автоматически устанавливается, когда происходит любое обращение к странице
  4.  Флаг изменения (M) устанавливается, если производится запись в страницу
  5.  Чтобы использовать эти возможности, ОС должна периодически сбрасывать эти флаги
  6.  Существует большое число разнообразных алгоритмов замещения страниц
  7.  Они делятся на локальные и глобальные
  8.  Локальные алгоритмы распределяют фиксированное или динамически настраиваемое число страниц для каждого процесса
  9.  Когда процессу требуется новая страница в ОП, система удаляет из ОП одну из его страниц, а не из страниц других процессов
  10.  Глобальные алгоритмы замещения выбирают для замещения физическую страницу независимо от того, какому процессу она принадлежит

Алгоритм Opt 

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

Алгоритм FIFO 

  1.  Каждой странице присваивается временная метка
  2.  Реализуется путем создания очереди страниц, в конец которой страницы попадают при загрузке в ОП, а из начала берутся, когда требуется освободить память
  3.  Для замещения выбирается старейшая страница
  4.  Стратегия с достаточной вероятностью может приводить к замещению активно используемых страниц, например, страниц текстового процессора
  5.  При замещении активных страниц все работает корректно, но немедленно происходит page fault 
  6.  Интуитивно ясно, что чем больше страничных кадров имеет память, тем реже будут иметь место страничные нарушения
  7.  Удивительно, но это не всегда так
  8.  Как установил Биледи, некоторые последовательности обращений к страницам в действительности приводят к увеличению числа страничных нарушений при увеличении кадров, выделенных процессу
  9.  Это явление носит название аномалии FIFO

Аномалия Биледи

  1.  При выборе стратегии FIFO для строки обращений к памяти 012301401234 три кадра (9 faults) оказываются лучше чем 4 кадра (10 faults)
  2.   Аномалию FIFO следует считать курьезом, иллюстрирующим сложность ОС, где интуитивный подход не всегда приемлем

Алгоритм "вторая попытка"

  1.  Подобен FIFO, но если R=1, то страница переводится в конец очереди, если R=0, то страница выгружается.
  2.  В этом случае активно используемая страница не покинет ОП, но каждый раз происходит перемещение страницы.

Алгоритм “часы"

Позволяет не перестраивать очередь. Активные страницы остаются в памяти.

Алгоритм LRU 

  1.  Нужно иметь связанный список всех страниц в памяти, в начале которого будут часто используемые страницы
  2.  Список должен обновляться при каждой обращении;
  3.  64-битный регистр, значение которого увеличивается на 1 после выполнения каждой инструкции
  4.  В таблице страниц - поле, в которое заносится значение регистра при каждом обращении к странице
  5.  При возникновении page fault выгружается страница с наименьшим значением этого поля

Алгоритм LFU

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

Алгоритм NUR

Основан на алгоритме «Часы».

R

M

46.Файловая система NTFS.

  1.  Спроектирована специально для Windows
  2.  Поддержка транзакций
  3.  Все данные хранятся в файлах
  4.  Поддержка 64-битных указателей для структур данных
  5.  Поддержка имен файлов до 255 символов (полный путь к файлу до 32767 символов) и кодировки Unicode
  6.  Поддержка сжатия
  7.  Поддержка шифрования (EFS)
  8.  Устойчивость к отказам
  9.  Поддержка нескольких потоков данных для одного файла
  10.  Файловая система NTFS работает с целым числом дисковых секторов как с минимальным единичным блоком данных. Такой блок называется кластером. Размер кластера определяется при форматировании тома. Разные тома могут иметь различные размеры кластеров. Знакомым с UNIX, можно отметить, что термин кластер в Windows аналогичен термину размер блока файловой системы в UNIX. Файловая система вычисляет размер кластера, принимая во внимание размер диска и тип используемой файловой системы. Кластер может иметь размер в диапазоне 1-64 Кбайт.
  11.  К кластерам относится несколько важных параметров NTFS. Первый параметр называется логическим номером кластера (logical cluster number— LCN). Файловая система NTFS делит весь диск на кластеры и назначает каждому кластеру номер, начиная с нуля. Этот номер и называется LCN.
  12.  Вторым важным параметром является виртуальный номер кластера (virtual cluster number — VCN), который указывает номер кластера внутри определенного файла.
  13.  Виртуальный номер кластера позволяет вычислить местоположение атрибута, например смещения данных внутри файла, а логический номер кластера дает возможность вычислить смещение относительно тома или раздела для определенного блока данных.
  14.  Максимальный размер раздела NTFS в данный момент ограничен лишь размерами жестких дисков.
  15.  Диск NTFS условно делится на две части. Первые 12% диска отводятся под так называемую MFT зону - пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

Физическая структура NTFS

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

  1.  Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл - даже служебная информация.
  2.   Самый главный файл на NTFS называется MFT, или Master File Table - общая таблица файлов. Именно он размещается в MFT зоне и представляет собой централизованный каталог всех остальных файлов диска, и себя самого.
  3.  MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова).

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

Файлы и потоки

  1.  NTFS – это файл-объект, содержащий файл-объекты;
  2.  Файл-объект, как минимум, имееь запись в MFT. В этом месте хранится вся информация о файле, за исключением собственно данных. Имя файла, размер, положение на диске отдельных фрагментов, и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд.
  3.  В NTFS поддерживается несколько потоков данных для одного файла. Поток можно открыть с помощью функции Win32 API CreateFile, а имя потока в виде :ИмяПотока может быть добавлено к имени файла, например Filel:Stream25. Потоки поддерживают запись, чтение и независимую от других открытых потоков блокировку.
  4.  Один из потоков и носит привычный нам смысл - данные файла.

Обратите внимание, что, хотя NTFS и поддерживает несколько потоков, множеству утилит и программ об этом ничего не известно.

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

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

Каталоги

  1.  Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске.
  2.   Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево.

Журналирование

  1.  NTFS - отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция - действие, совершаемое целиком и корректно или не совершаемое вообще. У NTFS просто не бывает промежуточных (ошибочных или некорректных) состояний - квант изменения данных не может быть поделен на до и после сбоя - он либо совершен, либо отменен.
  2.  Пример 1: осуществляется запись данных на диск. В том месте, куда выполняется записи данных физическое повреждение поверхности. Поведение NTFS : транзакция записи откатывается целиком - система осознает, что запись не произведена. Место помечается как сбойное, а данные записываются в другое место - начинается новая транзакция.
  3.  Пример 2: отключение питания в момент записи файла. На какой фазе остановилась запись, где есть данные, а где нет? Решение принимается на основании журнала транзакций. В метафайле $LogFile система отмечает намерение произвести запись. При перезагрузке этот файл изучается на предмет наличия незавершенных транзакций, которые были прерваны аварией и результат которых непредсказуем - все эти транзакции отменяются: место, в которое осуществлялась запись, помечается снова как свободное, индексы и элементы MFT приводятся в с состояние, в котором они были до сбоя, и система в целом остается стабильна.
  4.  Журналирование - лишь средство существенно сократить число ошибок и сбоев системы. Система восстановления NTFS гарантирует корректность файловой системы, а не данных.
  5.  Операции, которые журналируются системой - это операции со структурами самой системы, то есть с файлами и каталогами: добавление файлов, переименование, перенос, создание и удаление. Журналируются также и операции дефрагментации - то есть перемещения фрагментов файлов.

Отложенная запись и контрольные точки журналирования

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

Концепция дублирования информации

  1.  Пример 3: Журнал получил запись - "файл N стирается". Освобождается место, занимаемое файлом, а затем удаляется информация из физических структур MFT и каталога. Допустим, диск находится в активной работе, и на освободившееся место тут же записывается другой файл. В этот момент происходит сбой. Система, загружаясь, исследует журнал и видит незавершенную операцию "файл N стирается», контрольная точка после которой отсутствует. Следующая фаза была бы "откат операции" - то есть восстановление файла. Однако, место, физически занимаемое файлом, содержит уже другие данные.
  2.  Для недопущения таких ситуаций система вынуждена применять принцип "временно занятого места". Место, освобожденное каким-либо объектом или записью о нем, не объявляется свободным до тех пор, пока физически не завершились все операции с логическими структурами.

Разреженные файлы NTFS

Термин разреженный относится к файлам, содержащим данные, после которых идет большая область без данных, за ней небольшой фрагмент данных и т.д. Файловая система NTFS не выделяет дискового пространства для хранения пустых областей файлов.

Сжатые файлы NTFS

Файловая система NTFS поддерживает сжатие файлов, если файлы размещены на томе с размером кластера менее 4 Кбайт. Данные сжимаются и разархивируются "на лету" в тот момент, когда приложение вызывает функции API для чтения и записи. Сжатие может быть отключено или включено для всего тома, каталога или отдельного файла.

Сжатые файлы хранятся в цепочках длиной по 16 кластеров каждая. Файловая система NTFS берет первые 16 кластеров и пытается их сжать.

При чтении файла NTFS должна определить, сжат ли он. Один из способов сделать это — проверить конечный логический номер кластера файла. Нулевое значение этого параметра указывает на сжатость файла.

Дополнительные функции NTFS

  1.  Hard Links.Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 - останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя.
  2.  Symbolic Links (NT5) (аналог ярлыка). Позволяет делать виртуальные каталоги - ровно так же, как и виртуальные диски командой subst в DOSе.
  3.  Шифрованная файловая система (EFS).
  4.  В шифрованной файловой системе используется симметричная и асимметричная криптография.

Фрагментация файлов в NTFS

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

  1.  утверждалось, что NTFS не подвержена фрагментации файлов. Это оказалось не совсем так, и утверждение сменили - NTFS препятствует фрагментации. Оказалось, что и это не совсем так. То есть она, конечно, препятствует, но толк от этого близок к нулю...
  2.  Сейчас уже понятно, что NTFS - система, которая как никакая другая предрасположена к фрагментации, что бы ни утверждалось официально. Все внутренние структуры построены таким образом, что фрагментация не мешает быстро находить фрагменты данных.
  3.  Диск NTFS поделен на две зоны. В начала диска идет MFT зона - зона, куда растет MFT, Master File Table. Зона занимает минимум 12% диска, и запись данных в эту зону невозможна. Это сделано для того, чтобы MFT не фрагментировался. Но когда весь остальной диск заполняется - зона сокращается ровно в два раза. В результате если NTFS работает при диске, заполненном на около 90% - фрагментация растет.
  4.  Попутное следствие - диск, заполненный более чем на 88%, дефрагментировать почти невозможно - даже API дефрагментации не может перемещать данные в MFT зону.
  5.  Алгоритм действий при любой записи такой: берется какой-то определенный объем диска и заполняется файлом до упора. Причем по очень интересному алгоритму: сначала заполняются большие дырки, потом маленькие. Т.е. типичное распределение фрагментов файла по размеру на фрагментированной NTFS выглядит так (размеры фрагментов):
  6.  16 - 16 - 16 - 16 - 16 - [скачек назад] - 15 - 15 - 15 - [назад] - 14 - 14 - 14 .... 1 - 1 - 1 -1 - 1...
  7.  Так процесс идет до самых мелких дырок в 1 кластер, несмотря на то, что на диске наверняка есть и гораздо более большие куски свободного места.

Средства дефрагментации

  1.  В NT существует стандартное API дефрагментации. Обладающее интересным ограничением для перемещения блоков файлов: за один раз можно перемещать не менее 16 кластеров (!), причем начинаться эти кластеры должны с позиции, кратной 16 кластерам в файле. В общем, операция осуществляется исключительно по 16 кластеров. Следствия:
  2.  В дырку свободного места менее 16 кластеров нельзя ничего переместить (кроме сжатых файлов, но это неинтересные в данный момент тонкости).
  3.  Файл, будучи перемещенный в другое место, оставляет после себя (на новом месте) "временно занятое место", дополняющее его по размеру до кратности 16 кластерам.
  4.  При попытке как-то неправильно ("не кратно 16") переместить файл результат часто непредсказуем. Что-то округляется, что-то просто не перемещается… Тем не менее, всё место действия щедро рассыпается "временно занятым местом".

Процесс стандартной дефрагментации состоит из следующих фаз:

  1.  Вынимание файлов из MFT зоны. Не специально - просто обратно туда их положить не представляется возможным.
  2.  Дефрагментация файлов. Осложняется ограничениями кратности перемещений.
  3.  Дефрагментация MFT, файла подкачки (pagefile.sys) и каталогов. Возможна через API только в Windows2000.
  4.  Складывание файлов ближе к началу - так называемая дефрагментация свободного места.

47.Виртуальная файловая система VFS UNIX.

Идеология VFS

VFS не ориентируется на какую-либо конкретную файловую систему, механизмы реализации файловой системы полностью скрыты как от пользователя, так и от приложений. В ОС нет системных вызовов, предназначенных для работы со специфическими типами файловой системы, а имеются абстрактные вызовы типа open, read, write и другие, которые имеют содержательное описание, обобщающее некоторым образом содержание этих операций в наиболее популярных типах файловых систем (например, s5, ufs, nfs и т.п.). VFS также предоставляет ядру возможность оперирования файловой системой, как с единым целым: операции монтирования и демонтирования, а также операции получения общих характеристик конкретной файловой системы (размера блока, количества свободных и занятых блоков и т.п.) в единой форме. Если конкретный тип файловой системы не поддерживает какую-то абстрактную операцию VFS, то файловая система должна вернуть ядру код возврата, извещающий об этом факте.

Информация о файлах и типы файлов VFS

В VFS вся информация о файлах разделена на две части - не зависящую от типа файловой системы, которая хранится в специальной структуре ядра - структуре vnode, и зависящую от типа файловой системы - структура inode, формат которой на уровне VFS не определен, а используется только ссылка на нее в структуре vnode. Имя inode не означает, что эта структура совпадает со структурой индексного дескриптора inode файловой системы s5.

Виртуальная файловая система VFS поддерживает следующие типы файлов:

  1.  обычные файлы,
  2.  каталоги,
  3.  специальные файлы,
  4.  именованные конвейеры,
  5.  символьные связи.

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

Символьные связи

Мягкая связь, называемая символьной связью и реализуемая с помощью системного вызова symlink. Символьная связь - это файл данных, содержащий имя файла, с которым предполагается установить связь. Символьная связь может быть создана даже с несуществующим файлом. При создании символьной связи образуется как новый вход в каталоге, так и новый индексный дескриптор inode. Кроме этого, резервируется отдельный блок данных для хранения полного имени файла, на который он ссылается.

Имеются три системных вызова, которые имеют отношение к символьным связям:

  1.  readlink - чтение полного имени файла или каталога, на который ссылается символьная связь. Эта информация хранится в блоке, связанном с символьной связью.
  2.  lstat - аналогичен системному вызову stat, но используется для получения информации о самой связи.
  3.  lchown - аналогичен системному вызову chown, но используется для изменения владельца самой символьной связи.

Реализация файловой системы VFS

UNIX System V Release 4 имеет массив структур vfssw [ ], каждая из которых описывает файловую систему конкретного типа, которая может быть установлена в системе. Структура vfssw состоит из четырех полей:

  1.  символьного имени файловой системы;
  2.  указателя на функцию инициализации файловой системы;
  3.  указателя на структуру, описывающую функции, реализующие абстрактные операции VFS в данной конкретной файловой системе;
  4.  флаги, которые не используются в описываемой версии UNIX.

Операции над файловой системой

Структура vnodeops

Кроме операций над файловой системой в целом, для каждого типа файловой системы (s5, ufs и т.д.), установленной в ОС, необходимо описать способ реализации абстрактных операций над файлами, которые допускаются в VFS. Этот способ описывается для каждого типа файловой системы в структуре vnodeops. Как видно из состава списка абстрактных операций, они образованы объединением операций, характерных для наиболее популярных файловых систем UNIX. Для того, чтобы обращение к специфическим функциям не зависело от типа файловой системы, для каждой операции в vnodeops определен макрос с общим для всех типов файловых систем именем, например, VOP_OPEN, VOP_CLOSE, VOP_READ и т.п. Эти макросы определены в файле <sys/vnode.h> и соответствуют системным вызовам. Таким образом, в структуре vnodeops скрыты зависящие от типа файловой системы реализации стандартного набора операций над файлами. Даже если файловая система какого-либо конкретного типа не поддерживает определенную операцию над своими файлами, она должна создать соответствующую функцию, которая выполняет некоторый минимум действий: или сразу возвращает успешный код завершения, или возвращает код ошибки. Для анализа и обработки полного имени файла в VFS используется операция VOP_LOOKUP, позволяющая по имени файла найти ссылку на его структуру vnode.

Структура vnode используется ядром для связи файла с определенным типом файловой системы через поле v_vfsp и конкретными реализациями файловых операций через поле v_op. Поле v_pages используется для указания на таблицу физических страниц памяти в случае, когда файл отображается в физическую память (этот механизм описан в разделе, описывающем организацию виртуальной памяти). В vnode также содержится тип файла и указатель на зависимую от типа файловой системы часть описания характеристик файла - структуру inode, обычно содержащую адресную информацию о расположении файла на носителе и о правах доступа к файлу. Кроме этого, vnode используется ядром для хранения информации о блокировках (locks), примененных процессами к отдельным областям файла.

Структура FILE

При каждом открытии процессом файла ядро создает в системной области памяти новую структуру типа file, которая, как и в случае традиционной файловой системы s5, описывает как открытый файл, так и операции, которые процесс собирается производить с файлом (например, чтение). Структура file содержит такие поля, как:

  1.  flag - определение режима открытия (только для чтения, для чтения и записи и т.п.);
  2.  S truct vnode * f_vnode - указатель на структуру vnode (заменивший по сравнению с s5 указатель на inode);
  3.   offset - смещение в файле при операциях чтения/записи;
  4.   struct cred * f_cred - указатель на структуру, содержащую права процесса, открывшего файл (структура находится в дескрипторе процесса);
  5.   указатели на предыдущую и последующую структуру типа file, связывающие все такие структуры в список.

File и vnode

В отличие от структур типа file структуры типа vnode заводятся операционной системой для каждого активного (открытого) файла в единственном экземпляре, поэтому структуры file могут ссылаться на одну и ту же структуру vnode.

Структуры vnode не связаны в какой-либо список. Они появляются по требованию в системном пуле памяти и присоединяются к структуре данных, которая инициировала появление этого vnode, с помощью соответствующего указателя. Например, в случае структуры file в ней используется указатель f_vnode на соответствующую структуру vnode, описывающую нужный файл. Аналогично, если файл связан с образом процесса (то есть это файл, содержащий выполняемый модуль), то отображение сегмента памяти, содержащего части этого файла, осуществляется посредством указателя vp (в структуре segvn_data) на vnode этого файла.

Все операции с файлами в UNIX System V Release 4 производятся с помощью связанной с файлом структуры vnode. Когда процесс запрашивает операцию с файлом (например, операцию open), то независимая от типа файловой системы часть ОС передает управление зависимой от типа файловой системы части ОС для выполнения операции. Если зависимая часть обнаруживает, что структуры vnode, описывающей нужный файл, нет в оперативной памяти, то зависимая часть заводит для него новую структуру vnode.


48.Взаимодействие процессов в рамках компьютерной сети. Удаленный вызов подпрограмм.


Идея вызова удаленных процедур
(Remote Procedure Call - RPC) состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удаленными компонентами с небольшим временем ответов и относительно малым количеством передаваемых данных. Такие приложения называются RPC-ориентированными.

Характерными чертами вызова локальных процедур являются:

  1.  Асимметричность, то есть одна из взаимодействующих сторон является инициатором;
  2.  Синхронность, то есть выполнение вызывающей процедуры приостанавливается с момента выдачи запроса и возобновляется только после возврата из вызываемой процедуры.
  3.  Идея, положенная в основу RPC, состоит в том, чтобы сделать вызов удаленной процедуры выглядящим по возможности также, как и вызов локальной процедуры. Другими словами - сделать RPC прозрачным: вызывающей процедуре не требуется знать, что вызываемая процедура находится на другой машине, и наоборот.
  4.  RPC достигает прозрачности следующим путем. Когда вызываемая процедура действительно является удаленной, в библиотеку помещается вместо локальной процедуры другая версия процедуры, называемая клиентским стабом (stub - заглушка). Подобно оригинальной процедуре, стаб вызывается с использованием вызывающей последовательности, так же происходит прерывание при обращении к ядру. Только в отличие от оригинальной процедуры он не помещает параметры в регистры и не запрашивает у ядра данные, вместо этого он формирует сообщение для отправки ядру удаленной машины.


КОМПЬЮТЕРНАЯ ЭЛЕКТРОНИКА И СХЕМОТЕХНИКА

49. Базовая схема транзисторного ключа на биполярном транзисторе. Способы повышения быстродействия ключа.

В основе всех схем транзисторных ключей лежит следующая схема:

При напряжении Uвх <= 0

транзистор закрыт и на его вых.

Напряжение питания Ек.

При увиличении Uвх - транзистор открывается

и Uвых стремится к нулю.

Iб - nток базы, обеспечивает насыщение транзистора

В режиме отсечки оба перехода обратно смещены : Uб -> 0 , Uк -> Ек, Iб << (0.1 - 0.03) Iк насыщ.

В активном режиме в прямом направлении , переход БЭ - открыт, а переход БК - закрыт.

Режим насыщения характеризуется тем , что оба перехода смещены в прямом направлении

Uк нас. -> Uостаточн. (0.2 - 0.5 В)

Iк нас -> ( Ек - Uост. ) / Rк

Rтран зистора -> 0 (10 - 30 Ом )

Iб нас = Iк нас /  где  - коэф. усиления по току

Ток насыщения (Ik нас ) не является паспортной хар-кой транзистора.Его величина задается параметрами схемы и может принимать значения от предельных токов до микротоков, для заданного транзистора.

 

Транзисторный ключ хар-ся рядом параметров.

1) Входные: - ток входа закрытого транзистора (определяет потребляемую мощность закрытого транзистора , он же - ток базы Iб )

- напряжение управления , необходимое для надежного запирания транзистора

- min перепаб ме жду нулевым и единичным напряжениями, необходимыми для отпирания транзистора

- входное сопротивление транзистора в открытом состоянии. (Uвх н, Iвх н)

  1.  Выходные:

- min напряжение на коллекторе открытого транзистора

- ток насыщения коллектора

- выходное сопротивление транзисторного ключа

В закрытом Rвых = Rк (Общ.Эмиттер) << Rвых o

В открытом R вых = Uк ост / I к нас.

- max напряжение на коллекторе закрытого ключа.

- Коэф. использования напряжения питания.

Ке = (Uк закр - Uк откр) / Ек = 1- ( Uк ост + Iк нас Rк ) / Ек

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

Методы повышения быстродействия транзисторного ключа.

  1.  Метод форсирующей емкости.

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

  1.  Метод нелинейной обратной связи.

При подаче импульса Uвх ток в цепи начинает расти, приводя к открыванию перехода к-э.

Uвых . начинает уменьшаться. Когда Uвх > Uвых на величину Uпр. (открытие диода VD) образуется цепь, по которой избыточный входной ток сбрасывается в выходную цепь. (Rб – VD -- К-э )

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

 

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

Схема

Конденсатор С1 – разделительный конденсатор.

Во-первых, для исключения постоянной составляющей из вх. сигнала, во-вторых, чтобы защитить низкоомный источник сигнала от обратного входного тока. С2 разделительный предназначен для исключения постоянной составляющей из вых. сигнала. Rб1 задает ток покоя, т.е. начальное положение рабочей точки усилителя из динамич. нагрузоч. хар-ки

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

***

Rб - предназначен для задания начального тока базыв отсутствии входного сигнала (задания точки покоя на рабочей характеристике усилителя).

С1 - предназначен для исключения постоянной составляющей из входного сигнала и для защиты источника сигнала от перегрузки. С2 - предназначен для исключения постоянной составляющей из выходного сигнала. и выполняет функцию С1 для следующего каскада.

Ек=Uкэ + IкRк

Расчет нелинейной цепи можно провести графически по выходной и входной хар-кам транзистора

Проектирование усилителя связано с подбором соответствующего транзистора и выбором Rк

для обеспечения линейности вых.сигнала во все диапазоне.

На переходной хар-ке откладывается точка напряжения питания .Выбирается ток коллектора с таким расчетом, что бы обеспечить на вых требуемый ток.(Iк макс = 1.4 Iвых макс).Точки соединяются линией - это будет рабочей хар-кой транзистора.

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

На равном расстоянии от точки покоя на рабочей хар-ке выбираются точки, соответствующие макс и мин значениям выходного тока(Iвых) и выходного напряжения(Uвых).

Соответствующие выбранным точкам токи базы( Iб min , Iбo , Iбmax) накладываются на входную хар-ку транзистора и определяются, соответствующие им напряжения

Uбmin , Uбo , Uб max

Uбо - является напряжением на базе при отсутствии вх сигнала .Для того чтобы подать на на базу транзистора это напряжение используется резистор Rб.

Он рассчитывается по формуле Rб = (Ек-Uбо) / Iбо

Uб min , Uб max это минимальное и максимальное значения переменного сигнала на входе транзистора. Максимальная амплитуда входного сигнала в этом случае будет равна:

Uвх = Uб max - Uбо

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

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

Температурная стабилизация рабочей точки

Обеспечить более устойчивое положение рабочей точки за счет введения ООС по напряжению. Попыткам увеличения тока коллектора противодействуют Rб2 и Rэ.Т.к. Iк и Iэ жестко связаны через коэф.  ,то увеличение тока коллектора(Iк) за счет температуры приводит к увеличению тока эмиттера (Iэ) ,наличие Rэ приводит к увеличению Urэ ,создаваемое на Rэ током Iэ. При отсутствии входного сигнала напряжение на входе транзистора создаваемое делителем Rб1,Rб2 остается неизменным т.к. вх напряжение транзистора Uвх = Uбэ + Urэ то увеличение падения напряжения на эмиттерном резисторе приводит к уменьшению напряжения на переходе Б-Э

т.е. Uвх=Uбэ+IэRэ это приводит к призакрыванию транзистора и уменьшению тока коллектора Обратная связь работает по постоянной составляющей (???)

Конденсатор Сэ включен в цепь эмиттера для тог , чтобы переменная составляющая шла через него и не влияла на работу ООС. Емкость конденсатора выбирается таким образом, что бы его реактивное сопротивление было намного меньше сопротивления резистора Rэ. 

51. Базовый логический элемент транзисторно-транзисторной логики.

Элемент 2 И-НЕ

В схеме можно выделить 3 каскада:

1) первый реализует И

2) парафазный каскад

3) Выходной каскад. Сложный инвертор.

При подаче на оба входа уровня 0 во вх. цепи образуется ток основного источника напряжения +5В через R1, б-э VT1 на землю.

Ток вытекает из микросхемы в базе многоэмиттерного транзистора потенциал порядка 0,8 В, чего не достаточно для открытия VT2. Потенциал коллектора VT2 стремиться к напряжению источника питания, а потенциал в эмиттере VT2 стремиться к нулю. VT3 оказывается открытым, а VT4 – в закрытом состоянии.

На выходе потенциал стремится к источнику питания формируя уровень логической «1». Ток в выходной цепи протекает из +5В через R4, VT3, VD3, в Rн и вытекает из микросхемы.

Это же описание относится и когда х1= 0, х2 = 1 или х1 = 1, х2 = 0.

При подаче на оба входа логической «1» переходы б-э VT1 оказываются закрытыми, но открывается переход б-к VT1 и ток протекает через R1, б-к VT1, б-э VT2 и R3. Транзистор VT2 открывается, потенциалы коллектора и эмиттера сближаются => открывается VT4 и закрывается VT3.

Диод VD3 предназначен для повышения порога срабатывания нагрузочного транзистора VT3 (исключение одновременного открытия VT3 и VT4)

Диоды VD1 и VD2 – защитные диоды для отфильтровывания отрицательных выбрасов во внешних цепях.

Входные характеристики (зависимость входного тока от входного напряжения)

Можно выделить 4 области

  1.  логич. 0 на входе соотв. вытекающему току (со знаком « - ») порядка 1,6 мА
  2.  область неопределенности, смена знака входного тока. Для этой области характерно неопределенное значение выходного сигнала.
  3.  область логической «1» соотв. внешнему току порядка 40 мкА (отмечено пунктирной чертой)
  4.  Предельно допустимое значение в котором возможен выход из строя переход Б-Э VT1

Iвх (0-1) <= -1,6 мА

Iвх (1-0)<= 40 мкА

Выходные характеристики (зависимость выходного тока от выходного напряжения)

U0 <= 0,4B  I 0 max ~16 mA

U1 >= 2,4B  I 1 max ~1 mA

коэффициент разветвления нагрузочной способности:

Краз = I 0(1) вых max / I 1(0) вх max

Для стандартной ТТЛ Краз при 1 = 20-25

Краз при 0 = 10. В качестве типового Краз берут меньшее значение.

Амплитудная переходная характеристика (АПХ):

UВЫХ=f(UВХ).

АПХ базового элемента ТТЛ представлена на рис.1.1.7.

UВХ возрастает на интервале (0... 5)В, при UВХ=0U1ВЫХ=3.8В,

при U1ВХMIN=2.4В транзистор VT4 открыт и находится в режиме насыщения.

Зона 1-зона устойчивого состояния логической единицы по выходу;

зона 2-зона устойчивого состояния логического нуля по выходу;

зона 3-зона переключения.

Рабочие области АПХ-зоны 1 и 2-зоны статических режимов работы, зону 3 необходимо сокращать для логического режима (при идеальном логическом режиме зона 3-прямая).

Коэффициент усиления логического элемента (KU).

UВХ возрастает на интервале (0... 5)В, при UВХ=0U1ВЫХ=3.8В,

при U1ВХMIN=2.4В транзистор VT4 открыт и находится в режиме насыщения.

Зона 1-зона устойчивого состояния логической единицы по выходу;

зона 2-зона устойчивого состояния логического нуля по выходу;

зона 3-зона переключения.

Рабочие области АПХ-зоны 1 и 2-зоны статических режимов работы, зону 3 необходимо сокращать для логического режима (при идеальном логическом режиме зона 3-прямая).

Коэффициент усиления логического элемента (KU).

     Рис. 1.1.7.

График зависимости коэффициента усиления логического элемента от входного напряжения представлена на рис.1.1.7.

KU=dUВЫХ/dUВХ чDUВЫХ/DUВХ,

KU=[0,1], следовательно, в статическом режиме логический элемент должен подавлять помеху.

Если KU<1, то логический элемент подавляет помеху по входу, следует, логический элемент работает в статическом режиме.

KU>>1, чем больше KU, тем более резкий скачок UВЫХ, в идеале Kuам.

Границей между статическим и динамическим режимами является значение коэффициента усиления, равного 1.

Найдем точки на АПХ, в которых значение коэффициента усиления равно 1.

dUВЫХ/dUВХ=tgаКАС=1, следует, аКАС=45O.

Координаты точек 1и 2-пороговые значения напряжений на входах и выходах логического элемента.

KMAX U = (U1ВЫХПОР-U0ВЫХПОР)/(U1ВХПОР-UOВХ ПОР).

Запасы порогоустойчивости(для низкого уровня входного сигнала):

UOПОМ=UOВХПОР-UOВЫХПОР,

U1ПОМ=U1ВЫХПОР-U1ВХПОР .

Кпом 0(1) = Uпом 0 (1)* 100% /U л - относительный коэф. статической помехоустойчивости,

где Uл = U вых 1п – Uвых 0п

52. Базовый логический элемент КМОП-логики.

(описание принципа действия «НЕ» - не ответ на вопрос а справка)

Технология КМОП основана на комплиментарных парах транзисторов, одинаковых по принципам действия. (n-p-n и p-n-p)

VT1 – нагрузочный, VT2 - активный транзистор.

На схеме изображен элемент «НЕ»

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

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

Т.о. если на входе Х присутствует напряжение логического нуля

, VT2 закрыт (между з и п практически отсутствует разность потенциалов => не образуется конал), VT1 открыт (см. выше) На выходе Y – уровень логической 1.

Если на входе Х подать U «лог. 1» => VT1 – закрыт, VT2 – открыт, потенциал Y -> ОВ

I (0-1) вх <=1нА

КМОП логика запрещает оставлять неподключенные входные линии!

КМОП элементы на порядок медленнее чем ТТЛ. Для организации лог. 0 на входе КМОП элемента этот вход подключают к «земле», а лог.1 подключают к источнику питания.

(базовый элемент кмоп)

Схема элемента И-НЕ с т.з. КМОП.

Хотя бы один из 3х закрыт, то закрыта вся пара. Хотябы один открыт, то открыта нагрузка.

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

Сигнал Y примет лог. 0 при открытии VT4 и VT3. Если хоть один из нагрузочных транзисторов закрыт, то Y = лог. 1

-----------------------------------------------------------------------------------------------------------------------------------

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

Ток протекает: EП-VT1-RН-Б, UВЫХ=EП-RVT1*IВЫХ.

При уровне логической единицы на входе: транзистор VT2 открыт, транзистор VT1 закрыт.

Ток протекает: EП-RН-VT2-Б, UВЫХ=IВЫХ*RVT2.

Эквивалентная схема замещения КМОП-инвертора (представлена на рис.1.2.14.):

UВЫХ=(EП * RА)/(RН + RА),

при выходном напряжении уровня логического нуля (UOВЫХ): нагрузочный транзистор закрыт, активный транзистор открыт, RНЮм, RАЮ0, следует,

RН>>RА, UOВЫХ=0В, ROВЫХ=RОТКРVT,

при выходном напряжении уровня логической единицы (U1ВЫХ): нагрузочный транзистор открыт, активный транзистор закрыт, RН=0, RА=м, следует,

RН<<RА, U1ВЫХ=EП, R1ВЫХ=RОТКРVT,

R1ВЫХ=ROВЫХ, следует, RВЫХ не зависит от состояния внешних сигналов.

Достоинства КМОП-элементов.

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

  1.  Нагрузочный и активный транзисторы полностью идентичны по своим параметрами

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

Из всех схем, созданных на базе МОП-транзисторов, КМОП-схемы наиболее экономичны и выгодны.

Защита КМОП-элементов от статического электричества.

Вблизи затвора МОП-транзистора вследствие постоянно протекающих процессов термо- и электрогенерации, накапливается электрический заряд q, вследствие чего увеличивается потенциал на затворе относительно истока пропорционально этому заряду: UЗИ=q/СЗИ.

Увеличение заряда на затворе приводит к пробою тонкого изоляционного слоя SiO. Чтобы избежать этого, в ИМС реализуется следующая схема (рис.1.2.15.).

Резистор R=200...2000ОМ предназначен для ограничения максимального значения тока заряда емкости затвор-исток. R защищает выходные каскады предыдущих схем от перегрузки по току.

Диоды VD1 и VD2 защищают от перенапряжения на входе.

Если UВХ>EП+UПОР Д, то диоды VD1,VD2 откроются, UВХ=EП+UОТКРД.

Диод VD3 предназначен для ограничения отрицательного всплеска напряжения на входе.

Если UВХ<-UПОР Д, то VD3 открывается, UВХ=-UД в открытом состоянии, следует,

-UДуUВХуEП+UД.

Диод VD4 ограничивает отрицательный всплеск напряжения на выходе.

Если UВЫХ>EП+UПОР Д, то VD4 открывается, UВЫХ=-UД, следует,

-UД уUВЫХ уEП+UД.

Таким образом, вход и выход защищены от перенапряжения.

Диод VD6 защищает от случайной переполюсовки напряжения питания. Если на общую шину подать +EП, а на EП-Б, то диод VD6 откроется, весь ток будет протекать через диод, остальная часть схемы будет обесточена.

В рассмотренной схеме защиты для диодов: напряжение пробоя UПРОБ=50В, максимальный ток IMAXД=10мА.

Надежность работы схемы КМОП-инвертора с такой схемой защиты не хуже, чем надежность работы ТТЛ-схемы.

Логическая схема 2И-НЕ представлена на рис.1.2.17.

 Таблица состояний логического элемента 2И-НЕ.

VT1

VT3

VT2

VT4

X1

X2

Uвых

 Rвых

0

0

З

З

0

0

Еп-UОТКРVT

R1ВЫХ=RОТКРVT1,3/2

 0

 З

З

0

0

1

Еп-UОТКРVT

R1ВЫХ=RОТКРVT1

З

0

0

З

1

0

Eп-UОТКРVT

R1ВЫХ=RОТКРVT3

З

З

0

0

1

1

2*UОТКРVT

R0ВЫХ=2*RОТКРVT2,4

53. Статический запоминающий элемент. Схема реализации. Принцип и режимы его работы.

В статич. ЗУ элементами памяти являются триггеры. Емкость в несколько раз меньше, чем у динамических ОЗУ. SRAM – статич. Они в 4-5 раз дороже динамических ЗУ и во столько же раз меньше емкость. Преимуществом является высокая быстродействие статических ЗУ.

Схема триггерного запоминающего элемента статических ЗУ

.

ЛВ – линии выборки. Триггеры содержат 6 транзисторов. На 4-х тр-рах строятся элементы памяти, а два служат для выборки, записи и чтения инф. Комплиментарные пары VT1 - VT2 и VT3 – VT4 работают противофазно. Они составляют плечи триггера, который также работает противофазно.

Пусть VT1 отрыт, тогда высокци потенциал Ucc через Vt1 подается на затворы VT3 и VT4 при этом VT3 запирается, а VT4 открывается. низкий потенциал через VT4 подается на затвор VT1 и VT2 и поддерживает открытое состояние VT1 и закрытое VT2. Если VT3 то VT1 и VT4 – закрыты, а VT2 открыт и поддерживает открытым состояние VT3.

Т.е. запоминающий элемент может находиться лишь в 2х состояниях. Если открыт VT1 то это соответствует «1», если открыт VT3 – «0».

Транзисторы VT5 и VT6 своими затворами подключены к линии выборки в открыт. при подаче высокого потенциала. При открытых VT5 и VT6 потенц. с плеч запоминающего элемента поступают на разные шины.

Чтобы перевести элемент в противоположное состояние, на шину ШР0 или ШР1 подают низкий потенциал, а на шину выборки – высокий.

Статические ЗУ – энергозависимые, при отключении питания данные теряются.

Интегральные схемы, выполненные по КМОП технологии не способны работать на емкостную нагрузку, поэтому одним из напр. развития статических ЗУ является совмещение КМОП и биполярных технологий в 1 интегральной схеме.

Матрица – ЗУ на КМОП, а каскады – на биполярных.

VT1 VT2 VT3 VT4

0  з  з  0  - «1»

з  0  0  з  - «0»

В число триггерных статических ЗУ входят оперативные, сверхоперативные, буферные ЗУ. ЗЭ- простейший триггер, время выборки адреса составляет: 6нс...4мкс.

Триггеры могут выполняться на основе любой системы элементов: ТТЛ, ЭСЛ, И2Л; p-МОП, n-МОП, КМОП. ЗЭ состоит из двух инверторов, соединенных ‘накрест’ ,т.е. вход одного соединен с выходом другого. Это создает схему с положительной обратной связью (ОС), заставляющей находиться триггер в одном из двух устойчивых состояний.

Рассмотрим схему на двух инверторах, построенных на n-канальных МОП транзисторах, представленную на рис.6.5.

Рисунок 6.5. – Схема запоминающего элемента на двух инверторах, построенных на n-канальных МОП-транзисторах

Транзисторы VT1, VT2- транзисторы с индуцированным каналом, VT1н, VT2н- транзисторы с индуцированным каналом.

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

Предположим, что ток I1>I2. I1-I2= I>0, тогда канал транзистора VT1 открыт больше, сопротивление VT1 меньше, следовательно, приращение напряжения U меньше, поэтому уменьшается напряжение на затворе транзистора VT2, VT2 приоткрывается, сопротивление канала транзистора VT2 растет, напряжение на стоке VT2 возрастает. Это напряжение подается на затвор VT1, напряжение на VT1 увеличивается, увеличивается и разность потенциалов на затворе-истоке VT1, транзистор VT1 еще больше открывается, а это приводит к увеличению I1н, следовательно, к росту  I. В результате: VT1 полностью откроется, VT2 полностью закроется, т.е.на VT1установится уровень логического нуля, а на VT2-уровень логической единицы. Таким образом, триггеры приходят в одно из устойчивых состояний.

Чтобы переключить триггер в противоположное состояние, нужно на вход Q кратковременно подать логический 0.

Снятие напряжения питания приводит к потере информации, хранимой триггером. Достаточно на короткое время снизить потенциал стока любого из транзисторов, чтобы привести триггер в соответствующее этому режиму устойчивое состояние, которое далее сохраняется триггером без внешнего управления. В триггерном ЗУ триггеры компонуются в матрицу размером m x n. Строка-одна шина выборки, столбец- две шины, обеспечивающие считывание и запись данных. Схема представлена на рис.6.6.

Рисунок 6.6. – Схема триггерного запоминающего устройства

Первая часть адреса, задаваемого двоичным кодом, определяет шину выборки, а вторая часть адреса- шины съема- управления. Шести- транзисторные ЗЭ строятся на базе n-МОП-, p-МОП-, КМОП- транзисторов, а также на базе биполярных транзисторов.

Процесс записи-чтения запоминающей ячейки.

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

Резисторы на выходах ЗЭ, подключенные последовательно с транзисторами VT3 и VT4необходимы для ограничения токов перезаряда межэлектродных емкостей и технологически выполняется как составная часть транзистора.

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

Структура ОЗУ

  1.  Матрица ЗЭ.
  2.  Дешифратор адреса.
  3.  Схема управления.
  4.  Схема ввода- вывода данных.
  5.  Усилители записи- считывания.

В качестве примера реализации статических ЗУ в ИМС рассмотрим К537РУ10.Эта ИМС выполнена по технологии КМОП. Цоколевка схемы представлена на рис. 6.7. Память хранит 2К, организация-2048 x 8 бит.

Рисунок 6.7. – Цоколевка ИМС К537РУ10

В статических ЗУ потребляемая мощность Pпот большая, т.к.напряжение питания должно подаваться постоянно во всех режимах работы.

 

54. Динамический запоминающий элемент. Схема реализации. Принцип и режимы его работы.

В динамическом ЗУ данные хранятся в виде заряда емкостей КМОП – структуры, их основой является запом. эл-т, вып. на конденсаторе большой емкости. Для одного запомин. элемента достаточно 1 транзистора. Поэтому емкость динамических ЗУ в несколько раз превышает емкость статических. DRAM – динамическое ЗУ. В компьютере используются как основная память.(т.к. характеризуются наибольшей емкостью).

Они в 4-5 раз дешевле статических ЗУ и в столько же раз выше емкость, однако они медленнее, чем статические ЗУ.

Динамические ЗУ используются для построения оперативных и буферных ЗУ. В динамических ЗУ используется хранение заряда в емкостях, свойственных МОП-структурам. Из-за постепенного паразитного перезаряда емкостей необходима периодическая регенерация. В БИС регенерация производится не реже чем через 1...2мс и выполняется путем считывания и повторной записи хранимой информации. Чтобы записать 0, емкость нужно разрядить, чтобы хранить информацию, емкость не нужно ни к чему подключать. Схема представлена на рис.6.8.

Положение ключа:

  1.  режим записи 1,
  2.  режим записи 0,
  3.  режим хранения,
  4.  режим считывания.

Рисунок 6.8 - Схема динамического запоминающего устройства

Межэлектродная емкость используется для хранения информации.

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

Схема запоминающего элемента динамического ЗУ.

Существуют одно-, трех- и четырехтранзисторные схемы. Рассмотрим простейшую однотранзисторную схему, которая представлена на рис. 6.9.

Рисунок 6.9 - Простейшая однотранзисторная схема

С-емкость, на которой хранится 1 бит информации. Транзистор VT1 вместе с С образуют запоминающий элемент (ключ). На транзисторе VT2 реализован первичный усилитель считывания, транзисторVT3 служит для записи 0, транзистор VT4 используется для записи единицы. В процессе считывания существенную роль играет емкость СШ- емкость шины считывания, она получается за счет наличия длинной линии шины считывания (ШС), распределенная емкость ШС обозначена в виде эквивалентной емкости СШ. Перед считыванием емкость СШ заряжают до уровня Uпит. ЗЭ выбирают подачей отпирающего напряжения на ШВ. СШ больше емкости С в 100 и более раз. СШ играет очень важную роль в работе динамического ЗУ.

Рассмотрим процесс записи логического 0. На шину y0подается высокий уровень, транзистор VT3открывается, уровень нуля попадает на ШС , емкость шины разряжается, потенциал 0 попадает на сток VT1, при этом на линию шины выборки (ШВ) поступает высокий уровень напряжения, открывающий транзистор VT1. Если С была до этого заряжена, она разряжается. После завершения процесса разряда, транзистор VT1 закрывается подачей 0 на ШВ.

Для записи логической 1 на Y1 подается 1, транзистор VT4 открывается и через открытый канал транзистора СШ заряжается до напряжения питания. Высокий потенциал равный напряжению питания поступает на сток транзистора VT1, при этом высоким уровнем напряжения ШВ транзистор VT1 открывается, С заряжается через открытый канал транзистора VT1. Перед считыванием информации емкость шины (СШ) заряжается до напряжения питания (Uпит) через транзистор VT4. Чтобы выполнить чтение, на шину выборки подают высокий уровень напряжения, открывающий транзистор VT1(рис.6.10). VT1 открывается и начинается перераспределение заряда.

Рисунок 6.10 –Схема транзистора VT1

Если С была разряжена, т.е. был записан уровень логического 0, то будет происходить процесс заряда емкости С. Появление тока заряда С приведет к разряду СШ. При высоком потенциале на СШ транзистор VT2полностью открыт, на выходе-низкий потенциал. По мере разряда СШ потенциал на затворе VT2 снижается, транзистор VT2 призакрывается, сопротивление канала растет, следовательно, растет и выходной потенциал, на выходе-приращение выходного напряжения  Uвых. Наличие приращения напряжения на выходе транзистора VT2означает считывание уровня логического 0.

Если емкость С была заряжена до напряжения питания (Uпит) и не успела разрядиться, то перераспределение заряда емкостей будет отсутствовать и транзистор VT2 останется полностью открытым и  Uвых=0, считывание уровня логической 1-идеальный случай. Но все же С<Сш,т.е.будет происходить перераспределение:  U1вых “  U0вых.

Трехтранзисторный динамический ЗЭ представлен на рис.6.11.

 

Рисунок 6.10 – Трехтранзисторный динамический запоминающий элемент

Преимущества динамических ЗУ

  1.  Высокая степень интеграции.
  2.  Мощность потребляется только в моменты записи-чтения информации, вследствие чего снижается потребляемая мощность и появление импульсных помех.

Примеры динамических ЗУ

КР565РУ3 с емкостью 16Кбит и временем считывания 370нс;

РУ5: 64Кбит, 230нс; РУ7: 256Кбит, 340нс; РУ8: 256Кбит, 340нс; РУ9: 1Мбит, 349нс.

Все БИС ЗУ организованы в виде одноразрядных слов и размещаются в корпусах типа ДИП.

55. Триггеры с динамическим управлением (схема трех триггеров). Схемы реализации на базе логических элементов. Режимы и временные диаграммы работы.

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

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

  1.  информация передается по положительному фронту импульса, т.е. запись информации осуществляется в момент перепада тактового сигнала из 0 в 1.
  2.  Триггеры в которых передача информации осуществляется на отрицательным фронте (1-0).

T3 - обеспечивает хранение информации.

Т1, Т2 – прием сигнала С, а также R и S и задает динамический режим работы.

При С=0 в выходном триггере Т3 обеспечивается режим сохранения старого состояния.

При С=1 и при наличии одного из инф. сигналов происходит в триггере Т1 и Т2 запоминание состояния. Этот сигнал установит в необходимое состояние и кроме того зафиксирует 1 на выходе того из триггеров, который и подал сигнал установки его в единичное состояние.

Структура динамического триггера:

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

Рисунок 1.6.3. – Временные диаграммы работы RS- триггера с динамическим управлением

На данной схеме :

1) с=0 → А=1,В=1 , т.е. триггер находится в режиме хранения, значит

Qn = Qn-1=1; Qn =Qn-1 =0.

2) с=1, S=1, R=0 → A=1, B=0, значит Qn = 1, Qn=0, т.е. запись “0”

3) с=1, S=0, R=1 → A=1, B=0 , значит Qn =1, Qn=0, т.е. запись “1”

На элементах 5 и 6 реализована схема триггера (запоминающего элемента). На элементах 2 и 3 реализована схема управления триггера. Элементы 2 и 3 совместно с элементами 1 и 2 соответственно реализуют схемы запоминания (фиксации) входных сигналов S и R во время длительности фронта синхросигнала С при переключении его из состояния “0” в состояние “1”. Нулевой уровень сигнала на выходе А или В выполняет три функции:

1) Устанавливает выходной триггер (элементы 5,6) в состояние, соответствующее алгоритму работы RS-триггера.

2) Запоминает значения входа R или S в момент переключения синхросигнала из нулевого состояния в единицу на входном триггере ( элементы 3,4 или 1,2).

3) Блокирует изменение второго входа триггера, т.е. исключает запрещенную комбинацию входных сигналов RS-триггера (элементы 5,6).

Определим время переключения RS-триггера с динамическим управлением.

tтр01 =tзд.р2+ tзд.р5+ tзд.р6=3* tзд.рл.э tтр10 =tзд.р3+ tзд.р6+ tзд.р5=3* tзд.рл.э

Кроме tтр01, tтр 10 важнейшими временными характеристиками RS-триггера с динамическим управлением являются: время предустановки и время удержания информационного сигнала. Определим их.

- время предустановки сигналаS (R) tпред S (R) >= tзд.р1(4)

- время удержания сигнала S (R) tуд S (R) >= tзд.р2(3) = tзд.рл.э

tmin S (R) >= 2* tзд.рл.э

tminC = 3* tзд.рл.эвремя импульса синхросигнала

tminC = tзд.рл.эвремя паузы синхросигнала

Триггер переключается в соответствии с состояниями управляющих сигналов только в первый момент после переключения синхросигнала из состояния “0” в “1”.

Модификация триггеров с динамическим управлением: К155ТМ2 (ТТЛ) К555ТМ2(ТТШЛ) К1533ТМ2 К1531ТМ2 (усовершенствованные схемы) К531ТМ2 и их аналог (для серии 1533)- SN74ALS74A

Условно -графическое обозначение триггера с динамическим управлением D-триггера (КР555ТМ2)

56. Двухступенчатые JK-nриггеры. Схемы реализации на базе логических элементов. Режимы и временные диаграммы работы.

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

Рисунок 1.7.1. – Схема двухступенчатого триггера


ЗЭ I ст. – запоминающий элемент первой ступени,

ЗЭ II ст. – запоминающий элемент второй ступени,

СХ.У. I ст. – схема управления первой ступени,

СХ.У. II ст. – схема управления второй ступени.

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

Работа двухступенчатого триггера:

а) При C=1 сигналы с входов R и S поступают на вход первой ступени триггера и устанавливают триггер в состояние, соответствующее таблице истинности. Происходит запись информации на первую ступень триггера. На элементы 5 и 6 поступает инверсный сигнал C, C=0 и, следовательно, на выходах элементов 5, 6 устанавливается уровень логической единицы, чем обеспечивается режим хранения запоминающего элемента второй ступени. Т.о. C=1 - запись Qn в первую ступень, хранение Qn-1 во второй ступени.

б) При C=0 запоминающий элемент первой ступени хранит информацию, записанную в последний момент перед переключением, а запоминающий элемент второй ступени перезаписывает новую информацию из первой ступени во вторую ступень.

Временные диаграммы работы двухступенчатого триггера представлены на рисунке 1.7.2 .

Рисунок 1.7.2. – Временные диаграммы работы двухступенчатого триггера

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

Рисунок 1.7.3 - Условное графическое обозначение двухступенчатого триггера

Время переключения двухступенчатого триггера вычисляться по формулам:

tтр 01=3* tзд.рл.э.       tтр 10=4* tзд.рл.э.

Время удержания сигнала установки определяется:   tудR = tудS = tтр

Время удержания равно         tтр .

Схема симметрична по входам S и R.      tпред=0;

Для входа сигнала R, как и для S время предустановки равно “0”.

Минимальная длительность сигнала установки:    tminR = tminS= tтр

Минимальная длительность управляющего сигнала:

импульса - tCmin=3* tзд.рл.э.       паузы - tCmin= tтр= 4* tзд.рл.э.

Различные варианты построения схем двухступенчатых триггеров.

Корректировка (модификация)

    

Рисунок 1.7.4 - II-модификация Рисунок 1.7.5 - Ш -модификация

На базе двухступенчатых структур строят двухступенчатые счетные триггеры.

JK-триггер

Универсальный триггер, как правило, строится по двухступенчатой структуре. Характеристическое уравнение:

Qn=J Qn-1 \/ K Qn-1 (1.9.1)

Таблица №1 Таблица состояний JK-триггера

J

K

Qn

Qn

Режим

0

0

Qn-1

Qn-1

Хранение

0

1

0

1

Запись лог. нуля “0“

1

0

1

0

Запись лог. Единицы “1“

1

1

Qn-1

Qn-1

Инверсия предыдущего состояния ( счетный режим )

 

За счет наличия обратных связей в структуре JK-триггера (рисунок 1.9.1) вместо запрещенного состояния, имеющего место в RS-триггере, для JK-триггера реализуется режим счета.

Рисунок 1.9.1. - Двухступенчатая структура с обратными связями и J-, K- , входам

Рисунок 1.9.2. –Условно – графическое обозначение JK-триггера

Схема, представленная па рисунке 1.9.1 , является проницаемой для помех по входам J и K при С = 1. В частности, имеют место свойства захвата нуля и единицы. Временные диаграммы, иллюстрирующие эти свойства, показаны на рисунке 1.9.4.

Еще одна из возможных схем реализации JK-триггера - схема с запрещающими связями (рисунок 1.9.5). Однако и эта схема является проницаемой для помех: наблюдается явление проскока фронта при изменении сигнала на входах J или K при С = 1. Временные диаграммы, иллюстрирующие явление проскока фронта, показаны на рисунке 1.9.6. Схема, JK-триггера, непроницаемого для помех, строится на базе потенциального D-триггера – защелки (latch) (это триггер с записью по уровню синхросигнала) и представлена на рисунке 1.9.7. Внутренняя структура используемого D-триггера показана на рисунке 1.9.8. Анализ работы такого JK-триггера ( рисунок 1.9.7 ) показывает, что в нем отсутствуют свойства захвата нуля и единицы и проскок фронта, т.е. триггер является непроницаемым для помех при любом состоянии синхросигнала С. В соответствии с приведенной схемой реализован JK-триггер в ИМС К561ТВ1, переключения которого происходят по переднему фронту синхросигнала.

.

Рисунок 1.9.3 - Временные диаграммы работы Рисунок 1.9.4 -Временные диаграммы работы JK-триггера. JK-триггера  Захват единицы и нуля

 

Рисунок 1.9.5 - Схема реализации JK-триггера. Рисунок 1.9.7 - Схема реализации JK-триггера. Схема с запрещающими связями   Непроницаемый для помех

Рисунок 1.9.6 - Временные диаграммы работы JK-триггера. Проскок фронта

Преобразования синхронного JK-триггера

JK-триггер является универсальным, так как из него можно получить другие триггеры : RS-триггер (рисунок 1.9.7), T-триггер (рисунок 1.9.8), D-триггер (рисунок 1.9.9).

 

ПРОЕКТИРОВАНИЕ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

57. Классификация микропроцессоров и микропроцессорных комплектов.

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

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

МК – микроконтроллер – функционально полное микропроцессорное устройство, включающее в себя центральный процессор (ЦП), память, средства ввода/вывода.

Микропроцессорные устройства можно классифицировать:

  1.  По типу устройства:
    1.  микропроцессор
      1.  микроконтроллер
    2.  По архитектуре (по типу кристаллов):
      1.  однокристальные
      2.  многокристальные → секционные
    3.  По типу функционирования:
      1.  синхронные
      2.  асинхронные
    4.  По типу информации:
      1.  цифровые
      2.  аналоговые
      3.  аналогово-цифровые
    5.  По степени универсальности:
      1.  универсальные
      2.  специализированные
    6.  По организации передачи:
      1.  шинные
      2.  канальные
    7.  По технологии:
      1.  КМОП
      2.  ТТЛ
      3.  ТТЛШ и т.д.
    8.  По типу корпуса:
      1.  DIP
      2.  LGA
      3.  FPGA и т.д.

При классификации микропроцессорных комплектов можно говорить о типе и числе микросхем в комплекте.

В вычислительных машинах присутствует два основных вида архитектуры:

 - Фон-Неймановская – программа и данные в общей памяти.

 - Гарвардская - программа и данные отдельно.

58. Структура процессора с принстонской (Фон Неймановской) архитектурой.

Один из пяти принципов Фон Неймана – единство адресного пространства памяти и данных. Большинство микропроцессоров, в отличие от микроконтроллеров, имеют Фон Неймановскую архитектуру. В качестве примера рассмотрим структуру микропроцессора 8080 (или 8085 – на выбор дальше)

***8080***

КР580ВК80А

КР580ВК80А – аналог Intel 8080.

Центральный процессор с фиксированной системой команд и параллельной обработкой 8-разрядных слов.

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

  1.  - максимальная тактовая частота – 2,5 МГц
  2.  - потребляемая мощность - <=1,25 В*А
  3.  - напряжение питания - +12; +5; -5 В

В этом МП отсутствует возможность аппаратного наращивания разрядности обрабатываемых данных.

Особенности:

  1.  - общая шина
  2.  - аккумуляторная структура
  3.  - разрядность адреса 16 бит
  4.  - разрядность данных -8 бит
  5.  - три номинала питания (+-5В; +-12В) выполнено по n-МОП технологии


Структура МП КР580ВК80А

ША(16)

БФД

БФР(8)

А(8)

БА(8)

АЛУ

БДК

Фл. АЛУ

Рг К

ДШК

Мх

W(8)

B(8)

D(8)

H(8)

Z(8)

C(8)

E(8)

L(8)

PC(16)

SP(16)

РА(16)

Z

БША

УУиС

Зп   П     Рпр  Зпр   ПЗх  ЗЗх   Ожд                     Г     Ф1   Ф2                                       R

1

ШД

Описание структуры:

АЛУ - 8- разрядное арифметико-логическое устройство

ФлАЛУ - регистр признаков, фиксирует признаки, вырабатываемые АЛУ в процессе  выполнения команд

А - аккумулятор

БА - регистр аккумулятора

БФР - регистр временного хранения операндов

БДК - блок 10-й коррекции

РгК - регистр команд, используется для хранения первого байта команды, содержащего код операции

ДШК - дешифратор команд

Z

: блок регистров для приема, выдачи и хранения информации в процессе выполнения программ, содержащий:

PC – программный счетчик

SP – указатель стека

РА – регистр адреса

B,C,D,E,H,L – регистры общего назначения

W,Z – вспомогательные регистры

УУиС - схема управления и синхронизации, формирующая последовательности управляющих сигналов для работы АЛУ и блока регистров

БФД - 8-разрядный буферный регистр ШД

Мх - 2-направленный мультиплексор для обмена результатами операций и операндами между АЛУ и блоками регистров по внутренней шине данных

БФА - 8-разрядный буферный регистр ША

Назначение сигналов:

ША(16) = А[0:15] – 3х-стабильная шина адреса

ШД(16) = D[0:7] – 2-направленная 3х-стабильная 8-разрядняая шина данных

WR = ЗП - выход сигнала “выдача” – напряжение L-уровня указывает на выдачу байта  информации на шину данных для записи в ЗУ или УВВ

DBIN = П - “прием” – напряжение H-уровня указывает на прием с шины данных байта  информации, выданного с ЗУ или УВВ

INTE = Рпр - “разрешение прерывания” вход сигнала

INT = Зпр - “запрос на прерывание” вход сигнала

HLDA = ПЗх - выход сигнала “подтверждение захвата” высокое напряжение указывает на  перевод ША и ШД МП в третье состояние

HOLD = ЗЗх - вход сигнала “захват” – высокое напряжение указывает на запрос другими  устройствами системы на управление шинами системы

WAIT = Ожд - выход сигнала “ожидание” - высокое напряжение указывает на состояние  ожидания МП

READY = Г - вход сигнала “готовность” - высокое напряжение указывает на состояние  готовности данных на ШД к вводу в МП или на готовность ВУ к приему  информации, служит для синхронизации МП с ЗУ или УВВ

SYNC = 1 - выход сигнала “синхронизация” - высокое напряжение указывает на начало  каждого машинного цикла

CLK1,CLK2 = Ф1,Ф2 – вход 1-й и 2-й фазы

RESET = R  - вход установки 0 – установка счетчика команд в нуль, сброс триггеров,  разрешение прерываний и захвата шин

Также присутствуют сигналы:

UВС - напряжение питания +12 В

UСС - напряжение питания + 5 В

UВS - напряжение питания - 5 В

GND - напряжение питания 0 В

Программный счетчик

Используется для хранения текущего адреса команды, который автоматически увеличивается в процессе выполнения команды на 1,2,3 в зависимости от формата выполняемой команды.

Указатель стека

Содержит адрес вершины стека, а сам стек может использовать любую зону ОЗУ объемом до 64 Кб или специализированное ОЗУ, адресуемое сигналом STACK. Содержимое указателя увеличивается на 2, когда данные извлекаются из стека и уменьшаются на 2, когда заносятся.

МП имеет 16-разрядный 3х-стабильный канал адреса A[0:15], 8-разрядный 2-направленный 3х-стабильный канал данных D[0:7], 6 входных и выходных сигналов управления. МП обеспечивает адресацию внешней памяти объемом до 64 Кб, адресацию 256 устройств ввода/вывода.

***8085***

AD0-AD7

TRAP

RST75

RST65

INTR

INTA

БУП

Блок синхронизации и управления

SINC RA RD WR EA S0 S1 IO/M HOLD HLDA SR1 SR0

ГТИ

CR1 CR2

A8-A15

SID

SOD

БПВВ

B

C

D

E

L

H

УС

СК

РА и СД

БСА

БМАД

СДК

А

БР1

БР2

А

БР1

АЛУ

РгФ

РК

ДШК

Структурная схема


Описание основных блоков

БУП – блок управления прерываний

ГТИ – генератор тактовых импульсов

БПВВ – блок последовательного ввода/вывода через последовательный интерфейс

EA и RA – подтверждение и чтение адреса ОЗУ

СДК – схема dec-коррекции

ДШК – дешифратор команд

БСА – буфер старшего адреса

БМАД – буфер магистрали адреса и данных

УС - указатель стека

СК – счетчик команд

HOLD – вход запроса на захват шины

Шина адреса данных – мультиплексированная, по 8 бит и адреса, и данных.

Если ALE, то на шине адреса данных – адрес; если RD/WR, то в младшей части шины адреса данных находятся данные.

Отличительные черты

  1.  - один номинал питания (+5 В), следовательно снижение общей стоимости
  2.  - наличие однофазной синхронизации, для функционировании необходим только внешний кварцевый генератор, 2 фазы генерируются внутри кристалла от внешнего источника
  3.  - мультиплексированная шина данных
  4.  - расширенный набор команд (SIM – установить маску прерывания, RIM – читать маску)
  5.  - наличие режимов прерывания (немаскируемое прямое, TRAP, 3 прямых векторных, 8 косвенных)

Сигналы

SID - последовательный вход данных

SOD - последовательный выход данных

TRAP - вход – немаскируемое прерывание 01 передача управления по адресу 0000448

RST (7,5)- вход – немаскируемое прерывание 01 передача управления по адресу 0000758

RST (6,5)- вход – немаскируемое прерывание 1 передача управления по адресу 0000658

RST (5,5)- вход – немаскируемое прерывание 1 передача управления по адресу 0000558

INTR - вход – асинхронное прерывание программы

- выход – разрешение прерывания

HOLD - вход – 1 переводит ША(7-0), ШД(7-0), в 3-е состояние

- выход – 1- выполнение вода/вывода

- выход – 0- режимы вода/вывода для ШД

HLDA - выход – 1 – подтверждение захвата HOLD

ALE - выход – для стробирования мл. разрядов ША

RESETIN – вход -0 –сброс программного счетчика и перевод МП в состояние М1Т1;  установка маски RST и запрещение сигнала INTR

RESETOUT – выход – сброс МП

- информация о состоянии: 00-программная остановка

01-запись

01-чтение

11- извлечение команды

59. Структура ядра микроконтроллера с гарвардской архитектурой.

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


Краткий обзор архитектуры

 Рисунок – Функциональная схема архитектуры AVR

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

Регистровый файл с быстрым доступом содержит 32 x 8-разр. рабочих регистров общего назначения с однотактовым циклом доступа. Благодаря этому достигнута однотактность работы арифметико-логического устройства (АЛУ). Т.е. все регистры напрямую доступны АЛУ (нет понятия аккумулятора).

6 регистров из 32 могут использоваться как три 16-разр. регистра косвенного адреса для эффективной адресации в пределах памяти данных. Один из этих указателей адреса может также использоваться как указатель адреса для доступа к таблице преобразования во флэш-памяти программ. Данные 16-разр. регистры называются X-регистр, Y-регистр и Z-регистр

АЛУ поддерживает арифметические и логические операции между регистрами, а также между константой и регистром. Кроме того, АЛУ поддерживает действия с одним регистром. После выполнения арифметической операции регистр статуса обновляется для отображения результата выполнения операции.

Для ветвления программы поддерживаются инструкции условных и безусловных переходов и вызовов процедур, позволяющих непосредственно адресоваться в пределах адресного пространства. Большинство инструкций представляют собой одно 16-разр. слово. Каждый адрес памяти программ содержит 16- или 32-разр. инструкцию. Флэш-память программ разделена на две секции: секция программы начальной загрузки и секция прикладной программы. Обе секции имеют раздельные биты защиты от записи и чтения/записи. Инструкция SPM (запись в секцию прикладной программы) должна использоваться только внутри секции программы начальной загрузки.

При генерации прерывания и вызове подпрограмм адрес возврата из программного счетчика записывается в стек. Стек эффективно распределен в статическом ОЗУ памяти данных и, следовательно, размер стека ограничен общим размером статического ОЗУ и используемым его объемом. В любой программе сразу после сброса должна быть выполнена инициализация указателя стека (SP) (т.е. перед выполнением процедур обработки прерываний или вызовом подпрограмм). Указатель стека – SP – доступен на чтение и запись в пространстве ввода-вывода. Доступ к статическому ОЗУ данных может быть легко осуществлен через 5 различных режимов адресации архитектуры AVR.

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

Пространство памяти ввода-вывода содержит 64 адреса с непосредственной адресацией или может адресоваться как память данных, следующая за регистрами по адресам $20 - $5F. Кроме того, ATmega128 имеет пространство расширенного ввода-вывода по адресам $60 - $FF в статическом ОЗУ, для доступа к которому могут использоваться только процедуры ST/STS/STD и LD/LDS/LDD.

60. Основные этапы проектирования микропроцессорной системы.

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

Спецификация – перечень требований. Возможен возврат с любой стадии на любую более раннюю.

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

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

Этап 3: Схемотехники и программисты одновременно приступают к разработке и изготовлению опытного образца и программного средства. Для аппаратного средства это разработка структурной и принципиальной схем, изготовление прототипа, автономная отладка. Для программного средства это алгоритмы, тексты программ и т.д.

Этап 4: Комплексная отладка.

61. Средства поддержки разработок микропроцессорных систем.

  1.  Программные системы:

P-CAD, OrCAD, Protel, CADINT, DipTrace-САПР радиоэлектронной аппаратуры,

  1.  Дополнительно позволяют моделирование и документирование:

AVR Studio,FD-51,MPLab – IDE.

  1.  Аппаратные системы:

STK-500, ICE-50 и др. – средства автономной и комплексной отладки.

  1.  Программаторы, измерительные приборы ( осциллографы, анализаторы и т.п.)

  1.  AVR STUDIO

AVR Studio - инструмент разработки для семейства AVR микроконтроллеров. Позволяет разрабатывать программы на встроенном Atmel AVR Assembler. AVR Studio дает возможность пользователю полностью управлять выполнением программ на встроенном AVR Instruction Set Simulator или на AVR In-Cir-cuit эмуляторе. AVR Studio поддерживает программы, написанные на уровне Atmel Corporation’s AVR Assembler и других ассемблерах и компиляторах, которые поддерживают форматы UBROF и COFF объектного файла.

AVR Studio – интегрированная среда проектирования (IDE), предназначенная для разработки и отладки AVR-приложений. AVR Studio содержит средства управления проектом, редактор исходных файлов, симулятор, интерфейс внутрисхемного эмулятора и интерфейс программирования для STK500.

AVR Studio 4 - новая профессиональная интегрированная среда разработки (Integrated Development Environment - IDE), предназначенная для написания и отладки прикладных программ для AVR микропроцессоров в среде Windows 9x/NT/2000. AVR Studio 4 содержит ассемблер и симулятор. Также IDE поддерживает такие средства разработки для AVR как: ICE50, ICE40, JTAGICE, ICE200, STK500/501/502 и AVRISP.

AVR Studio поддерживает COFF как формат выходных данных для символьной отладки. Другие программные средства третьих фирм также могут быть сконфигурированы для работы с AVR Studio.

Окно исходного текста программ

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

Выполнение программ и пошаговый режим

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

Просмотр регистров

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

Список доступных окон:

  1.  Watch window: Окно показывает значения определенных символов. В этом окне пользователь может просматривать значения и адреса переменных.
  2.  Trace window: Окно показывает хронологию программы, выполняемой в настоящее время.
  3.  Register window: Окно показывает содержимое регистров. Регистры можно изменять во время остановки программы.
  4.  Memory windows: Окна показывают содержимое памяти программ, данных, портов ввода/вывода и энергонезависимого ПЗУ. Память можно просматривать в HEX, двоичном или десятичном форматах. Содержимое памяти можно изменять во время остановки программы.
  5.  I/O window: Показывает содержимое различных регистров ввода/вывода:
  6.  EEPROM
  7.  I/O порты
  8.  Таймеры
  9.  и т.д.
  10.  Message window: Окно показывает сообщения от AVR Studio.
  11.  Processor window: В окне отображается важная информация о ресурсах микроконтроллера, включая программный счетчик, указатель стека, регистр статуса и счетчик цикла. Эти параметры могут модифицироваться во время остановки программы.

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

В AVR Studio включена поддержка отладочных средств фирмы Atmel:

  1.  Внутрисхемный эмулятор Atmel ICEPRO
  2.  Внутрисхемный эмулятор Atmel MegaICE
  3.  Внутрисхемный эмулятор Atmel AVRICE
  4.  Внутрисхемный эмулятор Atmel ICE200
  5.  Внутрисхемный эмулятор Atmel AsicICE
  6.  Внутрисхемный эмулятор Atmel ICE10
  7.  Внутрисхемный эмулятор Atmel ICE30

С AVR Studio также совместимы любые программаторы и отладочные средства, которые поддерживают микроконтроллеры фирмы Atmel.

  1.  WIN AVR

WinAVR – компилятор, который представляет собой набор инструментальных средств, предназначенных для программирования RISC-микроконтроллеров семейства AVR на языке С. В комплект поставки входит компилятор GNU GCC для языков С и С++.

WinAVR включает следующий набор компонентов:

Programmers Notepad - удобный редактор программиста и интегрированная среда разработки (IDE);

AVR GCC - компилятор языков C и C++ для AVR;

avr-libc - стандартная С библиотека AVR для использования с GCC;

avr-as - ассемблер для микроконтроллеров AVR;

AVRDUDE - программатор (программа для загрузки и выгрузки кода микроконтроллеров);

avrdude-gui - графический интерфейс пользователя для AVRDUDE (только в версиях до WinAVR-20060421 включительно);

MFile - автоматический генератор Make-файлов for AVR GCC;

GNU Binutils - утилиты для AVR (поддерживают преобразование форматов из ELF в AVR COFF или в AVR Extended COFF);

GNU Debugger (GDB) - дебагер (отладчик) с интерфейсом командной строки;

Insight - дебагер (отладчик) с графическим интерфейсом пользователя;

AVaRICE (JTAG ICE interface) - программа для интерфейсов Atmel JTAG ICE (используется вместе с GDB);

SimulAVR - симулятор GDB с поддержкой симулятора от AVR;

SRecord - коллекция мощных утилит для загрузки файлов разных форматов в EPROM;

Дополнительные вспомогательные программы и утилиты;

Набор документации.

  1.  STK-500

STK500 – завершенный стартовый набор и система проектирования для AVR флэш-микроконтроллеров корпорации Atmel.

Отличительные особенности

  1.  Совместимость с программой AVR Studio 
  2.  Связь с ПК через интерфейс RS-232 для программирования и управления
  3.  Стабилизированный источник питания с входом 10 – 15В
  4.  8-выв., 20-выв, 28-выв., 40-выв. панели для установки DIP-корпусов AVR-микроконтроллеров
  5.  Поддержка параллельного и последовательного программирования повышенным напряжением всех AVR-микроконтроллеров
  6.  Последовательное внутрисистемное программирование (ISP) всех AVR-устройств
  7.  Внутрисистемный программатор для программирования микроконтроллера непосредственно в целевом приложении
  8.  Перепрограммирование AVR-микроконтроллеров
  9.  8 кнопок общего назначения
  10.  8 светодиодов общего назначения
  11.  Все порты ввода-вывода выведены на штырьки разъема
  12.  Дополнительный порт RS-232 общего назначения
  13.  Разъемы расширения для подключения внешних модулей и областей для макетирования
  14.  Встроенная флэш-память DataFlash емкостью 2 Мбит для энергонезависимого хранения данных

STK500 управляется из AVR Studio не ниже версии 3.2.

4. P-CAD

Система проектирования радиоэлектронной аппаратуры P-CAD, разработанная первоначально фирмой ALTIUM (An IBM Company), на сегодняшний день является одной из самых мощных, полных и последовательных систем автоматизированного проектирования для персональных компьютеров. Изначально P-CAD представлял собой пакет специализированных модулей, тесно связанных друг с другом и охватывающих все этапы разработки и изготовления печатных плат. Начиная с версии P-CAD 2001. в состав пакета включен модуль схемотехнического моделирования электронных устройств, позволяющий проектировать аналоговые, логические и смешанные, аналого-цифровые, устройства.

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

Система P-CAD 2001 выполняет полный цикл проектирования печатных плат (ПП), а именно:

  1.  графический ввод электрических схем,
  2.  моделирование смешанных аналого-цифровых устройств,
  3.  упаковку схемы на печатную плату,
  4.  интерактивное размещение компонентов,
  5.  ручную, интерактивную и/или автоматическую трассировку проводников,
  6.  контроль ошибок в схеме и печатной плате и выпуск документации,
  7.  анализ целостности сигналов.

Функциональные возможности P-CAD 2001:

  1.  Задание форматов перечней компонентов и других отчетов (PCB, Schematic). Пользователям предоставляется возможность по команде File>Reports задавать перечень полей отчета и порядок их следования.
  2.  Максимальное количество секций в компоненте до 5 000. Максимальное количество выводов компонента - 10000.
  3.  Измерительный инструмент Miter Tool распознает не только прямые, но и произвольные углы, принимая их в качестве точек "привязки" при выполнении измерений.
  4.  Электронная документация имеет механизм простого доступа к информации о компонентах (PCB, Schematic). Введена папка со списками URL's (адресов в Internet) всех ведущих фирм, производителей полупроводниковых компонентов.
  5.  Имеется механизм переноса изменений печатной платы на схему и наоборот (Engineering Change Order, ECO).
  6.  Поддерживается как английская, так и метрическая система единиц.
  7.  Применение 32-разрядной арифметики обеспечивает дискретность измерения линейных размеров 0,1 мил в английской системе (1 мил=0,001 дюйма) и 0,001 мм в метрической системе, угловых размеров 0,1 град. и возможность изменения системы единиц на любой стадии работы с проектом без потери точности. Напомним, что в P-CAD для DOS система единиц устанавливалась до начала работы с проектом и в дальнейшем не могла быть изменена.
  8.  Поддержка текстовых форматов описания баз данных DXF и PDIF позволяет обмениваться информацией с такими распространенными пакетами, как AutoCAD, OrCAD, Viewlogic, конечно, P-CAD для DOS и др.
  9.  C помощью текстового формата IDF данные передаются в механические 3D САПР типа Solid Work для создания трехмерных чертежей печатных плат.
  10.  Многошаговый откат вперед и назад (Undo и Redo).
  11.  Автоматическое размещение компонентов на плате и эффективная автоматическая трассировка проводников реализованы в поставляемых отдельно пакетах SPECCTRA 6.x-10 фирмы Cadence Design Systems (ранее Cooper&Chyan Technology).
  12.  Доработка ПП и выпуск управляющих файлов для фотоплоттеров с учетом особенностей технологии конкретного оборудования выполняется с помощью программ третьих фирм, например фирмы Lavenir.
  13.  P-CAD 2001 поставляется с большой библиотекой современных импортных ЭРЭ, которую можно пополнить библиотеками отечественной элементной базы, в частности, импортированными из P-CAD для DOS.
  14.  P-CAD 2001 и SPECCTRA 10 устанавливаются на ПК с процессором, начиная от P-133 МГц, и работают под управлением Windows 95/98/2000 или Windows NT. Для графического редактора схем P-CAD Schematic требуется ОЗУ 32 Мб, графического редактора печатных плат P-CAD PCB - 32 Мб, программы SPECCTRA - 64 Мб.

62. Основные тенденции развития микроконтроллеров, микропроцессоров.

Общие тенденции развития:

- увеличение быстродействия

- уменьшение потребляемой мощности

- увеличение степени интеграции - увеличение разрядности обрабатываемых данных

Тенденции развития для МП:

- увеличение быстродействия

- увеличение разрядности обрабатываемых данных

- увеличение степени интеграции

- вынужденное уменьшение удельной мощности потребления

- интеграция периферийных функций – за пределами

Появляются средства внутрисистемной отладки.

Тенденции развития для МК:

- увеличение разрядности обрабатываемых данных (слов)

- увеличение производительности (тактовой частоты)

- уменьшение потребляемой мощности

- увеличение интегрированных периферийных функций внутри МК

- расширение номенклатуры и количества периферийных устройств

- пока не актуально для МК – увеличение количества ядер.

Примеры:

МП: I8080, I8086, I80186(286,386,486), Pentium и т.д.

МК: Например для AVR: Tiny, Mega, XMega, Classic.

Появилось новое семейство XMega (добавилась система прямого доступа к памяти, восьмиканальная система событий, 7 интерфейсов USART, 3 интерфейса SPI, 16-битный таймер-счётчик с отдельным генератором, многоуровневый контроллер прерываний, интерфейс JNAG, интерфейс PDI)

32-разрядные МК (например АТ32UC3(тактовая частота до 66 МГц при удельной производительности 1,38 DMIPS/МГц, производительность 45 DMIPS при выполнении программы из Flash- памяти с тактовой частотой 33МГц, модуль защиты памяти, повышенная производительность, встроенная высокоскоростная Flash- память объёмом от 512К до 128К со 100000 циклами записи и 15-летним сроком сохранения данных, встроенный SRAM, ШД=16 бит, ША = 24бита, контроллер прерываний, универсальная шина USB(2.0), один 16-разрядный таймер-счётчик, 4 USART, 2 SPI, интерфейс I2S, интерфейс TWI, 10 разрядное АЦП, вход стерео аудио ЦАП до 50 кГц и др. )).

ЦИФРОВЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ

63. Архитектура системы команд. Основные типы команд. Способы адресации. Форматы команд.

Архитектура системы команд компьютера

Система команд – полный набор инструкций, который тем или иным способом может быть реализован на конкретном компьютере.

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

Цель работы АСК – реализация компьютерного ресурса эффективно.

Существуют следующие виды АСК:

  1.  Аккумуляторная
  2.  Стыковая
  3.  Регистровая
  4.  CISC
  5.  RISC
  6.  VLIW

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

По др. инструкции:

- по кол-ву адресных полей

- по количеству обраб. адресного поля (принудительная адресация)

- по структуре адресных полей (принудительная адресация)

Команды как и данные хранятся в памяти. При организации адр. доступа к этим командам и данным выполняется следующим образом Аисп.=f(A)

Аисп. – выч. адр. объема, который выбирается из памяти.

А – адресное поле команды.

Основные типы команд. Форматы команд

Типы команд:

  1.  арифметическая команда,
  2.  логическая команда,
  3.  команда пересылки данных (команда обмена данными между регистровой памятью (РП) процессора и ОП),
  4.  команда обращения к устройству ввода/вывода,
  5.  команда передачи управления,
  6.  команда «стоп».

1) Команды обработки

Формат :

 

Оп1 = Оп1 * Оп2   (* - какая – либо операция)

Команды обработки представляют собой команды, выполняющие определенные действия над 2мя объектами. При выполнении команд обработки данных обработка осуществляется на устройстве АЛУ. После выполнения операции АЛУ формирует осведомительные сигналы, характеризующие значение полученного результата.

2)Команды загрузки операндов.

В связи с тем, что такт выполняется значительно быстрее чем АЛУ вводится сигнал Халу.

m – количество разрядов, характеризующих машинное слово