Fri Mar 29 08:25:31 2024
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2015-01-01

LEARN

2024-03-29 | 2024-02-29 | 2024-01-29 | 2023-12-29 | 2023-11-29 | 2023-10-29 | 2023-09-29 | 2023-08-29 | 2023-07-29 | 2023-06-29 | 2023-05-29 | 2023-04-29 | 2023-03-29 | 2023-02-28 | 2023-01-28 | 2022-12-28 | 2022-11-28 | 2022-10-28 | 2022-09-28 | 2022-08-28 | 2022-07-28 | 2022-06-28 | 2022-05-28 | 2022-04-28 | 2022-03-28 | 2022-02-28 | 2022-01-28 | 2021-12-28 | 2021-11-28 | 2021-10-28 | 2021-09-28 | 2021-08-28 | 2021-07-28 | 2021-06-28 | 2021-05-28 | 2021-04-28 | 2021-03-28 | 2021-02-28 | 2021-01-28 | 2020-12-28 | 2020-11-28 | 2020-10-28 | 2020-09-28 | 2020-08-28 | 2020-07-28 | 2020-06-28 | 2020-05-28 | 2020-04-28 | 2020-03-28 | 2020-02-28 | 2020-01-28 | 2019-12-28 | 2019-11-28 | 2019-10-28 | 2019-09-28 | 2019-08-28 | 2019-07-28 | 2019-06-28 | 2019-05-28 | 2019-04-28 | 2019-03-28 | 2019-02-28 | 2019-01-28 | 2018-12-28 | 2018-11-28 | 2018-10-28 | 2018-09-28 | 2018-08-28 | 2018-07-28 | 2018-06-28 | 2018-05-28 | 2018-04-28 | 2018-03-28 | 2018-02-28 | 2018-01-28 | 2017-12-28 | 2017-11-28 | 2017-10-28 | 2017-09-28 | 2017-08-28 | 2017-07-28 | 2017-06-28 | 2017-05-28 | 2017-04-28 | 2017-03-28 | 2017-02-28 | 2017-01-28 | 2016-12-28 | 2016-11-28 | 2016-10-28 | 2016-09-28 | 2016-08-28 | 2016-07-28 | 2016-06-28 | 2016-05-28 | 2016-04-28 | 2016-03-28 | 2016-02-28 | 2016-01-28 | 2015-12-28 | 2015-11-28 | 2015-10-28 | 2015-09-28 | 2015-08-28 | 2015-07-28 | 2015-06-28 | 2015-05-28 | 2015-04-28 | 2015-03-28 | 2015-02-28 | 2015-01-28 | 2014-12-28 | 2014-11-28 | 2014-10-28

Key: Value:

Key: Value:

MESSAGE
DATE 2015-01-30
FROM Ruben Safir
SUBJECT Re: [LIU Comp Sci] Operating System Interupts
From owner-learn-outgoing-at-mrbrklyn.com Fri Jan 30 08:29:20 2015
Return-Path:
X-Original-To: archive-at-mrbrklyn.com
Delivered-To: archive-at-mrbrklyn.com
Received: by mrbrklyn.com (Postfix)
id CD1B5161184; Fri, 30 Jan 2015 08:29:20 -0500 (EST)
Delivered-To: learn-outgoing-at-mrbrklyn.com
Received: by mrbrklyn.com (Postfix, from userid 28)
id BAC5316118F; Fri, 30 Jan 2015 08:29:20 -0500 (EST)
Delivered-To: learn-at-mrbrklyn.com
Received: from mailbackend.panix.com (mailbackend.panix.com [166.84.1.89])
by mrbrklyn.com (Postfix) with ESMTP id 466DC161184
for ; Fri, 30 Jan 2015 08:29:20 -0500 (EST)
Received: from [10.0.0.19] (unknown [96.57.23.82])
by mailbackend.panix.com (Postfix) with ESMTPSA id 550D5139D7;
Fri, 30 Jan 2015 08:29:19 -0500 (EST)
Message-ID: <54CB872E.9080604-at-panix.com>
Date: Fri, 30 Jan 2015 08:29:18 -0500
From: Ruben Safir
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: learn-at-mrbrklyn.com, Samir Iabbassen ,
Mohammed Ghriga
Subject: Re: [LIU Comp Sci] Operating System Interupts
References: <54CAAE57.1030900-at-panix.com> <54CAF652.5050609-at-panix.com> <54CAF87A.2070505-at-my.liu.edu>
In-Reply-To: <54CAF87A.2070505-at-my.liu.edu>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Sender: owner-learn-at-mrbrklyn.com
Precedence: bulk
Reply-To: learn-at-mrbrklyn.com

More useful usenet responses.

Actually, this is very nicely written and is a prime example of how
computing education and sharing can happen at its best when you reach
out and participate with the larger community.

What sucks is that this won't be on the damn exams. Maybe it should be.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When a cpu receives an unmasked interrupt signal (you will probably
learn about masking interrupts later - generally, the OS can control
which interrupts are enabled), it must do three things:

1. It must pause execution of the current instruction stream
2. It must store critical state data so that normal execution can be
resumed later.
3. It must jump to some user/system code to handle the interrupt.

Step 1 here is mostly internal to the processor, and won't be visible to
the OS or programmers (except that it can affect the reaction time for
interrupts, which can be critical in embedded systems).

Step 2 varies tremendously between processor types, but it generally
involves storing a minimal set of registers in a safe place, so that the
software interrupt handler can run (and save other registers as needed).
CISC processors generally push the current stack pointer and the flag
register onto the stack. For more complex CISC processors such as the
68040, there can be other registers saved to keep track of the state of
long-running instructions (like block copy instructions). RISC
processors like the PPC save them in dedicated "interrupt save"
registers. Some processors, like the ARM responding to a "fast
interrupt", enable a dedicated register bank. And some, like the
Cortex-M3, save a number of registers so that the interrupt handlers can
be written as plain C functions without need for assembly or special
handling.

