STIMER(M) w/o (without) WAIT.

WAIT just places the RB in a wait so no IRB is required.

 On Sun, 17 Sep 2023 12:08:38 -0700 Tom Brennan <[email protected]>
wrote:

:>Thanks!  So the main points are (as I already thought) that an SRB isn't 
:>related to any TCB's and is dispatched before any TCB's, or even if 
:>there are no TCB's ready for work.
:>
:>And (what I think you're saying) is that an IRB is related to a 
:>particular TCB, which makes it quite different from an SRB, and an 
:>example is when a STIMER WAIT expires.  I always assumed when a WAIT 
:>expires nothing much happens except setting the issuing TCB flags so 
:>that it's now ready for work.
:>
:>Hmm... maybe the idea of an IRB for STIMER is because at the end of the 
:>WAIT you typically want to be interrupted "right now", rather than (like 
:>I believe) a POST just sets the TCB bits so it's ready, but that TCB 
:>might not get control for who-knows-how-long.
:>
:>Not that I'm going to code anything with an IRB or SRB, but it's 
:>interesting to try to understand what's happening.
:>
:>On 9/17/2023 11:38 AM, Binyamin Dissen wrote:
:>> Well, technically an SRB code can get control before the address space is
:>> supposed to get control.  The SRB runs without a TCB and is limited in which
:>> system services can be issued.
:>> 
:>> The IRB is an RB like a PRB and is associated with a TCB. It is usually 
placed
:>> by something not running under that TCB (usually an SRB) that wants to do
:>> something under that TCB. The IRB is usually placed at the top (bottom?)  of
:>> the chain so that the next time the TCB gets control the IRB code will run
:>> (note that the TCB could currently be in control on a CP and the current RB
:>> will keep running until an interrupt). At some time MVS added the facility 
to
:>> place the IRB whenever you want in the RB chain.
:>> 
:>> STIMER(M) w/o WAIT causes an IRB to be scheduled in the task when the 
interval
:>> ends.
:>> 
:>> On Sat, 16 Sep 2023 22:58:49 -0700 Tom Brennan <[email protected]>
:>> wrote:
:>> 
:>> :>I've never written code that runs as an SRB, but over the years I've
:>> :>read about them and seen them in action, such as Omegamon poking code
:>> :>into other address spaces to grab data or do things like zap memory.  So
:>> :>my simple understanding is an SRB is code that once scheduled, gets run
:>> :>first when the dispatcher comes back around to that address space, and
:>> :>then (I assume) is removed once it has done its work.
:>> :>
:>> :>So what's an IRB - Interrupt Request Block?  I've heard the name but
:>> :>know nothing about it other than the manual mentions Asynchronous Exits,
:>> :>but doesn't seem to go into the details.  So are we talking about code
:>> :>that gets executed sometime during interrupt processing, such as when an
:>> :>I/O interrupt occurs?
:>> :>
:>> :>On 9/15/2023 10:54 PM, Michael Stein wrote:
:>> :>> On Fri, Sep 15, 2023 at 06:16:59PM -0400, Joseph Reichman wrote:
:>> :>>> I did schedule the irb in the ikjeft01 TCB against Seymour's advice
:>> :>>> for a return code of zero from schedirb
:>> :>>
:>> :>> There are likely many ways to do something like what you are trying
:>> :>> to do and the IRB idea likely wasn't close to the best, however:
:>> :>>
:>> :>> * if you have a test system at your disposal where a dump or crash
:>> :>>    won't hurt others
:>> :>>
:>> :>> * and you have the time to do a bit of exploring and learning
:>> :>>
:>> :>> I don't see it as bad, unless you don't learn from it.
:>> :>>
:>> :>>> However the TMP Estae issued an SDUMP
:>> :>>
:>> :>> Which is what I'd expect if the code the IRB tried to run had any sort
:>> :>> of problem (program check? abend?).  The resulting abend will be passed
:>> :>> to that tasks (IKJEFT01) ESTAE and most likely it has no idea what to
:>> :>> do about it.  So it took a dump and likely got the RB chain for that
:>> :>> task cleaned up (or terminated the task?).
:>> :>>
:>> :>>> I guess it didn't like me scheduling an irb in its TCB
:>> :>>
:>> :>> No, my best guess is that IKJEFT01 has no idea anyone would do such
:>> :>> a thing.  And if the IRB code ran and terminated normally the IRB would
:>> :>> go away and IKJEFT01 would still be there and would never know.
:>> :>>
:>> :>> Go read the dump and figure out what happened...
:>> :>>
:>> :>> Find the IJKEFT01 TCB and it's RB chain.  Does it show an IRB on the
:>> :>> chain?  Where do the PSWs in the RBs on the chain point?
:>> :>>
:>> :>> ----------------------------------------------------------------------
:>> :>> For IBM-MAIN subscribe / signoff / archive access instructions,
:>> :>> send email to [email protected] with the message: INFO IBM-MAIN
:>> :>>
:>> :>>
:>> :>
:>> :>----------------------------------------------------------------------
:>> :>For IBM-MAIN subscribe / signoff / archive access instructions,
:>> :>send email to [email protected] with the message: INFO IBM-MAIN
:>> 
:>> --
:>> Binyamin Dissen <[email protected]>
:>> http://www.dissensoftware.com
:>> 
:>> Director, Dissen Software, Bar & Grill - Israel
:>> 
:>> ----------------------------------------------------------------------
:>> For IBM-MAIN subscribe / signoff / archive access instructions,
:>> send email to [email protected] with the message: INFO IBM-MAIN
:>> 
:>> 
:>
:>----------------------------------------------------------------------
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to [email protected] with the message: INFO IBM-MAIN

--
Binyamin Dissen <[email protected]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to