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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Два вопроса 27.11.01 10:53  Число просмотров: 937
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> необходимо положим 10 секунд, а для считывания в одном
> положении установки
> числа фотонов - 7 секунд, т.е. данные хронически не
> успевают считываться...
> |------------- ВРЕМЯ ПОСЫЛКИ ДАННЫХ-------
> |------- ВРЕМЯ СЧИТЫВАНИЯ------

1. Если время считывания меньше (!), то наоборот все будет успевать считываться.
2. Точно нет путаницы со считыванием и обработкой ?
Что-то мне кажется, что комп не может ТАК долго писать из порта в память, что не успеет поглотить все приходящие данные.

Если есть путаница по 2му пункту, то один срид будет писать в буфер, а другой из него читать и обрабатывать.
Если же он реально неуспевает ЧИТАТЬ из порта и ПИСАТЬ в память (без обработки), то никакая мультизадачность не поможет (но такая ситуация, имо, из разряда фантастики).
<programming>
[C++] Кто здесь cильный в мультизадачности ? 26.11.01 20:56  
Автор: КоЛЯн Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Дело вот в чем. Собираю контроллер, ходящий по кругу и в каждом
дискретном положении считывающий число фотонов. Ну считывание
осуществляется быстрыми двоично-десятичными счетчиками, данные через
'спектрум' - Z180 - загоняются в ПК.

Так вот чел поставил мне задачу: как используя многозадачность считать
данные в том случае, если время считывания меньше времени измерения-
это по-видимому нужно понимать так: для заправки единичных данных в комп
необходимо положим 10 секунд, а для считывания в одном положении установки
числа фотонов - 7 секунд, т.е. данные хронически не успевают считываться...

И этот 'светоч премудрости' на полном серьезе грузит мне, что данные можно
обработать лишь при использовании одной только мультизадачности без каких
либо электронных ухищрений типа УВХ и т.д.

???
НУ НЕ ПОНИМАЮ Я, НА КОЙ Х Р Е Н МНЕ ЗДЕСЬ СДАЛАСЬ МУЛЬТИЗАДАЧНОСТЬ
И КАК ЕЕ ИСПОЛЬЗОВАТЬ
???

p.s.

------------ ВРЕМЯ ПОСЫЛКИ ДАННЫХ-------
|------- ВРЕМЯ СЧИТЫВАНИЯ------

[C++] Кто здесь cильный в мультизадачности ? 27.11.01 15:55  
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Так вот чел поставил мне задачу: как используя
> многозадачность считать
> данные в том случае, если время считывания меньше времени
> измерения

На первый взгляд ты не правильно понял задачу. И путаешь всех с определениями "считывание", "измерение", "посылка". Надо бы определиться. А на счет мультизадачности это ИМХО бред. Если это СОМ то там же УАПП. Все что можно сделать это настроить его на максимальную скорость приема. Или я чего то не понимаю...
Ну перепутал малость - смысл люди все равно поняли...() 27.11.01 21:06  
Автор: КоЛЯн Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1)Максимальной скорости приема все равно похоже не хватвет...
2)Ну перепутал там два слова местами - обязательно мордой тыкать нада ?..
Ну перепутал малость - смысл люди все равно поняли...() 28.11.01 09:14  
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> 1)Максимальной скорости приема все равно похоже не
> хватвет...

Ну тогда опаньки :)

> 2)Ну перепутал там два слова местами - обязательно мордой
> тыкать нада ?..

Извини, но я просто не понял что брать за истину, то ли "время считывания меньше времени измерения", то ли наоборот.

Да, кстати, а как насчет скорости приема от девайса к контроллеру и посылки от контроллера к ПК?

Что говорит 'светоч премудрости' ?
[C++] Два вопроса 27.11.01 10:53  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> необходимо положим 10 секунд, а для считывания в одном
> положении установки
> числа фотонов - 7 секунд, т.е. данные хронически не
> успевают считываться...
> |------------- ВРЕМЯ ПОСЫЛКИ ДАННЫХ-------
> |------- ВРЕМЯ СЧИТЫВАНИЯ------

1. Если время считывания меньше (!), то наоборот все будет успевать считываться.
2. Точно нет путаницы со считыванием и обработкой ?
Что-то мне кажется, что комп не может ТАК долго писать из порта в память, что не успеет поглотить все приходящие данные.

