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

Tamaño: px
Comenzar la demostración a partir de la página:

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

Transcripción

1 Tema 4: Gestión de procesos Capítulo 4: Gestión de procesos Procesos Procesos ligeros (threads) Políticas y algoritmos de planificación Señales y excepciones Temporizadores Servidores y demonios Servicios POSIX 1

2 Procesos Concepto p de Proceso Multitarea Información del proceso (BCP) Creación de procesos Terminación de procesos Estados de los procesos Cambio de contexto Planificación Concepto de proceso I PROGRAMA: Archivo ejecutable en un dispositivo de almacenamiento permanente (ej. disco) PROCESO: Un programa en ejecución, reside en MP y según se ejecuta modifica su contexto Desde el punto de vista del usuario: código + estructuras de datos El sistema operativo le asigna recursos y controla su ejecución Desde el punto de vista del sistema operativo: Técnicas de multiplexado (planificación) Caracterización de un proceso: tabla o bloque de control de procesos (BCP). En Linux: task_struct Cada proceso posee un espacio de direccionamiento virtual Independiente 2

3 Jerarquía de procesos Jerarquía de procesos Proceso hijo Proceso padre Proceso hermano Proceso abuelo Vida de un proceso Crea Ejecuta Muere o termina Ejecución del proceso Batch Interactivo Grupo de procesos Árbol típico de procesos en Solaris Entorno del proceso Tabla NOMBRE-VALOR que se pasa al proceso en su creación Se incluye en la pila Se establece: Por defecto (se copia la del padre) Mediante mandatos del shell (export) Mediante API del SO (putenv, getenv) Ejemplo: PATH=/usr/bin:/home/pepe/ :/home/pepe/bin TERM=vt100 HOME=/home/pepe PWD=/home/pepe/libros/primero TIMEZONE=MET 3

4 Conceptos Usuario: Persona autorizada a utilizar un sistema Se identifica en la autenticación mediante: Código de cuenta Clave (password) Internamente el SO le asigna el uid (user identification) Super-usuariousuario Tiene todos los derechos Administra el sistema Grupo de usuarios Los usuarios se organizan en grupos Alumnos Profesores Todo usuario ha de pertenecer a un grupo Bases de la Multiprogramación Paralelismo real entre E/S y UCP (DMA) Alternancia en los procesos de fases de E/S y de procesamiento La memoria almacena varios procesos Procesamiento Entrada/salida Tiempo 4

5 Ejemplo de ejecución en un sistema multitarea. Proceso nulo Proceso A Proceso B Proceso C Procesador Procesamiento Entrada/salida Listo SO Proceso nulo Tiempo Estados de los procesos: ejecución, bloqueado, listo Conceptos Multitarea: varios procesos activos a la vez Multiusuario: soporta varios usuarios en varias terminales Tiempo compartido: reparto equitativo del tiempo de CPU entre varios usuarios Planificador (sheduler): seleciona el siguiente proceso a ejecutar Activador (dispacher): Prepara la ejecución del proceso planificado -> cambio de contexto Grado de multiprogramación: nº de procesos activos Con BCP vigente Necesidades de memoria principal: Memoria virtual 5

6 Ventajas de la multitarea Facilita la programación, dividiendo los programas en procesos (modularidad) Permite el servicio interactivo simultáneo de varios usuarios de forma eficiente Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S Aumenta el uso de la CPU Concepto de proceso II INFORMACIÓN DEL PROCESO (BCP): Imagen de memoria (core image) Estado del procesador (registros del modelo de programación) Bloque de control del proceso BCP Estado actual del proceso Identificación pid, ppid Uid Uid, gid. euid,egid Prioridad del proceso Registros de procesador cuando el proceso no está en ejecución Puntero a la zona de memoria: Segmentos de memoria Recursos asignados: Ficheros abiertos, Temporizadores, Señales, Semáforos, Puertos Un puntero al siguiente BCP 6

7 Memoria de un proceso Contexto de usuario Contexto del nucleo Pila FFFF Registros especiales Heap Datos Texto 0000 Registros generales PC SP Estado Process Control Block (PCB) Planificación y estado Id de proceso y padre uid,guid, euid, egid puntero de pila registros CPU descripción de la memoria recursos asignados punteros para formar listas señales, mensajes, 7

8 El SO mantiene estructuras de datos asociadas a los procesos Mapa de memoria del Proceso A Mapa de memoria del Proceso B Mapa de memoria del Proceso C Tablas SO Mapa de Memoria Tablas del sistema operativo Tabla de procesos BCP Proceso A BCP Proceso B BCP Proceso C - Estado (registros) - Estado (registros) - Estado (registros) - Identificación - Identificación - Identificación - Control - Control - Control - Tabla de memoria - Tabla de E/S: drivers de bloques, de caracteres - Tabla de ficheros, de montajes Tablas del sistema operativo Tabla de procesos (tabla de BCP) Tabla de memoria: información sobre el uso de la memoria. Tabla de E/S: guarda información asociada a los periféricos y a las operaciones de E/S Tabla de fichero: información sobre los ficheros abiertos. C i i i l i i f ió l BCP Criterios para incluir o no una información en el BCP: Eficiencia Compartición 8

9 Información fuera del BCP Se considera del BCP Por eficiencia: Tabla de páginas Describe la imagen de memoria del proceso en sistemas con MV Tamaño variable -> El BCP contiene el puntero a la tabla de páginas (La compartición de memoria requiere que sea externa al BCP) Por compartición: Punteros de posición de los ficheros En la tabla de ficheros abiertos del BCP no se pueden compartir Si se asocian al nodo-i se comparte siempre Se ponen en una estructura común a los procesos y se asigna uno nuevo en cada servicio OPEN Memoria Virtual de un proceso Memoria virtual it Código RIED Memoria principal Datos Pila Tamaño Tabla de páginas Una tabla de páginas ái por proceso Disco Preasignación de zona de intercambio: Todas las páginas están en disco, algunas están copiadas en marcos de página. La información de traducción está en la tabla de páginas 9

10 Creación de procesos I Mapa de memoria Tabla de procesos Objeto ejecutable Bib lio te c a sistem a Cargador Imagen del proceso BCP Creación de procesos II El proceso padre crea un proceso, que a su vez, crea otros procesos, formando un árbol de procesos Esquemas de compartición de recursos: A. El padre y el hijo comparten todos los recursos B. El hijo comparte unsubconjunto de los recursos del padre C. El padre y el hijo no comparten recursos Ejecución El hijo comparte un subconjunto de los recursos del padre El padre espera hasta que el hijo termine 10

11 Creación de procesos III Espacio de direcciones El hijo hace una réplica del padre El hijo carga un programa en su espacio de direcciones Ejempos UNIX La lamada al sistema fork crea un proceso nuevo La lamada al sistema exec, después de fork, reemplaza el espacio de direcciones del proceso con un nuevo código de programa Terminación de procesos El proceso ejecuta la última sentencia y pide al SO Su eliminación (exit): Devuelve la salida desde el hijo al padre (via wait) Libera los recursos asignados El padre puede abortar la ejecución del hijo: El hijo excede sus recursos La tarea asignada al hijo ya no se necesita Cuando el padre termina Algunos SSOO no permiten continuar al hijo cuando el padre ha terminado Todos los hijos terminan en cascada 11

12 Realción padre-hijo en procesos padre Fork() Wait() reanuda hijo Exec() Exit() Estados de los procesos I Cuando un proceso se ejecuta, cambia su estado: Ejecución: Se ejecutan las instruciones del código del proceso Bloqueado: El proceso espera la ocurrencia de un evento Listo: El proceso espera que se le asigne tiempo de CPU para ejecutarse Zombie: El proceso ha terminado su ejecución pero aún tiene una entrada en la tabla de procesos (UNIX) 12

13 Estados de los procesos II Diagrama de estados de los procesos: se interrumpe termina Zombie Listo Ejecución Termina la E/S o elevento se planifica Bloqueado Espera E/S o un evento Cambio de contexto I 13

14 Cambio de contexto II Se produce por una interrupción. Cambio de contexto es el conjunto de dos operaciones: Se pasa a ejecutar la rutina de tratamiento de interrupción Se salva el estado del procesador en el correspondiente BCP Planificador: decide el siguiente proceso a ejecutar. Activador: pone a ejecutar un proceso. Copia el estado del BCP a los registros Termina con una instrucción RETI (retorno de interrupción) Restituye R el registro de estado (bit de nivel de ejecución) Restituye el contador de programa (para el nuevo proceso). El tiempo de cambio de contexto supone una sobrecarga; el sistema no realiza trabajo útil durante este tiempo El tiempo de cambio de contexto depende del soporte hardware Cambio de contexto III Registros especiales Tabla de procesos Estado Registros generales PC SP Estado BCP Proceso A Estado (registros) Información de identificación BCP Proceso B Estado (registros) Información de identificación BCP Proceso N Estado (registros) Información de identificación Información de Información de Información de Control Control Control 14

15 Planificación de procesos I Los procesos migran entre varias colas: Cola l trabajos (job): soporta todos los procesos del sistema Cola Listos (ready) ready): soporta todos los procesos que residen en memoria, preparados para ser ejecutados Colas Bloqueados: soportan los procesos que esperan por un dispositivo de E/S Planificación de procesos II: Colas de listos y bloqueados 15

16 Planificación de procesos III Llamadas al sistema I pid = fork() Crea un proceso idéntico al padre int execl(const char *path, const char *arg,...) int execlp(const char *file, const char *arg,...) int execvp(const char *file, char *const argv[]) Reemplaza la imagen del proceso (código+entorno) exit(status) Termina la ejecución del proceso y devuelve el estado pid = waitpid(pid, &statloc, options) Espera la terminación ió de un hijo pid_t getpid(void void) Devuelve el identificador del proceso. pid_t getppid(void void) Devuelve el identificador del proceso padre. 16

17 Llamadas al sistema. Fork #include <sys/types.h> pid = fork(void) Crea un proceso idéntico al padre Devuelve: El identificador de proceso hijo al proceso padre y 0 al hijo -1 el caso de error Descripción : Crea un proceso hijo que ejecuta el mismo programa que el padre Hereda los ficheros abiertos (se copian los descriptores). Las alarmas pendientes se desactivan. Llamadas al sistema. Fork Mapa de memoria Imagen del proceso A Tabla de procesos BCP A El proceso A hace un fork y crea el proceso hijo B Mapa de memoria Imagen del proceso A Imagen del proceso B Tabla de procesos BCP A BCP B Nuevo PID Nueva descripción de memoria Distinto valor de retorno (0 en el hijo) 17

18 Llamadas al sistema.exec int execl(const char *path, const char *arg,...) int execlp(const char *file, const char *arg,...) int execvp(const char *file, char *const argv[]) Reemplaza la imagen del proceso (código+entorno) Argumentos: path, file: nombre del archivo ejecutable arg: argumentos Descripción: Devuelve -1 en caso de error, en caso contrario no retorna. Cambia la imagen de memoria del proceso. El mismo proceso ejecuta otro programa. Los ficheros abiertos permanecen abiertos Las señales con la acción por defecto seguirán por defecto, las señales con manejador tomarán la acción por defecto. Llamadas al sistema.exec Mapa de memoria Imagen del proceso Tabla de procesos BCP El proceso hace un exec Mapa de memoria Tabla de procesos BCP Se borra la imagen de memoria Se borra la descripción de la memoria y registros Se conserva el PID Mapa de memoria Objeto ejecutable Biblioteca sistem a Cargador Imagen del proceso Tabla de procesos BCP Se carga la nueva imagen Se pone PC en dirección de arranque Se conservan los fd 18

19 Llamadas al sistema. Exit y Wait int exit(int int status) Argumentos: Código de retorno al proceso padre Descripción: Finaliza la ejecución del proceso. Se cierran todos los descriptores de ficheros abiertos. Se liberan todos los recursos del proceso pid = waitpid(pid, &statloc, options) Espera la terminación de un hijo Argumentos: Devuelve el código de terminación del proceso hijo. Descripción: Devuelve el identificador del proceso hijo o -1 en caso de error. Permite a un proceso padre esperar hasta que termine un proceso hijo. Devuelve el identificador del proceso hijo y el estado de terminación del mismo. Llamadas al sistema. Exit y Wait I El padre muere: INIT acepta los hijos Init Init Init Init wait() Init wait() Proceso A fork() Proceso A Proceso A exit() Proceso B Proceso B Proceso B Proceso B exit() 19

20 Llamadas al sistema. Exit y Wait II Zombie: el hijo muere y el padre no hace wait Init Init Init Init Init Proceso A fork() Proceso A Proceso A Proceso A Proceso A wait() Proceso B Proceso B exit() Proceso B zombie Proceso B zombie Llamadas al sistema.ejemplo Código C para crear un proceso int main() { pid_t pid; pid = fork(); if (pid < 0) { fprintf(stderr, "Fork ha fallado"); exit(-1); } else if (pid!= 0) {. wait(null); exit(0); } else { execlp ("/bin/ls", "ls", NULL); } } /* crea un proceso /* error /* Es el padre /* Código del padre /* Espera el fin del hijo /* El padre termina /* Es el hijo /* Ejecutar código 20

21 Threads Concepto de thread Modelos multithread Diseño con threads Threads en Linux Threads en Java Pthreads (POSIX threads) Concepto de thread I Proceso sencillo y multithread: código datos ficheros código datos ficheros registros pila registros registros registros pila pila pila thread thread Proceso con un único thread Proceso con varios threads 21

22 Estados de los threads Por thread Contador de programa, Registros Pila Procesos ligeros hijos Estado (ejecutando, listo o bloqueado) Por proceso Espacio de memoria Variables globales Ficheros abiertos Procesos hijos Temporizadores Señales y semáforos Contabilidad Proceso Procesos ligeros Bloqueado por comunicación Bloqueado por acceso a disco Activo Tipos de Threads Threads-kernel (ULT): Gestión the thread en el kernel Conocidos ygestionados por el núcleo del sistema operativo. Ej, libpthread en Linux o threads en WindowsNT Threads de usuario (KLT): Gestión the threads a nivel biblioteca de usuario Conocidos y gestionados por el lenguaje (ej, Java) o una biblioteca de funciones de usuario sin que el núcleo del sistema operativo los conozca Ej, Mach c-threads, fibras de WindowsNT Threads mixtos Conocidos y gestionados por una biblioteca de funciones de usuario que recurre al núcleo del sistema operativo para implementarlos vinculación o binding según distintas relaciones: 1 a 1, o varios a 1. 22

23 Modelos de vinculación de Threads I Many-to-One: varios threads de usuario soportados en un thread del kernel Solaris Green Threads GNU Portable Threads Threads de usuario K Thread del kernel One-to-One: cada thread de usuario está soportado en un thread del kernel Windows NT/XP/2000 Linux Threads de usuario Solaris posteriores a v9 K K K K Threads del kernel Modelos de vinculación de Threads II Many-to-Many: varios threads de usuario soportados en varios thread del kernel Solaris v9 Threads de usuario Windows NT K K K Thread del kernel Dos niveles: similar a M:M pero cada thread de usuario se puede enlazar con un thread del kernel Solaris v8 Threads de usuario K K K K Thread del kernel 23

24 Paralelización utilizando threads Procedimiento 1 Procedimiento 2 P F P F Ejecución Espera Espera serie en E/S en E/S Procedimiento 1 P Procedimiento i 2 Espera en E/S F Ejecución paralela P Espera en E/S F Procesamiento Threads en el diseño de servidores Distribuidor Trabajador Núcleo Puerto S olicitudes Núcleo Puerto S olicitudes Núcleo Puerto S olicitudes 24

25 Diseño con threads Proceso con un solo thread No hay paralelismo Llamadas al sistema bloqueantes Paralelismo gestionado por el programador Llamadas al sistema no bloqueantes Múltiples procesos cooperando Permite paralelismo gestionado por el SO No comparten variables Mayor sobrecarga de ejecución Proceso varios threads Paralelismo y variables compartidas Llamadas al sistema bloqueantes por thread Permite división de tareas Aumenta la velocidad de ejecución del trabajo Programación concurrente Simplicidad vs exclusión Imaginar otra llamada al mismo código Mutex Variables globales Linux Threads Linux Threads Linux se refiere a los threads como tareas (tasks) La creación de threads se realiza mediante la llamada al sistema clone() clone() permite a la tarea hija compartir el espacio de direcciones de la tarea padre (proceso) Java Threads Java threads se pueden crear: Extendiendo la clasethread Implementando el interfaz Runnable Los threads en Java los gestiona: La JVM: green threads El SO: correspondencia 1 a 1. 25

26 PThreads El API del standard POSIX (IEEE c) 1c) para creación y sincronización de threads Este API especifíca el comportamiento de la biblioteca de thread, la implementación será el desarrollo de las especificaciones de esta biblioteca Es muy normal en SSOO tipo UNIX (Solaris, Linux, Mac OS X) Servicios POSIX para threads int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*func)(void *), void *arg) Crea un thread que ejecuta "func" con argumento "arg" y atributos "attr". Los atributos permiten especificar: tamaño de la pila, prioridad, política de planificación, etc. Existen diversas llamadas para modificar los atributos. int pthread_join(pthread_t thid, void **value) Suspende la ejecución de un thread hasta que termina el thread con identificador "thid". Devuelve el estado de terminación del thread. int pthread_exit(void *value) Permite a un thread finalizar su ejecución, indica el estado de terminación. pthread_t pthread_self(void) Devuelve el identificador del thread que ejecuta la llamada. int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate) Establece el estado de terminación de un thread. Si "detachstate" = PTHREAD_CREATE_DETACHED el thread liberara sus recursos cuando finalice su ejecución. Si "detachstate" = PTHREAD_CREATE_JOINABLE no se liberarn los recursos, es necesario utilizar pthread_join(). 26

27 Jerarquía de threads threads Proceso ligero A p_create Proceso ligero B No independ. p_create Proceso ligero D p_exit p_create Proceso ligero C p_join p_exit Programa de ejemplo I #include <stdio.h> #include <pthread.h> #define MAX_THREADS 10 void func(void) { printf("thread %d \n", pthread_self()); pthread_exit(0); } main() { int j; pthread_attr_t attr; pthread_t thid[max_threads]; pthread_attr_init(&attr); attr for(j = 0; j < MAX_THREADS; j ++) pthread_create(&thid[j], &attr, func, NULL); for(j = 0; j < MAX_THREADS; j ++) pthread_join(thid[j], NULL); } 27

28 Programa de ejemplo II #include <stdio.h> #include <pthread.h> #define MAX_THREADS 10 void func(void) { printf("thread %d \n", pthread_self()); pthread_exit(0); } main() { int j; pthread_attr_t attr; pthread_t thid[max_threads]; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,pthread_create_detached); for(j = 0; j < MAX_THREADS; j ++) pthread_create(&thid[j], &attr, func, NULL); sleep(5); } Planificación Planificación a medio y largo plazo Planificación a corto plazo FIFO ó FCFS SJF, SRTF Prioridades Round-robin Tiempo real Planificación de Pthreads Planificación en POXIS Planificación en Linux Planificación en Windows-NT Servicios POXIS para planificación 28

29 Planificación de la CPU Planificación A largo plazo (añadir procesos a ejecutar) A medio plazo (añadir procesos a RAM desde disco) A corto plazo (qué proceso tiene la UCP) Planificación de E/S Tipos de planificación Sin expulsión: el proceso conserva la UCP mientras desee. Con expulsión: el SO quita la UCP al proceso Exige un reloj que interrumpe periódicamente Colas de procesos Por prioridad Por tipo Planificación a medio y largo plazo Nuevos de estados de los procesos: En espera (Bach): Espera entrar en el sistema Suspendido: En espera de asignación de memoria Suspendido y bloqueado Suspendido y lista 29

30 Estados de los procesos II Diagrama de estados de los procesos: En espera se admite se interrumpe termina Zombie Suspendido y listo se expulsa a disco Listo Ejecución Termina la E/S o el evento Suspendido y bloqueado se recupera de disco se expulsa a disco se planifica Termina la E/S o el evento Bloqueado Espera E/S o un evento Planificación a corto plazo Planificación a corto plazo: cuando un proceso: 1. Se bloquea 2. Pasa de ejecutando a listo 3. Pasa de bloqueado a listo 4. Termina La planificación en los casos 1 y 4 es no expulsora (nonpreemptive) En el resto de casos es expulsora (preemptive) 30

31 Criterios de planificación MÁXIMIZAR Utilización de la CPU que sea máxima Productividad bach (throughput) # de procesos que se procesan por unidad de tiempo MÍNIMIZAR Tiempo de respuesta (Turnaround) tiempo en ejecutar un trabajo en particular Tiempo de espera tiempo que un proceso pasa en la cola de listos Tiempo de respuesta interactivo tiempo que pasa desde que se envía el trabajo hasta que se obtiene una respuesta CONSEGUIR Reparto equitativo del procesador Cumplimiento de plazos (tiempo real) Calidad de servicio (sistemas multimedia) Algoritmos de planificación I FIFO ó FCFS Organización en una lista ordenada por tiempo de llegada SJF, SRTF Organización en lista ordenada por tiempo previsto de ejecución Bach: tiempo previsto para la ejecución de un proceso Interactivo: tiempo previsto para la próxima ráfaga de CPU Prioridades Fíjas o dinámicas Organización en una lista ordenada por prioridades calculadas Round-RobinRobin Organización en una lista circular con quantos de tiempo Expropiación por agotamiento del quanto y replanificación Lotería Se asigna a cada proceso un rango de valores y se genera un número a leatorio Tiempo real A plazo fijo: EDF (prioridades dinámicas) Periódicos: RMS (prioridades estáticas) 31

32 FIFO ó First-Come, First-Served (FCFS) I Procesos T. cómputo P 1 24 P 2 3 P 3 3 Suponiendo que los procesos llegan en el siguiente orden P 1, P 2, P 3 El diagrama de Gantt es: P 1 P 2 P Tiempo de espera para: P 1 = 0; P 2 = 24; P 3 = 27 Tiempo medio de espera: ( )/3 = 17 FIFO ó First-Come, First-Served (FCFS) II Suponiendo que los procesos llegan en el siguiente orden P 2, P 3, P 1 El diagrama de Gantt es: P 2 P 3 P Tiempo de espera para: P 1 = 6;P 2 = 0 ; P 3 = 3 Tiempo medio de espera: ( )/3 = 3 Mucho mejor que el caso anterior Efecto Convoy: los procesos cortos detrás de los largos 32

33 Shortest-Job-First (SJF) Scheduling I Asocia a cada proceso el tiempo previsto de ejecución. Selecciona para ejecutar el proceso con menor tiempo. Dos esquemas: No expulsor (nonpreemptive) una vez planificado sigue en la CPU hasta que completa su ráfaga de CPU. Expulsor (preemptive) si llega un nuevo proceso con un tiempo menor que el que se está ejecutanto, este último se expulda. También se llama Shortest-Remaining-Time-First (SRTF) SJF es óptimo da el menor tirmpo de espera medio para un conjunto de procesos. Problema: se debe suministrar el siguiente tiempo de ráfaga -> estimación teniendo en cuenta las anteriores Ejemplo de SJF no expulsivo Procesos T. llegada T. cómputo P P P P SJF (no-expulsivo) P 1 P 3 P 2 P Tiempo medio de espera = ( )/4 = 4 33

34 Ejemplo de SJF expulsivo Procesos T. llegada T. cómputo P P P P SJF (expulsivo) P 1 P 2 P 3 P 2 P 4 P Tiempo medio de espera = ( )/4 = 3 Planificación basada en prioridades I Se asocia un número de prioridad (entero) a cada proceso La CPU ejecuta el proceso de mayor prioridad (menor entero mayor priodad) Expulsivo No expulsivo SJF es un planificador de prioridad, en el que la prioridad es el tiempo de cómputo de cada ráfaga de CPU (a menor ráfaga mayor prioridad). id d) Problema Inanición (starvation) el proceso de menor prioridad puede no ejecutarse nunca Solución Envejecimiento (aging) a medida que pasa el tiempo, el proceso aumenta su prioridad 34

35 Planificación basada en prioridades II Establecimiento de prioridades: Interno: uso de la memoria, bloqueos de E/S, duración estimada de la siguiente ráfaga de CPU Procesos T. llegada T. Ráfaga estimado Prioridad P P P P Externo: coste, frecuencia, importancia,.. Procesos T. llegada Frecuencia Prioridad P P P P Round Robin (RR) Cada proceso tiene una unidad de tiempo de CPU (quantum), normalmente milliseg. Cuando pasa el proceso es expulsado y puesto en la cola de Listos Si hay n procesos en la cola de Listos, y el quantum es q, a cada proceso le toca 1/n del tiempo CPU en trozos de al menos q unidades de tiempo cada uno. Ningún proceso espera más de (n-1)q unidades de tiempo. Performance q grande FIFO q pequeño q debe ser grande respecto al tiempo de cambio de contexto (latencia) para que el overhead no sea demasiado grande 35

36 Ejemplo de RR con Quantum = 20 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 El diagrama de es: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P Normalemente, la media de turnaround es mayor que en SJF, pero mejor tiempo de respuesta El quantum y la latencia de cambio de contexto 36

37 El tiempo de Turnaround varía con el Quantum Colas multilevel I La cola de Listos se particiona en colas separadas : foreground (interactivo) background (batch) Cada cola tiene su propio algoritmo de planificación foreground RR background FCFS La planificación se aplica entre las colas: Planificación de prioridad fija; (se sirven todos de foreground y después de background). Se puede producir inanición. Rodaja de tiempo cada cola tiene una cierta cantidad de tiempo de CPU time que se reparte entres sus procesos; ej.., 80% to foreground in RR y 20% to background in FCFS 37

38 Colas multilevel II Colas multilevel con realimentación Tres colas: Q 0 RR con quantum de 8 milisegundos y FIFO Q 1 RR con quantum de 16 milisegundos y FIFO Q 2 FIFO Planificación Un nuevo trabajo llega a la Q 0 con planificación FIFO. Cuando gana la CPU, se ejecuta 8. Si no termina se mueve a Q 1. En Q 1 se sirve con FIFO y se le dan 16 m. Si no termina se mueve a Q 1. 38

39 Planificación en Tiempo real Tiempo real duro o crítico (Hard real-time) las tareas se debe complentar dentro de un plazo preestablecido (con unas garantías de tiempo) RMA: Asignas las prioridades según la frecuencia (tareas periódicas e independientes). Garantiza que cumplen el plazo para una utilización del procesador < 70% EDF: Primero la tarea que antes cumpla en plazo (prioridades dinámica). Más dificil de implementar que el anterior. La utilización del procesador puede ser del 100% Tiempo real blando o no crítico (Soft real-time) las tareas críticas deben teber prioridades más altas que las que no lson de tiempo real. Planificación en Tiempo real. RMS I Tarea Cómputo Plazo= T Prioridad tiempo Tiempo de cómputo (C) Fin de periodo (T = Periodo ) 39

40 Planificación en Tiempo real. RMS II Utilización del procesador pora una tarea i U i = C i T i 1 Utilization del procesador para n tareas n U(n) = n(2-1) Resultados: Si U i U(n) el conjunto de tareas es planificable. If U i > 1 el conjunto de tareas es no planificable. Si U(n) < U i el conjunto de tareas es inconcluso *si todas las tareas cumplen su plazo en el primer hiperperiodo el conjunto de tareas es planificable. Planificación en Tiempo real. RMS III Tarea Cómputo Plazo= T Prioridad U(3) = 3(2 1/3 1) = U 1 = 4 / 10 = 0.4 U 2 = 4/15= U 3 = 10 / 35 = U total = Resultados: U 1+2 = 0.667, planificanle. Sin embargo, < < 1 Por lo que es inconcluso para 3. Si las tareas cumplen el plazo en el primer HIPERPERIODO (35 en este caso) son planificables 40

41 Planificación en Tiempo real. EDF Las prioridades se asignan de acuerdo a sus plazos: El plazo más corto, la prioridad mayor; El plazo más largo, la prioridad menor. Planificación en POSIX I Cada política de planificación lleva asociado un rango con al menos 32 niveles de prioridad. El planificador elegirá el proceso o thread con la prioridad más alta Políticas de planificación Para compartición de tiempo prioridad variable Otra (SCHED_OTHER) Para tiempo real prioridad fija, superior a SCHED_OTHER FIFO (SCHED_FIFO) Cíclica (SCHED_RR) 41

42 Planificación SCHED_OTHER en LINUX Funcionamiento general LINUX divide el tiempo de CPU en épocas (epoch) En cada época cada proceso tiene un quantum de tiempo que se le asigna al comenzar la época Cuando un proceso agota su quantum se le expulsa y se selecciona otro proceso ejecutable Un proceso puede ser seleccionado múltiples veces mientras le quede quantum Por ejemplo, puede haber sido expulsado tras una E/S, propia o ajena, y luego vuelto a asignar la CPU La época termina cuando todos los procesos ejecutables han agotado su quantum En ese momento, se reasigna los quantum para la época siguiente LINUX favorece los procesos que no han agotado su quantum en la época anterior La prioridad está relacionada con el quantum restante (a mayor quantum, mayor prioridad) Planificación Pthread Políticas de planificación a definir como en procesos. Ambitos de planificación: PTHREAD_SCOPE_PROCESS: Planificación local La librería de threads decide que thread se ejecuta. PTHREAD_SCOPE_SYSTEM: Planificación global El kernel decide qué thread se ejecuta. Los atributos de planificación se pueden añadir mediante servicios a los atributos de creación de un thread: #include <pthread.h> int pthread_attr_setscope(pthread_attr_t *attr, int scope); int pthread_attr_getscope(const pthread_attr_t *attr, int *scope); int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy); 42

43 Planificación en Windows NT I Reiniciado Iniciado Situar en la cola de listos Finalizado Bloqueado Fin de bloqueo Listo Ejecución finalizada Espera terminada Bloqueado Pila del kernel en swap Pila del kernel en memoria Transición Seleccionado Expulsado para ejecución Ejecución Expulsado Cambio de contexto. Comienzo de ejecución Reserva Planificación en Windows NT II Pt: Prioridades relativas de threads Promoción dinámica: +n si se desbloquea (hasta 15) Decaimiento dinámico: -1 si agota el quantum (hasta Pt) Anti-inanición: Si no se ha ejecutado en los últimos 3 segundos, adopta prioridad 15 para ejecutar 2*quantum 43

44 Servicios POSIX para planificación I #include <sched.h> Modificar la prioridad de un proceso int sched_setparam(pid_t pid, const struct_param *param); Modificar la prioridad y la política int sched_setscheduler(pid_t pid, const sched_param *param); Obtener los parámetros de planificación de un proceso int sched_getparam(pid_t pid, const struct_param *param); Obtener la prioridad de un proceso int sched_getscheduler(pid_t pid); Capítulo 4: Gestión de procesos Señales y excepciones Temporizadores Servidores y demonios 44

45 Señales I Señal: Mecanismo por el que un proceso puede ser notificado de, o afectado por, un evento que se produce en el sistema: - excepciones detectadas por hardware - expiración de una alarma o temporizador - finalización de una operación de I/O asíncrona - llegada de un mensaje - invocación de la función kill() y similares -actividad del terminal, etc. Número de señal: Entero positivo que identifica una señal. Existen también constantes predefinidas para dar nombre a las señales Señales II Las señales son interrupciones al proceso Envío o generación Proceso- Proceso (dentro del grupo) con el kill SO - Proceso Proceso Código Función tratamiento Señal 45

46 Señales III Una señal se puede generar para un proceso o para un thread. Cada thread tiene una máscara de señales, que define las señales bloqueadas. La máscara se hereda del padre Señal no bloqueada: se entrega Ignorar Terminar el proceso Ejecutar manejador Señal bloqueada: queda pendiiente hasta que se acepta con sigwait() Tratamiento de señales I Opciones para tratar una señal: Enviar la señal al thread al que la señal se refiere Enviar la señal a todos los threads del proceso Asignar un thread específico para recibir todas las señales del proceso Cada señal se trata mediante un manejador manejador 1. La señal se genera por un evento particular 2. La señal se envía al proceso 3. La señal se trata 46

47 Tratamiento de señales II Hay muchos tipos de señales, según su origen SIGILL instrucción ilegal SIGALRM vence el temporizador SIGKILL mata al proceso El SO las transmite al proceso El proceso debe estar preparado para recibirla Especificando un procedimiento de señal con sigaction() Enmascarando la señal con sigprogmask() Si no está preparado acción por defecto El proceso, en general, muere Hay algunas señales que se ignoran o tienen otro efecto El servicio pause() para el proceso hasta que recibe una señal Señales. Ejemplo Unix /* Programa A. Fichero Fichero padre.c * Manda ejecutar el programa B * Lee caracteres del terminal y cada vez que detecta salto de linea * envia una señal al proceso B */ #include <stdio.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> pid_t resp; char buf[1]; main() { } resp = fork(); if (resp == 0) if (execlp("./hijo","hijo", NULL) == -1) { perror("exec"), exit(1); } while (read(0, buf, 1) == 1) { if (buf[0] == '\n') { kill(resp, SIGUSR2); } } 47

48 Señales. Ejemplo Unix /* Programa B. Fichero hijo.c * Crea un fichero y escribe en él * una línea por cada señal que recibe, hasta un máximo de 5 */ #include <fcntl.h> #include <signal.h> #include <stdlib.h> int fd, n=5; void proc(int arg) { n--; return; } int main() { signal(sigusr2, proc); if ((fd = open("fichero", O_CREAT O_TRUNC O_WRONLY)) == -1) { perror("open"); exit(1); } } while (n!= 0) { pause(); write(fd, "Linea\n", 7); } return 0; Excepciones Evento que ocurre durante la ejecución de un programa y que requiere la ejecución de un fragmento de código fuera del flujo normal de ejecución. Manejo de excepcion en Java try { Bloque donde puede producirse una excepción } catch { Bloque que se ejecutará si se produce una excepción en el bloque anterior } 48

49 Temporizadores El SO mantiene un temporizador por proceso El proceso activa el temporizador con alarm() El SO envía una señal SIGALRM al proceso cuando vence su temporizador Proceso servidor Es un proceso que: Está pendiente de recibir órdenes de un proceso cliente Estructura de bucle infinito Uso de puertos de comunicación PROCESOS CLIENTES PROCESO SERVIDOR RECURSO Servidor secuencial: El servidor mismo ejecuta las órdenes Servidor paralelo: Delega ejecución las órdenes a threads o procesos hijos 49

50 Proceso servidor. Funcionamiento a) b) c) Servidor Padre Servidor Padre Servidor Padre Servidor Hijo Puerto A Puerto A Puerto A Puerto B Cliente A Cliente A Proceso servidor. Máquinas distribuidas Procesos cliente y servidor en máquinas distintas Puerto Cliente Servidor ficheros Servidor impresión Servidor e_mail SO SO SO SO RED 50

51 Procesos demonios Es un proceso que ejecuta: En background (su padre no le espera) No asociado a un terminal o proceso login Que espera que ocurra un evento Funciona como servior O que debe realizar una tarea de forma periódicas Características Se arrancan al iniciar el sistema No mueren Están normalmente en espera de evento No hacen el trabajo, lanzan otros procesos o procesos ligeros Ejemplos:Telnetd, httpd, lpd Servicios POSIX para señales I include <sys/types.h> #include <signal.h> Manipular conjuntos de señales: int sigemptyset (sigset_t *set); int sigfillset (sigset_t *set); int sigaddset (sigset_t *set, int signo); int sigdelset (sigset_t *set, int signo); int sigismember (const sigset_t *set, int signo); Estas funciones no afectan de forma directa al comportamiento del sistema 51

52 Servicios POSIX para señales II Examinar y cambiar la acción asociada a una señal (armado): int sigaction (int sig, const struct sigaction *act, struct sigaction *oact); si act es NULL, la acción actual no se cambia si oact no es NULL, la acción actual se devuelve en *oact Enviar una señal a un proceso: int kill (pid_t pid, int sig); Enviar una señal a un thread: pthread_kill(pthread_t t thread, int sig); Aceptar una señal bloqueada: int sigwait (const sigset_t *set, int *sig); Servicios POSIX para señales III Máscara de señales: int sigprocmask (int how, sigset_t *set, sigset_t *oset); Permite modificar o examinar la máscara de señales de un proceso. int sigpending (sigset_t *set); Devuelve el conjunto de señales bloqueadas pendientes del proceso. Espera de señales: int pause(void); Bloquea al proceso hasta que llegue una señal. Servicios de temporización: unsigned int alarm(unsigned int seconds); Activa un temporizador unsigned int sleep(unsigned int seconds); El proceso se suspende en num de segundos. 52

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

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

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

Más detalles

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2014 Planificación Sistemas Operativos Curso 2014 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

Más detalles

Sistemas Operativos. Curso 2015 Planificación

Sistemas Operativos. Curso 2015 Planificación Sistemas Operativos Curso 2015 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

Más detalles

1. Sistema Operativo Unix

1. Sistema Operativo Unix 1. Sistema Operativo Unix 1.1 Introducción al S.O. Unix y su entorno 1.2 Subsistema de Archivos 1.3 Subsistema de Procesos 1.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

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

Sistemas Operativos Tema 6. Planificación de procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 6. Planificación de procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenido Modelo del sistema y criterios de rendimiento Algoritmo FCFS Algoritmo SJF

Más detalles

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

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

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

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos 1.- Notas y criterios para los problemas de planificación NOTA GENERAL: Normalmente los enunciados no son rigurosamente completos,

Más detalles

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa Memoria Virtual Capítulo 8 Hardware y Estructuras de Control Las referencias de memoria se traducen a direcciones físicas dinámicamente en tiempo de ejecución Un proceso puede ser intercambiado hacia dentro

Más detalles

Gestión de procesos DEFINICIONES DE PROCESOS

Gestión de procesos DEFINICIONES DE PROCESOS DEFINICIONES DE PROCESOS Gestión de procesos Un programa en Ejecución. Una instancia de un programa ejecutándose en un computador. La entidad que se puede asignar o ejecutar en un procesador. Una unidad

Más detalles

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor. El soporte del sistema operativo Objetivos y funciones del sistema operativo Comodidad Hace que un computador sea más fácil de usar. Eficiencia Permite que los recursos del computador se aprovechen mejor.

Más detalles

PLANIFICACIÓN DE PROCESOS

PLANIFICACIÓN DE PROCESOS PLANIFICACIÓN DE PROCESOS (Scheduling) 1 Introducción: Scheduling Estados de un proceso Creado Memoria Principal Ejecución Terminado Espera E/S Listo Fin espera E/S Bloqueado Memoria Virtual Listo y suspendido

Más detalles

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución Tema 8 Procesos 8.1 Aspectos básicos de los procesos 8.1.1 Concepto de proceso * Definición informal: un proceso es un programa en ejecución Un programa ejecutable es un conjunto de instrucciones y datos

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema

Más detalles

Sistemas Operativos - Funciones del sistema operativo» Cargar y ejecutar programas (procesos)» Facilitar funciones de E/S» Controlar y distribuir el acceso a los recursos» Controlar errores Componentes

Más detalles

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

Más detalles

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso Requerimientos Principales de un Sistema Operativo Descripción y Control de Procesos Capítulo 3 Entrelazar la ejecución de varios procesos para maximizar el uso del procesador a la vez que se mantiene

Más detalles

Administración de Redes

Administración de Redes Administración de Redes PROCESOS EN LINUX Profesor Carlos Figueira Departamento de Computación y T. I. USB Grandes objetivos de un Sistema de Operación (SO) Intercalar ejecución de varios procesos para

Más detalles

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

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

ESTRUCTURAS BÁSICAS DE UN S.O.

ESTRUCTURAS BÁSICAS DE UN S.O. PROCESOS ESTRUCTURAS DE DATOS BCP PROCESOS OPERACIONES SOBRE LOS PROCESOS ESTADOS DE LOS PROCESOS PLANIFICACIÓN DE LA CPU ALGORITMOS NO APROPIATIVOS ALGORITMOS APROPIATIVOS EVALUACIÓN DE LAS POLÍTICAS

Más detalles

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

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele

Más detalles

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1 Procesos Procesos Mario Medina mariomedina@udec.cl El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 5: Planificación de procesos. 5.1 Criterios y tipos de planificación. 5.2 Algoritmos de planificación. 5.3 Métodos multicolas y multiprocesadores. 5.4 Evaluación de políticas

Más detalles

Tema 6. Gestión de la memoria

Tema 6. Gestión de la memoria Tema 6. Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU en Linux en Windows NT/2000 1 Tema 6. Introducción Necesidad de la gestión de la memoria Requisitos

Más detalles

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

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación. EJERCICIOS DE PLANIFICACIÓN: 1) Un sistema informático posee los siguientes recursos: - una CPU - tres unidades de almacenamiento UAM1, UAM2 y UAM3. En nuestro sistema tenemos dos tipos de procesos: Tipo

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

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

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV Sistemas Operativos I Tema 3 Procesos Equipo de Sistemas Operativos DISCA / DSIC UPV Introducción Existen varias razones para permitir la ejecución concurrente de procesos: Compartir recursos físicos Compartir

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos Sistemas operativos: una visión aplicada Capítulo 3 Procesos Contenido Procesos Multitarea Información del proceso Formación de un proceso Estados del proceso Procesos ligeros Planificación Señales y excepciones

Más detalles

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos.

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos. 1 El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos. 2 Qué es un sistema operativo Un sistema operativo es un programa que tiene encomendadas una serie de funciones

Más detalles

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware INTRODUCCIÓN Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware INTRODUCCIÓN METAS: Brindar un entorno para que los usuarios puedan

Más detalles

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

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales. Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales. 1. Concepto de Sistema Operativo. 2. Evolución histórica. 3. Tipos de Sistemas Operativos. 4. Estructura de un Sistema Operativo.

Más detalles

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)

Más detalles

Capítulo 1 Introducción a la Computación

Capítulo 1 Introducción a la Computación Capítulo 1 Introducción a la Computación 1 MEMORIA PRINCIPAL (RAM) DISPOSITIVOS DE ENTRADA (Teclado, Ratón, etc) C P U DISPOSITIVOS DE SALIDA (Monitor, Impresora, etc.) ALMACENAMIENTO (Memoria Secundaria:

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

Sistema de proceso por lotes: esquema operativo

Sistema de proceso por lotes: esquema operativo Sistema de proceso por lotes: esquema operativo MAINFRAME CPU Lector de tarjetas MEM SO Impresora Programa de usuario Programadores Sistema de proceso por lotes: características operativas Los programadores

Más detalles

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4)

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4) Índice Procesos Gustavo Romero 1 Definición 2 Control Arquitectura y Tecnología de Computadores 14 de febrero de 2014 3 Estado 4 IPC Gustavo Romero Procesos (1/50) Gustavo Romero Procesos (2/50) Lecturas

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Modelo de procesamiento

Modelo de procesamiento Índice Lecturas recomendadas Procesos Gustavo Romero López Arquitectura y Tecnología de Computadores 15 de mayo de 2015 1 Definición 2 Control 3 Estado 4 IPC Jean Bacon Operating Systems (4) Abraham Silberschatz

Más detalles

Tema 2. Procesos. 1. Concepto de proceso

Tema 2. Procesos. 1. Concepto de proceso Tema 2. Procesos 1. Concepto de proceso. 2. Principios de la Programación concurrente. 1. Concurrencia. Programación concurrente. 2. Áreas de comunicación entre procesos. 1. Exclusión mutua. 2. Sincronización.

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

2. Sistema Operativo Windows

2. Sistema Operativo Windows 2. Sistema Operativo Windows 2.1 Introducción al S.O. Windows NT y Windows 2000 2.2 Subsistema de Archivos 2.3 Subsistema de Procesos 2.4 Gestión de Memoria Dpto. Lenguajes Tema y 2: Sistemas 2. Sistema

Más detalles

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005 Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

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

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 / 41

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

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

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Requerimientos principales de un sistema operativo

Requerimientos principales de un sistema operativo Descripción y control de procesos Requerimientos principales de un sistema operativo Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Capítulo 4 Gestión de memoria

Capítulo 4 Gestión de memoria Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010 Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos

Más detalles

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación 3.- Procesos Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor Sistema de Batch jobs Sistema

Más detalles

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador Sistemas operativos avanzados 1.3 Algoritmos de planificación del procesador Parámetros Cuando tenemos más de un proceso en condiciones de ejecutar, debemos escoger uno de entre ellos. Para escogerlo empleamos

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

SISTEMAS OPERATIVOS: PROCESOS. Hilos y Procesos

SISTEMAS OPERATIVOS: PROCESOS. Hilos y Procesos SISTEMAS OPERATIVOS: PROCESOS Hilos y Procesos ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo de este material no garantiza que

Más detalles

Gestión de procesos en UNIX

Gestión de procesos en UNIX PROCESOS UNIX Gestión de procesos en UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación

Más detalles

CÓMO TRABAJA TU SISTEMA OPERATIVO?

CÓMO TRABAJA TU SISTEMA OPERATIVO? CÓMO TRABAJA TU SISTEMA OPERATIVO? AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA SISTEMAS OPERATIVOS ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen Los sistemas operativos nacen de la informática. Su función

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO

TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO 1. Introducción. Funciones del núcleo de un S.O. Los Sistemas Operativos proporcionan un número potencialmente grande de servicios accesibles al usuario. Uno de

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

Sea el siguiente programa de nombre c0p1 para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide: Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): 1 /* c0p1 origen destino 2 * Copia "origen" sobre "destino" byte a byte, 3 * haciendo

Más detalles

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas. Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Problema 1 (3 puntos)

Problema 1 (3 puntos) Examen parcial de Sistemas Operativos, 30 de Abril de 2004. Segundo curso de Ingenierías Técnicas de Informática de Sistemas y de Gestión, URJC. Contesta cada pregunta en una hoja separada. No olvides

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

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

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Sistemas Operativos. Oscar Bedoya oscar.bedoya@correounivalle.edu.co http://eisc.univalle.edu.co/~oscarbed/so/

Sistemas Operativos. Oscar Bedoya oscar.bedoya@correounivalle.edu.co http://eisc.univalle.edu.co/~oscarbed/so/ Sistemas Operativos Oscar Bedoya oscar.bedoya@correounivalle.edu.co http://eisc.univalle.edu.co/~oscarbed/so/ * Planificación apropiativa - SJF apropiativo - Prioridad apropiativo - Round-Robin * Planificación

Más detalles

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia. PROGRAMACION CONCURRENTE I.2 Recursos para la concurrencia. J.M. Drake 1 Procesos Concurrentes Concepto de proceso. Estructura de los procesos. Estados de un proceso. Gestión de los procesos. 2 2 Plataforma

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

Sistemas Operativos I

Sistemas Operativos I Sistemas Operativos I Parte 3 Arnoldo Díaz Ramírez adiaz@itmexicali.edu.mx Septiembre de 2007 Unidad 3 Planificación Planificación El planificador es un módulo del sistema operativo que asigna tiempo de

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Conceptos Básicos de Software. Clase III

Conceptos Básicos de Software. Clase III Clase III Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de una computadora. Para que funcionen los otros programas, cada computadora de uso general debe

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Scheduling. Ricardo Corin

Scheduling. Ricardo Corin Scheduling Ricardo Corin Introducción Múltiples procesos en estado READY compiten por tiempo de CPUs Si Ready > CPU, no podemos ejecutar todos simultáneamente El planificador o scheduler se ocupa de seleccionar

Más detalles

TEMA 7. GESTIÓN DE PROCESOS

TEMA 7. GESTIÓN DE PROCESOS TEMA 7. GESTIÓN DE PROCESOS 1. EL BLOQUE DE CONTROL DE PROCESOS... 1 1.1.- CAMBIO DE CONTEXTO... 2 2. ESTADO DE LOS PROCESOS... 2 2.2.- TRANSICIONES DE ESTADO... 3 2.3.- OPERACIONES SOBRE PROCESOS... 4

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

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

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

Más detalles

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

INDICE. Prefacio Parte 1: sistemas operativos tradicionales INDICE Prefacio Parte 1: sistemas operativos tradicionales 1 1 Introducción 1.1 Qué es un sistema operativo? 1.1.1 El sistema operativo como una maquina extendida 3 1.1.2 El sistema operativo como controlador

Más detalles

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Tema 1. Conceptos fundamentales de los Sistemas Operativos Tema 1. Conceptos fundamentales de los Sistemas Operativos 1. Introducción a los Sistemas Operativos. 1. Concepto de Sistema Operativo. Niveles del software. 2. Funciones principales de un Sistema Operativo.

Más detalles

Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.

Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones. Apadrinamiento ONG Estudio preliminar: Se desea diseñar una aplicación para la gestión de los apadrinamientos de una asociación ONG. Para ello el sistema proporcionara una interfaz al usuario para poder

Más detalles

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */ Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones

Más detalles

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ;

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ; Examen de Sistemas Operativos ITIS Fuenlabrada Mayo 2011 Problema: Llamadas al sistema (3 puntos) Implemente en C para Plan 9 un programa hlines que a partir de una URL que se le pasa como argumento, escriba

Más detalles

Planificación, Gestión y Desarrollo de Proyectos

Planificación, Gestión y Desarrollo de Proyectos Planificación, Gestión y Desarrollo de Proyectos Conceptos básicos Planificación de un proyecto Gestión de un proyecto Desarrollo de un proyecto 1 Conceptos básicos: Proyecto Conjunto de actividades que

Más detalles