introducción a los sistemas operativos dr. josé raúl fernández del castillo díez antonio...

70
Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Upload: hector-ayala-villalobos

Post on 31-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Introducción a los Sistemas Operativos

Dr. José Raúl Fernández del Castillo Díez

Antonio Navidad Pineda

Page 2: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

El Sistema Operativo 1

• H.M. Deitel : "Un sistema operativo consiste en una serie de programas, dispuestos en forma de software o en la memoria fija que hacen al hardware utilizable. El hardware provee poder computacional básico. Los sistemas operativos ponen ese poder convenientemente a disposición del usuario".

• Stallings (2001): Un Sistema Operativo es un “programa” que actúa como interface entre el usuario y el hardware de un ordenador, ofreciendo el entorno necesario para que el usuario pueda ejecutar programas.

Programas de usuarioProgramas de usuario

Sistema OperativoSistema Operativo

Hardware Hardware

Page 3: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

El Sistema Operativo 2

• Conjunto de programas ponen los recursos hardware al servicio de los usuarios garantizando una gestión la segura y eficaz.

• Conjunto que procesos que se encuentran entre el hardware y el usuario y aplicaciones.

• Entorno para mantener y ejecutar programas. Conjunto de compiladores y herramientas que permiten desarrollar y depurar el código, etc.

• Interface eficaz y amigable para la comunicación con el sistema Gestión eficiente de los recursos Tolerancia a fallos.

Page 4: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Las Máquinas de Babbage

• Primera computadora 1820, Charles Babbage (1792-1871): Sin sistema operativo.

• Máquina diferencial de Babbage y de su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron.

• Considerada por muchos como predecesora directa de los modernos dispositivos de cálculo, la máquina diferencial era capaz de calcular tablas matemáticas.

• La máquina analítica, ideada también por Babbage, habría sido una auténtica computadora programable si hubiera contado con la financiación adecuada.

• En 1991, un equipo del Museo de las Ciencias de Londres consiguió construir una máquina diferencial Nº 2 totalmente operativa, siguiendo los dibujos y especificaciones de Babbage.

Page 5: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Las Máquinas de Babbage

Page 6: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Las Máquinas de Babbage

Page 7: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tarjetas perforadas: El Telar

• En 1870 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar.

• Joseph Marie Jacquard, diseña un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos.

• Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo de población de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos

Page 8: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tarjetas perforadas: El Telar

Page 9: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tarjetas perforadas: El Telar

Page 10: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generación 1 (1938-1953)

Válvulas de vacío. Carente de sistema operativo. Enormes, costosas, alto consumo, poca duración

operando (2horas) y lentas (ms). Arquitectura Von Neumann: descomposición en unidades

funcionales (E/S, un. de control, memoria), representación binaria, programa en memoria

Colossus (1937-1942). • Diciembre de 1943, Bletchley Park, Londres, equipo dirigido por Alan

Turing el primer ordenador digital totalmente electrónico: el Colossus. • 1.500 válvulas.

ABC 1945. • En 1939 (independiente de este proyecto), John Atanasoff y Clifford

Berry construyen un prototipo de máquina electro-mecánica en el Iowa State College (EEUU).

• 18.000 válvulas de vacío • Velocidad de cientos de operaciones por minuto, • Debía ser programado manualmente.

Page 11: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

ENIAC (1943-1946) Electronic Numerical Integrator and Computer .

Calculador e integrador numérico digital electrónico (ENIAC), basado en el ordenador Atanasoff-Berry (ABC, Electronic Numerical Integrator and Computer), patente válida hasta .1973

17.468 válvulas de vacío, 20 registros hechos con válvulas. 32 toneladas de peso, 2,40 de ancho y 30 metros de largo. Las instrucciones se almacenaban dentro de una memoria.

Page 12: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

ENIAC

• El calor de las válvulas elevaba la temperatura del local hasta los 50º.

• Para efectuar diferentes operaciones, debían cambiarse las conexiones (cables) como en las viejas centrales telefónicas, lo cual era un trabajo que podía tomar varios días.

• Era capaz de calcular con gran velocidad la trayectorias de proyectiles, principal objetivo inicial de su construcción.

• En 1,5 segundos podía calcular le potencia 5000 de un número de 5 cifras.

• ENIAC podía resolver 5,000 sumas y 360 multiplicaciones por segundo, pero su programación era terriblemente tediosa y debía cambiársele de tubos continuamente.

Page 13: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda
Page 14: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

El interior de ENIAC

Page 15: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Los Mark

• 1944: Manchester Mark I (primer sistema totalmente digital, programa almecenado digitalmente), Whirlwind en el MIT . 5 toneladas, 500 millas de cable,

Una multiplicación en 3 segs.

• 1947 : Harvard Mark II, basado en relés y con almacenamiento en disco magnético) Desarrollado para la Marina de

USA.

• 1953: Memoria de núcleos de ferrita. Primer sistema de almacenamiento fiable.

Page 16: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Mark II

Page 17: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

UNIVAC

1951 : UNIVAC • Creado para la oficina del censo.• Procesamiento de datos.

Page 18: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

• 1953 Edvac, IBM 701

Page 19: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generación 2 (1954-1963): Transistor y procesamiento por lotes.

Monitor residente, precursor del Sistema Operativo.

RCA 501 (1959) primero computador con SO.

El transistor, creado en 1947 revoluciona los sistemas.

Page 20: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

• 1955 : IBM 650 Primer ordenador producido en serie. Tarjetas perforadas. Memoria de tambor magnético. Palabras de 10-digitos decimales. Cada instrucción con dos direcciones: operador y de la siguiente

instrucción.

Page 21: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Almacenamiento

• 1956 : IBM comercializa el primer disco duro RAMAC 305 (Random Access Method of Accounting and Control).

• Basado en 50 discos de 61 cm de diámetro y una capacidad de almacenamiento de 5 MB.

Page 22: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Integración

• 1958 : Demostración de primer circuito integrado Texas Instruments.

• 1961 : Comercialización de los primeros circuitos integrados fabricados en serie por Fairchild.

• 1963 : Teletype desarrolla la primera impresora de chorro de tinta: la Teletype Inktronic. La version commerciale de cette imprimante disposait de 40 buses fixes permettant d'imprimer des caractères ASCII 80 columnas, 1200 baudios.

Page 23: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generación 3 (1964-1972): Circuito integrado y multiprogramación.

• Chips, Interrupciones, canales de I/O, DMA, memoria cache, protección de MEM y microprogramación.

• Desarrollo de MULTICS UNIC UNIX.

• Durante el desarrollo del proyecto, la programación de una vieja computadora PDP para hacer un “juego” y “jugar” da lugar al lenguaje de programación C.

Page 24: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Ley de Moore

• 1965: Gordon Moore enuncia la Ley de Moore:• El número de transistores disponibles para construir o poblar un

circuito integrado de silicio se duplica cada dos años. • Lograr este crecimiento exponencial en la densidad de los transistores

requiere que el tamaño de los transistores se reduzca cada vez más. • Esta constante reducción trae como

resultado menores costos y un mayor rendimiento de los dispositivos de silicio construidos con estos transistores de menor tamaño.

• No hubo previsión de problemas: Temperaturas. Efectos quánticos.

1965 : ILLIAC IV: Fiasco de IBM No funcionó hasta 1975. 64 procesadores, 1MB. Previsto para 1000 Mflops solo rindió

a 15 MFlops.

Page 25: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

• 1967 : IBM construye el primer lector de disquetes.

• 1968 : Douglas C. Engelbart de Stanford Research Institute, primera demostración de un entorno basado en windows trabajando sobre souris. Procesador de texto, un sistema basado en hipertexto y sistema de trabajo colaborativo en grupo.

• 1968 : Burrough primer ordenador basado en circuitos intégrados, B2500 y B3500.

• 1969 : Creación de la norma RS232. • 1970 : Primera memoria Intel capaz de

almacenar el equivalente de 1024 núcleos de ferrita en un espacio de 0.5 mm (1kBit en 128 octetos)

Page 26: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Intel crea Microprocesadores

• Noviembre 1971 : Intel vende el primer micro 4004. Procesador de 4 bits y 108 KHz

