{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:26:41Z","timestamp":1750307201651,"version":"3.41.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2012,1,1]],"date-time":"2012-01-01T00:00:00Z","timestamp":1325376000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["CCF-0621487CNS-0509474CNS-0834392CCF-0811697CCF-0937959"],"award-info":[{"award-number":["CCF-0621487CNS-0509474CNS-0834392CCF-0811697CCF-0937959"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000144","name":"Division of Computer and Network Systems","doi-asserted-by":"publisher","award":["CCF-0621487CNS-0509474CNS-0834392CCF-0811697CCF-0937959"],"award-info":[{"award-number":["CCF-0621487CNS-0509474CNS-0834392CCF-0811697CCF-0937959"]}],"id":[{"id":"10.13039\/100000144","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Storage"],"published-print":{"date-parts":[[2012,1]]},"abstract":"<jats:p>\n            We present\n            <jats:italic>anticipatory memory allocation<\/jats:italic>\n            (AMA), a new method to build kernel code that is robust to memory-allocation failures. AMA avoids the usual difficulties in handling allocation failures through a novel combination of static and dynamic techniques. Specifically, a developer, with assistance from AMA static analysis tools, determines how much memory a particular call into a kernel subsystem will need, and then preallocates said amount immediately upon entry to the kernel; subsequent allocation requests are serviced from the preallocated pool and thus guaranteed never to fail. We describe the static and runtime components of AMA, and then present a thorough evaluation of Linux ext2-mfr, a case study in which we transform the Linux ext2 file system into a memory-failure robust version of itself. Experiments reveal that ext2-mfr avoids memory-allocation failures successfully while incurring little space or time overhead.\n          <\/jats:p>","DOI":"10.1145\/2078861.2078863","type":"journal-article","created":{"date-parts":[[2012,1,31]],"date-time":"2012-01-31T14:49:20Z","timestamp":1328021360000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Making the common case the only case with anticipatory memory allocation"],"prefix":"10.1145","volume":"7","author":[{"given":"Swaminathan","family":"Sundararaman","sequence":"first","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yupu","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sriram","family":"Subramanian","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrea C.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Remzi H.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,2,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542431.1542450"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/945445.945455"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178446"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2006.26"},{"volume-title":"Proceedings of the International Conference on Dependable Systems and Networks (DSN'08)","author":"Bairavasundaram L. N.","key":"e_1_2_1_5_1","unstructured":"Bairavasundaram , L. N. , Rungta , M. , Agrawal , N. , Arpaci-Dusseau , A. C. , Arpaci-Dusseau , R. H. , and Swift , M. M . 2008. Systematically benchmarking the effects of disk pointer corruption . In Proceedings of the International Conference on Dependable Systems and Networks (DSN'08) . Bairavasundaram, L. N., Rungta, M., Agrawal, N., Arpaci-Dusseau, A. C., Arpaci-Dusseau, R. H., and Swift, M. M. 2008. Systematically benchmarking the effects of disk pointer corruption. In Proceedings of the International Conference on Dependable Systems and Networks (DSN'08)."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134000"},{"volume-title":"Concurrency Control and Recovery in Database Systems","author":"Bernstein P. A.","key":"e_1_2_1_7_1","unstructured":"Bernstein , P. A. and Vassos Hadzilacos , N. G. 1987. Concurrency Control and Recovery in Database Systems . Addison Wesley . Bernstein, P. A. and Vassos Hadzilacos, N. G. 1987. Concurrency Control and Recovery in Database Systems. Addison Wesley."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the USENIX Summer Technical Conference (USENIX'94)","author":"Bonwick J.","year":"1994","unstructured":"Bonwick , J. 1994 . The slab allocator: An object-caching kernel memory allocator . In Proceedings of the USENIX Summer Technical Conference (USENIX'94) . Bonwick, J. 1994. The slab allocator: An object-caching kernel memory allocator. In Proceedings of the USENIX Summer Technical Conference (USENIX'94)."},{"key":"e_1_2_1_9_1","unstructured":"Bovet D. P. and Cesati M. 2006. Understanding the Linux Kernel. O'Reilly.   Bovet D. P. and Cesati M. 2006. Understanding the Linux Kernel. O'Reilly."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375634.1375655"},{"volume-title":"Proceedings of the 1ST Workshop on Evaluating and Architecting System Depandibility (EASY'01)","author":"Brown A. B.","key":"e_1_2_1_11_1","unstructured":"Brown , A. B. and Patterson , D. A . 2001. To err is human . In Proceedings of the 1ST Workshop on Evaluating and Architecting System Depandibility (EASY'01) . Brown, A. B. and Patterson, D. A. 2001. To err is human. In Proceedings of the 1ST Workshop on Evaluating and Architecting System Depandibility (EASY'01)."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1180405.1180445"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375634.1375656"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/11547662_7"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502042"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/780732.780743"},{"volume-title":"EWD623: The Mathematics Behind The Bankers Algorithm. Selected Writings on Computing: A Personal Perspective","author":"Dijkstra E. W.","key":"e_1_2_1_17_1","unstructured":"Dijkstra , E. W. 1977. EWD623: The Mathematics Behind The Bankers Algorithm. Selected Writings on Computing: A Personal Perspective , Springer , Berlin . Dijkstra, E. W. 1977. EWD623: The Mathematics Behind The Bankers Algorithm. Selected Writings on Computing: A Personal Perspective, Springer, Berlin."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502041"},{"volume-title":"Proceedings of the 5th International Conference Verification, Model Checking and Abstract Interpretation (VMCAI'04)","author":"Engler D.","key":"e_1_2_1_19_1","unstructured":"Engler , D. and Musuvathi , M . 2004. Static analysis versus software model checking for bug finding . In Proceedings of the 5th International Conference Verification, Model Checking and Abstract Interpretation (VMCAI'04) . Engler, D. and Musuvathi, M. 2004. Static analysis versus software model checking for bug finding. In Proceedings of the 5th International Conference Verification, Model Checking and Abstract Interpretation (VMCAI'04)."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/224056.224076"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1620405.1620426"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1294261.1294290"},{"volume-title":"Proceedings of the 6th USENIX Symposium on File and Storage Technologies (FAST'08)","author":"Gunawi H. S.","key":"e_1_2_1_23_1","unstructured":"Gunawi , H. S. , Rubio-Gonzalez , C. , Arpaci-Dusseau , A. C. , Arpaci-Dusseau , R. H. , and Liblit , B . 2008. EIO: Error handling is occasionally correct . In Proceedings of the 6th USENIX Symposium on File and Storage Technologies (FAST'08) . 207--222. Gunawi, H. S., Rubio-Gonzalez, C., Arpaci-Dusseau, A. C., Arpaci-Dusseau, R. H., and Liblit, B. 2008. EIO: Error handling is occasionally correct. In Proceedings of the 6th USENIX Symposium on File and Storage Technologies (FAST'08). 207--222."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512539"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/604131.604148"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_3"},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of the USENIX Summer Technical Conference (USENIX'86)","author":"Kleiman S. R.","year":"1986","unstructured":"Kleiman , S. R. 1986 . Vnodes: An architecture for multiple file system types in Sun UNIX . In Proceedings of the USENIX Summer Technical Conference (USENIX'86) . 238--247. Kleiman, S. R. 1986. Vnodes: An architecture for multiple file system types in Sun UNIX. In Proceedings of the USENIX Summer Technical Conference (USENIX'86). 238--247."},{"volume-title":"Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)","author":"Li Z.","key":"e_1_2_1_28_1","unstructured":"Li , Z. , Lu , S. , Myagmar , S. , and Zhou , Y . 2004. CP-Miner: A tool for finding copy-paste and related bugs in operating system code . In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04) . Li, Z., Lu, S., Myagmar, S., and Zhou, Y. 2004. CP-Miner: A tool for finding copy-paste and related bugs in operating system code. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/379240.379263"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_31_1","unstructured":"Morton A. 2007. Re: {patch} jbd slab cleanups. kerneltrap.org\/mailarchive\/linux-fsdevel\/2007\/9\/19\/322280\/thread#mid-322280.  Morton A. 2007. Re: {patch} jbd slab cleanups. kerneltrap.org\/mailarchive\/linux-fsdevel\/2007\/9\/19\/322280\/thread#mid-322280."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/1060289.1060297"},{"volume-title":"Proceedings of the International Conference on Compiler Construction (CC'02)","author":"Necula G. C.","key":"e_1_2_1_33_1","unstructured":"Necula , G. C. , McPeak , S. , Rahul , S. P. , and Weimer , W . 2002. Cil: An infrastructure for C program analysis and transformation . In Proceedings of the International Conference on Compiler Construction (CC'02) . 213--228. Necula, G. C., McPeak, S., Rahul, S. P., and Weimer, W. 2002. Cil: An infrastructure for C program analysis and transformation. In Proceedings of the International Conference on Compiler Construction (CC'02). 213--228."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095830"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095833"},{"volume-title":"Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)","author":"Rinard M.","key":"e_1_2_1_36_1","unstructured":"Rinard , M. , Cadar , C. , Dumitran , D. , Roy , D. M. , Leu , T. , and Beebe , W. S. J. 2004. Enhancing server availability and security through failure-oblivious computing . In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04) . Rinard, M., Cadar, C., Dumitran, D., Roy, D. M., Leu, T., and Beebe, W. S. J. 2004. Enhancing server availability and security through failure-oblivious computing. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542506"},{"volume-title":"Proceedings of the 8th USENIX Symposium on File and Storage Technologies (FAST'10)","author":"Sundararaman S.","key":"e_1_2_1_38_1","unstructured":"Sundararaman , S. , Subramanian , S. , Rajimwale , A. , Arpaci-Dusseau , A. C. , Arpaci-Dusseau , R. H. , and Swift , M. M . 2010. Membrane: Operating system support for restartable file systems . In Proceedings of the 8th USENIX Symposium on File and Storage Technologies (FAST'10) . Sundararaman, S., Subramanian, S., Rajimwale, A., Arpaci-Dusseau, A. C., Arpaci-Dusseau, R. H., and Swift, M. M. 2010. Membrane: Operating system support for restartable file systems. In Proceedings of the 8th USENIX Symposium on File and Storage Technologies (FAST'10)."},{"key":"e_1_2_1_39_1","unstructured":"TUGS. 2010. StackAnalyzer stack usage analysis. http:\/\/www.absint.com\/stackanalyzer\/.  TUGS. 2010. StackAnalyzer stack usage analysis. http:\/\/www.absint.com\/stackanalyzer\/."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542431.1542451"},{"key":"e_1_2_1_41_1","volume-title":"Proceedings of the International Conference on Software Engineering (ICSE'81)","author":"Weiser M.","year":"1981","unstructured":"Weiser , M. 1981 . Program slicing . In Proceedings of the International Conference on Software Engineering (ICSE'81) . 439--449. Weiser, M. 1981. Program slicing. In Proceedings of the International Conference on Software Engineering (ICSE'81). 439--449."},{"volume-title":"Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI'06)","author":"Yang J.","key":"e_1_2_1_42_1","unstructured":"Yang , J. , Sar , C. , and Engler , D . 2006. EXPLODE: A lightweight, general system for finding serious storage system errors . In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI'06) . Yang, J., Sar, C., and Engler, D. 2006. EXPLODE: A lightweight, general system for finding serious storage system errors. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI'06)."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2006.7"},{"volume-title":"Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)","author":"Yang J.","key":"e_1_2_1_44_1","unstructured":"Yang , J. , Twohey , P. , Engler , D. , and Musuvathi , M . 2004. Using model checking to find serious file system errors . In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04) . Yang, J., Twohey, P., Engler, D., and Musuvathi, M. 2004. Using model checking to find serious file system errors. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI'04)."}],"container-title":["ACM Transactions on Storage"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2078861.2078863","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2078861.2078863","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T10:06:16Z","timestamp":1750241176000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2078861.2078863"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012,1]]},"references-count":44,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2012,1]]}},"alternative-id":["10.1145\/2078861.2078863"],"URL":"https:\/\/doi.org\/10.1145\/2078861.2078863","relation":{},"ISSN":["1553-3077","1553-3093"],"issn-type":[{"type":"print","value":"1553-3077"},{"type":"electronic","value":"1553-3093"}],"subject":[],"published":{"date-parts":[[2012,1]]},"assertion":[{"value":"2011-07-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2011-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-02-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}