martes, 29 de noviembre de 2011

Resumen de los Sistemas Operativos Hecho en Clases

          Los Sistemas Operativos han sido factor núcleo en la evolución de la tecnología siendo este el principal elemento de cada computador.
          Evolucionan desde su primera edición y cada día los van actualizando para tener un mejor avance tecnológico en las computadoras y así darnos la facilidad y desempeño en el campo laboral y estudiantil.
          Su proceso evolutivo es periódico y constante, de este modo le proporciona al usuario un mejor manejo del computador.
          Son de gran importancia, ya que nos han facilitado muchas cosas y son una herramienta necesaria para la evolución del ser humano.
          Es el responsable de la comunicación entre el usuario y el computador, siendo el encargado de traducir las ordenes del usuario en el lenguaje binario y luego emite  una respuesta a la petición del usuario.
     Pueden ser:

  • Monotareas.
  • Monousuario.
  • Multitarea.
  • Multiusuario.


LLAMADAS A SUBRUTINAS
Subrutina


Diagrama del funcionamiento de una subrutina.
En computación, una subrutina o subprograma (también llamada procedimiento, función o rutina), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas que devuelven un valor.
Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto.
Elementos de la declaración de una subrutina
Las declaraciones de subrutinas generalmente son especificadas por:
  • Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos).
  • Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución.
  • Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea.
  • El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina.
Ejemplos
 PROGRAMA principal
     instrucción 1
                   instrucción 2
     ...
     instrucción N
     ...
     SUBRUTINA NombreX
        .......
     FIN SUBRUTINA
     ...
 FIN PROGRAMA principal.
La siguiente función en C es la analogía al cálculo del promedio matemático. La función "Promedio" devuelve un valor decimal correspondiente a la suma de 2 valores enteros de entrada (A y B):
float Promedio(int A, int B){
   float r;
   r=(A+B)/2.0;
   return r;
}
Así una llamada "Promedio(3, 5)" devolverá el valor de tipo real (float) 4,0.

CARGADORES Y COMPILADORES

Un programa objeto contiene instrucciones traducidas y valores de datos del programa fuente, y especifica direcciones en memoria donde se cargarán estos elementos.
Un cargador es un programa del sistema que realiza la función de carga (llevar el programa objeto a la memoria para su ejecución). Algunos sistemas tienen un ligador o editor de ligado (combina dos o más programas objeto independientes y proporciona la información necesaria para realizar referencias entre ellos) para realizar las operaciones de enlace, y un cargador separado para manejar la relocalización (modificar el programa objeto de forma que puede cargarse en una dirección diferente de la localidad especificada originalmente) y la carga. En la mayoría de los casos todos los traductores de programas (esto es, ensambladores y compiladores) de un sistema en particular producen programas objeto en el mismo formato, de esta forma puede usarse el cargador o ligador del sistema con independencia del lenguaje de programación fuente original.

CARGADORES Y ENLAZADORAS


En informática, un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria desde los ejecutables (por ejemplo, archivos ejecutables). El cargador es usualmente una parte del núcleo del sistema operativo y es cargado al iniciar el sistema y permanece en memoria hasta que el sistema es reiniciado o apagado. Algunos sistemas operativos que tienen un núcleo paginable pueden tener el cargador en una parte paginable de la memoria, entonces a veces el cargador hace un intercambio de memoria.
Todos los sistemas operativos que an la carga de programas tienen cargadores. Algunos sistemas operativos empotrados de computadoras altamente especializadas corren un único programa y no existen capacidades de carga de programas, por lo tanto no usan cargadores. Ejemplos de estos sistemas embebidos se encuentran en equipos de audio para automóviles.
En los sistemas Unix, el cargador es el manejador para la llamada del sistema execve().
Algunas computadoras necesitan cargadores relocalizables, los cuales ajustan direcciones de memoria (punteros) en un ejecutable para compensar las variaciones en la cual la memoria disponible de la aplicación empieza. Las computadoras que necesitan de los cargadores relocalizables son aquellos en los cuales los punteros son direcciones absolutas en vez de compensaciones de direcciones base del programa. Un ejemplo muy conocido está en los mainframes IBM Sistema 360 y sus descendientes, incluyendo la serie de los sistemas Z9.

MICROPROGRAMACION

La microprogramación consiste en un conjunto de microinstrucciones, para poder ejecutar líneas de código y operaciones.
La microprogramación es un lenguaje de programación a un nivel muy bajo sin llegar al nivel mas bajo (que es donde las operaciones se realizan con números binarios)
Para poder realizar la microprogramación, se deben conocer muy bien los registros del procesador en el que se va a trabajar, ya que en este lenguaje se interactúa muy de cerca con ellos.
También es importante conocer las instrucciones del mismo para poder usar algunas de ellas que simplifiquen las instrucciones, todo esto con las microinstrucciones que se usen por default para la programación
Un ejemplo de microprogramación seria la siguiente línea
MOV AX,0000000100000000b
PUSH AX
POPF
Esta instrucción pretende modificar un registro de bandera (If) con un valor de 1, estas microinstrucciones juntas en un lenguaje de alto nivel podrían significar algo como "If b = a", como se ve codificar en microprogramación es un poco mas laborioso, la ventaja de este lenguaje como en la mayoría de los lenguajes de bajo nivel, es la precisión de los datos, ya que en todo momento se sabe donde están los datos, y en que posición se encuentran los registros.
Como otro ejemplo se mostrara una rutina de microinstrucciones que representa una búsqueda
AR ß PC
DR ß M[AR]
PC ßPC+1
AR ß DR(0-10)
CAR(2-5) ß DR(11-14)
CAR(0,1,6) ß 0
Se muestran a continuación una tabla con instrucciones de microprogramación
F1
Microoperacion
Símbolo
000
Ninguno
NOP
001
AC ß AC + DR
ADD
010
AC ß 0
CLRAC
011
AC ßAC+1
INCAC
100
AC ß DR
DRTAC
101
AR ß DR(0-10)
DRTAR
110
AR ß PC
PCTAR
111
M[AR] ß DR
WRITE

F2
Microoperacion
Símbolo
000
Ninguno
NOP
001
AC ß AC -DR
SUB
010
AC ß AC < DR
OR
011
AC ß AC > DR
AND
100
DR ß M[AR]
READ
101
DR ß AC
ACTDR
110
DR ß DR + 1
INCDR
111
DR(0-10) ß PC
PCTDR

F3
Microoperacion
Símbolo
000
Ninguno
NOP
001
AC ß AC Å DR
XOR
010
AC ß AC
COM
011
AC ß shl AC
SHL
100
AC ß shr AC
SHR
101
PC ß PC +1
INCPC
110
PC ß AR
ARTPC
111

Reservado

CD
Condición
Símbolo
Comentario
00
Siempre = 1
U
Transferencia incondicional
01
DR(15)
I
Bit de dirección indirecta
10
AC(15)
S
Bit se digno de AC
11
AC = 0
Z
Valor cero en AC

BR
Símbolo
Función
00
JMP
CAR ß AD si la condición =0
01
CALL
CAR ß AD, SBR ß CAR +1 si la condición = 1
10
RET
CAR ß SBR (Retorno de subrutina)
11
MAP
CAR(2-5) ß DR (11-14), CAR(0,1,6)ß 0



ESTADO DE PROBLEMA

