Señales. CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

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

Download "Señales. CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR"

Transcripción

1 Señales CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

2 Señales Las señales son interrupciones de software que pueden ser enviadas a un proceso para informarle de algún evento asíncrono o situación especial. El término señal se emplea también para referirse al evento. Los procesos pueden enviarse señales unos a otros a través de la llamada kill y es bastante frecuente que, durante su ejecución, un proceso reciba señales procedentes del núcleo. 2 de 77

3 Señales Cuando un proceso recibe una señal puede reaccionar de tres formas diferentes: Ignorar la señal, con lo cual es inmune a la misma. Invocar a la rutina de tratamiento por defecto. Esta rutina no la codifica el programador, sino que la aporta el núcleo. Según el tipo de señal, la rutina de tratamiento por defecto realizará una acción u otra. Por lo general suele provocar la terminación del proceso mediante una llamada a exit. Invocar a una rutina propia que se encarga de tratar la señal. 3 de 77

4 Tipos de señales Señales relacionadas con la terminación de procesos. Señales relacionadas con las excepciones inducidas por los procesos. Señales relacionadas con los errores irrecuperables originados en el transcurso de una llamada al sistema. 4 de 77

5 Tipos de señales Señales originadas desde un proceso que se está ejecutando en modo usuario. Señales relacionadas con la interacción con el terminal. Señales para ejecutar un proceso paso a paso. Son usadas por los depuradores. 5 de 77

6 Señales UNIX System V Están definidas en el archivo de encabezados <signal.h>. Hay 19 señales definidas por UNIX System V. 6 de 77

7 SIGHUP Desconexión. Es enviada cuando un terminal se desconecta de todo proceso del que es terminal de control. También se envía a todos los procesos de un grupo cuando el líder del grupo termina su ejecución. La acción por defecto de esta señal es terminar la ejecución del proceso que la recibe. 7 de 77

8 SIGINT Interrupción. Se envía a todo proceso asociado con un terminal de control cuando se pulsan la teclas de interrupción Ctrl+c. Su acción por defecto es terminar la ejecución del proceso que la recibe. 8 de 77

9 SIGQUIT Salir. Similar a SIGINT, pero es generada al pulsar la tecla de salida Control+\. Su acción por defecto es generar un fichero core y terminar el proceso. 9 de 77

10 SIGILL Instrucción ilegal. Es enviada cuando el procesador detecta una instrucción que no forma parte de su repertorio. En los programas escritos en C suele producirse este tipo de error cuando manejamos punteros a funciones que no han sido correctamente inicializados. Su acción por defecto es generar, un fichero core y terminar el proceso. 10 de 77

11 SIGTRAP Trace trap. Cuando un proceso se está ejecutando paso a paso, esta señal es enviada después de ejecutar cada instrucción. Es empleada por los pro gramas depuradores. Su acción por defecto es generar un fichero core -terminar el proceso. 11 de 77

12 SIGIOT I/O trap instruction. Se envía cuando se da un fallo de hardware. La naturaleza de este fallo depende de la máquina. También es enviada cuando llamamos a la función abort. que provoca el suicidio del proceso generando: un fichero core. 12 de 77

13 SIGEMT Emulator trap instruction. También indica un fallo de hardware. Raras veces se utiliza. Su acción por defecto es generar un fichero core y terminar el proceso. 13 de 77

14 SIGFPE Error en coma flotante. Es enviada cuando el hardware detecta un error coma flotante, como el uso de número en coma flotante con un formato desconocido, errores de desbordamiento, etc. Su acción por defecto es generar un fichero core y terminar el proceso. 14 de 77

15 SIGKILL Terminación abrupta. Esta señal provoca irremediablemente la terminación del proceso. No puede ser ignorada y siempre que se recibe se ejecuta su acción por defecto, que consiste en generar un fichero core y terminar el proceso. 15 de 77

16 SIGBUS Error de bus. Se produce cuando se da un error de acceso a memoria. Las dos situaciones típicas que la provocan suelen ser intentar acceder a una dirección que físicamente no existe o intentar acceder a una dirección impar, violando así las reglas de alineación que impone el procesador. Su acción por defecto es generar un fichero core y terminar el proceso. 16 de 77

17 SIGSEGV Violación de segmento. Es enviada a un proceso cuando intenta acceder a datos que se encuentran fuera de su segmento de datos. Su acción por defecto es generar un fichero core y terminar el proceso. 17 de 77

18 SIGSYS Argumento erróneo en una llamada al sistema. No se usa. 18 de 77

19 SIGPIPE Intento de escritura en una tubería de la que no hay nadie leyendo. Esa suele ocurrir cuando el proceso de lectura termina de una forma anormal. Su acción por defecto es terminar el proceso. 19 de 77

20 SIGALRM Despertador. Es enviada a un proceso cuando alguno de sus temporizadores descendentes llega a cero. Su acción por defecto es terminar el proceso. 20 de 77

21 SIGTERM Finalización controlada. Es la señal utilizada para indicarle a un proceso que debe terminar su ejecución. Esta señal no es tajante como SIGKILL y puede ser ignorada. Lo correcto es que la rutina de tratamiento de esta señal se encargue de tomar las acciones necesarias para dejar al proceso un estado coherente y a continuación finalizar su ejecución con una llamada a exit. Esta señal es enviada a todos los procesos cuando se emiten las órdenes shutdown o reboot. Su acción por defecto es terminar el proceso. 21 de 77

22 SIGUSR1 Señal número 1 de usuario. Esta señal está reservada para uso del programador. Ninguna aplicación estándar va a utilizarla y su significado es el que le quiera dar el programador en su aplicación. Su acción por defecto es terminar el proceso. 22 de 77

23 SIGUSR2 Señal número 2 de usuario. Su significado es idéntico al de SIGUSR1. 23 de 77

24 SIGCLD Terminación del proceso hijo. Es enviada al proceso padre cuando alguno de sus procesos hijo termina. Esta señal es ignorada por defecto. 24 de 77

25 SIGPWR Fallo de alimentación. Esta señal tiene diferentes interpretaciones. En algunos sistemas es enviada cuando se detecta un fallo de alimentación y le indica al proceso que dispone tan sólo de unos instantes antes de que se produzca la caída del sistema. En otros sistemas, esta señal es enviada, después de recuperarse de un fallo de alimentación, a todos aquellos procesos que estaban en ejecución y que se han podido rearrancar. En estos casos, los procesos deben disponer de mecanismos para restaurar las posibles pérdidas producidas durante la caída de la alimentación. 25 de 77

26 Envío de señales Para enviar una señal desde un proceso a otro o a un grupo de procesos, emplearemos la llamada kill: #include <signal.h> int kill (pid_t pid, int sig); donde pid identifica el conjunto de procesos al que queremos enviarle la señal. 26 de 77

27 pid Este parámetro es un número entero y los distintos valores que puede tomar tienen los siguientes significados: pid > 0, es el PID del proceso al que le enviamos la señal. pid = 0, la señal es enviada a todos los procesos que pertenecen al mismo grupo que el proceso que la envía. 27 de 77

28 pid pid = -1, la señal es enviada a todos aquellos procesos cuyo identificador real es igual al identificador efectivo del proceso que la envía. Si el proceso que la envía tiene identificador efectivo de superusuario, la señal es enviada a todos los procesos, excepto al proceso 0 swapper y al proceso 1 init. pid < -1, la señal es enviada a todos los procesos cuyo identificador de grupo coincide con el valor absoluto de pid. 28 de 77

29 sig El parámetro sig es el número de la señal que queremos enviar. Si sig vale 0 señal nula se efectúa una comprobación de errores, pero no se envía ninguna señal. Esta opción se puede utilizar para verificar la validez del identificador pid. 29 de 77

30 Ejemplo: kill-1.c

31 raise Si queremos que un proceso se envíe señales a sí mismo, podemos usar la llamada raise: #include <signal.h> int raise (int sig) ; donde sig es el número de la señal que queremos enviar; raise se puede codificar a partir de kill de la siguiente forma: int raise (int sig) { return kill (getpid (), sig); } 31 de 77

32 Tratamiento de señales Para especificar qué tratamiento debe realizar un proceso al recibir una señal, se emplea la llamada signal: #include <signal.h> void (*signal (int sig, void (*action) ())) ();

33 Ejemplo: signal-1.c

34 En espera de señales En ocasiones puede interesar que un proceso suspenda su ejecución en espera de que ocurra algún evento exterior a él. Por ejemplo, al ejecutar una entrada/salida. Para estas situaciones nos valemos de la llamada a pause: #include <unistd.h> int pause (void); 34 de 77

35 Ejemplo: pause-1.c

36 Saltos globales La rutina de tratamiento de una señal puede hacer que el proceso vuelva a alguno de los estados por los que ha pasado con anterioridad. Esto no sólo es aplicable a las rutinas de tratamiento de señales sino que se puede extender a cualquier función. Para realizar esto nos valemos de las funciones estándar setjmp y longjmp: #include <setjmp.h> int set jmp (jmp_ buf env); void longjmp (jmp_buf env, int val); 36 de 77

37 Saltos globales La función setjmp guarda el entorno de pila en env para un uso posterior por de longjmp; setjmp devuelve el valor 0 en su primera llamada. El tipo de env, jmp_buf, está definido en el archivo de encabezado <setjmp.h>. 37 de 77

38 Saltos globales La función longjmp restaura el entorno guardado en env por una llamada setjmp. Después de haberse ejecutado la llamada a longjmp, el flujo de la ejecución del programa vuelve al punto donde se hizo la llamada a setjmp, pero en este caso setjmp devuelve el valor val que hemos pasado mediante longjmp. Ésta es la forma de averiguar si setjmp está saliendo de una llamada para guardar el entorno o de una llamada de longjmp. longjmp no puede hacer que setjmp devuelva 0, ya que en el caso de que val tome el valor 0, setjmp devolverá de 77

39 Saltos globales jmp_buf entorno; int valor; valor=setjmp(entorno); (valor=0) (valor=10) longjmp(entorno,10); 39 de 77

40 Saltos globales Las funciones setjmp y longjmp se pueden ver como una forma elaborada de implementar una sentencia goto no local, capaz de saltar desde una función a etiquetas que están en la misma o en otra función. Las etiquetas serían los entornos guardados por setjmp en la variable env. 40 de 77

41 Ejemplo: setjmp-1.c

42 Señales en 4.3BSD La interfaz para el manejo de señales fue diseñada por la Universidad de California en Berkeley. Las llamadas kill, signal y pause están disponibles y se incorporan otras para hacer más versátil el manejo de señales. Además, el UNIX de Berkeley añade nuevas señales a las existentes en la interfaz System V del UNIX de AT&T. De las señales que implementa el UNIX System V, SIGPWR no está implementada en 4.3BSD y SIGCLD pasa a llamarse SIGCHLD. 42 de 77

43 SIGVTALRM Alarma de un temporizador en tiempo virtual. Indica que un temporizador descendente en tiempo virtual ha llegado a cero. Su acción por defecto es terminar el proceso que la recibe. 43 de 77

44 SIGPROF Alarma de un temporizador. Indica que un temporizador descendente que cuenta tanto en tiempo real como virtual, ha llegado a 0. Su acción por defecto es terminar el proceso que la recibe. 44 de 77

45 SIGIO Señal de entrada/salida asíncrona. Indica que un dispositivo o archivo está listo para una operación de entrada/salida. Su acción por defecto es ignorar la señal. 45 de 77

46 SIGWINCH Cambio del tamaño de una ventana. Se usa en las interfaces gráficas orientadas a ventanas como X-WINDOW. Su acción por defecto es ignorar la señal. 46 de 77

47 SIGSTOP Señal de parada de un proceso. Esta señal no proviene de un terminal de control. La señal no puede ser ignorada ni capturada y su acción por defecto es parar el proceso. 47 de 77

48 SIGTSTP Señal de parada procedente de un terminal. Es generada por el teclado. Su acción por defecto es parar el proceso. 48 de 77

49 SIGCONT Continuar. Señal para reanudar las ejecución de un proceso. Su acción por defecto es ignorar la señal. 49 de 77

50 SIGTTIN La reciben los procesos que se ejecutan en segundo plano y que intentan leer datos de un terminal de control. Su acción por defecto es parar el proceso. 50 de 77

51 SIGTTOU La reciben los procesos que se ejecutan en segundo plano y que intentan escribir en un terminal de control. Su acción por defecto es parar el proceso. 51 de 77

52 SIGURG Indica que ha llegado un dato urgente a través de un canal de entrada/sa lida. Su acción por defecto es ignorar la señal. 52 de 77

53 SIGXCPU Le indica al proceso que la recibe que ha superado su tiempo de CPU asignado. Su acción por defecto es terminar el proceso. 53 de 77

54 SIGXFSZ Le indica al proceso que la recibe que ha superado el tamaño máximo del fichero que puede manejar. Su acción por defecto es terminar el proceso. 54 de 77

55 Tratamiento de señales La llamada signal sigue disponible en el sistema 4.3BSD, pero además disponemos de otra llamada para especificar la forma de tratar una señal. Esta llamada es sigvec y su declaración es la siguiente: #include <signal.h> sigvec (int sig, struct sigvec *vec, struct sigvec *ovec); 55 de 77

56 Tratamiento de señales Tanto vec como ovec son punteros a estructuras del tipo sigvec. Esta estructura está definida con los siguientes campos: struct sigvec { void (*sv_handler) (); long sv_mask; long sv_flags; } 56 de 77

57 Ejemplo: sigvec-1.c

58 Ejemplo: sigvec-2.c

59 Ejemplo: sigvec-3.c

60 Protección de zonas críticas En ocasiones puede interesarnos proteger determinadas zonas de código contra la llegada de alguna señal. Para realizar esto nos valdremos de las llamadas sigsetmask y sigblock: #include <signal.h> long sigsetmask (long mask); long sigblock (long mask);

61 Protección de zonas críticas La función sigsetmask fija la máscara de señales actual. Esta máscara indica qué señales tienen bloqueada su recepción. La señal número i está bloqueada si el i-ésimo bit de mask vale 1. Este bit lo podemos fijar con la macro sigmask(i). Naturalmente, las señales que no pueden ser ignoradas ni capturadas tampoco van a poder ser bloqueadas.

62 Protección de zonas críticas La función sigblock permite añadir a la máscara de señales actual aquellas señales que se especifiquen con el parámetro mask. Así, con sigblock podemos modificar la máscara fijada por sigsetmask. La diferencia entre sigsetmask y sigblock es que la primera fija la máscara de forma absoluta y, la segunda, de forma relativa. Las siguientes líneas de código aclaran este concepto. 62 de 77

63 En espera de señales La llamada sigpause permite parar un proceso hasta que se reciba alguna de las señales deseadas. Si con pause podíamos parar un proceso en espera de la primera señal que la reciba, con sigpause podemos seleccionar la señal por la que esperamos. La declaración de esta función es: #include <signal.h> long sigpause (long mask); 63 de 77

