domingo, 17 de abril de 2011

sector de arranque

         De todos los sectores de una unidad de disco, el primero de la primera cabeza del primer cilincro (CHS 0,0,1), tiene una importancia y significado especial. Es el sitio al que se dirige la BIOS cuando busca si existe en el sistema un dispositivo cargable . Por esta razón se denomina sector de arranque MBR ("Master boot record") o bloque maestro de carga ("Master boot block"). Sus 512 bytes contienen tres bloques con información sobre la arquitectura física y lógica del disco: el Código maestro de carga ; la Tabla de particiones y la Firma .

14.                        

Bootstrap

es generalmente un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistema operativo como por ejemplo GRUB, LiLo o NTLDR. Se ejecuta tras el proceso POST del BIOS. También es llamado «Bootstrap Loader» (cargador de inicialización).
Una vez que el PC arranca, comienza a ejecutarse el código que se encuentra en la dirección F000:FFF0, que pertenece al ROM-BIOS y es el encargado de realizar una serie de pruebas e inicializaciones. Esta rutina se llama POST (Power On Self-Test). Una vez que el BIOS termina con sus tests e inicializaciones carga el primer sector (cilindro 0, cabeza 0, sector 1) en la dir. 0000:7C00 (7C00 lineal), comprueba que contenga código válido (comprueba que esté firmado con 0x55 y 0xAA en los bytes 511 y 512 respectivamente) y salta a esa dirección (CS:IP apuntan a esa dirección).

Compuesto el MBR





El master boot record esta compuesto de instrucciones de lenguaje máquina en modo real. Ese código pasa, normalmente, el control mediante chain loading al volume boot record de la partición (primaria) activa, aunque algunos gestores de arranque reemplazan ese código convencional por el suyo.
El código convencional del MBR espera que se use el esquema de la tabla de particiones del MBR, y escanea la lista de entradas de particiones (primarias) en la tabla de particiones buscando una que esté marcada con active flag. Luego carga y ejecuta el Volume Boot Record para esa partición (así que el master boot record, como otros sectores de arranque, es un blanco para los virus que infectan el sector de arranque).




El código del MBR, modificado por algunos gestores de arranque, puede realizar una serie de tareas que son distintas según el gestor de arranque. Por ejemplo, en algunos gestores, ese código carga el resto del código del gestor de arranque desde la primera pista del disco (que es espacio libre no asignado a ninguna partición de disco) y lo ejecuta. En otros, usa una tabla de posiciones de disco, que se encuentra en el mismo espacio que el código, para localizar el código del resto del gestor de arranque y poder cargarlo y ejecutarlo. Ambas formas tienen problemas. La primera confía en el comportamiento (que no es el mismo en todas) de las utilidades de particionado de disco y la segunda requiere que la tabla de posiciones de disco se actualice una vez se hayan hecho los cambios para localizar el resto del código.



Master boot

 un master boot record es el primer sector de un dispositivo de almacenamiento de datos como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado.

Almacenamiento de un master boot record estándar
Dirección
Descripción
0x0000
Área de código
0x01B8
4 bytes; firma del disco (opcional)
0x01BE
Para entradas en la tabla de particiones primarias de 16 bytes (esquema estándar de la tabla de particiones del MBR)
0x01FE
2 bytes; firma del MBR (0xAA55)



Estados de el proceso

los cinco estados están en la siguiente imagen:

  • Ejecución: el proceso está actualmente en ejecución.



  • Listo: el proceso está listo para ser ejecutado, sólo está esperando que el  así lo disponga.


  • Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.


  • Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.

  • Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.


PROCESO

Proceso
Un proceso es un programa en ejecución. Los procesos son gestionados por el sistema operativo y están formados por:
·                     Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
·                     Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
·                     Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
·                     Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.




Clasificación de sistemas operativos

Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba. A continuación se mostrarán diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus características:


Sistemas Operativos por lotes
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo , evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
  • Requiere que el , datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
  • Permiten poca o ninguna interacción usuario/programa en ejecución.
  • Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
  • No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
  • Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.)
  • Se encuentra en muchos computadores personales combinados con procesamiento serial.
  • Planificación del procesador sencilla, típicamente procesados en orden de llegada.
  • Planificación de memoria sencilla,  generalmente se divide en dos: parte residente del S.O. y programas transitorios.
  • No requieren gestión crítica de dispositivos en el tiempo.
  • Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.

 Sistemas Operativos de tiempo real
Los Sistemas Operativos de tiempo real son aquelos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
  • Control de trenes.
  • Telecomunicaciones.
  • Sistemas de fabricación integrada.
  • Producción y distribución de energía eléctrica.
  • Control de edificios.
  • Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.


Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).
Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIXWindows 95, Windows 98Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
  • Mejora productividad del sistema y utilización de recursos.
  • Multiplexa recursos entre varios programas.
  • Generalmente soportan múltiples usuarios (multiusuarios).
  • Proporcionan facilidades para mantener el entorno de usuarios inndividuales.
  • Requieren validación de usuario para seguridad y protección.
  • Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
  • Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.
  • Sistemas multiprocesadores son sistemas multitareas por definición  ya que  soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.
  • En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos

Sistemas Operativos de tiempo compartido
Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
  • Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
  • Dan la ilusión de que cada usuario tiene una máquina para  sí.
  • Mayoría utilizan algoritmo de reparto circular.
  • Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
  • Evitan monopolización del sistema asignando tiempos de procesador (time slot).
  • Gestión de memoria proporciona protección a programas residentes.
  • Gestión de archivo  debe proporcionar protección y control de acceso debido a que  pueden existir múltiples usuarios accesando un mismo archivos.


Sistemas Operativos distribuidos.


Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caracteristicas de los Sistemas Operativos distribuidos:
  • Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
  • Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
  • Objetivo clave es la transparencia.
  • Generalmente proporcionan medios para la compartición global de recursos.
  • Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).


Sistemas Operativos de red.



Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.


En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.