domingo, 17 de abril de 2011

¿Qué es sistema operativo?

Un Sistema Operativo  es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
Este tipo de programas se encargan de administrar los recursos instalados en la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento. El requisito indispensable para que los demás programas se ejecuten es que exista el soporte, plataforma, programa principal o sistema operativo que les brinde un ambiente de ejecución. Los sistemas operativos sirven además, de intermediarios entre el usuario y la maquina brindando las diferentes interfaces de acceso. Ej. Windows XP, Windows VISTA, Linux, Unix.



Programa principal del sistema


El programa principal del sistema son los sistemas operativos ya que este  se encuentra almacenado en la memoria secundaria, Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado.

¿Cuáles son las cuatro grandes funciones del sistema operativo?

·      Organizar y administrar el hardware del equipo tanto en partes internas y periféricos. 
·      Gestiona los recursos del ordenador en sus niveles mas bajos.
·      Dispone de una interface (elemento que hace posible la fácil comunicación usuario maquina) liberando al usuario del conocimiento del hardware. 
·      Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse.


¿Cuáles son los sistemas operativos existentes?

    Linux

  Windows XP

Windows vista

     Unix.

  MAC/OS X

¿Cuáles son las distintas funciones de los sistemas operativos?


Los sistemas operativos cumplen varias funciones como por ejemplo:

·      La administración del procesador del 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.
·      La Administración de autorizaciones del 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.

·      La Gestión de la memoria de acceso aleatorio del 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.

·      La Gestión de ejecución de aplicaciones del 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".

·      La Gestión de entradas/salidas del 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).

·      La Gestión de archivos del sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios.

·      La Gestión de la información del sistema operativo proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo.


Clasificación de los sistemas operativos


Con el paso de los tiempos los sistemas operativos fueron cambiando de muchas maneras, por ejemplo:
·         Sistemas Operativos de multitarea: con este sistema operativo es que la computadora procesa diferentes tareas al mismo tiempo. Existen varios tipos de multitareas. Estos sistemas 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.
Los sistemas operativos que soportan estas multitareas son: UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2.

·         Sistema Operativo Monotareas: los sistemas operativos monotareas son más primitivos y es todo lo contrario a los de multitareas es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. El sistema operativo que soporta el monotareas  es DOS.


·         Sistema Operativo Monousuario: Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se está utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuarios. Los sistemas operativos que soportan el monousuario son DOS e incluso  en  el actual Windows XP y sus predecesores.  

·         Sistema Operativo Multiusuario: Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.                                                                                     Los sistemas operativos que soportan el multiusuario son con el Linux, Windows 2003 y sus predecesores.


·         Sistemas Operativos por lotes: Con este sistema operativo 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, 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 secuenciabilidad de la ejecución de los trabajos. Los sistemas operativos que soportan por lotes son el SCOPE, del DC6600, y el EXEC II para el UNIVAC 1107.


·         Sistemas Operativos de tiempo real: este sistema operativo 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.Los sistemas operativos que soportan el tiempo real son  VxWorks, Solaris, Lyns OS y Spectra.



·         Sistemas Operativos de tiempo compartido: estos sistemas 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, 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. Los sistemas operativos que soportan el tiempo compartido son  Multics, OS/360 y DEC-10.

·      Sistemas Operativos distribuidos: Este sistema operativo permite 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 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.  

·         Sistemas Operativos de red: Los sistemas operativos de red son aquellos 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  más utilizados que soportan la red son Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

·         Sistemas Operativos paralelos: 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, simulando paralelismo. Así, en lugar de esperar a que el proceso termine de ejecutarse, regresa a atender al usuario inmediatamente. Los sistemas operativos que soportan a los paralelos son Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.



                                                                                                                                           





¿Cuál es la organización de un sistema operativo?



El núcleo fundamental de un Sistema Operativo es lo que conocemos como KERNEL. El Kernel de un sistema operativo está formado por conjuntos de programas ejecutivos, servicios funcionales dinámicos, programas comunicacionales y configuraciones que le indican al sistema en todo momento cómo ejecutar estos componentes o partes.

Desde un punto de vista funcional, todos los sistemas operativos contemplan la misma estructura funcional (Windows, Linux, MacOS, ReactOS, FreeDos, etc). Igualmente, comparten esta organización los sistemas operativos de distintos componentes electrónicos (PC's, Notebooks, Palms, Teléfonos celulares, iPODs, iPADs, etc).

El Kernel está constituído integralmente por tres componentes principales:

·      Drivers: Un conjunto de utilidades que le garantizan al sistema operativo en primer término la comunicación con todos los dispositivos conectados al sistema principal Micro+Chipset+Ram.

·      Programas: Un conjunto de programas que permiten poner en marcha al sistema operativo para atender a las tareas que debe realizar para mantener funcionando correctamente al sistema (administración de la memoria, ejecución de tareas, almacenamiento de datos y configuraciones, etc), un conjunto de funciones que garantizen el flujo continuo y sincronizado de datos desde el corazón del sistema a los periféricos y viceversa.


·      Servicios: Un conjunto de funcionalizades que le permiten reaccionar ante un evento que suceda en el sistema para dar una respuesta dinámica y eficaz, lo que constituye la máxima potencialidad posible del sistema operativo y le permite la escalabilidad necesaria para poder aceptar diferntes configuraciones. 

Cada uno de estos componentes del Kernel puede ser controlado y visualizado por el técnico gracias a un conjunto de herramientas provistas por los mismos sistemas operativos para controlar la ejecución correcta y coordinada de cada uno.

En el caso de Windows, estas herramientas son
·  El Administrador de Servicios para ver las funcionalidades disponibles que responden a distintos eventos dentro del sistema
·  El Administrador de Programas para ver los Procesos cargados en memoria Ram que esperan por los eventos que los activarán. Recuerde el técnico que un programa que se carga en Ram recibe el nombre de PROCESO.
·  El Administrador de Dispositivos, que permite saber el estado comunicacional del sistema con el exterior, vale decir Micro+Chipser+Ram con Periféricos

El Kernel opera con un lenguaje de programación básico y primitivo, orientado principalmente a mantener contacto fluído con el bajo nivel de hardware. Esto quiere decir que está más relacionado al uso de programas preparados para interpretar señales eléctricas que a comunicarse con el alto nivel o software del usuario. 
Los núcleos actuales de los sistemas operativos Linux y Windows (este último basado en núcleos NT) son muy estables y fiables. La mayor parte de las veces las inestabilidades generadas en NT dependen de malas configuraciones técnicas y una administración deficiente del personal humano y no de problemas de diseño del sistema operativo.

Así como desdeel punto de vista técnico el sistema PC está compuesto de capas funcionales, un sistema operativo también requiere de la combinación de varios componentes:


¿Que es un proceso?

Es una referencia de instrucciones que ejecutará el microprocesador mientras lee un programa determinado. Esto también implica a la memoria reservada y a sus contenidos, el estado de ejecución en determinado momento, y la información que permite al sistema operativo planificar. Algunos tipos de proceso son:
·         Proceso distribuido: Es una forma de proceso en la que los datos y las funciones están distribuidos en los distintos elementos de una configuración o sistema.
·         Proceso paralelo: Es un tipo de proceso asimilable a los grandes sistemas.
·         Proceso cooperativo: Alude al hecho de que una única aplicación se gestiona desde dos (o más) diferentes configuraciones hardware.


Estados de procesos: Ejecución, listo, Espera, nuevo y terminado.

·       -  En ejecución: El proceso ocupa la CPU actualmente, es decir, si se está ejecutando.
·       -  Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
·       -  Nuevo: Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de crearse.
·       -  Terminado: Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado.
·        - Bloqueado: e dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.


Ejemplos:
·          De ejecució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).
·          De ejecució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.
·          De 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).
·          De 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 bloqueados en el semáforo.


¿Que es MBR?

Es un pequeño programa que es ejecutado en cada Inicio del sistema operativo y se encuentra ubicado en el primer sector absoluto ya sea (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) 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.


¿De qué está compuesto el MBR?

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


Offset
naturaleza
size
+ 00h
Código ejecutable
Varia
+1BEh
1ª entrada de tabla de particiones
16 bytes
+1CEh
2ª entrada de tabla de particiones
16 bytes
+1DEh
3ª entrada de tabla de particiones
16 bytes
+1EEh
4ª entrada de tabla de particiones
16 bytes
+1FEh
Marcador ejecutable (AA55h)
2 bytes

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.