6 research outputs found

    Utilizing the Linux Userfaultfd System Call in a Compaction Phase of a Garbage Collection Process

    Get PDF
    This publication describes techniques for utilizing the Linux userfaultfd system call in a garbage collection process performed concurrently with the execution of application threads (mutators) in a software application. During the garbage collection process, a stop-the-world pause occurs where currently mapped physical pages of a heap are moved to a temporary location (e.g., temp-space) and a new memory range of the heap is registered with userfaultfd. During a concurrent compaction phase of the garbage collection process, if a mutator accesses an area (e.g., a to-space page) in the heap that has not yet been processed by the garbage collector thread, and thus does not have a page allocated, the mutator will receive a SIGBUS signal (bus error) indicating a page fault. Responsive to receiving the registered page fault, a page buffer (e.g., 4KB page buffer) is created. All the reachable objects that should be located on the missing page are copied to the page buffer and the references inside these objects are updated to the corresponding new addresses. Finally, the userfaultfd input/output control (ioctl) system call is invoked by the user space to hand over the page buffer to the kernel, including an indication of the page to make visible on the faulting address. In response, the kernel can copy the contents of the page buffer to a page and map that page

    Does Financial Liberalization, Spur Economic Growth and Poverty Reduction in Six Sub-Saharan African Countries; Panel Unit Root and Panel Vector Error Correction Tests

    Get PDF
    This paper examines the linkage among financial liberalization, economic growth and poverty reduction in Sub-Saharan African countries (SSA). The study applies the recent panel Co-integration and vector error correction mechanism to address the heterogeneity and cross-border interdependence over the period of 1980 to 2010. The results reveal that economic growth is positively associated with poverty reduction and financial liberalization coefficients are positively related to economic growth. It implies that financial liberalization causes economic growth. However, the coefficients of financial liberalization are not significant in the poverty equation suggests that financial liberalization does not have direct impact on poverty reduction in the six Sub-Saharan African countries. This implies that the financial liberalization effects of poverty are upon contingent on the distributional changes introduced by the growth and the configuration of institutions and policies that supported the liberalization process and particularly, the existence or otherwise of good governance

    Does Financial Liberalization, Spur Economic Growth and Poverty Reduction in Six Sub-Saharan African Countries; Panel Unit Root and Panel Vector Error Correction Tests

    Get PDF
    This paper examines the linkage among financial liberalization, economic growth and poverty reduction in Sub-Saharan African countries (SSA). The study applies the recent panel Co-integration and vector error correction mechanism to address the heterogeneity and cross-border interdependence over the period of 1980 to 2010. The results reveal that economic growth is positively associated with poverty reduction and financial liberalization coefficients are positively related to economic growth. It implies that financial liberalization causes economic growth. However, the coefficients of financial liberalization are not significant in the poverty equation suggests that financial liberalization does not have direct impact on poverty reduction in the six Sub-Saharan African countries. This implies that the financial liberalization effects of poverty are upon contingent on the distributional changes introduced by the growth and the configuration of institutions and policies that supported the liberalization process and particularly, the existence or otherwise of good governance

    Algoritam za zbrinjavanje memorije s označavanjem i smanjenim oslobađanjem

    Get PDF
    In this paper two simple improvements over traditional mark-sweep collector are proposed. The core idea is placing small objects of the same type in buckets. The buckets are organised in such way to eliminate the internal fragmentation, sweeping, and freeing inside them. The measured improvement of garbage collection time over traditional mark-sweep is 19%. Another proposed improvement is more general and is applicable to other garbage collection algorithms as well. It uses heuristics to control the heap growth. The regularities in behaviour of objects of particular types are used to determine whether the collection should be performed or avoided in favour of immediate heap expansion. The heap expansion algorithm reduces garbage collection time over traditional mark-sweep for 49% while keeping the heap size approximately the same.U ovom članku opisana su dva jednostavna poboljšanja algoritma označi-oslobodi. Osnovna ideja jest smještanje malih objekata istog tipa u pretince. Pretinci su organizirani tako da se u njima ne pojavljuje unutarnja fragmentacija, a uklanja se i potreba za oslobađanjem blokova zauzetih nedohvatljivim objektima. Vrijeme provedeno u zbrinjavanju manje je za 19% u odnosu na klasični algoritam označi-oslobodi. Drugo poboljšanje je općenitije i moguće ga je primijeniti i na druge algoritme za zbrinjavanje memorije. U njemu rastom gomile upravlja heuristički algoritam koji koristi pravilnosti u ponašanju objekata različitih tipova. Na temelju njih, algoritam odlučuje hoće li gomila biti zbrinuta ili odmah proširena. Heuristička inačica algoritma smanjuje vrijeme provedeno u zbrinjavanju u odnosu na tradicionalni algoritam označi-oslobodi za 49%, a da pri tome zahtijeva približno istu količinu memorije

    A study of thread-local garbage collection for multi-core systems

    Get PDF
    With multi-processor systems in widespread use, and programmers increasingly writing programs that exploit multiple processors, scalability of application performance is more of an issue. Increasing the number of processors available to an application by a factor does not necessarily boost that application's performance by that factor. More processors can actually harm performance. One cause of poor scalability is memory bandwidth becoming saturated as processors contend with each other for memory bus use. More multi-core systems have a non-uniform memory architecture and placement of threads and the data they use is important in tackling this problem. Garbage collection is a memory load and store intensive activity, and whilst well known techniques such as concurrent and parallel garbage collection aim to increase performance with multi-core systems, they do not address the memory bottleneck problem. One garbage collection technique that can address this problem is thread-local heap garbage collection. Smaller, more frequent, garbage collection cycles are performed so that intensive memory activity is distributed. This thesis evaluates a novel thread-local heap garbage collector for Java, that is designed to improve the effectiveness of this thread-independent garbage collection
    corecore