Memoria de 640 octetos60000 instructiones por segundo2300 transistores en tecnología de 10 micrasPrecio : 200 US $

• 1972 : Intel primer microporcesador de 8 bits, 8008. Procesador de 8 bits a 200 KHz

Direccionando 16 KB de memoria60000 instrucciones por segundo3500 transistores en tecnología de 10 micras

Page 27: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generación 4 (1972-1987): Microprocesador.

• Mayo de 1973: Primer microordenador, basado en IBM8008. Circuitos LSI y VLSI

• Abaratamiento del producto: generalización.• Sistemas con multiprocesador. • Sistemas de red (LAN, Internet). Grandes memorias.

Interfaces gráficas.• Sistemas Operativos estándar (UNIX, MS-DOS, Windows...).• Lenguajes lógicos, funcionales...

Page 28: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Algunos hitos

• 1968 : Primera simulación/ rendering 3D.• 1971 : Gary Starkweather primera impresora laser

Xerox PARC. • 1972 : Primer lector de disquettes 5" 1/4. 1973 : IBM inventa

los discos de tipo Winchester.• 1974 : Motorola comercializa el primer microprocesador de

8 bits, el 6800 • 1974 : RCA comercializa el procesador 1802 con una

velocidad de 6.4 MHz. Considerado el primero de arquitectura RISC (Reduced Instruction Set Computer).

• 1976 : Texas Instruments comercializa el primer micro a 16 bits: el TMS 9900.

• 1976 : Zilog comercializa el micro Z80, de 8 bits a 2.5 MHz. • 1978 : Intel empieza la comercialización del micro 16 bits

8086 a 4.77 MHz. 29000 transistores en tecnología de 3 micras, 1 MB de

Ram. Capacidad de 0.33 MIPS y un coste de 360 $. • 1982 : Sony presenta el prototipo del primer lector de

disquetes 3"1/2. • 1982 : Sony y Phillips anuncian el formato CD Audio y CD-

ROM.

Page 29: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tipos de microprocesadores

• CISC: maneja bit a bit. Es el más habitual y posee un conjunto amplio y complejo de instrucciones incluso para los ordenadores más grandes, fue comercializado por la compañía INTEL. Hoy en día hay dos grandes fabricantes de microprocesadores CISC: INTEL (con dos gamas, Pentium y Celeron) y AMD (con dos gamas, Athlon y Duron).

• RISC: maneja “agrupaciones” de bits. El microprocesador de tipo RISC se utiliza para ordenadores más sencillos y reducidos en funciones, por lo que resulta más barato que los anteriores. Un ejemplo es el Power PC desarrollado por Motorola IBM, los chips de IBM y de HP.

Page 30: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Intel vs. Motorola

• 1974 : Motorola comercializa el primer microprocesador de 8 bits, el 6800

• 1979 : Motorola lanza el 68000, con un micro de 16/32 bits con el equivalente de 68000 transistores.

• 1984 : Motorola anuncia el micro de 32 bits M68020.

• 1986 : Primer micro RISC, MIPS R2000, a 8 MHz y una capacidad de computo de 5 MIPS.

• 1971 : Intel vende el primer micro 4004.

• 1972 : Intel primer microporcesador de 8 bits, 8008.

• 1982 : Intel lanza el micro 80286 de 16 bits a 6 MHz, con 134000 transistores, una capacidad de proceso de 0.9 MIPS, direccionando una memoria de 16 MB. Un coste de 360 $.

• 1985 : Intel lanza el micro de 32 bits 80386DX a 16 MHz. 275000 transistores y un direccionamiento de 4 GB de memoria. Coste de 299 $.

Page 31: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generación 5 (1988-)

Computación paralela. Generalización de Internet. Sistemas de red. Sistemas

distribuidos.

Page 32: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Generaciones/revoluciones en Computación

• Primera computadora, Charles Babbage (1792-1871): Sin sistema operativo.• Generación 1 (1938-1953):

Válvulas de vacío. Sin SO. Enormes, costosas, alto consumo, poca duración

operando (2horas) y lentas (ms). Colossus (1937-1942) y ENIAC (1943-1946)

• Generación 2 (1954-1963): Transistor y procesamiento por lotes.

