информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetЗа кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Еще один велеколепный миф... 25.02.02 20:05  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
приказал долго жить.
Итак простейший код (кстати поднимал тут похожий вопрос):

int x;

f1( )
{
x = 0;
RunThread_f2( );

x=1;
}

f2( )
{
int mith;
mith = x;
}

Вобщем всегда лепил в таком коде объекты синхронизации, дабы mith "не оказался непонятно чем". А вот вчера подумал и понял, что он может быть только либо 1 либо 0. Не может у нас быть переключение задач во время mov, ни как не может. А я не знаю ни одного компилятора который бы целое число перемещал побайтно. Значит это будет одна ассемблерная инструкция. А при ее исполнении даже прерывание от таймера не придет. (Все внешнии прерывания только между инструкциями).
Блин, сколько же кода можно было бы ускорить не обращаясь к семафорам и мьютексам...
[C++] Еще один велеколепный миф... 25.02.02 21:26  
Автор: z0 <z0> Статус: Member
Отредактировано 25.02.02 21:52  Количество правок: 1
<"чистая" ссылка>
простой mov - да, согласен
с ним даже lock не используется (начиная с тройки)
но тем не менее ВНУТРИ rep-нутых команд происходят прерывания
а на многопроцессорных системах (использование например DMA уже дает много -блин- двухпроцессорную сиситему) есть туча команд которые могут быть приостановлены ВНУТРИ не прерыванием а другим процессором и получается INCONSISTENTY в памяти)
а еще на память прихдят старые процы которые по шине передавали слово ПОБАЙТНО в том числе и mov-ом
так что очень внимательно надо выкидывать синхронизаторы, двадцать раз проверять и смотреть код сгенерированный обязательно
лучше оставит этот синхронизатор гребучий если конечно не очень тормозит
[C++] Ты пытаешься Дж. Рихтера оспорить (глава "Синхронизация потоков") ... - так это ты зря... 25.02.02 21:40  
Автор: LiNX Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Тут проблем много может быть (без синхронизации) ... не мудри лучше ...
Одна из самых серьезных - хранение переменных в регистрах ... - volatile может помочь, но не всегда ...
ЗЫ: Удели серьезное внимание изучению ассемблера и железа - твои формулировки недостаточно корректны ...


можно использовать ассемблерные вставки. но осторожно и аккуратно. 28.02.02 06:17  
Автор: йцукенг <jcukeng> Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach