Download Tema 1. Introducción
Document related concepts
Transcript
14/10/2009 INGENIERÍA Chapter 1: INFORMÁTICA Introduction SISTEMAS OPERATIVOS M. Teresa Higuera Toledano Departamento de Arquitectura de Computadores y Automática Facultad de Informática Universidad Complutense de Madrid Tema 1 Introducción 1 14/10/2009 Introdución ¿Qué es un sistema operativo? Tipos de sistema operati operativos os Arranque del sistema operativo Estructura de los sistemas operativos Conceptos de los sistemas operativos Llamadas al sistema ¿Qué es un sistema operativo? Un programa que actua como intermediario entre el usuario y el hardware del computador computador.. Objectivos del sistema operativo: • • Ejecutar programas y facilitar la solución de los problemas del usuario Hacer un uso conveniente del computador Usar el computador de forma eficiente Proporcionar una máquina virtual extendida 2 14/10/2009 ¿Qué es un sistema operativo? Usuario 1 Usuario 1 Usuario 1 Ensamblador Compilador Editor Usuario 1 … … Bases de datos PROGRAMAS DEL SISTEMA Y APLICACIONES SISTEMA OPERATIVO ARQUITECTURA SUBYACENTE ¿Qué funciones realiza? Gestor de recursos (UCP, memoria, ...) • • • • Asignación g y recuperación p de recursos Protección de los usuarios Contabilidad/monitorización Soporte de usuario 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 3 14/10/2009 ¿Qué funciones realiza? Funcionamiento del computador • • Una o más CPUs, controladores de dispositivo conectados a través de un bús común que proporciona acceso a la memoria compartida Ejecución concurrente de la de CPUs y de los dispositivos que que compiten por los ciclos de memoria CPU Control C l sonido Control USB adaptador d d gráfico MEMORIA Evolución de los sistemas operativos 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 4 14/10/2009 Evolución de los sistemas operativos Primeros sistemas batch (2ª ( generación) g ) 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 el 1401 que imprime los resultados Evolución de los sistemas operativos TRABAJO 1 TRABAJO 2 PARTICIONES DE MEMORIA TRABAJO 3 SISTEMA OPERATIVO Multiprogramación (3ª generación) Simultaneous Peripheral Operation On Line Tiempo compartido: MULTICS, UNIX 5 14/10/2009 Evolución de los sistemas operativos Sistemas abiertos (4ª generación) Disk Operating System MicroSoft Disk Operating System (MS(MS-DOS) Graphical User Interface Windows 3.x, 95, 98, NT, 2000, Me, XP Linux (Red Hat, Debian Debian,, Caldera, ...) Sistemas operativos de Red Sistemas operativos distribuidos Introdución ¿Qué es un sistema operativo? Tipos de sistema operati operativos os Arranque del sistema operativo Estructura de los sistemas operativos Conceptos de los sistemas operativos Llamadas al sistema 6 14/10/2009 Tipos de sistemas operativos Batch: ejecuta los procesos de usuario por “lotes” Interactivo: ejecuta los procesos interactuando con el usuario Tiempo Real: ejecuta procesos de tiempo real ((responden p a eventos dentro de un cierto período p de tiempo) Distribuido: el SO se ejecuta en una red de ordenadores pero el usuario opera como si el sistema fuera uno solo. Tipos de sistemas operativos Sistemas operativos para mainframes Batch, transacciones transacciones,, tiempo compartido: compartido: OS/390 Sistemas operativos para servidores Servicios de impresión impresión,, ficheros, ficheros, web: Unix, Windows 2000, Linux Sistemas operativos multiprocesador Ordenadores paralelos paralelos,, multicomputador, multicomputador, multiprocesador: Encore multiprocesador: Sistemas operativos para ordenadores personales personales:: CPM, C MS MSS-DOS, OS Windows Sistemas operativos de tiempo real Hard realreal-time system, soft realreal-time system: RTEMS Sistemas operativos empotrados empotrados:: PalmOS PalmOS,, Windows CE, Androide 7 14/10/2009 Tipos de sistemas operativos Nº procesos 1 Nº usuarios 1 más de 1 Monoproceso Monousuario Multiproceso Monousuario Multiproceso Multiusuario más de 1 Tipos de sistemas operativos Sistemas operativos para sistemas paralelos (muy y acoplados) p CPU CPU CPU CPU RAM 8 14/10/2009 Tipos de sistemas operativos Sistemas operativos para sistemas distribuidos (poco p acoplados) p LAN WAN Tipos de sistemas operativos Sistemas operativos de tiempo real Control industrial Misiles Sistemas multimedia Si un evento no se trata en el tiempo especificado (muy pequeño) ¡EL SISTEMA FALLA! Se requiere un sistema capaz de responder dentro de un tiempo limitado 9 14/10/2009 Tipos de sistemas operativos Sistemas de tiempo real 2 niveles de exigencia TR RIGUROSO (hard real time) TR MODERADO (soft real time) Poca memoria secundaria Mezcla de tareas muy distintas Caché, ROM No sirven para control industrial S.O. muy simple Útiles para: Multimedia Realidad virtual Introdución ¿Qué es un sistema operativo? Tipos p de sistema operativos p Arranque del sistema operativo Estructura de los sistemas operativos Conceptos de los sistemas operativos Llamadas al sistema 10 14/10/2009 Arranque del computador • El Reset carga valores predefinidos en registros • CP <- dirección de arranque del cargador ROM • Se ejecuta el cargador ROM del sistema – Test del sistema – Trae a memoria el boot del SO Unidad de Memoria Dirección 0 2.047 Unidad de Memoria Celdas Dirección Celdas 0 Zona ROM 1.046.528 1.048.575 1.048.575 Zona ROM • En el caso del PC la ROM contiene, además, sw de E/S (BIOS) Arranque del Sistema operativo • El SO está almacenado en el disco Programa cargador (identificador) Disco Sistema Operativo 11 14/10/2009 Arranque del sistema operativo • El cargador ROM carga el sector de boot del SO y le da control • El boot del SO carga el SO residente y da control al programa de arranque del SO SO, que: – Comprueba el hardware – Comprueba el sistema de ficheros – Establece las tablas del SO – Crea procesos (según el tipo de SO) • Proceso INIT • Procesos o tareas del sistema (demonios) • Procesos de login (uno por terminal) – Tras la autenticación, el proceso login se convierte en shell Parada del sistema • Parada del sistema: Copia a disco de la información necesaria mantenida en memoria por razones de eficiencia; si no se efectúa así,, e as el s sistema ste a queda co corrompido o p do y e en e el p próximo ó oa arranque a que debe ser “reparado”. • Hibernación: copia a disco de la imagen completa de memoria principal ; rearranque rápido a la misma situación de apagado. • Suspensión: (Standby): apagado de casi todo excepto la memoria; reanudación instantánea. 12 14/10/2009 Capítulo 1: Introdución ¿Qué es un sistema operativo? Tipos p de sistema operativos p Arranque del sistema operativo Estructura de los sistema operativos Conceptos de los sistemas operativos Llamadas al sistema Niveles de los sistemas operativos HW 13 14/10/2009 Estructuras de los SO Sistema monolítico: OS OS--360, MSMS-DOS, UNIX, LINUX PROCEDIEMIENTO PRINCIPAL PROCEDIEMIENTOS Llamadas al sistema DE SERVICIO PROCEDIEMIENTOS DE UTILIDAD Estructuras de los SO Sistemas por capas: OS/2, Minix init Proceso de usuario Proceso de Proceso de usuario usuario Gestor de memoria Kernel Tarea de disco Tarea de reloj … Gestor de ficheros Tarea sistema Tarea de tty … GESTIÓN Ó DE PROCESOS 14 14/10/2009 Estructuras de los SO Máquinas virtuales: VM/370, VMWare VMWare,, KVM Máquinas virtuales 370 Instrucciones de E/S Trap Llamadas al sistema CMS CMS CMS Trap VM/370 Hardware subyacente y del 370 Estructuras de los SO El modelo cliente cliente--servidor: Mac OS X Proceso Cliente Proceso Servidor Servidor … Cliente de procesos de terminal Microkernel Servidor Servidor de fichero de memoria Modo usuario Modo kernel 15 14/10/2009 Estructuras de los SO El modelo cliente cliente--servidor en un sistema distribuido: Amoeba, Amoeba, Middlewere:: Java Middlewere Java--RMI, CORBA, DCE, DCOM Máquina 1 Máquina 2 Máquina 3 Máquina 4 Máquina 5 Proceso Cliente Servidor de procesos Servidor de terminal Servidor de fichero Servidor de memoria kernel kernel Mensaje desde el cliente al servidor kernel kernel kernel RED Capítulo 1: Introdución ¿Qué es un sistema operativo? Tipos p de sistema operativos p Arranque del sistema operativo Estructura de los sistemas operativos Conceptos de los sistemas operativos Llamadas al sistema 16 14/10/2009 Conceptos de sistemas operativos GESTIÓN DE PROCESOS Proceso: Un programa en ejecución Espacio de direccionamiento Contexto (entrada a la tabla de procesos) Operaciones asociadas a un proceso Identificadores asociadas a un proceso Conceptos de sistemas operativos Espacio de direccionamiento Programa ejecutable (texto) Datos Pila Contexto (entrada a la tabla de procesos) Registros de la CPU PC, SP, PSW. Tabla de ficheros abiertos Mapa de memoria ....... 17 14/10/2009 Conceptos de sistemas operativos Los tres segmentos de un proceso: texto, datos, pila FFFF Pila brk (newDirection) Datos Texto 0000 Conceptos de sistemas operativos Operaciones asociadas a un proceso Crear un proceso (relación padrepadre-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 Identificadores asociados a un proceso uid uid,, identificador del propietario del proceso pid pid,, identificador del propio proceso gid gid,, identificador del grupo al que pertenece el proceso 18 14/10/2009 Conceptos de sistemas operativos COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Proceso de Usuario Proceso de Usuario Proceso de Usuario Proceso de Usuario SO SO SO UN COMPUTADOR DOS COMPUTADORES Conceptos de sistemas operativos • Servicios de comunicación: comunicación: – – – – Crear el mecanismo de comunicación Enviar datos a un proceso Recibir datos de un proceso Destruir el servicio de comunicación • Servicios de sincronización: sincronización: – – – – Crear el mecanismo de sincronización Bloquear un proceso hasta que ocurra un evento Despertar a un proceso bloqueado Destruir el mecanismo de sincronización 19 14/10/2009 Conceptos de sistemas operativos • Comunicación síncrona síncrona:: – Los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo Proceso B Avanza la ejecución Proceso A Proceso B Proceso A enviar Espera recibir recibir El proceso A espera al B enviar Espera El proceso B espera al A • Comunicación asíncrona – Los dos procesos no tiene que ejecutar los servicios de comunicación al mismo tiempo Conceptos de sistemas operativos INTERBLOQUEOS: Se producen por la competencia entre procesos por conseguir los recursos del sistema 20 14/10/2009 Conceptos de sistemas operativos 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) Conceptos de sistemas operativos • Memoria: Memoria: vector enorme de palabras o bytes, cada uno con su propia dirección. dirección. – Compartido por UCP y dispositivos E/S. – Volátil: V látil: pierde Volátil i d su contenido t id sii ell sistema i t f ll . falla. falla • El SO tiene la responsabilidad de gestionar los siguientes aspectos de la memoria memoria:: – Mantener un mapa de las partes de memoria en uso y saber quién las está usando usando.. – Decidir qué procesos se deben cargar, cargar, y dónde, dónde, cuando hay memoria disponible disponible.. – Asignar y liberar espacio de memoria cuando sea necesario necesario.. – Ofrecer servicios para que los procesos puedan compartir memoria.. memoria 21 14/10/2009 Conceptos de sistemas operativos GESTIÓN DE DISPOSITIVOS DE E/S Teclados, monitores, impresoras, discos, ... Software de entrada salida dependiente del dispositivo (drivers) Software de E/S independiente del dispositivo (protección, buffering,, esquema de nombrado, tamaño de bloque, ...) buffering Conceptos de sistemas operativos • El gestor de E/S está formado por por:: – Un sistema global de almacenamiento intermedio en memoria memoria.. – Manejadores genéricos genéricos,, uno por cada clase clase,, de dispositivos. dispositivos. – Manejadores específicos para cada dispositivo dispositivo.. • Almacenamiento secundario no volátil en dispositivos rápidos de E/S (discos) como respaldo de la memoria memoria.. • El SO tiene la responsabilidad de gestionar los siguientes aspectos de la E/S y el almacenamiento secundario: secundario: – Traducir peticiones a formato de manejador manejador.. – Copiar C i memoria i de/a d / memoria i a/de /d controlador controlador. t l d . – Controlar operaciones por DMA. – Controlar dispositivos de E/S serie: serie: teclado teclado,, ratón, ratón, etc. – Asignación y liberación de espacio espacio.. – Planificación de accesos a los dispositivos. dispositivos. 22 14/10/2009 Conceptos de sistemas operativos GESTIÓN DEL SISTEMA DE FICHEROS Estructura del sistema de ficheros Operaciones sobre ficheros Nombres de ficheros Descriptor de fichero Tipos de ficheros Conceptos de sistemas operativos • Archivo: Archivo: conjunto de información lógicamente relacionada y definida por su creador creador.. • Directorio: Directorio: conjunto de identificadores lógicos de archivos y su relación con identificadores internos del SO. • Archivos frecuentes: frecuentes: programas (fuentes y ejecutables) ejecutables) y datos datos.. • El SO tiene la responsabilidad de gestionar los siguientes aspectos del servicio de archivos archivos:: – Creación y borrado de archivos y directorios. directorios. – Primitivas para manipular archivos y directorios. directorios. – Proyectar los ficheros sobre almacenamiento secundario. secundario. – Hacer respaldo de archivos sobre dispositivos estables y no volátiles.. volátiles 23 14/10/2009 Conceptos de sistemas operativos ABSTRACCIÓN LÓGICA DEL SF Posición Visión lógica Archivo A Bloques: 13 20 1 8 3 16 19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Bloques de la Unidad de Disco Visión física Conceptos de sistemas operativos Estructura: Árbol. Un directorio también es un fichero 24 14/10/2009 Conceptos de sistemas operativos Operaciones sobre ficheros Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ... Cada fichero tiene un nombre Absoluto, desde el directorio raíz (root directory) directory) /dacya/ssoo/grupoA Relativo al directorio de trabajo (working directory) directory) si wk = /dacya/ssoo, grupoA Existe una llamada para establecer el directorio de trabajo Descriptor de fichero (file descriptor) descriptor) Cuando se abre un fichero, el SO devuelve un identificador Conceptos de sistemas operativos Tipos de ficheros Ficheros ordinarios Ficheros especiales. Los dispositivos de E/S se ven como ficheros ordinarios: Especial de bloques (discos /dev /dev/hd01) /hd01) Especial de caracteres (impresora /dev /dev//lpt) lpt) Pipes Un pseudofichero Dos descriptores: para leer y para escribir Comunican procesos Proceso A Proceso B pipe 25 14/10/2009 Conceptos de sistemas operativos SEGURIDAD Y PROTECCIÓN • Protección: Protección: controlar accesos a los recursos de usuario y sistema sistema.. – Distinguir entre uso autorizado y no autorizado. autorizado. – Especificar los controles de acceso a llevar a cabo cabo.. – Proporcionar métodos de control de acceso acceso.. • Seguridad Seguridad:: proteger al sistema de un uso indebido. indebido. – Autenticar a los usuarios. usuarios. – Evitar amenazas al sistema (gusanos gusanos,, virus, piratas, piratas, fuego,, etc.) fuego – Evitar la intercepción de comunicaciones comunicaciones:: cifrado cifrado,, canales seguros,, etc. seguros Conceptos de sistemas operativos Shell: Intérprete de comandos No es parte del sistema operativo sh, h csh, h ksh, k h bash b h Crea procesos para ejecutar comandos Gestiona las redirecciones cat file1 file2 file3 | sort > /dev/lp Entrada/Salida Pipes Ejecución en background cat file1 file2 file3 | sort > /dev/lp & Seguridad: Bits rwx de los ficheros (propietario, grupo, otros) rwx rwx rwx 26 14/10/2009 Conceptos de sistemas operativos ACTIVACIÓN DEL SO • Fuentes de las peticiones peticiones:: – – – – Mandatos de los usuarios interpretados por el shell Llamadas al sistema emitidas por los programas Interrupciones producidas por los periféricos Condiciones de excepción o error del hardware • Forma de solicitar los servicios servicios:: – Por llamada CALL problema de seguridad – Por interrupción o trap – Rutina de biblioteca biblioteca:: • Instrucciones de máquina que preparan la llamada Llamadas al sistema Llamadas en POSIX: Son invocaciones de rutinas de biblioteca PROCESOS DE USUARIO Y PETICIONES E SERVICIO INTERFAZ DEL SO so 27 14/10/2009 Conceptos de sistemas operativos Avanza la ejecución FASES EN LA ACTIVACIÓN DEL SO Proceso A Se solicita el SO Salva el estado del proceso A Sistema operativo Realiza la función pedida Planificador Activador Proceso B Introdución ¿Qué es un sistema operativo? Tipos p de sistema operativos p Arranque del sistema operativo Estructura de los sistemas operativos Conceptos de los sistemas operativos Llamadas al sistema 28 14/10/2009 Llamadas al sistema Interfaz entre aplicaciones y SO. Generalmente son funciones en ensamblador. nivel Actualmente en lenguajes de alto nivel. Servicios típicos del sistema operativo Gestión de procesos Gestión de procesos ligeros (threads (threads)) Gestión de señales, temporizadores Gestión de memoria Gestión de E/S Gestión de ficheros y directorios Ejemplos de llamada read read:: permite leer datos de un fichero fork fork:: permite crear un nuevo proceso Llamadas al sistema • Los servicios se programan mediante sentencias de un lenguaje (p.e p.e.. C). • Estas sentencias son como llamadas a función • Se convierten, convierten, mediante una rutina de biblioteca de sistemas en un conjunto de instrucciones de máquina que terminan con una instrucción TRAP TRAP.. • El TRAP TRAP,, como toda excepción es tratada por el SO • El SO realiza el servicio pedido y devuelve un valor • Ejemplo Ejemplo:: int fork() () { int r; LOAD R8, FOR_SYSTEM_CALL TRAP LOAD r, R9 return r; } 29 14/10/2009 Llamadas al sistema Aplicación de usuario fork() fork () Modo usuario Modo kernel Interfaz de llamadas al sistema : i : fork() fork () Implementación de la llamada fork() fork () . . . RTE Llamadas al sistema Ejemplo: count = read (fd, buffer, nbytes) 30 14/10/2009 Llamadas al sistema Tres métodos genéricos para pasar parámetros a las llamadas al sistema: En registros. En una tabla de memoria, cuya dirección se pasa al SO en un registro. Poner los parámetros en la pila del programa y dejar que el SO los extraiga. Cada SO proporciona sus propias llamadas al sistema: Estándar POSIX en UNIX y LINUX. Win32 en Windows NT. Llamadas al sistema Resumen 31 14/10/2009 Llamadas al sistema Usuarios Programas de usuario Shell 1 Shell 2 POSIX Win 32 Gestión de Seguridad Comunicac. Gestión de Gestión de Gestión de y y archivos y procesos memoria la E/S directorios protección sincroniz. Varias API Sistema operativo Núcleo Hardware Llamadas al sistema Gestión de procesos pid = fork fork() () Crea un proceso idéntico al padre pid = waitpid waitpid((pid, pid, & &statloc statloc,, options) options) Espera la terminación de un hijo s = kill( kill(pid, pid, signal) signal) Envía una señal a un proceso s = execve( execve(name, name, argv argv,, environp environp)) Reemplaza la imagen del proceso (código+entorno (código+entorno)) exit(status) exit(status) Termina la ejecución del proceso y devuelve el estado 32 14/10/2009 Llamadas al sistema Gestión de ficheros fd = open(file open(file,, how how,, …) Abre un fichero com lectura, escritura o ambas s = close close((fd fd)) Cierra un fichero abierto n = read( read(fd fd,, buffer, nbytes) nbytes) n = write write((fd fd,, buffer, nbytes) nbytes) Lee (escribe) datos desde un fichero (buffer) a un buffer (fichero) position = lseek( lseek(fd fd,, offset, whence) whence) Mueve el puntero del fichero s = stat stat((name, name, &buf &buf)) Devuelve información acerca del estado del fichero s = chmod chmod((name, name, mode mode)) Cambia los bit de protección del fichero Llamadas al sistema Gestión de directorios y ficheros s = mkdir mkdir((name, name, mode mode)) Crea un nuevo directorio s = rmdir rmdir((name name)) Borra un directorio vacío s = chdir chdir((dirname) dirname) Cambia el directorio de trabajo s = link(name1, name2) Crea una nueva entrada, name2, apuntando a name1 s = unlink unlink((name name)) Borra una entrada de directorio s = mount mount((spsecial, spsecial, name name,, flag flag)) Monta un sistema de ficheros s = umount umount((spsecial) spsecial) Desmonta un sistema de ficheros 33 14/10/2009 Llamadas al sistema. Ejemplo Unix /* Programa A. Fichero – Fichero padre.c * Manda ejecutar el programa B * Lee caracteres del terminal y cada vez que detecta “salto de linea” * envia una señal al proceso B */ #include <stdio.h> #include <signal.h> <signal h> #include <unistd.h> #include <stdlib.h> pid_t resp; char buf[1]; main() { resp = fork(); if (resp == 0) if (execlp("./hijo","hijo", NULL) == -1) { perror("exec"), exit(1); } while (read(0, buf, 1) == 1) { if (buf[0] == '\n') { kill(resp, SIGUSR2); } } } Llamadas al sistema. Ejemplo Unix /* Programa B. Fichero hijo.c * Crea un fichero y escribe en él * una línea por cada señal que recibe, hasta un máximo de 5 */ #include <fcntl.h> #include <signal.h> #include <stdlib <stdlib.h> h> int fd, n=5; void proc(int arg) { n--; return; } int main() { signal(SIGUSR2, proc); if ((fd = open("fichero", O_CREAT|O_TRUNC|O_WRONLY)) == -1) { perror("open"); exit(1); } while (n!= 0) { pause(); write(fd, "Linea\n", 7); } return 0; } 34 14/10/2009 Llamadas al sistema Arranque del ordenador en Unix El HW lee el primer sector de la primera pista: (programa bootstrap) bootstrap) y lo ejecuta: cargar el S.O. Inicializa kernel, kernel, GM, FS. Cede control al programa init init.. init lee /etc/ etc/ttys (número de terminales). init crea un proceso hijo por cada terminal. Los hijos ejecutan (exec (exec)) el programa /bin bin//login. login. Esperan a que un usuario entre al sistema. /bin bin//login ejecuta la shell correspondiente (en /etc/ etc/passwd) passwd) La shell crea un hijo por cada comando. 35