Sistemas Operativos
Por: 30-04-2009 por brfigueroa | Categorías asociadas: Capitulo 1-2

Capítulo I: ¿Qué hace un sistema operativo?

Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación. Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios.

Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos. En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde. Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.

Desde el punto de vista de la computadora, el sistema operativo está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos. Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.

Organización de una computadora

· Funcionamiento. Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM, o en la memoria EPROM, y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema operativo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso.

· Estructura de almacenamiento. Los programas de computadora deben hallarse en la memoria principal RAM para ser ejecutados. El procesador puede acceder directamente a ésta.

· Estructura de E/S. Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos.

Arquitectura de un sistema informático

1. Sistemas Multiprocesador. En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

2. Sistemas Multiprocesador. Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos.

3. Sistemas en clúster. Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados.

Operaciones Del Sistema Operativo

Los Sistema Operativo están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo.

Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando. Un sistema operativo diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.

· Operación en modo dual: Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario. Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario.

· Temporizador: Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor.

· Gestión de Procesos: Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente.

· Gestión de memoria: Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema. Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.

· Gestión de Almacenamiento: Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporcionara una vista lógica del sistema de almacenamiento.

o Gestión del sistema de archivos: La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión.

o Gestión del almacenamiento masivo: La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático.

o Almacenamiento en Cache: Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos.

Sistemas Distribuidos: Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red.

Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red.

Sistemas de Propósito General

· Sistemas embebidos en tiempo real: Computadoras predominantes actualmente , tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware. Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser:

· Sistemas Multimedia: La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia.

· Sistemas de mano: Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño. Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.

Entornos informáticos

1. Sistema informático tradicional: Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos. Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.

Capítulo II: Estructuras De Sistemas Operativos

El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.

· Interfaz de usuario: Casi todos los sistemas operativos disponen de una interfaz de usuario, que puede tomar diferentes formas.

· Ejecución de programas: Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario.

· Operaciones de E/S: Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras.

· Manipulación del sistema de archivos: los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios.

· Comunicaciones: Los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes.

· Detección de errores: El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario. Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están:

o Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general.

o Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en qué cantidad.

o Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.

Interfaz de usuario del sistema operativo

Existen métodos para que los usuarios interactúen con el sistema operativo.

1. Interprete de comandos: Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión.

2. Interfaz grafica de usuario: Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón. Permite que el usuario interactué con el Sistema Operativo a través de una interfaz

Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO.

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.

Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos.

Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario.

Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos.

Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java).

Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse.

Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores.

Diseño e implementación del sistema operativo

Objetivos del diseño

Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido.

Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente.

Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer. La separación de políticas y mecanismos es importante por cuestiones de flexibilidad.

Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++.

La Ventajas de usar un lenguaje de alto nivel:

· El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar.

· Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.

Estructura del sistema operativo

Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas.

o Estructura simple: Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa. El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años.

o Estructura en niveles: El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora.

o Microkernels: Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones. Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel.

o Módulos: La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.

Maquinas Virtuales

Una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada. Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO.

Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual.

Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se está ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real.

1. VMware: Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes.

2. Máquina Virtual Java: La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web.




Por: 27-04-2009 por EstebanYomairo | Categorías asociadas: Capitulo 1-2, Paralelo "A"

CAPÍTULO _2.1 (Materia: SISTEMAS OPERATIVOS)

PLANIFICACIÓN DE LA CPU

Cuando son ejecutables varios procesos, el sistema operativo debe decidir cuál conviene ejecutar si el CPU se encuentra disponible. El elemento del sistema quien toma esta decisión se llama PLANIFICADOR (Scheduling) y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR.

Tipos de Planificación

No Apropiativa.- Una vez que el CPU ha sido asignado a un proceso, ya no se le puede arrebatar.

Apropiativa: Cuando a un proceso, el sistema operativo le puede quitar el CPU antes asignado.

Criterios de Planificación

Utilización de la CPU: Mantener la CPU tan ocupada como se pueda.

Tasa de procesamiento: El número de procesos que se completan por unidad de tiempo.

Tiempo de ejecución: Cuanto tarda en ejecutarse un proceso

Tiempo de espera: La suma de los periodos invertidos en esperar en la cola de preparados.

Tiempo de respuesta: Tiempo que el proceso tarda en empezar a responder.

Algoritmos de planificación

Ya sabemos que el sistema operativo tiene una cola de procesos listos, es decir que están esperando por la CPU. Pero se debe emplear un mecanismo para seleccionar el proceso correcto de esta cola a fin de asegurar: maximizar la productividad, el uso de la CPU y el rendimiento, minimizar el tiempo de espera, de retorno y de respuesta. Se debe elegir uno o una combinación de éstos de acuerdo a estos criterios, con el fin de encontrar un rendimiento óptimo del sistema. Los principales algoritmos de planificación son:

· FCFS (1ro en llegar, 1ro en ser atendido): es el más justo de todos, pero no es el más eficiente ni el que mejor rendimiento produce. También es llamado FIFO.

dibujo1

25

POR PRIORIDAD : no tiene el mejor rendimiento pero está cercano. Se debe implementar envejecimiento de

prioridades para evitar la inanición.

32


ROUND ROBIN : apoya al tiempo compartido. La ejecución de los procesos se divide en intervalos de tiempo

regulares llamados quantum. Este debe ser pequeño para simular concurrencia pero no demasiando para no

provocar sobrecarga y para permitirle a la CPU hacer procesamiento productivo. El actual estándar ronda los

10 ms. Ej: las primeras versiones de Solaris tenían implementado un quantum largo.

41

COLAS MULTINIVEL : es una generalización de todas ya que es posible ubicar a los procesos en diferentes colas,

y cada una con un algoritmo diferente.

5

COLAS MULTINIVEL CON REALIMENTACIÓN : La idea de este es parecida al anterior pero es posible que los procesos cambien de cola, según su estado o el uso que hagan de los recursos. Es muy bueno para evitar la inanición y permite implementar a gusto los algoritmos anteriores.

61

Planificación De Sistemas Multiprocesador

La planificación de procesos es más compleja cuando varios CPU’s se

encuentran disponibles. Generalmente cada CPU tiene su propia cola y su pro-

pio algoritmo de planificación.

Se presentan dos casos:

· Sistema Homogéneo:

Los procesadores son idénticos.

Pueden utilizarse una carga compartida. Todos los procesos se colocan en una sola cola.

· Sistema Heterogéneo:

Los procesos son clasificados por su estructura, ellos deben ejecutarse en un procesador particular.

Evalución De Algoritmos

Tipos de Evaluación:

Modelado determinista.- Toma una carga de trabajo concreta y define el rendimiento de cada algoritmo para dicha carga de trabajo. Es simple y rápido.

Proporciona números exactos para comparar los algoritmos.

Modelos de colas.- Útil para comparar los distintos algoritmos de planificación.

A través del conocimiento de las tasas de llegada y del tiempo de servicio; se puede calcular la utilización, la longitud media de las colas, el tiempo medio de espera à Análisis de redes de colas.

Fórmula de Little: n= λ x W

Analítica.- Toman una serie de valores y se elabora una especie de corrida en frío.

Simulación.- Elaboración de modelos con algunas herramientas y se trata de lograr un comportamiento real de los procesos.

Implementación.- Funcionar el sistema en su entorno real de trabajo.

Resumen de cap. 5 : POR Esteban Chamba Jiménez

Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>

Otras Referencias

Ing. Robiro A. Asuaje L. PROCESOS y PLANIFICACIÓN 05-01-99.

http://www.alipso.com/monografias4/Sist_operativos/




Por: 27-04-2009 por EstebanYomairo | Categorías asociadas: Capitulo 1-2, Paralelo "A"

CAPÍTULO II (Materia: SISTEMAS OPERATIVOS)

GESTIÓN DE PROCESOS

Un proceso es una abstracción de un programa en ejecución y es la unidad de trabajo del sistema. Se puede definir a un proceso como un programa en ejecución.

Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y la ejecucion de dichos procesos, pues para que se ejecute un programa es necesario que el microprocesador ejecute los procesos de ese programa.

El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina que proceso se debe ejecutar y cuanto tiempo debe estar ejecutándose, a todo esto se le denomina gestión de procesos.

Estados de un proceso


Los estados por los que transita un proceso son:

Nuevo: El proceso esta siendo creado

En Ejecución: Se están ejecutando las instrucciones.

En espera: El proceso está esperando a que se produzca un suceso

Preparado: El proceso está a la espera de que se le asigne a un procesador

Terminado: Ha finalizado su ejecución

En el estado en ejecución solo puede haber un proceso, sin embargo, varios pueden estar listos o bloqueados.
Los procesos no pueden pasar por ellos mismos de listos a ejecución, es el S.O. el que decide cuando se pasa de listo a ejecutado.

Bloque De Control De Procesos

Cada proceso se encuentra representado en el S.O. mediante una estructura denominada “Bloque de Control de Procesos” o “PCB”, que contiene toda la información que se necesita saber sobre el proceso entre otras cosas debe guardar el estado actual del proceso.

Un BCP contiene muchos elementos de información asociados con un proceso específico, entre los que se incluyen:

Estado del proceso: El estado puede ser nuevo, en ejecución, en espera, etc.

Contador de programas: Contiene la dirección de la siguiente instrucción a ejecutar por el proceso.

Registro de CPU: Varían en cuanto a número y tipo, dependiendo de la arquitectura de la computadora. Incluye acumuladores, registro de índices, punteros de pila y registros de propósito general.

Información de planificación CPU: Incluye prioridad del proceso, apuntadores a colas de planificación, etc. (Información del algoritmo de planificación).

Información de gestión de memoria: Incluye información acerca del valor de los registros base y limites, las tablas de paginación o tablas de segmentos, dependiendo del mecanismo de gestión de memoria.

Información contable: Contiene información acerca de la cantidad de CPU y tiempos empleados, los límites de tiempo asignados, el número de trabajo o de proceso.

Información del estado de E/S: Esta información incluye, solicitudes pendientes de E/S, dispositivos de E/S asignados al proceso, etc.

HEBRAS (Hilos)

Los hilos son procesos ligeros que se componen de registros, un espacio de pila y un contador de programa.

Los hilos comparten su código ejecutable, su pila y los recursos que utiliza. Con el uso de hilos deja de ser necesaria la costosa conmutación de contexto de uno a otro

proceso.

Los hilos son especiales para realizar procesamiento paralelo, pero esto incurre en algunos problemas como la consistencia de datos, para lo que se usan distintos

mecanismos para solucionarlos como secciones críticas y cerraduras.

Los hilos pueden estar a nivel del núcleo del sistema operativo o a nivel de usuario.

Planificación de procesos

La planificación de procesos tiene como objetivos obtener siempre la mayor productividad, o la mayor cantidad de trabajos realizados en una unidad de tiempo, por Ejemplo: 77 procesos por hora.
El concepto de planificación podría llamarse al conjunto de políticas y mecanismos incorporados al sistema operativo por el que se rige el orden en el que se completa el trabajo que hay que realizar.

Con la planificación se pretende:
1. Justicia en el reparto de la CPU entre los diferentes usuarios.
2. Evitar la postergación indefinida de los procesos siempre dentro de la seguridad de las prioridades.
3. Logra la máxima capacidad de ejecución con el mayor número de usuarios interactivos.
4. Se busca el equilibrio del uso de los recursos y de la respuesta de utilización.
5. Se pretende poder discriminar procesos de tal manera que se permita dar mayor prioridad a aquellos procesos que tengan asignados recursos claves.

Se puede planificar a tres niveles distintos

- A alto nivel o de trabajo. Determinar a que trabajos se les va a permitir competir activamente por los recursos del sistema.
- A nivel intermedio. Discriminamos a qué procesos se les puede permitir competir por la C.P.U., siempre intentando conseguir el mayor rendimiento del sistema.
- A bajo nivel. Determina a que proceso de los que están listos se le va a asignar la C.P.U. al quedar ésta disponible.

Criterios de planificación


Los algoritmos de planificación deben tener en cuenta una serie de casos:
Utilización de la C.P.U., queremos que la C.P.U. se mantenga tan ocupada como sea posible.
Rendimiento, una medida del trabajo es el número de procesos que se completa por unidad de tiempo.
Tiempo de Retorno, sería la suma de los periodos transcurridos esperando entrar en la memoria, esperando en la cola de procesos listos, ejecutándose en la C.P.U. y efectuando operaciones de E/S.
Tiempo de espera, es el tiempo que el proceso espera en la cola de procesos listos.
El tiempo de respuesta, el tiempo transcurrido desde la presentación de una solicitud hasta que se produce la primera respuesta.

Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U.) y se intenta minimizar el tiempo de retorno, de respuesta y el de espera.

Colas De Planificacion

A medida que los procesos entran al sistema se colocan en una cola de trabajos que contiene todos los procesos del sistema.

Los procesos que residen en memoria principal y están preparados y en espera de ejecución se encuentran en la cola de procesos preparados (lista enlazada, contiene un puntero al primer y último PCB de la lista).

Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos preparados.

El sistema también incluye otras colas como son las colas de dispositivos.

Planificadores

Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de planificación. El SO como parte de la planificación debe seleccionar un proceso que se encuentran en las colas. Este proceso se lo realiza a través de un Planificador.

En un sistema de procesamiento por lotes, se envía más procesos de los que se puede ejecutar de forma inmediata. Estos procesos se guardan en dispositivos de almacenamiento masivo, donde se mantiene para su posterior ejecución.

Planificacion De Procesos

La clave de la multiprogramación es la planificación. Implica tres tipos de planificación.

Planificadores a largo plazo (Planificador de trabajos).- Decide si se añade al conjunto de programas a ser ejecutados.

Planificador a mediano plazo.- Decide si se añade al número de procesos que están total o parcialmente en memoria principal.

Planificadores a corto plazo (Planificador del CPU).- Decide cuál de los procesos disponibles ejecutará el proceador.

Cambio de Contexto

Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después.

El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para el cambio de contexto depende fundamentalmente del soporte hardware.

Operaciones básicas con procesos

Lo mínimo que se puede hacer con un proceso es:

Crearlo, darle un nombre o identificador, meterlo en la lista de procesos listos, asignarle una prioridad, crear el PCB y darle los recursos que necesite, etc..

Destruir un proceso, liberándose todos los recursos que tenía asignado el proceso. La prioridad del proceso sería la prioridad en el PCB.

Cambiarle la prioridad al proceso, modificar la prioridad en el PCB.

