martes, 12 de agosto de 2008

Estructura Cliente - Servidor

Los sistemas operativos actuales explotan la idea de mover el código a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. Lo usual es el de implantar la mayoría de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequeña y controlable. Además como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste puede fallar, pero esto no afectará en general a toda la máquina.

A la estructura cliente-servidor se ha llegado por tres necesidades:

  • Integrar los sistemas informáticos "básicos" de la empresa (software financiero, de personalnóminas, administración de beneficios, etc., control de almacenes, marketingmailings, ventas), con los "de superficie" como tratamiento de texto, hojas de cálculo y pequeñas bases de datos en microordenador.
  • Gestionar y usar una gran cantidad de bases de datos y servicios de la empresa por parte de un número importante de empleados en distintos departamentos.
  • Interconectar una variedad de ordenadores grandes, minis y micros.

Ventajas: Flexibilidad. Cada proceso servidor se encarga de una función, siendo cada parte más pequeña y flexible y facilita el desarrollo y la depuración de cada proceso servidor.

Desventajas: Mayor sobrecarga al manejar servicios de los sistemas operativos monolíticos, la razón es que los componentes están en espacios de memoria distintos por lo que su activación requiere mayor tiempo.

domingo, 3 de agosto de 2008

¿Qué es un Sistema Operativo?

El Sistema Operativo en un software (conjunto de programas) el cual se encarga de controlar y coordinar el uso del hardware entre diferentes programas de aplicación y los usuarios. A esto se le conoce como Administrador de Recursos.

La mayoría de los usuarios de computadoras hemos tenido algo de experiencia con lo que son los Sistemas Operativos, pero no es sencillo describir que es un Sistema Operativo. La razón de este problema radica en que el Sistema Operativo realiza dos funciones que básicamente no se relacionan entre sí.

Las dos funciones que un Sistema Operativo realiza son las siguientes:

  • Sistema Operativo como Administrador de Recursos
  • Sistema Operativo como Maquina Extendida

En conjunción con estas dos funciones que ejecuta un Sistema Operativo también para caso de estudio también deberíamos tocar los siguientes puntos:

  • Sistema Operativo como Administrador de Procesos
  • Sistema Operativo como Maquina Jerárquica

Clasificación de un Sistema Operativo

Sistema Operativo como Administrador de Recursos

En esta parte podemos decir que el Sistema Operativo existe para administrar todos los componentes de un sistema. Estos componentes son el hardware, como lo son los procesadores, memorias, discos, ratones, interfaces con redes, impresoras y todo aquel componente físico que debe ser administrado desde la computadora. Podemos ver al Sistema Operativo como el encargado del reparto ordenado y controlado de todos los recursos de un computador entre los diferentes programas que compiten por ellos.

Un buen ejemplo de esto podría verse al tener dos programas que tratan de imprimir simultáneamente al mismo dispositivo de impresión, si el Sistema Operativo no administrara correctamente los recursos el resultado para este problema sería un caos, lo que el Sistema Operativo hace en este caso en asignarle la impresora a uno de los programas y poner al otro en espera hasta que el dispositivo esté disponible para ser usado.

Sistema Operativo como Maquina Extendida

Se puede visualizar como una serie de componentes que ocultan la complejidad del hardware y nos proporcionan una abstracción de mayor nivel que nos facilita su uso. En el grafico podemos observar los componentes que componen al Sistema Operativo como Maquina Extendida.

Kernel: Es el software encargado de proporcionar el entorno necesario donde será posible ejecutar otros programas. Este es el que trabaja directamente con el hardware.

S.O. Externo: Son las instrucciones del S.O. y subprogramas que invocan al kernel. (Traductor)

Shell: Interfaz que ven los usuarios. En un Sistema Operativo puede existir más de un Shell.

Sistema Operativo como Administrador de Procesos

Para poder visualizar un Sistema Operativo como Administrador de Procesos debemos definir antes algunos términos.

Proceso: Son programas que se están ejecutando y que utilizan recursos para realizar una tarea.

Quantum de Tiempo: Es el lapso de tiempo que el procesador da a cada proceso para ejecutar alguna acción normalmente este es de 1ms.

Procesamiento Concurrente: Es el concepto que se da cuando el procesador trabaja con varios procesos “al mismo tiempo”. Nótese que ponemos “al mismo tiempo” entre comillas puesto que esto en realidad no es así, puesto que el tiempo que el tiempo que el procesador le da a un proceso para que ejecute una acción es tan corto que se ve como si este trabajase varios procesos al mismo tiempo.

Procesamiento Paralelo: Se da cuando la computadora ejecuta varios procesos al mismo tiempo. A diferencia del término anterior este si es posible pero es necesario más de 1 procesador para que esto sea posible.

Como podemos apreciar en la grafica tenemos una cola de procesos en la cual se colocan todos los procesos que necesitas ejecutarse, entonces tomamos 1 de esos procesos que están listos para ser ejecutados y se mandan a ejecutar, estado en ejecución el proceso puede tomar dos caminos que son:

· El primero a la cola de procesos nuevamente luego que el tiempo que le asigna el procesador da este expira.

· Y el otro camino es a una lista de espera, este camino lo toma cuando el procesador detecta que el recurso que este proceso desea utilizar esta ocupado lo manda a esta cola a esperar que el recurso sea liberado, en esta parte se cuenta con una cola para cada recurso.

Sistema Operativo como Maquina Jerárquica

En el grafico podemos observar los componentes que componen al Sistema Operativo como Maquina Jerárquica.


  1. Hardware
  2. Administrador de Bajo Nivel del Procesador
  3. Administrador de la Memoria
  4. Administrador de Alto Nivel del Procesador
  5. Administrador I/O
  6. Administrador de la Información
  7. Administrador de la Comunicación
  8. Shell



Programas, Procesos e Hilos

¿Qué es un Programa?

Es un conjunto de instrucciones para computadora. Las computadoras dependen de los programas para funcionar, las instrucciones de las que se compone un programa son ejecutadas por el procesador.

Estos programas son ejecutados por el procesador y luego que han finalizado todas sus tareas estos dejan de ser atendidos por el procesador.

¿Qué es un Proceso?

Es un concepto que maneja el sistema operativo y puede ser definido como las instrucciones de un programa que serán ejecutadas por el procesador, estas instrucciones son ejecutadas en un momento dado, se les reserva memoria que utilizaran para trabajar.

Los procesos los crea y los destruye el sistema operativo, este también se encarga de la comunicación entre los procesos.

Diferencia Entre Procesos e Hilos

Como ya vimos un proceso es cualquier programa en ejecución y es totalmente independiente a otros procesos y que ocupan distintos espacios de memora, pero hay procesos que pueden crear otros procesos y almacenarlos en el mismo espacio de memoria, y al compartir tanto la memoria como los recursos la programación de estos se vuelven más complicados.