19.10.2011 |
2:07:33 |
progr. |
bytecode |
байт-код (машинно-независимый код, генерируемый Java-компилятором) |
19.10.2011 |
2:05:19 |
progr. |
bytecode |
байткод (код (набор команд), в который компилируется программа, написанная на языке Java и некоторых версиях Lisp. Он независим от архитектуры конкретного процессора, может быть передан по Сети и исполнен без перекомпиляции на любом компьютере, где имеется интерпретатор виртуальной Java-машины или Java-процессор, т.е. байткод выступает в качестве машинного кода для виртуальной машины. Происхождение термина объясняется тем, что код операции в командах байткода занимает один байт памяти) |
19.10.2011 |
1:58:15 |
progr. |
pseudolanguage |
псевдоязык (= pseudo language; = pseudo-language) близкий к естественному условный язык, не являющийся реальным языком программирования, но удобный для первоначального описания алгоритмов (напр., для ТЗ), после чего алгоритмы программируются уже на обычных ЯВУ. В этом смысле псевдоязык является промежуточным языком (intermediate language) |
19.10.2011 |
1:55:15 |
progr. |
pseudo-code program |
программа на псевдокоде |
19.10.2011 |
1:54:18 |
progr. |
pseudocode |
псевдокод (= p-code; = pseudo code – язык, напоминающий императивный язык программирования и используемый в качестве нотации для описания алгоритмов и/или структуры программы) |
19.10.2011 |
1:50:34 |
progr. |
packed code |
упакованный код |
19.10.2011 |
1:43:12 |
progr. |
IL |
промежуточный язык (сокр. от intermediate language) |
19.10.2011 |
1:43:12 |
progr. |
intermediate language |
промежуточный язык (сокр. IL; 1) язык, в который преобразуется при трансляции программа перед генерацией кода 2) платформно-независимая технология, в которой трансляция исходных текстов программ с разных языков программирования осуществляется в некоторый промежуточный язык, исполняемый затем интерпретатором или компилируемый в машинный код. Используется, в частности, в Java и Microsoft .NET. Существенно сокращает время реализации новых языков программирования и позволяет использовать одни и те же компиляторы для разных процессоров. Промежуточный язык может называться p-code, pseudocode, pseudolanguage или bytecode) |
19.10.2011 |
1:37:20 |
progr. |
just-in-time compilation |
оперативная компиляция (см. just-in-time compiler) |
19.10.2011 |
1:33:49 |
progr. |
just-in-time compiler |
оперативный компилятор (тж. JIT -компилятор; компилятор, преобразующий исходный текст в машинный код непосредственно в процессе исполнения программы. В частности, JIT-компилятор с языка Java оперативно преобразует требуемые фрагменты Java-программы на промежуточном языке (intermediate language, байт-код) в машинный код, исполняемый ЦП, что повышает производительность в 10-15 раз. Однако такой компилятор не имеет возможности выполнять сколько-нибудь серьёзную оптимизацию программы) |
18.10.2011 |
10:28:32 |
progr. |
task deadline |
директивный срок задачи (до которого задача должна обязательно (для систем мягкого реального времени – желательно) выполниться) |
18.10.2011 |
4:15:17 |
progr. |
software increment |
расширение программного обеспечения (напр., на этапе инкрементной интеграции модели жизненного цикла разработки объектно-ориентированного ПО) |
18.10.2011 |
4:15:17 |
progr. |
software increment |
расширение ПО |
18.10.2011 |
4:12:17 |
progr. |
software increment |
наращивание программного обеспечения (напр., на этапе инкрементной интеграции модели жизненного цикла разработки объектно-ориентированного ПО) |
18.10.2011 |
4:12:17 |
progr. |
software increment |
наращивание ПО |
18.10.2011 |
3:19:41 |
progr. |
realization relationship |
отношение реализации (одно из основных отношений (связей) между классами в языке UML) |
18.10.2011 |
3:18:27 |
progr. |
generalization relationship |
отношение обобщения (одно из основных отношений (связей) между классами в языке UML) |
18.10.2011 |
3:17:20 |
progr. |
association relationship |
отношение ассоциации (одно из основных отношений (связей) между классами в языке UML) |
18.10.2011 |
3:16:14 |
progr. |
dependency relationship |
отношение зависимости (одно из основных отношений (связей) между классами в языке UML) |
18.10.2011 |
2:49:32 |
progr. |
focus of control |
фокус управления (понятие, применяемое в языке UML для явного выделения активности объектов. Напр., специальный символ на диаграмме последовательности, указывающий период времени, в течение которого объект выполняет некоторое действие (как непосредственно, так и с помощью подчиненной процедуры)) |
18.10.2011 |
2:42:42 |
progr. |
object lifeline |
линия жизни объекта (в ООП служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех её взаимодействиях) |
18.10.2011 |
1:22:10 |
progr. |
boundary class |
граничный класс (в UML – класс, который располагается на границе системы с внешней средой и непосредственно взаимодействует с актерами, но является составной частью системы) |
18.10.2011 |
0:15:25 |
gen. |
increment |
расширение |
17.10.2011 |
23:50:50 |
progr. |
significant problems |
существенные проблемы |
17.10.2011 |
23:26:36 |
progr. |
incremental prototype |
инкрементный прототип (формируется при каждом расширении на этапе инкрементной интеграции ПО (напр., модели жизненного цикла разработки объектно-ориентированного ПО в методе COMET)) |
17.10.2011 |
4:20:47 |
progr. |
time slicing |
последовательное циклическое предоставление ресурсов |
17.10.2011 |
4:20:47 |
progr. |
time slicing |
"карусель" (проф. жаргон) |
17.10.2011 |
4:15:45 |
progr. |
preemption time |
время вытеснения задачи |
17.10.2011 |
4:13:17 |
progr. |
operating system preemption |
смена ОС (напр., в многоплатформных ВС, поддерживающих работу многих ОС) |
17.10.2011 |
4:13:17 |
progr. |
operating system preemption |
передача управления другой ОС (напр., в многоплатформных ВС, поддерживающих работу многих ОС) |
17.10.2011 |
4:10:08 |
progr. |
preemption |
вытеснение (менее приоритетной задачи) |
17.10.2011 |
4:04:48 |
progr. |
deadline task |
задача с заданным сроком (до которого задача должна обязательно (для систем мягкого реального времени – желательно) выполниться) |
17.10.2011 |
3:54:01 |
progr. |
interrupt latency time |
время задержки обработки прерывания (время между моментом прихода запроса прерывания и моментом, когда он начал обслуживаться соответствующей ISR (Interrupt Service Routine) – процедурой обработки (обслуживания) прерывания) |
17.10.2011 |
3:37:06 |
progr. |
hard deadline |
жёсткий срок завершения (напр., задачи) |
17.10.2011 |
3:35:36 |
progr. |
soft deadline |
мягкий срок завершения (напр., задачи) |
17.10.2011 |
3:32:49 |
progr. |
soft deadline |
мягкий дедлайн (см. deadline) |
17.10.2011 |
3:31:30 |
progr. |
hard deadline |
жёсткий дедлайн (см. deadline) |
17.10.2011 |
3:28:25 |
progr. |
deadline |
срок завершения (чего-либо; о выполнении работы, завершении задачи, конкретного набора вычислений, принятии решения и т.п. Иногда различают жёсткий (hard deadline) и мягкий (soft deadline) сроки завершения задачи) |
17.10.2011 |
3:23:34 |
progr. |
deadline |
крайний назначенный срок (о выполнении работы, завершении задачи, конкретного набора вычислений, принятии решения и т.п. Иногда различают жёсткий (hard deadline) и мягкий (soft deadline) сроки завершения задачи) |
17.10.2011 |
3:23:34 |
progr. |
deadline |
проф. дедлайн (о выполнении работы, завершении задачи, конкретного набора вычислений, принятии решения и т.п. Иногда различают жёсткий (hard deadline) и мягкий (soft deadline) сроки завершения задачи) |
17.10.2011 |
3:18:22 |
progr. |
deadline-driven scheduling |
планирование, управляемое дедлайнами |
17.10.2011 |
3:15:19 |
progr. |
preemptive priority scheduling |
планирование на основе приоритетов, прерывающих обслуживание |
17.10.2011 |
3:10:38 |
progr. |
earliest deadline first |
стратегия диспетчеризации по принципу приоритетного выполнения задачи с ближайшим сроком завершения |
17.10.2011 |
3:10:38 |
progr. |
earliest deadline first |
стратегия EDF |
17.10.2011 |
3:09:17 |
progr. |
earliest deadline first |
"с самым ранним сроком исполнения-первый" (стратегия планирования, согласно которой ЦП всегда в первую очередь выполняет задачу с самым ранним сроком исполнения) |
17.10.2011 |
3:09:17 |
progr. |
earliest deadline first |
алгоритм EDF |
17.10.2011 |
3:03:38 |
progr. |
round-robin scheduling |
циклическая диспетчеризация |
17.10.2011 |
2:57:35 |
progr. |
mutex locks |
взаимоисключающие блокировки |
17.10.2011 |
2:53:53 |
progr. |
conditional variables |
условные переменные |
17.10.2011 |
2:50:51 |
progr. |
mispredicted |
непредсказанный |
17.10.2011 |
2:46:58 |
progr. |
branch misprediction |
ошибочное прогнозирование ветви (исполняемой параллельной программы) |
17.10.2011 |
2:45:50 |
progr. |
misprediction penalties |
накладные расходы на перезагрузку конвейера в случае ошибочного предположения о ветвлении |
17.10.2011 |
2:43:26 |
progr. |
misprediction |
неверное прогнозирование (в конвейерном процессоре (pipeline processor) с прогнозированием ветвлений – неправильная "догадка": если ветвление предполагалось, но не произошло, или наоборот. При этом приходится перезагружать конвейер, нести дополнительные накладные расходы (misprediction penalties)) |
17.10.2011 |
2:43:26 |
progr. |
misprediction |
ошибочное прогнозирование |
17.10.2011 |
2:43:26 |
progr. |
misprediction |
ошибка прогнозирования |
17.10.2011 |
2:38:38 |
progr. |
data-dependent branch |
переход, зависящий от данных (такие переходы не могут быть заранее предсказаны и потому вызывают необходимость перезагрузки конвейера) |
17.10.2011 |
2:34:45 |
progr. |
instruction length |
длина машинной команды (в CISC-процессорах набор команд содержит команды разной длины. Для удобства выборки в современных ЦП длины команд обычно кратны длине байта, поэтому обычными размерами команд являются 1, 2, 3, 4, 6 и 8 байтов. В процессорах 80х86 длины команд варьируются от 1 до 15 байтов) |
17.10.2011 |
2:31:03 |
progr. |
fetch packet |
пакет выборки (в современных процессорах с конвейерной обработкой команд выборка производится не по одной команде, а пакетом из восьми и более машинных команд) |
17.10.2011 |
2:26:09 |
progr. |
instruction cycle |
цикл исполнения команды (1) последовательность шагов ЦП для исполнения команды. Обычная схема исполнения состоит из пяти шагов: выборка (fetch), декодирование (instruction decoding), выборка операндов (operand fetch), исполнение команды (ALU operation), запись результата (result writeback). Syn: fetch-execute cycle 2) время, затрачиваемое центральным процессором на исполнение одной команды. Зависит от быстродействия ОЗУ, тактовой частоты, разрядности (ширины) шины данных и архитектуры процессора) |
17.10.2011 |
2:21:43 |
progr. |
fetch-execute cycle |
цикл выборка-исполнение (цикл, описывающий основные стадии обработки машинной команды ЦП. Syn: instruction cycle) |
17.10.2011 |
2:19:38 |
progr. |
fetch cycle |
цикл выборки (первая стадия обработки машинной команды процессором – извлечение команды из кэш-памяти или из ОЗУ в регистр команд (instruction register) и подготовка её к декодированию) |
17.10.2011 |
2:17:41 |
progr. |
prefetcher |
блок опережающей выборки команд (узел конвейерного процессора) |
17.10.2011 |
2:14:33 |
progr. |
prefetcher |
устройство предвыборки (в современных микропроцессорах – устройство упреждающей (опережающей) выборки команд, осуществляемой в свободные такты шины. Это повышает производительность процессора, сокращая время его ожидания поступления следующей команды. Упреждающая выборка делается на основании предположений о порядке исполнения программы (см. branch prediction ), однако если предсказание не сбылось, то выбранные команды не используются. Так как выборка команд из сравнительно медленного ОЗУ занимает достаточно много времени, поэтому кроме упреждающей выборки используется кэширование команд и данных) |
17.10.2011 |
2:10:01 |
progr. |
control dependence |
зависимость по управлению (используется во многих компиляторах – это зависимость, направленная от оператора if к операторам, находящимся под его управлением. Отношения зависимости по управлению часто добавляют к графу зависимостей по данным, чтобы выяснить, какие операторы программы можно переупорядочить) |
17.10.2011 |
2:06:10 |
progr. |
pipeline stall |
сбой последовательности выполнения команд с конвейерной передачей данных |
17.10.2011 |
2:06:10 |
progr. |
pipeline stall |
проф. остановка конвейера |
17.10.2011 |
2:03:49 |
progr. |
pipeline bubble |
конвейерный пузырь (снижение производительности конвейера (pipeline stall) при возникновении конфликта – структурного (занятость ресурса), по данным (выполнение очередной команды зависит от результата предыдущей) или по управлению (появление команд переходов). В результате таких конфликтов ступень конвейера получает на обработку не реальную машинную команду, а нечто фиктивное, именуемое конвейерным пузырём. Он последовательно проходит по ступеням конвейера, занимая место, но не выполняя никакой полезной работы) |
17.10.2011 |
2:01:11 |
progr. |
output dependence |
выходная зависимость (по данным; ситуация при исполнении программы, когда один оператор присвоил значение переменной, после чего второй оператор присваивает переменной новое значение, – и поэтому первый оператор должен исполняться до второго) |
17.10.2011 |
1:58:35 |
progr. |
flow dependence |
потоковая зависимость (см. true dependency) |
17.10.2011 |
1:58:35 |
progr. |
flow dependence |
потоковая зависимость по данным |
17.10.2011 |
1:56:28 |
progr. |
true dependency |
истинная зависимость (в конвейерных процессорах – ситуация, при которой результат выполнения одной команды служит исходной информацией для другой. Отношения зависимости по данным анализируются компилятором, чтобы определить, когда две операции, два оператора или две итерации цикла можно использовать параллельно (распараллелить их обработку). Syn: flow dependence) |
17.10.2011 |
1:56:28 |
progr. |
true dependency |
потоковая зависимость (в конвейерных процессорах – ситуация, при которой результат выполнения одной команды служит исходной информацией для другой. Отношения зависимости по данным анализируются компилятором, чтобы определить, когда две операции, два оператора или две итерации цикла можно использовать параллельно (распараллелить их обработку). Syn: flow dependence) |
17.10.2011 |
1:47:15 |
progr. |
loop unrolling |
разворачивание цикла (тж. развёртывание цикла; реализуемый в компиляторах метод оптимизации, согласно которому тело цикла (loop body) многократно размножается (цикл превращается в линейную последовательность команд), условие выхода из цикла и оператор приращения счётчика цикла (loop counter) соответствующим образом модифицируются. Развёртывание цикла ускоряет исполнение программы, поскольку сокращает каждый цикл на несколько команд, однако объём памяти, занимаемый программой, значительно увеличивается. Если число повторений цикла известно в момент компиляции, цикл может быть развёрнут полностью, однако это имеет смысл лишь для небольших циклов. Syn: loop unwinding) |
17.10.2011 |
1:44:12 |
progr. |
loop splitting |
расщепление цикла (реализуемый в компиляторах метод оптимизации, предусматривающий копирование цикла и распределение исходных итераций между двумя копиями с сохранением порядка итераций. Частный случай раскрутки цикла (loop unrolling)) |
17.10.2011 |
1:44:12 |
progr. |
loop splitting |
расщепление циклов |
17.10.2011 |
1:40:56 |
progr. |
loop blocking |
разбиение цикла на блоки (реализуемый в компиляторах метод оптимизации, предусматривающий разделение пространства итерации (iteration space) цикла на небольшие (оптимальные по размеру) части, или блоки, чтобы данные, обрабатываемые в цикле, могли оставаться в кэше до момента их повторного использования. Такой подход обеспечивает повышение скорости выполнения циклов определённых типов, а также увеличение эффективности использования кэша, позволяет работать с кэшем меньшего размера. Syn: loop tiling) |
17.10.2011 |
1:38:26 |
progr. |
loop inversion |
инверсия цикла (метод оптимизации программы, предусматривающий преобразование компилятором стандартного цикла while в цикл do/while. Syn: repeat/until с условным выражением if, благодаря чему вдвое уменьшается число передач управления для случаев, когда цикл выполняется. Правда, при таком подходе размер кода увеличивается за счёт дополнительных проверок условия, однако эффективность всё равно повышается, поскольку передачи управления обычно вызывают перезагрузку конвейера) |
17.10.2011 |
1:38:26 |
progr. |
loop inversion |
обратное преобразование цикла |
17.10.2011 |
1:38:26 |
progr. |
loop inversion |
обращение цикла |
17.10.2011 |
1:33:25 |
progr. |
loop distribution |
разделение цикла (в параллельном программировании) |
17.10.2011 |
1:31:42 |
progr. |
loop distribution |
распределение циклов (реализуемый в компиляторах метод оптимизации, согласно которому вложенные циклы заменяются простыми таким образом, что все вычисления осуществляются только в теле самого внутреннего цикла. Распределение циклов может повысить эффективность программного кода за счёт сокращения числа обращений к памяти во время итераций и уменьшения числа перезаписей кэша (cache thrashing)) |
17.10.2011 |
1:23:52 |
progr. |
loop fusion |
объединение циклов (тж. слияние циклов; реализуемый в компиляторах традиционный метод оптимизации, согласно которому тела двух или более смежных циклов объединяются. Это преобразование используется при создании секционированного кода для векторных машин (см. vector processor), а также для уменьшения времени исполнения заголовков циклов (loop header) при обычной оптимизации. Сокращает общее время доступа к основной памяти и регистрам. Syn: loop merging, loop jamming. Ant: loop fission) |
17.10.2011 |
1:19:40 |
progr. |
loop interchange |
перестановка циклов (метод оптимизации, согласно которому вложенные циклы меняются местами таким образом, чтобы внешний цикл был удобен для дальнейшей параллелизации, а внутренний способствовал оптимальному доступу к памяти при работе с элементами массива. Эффективность подобного подхода зависит от архитектуры кэш-памяти компьютера и модели массива, используемой компилятором) |
17.10.2011 |
1:17:22 |
progr. |
loop transformation |
преобразование циклов (в программировании и компиляции – ряд способов оптимизации циклов, которые играют важную роль в повышении быстродействия при работе с кэшами и эффективности использования возможностей параллельной обработки. В число наиболее распространённых преобразований циклов входят: перестановка (порядка вложенных) циклов (loop interchange), слияние циклов (loop fusion), разложение циклов (loop fission), распределение циклов (loop distribution), инверсия цикла (loop inversion), разбиение цикла (loop tiling , loop blocking) и др.) |
17.10.2011 |
1:17:22 |
progr. |
loop transformation |
трансформация циклов (в программировании и компиляции – ряд способов оптимизации циклов, которые играют важную роль в повышении быстродействия при работе с кэшами и эффективности использования возможностей параллельной обработки. В число наиболее распространённых преобразований циклов входят: перестановка (порядка вложенных) циклов (loop interchange), слияние циклов (loop fusion), разложение циклов (loop fission), распределение циклов (loop distribution), инверсия цикла (loop inversion), разбиение цикла (loop tiling , loop blocking) и др.) |
17.10.2011 |
1:12:49 |
progr. |
loop optimization |
оптимизация структуры циклов (реализуемые в компиляторах методы, направленные на повышение скорости выполнения программных циклов. Поскольку, напр., в программах научных расчётов, циклы занимают значительную (иногда подавляющую) часть времени вычислений, для их преобразований с целью повышения эффективности исполнения разработано много методов анализа и оптимизации) |
17.10.2011 |
1:10:28 |
progr. |
compiler optimization |
оптимизация при компиляции (один из этапов компиляции, на котором с помощью методов оптимизации происходит преобразование программы, сохраняющее её семантику, но уменьшающее размер кода и/или время выполнения. Как правило, уменьшение размера кода увеличивает время выполнения, и наоборот. Поскольку ручная оптимизация программы стоит дорого и занимает много времени, а программисты, работающие на ЯВУ, обычно не знают тонкостей архитектуры конкретного целевого процессора, то сейчас кроме редких случаев используется оптимизация при компиляции, когда компилятор автоматически выбирает наиболее эффективный способ оптимизации и детали реализации в соответствии с заданным уровнем оптимизации) |
17.10.2011 |
1:07:55 |
progr. |
antidependence |
антизависимость (по данным; ситуация при исполнении программы, когда один оператор использует "старое" значение переменной, прежде чем второй оператор присвоит переменной новое значение, – и поэтому он должен исполняться до второго оператора) |
17.10.2011 |
1:06:34 |
progr. |
dependency checking logic |
схемы проверки зависимости по данным (в векторных и конвейерных процессорах перед распараллеливанием исполнения выполняется аппаратная проверка операндов команд на зависимость от предыдущих операций) |
17.10.2011 |
1:02:14 |
progr. |
pipeline stall |
потеря скорости конвейера (снижение производительности процессора из-за перезагрузки конвейера (pipeline break) либо ожидания, связанного с зависимостями команд по данным (data dependency)) |
17.10.2011 |
1:02:14 |
progr. |
pipeline stall |
замедление конвейера (снижение производительности процессора из-за перезагрузки конвейера (pipeline break) либо ожидания, связанного с зависимостями команд по данным (data dependency)) |
17.10.2011 |
0:56:55 |
progr. |
pipeline break |
остановка конвейера (задержка в конвейерном процессоре, связанная с переходом на ветвь программы, когда требуется загрузка новой группы команд вместо исполнявшихся) |
17.10.2011 |
0:55:42 |
progr. |
pipeline break |
приостановка конвейера (при передаче управления в программе подготовленные к выполнению загруженные команды удаляются и загружаются команды новой ветви программы. Syn: pipeline flush) |
17.10.2011 |
0:55:42 |
progr. |
pipeline break |
перезагрузка конвейера (при передаче управления в программе подготовленные к выполнению загруженные команды удаляются и загружаются команды новой ветви программы. Syn: pipeline flush) |
17.10.2011 |
0:52:29 |
progr. |
instruction prefetch |
упреждающая выборка команд (выборка в специальный буфер процессора нескольких очередных команд во время выполнения текущей команды. Это минимизирует время ожидания процессором поступления следующей команды, кроме того, поскольку все современные процессоры обладают конвейерной архитектурой, то выбранные команды декодируются и исполняются на разных ступенях конвейера. Упреждающая выборка тесно связана с блоком предсказаний ветвлений программы) |
17.10.2011 |
0:50:28 |
progr. |
branch prediction |
предсказание ветвлений (метод повышения производительности, используемый в процессорах с суперскалярной архитектурой (напр., Pentium), заключающийся в опережающей выборке (instruction prefetch) и исполнении процессором команд программы по результатам предсказания адресов переходов, содержащихся в выбранном в текущий момент фрагменте кода. Механизм статистического предсказания переходов обычно включает в себя таблицу с адресами уже происшедших ветвлений и обеспечивает точность предсказания до 90-95%. В случае неверного предсказания результат опережающего вычисления, хранящийся в отдельном буфере, аннулируется и происходит выборка нужной ветви программы) |
17.10.2011 |
0:50:28 |
progr. |
branch prediction |
прогнозирование ветвлений |
17.10.2011 |
0:44:43 |
progr. |
Very Long Instruction Word |
архитектура процессора с командными словами очень большой длины (в такой команде объединено несколько обычных команд (более короткой длины), которые для повышения быстродействия выполняются одновременно (параллельно) разными функциональными блоками процессора. Рост производительности достигается за счёт того, что процессору не нужно тратить время на организацию параллелизма на уровне команд (см. ILP). Группирование параллельно исполняемых операций выполняется компилятором. Таким образом, характеристики компьютера будут сильно зависеть от качества компилятора, а ручная оптимизация программы очень сложна. VLIW-архитектуру предложил в 1979 г. сотрудник Йельского университета Дж. Фишер) |
17.10.2011 |
0:44:43 |
progr. |
Very Long Instruction Word |
архитектура процессора со сверхдлинным командным словом |
17.10.2011 |
0:44:43 |
progr. |
Very Long Instruction Word |
архитектура VLIW |