atom feed76 messages in org.freebsd.freebsd-archRe: Threads
FromSent OnAttachments
Daniel M. EischenNov 20, 1999 8:12 pm 
Julian ElischerNov 20, 1999 8:30 pm 
Julian ElischerNov 20, 1999 8:37 pm 
Daniel M. EischenNov 20, 1999 9:02 pm 
Nate WilliamsNov 20, 1999 9:14 pm 
Daniel M. EischenNov 20, 1999 9:21 pm 
Julian ElischerNov 20, 1999 9:25 pm 
Nate WilliamsNov 20, 1999 9:27 pm 
Daniel M. EischenNov 20, 1999 9:40 pm 
Julian ElischerNov 20, 1999 10:58 pm 
Daniel M. EischenNov 21, 1999 5:40 am 
Chuck RobeyNov 22, 1999 4:30 pm 
Julian ElischerNov 22, 1999 7:57 pm 
Chuck RobeyNov 22, 1999 8:11 pm 
Julian ElischerNov 22, 1999 8:38 pm 
Chuck RobeyNov 22, 1999 9:40 pm 
Daniel EischenNov 23, 1999 4:19 am 
Jason EvansNov 23, 1999 11:30 am 
Daniel M. EischenNov 23, 1999 1:22 pm 
Chuck RobeyNov 23, 1999 9:06 pm 
Daniel EischenNov 23, 1999 9:49 pm 
Julian ElischerNov 23, 1999 10:47 pm 
Julian ElischerNov 23, 1999 11:33 pm 
Julian ElischerNov 23, 1999 11:46 pm 
Julian ElischerNov 24, 1999 2:03 am 
Daniel C. SobralNov 24, 1999 3:19 am 
Daniel C. SobralNov 24, 1999 3:51 am 
Daniel M. EischenNov 24, 1999 6:03 am 
Richard Seaman, Jr.Nov 24, 1999 6:33 am 
Matthew DillonNov 24, 1999 10:35 am 
Daniel EischenNov 24, 1999 11:02 am 
Matthew DillonNov 24, 1999 11:05 am 
Anthony KimballNov 24, 1999 11:25 am 
Daniel EischenNov 24, 1999 11:28 am 
Matthew DillonNov 24, 1999 11:41 am 
Matthew DillonNov 24, 1999 11:47 am 
Julian ElischerNov 24, 1999 11:54 am 
Louis A. MamakosNov 24, 1999 11:57 am 
Matthew DillonNov 24, 1999 12:00 pm 
Julian ElischerNov 24, 1999 12:20 pm 
Anthony KimballNov 24, 1999 12:47 pm 
Doug RabsonNov 24, 1999 2:05 pm 
Jason EvansNov 24, 1999 2:16 pm 
Julian ElischerNov 24, 1999 2:28 pm 
Julian ElischerNov 24, 1999 2:40 pm 
Richard Seaman, Jr.Nov 24, 1999 3:39 pm 
Jason EvansNov 24, 1999 9:24 pm 
Jason EvansNov 24, 1999 10:03 pm 
Julian ElischerNov 25, 1999 1:08 am 
Julian ElischerNov 25, 1999 1:33 am 
Daniel M. EischenNov 25, 1999 3:08 am 
Doug RabsonNov 26, 1999 3:01 am 
Jordan K. HubbardNov 26, 1999 10:33 am 
Doug RabsonNov 26, 1999 12:15 pm 
Matthew DillonNov 27, 1999 7:38 pm 
Arun SharmaNov 27, 1999 8:57 pm 
Matthew DillonNov 28, 1999 8:41 am 
Arun SharmaNov 28, 1999 10:25 am 
Matthew DillonNov 28, 1999 5:06 pm 
Nate WilliamsNov 29, 1999 8:10 am 
Matthew DillonNov 29, 1999 8:21 am 
Nate WilliamsNov 29, 1999 8:29 am 
Matthew DillonNov 29, 1999 9:05 am 
Matthew DillonNov 29, 1999 9:19 am 
Daniel M. EischenNov 29, 1999 9:28 am 
Nate WilliamsNov 29, 1999 10:29 am 
Julian ElischerNov 29, 1999 11:23 am 
Nate WilliamsNov 29, 1999 1:39 pm 
Chuck RobeyNov 29, 1999 6:06 pm 
Daniel M. EischenNov 29, 1999 7:46 pm 
Chuck RobeyNov 29, 1999 9:01 pm 
Julian ElischerNov 29, 1999 9:34 pm 
Chuck RobeyNov 29, 1999 10:09 pm 
Daniel M. EischenNov 30, 1999 4:02 am 
Jason EvansNov 30, 1999 2:25 pm 
Julian ElischerNov 30, 1999 2:42 pm 
Subject:Re: Threads
From:Nate Williams (na@mt.sri.com)
Date:Nov 29, 1999 8:29:02 am
List:org.freebsd.freebsd-arch

:How's about we define what a KSE is, a SA is, and come up with some :other term for a userland 'thread'? : :It seems that Julian is using the same term for a userland thread and a :context that can go into the userland as a KSE, but I'm not sure. : :Assuming for a moment that this is the case, then is a SA a 'kernel

The terminology I have been using, which I thought was the same as Julian's but may not be, is:

Thread

Two entities. A kernel structure 'Thread' and also a similarly named but independant user structure within the UTS.

So far so good. However, we need to differentiate between a 'Userland' thread, and a 'kernel thread' somehow. Also, how does a Userland thread 'become' a Kernel thread? (We need a hybrid of Userland/Kernel threads in order for this to be a viable/effecient solution.)

KSE

A kernel scheduleable entity. I was using this to mean the contextual information (such as a kernel stack) required for the kernel to be able to run a thread. Not required for runnability, only required to actually run the thread and also held over of the thread blocks while in the kernel.

^^ if? Can you expound on this more? Is this transferrable to another 'thread' in the kernel? If so, what is left? If not, what is the 'thing' that we are transferring across?

Process

Our good old process.

I think this is probably the *only* thing we all agree upon the definition of. :)

I think I actually misspoke earlier. Runnability in the kernel scheduler is governed by 'Thread', not 'KSE' with my idea. Only currently running contexts require a KSE. i.e. you might have 10 runnable Threads linked into the kernel's scheduler but if you have a two-cpu system, only 2 of those 10 will actually be running at any given moment and require KSE's.

So far so good.

With my system we change the kernel scheduling entity from a 'Process' to a 'Thread' and a Thread can then optionally (dynamically) be assigned a KSE as required to actually run.

I think the term you are using for 'Thread' would be an SA, but I'm not sure everyone else would agree.

The KSE is a kernel abstraction and essentially *invisible* to user mode. The Thread is a kernel abstraction that is visible to user mode.

I see KSE as being 'kernel context', and that *everytime* a 'thread' (userland) makes a system call, it gets assigned (created, whatever) a KSE. However, in order to do proper thread priorities, who determines which threads get a 'SA' in this context? There could be lots of threads vying for a SA (or kernel 'Thread') in this context, and the only entity with enough context to decide correctly is the UTS.

Nate

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message