lunes, 18 de abril de 2011

NUCLEO Y FUNCION

En informática, un núcleo o kernel  es un software que actúa de sistema operativo.[Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

En informática, el núcleo es el programa informático que se asegura de:
  • La comunicación entre los programas que solicitan recursos y el hardware.
  • Gestión de los distintos programas informáticos (tareas) de una máquina.
  • Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)
La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware), en particular, de la memoria.

 su funcion es:

*Se encarga de decidir qué programa puede hacer uso de un dispositivo y durante cuánto tiempo
*garantiza la carga y la ejecución de los procesos, las entradas/salidas y propone una interfaz entre el espacio núcleo y los programas del espacio del usuario
*asigna recursos para el proceso que lo necesite
*Facilita el acceso al hardware  
*Administración de la memoria para todos los programas y procesos en ejecución 
*Administración del tiempo de procesador que los programas y procesos en ejecución utilizan
      *El núcleo reside siempre en la memoria principal 

DISTRIBUCION DE LOS 512 BYTES DEL SECTOR DE ARRENQUE EN UN DISCO DURO

De todos los sectores de una unidad de disco, el primero de la primera cabeza del primer cilindro, 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)

Los 512 Bytes estan distribuidos de la siguiente manera como no smuestra la imagen.

*446 B van para la Información primaria del boot loader.

*64 B van distribuidos para la Información de la tabla de partición en los siguientes. 
*2 Bytes restantes estan dictaminados para la Revisión de validación del MBR.

¿QUE ES EL 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).

¿DE QUE ESTA COMPUESTO EL MBR?

el código del MBR está 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.

En los ordenadores que no usan procesadores IA-32, o en ordenadores que usan el esquema de la Tabla de Particiones GUID, ese esquema no es correcto, y el MBR no se utiliza en el arranque del sistema. En su lugar el firmware es capaz de entender directamente el esquema de particionado GPT y el formato de sistema de ficheros FAT, de modo que carga y ejecuta programas guardados como ficheros en la Partición del Sistema. El MBR, por tanto, no interviene en absoluto en el arranque del sistema (excepto indirectamente, en la medida en que podría contener la tabla de particiones si se ha usado el esquema de la Tabla de Particiones del MBR).


¿QUE ES UN MASTER BOOT RECORD (MBR)?

es el primer sector ("sector cero") 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.

ESTADOS DE PROCESO

El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo.

En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.


Los 5 estados de este diagrama son los siguientes:


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


Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador 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.


QUE ES UN 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.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.