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
