— Syllabus — Software Transactional Memory

نویسنده

  • Michal Young
چکیده

“Transactional memory” means that, instead of using explicit locks to protect from data races (like the Java synchronized construct), a programmer could declare a block of code atomic and rely on the underlying software and hardware system to ensure that code within the block executes as if atomic. The transactional memory system might use any of several concurrency control protocols, with some combination of transaction logging and locking, but all such systems provide some means for a transaction (the code within the atomic section) to abort and retry when conflicts are detected. In this sense transaction support is at least somewhat optimistic or speculative, because transactions are allowed to begin execution without a priori guarantees that they will be able to finish. Speculative execution can take advantage of multicore and other parallel processors by providing a higher degree of concurrency, without requiring programmers to design delicate and error-prone fine-grain locking schemes. Transactional memory is a leading candidate to replace explicit locks and monitorstyle synchronization in future programming languages. It is currently a hot research topic in both hardware architecture and programming language design. At the very least we can expect some hardware support for transactions in the near future. Whether transactions as a programming construct is widely adopted in mainstream programming languages, and when, remains an open question. In this short course for Ph.D. students we will read and discuss several research papers on software transactional memory systems. The course will be accessible to students who have some familiarity with concurrency (multi-threading or parallel processing) but who are completely unfamiliar with transactional memory.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Integrated Hardware-Software Approach to Transactional Memory

Transactional memory has been proposed as a general and flexible way to allow programs to read and modify disparate primary-memory locations atomically as a single operation, much as a database transaction can atomically modify many records on disk. Hardware transactional memory supports atomicity through architectural means, whereas software transactional memory supports atomicity through lang...

متن کامل

Debugging with Transactional Memory

Transactional programming promises to substantially simplify the development of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. To our knowledge, nobody has yet addressed issues involved with debugging programs executed using transa...

متن کامل

Software lock elision for x86 machine code

More than a decade after becoming a topic of intense research there is no transactional memory hardware nor any examples of software transactional memory use outside the research community. Using software transactional memory in large pieces of software needs copious source code annotations and often means that standard compilers and debuggers can no longer be used. At the same time, overheads ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008