Rev 98 | Rev 105 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 98 | Rev 101 | ||
---|---|---|---|
Line 34... | Line 34... | ||
34 | scheduler run queues or synchronization wait queues). Contrary to the FIFO |
34 | scheduler run queues or synchronization wait queues). Contrary to the FIFO |
35 | type, which is also supported by HelenOS, they don't take up any unused |
35 | type, which is also supported by HelenOS, they don't take up any unused |
36 | space and are more general. On the other hand, they are slower than |
36 | space and are more general. On the other hand, they are slower than |
37 | in-array FIFOs and can be hardly used to implement buffers.</para> |
37 | in-array FIFOs and can be hardly used to implement buffers.</para> |
38 | 38 | ||
39 | <figure> |
39 | <figure float="1"> |
40 | <mediaobject id="list" xreflabel=""> |
40 | <mediaobject id="list" xreflabel=""> |
41 | <imageobject role="pdf"> |
41 | <imageobject role="pdf"> |
42 | <imagedata fileref="images.vector/list.pdf" format="PDF" /> |
42 | <imagedata fileref="images.vector/list.pdf" format="PDF" /> |
43 | </imageobject> |
43 | </imageobject> |
44 | 44 | ||
Line 74... | Line 74... | ||
74 | 74 | ||
75 | <para>FIFO queues are used, for example, in ASID management code to store |
75 | <para>FIFO queues are used, for example, in ASID management code to store |
76 | inactive ASIDs or in userspace keyboard driver to buffer read |
76 | inactive ASIDs or in userspace keyboard driver to buffer read |
77 | characters.</para> |
77 | characters.</para> |
78 | 78 | ||
79 | <figure> |
79 | <figure float="1"> |
80 | <mediaobject id="fifo" xreflabel=""> |
80 | <mediaobject id="fifo" xreflabel=""> |
81 | <imageobject role="pdf"> |
81 | <imageobject role="pdf"> |
82 | <imagedata fileref="images.vector/fifo.pdf" format="PDF" /> |
82 | <imagedata fileref="images.vector/fifo.pdf" format="PDF" /> |
83 | </imageobject> |
83 | </imageobject> |
84 | 84 | ||
Line 108... | Line 108... | ||
108 | comparing items against a set of keys and the item removal callback |
108 | comparing items against a set of keys and the item removal callback |
109 | function. Besides these virtual operations, the hash table is composed of |
109 | function. Besides these virtual operations, the hash table is composed of |
110 | a dynamically allocated array of list heads that represent each chain, |
110 | a dynamically allocated array of list heads that represent each chain, |
111 | number of chains and the maximal number of keys.</para> |
111 | number of chains and the maximal number of keys.</para> |
112 | 112 | ||
113 | <figure> |
113 | <figure float="1"> |
114 | <mediaobject id="hash" xreflabel=""> |
114 | <mediaobject id="hash" xreflabel=""> |
115 | <imageobject role="pdf"> |
115 | <imageobject role="pdf"> |
116 | <imagedata fileref="images.vector/hash.pdf" format="PDF" /> |
116 | <imagedata fileref="images.vector/hash.pdf" format="PDF" /> |
117 | </imageobject> |
117 | </imageobject> |
118 | 118 | ||
Line 157... | Line 157... | ||
157 | logaritmic search, insertion and deletion times and, thanks to the |
157 | logaritmic search, insertion and deletion times and, thanks to the |
158 | leaf-level list, provides fantastic means of walking the nodes containing |
158 | leaf-level list, provides fantastic means of walking the nodes containing |
159 | data. Moreover, B+trees can be used for easy storing, resizing and merging |
159 | data. Moreover, B+trees can be used for easy storing, resizing and merging |
160 | of disjunctive intervals.</para> |
160 | of disjunctive intervals.</para> |
161 | 161 | ||
162 | <figure> |
162 | <figure float="1"> |
163 | <mediaobject id="btree" xreflabel=""> |
163 | <mediaobject id="btree" xreflabel=""> |
164 | <imageobject role="pdf"> |
164 | <imageobject role="pdf"> |
165 | <imagedata fileref="images.vector/btree.pdf" format="PDF" /> |
165 | <imagedata fileref="images.vector/btree.pdf" format="PDF" /> |
166 | </imageobject> |
166 | </imageobject> |
167 | 167 |