10-20-2011
I'm being confused a bit.
How do you do "context switch"?
In userspace you can't.
In kernelspace you can, but to withhold the scheduler from scheduling kthreads would require to patch it, no? But you asked where the scheduler is in the kernel tree, so I assume you haven't.
So what do you context-switch?
Secondly: If a kthread starts to execute it cannot be scheduled-out. It will execute until finished or give up voluntary by calling schedule(). I don't know much about preemptive kernels (well, all are nowadays). I am sure that are very certain points of where a kernel preemption can occur -- after an interrupt for example. If you don't have an interrupt I can't imagine how the kthread could be unscheduled (by who??).
So what I think in a n-core pc:
pthread0...pthreadN sleep
kthread0...kthreadn-1 become runnable (as many as the cores)
kthreadx finishes
either a pthreadx or a kthreadx become runnable
Meanwhile, more kthreadx will finish.
Chances are as kthreadx finish, some pthreadx will became runnable.
So with time, all pthreads will become runnable and all kthreads will terminate.
But I am not 100% sure if everything works as I assume. I remember when I was programming a driver for the parallel port, upon entry to the interrupt service routine (triggered by a hardware interrupt) I did a CLI so no one could interrupt me. I did my job the fastest I could, then executed an STI and a schedule() to give up cpu. Preemptible kernel of not, there was no difference.
I don't seem to have the code to check it however, it's so many years that have passed.
Gotta go to bed() now because I'm cast to (void *) as I am sleepless for 2 days. Please be more specific (technically) and/or give or describe some code you have run.
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am using Sun Solaris
Where I can find scheduler program that can run another program automatically on scheduled time?
Thank you. (1 Reply)
Discussion started by: wadiachmed
1 Replies
2. Solaris
Hi all,
Is anybody have any idea on Control-M schedular(bmcsoftware product) on Solaris/UNIX environment.If yes,can you please help me how to set it up and schedule a job.
Please!!! it's Urgent!!!
Regards,
Uday (0 Replies)
Discussion started by: uday123
0 Replies
3. HP-UX
My HPUX server can't accept all lp jobs for all my printers... I pinged the print servers and they are fine, ran lpstat -r and shows me that the scheduler is running, lpstat -t shows nothing and won't get back to # unless i terminate it, lpstat -a shows all printers fine, but in SAM it failed to... (1 Reply)
Discussion started by: amao
1 Replies
4. UNIX for Advanced & Expert Users
Hi,
what i need to do is build my own scheduler program.
I am supposed to display my own prompt. at this prompt i accept a command in the following format.
ls -l start 0:0:10:10 period 10 end 0:0:0:10
now this command should be executed in the background starting at 10 mins and 10 secs... (2 Replies)
Discussion started by: p_aishwarya
2 Replies
5. Solaris
I have akorn shell job that I can run manually but when I run via cron it starts and finishes, but does not do what it does when I run it manually.
Any ideals on why this is happening? (3 Replies)
Discussion started by: CAGIRL
3 Replies
6. UNIX for Dummies Questions & Answers
HI could you comment on my small doubts below
1. which type of sheduler is used inb linux?? is it round robin or multi queue priority based round robin ???
2. Which process has the PID 0 ?? if it is sheduler process then how to convinience myself?? i mean how to see on the system...?? is... (0 Replies)
Discussion started by: raj_b025
0 Replies
7. Shell Programming and Scripting
Hi,
My requirement is i want to send mails from server to all my employess with one attachment file for every monday and friday like scheduler.. how it is possible through bash script. please guide me..
With Regards
Anish Kumar.V (8 Replies)
Discussion started by: anishkumarv
8 Replies
8. Linux
Hi,
To begin with let me explain my system and then I will come to the problem.
System:
My program forks 2 child processes. These child processes further start 2 user level threads (pthreads) and 2 kernel level threads (kthread). All these threads issue various system calls. I am using... (1 Reply)
Discussion started by: demigod85
1 Replies
9. UNIX for Advanced & Expert Users
Hello
i am looking for good and popular application run on linux OS as centos to give same function as crontab
i am seeking task scheduler with web portal and logs and so on
i preferred good tool freeware.
thanks for help (1 Reply)
Discussion started by: mogabr
1 Replies