Текстовый режим диалога пользователя

В текстовом режиме пользователь имеет в своем распоряжении систему команд ОС и вводит команды с клавиатуры в командной строке. Команда имеет строго определенный формат, изменение которого приводит к ошибке. Команды могут вводиться не только в интерактивном режиме с терминала, но и считываться с командного файла, содержащего некоторую последовательность команд. Специальный модуль ОС – командный процессор или интерпретатор команд – обеспечивает диалог пользователя в текстовом режиме, а именно:

- считывает и анализирует строку, которую ввел пользователь;

- имеет средства для редактирования строки;

- проверяет наличие ошибок и выдает соответствующее сообщение;

- определяет имя программы, аргументы для выполнения программы и запускает ее на выполнение;

- позволяет пользователю использовать метасимволы в командной строке ( * и ? );

- выполняет командные файлы;

Командный процессор входит в состав подсистемы окружения ОС и работает в пользовательском режиме. Для удобства пользователя может применяться цветовое оформление информации.

 

Графический режим диалога пользователя

Графический интерфейс пользователя (GUI, Graphical User Interface) более удобный и простой для пользователя. Разработан в начале 80 – ых годов для компьютера Macintosh, с 85 года стал основным интерфейсом ОС WINDOWS. Графический интерфейс состоит из 4 основных элементов – окно, пиктограмма, меню и указывающее устройство. WIMP – Windows, Icons, Menus, Pointing device. Окна – прямоугольные участки экрана, используемые для запуска программ, пиктограммы – небольшие картинки, щелкнув по которой можно вызвать какое – либо действие, меню – список действий, из которого можно выбрать одно. Указывающее устройство – мышь, применяется для перемещения курсора по экрану.

Программное обеспечение графического интерфейса может быть включено в состав ОС (WINDOWS), либо быть выполнено как приложение (X Window UNIX).

Файловые менеджеры

Промежуточное положение занимает особый класс программ «Файловые менеджеры»- это программы, которые имеют графический интерфейс и ориентированы на выполнение команд с использованием клавиатуры, а не мыши. Информация о файлах и каталогах отображается в виде двух панелей, для перехода используется клавиши “TAB”, информация может быть представлена в кратком формате (только имена) или в полном формате (имена, длина, дата создания и т.д.).

Первая такая программа Norton Commander была разработана для упрощения работы пользователя в ОС MS DOS.

Для выполнение команд используются функциональные клавиши, горячие клавиши и меню. Выбор группы файлов осуществляется клавишей «Insert», либо клавишей «Серый плюс» по маске.

Назначение функциональных клавиш

F1 Помощь F6 Переименование / перемещение
F2 Вызов меню пользователя F7 Создание нового каталога
F3 Просмотр файла F8 Удаление
F4 Редактирование файла F9 Вызов основного меню
F5 копирование F10 Выход их программы

В настоящее время разработано много программ данного класса – Norton commander, Volkov Commander, FAR, Windows commander, Manager commander.

 

Системные вызовы

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

 

Системный вызов имеет вид READ ( fd, buffer, nbytes)

fd – системное имя файла

buffer – адрес области ОП, куда следует прочитать данные

nbytes – количество байт, которые необходимо прочитать

 

Оперативная память

пространство      
пользователя   Возврат управления приложению Библиотечная процедура read
    Переключение в режим ядра
    Вызов библиотечной процедуры
       
       
    Вызов Read (fd, buffer, nbyte) приложение
    Передача параметров  
       
Системная      
Область   Обработчик системных вызовов  
ядра      

Системный вызов выполняется за несколько шагов:

1. Вызывается библиотечная процедура, как правило, с тем же именем, которой передаются необходимые параметры;

2. Библиотечная процедура передает номер системного вызова процессору;

3. Выполняется переключение из режима пользователя в режим ядра;

4. По номеру системного вызова определяется соответствующий обработчик системного вызова;

5. Выполняются необходимые действия;

6. Управление передается назад библиотечной процедуре;

7. Управление передается приложению на следующую команду.

 

Возможности ОС доступны программисту в виде набора функций, который называется интерфейс прикладного программирования(Application Programming Interface, API).

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

Реализация системных вызовов должна отвечать следующим требованиям:

1. Обеспечивать переключение в режим ядра (привилегированный режим);

2. Обладать высокой скоростью вызова процедур ОС;

3. Обеспечить одинаковое обращение к системным вызовам для всех аппаратных платформ, на которых работает ОС;

4. Допускать расширение набора системных вызовов;

5. Обеспечивать контроль со стороны ОС за корректным использованием системных вызовов

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

В состав ОС входит специальный модуль диспетчер системных вызовов, который по номеру системного вызова определяет адрес его обработчика в ОП. Все адреса обработчиков занесены в специальную таблицу – «Таблица прерываний системы».

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

 

В ОС Windows системные вызовы и библиотечные процедуры разделены. Корпорацией Microsoft определен набор процедур – WIN32 API (Application Program Interface – интерфейс прикладного программирования), который доступен программисту при разработке приложений. Количество системных вызовов достаточно большое, более 1000.

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

Библиотечные процедуры для обработки системных вызовов в Windows называются динамические библиотеки и входят в подсистему окружения ОС Windows.

Набор системных вызовов не опубликован, но фирма Microsoft гарантирует, что этот набор будет только добавляться. Тем самым гарантируется совместимость приложений созданных для разных версий Windows, но не MS DOS.Для каждого системного вызова существует своя библиотечная процедура, обычно с тем же именем. Системные вызовы UNIX построены на основе стандарта POSIX, определено около 100 вызовов. Стандарт POSIX определяет минимальный набор системных вызовов, который должны поддерживать совместимые системы UNIX, и другие ОС, в том числе Windows.