Capitulo1 sop

50
CAPÍTULO I: Introducción a los Sistemas Operativos IES EL RAVATXOL

Transcript of Capitulo1 sop

Page 1: Capitulo1 sop

CAPÍTULO I: Introducción a los Sistemas Operativos

IES EL RAVATXOL

Page 2: Capitulo1 sop

CAPÍTULO I: Introducción a los Sistemas Operativos

1.1 Objetivos y funciones de los SO1.1 Objetivos y funciones de los SO 1.21.2  Evolución de los SOEvolución de los SO 1.3 Principales logros de los SO1.3 Principales logros de los SO

Page 3: Capitulo1 sop

Introducción a los Sistemas Operativos

Antes de revisar ¿Qué son los Sistemas Operativos? partamos de:¿Cuáles son los elementos de un sistema informático?

Hardware Definido por la Real Academia Española

como el conjunto de elementos materiales que conforman una computadora.

Software Son los programas de aplicación o del

sistema

Personas Usuarios Operadores Administradores

Page 4: Capitulo1 sop

1. SISTEMA OPERATIVO

• Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. • Es un programa que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de una computadora.• Es un medio de interacción entre el usuario y los recursos de la máquina, permitiéndonos abstraernos de su administración.• Es similar a un gobierno, ya que proporciona los medios para el uso apropiado de los recursos. ( proporciona un ambiente dentro del cual otros programas puedan realizar un trabajo útil)

Page 5: Capitulo1 sop

1. SISTEMA OPERATIVO

Al SO se lo puede ver como:

• Asignador de recursos: El sistema computacional tiene muchos recursos de Hardware y Software; por lo cual SO actúa como gestor de recursos y los asigna a programas y usuarios específicos según los necesiten para sus tareas de manera justa y eficiente.• Programa de control: Controla la ejecución de los programas de los usuarios a fin de evitar errores y el uso incorrecto del computador.

Page 6: Capitulo1 sop

1.1 OBJETIVOS DEL SO

1. LA COMODIDAD DEL USUARIO (interacción del usuario con los recursos en un alto grado de abstracción).

2.USO EFICIENTE DE LA COMPUTADORA (Administración eficiente de los recursos)

Page 7: Capitulo1 sop

SERVICIOS DEL SO

• Controlar la ejecución de procesos permitiendo su creación, terminación o suspensión y comunicación• Planificar el uso de la CPU a través del scheduling de procesos.• Asignar memoria principal para el proceso en ejecución• Asignar memoria secundaria para uso eficiente y recuperación de datos del usuario• Permitir el acceso controlado desde los procesos a los dispositivos. • Compartir el hardware entre usuarios.• Permitir a los usuarios compartir datos entre ellos.• Facilitar la entrada /salida

Page 8: Capitulo1 sop

1.2 EVOLUCIÓN SISTEMA OPERATIVO

Los sistemas operativos y la arquitectura de los computadores han influido mucho uno sobre otro, tomando en cuenta que los SO se crearon para facilitar el uso del hardware. Hay que recalcar que los problemas de los SO dieron pie a la introducción de nuevas características de hardware.

Computadores personalesdesde 1980

4Circuitos integrados y multiprogramación

1965 – 1980

3Transistores y sistemas por lotes1955 –

19652

Tubos al vacío, tableros1945 – 1955

1Sistemas mecánicos y electro-mecánicos

hasta 1945

0CaracterísticasAñosGeneraci

ón

Page 9: Capitulo1 sop

PräsentationEdopena 9 Sistemas

Operativos

Generación 0 (hasta 1945)• Ábacos• Calculadoras mecánicas.• Sistemas basados en relés.

Difference Engine (1822)

Primera Computadora Digital (mecánica). Diseñada por Charles Babbage y Ada Lovelace.

Fue usada para calcular: tablas numéricas, funcionesalgebraicas y almacenaba números.

Page 10: Capitulo1 sop

Primera generación (1940-1955)• Se utilizan tubos al vacío• Eran enormes (20.000 tubos) y lentas (un ciclo 1 seg.)• Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina.•Toda la programación se hacía en lenguaje máquina • No existían los sistemas operativos.• En 1950 se introducen las tarjetas perforadas.

Colossus (1945)

Fue usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes.

Page 11: Capitulo1 sop

Segunda generación (1955-1965)• Se introducen los transistores.• Existe distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento.• Mainframes en salas acondicionadas.• Se escribían los programas en papel, luego se perforaban las tarjetas, cuarto de entrada y esperar la salida.• Los operadores toman las tarjetas del programa y colocan también los del compilador.• Se crea el proceso por lotes que agrupa trabajos.

JOHNNIAC (1954) Tarjeta sin perforar

Page 12: Capitulo1 sop

Tercera generación (1965-1980)

• Se introducen los circuitos integrados, lo cual es una gran ventaja en el precio y desempeño del computador.• Se introduce el sistema IBM 360 altamente compatible.• Se introduce el sistema operativo OS/360 (enorme y complejo) que tenía que ser eficiente en todos los equipos. • El sistema operativo tenía muchísimos errores (dinosaurios).• Se introduce la multiprogramación • Se introducen los discos duros y con ello el spooling.• Se introduce el tiempo compartido entre usuarios.

IBM 360 (1964)

Page 13: Capitulo1 sop

Apple I (1976)Apple II (1978)

Page 14: Capitulo1 sop

Cuarta generación (desde 1980)• Usaban LSI (large scale integration). Intel 8080 (8 bits) -> IBM PC (1980) con DOS. Intel 80286 (1983), 80386 (1985) y 80486 (1989). Macintosh creó la GUI (graphical User Interface) Microsoft adopta GUI y desarrolla Windows (sobre DOS) Microsoft saca Windows 95 como sistema operativo, luego Windows 98 (basado en 16 bits), Windows NT (32 bits). Windows NT 5.0 se transformó en Windows 2000 Windows 98 nueva se transformó Windows Me. Windows XPUNIX se mantiene para computadores potentes (servidores)En Pentium Linux es una alternativa a Windows Unix saca las X basado en GUI Se introducen sistemas operativos en red y sistemas operativos distribuidos

IBM PC (1981)

Page 15: Capitulo1 sop

1.2 EVOLUCIÓN

Para profundizar el tema de la evolución de los SO revisemos los siguientes tipos de sistemas:

Sistemas por lotes sencillos.• Los primeros equipos grandes y caros que se controlaban desde una consola.• Dispositivos de entrada comunes eran: lectores de tarjetas y unidades de cinta. • Los usuarios no interactuaban directamente con el computador.(Sólo el operador).• La función del SO era transferir el control automáticamente de un trabajo al siguiente. •El SO estaba siempre residente en memoria.• Para agilizar el procesamiento se agrupaban los trabajos comunes en lotes y se introducían al computador como un grupo.

Page 16: Capitulo1 sop

Sistemas por lotes sencillos.• El SO por lotes sencillo lee un flujo de trabajos individuales, cada uno con sus propias tarjetas de control que predefinen lo que el trabajo hace y su trabajo se imprime en líneas (después de algunos minutos e inclusive horas).

