RESUMEN!!!
martes, 3 de septiembre de 2013
miércoles, 28 de agosto de 2013
Actividad #4 Investigar sobre conceptos de interrupciones y llamadas a servicios de sistema
INTERRUPCIONES
El Esquema Ordenador debe atender los requerimientos de los dispositivos de entrada/salida y para ello utiliza 2 técnicas: el Polling o encuestas.
Las interrupciones se clasifican en externas a aquellas que son pedidas por el hardware que a su vez pueden ser enmascarables o no enmascarables.
Al momento de solicitarse una interrupción (interna o externa) se está ejecutando un programa, si la interrupción se atiende se empilan los valores del CS, IP y del Registro de Estado y se asigna al CS el valor 0 y al IP 4 por el número de interrupciones, generando una dirección efectiva que provoca un salto a la parte baja de la memoria, un área conocida como Zona de vectorización.
La Zona de vectorización es un área de 1024 bytes (256 interrupciones por 4 bytes que tiene cada una) que se extiende desde la dirección 0 a la 3FF y que almacena las direcciones de comienzo de los algoritmos de interrupción.
Utiliza 4 bytes para la dirección, 2 para el segmento y 2 para el desplazamiento y estas direcciones se almacenan secuencialmente desde la dirección más baja, interrupción tras interrupción.
Siguiendo con la secuencia anterior se lee en la zona de vectorización la dirección de comienzo del algoritmo de interrupción asignándosele 2 bytes al segmento CS y 2 bytes al desplazamiento IP generándose en consecuencia una nueva dirección de salto que no lleva al algoritmo de interrupción.
Una vez allí se ejecutará el algoritmo (lee – interpreta – ejecuta) hasta encontrar la instrucción final del algoritmo que será un IRET o Retorno de Interrupción. Esta instrucción desempila los valores del RE, IP y CS volviendo a la instrucción ejecutada donde se había atendido la interrupción.
La interrupción 21
INTERRUPCIONES
Las interrupciones son algoritmos suministrados en su mayor porcentaje por el
sistema operativo y l BIOS, aunque todavía pueden existir algunas generadas por
empresas diferentes a las del sistema o por el usuario.
Una interrupción puede tener varias funciones y de simular manera de un procedimiento cuando se la invoque se deberá determinar la función que se está solicitando con los parámetro que corresponden.
Las interrupciones desde el punto de vista del Hardware
Una interrupción puede tener varias funciones y de simular manera de un procedimiento cuando se la invoque se deberá determinar la función que se está solicitando con los parámetro que corresponden.
Las interrupciones desde el punto de vista del Hardware
El Esquema Ordenador debe atender los requerimientos de los dispositivos de entrada/salida y para ello utiliza 2 técnicas: el Polling o encuestas.
Las interrupciones se clasifican en externas a aquellas que son pedidas por el hardware que a su vez pueden ser enmascarables o no enmascarables.
El
significado del enmascaramiento es que si se enmascaran no se atienden, esto se
logra con una instrucción conocida como DI (Disenell Interlap) inhabilitación de
interrupciones.
Las interrupciones no enmascarables que realizan sus pedidos a través de la línea MNI (None Enmascarable Interrup) a la línea de interrupciones no enmascarables.
El indicador de interrupciones no enmascarables es el bit I del Registro de Estado.
En la arquitectura de la PC el Microprocesador trabaja con un gestor de interrupciones conocido como Controlador programable de interrupciones (PIC 8259). Los diferentes dispositivos de entrada/salida solicitaran una interrupción al PIC a través de una línea IRQ (Interrap Request) desrequerimiento de interrupciones. Éste a su vez la solicitará al microprocesador a través de una línea INT de pedidos de interrupciones.
El micro evaluará si la interrupción es enmascarable leyendo el bit I del Registro de Estado, en el caso de no estarla aceptará la interrupción del PIC por medio de una señal de reconocimiento a través del INTA (Interrap Acrnoplep).
Cuando esta ocurre en PIC escribe en el bus de datos un valor de 8 bits que identifica el número interrupción solicitada (entre el 00h hasta FFh).
El hecho que un dispositivo pida interrupción a través de un número de IRQ no significa que el número de interrupción solicitada es el mismo.
Las interrupciones internas no son enmascarables porque entran directo al micro y como este lee – interpreta – ejecuta, si la leyó deberá ejecutarla porque no tiene capacidad para interrumpirla (el que decide si una interrupción es enmascarable o no es el software, es decir, el programador).
Las interrupciones desde el punto de vista del software
Las interrupciones no enmascarables que realizan sus pedidos a través de la línea MNI (None Enmascarable Interrup) a la línea de interrupciones no enmascarables.
El indicador de interrupciones no enmascarables es el bit I del Registro de Estado.
En la arquitectura de la PC el Microprocesador trabaja con un gestor de interrupciones conocido como Controlador programable de interrupciones (PIC 8259). Los diferentes dispositivos de entrada/salida solicitaran una interrupción al PIC a través de una línea IRQ (Interrap Request) desrequerimiento de interrupciones. Éste a su vez la solicitará al microprocesador a través de una línea INT de pedidos de interrupciones.
El micro evaluará si la interrupción es enmascarable leyendo el bit I del Registro de Estado, en el caso de no estarla aceptará la interrupción del PIC por medio de una señal de reconocimiento a través del INTA (Interrap Acrnoplep).
Cuando esta ocurre en PIC escribe en el bus de datos un valor de 8 bits que identifica el número interrupción solicitada (entre el 00h hasta FFh).
El hecho que un dispositivo pida interrupción a través de un número de IRQ no significa que el número de interrupción solicitada es el mismo.
Las interrupciones internas no son enmascarables porque entran directo al micro y como este lee – interpreta – ejecuta, si la leyó deberá ejecutarla porque no tiene capacidad para interrumpirla (el que decide si una interrupción es enmascarable o no es el software, es decir, el programador).
Las interrupciones desde el punto de vista del software
Al momento de solicitarse una interrupción (interna o externa) se está ejecutando un programa, si la interrupción se atiende se empilan los valores del CS, IP y del Registro de Estado y se asigna al CS el valor 0 y al IP 4 por el número de interrupciones, generando una dirección efectiva que provoca un salto a la parte baja de la memoria, un área conocida como Zona de vectorización.
La Zona de vectorización es un área de 1024 bytes (256 interrupciones por 4 bytes que tiene cada una) que se extiende desde la dirección 0 a la 3FF y que almacena las direcciones de comienzo de los algoritmos de interrupción.
Utiliza 4 bytes para la dirección, 2 para el segmento y 2 para el desplazamiento y estas direcciones se almacenan secuencialmente desde la dirección más baja, interrupción tras interrupción.
Siguiendo con la secuencia anterior se lee en la zona de vectorización la dirección de comienzo del algoritmo de interrupción asignándosele 2 bytes al segmento CS y 2 bytes al desplazamiento IP generándose en consecuencia una nueva dirección de salto que no lleva al algoritmo de interrupción.
Una vez allí se ejecutará el algoritmo (lee – interpreta – ejecuta) hasta encontrar la instrucción final del algoritmo que será un IRET o Retorno de Interrupción. Esta instrucción desempila los valores del RE, IP y CS volviendo a la instrucción ejecutada donde se había atendido la interrupción.
La interrupción 21
Es la
interrupción más importante del Sistema Operativo dos y como muchas
interrupciones tienen un conjunto de funciones que permiten hacer deferentes
cosas. Las funciones de una interrupción suelen indicarse con el registro
AH.
LLAMADAS AL SISTEMA
LLAMADAS AL SISTEMA
Una
llamada al sistema es un método o función que puede invocar un proceso para
solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos
recursos del sistema requieren la ejecución de código en modo privilegiado, el
sistema operativo ofrece un conjunto de métodos o funciones que el programa
puede emplear para acceder a dichos recursos. En otras palabras, el sistema
operativo actúa como intermediario, ofreciendo una interfaz de programación
(API) que el programa puede usar en cualquier momento para solicitar recursos
gestionados por el sistema operativo.
Algunos
ejemplos de llamadas al sistema son las siguientes:
- time,
que permite obtener la fecha y hora del sistema.
- write,
que se emplea para escribir un dato en un cierto dispositivo de salida, tales
como una pantalla o un disco magnético.
- read,
que es usada para leer de un dispositivo de entrada, tales como un teclado o un
disco magnético.
- open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.
Todo
sistema operativo ofrece un conjunto de llamadas al sistema. En el caso de Linux
3.0, se ofrecen un total de 345 llamadas al sistema.
Toda
llamada al sistema se identifica de manera unívoca mediante un valor numérico
que no debe ser modificado a lo largo de la vida del sistema operativo para
evitar que se rompa la compatibilidad hacia atrás.
Referencias:
http://es.wikipedia.org/wiki/Llamada_al_sistema
http://1984.lsi.us.es/wiki-ssoo/index.php/Llamadas_al_sistema
http://picfernalia.blogspot.mx/2012/06/interrupciones-conceptos-basicos.html
http://www.clubdesarrolladores.com/articulos/mostrar/59-conceptos-e-interrupciones/4
http://wwwdi.ujaen.es/~lina/TemasSO/INTRODUCCION/3Interfacesconelsistemaoperativo.htm
domingo, 25 de agosto de 2013
Actividad#3: Investigar la estructura y organización de un procesador (CPU).
Figura 12.1 El procesador y el bus del sistema
La estructura de las rutas
principales de datos dentro de la CPU: Los bloques de la CPU. Estos bloques
pueden organizarse e interconectarse de varias formas. Una de tales
organizaciones se muestra en la siguiente figura. En este caso, la unidad
aritmética y lógica (ALU) y todos los registros de la CPU están conectados a
través de un bus común. Desde luego, este bus es interno y no debe confundirse
con el bus externo, o buses, que conectan a la CPU con la memoria y los
dispositivos de E/S. El bus externo de memoria se muestra en la siguiente figura
conectado con la CPU por medio de los registros de datos y de dirección MDR y
MAR. El número y funciones de los registros del RO al R(n - 1) varían mucho de
una máquina a otra. Pueden ser para que el programador los emplee en operaciones
generales, pero algunos de ellos pueden ser registros de aplicación especial,
tales como registros índices o apuntadores de pila.
La unidad de control es el
mecanismo encargado de gobernar el funcionamiento del ordenador. Funcionalmente
recibe la información almacenada, la decodifica, genera las señales de control (microórdenes)
necesarias para realizar las transferencias, controles, etc. Las características
de la UC son la unidad de control.
Es la otra parte de la CPU.
Se encarga de coordinar que todos los procesos se realicen de manera ordenada y
secuencial. Su modo de proceder contiene un puntero que indica la siguiente
instrucción a ejecutar, obtiene la instrucción de memoria, la descodifica (serie
de microórdenes internas) y repite el proceso.
Registros:
Se utilizan para
almacenar datos de forma temporal:
Registros de propósito
general:
Almacena indistintamente datos y/ó direcciones y no siempre el mismo tipo de
dato y/ó dirección. Su longitud, por lo tanto, será variable y dependerá del uso
que se le dé en cada instante.
Registros de propósito
específico:
Almacenan siempre el mismo tipo de dirección ó dato. Es de longitud fija.
En el Indalo 1.0 sólo son de propósito
específico y son de 8 bits de longitud.
Las salidas de los registros se conectan a la UC
por medio de puertas triestado (buffer triestado).
Registro de instrucción (IR)
En cada momento
contiene la instrucción en curso, igualmente contiene el dato con la dirección
asociada a esa instrucción.
Instrucción =
código de operación + DIR (dirección ó dato). Se puede decir que el IR está
compuesto de varios registros, en Indalo 1.0 el CO es un registro y el DIR son
2.
El CO indica el
tipo de operación que se va a realizar y el operando indica sobre qué va a
actuar esa operación. Va conectado al decodificador que a su vez va al
secuenciado. Su longitud determina el número de operaciones que se pueden
realizar y tiene que ser del tamaño de la palabra de memoria en la que se
almacenan los códigos de operaciones.
El registro DIR es
el resto de los bits del IR y tiene el tamaño del bus de direcciones.
En el caso de
Indalo 1.0, el CO es 1 byte y el DIR, 2 bytes que se dividen en DIRH y DIRL (alta
y baja).
Contador de programa
Contiene la
dirección de la próxima instrucción a realizar. La longitud del contador de
programa será la del bus de direcciones (16 bits en Indalo 1.0). Si se activa el
RESET, el contador de programa accede a una posición ROM (0FFFDH en el Indalo
1.0)
Registro acumulador
Se le llama A y en
el se guarda el resultado de la última operación que se procesa en la ALU.
Secuenciador central
Gobierna todos los
elementos de la CPU. Funciona a través de unas microórdenes que las genera en
función del estado de sus entradas y el estado de señales de control que le
vienen de otros circuitos como pueden ser demandas de interrupción, estado de
memoria, estado de la ALU, etc. y en función de cómo esté implementado
físicamente el secuenciador podemos tener una UC cableada ó una UC programada.
El hecho de que la
UC sea cableada quiere decir que el secuenciador está hecho por hardware, por lo
que sólo puede realizar un sólo algoritmo. El diseño es muy rígido pero más
rápido. Si es programada, el hacer un cambio de órdenes es muy sencillo, pero es
más lenta. Lleva una pequeña memoria donde se colocan las órdenes. Se pueden
añadir y modificar instrucciones modificando el microprograma. En función del
secuenciamiento de las órdenes, se dividen en:
SINCRONOS:
La UC conoce los tiempos de respuesta de los circuitos. Al lanzar una orden sabe
cuanto tiempo tiene que dejar hasta ejecutar la siguiente orden.
ASINCRONO: Tiene que ir comprobando la ejecución
de cada tarea para ejecutar la siguiente. Son más rápidos porque no utilizan
ciclos enteros de tiempo.
ORGANIZACIÓN DEL PROCESADOR
Un procesador, incluye tanto registros
visibles por el usuario como registros de control/estado. Los registros
visibles por el usuario pueden ser de uso general o tener una utilidad especial,
mientras que los registros de control y estado se usan para controlar el
funcionamiento del procesador, un claro ejemplo es el contador de programa.
Los procesadores utilizan la
segmentación de instrucciones para acelerar la ejecución. La segmentación de cauce
se puede dividir en ciclo de instrucción en varias etapas separadas que operan secuencialmente,
tales como la captación de instrucción, decodificación de instrucción, cálculo
de direcciones de operando, ejecución de instrucción y estructura del operando
resultado.
A continuación se muestra cómo se
organiza un procesador, para esto se tiene que considerar los siguientes
requisitos:
Captar instrucciones: el
procesador lee una instrucción de memoria (registro, cache o memoria
principal).
Interpretar instrucción: la
instrucción se codifica para determinar qué acción es necesario.
Captar datos: la ejecución de una
instrucción puede exigir leer datos de memoria o de un módulo de E/S.
Procesar datos: la ejecución e una
instrucción puede exigir llevar a cabo alguna operación aritmética o lógica con
los datos.
Escribir datos: los resultados de
una ejecución pueden exigir escribir datos en la memoria o en el módulo de E/S.
Para hacer estas cosas, el procesador
necesita almacenar instrucciones y datos temporalmente mientras una instrucción
esta ejecutándose, en otras palabras el procesador
necesita una pequeña memoria interna.
Figura 12.1 El procesador y el bus del sistema
En esta figura se muestra una visión simplificada de un procesador, que
indica su conexión con el resto de sistema, a través del bus del sistema. La
ALU lleva a cabo el verdadero cálculo o procesamiento de datos. La unidad de
control controla la transferencia de datos e instrucciones así a dentro y así
afuera del procesador, y el funcionamiento de la ALU. Además la figura muestra
una memoria interna mínima, que consta de un conjunto de posiciones de
almacenamiento llamadas registros.
Figura 12.2 Estrucutra interna del procesador
En esta figura se indican los caminos de
transferencia de datos y de la lógica de control, que incluye un elemento con
el rotulo bus interno del procesador. También se muestran los elementos básicos
típicos de la ALU. Hay que observar la similitud entre la estructura interna
del computador en su totalidad y la estructura interna del procesador. En ambos
casos hay una pequeña colección de elementos principales (computador:
procesador, E/S, memoria; procesador: unidad de control, ALU, registros)
conectados por caminos de datos.
martes, 20 de agosto de 2013
Actividad #2:Investigar los siguientes conceptos
Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta.
El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata.
La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.
- Que es el Lenguaje ensamblador
- En que se utiliza el lenguaje ensamblador
- Que es un lenguaje de alto nivel, de bajo nivel y lenguaje de máquina
Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta.
El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata.
- Cual es la importancia de lenguaje ensamblador
La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.
Suscribirse a:
Entradas (Atom)













