ACM Home Page
Please provide us with feedback. Feedback
Operating systems transactions
Full text PdfPdf (490 KB)
Source
ACM Symposium on Operating Systems Principles archive
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles table of contents
Big Sky, Montana, USA
SESSION: I/O table of contents
Pages 161-176  
Year of Publication: 2009
ISBN:978-1-60558-752-3
Authors
Donald E. Porter  The University of Texas at Austin, Austin, TX, USA
Owen S. Hofmann  The University of Texas at Austin, Austin, TX, USA
Christopher J. Rossbach  The University of Texas at Austin, Austin, TX, USA
Alexander Benn  The University of Texas at Austin, Austin, TX, USA
Emmett Witchel  The University of Texas at Austin, Austin, TX, USA
Sponsors
ACM: Association for Computing Machinery
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 93,   Downloads (12 Months): 111,   Citation Count: 0
Additional Information:

abstract   references   index terms  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1629575.1629591
What is a DOI?

ABSTRACT

Applications must be able to synchronize accesses to operating system resources in order to ensure correctness in the face of concurrency and system failures. System transactions allow the programmer to specify updates to heterogeneous system resources with the OS guaranteeing atomicity, consistency, isolation, and durability (ACID). System transactions efficiently and cleanly solve persistent concurrency problems that are difficult to address with other techniques. For example, system transactions eliminate security vulnerabilities in the file system that are caused by time-of-check-to-time-of-use (TOCTTOU) race conditions. System transactions enable an unsuccessful software installation to roll back without disturbing concurrent, independent updates to the file system.

This paper describes TxOS, a variant of Linux 2.6.22 that implements system transactions. TxOS uses new implementation techniques to provide fast, serializable transactions with strong isolation and fairness between system transactions and non-transactional activity. The prototype demonstrates that a mature OS running on commodity hardware can provide system transactions at a reasonable performance cost. For instance, a transactional installation of OpenSSH incurs only 10% overhead, and a non-transactional compilation of Linux incurs negligible overhead on TxOS. By making transactions a central OS abstraction, TxOS enables new transactional services. For example, one developer prototyped a transactional ext3 file system in less than one month.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
M.K. Aguilera, A. Merchant, M. Shah, A. Veitch, and C. Karamanolis. Sinfonia: a new paradigm for building scalable distributed systems. In SOSP, New York, NY, USA, 2007. ACM.
 
4
D.J. Bernstein. Some thoughts on security after ten years of qmail 1.0. In CSAW, 2007.
 
5
C. Blundell, E.C. Lewis, and M.M.K. Martin. Deconstructing transactions: The subtleties of atomicity. In Fourth Annual Workshop on Duplicating, Deconstructing, and Debunking. Jun 2005.
 
6
N. Borisov, R. Johnson, N. Sastry, and D. Wagner. Fixing races for fun and profit: How to abuse atime. In USENIX Security, 2005.
 
7
M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L.P. Chew. Optimistic parallelism requires abstractions. In PLDI, New York, NY, USA, 2007. ACM Press.
 
8
J. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool, 2006.
 
9
B. Liskov, D. Curtis, P. Johnson, and R. Scheifer. Implementation of Argus. SOSP, 1987.
 
10
P. Magnusson, M. Christianson, and J.E. et al. Simics: A full system simulation platform. In IEEE Computer, Feb 2002.
 
11
P. McDougall. Microsoft pulls buggy windows vista sp1 les. In Information Week. http://www.informationweek.com/story/showArticle.jhtml?articleID=206800819.
 
12
P.E. McKenney. Exploiting Deferred Destruction: An Analysis of Read-Copy Update Techniques in Operating System Kernels. PhD thesis, 2004.
 
13
Microsoft. What is system restore. 2008. http://support.microsoft.com/kb/959063.
 
14
C.C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In IISWC, 2008.
 
15
K.E. Moore, J. Bobba, M.J. Moravan, M.D. Hill, and D.A. Wood. LogTM: Log-based transactional memory. In HPCA, 2006.
 
16
M.J. Moravan, J. Bobba, K.E. Moore, L. Yen, M.D. Hill, B. Liblit, M.M. Swift, and D.A. Wood. Supporting nested transactional memory in LogTM. In ASPLOS, 2006.
 
17
N. Murphy, M. Tonkelowitz, and M. Vernal. The design and implementation of the database file system, 2002.
 
18
E.B. Nightingale, P.M. Chen, and J. Flinn. Speculative execution in a distributed file system. In SOSP, 2005.
 
19
E.B. Nightingale, D. Peek, P.M. Chen, and J. Flinn. Parallelizing security checks on commodity hardware. In ASPLOS, 2008.
 
20
NIST. National Vulnerability Database. http://nvd.nist.gov/, 2008.
 
21
M.A. Olson. The design and implementation of the inversion file system. In USENIX, 1993.
 