Bloquear un proceso, pasar de estado activo a bloqueado debido a que tiene que esperar a que suceda un evento.

Activar un proceso, cuando termina un evento por el que está esperando un proceso y se encontrase este bloqueado, entonces pasa este a listo.

Despachar un proceso, el procesador asigna el primer proceso que se encuentra en la lista de listos, pasando éste de estado listo a activo.

Comunicacion Interprocesos

Los procesos pueden ser:

Procesos independientes: Si no pude afectar o verse afectado por los restantes procesos del sistema.

Procesos cooperativos: Si puede afectar o verse afectado por otros procesos.

Hay varias razones para proporcionar un entorno que permita la cooperación entre procesos:

* Compartir información

* Acelerar los cálculos

* Modularidad.

* Conveniencia.

Los procesos Cooperativos requieren mecanismos de comunicación interprocesos (IPC). Que les permita intercambiar datos e información.

Existen dos modelos fundamentales de IPC.

1. Memoria Compartida

2. Paso de mensajes.

Sistemas de memoria compartida

La comunicación interprocesos que emplea memoria compartida requiere que los procesos que se estén comunicando establezcan una región de memoria compartida. El SO evita que otro proceso pueda ingresar a direcciones de memoria de otro proceso, por cual los procesos cooperativos deben eliminar esta restricción.

Sistemas de Paso de Mensajes

La comunicación tiene lugar mediante el intercambio de mensajes entre los procesos cooperativos.

Proporciona un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones sin compartir el mismo espacio de direcciones. Una facilidad de paso de mensajes proporciona al menos dos operaciones: en vio de mensajes y recepción de mensajes.

Existen métodos para implementar lógicamente un enlace y las operaciones de envío y recepción:

Comunicación directa o indirecta.

Comunicación síncrona o asíncrona.

Almacenamiento en búfer explicito o automático.

Nombrado

Comunicación directa: se envía un mensaje de un proceso a otro cuyos parámetros son nombre de proceso y mensaje. Su sintaxis es: enviar(procesoP,mensaje) y recibir(procesoQ,mensaje)

Comunicación indirecta: el mensaje se envía a un buzón de mensajes. La sintaxis es: enviar(buzón,mensaje) y recibir(buzón,mensaje). Cada proceso tiene un buzón propio y este se puede implementar a través de un buffer, que puede ser de capacidad cero, capacidad limitada, o capacidad ilimitada.

En todos los casos el sistema operativo o el subsistema de comunicación entre procesos (IPC) deben asegurar la consistencia y la correctitud de los mensajes. Para esto se pueden implementar sumas de verificación (checksum) o similares.

Sincronización

Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos.

Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por vez, así nos aseguramos que los datos quedan consistentes.

Almacenamiento en búfer

Los mensajes intercambiados por los procesos que se están comunicando residen en una cola temporal, tales colas se pueden implementar de tres maneras:

Capacidad Cero: La longitud máxima es de cero; por lo cual no hay ningún mensaje esperando en el enlace.

Capacidad Limitada: Tiene una longitud finita n; por lo cual hay n mensajes esperando.

Capacidad ilimitada: La longitud es infinita, por lo cual puede haber infinitos mensajes esperando en la cola.

Resumen de cap. 3 : POR Esteban Chamba Jiménez

Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>

Otras Referencias

STALLINGS Organización y arquitectura de computadores.

http://www.alipso.com/monografias4/Sist_operativos/




CAPÍTULO I (Materia: SISTEMAS OPERATIVOS)

El Sistema Operativo

Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación.

El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios, por ello se suele decir que es la interfaz de comunicación entre el hardware y el usuario.

Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios.

Punto de vista del usuario.

Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos.

En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde.

Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.

Vista del usuario.

Desde el punto de vista de la computadora, el OS está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos.

Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.

Organizacion de una computadora

Funcionamiento.- Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM (read only memory), o en la memoria EEPROM (electrically erasable programable read-only-memory), y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema opertarivo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso.

La ocurrencia de un suceso normalmente se indica mediante una interrupción.

Interrupción.- Da paso a un suceso, puede ser de hardware o de software. Cuando se interrumpe a la CPU, deja lo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada.

Estructura de almacenamiento.- Los programas de computadora deben hallarse en la memoria principal (RAM - Random Access Memory) para ser ejecutados. El procesador puede acceder directamente a ésta.

La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se quita la alimentación (corriente eléctrica), normalmente la memoria principal es demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente.

Por esta razón la mayor parte de los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal, aquí se almacenan grandes cantidades de datos de forma permanente.

Estructura de E/S.- Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos.

Los dispositivos de E/S se pueden clasificar en:

De interacción con e usuario.-Permiten la comunicación con el usuario del computador.

De interacción con máquinas: Permite la comunicación con elementos del equipo.

De comunicación.- Permite la comunicación con dispositivos remotos.

Arquitectura de un sistema informático

Sistemas Multiprocesador.- En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

Sistemas Multiprocesador.- Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos.

Sistemas en clúster.- Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados.

Las computadoras en clúster comparten el almacenamiento y se conectan entre sí a través de una LAN.

Normalmente la conexión en clúster se usa para proporcionar un servicio con alta disponibilidad, es decir un servicio que funcionará incluso si uno o más sistemas del clúster fallaran.

Estructura de un Sistema Operativo

Uno de los aspectos más importantes de los sistemas operativos es la capacidad para multi-programar.

Multiprogramación.- Permite organizar la ejecución de los trabajos a fin de mejorar el aprovechamiento de la CPU. Por ejemplo, al solicitar un trabajo E/S, mientras ésta se realiza se selecciona otro trabajo para ejecutarlo.

Sistemas Multitarea (tiempo compartido).- Pueden ejecutar varias tareas simultáneamente (o cuasi-simultáneamente), aprovechando los tiempos ociosos de la CPU. Alternan entre varias tareas, las que se procesan en partes durante pequeños intervalos de tiempo (quantums).

Operaciones Del So

Los SO están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo.

Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando.

Un SO diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.

Operación en modo dual

Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario.

Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario.

El modo dual de operaciones nos proporciona los medios para proteger el sistema operativo de los usuarios que puedan causar errores, y también para proteger a los usuarios de los errores de otros usuarios. Esta protección se consigue designando algunas de las instrucciones de máquina que pueden causar daño como instrucciones privilegiadas. Cuando se ejecuta una llamada al sistema, el hardware la trata como una interrupción software.

Temporizador

Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor.

Gestión de Procesos

Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario.

Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente.

Gestión de memoria.- Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema.

La gestión de memoria es una tarea, cuya responsabilidad recae en el SO.

Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.

Gestión de Almacenamiento

Gestión del sistema de archivos

La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. Algunos SO de red permiten montar los sistemas de archivos de otras computadoras en directorios comunes.

Entre las estructuras que puede tener tenemos: estructura arbórea, grafo acíclico y grafo general. La estructura arbórea es la más sencilla de implementar. Internamente el disco está dividido en bloques físicos (por ej: 512 bytes) y bloques lógicos o clusters (por ej: 4KB). Es bueno que los clúster sean múltiplo del tamaño de los bloques físicos, por razones de eficiencia.

En la estructura de un sistema de archivos tenemos que considerar que, al igual que con la memoria principal, siempre se produce algo de fragmentación, que puede ser interna (dentro de cada clúster o bloque) o externa (entre archivos).

Cada nodo de la estructura se llama archivo o directorio, y tiene un nombre lógico que está directamente relacionado con una posición física dentro del disco. Es responsabilidad de este sistema recuperar los datos dado un nombre de archivo y su ruta de acceso. Esto lo hace usando tablas o punteros.

Por ejemplo el archivo c:materiasoperativos.doc está vinculado con la ubicación 227E-5294-FF12-437D dentro del disco.

Gestión del almacenamiento masivo

La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático. El sistema operativo es responsable de las siguientes actividades:

Gestión del espacio libre

Asignación del espacio de almacenamiento

Planificación del disco

El almacenamiento terciario no es crucial para el rendimiento del sistema, aunque también es necesario gestionarlo, algunos SO realizan esta tarea, mientras que otros dejan el control de almacenamiento terciario a los programas de aplicación.

Sistemas de E/S

Uno de los propósitos de un sistema operativo es ocultar al usuario las peculiaridades de los dispositivos hardware específico. El subsistema de E/S consta de varios componentes:

Un componente de gestión de memoria que incluye almacenamiento en búffer, gestión de caché y gestión de colas.

Una interfaz general para controladores de dispositivo.

Controladores para dispositivos hardware específicos.

Almacenamiento en Cache

Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos. Los tipos de buffers son:

· buffer sencillo

· buffer doble

· circular

La función de la caché es similar a la de los buffers, pero está implementada con circuitos de muy alta velocidad y tienen algunas ventajas tecnológicas como la búsqueda por asociación (que busca en muchas entradas al mismo tiempo).

Nos puede ser muy útil para mejorar el rendimiento poner partes del sistema de archivos en la caché, y cualesquier otros datos que usemos con frecuencia.

Protección y Seguridad

Un mecanismo que controla el acceso de procesos y usuarios a los recursos definidos por un sistema informático. Los mecanismos de protección pueden mejorar la fiabilidad, permitiendo detectar errores en las interfaces entre componentes del sistema.

Un sistema con protección tiene la capacidad de distinguir entre un uso autorizado y no autorizado. Un sistema puede tener la protección adecuada pero estar expuesto a fallos y permitir accesos inapropiados.

Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos y los ataques incluyen virus, gusanos, denegación de servicios, etc.

La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios y grupos de usuarios.

Sistemas Distribuidos

Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red.

Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red.

Sistemas de Propósito General

Sistemas embebidos en tiempo real

Computadoras predominantes actualmente (motores de automóviles, robots para fabricación), tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware.

Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser:

• De propósito general que ejecuta sistemas operativos estándar, con aplicaciones de propósito especial para implementar la funcionalidad.

• Sistemas de hardware con sistemas operativos embebidos de propósito especial que sólo proporcionan la funcionalidad deseada.

Dispositivos de hardware con circuitos integrados específicos de la aplicación, que realizan sus tareas sin ningún SO.

Sistemas Multimedia

La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia.

Las aplicaciones multimedia incluyen archivos de audio, películas de DVD, videoconferencia, webcats.

Sistemas de Mano

Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño.

Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.

Entornos informáticos

Sistema informático tradicional

Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos.

Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.

Estructuras De Sistemas Operativos

El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.

Un cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario:

Interfaz de usuario.- tipos existentes es la interfaz de línea de comandos, que usa comandos de texto, otro tipo es la interfaz de proceso por lotes. Habitualmente se utiliza una interfaz grafica de usuario.

Ejecución de programas.- Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario.

Operaciones de E/S.- Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras.

Manipulación del sistema de archivos.- los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios.

Comunicaciones.- los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes.

Detección de errores.- El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario.

Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están:

Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general.

Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en que cantidad.

Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.

Interfaz de usuario del sistema operativo

Interprete de comandos

Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión.

Interfaz grafica de usuario

Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón.

Permite que el usuario interactue con el Sistema Operativo a través de una interfaz

Llamadas al sistema

Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO.

Programas del sistema

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.

Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos.

Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario.

Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos.

Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java).

Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse.

Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores.

Diseño e implementación del sistema operativo

Objetivos del diseño

Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido.

Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente.

Mecanismos y políticas

Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer.

La separación de políticas y mecanismos es importante por cuestiones de flexibilidad.

Implementación

Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++.

La Ventajas de usar un lenguaje de alto nivel:

El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar.

Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.

Estructura del sistema operativo

Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas.

Estructura simple

Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa.

El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años. El kernel proporciona el sistema de archivos, los mecanismos de planificación de la CPU, la funcionalidad de gestión de memoria y otras funciones del sistema operativo, a través de las llamadas al sistema.

Estructura en niveles

El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora.

Los niveles se seleccionan de manera que cada uno usa sus funciones y servicios de los niveles inferiores. Un nivel no necesita saber cómo se implementan las operaciones solo necesitan saber que hacen esas operaciones. Un problema con la implementación por niveles es que tiende a ser menos eficientes a ser menos que otros tipos de implementación

Microkernels

Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones.

Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel.

Los microkernel pueden tener un rendimiento peor que otras soluciones debido a la carga de procesamiento adicional impuesta por las funciones del sistema.

Módulos

La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.

Maquinas Virtuales

La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada.

Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO.

Implementación

Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual.

Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se este ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real.

Beneficios

Existe una protección completa de los diversos recursos del sistema. Cada maquina esta completamente aislada de las demás, por lo que no existen problemas de protección. Un sistema de maquina virtual es un medio perfecto para la investigación y el desarrollo de SO.

Ejemplos

VMware

Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes.

Máquina Virtual Java:

La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web.


Resumen de cap1 y 2 : POR Esteban Chamba Jiménez

Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>

Otras Referencias

STALLINGS Organización y arquitectura de computadores.

PUENTE P. Andrés G. Universidad del BíoBío

http://www.alipso.com/monografias4/Sist_operativos/




Por: 20-04-2009 por lmanuelandres | Categorías asociadas: Capitulo 1-2, Paralelo "A", Pelicula

Por: Andres Laguapillo

Resumen de la pelicula

El término Silicon Valley fue acuñado por el periodista Don C. Hoefler en 1971. Silicon (Silicio), alude a la alta concentración de industrias en la zona, relacionadas con los semiconductores y las computadoras; Valley se refiere al Valle de Santa Clara, aunque se podría también aplicar a los alrededores, a ambos lados de la bahía, hacia los que muchas de estas industrias se han expandido. Durante muchos años de la década de los 70 y 80 se le llamó incorrectamente Silicone americana.

los_piratas_de_silicon_valley

Es un docudrama no autorizado escrito y dirigido por Martyn Burke. Basado en el libro Fire in the Valley: The Making of a Personal Computer, de Paul Freiberger y Michael Swaine. Este film documenta los comienzos de la computadora personal a través de la rivalidad entre Apple Computer (Apple II, Apple Lisa y la Apple Macintosh) y Microsoft (MITS Altair, DOS, IBM PC, y Windows).

La historia central del film comienza a principios de los años 70, y termina en 1985, con un brindis por el cumpleaños de Steve Jobs, poco antes de ser despedido de Apple Computer por su compañero John Sculley.

Steve Jobs y Bill Gates son los verdaderos revolucionarios de nuestra época. No los estudiantes que ocuparon la oficina del decano a finales de los ‘60. No los pacifistas que estaban determinados a derrocar el establecimiento. Jobs y Gates son quienes cambiaron el modo de pensar, actuar y comunicar del mundo - responde a la pregunta “¿Por qué estos dos ‘nerds’ se convirtieron en iconos?” en una entrevista con el director del film, Martyn Burke.

SISTEMAS OPERATIVOS (CAPITULO I,II)

Un sistema operativo es un software base que controla los procesos del hardware de una computadora. Permite organizar los archivos en diversos dispositivos de almacenamiento, además de gestionar posibles errores de hardware y la pérdida de datos.

Para la normal ejecución de un programa, este debe encontrarse en la memoria principal (RAM). Ya que es un área de almacenamiento de gran tamaño a la que el procesador puede acceder fácilmente mediante la tecnología DRAM (dynamic random-acces memory).

Un sistema informático se puede diseñar de diferentes maneras, las cuales se clasifican de acuerdo al número de procesadores. Los sistemas monoprocesadores en su mayoría constan de un solo procesador en donde existe un CPU capaz de ejecutar un conjunto de instrucciones de propósito general e instrucciones de los procesos de usuario. Así mismo podemos mencionar que los sistemas multiprocesadores disponen de dos o más procesadores que se comunican entre si, aunque operan independientemente unos de otros, entre sus ventajas se encuentran: Mayor rendimiento, Economía de Escala y Mayor fiabilidad. Mientras que los sistemas conectados en cluster pueden compartir almacenamiento y se conectan entre si a través de una Red LAN.

Una de las características más destacadas de los sistemas operativos es la capacidad para la multiprogramación, la cual incrementa el uso de la CPU organizando los trabajos, asegurando por tanto que esta siempre tenga un trabajo que ejecutar. Dentro de la multiprogramación se puede citar el tiempo compartido o multitarea, el cual permite que la CPU ejecute múltiples trabajos al mismo tiempo.

Los sistemas operativos gestionan una correcta operación del sistema informático, para impedir que existan excepciones que interfieran con el funcionamiento del sistema.

Un proceso necesita llevar a cabo su tarea utilizando ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. La gestión de procesos se basa en la creación y borrado de procesos, proporcionar mecanismos para que los procesos establezcan comunicación y sincronización entre sí.

El sistema operativo en cuanto a su gestión de memoria hace un seguimiento de que partes de la misma están siendo usadas y por quién. Así mismo la gestión de archivos en cuanto a su almacenamiento.

La protección y seguridad de un sistema operativo es indispensable, ya que defienden el sistema de ataques internos o externos al controlar el acceso de procesos y el uso de ciertos recursos autorizados mediante mecanismos definidos por el sistema.

Entre los tipos básicos de redes se establecen las LAN que permiten la conexión de un conjunto de procesadores dentro de una Área pequeña y las WAN que permiten una conexión mucho más extensa, pero más lenta que las LAN.

Existen diferentes clases de sistemas informáticos que son de propósitos específicos. Entre ellos se encuentran los Sistemas Embebidos, Sistemas multimedia y Sistemas de mano.

Los Sistemas Embebidos en tiempo real que ejecutan sistemas operativos bajo rígidos requisitos de tiempo en la operación de un procesador, o el sistema fallará.

Los Sistemas Multimedia gestionan el suministro de datos multimedia (mp3 y videos) u muchas veces un software capaz de reproducirlos.

Dentro del entorno informático se citan: Sistema informático tradicional, Sistema cliente-servidor, Sistema Entre iguales y los modernos Sistemas basados en la Web.

ESTRUCTURAS DE SISTEMAS OPERATIVOS

Un sistema operativo proporciona una se Read the rest of this entry »




Por: 15-04-2009 por Jhonny Zaruma | Categorías asociadas: Capitulo 1-2, Paralelo "A"

Jhonny Zaruma

CAPITULO 1

SISTEMAS OPERATIVOS

Un sistema operativo es un software que gestiona el hardware de la computara y proporciona un entorno para ejecutar los programas de aplicación.

En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.

Un sistema operativo está formado por componentes que se dividen en los siguientes módulos:

GESTIÓN DE PROCESOS

Un proceso es un programa en ejecución que para realizar su tarea necesita recursos. El sistema operativo es el encargado de las siguientes actividades en la gestión de procesos:

· Crear y borra los procesos de usuario y del sistema

· Suspender y reanudar los procesos

· Proporcionar mecanismos para la sincronización de procesos

· Proporcionar mecanismos para la comunicación entre procesos

· Proporcionar mecanismos para el tratamiento de los interbloqueos

GESTIÓN DE MEMORIA

Es muy importante en la operación de un sistema informático. La memoria es una gran tabla de  bytes que tiene una dirección única con la cual se referencia. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, no es constante y pierde su contenido en los fallos del sistema. El sistema operativo es el encargado de las siguientes actividades:

· Controlar que partes de la memoria están actualmente en uso y por parte de quien

· Decidir qué datos y procesos añadir o extraer de la memoria.

· Asignar y liberar la asignación de espacio de memoria según sea necesario.

GESTIÓN DE ALMACENAMIENTO

Un sistema de almacenamiento es muy necesario, ya que la memoria principal es inconstante y también es  muy pequeña para almacenar todos los datos y programas. También es necesario mantener los datos que no convenga mantener en la memoria principal.

· El sistema operativo es responsable de:

· Creación y borrados de archivos

· Creación y borrado de directorios para organizar los archivos

· Soporte de primitivas para manipular archivos y directorios

· Asignación de archivos a los dispositivo de almacenamiento secundario

· Gestión del espacio libre

· Asignación del espacio de almacenamiento

· Planificación del disco

SISTEMAS DE E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

El subsistema de E/S consta de varios componentes:

· Un componente de gestión de memoria que incluye almacenamiento en buffer, gestión de caché y gestión de colas.

· Una interfaz general para controladores de dispositivo.

· Controladores para dispositivos hardware específicos.

SISTEMAS DE PROTECCIÓN Y SEGURIDAD

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El sistema operativo se encarga de:

· Distinguir entre uso autorizado y no autorizado.

· Especificar los controles de seguridad a realizar.

· Forzar el uso de estos mecanismos de protección.

SISTEMA DE COMUNICACIÓN

· Gestionar los accesos a la red.

· Conexión a través de la red de los distintos procesadores.

· Acceso a los recursos compartidos.


CAPITULO 2

ESTRUCTURAS DE SISTEMAS OPERATIVOS

Un sistema operativo proporciona el entorno en el que se ejecuta los programas. Internamente, los Sistemas Operativos varían mucho en su composición dado que se organización puede analizarse aplicando múltiples criterios diferentes. El diseño de un sistema operativo es una tarea de gran envergadura, siendo fundamental que los objetivos del sistema estén bien establecidos.

Podemos ver al sistema operativo desde varios puntos de vista. Uno de ellos se centra en los servicios que el sistema proporcional, otro en la interfaz disponible para los usuarios y programadores y diseñadores del sistema operativo.

SERVICIOS DEL SISTEMA OPERATIVO

El sistema presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan

Funciones útiles para el usuario:

Interfaz de usuario (UI, user interface), que puede tomar muchas formas.

· Interfaz de línea de comando (CLI, command-line interface), usa comandos de textos, y un programa que permite introducir y editar los comandos.

· Proceso de lotes, cuando los comandos y las directivas para controlarlos se introducen archivos, luego estos archivos se ejecutan.

· Interfaz grafica de usuario (GUI, graphical user interfaces), un sistemas de ventanas con un dispositivos señalador para dirigir la entrada y salida, para elegir opciones en el menú.

Ejecución de programas. El sistema tiene que poder cargar un programa en memoria y ejecutar dicho programa

Operaciones de E/S. Un programa en ejecución puede necesitar llevar a cabo operaciones de E/S, dirigidas a un dispositivo de E/S. Para ciertos dispositivos específicos puede ser deseable disponer de funciones especiales.

Manipulación de sistemas de archivos. Los programas necesitan leer y escribir en archivos y directorios. También necesitan crearlos y borrarlos utilizando su nombre, realizar búsquedas en un determinado archivo o presentar la información.

Comunicaciones. La comunicación debe tener lugar entre procesos que estén ejecutándose en la misma computadora o en computadoras diferentes conectadas a trabes de la red. Se pueden implementar utilizando memoria compartida o mediante paso de mensajes.

Detección de errores. El sistema operativo necesita detectar continuamente los distintos errores. Estos errores pueden producirse en el hardware del procesador y de memoria en un dispositivo de E/S o en los programas de usuarios. Para cada tipo de error el usuario debe llevar a cabo una acción apropiada para asegurar un funcionamiento correcto y coherente.

Asignación de recursos. Cuando hay varios usuarios o existen varios trabajos ejecutándose al mismo tiempo, debe asignar a cada uno de ellos los recursos necesarios.

Responsabilidad. Conviene registrar de que usuarios emplean la computadora y que recursos emplean a fines contables o para estadísticas de uso. Que sería una herramienta valiosa para aquellos investigadores que deseen configurar los sistemas para mejorar los servicios informáticos.

Protección y seguridad. Los propietarios de la información almacenada en un sistema de computadora en red o multiusuario necesitan a menudo poder controlar el uso de dicha información. La protección implica que todos los accesos a los recursos del sistema estén controlados.

INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO

INTÉRPRETE DE COMANDOS

Algunos sistemas operativos incluyen el intérprete de comandos en el kernel. Otros como Windows y XP y Unix lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o cuando un usuario inicia sesión. En los sistemas que dispones entre varios interpretes entre los que elegir, los intérpretes se conocen como shells.

La función principal del intérprete de comando es obtener y ejecutar el sistema comando especificado por el usuario. Uno de los métodos consiste en que el propio intérprete de comandos contiene el código que el comando tienen que ejecutar. Un método alternativo utilizado por Unix es y otros sistemas operativos, implementa la mayoría de los comandos a través de una serie de programas de sistema.

INTERFAZ GRÁFICA DE USUARIO

Una segunda estrategia para interactuar con el Sistema Operativo es atreves de una interfaz grafica de usuario (GUI) suficientemente amigable. Permite al usuario implementar una serie ventanas y menús controlables mediante el ratón, proporciona una especie de escritorio en el cual el usuario mueve el ratón para colocar su puntero sobre images, iconos que se muestra en la pantalla.

LLAMADAS AL SISTEMA

Proporcionan una interfaz con la que podemos invocar los servicios que le sistema operativo ofrece. Estas llamadas están disponibles como rutinas escritas en C y C++, aunque determinadas tareas de bajo nivel, como por ejemplo aquellas en las que se tiene que acceder directamente al hardware, pueden necesitar escribirse con instrucciones de lenguaje ensamblador.

Los diseñadores de aplicación diseñan sus programas utilizando API (aplication programming interface, interfaz de programa de aplicacion) especifica un conjunto de funciones que el programador de aplicaciones puede usar, indicando los parámetros que hay que pasar a cada función y los valores de retorno que el programa debe esperar.

TIPOS DE LLAMADAS AL SISTEMA

Las llamadas al sistema pueden agruparse de forma muy general en cinco categorías principales.

· Control de procesos

· Terminar, abortar

· Cargar, ejecutar

· Crear procesos, terminar procesos

· Obtener atributos del proceso, definir atributos del proceso

· Esperar para obtener tiempo

· Esperar suceso, señalizar suceso

· Asignar y liberar memoria

· Administración de archivos

· Crear archivos, borrar archivos

· Abrir, cerrar

· Leer, escribir, reposicionar

· Obtener atributos de archivo, definir atributos de archivos

· Administración de dispositivos

· Solicitar dispositivos, liberar dispositivos

· Leer, escribir, reposicionar

· Obtener atributos de dispositivos, definir atributos de dispositivos

· Conectar y desconectar dispositivos lógicamente

· Mantenimiento de información

· Obtener la hora y la fecha, definir la hora y la fecha

· Obtener datos del sistema, establecer datos del sistema

· Obtener los atributos de procesos, archivos o dispositivos

· Establecer los atributos de procesos, archivos o dispositivos

· 5. Comunicaciones

· Crear, eliminar, conexiones de comunicación

· Enviar, recibir mensajes

· Trasferir información de estado

· Conectar y desconectar dispositivos remotos

PROGRAMAS DEL SISTEMA

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas. Algunos de ellos son, simplemente, interfaces de usuario para las llamadas del sistema; otros son considerablemente más complejos. Pueden dividirse en las siguientes categorías.

· ·Administración de archivos

· Información de estado

· Modificación de archivos

· Soporte de lenguajes de programación

· Carga y ejecución de programas

· Comunicaciones

DISEÑO E IMPLEMENTACIÓN DEL SISTEMA OPERATIVO

Objetivos del diseño.- el primer problema es la definición concreta de los objetivos y especificaciones, este se puede dividir en dos grupos básicos: objetivos del usuario y objetivos del sistema.

Mecanismos y políticas.- Es importante separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo; las políticas determinan que haces. El temporizador en un mecanismo para asegurar la protección de la CPU, pero la decisión de cuáles deben ser los datos de temporización para un usuario concreto es una decisión de políticas.

Implementación.- Una vez que se ha diseñado un sistema operativo debe implementarse. Tradicionalmente los sistemas operativos tenían que escribirse en lenguajes ensambladores. Sin embargo hoy se escriben en lenguajes de alto nivel como C o C++.

ESTRUCTURA DEL SISTEMA OPERATIVO

La ingeniería de un sistema tan grande y complejo como un sistema operativo moderno debe hacerse cuidadosamente para que le sistema funcione apropiadamente y pueda modificarse con facilidad. Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un sistema monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas salidas y funciones cuidadosamente especificadas.

MÁQUINAS VIRTUALES

La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución está operando en su propia computadora privada.

Con los mecanismos de ejecución de la CPU y las técnicas de memoria virtual un sistema operativo puede crear la ilusión de que un proceso tiene su propio con su propia memoria. Normalmente un proceso utiliza características adicionales.

IMPLEMENTACIÓN

Aunque el concepto de maquina virtual es muy útil, resulta difícil de implementar. Es preciso realizar un duro trabajo para proporcionar un duplicado exacto de la maquina subyacente. La maquina subyacente tienen dos modos: modo usuario y modo kernel. El software de la máquina virtual puede ejecutarse en modo kernel, dado que el sistema operativo; la maquina virtual puede ejecutarse en modo usuario y un modo kernel virtual ejecutándose ambos en modo usuario físico.

