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 | ||