- •1) 1. Определение спо
- •3) 1. Функции современных мп, реализованные аппаратурой и прогами.
- •4) 1. Зад, реш спо при распред ресурсов.
- •2. Особенности программир-я в w:
- •2. Хар-ка сп:
- •7) 1. Яз. Процессы:
- •2 Вида яз проц:
- •2. Роль сп в пк:
- •9) 1. Компилятор.
- •10) 1. Интерпретатор.
- •2. Программные прер-я.
- •2. Общая структура системы прерывания.
- •14) 1. Функции операционной системы при управлении языковым процессором.
- •2. Функц-е сп:
- •15) 1.Проги и подпроги
- •2. Архитектура пк, управляемая объектами:
- •2. Клавиатура:
- •17) 1. См. 19.1
- •18) 1. Перемещаемая объектная прога:
- •2. Таймер:
- •2. Общая постановка задачи управления памятью.
- •20.1. Разрешение внешних ссылок. (см. 19.1)
- •2. Многозадачность и многопоточность
- •22) 1. Выполнение задания
- •2. Физическая и логическая структура памяти
2. Клавиатура:
Прикладной программист узнаёт о нажатии клавиш по средствам сообщений, которые посылаются оконной процедурой .Когда пользователь нажал и отпустил клавишу, драйвер клавиатуры передаёт информацию о нажатии клавиши в windows. Windows сохраняет эту информацию в виде сообщения в системной очереди сообщений. Затем эта ОС передаёт сообщения клавиатуры по одному за каждый такт в очередь сообщений программы. И эта программа отправляет сообщения соответствующей оконной процедуре. Смысл этого двустороннего процесса заключается в том, чтобы на первой ступени сохранить сообщение в системной очереди сообщений и на второй ступени осуществить передачу в очередь сообщений соответствующего приложения.
Клавиатура так же должна работать в режиме разделения времени, если в программе несколько окон. Для отображения различных сообщений клавиатуры windows посылает программе 8 различных сообщений, причём сообщения, которые приложение получает от windows о событиях относящихся к клавишам, различаются на сообщения клавиш (нажата или отпущена) и сообщения о символе соответствующей клавиши. При нажатии клавиши windows помещает либо сообщение WM_KEYDOWN, либо WM_SYSKEYDOWN в очередь сообщений окна имеющей атрибут фокус ввода.
Когда отпускают клавиши…АП
Для всех аппаратных сообщений клавиатуры в оконную процедуру передаётся 32-х разрядная переменная lParam, которая состоит из шести полей:
1)Счётчик повторений (Repeat count)
2)Скан код (OEM)
3)Флаг расширенной клавиши (Extended key Flag)
4)Код контекста (Context code)
5)Флаг предыдущего состояния клавиши (Previous Key Flag)
6)Флаг текущего состояния клавиши (Transition State)
Счётчик повторений = числу нажатий клавиши. В большинстве случаев он = 1.
Если клавиша остаётся нажатой, а оконная процедура не достаточно быстра, чтобы обработать сообщение в темпе автоповтора, то windows объединяет несколько сообщений в одно и увеличивает счётчик повторений.
Для сообщений об отпущенной клавише счётчик всегда = 1.
Scan code OEM – является кодом клавиатуры генерируемый аппаратным способом.
Флаг расширенной клавиатуры – устанавливается в 1, если сообщения клавиатуры появляются в результате работы операции с дополнительными клавишами расширенной клавиатуры (Ctrl, Alt и др.).
Код контекста устройства – устанавливает в 1, если нажата клавиша Alt. Этот разряд всегда равен 1 для сообщений об отпущенной клавише.
Флаг предыдущего состояния клавиши – равен 0, если в предыдущем состоянии клавиша была отпущена и = 1, если была нажата.
Флаг состояния клавиши – равен 0, если клавиша нажимается, и =1, если отпускается.
17) 1. См. 19.1
Л. Загрузочный модуль (load module). Программный модуль в виде, пригодном для загрузки и выполнения. 3. м. получается из объектного модуля при редактировании связей и представляет собой программу в виде последовательности машинных команд, имеющую принятый для данной операционной системы формат. 3. м. обычно выполнен в относительных (иногда в абсолютных) адресах и содержит информацию для их настройки загрузчиком в соответствии с отведенной для него областью оперативной памяти. 3. м. являются исполняемые файлы.
2. Мышь – графическое устройство с одной или более функциями. Windows поддерживает одно, двух и трёхкнопочные мыши. Наличие мыши определяется с помощью функции GetSystemMetrics. fMouse = GetSystemMetrics(SM_MOUSEPRESENT)
Значение fMouse=true, если мышь установлена. Иначе false.
Для определения количества кнопок: cButtons=GetSystemMetrics(SM_MOUSEBUTTON)
Оконная процедура получает сообщения от мышки в режиме процедуры. Определён набор из 21 сообщений. Если курсор мыши перемещается по рабочей области окна, то оконная процедура получает сообщение WM_MOUSEMOVE. Если кнопка мыши нажимается или отпускается внутри рабочей области окна, то получает несколько соответствующих сообщений. lParam содержит параметры мышки (положение мыши из 2-х слов). Младшая координата х, а старшая y, от верхнего левого угла рабочей области окна.
