Ббк 32. 973-018 г рецензент канд физ мат наук, Ф. А. Мурзин


Типичный набор команд языка управления процессами


Download 278.16 Kb.
bet29/68
Sana12.10.2023
Hajmi278.16 Kb.
#1700499
TuriКурс лекций
1   ...   25   26   27   28   29   30   31   32   ...   68
Bog'liq
FIT-Gor-PP3

Типичный набор команд языка управления процессами





SCQ

Описание команды

Примечание

ECHO

Вывод аргументов

Визуализация

PWD

Выводит название текущего рабочего
каталога

LS

Список файлов в текущей директории

CAT | MORE

Просмотр содержимого текстового файла

CD

Сменить директорию

Манипуляции с
файлами

CP

Копировать файлы




MV

Переместить или переименовать файл




RM

Удалить файлы

LN

Создать символическую ссылку

EVAL

Конструирование команды на лету и ее
выполнение

Вычисления

EXEC

Вызов другого процесса

LET

Вычисление выражений

READ

Ввод значения переменной

Установка значений

SET

Изменяет значения внутренних
переменных скрипта

TEST

Проверка условия

TRUE

Возвращает код успешного завершения =
ноль

FALSE

Возвращает код завершения, свидетельствующий о неудаче

Контроль процессов

PS

(print status) список текущих процессов с
их IDs (PID)

Визуализация

FG

Активизировать фоновый или
приостановленный процесс

Управление активностью процессов.

BG

Сделать процесс фоновым. Обратная
функция от fg.

WAIT

Ждет выхода из дочернего процесса

KILL

«Убить» процесс. PID «убиваемого»
процесса даѐт PS

Обозначения:


stdin – стандартный ввод. То, что набирает пользователь в консоли. stdout – стандартный вывод программы.
stderr – стандартный вывод ошибок.
(Expr) – результат вычисления выражения или успех выполнения процесса.
$ – переменная для кода успеха/результата процесса.
$* – все аргументы переданные скрипту(выводятся в строку).
$! – PID последнего запущенного в фоне процесса.
$$ – PID самого скрипта.
NN(d) – список номеров и имѐн элементов очереди [, … ] – очереди процессов.
NULL – пустой файл.
H(d) – голова очереди, точнее – процесс с наивысшим приоритетом. T(d) – хвост очереди, остаток после удаления головы. d = H(d) • T(d). PN – имя текущего процесса.

Таблица 24




Спецификация команд управления процессами





RQ

RQ’

Примечание

e (ECHO String . c) d

→ (e[stdout] | String) e c d

Вывод на стандартное устройство

(e[PWD]=DName) (PWD . c) d

→ (e[stdout] | DName) c d

(e[PWD]=DName) (LS . c) d

→ (e[stdout] | [DName]) c d

e (CAT Fname . c) d

→ (e[stdout] | [Fname]) c d

e (CD New. c) d

→ (e[PWD] := New) c d

Установка
переменной

(e[F1]=Datum)
(cp F1 F2. c) d

→ (e[F1]=Datum; e[F2]=Datum) c d

Ссылка на копию
файла

(e[Fname]=Datum) (RM Fname . c) d

→ (e[Fname]=NULL) c d

Ссылка на пустой
файл

e (EVAL T1 ... TK . c) d

→ e (T1 | ... | TK . c) d = e ($* . c) d

Выполнение скрипта

e (EXEC Fname . c) d

→ e ([Fname] c) d

Выполнение файла

e (TEST Expr . c) d

→ (e[$] := (Expr) ) c d

Проверка успешности

e (TRUE . c) d

→ (e[$] := 0 ) c d

Установка признака
успешности

e (FALSE . c) d

→ (e[$] := 1 ) c d

e[stdin=Text] (READ X . c) d

→ (e[X] := Text ) c d

Прием текста

e (PS . c) d

→ (e[stdout] | NN(d)) c d

Номера процессов

e (BG . c) d

→ e H(d) (T(d) | <$$, e[PN], c >)

Смена
статуса процесса

e (FG Num . c)
(d[Num]=Text)

→ e (Text | c)
(d[Num]:=NULL)

e (KILL Num . c) (d[Num]=Text)

→ e c (d[Num]:=NULL)

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

Фрагменты

Примечание

$ ls doc[c-d]

$ set 0 noclobber


$ cat newletter1 newletter2 >!
Oldletters
$ at 8:15 jobs

Перечень файлов с именами, соответствующими маске Установка системной переменной Управление потоком данных

Назначение времени запуска работ



Пример 13. Пример программы управления заданиями

Внешне языки управления процессами выглядят как нечто среднее между макроассемблерами и языками высокого уровня. Различие проявляется в понимании данных, подвергаемых обработке, и командах, к которым сводятся процессы обработки:



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

  • выполнение команды рассматривается как событие, которое может быть как успешным, так и неудачным. Кроме того, существуют внешние события;

  • реакция на событие программируется как обработчик события, выполняемый независимо от других обработчиков (это отдельный процесс);

  • программа процесса может быть нацелена не на получение результата за конечное время, а на обеспечение непрерывного обслуживания заданий на обработку объектов;

  • процесс может быть активным или отложенным;

  • процессы могут конкурировать за общие объекты;

  • возможна синхронизация процессов и порождение подчиненных процессов;

  • программа процесса выглядит как объект и создается как элемент данных, а потом может применяться равноправно с командами;

  • последовательное расположение команд в программе не считается основанием для их выполнения в точно том же порядке. Выполнение команды может занимать ряд интервалов времени, между которыми выполняются другие команды.

На уровне ОС основная работа сводится к управлению заданиями, нацеленными на эффективную загрузку общего оборудования и других ресурсов. Доступ к общим ресурсам обычно регулируется с помощью очередей запросов на обслуживание имеющихся устройств и ресурсов, не только процессора. Обслуживание носит асинхронный характер. Основной критерий качества – возможность продолжить выполнение заданий без принципиальных потерь информации.
Любая программа при разработке и отладке выполняется на фоне операционной системы, управляющей процессами ввода-вывода данных ради демонстрации хода обработки данных. Поэтому минимальный контекст отлаживаемой программы – стандартный ввод-вывод, доступный по умолчанию. На уровне языка управления процессами активно используются умолчания, раскрываемые в терминах текущих значений или системных переменных. Основное отличие – укрупнение данных, переход от ячеек и строк к долгоживущим файлам. Кроме того, смягчается зависимость от последовательности вызова процессов, времени их инициирования. Переход к проблемам управления процессами влечѐт радикальное изменение понятия «результат». Это не более чем код успеха/провала завершѐнного процесса. Возможен учѐт приоритетов отложенных процессов. Появляются имена, локализованные внутри скриптов.
Таблица 25



Download 278.16 Kb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling