Безопасность цифровых технологий

БЕЗОПАСНОСТЬ ЦИФРОВЫХ ТЕХНОЛОГИЙ

БЕЗОПАСНОСТЬ
ЦИФРОВЫХ ТЕХНОЛОГИЙ

English | Русский

Последний выпуск
№3(114) Июль - Сентябрь 2024

Асинхронная пирамидальная сортировка

Выпуск № 3 (85) Июль - Сентябрь 2016
Авторы:

Н.О. ИВАНОВ,
Д.О. ТИНГАЙКИН
DOI: http://dx.doi.org/10.17212/2307-6879-2016-3-98-106
Аннотация
Асинхронизм – неодновременное выполнение различных задач. Этот термин используется в информатике для описания процедур, которые могут выполняться независимо от основного потока. Поток – наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Многопоточность – свойство платформы создавать процессы, которые могут порождать дополнительные потоки, выполнение которых не зависит от времени. Для синхронизации потоков используются такие методы, как использование объектов синхронизации (mutex), общие ресурсы (семафоры), события (1bit event), критические секции, условные переменные, порты завершения

и т. д.

Асинхронное программирование – термин, подразумевающий создание многопоточных приложений. Многоядерные процессоры располагаются на одном процессорном кристалле или корпусе. Именно многоядерные процессоры влияют на производительность многопоточных приложений, но для достижения результата необходима оптимизация. Оптимизация – процесс создания максимально лучших характеристик или соотношений и минимизации расходов. В программировании оптимизация – процесс написания максимально быстрого кода, т. е. минимализация тактов процессора.
Ключевые слова: сортировка, асинхронное программирование, пирамидальная сортировка, параллельные вычисления, многопоточность, оптимизация

Список литературы
1. Кормен Т.Лейзерсон Ч.Ривест Р. Сортировка с помощью кучи // Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы. Построение и анализ: пер. с англ. – М.: МЦНМО, 2002. – Гл. 7. – С. 138–150.

2. Левитин А.В. Метод преобразования. Пирамиды и пирамидальная сортировка // Левитин А.В. Алгоритмы: введение в разработку и анализ: пер. с англ. – М.: Вильямс, 2006. – Гл. 6. – С. 275–284.

3. Кнут Д. Искусство программирования. Т. 3. Сортировка и поиск. – 2-е изд. – М.: Вильямс, 2007. – 824 с.

4. Седжвик Р. Фундаментальные алгоритмы на C. Ч. 1–4. Анализ. Структуры данных. Сортировка. Поиск. – СПб.: ДиаСофтЮП, 2003. – 672 с.

5. Hetland M.L. Python algorithms: mastering basic algorithms in the python language. – New York: Apress, 2010. – 336 p.

6. Левитин А.В. Метод грубой силы. Пузырьковая сортировка // Левитин А.В. Алгоритмы: введение в разработку и анализ. – М.: Вильямс, 2006. – Гл. 3. – С. 144–146.

7. Sipser M. Introduction to the theory of computation. – Boston: Thomson Course Technology, 2006. – 437 p.

8. Kongmunvattana A., Tzeng N.-F. Logging and recovery in adaptive software distributed shared memory systems // Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems, SRDS’99, Lausanne, Switzerland, 1999. – Los Alamitos, CA, 1999. – doi: 10.1109/RELDIS.1999.805096.

9. Asynchronous programming – reference documentation. Version: 3.1.8 [Electronic resource] / G. Rocher, P. Ledbrook, M. Palmer, J. Brown, L. Daley, B. Beckwith, L. Hotari. – Available at: http://docs.grails.org/3.1.8/guide/async.html (accessed: 15.08.2016).
Просмотров: 22708