Step 3 is where the processor figures out what code to run next. This
again varies between processors. For some, there is a single fixed
address that is always used - then it is up to the user code to figure
out the source of the interrupt, and handle it (using a table of
function pointers, a switch statement, a series of if's, etc.). Some
processors have dedicated internal registers for interrupt routine
addresses. Some will have an interrupt controller module (either
builtin, or as a separate device) that figures out the interrupt source
and gets an appropriate handler address from internal registers or a
memory table. And other cpus get an interrupt number directly, and use
that to look up a table of handler addresses (typically based at a
configurable address).

However the handler address is discovered, the processor then jumps to
the code at that address. It is up to that code to figure out what
caused the interrupt (if the cpu supports a table of handlers, the code
will already have a fair idea). It also needs to store additional
registers and processor state, and then deal with the interrupt itself.
Afterwards it can either return to the interrupted code, or cause some
sort of context switch (a more advanced topic that you will get to later
in the book, I expect).

For most processors, this handler requires some assembly programming or
at least special compiler extensions and attributes - it is not a
"normal" C function. And there are always restrictions on how handler
code interacts with the OS and system calls.


A note on terminology - the term "interrupt vector" is sometimes used to
mean a table of pointers to interrupt handlers, as used in the quotation
you gave. But it can also be used to mean simply /a/ pointer to an
interrupt handler. Thus sometimes one talks about "a table of interrupt
vectors". I've tried to avoid the term here, to avoid confusion - I
recommend you do so too unless you make the meaning explicitly clear.


On 29/01/15 23:11, ruben safir wrote:

> I'm wondering if anyone has a background in operating system design.
> I'm taking a class is OS's and the text is
>
> OPERATING
> SYSTEM
> CONCEPTS
> ABRAHAM SILBERSCHATZ
> 9th edition, and it says something that is puzzling me
>
>
>
> "Interrupts are an important part of a computer architecture. Each
> computer design has its own interrupt mechanism, but several functions
> are common. The interrupt must transfer control to the appropriate
> interrupt service routine. The straightforward method for handling this
> transfer would be to invoke a generic routine to examine the interrupt
> information. The routine, in turn, would call the interrupt-specific
> handler. However, interrupts must be handled quickly"
>
> " Since only a predefined number of interrupts is possible, a table of
> pointers to interrupt routines can be used instead*** to provide the
> necessary speed. The interrupt routine is called indirectly through the
> table, with no intermediate routine needed. Generally, the table of
> pointers is stored in low memory (the first hundred or so locations).
> These locations hold the addresses of the interrupt service routines for
> the various devices. This array, or interrupt vector, of addresses is
> then indexed by a unique device number, given with the interrupt
> request, to provide the address of the interrupt service routine for
> the interrupting device. Operating systems as different as Windows and
> UNIX dispatch interrupts in this manner."
>
>
> *** Instead of what? Just because you have a table of pointers to
> routines doesn't change the need for a routine, a generic routine
> perhaps, from accessing that table.
>

  1. 2015-01-01 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] databse normalzation resources
  2. 2015-01-04 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Future of Computer Education
  3. 2015-01-04 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Re: [NYLXS - HANGOUT] Future of Computer Education
  4. 2015-01-21 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] pinging new semester...
  5. 2015-01-21 duodujames <duodujames-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  6. 2015-01-21 Maneesh Kongara <maneeshkongara-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  7. 2015-01-21 duodujames <duodujames-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  8. 2015-01-21 Maneesh Kongara <maneeshkongara-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  9. 2015-01-21 duodujames <duodujames-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  10. 2015-01-21 Maneesh Kongara <maneeshkongara-at-gmail.com> RE: [LIU Comp Sci] pinging new semester...
  11. 2015-01-21 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] pinging new semester...
  12. 2015-01-21 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] pinging new semester...
  13. 2015-01-21 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] pinging new semester...
  14. 2015-01-21 duodujames <duodujames-at-gmail.com> Re: [LIU Comp Sci] pinging new semester...
  15. 2015-01-21 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Class Virtual Machine
  16. 2015-01-21 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] pinging new semester...
  17. 2015-01-22 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  18. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  19. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  20. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  21. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  22. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  23. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  24. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  25. 2015-01-22 Ruben <ruben.safir-at-my.liu.edu> Re: [LIU Comp Sci] Normalization review
  26. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  27. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  28. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  29. 2015-01-22 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  30. 2015-01-22 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  31. 2015-01-22 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  32. 2015-01-22 Sergei Glikstein <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  33. 2015-01-22 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  34. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] study hall today
  35. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Algorithms Assignment 1 attempt
  36. 2015-01-22 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Algoritms
  37. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  38. 2015-01-23 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  39. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  40. 2015-01-23 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  41. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Algorithms Assignment 1 attempt
  42. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  43. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  44. 2015-01-23 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  45. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  46. 2015-01-23 From: "Serge Glikstein" <serge.gl-at-gmail.com> Re: [LIU Comp Sci] Normalization review
  47. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Normalization review
  48. 2015-01-23 Kamran <kamran.mirzayev-at-my.liu.edu> Re: [LIU Comp Sci] study hall today
  49. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Re: [NYLXS - HANGOUT] Linux Job Crunch
  50. 2015-01-23 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Software compexity and history - must see video
  51. 2015-01-26 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Weather Emergency!!
  52. 2015-01-28 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] making the class up on the fly
  53. 2015-01-28 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] making the class up on the fly
  54. 2015-01-28 Tony Genao <tony.genao-at-my.liu.edu> Re: [LIU Comp Sci] making the class up on the fly
  55. 2015-01-28 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] making the class up on the fly
  56. 2015-01-28 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] making the class up on the fly
  57. 2015-01-28 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] making the class up on the fly
  58. 2015-01-28 mrbrklyn-at-panix.com Subject: [LIU Comp Sci] NYLUG Open hacker hours
  59. 2015-01-28 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Operating Systems gibberish
  60. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] making the class up on the fly
  61. 2015-01-29 muhammad rizwan khalid <rizwankhalid316-at-gmail.com> Re: [LIU Comp Sci] making the class up on the fly
  62. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] making the class up on the fly
  63. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Operating System Interupts
  64. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Operating System Interupts
  65. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Operating System Interupts
  66. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Operating System Interupts
  67. 2015-01-29 Ruben <ruben.safir-at-my.liu.edu> Re: [LIU Comp Sci] Operating System Interupts
  68. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] LIU mailing list FAQ
  69. 2015-01-29 mrbrklyn-at-panix.com Subject: [LIU Comp Sci] nixCraft Linux / UNIX Newsletter
  70. 2015-01-29 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Operating System Interupts
  71. 2015-01-30 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Operating System Interupts
  72. 2015-01-31 Maneesh Kongara <maneeshkongara-at-gmail.com> Re: [LIU Comp Sci] Linked List Homework
  73. 2015-01-31 Ruben Safir <mrbrklyn-at-panix.com> Re: [LIU Comp Sci] Linked List Homework
  74. 2015-01-31 Ruben Safir <mrbrklyn-at-panix.com> Subject: [LIU Comp Sci] Linked List Homework
  75. 2015-01-31 mrbrklyn-at-panix.com Subject: [LIU Comp Sci] linkedlist example

NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!