Luego aparece el spooling; el cual tiene efecto benéfico directo sobre el desempeño del sistema (mantiene la CPU como los dispositivos de E/S trabajando con un rendimiento mucho mayor.

Page 17: Capitulo1 sop

•El spooling da origen a una importante estructura de datos: la reserva de trabajos. Lo cual implica la planificación de trabajos.• Lo más importante de la planificación es la capacidad de multiprogramar (aprovechando eficientemente la CPU).• La técnica de permitir varios programas en memoria se la llama multiprogramación.• La multiprogramación debe permitir tomar decisiones por los usuarios, por lo cual son relativamente complejos.

Sistema por lotes Multiprogramados.

Page 18: Capitulo1 sop

Sistemas de Tiempo compartido (Multitarea)

•Time sharing es una consecuencia lógica de la multiprogramación. Se ejecutan varias tareas mientras la CPU se conmuta entre ellos, pero la conmutación es tan frecuente que los usuarios pueden interactuar con cada programa durante su ejecución.• El usuario interactúa directamente con el equipo puede ver los resultados inmediatamente.• Se crearon para brindar el uso interactivo de un sistema de computador a un costo razonable. Utiliza planificación de la CPU y multiprogramación para ofrecer a cada usuario una pequeña porción del tiempo de un computador. • Muchos usuarios pueden compartir el computador al mismo tiempo.

Page 19: Capitulo1 sop

Sistemas monousuario

•Las PC’s (personal computers) son computadoras dedicadas a un solo usuario, que aparecieron en los 70’s.•Eran microcomputadoras más baratas y más chicas que un mainframe. •El abaratamiento no proviene sólo del hardware: el sistema operativo es menos complejo pues es un ambiente de ejecución mucho más simple. • No son ni multiusuario ni multitarea.

Page 20: Capitulo1 sop

 Sistemas paralelos

•Hoy la tendencia es hacia los sistemas multiprocesador.• Es decir, aquellos que cuentan con más de un procesador.•Permiten mejorar el throughput (productividad). No obstante debemos considerar un overhead (carga) adicional por sincronizar estos procesadores y los recursos compartidos a los que acceden.

Page 21: Capitulo1 sop

Sistemas distribuidos

•Los sistemas distribuidos comparte la carga entre varios procesadores.

Las razones para su uso son:

· Compartir recursos. · Aceleración de los cálculos · Confiabilidad· Comunicación

Page 22: Capitulo1 sop

Sistemas de tiempo real

•Cuando los requisitos de tiempo de la operación de un procesador o del flujo son estrictos, por lo que por lo general se utilizan como dispositivos de control en las aplicaciones dedicadas.• Hay dos tipos:

• Sistema de tiempo real duro: Garantiza que las tareas críticas se terminarán a tiempo. Por lo que no se combinan con los sistemas de tiempo compartido.•Sistema de tiempo real blando: El que una tarea de tiempo real crítica goza de prioridad respecto a otras tareas y conserva esa prioridad hasta que se lleva a cabo.

Page 23: Capitulo1 sop

1.3 COMPONENTES

Como se ha visto el SO es el encargado de asignar los recursos necesarios para la ejecución de programas lo cual requiere de un conjunto de componentes que le permiten cumplir su función.

procesosprocesos memoriamemoria entrada/salidaentrada/salida

redesredes protecciónprotección archivosarchivos

Intérprete de órdenesIntérprete de órdenes

Page 24: Capitulo1 sop

1.3 COMPONENTES

Gestión de procesos Gestión de Memoria Principal Gestión de Archivos Gestión de los sistemas de Entrada/Salida Gestión de Almacenamiento Secundario Trabajo con redes Sistema de Protección Sistema de Interpretación de Órdenes

De acuerdo al papel que desempeñan los componentes del SO son:

Page 25: Capitulo1 sop

GESTIÓN DE PROCESOS

Crear y eliminar procesos tanto de usuarios como del sistema .

Suspender y reanudar procesos Proveer mecanismos para la sincronización de

procesos Proveer mecanismos para la comunicación de

procesos Manejo de bloques mutuos (deadlocks).

Se puede pensar en un proceso como una parte o todo un programa en ejecución.Para la ejecución requiere recursos como CPU, memoria, archivos y dispositivos de E/S, asignados al crearse el proceso o durante su ejecución. Las actividades del SO relacionadas con la gestión de procesos son:

Page 26: Capitulo1 sop

GESTIÓN DE MEMORIA PRINCIPAL

Saber que partes de la memoria se están utilizando actualmente.

Decidir cuáles procesos se cargarán en la memoria cuando se disponga de espacio.

Asignar y liberar espacios de memoria según se necesite

Utilizar el almacenamiento secundario como una extensión de la memoria principal.

La memoria principal constituye uno de los recursos principales para el funcionamiento del sistema. Es además, un recurso escaso por el que compiten distintos procesos.Las actividades con la gestión de memoria son:

Page 27: Capitulo1 sop

GESTIÓN DE ARCHIVOS

Crear y eliminar archivos Crear y eliminar directorios Proveer las primitivas para manipulación de

archivos y directorios Establecer la correspondencia de los archivos con

el almacenamiento secundario. Resguardar los archivos en medios de

almacenamiento estables (no volátiles).

Un archivo es un conjunto de datos identificados por un nombre, suelen almacenarse en dispositivos de E/S. El SO establece una correspondencia entre el archivo y los medio físicos. Las funciones son:

Page 28: Capitulo1 sop

GESTIÓN DEL SISTEMA DE E/S

Proporcionar una interfaz uniforme para el acceso a los dispositivos ( independencia del dispositivo)

Proporcionar manejadores para los dispositivos concretos

Tratar automáticamente los errores más típicos para los dispositivos de almacenamiento, utilizar cachés para los discos, planificar de forma optima las peticiones, etc.

El SO tiene como objetivo ocultar las peculiaridades del sistema de los dispositivos hardware específicos de modo que el usuario no las perciba, puesto que la entrada/salida es un conjunto de dispositivos complicados de programar. Las funciones son:

Page 29: Capitulo1 sop

GESTIÓN DE ALMACENAMIENTO SECUNDARIO

El almacenamiento secundario surge con la finalidad de respaldar la memoria principal.

El SO se encarga de las siguientes actividades relacionadas con la gestión de discos.

Administración del espacio libre Asignación del almacenamiento Planificación del disco.

Page 30: Capitulo1 sop

TRABAJO CON REDES

Propios de los SO distribuidos, en los que una colección de procesadores que no comparten memoria, dispositivos periféricos ni reloj. Los diferentes procesadores del sistema se conectan mediante una red de comunicaciones que se puede configurar de distintas maneras. El objetivo del SO con respecto al trabajo con red es:Proporcionar primitivas para conectarse con equipos remotos y acceder de forma controlada a sus recursos : primitivas de comunicación ( enviar y recibir datos) sistema de ficheros en red (ej: NFS) llamada remota al procedimiento (RPC) etc.

Page 31: Capitulo1 sop

SISTEMAS DE PROTECCIÓN

A fin de garantizar que únicamente los procesos que han obtenido la autorización debida del SO pueden operar con los recursos del computador.En éste aspecto los objetivos del SO son:

Definir el esquema general de protección: clases de usuarios, clases de permisos /privilegios, etc. Definir mecanismos de acceso a los recursos: contraseñas, llaves, capacidades, etc. Controlar el acceso a los recursos, denegando el acceso cuando no esté permitido.

Page 32: Capitulo1 sop

SISTEMAS DE INTERPRETACIÓN DE ORDENES

Interfaz entre el usuario y el SO; permite al usuario dialogar con el SO, a fin de facilitar tareas como:

Cargar programas Abortar programas Introducir datos a los programas Trabajar con archivos Trabajar con redesEjemplos: JCL en sistemas por lotes, COMMAND.COM en MS-DOS, shell en UNIX

Page 33: Capitulo1 sop

SERVICIOS

Interfaz entre el usuario y el SO, permite al usuario dialogar con el SO, a fin de facilitar tareas como:

Ejecución de Programas Operaciones de E/S Manipulación de archivos y directorios Comunicación entre procesos Comunicación con equipos remotos Administración de la protección y seguridad Leer el estado del sistema (hora, nº de procesos, etc. )

Page 34: Capitulo1 sop

SERVICIOS ADICIONALES

Aparte de los servicios básicos, el SO puede ofrecer algunas funciones para optimizar el uso del sistema:

Compartición de recursos Contabilidad (accounting).- conocer el consumo de

recursos.

Page 35: Capitulo1 sop

INTERFACES CON LOS SERVICIOS DEL SO

Para el programador: Llamadas al sistema en lenguaje máquina o en alto

nivel(ej. Lenguaje C)Para el usuario: Intérprete de órdenes Programas del sistema.

Page 36: Capitulo1 sop

LLAMADAS AL SISTEMA

El SO ofrece una gama de servicios a los programas. Los programas acceden a estos servicios mediante llamadas al sistema.

Son la interfaz entre el programador en ejecución y el SO. Es la única forma en la que un programa puede solicitar

operaciones al SO.Ejemplo:Windows: Handle = Open File(“minifichero”, ofstruct, OF_READ)UNIX: Fd = open(“mifichero”, O_RDONLY);MS-DOS:Mov ah, servicioMov al, modo

Page 37: Capitulo1 sop

IMPLEMENTACIÓN DE LAS LLAMADAS AL SISTEMA

¿Cómo se implementa la llamada? Habitualmente, mediante una instrucción especial de la

máquina (syscall, int, trap…) La instrucción cambia automáticamente a modo

privilegiado Si programamos en un lenguaje de alto nivel, escribimos la

llamada al sistema como una subrutina, y el compilador la sustituye por la instrucción de máquina correspondiente.

Muchas llamadas necesitan parámetros, ¿cómo los pasamos al SO?

Usando registros de la máquina En una tabla en memoria principal Poniéndolos en la pila (stack)

Page 38: Capitulo1 sop

LLAMADAS AL SISTEMA DE UNIX

Procesos: crear proceso, enviar señal a un proceso, tratar señales, etc.

Memoria: pedir más memoria, liberar memoria… Archivos: abrir, crear, cerrar, leer, escribir, borrar, crear,

directorio, crear enlace, bloquear fichero… Redes: abrir conexión (socket), cerrar conexión… Protección: cambiar permisos, cambiar propietario.

Page 39: Capitulo1 sop

PROGRAMAS DEL SISTEMA

Las llamadas al sistema nos proporcionan una interfaz para el programador; un usuario final interactúa con el sistema operativo mediante programas que han sido previamente compilados. Sí el entorno del SO. Suele proveer programas del sistema para:

Manipular ficheros (ls, cp, dir, etc.) Editar documentos (emacs, edit, etc.) Proporcionar entornos de trabajo (escritorio Windows) Desarrollar programas( compiladores, enlazadores) Comunicarnos con otros equipos (telnet, ftp, etc.).

Page 40: Capitulo1 sop

EL NÚCLEO

Software del Sistema Operativo que reside permanentemente en memoria, atiende las llamadas al sistema.

El núcleo se distingue de los programas del sistema, porque estos utilizan los servicios del núcleo.

Page 41: Capitulo1 sop

ARQUITECTURA DEL SISTEMA OPERATIVO

La arquitectura de un Sistema Operativo se refiere a la organización interna que esté tiene, las mismas que pueden ser: Bloque único y sólido de servicios (Sistema Monolítico) Capas de Software delimitadas y jerarquizadas

(Sistemas por capas) Modelo de Máquinas Virtuales Modelo Cliente-Servidor

Page 42: Capitulo1 sop

SISTEMAS MONOLÍTICOS

Arquitectura Simple, núcleo compacto que tiene todas las rutinas del SO, las mismas están enlazadas entre sí, de tal manera que cada una pueda llamar a otra. Carece de técnicas de protección y manejo de privilegios.

programa programa programa

NÚCLEOLlamadas al sistema

hardware

Page 43: Capitulo1 sop

SISTEMAS POR CAPAS

Arquitectura Modular, define capas o niveles de abstracción, cada uno de los cuáles aprovecha el servicio de la capa inferior.

Es mucho más escalable que el anterior.

programa

capa

capacapa

Page 44: Capitulo1 sop

NIVELES

Nivel Nombre Objetos Operaciones

5 Interprete de lenguajes de ordenes

Datos del entorno

Secuencias del lenguaje de ordenes

4 Sistema de archivos

Archivos, dispositivos

Crear, destruir, abrir, cerrar

3 Gestión de memoria

Segmentos, paginas

Leer, escribir, acceder.

2 E/S Básica Bloques de datos

Leer, escribir, asignar. Liberar.

1 Núcleo o Kernel Procesos semáforos

Crear, destruir, suspender, reanudar, señalizar, esperar.

Page 45: Capitulo1 sop

SISTEMAS POR CAPAS

Cada capa del SO consistiría en la implementación de un objeto abstracto. Datos Operaciones

Es mucho más estable que el anterior.

Operaciones nuevas

Operaciones existentes

Operaciones ocultas

Capa M

Capa M-1

Page 46: Capitulo1 sop

SISTEMA POR CAPAS

VENTAJAS:

Modularidad Depuración y Verificación

Una vez depurada la primera capa se puede dar por sentado su funcionamiento correcto mientras se trabaja con la segunda capa.

Mantenimiento

Es posible por ejemplo cambiar las rutinas de bajo nivel siempre que la interfaz externa de la rutina no cambie y la rutina realice la misma tarea anunciada.

Page 47: Capitulo1 sop

SISTEMA POR CAPAS

DESVENTAJAS: Problema: definición apropiada de las distintas capas. Tienden a ser menos eficientes.

Llamadas entre capaz paso de parametros. En definitiva cada capa implica un gasto extra. Tendencia: Equilibrio, menos capas con más

funcionalidad: Ventajas de la modularidad. Evitan los problemas de definición e interacción

entre capas.

Page 48: Capitulo1 sop

MÁQUINA VIRTUAL

Mediante software, se proporciona a los programas la emulación de un Hardware que no existe.

El software emulador convierte las peticiones hechas a la máquina virtual en operaciones sobre la máquina real.

Se pueden ejecutar varias máquinas virtuales al mismo tiempo (ej. Mediante tiempo compartido).

Los recursos reales se reparten entre las distintas máquinas virtuales.

Page 49: Capitulo1 sop

EJEMPLOS:

IBM VM: ofrecería a cada usuario su propia máquina virtual mono tarea; las m.v se planificaban con tiempo compartido.

Java: los programas compilados en Java corren sobre una máquina virtual (JVM)-

VM Ware: en un PC es capaz de ejecutar al mismo tiempo varias sesiones Windows, Linux, OS/2, etc.

Nachos: S.O. que se ejecuta en una máquina virtual, MIPS, cuyo emulador corre sobre UNIX.

Page 50: Capitulo1 sop

VENTAJAS Y DESVENTAJA

Protección : cada máquina virtual esta aislada de las otras y no puede interferir.

Investigación y desarrollo: se puede desarrollar y ejecutar para u hardware que no tenemos.

Independencia del Hardware (ej. java). Pervivencia de sistemas antiguos (ej. Emuladores MS-

DOS). La implementación de la m.v. puede ser compleja y lenta.