Monitor residente, precursor del SO. RCA 501 (1959) primero computador con SO.

• Generación 3 (1964-1972): Circuito integrado y multiprogramación.

Interrupciones, canales de I/O, DMA, memoria cache, protección de MEM y microprogramación.

Desarrollo de MULTICS UNIC UNIX.

• Generación 4 (1972-1987): Microprocesador. Abaratamiento del producto: generalización. Sistemas con multiprocesador. Sistemas de red (LAN, Internet). Grandes memorias.

Interfaces gráficas.

• Generación 5 (1988-) Computación paralela. Generalización de Internet. Sistemas de red. Sistemas distribuidos.

Page 33: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Objetivos de diseño.

• Interfaz de usuario: llamadas y órdenes.

• Compartición de h/w entre usuarios.

• Compartición de datos entre usuarios.

• Protección de los usuarios.

• Planificación de recursos.

• Facilidad de E/S.

• Recuperación frente a errores.

• Contabilidad de uso.

• Facilidad de operaciones paralelas.

• Organización de datos para acceso rápido y seguro.

• Gestión de comunicaciones de red.

Page 34: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Estructura jerárquica del sistema operativo.

• Introduce simplicidad en el diseño y operación con sistemas operativos.

• Se abordan los problemas en escalones.

• Cada capa ofrece servicios a las capas superiores y esta los recibe de los inferiores

• Se trasladan los servicios de la capa inferior a la capa superior.

• Ventajas: Los detalles de cada capa no son visibles a los demás. Las herramientas que se crean en una determinada capa son utilizables por

el resto. El sistema puede evolucionar con mayor facilidad. Cada capa se puede comprobar y codificar independientemente.

Page 35: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Implementación jerárquica.

• Nivel de gestión del procesador. Compartir la CPU entre los distintos procesos. Sincronización de procesos, conmutación de la CPU, IRQ, configuración y arranque inicial

del sistema.

• Nivel de gestión de la memoria. Repartir la memoria entre los distintos procesos. Realiza control del acceso a las regiones de memoria y gestiona las asignaciones.

• Nivel de gestión de procesos. Gestión de procesos. Creación, destrucción, comunicación, etc. de procesos.

•  Nivel de gestión de dispositivos. Creación de procesos de I/O,

asignación de dispositivos de I/O.

• Nivel de gestión de información. Gestión del espacio de nombres lógicos. Protección de la privacidad. Manejo de ficheros.

Page 36: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Tiene una fuerte dependencia del hardware que se emplea.

• Es la parte más dependiente del hardware del SO.

• Modelos de diseño: Monitores monolíticos y Micronúcleo.

 Funciones. Tratamiento de interrupciones: (oculta a las capas superiores). Conmutación de procesos en la CPU: Rutinas para la gestión de los procesos. Comunicación entre procesos. Carga inicial y activación de la configuración del sistema. Protección: Protección de I/O, protección de memoria, protección de la CPU.

1.2 El núcleo: Concepto.

Page 37: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

1. Protección de I/O: Códigos de control en la entrada ==> el sistema retoma el control de la máquina. El usuario no ha de gestionar I/O. Las instrucciones de I/O se realizan mediante llamadas al sistema que se ejecutan en

modo supervisor (Modo Dual de Ejecución). 2. Protección de memoria.

Ningún programa de usuario puede hacerse con el control del sistema. El sistema operativo SI tiene un acceso total a la memoria de la máquina.

Toda interrupción o llamada al sistema ha de ser ejecutada en modo supervisor (Modo Dual de Ejecución). Esto reclama protección en el vector de interrupciones y sus rutinas (zonas de MEM bajas).

Control en registros base, límite, tablas de página, etc. 3.  Protección de la CPU.

Temporizador: Impide que cualquier programa monopolice el uso de la CPU. Cada cierto intervalo de tiempo (1/60 s) el control es transferido al monitor del sistema.

1.2 El núcleo: Protección.

Page 38: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad.

• El modo con menores privilegios es el modo usuario.

Creación y terminación de procesos. Planificación. Sincronización y comunicación de

procesos. Gestión de bloques de control de

proceso.

1.2 El núcleo: Modos de ejecución.

Page 39: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad.

• El modo con menores privilegios es el modo usuario.

Asignación de espacios de direcciones a procesos.

Swapping. Gestión de páginas y segmentos.

1.2 El núcleo: Modos de ejecución.

Page 40: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Existen instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad.

• El modo con menores privilegios es el modo usuario.

Asignación de buffers.Asignación de canales de I/O y dispositivos.

1.2 El núcleo: Modos de ejecución.

Page 41: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad.

• El modo con menores privilegios es el modo usuario.

Contabilidad.Supervisión.

1.2 El núcleo: Modos de ejecución.

Page 42: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Todo el SO Se diseña como un único módulo formado por distintas funciones que inter-operan. Dependencias entre los componentes internos.

• Un núcleo central (monitor) permite la comunicación entre los procesos de usuario y las I/O (Modo Supervisor).

• Comunicación entre procesos compartiendo memoria.

• La mayor parte del código del sistema operativo se ejecuta en el mismo espacio de memoria ==> fácil corromper datos del sistema.

• Gran velocidad.

• Poca versatilidad.

• Todo el sistema se ejecuta en modo supervisor: poco robusto.

1.2 El núcleo: Diseño Monolítico.

Page 43: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Núcleo reducido. Funciones en procesos de sistema externos al núcleo.

• Varios procesos de servidor: administración de memoria, creación y gestión de procesos, planificación del procesador, gestión de interrupciones, sincronización y comunicación entre procesos.

• Un gran número de procesos del sistema se pueden ejecutar en modo usuario.

• Comunicación mediante intercambio de mensajes. Soporte natural para el proceso distribuido. En sistemas distribuidos son comunes las RPC llamadas a procedimientos remotos y el intercambio de mensajes entre clientes y servidores. Los clientes no necesitan saber si una solicitud es atendida por un servidor local o remoto

• No todos los procesos de sistema comparten el mismo espacio de direcciones.

• Mejor portabilidad / versatilidad.

• Modificación del sistema en caliente.

• Simplifica el sistema operativo base.

1.2 El núcleo: Diseño Micronúcleo.

Page 44: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Page 45: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

UNIX

La familia UNIX

Linux?

Page 46: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

UNIX

La familia UNIX

Linux?

Page 47: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda
Page 48: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Def.: Mecanismos proporcionados por el hardware que rompen la ejecución normal de los programas. Presentes en todos los sistemas. En todos los ordenadores: gestión de errores, desbordamientos, divisiones por cero, etc,

dispositivo está listo, proceso a espera, RESET, reloj del sistema. Interrupción del proceso en ejecución, pasa el control al sistema. En la actualidad varios canales de IRQ, distintos niveles. Se ordenan jerárquicamente las interrupciones para ser procesadas en orden de importancia

cuando se produce una interrupción durante la ejecución de otra (DPC y APC son los niveles más bajos en WNT).

Tipos: Internas síncronas.

• Conocidas como traps. • Las provoca el proceso en ejecución.

Llamadas al sistema. Errores de ejecución. Accesos no permitidos. Divisiones por cero. Fallos de página.

1.3 Interrupciones 1.

Externas asíncronas. •Son las conocidas propiamente como interrupciones.•Se producen fuera del control del proceso de usuario.•El sistema operativo toma el control.

Interrupciones de reloj.Liberación de dispositivos.

Page 49: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos

Pasos de una interrupción.1. El dispositivo emite la IRQ.2. La CPU finaliza la instrucción en curso.3. Se identifica y confirma la existencia de la IRQ, el dispositivo del que procede y la naturaleza

de la IRQ. Se anula la señal de IRQ.4. El hardware salva el contador del programa en la pila.5. Se carga el nuevo contador del programa desde el vector de interrupciones.6. Se salvan los registros.7. Se cambia el valor del puntero de pila.8. Se conmuta el proceso que estaba en estado de espera de esa interrupción a listo y 9. El planificador pasa a seleccionarlo para ejecución.10. Se cede el control al nuevo proceso.11. Tras procesar la IRQ se carga el estado del proceso interrumpido.

Nota: En muchos casos procesar una IRQ no implica el cambio de contexto del proceso.

1.3 Interrupciones 2.

