Терминология памяти Windows
Чтобы понять значения столбцов в диспетчере задач Windows 10, важно рассмотреть каждый из них отдельно. Вот объяснение основных терминов:
Рабочий набор (память)
Это объем физической памяти, который процесс в данный момент использует. Рабочий набор включает все страницы памяти, которые процесс активно использует и которые находятся в оперативной памяти. Этот показатель показывает, сколько памяти реально задействовано в данный момент.
Пиковый рабочий набор (память)
Это максимальный объем физической памяти, который процесс использовал с момента его запуска. Этот показатель позволяет увидеть, сколько памяти процессу потребовалось в пиковые моменты, что может быть полезно для анализа его производительности и потребностей в ресурсах.
Память (активный частный рабочий набор)
Этот столбец показывает объем памяти, который выделен процессу и в данный момент активно используется. Это часть частного рабочего набора, которая действительно загружена в физическую память и доступна для использования процессом.
Память (частный рабочий набор)
Частный рабочий набор включает в себя память, выделенную только для данного процесса, которая не может быть использована другими процессами. Это означает, что эта память уникальна для данного процесса и не может быть передана или использована другими приложениями.
Память (общий рабочий набор)
Этот показатель отражает объем памяти, который может быть разделен между несколькими процессами. Он включает в себя страницы, которые могут быть общими для нескольких процессов, что позволяет экономить ресурсы.
Выделенная память
Это общий объем памяти, который был выделен процессу, включая как физическую, так и виртуальную память. Этот показатель может включать в себя память, которая в данный момент не используется, но была зарезервирована для процесса.
Выгружаемый пул
Это объем памяти, который может быть выгружен из оперативной памяти в файл подкачки, если система нуждается в освобождении ресурсов. Это позволяет системе управлять памятью более эффективно, выгружая неактивные данные, чтобы освободить место для более приоритетных задач.
Эти показатели помогают пользователям и администраторам системы анализировать использование памяти и оптимизировать производительность приложений в Windows 10. [1] https://ru.stackoverflow.com/questions/1109985/%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D1%8C-%D0%B2-%D0%B4%D0%B8%D1%81%D0%BF%D0%B5%D1%82%D1%87%D0%B5%D1%80%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87 [2] https://vk.com/@linux_windows_net-dispetcher-zadach-windows-10 [3] https://win10tweaker.ru/forum/topic/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C-%D0%BA%D1%83%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B0-%D0%BE%D0%B7%D1%83 [4] https://support.lenovo.com/by/ru/solutions/ht515301-how-to-use-task-manager-to-stop-or-end-processes-windows-10-and-11 [5] http://mif.vspu.ru/books/w2k/gl13/gl13.html [6] https://www.kingston.com/ru/blog/pc-performance/memory-assessor [7] https://answers.microsoft.com/ru-ru/windows/forum/all/windows-10/f0809d83-62c7-427e-bb1b-a6b33e51ee6d [8] https://forum.mista.ru/topic/770100 [9] https://forum.ixbt.pro/topic.cgi?id=22:78013-4 [10] https://www.asus.com/ru/support/faq/1043921/ [11] https://habr.com/ru/articles/435678/ [12] https://learn.microsoft.com/ru-ru/windows-hardware/drivers/debugger/finding-the-process-id [13] https://infourok.ru/laboratornoe-zanyatie-5-tema-processy-v-os-windows-5466017.html [14] https://winitpro.ru/index.php/2013/12/04/schetchik-proizvoditelnosti-v-dispetchere-zadach-windows-server-2012-r2/ [15] https://www.youtube.com/watch?v=WWxNJTbyy8Q [16] http://forum.oszone.net/thread-326936.html [17] https://forums.overclockers.ru/viewtopic.php?f=90&t=623129 [18] https://learn.microsoft.com/ru-ru/windows/win32/memory/working-set [19] https://lifehacker.ru/windows-10-taskbar/ [20] https://mkit.online/wp-content/uploads/docs/metod/prog/10_MR_OP_OSS.pdf [21] https://learn.microsoft.com/ru-ru/windows/win32/memory/memory-performance-information [22] https://tsplus.net/ru/remote-support/blog/using-tools-like-task-manager-when-troubleshooting-windows/ [23] https://learn.microsoft.com/ru-ru/windows-server/administration/server-manager/view-and-configure-performance-event-and-service-data [24] https://www.outsidethebox.ms/12135/comment-page-2/ [25] https://forum.ixbt.com/topic.cgi?id=22:91581-2 [26] http://forum.oszone.net/post-2920705.html [27] https://learn.microsoft.com/ru-ru/windows-hardware/test/weg/delivering-a-great-experience-with-low-memory [28] https://journal.tinkoff.ru/list/windows-10-setting/ [29] http://forum.oszone.net/nextoldesttothread-337054.html [30] https://answers.microsoft.com/ru-ru/windows/forum/all/%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B0/9bb23411-4350-4290-b1ef-c93bd35d370e [31] https://remontka.pro/windows-resource-monitor/ [32] https://club.dns-shop.ru/blog/t-103-operativnaya-pamyat/28714-kak-razognat-operativnuu-pamyat-i-zachem-eto-delat/ [33] https://hi-tech.mail.ru/review/61782-file-podkachki-windows-10/ [34] https://habr.com/ru/articles/765788/ [35] https://answers.microsoft.com/ru-ru/windows/forum/all/%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80/aaa7d484-b396-45db-b168-3cf5187f45dd
Чтобы понять различия между терминами “Рабочий набор”, “активный частный рабочий набор” и “частный рабочий набор”, важно рассмотреть их определения и контекст использования в Windows.
Рабочий набор
Рабочий набор (или рабочий набор памяти) представляет собой объем физической памяти, который процесс использует в данный момент. Это включает все страницы памяти, которые активно загружены в оперативную память и доступны для данного процесса. Рабочий набор показывает, сколько памяти реально используется процессом в текущий момент времени.
Частный рабочий набор
Частный рабочий набор (private bytes) — это объем памяти, который выделен только для данного процесса и не может быть использован другими процессами. Он включает в себя все страницы памяти, которые процесс выделил для своих нужд, и которые не доступны другим приложениям. Это позволяет оценить, сколько памяти конкретный процесс требует для своей работы, независимо от других процессов.
Активный частный рабочий набор
Активный частный рабочий набор — это часть частного рабочего набора, которая в данный момент активно используется процессом и загружена в физическую память. Этот показатель показывает, сколько из выделенной памяти действительно используется в данный момент, что может быть полезно для анализа производительности приложения.
Сравнение
Рабочий набор: Общий объем физической памяти, используемой процессом.
Частный рабочий набор: Объем памяти, выделенный только для данного процесса, который не может быть использован другими процессами.
Активный частный рабочий набор: Часть частного рабочего набора, которая активно используется и загружена в оперативную память.
Эти различия помогают лучше понять, как процессы используют память в Windows и как можно оптимизировать производительность системы. [1] https://www.dell.com/support/kbdoc/ru-kg/000046124/esg130651-performance-monitor-best-practice-perfmon [2] https://forum.ixbt.com/topic.cgi?id=22:91581-2 [3] http://marksdigital.ru/knowledgebase/standart-informatsionnogo-modelirovaniya/sovmestnaya-rabota-i-rabochie-nabory/ [4] https://rbi.standard.ds.do/index.php/ds-knowledge-base/bim-standard/ds4/%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B5-%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D1%8B/ [5] https://dzen.ru/a/Xwfkd5Je1wWS2xVy [6] https://www.miigaik.ru/upload/iblock/e01/e0111419b72a3cf2a5325ad3a9666eb3.pdf [7] https://zandz.com/ru/biblioteka/webinary/bim-proektirovanie-sovmestnaya-rabota-v-revit-na-baze-fajla-hranilishcha_1/ [8] https://www.ibm.com/docs/ru/dmrt/9.5?topic=workbench-working-sets [9] https://help.autodesk.com/cloudhelp/2024/RUS/Revit-Collaborate/files/GUID-6054CEF3-C4E6-4334-BA43-568DF5DF5702.htm [10] https://heaad.ru/blog/chto-takoe-massoviy-podbor-personala/ [11] https://aif.ru/politics/world/chem_gosudarstvennyy_vizit_otlichaetsya_ot_rabochego_ili_chastnogo_vizita [12] https://forum.ixbt.pro/topic.cgi?id=22:78013-4 [13] https://modplus.org/ru/revitplugins/mprworksets [14] https://www.startexam.ru/journal/likbez/kompetentnost-i-kompetentsiya-chto-eto-i-v-chyem-ikh-otlichiya/ [15] https://aws.amazon.com/ru/compare/the-difference-between-dedicated-server-and-vps/ [16] https://help.autodesk.com/view/RVT/2022/RUS/?guid=GUID-2C89FADD-CCE4-4536-9D78-2A0CFFF13277 [17] https://de.ifmo.ru/bk_netra/page.php?tutindex=3&index=11 [18] https://zandz.com/ru/biblioteka/webinary/bim-proektirovanie-sovmestnaya-rabota-v-revit-na-baze-fajla-hranilishcha_2/ [19] https://ergo.place/ru/shcho-take-erhonomichnist-tsili-zavdannia-ta-vymohy-do-robochoho-prostoru-ta-erhonomichnykh-mebliv/?srsltid=AfmBOopD25oV-T1gwINklayDMryIzFakTvFuaruAUWd1EN-yZ1j6TbqF
Приложения могут совместно использовать память из общего рабочего набора через механизм, называемый разделяемой памятью. Этот подход позволяет нескольким процессам обмениваться данными и использовать одни и те же области памяти, что значительно увеличивает эффективность использования ресурсов.
Как это работает
Создание разделяемой памяти: Когда приложение создает область разделяемой памяти, оно выделяет определенный объем памяти, который может быть доступен для других процессов. Это делается с помощью системных вызовов, которые позволяют создать и настроить область разделяемой памяти.
Доступ к разделяемой памяти: Другие приложения могут получить доступ к этой области, используя идентификатор, который был создан при ее создании. Это позволяет им читать и записывать данные в общую память, что исключает необходимость копирования данных между процессами.
Синхронизация: Для предотвращения конфликтов при одновременном доступе к разделяемой памяти используются механизмы синхронизации, такие как мьютексы или семафоры. Это гарантирует, что только один процесс может изменять данные в определенный момент времени, что предотвращает возможные ошибки и повреждение данных.
Использование общего рабочего набора: Общий рабочий набор включает в себя страницы памяти, которые могут быть использованы несколькими процессами. Это позволяет приложениям эффективно делиться данными, такими как кэшированные результаты или общие ресурсы, что снижает общую нагрузку на память и улучшает производительность.
Преимущества совместного использования памяти
Эффективность: Уменьшение объема памяти, необходимой для хранения дублирующихся данных.
Скорость: Быстрый доступ к данным, так как они находятся в оперативной памяти, а не на диске.
Упрощение взаимодействия: Упрощение обмена данными между процессами, что особенно полезно для многопоточных приложений и сервисов.
Таким образом, совместное использование памяти из общего рабочего набора позволяет приложениям более эффективно взаимодействовать и использовать системные ресурсы. [1] https://www.ibm.com/docs/ru/aix/7.1?topic=memory-program-address-space-overview [2] https://vk.com/@linux_windows_net-dispetcher-zadach-windows-10 [3] https://support.microsoft.com/ru-ru/topic/%D1%83%D1%82%D0%B5%D1%87%D0%BA%D0%B0-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8-%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%BF%D1%80%D0%B8-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B5-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-peer-to-peer-%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D0%B5-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D0%B0%D0%BD%D1%81%D0%B0-%D0%B2-lync-2013-3069ee42-aa93-4104-d1e6-d21e7638e7fc [4] https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D0%BC%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C [5] https://studfile.net/preview/9420519/page:48/ [6] https://muratovbim.pro/blog/revit-sovmestnaya_rabota-rabochie_nabory_i_sinkhronizatsiya/ [7] https://help.autodesk.com/view/RVT/2022/RUS/?guid=GUID-497F931B-EB1B-4139-9393-81CE71FAFCCD [8] http://marksdigital.ru/knowledgebase/standart-informatsionnogo-modelirovaniya/sovmestnaya-rabota-i-rabochie-nabory/ [9] https://support.kaspersky.com/help/KESSLinux/3.3.0/ru-RU/197939.htm [10] https://learn.microsoft.com/ru-ru/azure-sphere/app-development/application-memory-usage?view=azure-sphere-integrated [11] https://aliksumin.livejournal.com/29994.html [12] https://forum.ixbt.com/topic.cgi?id=22:91581-2 [13] https://docs.hexagonppm.com/r/ru-RU/HxGN-EAM-Application-Installation/1292526 [14] https://support.microsoft.com/ru-ru/windows/%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D1%85-windows-36f52e38-5b4a-557b-2ff9-e1a60c976434 [15] https://learn.microsoft.com/ru-ru/windows/win32/memory/working-set [16] http://forum.oszone.net/nextoldesttothread-337054.html [17] https://ru.stackoverflow.com/questions/1109985/%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D1%8C-%D0%B2-%D0%B4%D0%B8%D1%81%D0%BF%D0%B5%D1%82%D1%87%D0%B5%D1%80%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87 [18] https://acm.bsu.by/wiki/Unix2018/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E [19] https://win10tweaker.ru/forum/topic/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C-%D0%BA%D1%83%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B0-%D0%BE%D0%B7%D1%83 [20] https://software-testing.ru/library/testing/mobile-testing/4224--qa- [21] https://help.autodesk.com/cloudhelp/2024/RUS/Revit-Collaborate/files/GUID-6054CEF3-C4E6-4334-BA43-568DF5DF5702.htm [22] https://www.asus.com/ru/support/faq/1044672/ [23] https://hi-tech.mail.ru/review/61782-file-podkachki-windows-10/ [24] https://pcsupport.lenovo.com/us/ru/products/laptops-and-netbooks/100-series/110-14isk/solutions/ht103506-how-to-optimize-disk-usage-in-windows-10 [25] https://habr.com/ru/articles/345766/ [26] https://rbi.standard.ds.do/index.php/ds-knowledge-base/bim-standard/ds4/%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B5-%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D1%8B/ [27] https://learn.microsoft.com/ru-ru/windows/win32/procthread/process-working-set [28] https://gradoservice.ru/manualsgs/files/MapEditor_admin_manual_4.38_3.7.4/work_wor_settings.html [29] https://support.google.com/googleplay/android-developer/answer/9844679?hl=ru
Совместное использование памяти может привести к утечкам в различных сценариях, особенно когда несколько процессов или потоков взаимодействуют с общими ресурсами. Вот основные ситуации, в которых могут возникать утечки памяти:
1. Неправильное управление памятью
Когда процессы используют разделяемую память, они должны правильно управлять выделением и освобождением ресурсов. Если один из процессов завершает работу, не освободив выделенную память, это может привести к утечкам. Например, если память была выделена для хранения данных, но не была освобождена после завершения работы процесса, эта память останется недоступной для других процессов.
2. Ошибки в синхронизации
При использовании разделяемой памяти важно правильно синхронизировать доступ к ней. Если два процесса одновременно пытаются записать данные в одну и ту же область памяти без должной синхронизации, это может привести к повреждению данных и, как следствие, к утечкам. Например, если один процесс освобождает память, а другой продолжает к ней обращаться, это может вызвать неопределенное поведение и утечки.
3. Оставшиеся ссылки на память
Если процесс создает ссылки на области разделяемой памяти, но не освобождает их после завершения работы, это может привести к утечкам. Например, если один процесс создает объект в разделяемой памяти и передает ссылку на него другому процессу, но не освобождает память, когда объект больше не нужен, это может привести к тому, что память не будет освобождена.
4. Использование устаревших библиотек
Некоторые сторонние библиотеки могут неправильно управлять памятью, что также может привести к утечкам. Если библиотека не освобождает память, выделенную для разделяемых ресурсов, это может вызвать накопление неиспользуемой памяти.
5. Оставшиеся сегменты разделяемой памяти
Если процесс завершается аварийно, сегменты разделяемой памяти могут остаться “сиротами”, что означает, что они больше не связаны с активными процессами, но все еще занимают память. Это может привести к утечкам, если такие сегменты не будут очищены вручную.
Заключение
Утечки памяти при совместном использовании ресурсов могут возникать из-за неправильного управления памятью, ошибок в синхронизации, оставшихся ссылок на память, использования устаревших библиотек и аварийных завершений процессов. Чтобы избежать этих проблем, важно следить за управлением памятью и использовать механизмы синхронизации для обеспечения корректного доступа к разделяемым ресурсам. [1] https://support.ptc.com/help/creo/creo_pma/r11.0/russian/simulate/simulate/memory-usage-different-scenarios.html [2] https://habr.com/ru/companies/otus/articles/589321/ [3] https://stackoverflow.com/questions/22691621/how-to-avoid-shared-memory-leaks [4] https://go101.org/article/memory-leaking.html [5] https://www.geeksforgeeks.org/what-is-memory-leak-how-can-we-avoid/ [6] https://forums.ni.com/t5/LabVIEW/Shared-Variable-Memory-Leak/td-p/2356508 [7] https://www.in-com.com/ru/blog/understanding-memory-leaks-in-programming-causes-detection-and-prevention/ [8] https://www.quora.com/What-are-some-instances-of-memory-leakage-in-C++-I-took-an-intro-to-C++-and-cannot-really-understand-how-disastrous-a-data-leak-can-be-in-the-real-world [9] https://infourok.ru/scenarij-vechera-pamyati-my-pomnim-4642729.html [10] https://www.reddit.com/r/explainlikeimfive/comments/tsalul/eli5_memory_leaks/ [11] https://www.maam.ru/detskijsad/scenarii-sovmestnogo-s-roditeljami-prazdnika-ko-dnyu-pobedy-my-zhivy-poka-pamjat-zhiva-v-podgotovitelnyh-grupah.html [12] https://literatyra-voronina.narod.ru/index/0-15 [13] https://infourok.ru/scenarij-vneklassnogo-meropriyatiya-posvyashennogo-dnyu-pamyati-grazhdan-rossii-ispolnyavshih-sluzhebnyj-dolg-za-predelami-otech-5465511.html [14] https://www.reddit.com/r/learnprogramming/comments/10xas6h/what_is_a_memory_leak_explained_in_the_most/ [15] https://rosuchebnik.ru/material/my-pamyati-etoy-verny-6951/ [16] https://habr.com/ru/articles/345766/ [17] https://en.wikipedia.org/wiki/Memory_leak [18] https://www.sciencedirect.com/science/article/abs/pii/S1364661322000687 [19] http://culture.ksrk.ru/metod/pamati-pavsih-scenarii-torzestvennogo-mitinga [20] https://habr.com/ru/articles/577810/ [21] https://nsportal.ru/detskiy-sad/okruzhayushchiy-mir/2018/08/07/stsenariy-meropriyatiya-den-pamyati-i-skorbi-2018 [22] https://habr.com/ru/articles/354370/ [23] https://wiki.merionet.ru/articles/cto-takoe-utecka-pamiati-i-kak-ee-izbezat [24] https://learn.javascript.ru/memory-leaks [25] https://nolanlawson.com/2020/02/19/fixing-memory-leaks-in-web-applications/ [26] https://www.youtube.com/watch?v=HJSnq0z_cOE [27] https://www.youtube.com/watch?v=hFTEjRSwqbc [28] https://xakep.ru/2016/12/14/spring-log4j-memory-leaks/ [29] https://software-testing.ru/library/testing/mobile-testing/4224--qa- [30] https://pvs-studio.ru/ru/blog/terms/6618/
Использование разделяемой памяти может стать неэффективным в различных сценариях. Вот основные случаи, когда это происходит:
1. Неправильная синхронизация
Если процессы, использующие разделяемую память, не синхронизируют доступ к ней должным образом, это может привести к состояниям гонки и блокировкам. Например, если несколько процессов одновременно пытаются записать данные в одну и ту же область памяти без использования мьютексов или семафоров, это может вызвать повреждение данных и снизить производительность.
2. Высокая конкуренция за ресурсы
Когда множество процессов одновременно обращаются к одной и той же области разделяемой памяти, это может привести к значительным задержкам из-за блокировок и ожиданий. В таких случаях производительность может упасть, и использование разделяемой памяти становится менее эффективным по сравнению с другими методами обмена данными, такими как очереди сообщений.
3. Увеличение сложности кода
Использование разделяемой памяти требует более сложного управления памятью и синхронизации, что может привести к увеличению вероятности ошибок в коде. Это может сделать систему более уязвимой к утечкам памяти и другим проблемам, связанным с управлением ресурсами.
4. Неправильное выделение памяти
Если память выделяется неправильно или неэффективно, это может привести к фрагментации и неэффективному использованию ресурсов. Например, если область разделяемой памяти слишком велика для текущих нужд, это может привести к неэффективному расходованию памяти.
5. Ограничения по размеру
Разделяемая память имеет ограничения по размеру, которые могут варьироваться в зависимости от операционной системы. Если приложения требуют больше памяти, чем доступно в разделе, это может привести к необходимости использования других методов, что снижает общую эффективность.
6. Аварийные завершения процессов
Если процесс, использующий разделяемую память, завершается аварийно, это может оставить “сиротские” сегменты памяти, которые не могут быть использованы другими процессами. Это приводит к утечкам памяти и снижению доступных ресурсов.
Заключение
Таким образом, использование разделяемой памяти становится неэффективным в случаях неправильной синхронизации, высокой конкуренции за ресурсы, увеличения сложности кода, неправильного выделения памяти, ограничений по размеру и аварийных завершений процессов. Чтобы избежать этих проблем, важно тщательно проектировать архитектуру приложений и правильно управлять ресурсами. [1] http://www.pmbk.ru/lister/024/31/index.shtml [2] https://parallel.ru/krukov/lec6.html [3] https://intuit.ru/studies/courses/641/497/lecture/11296?page=4 [4] https://habr.com/ru/articles/345766/ [5] https://postgrespro.ru/docs/postgresql/12/runtime-config-resource [6] https://ilyabirman.ru/meanwhile/2011/11/15/2/ [7] https://postgrespro.ru/docs/postgresql/9.6/runtime-config-resource [8] https://intuit.ru/studies/courses/622/478/lecture/21075 [9] https://habr.com/ru/companies/smart_soft/articles/228937/ [10] https://www.linux.org.ru/forum/development/2525364?lastmod=1203893596397 [11] https://www.mathnet.ru/php/getFT.phtml?jrnid=crm&paperid=602&what=fullt [12] https://repo.quantom.info/qhb/std-1/doc/1.5.1/ru/Configuration/runtime-config/runtime-config-resource.html [13] https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D0%BC%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C [14] https://www.youtube.com/watch?v=R1U8ayT9PaY [15] https://habr.com/ru/articles/458860/