- •Лабораторна робота №1 Загальні теоретичні відомості:
- •Питання для самоконтролю:
- •Лабораторна робота №2 Системний реєстр Windows
- •Огляд системного реєстру
- •Скарбниця імен
- •Призначений для користувача модуль
- •Системний блок
- •Загальний модуль
- •Ключі конфігурації
- •Конфігураційні файли win.Ini і system.Ini
- •Питання для самоконтролю:
- •Лабораторная работа №3
- •Основы программирования в операционной системе Windows
- •Вызов функций api
- •Структура окна
- •Принципы построения оконных приложений
- •Структура окна
- •Параметры dwExStyle:
- •Параметры dwStyle :
- •12. Функция ExitProcess :
- •17. Функция BeginPaint:
- •Сообщения, посылаемые списку
- •Вопросы для подготовки к сдаче лабораторной работы.
- •Лабораторная работа №4
- •Язык описания ресурсов
- •Пиктограммы
- •Курсоры
- •Акселераторы
- •Api – функции
- •Вопросы для подготовки к сдаче лабораторной работы.
- •Лабораторная работа №5
- •Типы многозадачности
- •Использование многопоточности в приложениях Delphi
- •Синхронизации потоков
- •Критические секции
- •Пример создания многопоточного приложения в Delphi:
- •Лабораторная работа №6 «Специальные объекты синхронизации»
- •Событие (event)
- •Мьютекс (mutex )
- •Семафор (semaphore)
- •Crytical Sections
Лабораторна робота №1 Загальні теоретичні відомості:
Пакетні файли
Пакетный файл (англ. batch file, в просторечии - пакетник, батник, батничек) - текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа - интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл - аналог shell script в Unix-подобных операционных системах. Пакетные файлы полезны для автоматического запуска приложений. Основная область применения - автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить - обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т.п.
Для виконання даної лабораторної роаботи вам знадоблятся наступні команди та змінні оточення:
Команда чи змінна оточення |
Характеристика |
Ver |
Команда, що виводить назву та версію операційної системи |
Hostname |
Команда, виводом якої є ім'я компьютера |
systeminfo |
Команда, що виводить всю інформацію про систему, у тому числі домен, до якого входить комп’ютер та контроллер домена(“сервер входа в сеть”) |
%systemroot%, %windir% |
Змінні оточення, які містять інформацію про папку, де встановлена ОС |
%username% |
Змінна оточення, в якій знаходится ім'я користувача |
Windows API
API (application programming interface — интерфейс прикладного программирования) ‑ набор подпрограмм, используемых приложениями для запросов и выполнения служб нижнего уровня операционной системой компьютера. Эти подпрограммы обычно выполняют задачи обслуживания, такие как управление файлами и отображение данных.
Часть APIфункций реализуется с помощью программных прерываний.
Программные прерывания – это один из способов перехода на подпрограмму с помощью специальной инструкции процессора , такой как INT в процессорах Intel Pentium , trap в процессорах Motorola , syscall в процессорах MIPS или Ticc в процессорах SPARK .При выполнении команды программного прерывания процессор отрабатывает ту же последовательность действий , что и при возникновении внешнего или внутреннего прерывания , но только происходит это в предсказуемой точке программы – там ,где программист поместил данную команду.
Практически все современные процессоры имеют в системе команд инструкции программных прерываний. Их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур. Это объясняется тем , что разработчики процессора обычно резервируют для обработки прерываний небольшое число возможных подпрограмм , так что длина операнда в команде программного прерывания, который указывает на нужную подпрограмму , меньше , чем в команде перехода на подпрограмму. Другой причиной применения программных прерываний вместо обычных инструкций вызова подпрограмм является возможность смены пользовательского режима на привилегированный одновременно с вызовом процедуры – это свойство программных прерываний поддерживается большинством процессоров.
В результате программные прерывания часто используются для выполнения ограниченного количества вызовов функций ядра операционной системы, то есть системных вызовов.
Системный вызов позволяет приложению обратиться к операционной системе с просьбой выполнить то или иное действие , оформленное как процедура кодового сегмента ОС .
Реализация системных вызовов должна удовлетворить следующим требованиям :
Обеспечивать переключение в привилегированный режим;
Обладать высокой скоростью вызова процедур ОС;
Обеспечивать по возможности единообразное обращение к системным вызовам для всех аппаратных платформ , на которых работает ОС ;
Допускать легкое расширение набора системных вызовов ;
Обеспечивать контроль со стороны ОС за корректным использованием системных вызовов .
Первое требование для большинства аппаратных платформ может быть выполнено только с помощью механизма программных прерываний .
Для обеспечения высокой скорости было бы полезно использовать векторные свойства системы программных прерываний, имеющихся во многих процессорах , то есть закрепить за каждым системным вызовом определенное значение вектора . Приложение при таком способе вызова непосредственно указывает в аргументе запроса значение вектора , после чего управление немедленно передается требуемой процедуре ОС . Однако этот децентрализованный способ передачи управления привязан к особенностям аппаратной платформы , а также не позволяет операционной системе легко модифицировать набор системных вызовов и контролировать их использование.
В большинстве ОС системные вызовы обслуживаются по централизованной схеме , основанного на существовании диспетчера системных вызовов . При любом системном вызове приложение выполняет программное прерывание с определенным и единственным номером вектора . Например , ОС Linuxиспользует для системных вызовов командуINT80h, а ОСWindowsNT-INT2Eh. Перед выполнением программного прерывания приложение тем или иным способом передает операционной системе номер системного вызова, который является индексом в таблице адреса процедур ОС, реализующих системные вызовы. Способ передачи зависит от реализации, например номер можно поместить в определенный регистр общего назначения процессора или передать через стек . Также некоторым способом передаются аргументы системного вызова, они могут как помещаться в регистры общего назначения, так и передаваться через стек или массив , находящийся в оперативной памяти. Массив удобен при большом объеме данных, передаваемых в качестве аргументов, при этом в регистре общего назначения указывается адрес этого массива.
Диспетчер системных вызовов представляет собой простую программу, которая сохраняет содержимое в системном стеке, поскольку в результате программного прерывания процессор переходит в привилегированный режим.
Команда чи змінна оточення |
Характеристика |
|
|
GetComputerName() |
Функція, виводом якої є ім'я компьютера |
|
|
GetWindowsDirectory() |
Функція, яка містить інформацію про папку, де встановлена ОС |
GetUserName() |
Функція, в якій знаходится ім'я користувача |