% Bibliography of key references for "LaTeX for Thesis and Large Documents"
% For use with BibTeX

@article{Sleator85,
    author	= {Sleator, Daniel Dominic and Tarjan, Robert Endre},
    title	= {Self-Adjusting Binary Search Trees},
    journal	= jacm,
    volume	= 32,
    number	= 3,
    year	= 1985,
    issn	= {0004-5411},
    pages	= {652-686},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/3828.3835},
    address	= {New York, NY, USA},
}

@article{Berger00,
    author	= {Emery D. Berger and Kathryn S. McKinley and Robert D. Blumofe and Paul R. Wilson},
    title	= {Hoard: A Scalable Memory Allocator for Multithreaded Applications},
    booktitle	= {International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX)},
    journal	= sigplan,
    volume	= 35,
    number	= 11,
    month	= nov,
    year	= 2000,
    pages	= {117-128},
    note	= {International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX)},
}

@inproceedings{berger02reconsidering,
    author	= {Emery D. Berger and Benjamin G. Zorn and Kathryn S. McKinley},
    title	= {Reconsidering Custom Memory Allocation},
    booktitle	= {Proceedings of the 17th ACM SIGPLAN Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA) 2002},
    month	= nov,
    year	= 2002,
    location	= {Seattle, Washington, USA},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@article{larson99memory,
    author	= {Per-{\AA}ke Larson and Murali Krishnan},
    title	= {Memory Allocation for Long-Running Server Applications},
    journal	= sigplan,
    volume	= 34,
    number	= 3,
    pages	= {176-185},
    year	= 1999,
    url		= {http://citeseer.ist.psu.edu/article/larson98memory.html}
}

@techreport{gidpt04,
    author	= {Anders Gidenstam and Marina Papatriantafilou and Philippas Tsigas},
    title	= {Allocating Memory in a Lock-Free Manner},
    number	= {2004-04},
    institution	= {Computing Science},
    address	= {Chalmers University of Technology},
    year	= 2004,
    url		= {http://citeseer.ist.psu.edu/gidenstam04allocating.html} 
}

@phdthesis{berger02thesis,
    author	= {Emery Berger},
    title	= {Memory Management for High-Performance Applications},
    school	= {The University of Texas at Austin},
    year	= 2002,
    month	= aug,
    url		= {http://citeseer.ist.psu.edu/article/berger02memory.html}
}

@misc{sgimisc,
    author	= {SGI},
    title	= {The Standard Template Library for {C++}},
    note	= {\href{www.sgi.com/tech/stl/Allocators.html}{www.sgi.com/\-tech/\-stl/\-Allocators.html}},
}

@misc{dlmalloc,
    author	= {Doug Lea},
    title	= {dlmalloc version 2.8.4},
    month	= may,
    year	= 2009,
    note	= {\href{ftp://g.oswego.edu/pub/misc/malloc.c}{ftp://g.oswego.edu/\-pub/\-misc/\-malloc.c}},
}

@misc{ptmalloc3,
    author	= {Wolfram Gloger},
    title	= {ptmalloc version 3},
    month	= may,
    year	= 2006,
    note	= {\href{http://www.malloc.de/malloc/ptmalloc3-current.tar.gz}
    		  {http://www.malloc.de/\-malloc/\-ptmalloc3-current.tar.gz}},
}

@misc{tbbmalloc,
    key		= {tbbmalloc},
    author	= {multiple contributors},
    title	= {Threading Building Blocks},
    month	= mar,
    year	= 2020,
    note	= {\href{https://github.com/oneapi-src/oneTBB/releases/tag/v2020.2}
    		  {https://github.com/\-oneapi-src/\-oneTBB/\-releases/\-tag/\-v2020.2}},
}

@misc{GNUallocAPI,
    author	= {GNU},
    title	= {Summary of malloc-Related Functions},
    year	= 2020,
    note	= {\href{https://www.gnu.org/software/libc/manual/html\_node/Summary-of-Malloc.html}
    		  {https://www.gnu.org/\-software/\-libc/\-manual/\-html\_node/\-Summary-of-Malloc.html}},
}

@misc{SeriallyReusable,
    author	= {IBM},
    title	= {Serially reusable programs},
    month	= mar,
    year	= 2021,
    note	= {\href{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}
    		  {https://www.ibm.com/\-docs/\-en/\-ztpf/\-1.1.0.15?\-topic=structures-serially-reusable-programs}},
}

@misc{librseq,
    author	= {Mathieu Desnoyers},
    title	= {Library for Restartable Sequences},
    month	= mar,
    year	= 2022,
    note	= {\href{https://github.com/compudj/librseq}{https://github.com/\-compudj/\-librseq}},
}

@misc{glibc,
    key		= {glibc},
    author	= {multiple contributors},
    title	= {glibc version 2.31},
    month	= feb,
    year	= 2020,
    note	= {\href{https://www.gnu.org/software/libc}{https://\-www.gnu.org/\-software/\-libc}},
}

@misc{hoard,
    author	= {Emery D. Berger},
    title	= {hoard version 3.13},
    month	= apr,
    year	= 2022,
    note	= {\href{https://github.com/emeryberger/Hoard}{https://github.com/\-emeryberger/\-Hoard}},
}

@misc{rpmalloc,
    author	= {Mattias Jansson},
    title	= {rpmalloc version 1.4.1},
    month	= apr,
    year	= 2022,
    note	= {\href{https://github.com/mjansson/rpmalloc}{https://\-github.com/\-mjansson/\-rpmalloc}},
}

@misc{jemalloc,
    key		= {jemalloc},
    author	= {multiple contributors},
    title	= {jemalloc version 5.2.1},
    month	= apr,
    year	= 2022,
    note	= {\href{https://github.com/jemalloc/jemalloc}{https://github.com/\-jemalloc/\-jemalloc}},
}

@comment{mtmalloc,
    author	= {Greg Nakhimovsky},
    title	= {Improving Scalability of Multithreaded Dynamic Memory Allocation},
    journal	= {Dr. Dobb's},
    month	= jul,
    year	= 2001,
    url		= {http://www.ddj.com/mobile/184404685?pgno=1}
}

@misc{mtmalloc,
    key		= {mtmalloc},
    title	= {mtmalloc},
    year	= 2009,
    note	= {\href{http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libmtmalloc/common/mtmalloc.c}
    		  {http://src.opensolaris.org/\-source/\-xref/\-onnv/\-onnv-gate/\-usr/\-src/\-lib/\-libmtmalloc/\-common/\-mtmalloc.c}},
}

@misc{tcmalloc,
    author	= {Sanjay Ghemawat and Paul Menage},
    title	= {tcmalloc version 1.5},
    month	= jan,
    year	= 2010,
    note	= {\href{http://google-perftools.googlecode.com/files/google-perftools-1.5.tar.gz}
    		  {http://google-perftools.\-googlecode.\-com/\-files/\-google-perftools-1.5.tar.gz}},
}

@misc{uniformPRNG,
    author	= {\CC Standard Library},
    title	= {\lstinline{uniform_int_distribution}},
    month	= apr,
    year	= 2022,
    note	= {\href{https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution}
    		  {https://en.cppreference.com/w/\-cpp/numeric/\-random/\-uniform\_int\_distribution}},
}

@misc{fisherPRNG,
    author	= {\CC Standard Library},
    title	= {\lstinline{fister_f_distribution}},
    month	= apr,
    year	= 2022,
    note	= {\href{https://www.cplusplus.com/reference/random/fisher_f_distribution}
    		  {https://www.cplusplus.com/\-reference/\-random/\-fisher\_f\_distribution}},
}

@inproceedings{streamflow,
    author	= {Scott Schneider and Christos D. Antonopoulos and Dimitrios S. Nikolopoulos},
    title	= {Scalable Locality-Conscious Multithreaded Memory Allocation},
    booktitle	= {International Symposium on Memory Management (ISSM'06)},
    month	= jun,
    year	= 2006,
    pages	= {84-94},
    location	= {Ottawa, Ontario, Canada},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@misc{streamflowweb,
    author	= {Scott Schneider and Christos Antonopoulos and Dimitrios Nikolopoulos},
    title	= {Streamflow},
    note	= {\href{http://people.cs.vt.edu/~scschnei/streamflow}{http://people.cs.vt.edu/\-\char`\~scschnei/\-streamflow}},
}

@inproceedings{Blumofe94,
    author	= {R. Blumofe and C. Leiserson},
    title	= {Scheduling Multithreaded Computations by Work Stealing},
    booktitle	= {Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, New Mexico.},
    pages	= {356-368},
    year	= 1994,
    month	= nov,
    url		= {http://citeseer.ist.psu.edu/article/blumofe94scheduling.html}
}

@article{Johnstone99,
    author	= {Mark S. Johnstone and Paul R. Wilson},
    title	= {The Memory Fragmentation Problem: Solved?},
    journal	= sigplan,
    volume	= 34,
    number	= 3,
    pages	= {26-36},
    year	= 1999,
}

@inproceedings{Grunwald93,
    author	= {Dirk Grunwald and Benjamin G. Zorn and Robert Henderson},
    title	= {Improving the Cache Locality of Memory Allocation},
    booktitle	= {{SIGPLAN} Conference on Programming Language Design and Implementation},
    pages	= {177-186},
    year	= 1993,
    url		= {http://citeseer.ist.psu.edu/grunwald93improving.html}
}

@inproceedings{Wilson95,
    author	= {Wilson, Paul R. and Johnstone, Mark S. and Neely, Michael and Boles, David},
    title	= {Dynamic Storage Allocation: A Survey and Critical Review},
    booktitle	= {Proc. Int. Workshop on Memory Management},
    address	= {Kinross Scotland, UK},
    year	= 1995,
    url		= {http://citeseer.ist.psu.edu/wilson95dynamic.html} 
}

@inproceedings{Siebert00,
    author	= {Fridtjof Siebert},
    title	= {Eliminating External Fragmentation in a Non-moving Garbage Collector for Java},
    booktitle	= {CASES '00: Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems},
    year	= 2000,
    isbn	= {1-58113-338-3},
    pages	= {9-17},
    location	= {San Jose, California, United States},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/354880.354883},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@inproceedings{Lim98,
   author	= {Tian F. Lim and Przemyslaw Pardyak and Brian N. Bershad},
   title	= {A Memory-Efficient Real-Time Non-copying Garbage Collector},
   booktitle	= {ISMM '98: Proceedings of the 1st international symposium on Memory management},
   year		= 1998,
   isbn		= {1-58113-114-3},
   pages	= {118-129},
   location	= {Vancouver, British Columbia, Canada},
   doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/286860.286873},
   publisher	= {ACM Press},
   address	= {New York, NY, USA}
}

@article{Chang01,
    author	= {J. Morris Chang and Woo Hyong Lee and Witawas Srisa-an},
    title	= {A Study of the Allocation Behavior of {C++} Programs},
    journal	= {J. Syst. Softw.},
    volume	= 57,
    number	= 2,
    year	= 2001,
    issn	= {0164-1212},
    pages	= {107-118},
    doi		= {http://dx.doi.org/10.1016/S0164-1212(00)00122-9},
    publisher	= {Elsevier Science Inc.},
    address	= {New York, NY, USA}
}

@article{Herlihy93,
    author	= {Maurice Herlihy},
    title	= {A Methodology for Implementing Highly Concurrent Data Objects},
    journal	= toplas,
    volume	= 15,
    number	= 5,
    year	= 1993,
    issn	= {0164-0925},
    pages	= {745-770},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/161468.161469},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@article{Denning05,
    author	= {Peter J. Denning},
    title	= {The Locality Principle},
    journal	= cacm,
    volume	= 48,
    number	= 7,
    year	= 2005,
    issn	= {0001-0782},
    pages	= {19-24},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/1070838.1070856},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@misc{wilson-locality,
    author	= {Paul R. Wilson},
    title	= {Locality of Reference, Patterns in Program Behavior, Memory Management, and Memory Hierarchies},
    url		= {http://citeseer.ist.psu.edu/337869.html}
}

@inproceedings{Feng05,
    author	= {Yi Feng and Emery D. Berger},
    title	= {A Locality-Improving Dynamic Memory Allocator},
    booktitle	= {Proceedings of the 2005 Workshop on Memory System Performance},
    location	= {Chicago, Illinois},
    publisher	= {ACM},
    address	= {New York, NY, USA},
    month	= jun,
    year	= 2005,
    pages	= {68-77},
}

@inproceedings{grunwald-locality,
    author	= {Dirk Grunwald and Benjamin Zorn and Robert Henderson},
    title	= {Improving the Cache Locality of Memory Allocation},
    booktitle	= {PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation},
    year	= 1993,
    isbn	= {0-89791-598-4},
    pages	= {177-186},
    location	= {Albuquerque, New Mexico, United States},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/155090.155107},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@article{Alexandrescu01b,
    author	= {Andrei Alexandrescu},
    title	= {{volatile} -- Multithreaded Programmer's Best Friend},
    journal	= {Dr. Dobb's},
    month	= feb,
    year	= 2001,
    url		= {http://www.ddj.com/cpp/184403766}
}

@article{Attardi03,
    author	= {Joseph Attardi and Neelakanth Nadgir},
    title	= {A Comparison of Memory Allocators in Multiprocessors},
    journal	= {Sun Developer Network},
    month	= jun,
    year	= 2003,
    note	= {\href{http://developers.sun.com/solaris/articles/multiproc/multiproc.html}
    		  {http://developers.sun.com/\-solaris/\-articles/\-multiproc/\-multiproc.html}},
}

@unpublished{memlayout,
    author	= {Peter Jay Salzman},
    title	= {Memory Layout and the Stack},
    journal	= {Using GNU's GDB Debugger},
    note	= {\href{http://dirac.org/linux/gdb/02a-Memory\_Layout\_And\_The\_Stack.php}
    		  {http://dirac.org/\-linux/\-gdb/\-02a-Memory\_Layout\_And\_The\_Stack.php}},
}

@unpublished{Ferguson07,
    author	= {Justin N. Ferguson},
    title	= {Understanding the Heap by Breaking It},
    note	= {\href{https://www.blackhat.com/presentations/bh-usa-07/Ferguson/Whitepaper/bh-usa-07-ferguson-WP.pdf}
		  {https://www.blackhat.com/\-presentations/\-bh-usa-07/Ferguson/\-Whitepaper/\-bh-usa-07-ferguson-WP.pdf}},
}

@inproceedings{Huang06,
    author	= {Xianglong Huang and Brian T Lewis and Kathryn S McKinley},
    title	= {Dynamic Code Management: Improving Whole Program Code Locality in Managed Runtimes},
    booktitle	= {VEE '06: Proceedings of the 2nd international conference on Virtual execution environments},
    year	= 2006,
    isbn	= {1-59593-332-6},
    pages	= {133-143},
    location	= {Ottawa, Ontario, Canada},
    doi		= {http://doi.acm.org/10.1145/1134760.1134779},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
 }

@inproceedings{Herlihy03,
    author	= {M. Herlihy and V. Luchangco and M. Moir},
    title	= {Obstruction-free Synchronization: Double-ended Queues as an Example},
    booktitle	= {Proceedings of the 23rd IEEE International Conference on Distributed Computing Systems},
    year	= 2003,
    month	= may,
    url		= {http://www.cs.brown.edu/~mph/publications.html}
}

@techreport{Detlefs93,
    author	= {David L. Detlefs and Al Dosser and Benjamin Zorn},
    title	= {Memory Allocation Costs in Large {C} and {C++} Programs},
    number	= {CU-CS-665-93},
    institution = {University of Colorado},
    address	= {130 Lytton Avenue, Palo Alto, CA 94301 and Campus Box 430, Boulder, CO 80309},
    year	= 1993,
    url		= {http://citeseer.ist.psu.edu/detlefs93memory.html} 
}

@inproceedings{Oyama99,
    author	= {Y. Oyama and K. Taura and A. Yonezawa},
    title	= {Executing Parallel Programs With Synchronization Bottlenecks Efficiently},
    booktitle	= {Proceedings of International Workshop on Parallel and Distributed Computing for Symbolic and Irregular Applications (PDSIA '99)},
    year	= {1999},
    pages	= {182--204},
    publisher	= {World Scientific},
    address	= {Sendai, Japan},
}

@inproceedings{Dice02,
    author	= {Dave Dice and Alex Garthwaite},
    title	= {Mostly Lock-Free Malloc},
    booktitle	= {Proceedings of the 3rd international symposium on Memory management (ISMM'02)},
    month	= jun,
    year	= 2002,
    pages	= {163-174},
    location	= {Berlin, Germany},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}