SUPERVICION
La supervisión a través de aplicaciones informáticas, por otra parte, todavía permanece sin ser regulada por los gobiernos y puede ser utilizada sin informar a sus empleados. La supervisión informática introduce disciplina a sus empleados sin provocar la reacción negativa que causan la videovigilancia y la presencia de las videocámaras. Finalmente, casi es imposible abusar de la vigilancia informática ya que funciona solamente en los ordenadores de los empleados, que se supone deben utilizarse para una sola cosa: trabajo. Se puede considerar la supervisión informática como una herramienta de control de rendimiento y no como un sistema de vigilancia de empleados.
Además de beneficios legales y psicológicos, cuya importancia es difícil de evaluar, los programas de supervisión tienen varias ventajas directas. Mediante los programas de supervisión de ordenadores puede grabar las actividades de sus empleados hasta la última pulsación de tecla y el último clic del ratón. Este nivel de control bajo se encuentra a su disposición por si lo necesita, pero siempre puede implementar un nivel de control más conveniente (más alto). Un buen programa de vigilancia reconoce los mensajeros instantáneos más conocidos, como AIM, ICQ o MSN y registra las conversaciones, permitiéndole así tener acceso a unos informes en formato fácilmente legible.
Si se decide por la supervisión informática, en vez de la videovigilancia, solamente queda una cosa por decidir: ¿De entre todas las ofertas de programas de supervisión, cuál elegir? Aunque existen múltiples soluciones de vigilancia, Refog Personal Monitor integra convenientemente todo lo que es importante para usuarios corporativos: seguridad, comodidad y usabilidad. Siendo una aplicación de vigilancia completa, Refog Personal Monitor reúne todas las características habituales, como captura de pulsaciones de teclas, registro de aplicaciones y monitoreo de los sitios Web. Sin embargo, tratándose de un producto destinado a la empresa, Refog Personal Monitor va incluso más allá y ofrece características como acceso remoto a los registros vía correo electrónico o FTP, alertas remotas instantáneas de eventos predefinidos (como determinadas frases clave) y un completo control ambiental. Refog Personal Monitor hace capturas periódicas de pantallas de ordenador, con lo que le proporciona unas instantáneas detalladas en vez de las manchas difusas proporcionadas por una cámara de vídeo. Finalmente, Refog Personal Monitor es prácticamente indetectable e imposible de desinstalar sin saber la contraseña maestra.
INSTRUCCIONES

Instrucción en informática, se le llama a un conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.
Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en inglés ISA, instruction set architecture), que también determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explícitamente en la instrucción).

BUFFERING

Un buffer (o búfer) en informática es un 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 sin datos durante una transferencia.
Normalmente los datos se almacenan en un buffer mientras son transferidos desde un dispositivo de entrada (como un ratón) o justo antes de enviarlos a un dispositivo de salida (como unos altavoces). También puede utilizarse para transferir datos entre procesos, de una forma parecida a los bufferes utilizados en telecomunicaciones. Un ejemplo de esto último ocurre en una comunicación telefónica, en la que al realizar una llamada esta se almacena, se disminuye su calidad y el numero de bytes a ser transferidos, y luego se envian estos datos modificados al receptor.
Pueden ser implementados por software o hardware, aunque la gran mayoría son del primer tipo. Normalmente se usan cuando la frecuencias de transferencia de datos es distinta a la de procesado, dependiendo de las limitaciones del sistema, o también cuando la frecuencia es variable, como en la recepción de vídeo online (streaming). Éstas diferencias temporales de transmisión son normalmente ajustadas mediante la implementación de un algoritmo con cola (o estructura de tipo FIFO) en memoria, para así escribir datos en la cola a una frecuencia y leerlos a otra. Esto ocurre en el envió de datos de un procesador a una impresora para que los imprima, la velocidad de impresión de la fotocopiadora en comparación a la del procesador es muy lenta, debido a esto la impresora tendrá que tener una cola FIFO(software), para ir acumulando los trabajos que todavía no se han podido imprimir.
Los buffers se pueden usar en cualquier sistema digital, no solo en informáticos, como en reproductores de música y vídeo .
Se puede ejemplificar la función de un buffer utilizando ésta metáfora: Un buffer es como tener dinero en el banco (buffer), un trabajo (entrada) y unos gastos fijos (salida). Si tienes un trabajo inestable, mientras tengas ciertos ahorros, puedes mantener tus gastos fijos sin problemas, e ir ingresando dinero cuando puedas según vas trabajando. Si los ahorros son pequeños, en seguida que no tengas trabajo, no vas a poder acometer los gastos fijos. De la misma forma si escuchas música en Internet y tu programa de audio usa un buffer pequeño, en cuanto que haya alguna interrupción en la descarga (porque las descargas nunca tienen una velocidad constante), notarás cortes de sonido, ya que faltará información.