domingo, 17 de abril de 2011

SISTEMAS OPERATIVOS







Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. 
Permite interactuar con el hardware de computadoras, teléfonos celulares, PDAs, etc. y ejecutar programas compatibles en éstos.



Permite controlar las asignaciones de memoria, ordenar las solicitudes al sistema, controlar los dispositivos de entrada y salida, facilitar la conexión a redes y el manejo de archivos.

PROGRAMA PRINCIPAL DEL SISTEMA





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 llamado en informática, un núcleo o kernel (de la raíz germánica Kern) es un software que actúa de sistema operativo.



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

FUNCIONES DE LOS SISTEMAS OPERATIVOS



                                               

Sistema operativo cumple varias funciones:
  • Administración del procesador: el sistema operativo administra la distribución del procesador entre los distintos programas por medio de un algoritmo de programación. El tipo de programador depende completamente del sistema operativo, según el objetivo deseado.

  • Gestión de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio de memoria asignado para cada aplicación y para cada usuario, si resulta pertinente. Cuando la memoria física es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho más lenta.
  • Gestión de entradas/salidas: el sistema operativo permite unificar y controlar el acceso de los programas a los recursos materiales a través de los drivers (también conocidos como administradores periféricos o de entrada/salida).
  • Gestión de ejecución de aplicaciones: el sistema operativo se encarga de que las aplicaciones se ejecuten sin problemas asignándoles los recursos que éstas necesitan para funcionar. Esto significa que si una aplicación no responde correctamente puede "sucumbir".
  • Administración de autorizaciones: el sistema operativo se encarga de la seguridad en relación con la ejecución de programas garantizando que los recursos sean utilizados sólo por programas y usuarios que posean las autorizaciones correspondientes.
  • Gestión de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios.
  • Gestión de la información: el sistema operativo proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo.

                                                   

SISTEMAS OPERATIVOS EXISTENTES


Existen varios tipos de sistemas operativos, definidos según su capacidad para administrar simultáneamente información de 16 bits, 32 bits, 64 bits o más.


Sistema
Programación
Usuario único
Usuario múltiple
Tarea única
Multitarea
DOS
16 bits
X

X

Windows3.1
16/32 bits
X


no preventivo
Windows95/98/Me
32 bits
X


cooperativo
WindowsNT/2000
32 bits

X

preventivo
WindowsXP
32/64 bits

X

preventivo
Unix / Linux
32/64 bits

X

preventivo
MAC/OS X
32 bits

X

preventivo
VMS
32 bits

X

preventivo





LAS CUATRO FUNCIONES DEL SISTEMA OPERATIVO


  • Un sistema operativo sirve para cuatro funciones:

Ø  Proporciona una interfaz del usuario
Ø  Administra los dispositivos de hardware
Ø  Administra y da mantenimiento a los sistemas de archivo del disco
Ø  Da soporte a otros programas

  • Una interfaz de línea de comando requiere que el usuario teclee los comandos en el teclado; en cambio; la interfaz gráfica del usuario (GUI) es controlada mediante un ratón.

  • El DOS es utilizado más a menudo con un shell de línea de comando, pero existen otros disponibles, incluyendo al DOS Shell, Norton Desktop y Windows de Microsoft.

CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

Los Sistemas Operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba.

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 tiempo, 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.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuencialidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Figura. Trabajos más comunes que realiza el Sistema Operativo por lotes.


Sistemas Operativos de tiempo real.

Los Sistemas Operativos de tiempo real son aquellos 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 UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.

Sistemas Operativos de tiempo compartido.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, está 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.

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.

Sistemas Operativos de red.

Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico 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 más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.


ORGANIZACIÓN DE UN SISTEMA OPERATIVO

·        En el primer nivel y más bajo, se encuentra el núcleo [kernel], que es el que tiene contacto directo con los circuitos electrónicos.
·        En el segundo se encuentran las rutinas que implementan los servicios que ofrece el Sistema Operativo, como el manejo de los discos, el monitor, teclado y la gestión de los procesos.
·        En el tercero se encuentran el gestor de la memoria y de archivos.
·        El cuarto, están los procesos que permiten la comunicación del usuario con el Sistema Operativo: el caparazón [shell] y las órdenes propias del Sistema Operativo. La comunicación sólo es posible entre los niveles inmediatamente superior e inferior.

EN INFORMATICA 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.
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.

ESTADOS DE PROCESO

ESTADOS DE PROCESO:



     Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos:
    
