Anda di halaman 1dari 38

Sistemas Operativos Modernos

Mtro. Luis Zárate Palacios


Sistemas Operativos
Instituto de Estudios Superiores de Chiapas
Instituto
Tecnológico

Contenido Temático Tepic

1 Fundamentos Teóricos - Introducción

2 Unix

3 X-Windows

4 Motif
Instituto
Tecnológico
Criterios de Evaluación Tepic

Primer Parcial
 Actividades de Aprendizaje - 40%
 Examen Escrito - 40% 35%
 Participaciones - 20%
Segundo Parcial
 Actividades de aprendizaje - 30%
 Reporte de Practica – 20% 35%
 Examen Escrito - 50%

EXAMEN FINAL 30%

Calificación Final 100%


Instituto
Tecnológico
Tepic

Unidad I: Introducción a los Sistemas


Operativos
Instituto
Tecnológico

Contenido Tepic

1 Definición y Concepto

2 Funciones y Características

3 Evolución Histórica

4 Clasificación

5 Estructura (niveles o estratos de diseño).

6 Núcleo
Instituto
Tecnológico
¿Qué es un Sistema Operativo? Tepic

Un Sistema Operativo es:

1. El código que acompaña la ejecución de


cualquier aplicación.
2. Un programa que actúa como intermediario
entre un usuario y el hardware del computador.
3. Un programa que dirige todos los recursos de
un sistema computacional.
Instituto
Tecnológico
Los Objetivos de un S.O son: Tepic

Acercar el sistema computacional al usuario


facilitando su uso.

Usar el hardware de una manera eficiente


La mejor forma de entender un S.O. Es entender
como se construye.
También ayuda a su comprensión el tener una
visión histórica de su desarrollo
Instituto
Tecnológico
Estructura de un Sistema Computacional Tepic

 El S. O. Es una de las componentes más importantes de


un sistema computacional.

 Un Sistema Computacional es una plataforma sobre la


cual se construyen los llamados Sistemas de Información,
factor clave de competitividad en cualquier organización.

 Un Sistema Computacional está compuesto de: hardware,


s.o., aplicaciones
Instituto
Tecnológico
Componentes del sistema de cómputacional Tepic

Usuario 1 Usuario 2 Usuario N

Aplicaciones

Programas de Sistemas

Sistema Operativo

Hardware

 Hardware - Proveé los componentes básicos de cómputo (CPU,


memoria, dispositivos de E/S).
 Sistema Operativo - Controla y coordina el uso del hardware entre
los varios programas de aplicación para los diferentes usuarios.

 Programas de sistemas- Compiladores, Assembler, Editores,


herramientas de Monitoreo y Mantención

 Aplicaciones - Bases de datos, Juegos, Navegadores, etc.


Instituto
Tecnológico
Observaciones Tepic

No existe una definición precisa de un S.O.


 Los S.O. Existen porque existe la necesidad
de resolver problemas usando sistemas
computacionales
Tampoco existe una definición única sobre
qué contiene y qué no contiene un S.O.
Una definición práctica es que un S.O. es el
código qué siempre se ejecuta y acompaña
la ejecución de las aplicaciones
Instituto
Tecnológico
Componentes del Sistema Operativo Tepic

Manejador de recursos - administra y aloja los


recursos.

Programa de control - controla la ejecución de


los programas de usuarios y las operaciones de los
dispositivos de entrada/salida.

Kernel - el programa que corre en todo momento


(todo lo demas es programa de aplicación).
Instituto
Tecnológico
Por que necesitamos al Sistema Operativo Tepic

• Usuarios: prove interfaces de usuario, interprete de


comandos, estructura de directorios, programas de
utilerias (compiladores, editores, filtros).

• Ambiente de programacion- prove un ambiente de alto


nivel para manejo E/S, manejo de archivos, manejo de
procesos.

• Eficiencia - remplaza al operador en la calendarizacion


de jobs, almacenamiento archivos de E/S, manejo de
concurrencia.
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Evolución (1): Primeros Computadores, década 1940´s


Estructura

• Maquinas ejecutándose desde una consola


• Computadora dedicado a un usuario/ programador a la vez.
• El programa es cargado manualmente por el programador,
usando switches de la consola.
• Tarjetas perforadas o cintas programadas

Primer Software

• Ensambladores, cargadores, linkers , Librerias de subrutinas


comunes
• Compiladores
• Drivers de dispositivos.

Uso ineficiente de recursos

• Máquina cara y permanece bastante tiempo ociosa, debido a


que las personas son lentas. (Baja utilización del CPU)
• Programación & depuración tediosas.
• Mucho tiempo en inicialización del sistema (setup time)
• Cada programa debe incluir código para operar periféricos:
propenso a errores, dependencia de errores.
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Evolución (2): década 1950´s.

Sistemas Batch. Procesamiento se hace en lotes de


tarjetas perforadas o jobs (trabajos).

• El programador no interactúa directamente con el


computador.
• Un job es un lote de tarjetas perforadas por el programador
mediante máquinas especialmente dedicadas para ese
propósito llamadas máquinas perforadoras.
• Reduce el tiempo de inicialización ejecutando en batch jobs
similares.
• Jobs de varios usuarios son ejecutados en secuencia por un
monitor residente. Primer sistema operativo rudimentario.
• Software del sistema: Monitor Residente.
• control inicial en el monitor
• transfiere el control a el primer job
• cuando el job termina se transfiere el control al monitor
• Ejemplo Sistemas de IBM 701 y 704).
Instituto
Tecnológico

Spooling Tepic

 La introducción de la tecnología de discos entrega una


solución: en vez de leer del disco y escribir a la impresora, la
CPU interactúa directamente con el disco.
 Si la CPU necesita leer una tarjeta, lee desde un área del
disco. En forma similar cuando necesita imprimir una línea,
la escribe en el disco
 Esta forma de procesamiento se denomina Spooling
(Simultaneous peripheral operation on-line)
 Observaciones
 El Spooling traslapa la entrada y salida de un job con los cálculos
(CPU) de otro job.
 Tiene un efecto directo e importante en el desempeño ya que
mantienen a la CPU y los dispositivos trabajando a su máxima
velocidad
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Evolución (3): década 1960_1970

 Sistemas de Multiprogramación.
 Monitor residente comienza a llamarse Sistema Operativo.
 Asignación de tiempo de ejecución por ráfagas de CPU. Una
ráfaga es un período de tiempo de uso de CPU y limitado por
tiempos de espera.
 Este debe decidir qué jobs hace avanzar, tratando de maximizar el
rendimiento del computador. Esto se conoce como job
scheduling.
 Se introducen los primeros esquemas de administración de
memoria con particiones y espacio de direcciones lógicos.
 Ventajas: CPU se mantiene mayor tiempo ocupado.
 Desventajas:
 Ausencia de protección entre jobs (en primeras versiones).
 Hardware y S.O. Son más complejos.
 Ejemplos: IBM Systen/360, OS/370.
Instituto
Tecnológico

Sistemas Multiprogramados Tepic

 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
 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
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Monoprogramación

Ráfaga
de CPU
running wait running

Multiprogramación con dos programas

running wait running

running wait running

running running wait running running


Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Diagrama de Estados de un Proceso

fork()
Asigna Memoria,
Idle crea PCB, asigna
(Creación) identificación Zombie

Dispached

Exit
Ready Running
(Listo) (Corriendo)

Wake-up
(despierta) Bloqued
(Read, Write, etc.)
Waiting
(Esperando)
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

PCB (Process Control Block) o Descriptor de Proceso

*nextPCB

Registros CPU

PC
Información
administración
de memoria
Información
administración
de E/S

 En Linux, esta estructura de datos se denomina


task_struct.
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Evolución (4): década 1970


 Sistemas de Tiempo Compartido (Time Sharing).
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
 Trabajo interactivo con el computador a través de terminales.
 Nace el concepto de Proceso.

 Asignación de tiempo de CPU por tajadas de tiempo.

 Ya no se habla de tiempo de despacho de un job, sino que tiempo de respuesta.

 Núcleos monolíticos. Todas las funciones y servicios del sistema operativo están dentro del
núcleo.

 Espacio de direcciones virtuales para cada proceso, utilizando mecanismos de segmentación o


paginación.

 Sistemas Operativos: Unix, VAX/VMS, AS/400.

 Ventaja: Aumento en la productividad de los programadores.

 Desventaja: El procesador es un cuello de botella.


Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Diagrama de Estados de un Proceso (2)

fork()

Asigna Memoria,
Idle crea PCB, asigna
(Creación) identificación Zombie

Dispached

Exit
Ready Running
(Listo) (Corriendo)
Time-out
(fin tajada o
Wake-up quantum)
(despierta) Bloqued
(Read, Write, etc.)
Waiting
(Esperando)
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

Evolución (5)

 Computadores Personales.

 Fines de los años ´70.

 Aparece el microprocesador.

 Sistema Monousuario.

 Sistemas Operativos: CP/M, MS-DOS, Macintosh,

OS/2, Windows.

 Problema: Dificultad para compartir recursos.


Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1980’s. Redes

 Estaciones de Trabajo: (Sun, Vax, Silicon


Graphics).

 Redes de Area Local (Ethernet, Token


Ring, FDDI, ATM), Redes de larga distancia
(Arpanet).

 Redes organizadas como clientes-


servidores.

 Servicios de S.O. Protocolos de


