- •1.2.2. Команды управления циклом
- •1.2.3. Работа с массивами
- •1.3. Задание на лабораторную работу
- •1.4. Отчет по лабораторной работе
- •2. Лабораторная работа № 4
- •2.1. Общие методические указания по выполнению лабораторной работы
- •2.2. Теоретические сведения
- •2.2.1. Стек и сегмент стека
- •2.2.2. Стековые команды
- •2.2.3 Приемы работы со стеком
- •2.3. Задание на лабораторную работу
- •2.4. Отчет по лабораторной работе
- •3 .Лабораторная работа № 5
- •3.1. Общие методические указания по выполнению лабораторной работы
- •3.2. Теоретические сведения
- •3.2.1. Дальние переходы
- •3.2.2. Подпрограммы (процедуры)
- •3.3. Задание на лабораторную работу
- •3.4. Отчет по лабораторной работе
- •4. Лабораторная работа № 6
- •4.1. Общие методические указания по выполнению лабораторной работы
- •4.2. Теоретические сведения
- •4.2.1. Общие сведения о процессах и потоках
- •4.2.2. Описание свойств и методов компонента StringGrid
- •4.2.3. Получение информации о процессах и потоках
- •4.3.Задание на лабораторную работу
- •4.4. Отчет по лабораторной работе
3.4. Отчет по лабораторной работе
Отчет по лабораторной работе должен содержать:
– тексты полученных заданий с номером варианта;
– тексты программ с комментариями (в комментариях отобразить изменения содержимого регистров и флагов по ходу выполнения программы).
Кроме отчета и демонстрации работающих программ студент отвечает на вопросы по теоретической части, относящейся к данной лабораторной работе.
4. Лабораторная работа № 6
ПОЛУЧЕНИЕ ОСНОВНЫХ СВЕДЕНИЙ О ЗАПУЩЕННЫХ В СИСТЕМЕ ПРОЦЕССАХ
4.1. Общие методические указания по выполнению лабораторной работы
Цели работы.
Подготовительная часть:
– изучить принципы получения информации о текущих процессах операционной системы;
– освоить методы и средства современных языков программирования для работы с процессами;
– создать программное приложение, позволяющее выводить список процессов и наиболее важную информацию о них в виде таблицы (компонент StringGrid).
Среда выполнения:
Delphi.
4.2. Теоретические сведения
4.2.1. Общие сведения о процессах и потоках
Процессом обычно называют экземпляр выполняемой программы.
Процесс в Windows состоит из следующих компонентов:
– Структура данных, содержащая всю информацию о процессе, в том числе список открытых дескрипторов различных системных ресурсов, уникальный идентификатор процесса, имя, приоритет, количество потоков и т.д.;
– Адресное пространство – диапазон адресов виртуальной памяти, которым может пользоваться процесс;
– Исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.
Процессы рассматриваются операционной системой как заявки или контейнеры для всех видов ресурсов, кроме одного – процессорного времени. Этот важнейший ресурс распределяется операционной системой между другими единицами работы – потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд.
Каждый процесс начинается с одного потока, но новые потоки могут создаваться (порождаться) процессом динамически.
Таким образом, один процесс может владеть несколькими потоками, и тогда они одновременно исполняют код в адресном пространстве процесса. Каждый поток имеет уникальный идентификатор потока, содержимое набора регистров процессора, отражающих состояние процессора и т.д.
4.2.2. Описание свойств и методов компонента StringGrid
Компонент StringGrid представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактируемыми.
Таблица делится на две части – фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть – эта остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки.
Основные свойства компонента StringGrid, определяющие отображаемый текст приведены в таблице 6.
Таблица 6
Основные свойства компонента TStringGrid
Cells[ACol, ARow: Integer]: string |
Строка, содержащаяся в ячейке с индексами столбца и строки ACol и ARow. |
Cols[Index: Integer]: TStrings |
Список строк, содержащихся в столбце с индексом Index. |
Rows[Index: Integer]: TStrings |
Список строк, содержащихся в строке с индексом Index. |
Вывод данных в таблицу осуществляется следующим образом:
StringGrid.Cells[a,b] := 'XXX';
где a – это индекс столбца, b – индекс строки (нумерация начинается с нуля).
Свойства ColCount и RowCount определяют соответственно число столбцов и строк, свойства FixedCols и FixedRows — число фиксированных, не прокручиваемых столбцов и строк. Цвет фона фиксированных ячеек определяется свойством FixedColor. Свойства LeftCol и TopRow определяют соответственно индексы первого видимого на экране в данный момент прокручиваемого столбца и первой видимой прокручиваемой строки.
Свойство ScrollBars определяет наличие в таблице полос прокрутки. Причем полосы прокрутки появляются и исчезают автоматически в зависимости от того, помещается таблица в соответствующий размер, или нет.
Свойство Options является множеством, определяющим многие свойства таблицы: наличие разделительных вертикальных и горизонтальных линий в фиксированных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine и goHorzLine) ячейках, возможность для пользователя изменять с помощью мыши размеры столбцов и строк (goColSizing и goRowSizing), перемещать столбцы и строки (goColMoving и goRowMoving) и многое другое. Важным элементом в свойстве Options является goEditing — возможность редактировать содержимое таблицы.
Среди множества событий компонента StringGrid следует отметить событие OnSelectСell, возникающее в момент выбора пользователем ячейки. В обработчик этого события передаются целые параметры ACol и ARow — столбец и строка выделенной ячейки, и булев параметр CanSelect — допустимость выбора. Параметр CanSelect можно использовать для запрета выделения ячейки, задав его значение false. А параметры ACol и ARow могут использоваться для какой-то реакции программы на выделение пользователя.