Variant 1088080787.
Рассмотрим C-программу:
#include <stdio.h> main() { float sum=0.0, j=1.0, i=2.0; while (i/j>0.001) { j=j+j; sum=sum+i/j; printf("%f \n",sum); } }
Набор булевых операторов достаточный для выражения произвольной булевой функции называется полным. Какой набор из представленных полным НЕ является?
Рассмотрим компьютерную многопроцессорную архитектуру, где каждый процессор имеет свой собственный кеш, и где все они конкурируют за доступ к системной шине (критическому ресурсу).
Каждый процессор может выполнить одну инструкцию за 500 наносекунд, если инструкция ссылается на закешированные ячейки памяти. Но если происходит кеш-промах, то выполнение инструкций процессором задерживается на дополнительных 2000 наносекунд, причем первую половину этой задержки шина обслуживает запрос, а вторую половину задержки, результат этого запроса помещается в кеш процессора и происходят другие действия, а шина может обслуживать запросы от других процессоров. В среднем, каждая инструкция содержит два указателя на память, а кеш-промахи случаются в 1% указателей.
Какую часть пропускной способности шины использует один процессор, если игнорировать конкуренцию других процессоров?
Для программного фрагмента
p:=1; k:=0; while k<n do begin p:=2*p; k:=k+1; end;
Рассмотрим паскалеобразный фрагмент:
var i,j:integer; procedure P(k,m : integer by reference); begin k:=k-m; m:=k+m; k:=m-k; end; i:=2; j:=3; P(i,j);