Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos.

Documentos relacionados
- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Conceptos de Planificación

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Sistemas Operativos Práctica 3

Apartado TGR Puntuación. No Presentado. EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 17/1/2013.

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

PLANIFICACION DE LA CPU

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Sistemas Operativos. Oscar Bedoya

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

EJERCICIOS TEMAS 1 Y 2 - SO SOLUCIONES

Unidad 2: Gestión de Procesos

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Sistemas Operativos Practica 1: procesos y concurrencia.

; hcomment.rc aa.es ;

Sistemas Operativos I Manual de prácticas

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Taller de Sistemas Operativos Introducción

Bloque I: Principios de sistemas operativos

SOLUCION EXAMEN junio 2006

Primer control de teoría

Procesos. Planificación del Procesador.

Estructuración del programa en partes más pequeñas y sencillas

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

El lenguaje de Programación C. Fernando J. Pereda

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Esquema de un programa en C: bloques básicos

Mercedes Fernández Redondo

Sistemas Operativos I Última modificación 2008/06

Programación Estructurada

Sistemas Operativos. Procesos

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

ESTRUCTURAS BÁSICAS DE UN S.O.

Informática Ingeniería en Electrónica y Automática Industrial

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Arquitectura de Computadores: Exámenes y Controles

El modelo de Procesos

Procesos e Hilos en C

Escuela Politécnica Superior de Elche

Seminario Diseño y construcción de microrrobots Planificador de monoprocesadores Marzo 2006 SEMINARIO DISEÑO Y CONSTRUCCIÓN DE MICRORROBOTS

PROGRAMACION MODULAR FUNCIONES

Introducción a Sistemas Operativos: Procesos

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Definición Tareas del sistema operativo Concurrencia y paralelismo Estados de los procesos Propiedades de un proceso en Linux CONCEPTOS 1.

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid

Escuela Politécnica Superior de Elche

Gestión de procesos en UNIX

1. Sistema Operativo Unix

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

ESTRUCTURAS CONDICIONALES SIMPLES: ESTRUCTURAS CONDICIONALES DOBLES: ESTRUCTURAS CONDICIONALES ANIDADAS:

Asignatura: Estructuras de Datos. Año Escolar: Grado y Sección: 6to INF A-B Docente: Ing. Yesika Medina

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:

Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

Reglas básicas de la programación en lenguaje C

Prácticas de Sistemas Operativos

!! Identificar las señales que llegan a la consola.

Procesos Definición y Estados

Tema 13: Apuntadores en C

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Tema 4: Estructuras de Control Estructura y Contenidos

PLANIFICACIÓN DE PROCESOS

Informática II Vectores y Matrices

12 símbolos (13 si se incluye el espacio en blanco)

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);

Laboratorio 1: Terminal de Linux y primer programa en C

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

Solución Examen Febrero 2006

Fundamentos de programación

Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores

Introducción al lenguaje C

Expresiones Aritméticas

Sentencias de Procesamiento Iterativo: while y do-while

Generador de analizadores sintácticos BISON

TEMA 4. ESTRUCTURAS DE CONTROL

Sistemas Operativos I

Aplicación Multiproceso sobre HTTP Ejemplo -

Preliminares. Tipos de variables y Expresiones

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

Lenguaje de Programación: C++, INPUT OUTPUT(Variables)

Operadores de comparación

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Introducción a C++ y Code::Blocks

OPERADORES Y EXPRESIONES

GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C

Procesos Concep Conce to de Proceso Multitarea Información del proceso (BCP) Creación de procesos T rminación de procesos

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Modelos de Computación I. Ingeniería Informática

FUNDAMENTOS DE PROGRAMACIÓN

Funciones y paso de parámetros

Paso de Parámetros a una Función

Introducción a Sistemas Operativos: Concurrencia

Transcripción:

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. 1.-Considerar los siguientes procesos con los tiempos de llegadas, prioridades y ráfagas de cpu. Proceso Ráfaga de CPU Prioridad Tiempo llegada A 50 ms 0 ms B 20 ms 1 20 ms C 100 ms 3 0 ms D 0 ms 2 60 ms. Mostrar cómo se planifican estos procesos con los algoritmos FCFS, SJF, SRTF, Prioridades Apropiativo y no Apropiativo (un valor más pequeño en la tabla indica más prioridad) y Round Robin con quantum de 30 ms. Cuál es el tiempo de espera promedio para los distintos algoritmos y esta carga de trabajo? llegada A B C D FCFS A A A A A B B C C C C C C C C C C D D D D SJF A A A A A B B D D D D C C C C C C C C C C SRTF A A B B A A A D D D D C C C C C C C C C C PRI.n A A A A A B B D D D D C C C C C C C C C C PRI.a A A B B C C D D D D C C C C C C C C A A A RR(30) A A A B B A A C C C D D D C C C D C C C C T FCFS = 0+30+30+110 T pri.n = 0+30+10+70,,T SJF = 0+30+10+70,,T SRTF = 20+0+70+10,,T pri.a = 160+0+0+0,,T RR = 20+10+70+70 2.- En el código que se muetra a continuación y que corresponde al ejecutable./a.out. Cuántos procesos se crean? (no se cuenta la creación del primer proceso desde el shell?) Qué salida produce por pantalla? a) ninguno b) uno c) 500 d) 99 e) 100

f) 99 g) infinitos #include <stdio.h> #include <unistd.h> #include <stdlib.h> #define MAX 500 main(int argc, char * argv[]) { int i=0; printf ("i vale %d \n",i); i++; if (i==max) exit(0); execl("./a.out", "./a.out", NULL); i=i+5; a) Ninguno. No se crea ningún proceso, el proceso es un bucle infinito que reemplaza su código por el mismo código una y otra vez 3.- En el código que se muestra a continuación y que corresponde al ejecutable./a.out. Cuántos procesos se crean? (no se cuenta la creación del primer proceso desde el shell). Qué salida produce por pantalla? a) ninguno b) uno c) 500 d) 99 e) 100 f) 99 g) infinitos #include <stdio.h> #include <unistd.h> #include <stdlib.h> #define MAX 500

main(int argc, char * argv[]) { int i=0; pid_t pid; i++; printf ("i vale %d \n",i); if ((pid=fork())!=0) exit(0); sleep (1); if (i==max) exit(0); execl("./a.out", "./a.out", NULL); i=i+5; g)infinitos En este caso se crea un proceso hijo que es el que reemplaza su código por uno con el mismo código. Dicho proceso hijo hace lo mismo..-considérese un sistema con planificación por prioridades dinámicas y apropiativas. El funcionamiento del sistema es el siguiente: 1. El sistema tiene definidas prioridades de 1 a 5 (menor número indica menor prioridad) 2. Se ejecuta siempre el proceso de más prioridad. Cuando dos procesos tienen la misma prioridad 1. si uno de ellos está en CPU se deja al que está en CPU. 2. Si ninguno de ellos está en CPU obtiene la CPU el que lleve mas tiempo en la cola de listo. 3. Si un proceso es expulsado de la CPU, cuando la vuelve a obtener su quánto vuelve a comenzar.. A cada proceso se le asigna un quanto que depende de su prioridad y es igual 6-P, siendo P la prioridad (p.e. a un proceso de prioridad 3 se le asigna un quanto de 3). 5. Suponemos que varios procesos pueden realizar e/s concurrentemente. 6. El sistema recalcula la prioridad del proceso que abandona la CPU de la siguiente manera: 1. Si el cuanto expira antes que la ráfaga, su prioridad diminuye en 1.

2. Si la ráfaga acaba antes que el cuanto, su prioridad aumenta en en 1. 3. Si el proceso es expulsado de la CPU por otro de más prioridad su prioridad no varía. Dado que esto es un ejemplo y ponemos ráfagas representadas por números enteros (cosa que no ocurre en un sistema real) supondremos que cuando el instante de terminación de la ráfaga coincide con el de terminación del quánto, es el quánto lo que termina antes y, por tanto, la prioridad del proceso disminuye Mostrar cómo sería la planificación para los procesos que se muestran en el cuadro. Las ráfagas e/s se muestran entre paréntesis, así (3) representa cpu + 3 e/s + cpu Proceso Ráfagas Prioridad inicial Instante de llegada P1 3()3 2 0 P2 1(2)1(1)3 1 P3 (2)1 3 3 CPU P1 P2 P1 P3 P2 P3 P2 P2 P2 P3 P3 P1 - P3 - - P1 P1 P1 E/S P2 P2 P2 P3 P3 P1 P1 P1 P1 Pri P1 2 3 * Pri P2 5 * Pri P3 3 * Instante 0: P1 (pri=2) es el único proceso listo, obtiene la cpu Instante 1: Llega P2 (pri=) con mas prioridad: expulsa a P1. Prioridad de P1 no varia (r6.3) Instante 2: P2 abandona CPU antes de termina quánto: su prioridad aumenta. P1 obtiene CPU Instante 3: P3 llega y obtene CPU Instante : P2 termina e/s y obtiene la CPU Instante 5: P2 termina ráfaga pasa a e/s. Su prioridad disminuye (r6.1 y 6.). P3 obtiene CPU Instante 6: P2 termina e/s y obtiene CPU Instante 9: P2 termina. P3 obtiene CPU Instante 11: P3 termina rafaga antes que quánto y su prirodad aumenta. P1 obtiene n CPU Instante 12: P1 acaba ráfaga antes que quánto: su prioridad aumenta Instante 13: P3 termina e/s obtiene CPU Instanta 1: P3 termina, P1 sigue en e/s Instante 16: P1 termina e/s y obtiene CPU Instante 19: P1 termina 5.-Considere los siguientes procesos con tiempos de llegada y ráfagas

de CPU Proceso Tiempo de Llegada Tiempo de CPU A 0 3 B 1 5 C 3 2 D 10 6 a)se presenta una posible planificación. Dígase de qué planificación se trata, y calcúlese el tiempo de retorno promedio para esta planificación??? A A A B B B B C C B D D D D D D b)con estos procesos llegando en estos instantes. Cuál es el mejor tiempo de espera promedio que puede obtenerse? a) 3+ 9+6+6 Tr promedio = =6 Es un RR de quanto= b) El que proporciona SRTF, que en este caso coincide con SJF SRTF A A A C C B B B B B D D D D D D T EsperaPromedio = 0++0+0 =1 6.-Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene cuatro ráfagas de CPU de 10 ms. intercaladas con tres ráfagas de E/S a disco de 30 ms. Los procesos tiene el mismo tiempo de llegada con el orden C, A, B. Muestre el diagrama de planificación y calcule el tiempo de retorno promedio y el porcentaje de utilización de la CPU y del disco bajo las políticas de planificación de la CPU RR con quantum 50 ms y SRTF (Shortest Remaining Time First).

RR CPU C A A A A A B B B B B C - - - C C SR TF E/S C C C C C C C C C CPU C A A A C A A B C B B B B C E/S C C C C C C C C C RR Tr= 6 +11+20 =12.33 3 %CPU=70 % SRTF Tr= 7 +13+1 =11.33 3 %CPU=100% 7.-Propóngase el código de un programa que liste el directorio que se le pasa como parámetro pero que no liste durante más de 10 segundos. Ayudas: puede usarse una de la llamadas exec para ejecutar el programa externo ls ; la función sleep deja un proceso en espera los segundos que se le pasan como parámetro y kill (pid,sigterm) termina el proceso pid. El proceso crea un hijo que es el que lista el directorio, espera 10 segundos y luego termina el proceso hijo por medio de una señal main (int argc, char * argv[]) { pid_t p; if (argv[1]==null) { printf ( Nada que listar\n ); return; if ((p=fork())==0) { /*proceso hijo*/ execlp ( ls. ls, l, argv[1],null); exit (255); /*por si falla execlp */ sleep (10); kill (p, SIGKILL);