22
W. Pugh. Skip lists: a probabilistic alternative to balanced trees. Communications of the ACM, 33:668--676, 1990.
 
23
R. Rajwar and J.R. Goodman. Transactional lock-free execution of lock-based programs. ASPLOS, 2002.
 
24
H. Ramadan, C. Rossbach, D. Porter, O. Hofmann, A. Bhandari, and E. Witchel. MetaTM/TxLinux: Transactional memory for an operating system. In ISCA, 2007.
 
25
H.E. Ramadan, I. Roy, M. Herlihy, and E. Witchel. Committing conflicting transactions in an STM. PPoPP, 2009.
 
26
C. Rossbach, O. Hofmann, D. Porter, H. Ramadan, A. Bhandari, and E. Witchel. TxLinux: Using and managing transactional memory in an operating system. In SOSP, 2007.
 
27
M. Russinovich and D. Solomon. Windows Internals. Microsoft Press, 2009.
 
28
F. Schmuck and J. Wylie. Experience with transactions in QuickSilver. In SOSP. ACM, 1991.
 
29
R. Sears and E. Brewer. Stasis: Flexible transactional storage. In OSDI, 2006.
 
30
M.I. Seltzer. Transaction support in a log-structured file system. In 9th International Conference on Data Engineering, 1993.
 
31
A.Z. Spector, D. Daniels, D. Duchamp, J.L. Eppinger, and R. Pausch. Distributed transactions for reliable systems. In SOSP, 1985.
 
32
R. Spillane, S. Gaikwad, M. Chinni, E. Zadok, and C.P. Wright. Enabling transactional file access via lightweight kernel extensions. FAST, 2009.
 
33
H. Volos, A.J. Tack, N. Goyal, M.M. Swift, and A. Welc. xCalls: Safe I/O in memory transactions. In EuroSys, 2009.
 
34
M.J. Weinstein, J. Thomas W. Page, B.K. Livezey, and G.J. Popek. Transactions and synchronization in a distributed operating system. In SOSP, 1985.
 
35
C.P. Wright, R. Spillane, G. Sivathanu, and E. Zadok. Extending ACID semantics to the file system. Trans. Storage, 3(2):4, 2007.
 
36
M. Zalewski. Delivering signals for fun and profit. 2001.
 
37
C. Zilles and L. Baugh. Extending hardware transactional memory to support non-busy waiting and non-transactional actions. In TRANSACT, Jun 2006.
 
38
X. Cai, Y. Gui, and R. Johnson. Exploiting unix file-system races via algorithmic complexity attacks. Oakland, 2009.
 
39
C. Cao Minh, M. Trautmann, J. Chung, A. McDonald, N. Bronson, J. Casper, C. Kozyrakis, and K. Olukotun. An effective hybrid transactional memory system with strong isolation guarantees. In ISCA. Jun 2007.
 
40
C. Cowan, S. Beattie, C. Wright, and G. Kroah-Hartman. RaceGuard: Kernel protection from temporary file race vulnerabilities. In USENIX Security 2001, pages 165--176.
 
41
P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid transactional memory. In ASPLOS, 2006.
 
42
D. Dean and A.J. Hu. Fixing races for fun and profit: how to use access(2). In USENIX Security, pages 14--26, 2004.
 
43
D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC, pages 194--208, 2006.
 
44
U. Drepper. Secure file descriptor handling. In LiveJournal, 08.
 
45
E. Gal and S. Toledo. A transactional flash file system for microcontrollers. In USENIX, 2005.
 
46
N. Gehani, H.V. Jagadish, and W.D. Roome. Odefs: A file system interface to an object-oriented database. In VLDB, 1994.
 
47
S. Ghemawat, H. Gobioff, and S.-T. Leung. The google file system. SOSP, 2003.
 
48
J. Gray. Notes on data base operating systems. In Operating Systems, An Advanced Course. Springer-Verlag, 1978.
 
49
J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993.
 
50
L. Hammond, V. Wong, M. Chen, B. Carlstrom, J. Davis, B. Hertzberg, M. Prabhu, H. Wijaya, C. Kozyrakis, and K. Olukotun. Transactional memory coherence and consistency. In ISCA, June 2004.
 
51
R. Haskin, Y. Malachi, and G. Chan. Recovery management in QuickSilver. ACM Trans. Comput. Syst., 6(1):82--108, 1988.
 
52
M. Herlihy and E. Koskinen. Transactional boosting: A methodology for highly-concurrent transactional objects. In PPoPP, 2008.
 
53
M. Herlihy, V. Luchangco, M. Moir, and I. William, N. Scherer. Software transactional memory for dynamic-sized data structures. In PODC, 2003.
 
54
M.P. Herlihy and J.M. Wing. Linearizability: a correctnesscondition for concurrent objects. ACM TOPLAS, 12(3), 1990.