Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_ASTV_2.docx
Скачиваний:
19
Добавлен:
30.01.2020
Размер:
84.68 Кб
Скачать

Как программно определить причину произошедшего прерывания в подпрограмме обработки прерывания?

Нужно проверять регистр идентификации прерывания IN

01 передатчик готов вывод символа в регистр хранения передатчика

  1. получены данные чтение регистра приемника данных

11 изменение статуса модема чтение регистра статуса модема

00 ошибка или перерыв чтение регистра статуса линии

4 билет:

  1. Мьютексы Доступ к данным разных потоков

Все потоки процесса делят адресное пространство и выполняют каждый свой код. Но потоки могут выполнять один и тот же программный код.. Может случиться Гонка данных

К одной и той же переменной могут ссылаться несколько потоков. Что может изменить эту переменную. В результате может быть неправильный ответ. Или же завершении работы программы. Чтобы это устранить используют мьютексы (а также критические секции, событие). – это объект синхронизации потоков. Которй создается CreateMutex(). Он показывает сигнальное состояние. Или же “установлен” когда объект не принадлежит ни одному потоку. И наоборот показывает “сброшен” когда объектом уже владеет какая либо нить(поток). Доступ к объекту ращрешиться тогда, когда нить владеющая им освободит его.

  1. Приоритет потоков

Win32 API может распределять временем между потоками. Благодаря приоритетам.

Функция SetPriorityClass(…): чтобы изменять приоритет

IDLE_PRIORITY_CLASS программа заставка

BELOW_NORMAL_PRIORITY_CLASS

NORMAL_PRIORITY_CLASS

ABOVE_NORMAL_PRIORITY_CLASS

HIGH_PRIORITY_CLASS например диспечер задач

REALTIME_PRIORITY_CLASS самый высокий приоритет. Потоки этого процесса вытесняют другие. Если будет выполняться процесс с этим приоритетом, то он остановит мышь или кэширование например

  1. Формат чисел с плавающей запятой

IEEE754

Расмотрим float тип данных

  • Знак s=0 (положительное число)

  • Порядок E=011111002-12710 = -3

  • Мантисса M = 1.012 (первая единица не явная)

1,01 —следует 1×20 + 0×2-1 + 1×2-2.

1,01e-3 = 1×2-3 + 0×2-4 + 1×2-5 = 1×0,125 + 0×0,0625 + 1×0,03125 = 0,125 + 0,03125 = 0,15625.

F=1 в степени s * (2 в степени (Е-127)) * (1+ (M/(2 в степени 23)))

а – одинарный; б – двойной

Соседние файлы в предмете Аппаратные средства вычислительной техники