<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Generating a looping process in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066174#M86166</link>
    <description>What about a simple DCL procedure:&lt;BR /&gt;&lt;BR /&gt;$ 1: goto 1&lt;BR /&gt;&lt;BR /&gt;loops like a charm...&lt;BR /&gt;&lt;BR /&gt;regards Kalle</description>
    <pubDate>Thu, 30 Aug 2007 13:01:33 GMT</pubDate>
    <dc:creator>Karl Rohwedder</dc:creator>
    <dc:date>2007-08-30T13:01:33Z</dc:date>
    <item>
      <title>Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066173#M86165</link>
      <description>Hello, I'm an OpenVMS novice and I'm trying to generate a looping process to test the functionality of an OpenView Operations for Windows monitoring policy. The policy checks for looping threads on an OpenVMS server and generates an event when one is found.&lt;BR /&gt;&lt;BR /&gt;Can anyone provide detailed instructions on how to create a looping process on an OpenVMS server? We're running VMS 7.3-2 on an Alpha machine.&lt;BR /&gt;&lt;BR /&gt;Any help would be appreciated.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;Tom Wolf&lt;BR /&gt;</description>
      <pubDate>Thu, 30 Aug 2007 12:52:23 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066173#M86165</guid>
      <dc:creator>Tom Wolf_3</dc:creator>
      <dc:date>2007-08-30T12:52:23Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066174#M86166</link>
      <description>What about a simple DCL procedure:&lt;BR /&gt;&lt;BR /&gt;$ 1: goto 1&lt;BR /&gt;&lt;BR /&gt;loops like a charm...&lt;BR /&gt;&lt;BR /&gt;regards Kalle</description>
      <pubDate>Thu, 30 Aug 2007 13:01:33 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066174#M86166</guid>
      <dc:creator>Karl Rohwedder</dc:creator>
      <dc:date>2007-08-30T13:01:33Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066175#M86167</link>
      <description>Tom,&lt;BR /&gt;&lt;BR /&gt;A word of warning on Kalle's procedure: execute it at prio 0 , or risk NOT being able to EVER stop it without hitting the big red one.&lt;BR /&gt;&lt;BR /&gt;If the OV finds Kalle's, try one a little (not much) less simple.&lt;BR /&gt;&lt;BR /&gt;$1:&lt;BR /&gt;$ wait 0:0:0.01&lt;BR /&gt;$ goto 1&lt;BR /&gt;&lt;BR /&gt;This wil wait 1/100th of a second before repeating itself.&lt;BR /&gt;Good monitors should at least find this as well, and then you can try for the limits of sensitivity.&lt;BR /&gt;&lt;BR /&gt;Proost.&lt;BR /&gt;&lt;BR /&gt;Have one on me.&lt;BR /&gt;&lt;BR /&gt;jpe&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 30 Aug 2007 14:04:29 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066175#M86167</guid>
      <dc:creator>Jan van den Ende</dc:creator>
      <dc:date>2007-08-30T14:04:29Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066176#M86168</link>
      <description>Jan,&lt;BR /&gt;&lt;BR /&gt;While the recommendation to set proc/prio=0 prior to executing a looping DCL procedure is a good one, I don't think it would prevent other processes from getting any CPU time unless it was run at realtime priority, even on a single processor system.&lt;BR /&gt;&lt;BR /&gt;Is there something you know from experience that I am not aware of?&lt;BR /&gt;&lt;BR /&gt;Jon</description>
      <pubDate>Thu, 30 Aug 2007 14:19:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066176#M86168</guid>
      <dc:creator>Jon Pinkley</dc:creator>
      <dc:date>2007-08-30T14:19:12Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066177#M86169</link>
      <description>Jon,&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt;I don't think it would prevent other processes from getting any CPU time unless it was run at realtime priority&lt;BR /&gt;&amp;lt;&amp;lt;&amp;lt;&lt;BR /&gt;&lt;BR /&gt;Strickly speaking, you are right.&lt;BR /&gt;&lt;BR /&gt;But _IF_ such procedure runs at interactive priority, (on a single-CPU system) it is VERY rough competition for anything else.&lt;BR /&gt;&lt;BR /&gt;I have had to deal with something like it (a loop through about half a dozen native DCL commands), and it took about 15 minutes to enable ALTPRI &amp;amp; set my prio to 9.&lt;BR /&gt;After that I could fairly quick find the culprit and lower its prio to zero. Things started moving aging, so I could determine that it was indeed in a tight PC loop.&lt;BR /&gt;&lt;BR /&gt;I killed the process, and inspected the DCL.&lt;BR /&gt;I forgot the details, but IIRC, a variable was set in local scope, and setting it globally to another value did not create an exit  :-)&lt;BR /&gt; &lt;BR /&gt;Bottom line: I grew allergic for tight loops without IO or WAITs.&lt;BR /&gt;&lt;BR /&gt;fwiw&lt;BR /&gt;&lt;BR /&gt;Proost.&lt;BR /&gt;&lt;BR /&gt;Have one on me.&lt;BR /&gt;&lt;BR /&gt;jpe</description>
      <pubDate>Thu, 30 Aug 2007 14:49:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066177#M86169</guid>
      <dc:creator>Jan van den Ende</dc:creator>
      <dc:date>2007-08-30T14:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066178#M86170</link>
      <description>And here's a little Macro32 executable program that loops until interrupted, and a DCL wrapper that builds and runs the image at low priority until interrupted by ^Y...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;$ macro/object=loop.obj sys$input:&lt;BR /&gt;  .entry go,^m&amp;lt;&amp;gt;&lt;BR /&gt;  10$: brb 10$&lt;BR /&gt;  .end go&lt;BR /&gt;$ link loop&lt;BR /&gt;$ authpri = f$getjpi("0","AUTHPRI")&lt;BR /&gt;$ set process/prior=0&lt;BR /&gt;$ set control=y&lt;BR /&gt;$ write sys$output "Press Ctrl/Y to exit the loop"&lt;BR /&gt;$ on control_y then goto done&lt;BR /&gt;$ run loop&lt;BR /&gt;$done:&lt;BR /&gt;$ set process/prior='authpri'&lt;BR /&gt;$ exit&lt;BR /&gt;</description>
      <pubDate>Thu, 30 Aug 2007 15:59:49 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066178#M86170</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2007-08-30T15:59:49Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066179#M86171</link>
      <description>Thanks to all that responded.&lt;BR /&gt;I have what I need to test the OpenView monitoring policy.&lt;BR /&gt;&lt;BR /&gt;Thanks again.&lt;BR /&gt;&lt;BR /&gt;-Tom Wolf</description>
      <pubDate>Thu, 30 Aug 2007 16:17:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066179#M86171</guid>
      <dc:creator>Tom Wolf_3</dc:creator>
      <dc:date>2007-08-30T16:17:44Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066180#M86172</link>
      <description>I am not sure how OpenView checks for looping processes.  It if checks for processes with high CPU utilization, then the proposal of using a loop with a 1/100 second wait is very likely not to generate enough usage for it to notice.&lt;BR /&gt;&lt;BR /&gt;I fact, I just tested the command procedure on the slowest box we have, an AlphaServer 2000 4/233 (uniprocessor) running OpenVMS V7.3-2 with the following results via ^T &lt;BR /&gt;&lt;BR /&gt;$ @scr:looper&lt;BR /&gt;DELTA::JON 17:20:14   (DCL)   CPU=00:00:01.89 PF=616 IO=1215 MEM=112&lt;BR /&gt;DELTA::JON 17:20:16   (DCL)   CPU=00:00:01.89 PF=616 IO=1216 MEM=112&lt;BR /&gt;DELTA::JON 17:20:17   (DCL)   CPU=00:00:01.89 PF=616 IO=1217 MEM=112&lt;BR /&gt;DELTA::JON 17:20:19   (DCL)   CPU=00:00:01.90 PF=616 IO=1218 MEM=112&lt;BR /&gt;DELTA::JON 17:20:21   (DCL)   CPU=00:00:01.90 PF=616 IO=1219 MEM=112&lt;BR /&gt;DELTA::JON 17:20:22   (DCL)   CPU=00:00:01.90 PF=616 IO=1220 MEM=112&lt;BR /&gt;DELTA::JON 17:20:24   (DCL)   CPU=00:00:01.91 PF=616 IO=1221 MEM=112&lt;BR /&gt;DELTA::JON 17:20:26   (DCL)   CPU=00:00:01.91 PF=616 IO=1222 MEM=112&lt;BR /&gt;DELTA::JON 17:20:29   (DCL)   CPU=00:00:01.91 PF=616 IO=1223 MEM=112&lt;BR /&gt;DELTA::JON 17:20:32   (DCL)   CPU=00:00:01.92 PF=616 IO=1224 MEM=112&lt;BR /&gt; Interrupt &lt;BR /&gt;&lt;BR /&gt;$ &lt;BR /&gt;&lt;BR /&gt;DELTA is a satellite with no disk except a local page/swap disk, and has 128MB of memory, so I think this is a fair representation of an unusably slow machine for any serious use. However, the looper with 0.01 sec wait barely increments the CPU time.&lt;BR /&gt;&lt;BR /&gt;Just as a note, CPU time accounting is not accurate for processes that use less than a tick of CPU before going into a voluntary wait.  That is one reason that things like MONITOR get charged less CPU time than they actually use.&lt;BR /&gt;&lt;BR /&gt;While running a CPU bound process at priority zero will affect performance on the machine, it isn't going to be terrible.  About the only thing it will do is prevent the idle process from being able to clear free pages for the dzero page cache, an other low priority processes.&lt;BR /&gt;&lt;BR /&gt;My whole point is that I don't think the looper with wait state is going to be detected by any tool that is looking at CPU time utilization as its means of detecting a looping process.&lt;BR /&gt;&lt;BR /&gt;But Jan it right.  If you have someone running many instances of compute bound processes at interactive priority on a uniprocessor system, things get sluggish, especially if quantum is set to 20.&lt;BR /&gt;&lt;BR /&gt;Jon</description>
      <pubDate>Thu, 30 Aug 2007 17:06:33 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066180#M86172</guid>
      <dc:creator>Jon Pinkley</dc:creator>
      <dc:date>2007-08-30T17:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Generating a looping process</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066181#M86173</link>
      <description>It shouldn't be necessary to reduce the priority of a truly CPU bound process below normal interactive priority, unless you've been messing with the SYSGEN parameters that adjust the priority boosting mechanism (QUANTUM, DORMANTWAIT, PIXSCAN and IOTA).&lt;BR /&gt;&lt;BR /&gt;By default processes which are voluntarily entering wait states will quickly receive priority boosts, and will therefore preempt the CPU bound process at lower priority. CPU bound process will not be granted any priority boost, and will therefore remain with current=base priority. Having many CPU bound processes will have the effect of raising the effective interactive priority, as all "normal" processes will naturally get boosted above the priority of the CPU bound processes.&lt;BR /&gt;&lt;BR /&gt;Quite a few years ago, an "expert" published a recommendation that DORMANTWAIT be set to its maximum value in order to "improve VMS performance". Nonsense! The effect was to disable priority boosting, which could result in priority lockouts from CPU bound processes. The classic was a batch job starting at priority 3, getting as far as taking out a lock on the root bucket in SYSUAF, and then being starved of CPU by interactive processes running at priority 4. Thus preventing further logins. &lt;BR /&gt;&lt;BR /&gt;On a system with default priority boosting parameters, there should be no danger whatsoever from starting numerous CPU loops such as the DCL or MACRO32 code posted here, even without delays, and on a single CPU system.&lt;BR /&gt;&lt;BR /&gt; Those processes would simply become the idle loop instead of NULL, and the priority of the CUR process(es) will increase a few points (though on Alpha and Integrity systems, there could conceivably be a slight performance hit because the idle loop isn't generating zeroed pages)&lt;BR /&gt;&lt;BR /&gt;I also agree with Jon, any monitor which detected a process with 1/100th second pause on each loop iteration as being CPU bound is just plain wrong!</description>
      <pubDate>Thu, 30 Aug 2007 18:54:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/generating-a-looping-process/m-p/5066181#M86173</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2007-08-30T18:54:08Z</dc:date>
    </item>
  </channel>
</rss>

