The UNIX and Linux Forums  


Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Advanced & Expert Users
.
google unix.com



UNIX for Advanced & Expert Users Expert-to-Expert. Learn advanced UNIX, UNIX commands, Linux, Operating Systems, System Administration, Programming, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Anyone knows any prevention against identity theft? levi Security 4 06-16-2009 05:34 AM
keep context in awk VTAWKVT Shell Programming and Scripting 2 05-23-2008 03:06 PM
Bourne Shell: Special characters Input Prevention totziens Shell Programming and Scripting 37 04-23-2008 05:05 AM
Tar switches!!! nikk UNIX for Advanced & Expert Users 1 10-25-2004 06:33 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-23-2008
fabulous2 fabulous2 is offline
Registered User
  
 

Join Date: Dec 2007
Posts: 30
thread context switches: detection, prevention

#1: does anyone know how to detect how many times (and/or the time length) a given thread has been context switched out of the CPU?

#2: are there any tchniques that minimize/eliminate your thread getting context switched?

I would be happy to know the answers to these questions for ANY operating system, not only real ones like solaris and linux, but even (pinch your noise) Windows.

Here is the little bit that I currently know:

#1:
Apparently Solaris records context switch counts; see this discussion:
JMX - Any way to detect thread context switches?

Unfortunately, I too am running a Java program, and so the issue mentioned in that posting about how to figure out the mapping between your Java thread ID and solaris's LWP ID remains for me too.

Is there any functionality in Linux or Windows to what is described in that discussion?


#2:
Well, you can do obvious things, such as run no other programs, disable as many daemons/services as possible.

Is there any other configuration that you can do? I have tried setting my java program's thread priority to max in the hope this would prevent it, but it doesn't seem too.

Is there some version of linux that you can run in which you can muck with the thread scheduler and alter its policies to minimize hot threads from be switched out? (I have a dual core CPU, so if my app's main thread fully occupies one core, the other core is still free to run stuff from the operating system, so I see no reason why my hot thread needs to ever be swapped out--or am I missing something?).

Or maybe a real time OS in which you specify that a thread has to run for a certain length of time completely unmolested?
  #2 (permalink)  
Old 03-23-2008
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Location: NM
Posts: 5,794
Raise the base priority of the process.

Use realtime processing in sched.h if your system has it. I do not know if java supports this or not.
  #3 (permalink)  
Old 03-23-2008
fabulous2 fabulous2 is offline
Registered User
  
 

Join Date: Dec 2007
Posts: 30
Quote:
Originally Posted by jim mcnamara View Post
Raise the base priority of the process.

Use realtime processing in sched.h if your system has it. I do not know if java supports this or not.

Thanks for the pointer about sched.h.

According to The Linux Kernel Archives the latest stable version of the Linux kernel is 2.6.24.3. Unfortunately, I was not able to find an online listing for sched.h for that kernel version. If anyone knows of a good source for this stuff lemme know. (Altho maybe it does not matter: while you will get 2.6.24 with, say, ubuntu 8.04 when released, currently you get 2.6.2 with ubuntu 7.10) The closest version to it that I found was linux-2.6.4/include/linux/sched.h

That version has a few occurences of "real", but none seemed to be relevant. Feel free to point out anything that I may have missed.

I have never done any kernel hacking before. If I modify sched.h, would I then have to recompile the kernel and somehow reboot into the new version or something?

Let me ask a general question. Suppose that you have a multi-core CPU. Does a single process (or thread?)--in linus, solaris, windows--get the entire CPU at once, or can multiple processes/threads simultaneously be on the CPU?

I would have thought the latter is true, but when I began thinking about how a context switch is done, which includes saving all the CPU registers, it seems like it might be the case that just a single process/thread should occupy the CPU at once, else it might be difficult/impossible to know which registers belong to what? Or is this a non-issue? I would love to be educated.

Also, is the linux interrupt system responsible for periodic involuntary process contexct switches? According to p.5 of
Chapter 7: Scheduling
there is the claim that
Quote:
An interrupt occurs every k clock ticks, thus causing the hardware clock’s con-troller to execute the logical equivalent of an yield() to invoke the interrupt
handler. The interrupt handler invokes the scheduler to reschedule the CPU.
How often do interrupts in linux occur? Is there any way to disable this, or at least prevent my hot thread from being context switched out of its core when an interrupt occurs?
Closed Thread

Bookmarks

Tags
linux, ubuntu

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 03:25 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0