1
1
2
Contenido de la Asignatura
• Generalidades• Procesos• Sincronización• Gestión de memoria• Gestión de Archivos• Gestión E/S• Multiprocesos• Practicas de Sistemas Operativos (Linux)
2
3
Evaluacion
• Participación…………………….30 %• Asistencia …………………….....20 %• Exposición Individual……...……30 %• Evaluación del Docente…………20 %
Nota: La evaluación del docente puede incluir la ejecución de pruebas cortas o ejercicios calificados
4
Que espera el Docente?
• Una actitud seria y profesional• Deseos de conocer y aprender• Contribuir con sus conocimientos• Asistir a todas las sesiones de instrucción• Asistir y participar los ejercicios prácticos
que se realicen.
3
5
Introducción
• Que es un sistema Operativo• Antecedentes • Un Mundo de Sistemas operativos• El Hardware de las Computadoras• Conceptos relacionados con S.O• Llamadas de Sistema• Estructura del S.O
6
Introducción
• Un sistema de computación consiste de:– hardware– programas de Sistema– Programas de aplicaciones
Dispositivos Físicos
Microarquitectura
Lenguaje de Maquina
Sistema Operativo
Compiladores EditoresInterprete
Comandos
Sistema
Bancario
Reservación
Aérea
Web
Browsers
Hardware
Programas de
Sistema
Programas de
Aplicaciones
4
7
Visión jerárquica de un computador
• Las primeras clasificaciones sólo diferenciaban entre el hardware y el software
• Actualmente una de las estructuras más utilizadas es la siguiente:
Sistema Operativo
Lenguaje ensamblador
Lenguaje de alto nivel
Arquitectura
Lógica digital
8
Que es un Sistema Operativo
Se pueden imaginar un Sistema Operativo como los programas,
instalados en el software o firmware, que hacen utilizable el hardware.
El hardware proporciona la "capacidad bruta de cómputo"; los sistemas
operativos ponen dicha capacidad de cómputo al alcance de los
usuarios y administran cuidadosamente el hardware para lograr un
buen rendimiento.
5
9
Que es un Sistema Operativo
Los Sistemas Operativos son ante todo administradores de
recursos; el principal recurso que administran es el hardware del
computador ;además de los procesadores, los medios de
almacenamiento, los dispositivos de entrada/salida, los dispositivos de
comunicación y los datos.
10
Que es un Sistema Operativo
Un Sistema Operativo es un programa que actúa como
intermediario entre el usuario y el hardware del computador y su propósito
es proporcionar el entorno en el cual el usuario pueda ejecutar programas.
Entonces, el objetivo principal de un Sistema Operativo es, lograr que el
sistema de computación se use de manera cómoda, y el objetivo
secundario es que el hardware del computador se emplee de manera
eficiente.
6
11
Que es un Sistema Operativo
Un Sistema Operativo es un conjunto de programas 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, esto es, un Sistema Operativo
explota y administra los recursos de hardware de la computadora con el
objeto de proporcionar un conjunto de servicios a los usuarios del sistema.
12
Presenta al usuario una máquina abstracta más fácil de programar que el hardware subyacente: ocultando la complejidad, y dando un tratamiento homogéneo a diferentes objetos de bajo nivel (p.ej. archivos, procesos, dispositivos, etc.)
EL SO como máquina virtual
7
13
Controla y protege
los recursos procesadores,
dispositivos de E/S,
memoria, etc.) entre los
programas/usuarios que
compiten por ellos.
El SO como gestor de recursos
14
Hardware
• La realidad tangible es el hardware del computador, que contiene elementos de:– Procesamiento: CPU, DMA,– procesadores de E/S– Memoria: RAM, disco, cintas,..– Dispositivos de E/S: teclado, ratón,– pantalla, impresora,..– Dispositivos de comunicaciones: red– Ethernet, líneas serie y paralelas, ...
8
15
Funciones de los S. O.
• Asignación de tiempo de CPU:– Planificar las diversas actividades.
• Control de recursos:– Asignar recursos de forma racional. P. E. División de la memoria
del ordenador entre los programas, controlar colas de e/s.• Control de entrada/salida:
– Gestionar los datos desde y hacia los periféricos.• Control de los errores y protección:
– Informar de las situaciones anómalas• Interfaz con el usuario:
– Facilita el uso.• Facilidades contables:
– Cálculo de costes de uso de CPU.
16
Tipos de S. O.
• Estructura jerárquica
9
17
Tipos de S. O.
• Sistema operativos por servicios
18
Estructura de un S. O.
• Núcleo• Gestión de la memoria• Control de entrada/salida• Gestión de dispositivos de almacenamiento
masivo• Asignación de recursos y planificación• Protección• Interfaz de usuario
10
19
Núcleo
• Descansa directamente sobre el hardware y proporciona una serie de servicios a las capas superiores del sistema.
• Las tareas principales son:– Manejo de interrupciones– Asignación de trabajo al procesador– Proporcionar una vía de comunicación entre los
diferentes programas
20
Núcleo
• Manejo de interrupciones:– Cuando el hardware detecta una interrupción, el
control se transfiere a este módulo, – el cual analiza el carácter de la interrupción y
toma las acciones apropiadas:• Transferir el control a otro módulo del S. O.• Iniciar otro programa• Continuar la ejecución del programa interrumpido
11
21
Núcleo
• Asignación de trabajo al procesador y comunicación entre programas– El núcleo transfiere el control al programa que el
planificador ha determinado para que sea el próximo en ejecutarse.
– La comunicación entre programas se logra manteniendo una cola de mensajes en espera para cada uno de los programas activos.
– El núcleo recibe los mensajes y los va almacenando en la cola apropiada al destino en cuestión, para distribuirlos cuando el programa destino se active.
22
Núcleo
12
23
• Primera generación 1945 - 1955– Tubos de vacío, tarjetas perforadas
• Segunda generación 1955 - 1965– Transistores, Sistemas de procesamiento
• Tercera generación 1965 – 1980– Circuitos Integrados y Multiprogramación
• Cuarta generación 1980 – presente– Computadoras Personales
Historia de los Sistemas Operativos
24
• En un principio, el SO era sólo un fragmento de código que se enlazaba con los programas, se cargaba todo en memoria, y se ejecutaba con el programa - como una biblioteca en tiempo de ejecución.
• Problema: uso ineficiente de recursos caros (baja utilización de la CPU) ya que el tiempo de preparación de una tarea era significativo.
Historia de los Sistemas Operativos
13
25
Historia de los Sistemas Operativos
Primeros sistemas de procesamiento– Traer tarjetas a 1401– Leer las tarjetas y almacenar en cinta– Poner cinta en la 7094 y procesar– Poner la cinta en 1401 e imprimir una salida
Lector de Tarjetas
Lector de Cintas Cinta
de
Entrada
Procesamiento de Sistema
Cinta de
SalidaImpresora
26
Sistemas de Procesamiento por lotes.
• Cargar el programa en memoria usando Lectora de Tarjetas.
• Establecer la dirección de inicio y Comenzar la Ejecución.
• El sistema está limitado por la velocidad de la E/S.
• Baja utilización de la CPU.• Tiempo de preparación alto
14
27
• Los sistemas por lotes (batch) simples fueron los primeros SO’s reales:– El SO estaba almacenado en memoria.
– Cargaba un único trabajo en memoria (desde el lector de tarjetas).
– Ejecutaba el trabajo (daba su salida)
– Cargaba el siguiente trabajo.
– Las tarjetas de control en el archivo de entrada indicaban al SO que hacer.
• Mejora: spooling -- lectura adelantada de trabajos de cintas o tarjetas.
Sistemas de Procesamiento por lotes.
28
• Estructura de un sistema FMS (Fortran Monitor System ) de 2da generación
Historia de los Sistemas Operativos
15
29
• Sistemas Multiprogramas– Tres trabajos en memoria – 3rd generación
Historia de los Sistemas Operativos
30
Multiprogramación
• Aparecen los controladores e interrupciones• Hay un mejor aprovechamiento de la CPU• Los SO’s Multiprogramados:
– Permiten la ejecución concurrente de trabajos repartiendo en el tiempo los recursos
– Mantienen en memoria principal simultáneamente varios trabajos multiplexandola CPU entre ellos
16
31
• OS/360, VAX/VMS, ...: Los primeros sistemas operativos aparecieron en la era de los mainframes, los grandes computadores de tiempo compartido, durante los años 60.
• UNIX: En los años 70 se desarrolla Unix en los laboratorios Bell (AT&T) por los ingenieros Dennis Rictchie y Ken Thompson. Marco el comienzo de la era de los Minicomputadores, que sustituyeron a los grandes mainframes gracias a su mucho menor coste. Basandose en el Unix original han surgido muchas versiones (sabores) de Unix: AIX, HP-UX, IRIX, XENIX, ULTRIX, SystemV, Solaris, SunOS, XENIX, SCO, BSD, Linux, ...
• MS-DOS: En los años 80 surgieron los primeros computadores personales y con ellos toda una gama de sencillos sistemas operativos. El más significativo fue el MS-DOS de Microsoft, cuya primera versión data de 1981.
• MacOS: En el año 1984 apareció el mítico Apple Macintosh, que incorporaba el primer sistema operativo con interface gráfica para computadores personales. Marco un hito en la historia de la informática personal.
Evolución histórica
32
Evolución histórica
• OS/2: Este sistema operativo de IBM nació a finales de los años 80 y ha sobrevivido hasta los primeros años del siglo XXI. Hoy en día se lo puede considerar casi extinguido.
• Windows NT: El sistema operativo de altas prestaciones de microsoft, diseñado para competir con Unix. Nació en la primera mitad de los años 90.
• GNU/Linux: En 1991 nace Linux, el clon de Unix que ha revolucionado el mundo del software.
• Windows 95/98: Inicialmente Windows era una extensión de MS-DOS que lo dotaba de una interface gráfica pero a partir del año 95, con el lanzamiento de Windows 95, Windows comienza su andadura como sistema operativo de pleno derecho. En la actualidad Windows NT y Windows 95/98 se han fusionado para dar a luz Windows 2000 y Windows XP.
17
33
Un Mundo de Sistemas operativos
• Sistemas Operativos para Mainframes
• Sistemas Operativos para Servidores
• Sistemas Operativos Multiprocesos
• Sistemas Operativos para P.C Personales
• Sistemas Operativos en tiempo real
• Sistemas Operativos Incluidos en dispositivos
• Sistemas Operativos para Tarjetas Inteligentes
34
Arquitecturas de Sistemas Operativos
Los sistemas operativos modernos son complejos y requieren de una organización modular con interfaces bien definidas que faciliten su conexión para formar un núcleo del S.O denominado “Kernel”
Tipos de sistemas:• Simple• Monolíticos• Múltiples capas• Máquina Virtual• Cliente/Servidor y Microkernel
18
35
Sistemas Operativos Simples
• Sistemas monousuarios con funcionalidad básica (p.e. computadores personales antiguos) : MS-DOS
• No existen protecciones ni multiprogramación
• Cualquier fallo de programación hace caer al sistema
• No ofrece modo dual de operación ni protección del hardware (Intel 8088 no lo permitía)
• Actividad asincrónica se maneja a través de rutinas activadas por interrupción (difícil programar)
36
Sistemas Monolíticos
• Permiten multiprogramación y soportan múltiples usuarios
• El sistema operativo es un conjunto de procedimientos que se agrupan en el núcleo
• El núcleo está protegido (modo dual)
• Núcleo tiende a ser de gran tamaño, aumentando las posibilidades de caídas del sistema
• Algunos servicios de más alto nivel pueden ser incorporados a nivel de procesos
UNIX
Son difíciles de comprender, ya que son un único
programa (cientos de MB), por tanto, difíciles de
modificar y mantener
19
37
38
20
39
Sistemas Multicapas
• Permiten una mejor modularización y protección de las componentes del sistema
• Comunicación entre capas se realiza mediante trampas
• Comunicación entre capas introduce mucho costo en la operación (overhead) Los sistemas de
capas son jerárquicos pero los reales son
más complejos
40
Sistemas Maquina Virtual
• Permite crear sobre una máquina varias máquinas virtuales• Cada máquina virtual puede ejecutar un sistema operativo
diferente• Útil para ejecutar programas desarrollados para diferentes
sistemas operativos en una sólo máquina• Estructura muy pesada, usada en mainframes
21
41
Sistemas Cliente/Servidor
• Reduceer el SO a un núcleo mínimo• Implementar la mayoría de las funciones del SO como procesos
de usuario.• Para solicitar un servicio, el proceso de usuario (cliente) envía
un mensaje al proceso servidor, que realiza el servicio y devuelve al cliente una respuesta.
42
Sistemas Cliente/Servidor
22
43
Componentes de un S.O
• Gestión de procesos• Gestión de memoria• Gestión de archivos• Gestión de almacenamiento
secundario• Gestión de E/S• Sistema de protección.
44
Gestión de Procesos
• Un Proceso = una instancia de un programa en ejecución.
• El SO es responsable de las siguientes actividades relacionadas con los procesos:– crear/destruir procesos,– suspender/reanudar procesos,– suministrar los mecanismos para sincronizar y
comunicar procesos.
23
45
Gestión de memoria
• La memoria principal es el almacenamiento de acceso directo para la CPU y los dispositivos de E/S. Es volátil.
• El SO es responsable de: – asignar/liberar memoria a los programas (tanto explícita
como implícitamente)– mantener la pista de las partes de memoria utilizadas
actualmente y quien las usa – decidir cuanta memoria asignar a cada proceso, y
cuando debe ser retirado de memoria un proceso.
46
Gestión de almacenamiento secundario
• El almacenamiento secundario (disco) es la memoria persistente.
• Las rutinas del SO de bajo nivel son responsables de las funciones de disco: planificación de disco, gestión del espacio en disco, gestión de errores, etc.
• La línea entre estas y el sistema de archivos es muy difusa... la gestión del espacio puede pertenecer al sistema de archivos.
24
47
Gestión de E/S
• El SO suministra una interfaz estándar entre programas (usuario o sistema) y dispositivos.
• El sistema de E/S tiene una caché de búferes.• Los manejadores de dispositivos son los módulos
responsables de manejar cada tipo de dispositivo. Un manejador encapsula el conocimiento específico del dispositivo, p.ej., inicialización, control, manejo interrupciones,
• Puede haber un proceso por cada dispositivo o incluso por cada solicitud de E/S, dependiendo del SO particular.
48
Gestión de archivos
• Archivo = colección de información con nombre; es la entidad básica de almacenamiento persistente.
• El sistema de archivos suministra las siguientes operaciones sobre archivos:
• crear/borrar archivos y directorios, • primitivas para manipular archivos y directorios: leer,
escribir, renombrar, ...obtener información sobre las características del archivo.
• También, suministra servicios generales: backup, contabilidad y cuotas, etc.
25
49
Sistema de protección
• La protección hace referencia al mecanismo para controlar los accesos por programas, procesos o usuarios, al sistema o a los recursos de usuario.– El mecanismo de protección debe:– distinguir entre uso autorizado o no,– especificar el control que se debe imponer,– suministrar los medios para su aplicación.
• La protección es un mecanismo general en todo el SO.
50
Modos en que un opera un S.O
• Modo usuario– Modo en el que se sólo se ejecutan las instrucciones de
usuario (no privilegiadas).
• Modo kernel (supervisor o sistema)– Se puede ejecutar cualquier instrucción.– El SO se ejecuta en este modo.– Se cambia de modo (instrucción privilegiada) activando
el bit de modo del registro PSW.– El hardware cambia a modo kernel cuando se produce
una interrupción o excepción
26
51
52
MS DOS
• Desarrollado en 1979• MS DOS, IBM, Bill Gates y Microsoft
27
53
MS DOS
Procesadorde comandos
Usuario
Sistema deTransferencia de
caracteres
Sistema deficheros
Programasde aplicación Utilidades
Controladores dedispositivos Bios
Firmware
Hardware
54
MS DOS
• Procesador de comandos– Interfaz de usuario– Gestionar el sistema de interrupciones– Tratar los errores– Ejecutar los comandos internos del MS DOS
28
55
MS DOS
• Gestión de almacenamiento masivo– Gestión de ficheros del ordenador– Sistemas de directorios
Directorioraíz
Fichero Directorio Fichero Directorio
FicheroDirectorio Fichero Fichero
56
Windows• Interfaz gráfico• Metáfora escritorio• Menús y botones• Teclado y ratón• S: O. Usuario• S. O. Servidores• Historia
– Windows 1.0, 2.0, 3.0– Windows 3.1– Windows 3.11– Windows 95 y 98– Windows NT, 2000 y XP– Windows CE– Windows Pocket PC
29
57
UNIX
• Laboratorios Bell de ATT• S. O. de propósito general• Multiusuario e Interactivo• Soporta multiprogramación y multiacceso
58
LINUX
• Desarrollado por Linus Torvald• Funciona sobre plataformas Intel o Motorola• Se estructura en:
– Núcleo o Kernel: Interactúa directamente con el hardware y reside permanentemente en memoria.
– Shell: Intérprete de comandos. Interfaz entre núcleo y usuario.
– Utilidades o programas de usuario.
30
59
LINUXInterfaz gráfica
60SíMonolíticoMicro-kernelEn desarrolloExokernel
SíModularDistribuídoTrinity College Dublín1996Coyote
NoMonolíticoMultiprogramadoMicrosoft1995/98Windows 95/98
SíMicrokernelDistribuído1994 (En desarrollo)Amoeba
SíMonolíticoMultiprogramadoDarpa1986Mach
SíModularMultiprogramadoMicrosoft1985Windows NT
NoMonolíticoLotes1984Merlin
SíModularMultiprogramado1984Sprite
SíMonolíticoMultiprogramado-Tiempo compartidoRitchie / Thompson1969Unix
SíModularMultiprogramado-Tiempo compartidoMITMultics
SíMonolíticoMultiprogramado-Tiempo compartidoMITCTSS
NoModularMultiprogramado Brinch Hansen de RegenecentralenSolo
NoModularCompletoBrinch Hansen de RegenecentralenRC4000
NoModularLotesUniversidad de EindhovenThe
NoMonolíticoLotesUniversity of Manchester50-60Atlas
MultiusuarioArquitecturaGestión de procesosAutorAñoSistema
Operativo
31
61
Componentes de un Computador personal
Monitor
Bus
62
Eventos síncronos y asíncronos
• Un evento síncrono es aquel que se produce ligado al flujo de ejecución del programa
• Un evento asíncrono es aquel que se produce de un modo independiente al flujo de ejecución del programa
• Los eventos síncronos son reproducibles, cosa que no ocurre con los asíncronos
• Un evento síncrono se desencadena siempre en el mismo punto de un programa si las condiciones son las mismas
• Como ejemplos de los primeros podemos poner los traps y las llamadas al sistema
• Como ejemplo de los segundos tenemos las interrupciones
32
63
Traps• Un trap es un evento síncrono que provoca la
activación automática de un procedimiento iniciado como consecuencia de una condición especial
• El procedimiento ejecutado cuando se produce el trap se denomina manejador de trap
• Ejemplos:– Overflow– División por cero– Violación de acceso a memoria– Fallo de página– Instrucción ilegal, etc.
64
Interrupciones
• Una interrupción es un evento asíncrono que provoca el cambio del flujo de control de un programa
• Al producirse la interrupción se invoca de modo automático a un procedimiento conocido normalmente como manejador de interrupción
• Cada interrupción lleva asociada una prioridad• Vinculadas a las interrupciones existen una serie
de acciones hardware y software que describimos a continuación
33
65
Definiciones
• Proceso: una CPU dedicada a un programa.• Memoria virtual: simula una RAM infinita.• Archivo: memoria permanente de datos con• tipo.• Canal: dispositivo E/S de datos con tipo.• Shell: interfaz de usuario programable …