Code: Alles auswählen
kernel
mm
fs
kernel
mm
fs
kernel
mm
fs
kernel
mm
fs
h
kernel
mm
fs
h
kernel
mm
fs
const.h
main.c
const.h
main.c
type.h
const.h
type.h
main.c
const.h
type.h
main.c
kernel/main.c
kernel/const.h
mm/main.c
mm/const.h
fs/main.c
fs/const.h
const/const.h
type.h
alloc.c
forkexit.c
break.c
signal.c
exec.c
main.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/forkexit.c
mm/exec.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/forkexit.c
mm/exec.c
mm/main.c
mm/main.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/exec.c
mm/forkexit.c
mm/main.c
mm/forkexit.c
mm/exec.c
mm/break.c
mm/signal.c
mm/alloc.c
mm/main.c
mm/forkexit.c
mm/alloc.c
mm/exec.c
mm/break.c
mm/signal.c
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_SEGS
NR_REGS
NR_SEGS
NR_REGS
NR_SEGS
NR_REGS
NR_TASKS
NR_PROCS
N_PROCS
NR_SEGS
NR_REGS
NR_TASKS
NR_PROCS
NR_SEGS
NR_REGS
N_PROCS
phys_clicks
vir_clicks
phys_clicks
vir_clicks
phys_clicks
vir_clicks
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct proc {
} proc [NR_TASKS+NR_PROCS];
struct mproc {
} mproc [N_PROCS]
struct proc {
} proc [NR_TASKS+NR_PROCS];
struct mproc {
} mproc [N_PROCS];
struct proc {
} proc [NR_TASKS+NR_PROCS]
struct mproc {
} mproc [N_PROCS]
Code: Alles auswählen
kernel
mm
fs
kernel
mm
fs
kernel
mm
fs
kernel
mm
fs
h
kernel
mm
fs
h
kernel
mm
fs
const.h
main.c
const.h
main.c
type.h
const.h
type.h
main.c
const.h
type.h
main.c
kernel/main.c
kernel/const.h
mm/main.c
mm/const.h
fs/main.c
fs/const.h
const/const.h
type.h
alloc.c
forkexit.c
break.c
signal.c
exec.c
main.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/forkexit.c
mm/exec.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/forkexit.c
mm/exec.c
mm/main.c
mm/main.c
mm/alloc.c
mm/signal.c
mm/break.c
mm/exec.c
mm/forkexit.c
mm/main.c
mm/forkexit.c
mm/exec.c
mm/break.c
mm/signal.c
mm/alloc.c
mm/main.c
mm/forkexit.c
mm/alloc.c
mm/exec.c
mm/break.c
mm/signal.c
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_TASKS
NR_PROCS
N_PROCS
NR_SEGS
NR_REGS
NR_SEGS
NR_REGS
NR_SEGS
NR_REGS
NR_TASKS
NR_PROCS
N_PROCS
NR_SEGS
NR_REGS
NR_TASKS
NR_PROCS
NR_SEGS
NR_REGS
N_PROCS
phys_clicks
vir_clicks
phys_clicks
vir_clicks
phys_clicks
vir_clicks
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct mem_map {...};
struct proc {
} proc [NR_TASKS+NR_PROCS];
struct mproc {
} mproc [N_PROCS]
struct proc {
} proc [NR_TASKS+NR_PROCS];
struct mproc {
} mproc [N_PROCS];
struct proc {
} proc [NR_TASKS+NR_PROCS]
struct mproc {
} mproc [N_PROCS]
struct proc {
type p_...
} proc [NR_PROCS + NR_TASKS]
struct mproc {
type mp_...
} mproc [N_PROCS];
struct mem_map p_map [NR_SEGS];
struct mem_map p_map [NR_SEGS];
struct mem_map mp_map [NR_SEGS];
struct mem_map mp_map [NR_SEGS];
struct mem_map p_map [NR_SEGS];
struct mem_map mp_map [NR_SEGS];
struct proc {
struct mem_mep p_map [NR_SEGS];
...
} proc [NR_PROCS + NR_TASKS];
struct mproc {
struct mem_map mp_map [NR_SEGS];
} mproc [NR_PROCS + NR_TASKS];
int p_pid;
int p_pid;
int mp_pid:
int p_reg [NR_REGS];
int p_reg [NR_REGS];
int p_reg [NR_REGS];
int p_reg [NR_REGS];
alloc_mem
free_mem
merge
del_slot
max_hole
alloc_mem
free_mem
merge
del_slot
max_hole
Code: Alles auswählen
Task-Register TR
Task-Register TR
Task-Register TR
Task-Register TR
Task-Register TR
Local Descriptor Table LDTR
Local Descriptor Table LDTR
Local Descriptor Table LDTR
Local Descriptor Table LDTR
Task State Segment TSS
Task State Segment TSS
Task State Segment TSS
Taskö-Register
task State Segment
Task Register
Task State Segmenet
Task Register
Task State Segment
Local Descriptor Table LDTR
Local Descriptor Table LDTR
Local Descriptor Table LDTR
TSS 104 Byte
TSS 104 Byte, 32 Bit
TSS 104 Byte, 32 Bit
TSS 104 Byte, 32 Bit
I/O Privilege Level Field Flags
I/O Privilege Level Field Flag
I/O Privilege Level Field Flag
I/O Privilege Level Field Flag
Nested Task Flag
Nested Task Flag
Nested Task Flag
Nested Task Flag
Resume Flag
Resume Flag
I/O Privilege Level Field Flag
Nested Task Flag
Resume Flag
I/O Privilege Level Field Flag
Nested Task Flag
Resume Flag
I/O Privilege Level Field Flag
Nested Task Flag
Resume Flag
Virtual 8086-Mode Flag VM
Virtual 8086-Mode Flag VM
Virtual 8086-Mode Flag VM
Virtual 8086-Mode Flag VM
Alignment Check Flag
Alignment Check Flag
Alignment Check Flag
Alignment Check Flag
Virtual Interrupt Flag
Virtual Interrupt Flag
Virtual Interrupt Flag
Virtual Interrupt Flag
Virtual Interrupt Pending Flag (VIP)
Virtual Interrupt Pending Flag (VIP)
Virtual Interrupt Pending Flag (VIP)
Identification Flag
Identficiation Flag
Alignment Check Flag
Virtual Interrupt Flag
Virtual Interrupt Pending Flag
CR0 = Situation steuern
CR0 = Situation steuern
CR0 = Situation steuern C
CR0 = Situation Steuern
CR0 = Sitautoin steuern
Protected Enable Flag = Pe
Protected Enable Flag = PE
Protected Enable Flag = PE
Protected Enable Flag = PE
Protected Enable Flag = PE
Monitor Coprocessor Flag
Monitor Coprocessor Flag
Minitor Coprocoess Flag
Protected Enable Flag
Emulation Flag
Protected Enable
Minitor Coprocess
Emulation
Task Switch Flag
Task Switch Flag
Task Switch Flag
Task Switch Flag
CR2: Page Fault
CR3: Page Directory Base Addeess
CR2: Page Fault
CR3: Page Directory Base Address
CR2: Page Fault
CR3: Page Directory Base Address
Jetzt lerne ich das noch mal auswendig, und danach lerne ich zwei funktionen, von der mm/alloc.c zwei Funktionen von der Speicherverwaltung auswendig.
Code: Alles auswählen
phys_clicks alloc_mem (phys_clicks clicks) {
regsiter struct hole *hp, *prev_ptr;
phys_click old_base;
hp = hole_head;
while (hp != NIL_HOLE) {
prev_ptr = hp;
hp = hp->h_next;
}
}
phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
regsiter struct hole *hp, *prev_ptr;
hp = hole_head;
while (hp != NIL_HOLE) {
prev_ptr = hp;
hp = hp -> h_next;
}
}
phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
register struct hole *hp;
hp = hole_head;
while (hp != NIL_HOLE) {
prev_ptr = hp;
hp = hp->h_next;
}
}
phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
register struct hole *hp, *prev_ptr;
while (hp != NIL_HOLE) {
if (hp -> h_len >= clicks) {
}
prev_ptr = hp;
hp = hp->h_next;
}
}
phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
register struct hole *hp, *prev_ptr;
hp = hole_head;
while (hp != NIL_HOLE) {
if (hp->h_len >= clicks) {
old_base = hp->h_base;
hp->h_base += clicks;
hp->h_len -= clicks;
}
prev_ptr = hp;
hp = hp->h_base;
}
}
phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
register struct hole *hp, *prev_ptr;
hp = hole_head;
while (hp != NIL_HOLE) {
if (hp->h_len >= clicks) {
old_base = hp->h_base;
hp->h_base += clicks;
hp->h_len -= clicks;
if (hp->h_len > 0) return (old_base);
del_slot (prev_ptr, hp);
return (old_base);
}
old_base = hp;
hp = hp -> h_next;
}
}