summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-17 10:39:08 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-18 11:31:46 +0100
commit97e1553c0679fbd68551b880ef57fbf18dcbfc85 (patch)
tree83c3dfd69160a8077c873744c558e28df7197df7
parentc-user: Add Ada support chapter (diff)
downloadrtems-docs-97e1553c0679fbd68551b880ef57fbf18dcbfc85.tar.bz2
c-user: Add support for references via bibtex
https://sphinxcontrib-bibtex.readthedocs.io/en/latest/index.html Update #2871.
-rw-r--r--c-user/conf.py2
-rw-r--r--c-user/index.rst1
-rw-r--r--c-user/symmetric_multiprocessing_services.rst13
-rw-r--r--c-user/zreferences.rst6
-rw-r--r--common/refs.bib173
-rw-r--r--cpu-supplement/conf.py2
-rw-r--r--cpu-supplement/index.rst1
-rw-r--r--cpu-supplement/port.rst2
-rw-r--r--cpu-supplement/zreferences.rst6
9 files changed, 196 insertions, 10 deletions
diff --git a/c-user/conf.py b/c-user/conf.py
index 90a7af7..147fbf7 100644
--- a/c-user/conf.py
+++ b/c-user/conf.py
@@ -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'
diff --git a/c-user/index.rst b/c-user/index.rst
index f458e59..7937042 100644
--- a/c-user/index.rst
+++ b/c-user/index.rst
@@ -77,6 +77,7 @@ to the Community Project hosted at http://www.rtems.org/.
linker_sets
example_application
glossary
+ zreferences
* :ref:`genindex`
* :ref:`search`
diff --git a/c-user/symmetric_multiprocessing_services.rst b/c-user/symmetric_multiprocessing_services.rst
index 1fcc361..7ddfd33 100644
--- a/c-user/symmetric_multiprocessing_services.rst
+++ b/c-user/symmetric_multiprocessing_services.rst
@@ -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).
diff --git a/c-user/zreferences.rst b/c-user/zreferences.rst
new file mode 100644
index 0000000..26b0ed2
--- /dev/null
+++ b/c-user/zreferences.rst
@@ -0,0 +1,6 @@
+.. only:: html
+
+ References
+ **********
+
+.. bibliography:: ../common/refs.bib
diff --git a/common/refs.bib b/common/refs.bib
new file mode 100644
index 0000000..3255356
--- /dev/null
+++ b/common/refs.bib
@@ -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/},
+}
diff --git a/cpu-supplement/conf.py b/cpu-supplement/conf.py
index 933c5ce..8d31fa4 100644
--- a/cpu-supplement/conf.py
+++ b/cpu-supplement/conf.py
@@ -3,6 +3,8 @@ sys.path.append(os.path.abspath('../common/'))
from conf import *
+extensions = ['sphinxcontrib.bibtex']
+
version = '1.0'
release = '4.11.99'
diff --git a/cpu-supplement/index.rst b/cpu-supplement/index.rst
index b5c316a..c7d6b1e 100644
--- a/cpu-supplement/index.rst
+++ b/cpu-supplement/index.rst
@@ -57,6 +57,7 @@ to the Community Project hosted at http://www.rtems.org/.
sparc
sparc64
command
+ zreferences
* :ref:`genindex`
* :ref:`search`
diff --git a/cpu-supplement/port.rst b/cpu-supplement/port.rst
index 2e15a70..68c1471 100644
--- a/cpu-supplement/port.rst
+++ b/cpu-supplement/port.rst
@@ -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.
diff --git a/cpu-supplement/zreferences.rst b/cpu-supplement/zreferences.rst
new file mode 100644
index 0000000..26b0ed2
--- /dev/null
+++ b/cpu-supplement/zreferences.rst
@@ -0,0 +1,6 @@
+.. only:: html
+
+ References
+ **********
+
+.. bibliography:: ../common/refs.bib