АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Число генерируемых процессов

Читайте также:
  1. C. Число элементов в операции
  2. Анализ переходных процессов.
  3. высокоэффективных химико-технологических процессов.
  4. За период работы с 11 по 20 число – до 22 числа; В ОФИС ВЛЕЧЕТ НЕОПЛАТУ
  5. Задание 10. Степень участия в памяти ассоциативных процессов.
  6. Итоги 1990-2000-х годов: возвращение России в число мировых экономических держав
  7. Классификация новаций, инноваций и инновационных процессов.
  8. Когда Вы расширили число приемов до 30?
  9. Методика изучения числовых систем
  10. Множественное число существительных
  11. Найбільші природні катастрофи та число їх жертв
  12. Нуклони. Заряд і масове число. Ізотопи

Когда выполняется большое число коротких команд, то действи-

тельное время выполнения может быть значительно увеличено за счет

создания вспомогательных процессов. Процедурами, для которых тре-

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

ются процедуры, в которых выполняется много циклов и которые ге-

нерируют командные последовательности, которые должны интерпрети-

роваться другим Shell.

Если вас беспокоит эффективность выполнения, вам надо знать,

какие команды являются встроенными в Shell, а какие нет. Ниже

приводится список всех встроенных команд:

break, case, cd, continue, echo, eval, exec, exit, export, for, if, read,

readonly, return, set, shift, test, times, trap, umask, until,

wait, while,.,:, {}

Обычные скобки () также являются встроенной командой, но ко-

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

Shell разветвляется. Все остальные команды, не указанные в спис-

ке, являются внешними (требуют fork и exec).

Пользователь должен всегда хотя бы приблизительно знать число

процессов, генерируемых процедурой. Для всех приведенных ранее

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

сов может быть оценено по формуле:

число процессов = (k*n) + c

где k и с - это константы, а n может быть количеством аргументов

процедуры, количеством строк во входном файле, количеством файлов

в каталоге и т.п. Повышение эффективности обычно достигается за

счет уменьшения константы k.

В качестве примера проанализируем процедуру с именем split,

чей текст проведен ниже:

:

# split

trap 'rm temp$$; trap 0; exit' 0 1 2 3 15

start1=0 start2=0

b='[A-Za-z]'

cat > temp$$

# read stdin into temp file

# save original lengths of $1,$2

if test -s "$1"

then start1=`wc -l < $1`

fi

if test -s "$2"

then start2=`wc -l < $2`

fi

grep "$b" temp$$ >> $1

# lines with letters onto $1

grep -v "$b" temp$$ | grep '[0-9]' >> $2

# lines without letters onto $2

total=" `wc -l< temp$$` "

end1=" `wc -l< $1` "

end2=" `wc -l< $2` "

lost=" `expr $total - \($end1 - $start1\)\

- \($end2 - $start2\)` "

echo "$total read, $lost thrown away"

Для каждой итерации в цикле имеется одна команда expr и либо

команда echo или другая команда expr. Еще одна дополнительная ко-

манда echo выполняется в конце процедуры. Если n - число строк на

вводе, то количество процессов равно 2*n+1.

Некоторые разновидности процедур не следует писать на

Shell 'е. Так, например, если с каждым символом файла связан один

или несколько процессов, хорошим решением будет перенос процедуры

на язык Си. Shell -процедуры не следует использовать для посим-

вольного сканирования или посимвольного формирования файлов.


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



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