miércoles, 6 de octubre de 2010

1. Que es un Sistema Operativo

El sistema operativo (a veces también citado mediante su forma abreviada OS en inglés) se encarga de crear el vínculo entre los recursos materiales, el usuario y las aplicaciones (procesador de texto, videojuegos, etcétera). Cuando un programa desea acceder a un recurso material, no necesita enviar información específica a los dispositivos periféricos; simplemente envía la información al sistema operativo, el cual la transmite a los periféricos correspondientes a través de su driver (controlador). Si no existe ningún driver, cada programa debe reconocer y tener presente la comunicación con cada tipo de periférico.
Sistema operativo
De esta forma, el sistema operativo permite la "disociación" de programas y hardware, principalmente para simplificar la gestión de recursos y proporcionar una interfaz de usuario (MMI por sus siglas en inglés) sencilla con el fin de reducir la complejidad del equipo.

Tipos de sistemas operativos

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.
SistemaProgramaciónUsuario únicoUsuario múltipleTarea únicaMultitarea
DOS16 bitsX X 
Windows3.116/32 bitsX  no preventivo
Windows95/98/Me32 bitsX  cooperativo
WindowsNT/200032 bits X preventivo
WindowsXP32/64 bits X preventivo
Unix / Linux32/64 bits X preventivo
MAC/OS X32 bits X preventivo
VMS32 bits X preventivo

2. Funciones de un sistema operativo.

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

3. Características de los sistemas operativos.

 Características de los Sistemas Operativos.
En general, se puede decir que un Sistema Operativo tiene las siguientes características:
  • Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora.
  • Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
  • Técnicas de recuperación de errores.
  • Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.
  • Generación de estadísticas.
  • Permite que se puedan compartir el hardware y los datos entre los usuarios.
El software de aplicación son programas que se utilizan para diseñar, tal como el procesador de palabras, lenguajes de programaciónhojas de cálculo, etc.
El software de base sirve para interactuar el usuario con la máquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite eldiseño del mismo.
El Software de base está compuesto por :
  • Cargadores.
  • Compiladores.
  • Ensambladores.
  • Macros.

4. Tipos de sistemas operativos: Por el número de usuarios, Número de tareas y por el número de procesadores

POR NUMERO DE USUARIOS:
Sistema operativo monousuario


Los sistemas operativos monousuario son aquellos que soportan a un usuario a la vez, no importando la cantidad de procesadores o procesos que se estén realizando. Las computadoras personales se han clasificado en esta sección.

Sistema operativo multiusuario

Los sistemas multiusuario son los que soportan varios usuarios a la vez, estos tipos de sistemas generalmente se utilizan en máquinas que están conectadas en red.


POR NUMERO DE TAREAS:
Sistema operativo monotarea
Los sistemas monotarea son aquellos que solo permiten realizar una sola tarea, estos sistemas son mas primitivos porque solo permiten un solo proceso a la vez.

Sistema operativo multitarea

Los sistemas multitarea son sistemas que permiten realizar varias actividades o procesos a la vez sin ningún problema.

POR NUMERO DE PROCESADORES:
Sistema operativo uniproceso
Los sistemas uniproceso solo pueden trabajar con un solo procesador, si tuvieran otro serían obsoletos. Ejemplos: DOS y Mac OS.

Sistema operativo multiproceso

Los sistemas multiproceso pueden utilizar varios procesadores para distribuir el trabajo de cada uno. Generalmente estos trabajan o pueden ser de dos tipos:

  • Asimétrica: es donde el sistema operativo selecciona un procesador maestro y los demás funcionan como esclavos.
  • Simétrica: en este tipo se envía información o se trabaja con el procesador con menos carga y así se distribuye mejor el trabajo.



5. ¿Cuáles son las funciones del núcleo o kernel?


Núcleo o kernel (de la raíz germánica Kern) es un software que actúa de sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware delcomputador 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.
Las funciones más importantes del mismo, aunque no las únicas, son:
  • 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 ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
.
– El Administrador de Entrada-Salida.
El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin que intervenga el cómo funciona específicamente cada uno. Tiene una serie de subcomponentes que son:
  • Driver del Sistema de Archivos: este se encarga de establecer la comunicación con los drivers de los Sistemas de Ficheros, ya que el sistema permite la coexistencia de múltiples Sistemas de Archivos en diferentes particiones lógicas de la misma unidad física.
  • El servidor y el redirector de red.
  • Los drivers de dispositivo del sistema.
  • El administrador de caches (Cache Manager): este se encarga de manipular la cache para todo el Sistema de Entrada y Salida. Este es un métodoque utilizan los sistemas de archivos para mejorar su rendimiento, donde en lugar de leer y escribir en disco un fichero usado frecuentemente este se almacena en una cache de memoria y la lectura y escritura de estos ficheros se realiza desde memoria. Este componente se encarga de la magia negra que es a menudo necesaria para hacer que varios dispositivos se comuniquen entre si y convivan juntos en un segmento. El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo.

  



6. ¿Cuál es la arquitectura de Windows y de Linux?

ARQUITECTURA DE WINDOWS: 
capaz de competir en el mercado con otros como Unix que ya tienen una posición privilegiada, en cuanto a resultados,debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son:
  • Que corra sobre múltiples arquitecturas de hardware y plataformas.
  • Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y Microsoft Windows 3.1.
  • Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).
  • Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.
  • Sea fácilmente adaptable al mercado global soportando código Unicode.
  • Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la vez.
  • Sea un Sistema Operativo de memoria virtual.
Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la Microsoft fue el diseño y creación de un Sistema Operativo extensible, portable, fiable, adaptable, robusto, seguro y compatible con sus versiones anteriores (Windows NT).
Y para ello crearon la siguiente arquitectura modular:


ARQUITECTURA EN LINUX:
En linux el proceso gráfico no es más que otro proceso que ejecuta el sistema operativo. Esto evita muchos problemas de estabilidad al kernel. Otra ventaja que tiene es la absoluta independencia del sistema operativo y el entorno gráfico. En contrapartida a todas estas ventajas, existe el inconveniente que el entorno gráfico reduce su velocidad en comparación a otros sistemas gráficos. Estos últimos incluyen los procesos referentes al subapartado gráfico en el propio núcleo. Aunque esta práctica tiene la ventaja de que el sistema gráfico es más veloz. Se hace un gasto innecesario de recursos, aun sin usar ninguna aplicación, y estar más propensos a fallos del sistema debidos a errores en el apartado gráfico.


Toda la filosofía de X Window se basa en la arquitectura cliente/servidor. Esta arquitectura es el modelo de sistema X mediante la cual los clientes, programas de aplicaciones, se comunican con los servidores que controlan parte del hardware.

El programa que habilita un entorno gráfico X-window en un ordenador es el servidor X (X server). Se le llama servidor ya que este programa sólo se dedica a escribir en pantalla lineas, cuadros y funciones gráficas básica. El servidor X ofrece funciones gráficas primarias a las aplicaciones (clientes) que las soliciten y este las muestra en pantalla. El servidor es el programa encargado de gestionar un display. Un display se debe entender como la unidad formada por la o las pantallas y por los dispositivos de entrada, bien sea un ratón, un teclado, un trackball etc. todo este conjunto es un display. Un servidor puede servir a varios clientes a la vez. La otra parte de la arquitectura cliente / servidor es el cliente, básicamente es una aplicación que se esta ejecutando en modo gráfico. El servidor es la unidad de visualización, que puede a su vez estar formada por varios monitores o pantallas físicas.

El servidor se encarga de captar las entradas del usuario y se las pasa a las aplicaciones o clientes X, dicha información proviene de los dispositivos de entrada del display, para que los clientes actúen en consecuencia. Los clientes tienen que captar esta información y operar. La respuesta del cliente es mandada al servidor ordenándole que dibuje dicha respuesta en la pantalla o las pantallas del display. Descodifican los mensajes de los clientes, como las peticiones de información o el movimiento de una ventana. Toda la comunicación entre el cliente y el servidor se realiza en lenguaje formal X window.