31.01.2014 Views

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 6. Security in Open Source Software<br />

pp. 353-453]. Static partitioning is very easy to implement, but it provid<strong>es</strong> a very<br />

inefficient usage of the main memory. In a fixed environment, like in embedded systems,<br />

it can be used as a very simple but efficient memory management strategy due to the<br />

systems constrains.<br />

For example, the ARINC specification 653P1-2 [3], which is applicable for avionics software<br />

standard interfac<strong>es</strong>, requir<strong>es</strong> the usage of static partitioning for operating systems for the<br />

corr<strong>es</strong>ponding embedded systems.<br />

Dynamic partitioning: The memory M is divided in m = {1, 2, 3, . . . } partitions p j with<br />

∑<br />

dynamic siz<strong>es</strong>: ∀j : length(p j ) > 0, M = {p 0 , p 1 , . . . , p m−1 } while length(M) ≥<br />

m−1<br />

j=0 length(p j) [77, pp. 353-453]. Compared to static partitioning, dynamic partitioning<br />

provid<strong>es</strong> a more efficient usage of the main memory but needs in general more<br />

computation time for its management.<br />

6.1.2. Paging<br />

For paging with virtual memory, the virtual memory V consists of the main memory M and<br />

the swap space S: V = M ∪ S. This virtual memory V is divided in pag<strong>es</strong> p k , which all have<br />

the same size: ∀k : length(p k ) = s. Programs or proc<strong>es</strong>s<strong>es</strong> are loaded in different but not<br />

nec<strong>es</strong>sarily sequential pag<strong>es</strong> depending on their required memory. Pag<strong>es</strong> of a program can be<br />

loaded on demand and do not need to be loaded completely at program start. A program can<br />

acc<strong>es</strong>s its memory in a sequential manner because the physical memory addr<strong>es</strong>s<strong>es</strong> are mapped.<br />

Therefore, a program can only acc<strong>es</strong>s pag<strong>es</strong> that belong to it [77, pp. 353-453]. Paging with<br />

virtual memory provid<strong>es</strong> an effective way of memory management for multiproc<strong>es</strong>sing operating<br />

systems, but it is quite complex to implement.<br />

6.1.3. Segmentation<br />

For segmentation with virtual memory, also the virtual memory V consists of the main memory<br />

M and the swap space S: V = M ∪ S. A program e ∈ {0, 1, 2, . . . , n} is divided in certain<br />

number of segments s e,l (l ∈ {1, 2, 3, . . . m}), which have a dynamic size. This size can<br />

be influenced by the developer of a program or the used compiler for high-level languag<strong>es</strong>:<br />

∀e : ∀l : length(s e,l ) > 0 while V ≥ ∑ n ∑ m<br />

e=0 l=1 length(s e,l).<br />

As in paging, the segments are not nec<strong>es</strong>sarily sequential and not all segments of a program<br />

must be loaded at its start. Also, the physical memory is mapped to provide each program a<br />

sequential acc<strong>es</strong>s to its allocated memory / segments [77, pp. 353-453]. The main difference,<br />

compared with the advantag<strong>es</strong> of paging, is that a developer can influence the size of the<br />

segments. This can also be used to define areas of shared data segments, where several programs<br />

have acc<strong>es</strong>s to. Its implementation is even more complex as for paging.<br />

6.1.4. Segmentation combined with Paging<br />

To gain the advantag<strong>es</strong> from paging and segmentation together, another more sophisticated<br />

strategy is to combine both strategi<strong>es</strong>. This means that segmentation is used for programs<br />

while the segments s e,l of each program e ∈ {0, 1, 2, . . . , n} are again divided in pag<strong>es</strong> p e,l,k of<br />

68

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!