Page 50: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Def.: Interface normalizada entre el sistema operativo y proceso.• Acceso controlado a los servicios de nivel bajo. • Después de recibir la llamada el SO recupera el control. • Tipos:

Control de procesos y trabajos: Ordenes para la creación, destrucción, ejecución, etc. de procesos.

Manipulación de ficheros: Ordenes dedicadas a borrar, leer, escribir,, abrir, cerrar, etc. , ficheros.

Manipulación de dispositivos: Peticiones de atributos, estado (ocupado/libre), lectura, escritura, etc. de dispositivos.

Mantenimiento de información: Fecha, hora, datos y variables del sistema, atributos de dispositivo y de ficheros, etc.

1.4 Llamadas al sistema.

Las llamadas al sistema más comunes (sólo en UNIX) realizadas mediante C son:Abrir: int open (char *fichero, int modo);Cerrar: int close (descriptor);Crear: int creat (char *fichero, int modo);Borrar: int unlink (char *fichero)Leer y escribir: int read (int descriptor, char *buff, ,int nbytes);

int write (int descriptor, char *buff, ,int nbytes);

Page 51: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

• Programas para la resolución de problemas corrientes. Entorno más adecuado para la ejecución de los programas.

• Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios.• Información de estado: Fecha, hora, cantidad de memoria disponible, espacio

en disco, número de usuarios, etc. La información se formatea y se visualiza.• Modificación de ficheros: Editores de textos.• Soporte a lenguajes de programación: Compiladores, ensambladores,

linkadores.• Carga y ejecución de programas: Depuradores y cargadores en memoria.• Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores

de texto, sistemas de análisis estadístico, etc.• Interprete de comandos es el programa más útil de los que acompañan al

sistema operativo. Su función es la de captar el siguiente comando en la línea de ordenes y realizar su ejecución.

1.4 Llamadas al sistema.

Page 52: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Se arranca el programa (llamada al sistema): necesita los nombre de archivos de entrada y salida. Si el programa pregunta por los nombre, escribe la petición en pantalla (llamada al sistema) y leerla del teclado, o leerla del dispositivo de entrada (llamada al sistema).

Apertura del fichero de entrada y creación del de salida (llamadas al sistema) Si se generan errores (archivo1 no existe o disco lleno) (llamada al sistema). Si el fichero de salida existe se puede borrar (llamada al sistema) y se crea uno

nuevo (llamada al sistema), o bien se pide otro nombre al usuario (llamadas al sistema para salidas por monitor y recogida de información).

El copiado de los ficheros se hace mediante llamadas al sistema para la lectura y otras para la escritura.

El proceso se finaliza (llamada al sistema) con las ordenes de cerrar archivos y terminación del proceso (llamadas al sistema).

1.4 Llamadas al sistema: Ej.: Programa de lectura de datos de un fichero y escritura en otro..

Page 53: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Programas para la resolución de problemas corrientes. Entorno más adecuado para la ejecución de los programas.

  Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios. Información de estado: Fecha, hora, cantidad de memoria disponible, espacio en

disco, número de usuarios, etc. La información se formatea y se visualiza. Modificación de ficheros: Editores de textos. Soporte a lenguajes de programación: Compiladores, ensambladores, linkadores. Carga y ejecución de programas: Depuradores y cargadores en memoria. Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores de texto,

sistemas de análisis estadístico, etc. Interprete de comandos es el programa más útil de los que acompañan al sistema

operativo. Su función es la de captar el siguiente comando en la línea de ordenes y realizar su ejecución.

1.5 Programas de sistema.

Page 54: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Tema1: Conceptos básicos.

Comandos Pueden estar implementados en el código del interprete (él hace la llamada

al sistema). Pueden estar implementados en archivos especiales. En este último caso ha de existir un mecanismo para que el interprete de

comandos le pueda pasar argumentos al programa comando.

Shell Las SHELLs no pertenecen al SO. Están al nivel de los compiladores,

linkadores, ensambladores, etc. El nombre SHELL es el nombre del interprete de comandos del UNÍS. En

DOS recibe el nombre de COMMAND.COM. La salida y entrada standard es la terminal. Los comandos son ejecutados como procesos hijos.

