Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Если все эти потоки - ваше приложение, то защитите ресурс критической секцией.
Отправлено
smb
01 апреля 2008 г. 21:54
В ответ на:
Ответ: Мне примерно следующее нужно
отправлено <font color=gray>удка</font> 01 апреля 2008 г. 21:40
Если же поток крутится в другом приложении (процессе), то убивать надо весь процесс
Составить ответ
|
Вернуться на конференцию
Ответы
Лучше мутексом, он быстрее, так как крит. секция это обвязка мутекса с лишними вызовами процедур.
—
SM
(01.04.2008 21:55:0
80.92.255.53
,
пустое
)
Ответ: понятие "быстрее" на виндоус не имеет смысловой нагрузки
—
Dmitriy
(01.04.2008 22:20:28
206.223.191.5
, 48 байт)
имеет, имеет. Особенно когда гоняешь потоки данных под сотню Мбайт/с, очень даже реалтайм, если уметь его готовить
—
SM
(01.04.2008 22:29:32
80.92.255.53
,
пустое
)
Тут не соглашусь с Вами. в user-mode критическая секция быстрее mutex-а (+)
—
smb
(01.04.2008 22:00:44
212.5.70.188
, 376 байт)
Хм. Я когда-то дизассемблировал ядро, и четко увидел, что внутри крит. секции живет мутекс и waitfor...
—
SM
(01.04.2008 22:03:11
80.92.255.53
,
пустое
)
Они там живут, но
—
Oldring
(02.04.2008 01:32:28
91.76.16.155
, 682 байт)
Вы что-то перепутали (+)
—
smb
(01.04.2008 22:11:24
212.5.70.188
, 326 байт)
Так вот и я о том же, что (+)
—
SM
(01.04.2008 22:17:8
80.92.255.53
, 191 байт)
Отличие критической секции от mutex-а в том,
—
smb
(01.04.2008 22:35:16
212.5.70.188
, 297 байт)
Блин.. Хоть и сам написал операционку НИХРЕНА (+)
—
Цивилизатор
(01.04.2008 22:45:48
217.118.66.35
, 132 байт)
О, Билли! Только, видать, малло :))
—
MBedder
(01.04.2008 22:53:42
80.92.96.19
,
пустое
)
Раз не понимаешь о чем, так и не ПИЗДИ тут без дела. О windows речь. NT, XP и далее vista
—
SM
(01.04.2008 22:48:22
80.92.255.53
,
пустое
)
Ответ: Говорите прям как по писанному (:-))
—
Цивилизатор
(01.04.2008 22:46:44
217.118.66.35
,
пустое
)
Это верно (+)
—
SM
(01.04.2008 22:43:19
80.92.255.53
, 629 байт)
ИМХО, у автора как раз такой случай :)
—
smb
(02.04.2008 00:18:53
87.228.45.20
, 393 байт)
если там компорт - то вообще на разницу быстродействия разных механизмов API положить можно :) :)
—
SM
(02.04.2008 00:31:3
80.92.255.53
,
пустое
)
Ну да) Нам главное - истина :) А автор все равно по-своему сделает:)
—
smb
(02.04.2008 00:37:50
87.228.45.20
,
пустое
)
Я другого не понимаю. Это до какой степени надо допрограммироваться, чтобы по TerminateThread тред убивать надо было, и причем без вариантов.
—
SM
(02.04.2008 00:39:44
80.92.255.53
,
пустое
)
А я было подумадл, не могу ли чем-нибудь помочь автору - и понял, что не могу :)
—
Oldring
(02.04.2008 00:47:20
91.76.16.155
, 258 байт)
Ответ: Поставив непосредственный вызов NtWait (хотя это и недокументировано)
—
Dmitriy
(01.04.2008 23:00:10
206.223.191.5
, 98 байт)
использование Native API для критических кусков программы (+)
—
him
(02.04.2008 00:14:30
87.228.45.20
, 184 байт)
да, и еще... К сведению... (+)
—
SM
(01.04.2008 23:09:17
80.92.255.53
, 270 байт)
А мне бы пришлось самому себе повыдергивать, если бы я поток нужный не осилил
—
SM
(01.04.2008 23:05:46
80.92.255.53
,
пустое
)
Это еще не означает, что не существует более простого, быстрого и, главное, стандартного решения, которое Вы просто не нашли.
—
Oldring
(02.04.2008 00:31:8
91.76.16.155
,
пустое
)
Согласен с SM - полный Ё :)
—
Oldring
(02.04.2008 00:33:33
91.76.16.155
,
пустое
)
Существует. Перетащить это в кернел-моде, и юзать сразу кернеловскую ф-цию. Но не было желания.
—
SM
(02.04.2008 00:33:9
80.92.255.53
,
пустое
)
Думаю, что существует много разных вариантов обхода ожиданий мьютекса из realtime нити.
—
Oldring
(02.04.2008 00:41:24
91.76.16.155
, 396 байт)
Вот именно. Оно работает, всех устраивает. Что еще надо? А я заодно много интересного о строении нативного апи вырыл.
—
SM
(02.04.2008 00:45:8
80.92.255.53
,
пустое
)
Да вредно это интересное рыть.
—
Oldring
(02.04.2008 00:54:29
91.76.16.155
, 523 байт)
Нативное апи не менялось еще со времен NT ни разу. Так что совместимость даж с древнючими NT-ями есть.
—
SM
(02.04.2008 00:56:34
80.92.255.53
,
пустое
)
Ну на это, конечно, можно молиться,
—
Oldring
(02.04.2008 01:01:1
91.76.16.155
, 206 байт)
А я лично бы поощрил его, и еще другим показал - молодец, нашел способ соптимизировать.
—
SM
(02.04.2008 01:07:12
80.92.255.53
,
пустое
)
За оптимизацию не по делу или не вовремя тоже в некоторых местах больно бьют по шаловливым рукам.
—
Oldring
(02.04.2008 01:12:31
91.76.16.155
, 97 байт)
В общем - если было принято такое решение, значит так было надо. И все. Точка.
—
SM
(02.04.2008 10:24:16
80.92.255.53
,
пустое
)
Кто-ж спорит с конкретным случаем?
—
Oldring
(02.04.2008 12:40:16
91.76.16.155
, 588 байт,
ссылка
)
И еще. Нативное по большому счету не значит недокументированное. Документация на него есть. Только далеко не у всех.
—
SM
(02.04.2008 12:59:32
80.92.255.53
,
пустое
)
Может быть у Вас есть?
—
Oldring
(02.04.2008 13:07:49
91.76.16.155
,
пустое
)
У меня нет. Но был доступ, иначе откуда бы мне знать о всех параметрах NtXxxxx функций :) :)
—
SM
(02.04.2008 13:27:14
80.92.255.53
,
пустое
)
С каких-нибудь хакерских сайтов, например. ;)
—
Oldring
(02.04.2008 13:36:6
91.76.16.155
, 65 байт)
неа, это было прямо от мелкософта. Еще по NT4.0. С ними общались по реализации обмена между драйвером и юзер-модой мимо IRP, и они кой что интересного сообщили, как это ПРАВИЛЬНО делается в микрософте.
—
SM
(02.04.2008 13:45:3
80.92.255.53
,
пустое
)
NT 4.0? То-то чистили они свои сэмплы из DDK вплоть до написания KDF. ;)
—
Oldring
(02.04.2008 14:19:19
91.76.16.155
, 545 байт)
ну и я про конкретный случай. Какая основная задача мутекса? Висеть в wait, и ждать, когда ресурс отдадут. Да, конечно, бывают почти всегда свободные ресурсы, но не так часто.
—
SM
(02.04.2008 12:53:41
80.92.255.53
,
пустое
)
А задача критической секции
—
Oldring
(02.04.2008 13:06:46
91.76.16.155
, 960 байт)
Не упустил. А по поводу самых легковесный средств (+)
—
SM
(02.04.2008 13:43:10
80.92.255.53
, 983 байт)
В Вашем конкретном случае
—
Oldring
(02.04.2008 14:00:36
91.76.16.155
, 1101 байт)
Да, это синхронизация двух нитей в одном процессе и (+)
—
SM
(02.04.2008 14:13:58
80.92.255.53
, 776 байт)
Только вот.... Как этот cmpxchg поведет себя в мультипроцессорной системе?
—
SM
(02.04.2008 14:43:55
80.92.255.53
,
пустое
)
Штатно.
—
Oldring
(02.04.2008 14:48:38
91.76.16.155
, 94 байт)
Блее того,
—
Oldring
(02.04.2008 15:14:4
91.76.16.155
, 429 байт)
не, взводят все трое по мере надобности. Как и сбрасывают.
—
SM
(02.04.2008 15:57:9
80.92.255.53
,
пустое
)
Один и тот же флаг?
—
Oldring
(02.04.2008 15:58:39
91.76.16.155
,
пустое
)
У MS распространена практика документировать то недокументированное, что уже итак широко используется :)
—
smb
(02.04.2008 01:04:5
87.228.45.20
,
пустое
)
Вот когда задокументировали - можно использовать на законных основаниях.
—
Oldring
(02.04.2008 01:05:29
91.76.16.155
, 89 байт)
В общем случае конечно же это так (+)
—
smb
(02.04.2008 01:12:36
87.228.45.20
, 225 байт)
Это - другое дело.
—
Oldring
(02.04.2008 01:14:3
91.76.16.155
, 142 байт)
Это еще не означает, что не существует более простого, быстрого и, главное, стандартного решения, которое Вы просто не нашли.
—
Oldring
(02.04.2008 00:31:3
91.76.16.155
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru