Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
Эффективные алгоритмы синхронизации 12.08.02 12:33 Число просмотров: 1054
Автор: Cyril <sc> Статус: Member
|
> есть две последовательности идентификаторов - изначально > они идентичны.далее состояние первой последовательности > меняется таким образом:либо в конец последовательности > добавляется новый идентификатор либо удаляется произвольный > уже существующий идентификатор.при этом все элементы > сдвигаются.при этом вторая последовательность не изменяется > Как наиболее эффективно синхронизировать эти > последовательности???
Сколько раз меняется первая последовательность? Один или несколько?
Почему сразу нельзя внести нужные изменения во вторую последовательность? Можно ли записать изменения вносимые в первую последовательность в к-л лог, а потом по этой информации внести изменения во вторую последовательнось? Каковы вообще размеры этих синхронизированных последовательностей? Как храняться эти самые последовательности?
P. S.
Если я все правильно понял, то лучше всего будет просто скопировать одну последовательнось в другую ;-)
|
<programming>
|
Эффективные алгоритмы синхронизации 12.08.02 04:41
Автор: beetle <beetle> Статус: Member
|
есть две последовательности идентификаторов - изначально они идентичны.далее состояние первой последовательности меняется таким образом:либо в конец последовательности добавляется новый идентификатор либо удаляется произвольный уже существующий идентификатор.при этом все элементы сдвигаются.при этом вторая последовательность не изменяется
Как наиболее эффективно синхронизировать эти последовательности???
|
 |
Эффективные алгоритмы синхронизации 12.08.02 23:16
Автор: ih8u <i hate you> Статус: Member
|
Mutex'ы, критикал секшн, семафоры и тд и тп
|
 |  |
нет немного не то - это похоже на синхронизацию локальной директории и удаленной ФТП-директории =)) 13.08.02 01:33
Автор: beetle <beetle> Статус: Member
|
|
 |
Эффективные алгоритмы синхронизации 12.08.02 12:33
Автор: Cyril <sc> Статус: Member
|
> есть две последовательности идентификаторов - изначально > они идентичны.далее состояние первой последовательности > меняется таким образом:либо в конец последовательности > добавляется новый идентификатор либо удаляется произвольный > уже существующий идентификатор.при этом все элементы > сдвигаются.при этом вторая последовательность не изменяется > Как наиболее эффективно синхронизировать эти > последовательности???
Сколько раз меняется первая последовательность? Один или несколько?
Почему сразу нельзя внести нужные изменения во вторую последовательность? Можно ли записать изменения вносимые в первую последовательность в к-л лог, а потом по этой информации внести изменения во вторую последовательнось? Каковы вообще размеры этих синхронизированных последовательностей? Как храняться эти самые последовательности?
P. S.
Если я все правильно понял, то лучше всего будет просто скопировать одну последовательнось в другую ;-)
|
 |  |
Эффективные алгоритмы синхронизации 12.08.02 17:59
Автор: beetle <beetle> Статус: Member
|
последовательности эти не что иное как список запущенных процессов на машине
1.последовательность динамически изменяется - юзер что грузит,что-то выгружает
2 последовательность - должна отображать изменения в системе
короче Process manager
какие будут предложения- хочется найти еффективное решение.
я тут уже кой-чего наміслил ,но пока оно не совсем корректно работает=(((((
|
 |  |  |
Эффективные алгоритмы синхронизации 12.08.02 20:19
Автор: Cyril <sc> Статус: Member
|
> последовательности эти не что иное как список запущенных > процессов на машине > 1.последовательность динамически изменяется - юзер что > грузит,что-то выгружает > 2 последовательность - должна отображать изменения в > системе > короче Process manager > какие будут предложения- хочется найти еффективное решение. > я тут уже кой-чего наміслил ,но пока оно не совсем > корректно работает=(((((
Могу предложить сделать следующим образом:
пусть old - старый список процессов(n - элементов), а new - новый(m - элементов), только что полученный. Нумерация с единицы
1. i=n, начнем поиск с конца списка
2. Ищем в new[M..1] элемент old[i]
3. если его не находим(видимо процесс был выгружен), то уменьшаем i на единицу и переходим на 2
4. если нашли( j ), то переписываем все j+1, ... , M в old. Уменьшаем i.
5. Ищем остальные элементы из old в new[j..1]. Если при первом сравнении идентификаторы процессов не совпадают, то удаляем old[i] (так как видимо процесс с таким идентификатором был выгружен) уменьшаем i и снова сравниваем.
6. И так до тех пор пока не кончаться элементы в old
Все вышеперечисленное годится только для случая когда
на списком new выполняются только операции добавления в конец списка
и удаление произвольного элемента.
|
|
|