Resumen SO Uned

Embed Size (px)

Citation preview

  • 7/24/2019 Resumen SO Uned

    1/80

    Resumen sistemas operativos

    M. Fauvell

  • 7/24/2019 Resumen SO Uned

    2/80

    Contents

    1 Consideraciones generales de los sistemas operativos 11.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Definicion, objetivos y servicios de un sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2.1 Definicion y objetivos de un sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2 Servicio de un sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.3 Evolucion historica de los sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 Los primeros sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2 Introduccion de la multiprogramacion en los sistemas operativos . . . . . . . . . . . . . . . . 21.3.3 Sistemas operativos modernos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.4 Tipos de sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.1 Clasificacion en funcion del numero de usuarios que pueden atender simultaneamente . . . . 21.4.2 Clasificacion segun el numero de programas cargados en la memoria principal . . . . . . . . . 31.4.3 Clasificacion en funcion de los requisitos temporales de los programas a ejecutar . . . . . . . 31.4.4 Clasificacion en funcion de la finalidad del computador. . . . . . . . . . . . . . . . . . . . . . 41.4.5 Otros tipos importantes de sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.5 Llamadas al sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 Estructura del nucleo de un sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.6.1 Componentes principales de nucleo de un sistema operativo . . . . . . . . . . . . . . . . . . . 51.6.2 Tipos de estructuras del nucleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 Descripcion y control de procesos 72.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Descripcion de los procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2.1 Definicion de proceso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2 Espacio de direcciones de memoria logica o virtual de un proceso . . . . . . . . . . . . . . . . 72.2.3 Tipos de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.4 Estados de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.3 Control de procesos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.1 Estructuras de control del sistema operativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2 Creacion de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.3 Terminacion de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.4 Cambio de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.4 Ejecucion del sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 Procesos multihilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.5.1 Concepto de hilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5.2 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5.3 Control de hilos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5.4 Tipos de hilos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5.5 Principales configuraciones en funcion del numero y tipo de hilos soportados por un sistema

    operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3 Planificacion de procesos 133.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Niveles de planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.3 Criterios generales considerados en la planificacion de procesos . . . . . . . . . . . . . . . . . . . . . 143.4 Criterios considerados en la planificacion de procesador . . . . . . . . . . . . . . . . . . . . . . . . . 143.5 Expropiabilidad del procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.6 Algoritmos de planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    3.6.1 Algoritmo de planificacion del primero en llegar-primero en ser servido FCFS(First-ComeFirst-Served) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    3.6.2 Planificacion de primero el proceso mas corto. SJF (Shortest Job First) o SPN (ShortestProcess Next) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    3.6.3 Planificacion de proceso con menor tiempo restante. SRT (Shortest Remaining Time Next . . 163.6.4 Planificacion de turno rotatorio (round robin) o cclico . . . . . . . . . . . . . . . . . . . . . . 163.6.5 Planificacion basada en prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.6.6 Planificacion basada en multiples colas de prioridad. . . . . . . . . . . . . . . . . . . . . . . . 173.6.7 Planificacion basada en multiples colas de prioridad y realimentacion. . . . . . . . . . . . . . 173.6.8 Planificacion de tiempo limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.9 Eleccion del algoritmo de planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.7 Planificacion de hilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    I

  • 7/24/2019 Resumen SO Uned

    3/80

    4 Sincronizacion y comunicacion de procesos 194.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Exclusion mutua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    4.2.1 Interaccion entre procesos concurrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.2 Condiciones de carrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.3 Secciones crticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.4 Descripcion de la exclusion mutua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.5 Soluciones software a la exclusion mutua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    4.2.6 Soluciones a la exclusion mutua con apoyo del hardware . . . . . . . . . . . . . . . . . . . . . 214.3 Semaforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.2 Implementacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.3 Utilidad de los semaforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.4 Problemas potenciales asociados a un mal uso de los semaforos . . . . . . . . . . . . . . . . . 23

    4.4 Problemas clasicos de sincronizacion de procesos concurrentes . . . . . . . . . . . . . . . . . . . . . . 244.4.1 El problema de los productores y consumidores . . . . . . . . . . . . . . . . . . . . . . . . . . 244.4.2 El problema de los lectores y los escritores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.5 Monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.5.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.5.2 Estructura y declaracion de un monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.5.3 Uso de monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    4.6 Paso de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.6.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.6.2 Especificacion de la fuente y el destino del mensaje . . . . . . . . . . . . . . . . . . . . . . . . 274.6.3 Esquemas de sincronizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.6.4 Formato y almacenamiento de los mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.6.5 Uso del paso de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    5 Interbloqueo 315.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Definicion y condiciones del interbloqueo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.3 Grafos de asignacion de recursos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.4 Prevencion de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    5.4.1 Eliminacion de la condicion de exclusion mutua . . . . . . . . . . . . . . . . . . . . . . . . . . 325.4.2 Eliminacion de la condicion de retencion y espera. . . . . . . . . . . . . . . . . . . . . . . . . 325.4.3 Eliminacion de no existencia de expropiacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.4.4 Eliminacion de la condicion de espera circular . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    5.5 Evitacion de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.5.1 Estado de asignacion de recursos: estados seguros y estados inseguros . . . . . . . . . . . . . 325.5.2 Denegacion de asignacion de recursos: el algoritmo del banquero . . . . . . . . . . . . . . . . 345.5.3 Denegacion de la iniciacion de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    5.6 Deteccion y recuperacion de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.6.1 Algoritmos de deteccion de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.6.2 Frecuencia de invocacion del algoritmo de deteccion de interbloqueos . . . . . . . . . . . . . . 355.6.3 Tecnicas de recuperacion del interbloqueo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.6.4 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    5.7 Otras estrategias de tratamiento de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.7.1 Estrategia mixta de tratamiento de interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . 355.7.2 Ignorar los interbloqueos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    6 Administracion de memoria 376.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.2 Definiciones previas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    6.2.1 Espacio del nucleo y espacio de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.2.2 Area de intercambio en memoria secundaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    6.3 Asignacion de memoria en sistemas monoprogramados . . . . . . . . . . . . . . . . . . . . . . . . . . 386.4 Particionamiento fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    6.4.1 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    6.4.2 Particiones de igual tamano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.4.3 Particiones de distinto tamano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4.4 Traduccion de direcciones y proteccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4.5 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    II

  • 7/24/2019 Resumen SO Uned

    4/80

    6.5 Particionamiento dinamico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.5.1 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.5.2 Asignacion de espacio de memoria principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.5.3 Traduccion de direcciones y proteccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.5.4 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    6.6 Paginacion simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.6.1 Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.6.2 Traduccion de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    6.6.3 Tablas de paginas paginadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.6.4 Tabla de paginas invertidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.6.5 Proteccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.6.6 Comparticion de paginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.6.7 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    6.7 Segmentacion simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.7.1 Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.7.2 Traduccion de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.7.3 Proteccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.7.4 Comparticion de segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.7.5 Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    6.8 Segmentacion con paginacion simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    7 Memoria virtual 487.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2 Paginacion por demanda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    7.2.1 Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2.2 Reinicio de instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2.3 Localizacion de paginas en memoria secundaria . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2.4 Bloqueo de marcos de pagina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2.5 Tratamiento de un fallo de pagina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    7.3 Conjunto de trabajo de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.4 Reemplazamiento de paginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    7.4.1 Algoritmo de reemplazo optimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517.4.2 Algoritmo de reemplazamiento LRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    7.4.3 Algoritmo de reemplazamiento mediante envejecimiento(aging) . . . . . . . . . . . . . . . . . 517.4.4 Algoritmo de reemplazamiento FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517.4.5 Algoritmo de reemplazamiento de la segunda oportunidad(algoritmo del reloj) . . . . . . . . 517.4.6 Algoritmo de reemplazamiento del reloj considerando el conjunto de trabajo. . . . . . . . . . 527.4.7 Conclusiones sobre los algoritmos de reemplazamiento . . . . . . . . . . . . . . . . . . . . . . 53

    7.5 Asignacion de memoria principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.6 Control de carga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.7 Copia en la memoria secundaria de la paginas modificadas . . . . . . . . . . . . . . . . . . . . . . . . 537.8 Consideraciones adicionales sobre la paginacion por demanda . . . . . . . . . . . . . . . . . . . . . . 54

    7.8.1 Tamano de pagina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.8.2 Paginacion por adelantado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.8.3 Reserva de marcos libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    8 Gestion de la Entrada/Salida 568.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.2 Peticiones E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.3 Capas del nucleo de un sistema operativo encargadas de la E/S . . . . . . . . . . . . . . . . . . . . . 56

    8.3.1 Subsistema de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.3.2 Drivers de dispositivo E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.3.3 Manejadores de las interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    8.4 Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4.2 Estrategias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4.3 Cache de buffers de bloques de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    8.5 Spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    8.6 Detalles de la gestion de la E/S de algunos dispositivos. . . . . . . . . . . . . . . . . . . . . . . . . . 598.6.1 Relojes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598.6.2 Discos duros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608.6.3 Dispositivos de E/S adaptados al usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    III

  • 7/24/2019 Resumen SO Uned

    5/80

    9 Gestion de archivos 639.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2 Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    9.2.1 Tipos de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2.2 Atributos de una archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2.3 Estructura interna de un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2.4 Metodos de acceso a un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649.2.5 Operaciones sobre archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    9.3 Directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.3.1 Estructura de los directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.3.2 Operaciones sobre directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    9.4 Sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.4.1 Estructura de un sistema de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.4.2 Montaje de un sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.4.3 Asignacion de espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.4.4 Gestion del espacio libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689.4.5 Implementacion de directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689.4.6 Consistencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    9.5 Recuperacion de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.5.1 Copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.5.2 Instantaneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    9.6 Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    10 Seguridad y proteccion 7110.1 Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.2 Seguridad de un sistema informatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    10.2.1 Objetivos de la seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.2.2 Polticas de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    10.3 Autenticacion de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.3.1 Contrasenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.3.2 Objetos fsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.3.3 Caractersticas fisiologicas o de comportamiento . . . . . . . . . . . . . . . . . . . . . . . . . 72

    10.4 Software malicioso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    10.4.1 Bomba logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.4.2 Puerta secreta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.4.3 Caballo de Troya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.4.4 Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.4.5 Gusano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.4.6 Programa espa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    10.5 Mecanismos de proteccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.5.1 Matriz de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.5.2 Listas de control de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.5.3 Lista de capacidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    10.6 Sistemas confiables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7510.6.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7510.6.2 Seguridad multinivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    10.6.3 Principios de diseno de sistemas operativos seguros . . . . . . . . . . . . . . . . . . . . . . . . 75

    IV

  • 7/24/2019 Resumen SO Uned

    6/80

    1 Consideraciones generales de los sistemas operativos

    1.1 Introduccion

    Un sistema operativo es una capa de software cuya funcion es administrar todos los dispositivos hardware delcomputador y suministrar para los programas una interfaz apropiada con el hardware. Esta es rica en funcional-idades, segura, consistente y proporciona una representacion abstracta y uniforme de lo recursos de la maquina.Los programas usuarios realizan llamadas al sistemapara invocar los servicios del s.o.Los usuarios interactuan conel mediante ordenes que son interpretadas por los interpretes de comandos (Shell).

    1.2 Definicion, objetivos y servicios de un sistema operativo

    1.2.1 Definicion y objetivos de un sistema operativo

    Un sistema operativo es una capa de software que gestiona de forma eficiente todos los dispositivos hardwarede un computador y ademas suministra una interfaz comoda con el hardware.

    Los principales objetivos son:

    Gestionar o administrar eficientemente los dispositivos hardware de un computador. Gestiona el tiempo deprocesador, la memoria principal y la secundaria y los dispositivos de E/S.

    Ofrecer a los usuarios una interfaz comoda con el hardware que les facilite el uso del computador. El S.O.proporciona una maquina extendida (maquina virtual) que oculta el hardware al usuario. Se pueden vervarios niveles:

    Hardware.

    Nucleo (kernel) que oculta el hardware a los programadores suministrando llamadas del sistema parasu interaccion.

    Utilidades del S.O. Programas que ayudan a la gestion y control del sistema operativo, p.e. interpretesde comandos, sistemas de ventanas...

    Programas de aplicacion. Los programas que usan los usuarios, procesadores de texto, reproductoresmultimedia...

    1.2.2 Servicio de un sistema operativo

    Los servicios del sistema operativo se pueden agrupar en la siguientes clases:

    Ejecucion de programas. Carga un programa en la memoria principal desde la secundaria y lo ejecuta.

    Acceso a los dispositivos de E/S. El s.o. oculta lo detalles a los usuarios que tienen comandos sencillos delectura y escritura.

    Manipulacion del sistema de archivos.

    Comunicacion y sincronizacion. El s.o. debe soportar diferentes tipos de mecanismos de comunicacion ysincronizacion (memoria compartida, paso de mensajes, semaforos,...) entre los programas.

    Deteccion y respuesta a errores. El s.o. debe detectar errores de hardware y software y poder reaccionar anteellos.

    Proteccion y seguridad. Se debe evitar que los programas interfieran entre si en sistemas concurrentes. Ensistemas multiusuario debe gestionar las credenciales de usuario.

    Contabilidad. Un s.o. debe llevar registros y estadsticas de los recursos y monitorizar parametros como eltiempo de respuesta o la productividad.

    1.3 Evolucion historica de los sistemas operativos

    1.3.1 Los primeros sistemas operativos

    Los primeros S.O. se ejecutaban en macrocomputadoras(mainframes). Se usaban lenguajes como Fortran yensamblador junto a tarjetas perforadas en un tipo de operaci on llamado procesamiento serieya que los trabajosse procesaba uno detras de otro. Esto era muy ineficiente.

    Con el fin de disminuir el tiempo se introdujo el procesamiento por lotes o procesamiento batchque consiste enagrupar lotes de trabajos con necesidades similares.Con esto llegaron los primeros s.o. (el primero fue creado en losanos 50 por General Motors) propiamente dichos como FMS O IBSYS para las computadores IBM 7090 y 7094.Coneste tipo de trabajo se necesitaban ordenes para indicarle al s.o. cuando empezaba o terminaba un trabajo, estas

    1

  • 7/24/2019 Resumen SO Uned

    7/80

    ordenes se escriban con unlenguaje de control de trabajos (Job Control Language, JCL). Estas ordenes se escribanen tarjetas perforadas que se cargaban conforme se necesitaban. Una parte del s.o llamadamonitor residente seencontraba residente en la memoria principal.

    1.3.2 Introduccion de la multiprogramacion en los sistemas operativos

    Con la llegada de los c.i. se desarrollaron los minicomputadores. Con esta tecnologa llego el s.o. desarrollado porIBM OS/360 que introduca la multiprogramacion. Esto consiste en mantener varios trabajos de forma simultaneaen la memoria principal. Con esta mejora el s.o. necesita p oder gestionar la memoria principal y secundaria,disponer de un algoritmo de planificacion de procesos, mecanismos de proteccion de la memoria, E/S controladapor interrupciones y DMA. Esta tecnica mejoro mucho el tiempo de proceso en las operaciones por lotes.

    Con el objetivo de mejores tiempos y permitir una comunicacion directa con el usuario se desarrollo unavariante de la multiprogramacion llamadatexto compartido.El uso del procesador se comparte entre procesos. Coneste sistema muchos usuarios se comunican a la vez con el s.o. utilizando terminales series. Esto es un dispositivode E/S que consta de un teclado y una pantalla, y que se comunica con el computador mediante una linea serie.

    Uno de los primeros s.o. de tiempo compartido fue CTSS (desarrollado por el MIT en 1961) sobre un IBM 709y admita 32 usuarios. A finales de los 60 Bell, General Electric y el MIT crearon MULTICS capaz de soportarcentenares de usuarios sobre el GE-645 y el Honeywell 6180. MULTICS fue un fracaso comercial pero influyomucho en sus predecesores.

    En 1969 en AT&T por Ken Thompson y Dennis Ritchie se desarroll o el s.o. UNIX para un DEC PDP-7y luego en 1970 adaptado par un DEC PDP-11. Como estaba escrito en C se pudo portar facilmente a otras

    arquitecturas. UNIX fue muy popular y por la liberacion del codigo por las leyes antimonopolio se hicieron muchasdistribuciones, las dos mas importantes fueron: System V de AT&T y la distribucion BSD de la Universidad deBerkeley (California, EEUU).

    1.3.3 Sistemas operativos modernos

    En los 70 con la llegada tecnologa de integracion a gran escala (Large Scale Integration, LSI) que permitacientos de miles de componentes por cm2 aparecieron los ordenadores personales inicialmente llamados microcom-putadores.

    Uno de los primeros S.O. para estas maquinas fue el CP/M disenado en 1974 para el Intel 8080 de 8 bits. Enlos 80 de la mano de IBM y Apple nacieron el MS-DOS y el Mac OS. MS-DOS funcionaba en la familia x86 de 16bits de intel y el usuario interactuaba con el mediante una linea de comandos inspirada en UNIX. Los Macintoshde Apple se basaban en el Motorola MC68000 y disponan de una interfaz de usuario grafica (Graphical User

    Interface,GUI) con ventanas, iconos, menus y uso del raton. Todo ello inspirado por el trabajo de Xerox Park enel Xeros Alto en 1973.

    A partir del Intel 486 y pentium Microsoft crea Windows, un S.O. con GUI.En las primeras versiones solo eraun entorno grafico para MS-DOS.

    En 1987 Andrew S. Tanenbaum desarrollo un clon de UNIX llamado MINIX para el Intel 8080. A partir de elLinus Torvalds desarrollo Linux distribuyendolo con la licencia GPL del proyecto GNU. Actualmente GNU/Linuxcontinua creciendo ya que se puede igualar en potencia y versatilidad a ciertas distribuciones comerciales UNIX.

    UNIX es el rey de los supercomputadores, servidores, macrocomputadoras y estaciones de trabajo en cualquierade sus versiones (p.e. Solaris). Unix ha inspirado a muchos de los s.o. modernos, tambien se ha dejado influir,como la creacion del sistema X-windows de entorno grafico incluido en 1984.

    Desde el principio del siglo XX se ha ido extendiendo los s.o. de bolsillo para PDAs, Smartphones. AndroidMac ox, Windows CE/Mobile o PALM OS son ejemplos de estos S.O.

    El crecimiento de las redes de computadores e Interne desde finales de los 80 ha propiciado el desarrollo des.o. en red y s.o. distribuidos. En un sistema operativo en redun usuario en un computador conoce la existenciade otros computadores conectados en red y puede interactuar con dichas maquinas para acceder a sus contenidos.En un sistema operativo distribuido un usuario no percibe la existencia de otras maquinas y cuando ejecuta unprograma no sabe si se esta ejecutando en el procesador de su maquina o en el de otra de la red, lo mismo se aplicaal almacenamiento de archivos.

    1.4 Tipos de sistemas operativos

    Los s.o. se pueden clasificar en funcion de diferentes criterios:

    1.4.1 Clasificacion en funcion del numero de usuarios que pueden atender simultaneamente

    Se clasifican en:

    Multiusuario. Pueden atender simultaneamente a multiples usuarios. P.e. UNIX, Windows Server y Linux.

    Monousuario. Solo puede atender a un unico usuario simultaneamente. P.e. MS-DOS, Windows y Mac OS.

    2

  • 7/24/2019 Resumen SO Uned

    8/80

    1.4.2 Clasificacion segun el numero de programas cargados en la memoria principal

    Se clasifican en :

    Monoprogramados. En la memoria principal del computador se almacena el s.o. y un unico programa deusuario que dispone de todos los recursos del ordenador. P.e. MS-DOS.

    Multiprogramados. En la memoria principal se almacenan, aparte del s.o., varios programas, que debencompartir durante su ejecucion los recursos del ordenador. Se denomina grado de multiprogramacion al

    numero de programas cargados en memoria principal. Si dicho grado es constante el numero de programasque se cargan debe ser igual al numero de programas que se eliminan.

    Para poder implementar esto el s.o. ha de ser capaz de gestionar el uso de los recursos entre todos los progra-mas. Debe disponer algoritmos de planificacion, mecanismos de sincronizacion, mecanismos de asignacion,proteccion de memoria principal y secundaria, E/S controlada por interrupciones y DMA.

    Para evitar confusiones aclaramos:

    Se suele usar el termino multitareacomo sinonimo de multiprogramacion.

    Un S.O. multitarea puede ser multiusuario(UNIX,Linux, Windows Server) o monousuario (WindowsXP, Mac OS,..).

    Se dice que un sistema operativo esmultiacceso, si permite el acceso al sistema informatico a traves dedos o mas terminales. No se requiere multiprogramacion para ello.

    Un sistema operativo con multiprocesamiento es aquel que es capaz de coordinar la actividad de variosprocesadores simultaneamente. Estos s.o. con multitarea por definicion.

    1.4.3 Clasificacion en funcion de los requisitos temporales de los programas a ejecutar

    Se pueden distinguir:

    Sistemas operativos por lotes o sistemas batchEn estos sistemas los trabajos se procesan agrupados en lotesde trabajos de necesidades similares.Suelen ser trabajos que requieren un tiempo de ejecucion grande y pocao nula interaccion con el usuario.

    La planificacion es bastante simple, se ejecutan por orden de llegada o por tiempo estimado de ejecuci on(primero el mas corto). La E/S suele ser E/S controlada por programa.

    La gestion de la memoria principal es muy simple, se divide en dos secciones,una para el s.o. y otra para losprogramas transitorios. La gestion de archivos es simple al no haber concurrencia.

    Sistemas operativos de tiempo compartido o sistemas interactivos. Son sistemas multiusuario con multipro-gramacion donde cada usuario introduce ordenes y espera la respuesta del s.o. El usuario cree que es el unicoque usa la maquina y que dispone de todos sus recursos. Se suelen ejecutar aplicaciones cortas, tpicamentecon un tiempo de respuesta de menos de un segundo, ya que sino el usuario cree que el sistema es insensiblea sus acciones.

    Tienen que tener un algoritmo de planificacion que asegure un uso equitativo del procesador para todoslos programas, mecanismos de proteccion de la memoria principal y de la memoria secundaria, as comomecanismos de control de acceso concurrente a los archivos.

    Sistemas operativos de tiempo real. Son sistemas con multiprogramacion que soportanaplicaciones de tiemporeal, que son aquellas que reciben unas entradas procedentes de unos sensores externos y deben generarunas salidas en un tiempo de respuesta preestablecido. Se pueden clasificar en: Aplicaciones de tiempo realestrictas,aquellas donde es necesario que sus tareas asociadas se completen siempre un limite preestablecidode tiempo de respuesta (robotica, industria) y aplicaciones de tiempo real suaves, aquellas que permitensobrepasar en algunas ocasiones dicho lmite de tiempo de respuesta (multimedia, realidad virtual).

    Esto S.O. requieren un planificador basado en prioridades de tipo expropiativo, de tal forma que el procesomas prioritario siempre consigue los recursos que necesita. La gestion de la memoria es poco exigente ya quesiempre estan cargados los mismos programas en ella y los procesos suelen ser est aticos con poco movimientoentre memoria principal y secundaria. No suele ser necesaria gestion de archivos. P.e. VxWorks y QNX.

    Sistemas operativos hbridos. Son aquellos que soportan trabajos por lotes, aplicaciones interactivas y apli-caciones suaves de tiempo real. Los trabajos por lotes se ejecutan cuando el procesador no tiene que ejecutar

    aplicaciones interactivas, y estas cuando no hay que ejecutar aplicaciones suaves de tiempo real. P.e. UNIXy Linux.

    3

  • 7/24/2019 Resumen SO Uned

    9/80

    1.4.4 Clasificacion en funcion de la finalidad del computador

    Se pueden distinguir:

    S.O. para macrocomputadores. Se computadoras de gran tamano, suelen ocupar una sala y tienen grancapacidad de realizar operaciones E/S. Se suelen usar como centros de datos de grandes empresas. Soportanprocesamiento por lotes y procesamiento de tiempo compartido con multiples usuarios conectados al sistemasimultaneamente.P.e. OS/390.

    S.O. para servidores de red. Se pueden implementar con ordenadores personales de altas prestaciones, esta-ciones de trabajo o macrocomputadores. Atienden a multiples usuarios simultaneamente y posibilitan lacomparticion de recursos de hardware y software. Servicios de impresion, gestion de archivos y servicios web.P.e. UNIX, Linux y Windows server.

    S.O. para computadores personales. Su objetivo es suministrar una interfaz adecuada para la ejecucion deprogramas de aplicacion. P.e. Windows, Mac OS y Linux.

    S.O. para computadores de mano. Deben tener en cuenta las limitaciones de tamano, potencia y memoria ala hora de ejecutar aplicaciones a tiempo real. P.e. Symbian, Android, Windows CE o Palm OS.

    S.O. integrados. Se ejecutan en un computador que forma parte de otro sistema (televisor, autom ovil,...).Atienden las peticiones de aplicaciones a tiempo real y se encuentran almacenados tpicamente en una memoriaROM, por lo que no disponen de aplicaciones de proteccion de memoria.P.e. QNX y VxWorks.

    1.4.5 Otros tipos importantes de sistemas operativos

    Otros tipos importantes de S.O. cuyas caractersticas conviene conocer son:

    S.O. paralelos o sistemas multiprocesador. Son aquellos que se ejecutan en sistemas con multiples proce-sadores, los cuales comparten el bus y el reloj, en ocasiones la memoria y los dispositivos de E/S.A estosse les denomina sistemas fuertemente acoplados. Los mas comunes utilizan el multiprocesamiento simetrico.que consiste en cada procesador utiliza una copia identica del S.O. P.e. UNIX, Linux y Windows server.

    S. O. distribuidos. Se implementan mediante redes de computadores cuyos procesadores no comporten nireloj ni memoria, y que se comunican entre s mediante buses de alta velocidad o lineas telefonicas. Se lessuele denominar como sistemas debilmente acoplados. Cuando usuario ejecuta un programa no sabe si se

    esta ejecutando en su maquina o en otra de la red. P.e. Sprite, Mach, Chorus y la distribucion de UNIXSolaris-MC.

    S.O. de red. Son aquellos que se ejecutan en redes de computadores y posibilitan que un usuario en uncomputador de la red conozca la existencia de los otros computadores conectados, y pueda interactuar condichas maquinas para acceder a contenidos y compartir recursos. Se utiliza el paso de mensajes. P.e. NovellNetware, Personal Netware, Windows Server y UNIX.

    1.5 Llamadas al sistema

    La mayora de procesadores disponen de dos modos de ejecucion:

    Modo nucleo o supervisor. Puede ejecutar cualquier instruccion del repertorio de instrucciones del procesadory acceder a todas las caractersticas del hardware.

    Modo usuario. Solo puede ejecutar un conjunto limitado de instrucciones del repertorio del procesador, tieneacceso limitado al hardware. Las instrucciones privilegiadas no se pueden ejecutar en esto modo.

    El S.O. siempre se ejecuta en modo nucleo y las aplicaciones de usuario en modo usuario. Una aplicacion quequiere poder usar los recursos del hardware tiene que solicitar su uso al S.O. mediante la realizaci on de llamadasdel sistema, que conforman la interfaz entre los programas de usuario y el nucleo.

    Los programas de usuario pueden invocar las llamadas al sistema de dos formas:

    Mediante el uso de libreras de llamadas al sistema. Se invocan de forma similar a como se invoca cualquierfuncion de un lenguaje de alto nivel. Esta libreras se enlazan con el codigo de los programas en tiempo decompilacion.

    De forma directa. Los programas escritos directamente en ensamblador pueden invocar las llamadas al sistemade forma directa.

    4

  • 7/24/2019 Resumen SO Uned

    10/80

    Cuando se produce una llamada al sistema se produce un trampa que conmuta el hardware de modo usuario amodo supervisor y transfiere el control al nucleo. El nucleo localiza la llamada segun su identificador y ejecuta larutina segun los parametros pasados. Cuando termina almacena el resultado y conmuta a modo usuario para quecontinue el programa de usuario.

    Los parametros de las llamadas del sistema se pueden pasar de varias formas:

    Cargar los parametros en registros. Puede suceder que el numero de registros disponibles sea inferior alnumero de parametros.

    Almacenarlos en un bloque o tabla de memoria. Solo es necesario conocer la direccion de comienzo del bloqueque es lo que se pasa como parametro.

    Almacenarlos en una pila. El proceso invocador escribe los parametros en una pila y el nucleo los lee de all.

    Segun la finalidad de las llamadas al sistema se pueden agrupar en:

    Control de programas en ejecucion(procesos). Aqu se incluyen la llamadas para crear, ejecutar, suspenderun tiempo prefijado, abortar y terminar procesos. Tambien las usadas para sincronizar la ejecucion de unproceso con la aparicion de un evento, las llamadas para obtener y establecer los atributos de un proceso, ylas llamadas para asignar y liberar memoria.

    Administracion de archivos o directorios. Crear, borrar, establecer atributos, etc..

    Comunicaciones. Llamadas al sistema para crear o borrar una conexion de comunicacion. Tambien lasllamadas para enviar o recibir mensajes o para conectarse a dispositivos remotos.

    Gestion de dispositivos. Las llamadas para solicitar, liberar, leer o escribir un dispositivo. Tambien lasllamadas para establecer y obtener los atributos del dispositivo.

    Gestion de informacion del sistema. Aqu se encuentran las llamadas para obtener y configurar datos delsistema, o para obtener o modificar la fecha y la hora.

    1.6 Estructura del nucleo de un sistema operativo

    1.6.1 Componentes principales de nucleo de un sistema operativo

    La forma mas eficiente de disenar e implementar un sistema operativo consiste en descomponerlo en varioscomponentes o subsistemas mas pequenos. La mayora de los S.O. suelen de disponer de los siguientes componentes:

    Subsistema de control de procesos. Maneja todo lo relativo a procesos (crear, sincronizar...) y los interblo-queos.

    Subsistema de administracion de la memoria principal. Lleva un registro de que partes de la memoria est anasignadas y a que procesos. Asigna la memoria y la libera y decide que proceso acceden a ella.

    Subsistema de gestion de archivos. Gestiona todo lo necesario de la creacion de archivos en la memoriasecundaria.

    Subsistema de E/S. Este componente oculta las particularidades del hardware de los dispositivos de E/Sproporcionando una interfaz uniforme de forma que los programas de los usuarios puedan acceder a losdispositivos de E/S con un conjunto de llamadas al sistema de lectura y escritura. Cada dispositivo de E/Snecesita un codigo llamado driver. Se gestionan mediante interrupciones.

    5

  • 7/24/2019 Resumen SO Uned

    11/80

    1.6.2 Tipos de estructuras del nucleo

    El nucleo de un sistema operativo se puede considerar como un conjunto logico de modulos software. Cadamodulo contiene la informacion necesaria para cumplir con las funciones de subsistema o subsistemas que imple-menta. Ademas posee una interfaz bien definida, en terminos de entradas que acepta y salidas que genera, queotros modulos pueden utilizar para solicitar y obtener servicios de dicho modulo.

    La estructura de un s.o. queda definida por el numero de modulos en que se descompone y como se interrela-cionan. Los principales tipos son:

    Estructura monoltica.Se caracteriza porque todos los subsistemas y las estructuras de datos del nucleo estan ubicadas en un solomodulo. El software del nucleo esta escrito como una serie de procedimientos. Puede ser bastante eficientepero es difcil de mantener y de entender. P.e. UNIX tradicional y MS-DOS.

    Estructura en modulos o modular.

    Se caracteriza por la existencia de varios modulos que pueden contener uno o varios subsistemas. Los modulosy subsistemas tienen una interfaz bien definida. Se pueden implementar con tipos de datos y ob jetos abstrac-tos. Es mas facil de mantener y modificar que la monoltica pero su rendimiento es menor. Ningun sistemausa este sistema puro, pero la estructura extensible puede considerarse un caso especial suyo.

    Estructura en capas o niveles.

    Se caracteriza porque el nucleo esta organizado en una jerarqua de capas, cada una de las cuales subyace sobrela anterior. Cada capa i se implementa como un objeto abstracto que encapsula una serie de estructurasde datos y la implementacion de las operaciones que pueden manipularla. Dichas operaciones pueden serinvocadas por las capas de mayor nivel. Asimismo la capa ipuede invocar a las operaciones de las capas delos niveles inferiores.

    El primer S.O en usarlo fue THE desarrollado en 1968 por E.W. Dijkstra y sus estudiantes. Tena 6 capas yera un s.o. por lotes.

    La principal ventajas es la sencillez de diseno y que simplifica el proceso de depuracion verificacion. La mayordificultad se encuentra en definir adecuadamente los servicios de cada capa.Esta estructura suele ser menoseficiente ya que agrega un trabajo a la llamada original.

    Ningun sistema comercial implementa esta estructura pero la agrupacion en capas es una meta hacia la cualtienden, en un nivel de abstraccion u otro, la mayora de s.o.

    Estructura extensible

    Se caracteriza por la existencia de un m odulo esencial llamado nucleo extensible o micronucleo y variosmodulos accesorios llamados extensiones del nucleo.

    El micronucleo contiene los servicios esenciales del s.o.y que son independientes del tipo se s.o. (gestion dememoria a bajo nivel, comunicacion entre procesos, la gestion de E/S y la gestion de las interrupciones).Seejecutan en modo nucleo.

    Los servicios menos esenciales, aquellos que son independientes de la arquitectura de la maquina y quedependen del tipo de s.o., se implementan como extensiones del nucleo y se ejecutan en modo usuario.

    Las aplicaciones de usuario y las extensiones del nucleo interactuan entre ellas con el esquema cliente-servidor.Las extensiones del nucleo tambien actuan entre ellas con este esquema. Lascomunicacion cliente/servidorse realiza mediante el paso de mensajes a traves del micronucleo, que se encarga de validar los mensajes,

    pasarlos a sus destinatarios y otorgar acceso al hardware. La principales ventajas son:

    Manejabilidad. Cada extension del nucleo se encarga de un servicio del sistema. Facilita la modificaci ony depuracion.

    Extensibilidad. Para anadir nuevas caractersticas solo hay que anadir una extension.

    Fiabilidad. Como se la extensiones se ejecutan en modo usuario, si una falla el resto puede seguirdisponible.

    Soporte simultaneo de multiples sistemas operativos. El micronucleo proporciona una interfaz d maquinavirtual de bajo nivel, esto posibilita el poder soportar en una misma maquina diferentes s.o., simplementehay que anadir las extensiones del nucleo adecuadas.

    Portabilidad. El micronucleo contiene todo el codigo dependiente del hardware. Solo hay que cambiarlopara portar el s.o. a otra arquitectura hardware.

    La principal desventaja es el menor rendimiento provocado por el uso del paso de mensajes como esquema desolicitud de servicios. Ejemplos de este sistema: Mach (MacOS X Server y Digital UNIX implementan pordebajo este nucleo), Chorus y Windows NT.

    6

  • 7/24/2019 Resumen SO Uned

    12/80

    2 Descripcion y control de procesos

    2.1 Introduccion

    El principal servicio que debe proporcionar un s.o. es posibilitar la ejecucion de los programas de los usuarios.Para lograr este objetivo utiliza el modelo de proceso. Un proceso es un instancia de un programa en ejecucionque requiere la asignacion de diferentes recursos para poder existir y progresas.

    Los procesos pasa por diferentes estados durante su existencia.En el modelo tradicional de procesos estos solosiguen una determinada traza o ruta de instrucciones en su ejecucion, tiene un unico hilo de control. Los s.o.

    modernos utilizan un modelo de proceso multihilo que mejora el rendimiento del sistema.

    2.2 Descripcion de los procesos

    2.2.1 Definicion de proceso

    Un programa es un archivo ejecutable que normalmente se encuentra en la memoria secundaria. Cuando esejecutado se convierte en una entidad activa o dinamica llamadaprocesoque pasa por diferentes estados y utilizandodistintos recursos del computador. Un proceso es un programa en ejecucion.

    Tambien se define el termino proceso como la entidad mas pequena que se puede asignar y ejecutar en unprocesador, es por tanto la unidad basica de trabaja de un sistema informatico.

    Un proceso se ejecuta en prime plano(foreground)si lo usuarios pueden interaccionar con el durante la ejecucion.Por el contrario un proceso en segundo plano(background) si un usuario no puede interaccionar con el durante su

    ejecucion.

    2.2.2 Espacio de direcciones de memoria logica o virtual de un proceso

    Regiones de memoria

    El espacio de direcciones de memoria logica o virtual de un proceso,tambien llamado a veces imagen del proceso o espacio de direcciones deusuario,se divide en varias regiones, cada una de las cuales delimita unaarea de direcciones contiguas de memoria logica. Se distinguen al menostres regiones:

    Region de codigo. Tambien llamada region de texto donde reside elcodigo del ejecutable.

    Region de datos. Contiene los datos del ejecutable y se subdivide

    en dos:

    Region de datos inicializados. Tiene un tamano fijo.

    Region de datos no inicializados. Puede variar durante la eje-cucion del proceso..

    Region de pila. Se crea automaticamente y su tamano es ajustadodinamicamente en tiempo de ejecucion. Esta construida por marcos de pila logicos. Un marco se anadea la pila cuando se llama a un funci on y se extrae cuando vuelve de la misma. El registro de puntero depilaalmacena, dependiendo de la arquitectura, la proxima entrada libre de la pila o la ultima utilizada. Unmarco de pila contiene los parametros de la funcion, sus variables locales y la direcciones almacenadas en losregistros de la maquina.

    Como el tamano de la region de pila y de la region de datos no inicializados pueden variar durante la ejecuci onse deja espacio libre adyacente a estas regiones.

    Aparte de las regiones del espacio de direcciones de memoria l ogicas de un proceso a las que se accede en modousuario, existen otras regiones a las que se accede en modo n ucleo. El nombre y numero de estas estructurasdepende de cada s.o.

    2.2.3 Tipos de procesos

    Se distinguen:

    Procesos de usuario. Son los que pertenecen a programas invocados por los usuarios. Se ejecutan en modousuario pero pueden escalar usando llamadas al sistema. Se pueden ejecutar en primer y segundo plano.

    Procesos demonio(Servicios en Windows). Son procesos no asociados a ningun usuario que realizan tareas

    periodicas de administracion del sistema. Se ejecutan en modo usuario y pueden escalar. Se suelen ejecutaren segundo plano.

    Procesos del s.o. tambien llamados procesos del sistema. Realizan tareas de administracion del sistemaoperativo. Se ejecutan en modo supervisor y en segundo plano normalmente.

    7

  • 7/24/2019 Resumen SO Uned

    13/80

    2.2.4 Estados de un proceso

    El tiempo de vida de un proceso(desde su creacion hasta su finalizacion) se puede dividir en un conjunto deestados que describen el comportamiento del proceso. El numero de estados y su nombre depende de cada s.o.pero los mas habituales son:

    Nuevo. El proceso ha sido creado pero no esta preparado para ejecutarse ni esta cargado en la memoriaprincipal.

    Preparado. El proceso esta listo para ejecutarse tan pronto como el planificador del s.o. lo considere oportuno. Ejecutandose. El proceso esta siendo ejecutado en el procesador.En un unico procesador solo puede haber

    uno con este estado.

    Bloqueado. El proceso espera hasta que se produce un determinado evento.

    Terminado. El proceso ha finalizado su ejecucion.

    En algunos s.o. hay otros dos estados importantes: preparado en memoria secundaria ybloqueado en memoriasecundaria. Son basicamente los mismos que preparado y bloqueado pero en la memoria secundaria.

    Al espacio de memoria secundaria donde se intercambian los procesos se le llama area o espacio de intercambio.Los posibles estado en que puede encontrarse un proceso en un s.o. y las transiciones permitidas entre los

    estados puede representarse de forma grafica en un diagrama de transicion de estados.

    2.3 Control de procesos

    2.3.1 Estructuras de control del sistema operativo

    Para poder gestionar los procesos y los recursos el s.o. guarda en unas tablas informacion sobre ellos. El

    numero, organizacion e implementacion dependen de cada s.o. particular, pero podemos distinguir cuatro grandestipos:

    Tabla de procesos. Almacena informacion de control relevante sobre cada proceso existente. Cada entradade la tabla de procesos, llamada bloque de control de proceso(process control block, PCB), contiene distintoscampos, por ejemplo:

    Identificador del proceso. Es un numero entero positivo que es unico para cada proceso.

    Identificador de usuario. Es un numero entero positivos que es unico para cada usuario.

    Estado del proceso.

    Contenido de algunos registros del procesador. Cuando la ejecucion de un proceso es interrumpida antesde su finalizacion, es necesario disponer del contenido de estos registros para poder continuar la ejecucion

    del proceso justo desde el punto donde fue interrumpida. informacion de planificacion del procesador. Incluye la prioridad de planificacion del proceso, punteros

    para enlazar a los procesos en diferentes colas y cualquier otro par ametro de planificacion.

    8

  • 7/24/2019 Resumen SO Uned

    14/80

    Informacion de localizacion de la memoria principal asignada al proceso. Esta informacion depende delesquema de administracion de memoria.

    Informacion de tipo estadstico. Tiempo de ejecucion... Estas informaciones son usadas por el s.o., entreotras cosas, para el calculo de prioridad de planificacion del proceso.

    Informacion de estado E/S.

    Informacion sobre el evento por el que el proceso ha entrado en el estado bloqueado.

    Tablas de memoria. Contiene informacion sobre el espacio asignado y el espacio libre de la memoria principaly del area de intercambio.

    Tablas de E/S. Se utilizan para gestionar los dispositivos E/S. Contiene informacion sobre si un dispositivoesta disponible y que proceso lo esta utilizando. Asimismo contiene informacion sobre el estado de unaoperacion E/S y el area de memoria principal utilizada por el.

    Tablas de archivos. Contiene informacion sobre los archivos abiertos por los procesos, su estado actual y susatributos.

    Aparte de estas tablas el s.o. mantiene una o varias pilas denominadaspilas de control del sistema o pilas delsistema operativo, en cuyos marcos se almacenan parametros y datos asociados a las funciones o rutinas del s.o.Tambien puede tener una pila de interrupcionesque es utilizada por todos los manejadores de interrupciones.

    Ademas el s.o. mantiene diferentes colas para consultarlas durante la planificacion de los procesos o cuando

    se produce algun evento. As pueden existir colas de procesos preparados, colas de procesos bloqueados pordeterminados eventos...

    2.3.2 Creacion de procesos

    El s.o. es el responsable de la creacion de los procesos que se van a ejecutar. De forma general se puedendistinguir los siguientes:

    1. Comprobar si el proceso puede ser creado. Comprueba si existe suficiente memoria o si el usuario no haexcedido el numero maximo de procesos que puede tener ejecutandose.

    2. Asignar una entrada de la tabla de procesos para el nuevo proceso. Se le asigna un identificador numerico deproceso.

    3. Reservar espacio en memoria para el proceso. Se debe reservar espacio en la memoria principal para el espaciode direcciones de memoria logica del proceso y para la informacion de control del proceso.

    4. Inicializar el bloque de control del proceso.

    5. Establecer los enlaces apropiados. El s.o. debe configurar los punteros adecuados para enlazar la informaciondel proceso en las diferentes listas, tablas y colas que mantiene.

    Las causas mas importantes que provocan la creacion de un proceso por el s.o. son:

    Arranque del sistema operativo.

    Interaccion del usuario con un interprete de comandos en un entorno de ventanas.

    Inicio de un trabajo por lotes.

    Un proceso en ejecucion invoca a una llamada al sistema para crear otro proceso. Una determinada tareapuede plantearse para ser realizada en varias fases independientes, cada una de las cuales puede ser realizadapor un proceso.

    El proceso que invoca la llamada al sistema para crear el proceso se denomina proceso padre y al procesocreado se le denomina proceso hijo. Un proceso solo tiene un padre pero puede tener varios hijos.

    En algunos s.o. , el espacio de direcciones de memoria logica del proceso hijo es un duplicado del espacio dedirecciones de memoria logica del padre. Al crearse son exactamente iguales (fork) pero luego al planificarsepara ser ejecutado cambia (execve). Ejemplos son: UNIX, Linux. En otros s.o., el espacio de direccionesde memoria logica del proceso hijo es diferente al del proceso padre desde su creacion, ya que el espacio dedirecciones logica del programa que se desea ejecutar se carga en el proceso hijo que se crea ( CreateProcess).

    Ejemplo es: Windows.Una vez creados uno o varios procesos hijos el proceso padre dispone de tres posibilidades en terminos de suejecucion: finalizar su ejecucion, continuar ejecutandose concurrentemente con sus procesos hijos, bloquearseen espera de que alguno o todos sus procesos hijo hayan finalizado.

    9

  • 7/24/2019 Resumen SO Uned

    15/80

    2.3.3 Terminacion de procesos

    Normalmente un proceso termina cuando ha concluido de realizar al tarea para la que fue creado. Puedesolicitar el mismo su terminacion al sistema operativo o puede ser este el que lo termine despues de ejecutar suultima instruccion. El s.o. tambien puede terminar el proceso si se produce un excepcion.

    Otro proceso tambien puede terminar a otro proceso si posee los permisos adecuados (kill en UNIX yTerminateProcessen Windows).

    Independientemente de la causa cuando un proceso termina el s.o. debe pasar el proceso al estado terminadoy libere todos los recursos asignados al mismo.

    En algunos s.o. como VMS cuando se termina un proceso se terminan todos sus hijos. En otros, como UNIXo Windows, los procesos pueden seguir existiendo. En UNIX los procesos hijos sin padre son adoptados por elproceso Init.

    2.3.4 Cambio de proceso

    La interrupcion de la ejecucion de un proceso para iniciar o continuar otro se llamacambio de proceso o cambiode contexto. Las principales causas que lo motivan son:

    El proceso en ejecucion pasa al estado bloqueado. Mientras el proceso espera el evento que lo desbloquee sepuede ejecutar otro proceso.

    La terminacion(voluntaria o forzada) del proceso en ejecucion.

    El s.o. termina de atender una interrupcion y existe un proceso en estado preparado de mayor prioridad queel proceso actual.

    El proceso en ejecucion ha excedido el tiempo maximo de ejecucion ininterrumpida. En los sistemas de tiempocompartido, a cada proceso se le asigna un tiempo maximo de ejecucion ininterrumpida con objeto de poderatender las peticiones de todos lo usuarios conectados al sistema.

    Se denomina contexto de un proceso a toda aquella informacion relativa a un proceso que el s.o. necesita conocerpara poder iniciar o continuar la ejecucion de un proceso. Suele estar contenida en el PCB.

    La implementacion del cambio de proceso depende de cada S.O.De forma general se puede distinguir los sigu-ientes pasos:

    1. Salvar el contexto del proceso en ejecucion en su PCB.

    2. Ejecutar el algoritmo del s.o. de planificacion del procesador para seleccionar el proceso que se va a ejecutar.

    3. Cargar desde el PCB el contexto del proceso seleccionado.

    La operacion de cambio de proceso no es ni mucho menos inmediata, sino que consume un cierto tiempo,denominadotiempo de conmutacion. Este tiempo depende de factores asociado al hardware como: la velocidad delectura/escritura de la memoria principal, el numero de registros del procesador que hay que salvar o cargar, lavelocidad del procesador y la existencia de instrucciones especiales en el repertorio para salvar o cargar todos losregistros.

    2.4 Ejecucion del sistema operativo

    En funcion de la tarea o servicio realizado, el tiempo que el sistema operativo usa el procesador puede ser

    contabilizado o no a un determinado proceso. El tiempo que el s.o. usa el procesador para realizar tareas yservicios de administracion no se pueden contabilizar a ningun proceso en particular.

    Se denomina sobrecarga del sistema, o simplemente sobrecarga(overhead), al tiempo que el procesador se en-cuentra ocupado ejecutando codigo del s.o. asociado a tareas y servicios de administracion que no se puedencontabilizar en ningun proceso en particular. Es deseable que la sobrecarga sea la menor posible.

    El tiempo de ejecucion de otras tareas del s.o. no es sencillo asignarselo a un proceso en particular. Algunoss.o., como p.e. los basados en UNIX, optan por asignar el tiempo de atencion de una interrupcion hardware alproceso que se encontraba ejecutandose en el momento de producirse, aunque no este asociado a la ejecucion dedicho proceso.

    2.5 Procesos multihilos

    2.5.1 Concepto de hiloUn proceso se puede considerar como una entidad computacional basica que tiene asignado un conjunto de re-

    cursos y que durante su existencia sigue una determinada ruta o traza de ejecucion. Un proceso queda caracterizadopor esos elementos que se pueden tratar independientemente:

    10

  • 7/24/2019 Resumen SO Uned

    16/80

    Conjunto de recursos asignados.

    Traza de ejecucion. Tambien denominadahilo de controlo simplementehilo o hebra(thread). Hace referenciaa las instrucciones que ejecuta el proceso durante su vida. Tiene asignado un contador de programa y requieretambien otros registros para el almacenamiento temporal de variables y un registro de pila.

    En los primeros s.o. (MS-DOS, primeros UNIX) cada proceso constaba de un unico hilo de ejecucion. Los s.o.posteriores (Windows, Solaris, Mach y OS/2) introdujeron el modelo de proceso multihilo, un proceso poda estarformado por multiples hilos.

    Los s.o. que soportan un modelo de proceso multihilo utilizan los procesos como unidad de gestion de recursosmientras que utilizan a los hilos como unidad de asignacion del procesador. Un hilo se puede definir como unaunidad elemental de asignacion del procesador que sigue una determinada traza de ejecucion y que tiene asignadouna pila de usuario, un espacio de almacenamiento y un bloque de control de hilo (contiene el identificador numerico,el estado, la propiedad de ejecucion del hilo y los valores de los registros). Puesto que un hilo queda caracterizadocon parte de los recursos de un proceso, a veces se les denomina proceso ligero(lightweight process).

    Todos los hilos de un proceso comparten el estado y los recursos de ese proceso, se localizan en el mismo espaciode direcciones y tiene acceso a los mismo datos.

    2.5.2 Ventajas e inconvenientes

    Los procesos multihilo posibilitan que puedan tenerlugar, en el entorno del mismo proceso, multiples ejecu-

    ciones con un alto grado de independencia entre ellas.La ejecucion de multiples hilos ejecutandose en par-

    alelo en un proceso es analoga a la ejecucion de multiplesproceso en paralelo. Pero el acercamiento multihilo tienevarias ventajas, las principales son:

    Aumento del rendimiento del sistema. La creacion,cambio de contexto o terminacion de un hilo es masrapido que las operaciones analogas con procesos.

    Ahorro de recursos. La creacion de un hilo nuevorequiere menos recursos que la creacion de un pro-ceso nuevo.

    Comunicacion mas eficiente. La comunicacion en-tre dos procesos requiere la intervencion del s.o. yla comunicacion entre dos hilos no.

    Mayor aprovechamiento de las arquitecturas mul-tiprocesador. En un proceso multihilo cada hilopodra esta ejecutandose en paralelo en cada unode los procesadores de la maquina.

    Simplificacion de la estructura de las aplicaciones.

    El multihilo introduce diversas complicaciones en la pro-gramacion de la aplicacion, la mayora asociadas a la necesidad de sincronizacion en el acceso a las estructuras dedatos que comparten los hilos.

    2.5.3 Control de hilos.

    Los hilos, al igual que los procesos, pueden encontrarse durante su vida en diversos estados. El estado delproceso limita los estados en los que pueden encontrarse los hilos.

    Al crear un proceso solo tiene un hilo, este puede crear otro hilos. La planificacion se realiza a nivel de hilo.Cuando un hilo entra en el estado bloqueado, se puede planificar otro hilo del mismo proceso o de otro proceso.

    Un cambio de hilo de un mismo proceso depende del tipo de implementacion de hilos que soporte el s.o.En algunasimplementaciones si un hilo se bloquea, bloquea el proceso completo.

    Un proceso no puede entrar en el estado terminado hasta que no finalizan todos sus hilos.

    11

  • 7/24/2019 Resumen SO Uned

    17/80

    2.5.4 Tipos de hilos

    Se pueden distinguir dos tipos de hilos, vamos a verlos junto a sus ventajas e inconvenientes:

    Hilos a nivel de usuario.

    Los hilos a nivel de usuario o hilos de usuario son implementados por una biblioteca de hilosque se ejecutaa nivel de usuario. Esta biblioteca es un paquete de rutinas para la gestion de los hilos de usuario. P.e. labiblioteca Pthreads de POSIX.

    La implementacion de los hilos de usuario requiere que cada proceso tenga unatabla de hilos. Cada entrada dela tabla, tambien denominada bloque de control de hilo, mantiene informacion asociada a un hilo del proceso:contador del programa, registro de pila,... Esta tabla es gestionada por rutinas de la biblioteca de hilos. Estatabla de hilos es similar a la tabla de procesos mantenida por el s.o.

    La realizacion del cambio de hilo dentro de un mismo proceso se realiza sin necesidad de realizar un cambiode modo y un cambio de contexto. Es mas rapido que un cambio de proceso. Como esto pasa en modousuario el s.o. no interviene en estas tareas, de hecho ignora por completo la existencia de hilos de usuario.Esto proporciona las siguientes ventajas:

    Portabilidad. Una aplicacion disenada como un proceso de multiples hilos de usuario podra ejecutarseen cualquier sistema operativo que soportara la biblioteca de hilos utilizada.

    Mejora del rendimiento del sistema. Como no hay que conmutar de modo se disminuye la sobrecargadel sistema.

    Planificacion independiente. Los hilos de usuario de un proceso pueden planificarse con el algoritmo deplanificacion que se considere oportuno.

    Las principal desventaja se manifiesta en los S.O. que solo soportan un unico hilo de nucleo, cuando un hilode usuario de un proceso se bloquea, bloque todo el proceso. Otra desventaja es que cuando un hilo estaejecutando, no se puede planificar otro hilo del mismo proceso hasta que el primero no cede voluntariamenteel uso del procesador. Eso ocurre porque no se puede acceder a las interrupciones de reloj dependientes dels.o.

    Hilos a nivel de nucleo

    Loshilos a nivel de nucleo o hilos del nucleo, son implementados gestionados directamente por el nucleo dels.o. No requieren la existencia de una biblioteca de hilos. El s.o. mantiene una unica tabla de hilos que

    contiene los bloques de control de todos los hilos de nucleo existentes. Esta tabla esta implementada en elespacio de direcciones del nucleo.

    La principal ventaja es que si un hilo de nucleo se bloque se puede planificar otro del mismo proceso o deotro proceso distinto. El principal inconveniente es que su gestion contribuye a la sobrecarga del sistema,para resolver esto, muchos sistemas limitan el numero de hilos del nucleo que se pueden crear.

    2.5.5 Principales configuraciones en funcion del numero y tipo de hilos soportados por un sistemaoperativo

    Se pueden distinguir las siguientes configuraciones:

    Multiples hilos de usuario sin soporte de hilos del nucleo. La gestion de los hilos de usuario se realizamediante una biblioteca de hilos en modo usuario. Un hilo bloqueado, bloquea todo el proceso, Ademas

    aunque el sistema soporte multiprocesamiento no es posible que varios hilos se ejecuten simult aneamente yaque solamente uno de ellos puede acceder a la vez al s.o. En esta configuracion el s.o. planifica procesos, cadaproceso esta constituido por uno o varios hilos de usuario.

    Un hilo del nucleo por cada hilo de usuario. El s.o. crea un hilo de nucleo por cada hilo de usuario, no senecesita biblioteca de hilos de usuario. Ejemplos son: Solaris 10, Windows NT y OS/2.

    La principal ventaja es que si un hilo se bloquea se puede planificar otro hilo del mismo proceso. El s.o.planifica hilos del nucleo, cada uno asociado un hilo de usuario.

    El principal inconveniente es que la creacion de hilos del nucleo genera sobrecarga. Por eso los s.o. limitan elnumero de hilos que es posible crear.

    Menor numero de hilos del nucleo que hilos de usuarios. Para su implementacion se requiere una biblioteca

    de hilos para gestionar los hilos de usuario. Es el programador de la aplicacion el que se encarga de establecerel numero de hilos del nucleo que requieren los hilos de usuario en que ha descompuesto la aplicacion. P.e.Solaris 7 y anteriores.

    Si esta configuracion esta bien disenada tiene las ventajas de las dos configuraciones anteriores.

    12

  • 7/24/2019 Resumen SO Uned

    18/80

    3 Planificacion de procesos

    3.1 Introduccion

    El sistema operativo se encarga de planificar que proceso debe ejecutarse en el procesador siguiendo diferentescriterios de planificacion. La parte del s.o. que se encarga de la planificacion de procesos se denomina planificadory realiza esta tarea a diferentes niveles implementando uno o varios algoritmos de planificacion.

    3.2 Niveles de planificacion

    Colas y niveles de planificacion

    Un s.o. con multiprogramacion debe distribuir y plani-ficar adecuadamente el uso de los recursos del computadorentre todos los procesos existentes. Para hacerlo mantienevarias colas de procesos diferentes. De forma general sepueden distinguir los siguientes colas:

    Cola de procesos en el estado preparado. Aqu se en-cuentran los procesos que desean acceder al proce-sador para iniciar o continuar su ejecucion. Puedenexistir varias colas de esta clase, cada una de las cualescontiene procesos con un determinado rango de nivelde prioridad de ejecucion.

    Cola de procesos en el estado preparado en memo-ria secundaria. Contiene procesos que estan a laespera de regresar a la memoria principal al estadopreparado.

    Cola de procesos en el estado bloqueado. Estos proce-sos estan a la espera de poder volver al estado preparado cuando ocurra el evento por el que han entradoen el estado bloqueado. Esta cola no tiene porque ser unica. Puede haber una cola por cada evento posible.Otra opcion es mantener colas por grupos de eventos asociado a alg un recurso, si se trata de un dispositivose llama cola del dispositivo.

    Cola de procesos en el estado bloqueado en memoria secundaria. Pasan al estado preparado en memoria

    secundaria cuando ocurra el evento por el que se bloquearon.

    Cola de trabajos por lotes o cola de entrada. Esta en la memoria secundaria y contiene los trabajos por lotesnueves. Cada trabajo espera a que el s.o. cree un nuevo proceso para atenderlo.

    El s.o. debe determinar cuando un proceso abandona una cola para acceder a un recurso o ingresar en otracola. A esto se le llama planificacion de procesosy al componente que lo realiza se le denomina planificador.

    Se distinguen de forma general tres niveles de planificacion:

    Planificacion a corto plazo.

    El planificador a corto plazo o planificador del procesador o planificador (scheduler), decide que proceso enla cola de preparados sera ejecutado a continuacion. Se ejecuta mas frecuentemente y debe ser rapido yeficiente.

    Desde el punto de vista logico todo planificador se puede dividir en tres componentes o elementos:

    Encolador(enqueuer). El encolador incluye el proceso preparado en la de procesos preparados mediantela configuracion de punteros necesarios en el bloque control de proceso. Puede asignarle una prioridadde ejecucion.

    Conmutador de contexto(context switcher). Guarda el contexto del proceso que es desalojado del proce-sador y carga el contexto del nuevo proceso a ejecutar.

    Distribuidor o despachador(dispatcher). Selecciona un proceso de la cola de preparados de acuerdoal algoritmo de planificacion utilizado. Tambien cede el control del procesador por lo que llama alconmutador de contexto. El tiempo que tarda en detener un proceso y comenzar la ejecucion delsiguiente se llamalatencia de despacho. Es deseable que ese tiempo sea corto, pero en los s.o. connucleono expropiable, no se permite expropiar el procesador si esta ejecutando un proceso en modo nucleo

    realizando una llamada al sistema, puede ser larga.

    Las circunstancias que requieren la invocacion del planificador son:

    Cuando se ha terminado de crear un nuevo proceso hijo. Se decide si se cambia a este proceso.

    13

  • 7/24/2019 Resumen SO Uned

    19/80

    Cuando un proceso entra en el estado bloqueado en espera que se produzca algun evento.

    Cuando se termina de atender una interrupcion. El planificador debe elegir si continua el procesointerrumpido o ejecuta uno distinto.

    Cuando un proceso finaliza.

    Planificacion a medio plazo.

    El planificador a medio plazo o planificador de memoria o intercambiador, intercambia procesos entre lascolas en memoria principal y secundaria, o viceversa. Se ejecuta menos que el planificador a corto plazo. Esinvocado cuando queda espacio en la memoria principal o el numero de procesos preparados cae por debajode un valor lmite prefijado.

    Planificacion a largo plazo

    Elplanificador a largo plazo o planificador de trabajos o planificador de admision,se encarga de los procesospor lotes, decide que nuevos trabajos admitir, que consiste en crear un proceso y pasarlos a la cola depreparados en memoria principal o secundaria.

    Se invoca cuando se termina un trabajo o cuando el procesador esta un tiempo inactivo.

    Los procesos siempre empiezan a ejecutarse con unarafagade CPU, para despues alternar entre operacionesE/S y rafagas de CPU. Sin un proceso esta la mayor parte del tiempo usando el procesador se dice que es unproceso limitado por CPU. Al contrario si emplea la mayor parte del tiempo esperando operaciones de E/S

    se dice que es un proceso limitado por E/S. El planificador a largo plazo debe equilibrar estos dos tipos detrabajo para que exista una mezcla adecuada.

    Se ejecuta poco frecuentemente y algunos s.o. como los basados en UNIX no lo poseen. En estos s.o. lostrabajos son admitidos mientras exista memoria principal disponible.

    Conviene que los planificadores sean rapidos y eficientes para reducir la sobrecarga y mejorar el rendimiento delsistema. Se puede distinguir un cuarto nivel, la planificacion de la E/S, decide que proceso usara cada dispositivo.

    3.3 Criterios generales considerados en la planificacion de procesos

    Los objetivos deseables que debe cumplir la funcion de planificacion de procesos de un s.o. son:

    Equidad. En ausencia de un esquema de prioridades, los procesos con requisitos similares deben obtener un

    uso de los recursos similares. Ningun proceso debe sufrir de inanicion.

    Previsibilidad. Trabajos con caractersticas similares deben ejecutarse en tiempos similares usando recursossimilares.

    Uso equilibrado de los recursos. Se debe intentar mantener ocupados todos los recursos del computador.

    Proporcionalidad. Las peticiones que son percibidas por el usuario como sencillas deben emplear menostiempo de respuesta que las complejas ya que de lo contrario el usuario se irrita o considera que el sistemaha dejado de responder.

    3.4 Criterios considerados en la planificacion de procesador

    El planificador del procesadorutiliza alguno de los siguiente criterios para elegir que proceso sera ejecutado:

    Utilizacion del procesador o eficacia. Fijado un intervalo de tiempo, hace referencia al tanto por ciento dedicho tiempo que el procesador ha estado activo.

    Productividad (throughput) o rendimiento. El numero de trabajos completados por unidad de tiempo.

    Tiempo de entrega (turnaround time) o tiempo de retorno o tiempo de estancia. Es el tiempo medido quetranscurre desde que se lanza un proceso hasta que se finaliza. Es la suma del tiempo de ejecucion y el tiempode espera por los recursos, incluyendo el procesador.

    Tiempo de espera. Es la suma de los tiempos que un proceso pasa esperando en las diferentes colas del sistemapor la obtencion de recursos.

    Tiempo de respuesta(response time). Es el tiempo transcurrido desde que un usuario manada una orden

    hasta que comienza a recibir la respuesta.

    Plazo de finalizacion(deadline). Hace referencia al tiempo maximo preestablecido que un proceso tiene parase completado en un sistema de tiempo real.

    14

  • 7/24/2019 Resumen SO Uned

    20/80

    La eleccion de los criterios a optimizar depende del s.o. Normalmente el planificador optimiza los valores mediosde los criterios que considera. Investigaciones dicen que es mas importante minimizar la varianza en el tiempo derespuesta que minimizar el tiempo de respuesta promedio. Un sistema con un tiempo de respuesta razonable ypredecible puede ser mas atrayente que un sistema que es mas rapido e promedio, pero que es altamente variable.

    Cuando se intentan optimizar varios criterios simultaneamente, se debe tener en cuenta que pueden ser incom-patibles entre si y llegar a un compromiso dando un peso a cada criterio. El valor del peso dependera del uso ytipo del s.o.

    3.5 Expropiabilidad del procesadorSegun si se permite que un proceso pueda usar el procesador ininterrumpidamente todo el tiempo que desee la

    planificacion puede ser:

    Planificacion no expropiativa. El proceso puede usar el procesador ininterrumpidamente.

    Planificacion expropiativa. El proceso puede ser interrumpido a favor de otro proceso. La decision deexpropiar se puede tomar cuando llega un nuevo proceso, cu