{"id":37,"date":"2011-06-13T10:54:32","date_gmt":"2011-06-13T15:54:32","guid":{"rendered":"http:\/\/tommysprinkle.com\/txxos\/?p=37"},"modified":"2021-04-17T18:32:16","modified_gmt":"2021-04-17T23:32:16","slug":"interruptions","status":"publish","type":"post","link":"https:\/\/tommysprinkle.com\/txxos\/?p=37","title":{"rendered":"Interruptions"},"content":{"rendered":"<p>The interruption is a mechanism to signal the CPU when certain conditions exist. For I\/O interruptions the CPU is signaled when some event happens with an I\/O device such as I\/O operation complete or an error condition. \u00a0By using interruptions the CPU can initiate an I\/O operation and does not have to\u00a0continuously\u00a0check the status to see if it has completed. \u00a0Instead when the I\/O operation is complete the CPU will be signaled with an interrupt.<\/p>\n<p>There are several classes of interrupts defined in the System 370 architecture. \u00a0Each interrupt class has two specific locations in low memory used to hold PSWs. \u00a0When an interrupt occurs the current CPU PSW is stored in the Old PSW location for the interrupt class and is replaced with the value of the New PSW location.<\/p>\n<p>By loading a New PSW the state of the CPU is changed enabling the interruption condition to be handled. \u00a0When interruption handling is complete the Old PSW can be used to restore execution of the interrupted program.<\/p>\n<p>Some interruptions can be &#8220;Masked&#8221; &#8211; that is ignored depending on settings in the current PSW. \u00a0For example while an I\/O interruption is being processed all other I\/O interruptions should be masked until completion of the current I\/O interruption processing.<\/p>\n<p>The classes of interruptions are:<\/p>\n<p><strong>Machine-Check Interruption<\/strong> Indicates an equipment malfunction. \u00a0When this\u00a0interruption occurs the Old PSW is stored in location 48 and a new PSW is fetched from location 112.<\/p>\n<p><strong>Program Interruption <\/strong>Results from an error during the execution of a program (such as an invalid operation code or attempt to execute a\u00a0privileged\u00a0instruction while in\u00a0problem\u00a0state). \u00a0When this\u00a0interruption occurs the Old PSW is stored in location 40 and a new PSW is fetched from location 104.<\/p>\n<p><strong>Supervisor Call Interruption<\/strong> Occurs when a Supervisor Call (SVC) instruction is executed.\u00a0When this\u00a0interruption occurs the Old PSW is stored in location 32 and a new PSW is fetched from location 96.<\/p>\n<p><strong>External Interruption<\/strong> Signals the CPU to conditions outside the system. \u00a0These interruptions include the operator pressing the Interrupt Key or when the Interval Timer is decremented and goes from a positive value to a negative value. \u00a0When this\u00a0interruption occurs the Old PSW is stored in location 24 and a new PSW is fetched from location 88.<\/p>\n<p><strong>Input\/Output Interruption <\/strong>Allows the CPU to be notified of various conditions for I\/O devices and channels. \u00a0When this\u00a0interruption occurs the Old PSW is stored in location 56 and a new PSW is fetched from location 120. \u00a0In addition a Channel Status Word (CSW) is stored at location 64.<\/p>\n<p><strong>Restart Interruption <\/strong>Allows the CPU to respond to an interruption generated by the operator pressing the restart key. \u00a0When this\u00a0interruption occurs the Old PSW is stored in location 8 and a new PSW is fetched from location 0 (zero).<\/p>\n<p><a title=\"Input Output Basics\" href=\"http:\/\/tommysprinkle.com\/txxos\/?p=45\">[Next &#8211; Input Output Basics]<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The interruption is a mechanism to signal the CPU when certain conditions exist. For I\/O interruptions the CPU is signaled when some event happens with an I\/O device such as I\/O operation complete or an error condition. \u00a0By using interruptions &hellip; <a href=\"https:\/\/tommysprinkle.com\/txxos\/?p=37\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"template-page-builder-no-sidebar.php","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1CPQT-B","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37"}],"version-history":[{"count":6,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions"}],"predecessor-version":[{"id":536,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions\/536"}],"wp:attachment":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}