검색 상세

자바스크립트 소프트웨어 트랜잭셔널 메모리 시스템

jSTM: JavaScript Software Transactional Memory System

심경주 (Kyoungju Sim, 포항공과대학교)

원문보기

초록 moremore
This thesis proposes a JavaScript software transactional memory (jSTM) system only using features of HTML5. As web applications become widely used because of high portability, web applications become more complicated. To increase the processing speed of these applications, HTML5 supports web workers for JavaScript parallelization. However, the web worker is not perfectly suitable for parallelization because web workers do access the same memory address. In this reason, several JavaScript parallelization systems introduce transactional memory systems, but these systems need to install additional components. In contrast, with the jSTM, programmers can parallelize web applications easier than lock-based systems without installing additional components. This thesis implemented the prototype of jSTM system, and analyzed the overhead to improve the system.
This thesis proposes a JavaScript software transactional memory (jSTM) system only using features of HTML5. As web applications become widely used because of high portability, web applications become more complicated. To increase the processing speed of these applications, HTML5 supports web workers for JavaScript parallelization. However, the web worker is not perfectly suitable for parallelization because web workers do access the same memory address. In this reason, several JavaScript parallelization systems introduce transactional memory systems, but these systems need to install additional components. In contrast, with the jSTM, programmers can parallelize web applications easier than lock-based systems without installing additional components. This thesis implemented the prototype of jSTM system, and analyzed the overhead to improve the system.
목차 moremore
I. Introduction 2
II. Background 5
2.1. Parallelization 5
...
I. Introduction 2
II. Background 5
2.1. Parallelization 5
2.2. Transactional memory system 7
2.2.1. Eager conflict detection and Lazy conflict detection 8
2.2.2. Undo log and Redo log 8
2.3. JavaScript Parallelization 9
III. Design and Implementation 10
3.1. Committing process 10
3.2. Backup process using deep copy for global variables 11
3.3. Implementation 14
3.3.1. The architecture of the parallelization system 14
3.3.2. API for parallelization 16
3.3.3. Execution model 17
IV. Evaluation 20
4.1. Evaluation results 20
4.2. Overhead analysis 22
4.2.1. The initialization overhead 24
4.2.2. The overhead of txEnd 25
V. Related work 28
VI. Conclusion 31