Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / Answers (1-20).docx
Скачиваний:
242
Добавлен:
15.06.2014
Размер:
54.64 Кб
Скачать

18. Программные средства использования мыши в текстовом режиме Linux

Для использования мыши в Linux служит программная подсистема gpm. Построена она по технологии клиент-сервер. Основой подсистемы служит сервер мыши.

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

Для регистрации у сервера программа процесса должна заполнить структуру Gpm_Connect и выполнить вызов функции Gpm_Open с этой структурой в качестве аргумента. Функция Gpm_Open имеет прототип

Int Gpm_Open (Gpm_Connect *conn, int flag)

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

Int Gpm_GetEvent (Gpm_Event *event)

typedef struct Gpm_Event {

unsigned char buttons, modifiers;

unsigned short vc;

short dx, dy, x, y;

enum Gpm_Etype type;

Int clicks;

enum Gpm_Margin margin;

} Gpm_Event;

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

#define GPM_B_LEFT 4 // Левая клавиша мыши

#define GPM_B_MIDDLE 2 // Средняя клавиша мыши

#define GPM_B_RIGHT 1 // Правая клавиша мыши

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

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

gcc -o prim1.exe prim1.c –lgpm

19. Понятие процесса; параллельные и последовательные процессы

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

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

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

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

Соседние файлы в папке Экзамен