RU2014143063A - Системы и способы для разделения однонаправленных списков для выделения элементов памяти - Google Patents
Системы и способы для разделения однонаправленных списков для выделения элементов памяти Download PDFInfo
- Publication number
- RU2014143063A RU2014143063A RU2014143063A RU2014143063A RU2014143063A RU 2014143063 A RU2014143063 A RU 2014143063A RU 2014143063 A RU2014143063 A RU 2014143063A RU 2014143063 A RU2014143063 A RU 2014143063A RU 2014143063 A RU2014143063 A RU 2014143063A
- Authority
- RU
- Russia
- Prior art keywords
- blocking list
- list structures
- memory elements
- structures
- blocking
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Abstract
1. Способ управления выделением множества элементов (206) памяти, хранимых в одной или более безблокировочных списковых структурах (204), причем эти безблокировочные списковые структуры доступны в среде операционной системы многоядерного процессора, при этом способ содержит этапы, на которых:разделяют упомянутые одну или более безблокировочные списковые структуры (204);изначально разделяют упомянутое множество элементов (206) памяти среди упомянутых одной или более безблокировочных списковых структур;при запросе выделения элемента памяти ядерному процессору, ищут в упомянутых одной или более безблокировочных списковых структурах доступный элемент памяти;по нахождении доступного элемента памяти выделяют этот доступный элемент (214) памяти ядерному процессору; идинамически балансируют элементы памяти среди одной или более упомянутых безблокировочных списковых структур в соответствии с подходящей метрикой балансировки.2. Способ по п. 1, в котором этап разделения упомянутых одной или более безблокировочных списковых структур дополнительно состоит в том, что разделяют упомянутые одну или более безблокировочные списковые структуры на первую структуру данных.3. Способ по п. 2, в котором первая структура данных представляет собой одну из группы, содержащей хэш структуру(202) и структуру данных динамического переключения списков (250).4. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с архитектурой многоядерного процессора.5. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с индексом процессора.6. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответст
Claims (10)
1. Способ управления выделением множества элементов (206) памяти, хранимых в одной или более безблокировочных списковых структурах (204), причем эти безблокировочные списковые структуры доступны в среде операционной системы многоядерного процессора, при этом способ содержит этапы, на которых:
разделяют упомянутые одну или более безблокировочные списковые структуры (204);
изначально разделяют упомянутое множество элементов (206) памяти среди упомянутых одной или более безблокировочных списковых структур;
при запросе выделения элемента памяти ядерному процессору, ищут в упомянутых одной или более безблокировочных списковых структурах доступный элемент памяти;
по нахождении доступного элемента памяти выделяют этот доступный элемент (214) памяти ядерному процессору; и
динамически балансируют элементы памяти среди одной или более упомянутых безблокировочных списковых структур в соответствии с подходящей метрикой балансировки.
2. Способ по п. 1, в котором этап разделения упомянутых одной или более безблокировочных списковых структур дополнительно состоит в том, что разделяют упомянутые одну или более безблокировочные списковые структуры на первую структуру данных.
3. Способ по п. 2, в котором первая структура данных представляет собой одну из группы, содержащей хэш структуру
(202) и структуру данных динамического переключения списков (250).
4. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с архитектурой многоядерного процессора.
5. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с индексом процессора.
6. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с номером узла NUMA.
7. Способ по п. 1, в котором упомянутые структуры данных динамической перестановки списков дополнительно содержат безблокировочную списковую структуру помещения и безблокировочную списковую структуру извлечения, при этом упомянутый этап разделения одной или более безблокировочных списковых структур дополнительно состоит в том, что переставляют указатели между упомянутой безблокировочной списковой структурой помещения и упомянутой безблокировочной списковой структурой извлечения в соответствии с метрикой для балансировки ресурсов памяти.
8. Система для управления выделением множества элементов (206) памяти, хранимых в одной или более безблокировочных списковых структурах (204), причем эти безблокировочные списковые структуры доступны в среде операционной системы многоядерного процессора, при этом упомянутая система содержит:
множество ядерных процессоров (106), причем эти ядерные процессоры разделены на множество сокетов (104) процессора;
набор совместно используемой памяти (108), при этом
упомянутая совместно используемая память доступна с по меньшей мере одним из упомянутых сокетов процессора;
каналы (110) связи между по меньшей мере двумя сокетами процессора;
набор из одной или более безблокировочных списковых структур (204), где каждая безблокировочная списковая структура приспособлена хранить по меньшей мере один элемент памяти, причем данный набор из одной или более безблокировочных списковых структур приспособлен быть разделенным так, чтобы обеспечить выделение элементов памяти ядерным процессорам при запросе на выделения элементов памяти;
модуль (202) выделения, при этом данный модуль выполнен с возможностью принимать запросы на выделения элементов памяти от упомянутого множества ядерных процессоров;
при этом модуль выделения выполнен с возможностью динамически регулировать элементы памяти между упомянутым набором из одной или более безблокировочных списковых структур в соответствии с подходящей метрикой балансировки.
9. Система по п. 8, в которой модуль выделения выполнен с возможностью исполнения на одном из упомянутых ядерных процессоров (106).
10. Система по п. 9, в которой упомянутая подходящая метрика балансировки является одной из группы, содержащей поддержку, по существу, числового равенства элементов памяти среди безблокировочных списковых структур и избежание избыточного выделения ресурсов памяти.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/458,355 US9652289B2 (en) | 2012-04-27 | 2012-04-27 | Systems and methods for S-list partitioning |
US13/458,355 | 2012-04-27 | ||
PCT/US2013/037266 WO2013163008A1 (en) | 2012-04-27 | 2013-04-19 | Systems and methods for partitioning of singly linked lists for allocation memory elements |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014143063A true RU2014143063A (ru) | 2016-05-20 |
RU2639944C2 RU2639944C2 (ru) | 2017-12-25 |
Family
ID=48289638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014143063A RU2639944C2 (ru) | 2012-04-27 | 2013-04-19 | Системы и способы для разделения однонаправленных списков для выделения элементов памяти |
Country Status (8)
Country | Link |
---|---|
US (2) | US9652289B2 (ru) |
EP (1) | EP2842032B1 (ru) |
JP (1) | JP6275119B2 (ru) |
CN (1) | CN104254839B (ru) |
BR (1) | BR112014022764B1 (ru) |
RU (1) | RU2639944C2 (ru) |
TW (1) | TWI605340B (ru) |
WO (1) | WO2013163008A1 (ru) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652289B2 (en) | 2012-04-27 | 2017-05-16 | Microsoft Technology Licensing, Llc | Systems and methods for S-list partitioning |
US9372825B1 (en) * | 2013-02-27 | 2016-06-21 | Netapp, Inc. | Global non-volatile solid-state cache in a network storage system |
US9377954B2 (en) * | 2014-05-09 | 2016-06-28 | Advanced Micro Devices, Inc. | System and method for memory allocation in a multiclass memory system |
US9870328B2 (en) * | 2014-11-14 | 2018-01-16 | Cavium, Inc. | Managing buffered communication between cores |
US10564865B2 (en) | 2016-03-22 | 2020-02-18 | Seagate Technology Llc | Lockless parity management in a distributed data storage system |
CN107969153B (zh) * | 2016-08-19 | 2021-06-22 | 华为技术有限公司 | 一种资源分配方法、装置及numa系统 |
CN107944297B (zh) * | 2017-12-11 | 2020-11-24 | 北京奇虎科技有限公司 | 一种访问文件的控制方法及装置 |
EP3756092A4 (en) * | 2018-05-04 | 2021-04-14 | Samsung Electronics Co., Ltd. | APPARATUS AND METHOD FOR MANAGING A SHARED RESOURCE IN A MULTI-CORE PROCESSOR |
CN111143058A (zh) * | 2019-12-17 | 2020-05-12 | 长沙新弘软件有限公司 | 一种基于后备列表的内存管理方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02162439A (ja) * | 1988-12-15 | 1990-06-22 | Fujitsu Ltd | 共有メモリのフリーリスト管理方式 |
US6058460A (en) * | 1996-06-28 | 2000-05-02 | Sun Microsystems, Inc. | Memory allocation in a multithreaded environment |
US6785888B1 (en) * | 1997-08-29 | 2004-08-31 | International Business Machines Corporation | Memory allocator for a multiprocessor computer system |
US6643754B1 (en) * | 2000-02-15 | 2003-11-04 | International Business Machines Corporation | System and method for dynamically allocating computer memory |
US6986015B2 (en) | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
US7111289B2 (en) | 2001-12-21 | 2006-09-19 | Agere Systems, Inc. | Method for implementing dual link list structure to enable fast link-list pointer updates |
US7016923B2 (en) | 2002-11-05 | 2006-03-21 | Sun Microsystems, Inc. | Multi-threaded garbage collector employing cascaded memory arrays of task identifiers to implement work stealing queues for task identification and processing |
US7069394B2 (en) | 2002-12-05 | 2006-06-27 | International Business Machines Corporation | Dynamic data routing mechanism for a high speed memory cloner |
US7587566B2 (en) | 2004-02-20 | 2009-09-08 | Microsoft Corporation | Realtime memory management via locking realtime threads and related data structures |
US7844973B1 (en) | 2004-12-09 | 2010-11-30 | Oracle America, Inc. | Methods and apparatus providing non-blocking access to a resource |
US10769215B2 (en) | 2005-07-14 | 2020-09-08 | Conversant Wireless Licensing S.A R.L. | Method, apparatus and computer program product providing an application integrated mobile device search solution using context information |
US7904688B1 (en) * | 2005-12-21 | 2011-03-08 | Trend Micro Inc | Memory management unit for field programmable gate array boards |
EP1936498A1 (en) * | 2006-12-21 | 2008-06-25 | International Business Machines Corporation | A method and system to manage memory accesses from multithread programs on multiprocessor systems |
US8112570B2 (en) * | 2007-03-15 | 2012-02-07 | Broadcom Corporation | Pipelined buffer interconnect with trigger core controller |
US8495641B2 (en) * | 2007-06-29 | 2013-07-23 | International Business Machines Corporation | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes |
RU2406127C2 (ru) | 2007-09-18 | 2010-12-10 | Виктор Анатольевич Кущенко | Цифровой процессор кущенко в.а. |
US7941688B2 (en) | 2008-04-09 | 2011-05-10 | Microsoft Corporation | Managing timers in a multiprocessor environment |
US20090259780A1 (en) | 2008-04-10 | 2009-10-15 | Weistech Technology Co., Ltd. | Portable electronic device for controlling under-controlled devices |
US8190827B2 (en) * | 2009-02-27 | 2012-05-29 | Red Hat, Inc. | Memory sharing among computer programs |
US8078825B2 (en) * | 2009-03-11 | 2011-12-13 | Oracle America, Inc. | Composite hash and list partitioning of database tables |
US20100251250A1 (en) * | 2009-03-30 | 2010-09-30 | Microsoft Corporation | Lock-free scheduler with priority support |
TW201112125A (en) | 2009-09-16 | 2011-04-01 | Ibm | Method and system for operating an instance of a data structure |
US20110296437A1 (en) * | 2010-05-28 | 2011-12-01 | Devendra Raut | Method and apparatus for lockless communication between cores in a multi-core processor |
US9652289B2 (en) | 2012-04-27 | 2017-05-16 | Microsoft Technology Licensing, Llc | Systems and methods for S-list partitioning |
-
2012
- 2012-04-27 US US13/458,355 patent/US9652289B2/en active Active
-
2013
- 2013-04-15 TW TW102113317A patent/TWI605340B/zh not_active IP Right Cessation
- 2013-04-19 JP JP2015509034A patent/JP6275119B2/ja active Active
- 2013-04-19 EP EP13720655.3A patent/EP2842032B1/en active Active
- 2013-04-19 BR BR112014022764-0A patent/BR112014022764B1/pt active IP Right Grant
- 2013-04-19 CN CN201380022199.1A patent/CN104254839B/zh active Active
- 2013-04-19 RU RU2014143063A patent/RU2639944C2/ru active
- 2013-04-19 WO PCT/US2013/037266 patent/WO2013163008A1/en active Application Filing
-
2017
- 2017-05-15 US US15/595,088 patent/US10223253B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
RU2639944C2 (ru) | 2017-12-25 |
BR112014022764B1 (pt) | 2021-10-13 |
JP2015515076A (ja) | 2015-05-21 |
CN104254839B (zh) | 2018-10-12 |
WO2013163008A1 (en) | 2013-10-31 |
BR112014022764A8 (pt) | 2017-12-12 |
US9652289B2 (en) | 2017-05-16 |
US20130290667A1 (en) | 2013-10-31 |
CN104254839A (zh) | 2014-12-31 |
US20170249243A1 (en) | 2017-08-31 |
TWI605340B (zh) | 2017-11-11 |
EP2842032B1 (en) | 2020-05-06 |
JP6275119B2 (ja) | 2018-02-07 |
US10223253B2 (en) | 2019-03-05 |
EP2842032A1 (en) | 2015-03-04 |
BR112014022764A2 (ru) | 2017-06-20 |
TW201405308A (zh) | 2014-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2014143063A (ru) | Системы и способы для разделения однонаправленных списков для выделения элементов памяти | |
JP2015515076A5 (ru) | ||
US10514955B2 (en) | Method and device for allocating core resources of a multi-core CPU | |
CN102724277B (zh) | 虚拟机热迁移和部署的方法、服务器及集群系统 | |
CN108268317B (zh) | 一种资源分配方法及装置 | |
US20130263151A1 (en) | Consistent Hashing Table for Workload Distribution | |
US20180157729A1 (en) | Distributed in-memory database system and method for managing database thereof | |
US20150127834A1 (en) | Optimizing placement of virtual machines | |
US9332067B2 (en) | Load sharing method and apparatus | |
WO2015117565A1 (en) | Methods and systems for dynamically allocating resources and tasks among database work agents in smp environment | |
US20150186184A1 (en) | Apparatus and method for optimizing system performance of multi-core system | |
US20130339977A1 (en) | Managing task load in a multiprocessing environment | |
CN103905531A (zh) | 一种集群存储系统中转换节点间负载均衡方法 | |
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
WO2016199955A1 (ko) | 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법 | |
AU2013271250A1 (en) | Virtualization management method and related apparatuses for managing hardware resources of a communication device | |
US20180227139A1 (en) | Method of Terminal-Based Conference Load-Balancing, and Device and System Utilizing Same | |
CN107969153B (zh) | 一种资源分配方法、装置及numa系统 | |
US10599436B2 (en) | Data processing method and apparatus, and system | |
CN104021029A (zh) | 一种空间信息云计算系统及其实现方法 | |
US8671232B1 (en) | System and method for dynamically migrating stash transactions | |
US20140059560A1 (en) | Resource allocation in multi-core architectures | |
JP6158751B2 (ja) | 計算機資源割当装置及び計算機資源割当プログラム | |
US10891056B2 (en) | Virtualization of memory compute functionality | |
CN115202859A (zh) | 一种内存扩展方法以及相关设备 |