64 Gestión de señales POSIX Además de los gestores de señales descritos, hay otros estándares adoptados por muchos fabricantes de sistemas UNIX. En concreto, el estándar POSIX propone un gestor de señales con una funcionalidad muy similar a la de 4.3BSD y que ha sido adoptada por Linux, 4.4BSD y FreeBSD. 64 de 77

65 Tratamiento de señales Con la llamada sigaction asociamos señales con acciones para indicar cómo responderá el proceso actual cuando reciba una señal. La declaración de sigaction es: #include <signal.h> int sigaction (int sig, const struct sigaction *act, struct sigaction *oact); 65 de 77

66 Estructura sigaction struct sigaction { // Si el indicador SA_SIGINFO no está activo. void (*sa_handler) (int signo); // Si el indicador SA_SIGINFO está activo. void (*sa_sigaction) (int signo, siginfo_t *info, void *context); sigset_t sa_mask; // Máscara de señales. Indica las señales adicionales // que serán bloqueadas durante la ejecución del // manejador. int sa_flags; // Indicadores. } 66 de 77

67 Estructura siginfo_t typedef struct { int si_signo; // Número de la señal. int si_errno; // Número de error asociado con la señal. int si_code; // Código que especifica la causa de la señal. pid_t si_pid; // PID del proceso que envía la señal señal SIGCHLD. uid_t si_uid; // UID del proceso que envía la señal señal SIGCHLD. void *si_addr; // Dirección de la instrucción -señales SIGILL y SIGFPE- // o del dato -señales SIGBUS y SIGSEGV- ilegal que // origina la señal. int si_status; // Valor de salida o número de señal del poceso hijo // -señal SIGCHLD-. long si_band; // Datos del evento -señal SIGPOLL-. unión sigval si_value; // Datos de la señal señales de // tiempo real [SIGRTMIN, SIGRTMAX]-. } siginfo_t; 67 de 77

68 Envío de señales En POSIX también podemos usar la llamada kill para enviar señales. Los sistemas que implementan las extensiones de tiempo real disponen de la llamada sigqueue para enviar señales acompañadas de información: #include <signal.h> int sigqueue (pid_t pid, int signo, const union sigval value) 68 de 77

69 Envío de señales Para realizar envío de señales entre hilos de un mismo proceso se emplea la función pthread_kill: #include <signal.h> int pthread_kill (pthread_t thread, int sig); donde thread es el hilo al que le enviamos la señal y sig es el número de la señal enviada. Nuevamente se tendrá en cuenta que SIGKILL afecta a todo el proceso y, por lo tanto. para terminar la ejecución de un hilo concreto utilizaremos pthread_cancel. 69 de 77

70 Máscara de señales Para manipular conjuntos de señales hay que empezar inicializándolos con sigfillset y sigemptyset: #include <signal.h> int sigfillset (sigset_ t *set); int sigemptyset (sigset_t *set); 70 de 77

71 Máscara de señales Una vez que se ha inicializado un conjunto podemos manipularlo para incluir una señal sigaddset, excluirla sigdelset o preguntar si está incluida sigismember : #include <signal.h> int sigaddset (sigset_t *set, int signo); int sigdelset (sigset t *set, int signo); int sigismember (const sigset_ t *set, int signo); 71 de 77

72 Máscara de señales A partir de un conjunto podemos modificar la máscara de señales bloqueadas en un proceso sigprocmask o en un hilo pthread_sigmask : #include <signal.h> int sigprocmask (int how, const sigset_ t * set, sigset_ t *oset); int pthread_sigmask (int how, const sigset_t *set, sigset_t *oset); 72 de 77

73 Parámetro how SIG_BLOCK SIG_SETMASK SIG_UNBLOCK La máscara resultante es el resultado de la unión de la máscara actual y el conjunto. La máscara resultante es la indicada en el conjunto. La máscara resultante es la intersección de la máscara actual y el com plementario del conjunto. Es decir, las señales incluidas en el conjunto quedarán desbloqueadas en la nueva máscara de señales. 73 de 77

74 Ejemplo: exception.h, exception.c y excep.c

75 Resumen de gestores de señales SYSTEM V 4.3BSD POSIX signal() signal() signal() kill() kill() kill() pause() sigpause() sigsuspend() signal() sigvector() ó sigvec() sigaction() - sigblock() sigprogmask() - sigsetmask() sigprogmask() - sigstack() - 75 de 77

76 Ejemplos de aplicaciones que utilizan señales Software tolerante a fallos Sincronización de procesos 76 de 77

77 Gracias por su atención! Preguntas?

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 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4.

Más detalles

Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez.

Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez. Tema 4 : señales Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Señales Las señales son un mecanismo para comunicar eventos

Más detalles

Sucesos asíncronos. dit. dit. Juan Antonio de la Puente DIT/UPM UPM UPM

Sucesos asíncronos. dit. dit. Juan Antonio de la Puente DIT/UPM UPM UPM dit dit UPM UPM Sucesos asíncronos Juan Antonio de la Puente DIT/UPM Transparencias basadas en el capítulo 10del libro de A. Burns y A. Wellings Real Time Systems and Programming Languages, 3ª edición

Más detalles

PRACTICA # 3 PROCESOS (CONTINUACION)

PRACTICA # 3 PROCESOS (CONTINUACION) PRACTICA # 3 PROCESOS (CONTINUACION) 1. OBJETIVO Aprender cómo manipular procesos por medio de las funciones wait() y kill(); además del uso de señales del sistema Linux. 2. INTRODUCCIÓN Estados de un

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

Cominicación entre Procesos: SEÑALES

Cominicación entre Procesos: SEÑALES Cominicación entre Procesos: SEÑALES LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2012 Interrupciones Las interrupciones pueden ser: de hardware: señales electrónicas

Más detalles

Sincronización de procesos en C

Sincronización de procesos en C Sincronización de procesos en C 2 En esta unidad aprenderás a: 1 2 3 4 5 Comprender los mecanismos de comunicación basados en señales. Conocer los tipos de señales. Definir gestores de señales en un programa

Más detalles

Señales POSIX. Configuración de una Señal. Bloqueo de una señal. Asignar un manejador. Qué vamos a estudiar?

Señales POSIX. Configuración de una Señal. Bloqueo de una señal. Asignar un manejador. Qué vamos a estudiar? Señales POSIX Conceptos acerca de Señales Configuración de una Señal Espera de Señales Qué es una Señal? Bloqueo de una señal Cómo se Identifica una señal? Asignar un manejador Ejemplo Cómo se Genera una

Más detalles

Sistemas Operativos - IPC

Sistemas Operativos - IPC Sistemas Operativos - IPC Técnicas Digitales III Ing. Gustavo Nudelman 2012 Creación de procesos Un proceso puede crear a otro mediante la llamada al sistema fork() (no es la única manera de crear procesos)

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Quinta semana: señales 1 Cronograma semanal 2 Entregas 3 Introducción 4 Envío de

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: Gestión de Procesos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo

Más detalles

Tareas Periódicas en POSIX

Tareas Periódicas en POSIX Temporizadores POSIX Uso de Señales, Temporizadores y Threads para ejecutar tareas periódicas en POSIX 1 Tareas Periódicas en POSIX POSIX no implementa un mecanismo directo para especificar tareas periódicas

Más detalles

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Pablo Neira, José Ángel Bernal y Sergio Segura Boletín 5: Señales Curso 2006/07 Índice 1. Introducción 2 2.

Más detalles

Procesos e hilos y señales en C de GNU/Linux

Procesos e hilos y señales en C de GNU/Linux Emilio José Calvo Carrasco Procesos e hilos y señales en C de GNU/Linux 1 de 12 Procesos e hilos y señales en C de GNU/Linux En este pequeño tutorial vamos a ver cómo se gestionan múltiples procesos y

Más detalles

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos Boletín 5- Señales Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción 2. Envío de señales desde la shell: kill 3. Llamadas al Sistema kill: envío de señal a un proceso raise: autoenvío

Más detalles

SISTEMAS OPERATIVOS: PROCESOS. Señales

SISTEMAS OPERATIVOS: PROCESOS. Señales SISTEMAS OPERATIVOS: PROCESOS Señales 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 el alumno

Más detalles

Definición de Proceso

Definición de Proceso Definición de Proceso Proceso es un concepto fundamental para todo sistema operativo. Es una entidad dinámica que consiste en un programa en ejecución, sus valores actuales, su estado y los recursos utilizados

Más detalles

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Grupos Realización Entrega/Evaluación Lunes 22 de Febrero, 1, 8, 15 de Marzo 22 de Marzo Martes 23 de Febrero, 2, 9 y 16 de Marzo 23 de Marzo Miércoles 24 de Febrero, 3, 10 y 17 de Marzo 24 de Marzo Viernes

Más detalles

Linux 101 Gestión de Procesos

Linux 101 Gestión de Procesos Gestión de Procesos Entendiendo el Kernel El kernel de linux es el corazón de todo sistema linux, es el encargado de que el software y el hardware puedan trabajar juntos. Administración de memoria para

Más detalles

Un ejemplo: UNIX PROCESOS UNIX

Un ejemplo: UNIX PROCESOS UNIX PROCESOS UNIX Un ejemplo: 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 de procesos

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Arquitectura de Computadoras. Clase 2 Interrupciones

Arquitectura de Computadoras. Clase 2 Interrupciones Arquitectura de Computadoras Clase 2 Interrupciones Interrupciones Mecanismo mediante el cual se puede interrumpir el procesamiento normal de la CPU. Ejecución secuencial de instrucciones de un programa

Más detalles

Cap.2. Kernel Sistemas Operativos - Viña del Mar.

Cap.2. Kernel Sistemas Operativos - Viña del Mar. Cap.2. Kernel Sistemas Operativos - Viña del Mar. Maximiliano Osorio mosorio@inf.utfsm.cl Universidad Técnica Federico Santa Maria 19 de agosto de 2017 1 / 44 Tabla de contenidos 1 Proceso Protección de

Más detalles

Taller de Sistemas Operativos. Procesos 2012

Taller de Sistemas Operativos. Procesos 2012 Taller de Sistemas Operativos Procesos 2012 Agenda Introducción PCB (task_struct) Agrupaciones de procesos Estado de un proceso Cambio de proceso (task switch) Creación y destrucción de un proceso Threads

Más detalles

Introducción y Gestión de Procesos

Introducción y Gestión de Procesos Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo

Más detalles

Estructura de los sistemas de cómputo

Estructura de los sistemas de cómputo Estructura de los sistemas de cómputo Introducción Elementos básicos de un computador Registro del procesador Ejecución de las instrucciones Interrupciones Hardware de protección Introducción Qué es un

Más detalles

SISTEMAS OPERATIVOS PROCESOS. Pedro de Miguel Anasagast

SISTEMAS OPERATIVOS PROCESOS. Pedro de Miguel Anasagast SISTEMAS OPERATIVOS PROCESOS Pedro de Miguel Anasagast ÍNDICE Conceptos generales de procesos Multitarea Servidores y demonios Servicios UNIX de gestión de procesos Señales y temporizadores Servicios UNIX

Más detalles

Eventos e interrupciones

Eventos e interrupciones Programación Concurrente en Linux Eventos e interrupciones Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Interacción en un programa: entrada/ salida 2. Eventos

Más detalles

Excepciones y llamadas al sistema

Excepciones y llamadas al sistema Departamento de Automática 1 / 15 Índice Modos de operación Conmutación entre modos Registros Modos de región Marco de excepción Manejador de llamadas al sistema 2 / 15 Conmutación entre modos Modos de

Más detalles

Administración general del sistema

Administración general del sistema Diseño y Administración de Sistemas y Redes Juan Céspedes Curso 2005 2006 Un poco de historia 1 Un poco de historia UNIX surgió en 1969 en los Laboratorios Bell (Ken Thomson, Dennis

Más detalles

Sistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores

Sistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistemas Operativos MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistema Operativo Un S.O. explota los recursos hardware de uno o mas procesadores para proporcionar un conjunto de servicios

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Más detalles

Señales LECCIÓN 4: SEÑALES

Señales LECCIÓN 4: SEÑALES LECCIÓN 4: SEÑALES LECCIÓN 4: SEÑALES...1 LECCIÓN 4: SEÑALES...1 4.1 Introducción...1 4.2 Llamadas al sistema para señales...2 ENVIO DE SEÑALES... 3 RECEPCIÓN DE SEÑALES... 4 ALARMA... 5 PAUSA... 6 4.3

Más detalles

Procesos y Señales. Laboratorio de Arquitectura de Ordenadores

Procesos y Señales. Laboratorio de Arquitectura de Ordenadores Procesos y Señales Laboratorio de Arquitectura de Ordenadores Índice Introducción Procesos Señales Bibliografía Marzo 2006 Dep.Ing.Telemática (UC3M) 2 Introducción Proceso: unidad mínima expedida por el

Más detalles

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 2: Estructura del computador 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Estructura de la E/S Sistema de Interrupciones DMA Jerarquía de memorias

Más detalles

Hilos Secciones Stallings:

Hilos Secciones Stallings: Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los

Más detalles

9. Lenguaje ensamblador

9. Lenguaje ensamblador 9. Lenguaje ensamblador Lenguaje máquina: un programa o secuencia de instrucciones viene dado por una secuencia de códigos binarios. Lenguaje ensamblador: secuencia lógica de sentencias pertenecientes

Más detalles

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof.

Más detalles

Programación de Multitareas utilizando Hilos

Programación de Multitareas utilizando Hilos Programación de Multitareas utilizando Hilos Enero/2012 Programación de Multitareas utilizando Hilos Origen de los hilos como elementos necesarios en la programación de multitareas Multihilos en un solo

Más detalles

Funciones Definición de función

Funciones Definición de función Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas

Más detalles

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco hildacz@gmail.com PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña

Más detalles

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;

Más detalles

Programación Aplicada

Programación Aplicada Programación Aplicada Clase 11: Manipulación de PROCESOS en LINUX Nombre unidad de aprendizaje: Programación avanzada de SCRIPTS Escuela de Informática y Telecomunicaciones 2008, DuocUC Objetivos Objetivos

Más detalles

Sistemas Operativos Tema 1

Sistemas Operativos Tema 1 Sistemas Operativos Tema 1 - Definición de sistema operativo - Arquitecturas de los Sistemas Operativos. - Presentación de MINIX - Introducción al IBM PC - Conceptos básicos de Sistemas Operativos - Procesos

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas

Más detalles

Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR Mecanismos IPC del sistema 4.3BSD La interfaz de comunicación entre procesos

Más detalles

Informática PRÀCTICA 2 Curs

Informática PRÀCTICA 2 Curs Práctica Nº 2: Estructura general de un programa en C/C++. Introducción a las funciones de Entrada y salida en C++ (cin y cout) sin formato. Objetivos de la práctica: - Presentar la estructura general

Más detalles

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Un proceso en Unix es un programa en ejecución que tiene los siguientes atributos: Área de código, Área de datos, Área de stack,

Más detalles

Curso Operador Linux

Curso Operador Linux Curso Operador Linux Módulo 6 CONTROL DE PROCESOS Página 1 de 11 Presentación En esta unidad se introducirá a los participantes en el manejo y control de los procesos. Objetivos Los participantes al finalizar

Más detalles

T E M A 7. Interrupciones

T E M A 7. Interrupciones T E M A 7 Interrupciones 7-1 Interrupciones INDICE 7.- Introducción al Tema 7-2 7.1 Interrupciones 7-2 7.1.1 Tipos de Interrupciones 7-2 a).- Interrupciones de Programa 7-2 b).- Interrupciones de Llamada

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 stmas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejec. de instrucciones e interrupciones y estructura

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

Más detalles

Gestión de procesos en Linux

Gestión de procesos en Linux Gestión de procesos en Linux Un proceso en Linux es, en resumen, un programa en ejecución. Un proceso puede crear a su vez otros procesos. Al proceso que genera otro proceso se le llama proceso padre.

Más detalles

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

Más detalles

Sistemas Operativos. Daniel Rúa Madrid

Sistemas Operativos. Daniel Rúa Madrid Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre

Más detalles

Arquitectura de computadores I

Arquitectura de computadores I Arquitectura de computadores I Perspectiva de alto nivel de los computadores Septiembre de 2017 Contenido Componentes del computador Funcionamiento del computador Estructuras de interconexión Interconexión

Más detalles

Threads, SMP y Microkernels. Proceso

Threads, SMP y Microkernels. Proceso Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo) Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional () adicional () Preparado Preparado

Más detalles

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Cursosindustriales. Curso de C / C++ Por Deimos_hack MÓDULO 1. ESTRUCTURAS Y FUNCIONES. En los capítulos anteriores has visto como los arrays permiten almacenar diferentes datos, pero todos del mismo tipo de dato. En la práctica esto no compensa debido a

Más detalles

Entorno de programación de nivel 1: La librería PCAP

Entorno de programación de nivel 1: La librería PCAP Entorno de programación de nivel 1: La librería PCAP La librería libpcap nos permite capturar paquetes desde un programa C. En sistemas Windows, la librería se llama Winpcap. Para compilar cualquier programa

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Examen 2015/16-1. Asignatura Código Fecha Hora inicio Sistemas operativos /01/ :00

Examen 2015/16-1. Asignatura Código Fecha Hora inicio Sistemas operativos /01/ :00 grapa Examen 2015/16-1 75.097 23 01 16 EX Espacio para la etiqueta identificativa con el código personal del estudiante. Examen Ficha técnica del examen Comprueba que el código y el nombre de la asignatura

Más detalles

Sistemas Operativos Primer Recuperatorio Parcial 1

Sistemas Operativos Primer Recuperatorio Parcial 1 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos hijos al mismo nivel y le asigna a cada uno una tarea determinada, cada proceso

Más detalles

Una función es un miniprograma dentro de un programa. Las funciones contienen varias

Una función es un miniprograma dentro de un programa. Las funciones contienen varias TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas

Más detalles

CAPITULO 6: FUNCIONES

CAPITULO 6: FUNCIONES CAPITULO 6: FUNCIONES 1. INTRODUCCIÓN Un problema de programación en C se resuelve descomponiéndolo en varias partes. Cada una de estas partes se puede asociar a una función que resuelva su fracción correspondiente

Más detalles

MÓDULOS B-MOTICS ESCLAVOS DE MODBUS. Bielsa electrónica S.L. Ref: mblogix1.0es.pdf

MÓDULOS B-MOTICS ESCLAVOS DE MODBUS. Bielsa electrónica S.L. Ref: mblogix1.0es.pdf MÓDULOS ESCLAVOS DE MODBUS MBLOGIX B-MOTICS 1 ÍNDICE DE CONTENIDO DESCRIPCIÓN GENERAL... 4 INSTALACIÓN... 5 WINDOWS... 5 LINUX... 5 MAC... 5 CONFIGURACIÓN DE LA COMUNICACIÓN... 6 SERIE RTU... 6 VELOCIDAD...

Más detalles

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

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una

Más detalles

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos

Más detalles

Organización del Sistema Operativo

Organización del Sistema Operativo del Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Febrero de 2010 del Sistema Operativo Funciones Básicas Funciones Básicas Perspectivas del Computador Responsabilidades del SO

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

Más detalles

Programación de Sistemas Ricardo Sanz

Programación de Sistemas Ricardo Sanz Programación de Sistemas Ricardo Sanz UPM-ASLab Curso 2005-2006 Programas y Procesos Los entes que habitan en las computadoras Ejecución de un programa Del fichero ejecutable al proceso en ejecución Fases:

Más detalles

Sistemas Operativos - Manejador de procesos - Fundamentos

Sistemas Operativos - Manejador de procesos - Fundamentos Sistemas Operativos - Manejador de procesos - Fundamentos Esta es una serie de artículos introductorios acerca de lo que es el manejador de procesos de un sistema operativo, la idea es tener un concepto

Más detalles

Taller de programación shell

Taller de programación shell Taller de programación shell 3 de Abril de 2004 revisión 1 Asociación de Usuarios de Software Libre de Elche http://www.kleenux.org/ Introducción: Qué es un shell? Es una parte fundamental de todo sistema

Más detalles

Parte 2 Llamadas al sistema para el Subsistema de Procesos

Parte 2 Llamadas al sistema para el Subsistema de Procesos Parte 2 Llamadas al sistema para el Subsistema de Procesos 1. Comunicación entre procesos utilizando cauces Los mecanismos de Inter-Process Comunication que veremos en esta sección serán los cauces, con

Más detalles

6. Enumere tres ventajas de los ULT frente a los KLT.

6. Enumere tres ventajas de los ULT frente a los KLT. 1 Tarea 3 Hilos 1. Cuales bloques de control de proceso deberían pertenecer a un bloque de control de hilo y cuáles a un bloque de control de proceso en un sistema multihilo? Para modelos monohilo deben

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

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

Introducción a los Sistemas Operativos S.O.

Introducción a los Sistemas Operativos S.O. Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es

Más detalles

Tema 7. Entrada / Salida

Tema 7. Entrada / Salida Tema 7 Entrada / Salida Problemática Entrada/Salida Elementos claves en un computador: Procesador, memoria y módulos de E/S Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos

Más detalles

Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores

Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores Llamadas al Sistema Laboratorio de Arquitectura de Ordenadores Índice Introducción Procesos Señales Sistema de ficheros Bibliografía 2 Introducción Llamadas al Sistema: Un API compuesto por una serie de

Más detalles

1.4 Ficheros m. Entrada y salida de datos por consola.

1.4 Ficheros m. Entrada y salida de datos por consola. 1.4 Ficheros m. Entrada y salida de datos por consola. Ficheros m Hasta el momento todas las órdenes del lenguaje M las hemos ejecutado desde la ventana de comandos. De esta manera obtenemos una respuesta

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 1 Conceptos arquitectónicos

Sistemas operativos: una visión aplicada. Capítulo 1 Conceptos arquitectónicos Sistemas operativos: una visión aplicada Capítulo 1 Conceptos arquitectónicos Contenido Estructura del computador Ejecución de instrucciones Interrupciones Reloj del computador Jerarquía de memoria Entrada/Salida

Más detalles

SISTEMAS OPERATIVOS 1. Enxeñería Informática. Curso

SISTEMAS OPERATIVOS 1. Enxeñería Informática. Curso SISTEMAS OPERATIVOS 1. Enxeñería Informática. Curso 2007-2008 Práctica 1: Filedaemon. Implementar un demonio que periódicamente inspeccione los ficheros que han sido modificados recientemente a partir

Más detalles

Guía práctica de estudio 12: Hilos

Guía práctica de estudio 12: Hilos : Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 12: Objetivo: Implementar el concepto de multitarea utilizando

Más detalles

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso Proceso Threads, SMP, and Microkernels Capítulo 4 Propiedad de Recurso el proceso se ubica en un espacio de direccionamiento virtual que tiene la imagen del proceso Planificación/ejecución sigue un camino

Más detalles

ADMINISTRACIÓN DE PROCESOS

ADMINISTRACIÓN DE PROCESOS ADMINISTRACIÓN DE PROCESOS La más simple definición de un proceso podría ser que es una instancia de un programa en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto

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 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 5.

Más detalles

T2-Procesos. Índice 17/2/17

T2-Procesos. Índice 17/2/17 T2-Procesos Índice Conceptos relacionados con la Gestión de procesos Servicios básicos para gestionar procesos (basado en Linux) Comunicación entre procesos Signals Linux y Sincronización Gestión interna

Más detalles

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del computador y el SO

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del computador y el SO Fundamentos de los Sistemas Operativos Tema 1. Conceptos generales Estructura del computador y el SO 2015 ULPGC - José Miguel Santos Espino, Alexis Quesada, Francisco J. Santana Contenidos Estructura de

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Parte II USB Servicios de los SO Interfaz de usuario Ejecución de programas Operaciones de E/S Manipulación de archivos Comunicaciones Detección de errores 1 Funciones

Más detalles

Capítulo 2 Introducción a los sistemas operativos

Capítulo 2 Introducción a los sistemas operativos Sistemas operativos: una visión aplicada Capítulo 2 Introducción a los sistemas operativos Contenido Qué es un sistema operativo? Arranque del computador Componentes y estructura de un sistema operativo

Más detalles

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. 1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente

Más detalles

Taller de Sistemas Operativos. System Calls 2012

Taller de Sistemas Operativos. System Calls 2012 Taller de Sistemas Operativos System Calls 2012 Agenda Conceptos generales La API POSIX y las System Calls Syscalls System Call Handler Como implementar una System Call Contexto de una System Call Utilizar

Más detalles

Sistemas Operativos Primer Examen Parcial 13/07/15

Sistemas Operativos Primer Examen Parcial 13/07/15 Dpto. 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos descendientes y le asigna a cada uno una tarea determinada, cada proceso

Más detalles

The Atomik Microkernel API Reference, version 0.1 december 2013 (Spanish)

The Atomik Microkernel API Reference, version 0.1 december 2013 (Spanish) Consolas gráficas La API de consolas gráficas permite enviar y recibir texto por el dispositivo de vídeo por defecto. Si bien esta es la API que Atomik usa por defecto para escribir mensajes de estado

Más detalles