Rev 35 | Rev 38 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 35 | Rev 37 | ||
---|---|---|---|
Line 34... | Line 34... | ||
34 | 34 | ||
35 | 35 | ||
36 | <para>Virtual memory is usually using paged memory model, where virtual |
36 | <para>Virtual memory is usually using paged memory model, where virtual |
37 | memory address space is divided into the <emphasis>pages</emphasis> |
37 | memory address space is divided into the <emphasis>pages</emphasis> |
38 | (usually having size 4096 bytes) and physical memory is divided into the |
38 | (usually having size 4096 bytes) and physical memory is divided into the |
39 | frames (same sized as a page, of cause). Each page may be mapped to some |
39 | frames (same sized as a page, of course). Each page may be mapped to some |
40 | frame and then, upon memory access to the virtual address, CPU performs |
40 | frame and then, upon memory access to the virtual address, CPU performs |
41 | <emphasis>address translation</emphasis> during the instruction |
41 | <emphasis>address translation</emphasis> during the instruction |
42 | execution. Non-existing mapping generates page fault exception, calling |
42 | execution. Non-existing mapping generates page fault exception, calling |
43 | kernel exception handler, thus allowing kernel to manipulate rules of |
43 | kernel exception handler, thus allowing kernel to manipulate rules of |
44 | memory access. Information for pages mapping is stored by kernel in the |
44 | memory access. Information for pages mapping is stored by kernel in the |
Line 54... | Line 54... | ||
54 | 54 | ||
55 | 55 | ||
56 | 56 | ||
57 | <para>At the moment HelenOS does not support swapping.</para> |
57 | <para>At the moment HelenOS does not support swapping.</para> |
58 | 58 | ||
59 | - pouzivame vypadky stranky k alokaci ramcu on-demand v ramci as_area - na architekturach, ktere to podporuji, podporujeme non-exec stranky |
59 | <para>- pouzivame vypadky stranky k alokaci ramcu on-demand v ramci as_area - na architekturach, ktere to podporuji, podporujeme non-exec stranky </para> |
60 | </section> |
60 | </section> |
61 | 61 | ||
62 | <section> |
62 | <section> |
63 | <title>Address spaces</title> |
63 | <title>Address spaces</title> |
64 | 64 | ||
65 | <section> |
65 | <section> |
66 | <title>Address spaces and areas</title> |
66 | <title>Address spaces and areas</title> |
67 | 67 | ||
- | 68 | <para> |
|
- | 69 | ||
68 | <para>- adresovy prostor se sklada z tzv. address space areas |
70 | - adresovy prostor se sklada z tzv. address space areas |
69 | usporadanych v B+stromu; tyto areas popisuji vyuzivane casti |
71 | usporadanych v B+stromu; tyto areas popisuji vyuzivane casti |
70 | adresoveho prostoru patrici do user address space. Kazda cast je dana |
72 | adresoveho prostoru patrici do user address space. Kazda cast je dana |
71 | svoji bazovou adresou, velikosti a flagy (rwx/dd).</para> |
73 | svoji bazovou adresou, velikosti a flagy (rwx/dd). |
- | 74 | ||
- | 75 | </para> |
|
72 | 76 | ||
73 | <para>- uzivatelske thready maji moznost manipulovat se svym adresovym |
77 | <para>- uzivatelske thready maji moznost manipulovat se svym adresovym |
74 | prostorem (vytvaret/resizovat/sdilet) as_areas pomoci syscallu</para> |
78 | prostorem (vytvaret/resizovat/sdilet) as_areas pomoci syscallu</para> |
75 | </section> |
79 | </section> |
76 | 80 |