External Interrupt has always been a grab bag, even on S/360. S/370 added more 
events that I wouldn't describe as external. The list is pretty long these days.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


________________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of Tom 
Brennan <t...@tombrennansoftware.com>
Sent: Saturday, October 19, 2019 7:24 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Best way for a task to give up the CPU and let other tasks run?

Interesting, thanks!  So it generates an external interrupt.  I always
thought that one was only for the external interrupt "key", but this
page indicates CPU timer and some kind of CP-to-CP communication too:

https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_interrupts.htm

Ok... now back to my weekend work, like changing the oil in my truck.

On 10/19/2019 3:54 PM, Charles Mills wrote:
> Check out "CPU Timer" in the Principles of Operation.
>
> Charles
>
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
> Behalf Of Charles Mills
> Sent: Saturday, October 19, 2019 12:47 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Best way for a task to give up the CPU and let other tasks run?
>
> Thanks!
>
> I suppose some encryption algorithm for which there was no hardware assist 
> available might be a more practical real-world scenario.
>
>> Is there something in the dispatcher that is on a timer that ends up saying 
>> this task has gotten enough CPU and it's time to move to the next TCB?
>
> In my way imperfect understanding, yes. I believe there is a hardware feature 
> now wherein MVS can say "give me an interrupt when this CPU has run for nnn 
> CPU microseconds" or something similar.
>
> If not, then most operating systems have a concept of the time slice: we will 
> let set a hardware timer for nnn real-time microseconds and when the timer 
> goes off, re-evaluate our scheduling algorithm.
>
> Charles
>
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
> Behalf Of Tom Brennan
> Sent: Saturday, October 19, 2019 12:37 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Best way for a task to give up the CPU and let other tasks run?
>
> Great descriptions!  I was thinking of the PI calculation myself because
> that's a case where you're doing real work, but the loop could be coded
> with no I/O and no SVC calls (which would give up control).  Now here's
> a case I thought about in the past:  Assuming I'm running such a PI
> calculation (non-supervisor, interrupts enabled), what is it that
> eventually interrupts my running code?  Of course there are previous I/O
> completions from other tasks or CP's, but imagine (maybe on a
> specialized system?) there's nothing much else going on.  Is there
> something in the dispatcher that is on a timer that ends up saying this
> task has gotten enough CPU and it's time to move to the next TCB?
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to