c-user: Add support for references via bibtex

https://sphinxcontrib-bibtex.readthedocs.io/en/latest/index.html

Update #2871.
This commit is contained in:
Sebastian Huber 2017-01-17 10:39:08 +01:00
parent 7d78d31a52
commit 97e1553c06
9 changed files with 196 additions and 10 deletions

View File

@ -3,6 +3,8 @@ sys.path.append(os.path.abspath('../common/'))
from conf import *
extensions = ['sphinxcontrib.bibtex']
version = '4.11.99'
release = '4.11.99'

View File

@ -77,6 +77,7 @@ to the Community Project hosted at http://www.rtems.org/.
linker_sets
example_application
glossary
zreferences
* :ref:`genindex`
* :ref:`search`

View File

@ -185,10 +185,8 @@ clusters. Clusters with a cardinality of one are partitions. Each cluster is
owned by exactly one scheduler instance.
Clustered scheduling helps to control the worst-case latencies in
multi-processor systems, see *Brandenburg, Bjorn B.: Scheduling and Locking in
Multiprocessor Real-Time Operating Systems. PhD thesis,
2011.http://www.cs.unc.edu/~bbb/diss/brandenburg-diss.pdf*. The goal is to
reduce the amount of shared state in the system and thus prevention of lock
multi-processor systems, see :cite:`Brandenburg:2011:SL`. The goal is to reduce
the amount of shared state in the system and thus prevention of lock
contention. Modern multi-processor systems tend to have several layers of data
and instruction caches. With clustered scheduling it is possible to honour the
cache topology of a system and thus avoid expensive cache synchronization
@ -204,7 +202,7 @@ available
- semaphores using the :ref:`Priority Inheritance` protocol (priority
boosting), and
- semaphores using the :ref:`Multiprocessor Resource Sharing Protocol` (MrsP).
- semaphores using the Multiprocessor Resource Sharing Protocol :cite:`Burns:2013:MrsP`.
The clustered scheduling approach enables separation of functions with
real-time requirements and functions that profit from fairness and high
@ -235,10 +233,7 @@ priority queue in the FIFO is selected. Then the first priority queue is
removed from the FIFO. In case the previously first priority queue is not
empty, then it is appended to the FIFO. So there is FIFO fairness with respect
to the highest priority task of each scheduler instances. See also
*Brandenburg, Bjorn B.: A fully preemptive multiprocessor semaphore protocol
for latency-sensitive real-time applications. In Proceedings of the 25th
Euromicro Conference on Real-Time Systems (ECRTS 2013), pages 292-302,
2013.http://www.mpi-sws.org/~bbb/papers/pdf/ecrts13b.pdf*.
:cite:`Brandenburg:2013:OMIP`.
Such a two level queue may need a considerable amount of memory if fast enqueue
and dequeue operations are desired (depends on the scheduler instance count).

6
c-user/zreferences.rst Normal file
View File

@ -0,0 +1,6 @@
.. only:: html
References
**********
.. bibliography:: ../common/refs.bib

173
common/refs.bib Normal file
View File

