2017
DOI: 10.1145/3133869
|View full text |Cite
|
Sign up to set email alerts
|

SAVI objects: sharing and virtuality incorporated

Abstract: Direct sharing and storing of memory objects allows high-performance and low-overhead collaboration between parallel processes or application workflows with loosely coupled programs. However, sharing of objects is hindered by the inability to use subtype polymorphism which is common in object-oriented programming languages. That is because implementations of subtype polymorphism in modern compilers rely on using virtual tables stored at process-specific locations, which makes objects unusable in processes othe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
11
1

Year Published

2018
2018
2022
2022

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 5 publications
(12 citation statements)
references
References 60 publications
(43 reference statements)
0
11
1
Order By: Relevance
“…Memristors have also been proposed for building byteaddressable non-volatile memories. There have been various works centered around system support for non-volatile memory, including file systems [30], memory allocators [11,83], programming models [16,27,106], durable data structures [31,55,113], representation of pointers [18,28,34,35], and architecture support [60,80,82,99].…”
Section: Related Workmentioning
confidence: 99%
“…Memristors have also been proposed for building byteaddressable non-volatile memories. There have been various works centered around system support for non-volatile memory, including file systems [30], memory allocators [11,83], programming models [16,27,106], durable data structures [31,55,113], representation of pointers [18,28,34,35], and architecture support [60,80,82,99].…”
Section: Related Workmentioning
confidence: 99%
“…For the same reason, libraries supporting shared memory, such as Boost, explicitly forbid sharing polymorphic objects [Boost C++ Libraries 2018c]. Hajj et al [Hajj et al 2017] proposed two techniques to solve this issue, namely virtual table duplication and hashing-based dynamic dispatch. The first technique duplicates virtual tables in a fixed-address region of each process involved in sharing.…”
Section: Issue Of Sharing Polymorphic Objectsmentioning
confidence: 99%
“…The duplicated virtual tables make the native pointers to virtual tables reusable across processes, as shown in Figure 2(a). Following Hajj et al [Hajj et al 2017], we will refer to this technique as DVT (Duplicate Virtual Table). The second technique totally gets rid of virtual table pointers, and realizes dynamic dispatch by looking up in a global virtual table using a hash number stored in each object, as shown in Figure 2(b).…”
Section: Issue Of Sharing Polymorphic Objectsmentioning
confidence: 99%
See 2 more Smart Citations