Если есть путаница по 2му пункту, то один срид будет писать в буфер, а другой из него читать и обрабатывать.
Если же он реально неуспевает ЧИТАТЬ из порта и ПИСАТЬ в память (без обработки), то никакая мультизадачность не поможет (но такая ситуация, имо, из разряда фантастики).
Немного работавший с портами и проч... 26.11.01 22:49  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> Так вот чел поставил мне задачу: как используя
> многозадачность считать
> необходимо положим 10 секунд, а для считывания в одном
> положении установки
> числа фотонов - 7 секунд, т.е. данные хронически не
> успевают считываться...
> |------------- ВРЕМЯ ПОСЫЛКИ ДАННЫХ-------
> |------- ВРЕМЯ СЧИТЫВАНИЯ------

Простой пример. Пусть чтение из порта делается так:

@Начало цикла:
Ждем там чего -то из порта xxxx в каком-нить бите.
Дождались или тайм-аут.
Читаем из порта данные.
Сохраняем их.
repeat until (данные не собраны) goto @Начало цикла.

Спрашивается: все ли время проца тратиться на чтение
из порта ?
Ответ: естессно, нет. Чтение из портов - одна из самых тормознутых
вещей в компе ;)))
В это время прерывания там бегают (аж 18 раз / сек).
Винда там по таймеру куда-еще переключается.
Получается примерно вот что:

|------------------------------------------------
|-------------------------------------------
Цикл ожидания Считывание
<------------------------------- Около 10-1000 мкс --------------------------->

А теперь вспомни, скока проц успеет сделать тактов за
это безумно огромное для него время в ~500мкс ?!







[C++] Кто здесь cильный в мультизадачности ? 26.11.01 21:19  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>

> Так вот чел поставил мне задачу: как используя
> многозадачность считать
> данные в том случае, если время считывания меньше времени
> измерения-
> это по-видимому нужно понимать так: для заправки единичных
> данных в комп
> необходимо положим 10 секунд, а для считывания в одном
> положении установки
> числа фотонов - 7 секунд, т.е. данные хронически не
> успевают считываться...

Odin iz vozmozhnyx reshenij, ili prosto variantov :
zapusti paru potokov kotorye budut schityvat' dannye.
dopustim :
1) pomimo glavnogo potoka, ty sozdal 2 potoka thread_1 & thread_2
2) U tebya est 1 static DataBuffer peremennaya (ili chto to v etom rode) - xranilishe dannyx.
3) I-yj potok schityvaet dannye i tratit na eto 7 sec.
4) kak tol'ko I-yj potok schital dannye, II-oj potok nachinaet schityvat' ostatok dannyx
5) dannye iz Iogo potoka zapisyvayutsya v DataBuffer
6) Dannye iz vtorogo potok a zapisyvajutsya v DataBuffer.
7) povotrit' vse s punkta (3).

Esli ty znaesh' nachalo i konec dannyx postupajush' s vashego mudrenogo ustrojstva, to
1) Dostatochno sozdat' odin potok
2) on postojanno sidit na "listen", t.e. postoyanno vrashaetsya v cikle
3) kak tol'ko dannye postupili, on schityvaet ego i zapisyvaet, pri etom on znaet nachalo i konec dannyx, takim obrazom ty poluchaesh' 1 DataBuffer dlya kazhdogo postuplenia dannyx.

Odnim slovom, esli konechno ya pravil'no ponyal zadachu, tebe nado razobrat'sya s vozmozhnostyami synchronizaciiPORTAcherez kotoryj dannye zagonyajutsya v comp. Navernyaka driver porta obespechivaet Buffering, v takom sluchaet tebe nado dumat' tol'ko o tom kak synchronizirovat' potok. Tak chto tut skoree vsego ne mulitzadachnost', a multipotochnost' :-)))

ne dumaju chto eto uzh ochen' cherez chur slozhno, prosto nado nemnogo pofantazirovat' i poeksperementirovat' :-)))


udachi.
[C++] Спасибо друзья! 26.11.01 23:13  
Автор: КоЛЯн Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо мужики!

По моему, kabanchik ближе подошел к сути с многопоточностью, я и сам , честно говоря , склонялся к такому же результату - посмотрим, куда меня с таким объяснением пошлют...

Спасибо и "последнему из могикан" - твое решение на сто процентов совпадает с моим первоначальным, которое я через 5 минут после вникания в суть показал 'шефу'- ну тот меня и пошел гнать (вот зараза) по много***чности- не нравится ентому субъекту видите-ли паскаль+асм - давай ему ооп. Он бы меня еще за яву вебстарт посадил - у нас сейчас последний писк - работы предлагают от 400 у.е. до непреличия ...
1




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


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