Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Mar 2005 18:15:13 -0300
From:      =?ISO-8859-1?Q?Jo=E3o_Carlos_Mendes_Lu=EDs?= <jonny@jonny.eng.br>
To:        Julian Elischer <julian@elischer.org>
Cc:        Ashwin Chandra <ashcs@ucla.edu>
Subject:   Re: sched_4BSD
Message-ID:  <4224DB61.3060704@jonny.eng.br>
In-Reply-To: <4224C74A.2030205@elischer.org>
References:  <001a01c51d6d$d50ce500$abe243a4@ash> <4222D5A2.9010301@elischer.org> <641e6aa9050301112016d316bb@mail.gmail.com> <4224C74A.2030205@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote:
> Sarath Kamisetty wrote:
>> Hi,
>>
>> How does Linux handle this ? Any idea ?
> 
> If you make 1000 threads, you get 1000 slots on the scheduler. (last 
> time I looked..
> Let me know if I'm wrong).
> 
> The guy next to you with 'vi' gets 1 slot..
> who gets more cpu?

     And how is that different from forking 1000 processes and use 
shared memory to communicate?  I'll tell you: the thread option will be 
better for every user in that machine, so let's promote threads.

     IMHO, a thread should have the same privilege as a full processes, 
and it should count as a process for resource limits.

> 
> 
> 
>> Thanks,
>> Sarat
>>
>> On Mon, 28 Feb 2005 00:26:10 -0800, Julian Elischer 
>> <julian@elischer.org> wrote:
>>  
>>
>>> Ashwin Chandra wrote:
>>>   
>>>
>>>> I wanted to get some clarification about the 4BSD scheduler. I am 
>>>> sort of
>>>> confused why there are two forms of scheduling, one done between 
>>>> processes and
>>>> another done between threads in a process. The priority calculations 
>>>> seem to be
>>>> done only with processes and I assume that the global run queue 
>>>> holds processes,
>>>> not threads. Also why is there only 1 run queue for 1 CPU. What 
>>>> happens to
>>>> blocked processes and ready to be runned processes?
>>>>     
>>>
>>> Part of the challenge of adding threads to a system is to make it 
>>> hard for a
>>> threaded process to "flood" the system run queues so that other 
>>> processes
>>> get no cpu time.
>>>
>>> The scheme in the current freeBSD schedulers is a "crude" method, by 
>>> which
>>> only a limitted number of threads per process are allowed to be added to
>>> the system run queue. RUnnable hreads fo r aprocess are kept on a run 
>>> queue for
>>> the process and only the highest N prioriy  hreads are actually put 
>>> on the
>>> system run queue.
>>>
>>> This is by no means the best way, but rather the
>>> easiest way. I am hoping that some PhD candidate somewhere will decide
>>> that thread scheduling is his topic and will figure out a better way
>>> of doing this.
>>>
>>> both run queues hold threads. This is still a place wjere a lot
>>> of work can be done.
>>>
>>> :-)
>>>
>>>
>>>   
>>>
>>>> Ash
>>>> _______________________________________________
>>>> freebsd-hackers@freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>>>> To unsubscribe, send any mail to 
>>>> "freebsd-hackers-unsubscribe@freebsd.org"
>>>>     
>>>
>>> _______________________________________________
>>> freebsd-hackers@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>>> To unsubscribe, send any mail to 
>>> "freebsd-hackers-unsubscribe@freebsd.org"
>>>
>>>   
> 
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4224DB61.3060704>