



















































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
.......................................................................
Tipo: Apuntes
1 / 59
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
1.1: ¿Qué es un sistema operativo? Es un programa que controla la ejecución de los programas de aplicación. Actúa como interfaz entre el usuario y el hardware. Proporciona al usuario un entorno cómodo y eficiente para ejecutar sus programas.
Objetivos: Facilitar el uso del sistema informático. Uso eficiente del hardware del ordenador.
1.1.1. El sistema operativo como máquina virtual. Sería muy difícil para el usuario y su aplicación dominar todos los elementos a nivel de hardware y direcciones máquina.
Un sistema operativo transforma un cierto hardware en una máquina más fácil de usar.
1.1.2. El sistema operativo como administrador (manejador) de recursos. Un sistema informático tiene recursos como la memoria central, CPU, discos, impresoras y tiene usuarios que quieren usar esos recursos. El sistema operativo debe optimizar el uso de sus recursos entre los distintos usuarios para conseguir un máximo rendimiento y debe lograr que se compartan los recursos del sistema y los datos entre varios usuarios que trabajen simultáneamente.
1.2: Evolución histórica de los sistemas operativos. 1.2.1. Los primeros sistemas. No existía un sistema operativo propiamente dicho. Se utilizaba un esquema de reserva por solicitud. El modo de operación era proceso en serie. Se operaba directamente con el ordenador. Era un modo de trabajo interactivo. El programa tenía que ser cargado directamente en memoria.
Aparecen los primeros ensambladores, enlazadores, cargadores de programas y compiladores de Fortran y Cóbol. Aparecen las bibliotecas de funciones comunes y controladores de dispositivos.
1.2.2. Sistemas por lote. Se contratan operadores especiales que interactuaban directamente con el ordenador, no el programador. Se organizan los trabajos por lotes: Datos, código ejecutable, instrucciones de control. Por ejemplo: varios trabajos todos en el mismo lenguaje.
Esto da lugar al primer sistema operativo: secuencionamiento automático de trabajos. Un programa monitor residente se encarga de cargar en memoria el programa y ejecutarlo. Luego se vuelve a llamar al monitor que carga otro programa y
lo ejecuta y así sucesivamente. Estas órdenes se le daban a través de tarjetas de órdenes.
Partes del monitor residente: Intérprete de tarjeta de control. Cargador. Manejadores de dispositivos. Tratamiento de interrupciones.
Mientras se realizan operaciones de E/S, la CPU está aprovechando ese tiempo:
Aparecen el buffering y el spooling para que todas las operaciones se realicen en la misma máquina. Buffering: Método de solapar operaciones de E/S con operaciones de CPU del mismo proceso. Para sincronizar el trabajo entre la CPU y los dispositivos de E/S se emplean las interrupciones. En un sistema guiado por interrupciones, la CPU es interrumpida por cada carácter que realiza una operación de E/S. Para liberar a la CPU de todo el trabajo de E/S se data al sistema de DMA. En un sistema con DMA, la CPU es interrumpida por cada bloque de datos que realiza una operación de E/S. Spooling: Aparece cuando aparecen los discos magnéticos. Método para simultanear las operaciones de E/S de otros procesos con las de computación del trabajo actual. Las operaciones de E/S de los procesos anteriores y posteriores, son realizadas por el spool, concurrentemente con el proceso actual. Utiliza el disco como un gran buffer de E/S. La CPU no va a tener que esperar al dispositivo de entrada porque ya tiene la información disponible en un dispositivo rápido. El dispositivo de salida tomará la información del buffer a su máxima velocidad. Los sistemas que utilizan el spool crean las colas de trabajo, teniendo que seleccionar el que va a realizar primero.
1.2.3. Sistemas por lote multiprogramados. Características: Existen varios procesos simultáneamente residentes en memoria. Los tiempos de E/S de un proceso se solapan con tiempos de CPU de otros. Los procesos se alternan el uso del procesador. Existe una compartición de recursos.
Grado de multiprogramación: es el número de procesos que están activamente ejecutándose, es decir, residentes en memoria en un instante dado.
1.5: Sistemas de tiempo real. Su prioridad es el tiempo de respuesta corto. Deben responder inmediatamente a los eventos externos. El usuario y la utilización de recursos son una preocupación secundaria. Cada proceso tiene asignado una prioridad (planificación apropiativa por prioridades). Atienden dos tipos de tareas:
Una tarea blanda puede convertirse en dura si pasa su plazo.
Dos tipos de sistemas en tiempo real:
Tema 2: Estructura y funciones de los sistemas operativos.
2.1: Servicios de un sistema operativo. Servicios ligados a facilitar el uso del sistema informático:
2.2: Métodos para solicitar servicios. 2.2.1. Llamadas al sistema. Las llamadas al sistema proveen una interfaz entre los procesos y los servicios del sistema operativo. Mediante las llamadas al sistema, el usuario solicita los servicios que desea del sistema operativo.
El tratamiento de una llamada al sistema es igual al de una interrupción. El paso de parámetros se puede realizar:
2.3: Estructura de un sistema operativo. Un sistema operativo es una compleja y enorme colección de rutinas de software, por lo que se suelen dividir en pequeños módulos. Los principales módulos de un sistema operativo son:
Existen diversas estructuras de sistemas operativos:
2.3.1. Estructura simple o monolítica. Es un macroprograma con miles de líneas de código. No existe una estructura interna definida entre los módulos del sistema operativo. Utilizan técnicas de programación modular. Son difíciles de mantener y actualizar. Todos los componentes están muy relacionados. No existe ningún tipo de ocultación de información. Se comporta como un único proceso. Tienen buen rendimiento hardware.
Estructura de los SO
Núcleo complejo
Núcleo mínimo
Monolítico
Modular
Capas
Estructurado
Micronúcleo
Máquinas virtuales
Orientado a objetos Capas de abstracción
Capas funcionales
2.3.3. Estructura por capas o estratos. Consiste en organizar el sistema operativo como una jerarquía de estratos o capas. Cada capa se implementa usando sólo aquellas operaciones que le proporciona el nivel inmediatamente inferior. Se emplean técnicas modulares y de diseño top- down. La depuración y verificación del sistema es mucho más sencilla. La mayor dificultad está en definir las capas. Las operaciones al tener que pasar por varias capas, son menos eficientes.
2.3.4. Máquinas virtuales. El concepto de máquina virtual es crear sobre una máquina real varias máquinas virtuales en las que puedan correr sistemas operativos distintos simultáneamente.
Un ejemplo es el sistema operativo VM que separa los aspectos de multiprogramación y máquina extendida mediante monitor de máquina virtual, que proporciona multiprogramación, y por otro lado están los núcleos de los sistemas operativos que proporcionan la característica de máquina extendida.
2.3.5. Estructura de micronúcleo. Núcleo mínimo que hace las funciones mínimas que debe hacer un núcleo. El resto de funciones se crean como procesos del sistema. Estos procesos del sistema se ejecutan en modo usuario. Cuando un usuario solicita un servicio al núcleo este le pasa el control al proceso del sistema correspondiente. Cuando termina, el núcleo le pasa la respuesta al usuario. El núcleo realiza un paso de mensajes.
Modelo cliente/servidor. Consiste en diseñar un núcleo del sistema operativo mínimo (micronúcleo), dejando la mayoría de las funciones a procesos de usuarios. El proceso que solicita un servicio es el proceso cliente. El proceso que ofrece el servicio es el proceso servidor.
Capa N
Capa N- 1
Operaciones existentes
Operaciones ocultas
Operaciones nuevas
2.4: Diseño, implementación y configuración de un sistema operativo. Diseño. Se tendrán en cuenta las técnicas actuales de ingeniería del software, con dos objetivos principales: Objetivos de usuario y objetivos del sistema. Lo que nos va a condicionar es el hardware y el tipo de sistema operativo que vamos a tener. Los requisitos se dividen en:
Implementación. Se puede implementar:
Configuración del sistema operativo. El sistema debe de generarse o adaptarse a cada instalación. Las características que podemos configurar son:
El núcleo que se genera puede ser:
Mediante un programa de arranque, ‘bootstrap program’, que sabe donde está el núcleo, lo carga y lo ejecuta.
2.5: El sistema operativo Linux. Es un sistema operativo tipo UNIX. Tiene núcleo monolítico. El núcleo tiene los siguientes componentes:
Tema 3: Descripción y control de procesos.
3.1: ¿Qué es un proceso? La definición más aceptada: Programa que se está ejecutando. Un proceso es la unidad de trabajo de un sistema. Mientras que un programa es una entidad estática, un proceso es una entidad dinámica.
3.2: Vida de un proceso. Un proceso está formado por: Un programa ejecutable. Unos datos. Un contexto de ejecución:
El sistema operativo ve al proceso como una unidad que se va ejecutando y evolucionando entre distintos estados. El estado global del sistema está constituido por el estado en el que se encuentran todos los procesos y recursos del sistema.
3.2.1. Creación y terminación de procesos. La creación de un proceso consta de dos etapas: Creación de estructuras de control. Asignación del espacio de memoria. Generación de procesos: Cuando un proceso (padre) crea a otro proceso. (Hijo)
La terminación de un proceso consta de dos etapas: Liberación del espacio de memoria. Destrucción de la estructura. Causas para la terminación de un proceso. Por que finaliza su ejecución Debido a errores:
3.2.2. Estados de un proceso y transiciones entre estados. A) Modelo de dos estados. Es el más simple. Posee dos estados: Ejecución y No Ejecución.
No Ejecución Ejecución
Entrada Pasar a Ejecución^ Terminación
Parada
B) Modelo de cinco estados. Estado de ejecución: el proceso tiene el dominio de la CPU en ese momento y se está ejecutando. Estado de listo: el proceso está preparado y en disposición de usar la CPU, si hubiese una libre. Estado de bloqueado: el proceso está a la espera de que ocurra algún evento. Estado de nuevo: el proceso acaba de ser creado, pero no se le ha asignado memoria todavía. Todavía no ha sido admitido por el sistema. Estado de terminado: el proceso ha terminado, ya se ha liberado su memoria, pero no se han destruido sus estructuras de datos.
Un proceso cambia de estados a lo largo de su vida. Transiciones: Despacho: Listo Ejecución Tiempo excedido: Ejecución Listo Bloqueo: Ejecución Bloqueado Despertar: Bloqueado Listo La única transición iniciada por el propio proceso es la de bloqueo. Este modelo puede ser completado con un estado más: Suspendido.
3.3: Descripción de un proceso. 3.3.1. Estructuras de control del sistema operativo. El sistema operativo necesita una serie de estructuras de datos que le permitan controlar el estado de los procesos y de los recursos. Ejemplo:
3.3.2. Estructura de control de un proceso. Físicamente un proceso se manifiesta por tener en memoria:
Listo
Admisión Pasar a Ejecución^ Salida
Tiempo excedido
Nuevo Ejecución (^) Terminado
Bloqueado
Despertar Bloqueo
El BCP permite al sistema operativo localizar toda la información clave sobre procesos. El conjunto de BCP forma las tablas de procesos. El id del proceso se usa como índice en las tablas de los procesos.
3.4: Gestión de procesos. 3.4.1. Creación de un proceso. Cuando se crea un proceso, el sistema operativo realiza los siguientes pasos: 1- Asigna un identificador único al proceso. Se crea el BCP, pero sólo se rellena el campo del identificador. 2- Asigna memoria al proceso. 3- Inicializa el BCP. 4- Insertar el proceso en la lista de procesos que corresponda. Por ejemplo en la lista de procesos listos. 5- Otras operaciones, como actualizar todas las estructuras de control que mantenga el sistema operativo.
Un proceso puede ser creado por:
3.4.2. Cambio de proceso. Mecanismos para interrumpir la ejecución de un proceso:
Mecanismo Causa Uso Interrupción Externa a la ejecución de la instrucción actual.
Reacción a un evento externo asíncrono. Trampa. Ecepciones.
Asociado con la ejecución de la instrucción actual.
Manejo de errores o de condiciones excepcionales. Petición de un servicio. (Llamada al sistema)
Petición explícita. Llamada a una función del sistema operativo
Tratamiento de una interrupción. (Cambio de contexto) No siempre se cambia el estado de un proceso. Cuando se produce una interrupción, el procesador:
Cambio de proceso. (Por interrupción de reloj, fallo de memoria, servicio de E/S, etc.) Pasos:
3.4.3. Terminación de un proceso. Para destruir un proceso:
Un proceso puede ser destruido por:
3.4.4. Otras operaciones. Cambiar la prioridad de un proceso. Bloquear un proceso. Despertar un proceso. Suspender/reanudar un proceso. Concepto: Suspender un proceso consiste en detener un proceso, esté en el estado en que esté. El proceso puede salir o no de memoria.
Características de un proceso suspendido:
Justificación. Motivos por los que un proceso puede ser suspendido:
3.6: Procesos en Linux. 3.6.1. Imagen en Linux. Está compuesta por: Segmento de datos, divididos en:
El tamaño de la tabla de proceso es fijo. Reserva 4 procesos para el superusuario. Tiene 6 estados: Nuevo, listo, bloqueado, terminado y dos estados de ejecución. (Modo usuario y modo supervisor)
3.6.2. Hilos en Linux. Un proceso puede tener muchos hilos. Proceso:
Llamada a Fork. Crea un proceso. Pasos que realiza:
Tema 4: Planificación de la CPU.
4.1: Planificador de procesos. La multiprogramación produce un aumento de la utilización de la CPU y una mayor productividad del sistema.
La planificación es un asunto de manejo de colas para minimizar el tiempo de retraso en las colas y optimizar el rendimiento del sistema. La planificación de la CPU es necesaria en los sistemas multiprogramados debido a que el número de procesos que se quiere ejecutar supera el número de procesadores existentes en el sistema.
4.2: Niveles de planificación del procesador. 4.2.1. Planificador a largo plazo. Cuando termina/comienza un proceso. Determina que trabajo se admite en el sistema para su procesamiento. Decide cuántos trabajos acepta y qué trabajos.
Con la primera decisión controla el grado de multiprogramación del sistema. La segunda decisión puede basarse en distintos criterios:
Se ejecuta con una frecuencia menor y puede tardar más tiempo en decidir que trabajo seleccionar.
4.2.2. Planificador a medio plazo. Para intercambiar procesos. Descarga y carga procesos de memoria activa, reduciendo el grado de multiprogramación. Suspende y reanuda procesos para que el rendimiento del sistema se mantenga dentro de unos niveles.
4.2.3. Planificador a corto plazo. El próximo en ejecutarse. Selecciona entre los trabajos que están en la cola de listos a cual asignarle la CPU. Se ejecuta cada vez que ocurre un evento que puede causar un cambio de proceso:
Posee un módulo que se llama despachador:
5ª. Cuanto termina un proceso.
Cuando la planificación tiene lugar únicamente en las situaciones 1ª y 5ª, decimos que el esquema de planificación es no apropiativo. Solo pierde el control del procesador cuando se bloquea por una operación de E/S o porque ha terminado.
En los otros casos decimos que tenemos un esquema de planificación apropiativo. Se le puede retirar el dominio del procesador a un proceso.
Planificación apropiativa. El proceso que se está ejecutando puede ser interrumpido en cualquier momento y movido a la cola de listos, antes de su completa ejecución.
Planificación no apropiativa. Una vez asignada la CPU a un proceso, no se le puede retirar hasta que la libera, ya sea por que termina la ejecución o porque cambia a un estado de espera. (se auto bloquea)
4.3.2.2. Función de selección. Algoritmo que decide a que proceso s4 le asigna la CPU.
4.3.2.3. Regla de arbitraje. En caso de que al aplicar uno de los algoritmos de selección, resulte un empate, alguna regla para seleccionar uno determinado.
4.4: Algoritmos de planificación. 4.4.1. Primero en llegar, primero en salir (FIFO). Se les asigna la CPU conforme al orden de llegada. Selecciona al proceso más viejo en la cola de listos, situado al principio de la cola.
Es no apropiativo. No es útil en sistemas interactivos, al no garantizar buenos tiempos de respuesta. Es el más sencillo, se implementa con una cola FIFO. Es justo, pero los procesos largos hacen esperar a los procesos cortos.
4.4.2. El trabajo más corto primero (SJF). Se le asigna la CPU al proceso que tenga un tiempo estimado de ejecución más corto. Los procesos cortos pasan a la cabeza de la cola de listos.
Reduce los tiempos de espera. Favorece a los procesos cortos frente a los largos. No es apropiado para tiempo compartido por ser no apropiativo. Lo difícil es predecir que tiempo va a durar cada proceso.
n
i
S (^) n (^) n Ti 0
n n n Tn S n n
1
T Tiempo real
S Tiempo estimado i
i
4.4.3. El tiempo restante más corto (SRT). El siguiente en ser ejecutado es el proceso de tiempo estimado de ejecución menor para llegar a su terminación, incluyendo las nuevas llegadas.
Es una variante apropiativa del anterior. Tiene cierta sobrecarga al tener que llevar registro del tiempo transcurrido de proceso. Los procesos cortos se ejecutan casi inmediatamente y los largos tienen mayor retraso que en SJF.
4.4.4. Prioridades. Consiste en asignarle a cada proceso una prioridad, consistente en un número. Las prioridades pueden determinarse:
Las prioridades pueden ser:
El mayor problema de las prioridades es la inanición. Una solución es la técnica del envejecimiento, que consiste en cada cierto período de tiempo de espera, se le aumenta la prioridad al proceso.
4.4.5. Asignación en rueda (Round Robin). Se define una pequeña unidad de tiempo denominada quantum. A cada proceso se le asigna un quantum de tiempo. Si no termina en ese periodo, el control de la CPU pasa al siguiente proceso de la cola. La cola de procesos en estado de listo se organiza según un esquema FIFO. Es un sistema con modo de decisión apropiativo basado en el reloj. Es apropiado para sistemas de tiempo compartido. El problema es determinar el tamaño del quantum:
4.4.6. Razón de respuesta más alta (HRRN). Se selecciona el proceso de la cola que tenga un valor de RR más alto. Es no apropiativo.
T Tiempo de servicio estimado
T Tiempo de espera estimado T
s
w s
w s
4.4.7. Múltiples colas. Se crean distintas colas a las que son asignados los trabajos. Cada cola puede tener su propio algoritmo de planificación. Los procesos nunca cambian de cola. Tipos de cola: