1*c29d5175SchristosThe following is a demonstration of the priclass.d script. 2*c29d5175Schristos 3*c29d5175Schristos 4*c29d5175SchristosThe script was run for several seconds then Ctrl-C was hit. During 5*c29d5175Schristosthis time, other processes in different scheduling classes were 6*c29d5175Schristosrunning. 7*c29d5175Schristos 8*c29d5175Schristos # ./priclass.d 9*c29d5175Schristos Sampling... Hit Ctrl-C to end. 10*c29d5175Schristos ^C 11*c29d5175Schristos 12*c29d5175Schristos IA 13*c29d5175Schristos value ------------- Distribution ------------- count 14*c29d5175Schristos 40 | 0 15*c29d5175Schristos 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30 16*c29d5175Schristos 60 | 0 17*c29d5175Schristos 18*c29d5175Schristos SYS 19*c29d5175Schristos value ------------- Distribution ------------- count 20*c29d5175Schristos < 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4959 21*c29d5175Schristos 0 | 0 22*c29d5175Schristos 10 | 0 23*c29d5175Schristos 20 | 0 24*c29d5175Schristos 30 | 0 25*c29d5175Schristos 40 | 0 26*c29d5175Schristos 50 | 0 27*c29d5175Schristos 60 | 30 28*c29d5175Schristos 70 | 0 29*c29d5175Schristos 80 | 0 30*c29d5175Schristos 90 | 0 31*c29d5175Schristos 100 | 0 32*c29d5175Schristos 110 | 0 33*c29d5175Schristos 120 | 0 34*c29d5175Schristos 130 | 0 35*c29d5175Schristos 140 | 0 36*c29d5175Schristos 150 | 0 37*c29d5175Schristos 160 | 50 38*c29d5175Schristos >= 170 | 0 39*c29d5175Schristos 40*c29d5175Schristos RT 41*c29d5175Schristos value ------------- Distribution ------------- count 42*c29d5175Schristos 90 | 0 43*c29d5175Schristos 100 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 110 44*c29d5175Schristos 110 | 0 45*c29d5175Schristos 46*c29d5175Schristos TS 47*c29d5175Schristos value ------------- Distribution ------------- count 48*c29d5175Schristos < 0 | 0 49*c29d5175Schristos 0 |@@@@@@@@@@@@@@@ 2880 50*c29d5175Schristos 10 |@@@@@@@ 1280 51*c29d5175Schristos 20 |@@@@@ 990 52*c29d5175Schristos 30 |@@@@@ 920 53*c29d5175Schristos 40 |@@@@ 670 54*c29d5175Schristos 50 |@@@@ 730 55*c29d5175Schristos 60 | 0 56*c29d5175Schristos 57*c29d5175SchristosThe output is quite interesting, and illustrates neatly the behaviour 58*c29d5175Schristosof different scheduling classes. 59*c29d5175Schristos 60*c29d5175SchristosThe IA interactive class had 30 samples of a 50 to 59 priority, a fairly 61*c29d5175Schristoshigh priority. This class is used for interactive processes, such as 62*c29d5175Schristosthe windowing system. I had clicked on a few windows to create this 63*c29d5175Schristosactivity. 64*c29d5175Schristos 65*c29d5175SchristosThe SYS system class has had 4959 samples at a < 0 priority - the lowest, 66*c29d5175Schristoswhich was for the idle thread. There are a few samples at higher 67*c29d5175Schristospriorities, including some in the 160 to 169 range (the highest), which 68*c29d5175Schristosare for interrupt threads. The system class is used by the kernel. 69*c29d5175Schristos 70*c29d5175SchristosThe RT real time class had 110 samples in the 100 to 109 priority range. 71*c29d5175SchristosThis class is designed for real-time applications, those that must have 72*c29d5175Schristosa consistant response time regardless of other process activity. For that 73*c29d5175Schristosreason, the RT class trumps both TS and IA. I created these events by 74*c29d5175Schristosrunning "prstat -R" as root, which runs prstat in the real time class. 75*c29d5175Schristos 76*c29d5175SchristosThe TS time sharing class is the default scheduling class for the processes 77*c29d5175Schristoson a Solaris system. I ran an infinite shell loop to create heavy activity, 78*c29d5175Schristos"while :; do :; done", which shows a profile that leans towards lower 79*c29d5175Schristospriorities. This is deliberate behaivour from the time sharing class, which 80*c29d5175Schristosreduces the priority of CPU bound processes so that they interefere less 81*c29d5175Schristoswith I/O bound processes. The result is more samples in the lower priority 82*c29d5175Schristosranges. 83