Sistemas Operativos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Los Sistemas Operativos

Esp. Ing. Jairo R. Patiño J.


Facultad de Ingeniería
Universidad de Nariño
Historia de los sistemas operativos

 Existen diferentes conceptualizaciones para determinar el desarrollo de los


sistemas operativos.
 La primera es siguiendo la línea del tiempo.
Periodo Avance

Se introducen los programas bit a bit, por medio de interruptores mecánicos y después se
Años 40’s introdujo el lenguaje de máquina que trabajaba por tarjetas perforadas.

Con las primeras computadoras, el programador interactuaba de manera directa con el


hardware de la computadora, no existía realmente un sistema operativo; las primeras
Finales de los años 40 hasta la computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban a través del
mitad de los años 50’s lenguaje máquina (bits) o a través de interruptores.

A principio de los 50's, la compañía General's Motors implanto el primer sistema operativo para
su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (que en
ese tiempo eran programadores, diseñadores, capturistas, etc.), se encarguen de modificar sus
programas. Establecían o apartaban tiempo, metían o introducían sus programas, corregían y
depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se
Durante los años 50's y 60's traducía en pérdida de tiempo y tiempos de programas excesivos.
Historia de los sistemas operativos
Se genera el circuito integrado, se organizan los trabajos y se generan los procesos Batch
(por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de
una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el
En los años 60's y 70's cual se considera como el primer tipo de sistema operativo.

Inició el auge de la INTERNET en los Estados Unidos de América. A finales de los años 80's
comienza el gran auge y evolución de los sistemas operativos. Se descubre el concepto de
multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo
En los 80's tiempo, tema principal de los sistemas operativos actuales.

Entramos a la era de la computación distribuida y del multiprocesamiento a través de


múltiples redes de computadoras, aprovechando el ciclo del procesador. Se tendrá una
configuración dinámica con un reconocimiento
inmediato de dispositivos y software que se añada o elimine de las redes a través de
procesos de registro y localizadores. La conectividad se facilita gracias a estándares y
protocolos de sistemas abiertos establecidos por organizaciones como la Organización
Internacional de estándares (ISO-International Standard Organization), fundación de
software abierto, todo estará mas controlado por los protocolos de comunicación OSI y
Los 90's y el futuro por la red de servicios digital ISDN.
Historia de los sistemas operativos

 Según el desarrollo del componente hardware


Tipo de sistema Descripción
Los primeros computadores eran grandes máquinas que se operaban desde una consola. La entrada y salida se hacía usando tarjetas perforadas
y cinta magnética. La interacción de un usuario con el sistema computacional no era directa:se preparaba un job que consistía en un conjunto de
tarjetas: programa, datos y tarjetas de control.
El S.O: Tenía una función muy simple: transferir el control entre una tarea (job) y la siguiente. Residía completamente en me moria. Para hacer más
eficiente el trabajo, los operadores agrupaban tareas en tandas o lotes (batch). La característica más importante es la falta de interacción entre
el usuario y el sistema durante la ejecución.
Los job se preparan y entregan al sistema y después de un tiempo se entrega el resultado vía una lista o impresión.
La CPU pasa desocupada la mayor parte del tiempo: La velocidad de los elementos mecánicos: impresora y lectora es mucho más baja que la
Sistemas Batch CPU.
Simples ¿Cómo solucionar este problema? - Tecnología de disco (Spooling)
El Spooling mantiene una estructura de datos con todos los jobs listos para ser ejecutados en un área de disco.
Esta estructura permite seleccionar cualquier job del conjunto. Con esta estructura es posible mejorar la utilización de la CPU.
La selección de un job para su ejecución de un conjunto se denomina itineración de job (scheduling).
La itineración de jobs permite la mutiprogramación. La multiprogramación aumenta la utilización de la CPU al organizar los jobs de manera tal que
la CPU siempre tenga algún job que ejecutar.
Para esto se mantienen los jobs en memoria principal. El S.O. selecciona un job, lo ejecuta y cuando el job debe esperar por E/S, se selecciona
otro job. Cuando un job necesita esperar por algún dispositivo, el sistema operativo conmuta de un job a otro. Cuando la transferencia del
Sistemas Batch dispositivo termina, se vuelve al job nuevamente
Los sistemas batch multiprogramados permiten usar recursos eficientemente, pero los usuarios no pueden interactuar con sus aplicaciones.
El tiempo compartido (time sharing) o multitarea es una extensión de la multiprogramación. La CPU ejecuta múltiples jobs, pero la conmutación de
un job a otro ocurre con una frecuencia tal que los usuarios piensan que interactúan con el programa mientras éste corre.
Los primeros sistemas Batch eran completamente interactivos. El usuario tomaba el control completo del sistema a través de la consola.
Los sistemas de tiempo compartido se desarrollaron para proporcionar el uso interactivo de un computador a costo razonable.
Sistemas de Cada usuario tiene al menos un programa en memoria. Un programa que se carga y ejecuta se denomina proceso. Cuando un proceso se
tiempo ejecuta, lo hace por un tiempo corto antes que termine o necesite E/S.
compartido – La entrada y salida (E/S) también puede ser interactiva.
Time sharing – Los sistemas operativos de tiempo compartido son más complejos que los sistemas batch multiprogramados. Entre otras cosas se requiere
multitarea protección especial de áreas de memoria.
Historia de los sistemas operativos

Los Computadores personales aparecieron en el mercado en la década del 70. El


objetivo de los sistemas operativos de PC no es mejorar la eficiencia sino su
amistosidad con el usuario.
La tendencia es traspasar funcionalidades de grandes computadores a PC. Por
Sistemas PC – Computadores ejemplo sistemas de protección de archivos, memoria virtual etc..
personales
La mayoría de los sistemas computacionales actuales utiliza una sola CPU, sin
embargo hay una tendencia hacia sistemas multiprocesadores.
¿Qué se logra con multiprocesadores? Mayor desempeño (troughput): más trabajo
por unidad de tiempo.
Aceleramiento de tareas: cuando varios procesadores cooperan en la realización de
una tarea, disminuye el tiempo de ejecución. Sin embargo la mejora de desempeño
no es lineal respecto al número de procesadores por el tiempo de comunicación.
¿Qué es mejor, un sistema de multiprocesamiento o varios sistemas simples?
Es más económico un sistema de multiprocesadores (un disco, gabinete, fuentes de
poder etc.) Mejora la confiabilidad: si las funciones se distribuyen inteligentemente, la
Sistemas paralelos caída de un procesador puede ser asumida por otro.
La tendencia actual es distribuir la computación entre varios procesadores.
Cada procesador tiene su memoria local. Los procesadores se comunican por líneas
de comunicación, redes de alta velocidad o buses apropiados.
Los procesadores de un sistema distribuido varían en tamaño y función:
microprocesadores, minicomputadores, estaciones de trabajo y grandes sistemas
Sistemas distribuidos computacionales.
Los sistemas operativos de Tiempo Real se usan cuando existen rígidos requerimientos
Sistemas de tiempo real de tiempo. Ejemplos: Sistemas de Control Industrial
Estructura de un sistema operativo

 Sistemas monolíticos: Es la estructura de los primeros sistemas operativos


constituidos fundamentalmente por un solo programa compuesto de un
conjunto de rutinas entrelazadas de tal forma que cada una puede llamar
a cualquier otra.
 Es la estructura utilizada en los primeros sistemas operativos en la que todas
las funciones se implementaban en el Kernel. Puede decirse que su
estructura consiste en que no existe una estructura como tal.
Estructura de un sistema operativo
 Estructura jerárquica – Por capas: A medida que los sistemas operativos fueron creciendo, fue siendo necesaria
una mayor estructuración.
 Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con una clara interface con el resto de elementos.
 Nivel 1: Gestión del procesador. En este nivel se encuentra la parte del sistema operativo encargada de la gestión
de la CPU. En los sistemas operativos multiproceso (es decir, que pueden ejecutar varios procesos a la vez), este
nivel se encarga de compartir la CPU entre los distintos procesos realizando funciones de sincronización,
conmutación de la CPU y gestión de interrupciones.
 Nivel 2: Gestión de memoria. Este nivel es el encargado de repartir la memoria disponible entre los procesos. Se
realizan funciones de asignación y liberación de memoria, y el control de violación de acceso a zonas de memoria
no permitidas.
 Nivel 3: Gestión de procesos. Este nivel es el encargado de la creación y destrucción de los procesos, intercambio
de mensajes y detección y arranque de los mismos.
 Nivel 4: Gestión de dispositivos. En este nivel se realiza la gestión de las entradas/salidas (E/S) en función de los
dispositivos existentes. Entre otras, se encarga de las funciones e creación de procesos de E/S, asignación y
liberación de dispositivos E/S, y planificación de la E/S.
 Nivel 5: Gestión de la in formación. El objetivo de este nivel es el de gestionar el espacio de nombres lógicos,
utilizados para simplificar el acceso a los recursos, ya que mediante estos se sustituyen rutas de acceso que
pueden ser muy largas y difíciles de recordar por un solo nombre, encargándose el sistema operativo, de forma
totalmente transparente para el usuario, de realizar esta búsqueda de ruta. Otro de sus contenidos es la
protección de la información realizando funciones de creación y destrucción de ficheros y directorios, apertura y
cierre de ficheros, lectura y escritura de ficheros, y protección de acceso.
Estructura de un sistema operativo

 Máquina virtual: Se trata de un tipo de sistemas operativos que presentan una


interfaz a cada proceso, mostrando una máquina que parece idéntica a la
máquina real subyacente.
 Estos sistemas operativos separan dos conceptos que suelen estar unidos en el
resto de sistemas: la multiprogramación y la máquina extendida.
 El objetivo de los sistemas operativos de máquina virtual es el de integrar
distintos sistemas operativos dando la sensación de ser varias máquinas
diferentes. El núcleo de estos sistemas operativos se denomina monitor virtual y
tiene como misión llevar a cabo la multiprogramación, presentando a los
niveles superiores tantas máquinas virtuales como se soliciten.
 La principal ventaja de esta estructura reside en que permite implementar
varios tipos de sistemas operativos sobre cada máquina virtual.
 La principal ventaja de esta estructura reside en que permite implementar
varios tipos de sistemas operativos sobre cada máquina virtual.
Estructura de un sistema operativo

 Cliente-servidor (Microkernel): Este sistema sirve para toda clase de


aplicaciones, es de propósito general y cumple con las mismas actividades
que los sistemas operativos convencionales: el núcleo y los procesos,
presentando grandes diferencias en cuanto a la forma de distribuir los trabajos
entre sus distintas partes.
 Suministra mecanismos adecuados para la gestión de:
 Procesos.
 Memoria.
 Comunicación entre procesos.
 El núcleo tiene como misión establecer la comunicación entre los clientes y los
servidores. Los procesos pueden ser tanto servidores como clientes. Por
ejemplo, un programa de aplicación normal es un cliente que llama al servidor
correspondiente para acceder a un archivo o realizar una operación de
entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente
puede actuar como servidor para otro.
Estructura de un sistema operativo
 Sistemas operativos por los servicios ofrecidos
 Monousuarios: Los sistemas operativos monousuario son aquellos que únicamente soportan un usuario a la
vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas
que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se
han clasificado en este renglón.
 Multiusuarios: Los sistemas operativos multiusuario son capaces de dar servicio a más de un usuario a la vez,
ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en
una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de
procesos que cada usuario puede ejecutar simultáneamente.
 Mono tareas: Los sistemas operativos mono tarea son aquellos que sólo permiten una tarea a la vez por
usuario. Puede darse el caso de un sistema multiusuario y mono tarea, en el cual se admiten varios usuarios al
mismo tiempo, pero cada uno de ellos, puede estar haciendo sólo una tarea a la vez.
Estructura de un sistema operativo

 Multitareas: Un sistema operativo multitarea es aquel que permite al usuario


estar realizando varios trabajos al mismo tiempo. Por ejemplo, puede estar
editando el código fuente de un programa durante su depuración mientras
compila otro programa, a la vez que está recibiendo correo electrónico en un
proceso en background. Es común encontrar en ellos interfaces graficas
orientadas al uso de menús y al ratón, lo que permite un rápido intercambio
entre las tareas para el usuario, mejorando para su productividad.
 Mono proceso o uniproceso: Los sistemas mono proceso son los que
únicamente permiten realizar un proceso a la vez. Sin embargo, permiten
simular la multitarea haciendo que el sistema realice una tarea rotatoria con
intercambio muy rápido. Ejemplos típicos de este tipo de sistemas son el DOS y
MacOS.
 Multiproceso: Los sistemas operativos multiproceso son los que permiten realizar
varios procesos simultáneamente y, por tanto, son capaces de ejecutar varias
tareas al mismo tiempo.
Estructura de un sistema operativo

 Por la forma de ofrecer los servicios


 Sistemas centralizados: Hasta que los computadores personales no
tuvieron un precio accesible y suficiente potencia, la mayoría de los
sistemas (UNIX) utilizaban el modelo de proceso centralizado. Con este tipo
de modelo los computadores mainframe se encargaban de todo el
procesamiento y los usuarios manejaban únicamente terminales brutas(es
decir, no disponían de memoria, ni procesador).
 Sistemas de red: Estos sistemas operativos son aquellos que mantienen a
dos o más computadores 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.
 En este entorno, cada computador mantiene su propio sistema operativo y
su propio sistema de archivos local.
Estructura de un sistema operativo

 Sistemas distribuidos: Los sistemas operativos distribuidos son sistemas cuasi


independientes que permiten distribuir los trabajos, tareas o procesos entre
un conjunto de procesadores. Puede ocurrir que este conjunto de
procesadores se encuentre en el mismo equipo o en equipos distintos
(siendo, en este último caso, transparente para el usuario).
 Existen dos esquemas básicos:
 Un sistema fuertemente acoplado es aquel que comparte la memoria y un
reloj global, cuyos tiempos de acceso son similares para todos los
procesadores.
 Un sistema débilmente acoplado es aquel en el que los procesadores no
comparten ni memoria ni reloj, ya que cada uno de ellos cuenta con
memoria local.
Estructura de un sistema operativo

 Sistemas operativos paralelos: En estos tipos de sistemas operativos se


pretende que cuando existan dos o más procesos que compitan por algún
recurso se puedan realizar o ejecutar al mismo tiempo.
 En UNIX existe también la posibilidad de ejecutar programas sin tener que
atenderlos en forma interactiva, simulando paralelismo (es decir, atender
de manera concurrente varios procesos de un mismo usuario). Así, en lugar
de esperar a que el proceso termine de ejecutarse (como lo haría
normalmente), regresa a atender al usuario inmediatamente después de
haber creado el proceso.

También podría gustarte