Explore chapters and articles related to this topic
Multi-Pattern Matching Based Dynamic Malware Detection in Smart Phones
Published in Krzysztof Iniewski, Santosh K. Kurinec, Sumeet Walia, Energy Efficient Computing & Electronics, 2019
V. S. Devi, S. Roopak, Tony Thomas, Md. Meraj Uddin
Allocating and reclaiming free memory are critical tasks to the function of any modern computer. Some basic forms of memory allocation and garbage collection can be done reversibly with only constant factor overhead in time and space. Allocation is performed by removing the pointer from the free list and handing it to the program requesting the memory. To deallocate a block of memory, the pointer to that block is put on the end of the free list. We assume that all the deallocated memory blocks have been returned to their zeroed-out state.
Optimised memory allocation for less false abortion and better performance in hardware transactional memory
Published in International Journal of Parallel, Emergent and Distributed Systems, 2020
Hardware transactional memory is based on a cache line. Thus in the organisation of heap, we need to take special care of small memory allocations (objects smaller than 64 bytes). Our simple heap organisation is shown in Figure 4. In our memory allocator, we first prepare a special large amount of memory (the super block in Figure 4, we use map to allocate the super block from the operating system) and divide the super block into fixed 64 bytes small blocks. The super block is 64-byte-aligned thus each of the small 64 bytes block fits in a cache line. Each allocation which is smaller than 64 bytes can just get a small block from here. We keep the freed blocks in a freelist to facilitate further allocation. In our mechanism the code in Figure 2(a) can transparently separate the arrays a and b in different cache lines (as shown in Figure 4) and thus we can solve the false abortion problem without altering the code.