1.5 Programas de sistema.

Page 55: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Procesos y planificación

Page 56: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos .

• La primera idea de proceso surge tras el MULTICS (1968).• El sistema ha de gestionar y controlar los procesos. • Definiciones.

Programa en ejecución. Instancia de un programa funcionando en el ordenador. Entidad que puede ser asignada a un procesador y ejecutada por él. Es el conjunto formado por el programa ejecutable, pila, datos, punteros y todo lo necesario para

hacer correr un programa. Unidad de actividad. Ejecución secuencial, estado actual y recursos asignados.

• Se busca: Mejor aprovechamiento de los recursos físicos. Mejor compartición de recursos lógicos.

• Creación de un proceso se realiza por (por la emisión de un trabajo). Login del user. Lanzado por lotes. Creado por el SO. Para un servicio. Generado por un proceso.

2.1 Introducción (1).

Page 57: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Partes del proceso. Programa ejecutable. Datos. Variables, buffer, etc. Contexto. Información para la

administración del proceso por parte del SO. Registro de contador

y datos en la CPU. PCB o Bloque Control Proceso

• Ubicación. Imagen.

• Constituida por el programa y los datos.• Formada según el esquema de gestión de la MEM del sistema.

Para un bloque contiguo: • Datos de usuario (modificable).• Programa a ejecutar (programa de usuario).• Pila del sistema (LIFO). Para el retorno de las llamadas al sistema y a procedimientos.• Bloque de control del proceso (PCB).

2.2 Partes de un proceso.

Page 58: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Multiprogramación: Varios procesos simultáneos (pseudoparalelismo) para compartir recursos y CPU buscando eficiencia.

• Tiempo compartido. Sistema sensible a las necesidades del usuario. Varios usuarios.

• Planificación: Proceso Planificador y Scheduler Distribución adecuada del uso del tiempo de la CPU, equitativa para todo proceso. Eficiencia: Mantener ocupada la CPU al 100%. Tiempo de respuesta mínimo para las peticiones que los usuarios realizan (tiempo

real). Mínimo tiempo de respuesta para la realización de trabajos.

Número máximo de trabajos por unidad de tiempo.

2.3 Conceptos asociados a proceso.

Page 59: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Planificación de procesos

• FirstCome-FirstServerd

• Round Robin.

• Shortest Job First

• Prioridades.

• Prioridades múltiples colas.

Planificación.

Page 60: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Asigna un identificador único (id).

• Asigna espacio. Imagen del proceso (proceso+datos).

• Inicia el PCB. El estado es de listo, el resto de los valores es dado por defecto o nulo.

• Enlaces. Se generan e insertan en las colas de planificación.

• Crean o amplían las estructuras de datos.

2.4 Pasos en la creación de un proceso (1).

Page 61: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Identificador de proceso (único). Será utilizado en las referencias al proceso a MEM, comunicaciones, sistema de archivos, etc.

• Estado (información) del procesador. Registros de la CPU: Visibles por el usuario. Control y estado:

• Contador de programa. • Estado de esperas por IRQ.• Códigos de condición: resultado de operaciones aritméticas.

Puntero a Pila. • Inf. control de proceso.

Planificación: Estado, prioridad, suceso en espera, alg. de planificación. Estructuración (enlaces a otros procesos, similares o padre-hijo). Comunicación. Almacenamiento de Señales, mensajes enviados. Privilegios. MEM, instrucciones, recursos. Punteros a MEM, tablas de páginas, segmentos, etc. Recursos asignados, historial.

• Área de salvaguarda de registros (c. de contexto).

2.4 Pasos en la creación de un proceso (2). Atributos..

Page 62: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

1. El proceso no puede continuar la ejecución. Realiza una llamada al sistema y este lo descarga.2. y 3. El planificador decide descargar o cargar el proceso. La elección del proceso a entrar en la CPU se realiza solo de entre los procesos que están listos para ejecución.4. El proceso sale de su bloqueo/espera, se lo notifica al sistema operativo y pasa a formar parte de la cola de procesos listos para ejecución.

2.5 Estados de un proceso (1).

Page 63: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Planificación

a largo plazo

Planificación

a largo plazo

Planificación

a medio plazo

Planificación

a corto plazo

Planificación

a medio plazo

Nuevo

Listo/suspendido

Bloqueado

Listo Ejecutando Salida

Bloqueado/suspendido

Planificación y transiciones de estado de los procesos.

Page 64: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Observaciones: Los procesos pasan la mayor parte de su vida esperando por una I/O. Los procesos en ejecución ocupan memoria. El grado de multiprogramación en relación con la capacidad de la CPU es bajo. Solución: Intercambio (swap).

• Def. Intercambio (swapping) es el desplazamiento de un proceso de memoria principal al disco duro.

• Es necesario un planificador de la carga y descarga de procesos de memoria a disco.

• Proceso Suspendido: No estará disponible de inmediato para su ejecución. Proceso situado en Suspendido por el SO o por él mismo para evitar su ejecución. Un proceso que no puede liberarse del estado hasta que se le ordene. Para un proceso Suspendido el cambio de bloqueado a listo no implica que deje de

estar Suspendido.

2.5 Estados de un proceso (2).

Page 65: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Actuaciones del Sistema sobre los procesos

Crear (carga de programa e inicio de ejecución) Destruir (fin de la ejecución) Suspender Reanudar Cambiar prioridad Bloquear (pasaje de ACT a BLOQ) Despertar (pasaje de BLOQ a LISTO) Despachar (pasaje de LISTO a ACT)

• Suspensión. Equilibrar la carga del sistema (ante sobrecargas) En lugar de abortar un proceso que puede estar funcionando mal. del sistema) proceso suspendido no puede proseguir hasta que otro lo reanude.

Page 66: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

2.5 Estados de un proceso (3). Cambio de proceso.• Interrupción.

Interrupción de reloj: Finalización del tiempo concedido por el sistema. Interrupcuón de I/O: Modificación del estado de procesos en ejecución a bloqueado

o liberación de los procesos en espera. Fallo de memoria.

• Traps. Error o condición excepcional. Provocadas por el proceso en curso. Fatal terminación de proceso.

• Llamada del supervisor / llamada al sistema.Pasos en un cambio de proceso:

1. Salvar el contexto del procesador (contador y registros).2. Actualizar el Bloque de C. del proceso en ejecución (estado de ejecución a listo o

bloqueado, etc.) junto con info. de la razón del cambio.3. Mover el BCP a la cola apropiada a su estado.4. Seleccionar otro proceso para ejecución. 5. Actualizar el BCP del proceso seleccionado (modo ejecución). 6. Actualizar la información de la gestión de la memoria.7. Restaurar el estado del procesador para el nuevo proceso.

Page 67: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

Los procesos comunes son independientes, con espacios de memoria separados. En determinadas ocasiones se necesita que los procesos colaboren.

Def. Entidad básica de ejecución que únicamente posee como propio el contador de programa, los registros del procesador y la pila.

Los hilos pertenecen a una unidad de mayor nivel, la tarea. La tarea carece de capacidad de ejecución, pero dispone de recursos. La tarea en ejecución ha de

poseer al menos un hilo.

Proceso = tarea con único hilo

Ventajas: Menor coste de creación: Menores estructuras de información. Recursos de la tarea. Cambio de contexto dentro de la tarea es poco costoso. Comunicación ágil (MEM). No interviene el núcleo.

Estructura. Área de programa (RO) de instrucciones. Área de datos o variables (RW). Heap para asignación dinámica de MEM. Compartida. Pila para cada hilo

2.6 Hilos o threads (1).

Page 68: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

Proceso Hilo

Page 69: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda

2. Procesos.

• Elementos por hilo Contador de programa Pila Conjunto de registros Hilos hijos Estado

• Elementos por proceso Espacio de direcciones Variables globales Archivos abiertos Procesos hijos Cronómetros Señales Semáforos Información contable

2.4 Hilos o threads (2).

Los hilos.• Estado de ejecución.• Contexto del procesador.• Pila de ejecución.• Variables locales.• Acceso a MEM y variables del proceso.

Page 70: Introducción a los Sistemas Operativos Dr. José Raúl Fernández del Castillo Díez Antonio Navidad Pineda