From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Oct  3 05:25:50 1997
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) id FAA15638
	Fri, 3 Oct 1997 05:25:50 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) with SMTP id FAA15620
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 3 Oct 1997 05:25:48 +0900 (JST)
Received: by psun0.phys.kyushu-u.ac.jp (5.x/6.4J.6)
	id AA04962; Fri, 3 Oct 1997 05:25:43 +0900
Date: Fri, 3 Oct 1997 05:25:43 +0900
Message-Id: <9710022025.AA04962@psun0.phys.kyushu-u.ac.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Cc: shimizu@phys.kyushu-u.ac.jp
In-Reply-To: Your message of Thu, 02 Oct 1997 22:11:09 +0900.
	<19971002221109T.shigeru@iij.ad.jp>
From: shimizu@phys.kyushu-u.ac.jp (Yoshifumi R. Shimizu)
X-Mailer: mnews [version 1.19PL2] 1996-01/26(Fri)
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=20]
X-Sequence: FreeBSD-users-jp 18865
Subject: [FreeBSD-users-jp 18865] Re^3: Task-Scheduling
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$@!!@6?e!w6eBgM}$G$9!#(J

$@!!$I$&$b%+!<%M%k%=!<%9$r$$$8$k$7$+$J$$$h$&$J$N$G!"1|;3!w#I#B#M$5$s$N(J
task scheduling $@$N2r@b$d;3K\(J $@LP(J	$@$5$s$N%3%a%s%H$r;29M$K$7$F!"$b$&0lEY(J

      /usr/src/sys/kern/kern_synch.c

$@$r8+$F$_$^$7$?!#(JBSD $@$G$O(J priority $@$,JQ2=$9$k$H$$$&$N$,$^$5$K=EMW$J(J
$@$h$&$G!"(Jnice$@CM$K=>$C$FI,$:(J priority $@$K:9$,=P$k$h$&$K!"<!$N$h$&$J(J
$@JQ99$r2C$($F$_$^$7$?!'(J

*** kern_synch.c.org	Fri Mar 14 03:09:38 1997
--- kern_synch.c.try	Fri Oct  3 04:34:45 1997
***************
*** 660,674 ****
--- 660,680 ----
   * Arrange to reschedule if the resulting priority is better
   * than that of the current process.
   */
  void
  resetpriority(p)
  	register struct proc *p;
  {
  	register unsigned int newpriority;
+ 	register int un_nice;
  
  	if (p->p_rtprio.type == RTP_PRIO_NORMAL) {
+ 		un_nice = p->p_nice - PRIO_MAX;
+ 		un_nice /= 3;
  		newpriority = PUSER + p->p_estcpu / 4 + 2 * p->p_nice;
  		newpriority = min(newpriority, MAXPRI);
+ 		if (newpriority - un_nice > MAXPRI)
+ 			newpriority += un_nice;
  		p->p_usrpri = newpriority;
  		if (newpriority < curpriority)
  			need_resched();

$@8+$F$b$i$($P0lL\NFA3$G!"(Jun_nice (<=0) $@$NJ,$@$1>o$K(J priority $@$,>e$,$k(J
$@$h$&$K$7$?$o$1$G$9!#(Jun_nice /= 3; $@$O;n9T:x8m$G7h$a$?$b$N$G!"(J/2 $@$@$H(J
nice 10 $@$H(J 20 $@$G$b$+$J$j:9$,$G$^$9!#(J/4 $@$@$H(J nice 5 $@$H(J 20 $@$,$"$^$j:9$,(J
$@=P$^$;$s!#(J/3 $@$G$O(J nice 5 $@$H(J 20 $@$O(J nice 0 $@$H(J 20 $@$H$*$J$8$0$i$$$N:9$G(J
CPU 92% $@$H(J 6% $@0L$N:9$K$J$j!"(Jnice 10 $@$H(J 20 $@$G$O(J 51% $@$H(J 47% $@$H$$$C$?=j(J
$@$K$J$j!"$^$"$^$"(J HP-UX $@$K6a$$46$8$K$J$k$N$G$3$&$7$^$7$?!#(J

$@!!0l1~$7$P$i$/%F%9%H$7$F$_$k$D$b$j$G$9$,!"$b$7LdBj$,$"$k!"$^$?$O!"(J
$@$3$&$7$?J}$,$h$$!"$H$$$&$3$H$,$"$j$^$7$?$i!"$*65$(2<$5$$!#(J

$@!!6e=#Bg3XM}3XJ*M}(J  $@@6?eNIJ8(J