@ -0,0 +1,173 @@
@inproceedings{Catellani:2015:MrsP,
author = {Catellani, Sebastiano and Bonato, Luca and Huber, Sebastian and Mezzetti, Enrico},
title = {{Challenges in the Implementation of MrsP}},
booktitle = {Reliable Software Technologies - Ada-Europe 2015},
pages = {179-195},
year = {2015},
}
@phdthesis{Brandenburg:2011:SL,
author = {Brandenburg, Björn B.},
title = {Scheduling and Locking in Multiprocessor Real-Time Operating Systems},
school = {The University of North Carolina at Chapel Hill},
year = {2011},
url = {http://www.cs.unc.edu/~bbb/diss/brandenburg-diss.pdf},
}
@inproceedings{Franke:2002:Futex,
author = {Franke, Hubertus and Russel, Rusty and Kirkwood, Matthew},
title = {{Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux}},
booktitle = {Proceedings of the Ottawa Linux Symposium 2002},
pages = {479-495},
year = {2002},
url = {https://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf},
}
@inproceedings{Brandenburg:2013:OMIP,
author = {Brandenburg, Björn B.},
title = {{A Fully Preemptive Multiprocessor Semaphore Protocol for Latency-Sensitive Real-Time Applications}},
booktitle = {Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013)},
pages = {292-302},
year = {2013},
url = {http://www.mpi-sws.org/~bbb/papers/pdf/ecrts13b.pdf},
}
@inproceedings{Burns:2013:MrsP,
author = {Burns, A. and Wellings, A. J.},
title = {{A Schedulability Compatible Multiprocessor Resource Sharing Protocol - MrsP}},
booktitle = {Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013)},
year = {2013},
url = {http://www-users.cs.york.ac.uk/~burns/MRSPpaper.pdf},
}
@manual{Drepper:2007:Memory,
author = {Drepper, Ulrich},
title = {What Every Programmer Should Know About Memory},
year = {2007},
url = {http://www.akkadia.org/drepper/cpumemory.pdf},
}
@manual{Drepper:2013:TLS,
author = {Drepper, Ulrich},
title = {ELF Handling For Thread-Local Storage},
year = {2013},
url = {http://www.akkadia.org/drepper/tls.pdf},
}
@inproceedings{Gleixner:2006:Hrtimers,
author = {Gleixner, Thomas and Niehaus, Douglas},
title = {{Hrtimers and Beyond: Transforming the Linux Time Subsystems}},
booktitle = {Proceedings of the Linux Symposium},
pages = {333-346},
year = {2006},
url = {https://www.kernel.org/doc/ols/2006/ols2006v1-pages-333-346.pdf},
}
@inproceedings{Varghese:1987:TimerWheel,
author = {Varghese, G. and Lauck, T.},
title = {{Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility}},
booktitle = {Proceedings of the 11th ACM Symposium on Operating Systems Principles},
year = {1987},
url = {http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf},
}
@techreport{Varghese:1995:BSDCallout,
author = {Varghese, G. and Costello, A.},
title = {{Redesigning the BSD callout and timer facilities}},
institution = {Washington University in St. Louis},
note = {WUCS-95-23},
year = {1987},
month = {November},
url = {http://web.mit.edu/afs.new/sipb/user/daveg/ATHENA/Info/wucs-95-23.ps},
}
@techreport{Boehm:2012:Seqlock,
author = {Boehm, Hans-J.},
title = {{Can Seqlocks Get Along With Programming Language Memory Models?}},
institution = {HP Laboratories},
note = {HPL-2012-68},
year = {2012},
month = {June},
url = {http://www.hpl.hp.com/techreports/2012/HPL-2012-68.pdf}
}
@techreport{Halpern:2012:CilkN3409,
author = {Halpern, Pablo},
title = {{Strict Fork-Join Parallelism}},
institution = {Intel, Corp.},
note = {N3409},
year = {2012},
month = {September},
url = {http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3409.pdf}
}
@techreport{Halpern:2013:CilkN3557,
author = {Halpern, Pablo},
title = {{Considering a Fork-Join Parallelism Library}},
institution = {Intel, Corp.},
note = {N3557},
year = {2013},
month = {March},
url = {http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3557.pdf}
}
@techreport{Robinson:2014:CilkN3872,
author = {Robinson, Arch},
title = {{A Primer on Scheduling Fork-Join Parallelism with Work Stealing}},
institution = {Intel, Corp.},
note = {N3872},
year = {2014},
month = {January},
url = {http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3872.pdf}
}
@article{Blumofe:1999:WS,
author = {Blumofe, Robert D. and Leiserson, Charles E.},
title = {{Scheduling multithreaded computations by work stealing}},
journal = {Journal of the ACM},
year = 1999,
pages = {720-748},
volume = 46,
}
@inproceedings{Leijen:2009:TPL,
author = {Leijen, Daan and Schulte, Wolfram and Burckhardt, Sebastian},
title = {{The Design of a Task Parallel Library}},
booktitle = {Proceeding of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications (OOPSLA'09)},
year = {2009},
month = {September},
publisher = {ACM SIGPLAN},
url = {https://www.microsoft.com/en-us/research/wp-content/uploads/2009/09/TheDesignOfATaskParallelLibraryoopsla2009.pdf},
address = {Atlanta, FL},
}
@misc{Kamp:2002:Timecounters,
author = {Kamp, Poul-Henning},
title = {{Timecounters: Efficient and precise timekeeping in SMP kernels.}},
year = {2002},
url = {http://www.freebsd.dk/pubs/timecounter.pdf},
}
@inproceedings{Robertson:2003:ULE,
author = {Robertson, Jeff},
title = {{ULE: A Modern Scheduler For FreeBSD}},
booktitle = {Proceedings of BSDCon 03},
year = {2003},
url = {https://www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf},
}
@book{Lookheed:2005:JSFAV,
title = {{Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program}},
year = {2005},
month = {December},
publisher = {Lockheed Martin Corporation},
url = {http://www.stroustrup.com/JSF-AV-rules.pdf},
}
@book{Williams:2012:CA,
author = {Williams, Anthony}},
title = {{C++ Concurrency in Action Practical Multithreading}},
year = {2012},
isbn = {978-1933988771},
publisher = {Manning Publications Co},
}
@book{MISRA:2012:C,
title = {{MISRA C:2012 Guidelines for the Use of the C Language in Critical Systems}},
year = {2013},
month = {March},
isbn = {978-1906400101},
publisher = {MISRA Limited},
}
@book{CERT:2016:CCS,
title = {{SEI CERT C Coding Standard}},
year = {2016},
publisher = {Carnegie Mellon University},
}
@book{PRQA:2013:HIC,
title = {{High Integrity C++ Coding Standard Version 4.0}},
year = {2013},
month = {October},
publisher = {Programming Research Ltd},
url = {http://www.codingstandard.com/},
}

View File

@ -3,6 +3,8 @@ sys.path.append(os.path.abspath('../common/'))
from conf import *
extensions = ['sphinxcontrib.bibtex']
version = '1.0'
release = '4.11.99'

View File

@ -57,6 +57,7 @@ to the Community Project hosted at http://www.rtems.org/.
sparc
sparc64
command
zreferences
* :ref:`genindex`
* :ref:`search`

View File

@ -329,7 +329,7 @@ facilities mandated by the application binary interface (ABI) of the CPU
architecture. The CPU port must initialize the TLS area in the
``_CPU_Context_Initialize()`` function. There are support functions available
via ``#include <rtems/score/tls.h>`` which implement Variants I and II
according to Ulrich Drepper, *ELF Handling For Thread-Local Storage*.
according to :cite:`Drepper:2013:TLS`.
``_TLS_TCB_at_area_begin_initialize()``
Uses Variant I, TLS offsets emitted by linker takes the TCB into account.

View File

@ -0,0 +1,6 @@
.. only:: html
References
**********
.. bibliography:: ../common/refs.bib