- •Ответы на вопросы
- •1.Оценка скорости печати
- •2. Все про многопоточность и многопроцесоррность.
- •2,1 В чем смысл использовать потоки в одном одноядерном процессоре:
- •2,2 Что такое потоки
- •2,3 Доступ к данным разных потоков
- •3 Формат чисел с плавающей запятой
- •4 Почему повышение приоритетов потоков может влиять на степень распараллеливания при вычислении много поточного приложения намногоядернном компе?
- •5 Что такое и для чего numproc,myid. Все об mpi кароч
- •6 (3) Все про регистр cs
- •7 (3,1) Способы адресации
- •8 (4) Типы флешпамяти
- •9 Зачем flash память применяется в процессоре (может на материнской плате)
- •10 Что такое контекст потока и должен ли он отличаться от контекста процесса:
- •11 Что происходит при проверке занятости мьютекса потоком, если мьютекс уже находится в несигнальном состоянии?
- •12 Что такое привязка потоков к ядрам и как она может выполняться?
- •Какие функции реализует применительно к mpi программа smpd
- •В каком случае можно получить выигрыш в быстродействиии при использовании программ, основанных лишь на mpi, лишь на одном компьютере?
- •Ответы на вопросы по билетам
- •В чем смысл использовать потоки в одном одноядерном процессоре:
- •Как программно определить причину произошедшего прерывания в подпрограмме обработки прерывания?
- •Мьютексы Доступ к данным разных потоков
- •Приоритет потоков
- •Формат чисел с плавающей запятой
-
Оценка скорости печати
-
Все про многопоточность и многопроцессорность
-
В чем смысл использовать потоки в одном одноядерном процессоре
-
что такое потоки
-
Доступ к данным разных потоков
-
Формат чисел с плавающей запятой
-
Почему повышение приоритетов потоков может влиять на степень распараллеливания при вычислении много поточного приложения на многоядернном компе?
-
Что такое и для чего numproc,myid. Все об mpi кароч
-
Все про регистр CS
-
Способы адресации
-
Типы flash памяти
-
Зачем flash память применяется в процессоре(может на материнской плате)
-
Что такое контекст потока и должен ли он отличаться от контекста процесса?
-
Что происходит при проверке занятости мьютекса потоком, если мьютекс уже находится в несигнальном состоянии?
-
Что такое привязка потоков к ядрам и как она может выполняться?
-
Какие функции реализует применительно к MPI программа SMPD
-
В каком случае можно получить выигрыш в быстродействиии при использовании программ, основанных лишь на MPI, лишь на одном компьютере?
-
Каким образом реализована в адаптере последовательного канала возможность программного задания скорости обмена?
-
Какие возможности по повышению надежности передачи информации предусмотрены в адаптере, и какие регистры используются для программирования соответствующих функций?
-
Как программно определить причину произошедшего прерывания в подпрограмме обработки прерывания?
-
Каким образом можно прочитать и задать параметры последовательного порта в приложении для ос WIndows Xp/Vista/7?
Ответы на вопросы
1.Оценка скорости печати
Размер в страницах умножаем на количество точек в дюйме (dpi) умножаем все это на размер памяти каждой точки (черно белое 1 бит. С оттенками серого 8 бит) и делим все это на скорость передачи порта
( ( (8,27 * 11,69) * dpi ) * размероднойточкивбитах ) / скорость порта в битах
Порт LPT скорость от 800Кбит\с – 16Мбит\с -- принтеры сканеры
2. Все про многопоточность и многопроцесоррность.
2,1 В чем смысл использовать потоки в одном одноядерном процессоре:
Потоки выполняются в режиме разделения времени. По очереди в течении определенного времени. Это время называется квантом. Использование потоков на одноядерном процессоре может быть оправданно тем, что у каждого потока будет свой квант.
2,2 Что такое потоки
Потоки также называют нитями от англ Thread-нить. Потоки – это часть программы. Которая может выполнятся одновременно с другими частями. Поток можно создать функцией CreateThread() (его обязательно нужно закрыть CloseHandle()) .При наличии двух процессоров процессы могут выполняться одновременно. А именно код одного процесса совсем не будет замечать рядом проходящего другого…….после того как один поток отработал он приостанавливается системой. И запускается другой поток. Который был приостановлен ранее. Переключение поток происходит очень быстро как и процессов. И пользователь не замечает этого переключения.
2,3 Доступ к данным разных потоков
Все потоки процесса делят адресное пространство и выполняют каждый свой код. Но потоки могут выполнять один и тот же программный код.. Может случиться Гонка данных
К одной и той же переменной могут ссылаться несколько потоков. Что может изменить эту переменную. В результате может быть неправильный ответ. Или же завершении работы программы. Чтобы это устранить используют мьютексы (а также критические секции, событие). – это объект синхронизации потоков. Которй создается CreateMutex(). Он показывает сигнальное состояние. Или же “установлен” когда объект не принадлежит ни одному потоку. И наоборот показывает “сброшен” когда объектом уже владеет какая либо нить(поток). Доступ к объекту ращрешиться тогда, когда нить владеющая им освободит его.
3 Формат чисел с плавающей запятой
IEEE754
Расмотрим float тип данных
-
Знак s=0 (положительное число)
-
Порядок E=011111002-12710 = -3
-
Мантисса M = 1.012 (первая единица не явная)
1,01 —следует 1×20 + 0×2-1 + 1×2-2.
1,01e-3 = 1×2-3 + 0×2-4 + 1×2-5 = 1×0,125 + 0×0,0625 + 1×0,03125 = 0,125 + 0,03125 = 0,15625.
F=1 в степени s * (2 в степени (Е-127)) * (1+ (M/(2 в степени 23)))
4 Почему повышение приоритетов потоков может влиять на степень распараллеливания при вычислении много поточного приложения намногоядернном компе?
Увеличивается количество квантов выдаваемых процессором процессу.
5 Что такое и для чего numproc,myid. Все об mpi кароч
MPI позволяет разрабатывать параллельные программы
mpi.h библиотека
Первой вызываемой функцией int MPI_Init ( int *agrc, char **argv );
Последней int MPI_Finalize (void);
количества процессов MPI_Comm_size(comm, *size);
определения ранга MPI_Comm_rank (comm, *rank);
Для передачи сообщения процесс-отправитель должен выполнить функцию:
MPI_Send(……….);
Для приема сообщения процесс-получатель должен выполнить функцию: MPI_Recv(**********)
передачи данных от одного процесса всем процессам программы
MPI_Bcast(******)
MPI_Reduce (*****)
Все Int
MPI_DOUBLE double MPI_FLOAT float MPI_INT int MPI_LONG long MPI_LONG_DOUBLE long double