Monday, October 14, 2019
Interrupt and a Trap in an Operating System Essay Example for Free
 Interrupt and a Trap in an Operating System Essay  What are the differences between an interrupt and a trap? What are their importance? According to Stallings (2012) an interrupt is ââ¬Å"a suspension of a process, such as the execution of a computer program, caused by an event external to that process and performed in such a way that the process can be resumedâ⬠ (p. 716). Stallings (2012) goes on to say that ââ¬Å"interrupts are provided primarily as a way to improve processor utilization. For example, most I/O devices are much slower than the processorâ⬠ (p.         14). ââ¬Å"A trap is an unprogrammed conditional jump to a specified address that is automatically activated by hardware; the location from which the jump was made is recordedâ⬠ (Stallings, 2012, p. 721). A trap is actually a software generated interrupt caused either by an error (for example division by zero, invalid memory access etc.), or by a specific request by an operating system service generated by a user program.  Trap is sometimes called Exception. The hardware or software can generate these interrupts. When the interrupt or trap occurs, the hardware transfers control to the operating system which first preserves the current state of the system by saving the current CPU registers content and program counters value. Then the focus shifts to the determination of which type of interrupt has occurred. For each type of interrupt, separate segments of code in the operating system determine what action should be taken and thus the system keeps on functioning by executing computational instruction, I/O instruction, storage instruction etc. Provide an example of each.  Example of an Interrupt retrieved from http://www.scriptoriumdesigns.com/embedded/show_codefile.php?fname=interrupts/AVR_ISR_1.c  // AVR_ISR_1  #include avr/io.h  #include avr/interrupt.h  typedef uint8_t u8; // convenient unsigned variable designations  typedef uint16_t u16;  #define INPORT PIND  #define OUTPORT PORTC  #define OUTDDR DDRC  volatile u8 Int_flag = 0;  ISR( INT0_vect )  {  OUTPORT ^= 0x01; // toggle LED  }  void int0_init( void )  {  MCUCR = (1ISC01); // enable negative edge on INT0  GICR = (1INT0); // enable INT0  }  int main( void )  {  OUTDDR = 0x01; // set bit 0 to output  OUTPORT = 0x01; // set LED off (active low)  int0_init(); // configure INT0  sei(); // enable global interrupts  while (1) // loop forever, all work happens in ISR  ;  return(0);  Example of a trap retrieved from http://www.ibm.com/developerworks/aix/library/au-usingtraps/index.html #!/bin/bash  #  proj_dir=/opt/pcake/bin  # check file is present  if [ ! -f $proj_dir/run_pj ]  then  echo  $proj_dir/run_pj not presentexiting  exit 1  fi  # make a backup copy  cp -p $proj_dir/run_pj $proj_dir/run_pj.24042011  if [ $? != 0 ]  then  echo $proj_dir/run_pj no backup madeexiting  exit 1  fi  # copy over updated file  if [ ! -f /opt/dump/rollout/run_pj ]  then  echo /opt/dump/rollout/run_pj not presentexiting  exit 1  fi  cp -p /opt/dump/rollout/run_pj $proj_dir/run_pj  if [ $? != 0 ]  then  echo  $proj_dir/run_pj was not copied..exiting  exit 1  fi  References:  Stallings, W. (2012). Operating systems: Internals and design principles (7th ed.). Boston, MA: Prentice Hall.    
Subscribe to:
Post Comments (Atom)
 
 
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.