Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
осрв.doc
Скачиваний:
27
Добавлен:
25.04.2019
Размер:
269.82 Кб
Скачать

Вопрос 58. Синхронизация и взаимодействие процессов. События. Примитивные операции.

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

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

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

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

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

• Send(E) - послать событие, т.е. установить переменную Е в 1 (по традиции UNIX систем эту функцию обычно называют Кill, поскольку среди событий определено та кое, единственной реакцией на которое является немедленное аварийное завершение получившей его задачи), при этом все задачи из очереди ожидания активизируются;

• Wait(E) - ожидать события, (если события нет, т.е. переменная Е равна 0, то эта операция переводит задачу в состояние ожидания прихода события, и добавляет ее в конец очереди ожидания этого события, как только событие придет, задача будет активизирована);

• Reset(E) - очистить (удалить поступившее событие), т.е. установить переменную Е в 0;

• Test(E) - проверить (поступление) - получить значение переменной Е.

Вопрос 59. Процессоры Intel 80960x. Общий обзор.

Процессоры Intel 80960x занимают значительное место на рынке встраиваемых компьютеров.

Процессоры Intel 80960x были специально разработаны для встраиваемых систем. Являются 32-битными RISC процессорами; имеют:

• значительное число регистров (32)

• фиксированный формат инструкций (все инструкции, кроме load/store, имеют размер 4 байта)

Есть некоторые черты CISC процессоров:

• значительное число режимов адресации памяти (11)

Для систем реального времени имеют:

• встроенный программируемый контроллер прерываний, подключенный к 8-ми внешним линиям прерывания

• встроенные подпрограммы (микрокод) для автоматического переключения контекста при прерывании

• встроенное ОЗУ (обычно 1Кб) для хранения таблицы прерываний

• встроенный кэш регистров, ускоряющий переключение контекста

• встроенные программируемые таймеры (ряд моделей)

Процессоры Intel 80960x особенно эффективны в приложениях, требующих обслуживания большого количества прерываний и пересылки больших объемов данных.

Основные члены семейства:

180960Кх (1988, 20 MHz, 7.5 MIPS):

• 32-бит архитектура с 4Gb адресным пространством

• 512 байт кэш инструкций, загружаемый блочными пересылками (burstaccess)

• 16 глобальных и 16 локальных регистров, кэш на 4 набора локальных регистров

i80960Sx (1988, 16 MIPS):

• 16-бит внешняя шина данных

• Гарвардская архитектура: 512-байт кэш инструкций + 256-байт кэш данных

• встроенное FPU производительностью 0.5 MFlops (у 180960SB)

i80960Сх (600000 транзисторов, 33 MHz, 66 MIPS):

• 128 битные внутренние шины данных

• 2 инструкции за цикл

• 1Кб кэш инструкций

• устройство предсказания переходов

i80960Jx (1994, 50 MHz, 45 MIPS):

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

• 4Кб кэш инструкций + 2Кб кэш данных (у 180960JF)

• 2 встроенных таймера

i80960Нх (1995, 75 MHz, 150 MIPS):

• 16Кб кэш инструкций + 8Кб кэш данных

• встроенное 2Кб ОЗУ

• встроенные 32-бит таймеры

i80960RP (1996, 33 MHz):

• поддержка интерфейсов с двумя шинами PCI

• поддержкаинтерфейсашины 12 С