comunicación, encripcion de datos, seguridad,
consistencia en datos distribuidos
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1980’s. Sistemas Distribuidos

 Sistemas Distribuidos - distribuyen el cómputo entre varios


procesadores geográficamente dispersos.

 Sistemas debilmente acoplados - cada procesador tiene su propia


memoria local y el procesador se comunica con los demas
procesadores mediante lineas de comunicación, buses de alta
velocidad y lineas telefónicas.

 Ventajas:
 Compartición de recursos
 Incremento en la velocidad de cómputo
 compartición de carga
 Confiabilidad
 Comunicación
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1980’s. Sistemas Distribuidos

 Sistemas Distribuidos - distribuyen el cómputo entre varios


procesadores geográficamente dispersos.

 Sistemas debilmente acoplados - cada procesador tiene su propia


memoria local y el procesador se comunica con los demas
procesadores mediante lineas de comunicación, buses de alta
velocidad y lineas telefónicas.

 Ventajas:
 Compartición de recursos
 Incremento en la velocidad de cómputo
 compartición de carga
 Confiabilidad
 Comunicación
Instituto
Tecnológico
TAREA Tepic

Hacer 3 equipos en el salón y realizar una exposición sin usar


proyector de los siguientes temas:

- Clasificación de los Sistemas Operativos


- Funciones, Composición y Estructura del Sistema Operativo
- Núcleo (Kernel)

- La exposición contará por lo menos con 20 minutos de exposición


cada una.
- Fechas de Exposición 16 de Junio – Tema 1
- 30 de Junio– Tema 2 y 3

- Enviar en un whatsapp integrantes del equipo


Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1980-1990`s. Sistemas Paralelos

Sistemas paralelos - sistemas de múltiples procesadores con mas de 1


procesador con comunicación entre ellos.

Sistema fuertemente acoplado - los procesadores comparten memoria y reloj;


la comunicación usualmente se realiza mediante memoria compartida.

Ventajas:
Incremento de throughput
Economica
Incremento en la confiabilidad
Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1990`s-2000.

Computo Paralelo (Teraflops).

PC’s poderosas (1.5 GigaHertz) , Computadoras Multimedia.

Redes de Comunicación de distancia mundial, con envio de imágenes,


grandes cantidades de datos, audio y video.

World Wide Web.

Notebooks utilizando tecnologias de comunicación inalambrica: Computo


Mobil.

Computo Embebido y Robotica.


Instituto
Tecnológico
Evolución Historica de los Sistemas Operativos Tepic

1990-2000`s-Sistemas de Tiempo Real


A menudo utilizados como dispositivo de control en aplicaciones dedicadas,
como control de experimentos científicos, sistemas de procesamiento de imagenes
médicas, sistemas de control industrial, etc...

Exige complimiento de restricciones de tiempos.

Sistemas de tiempo real criticos.


Cumplimiento forzoso de plazos de respuesta.
Predecibilidad y analisis de cumplimineto de plazos de respuesta

Sistemas de tiempo real acríticos.


Exigencia “suave” de plazos de respuesta.
Atención lo mas rapido posible a eventos, en promedio.

Ejemplos:
– Sistemas de Control Industrial
– Monitoreo médico
– Control de encendido de motores
– Sistemas de defensa
• El procesamiento se debe hacer con restricciones de tiempo. En caso contrario se
producen fallas
Instituto
Tecnológico
Funciones del sistema operativo Tepic

 • Gestor de recursos (cpu, memoria, ...)


 – Asignación y recuperación de recursos
 – Protección de los usuarios
 – Contabilidad/monitorización
 • Máquina extendida (servicios)
 – Ejecución de programas (procesos)
 – Órdenes de E/S
 – Operaciones sobre archivos
 – Detección y tratamiento de errores
 • Interfaz de usuario
 – Shell
Instituto
Tecnológico
Niveles del sistema operativo Tepic

núcleo (kernel) es la que gestiona los


recursos hardware del sistema y la que
suministra otra la funcionalidad básica del
sistema operativo. Esta capa ha de
ejecutar en modo núcleo, mientras que las
otras pueden ejecutar en niveles menos
permisivos.

La capa de servicios o llamadas al sistema ofrece a los programas unos


servicios en forma de una interfaz de programación o API (application
programming interface). Desde el punto de vista de los programas, esta
capa extiende la funcionalidad de la computadora, por lo que se suele decir
que el sistema operativo ofrece una máquina virtual extendida a los
programas.
La capa de intérprete de comandos o shell suministra una interfaz a
través de la cual el usuario puede dialogar de forma interactiva con la
computadora. El shell recibe los comandos u órdenes del usuario, los
interpreta y, si puede, los ejecuta. Dado que el shell suele ejecutar en nivel
de usuario
Instituto
Tecnológico
Componentes y Estructura del SO Tepic

Gestión de procesos. Encargada de la creación, planificación y destrucción de


procesos.
Gestión de memoria. Componente encargada de saber qué partes de memoria
están libres y cuáles ocupadas, así como de la asignación y liberación de memoria según
la necesiten los procesos.
Gestión de la E/S. Se ocupa de facilitar el manejo de los dispositivos periféricos.
 Gestión de archivos y directorios. Se encarga del manejo de archivos y
directorios y de la administración del almacenamiento secundario.
Comunicación y sincronización en los procesos. Encargada de ofrecer
mecanismos los procesos puedan comunicase y sincronizarse.
Seguridad y protección. Este componente debe encargarse de garantizar la
seguridad de los usuarios y de definir lo que pueden hacer cada uno de ellos con los
recursos del sistema.
Instituto
Tecnológico
Clasificación de los Sistemas Operativos Tepic

 Por su Estructura Interna:

 Estructura Modular (Monolítica): el SO se escribe como una colección


de procedimientos.

 Estructura Microkernel: las funciones principales son controladas por


el núcleo (kernel) mientras que la interfaz del usuario es controlada por
el entorno shell.


Instituto
Tecnológico
Clasificación de los Sistemas Operativos Tepic

 Por la forma en que ofrecen sus servicios:

 SO por Lotes: Los trabajos se reunían por grupos o lotes. Cuando


el trabajo estaba en ejecución, este tenia el control absoluto de la
maquina. Al terminar cada trabajo, el control era devuelto al SO.

 SO de Tiempo Compartido: Permite que varios programas de


usuario se encuentren al mismo tiempo en la memoria principal,
y el procesador es alternado rápidamente de un trabajo a otro.

 SO de Tiempo Real: Procesan las instrucciones recibidas al


instante, y una vez que han sido procesadas muestra el resultado.
Su característica principal es dar respuestas inmediatas.
Generalmente se utilizan en procesos industriales o de control.
Instituto
Tecnológico
Clasificación de los Sistemas Operativos Tepic

 Por la forma en que ofrecen sus servicios:


 SO de Red: Son aquellos sistemas que mantienen dos o mas
computadoras unidades a través de algún medio de comunicación
(físico o no), con el fin de poder compartir los distintos recursos y
la información del sistema
 SO Distribuidos: Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware
y software.
Proporcionan abstracción de maquina virtual a los usuarios.
Permiten distribuir trabajos, tareas o procesos entre un conjunto
de procesadores, el cual pueden encontrarse en un equipo o en
distintos equipos.
Instituto
Tecnológico
Clasificación de los Sistemas Operativos Tepic

 Sistemas Operativos por Servicios:


 Por el numero de Usuarios:
 Monousuarios: Sistemas que atienden a una única tarea de usuario.
 Multiusuarios: Se emplean en redes y cumplen simultáneamente
las necesidades de dos o mas usuarios, que comparten unos mismos
recursos
 Por el numero de Tareas:
 Monotareas: Solo pueden manejar un proceso en cada momento, es
decir ejecutan las tareas una a una.
 Multitareas: Pueden procesar varias tareas al mismo tiempo.
 Por el Numero de Procesadores:
 Uniproceso: Se mantiene un solo procesador
 Multiproceso: Pueden manejar varios procesadores a la vez,
compartiendo la misma memoria y reloj
• Simétricos: Una CPU principal retiene el control global de la
computadora, así como la de los procesadores.
• Asimétricos : No existe una CPU controladora única. Cada
procesador tiene asignado una tarea especifica.
Instituto
Tecnológico
Clasificación de los Sistemas Operativos Tepic

 En función de esta estructura se pueden agrupar los sistemas operativos en


dos grandes grupos: sistemas operativos monolíticos y sistemas operativos
estructurados.
 Sistemas operativos monolíticos
 Un sistema operativo de este tipo no tiene una estructura clara y bien definida.
Todos sus componentes se encuentran integrados en un único programa (el
sistema operativo) que ejecuta en un único espacio de direcciones. En este tipo de
sistemas todas las funciones que ofrece el sistema operativo se ejecuta en un modo
núcleo.
 Estos sistemas operativos han surgido, normalmente, de sistemas operativos
sencillos y pequeños a los que se les ha ido añadiendo un número mayor de
funcionalidades. Esto les ha hecho evolucionar y crece hasta convertirlos en
programas grandes y complejos formados por muchas funciones situadas todas
ellas en un mismo nivel. Ejemplos claros de este tipo de sistemas son MS-DOS y
UNIX
 El problema que plantean este tipo de sistemas radica en lo complicado que es
modificar el sistema operativo para añadir nuevas funcionalidades y servicios. En
efecto, añadir una nueva característica al sistema operativo implica la modificación
de un gran programa, compuesto por miles de líneas de código fuente y funciones,
cada una de las cuales puede invocar a otras cuando así lo requiera.