You use an IRB for any of
Obsolete access methods
STIMER with exit
STAI
STAX
________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of Tom
Brennan <[email protected]>
Sent: Sunday, September 17, 2023 3:08 PM
To: [email protected]
Subject: Re: Why it's important to take Seymour's advice
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
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN