hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
19 de Noviembre de 2008, 03:12:51
Noticias: Convocatoria E-zine CPH #2
Para ver este enlace Registrate o Inicia Sesion
> Aquí

+  Foros pOrtal Hacker
|-+  Temas de Interés
| |-+  Sistemas Operativos (Moderador: WaesWaes)
| | |-+  Comprendiendo un SO ---> construccion
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 3 4 Ir Abajo Imprimir
Autor Tema: Comprendiendo un SO ---> construccion  (Leído 2636 veces)
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« : 23 de Junio de 2008, 03:39:30 »

Comprendiendo un Sistema Operativo
por waeswaes



A lo largo de este post vamos a ir intentado comprender un sistema operativo (solo habra una base, deben reforzar conceptos googleando), aunque es una tarea que cuesta mucho, es muy larga y requiere conocimientos de otras areas de a poco vamos a ir avanzando.

Es logico que cuando haga los articulos me respalde con determinada Bibliografia, en el caso de hacer nombrare cual es llamandola fuente, puede que solo adapte,modifique y agrege de una solo fuente o de varias.

lo mejor antes de empezar seria que sepan por lo menos de que se trata el código binario, no me voy a detener mucho en este concepto pero algo voy a decir para que no quede colgado.

El código binario, es un conjunto numérico que posee dos elementos siendo estos el 0 y el 1, por este motivo el que la base sea 2.

Ejemplo de código binario:

010100110
111001000
110010010
101011101


Bien cada numero en código binario puede ser pasado a decimal,octal,hexadecimal,etc.

En las computadoras y asi como en electrónica el código binario se usa para representa un pasaje o no de corriente, el 1 significa que pasa y el 0 que no pasa, por ejemplo, tenemos un interruptor y una lámpara (obvio que también hay una fuente de energía, bien si el interruptor esta en 0 (abierto) la lámpara estar apagada, si el interruptor esta en 1 (cerrado) la lámpara estar prendida.

Cada espacio donde hay un numero se denomina bit por ejemplo esto son 3 bits

011

Mas alla del contenido del espacio, que puede ser un 0 o un 1. Tomando 4 bits los equivalentes decimales serian asi

0000   0
0001   1
0010   2
0011   3
0100   4
0101   5
0110   6
0111   7
1000   8
1001   9


Y asi sucesivamente. 8 bits pasan a llamarse 1 byte.

01101101 = 1byte = 8 bits

1 KB (kilobyte) = 210 bytes = 1024 bytes
1 MB (megabyte) = 220 bytes = 1024 KB
1 GB (gigabyte) = 230 bytes = 1024 MB
1 TB (terabyte) = 240 bytes = 1024 GB

Y asi sucesivamente.


Aclarancion: en computacion como en varias cosas mas van a encontrar siempre números de este tipo: 8, 16, 32, 64, 128, 256, 512, 1024, y asi  sucesivamente, bueno esto es por lo que ya nombre de byte


Bien, todo lo que hagamos en la computadora va a terminar a la memoria principal que después va a ser leído por la UCP (unidad central de procesamiento) o mas conocido como CPU o microprocesado r que es el “cerebro del pc”


Nota: si saben aunque sea un poco de lenguaje ensamblador (ASM) seria mejor, aunque no es obligatoriamen te necesario.
Para ver este enlace Registrate o Inicia Sesion
curso asm



La arquitectura mas común de un sistema informaticoen la Von Neuman, que a un nivel muy  alto costa de: memoria principal, UCP y dispositivos de entrada/salida (a partir de ahora E/S), a su vez la UCP consta de tres partes mas, la unidad de control (UC), unidad arimetica-logica (ALU), y un conjunto de registros. Todos estos componentes se encuentran intercenectado s entre si para que se pueda llevar a cabo la función principal de una computadora, LA EJECUCION DE SENTENCIAS QUE FORMAN LOS PROCESOS, (si no entienden conceptos, no importa, ya los veremos mas adelante


Definamos:


Memoria principal: comúnmente conocida como RAM, en allá se encuentra el programa en código maquina (binario) a ejecutar, los datos de entrada y los resultados. La memoria RAM esta formada por un conjunto de celdas idénticas a las que son accedidas mediante registro de direccionamien tos (ya veremos esto mas profundo y grafico). Esta memoria es volátil (por lo que su contenido es temporal) y también se la sabe decir memoria real.


ALU: permite efectuar un conjunto de operaciones aritméticas y lógicas de los datos mediantes circuitos electrónicos y el uso de compuertas (or, and, not, etc), estos datos pueden proceder de la memoria principal o ser el resultado de operaciones previas (también lo veremos mas profundo y grafico a esto).


UC: es la que se encarga de hacer funcionar al conjunto, lleva a cabo las siguientes funciones

-lee de la memoria principal las instrucciones maquina que forman el programa

-interpreta cada instrucción leída

-lee los datos de la memoria principal referenciado por la instrucción (si es que se requiere)

-ejecuta la instrucción

-almacena el resultado de cada instrucción en la memoria principal

Unidad de E/S: se encarga de realizar la transferencia de información entre la memoria principal ( o los registros) y los periféricos. La E/S se puede efectuar bajo el gobierno de la unidad de control (E/S programada) o sino de forma independiente (DMA). El trasporte de datos se realiza entre la computadora y su entorno exterior.
« Última modificación: 31 de Agosto de 2008, 03:44:27 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #1 : 23 de Junio de 2008, 03:48:00 »

Comprendiendo el trabajo que realiza la CPU



Para ver este enlace Registrate o Inicia Sesion
Presentacion explicativa


La funcion principal de una CPU es ejecutar una secuecia de instrucciones


instruccion: conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.

A la hora de ejecutar una instruccion se han de cumplir cuatro fases, la fase fletch (de lectura de la informacion), la fase decode ( de decodificacion de la inforamacion), la fase execute (la de ejecucion de la instruccion) y la fase writeback (de escribir el resultado de la instruccion).

la fase fletch (como ya bien han podido ver en el link de arriva) se trata de la lectura de una instruccion.

1.Transferir direccion desde "Contador de Programa".
2.Activación de celda y paso a registro de resultado.
3.Instrucción hasta registro de instrucciones.

la decode trata de la lectura de operandos y decodificacion de la instruccion.

lee los cuatro primeros bits del codigo maquina que se almacena en la UC (registro de instrucciones) y los decodifica a una instruccion en ensamblador

la execute trata de  ejecucion de la operacion

1.1.Impulsos al secuenciador
1.2.Acciones del secuenciador
1.3.Acceso a operandos
2.Ejecución de la instrucción

y la writeback trata de el almacenamiento de los resultados

guardándolos ya sea en el registro acumulador en algun otro registro temporal o en alguna celda de la memoria RAM


Los valores en binario que se encuentran en las celdas de memoria entran por os dispositivos de entrada y salen los resultados por los de salida, sin embargo ya profundizaremo s mas sobre el tema.

nota: los prosesadores INTEL cuantan con un sistema llamada pipeline que permite trabajar con cuatro instrucciones a la vez, la forma de lograr esto es que mientras que una instruccion va por tal fase la anterior en vez de esperar que termine los cuatro, la va siguiendo en la fase anterior.

Link de interes (sobre arquitectura):
Para ver este enlace Registrate o Inicia Sesion
Aqui
« Última modificación: 27 de Junio de 2008, 04:27:03 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #2 : 23 de Junio de 2008, 04:20:01 »

Tipos de instrucciones

Wikipedia

Instrucciones de Transferencia de Datos: en este tipo de instrucciones, se transfieren datos desde una localización a otra. Los pasos que se siguen para realizarlo son:
         
1. Determinación de las direcciones de origen y destino de memoria.
         
2. Realización de la transformación de memoria virtual a memoria real.
       
3. Comprobación de la caché.
       
4. Inicio del proceso de lectura/escritura en la memoria.


Instrucciones Aritméticas: pueden implicar transferencia de datos antes y/o después. Realizan operaciones aritméticas de las que se encarga la ALU.

Instrucciones Lógicas: al igual que las aritméticas, la ALU se encarga de realizar estas operaciones, que en este caso son de tipo lógico.

Instrucciones de Conversión: similares a las aritméticas y lógicas. Pueden implicar lógica especial para realizar la conversión.

Instrucciones de Transferencia de Control: actualizan el contador de programa (PC). Administran las llamadas/retornos a las subrutinas, el paso de parámetros y el enlazado.

Instrucciones de I/O (entrada/salida): administran los comandos de entrada/salida. Si hay un mapa de memoria de entrada/salida, determina la dirección de este mapa de memoria.
En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #3 : 25 de Junio de 2008, 04:49:43 »

Definiciones varias


Palabra: es una unidad lógica de información. Generalmente está compuesta por un número entero de bytes o caracteres.

Frecuencia / Período: El tiempo de transmisión de estados o tiempos de cada ciclo de una computadora es el tiempo que se requiere para modificar los valores de un conjunto de registros y está determinado por la frecuencia del reloj. El período se calcula como la inversa de la frecuencia:   

Período * Frecuencia = 1
 [ Período ] = s (segundo)
 [ Frecuencia ] = Hz (Hertz).


Hilo de ejecuccion: es una característica que permite a una aplicación realizar varias tareas concurrentemen te. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

hilos que comparten recursos + recursos = proceso


Procesador: Controla la operación de la computadora y lleva a cabo las funciones de procesamiento de datos. Cuando hay un solo procesador, se suele denominar unidad central de procesamiento (CPU, Central Processing Unit).

algunos objetivos:

Captar instrucciones.

Debe leer instrucciones de la memoria.

Interpretar instrucciones.

La instrucción debe decodificarse para determinar qué acción es necesaria.

Captar datos.

La ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo de E/S

Procesar datos.

La ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo de E/S

Escribir datos.

Los resultados de una ejecución pueden exigir escribir datos en la memoria o en un módulo de E/S.

Memoria RAM: Almacena los datos y los programas. Esta memoria es normalmente volátil.


Bus: se relaciona con la idea de las transferencias internas de datos que se dan en un sistema computacional en funcionamiento .

Interconexión de sistemas: Ciertos mecanismos y estructuras que permiten la comunicación entre procesadores, memoria principal y los módulos de E/S.

Modulos de E/S: es el elemento del computador responsable del control de uno o mas dispositivos externos, del intercambio de datos entre estos dispositivos y la memoria principal y/o los registros de la CPU.

se encargan de:

* Realizar la interfaz entre la CPU y la memoria a través del bus del sistema.

* Realizar la interfaz entre uno o más dispositivos periféricos mediante enlaces de datos específicos.


Demonio: Programa que funciona sin intervención humana para cumplir una tarea determinada. En inglés Daemon.

Consola: Pantalla en la que el usuario puede ejecutar programas en modo texto. Pueden tenerse abiertas varias a la vez. También se llama Terminal.

BIOS (Basic Input/Output System)
Secuencia de arranque. Por ejemplo D-A-C significa que el ordenador intentará arrancar desde el CD, si desde aquí no puede lo hará desde el Disquete y si tampoco pudiera, desde el Disco duro


Gestor de arranque: Gestiona el arranque del sistema. Si tenemos más de un sistema operativo instalado, durante unos segundos nos permitirá elegir uno. Se puede predeterminar el arranque desde cualquiera de ellos

Interfaz: Zona de intercambio o acción de un sistema sobre otro. La interfaz gráfica (entorno gráfico) se ha impuesto sobre la interfaz de texto (consola).

Kernel: La parte central de un sistema operativo sobre la que se apoya todo lo demás. Núcleo

Login: Entrada al sistema. Por extensión: nombre de usuario. Proceso por el que un usuario se identifica. Primero se pide el nombre de usuario y después la contraseña.

Partición: Cada una de las partes que se hacen a un disco duro para poder instalar distintos sistemas operativos, ya que no pueden mezclarse.

Buffer: espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede en algún momento sin datos.

Microinstrucci on: son aquellas instrucciones que conforman a una instruccion completa.

Cache: memoria de rapido y facil acceso.

Software: es la parte lógica. Se refiere a programas y a la gestión del computador.

Hardware: todo lo referente a la computadora que pueda ser tangible

Firmware: programa grabado sobre un componente del sistema y que está integrado a él en su funcionamiento .

Orgware: todo lo relacionado con la organización, ya sea lógica, física o sobre su uso.

Peopleware: se refiere a lo relacionado con los usuarios


A medida que vea que debo poner algun concepto nuevo lo pondre aca.

Aca podran encontrar un diccionario informatico muy completo por si no entienden alguna palabra que no este aca


Para ver este enlace Registrate o Inicia Sesion
http://foro.portalhacker.net/index.php/topic,71437.0.html



« Última modificación: 26 de Julio de 2008, 05:35:19 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #4 : 26 de Junio de 2008, 03:31:56 »

Memoria Principal

La memoria principal son circuitos integrados capaces de almacenar información digital, a los que tiene acceso el microprocesado r del equipo de computación.



Son mas pequeñas que la memoria secundarias (que veremos mas adelante) y mas rapidas

Esta conformado por dos ramas, la rama de RAM (read access memory) y ROM (read only memory).
« Última modificación: 09 de Julio de 2008, 03:46:02 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #5 : 27 de Junio de 2008, 04:03:32 »

Memoria RAM

La memoria
Para ver este enlace Registrate o Inicia Sesion
RAM
es donde la computadora guarda los datos del proceso presente.




Es una memoria de trabajo para programas y datos y e del tipo volatil es decir que cuando se queda sin energia se pierde la informacion, esto debido que que esta formada por microcapacitor es que son los encargados de guardar el bit y microtransisto res que son los encargados de que se lea ese bit....el circuito electronico de donde se almacena 1 bit de la RAM es algo asi


La capacidad de una memoria es la cantidad de datos que puede almacenar, generalmente se expresa en bytes.

Para calcular el ancho de banda del bus de memoria se sigue la fórmula:

ancho de bus en Bytes * frecuencia efectiva de trabajo en MHz.

dentro de la RAM se pueden encontrar varias cosas, lo mas comun es que este dividida en cuatro areas... la entrada, la de programa, la de trabajo y la de salida.

cada una de estas va a contener datos, intrucciones o resultados, ya deberian saber cual contiene que cosa....

lo que deben saber que la memoria RAM es donde se ingresan los datos y instrucciones del programa en codigo de maquina y los guarda, tambien guarda los resultados que la ALU haya obtenido si es que la UC asi lo tiene que hacer.

Link de interes:


Para ver este enlace Registrate o Inicia Sesion
Aqui



Para ver este enlace Registrate o Inicia Sesion
Aqui

« Última modificación: 09 de Julio de 2008, 03:46:36 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #6 : 28 de Junio de 2008, 11:18:30 »

Memoria ROM

La memoria ROM es una memoria no volatil y de solo lectura que contiene configuracion del programa da arranque y sobre el sistema.

Es notable que con el tiempo se han dejado de usar las memorias ROM (antes todo el SO venia en memoria ROM) pero sin embargo en estos tiempo es nesesario seguir usandolas ya que cuando se inicia el sistema hay informacion que tiene que estar previamente guardada en un lugar para saber de donde se va a iniciar.

y como la memoria RAM es volatil y pierde los datos al quedarse sin energia electrica, se recurre a la memoria ROM para guardar esos datos. unas vez que la computadora con sus respectivo sistema operativo esta en funcionamiento, y no es nesesaria la ROM.

Aqui una celda ROM:


« Última modificación: 09 de Julio de 2008, 03:47:11 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #7 : 28 de Junio de 2008, 04:09:22 »

Memoria cache

La memoria cache es un dato duplicado de otro original, pero son mas rapidos y facil de acceder que los originales. una vez que nosotros ingresamos por primera vez a los datos originales estos se duplican y si despues es neseserio volver a usarlos se toma el valor guardado en la cache ya que de esta manera obtenemos un mejor rendimiento

(mirar a parte porque tiene flechas negras que no se aprecian)

hay dos maneras de que se mande informacion a la cache:

1. Por demanda, cuando un bloque es referenciado este se guarda en la cache, si se vulve a referenciar ya se tomara el valor de donde esta.

2. Con prebusqueda: Cuando se referencia el bloque

i-ésimo

de memoria principal, se trae además el bloque

(i+1)-esimo

de esta manera si se llama al siguiente dato este ya estara guardado en cache y se obtendra mas rapido desde ahi, ademas de que el siguiente dato pasa de la memoria principal a la cache.

tambien existe la llamada politica de reemplazo que es la que determina que dato abandona la memoria cache cuando tiene que ingresar uno nuevo pero que no tiene lugar, existe:

La aleatoria: de forma aleatoria saca un bloque y mete el que tiene que entrar

LRU: saca de la memoria cache el bloque que hace mas tiempo que no fue usado.

LFU: saca de la memoria cache el bloque que fue usado con menos frecuencia

la FIFO: esta no es muy eficiente y consiste en que el primer dato que entro, sera el primer dato en salir

estan en orden de efectividad.



la memoria cache va mas alla de esto porque se usa en muchisimas mas cosas pero a lo que hacemos referencia aca es a la DRAM y a la SRAM

la memoria ram dinamica (DRAM) es lenta (comparada con la otra) y se usa de memoria principal, mientras que la cache se guarda en la memoria ram estatica (SRAM) que es mas rapida que la anterior y mas cara (tambien es llamada cache RAM) asi que uniendo la DRAM y la SRAM obtenemos el conjunto de "memoria principal" pero en si es la memoria principal + la cache

la memoria DRAM se usa porque es mucho mas barata que la SRAM, sin embargo tiene dos desventajas como la perdida de datos y la lentitud

la memoria SRAM no se usa para memoria principal porque es cara ya que esta lleva una serie de transistores lo que hace que no pierda los datos y que sea mas rapida, pero solo se limita a cache

nota: si alguna vez escucharon sobre "refrescar la RAM" este termino no existe en las SRAM pero en las DRAM significa recargar los condesadores con corriente electrica por si alguno de estos perdio la informacion, nada mas

link de interes:

Para ver este enlace Registrate o Inicia Sesion
Aqui



Para ver este enlace Registrate o Inicia Sesion
Aqui



Para ver este enlace Registrate o Inicia Sesion
Aqui
« Última modificación: 09 de Julio de 2008, 03:47:39 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #8 : 28 de Junio de 2008, 04:38:54 »

Registros del procesador

Dentro del procesador hay un conjunto de registros que ofrecen un nivel de memoria mas rapido y pequeño que la memoria principal. Los registros del prosesador se califican en:


Registros Visibles al usuario
    Registro de Datos
    Registro de Direcciones
        Registro Indice
        Puntero de Segmento
        Puntero de Pila
    Registro de Codigos de Condicion
        Flags de Control
Registros de control y estado
En la interconeccion de sistema existen:
    MAR
    MBR/MDR
    IOAR
    IOBR
En la Unidad de Procesamiento Central existen:
    PC
    SP
    RI
    SR
    RA

Registros visibles al usuario:
Un registro visible al usuario es aquel que puede ser referenciado  por medio del lenguje maquina que ejecuta el prosesador, Siendo por lo general, accesible a todos los programas, tanto de aplicacion como de sistema.

Los tipos de registros visibles al usuario son:

Registro de datos: pueden ser asignados por el programador a diversas funciones. En muchos casos son de proposito general y pueden ser empleados por instrucciones que llevan a cabo cualquier tipo de operacion sobre un determinado dato. Sin embatgo, suelen establecerse ciertas restricciones como dedicar algunos registros para operaciones en coma flotante.

Registros de direcciones: Guardan direcciones de memoria principal que pueden contener datos, instrucciones o parte de una direccion efectiva para calcularla. dentro de etos registros podemos incluir 3 mas:

Registro Indice: Se utiliza en el direccionamien to indexado que consiste en sumar un indice a un valor base para obtener la direccion efectiva.

Puntero de Segmento: Cuando se utiliza direccionamien te segmentado la memoria se divide en segmentos, que son bloques de palabras de tamaño variable. Una referencia a memoria consta de un segmento particular y un desplazamiento dentro del segmento.

Puntero de Pila: Si existe un dirreccionamie nto de pila visible para los usuarios, la pila estara, por lo general, en la memoria principal, existiendo un registro dedicado a señalar la cima de la pila, para sacar (pop) e intruducir (push) elementos en ella.

Registros de codigo de condicion: Los codigos de condicion son bits activados por el hardware como resultado de determinadas operaciones. Por ejemplo una operacion arimetica puede pruducir un resultado positivo, negativo, cero, con acarreo (que esta despues de) o con desbordamiento (que es mas grande que el registro que lo contrendra), lo que se reflejara en el correspondient e bit del registro de codigo de condicion. Estos registros tambien saben llamarse como indicadores o flags. Dentro de estos tambien estan los:

Flags de control: que pueden consultarse posteriormente, por ejemplo, como parte de una condicion de salto condicional, es importante tener en cuenta que los codigos de condicion pueden ser consultados por aplicaciones de usuario pero no modificables por estas. Los bits de codigo de condicion se agrupan en uno o mas registors que forman parte de los determinados registros o palabras de control.

Registros de control y estado: son utilizados por el procesador para el control de las operaciones o por rutinas privilegiadas del sistema operativo para controlar la ejecución de los programas. E n la mayoria de las mauinas, la mayor parte de estos registros no son visibles al usuario.

MAR: : Memory Adress Register. Especifica la dirección en memoria de la próxima lectura o escritura.

MBR/MDR: Memory Buffer/Data Register. Contiene los datos que van a ser escritos a memoria o que fueron leídos desde ella.

IOAR: Input Output Adress Register. Especifica un dispositivo particular de E/S.

IOBR: Input Output Buffer Register. Permite intercambiar datos entre un módulo de E/S y el procesador.

PC: Program Counter, indica la direccion de la siguien instruccion maquina a ejecutar

SP: Stack Pointer, sirve para manejar la pila del sistema en memoria principal.

RI: Register instructions, permite alamcenar la instruccion maquina a almacenar.

SR: Status Register, alamcena junto con PC diversa informacion producioda por la ultima instruccion del programa ejecutada e informacion sobre la forma en que ha de comportarse la computadora. tambien llmados PSW (program status word).

RA: Registro Acumulador, es el registro principal de la ALU donde se guardan los valores y resultados primarios.

Que indican los flags: bien como ya sabran los flags son indicadores y lo que indican de un resultado es:

Signo: contiene el bit del signo de la ultima operacion arimatica realizada

Cero: un bit destinado a activarse cuando el resultado de la ultima operacion arimetica realizado es 0

Acarreo: se activa cuando en el resultado de la ultima operacion arimetica realizada, se pruduce un accareo mas alla del bit mas significativo, se utiliza en operaciones arimeticas de mas de una palabra.

Igualdad: Se activa si una comparcion logica da como resultado una igualdad

Desbordamiento: Empleado para señalar si se produce un desbordamiento arimetico. Se utiliza solo cuando las operaciones arimeticas dan como resultado un numero que no puede contenerse en el registro acumulador, para que este registro no colapse, lo que hace es indicarse con un 1 en los flags

Habilitar/Deshabilitar interrupcion (IF): Se utilizan para señakar si se aceptaran o no interrupciones externas, esto es asi porque si se esta tratando una interrupcion no pueden entrar otras. veremos mas adelante que son las interrupciones

Supervisor: se activa cuando el procesadoresta ejecutando una instruccion en modo supervisoro en modo usuario.Cierta s instrucciones privilegiadas solamente pueden ejecutarse en modo supervisor y solo se puede tener acceso a ciertas partes de la memoria.
« Última modificación: 10 de Julio de 2008, 03:38:14 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #9 : 28 de Junio de 2008, 04:44:52 »

Buffer de Datos

Un buffer de datos es un espacio destinado a ser memoria dentro de la unidad de E/S para almacenar todos los datos de E/S (justamente), asi ningun programa (software) o recurso (hardware) que requiera esos datos no se quede sin ellos.

los Buffers son similares a la memoria cache, son de rapido y facil acceso, se suplantan los los bloques usando metodos similares, etc.

la unica diferencia es que lo que esta en un Buffer de datos siempre va a ser usado por el hardware o por el software, pero no como la memoria cache que por ahi se guardaba algo que no iba a ser usado.

Los buffers estan destinados al teclado, el mouse, el monitor, la lectora de CD/DVD, HDD, parlantes/audiculares, lectura de diskettes, impresoras, escaneres, etc.

en fin, a todos los perifericos de E/S.
« Última modificación: 09 de Julio de 2008, 03:49:09 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #10 : 28 de Junio de 2008, 05:16:15 »

Disco Duro

El
Para ver este enlace Registrate o Inicia Sesion
disco duro
es una unidad de almacenamiento donde se guarda generalmente toda la informacion que hay es una computadora



En un disco duro se guarda generalmente el sistema operativo y todas las aplicaciones/documentos que usa el usuario

es el dispositivo de almacenamiento general de una computadora dado que pueden ser muy grandes y no volatiles, pero son de muy lento acceso comparado con la RAM o los registros, son tambien llamados HDD.

el cojunto del HDD esta formado de la sigiente manera


A Diferencia de las demas memorias denominadas anteriormente en el disco duro el tipo de acceso no es por palabras, sino por sectores

   
Estructura de disco que muestra una pista (Rojo), un sector (Azul) y un sector de pista (Rojo dentro de azul) y un conjunto de sectores (Verde)


« Última modificación: 09 de Julio de 2008, 03:49:45 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #11 : 03 de Julio de 2008, 08:10:39 »

Dispositivos de almacenamiento extraibles

Son dispositivos de almacenamiento de distintos tipos pero todos con un mismo objetivo trasportar datos a traves de ellos.

existen muchos como por ejemplo:



Para ver este enlace Registrate o Inicia Sesion
Unidad de 3,5 pulgadas


Para ver este enlace Registrate o Inicia Sesion
Unidad de CD-ROM


Para ver este enlace Registrate o Inicia Sesion
Unidad de CD-RW


Para ver este enlace Registrate o Inicia Sesion
Unidad de DVD-ROM


Para ver este enlace Registrate o Inicia Sesion
Unidad de DVD-RW


Para ver este enlace Registrate o Inicia Sesion
Memoria USB, pendrive o USB flash drive


« Última modificación: 09 de Julio de 2008, 03:50:28 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #12 : 09 de Julio de 2008, 03:51:08 »

Jerarquia de Memorias

Todo lo que venimos biendo si no se dieron cuenta son tipos distintos de memorias. A esto queria llegar.

Dado que las memorias de alta velocidad son costosas se usan en tamaños reducidos y las memorias de mas baja velocidad se usan con capacidades mas grandes. de esta forma la totalidad de la informacion se almacena en las memorias lentas, amplias y baratas y la informacion que esta actualmente en uso se almacena en las memorias rapidas, reducidas y caras.

la jerarquia de las memorias va asi:


Cuando es nesesario procesar un dato que se encuentra en el HDD (lo mas bajo) este dato antes de ser procesado por el procesador pasa por todas las memorias asta llegar a los operadores de la ALU si esa es so objetivo. y despues (siempre y cuando se requiera) el resultado psa por todos las memorias de vuelta hasta almacenarce en la secundaria.

En terminos generales, dejendo afuera las ecepciones y el futuro asi como el pasado

Nivel de Memoria       Capacidad      Tiempo de acceso   Tipo de acceso
Registros                    64b a 256b       1 a 5 ns                    palabra
Cache                        8kb a 2mb         5 a 20 ns                  palabra
RAM                          16mb a 64gb     60 a 200 ns              palabra
HDD                          10mb a 1tb       10 a 30 ms                sector

b=byte
kb=kilobyte
mb=megabyte
gb=gigabyte
tb=terabyte
ns=nanosegundo
ms=microsegundo


Migracion de la informacion

La explotación correcta de la jerarquía de memoria exige tener, en cada momento, la información adecuada en el nivel adecuado. Para ello, la información ha de moverse de nivel, esto es, ha de migrar de un nivel a otro. Esta migración puede ser bajo demanda explícita o puede ser automática.

La primera alternativa exige que el programa solicite explícitamente el
movimiento de la información, como ocurre, por ejemplo, con un pro rama editor, que va solicitando la parte del archivo que está editando en cada momento el usuario.

La segunda alternativa consiste en hacer la migración transparente al programa, es decir, sin que este
tenga que ser consciente de que se produce. La migración automática se utiliza en las memorias cache y en la memoria virtual, mientras que la migración bajo demanda se utiliza en los otros niveles.

Sean K y K + 1 dos niveles consecutivos de la jerarquía, siendo K el nivel mas rápido. La existencia de una migración automática de información permite que el programa referencia la información en el nivel K y que, en el caso de que no exista una copia adecuada de esa información en dicho nivel K, se traiga esta desde el nivel K + 1 sin que el programa tenga que
hacer nada para ello.

El funcionamiento correcto de la migración automática exige un mecanismo que consiga tener en el nivel K aquella información que necesita el programa en ejecución en cada instante.
Idealmente, el mecanismo debería predecir la información que éste necesite para tenerla disponible en el nivel rápido K. El mecanismo se basa en los siguientes aspectos:

• Tamaño de los bloques transferidos.
• Política de extracción.
• Política de reemplazo.
• Política de ubicación.

Por razones de direccionamien to, y para aprovechar la proximidad
espacial , la migración automática se hace en porciones de información de un tamaño determinado. En concreto, para la memoria cache se transfieren líneas de unas pocas palabras, mientras que paraa la memoria virtual se transfieren paginas de uno o varios KB. El tamaño de estas porciones e una característica muy importante de la jerarquía de memoria.

La política de extracción define qué información se sube del nivel K + 1 al K y cuándo se sube. La solución más corriente es la denominada por demanda y consiste en subir aquella información que referencia el programa, justo cuando la referencia. El éxito de esta política se
basa en la proximidad espacial , por lo que no se sube exclusivamente la información referenciada sino una porción mayor (línea o página).

El nivel K tiene menor capacidad de almacenamiento que el nivel k + 1, por lo que normalmente está lleno. Por ello, cuando se sube una porción de información hay que eliminar otra. La política de reemplazo determina qué porción hay que eliminar, atando de seleccionar una que ya no sea de interés para el programa en ejecución.

Por razones constructivas pueden existir limitaciones en cuanto al lugar en el que se pueden almacenar las diversas porciones de información; la política de ubicación determina dónde almacenar cada porción.

Parámetros característicos de la jerarquía de memoria

La eficiencia de la jerarquía de memoria se mide mediante los dos parámetros siguientes:

• Tasa de aciertos o hit ratio (Hr).
• Tiempo medio de acceso efectivo (Tef).

La tasa dé aciertos (Hrk) del nivel k de la jerarquía se define como la probabilidad de encontrar en ese nivel la información referenciada. La tasa de fallos Frk es 1 - Hrk. La tasa de aciertos ha de ser alta para que sea rentable el uso del nivel k de la jerarquía. Los factores más importantes que determinan Hrk son los siguientes:

• Tamaño de la porción de información que se transfiere al nivel k.
• Capacidad de almacenamiento del nivel k.
• Política de reemplazo.
• Política de ubicación.
• Programa específico que se esté ejecutando (cada programa tiene un
comportamiento propio).

El tiempo de acceso a una información depende de que se produzca o no un fallo en el nivel k. Denominaremos tiempo de acierto al tiempo de acceso cuando la información se encuentra en nivel k. mientras que denominaremos penalización de fallo al tiempo que se tarda
en realizar migración de la porción cuando se produce fallo. El tiempo medio de acceso efectivo (Tef) de un programa se obtiene promediando los tiempos de todos los accesos que realiza el programa a largo de su ejecución. Tef depende básicamente de los factores siguientes:

• Tiempo de acierto.
• Penalización de fallo.
• Tasa de aciertos (Hrk) del nivel k.

Coherencia

Un efecto colateral de la jerarquía de memoria es que existen varias copias de determinadas porciones de información en distintos niveles. Al escribir sobre la copia del nivel k, se produce una discrepancia con la copia del nivel k + 1; esta situación se denomina falta de coherencia.
Se dice que una porción de información está sucia si ha sido escrita.
La coherencia de la jerarquía de memoria exige medidas para eliminar la falta de coherencia. En concreto, una porción sucia en el nivel k ha de ser escrita en algún momento al nivel k + 1 para eliminar la falta de coherencia. Con esta operación de escritura se limpia la porción del nivel k.
Existen diversas políticas de actualización de la información creada o modificada, que se caracterizan por el instante en el que se copia la información al nivel permanente.


 
Direccionamien to

La jerarquía de memoria presenta un problema de direccionamien to. Supóngase que el programa en ejecución genera la dirección X del dato A al que quiere acceder. Esta dirección X está referida al nivel k + 1, pero se desea acceder al dato A en el nivel k, que es más rápido.
Para ello se necesitara conocer la dirección Y que ocupa A en el nivel k, por lo que será necesario establecer un mecanismo de traducción de direcciones X en sus correspondient es Y.



El problema de traducción no es trivial, supóngase que el espacio de nivel k + 1 es de 2 GB, lo que equivale a suponer que n = 31, y que el espacio de nivel k es de 8 MB, lo que supone que m = 23. El traductor tiene aproximadament e dos mil millones de valores de entrada distintos y ocho millones de direcciones finales.
Para simplificar la traducción, y aprovechar la proximidad espacial, se dividen los mapas de direcciones de los espacios k + 1 y k en porciones de tamaño Y. Estas porciones constituyen la unidad de información mínima que se transfiere de un nivel al otro. El que la porción tenga tamaño 2p permite dividir la dirección en dos partes: los m —~ p bits mas
significativos sirven para identificar la porción, mientras que los p bits menos significativos sirven para especificar el byte dentro de la porción.
Suponiendo, para el ejemplo anterior, que las páginas son de 1 KB (p =10), el problema de direccionamien to queda dividido por 1.024, pero si e siendo inviable plantear la traducción mediante una tabla directa completa, pues sería una tabla de unos dos millones de entradas y con sólo 8.192 salidas no nulas.

La proximidad referencial

La proximidad referencial es la característica que hace viable la jerarquía de memoria, de ahí su importancia. En términos globales, la proximidad referencial establece que un programa en ejecución utiliza en cada momento una pequeña parte de toda la información que usa.
Para exponer el concepto de proximidad referencial de forma más específica, partimos del concepto de traza. La traza de un programa en ejecución es la lista ordenada en el tiempo de las direcciones de memoria que referencia para llevar a cabo su ejecución. Esta traza R estará compuesta por las direcciones de las instrucciones que se van ejecutando y por las direcciones de los datos empleados, es decir:

Re = re(l), re(2), re(3), ... re(j)

donde re(i) es la i-ésima dirección generada por la ejecución del programa e.



El uso de porciones de 2” facilita la traducción.



División en páginas de los espacios de memoria.

Adicionalmente, se define el concepto de distancia d(u, y) entre dos direcciones u y y como diferencia en valor absoluto | u — v|. La distancia entre dos elementos j y k de una traza re es, por tanto,

d(re(j), re(k)) = |re(j) — re(k)|.

También se puede hablar de traza de E/S, refiriéndonos, en este caso, a la secuencia de la direcciones empleadas en operaciones de E/S.
La proximidad referencial presenta dos facetas: la proximidad espacial y la proximidad temporal.

La proximidad espacial de una traza postula que, dadas dos referencias re(j) y re(i)
próximas en el tiempo (es decir, que i — j sea pequeño), existe una alta probabilidad de que su distancia d(re(j), re(i)) sea muy pequeña. Además, como muchos trozos de programa y muchas estructuras los datos se recorren secuencialmenté, existe una gran probabilidad de que la
referencia siguiente re(j) coincida con la dirección de memoria siguiente
Este tipo especial de proximidad espacial recibe el nombre de proximidad secuencial.


La proximidad espacial se explica si se tienen en cuenta los siguientes argumentos:

• Los programas son fundamentalmen te secuénciales, a excepción de las
bifurcaciones, por que su lectura genera referencias consecutivas.

• Adicionalmente, la gran mayoría de los bucles son muy pequeños, de unas pocas instrucciones máquina, por lo que su ejecución genera referencias con distancias pequeñas.



• Las estructuras de datos que se recorren de forma secuencial o con referencias muy próximas son muy frecuentes. Ejemplos son los vectores, las listas, las pilas, las matrices, etc. Además, las zonas de dato suelen estar agrupadas, de manera que las referencias que se generan suelen estar próximas.

La proximidad temporal postula que un programa en ejecución tiende a referenciar direcciones empleadas en un pasado próximo. Esto es, existe una probabilidad muy alta de que la próxima referencia re( j + 1) este entre las n referencias anteriores:

re( j — n + 1), re(j —n + 2),............, re(j -2), re(j — 1), re (j)

La proximidad temporal se explica si se tienen encuenta los siguientes argumentos:

• Los bucles producen proximidad temporal, además de proximidad espacial.
• El uso de datos o parámetros de forma repetitiva produce proximidad temporal.
• Las llamadas repetidas a subrutinas también son muy frecuentes y producen proximidad temporal. Esto es muy tipico con las funciones o subrutinas aritméticas, de conversión de códigos, etc.

En la práctica, esto significa que las referencias producidas por la ejecución de un programa están agrupadas en unas pocas zonas. Puede
observarse también que, a medida que avanza la ejecución del programa, van cambiando las zonas referenciadas.
El objetivo principal de la gestión de la jerarquía de memoria será conseguir que residan en las memorias más rápidas aquellas zonas de los programas que están siendo referenciadas en cada instante.

buena parte de este post esta sacado de "Sistemas Operativos una vision aplicada"
« Última modificación: 14 de Julio de 2008, 02:06:01 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #13 : 10 de Julio de 2008, 03:06:07 »

Ruptura de secuencia lineal

Debido a que el Procesador solo sabe efectuar 1 sola accion de forma lineal, y en formade de bucle infinito (esta continuamente e ininterrumpida mente realizando esta secuencia), la accion se trata de la ejecucion de las instrucciones.
Este sistema lineal es muy limitado, por lo que se ideo un metodo que permite alterar esta ejecucion lineal. De estos metodos hay vario pero en realidad todos se basan en algo muy simple, modifican el contenido del programa con lo que se consigue que se salte o bifurque a otro segmento de programa que deben residir previamente en la RAM.

Los tres mecanismos mas basicos de ruptura son:

*Las instrucciones maquina de salto: que hacen que la unidad de control rompa su secuencia lineal pasando o otro segmento de si mismo (ej

*Las instrucciones de maquina "TRAP": que hacen que la UC modifique el valor del contador de programa, para saltar a otro programa residido en la RAM

*Las interrupciones: (que son las mas interesante y las que vamos a profundizar) que producen un efecto similar a las instruccions "TRAP".

Desde el punto de vista del programacdor interesaria el primer punto, sin embargo este curso apunta a las otras dos, en principal las interrupciones .
En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #14 : 10 de Julio de 2008, 03:38:18 »

Interrupciones

Casi todas las computadoras tiene un mecanismo por el cual los modulos de E/S o los modulos de las memorias pueden interrumpir al procesador, las interrupciones aparecen como una via para mejorar la eficacia del procesamiento debido a que la mayoria de los dispositovos externos son mucho mas lentos que el procesador en si.

Con las interrupciones, el procesador puede dedicarse a la ejecucion de otras instrucciones mientras una operacion de E/S esta en proceso (esto se denomina que el sistema operativo es multiarea).
Cuando el Dispositivo de E/S este preparado para recibir mas datos del procesador, el modulo de E/S de dicho dispositivo envia una señal de solicitud de interrupcion al procesador

El procesador responde suspendiendo la operacion del programa en curso y sltando a un progrma que da servicio al dispositivo E/S en particular, esto se llama tratamiento de interrupciones (Interrup handler), reanudando la ejecucion original despues de haber atendido al dispositivo.

aca veremos bien como funciona una interrupcion: