Monografias.com > Computación > Sistemas Operativos
Descargar Imprimir Comentar Ver trabajos relacionados

SISTEMAS OPERATIVOS




Enviado por cypress_92



     

    Indice
    1.
    Introducción a los sistemas
    operativos

    2. Estructura de un sistema
    operativo

    3. Funciones y características de los
    sistemas operativos.


    5. Bibliografia

    1. Introducción a los sistemas
    operativos

    Definiciones de los sistemas
    operativos.
    Un sistema operativo
    es un programa que
    actúa como intermediario entre el usuario y el hardware de un computador y
    su propósito es proporcionar un entorno en el cual el
    usuario pueda ejecutar programas. El
    objetivo
    principal de un sistema operativo
    es lograr que el sistema de
    computación se use de manera
    moda, y el
    objetivo
    secundario es que el hardware del computador se
    emplee de manera eficiente.
    Un sistema Operativo
    (SO) es en sí mismo un programa de
    computadora.
    Sin embargo, es un programa muy especial, quizá el
    más complejo e importante en una computadora.
    El SO despierta a la computadora
    y hace que reconozca a la CPU, la memoria, el
    teclado, el
    sistema de vídeo y las unidades de disco. Además,
    proporciona la facilidad para que los usuarios se comuniquen con
    la computadora
    y sirve de plataforma a partir de la cual se corran programas de
    aplicación.
    Cuando enciendes una computadora, lo primero que ésta hace
    es llevar a cabo un autodiagnóstico llamado auto prueba de
    encendido (Power On Self Test, POST).
    Durante la POST, la computadora identifica su memoria, sus
    discos, su teclado, su
    sistema de vídeo y cualquier otro dispositivo conectado a
    ella. Lo siguiente que la computadora hace es buscar un SO para
    arrancar (boot).
    Una vez que la computadora ha puesto en marcha su SO, mantiene al
    menos parte de éste en su memoria en todo
    momento. Mientras la computadora esté encendida, el SO
    tiene 4 tareas principales:

    • Proporcionar ya sea una interfaz de línea de
      comando o una interfaz gráfica al usuario, para que este
      último se pueda comunicar con la computadora. Interfaz
      de línea de comando: tú introduces palabras y
      símbolos desde el teclado de la computadora, ejemplo, el
      MS-DOS.
      Interfaz gráfica del Usuario (GUI), seleccionas las
      acciones
      mediante el uso de un Mouse para
      pulsar sobre figuras llamadas iconos o seleccionar opciones de
      los menús.
    • Administrar los dispositivos de hardware en la
      computadora. Cuando corren los programas, necesitan utilizar
      la memoria,
      el monitor, las
      unidades de disco, los puertos de Entrada/Salida (impresoras,
      módems, etc.). El SO sirve de intermediario entre los
      programas y el hardware.
    • Administrar y mantener los sistemas de
      archivo de
      disco. Los SO agrupan la información dentro de compartimientos
      lógicos para almacenarlos en el disco. Estos grupos de
      información son llamados archivos. Los
      archivos
      pueden contener instrucciones de programas o información
      creada por el usuario. El SO mantiene una lista de los archivos
      en un disco, y nos proporciona las herramientas
      necesarias para organizar y manipular estos
      archivos.
    • Apoyar a otros programas. Otra de las funciones
      importantes del SO es proporcionar servicios a
      otros programas. Estos servicios
      son similares a aquellos que el SO proporciona directamente a
      los usuarios. Por ejemplo, listar los archivos, grabarlos a
      disco, eliminar archivos, revisar espacio disponible, etc.
      Cuando los programadores escriben programas de computadora,
      incluyen en sus programas instrucciones que solicitan los
      servicios del SO. Estas instrucciones son conocidas como
      "llamadas del sistema"

    ¿Qué es un sistema operativo?
    Un sistema operativo es el programa que oculta la verdad del
    hardware al programador y presenta una vista simple y agradable
    de los archivos nominados que pueden leerse y escribirse. El
    sistema operativo resguarda al programador del hardware del disco
    y presenta una interfaz simple orientada al archivo,
    también disimula mucho del trabajo concerniente a
    interrupciones, relojes o cronómetros, manejo de memoria y
    otras características de bajo nivel.
    La función
    del sistema operativo es la de presentar al usuario con el
    equivalente de una máquina ampliada o máquina
    virtual que sea más fácil de programar que el
    hardware implícito.
    Un sistema operativo es una parte importante de casi cualquier
    sistema de computación. Un sistema de
    computación puede dividirse en cuatro componentes: el
    hardware, el sistema operativo, los programas de
    aplicación y los usuarios.
    El hardware (unidad central de procesamiento (UCP), memoria y
    dispositivos de
    entrada y salida (E/S)) proporciona los recursos de
    computación básicos. Los programas de
    aplicación (compiladores,
    sistemas de bases de datos,
    juegos de
    video y
    programas para negocios)
    definen la forma en que estos recursos se
    emplean para resolver los problemas de
    computación de los usuarios. Puede haber distintos
    usuarios (personas, máquinas,
    otros computadores) que intentan resolver problemas
    diferentes; por lo tanto es posible que haya diferentes programas
    de aplicación. El sistema operativo controla y coordina el
    uso del hardware entre los diversos programas de
    aplicación de los distintos usuarios
    Podemos ver al sistema operativo como un asignador de recursos.
    Un sistema de computación tiene muchos recursos (hardware
    y software) que
    pueden requerirse para resolver un problema: tiempo de la UCP,
    espacio de memoria, espacio de almacenamiento de
    archivos, dispositivos de E/S, etc. El sistema operativo
    actúa como el administrador de
    estos recursos y los asigna a usuarios y programas concretos
    según los necesiten las tareas de los usuarios.
    Puesto que pueden surgir conflictos en
    las solicitudes de recursos, el sistema operativo debe decidir a
    que solicitudes se les asignaran para que el sistema de
    computación pueda funcionar de manera eficiente y
    justa.
    En términos generales no hay una definición de
    sistema operativo completamente adecuada. Los sistemas
    operativos existen porque son una manera razonable de
    solucionar el problema de crear un sistema de computación
    utilizable.

    Objetivos para la creación de los sistemas
    Operativos.

    • Transformar el complejo hardware de una computadora a
      una máquina accesible al usuario.
    • Lograr el mejor uso posible de los recursos. Hacer
      eficiente el uso del recurso.

    El objetivo fundamental de los sistemas de
    computación es ejecutar los programas de los usuarios y
    facilitar la resolución de sus problemas. El hardware se
    construye con este fin, pero como este no es fácil de
    utilizar, se desarrollan programas de aplicación que
    requieren ciertas operaciones
    comunes, como el control de
    dispositivos de E/S. las funciones comunes
    de control y de
    asignación de recursos se integran para formar un solo
    fragmento de software: el sistema
    operativo.

    Desarrollo histórico de los sistemas
    operativos.
    En un principio solo existía el hardware del computador.
    Los primeros computadores eran (físicamente) grandes
    maquinas que se operaban desde una consola. El programador
    escribía un programa y luego lo controlaba directamente
    desde la consola. En primer lugar, el programa se cargaba
    manualmente en la memoria, desde los interruptores del tablero
    frontal (una instrucción en cada ocasión), desde
    una cinta de papel o desde
    tarjetas
    perforadas. Luego se pulsaban los botones adecuados para
    establecer la dirección de inicio y comenzar la
    ejecución del programa. Mientras este se ejecutaba, el
    programador-operador lo podía supervisar observando las
    luces en la consola, si se descubrían errores, el
    programador podía detener el programa, examinar el
    contenido de la memoria y los registros y
    depurar el programa directamente desde la consola. La salida del
    programa se imprimía, o se perforaba en cintas de papel o
    tarjetas para
    su impresión posterior.
    Sin embargo, con este procedimiento se
    presentaban ciertos problemas. Supongamos que un usuario se
    había registrado para usar una hora de tiempo del
    computador dedicada a ejecutar el programa que estaba
    desarrollando, pero se topaba con algún error
    difícil y no podía terminar en esa hora. Si alguien
    más había reservado el siguiente bloque de tiempo,
    usted debía detenerse, rescatar lo que pudiera y volver
    mas tarde para continuar. Por otra parte, si el programa se
    ejecutaba sin problemas, podría terminar en 35 minutos;
    pero como pensó que necesitaría la maquina durante
    más tiempo, se registro para
    usarla una hora, y permanecería inactiva durante 25
    minutos.
    Conforme transcurrió el tiempo, se desarrollaron software
    y hardware adicionales; empezaron a popularizarse los lectores de
    tarjetas, impresoras de
    líneas y cintas magnéticas; se diseñaron
    ensambladores, cargadores y ligadores para facilitar las tareas
    de programación, y se crearon bibliotecas de
    funciones comunes, de manera que estas podían copiarse a
    un nuevo programa sin tener que escribirlas de nuevo.
    Las rutinas que efectuaban operaciones de
    E/S tenían una importancia especial. Cada nuevo
    dispositivo de E/S poseía sus propias características, lo que requería una
    cuidadosa programación. Así mismo, para cada
    uno de ellos se escribía una subrutina especial, la cual
    se denominaba manejador de dispositivos. Este sabe como deben de
    usarse los buffers, indicadores,
    registros,
    bits de control y bits de estado para
    cada dispositivo. Cada tipo de dispositivo tenía su propio
    manejador. Una tarea sencilla, como leer un carácter
    de un lector de cinta de papel, podía conllevar
    complicadas secuencias de operaciones específicas para el
    dispositivo. En lugar de tener que escribir cada vez el código
    necesario, bastaba usar el manejador de dispositivo de la
    biblioteca.
    Más tarde aparecieron los compiladores de
    FORTRAN, COBOL y otros
    lenguajes, lo que facilito la tarea de programación, pero
    hizo más complejo el funcionamiento del computador. Por
    ejemplo, al preparar la ejecución de un programa en
    FORTRAN, el programador primero necesitaba cargar en el
    computador el compilador de FORTRAN, que generalmente se
    conservaba en una cinta magnética, por lo que había
    que montar la cinta adecuada en la unidad correspondiente. El
    programa se leía a través del lector de tarjetas y
    se escribía en otra cinta. El compilador de FORTRAN
    producía una salida en lenguaje
    ensamblador, que luego tenia que ensamblarse, para esto era
    necesario montar otra cinta con el ensamblador, y
    su salida debía enlazarse con las rutinas de apoyo de las
    bibliotecas.
    Finalmente, el programa objeto, en código
    binario, estaba listo para ejecutarse; se cargaba en memoria y se
    depuraba desde la consola como antes.
    Los Sistemas
    Operativos, al igual que el Hardware de los computadores, han
    sufrido una serie de cambios revolucionarios llamados
    generaciones. En el caso del Hardware, las generaciones han sido
    marcadas por grandes avances en los componentes utilizados,
    pasando de válvulas
    (primera generación) a transistores
    (segunda generación), a circuitos
    integrados (tercera generación), a circuitos
    integrados de gran y muy gran escala (cuarta
    generación). Cada generación Sucesiva de hardware
    ha ido acompañada de reducciones substanciales en los
    costos,
    tamaño, emisión de calor y
    consumo de
    energía, y por incrementos notables en velocidad y
    capacidad.

    Generación Cero (década de 1940)
    Los primeros sistemas computacionales no poseían sistemas
    operativos. Los usuarios tenían completo acceso al
    lenguaje de la
    maquina. Todas las instrucciones eran codificadas a
    mano.

    Primera Generación (década de 1950)
    Los sistemas operativos de los años cincuenta fueron
    diseñados para hacer mas fluida la transición entre
    trabajos. Antes de que los sistemas fueran diseñados, se
    perdía un tiempo considerable entre la terminación
    de un trabajo y el inicio del siguiente. Este fue el comienzo de
    los sistemas de procesamiento por lotes, donde los trabajos se
    reunían por grupos o lotes.
    Cuando el trabajo
    estaba en ejecución, este tenia control total de la
    maquina. Al terminar cada trabajo, el control era devuelto al
    sistema operativo, el cual limpiaba y leía e iniciaba
    el trabajo
    siguiente.
    Al inicio de los 50's esto había mejorado un poco con la
    introducción de tarjetas perforadas (las
    cuales servían para introducir los programas de lenguajes
    de máquina), puesto que ya no había necesidad de
    utilizar los tableros enchufables.
    Además el laboratorio de
    investigación General Motors
    implementó el primer sistema operativo para la IBM 701.
    Los sistemas de los 50's generalmente ejecutaban una sola tarea,
    y la transición entre tareas se suavizaba para lograr la
    máxima utilización del sistema. Esto se conoce como
    sistemas de procesamiento por lotes de un sólo flujo, ya
    que los programas y los datos eran
    sometidos en grupos o lotes.
    La introducción del transistor a
    mediados de los 50's cambió la imagen
    radicalmente. Se crearon máquinas
    suficientemente confiables las cuales se instalaban en lugares
    especialmente acondicionados, aunque sólo las grandes
    universidades y las grandes corporaciones o bien las oficinas del
    gobierno se
    podían dar el lujo de tenerlas.
    Para poder correr
    un trabajo (programa), tenían que escribirlo en papel (en
    FORTRAN o en lenguaje
    ensamblador) y después se perforaría en
    tarjetas. Enseguida se llevaría la pila de tarjetas al
    cuarto de introducción al sistema y la entregaría a
    uno de los operadores. Cuando la computadora terminara el
    trabajo, un operador se dirigiría a la impresora y
    desprendería la salida y la llevaría al cuarto de
    salida, para que la recogiera el programador.

    Segunda Generación (a mitad de la década
    de 1960)
    La característica de los sistemas operativos fue el
    desarrollo de
    los sistemas compartidos con multiprogramación, y los
    principios del
    multiprocesamiento. En los sistemas de multiprogramación,
    varios programas de usuario se encuentran al mismo tiempo en el
    almacenamiento
    principal, y el procesador se
    cambia rápidamente de un trabajo a otro. En los sistemas
    de multiprocesamiento se utilizan varios procesadores en
    un solo sistema computacional, con la finalidad de incrementar el
    poder de
    procesamiento de la maquina.
    La independencia
    de dispositivos aparece después. Un usuario que desea
    escribir datos en una
    cinta en sistemas de la primera generación tenia que hacer
    referencia especifica a una unidad de cinta particular. En la
    segunda generación, el programa del usuario especificaba
    tan solo que un archivo iba a ser escrito en una unidad de cinta
    con cierto número de pistas y cierta densidad.
    Se desarrollo
    sistemas compartidos, en la que los usuarios podían
    acoplarse directamente con el computador a través de
    terminales. Surgieron sistemas de tiempo real, en que los
    computadores fueron utilizados en el control de procesos
    industriales. Los sistemas de tiempo real se caracterizan por
    proveer una respuesta inmediata.

    Tercera Generación (mitad de década 1960 a
    mitad década de 1970)
    Se inicia en 1964, con la introducción de la familia de
    computadores Sistema/360 de IBM. Los computadores de esta
    generación fueron diseñados como sistemas para usos
    generales. Casi siempre eran sistemas grandes, voluminosos, con
    el propósito de serlo todo para toda la gente. Eran
    sistemas de modos múltiples, algunos de ellos soportaban
    simultáneamente procesos por
    lotes, tiempo compartido, procesamiento de tiempo real y
    multiprocesamiento. Eran grandes y costosos, nunca antes se
    había construido algo similar, y muchos de los esfuerzos
    de desarrollo terminaron muy por arriba del presupuesto y
    mucho después de lo que el planificador marcaba como fecha
    de terminación.
    Estos sistemas introdujeron mayor complejidad a los ambientes
    computacionales; una complejidad a la cual, en un principio, no
    estaban acostumbrados los usuarios.

    Cuarta Generación (mitad de década de 1970
    en adelante)
    Los sistemas de la cuarta generación constituyen el estado
    actual de la tecnología. Muchos
    diseñadores y usuarios se sienten aun incómodos,
    después de sus experiencias con los sistemas operativos de
    la tercera generación.
    Con la ampliación del uso de redes de computadores y del
    procesamiento en línea los usuarios obtienen acceso a
    computadores alejados geográficamente a través de
    varios tipos de terminales.
    Los sistemas de seguridad se han
    incrementado mucho ahora que la información pasa a
    través de varios tipos vulnerables de líneas de
    comunicación. La clave de cifrado esta
    recibiendo mucha atención; han sido necesario codificar los
    datos personales o de gran intimidad para que; aun si los datos
    son expuestos, no sean de utilidad a nadie
    mas que a los receptores adecuados.

    2. Estructura de
    un sistema operativo

    En esta unidad examinaremos cuatro estructuras
    distintas que ya han sido probadas, con el fin de tener una idea
    más extensa de cómo esta estructurado el sistema
    operativo. Veremos brevemente algunas estructuras de
    diseños de sistemas operativos. 

    Estructura modular.
    También llamados sistemas monolíticos. Este tipo de
    organización es con mucho la mas
    común; bien podría recibir el subtitulo de "el gran
    embrollo". La estructura
    consiste en que no existe estructura alguna. El sistema operativo
    se escribe como una colección de procedimientos,
    cada uno de los cuales puede llamar a los demás cada vez
    que así lo requiera. Cuando se usa esta técnica,
    cada procedimiento del
    sistema tiene una interfaz bien definida en términos de
    parámetros y resultados y cada uno de ellos es libre de
    llamar a cualquier otro, si este ultimo proporciona cierto
    cálculo
    útil para el primero. Sin embargo incluso en este tipo de
    sistemas es posible tener al menos algo de estructura. Los
    servicios (llamadas al sistema) que proporciona el sistema
    operativo se solicitan colocando los parámetros en lugares
    bien definidos, como en los registros o en la pila, para
    después ejecutar una instrucción especial de trampa
    de nombre "llamada al núcleo" o "llamada al
    supervisor".
    Esta instrucción cambia la máquina del modo usuario
    al modo núcleo y transfiere el control al sistema
    operativo, lo que se muestra en el
    evento (1) de la figura 1. El sistema operativo examina entonces
    los parámetros de la llamada, para determinar cual de
    ellas se desea realizar, como se muestra en el
    evento (2) de la figura 1. A continuación, el sistema
    operativo analiza una tabla que contiene en la entrada k un
    apuntador al procedimiento que realiza la k-esima llamada al
    sistema. Esta operación que se muestra en (3) de la figura
    1, identifica el procedimiento de servicio, al
    cual se llama. Por ultimo, la llamada al sistema termina y el
    control regresa al programa del usuario.
    Figura 1. La forma en que debe hacerse una llamada al sistema:
    (1) el programa del usuario es atraído hacia el
    núcleo. (2) el sistema operativo determina el
    número del servicio
    solicitado. (3) el sistema operativo localiza y llama al
    procedimiento correspondiente al servicio. (4) el control regresa
    al programa del usuario.

    Esta organización sugiere una
    organización básica del sistema operativo:
    1.- un programa principal que llama al procedimiento del servicio
    solicitado.
    2.- un conjunto de procedimientos de
    servicio que llevan a cabo las llamadas al sistema.
    3.- un conjunto de procedimientos utilitarios que ayudan al
    procedimiento de servicio.

    En este modelo, para
    cada llamada al sistema existe un procedimiento de servicio que
    se encarga de él. Los procedimientos utilitarios hacen
    cosas necesarias para varios procedimientos de servicio, por
    ejemplo buscar los datos de los programas del usuario. La
    siguiente figura muestra este procedimiento de tres capas:
    (Para ver el gráfico faltante haga click en el menú
    superior "Bajar Trabajo")
    Figura 2. Un modelo de
    estructura simple para un sistema monolítico.
    (Para ver el gráfico faltante haga click en el menú
    superior "Bajar Trabajo")

    Estructura por microkernel.
    Las funciones centrales de un SO son controladas por el
    núcleo (kernel) mientras que la interfaz del usuario es
    controlada por el entorno (shell). Por ejemplo, la parte
    más importante del DOS es un programa con el nombre
    "COMMAND.COM" Este programa tiene dos partes. El kernel, que se
    mantiene en memoria en todo momento, contiene el código
    máquina de bajo nivel para manejar la
    administración de hardware para otros programas que
    necesitan estos servicios, y para la segunda parte del
    COMMAND.COM el shell, el cual es el interprete de comandos
    Las funciones de bajo nivel del SO y las funciones de
    interpretación de comandos
    están separadas, de tal forma que puedes mantener el
    kernel DOS corriendo, pero utilizar una interfaz de usuario
    diferente. Esto es exactamente lo que sucede cuando cargas
    Microsoft
    Windows, el
    cual toma el lugar del shell, reemplazando la interfaz de
    línea de comandos con una
    interfaz gráfica del usuario. Existen muchos "shells"
    diferentes en el mercado, ejemplo:
    NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a
    partir de la versión 5.0 incluyó un Shell llamado
    DOS SHELL.

    Estructura por
    anillos concéntricos (capas).
    El sistema por "capas" consiste en organizar el sistema operativo
    como una jerarquía de capas, cada una construida sobre la
    inmediata inferior. El primer sistema construido de esta manera
    fue el sistema THE (Technische Hogeschool Eindhoven),
    desarrollado en Holanda por E. W. Dijkstra (1968) y sus
    estudiantes.
    El sistema tenia 6 capas, como se muestra en la figura 3. La capa
    0 trabaja con la asignación del procesador y
    alterna entre los procesos cuando ocurren las interrupciones o
    expiran los cronómetros. Sobre la capa 0, el sistema
    consta de procesos secuénciales, cada uno de los cuales se
    podría programar sin importar que varios procesos
    estuvieran ejecutándose en el mismo procesador, la capa 0
    proporcionaba la multiprogramación básica de la
    CPU.

    La capa 1 realizaba la administración de la memoria. Asignaba el
    espacio de memoria principal para los procesos y un recipiente de
    palabras de 512K se utilizaba para almacenar partes de los
    procesos (páginas) para las que no existía lugar en
    la memoria principal. Por encima de la capa 1, los procesos no
    debían preocuparse si estaban en la memoria o en el
    recipiente; el software de la capa 1 se encargaba de garantizar
    que las páginas llegaran a la memoria cuando fueran
    necesarias.
    La capa 2 se encargaba de la
    comunicación entre cada proceso y la
    consola del operador. Por encima de esta capa, cada proceso tiene
    su propia consola de operador.
    La capa 3 controla los dispositivos de E/S y guarda en almacenes
    (buffers) los flujos de información entre ellos. Por
    encima de la capa 3, cada proceso puede trabajar con dispositivos
    exactos de E/S con propiedades adecuadas, en vez de dispositivos
    reales con muchas peculiaridades. La capa 4 es donde estaban los
    programas del usuario, estos no tenían que preocuparse por
    el proceso, memoria, consola o control de E/S. el proceso
    operador del sistema se localizaba en la capa 5
    Una generalización mas avanzada del concepto de capas
    se presento en el sistema MULTICS. En lugar de capas, MULTICS
    estaba organizado como una serie de anillos concéntricos,
    siendo los anillos interiores los privilegiados. Cuando un
    procedimiento de un anillo exterior deseaba llamar a un
    procedimiento de un anillo interior, debió hacer el
    equivalente a una llamada al sistema
    Mientras que el esquema de capas de THE era en realidad un apoyo
    al diseño,
    debido a que todas las partes del sistema estaban ligadas entre
    si en un solo programa objeto, en MULTICS, el mecanismo de
    anillos estaba mas presente durante el tiempo de ejecución
    y era reforzado por el hardware. La ventaja del mecanismo de
    anillos es su facilidad de extensión para estructurar
    subsistemas del usuario.

    5

    El operador

    4

    Programas del usuario

    3

    Control de entrada/salida

    2

    Comunicación operador-proceso

    1

    Administración de la memoria y del
    disco

    0

    Asignación del procesador y
    multiprogramación

    Figura 3. Estructura del sistema operativo
    THE.

    Estructura cliente
    servidor
    Una tendencia de los sistemas operativos modernos es la de
    explotar la idea de mover el código a capas superiores y
    eliminar la mayor parte posible del sistema operativo para
    mantener un núcleo mínimo. El punto de vista usual
    es el de implantar la mayoría de las funciones del sistema
    operativo en los procesos del usuario. Para solicitar un
    servicio, como la lectura de
    un bloque de cierto archivo, un proceso del usuario (denominado
    proceso cliente)
    envía la solicitud a un proceso servidor, que
    realiza entonces el trabajo y regresa la respuesta. En este
    modelo, que se muestra en la figura 4, lo único que hace
    el núcleo es controlar la
    comunicación entre los clientes y los
    servidores. Al
    separar el sistema operativo en partes, cada una de ellas
    controla una faceta del sistema, como el servicio a archivos,
    servicios a procesos, servicio a terminales o servicio a la
    memoria, cada parte es pequeña y controlable.
    Además como todos los servidores se
    ejecutan como procesos en modo usuario y no en modo
    núcleo, no tienen acceso directo al hardware. En
    consecuencia si hay un error en el servidor de
    archivos, éste puede fallar, pero esto no afectará
    en general a toda la máquina.
    (Para ver el gráfico faltante haga click en el menú
    superior "Bajar Trabajo")

    Figura 4. El modelo Cliente-servidor.
    Otra de las ventajas del modelo cliente-servidor es su capacidad
    de adaptación para su uso en los sistemas
    distribuidos (figura 5).
    Si un cliente se comunica con un servidor mediante mensajes, el
    cliente no necesita saber si el mensaje se maneja en forma local,
    en su máquina, o si se envía por medio de una red a un servidor en una
    máquina remota. En lo que respecta al cliente, lo mismo
    ocurre en ambos casos: se envió una solicitud y se
    recibió una respuesta.
    (Para ver el gráfico faltante haga click en el menú
    superior "Bajar Trabajo")

    Figura 5. El modelo cliente-servidor en un sistema
    distribuido.

    3. Funciones y
    características de los sistemas operativos.

    Funciones de los sistemas operativos.
    1.- Aceptar todos los trabajos y conservarlos hasta su
    finalización.
    2.- Interpretación de comandos: Interpreta los comandos
    que permiten al usuario comunicarse con el ordenador.
    3.- Control de recursos: Coordina y manipula el hardware de la
    computadora, como la memoria, las impresoras, las unidades de
    disco, el teclado o el Mouse.
    4.- Manejo de dispositivos de E/S: Organiza los archivos en
    diversos dispositivos de
    almacenamiento, como discos flexibles, discos duros,
    discos compactos o cintas magnéticas.
    5.- Manejo de errores: Gestiona los errores de hardware y la
    pérdida de datos.
    6.- Secuencia de tareas: El sistema operativo debe administrar la
    manera en que se reparten los procesos. Definir el orden. (Quien
    va primero y quien después).
    7.- Protección: Evitar que las acciones de un
    usuario afecten el trabajo que esta realizando otro usuario.
    8.- Multiacceso: Un usuario se puede conectar a otra
    máquina sin tener que estar cerca de ella.

    9.- Contabilidad
    de recursos: establece el costo que se le
    cobra a un usuario por utilizar determinados recursos.

    Características de los sistemas operativos.
    En general, se puede decir que un Sistema Operativo tiene las
    siguientes características:

    • Conveniencia. Un Sistema Operativo hace más
      conveniente el uso de una computadora.
    • Eficiencia. Un Sistema Operativo permite que los
      recursos de la computadora se usen de la manera más
      eficiente posible.
    • Habilidad para evolucionar. Un Sistema Operativo
      deberá construirse de manera que permita el desarrollo,
      prueba o introducción efectiva de nuevas funciones del
      sistema sin interferir con el servicio.
    • Encargado de administrar el hardware. El Sistema
      Operativo se encarga de manejar de una mejor manera los
      recursos de la computadora en cuanto a hardware se refiere,
      esto es, asignar a cada proceso una parte del procesador para
      poder compartir los recursos.
    • Relacionar dispositivos (gestionar a través
      del kernel). El Sistema Operativo se debe encargar de comunicar
      a los dispositivos
      periféricos, cuando el usuario así lo
      requiera.
    • Organizar datos para acceso rápido y seguro.
    • Manejar las comunicaciones en red. El Sistema Operativo
      permite al usuario manejar con alta facilidad todo lo referente
      a la instalación y uso de las redes de
      computadoras.
    • Procesamiento por bytes de flujo a través del
      bus de
      datos.
    • Facilitar las entradas y salidas. Un Sistema
      Operativo debe hacerle fácil al usuario el acceso y
      manejo de los dispositivos de
      Entrada/Salida de la computadora.

    4. Modalidades de trabajo de
    los sistemas operativos.

    Sistemas operativos por lotes.
    La secuencia por lotes o procesamiento por lotes en
    microcomputadoras, es la ejecución de una lista de
    comandos del sistema operativo uno tras otro sin
    intervención del usuario.
    En los ordenadores más grandes el proceso de recogida de
    programas y de conjuntos de
    datos de los usuarios, la ejecución de uno o unos pocos
    cada vez y la entrega de los recursos a los usuarios.
    Procesamiento por lotes también puede referirse al proceso
    de almacenar transacciones durante un cierto lapso antes de su
    envío a un archivo maestro, por lo general una
    operación separada que se efectúa durante la
    noche
    Los sistemas operativos por lotes (batch), en los que los
    programas eran tratados por
    grupos (lote) en ves de individualmente. La función de
    estos sistemas operativos consistía en cargar en memoria
    un programa de la cinta y ejecutarlo. Al final este, se realizaba
    el salto a una dirección de memoria desde donde
    reasumía el control del sistema operativo que cargaba el
    siguiente programa y lo ejecutaba. De esta manera el tiempo entre
    un trabajo y el otro disminuía considerablemente.
    (Para ver el gráfico faltante haga click en el menú
    superior "Bajar Trabajo")

    Figura 6 – Sistema de procesamiento por lotes.
    Algunas otras características con que cuentan los Sistemas
    Operativos por lotes son:

    • Requiere que el programa, datos y órdenes al
      sistema sean remitidos todos juntos en forma de
      lote.
    • Permiten poca o ninguna interacción
      usuario/programa en ejecución.
    • Mayor potencial de utilización de recursos que
      procesamiento serial simple en sistemas
      multiusuarios.
    • No conveniente para desarrollo de programas por bajo
      tiempo de retorno y depuración fuera de
      línea.
    • Conveniente para programas de largos tiempos de
      ejecución (Ej., análisis estadísticos, nóminas
      de personal,
      etc.)
    • Se encuentra en muchos computadores personales
      combinados con procesamiento serial.
    • Planificación del procesador sencilla,
      típicamente procesados en orden de llegada.
    • Planificación de memoria sencilla, 
      generalmente se divide en dos: parte residente del S.O. y
      programas transitorios.
    • No requieren gestión crítica de dispositivos en
      el tiempo.
    • Suelen proporcionar gestión sencilla de manejo de archivos:
      se requiere poca protección y ningún control de
      concurrencia para el acceso.

    Sistemas operativos de tiempo compartido.
    El tiempo compartido en ordenadores o computadoras
    consiste en el uso de un sistema por más de una persona al mismo
    tiempo. El tiempo compartido ejecuta programas separados de forma
    concurrente, intercambiando porciones de tiempo asignadas a cada
    programa (usuario). En este aspecto, es similar a la capacidad de
    multitareas que es común en la mayoría de los
    microordenadores o las microcomputadoras. Sin embargo el tiempo
    compartido se asocia generalmente con el acceso de varios
    usuarios a computadoras
    más grandes y a organizaciones de
    servicios, mientras que la multitarea relacionada con las
    microcomputadoras implica la realización de
    múltiples tareas por un solo usuario.
    Los principales recursos del sistema, el procesador, la memoria,
    dispositivos de E/S, son continuamente utilizados entre los
    diversos usuarios, dando a cada usuario la ilusión de que
    tiene el sistema dedicado para sí mismo. Esto trae como
    consecuencia una gran carga de trabajo al Sistema Operativo,
    principalmente en la
    administración de memoria principal y
    secundaria.

    Características de los Sistemas Operativos de
    tiempo compartido:

    • Populares representantes de sistemas multiprogramados
      multiusuario, Ej.: sistemas de diseño asistido por computador,
      procesamiento de texto,
      etc.
    • Dan la ilusión de que cada usuario tiene una
      máquina para  sí.
    • La mayoría utilizan algoritmo de
      reparto circular.
    • Los programas se ejecutan con prioridad rotatoria que
      se incrementa con la espera y disminuye después de
      concedido el servicio.
    • Evitan monopolización del sistema asignando
      tiempos de procesador (time slot).
    • Gestión de memoria: proporciona
      protección a programas residentes.
    • Gestión de archivo: debe proporcionar
      protección y control de acceso debido a que  pueden
      existir múltiples usuarios accesando un mismo
      archivo.

    Sistemas operativos de tiempo real.
    Un sistema operativo en tiempo real procesa las instrucciones
    recibidas al instante, y una vez que han sido procesadas muestra
    el resultado. Este tipo tiene relación con los sistemas
    operativos monousuarios, ya que existe un solo operador y no
    necesita compartir el procesador entre varias solicitudes.
    Su característica principal es dar respuestas
    rápidas; por ejemplo en un caso de peligro se
    necesitarían respuestas inmediatas para evitar una
    catástrofe.
    Los Sistemas Operativos de tiempo real, cuentan con las
    siguientes características:

    • Se dan en entornos en donde deben ser aceptados y
      procesados gran cantidad de sucesos, la mayoría externos
      al sistema computacional, en breve tiempo o dentro de ciertos
      plazos.
    • Se utilizan en control industrial, conmutación
      telefónica, control de vuelo, simulaciones en tiempo
      real., aplicaciones militares, etc.
    • Su objetivo es proporcionar rápidos tiempos de
      respuesta.
    • Procesa ráfagas de miles de interrupciones por
      segundo sin perder un solo suceso.
    • Un proceso se activa tras ocurrencia de suceso,
      mediante interrupción.
    • Un proceso de mayor  prioridad expropia
      recursos.
    • Por tanto generalmente se utiliza planificación expropiativa basada en
      prioridades.
    • Gestión de memoria menos exigente que tiempo
      compartido, usualmente procesos son residentes permanentes en
      memoria.
    • Población de procesos estática
      en gran medida.
    • Poco movimiento
      de programas entre almacenamiento secundario y
      memoria.
    • La gestión de archivos se orienta 
      más a velocidad de
      acceso que a utilización eficiente del
      recurso.

    Sistemas operativos de red.
    La principal función de un sistema operativo de red es
    ofrecer un mecanismo para transferir archivos de una
    máquina a otra. En este entorno, cada instalación
    mantiene su propio sistema de archivos local y si un usuario de
    la instalación A quiere acceder a un archivo en la
    instalación B, hay que copiar explícitamente el
    archivo de una instalación a otra.
    Internet
    proporciona un mecanismo para estas transferencias, a
    través del programa protocolo de
    transferencias de archivos FTP (File
    Transfer Protocol).
    Suponga que un usuario quiere copiar un archivo A1, que reside en
    la instalación B, a un archivo A2 en la instalación
    local A. Primero, el usuario debe invocar el programa FTP, el cual
    solicita al usuario la información siguiente:
    a) El nombre de la instalación a partir de la cual se
    efectuará la transferencia del archivo (es decir la
    instalación B).
    b) La información de acceso, que verifica que el usuario
    tiene los privilegios de acceso apropiados en la
    instalación B.
    Una vez efectuada esta comprobación, el usuario puede
    copiar el archivo A1 de B a A2 en A, ejecutando "get A1 to
    A2"
    En este esquema, la ubicación del archivo no es
    transparente para el usuario; tiene que saber exactamente donde
    esta cada archivo. Además los archivos no se comparten
    realmente, porque un usuario solo puede copiar un archivo de una
    instalación a otra. Por lo tanto pueden existir varias
    copias del mismo archivo, lo que representa un desperdicio de
    espacio. Así mismo, si se modifican, estas copias no
    serán consistentes.
    Los Sistemas Operativos de red son aquellos sistemas que
    mantienen a dos o más computadoras unidas a través
    de algún medio de comunicación (físico o no), con el
    objetivo primordial de poder compartir los diferentes recursos y
    la información del sistema.
    El primer Sistema Operativo de red estaba enfocado a equipos con
    un procesador Motorola 68000, pasando posteriormente a procesadores
    Intel como Novell
    Netware.
    Los Sistemas Operativos de red más ampliamente usados son:
    Novell
    Netware, Personal Netware,
    LAN Manager,
    Windows NT
    Server, UNIX,
    LANtastic.

    Sistemas operativos distribuidos.
    En un sistema operativo distribuido los usuarios pueden acceder a
    recursos remotos de la misma manera en que lo hacen para los
    recursos locales. La migración
    de datos y procesos de una instalación a otra queda bajo
    el control del sistema operativo distribuido.
    Permiten distribuir trabajos, tareas o procesos, entre un
    conjunto de procesadores. Puede ser que este conjunto de
    procesadores esté en un equipo o en diferentes, en este
    caso es transparente para el usuario. Existen dos esquemas
    básicos de éstos. Un sistema fuertemente acoplado
    es aquel que comparte la memoria y un reloj global, cuyos tiempos
    de acceso son similares para todos los procesadores. En un
    sistema débilmente acoplado los procesadores no comparten
    ni memoria ni reloj, ya que cada uno cuenta con su memoria
    local.
    Los sistemas
    distribuidos deben de ser muy confiables, ya que si un
    componente del sistema se descompone otro componente debe de ser
    capaz de reemplazarlo.
    Entre los diferentes Sistemas Operativos distribuidos que existen
    tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring,
    Amoeba, Taos, etc.

    Características de los Sistemas Operativos
    distribuidos:

    • Colección de sistemas autónomos capaces
      de comunicación y cooperación mediante
      interconexiones hardware y software.
    • Proporciona abstracción de máquina
      virtual a los usuarios.
    • Objetivo clave es la transparencia.
    • Generalmente proporcionan medios para
      la compartición global de recursos.

    Servicios añadidos: denominación global,
    sistemas de archivos distribuidos, facilidades para distribución de cálculos (a
    través de comunicación de procesos internodos,
    llamadas a procedimientos remotos, etc.).

    Figura 7.- Sistema Operativo Distribuido.
    Sistemas operativos multiprocesadores.
    En los sistemas multiprocesador, los procesadores comparten la
    memoria y el reloj.  Se incrementa la capacidad de
    procesamiento y la confiabilidad, son
    económicos. 

    • Multiprocesamiento simétrico: Cada procesador
      ejecuta una copia del sistema operativo. 
    • Multiprocesamiento asimétrico: Cada procesador
      tiene asignado una tarea específica, existe un
      procesador master que asigna tareas a los procesadores
      esclavos. 

    Multiproceso: Las computadoras que tienen más de
    un CPU son llamadas multiproceso. Un sistema operativo
    multiproceso coordina las operaciones de las computadoras
    multiprocesadores. Ya que cada CPU en una computadora de
    multiproceso puede estar ejecutando una instrucción, el
    otro procesador queda liberado para procesar otras instrucciones
    simultáneamente.
    Al usar una computadora con capacidades de multiproceso
    incrementamos su velocidad de respuesta y procesos. Casi todas
    las computadoras que tienen capacidad de multiproceso ofrecen una
    gran ventaja.
    Los primeros Sistemas Operativos Multiproceso realizaban lo que
    se conoce como Multiproceso asimétrico. Una CPU principal
    retiene el control global de la computadora, así como el
    de los otros procesadores. Esto fue un primer paso hacia el
    multiproceso pero no fue la dirección ideal a seguir ya
    que la CPU principal podía convertirse en un cuello de
    botella.
    Multiproceso simétrico. En un sistema multiproceso
    simétrico, no existe una CPU controladora única. La
    barrera a vencer al implementar el multiproceso simétrico
    es que los SO tienen que ser rediseñados o
    diseñados desde el principio para trabajar en un ambiente
    multiproceso. Las extensiones de UNIX, que
    soportan multiproceso asimétrico ya están
    disponibles y las extensiones simétricas se están
    haciendo disponibles. Windows NT de
    Microsoft
    soporta multiproceso simétrico.

    5.
    Bibliografia

    • Sistemas Operativos Modernos

    Andrew S. Tanenbaum
    Pearson Education

    • Operating System Concepts

    A. Silberschatz, J. Peterson, P. Galvin
    Addison – Wesley Publishing Company

    • Sistemas Operativos / Diseño E
      Implementación

    Andrew S. Tanenbaum
    Prentice – Hall

     

     

     

     

    Autor:

    Heriberto Gabriel Soto

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter