Sponsored Content
Top Forums UNIX for Advanced & Expert Users thread context switches: detection, prevention Post 302177806 by fabulous2 on Sunday 23rd of March 2008 11:35:56 AM
Old 03-23-2008
Quote:
Originally Posted by jim mcnamara
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?
 

4 More Discussions You Might Find Interesting

1. Programming

Signal Handling and Context Switches

Hi guys, this is my first posting, so at first hi to everyone! ;) I have a problem with ucontext_t in connection with signal handling. I want to simulate a preemptive scheduler. I am using the iTimer with ITIMER_PROF, to schedule the interrupts. You find the code below: #include <stdio.h>... (18 Replies)
Discussion started by: XComp
18 Replies

2. Cybersecurity

Anyone knows any prevention against identity theft?

I have recently been victimized by the theft of my credit card. But, due to favorable situations I could prevent it from being miss-used and was able to make thins go in the right way.Anyways , I would like to know that if there any services which keeps your financial information safe and make you... (4 Replies)
Discussion started by: levi
4 Replies

3. Programming

Parallel Processing Detection and Program Return Value Detection

Hey, for the purpose of a research project I need to know if a specific type of parallel processing is being utilized by any user-run programs. Is there a way to detect whether a program either returns a value to another program at the end of execution, or just utilizes any form of parallel... (4 Replies)
Discussion started by: azar.zorn
4 Replies

4. Shell Programming and Scripting

Questions related to if in awk context and if without awk context

I wrote this code, questions follow #! /bin/bash -f # Purpose - to show how if syntax is used within an awk clear; ls -l; echo "This will print out the first two columns of the inputted file in this directory"; echo "Enter filename found in this directory"; read input; ... (11 Replies)
Discussion started by: Seth
11 Replies
SCHED_4BSD(4)						   BSD Kernel Interfaces Manual 					     SCHED_4BSD(4)

NAME
sched_4bsd -- 4.4BSD scheduler SYNOPSIS
options SCHED_4BSD DESCRIPTION
The sched_4bsd scheduler is the traditional system scheduler, providing both high throughput and solid interactive response in the presence of load. The following sysctls are relevant to the operation of sched_4bsd: kern.sched.name This read-only sysctl reports the name of the active scheduler. kern.sched.quantum This read-write sysctl reports or sets the length of the quantum (in micro-seconds) granted to a thread. kern.sched.ipiwakeup.enabled This read-write sysctl sets whether or not the scheduler will generate an inter-processor interrupt (IPI) to an idle CPU when a thread is woken up. Otherwise, idle CPUs will wait until the next clock tick before looking for new work. kern.sched.preemption This read-only sysctl reports whether or not the kernel is configured to support preemption, which reduces the latency to run lower priority threads on wakeup. Some sysctls will be available only on systems supporting SMP. SEE ALSO
sched_ule(4), sysctl(8) HISTORY
The sched_4bsd scheduler has been present, in various forms, since the inception of BSD. BUGS
While a highly robust and time-tested scheduler, sched_4bsd lacks specific knowledge of how to schedule advantageously in non-symmetric pro- cessor configurations, such as hyper-threading. BSD
January 21, 2008 BSD
All times are GMT -4. The time now is 01:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy