Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Apunte......................................................................., Apuntes de Sistemas Operativos

.......................................................................

Tipo: Apuntes

2017/2018

Subido el 23/12/2018

mainstream772
mainstream772 🇦🇷

4.5

(2)

54 documentos

1 / 59

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tema 1: Introducción a los sistemas operativos.
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b

Vista previa parcial del texto

¡Descarga Apunte....................................................................... y más Apuntes en PDF de Sistemas Operativos solo en Docsity!

Tema 1: Introducción a los sistemas operativos.

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:

  • Operaciones fuera de línea: la E/S se realiza en otro aparato, a través de cintas magnéticas.
  • Procesamiento satélite: un ordenador satélite sólo se dedica a operaciones de E/S. Esto da lugar a los dispositivos lógicos de E/S.

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:

  • Tareas duras: necesitan una atención inmediata. Posee un plazo fijo breve.
  • Tareas blandas: necesitan una respuesta rápida. Posee un plazo algo más largo que las duras, pero sigue siendo breve.

Una tarea blanda puede convertirse en dura si pasa su plazo.

Dos tipos de sistemas en tiempo real:

  • S.T.R. duros: aceptan tareas duras.
  • S.T.R. blandos: aceptan tareas duras y blandas y además es flexible. Debe saber cuando pasar una tarea blanda a dura.

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:

  • Creación de programas.
  • Ejecución de programas.
  • Operaciones de E/S.
  • Gestión de información.
  • Comunicaciones entre procesos.
  • Detección de errores.  Servicios ligados a un uso eficiente del hardware:
  • Asignación de recursos.
  • Contabilidad.
  • Protección y seguridad.

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:

  • Directamente en la llamada.
  • Cargando en un registro, la dirección de la tabla donde están todos los parámetros.

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:

  • El administrador de procesos.
  • El administrador o gestor de memoria principal.
  • El administrador del almacenamiento secundario.
  • El administrador del sistema de E/S.
  • El administrador de ficheros.
  • El sistema de protección.
  • El sistema de comunicaciones o trabajo en red.
  • El intérprete de comandos.

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

  • Núcleo estructurado: usando metodología estructurada.
  • Núcleo orientado a objetos: usando metodología orientada a objetos.

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:

  • Del usuario: fácil de usar, fiable, seguro, rápido.
  • Del sistema: fácil de diseñar, implementar, mantener, fiable, libre de errores, transportable.

 Implementación. Se puede implementar:

  • En lenguaje de bajo nivel: es dependiente de la máquina y de difícil migración.
  • En lenguaje de alto nivel: el código es más fácil de entender, de depurar, de implementar, de transportar. Inconvenientes: la velocidad disminuye y una mayor capacidad de almacenamiento.

 Configuración del sistema operativo. El sistema debe de generarse o adaptarse a cada instalación. Las características que podemos configurar son:

  • Memoria disponible.
  • Número máximo de usuarios posibles.
  • Dispositivos.
  • Número máximo de procesos.
  • Tipo de CPU, si se ejecuta en varias diferentes.

El núcleo que se genera puede ser:

  • Estático: configurado para unas características. Si cambia el hardware hay que volver a compilar el núcleo.
  • Dinámico: Tiene partes que se pueden cargar y descargar de memoria.

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:

  • Administrador de procesos.
  • Administrador de memoria.
  • Administrador de dispositivos de red.
  • Administrador de sistemas de ficheros.
  • Administrador de dispositivos de E/S.

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:

  • Registros de la CPU.
  • Otra informació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:

  • Por que se lo pide el proceso padre.
  • Intento de acceso a una zona de memoria donde no tiene permiso.
  • Intento de acceder a un recurso que no tiene derecho o de forma indebida.
  • Intento de realizar una operación aritmética no permitida.

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:

  • Tablas de memoria.
  • Tablas de E/S.
  • Tablas de ficheros.
  • Tablas de procesos.

3.3.2. Estructura de control de un proceso. Físicamente un proceso se manifiesta por tener en memoria:

  • Un código.
  • Unos datos.
  • Una pila.
  • Unos atributos.

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:

  • Un usuario que lo solicita.
  • El sistema operativo.
  • Otro proceso.

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:

  • Salva el contenido de los registros del procesador, del CP y de los punteros de pila. (Cambio de contexto)
  • Establece el contador de programa. Debe guardar toda aquella información que puede ser alterada por el tratamiento de la interrupción, en el BCP.

 Cambio de proceso. (Por interrupción de reloj, fallo de memoria, servicio de E/S, etc.) Pasos:

  • Cambio de contexto.
  • Actualizar el BCP del proceso que está actualmente en ejecución. Para cambiar el estado.
  • Mover el BCP a la cola adecuada.
  • Seleccionar otro proceso para ejecutar.
  • Actualizar el BCP del proceso seleccionado. Para cambiar el estado.
  • Actualizar las estructuras de datos para el manejo de la memoria.
  • Restaurar el contexto del procesador. Se producen dos cambios de contexto.

3.4.3. Terminación de un proceso. Para destruir un proceso:

  • Se devuelven sus recursos al sistema.
  • Se borra de todas las listas y tablas del sistema.
  • Se borra su BCP.

Un proceso puede ser destruido por:

  • Completar la ejecución del proceso.
  • Exceder el límite de tiempo asignado al proceso.
  • No haber la memoria disponible que el proceso solicita.
  • Violación de protección de memoria.
  • Error de protección al intentar acceder a un recurso no autorizado.
  • Error aritmético.
  • Instrucción inválida.
  • Fallo de E/S.
  • Intervención del usuario o del sistema operativo.

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:

  • El proceso que está suspendido, no está inmediatamente disponible para su ejecución.
  • La condición de bloqueado es independiente de la de suspendido.
  • El proceso puede ser situado en estado de suspendido por él mismo, el proceso padre, el sistema operativo o el usuario con el fin de evitar que pueda ser ejecutado.
  • Un proceso sólo puede salir del estado de suspendido si se le aplica una orden externa de reanudar. El propio proceso no puede reanudarse.

Justificación. Motivos por los que un proceso puede ser suspendido:

  • Por el sistema operativo:  Ante un fallo del proceso.  Carga alta del sistema. (No hay memoria suficiente)
  • Es menos costoso crear/terminar una hebra que un proceso.
  • Es menos costoso intercambiar dos hebras que dos procesos.
  • La comunicación entre hebras dentro de una misma tarea no requiere intervención del núcleo del sistema operativo.
  • Cada hebra se puede estar ejecutando en un procesador distinto simultáneamente.

3.6: Procesos en Linux. 3.6.1. Imagen en Linux. Está compuesta por:  Segmento de datos, divididos en:

  • Inicializados: no varían a lo largo de la vida del proceso.
  • No inicializados.  Segmento de texto o código: puede ser compartido por varios procesos.  Segmento de pila. Lo crea el núcleo al arrancar el proceso. Compuesto por marcos de pila. (Parámetros de la función, variables locales) Dos tipos:
  • Usuario: para las funciones que se ejecuten en modo usuario.
  • Núcleo: para las funciones que se ejecuten en modo núcleo.  BCP.

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:

  • Unidad propietaria de recursos.
  • Tiene asignado un espacio de direcciones.
  • Tiene recursos asignados.  Hilo:
  • Posee un estado.
  • El contexto del procesador.
  • Una pila de ejecución.
  • Almacenamiento para variables locales.
  • Tiene acceso a la memoria y recursos asignados al proceso.

Llamada a Fork. Crea un proceso. Pasos que realiza:

  • Busca una entrada en la tabla de procesos.
  • Se copia toda la información del proceso padre en las estructuras del proceso hijo.
  • Le asigna un identificador.
  • Comparte con el proceso padre todos los segmentos, utilizando una técnica “copia en escritura”, si se intenta modificar algún segmento se hace una copia y se modifica.

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:

  • Prioridad.
  • Puede elegir entre los orientados a R/S y los orientados a CPU.
  • FIFO.

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:

  • Interrupción de reloj.
  • Interrupción de E/S.
  • Llamada al sistema.
  • Señales.

Posee un módulo que se llama despachador:

  • Cambia de procesos.
  • Cambia al modo usuario.
  • Salta a la instrucción que le corresponda ejecutarse en ese instante.

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

S 

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:

  • Internamente por el sistema.
  • Externamente por el usuario.

Las prioridades pueden ser:

  • Estáticas: una vez que se le asigna una al proceso, esta no cambia.
  • Dinámicas: las prioridades cambian, adaptándose al ambiente.

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:

  • Pequeño: todo el tiempo se pierde en el cambio de contexto.
  • Grande: degenera en un FIFO.

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

T T

RR

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:

  • Primer plano.
  • Segundo plano.