BENEFICIOS

El concepto de maquina virtual presenta varias ventajas. Observe que, en este tipo de entornos, existe una protección completa de los diversos recursos del sistema. Cada máquina virtual está completamente aislada de las demás, por lo que no existe problema de protección. Sin embargo no es posible la compartición directa de recursos. Se han implementado dos métodos para permitir dicho comportamiento. El primero es posible compartir un minidisco y por tanto compartir los archivos. En segundo lugar es posible definir una red de maquinas virtuales, pudiendo cada una de ellas enviar información a través de una red de comunicaciones virtuales.

GENERACIÓN DE SISTEMAS OPERATIVOS

Es posible diseñar, codificar e implementar un sistema operativo específicamente para una maquina concreta en una instalación determinada. Sin embargo lo más habitual es que el sistema operativo se diseñe para ejecutarse en cualquier clase de máquina y en diversas instalaciones, con una amplia variedad de configuraciones de periféricos. El sistema debe entonces configurarse o generarse para cada computadora en concreto, un proceso que se conoce como generación del sistema

· ¿Qué CPU va usar?

· ¿Qué cantidad de memoria hay disponible?

· ¿Qué dispositivos se encuentran instalados?

· ¿Qué opciones del sistema operativo se desea o que valores o parámetros de va a usar?

ARRANQUE DEL SISTEMA

Una vez desarrollado un sistema operativo debe ponerse disposición del hardware para su uso, ¿sabe el hardware donde está el kernel o como cargarlo?

El procedimiento de iniciación de una computadora mediante el kernel se llama arranque del sistema. En la mayoría de los sistemas informáticos una pequeña parte del código conocida como programa de arranque o cargador de arranque, se encarga de localizar el kernel lo carga a memoria principal e inicia su ejecución.




Por: 14-04-2009 por »¦«EÐU@®ÐO»¦« | Categorías asociadas: Capitulo 1-2

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos.

Los sistemas operativos, nos posibilitan y simplifican el manejo de la computadora, el cual nos permite desempeñar  una serie de funciones básicas esenciales para la gestión del equipo.

Las principales carateristicas del sistema operativo son:

  • Proporcionar más comodidad en el uso de un computador.
  • Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
  • Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
  • Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).

Interfaces del usuario

Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.

Administración de recursos

Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos

Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tareas

Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.

Servicio de soporte

Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre, como GNU/Linux o BSD producidas por empresas, universidades, administraciones públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo.

Estos servicios de soporte suelen consistir en:

  • Actualización de versiones.
  • Mejoras de seguridad.
  • Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para administrar alguna determinada función, …).
  • Controladores para manejar nuevos periféricos (este servicio debe coordinarse a veces con el fabricante del hardware).
  • Corrección de errores de software.
  • Otros.

Sistemas con almacenamiento temporal de E/S

Se avanza en el hardware, creando el soporte de interrupciones. Luego se lleva a cabo un intento de solución más avanzado: la E/S de un trabajo con sus propios cálculos. Por ello se crea el sistema de buffers con el siguiente funcionamiento:

  • Un programa escribe su salida en un área de memoria (buffer 1).
  • El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula depositando la salida en el buffer 2.
  • La salida desde el buffer 1 termina y el nuevo cálculo también.
  • Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
  • El proceso se puede repetir de nuevo.

Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S).

Spoolers

Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).

Sistemas Operativos Multiprogramados

Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:

  • Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.
  • Se pueden mantener en memoria varios programas.
  • Se asigna el uso de la CPU a los diferentes programas en memoria.

Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:

  • Administrar la memoria.
  • Gestionar el uso de la CPU (planificación).
  • Administrar el uso de los dispositivos de E/S.

Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.

Llamadas al Sistema Operativo

Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.

Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz. Para ello:

  • Las llamadas correspondientes deben tener el mismo formato.
  • Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior.

Modos de ejecución en un CPU

Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:

  • Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones.
  • Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.

Llamadas al Sistema

Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación.

Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y la recuperación del modo anterior en el retorno).

Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido, distintas de las que se usan para las llamadas de función.

Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación.

La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema.

Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:

  • Algún dispositivo de E/S necesita atención.
  • Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.

Según los dos casos anteriores tenemos las interrupciones y la excepciones:

  • Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.
  • Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Tratamiento de las interrupciones

Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso.

El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.

Importancia de las interrupciones

El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S.

El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando.

En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).

Excepciones

Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razones:

  • El código de operación puede ser incorrecto.
  • Se intenta realizar alguna operación no definida, como dividir por cero.
  • La instrucción puede no estar permitida en el modo de ejecución actual.
  • La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.

Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.

Componentes de un sistema operativo

Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:

  • Crear y destruir los procesos.
  • Parar y reanudar los procesos.
  • Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

Gestión de la memoria principal

La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

  • Conocer qué partes de la memoria están utilizadas y por quién.
  • Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
  • Asignar y reclamar espacio de memoria cuando sea necesario.

Gestión del almacenamiento secundario

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:

  • Planificar los discos.
  • Gestionar el espacio libre.
  • Asignar el almacenamiento.

El sistema de E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

Sistema de archivos

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:

  • Construir y eliminar archivos y directorios.
  • Ofrecer funciones para manipular archivos y directorios.
  • Establecer la correspondencia entre archivos y unidades de almacenamiento.
  • Realizar copias de seguridad de archivos.

Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor.

Sistemas de protección

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:

  • Distinguir entre uso autorizado y no autorizado.
  • Especificar los controles de seguridad a realizar.
  • Forzar el uso de estos mecanismos de protección.

Sistema de comunicaciones

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Programas de sistema

Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

  • Manipulación y modificación de archivos.
  • Información del estado del sistema.
  • Soporte a lenguajes de programación.
  • Comunicaciones.

Gestor de recursos

Como gestor de recursos, el Sistema Operativo administra

  • La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
  • Los dispositivos de E/S (entrada y salida)
  • La memoria principal (o de acceso directo).
  • Los discos (o memoria secundaria).
  • Los procesos (o programas en ejecución).

Componentes del Sistema Operativo

Características

Administración de tareas

  • Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
  • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios

  • Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
  • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos

  • Centralizado: Si permite utilizar los recursos de una sola computadora.
  • Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos… ) de más de una computadora al mismo tiempo.





Por: 08-04-2009 por luisedurobles | Categorías asociadas: Capitulo 1-2, Paralelo "A"

PELICULA “PIRATAS DEL SILICON VALLEY”

Esta película es un documental sobre los inicios de Apple y Microsoft y como definieron (Steve Jobs y Bill Gates) el futuro de una época. No siempre de manera limpia, por supuesto. Por si acaso.

Una de las películas que todo aficionado a la informática, y en especial a Apple, tiene que ver es sin lugar a duda Piratas de Silicon Valley. Trata de la historia de unos jóvenes Stever Jobs, Steve Wozniak (creadores de Apple Computer Inc) y Bill Gates, Paul Allen y Steve Ballmer (creadores de MicroSoft) y de como crean lo que hoy en día son dos de las empresas más importantes en el mundo de la informática, si no las más grandes.

Es bastante interesante ya que es la historia real, tal y como sucedío y por ello te das cuenta que Steve Jobs tuvo en sus manos, en cierta medida, a Microsoft, y que si se hubiera dado cuenta, ahora las cosas serían muy distintas. Por si no conocéis la historia, Bill se aprovechó de la buena fe de Steve Jobs y le copió su sistema operativo, creando el tan conocido Windows.

RESUMEN CAPITULO 1

Un sistema operativo software que gestiona al hardware de la computadora y proporciona un entorno para ejecutar los programas de aplicación y actúa como un sistema intermedio entre el usuario y el hardware de la computadora.

Para que la computadora haga su trabajo de ejecutar programas, los programas deben encontrarse en la memoria principal. La memoria es la única área de almacenamiento de gran tamaño que va de millones a millones de millones de posiciones distintas. Cada palabra de la memoria tiene su propia dirección. Normalmente, la memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se desconecta o desaparece la conexión. La mayoría de los sistemas informáticos proporcionan un almacenamiento secundario como la extensión a la memoria principal. El almacenamiento secundario más común es el disco magnético, que proporciona un sistema de almacenamiento para programas y datos.

La amplia variedad de sistemas de almacenamiento en el sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que se desciende por la jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por regla general aumenta.

Existen varias estrategias diferentes para diseñar un sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que desciende por jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por la regla general aumenta.

Los sistemas monoprocesador solo disponen de un procesador, mientras que los sistemas multiprocesador tienen dos o más procesadores que comparten la memoria física y los dispositivos periféricos. El diseño multiprocesador mas común es el multiprocesador simétrico (o SMP) , donde todos los procesadores se conectan iguales y operan independientemente unos de todos los procesadores se consideran iguales y operan independientemente unos de otros. Los sistemas conectados en clúster constituyen una forma especializada de sistemas multiprocesador y constan de múltiples computadoras conectadas mediante una red de área local.

El sistema operativo debe asegurar la correcta operación del sistema informático. Para impedir que los programas de usuario interfieran con el apropiado funcionamiento de sistema, el hardware soporta dos modos de trabajo: modo usuario y modo kernel. Diversas instrucciones, como las instrucciones de E/S y las instrucciones de espera, son instrucciones privilegiadas y solo se pueden ejecutar en modo kernel. La memoria en la que el sistema operativo reside debe protegerse frente a modificaciones por parte del usuario. Un temporizador impide los bucles infinitos. Estas características (modo dual, instrucciones privilegiadas, protección de memoria e interrupciones del temporizador) son los bloques básicos que emplea el sistema operativo para conseguir un correcto funcionamiento. Un proceso (o trabajo) es la unidad fundamental de trabajo en un sistema operativo. La gestión de procesos incluye la creación y borrado de procesos y proporciona mecanismos para que los procesos se comuniquen y sincronicen entre si. El sistema operativo gestiona la memoria haciendo un seguimiento de que partes de la misma esta siendo usadas y por quien. El sistema operativo también es responsable de la asignación dinámica y liberación del espacio de memoria.

El sistema operativo también debe ocuparse de la protección y seguridad del propio sistema operativo y de los usuarios. Los sistemas distribuidos permiten a los usuarios los recursos disponibles en una serie de host dispersos geográficamente, conectados atravéz de una red de computadoras. En un sistema en clúster, las múltiples maquinas pueden realizar cálculos sobres los datos que residen en el sistema de almacenamiento compartido y los cálculos sobre los datos que residen en sistemas de almacenamiento compartido y los cálculos pueden continuar incluso cuando algunos subconjuntos de los miembros del clúster falle.

Las LAN y WAN son los dos tipos de básico de redes. La LAN permite que un conjunto de procesadores distribuidos en una área geográfica pequeña que se comuniquen, mientras que la WAN permiten que se comuniquen diversos procesadores distribuidos en áreas más grandes.

Existen diversos tipos de sistemas informáticos que sirven a propósito específicos. Entre estos se incluyen los sistemas operativos en tiempo real diseñados para entornos embebidos, como son los dispositivos de consumo, automóviles y equipos robóticos. También están los sistemas multimedia implican el subministro de datos multimedia y a menudo, tiene requisitos especiales para visualizar o reproducir audio, video o flujos sincronizados de audio y video.

RESUMEN CAPITULO 2

Podemos ver a un sistema operativo desde varios puntos de vista ya que proporciona una serie de servicios. En el nivel mas bajo, las llamadas al sistema permiten que un programa en ejecución haga solicitudes directamente al sistema operativo. En el nivel superior, el intérprete de comandos o Shell proporciona un mecanismo para que el usuario ejecute una solicitud sin escribir un programa. Los comandos pueden proceder de archivos de procesamientos por lotes o directamente de un terminal, cuando se esta en modo interactivo o de tiempo compartido.

Los tipos de solicitudes varían de acuerdo con el nivel. El nivel de gestión de las llamadas al sistema debe proporcionar funciones básicas, como las de control de procesos y de manipulación de archivos y dispositivos. Las solicitudes de nivel superior, satisfechas por el intérprete de comandos o los programas de sistemas, se traducen a una secuencia de llamadas al sistema se pueden clasificar en varias categorías: control de programas, solicitudes de E/S. Los errores de programa pueden considerarse como solicitudes implícitas de servicio.

Son necesarias varias tablas para describir la información que define el estado del sistema informático y el de los trabajos que el sistema esta ejecutando. Es fundamental que los objetivos del sistema estén bien definidos antes de comenzar el diseño. El tipo de sistema deseado dictara las opciones que se elijan, entre los distintos algoritmos y estrategias necesarios.

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 son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado.

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.




Por: 07-04-2009 por mizarate | Categorías asociadas: Capitulo 1-2, Paralelo "A"

Nombre: Marilin Zárate Ordóñez

CAPITULO 1

Un Sistema Operativo es un software que gestiona el hardware de una computadora y proporciona un entorno para ejecutar los programas de aplicación.

Un Sistema Operativo tres funciones muy importantes:

  1. Definen las formas en que estos recursos se emplean para resolver los problemas informáticos de los usuarios.
  2. Controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios.
  3. Proporciona los recursos básicos de cómputo al sistema

Las interrupciones son una oarte importante de la arquitectura de las computadoras. La interrupción debe transferir el control a la rutina de servicio apropiada a la interrupción.

La variedad de sistemas de almacenamiento se pueden organizar de una forma jerárquica, en función de su velocidad y su coste.

Existen muchas formas para diseñar un sistema informático, los sistemas monoprocesadores tienen un solo procesador, y los sistemas multiprocesadores constan de varios procesadores. Los multiprocesadores se dividen en Simétrico y Asimétrico.

Para poder dar un mejor uso a la CPU se utiliza la multiprogramación. Los sistemas de tiempo compartido son una extensión de la multiprogramación, en la que los organismos de planificación de la CPU conmutan rápidamente entre varios trabajos .

Un proceso es un programa en ejecución. La gestión de procesos incluye la creación y borrado de procesos y proporciona mecanismos para que los procesos se comuniquen y sincronicen entre sí.

LOs sistemas distribuidos permiten a los usuarios compartir los recursos disponibles en una serie de hosts, conectados a traves de una red de computadoras. Dos tipos básicos de redes son la LAN y WAN, las LAN permiten que un conjunto de procesadores distribuidos en una área pequeña se comuniquen, mientras que las WAN permiten una comunicación dentro de una área muy extensa..

La influencia de internet hoy en el mundo ha sido muy grande y la WWW ha crecido mucho últimamente