·      Los procesos pueden bloquearse en su ejecución porque: Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
·      El Sistema Operativo asignó la CPU a otro proceso.
EJECUSICION: El proceso está actualmente en ejecución. 
·  LISTO: proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga. 
·   ESPERA: El proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida. 
· NUEVO: 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. 
EJEMPLOS:
*Dejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán los semáforos).
*Dejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
*    Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).
*    Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloquea en el semáforo. 

MASTER BOOT RECORD (MBR)

El Master Boot Record (MBR) es un pequeño programa que es ejecutado en cada Inicio del sistema operativo y se encuentra ubicado en el primer sector absoluto (Track 0, head 0, sector 1) del disco duro en una PC y que busca la Tabla de Particiones para transferirla al Sector de Arranque (Boot). 


COMPUESTOS DEL MBR




El MBR está compuesto por código ejecutable y las entradas de la Tabla de Particiones.  

Estructura del Master Boot Record
Offset
Naturaleza
size
+00h
Código ejecutable
varía
+1BEh
1a entrada de tabla de particiones
16 bytes
+1CEh
2a entrada de tabla de particiones
16 bytes
+1DEh
3a entrada de tabla de particiones
16 bytes
+1EEh
4a entrada de tabla de particiones
16 bytes
+1FEh
Marcador ejecutable (AA55h)
2 bytes


Los virus que infectan al Master Boot Record, por lo general lo reemplazan con su código viral e inutilizan en forma lógica de disco duro y el usuario afectado tendrá que formatear y cargar nuevamente su Sistema Operativo y los demás programas. A menos que se cuente con un diskette de Emergencia.
En los sistemas operativos D.O.S. y Windows, se puede crear el MBR con el comando de FDISK. Debido a que el MBR se ejecuta cada vez se inicia el sistema, este clase de virus son de extremadamente peligrosidad. Los virus de MBR pueden incorporar un sistema a través de un diskette que esté instalada en la unidad A: al momento del Inicio, e inclusive si el diskette no es uno de "arranque" también puede infectar el MBR.

QUE ES EL BOOTRSTRAP

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).
El bootstrap también puede referirse al proceso mediante el cual se han desarrollado entornos de programación cada vez más complejos a partir de otros más simples.
El entorno más simple sería, quizás, un editor de textos muy sencillo (p.e. ed) y un programa ensamblador. Utilizando estas herramientas, se puede escribir un editor de texto más complejo y un compilador simple para un lenguaje de más alto nivel y así sucesivamente, hasta obtener un entorno de desarrollo integrado y un lenguaje de programación de muy alto nivel.
También, por ejemplo, es conocido ese término, para «construir» un sistema completo a partir de sus componentes base, o bien, de previas versiones precompiladas de esos componentes, como por ejemplo una instalación vía «stage1» en Gentoo Linux o 'net install' en Debian.

DISTRIBUCIÓN DE LOS 512 BYTES EN EL SECTOR DE ARRANQUE DEL DISCO DURO

El 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. MBC

Si el disco es "bootable", los primeros 446 bytes del MBR (sector de arranque), están ocupados por un pequeño trozo de código denominado código maestro de carga MBC  ("Master Boot Code") o cargador inicial (bootstrap loader), que es cargado por la BIOS para comenzar el proceso de carga. El bootstrap loader repasa la tabla maestra de particiones (ver a continuación) buscando una partición activa. En caso de encontrarla, busca su sector inicial ( 8.1.2c2), carga su código en memoria, y le transfiere el control.  Dicho código es ya capaz de cargar y ejecutar cualquier otro programa situado en cualquier partición del disco.  Que a su vez inicializará directamente el SO, o tal vez una utilidad conocida como gestor de arranque, que permite elegir entre distintas alternativas.
Como vemos, es un proceso en cadena: el bootstrap loader es cargado en memoria por un programa situado en la BIOS, y a su vez es capaz de continuar la carga del Sistema Operativo.


·        la  Tabla de particiones MPT.

A continuación del MBC, se sitúa la tabla maestra de particiones MPT ("Master Partition Table").  Está constituida por cuatro trozos de 16 bytes (4 entradas) que contienen información sobre las particiones definidas en la unidad.

Nota: las particiones a que nos referimos son las denominadas particiones primarias o volúmenes. Hay que recordar que solo hay sitio para cuatro, por lo que un disco duro solo puede contener cuatro particiones primarias.  Cualquier otra que pueda establecerse, se denomina partición secundaria o volumen lógico y debe estar contenida en alguna de las primarias

·         la Firma del sector de carga
Los dos últimos bytes del sector de arranque (MBR) contienen dos caracteres (55h, AAh). Que son denominados firma del sector de carga ("Boot record signature").