Download Sistema monolítico Llamadas al sistema
Document related concepts
Transcript
Capítulo 1 Introducción 1.1 ¿Qué es un sistema operativo? 1.2 Evolución de los sistemas operativos 1.3 Tipos de sistemas operativos 1.4 Recordando aspectos hardware 1.5 Conceptos de sistemas operativos 1.6 Llamadas al sistema 1.7 Estructuras de los sistemas operativos 1 Introducción Acceso a periféricos Ruta de datos ALU Registros CPU • Un ordenador consiste de – hardware – Programas del sistema – Programas de aplicación 2 ¿Qué es un sistema operativo? (1) • Es una máquina extendida – Esconde los detalles del hardware – Presenta una máquina virtual: instrucciones del + llamadas al sistema lenguaje máquina – Presenta abstracciones: fichero, proceso, I/O, memoria Por ejemplo: lectura de un fichero (Minix) 3 ¿Qué es un sistema operativo? (2) 4 ¿Qué es un sistema operativo? (3) 2427/* puertos de E/S utilizados por la tarea de floppy disk */ #define DOR 0x3F2 /* bits de control del motor */ #define FDC_STATUS 0x3F4 /* registro de estado controlador */ #define FDC_DATA 0x3F5 /* registro de datos del controlador */ #define DMA_ADDR 0x004 /* puerto 16 bits inferiores dir DMA */ #define DMA_TOP 0x081 /* puerto 4 bits superiores dir DMA */ #define DMA_COUNT 0x005 /* puerto para cuenta de DMA */ #define DMA_M2 0x00C /* puerto de estado de DMA */ #define DMA_M1 0x00B /* puerto de estado de DMA */ #define DMA_INIT 0x00A /* puerto de inicialización de DMA */ 2466 /* bytes de comandos para el controlador de floppy */ #define FDC_SEEK 0x0F /* comando de búsqueda a la unidad */ #define FDC_READ 0xE6 /* comando de lectura a la unidad */ #define FDC_WRITE 0xC5 /* comando de escritura a la unidad */ #define FDC_RECALIBRATE 0x07 /* vete al cilindro 0 */ 2490 /* códigos de error */ #define ERR_SEEK -1 /* error en búsqueda */ #define ERR_TRANSFER -2 /* error en transferencia */ #define ERR_STATUS -3 /* error al obtener el estado */ #define ERR_RECALIBRATE -4 /* error al recalibrar */ #define ERR_WR_PROTECT -5 /* disquete protegido contra escritura */ #define ERR_DRIVE -6 /* algo va mal con la unidad */ 5 ¿Qué es un sistema operativo? (4) • Es un gestor de recursos – – – – – Memoria, procesador, discos, impresoras, … Dispositivos no compartidos (impresora) Protección de memoria ¿Quién utiliza qué recurso? Multiplexación de recursos en tiempo y espacio 6 Evolución sistemas operativos (1) • Primera generación 1945 - 1955 – tubos de vacío, tarjetas cableadas • Segunda generación 1955 - 1965 – transistores, sistemas batch • Tercera generación 1965 – 1980 – circuitos integrados y multiprogramación • Cuarta generación 1980 – hoy – Ordenadores personales 7 Evolución sistemas operativos (2) Primeros sistemas batch – – – – (2ª generación) lleva las tarjetas al 1401 Lee tarjetas a la cinta Monta la cinta en el 7094 que realiza el cálculo Monta la cinta en 1401 que imprime los resultados 8 Evolución sistemas operativos (3) • Un trabajo FORTRAN – 2ª generación 9 Evolución sistemas operativos (4) • 3ª generación: - Multiprogramación - Simultaneous Peripheral Operation On Line - Tiempo compartido: CTSS, MULTICS, UNIX 10 Evolución sistemas operativos (5) • 4ª generación: - Alta escala de integración: microcomputadores - Control Program for Microcomputer - Disk Operating System - MicroSoft Disk Operating System - Graphical User Interface - Windows 3.x, 95, 98, NT, 2000, Me, XP, Vista - Linux (Red Hat, Debian, Caldera, ...) - Sistemas operativos de Red - Sistemas operativos distribuidos • 1.2.5 (leerlo) 11 Tipos de sistemas operativos (1) • Sistemas operativos para mainframe – Batch, transacciones, tiempo compartido – OS/390 • Sistemas operativos para servidores – Servicios de impresión, ficheros, web – Unix, Windows 2000, Linux • Sistemas operativos multiprocesador – Unix, Encore • Sistemas operativos para ordenadores personales • Sistemas operativos de tiempo real – Hard real-time system, soft real-time system • Sistemas operativos empotrados (embarcados) – PalmOS, Windows CE • Sistemas operativos para tarjeta inteligentes 12 Conceptos de sistemas operativos (1) • Proceso – Un programa en ejecución. • Espacio de direccionamiento – Código (texto) – Datos – Pila • Contexto (entrada a la tabla de procesos) – – – – – Registros de la CPU PC, SP, PSW (SR). Tabla de ficheros abiertos Mapa de memoria ....... 13 Conceptos de sistemas operativos (2) • Proceso – operaciones asociadas a un proceso • Crear un proceso (relación padre-hijo) • Terminar un proceso • Comunicación y sincronización entre procesos • Pedir/Liberar memoria • Esperar a que termine uno de los hijos • Cargar una imagen de texto • Establecer/tratar/enviar señales – Un proceso tiene varios identificadores • uid, identificador del propietario del proceso • pid, identificador del propio proceso • gid, identificador del grupo al que pertenece el proceso 14 Conceptos de sistemas operativos (3) • Interbloqueo entre procesos Los interbloqueos se producen por la competencia entre procesos por conseguir los recursos del sistema 15 Conceptos de sistemas operativos (4) • Gestión de memoria – – – – Asignación/Liberación de memoria Mecanismos de protección Gestión de huecos y compactación Gestión de la memoria virtual (paginación, segmentación) • Gestión de dispositivos de E/S – Teclados, monitores, impresoras, discos, ... – Software de E/S independiente del dispositivo (protección, buffering, esquema de nombrado, tamaño de bloque, ...) – Software de entrada salida dependiente del dispositivo (drivers) 16 Conceptos de sistemas operativos (5) • Sistema de ficheros 17 Conceptos de sistemas operativos (6) • Operaciones sobre ficheros – Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ... • Un directorio también es un fichero (árbol) • Un fichero tiene un nombre – Absoluto, desde el directorio raíz (root directory) /Faculty/Prof.Brown/Courses/CS101 – Relativo al directorio de trabajo (working directory) si wk = /Faculty/Prof.Brown, Courses/CS101 Existe una llamada para establecer el directorio de trabajo • Descriptor de fichero – Cuando se abre un fichero, el SO devuelve un identificador 18 Conceptos de sistemas operativos (7) • Sistema de ficheros montado • Antes de montar – Los ficheros del disquete son inaccesibles • Después de montar el floppy en b, – Los ficheros del disquete forman parte del sistema de ficheros 19 Conceptos de sistemas operativos (8) • Tipos de ficheros – Ficheros ordinarios (regulares) – Ficheros especiales • Los dispositivos de E/S se ven como ficheros. – Especial de bloques (por ejemplo, discos, /dev/hd01) – Especial de caracteres (por ejemplo, impresora /dev/lpt) – Tuberías (pipes) • Un pseudofichero • Dos descriptores: para leer y para escribir • Comunican procesos 20 Conceptos de sistemas operativos (9) • Shell – – – – – Intérprete de comandos No es parte del sistema operativo sh, csh, ksh, bash Crea procesos para ejecutar comandos Gestiona las redirecciones (entrada/salida) y pipes $ cat file1 file2 file3 | sort > /dev/lp – Ejecución en background $ cat file1 file2 file3 | sort > /dev/lp & • Seguridad – Bits rwx de los ficheros (3 juegos: propietario, grupo, otros) rwx rwx rwx • 1.5.8 (leerlo) 21 Llamadas al sistema (1) Veremos llamadas en POSIX Son invocaciones de rutinas de biblioteca 22 Llamadas al sistema (2) ¿? Ejemplo: count = read (fd, &buffer, nbytes) 23 Llamadas al sistema (3) 24 Llamadas al sistema (4) • Esqueleto de una shell: while (TRUE) { type_prompt( ); read_command(command, parameters) /* repeat forever */ /* display prompt */ /* input from terminal */ if (fork() != 0) { /* Parent code */ waitpid (-1, &status, 0); } else { /* Child code */ execve (command, parameters, 0); } } /* fork off child process */ /* wait for child to exit */ /* execute command */ 25 Llamadas al sistema (5) 26 Llamadas al sistema (6) 27 Llamadas al sistema (7) Link (a) Antes de que ast haga: link (“/usr/jim/memo”, “/usr/ast/note”) (b) Los mismos directorios después de la llamada al sistema 28 Llamadas al sistema (8) Mount (a) Sistema de ficheros antes de mount (“/dev/fd0”, “/mnt/”, 0) (b) Sistema de ficheros después de la llamada al sistema 29 Llamadas al sistema (9) 30 Llamadas al sistema (10) brk (newDirection) Los tres segmentos de un proceso: texto, datos, pila (La sección 1.6.5 no entra para el examen) 31 Estructura de los S.O. (1) Sistema monolítico Llamadas al sistema 32 Estructura de los S.O. (2) Sistemas por capas Procesos de usuario Procesos servidores Tareas I/O init Proceso de usuario Proceso de usuario Gestor de memoria Tarea de disco Tarea de tty Tarea de reloj Proceso de usuario ....... N4 Gestor de ficheros N3 Tarea del sistema N2 Gestión de procesos ....... N1 kernel Capas del sistema operativo Minix 33 Estructura de los S.O. (3) Máquinas virtuales Estructura del VM/370 con CMS 34 Estructura de los S.O. (4) Exokernels • El exokernel crea N máquinas virtuales y cada una tiene asignado un subset de los recursos hardware de la máquina real. • El exokernel (en modo kernel) valida que el acceso a los recursos sea correcto. 35 Estructura de los S.O. (5) El modelo cliente-servidor 36 Estructura de los S.O. (6) Modelo cliente-servidor en un sistema distribuido (La sección 1.8 no entra para el examen ni las últimas secciones del resto de los temas que sean “investigación en …”) 37