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

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

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

2021-01-31 75
Типичный набор команд языка управления процессами 0.00 из 5.00 0 оценок
Заказать работу

SCQ Описание команды Примечание

Манипуляции с контекстом

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

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

PWD Выводит название текущего рабочего ка- талога
LS Список файлов в текущей директории
CAT | MORE Просмотр содержимого текстового файла
CD Сменить директорию

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

CP Копировать файлы
MV Переместить или переименовать файл
RM Удалить файлы
LN Создать символическую ссылку

 
Продолжение т абл. 21

 

SCQ Описание команды Примечание

Выполнение процессов

EVAL Конструирование выражения на лету и его выполнение

Вычисления

LET Вычисление выражений
READ Ввод значения переменной

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

SET Изменение значения внутренних пере- менных скрипта
TEST Проверка условия

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

PS (print status) список текущих процессов с их IDs (PID) Визуализация
FG Активизировать фоновый или приоста- новленный процесс

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

BG Сделать процесс фоновым. Обратная функция от fg
EXEC Вызов другого процесса
WAIT Ждет выхода из дочернего процесса

Оценка результатов

TRUE Возвращает код успешного завершения = ноль
FALSE Возвращает код завершения, свидетель- ствующий о неудаче
KILL «Убить» процесс. PID «убиваемого» процесса дает PS

 

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

stdin – стандартный ввод. То, что набирает пользователь в консоли; stdout – стандартный вывод программы;

stderr – стандартный вывод ошибок;

(Expr) – результат вычисления выражения или успех выполнения процесса;

$ – переменная для кода успеха/результата процесса;

$* – все аргументы переданные скрипту(выводятся в строку);

$! – PID последнего запущенного в фоне процесса;

$$ – PID самого скрипта;

NN(d) – список номеров и имен элементов очереди; [<Num, Name, Text>, … ] – очереди процессов; NULL – пустой файл;

H(d) – голова очереди, точнее – процесс с наивысшим приоритетом; T(d) – хвост очереди, остаток после удаления головы;

d = H(d) • T(d). PN – имя текущего процесса.


 

 

Таблица 22

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

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. Пример программы управления заданиями


 

 

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

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

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

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

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

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

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

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

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

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

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

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


 
 

 


к проблемам управления процессами влечет радикальное изменение понятия

 
«результат». Это не более чем код успеха/провала завершенного процесса. Возможен учет приоритетов отложенных процессов. Появляются имена, ло- кализованные внутри скриптов.

Таблица 23


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.