Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Проектирование операционных систем] - Курс лек....doc
Скачиваний:
22
Добавлен:
14.11.2018
Размер:
347.14 Кб
Скачать

Интерфейс пользователя

Интерфейс пользователя используется для организации общения ЭВМ с пользователем. Средства интерфейса:

  • Команды, командные языки.

  • Графический интерфейс.

Командный интерфейс

Обязательно присутствует командный интерфейс в операционных системах? допускающих пакетное выполнение заданий.

Команды бывают двух типов:

  • Встроенные команды.

  • Исполняемые файлы.

Примеры командных файлов из операционных систем

  1. OS/VS

//JOBNAME JOB (8,K4),'Иванов',CLASS=H,TIME=10

//       EXEC ASMFCLG,COND.LKED=(6.LE.ASM)

//ASM.SYSIN DD *

...... текст программы ....

/*

//GO.SYSIN DD *

... исходные данные ...

/*

//

  1. Эльбрус

_НАЧАЛО

_Ф64 КОД:=ГЕНФАЙЛ(БАРАБАН,ДЛИНСВС:10);

_ЕСЛИ АВТОКОД(_ТФАЙЛ

!***!

... текст программы ...

,0,КОД)<5

_ТО ПРОГР(КОД) ()

_ВСЕ

_КОНЕЦ

3. Vm, os/2: rexx (пример аналога команды unix Grep)

/* grep */

address command /* все что не расспознано как синтаксис языка, распознается как терминальная комманда */

parse upper arg target files /* разбор переданных аргументов (разобрать, прописными, аргументы, цель поиска, список фалов*/

if target=”” then do /* нет цели поиска*/

say “Target not specified”

exit 100

end

“MAKEBUF” /* комманда операционной системы. Создание буффера в стеке. */

“LISTFILE” files “(STACK” /* выводится информация о файлах в стек. */

SRC=RC /* RC – код возврата */

if SRC<>0 then do /* командна LISTFILE завершилась неуспешно */

“DROPBUF”

exit SRC

end

do queued() /*количество строк в стеке (кол-во файлов) */

parse upper pull file /* pull – стек */

old=queued()

“MAKEBUF”

“EXECIO * DISKR” file /* выполнение ввода/вывода из командных файлов. * - считать все до конца. DISKR – команда чтения */

do queued() - old /* для всех считанных строк */

parse pull line /* вытаскиваем строку */

if index(line, target) > 0 then /* если цель посика входит в строку */

say file”: “ line

end

“DROPBUF” /* сброс уровня стеков */

end

“DROPBUF”

exit 0

4. UNIX, Korn-Shell

# копирование каталога

Copy_Dir_Struct() { #функция

typeset SOURCE TARGET LIST ENTRY #Объявление переменных

SOURCE=$1 #присвоение параметров

TARGET=$2

mkdir -m 755 $TARGET 2>>/dev/null # Создать каталог

if [ $? != 0 ]; then #проверка кода возврата

echo “Cannot create ${TARGET}”

exit 1

fi

LIST = `ls ${SOURCE}` #присваевает переменной LIST результат выполнения команды в обратных апострофах.

for ENTRY in LIST # Для каждого элемента ENTRY в списке LIST

do

if [ -d ${SOURCE}/${ENTRY} ] # если каталог

then

Copy_Dir_Struct “${SOURCE}/${ENTRY}” “${TARGET}/$[ENTRY}” 2>>/dev/null #рекурсивно копируем подкатолог

else

cp “${SOURCE}/${ENTRY}” “${TARGET}/ENTRY” 2>>/dev/null

if [ $? != 0 ]; then exit 1; fi

fi

done

}

Copy_Dir_Struct $1 $2

Графический интерфейс

GUI транслирует действия пользователей в команды системы.

Во всех системах графический интерфейс является объектно-ориентированным.

Впервые GUI появился на тн. LISP-машинах. Функции языка LISP рассматривались как инструкции.

Основные понятия gui

  • Окно – прямоугольник отображающий данные приложения

  • Рабочий стол – окно самого верхнего уровня.

  • Уровень окна - ....

  • Активное (текущее) окно – окно верхнего уровня того приложения с которым работает пользователь, обычно обладает фокусом ввода.

  • Фокус ввода

  • Диалоговое окно – окно специального назначения, предназначенное для выполнение некоторого действия.

  • Модальное диалоговое окно – диалоговое окно не позволяющее пользователю делать что либо, пока он не произведет действия с диалогом.

Элементы интерфейса (вариации окон)

  • Меню.

  • Панель инструментов.

  • Строка состояния.

  • Шкала прокрутки (scroll).

  • Закладки листов (tab control).

  • Кнопки, переключатели.

  • Списки.

  • Текстовые поля.

  • Статичный текст.

Дисциплины

Дисциплина – набор правил.

Очередь – упорядоченный перечень запросов.

Назначение дисциплин:

  • Формирование очереди.

  • Обслуживание очереди.

По способу назначения приоритетов дисциплины делятся на:

  • Статические - приоритеты неизменны и назначены заранее.

  • Динамические – приоритеты могут изменяться и назначаются по ходу работы.

Обслуживание в порядке поступления (FIFO)

  • Заявки поступают в конец очереди.

  • Заявки на обслуживание поступают из начала очереди.

  • Заявка обслуживается до удовлетворения.

Обслуживание в порядке обратном поступлению (LIFO)

  • Заявки поступают в конец очереди.

  • Заявки на обслуживание поступают из конца очереди.

  • Заявка обслуживается до удовлетворения.

Круговой циклический алгоритм (развитие FIFO)

  • Ресурс предоставляется процессам порциями.

Многоочередные дисциплины

Являются аналогом кругового циклического алгоритма с учетом некоторых свойств запросов.

Прерывания – основа многозадачности.

Прерывания – способ оповещения выполняющейся программы об изменениях, произошедших вне нее. Выделяют такие прерывания, как:

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

  • Прерывания, связанные с синхронизацией параллельных процессов.

При этом каждый класс прерываний имеет собственный приоритет.

В IBM System 370 существует 6 классов прерываний

  • Внешние. (Средства отсчета времени, другие ЦПУ и другие Вычислительные Машины)

  • Ввод/Вывод. (Внешние устройства, устройства управления, устройства ввода/вывода)

  • Программные прерывания. (Особые случаи при выполнении программ)

  • Прерывание по обращению к супервизору. (команда обращения к супервизору)

  • Прерывание от схем контроля (Схемы контроля вычислительной машины)

  • Прерывание повторного пуска. (Кнопка повторного пуска и другие процессоры многопроцессорного комплекса)