Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Organización de la Computadora Sistemas Operativos Andrés Felipe Barco Santa Pontificia Universidad Javeriana Febrero de 2010 Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arquitectura Arquitectura de Von Newumann Arquitectura El Sistema operativo provee abstracciones para que el hardware pueda ser operado sin tener que conocer los detalles de cómo son se realiza esa operación. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arquitectura Arquitectura de Von Newumann Arquitectura El Sistema operativo provee abstracciones para que el hardware pueda ser operado sin tener que conocer los detalles de cómo son se realiza esa operación. John Von Neumann “It is evident that the machine must be capable of storing in some manner not only digital information needed in a given computation..., but also the instructions wich govern the actual routines to be performed on the numerical dara” Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arquitectura Arquitectura de Von Newumann Arquitectura de Von Newumann Figura: Tomado de Operating Systems, 3 Edition, Gary Nutt Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Arithmetical Logical Unit La ALU realiza una serie de operaciones binarias tanto aritmeticas como lógicas, tales como; suma, resta y el AND lógico. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Arithmetical Logical Unit La ALU realiza una serie de operaciones binarias tanto aritmeticas como lógicas, tales como; suma, resta y el AND lógico. La unidad funcional realiza las operaciones. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Arithmetical Logical Unit La ALU realiza una serie de operaciones binarias tanto aritmeticas como lógicas, tales como; suma, resta y el AND lógico. La unidad funcional realiza las operaciones. Los registros retienen los operandos y resultados. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Arithmetical Logical Unit La ALU realiza una serie de operaciones binarias tanto aritmeticas como lógicas, tales como; suma, resta y el AND lógico. La unidad funcional realiza las operaciones. Los registros retienen los operandos y resultados. Los registros de estado reflejan los resultados de las operaciones de la unidad funcional. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Arithmetical Logical Unit Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Control Unit La unidad de control es la encargada de la secuencia de obtener una instrucción de memoria y ejecutarla. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Control Unit La unidad de control es la encargada de la secuencia de obtener una instrucción de memoria y ejecutarla. El contador de programa (PC) contiene la dirección de la próxima instrucción a ejecutar. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Control Unit La unidad de control es la encargada de la secuencia de obtener una instrucción de memoria y ejecutarla. El contador de programa (PC) contiene la dirección de la próxima instrucción a ejecutar. El registro de instrucción (IR) contiene una copia de la intrucción actual una vez se ha obtenido de memoria. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Control Unit La unidad de control es la encargada de la secuencia de obtener una instrucción de memoria y ejecutarla. El contador de programa (PC) contiene la dirección de la próxima instrucción a ejecutar. El registro de instrucción (IR) contiene una copia de la intrucción actual una vez se ha obtenido de memoria. Sus tres unidades lógicas son la unidad de obtención (fetch unit), unidad decodificadora (decode unit) y unidad de ejecución (execute unit). Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Control Unit Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Fetch-Execute Cycle PC = <machine start address>; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Fetch-Execute Cycle PC = <machine start address>; IR = memory[PC] Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Fetch-Execute Cycle PC = <machine start address>; IR = memory[PC] haltflag = CLEAR; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Arithmetical Logical Unit Control Unit Fetch-Execute Cycle Fetch-Execute Cycle PC = <machine start address>; IR = memory[PC] haltflag = CLEAR; while(haltFlag not SET during execution)f PC = PC + 1; execute(IR); IR = memory[PC]; g; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Executable Memory Diseño de memoria Executable Memory La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Executable Memory Diseño de memoria Executable Memory La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU. El registro de dirección de memoria (MAR) almacena la dirección de memoria a la cual se desea acceder. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Executable Memory Diseño de memoria Executable Memory La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU. El registro de dirección de memoria (MAR) almacena la dirección de memoria a la cual se desea acceder. El registro de dato de memoria (MDR) almacena los datos que se escriben/leen a/desde la memoria. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Executable Memory Diseño de memoria Executable Memory La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU. El registro de dirección de memoria (MAR) almacena la dirección de memoria a la cual se desea acceder. El registro de dato de memoria (MDR) almacena los datos que se escriben/leen a/desde la memoria. El registro de comando (Cmd) almacena la operación deseada (read/write). Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Executable Memory Diseño de memoria Diseño de memoria Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Devices Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa información se envia desde la CPU a los dispositvos de salida. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Devices Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa información se envia desde la CPU a los dispositvos de salida. El controlador del dispositivo provee un conjunto de componentes que la CPU puede manipular para hacer operar el dispositivo. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Devices Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa información se envia desde la CPU a los dispositvos de salida. El controlador del dispositivo provee un conjunto de componentes que la CPU puede manipular para hacer operar el dispositivo. El dispositivo (entrada/salida) Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device-Controller Relationship Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controllers Motivación Un dispositivo requiere de mucha antención durante su operación. Si el software realizará esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastarı́an recursos. busy define si el dispositivo está ocupdado Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controllers Motivación Un dispositivo requiere de mucha antención durante su operación. Si el software realizará esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastarı́an recursos. busy define si el dispositivo está ocupdado done define si la operación encargada al dispositivo a terminado Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controllers Motivación Un dispositivo requiere de mucha antención durante su operación. Si el software realizará esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastarı́an recursos. busy define si el dispositivo está ocupdado done define si la operación encargada al dispositivo a terminado error define si ha habido algún error mientras se operaba Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controllers Motivación Un dispositivo requiere de mucha antención durante su operación. Si el software realizará esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastarı́an recursos. busy define si el dispositivo está ocupdado done define si la operación encargada al dispositivo a terminado error define si ha habido algún error mientras se operaba command define que comando se ejecuta Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controllers Motivación Un dispositivo requiere de mucha antención durante su operación. Si el software realizará esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastarı́an recursos. busy define si el dispositivo está ocupdado done define si la operación encargada al dispositivo a terminado error define si ha habido algún error mientras se operaba command define que comando se ejecuta Los regustros de datos son, naturalmente, para almacenar datos de entrada y salida Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Device Controller Interface Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Posibilidades El diseño anterior permite cubrir algunas funcionalidades. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Posibilidades El diseño anterior permite cubrir algunas funcionalidades. Direct Memory Access (DMA) Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Devices Device-Controller Relationship Device Controllers Device Controller Interface Posibilidades Posibilidades El diseño anterior permite cubrir algunas funcionalidades. Direct Memory Access (DMA) Memory-Mapped I/O Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Polling Método Antiguo El polling es el método en el cual el software esta haciendo un chequeo constante de los registros busy y done, averiguando si el dispositivo termino su trabajo. Situacion busy-wait en el procesador!!! Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Polling I/O Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Interrupts Método Moderno La arquitectura de Von Neumann ha sido modificada para incorporar las intrrupciones. Esto permitirá un uso mucho más eficiente de los recursos por medio del solapar el uso de estos. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Interrupts Método Moderno La arquitectura de Von Neumann ha sido modificada para incorporar las intrrupciones. Esto permitirá un uso mucho más eficiente de los recursos por medio del solapar el uso de estos. Interrup Request Un registro al interior de la CPU controla el hecho de que un dispositivo teminó su trabajo. Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Fetch-Execute Cycle with Interrupts while(haltFlag not SET during execution)f IR = memory[PC]; PC = PC + 1; execute(IR); Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Fetch-Execute Cycle with Interrupts while(haltFlag not SET during execution)f IR = memory[PC]; PC = PC + 1; execute(IR); if(InterrupRequest) f memory[0] = PC; PC = memory[1]; g; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Interrup Handler Interrupt Handlerf saveProcessorState(); Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Interrup Handler Interrupt Handlerf saveProcessorState(); for (i=0, i<Number devices; i++) if (device[i].done == 1 ) goto device handler(i); /* Something wrong if we get here */ g; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Disabling Interrupts if(InterrupRequest && InterruptEnabled) f /* Interrupt current process */ memory[0] = PC; PC = memory[1]; g; Andrés Felipe Barco Santa Organización de la Computadora Introducción Unidad Central de Procesamiento Memoria Primaria I/O Devices Interrupts Polling Polling I/O Interrupts Fetch-Execute Cycle with Interrupts Interrup Handler Disabling Interrupts Fin de la Clase Nos vemos en la próxima!!! Andrés Felipe Barco Santa Organización de la Computadora