[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    Re: Kernel Internals
From:       alan () lxorguk ! ukuu ! org ! uk (Alan Cox)
Date:       1997-01-31 19:50:36
[Download RAW message or body]

> What does PID running in a specific range have to do with it? SCO has PIDs that run in a specific range \
> *and* the size of the process table grows dynamically *and* the PID is the slot number in the process \
> table. Also,

I don't believe that is correct. I don't believe that has ever been true. The
papers I have read on v7 unix indicate it was never true. 


> isn't the task[]array the "process structure in the kernel." Looking through the kernel source, I only \
> see references to tasks and not to processes. So, what structure is the "process structure"?

The task array is an array of pointers to task structures. task==process.

> - sending a kill to a particular processes
Correct.
> - doing a ps -p <PID>
That is done in user space.
> - passing the exit value of the process back to the parent
No.. the parent has a linked list of children.

> - Any time you need information about a speficic PID.
Signals are almost the only case of this.

> Here again, that wasn't the question. I know when the process table entry is cleared, I know what is \
> kept in the the process table entry after the process dies, and I know what happens when there is no \
> parent waiting on the child. So, to put the question as clear as I can: 

That cannot occur. Process 1 always exists, processes are reparented as in
other unices. Init will clear them up

> Is it true that the parent process is responsible for clearing the process table of child processes or \
> is this done by init or some other process, kernel function, whatever?

A process cleans up all but its process table slot on exit. That is cleaned
by its parent.

> In SCO, the virtual memory of each process between 3Gb-4Gb is for portions of the kernel that the \
> process is using. So, when I am using a device, I have a particular driver loaded that ends up in the \
> 3-4Gb range. Although two (or more) processes are waiting on the same event (i.e. input from the \
> keyboard) and the WCHAN maps to the same function, the numeric WCHAN value is different. In Linux, both \
> the numeric value and the address mapping is the same. 

Linux wait queues are not the same as the Unix sleep hashing and scheduling

> This brings up the question of how kernel address space is mapped into the user's process space. 

In 2.0.x the kernel is a different supervisor segment on intel in 2.1.x its
mapped into the top of the address space in the same segment for performance
reasons

Alan


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic