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