Sistemas Operativos I Práctica 1. Técnica de procesos múltiples El intérprete de comandos. Diana Rosario Pérez Marín Febrero 2007 EPS-UAM
|
|
- Esther Ferreyra Montes
- hace 5 años
- Vistas:
Transcripción
1 Sistemas Operativos I Práctica 1 Técnica de procesos múltiples El intérprete de comandos Diana Rosario Pérez Marín Febrero 2007 EPS-UAM Introducción La página web de la asignatura es y el coordinador es Francis Gómez (francis.gomez@uam.es). Mi dirección de correo electrónico es diana.perez@uam.es. Mi horario de tutorías son los viernes de 11:00 a 13:00. El objetivo de la asignatura es aproximarse al sistema operativo desde el punto de vista del programador de aplicaciones. Poniendo especial énfasis en la gestión de procesos, comunicación y sincronización, administración de memoria, sistemas de archivos y gestión de entrada/salida. El enunciado de la práctica siguiente, se da el día en que se corrige la práctica anterior, y es cuando se explica. Los grupos deben ser de 2 personas. El sistema de registro se encuentra en: usuario: alumnoeps Password: practicasso1 2 1
2 Planificación Se van a hacer 3 prácticas que no son independientes unas de otras sino que consisten en ir incrementalmente construyendo un intérprete de comandos: La primera práctica es la de procesos que es la que empezamos hoy. La idea global de esta práctica es que no sólo existe la programación secuencial, sino que se puede aprovechar la multitarea del sistema operativo y hacer varias tareas en paralelo. La segunda práctica es de memoria compartida y semáforos. Lo importante de esta práctica es aprender que cuando varios procesos quieren trabajar juntos, y no se quiere depender de un fichero para pasar información entre ellos o un pipe, es necesario reservar una memoria común a la que todos la puedan acceder y ya veremos cómo se hace eso. Además, para proteger a la memoria compartida de accesos concurrentes por parte de varios procesos, se implementarán semáforos. La tercera práctica es de señales y mensajes, para que se puedan sincronizar los procesos y compartir información de forma adicional a la memoria compartida. 3 Evaluación ( I ) Se convalidarán las prácticas del año pasado con calificación >= 5 a aquellos alumnos que se hayan presentado al examen de teoría en la convocatoria de Junio o de Septiembre. Hablar con rosa.carro@uam.es Es necesario obtener más de un 5 en prácticas para aprobar la asignatura. Si esta condición se cumple entonces cuentan un 25% de la nota final de la asignatura. La nota de prácticas se puede obtener de 2 formas : Por evaluación continua. Es la opción que os recomiendo porque : Se tiene en cuenta el esfuerzo que hacéis semana tras semana y el trabajo que realizáis. Además entre las entregas, habrá revisiones para comprobar qué se han ido solucionando los fallos detectados. Importa la asistencia a clase. Este año se va a pasar al principio de todas las clases una hoja de firmas. Acumular más de 1 falta no justificada supone el NO APTO por evaluación continua y tener que presentarse al examen de prácticas. Además la nota no será media aritmética, sino ponderada. Por lo que no hay que desesperarse si no funciona una práctica a la primera. Lo importante es que en la entrega final todo funcione. 4 2
3 Evaluación ( II ) Por examen de prácticas: Para aquellos que suspendan por evaluación continua, habrá un examen de prácticas en la última semana de Mayo. Pero ya os advierto que va a ser bastante duro, por lo que una vez más insisto en que trabajéis durante el cuatrimestre para que no sea necesario que ninguno tenga que hacer este examen. También se pueden presentar los que hayan aprobado por evaluación continua. Pero entonces su nota de prácticas sería la obtenida en el examen de prácticas, incluso aunque esto significase una nota inferior e incluso suspender la asignatura. Si se suspende este examen, entonces el alumno debe realizar una práctica especial y el examen de prácticas de Septiembre. La nota de prácticas de este curso se guarda hasta Septiembre El retraso de la entrega de una práctica es inexcusable y supone una reducción de hasta un 50% dentro de las primeras 24 horas o un 0 si se superase este plazo. No se permite la copia bajo ningún concepto. Si se descubriera que algún grupo ha copiado se suspendería la parte de prácticas en la convocatoria de Junio. 5 Evaluación ( III ) Las prácticas se evaluan en 2 pasos : Se deben entregar via web en Entrega de prácticas, el plazo es hasta una 1 hora antes del día y de la hora de entrega en laboratorio. El nombre del fichero debe ser IDGrupoIDParejaNumPractica.tar.gz, ej 1d05p1.tar.gz. (añadiendo vx para posibles reenvíos). Si el fichero se llamase de otra forma tendría 1 punto menos en la nota de la práctica. Para hacer el tar.gz hay que teclear: tar cvzf nombrearchivo.tar.gz. y para descomprimir tar xvzf nombrearchivo.tar.gz. El contenido del fichero debe ser : Un.txt con los nombre del grupo de prácticas, s, número de grupo, turno y fecha. Una memoria en.doc,.html,.rtf o.txt con descripción funcional del programa implementado, decisiones de diseño, control de errores y pruebas de la verificación de la práctica. El código bien estructurado, los.h,.c y makefile. Comentado, cada función con cabecera y descripción de las estructuras de datos y variables. Entrevista con el profesor, donde se muestra el correcto funcionamiento de la práctica, se entrega la memoria y el código en papel y se demuestra que ambos compañeros han trabajado en la práctica. 6 3
4 Procesos en Linux ( I ) En esta práctica vamos a aprender a crear procesos en Linux, y de esta forma familiarizarnos con la programación concurrente. Recordemos que un proceso es un programa en ejecución y que está identificado mediante un número entero. Con ps -aux podemos ver todos los procesos y con kill idproceso matar un proceso. Cómo se crea? Padre Hijo Llamada a fork 7 Procesos en Linux ( II ) Al crear el nuevo proceso, se le asigna su entrada en la tabla de procesos y su identificador ( en adelante pid ). Se le pone en estado listo para ejecutar. El proceso hijo inicialmente es exactamente igual que el padre : copia su segmento de datos, pila y estructura de usuario. Por lo que la única forma de distinguirle del padre, es mediante el retorno de fork : para el hijo es 0 y para el padre el pid del hijo. A medida que el hijo va ejecutando otro código, su memoria, pila y estructura se va diferenciado del padre. El hijo no termina, hasta que el padre recoge su código de finalización ( devuelto con exit ). El hijo queda zombie, si el padre termina y no ha recogido su código de finalización. El padre debe esperar a sus hijos. El hijo queda huérfano, si el padre muere cuando el hijo aún está en ejecución. 8 4
5 El intérprete de comandos Hay que escribir un programa en C para UNIX. Consistente en un intérprete de comandos (msh) con dos modos de funcionamiento según los valores que se le pasen como argumentos: Por fichero: Si el intérprete se ejecuta como./msh nombrefichero entonces los comandos a ejecutar los lee de este fichero. Interactivo: El intérprete se ejecuta como./msh y se queda esperando a que se teclee el comando o comandos por teclado. El formato de una línea del fichero de comandos o una línea que se le teclee en modo interactivo al intérprete será de la forma: comando [arg1 argn] [&] [;] [comando arg1 argn & ;] Especial atención a los símbolos : & -> Indica que el comando debe ejecutarse en background. Esto es que el intérprete no espera a que haya terminado este comando para ejecutar el siguiente. ; -> Indica nuevo comando. 9 Ejemplo de fichero.msprofile Además, habrá un fichero de configuración.msprofile cuya estructura es la siguiente (es muy importante que respetéis esta estructura puesto que este año se va a pasar una herramienta automática de corrección que no aceptará otros formatos): El. lo hace oculto en Linux pero por lo demás se comprota como cualquier otro fichero MAX_NUM_PROC=10 PROMPT=msh MAX_NUM_VAR=5 ARRAY=uno,dos,tres ls la ; cat fichero.txt avar EJ ejemplo evar date El prompt aquí indicado debe ser el usado por msh NOTA: La primera parte sólo contiene variables (con formato NOMBRE_VARIABLE=valor, mientras que la segunda contiene variables o comandos. La primera línea en blanco es el separador entre las dos partes. 10 5
6 El padre (I) 1. Comprueba los argumentos que ha recibido de línea de comandos y establece el modo de trabajo (FICHERO, INTERACTIVO). 2. Lee el fichero de configuración.msprofile: Recordar que en la segunda parte puede haber también variables y que el orden del fichero no está prefijado. Además, una variable puede ser una cadena o bien un array con N elementos ( uno, dos, tres ). Crea memoria ESTÁTICA para guardar MAX_NUM_VAR variables de entorno contenidas en dicho fichero (ej. PROMPT). Comprobar que no hay más de MAX_NUM_VAR variables, en caso contrario dar error. Saltar línea de separación entre variables y procesos. Crea memoria ESTÁTICA para guardar información (pid, pid del padre, tiempo de ejecución y línea de comando) sobre los MAX_NUM_PROC procesos a ejecutar. Comprobar que no hay más de MAX_NUM_PROC procesos, en caso contrario, dar error. 3. Ejecuta los posibles comandos de inicio contenidos en.msprofile. 11 El padre (II) 4. Mientras haya más comandos que ejecutar (esto es, no se encuentre el comando exit o se llegue al final del fichero script con los comandos): Analiza la línea de comandos para identificar los nombres de los comandos, sus argumentos, si se deben ejecutar o no en background y si hacen acceso a alguna variable de entorno. Identifica si el comando es uno de los propios de msh: exit: Cierra todos los ficheros abiertos, libera la memoria usada y cierra el intérprete de comandos. msps: Lista los procesos que se están ejecutando en este momento en msh informando sobre su pid, el pid del proceso padre, cuánto tiempo lleva ejecutándose (HHMMSS) y la línea de comando con la que fue ejecutado. En cada línea debe haber un proceso, con los campos separados por espacios o tabuladores. evar nombre_variable: Muestra por pantalla 0 si la variable no existe, 1 si es una cadena o el número de elementos que tiene la cadena. avar nombre_variable valor (nombrevariable=valor): Asigna valor a la variable, si la variable no existe, se creará. 12 6
7 El padre (III) bvar nombre_variable: Borra la variable si existiera. rvar nombre_variable: Muestra el valor de la variable si existiera. Si es un array, se mostrará completo separando los campos por comas, a no ser qué se especifiquen algunos valores en concreto que se deben mostrar. Entorno: Muestra todas las variables junto con sus valores en formato nombre_variable=valor donde valor puede ser un array separando los campos por comas. Crea un hijo por comando diferente a los propios de msh usando fork. Esto es importante para proteger a nuestro intérprete, de comandos que pueden no acabar o contener algún error. Esto es tarea de los hijos. Guarda información sobre el proceso. Porque en cualquier momento podemos teclear msps. Espera a los hijos que ejecutan comandos en background. Si el comando no debe ser ejecutado en background se queda esperando a que termine. En caso contrario, pasa a ejecutar el siguiente comando inmediatamente. Por cada proceso que termine y se estuviese ejecutando en background, mostrar un mensaje que lo indique por pantalla. 5. Espera a que los hijos terminen. El intérprete no puede terminar hasta que todos sus hijos lo hayan hecho para que no queden zombies. Informar al usuario de esto. 6. Deja la máquina como estaba, liberando todo los recursos usados (memoria, ficheros,...). 13 Los hijos Cada hijo debe ejecutar un comando. Para ello, debe llamar a la función execve() (u otra relacionada: execv(), execvp() ): int execve (char * path, char *argv[], char *envp[]): Ejecuta el comando que se encuentra en la ruta que se le pasa como primer argumento, con los argumentos guardados en argv[] (argv[0] es el comando y argv[ultimo] = NULL) y según la información de las variables de entorno envp. int execvp (char * path, char *argv[]): Igual que la anterior, con la única diferencia que no necesita que se le pasen variables de entorno. Ej: para ejecutar ls la comando[0] = ls, comando[1] = -l, comando[2] = NULL, entonces execvp(*comando, comando) funciona, usar punteros! Tener en cuenta que estas funciones una vez toman el control ya no regresan a no ser que suceda algún error (entonces devolverían valor -1 e información sobre el error en errno). Pero deben mostrar un mensaje por pantalla cuando hayan terminado en caso de que se estuvieran ejecutando en background. El hijo hereda toda la información del padre. No es necesario volver a crear memoria para las variables de entorno! Por el contrario, es obligatorio liberar la memoria puesto que no se libera hasta que el padre y los hijos (que la han heredado) la liberan. Desde un msh se puede ejecutar como hijo otro msh que heredará todos los valores de las variables de entorno tal y como estén en ese momento pero no la tabla de procesos. No volver a reservar memoria! 14 7
8 >./msh Visión global : Padre e hijos Padre PID 1749 Hijo 1 PID modo = INTERACTIVO ls -la 2º. Lee.msprofile 3º. Espera comandos: msh$ 4º. msh$ ls la & ; cd /home 5º. Analiza la línea de comandos Hijo 2 PID º. Encuentra el primer comando cd /home 7º. Crea el primer hijo [diana@orestes data]$ cd /home 8º. Encuentra el segundo comando [diana@orestes home]$ exit(0) 9º. Crea el segundo hijo 10º. Espera a que los hijos terminen -rw-r--r-- 1 diana users Nov 5 09:52 archivo1 -rw-r--r-- 1 diana users 2122 Nov 5 10:52 archivo2 exit(0) 15 Control de errores MÍNIMO : En la creación y manejo de procesos. Hay que controlar el valor devuelto por fork, wait y exit. Que los hijos mueran de forma ordenada y sin crear zombies. En la creación, lectura, escritura y borrado de ficheros. En la reserva de memoria dinámica. ADICIONAL : En los argumentos y retornos de las funciones. En la lectura de los comandos del fichero. En general, que el programa haga frente a todos los posibles errores que se puedan ir dando y no se quede bloqueado. 16 8
9 Pasos para hacer la práctica En primer lugar, que se pueda leer de teclado una línea de comandos y el programa guarde correctamente los comandos y sus argumentos. En segundo lugar, que se cree un hijo por cada comando de la línea y lo ejecute correctamente (todavía no en background). En tercer lugar, incorporar la posibilidad de ejecutar procesos en background y comprobar la concurrencia del padre y sus hijos. En cuarto lugar, que se pueda proporcionar como argumento el nombre de un fichero del que el intérprete lea los comandos a ejecutar. Añadir un bucle que permita ejecutar todos los comandos del fichero o permanecer en modo interactivo hasta exit. En quinto lugar, programar los comandos internos al msh. En sexto lugar, robustecerlo frente a casos de error. Asegurarse que la máquina se queda como al principio de la ejecución. Quitar la información de depuración o hacer que solo aparezca si una variable debug en el.h vale 1, por ej. if (debug) printf("ahora crea el hijo %d... En séptimo lugar, implementar las mejoras. 17 Información adicional : unistd.h Para poder utilizar fork y wait hay que incluir la librería unistd.h, y para las macros de exit : sys/wait.h y sys/types.h. Veamos a grandes rasgos cada función y luego ya ejemplos de cada (recordar encapsular las llamadas al sistema operativo) : pid_t fork() se encarga de crear un nuevo proceso. Devuelve 0 al hijo y el pid del hijo al padre. 1 si error que se controla con errno. int wait(int * status) la llama el padre para esperar a cualquier hijo que termine. El retorno es el pid del hijo y en status ( retorno exit ). int waitpid( pid_t, int * status, int opcion ). Igual que la anterior, pero para esperar a un proceso concreto ( con pid = -1 igual que wait ). exit( int status ) sirve para devolver status al padre pid_t getpid() para averiguar el pid de un proceso. pid_t getppid() para averiguar el pid del proceso padre. int pipe ( int * ) para crear una tubería de comunicación padre-hijo 18 9
10 #include <stdio.h> #include <unistd.h> int main() int var = 2 ; int id ; Ejemplo de fork id = fork(); switch(id) case -1 : /* error */ break ; case 0 : /* hijo */ var++ ; break ; default : /* padre */ var-- ; break ; printf("var = %d\n", var ) ; 19 Ejemplo de wait, getpid y getppid() main() /* programa wait.exe */ int pid, status, hijopid; printf( Soy el proceso padre y mi Pid es: %d\n,getpid()); pid = fork(); if(pid == -1) exit(-1); if(pid!=0) printf( Soy el proceso padre con PID %d y PPID %d\n, getpid(),getppid()); hijopid= wait(&status); printf( Un hijo con PID %d ha terminado con codigo de salida %d\n, hijopid,wexitstatus(status)); else printf( Soy el hijo con PID %d y PPID %d\n, getpid(),getppid()); exit(42); printf( El proceso de PID %d termina\n, getpid()); 20 10
11 Ejemplo de exit y macros #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main() int var, estado, id, control1, control2 ; if ( (id = fork()) == 0 ) // hijo var = 257 ; exit(var); // el padre comprueba el retorno if ( id == wait(&estado)) control1 = WIFEXITED(estado); control2 = WIFSIGNALED(estado); printf( Control1=%d y control2=%d\n, control1, control2); printf("padre recibe = %d\n", WEXITSTATUS(estado) ) ; else exit(-1); 21 Explicación de los ejemplos vistos El resultado del fork puede ser : var= 3, var = 1 o al revés los dos padre e hijo pasan por el printf, con el cambio realizado a var. Otras opciones que tiene el waitpid son : WNOHANG : Espera no bloqueante. WUNTRACED : Información adicional de si el hijo recibe señales. El resultado del ejemplo del wait : Soy el proceso padre y mi Pid es: Soy el hijo con PID y PPID Soy el proceso padre con PID y PPID Un hijo con PID ha terminado con codigo de salida 42 El proceso de PID termina Para obtener los 8 bits menos significativos, donde está guardado el resultado del exit, se utiliza WEXITSTATUS(estado). Para comprobar si es correcto el resultado se tiene que comprobar que WIFEXITED(estado) devuelve un valor distinto de cero y que WIFSIGNALED(estado) es
12 errno #include <stdio.h> #include <errno.h> extern int errno ; int main() FILE * f = NULL ; f = fopen("bla", "r"); if ( f == NULL ) perror("fopen:"); exit(-1) ; fclose(f); exit(0) ; 23 pipe - Los procesos se pueden comunicar mediante tuberías (pipes) que deben ser creadas antes de la ejecución del fork. crear pipe fork proceso padre escribe pipe pipe proceso hijo lee pipe - A los pipes se accede a través de un descriptor de fichero, como cualquier otro fichero. Tienen tamaño variable
13 Ejemplo de pipe ( I ) #include <stdio.h> #include <unistd.h> #include <errno.h> #define LEER 0 #define ESCRIBIR 1 char * frase = "Envia esto a traves de un tubo" ; extern int errno ; int main() int fd[2], bytesleidos ; char mensaje[100] ; int control ; // se crea la tuberia control = pipe(fd) ; if ( control!= 0 ) perror("pipe:"); exit(errno); 25 Ejemplo de pipe ( II ) // se crea el proceso hijo control = fork() ; switch(control) case -1 : // error perror("fork:"); exit(errno); case 0 : // hijo close(fd[leer]); write(fd[escribir], frase, strlen(frase) + 1 ) ; close(fd[escribir]); exit(0); default : // padre close(fd[escribir]); bytesleidos = read(fd[leer], mensaje, 100 ) ; printf("leidos %d bytes : %s\n", bytesleidos, mensaje ) ; close(fd[leer]); exit(0) ; Resultado : Leidos 31 bytes : Envia esto a traves de un tubo 26 13
14 fork y ficheros #include <stdio.h> #include <unistd.h> int main() int pid ; printf("voy a crear el hijo..."); //fflush(stdout); pid = fork(); if ( pid == 0 ) // hijo sleep(10); // asegurar que el padre se ejecuta primero printf("soy el hijo\n"); exit(0); else // padre printf("hijo creado\n"); wait(); exit(0) ; 27 Otras funciones <stdio.h> char * fgets (char * s, int size, FILE * f); fgets(linea, MAX_LINEA, stdin); int sscanf (const char * str, const char * format, ) sscanf(linea, %s=%s, nombre_var, valor_var); <time.h> time_t (time_t * t) <stdlib.h> int atoi (const char * nptr) n = atoi (cadena) char * getenv(const char * name) <string.h> char *strchr (const char * s, int c) If (strchr(cadena, = )!= NULL ) int strcmp ( const char * s1, const char * s1, size_t n ) strcpy, strlen 28 14
15 Consejos Para asegurar que no se quedan zombies: Hacer que el padre lleve un contador de todos los hijos que creó y hasta que no se produzcan todos los wait el padre no termina. Inicializar todos los punteros a NULL. Liberar toda la memoria que habéis reservado. Hacer un código modular y documentado : main.c : Sólo llama a funciones, es muy pequeño func.c : Tiene las funciones, con cabecera func.h : Prototipos y constantes Cada función realiza una tarea!!! 29 Requisitos mínimos MINIMO (para aprobar la práctica, ver nota de la herramienta de test) Funcionamiento correcto en modo interactivo o por fichero, tanto para procesos ejecutándose en background como aquellos que fuerzan una espera bloqueante. Funcionamiento correcto de los comandos internos del msh. Procesos hijos deben terminar correctamente y no generar procesos zombie. Detectar posibles fallos en las funciones. La memoria (hasta 4 puntos a sumar a la nota del código): Análisis de decisiones: estrategia seguida en el diseño, decisiones tomadas hasta llegar a la solución tomada. Análisis funcional: Descripción de cada una de las funciones y las estructuras de datos utilizadas. Control de errores: Qué errores y cómo se han controlado. Pruebas: Las pruebas tanto de casos correctos como incorrectos
16 Mejoras Actualizar la información sobre las variables al fichero.msprofile Implementar la sintaxis alternativa de la $ en la evaluación de variables. Esto es, sustituir $Nombre_variable por su valor y ejecutar el resultado. Así, por ejemplo si la variable var vale hola el comando ls $var se transformará en ls hola y entonces se ejecutará. Si la variable indicada no hubiera sido definida, entonces se transformará por la cadena vacía. Interpretación en la línea de comando de <, > y. Implementar el comando export para notificar a otros msh la modificación de las variables de entornos mediante pipes. Cada vez que se lance un msh se debe abrir un pipe entre él y su padre para comunicarse por ese canal los cambios en las variables de entorno. Implementar bucles for con la sintaxis de la familia sh: for variable in [lista] do comandos done Colocar realmente en el entorno las variables definidas en msh para poder ser usadas por comandos no internos de la shell. 31 Fechas Por último, comentaros que esta práctica hay que entregarla en tres semanas. Para la semana que viene ya se os pide: Un programa ejemplo de fork wait que simplemente cree un proceso hijo que lanze un proceso. Luego el padre lo tiene que esperar y terminar. Un esquema de pseudocódigo de cómo tenéis pensado solucionar la práctica antes de ponernos a escribir el código de la misma. Esta documentación no hay que entregarla por entrega de prácticas, sino simplemente mostrarla al profesor el próximo día de clase. En las próximas semanas estar atentos a la web, dónde aparecerá la herramienta para que podáis probar vuestro msh
Práctica 1. Presentación de la práctica continua: Implementación de un intérprete de comandos.
Práctica 1. Presentación de la práctica continua: Implementación de un intérprete de comandos. Grupos Fecha de Realización Fecha de Entrega/Evaluación Lunes 19 y 26 de Febrero y 5 de Marzo 12 de Marzo
Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores
Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución
Funciones POSIX (I): Introducción
Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria
Sistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
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
Llamadas al Sistema para la Creación de Procesos
Llamadas al Sistema para la Creación de Procesos Transparencias realizadas por M. Curiel. Se utiliza material ya publicado en la WEB y elaborado por todos los prof. que hemos dado el curso. Llamada al
Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos
Boletín 4- Procesos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5.
Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos
Boletín 4- Procesos Departamento de Lenguajes y Sistemas Indice 1. Introducción n (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5. La llamada
Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX
Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había
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
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
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
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
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.
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.
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,
Prácticas de Sistemas Operativos
Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso
Ejercicios sobre tuberías
Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son
Formatos para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5314 Sistemas Operativos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Comunicación entre procesos Tuberías DURACIÓN (HORA)
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
Sistemas Operativos sesión 12: tuberías
Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios
Biblioteca de sistema
* Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder
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
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 Tercera Semana: Comunicación entre procesos con Tuberías 1 Entregas 2 Introducción
LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F)
APRENDERAPROGRAMAR.COM LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C
Procesos e hilos: el downloader
Departamento de Automática 1 / 8 Descarga de archivos con procesos en paralelo Objetivo principal: descarga de un archivo de gran tamaño de forma eficiente desde Internet Otros objetivos: Utilizar la biblioteca
Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink
Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)
Redirecciones y Tuberías
Redirecciones y Tuberías Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Redirecciones Redirección de la entrada y la salida estándar Unix/Linux definen
ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware
ENTRADA/SALIDA UPCO ICAI Departamento de Electrónica y Automática 1 Relación Programa - Sistema Operativo - Hardware Mi programa no maneja directamente el hardware El sistema operativo es el que maneja
Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen
Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,
Llamadas al sistema básicas de control de procesos
Actividad 7 (v. 16046) Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos lsi.vc.ehu.es/pablogn Llamadas al sistema básicas de control de procesos Observa, analiza y prueba los programas:
PRÁCTICA 1: PROCESOS Y COMUNICACIÓN ENTRE PROCESOS
PRÁCTICA 1: PROCESOS Y COMUNICACIÓN ENTRE PROCESOS v1.3.0 Rodrigo García Carmona Antes de empezar la práctica, copia los ficheros que se encuentran en la carpeta SOS-Practica_1-Materiales al directorio
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
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
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...
Tema 3. Estructuras de control
Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)
2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos)
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:
APELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA
Hoja 1/10 Duración: una hora y media Resultados de aprendizaje que se evalúan en este examen: R2: Saber emplear las estructuras de control de flujo de programación para implementar algoritmos sencillos.
Sistemas Operativos. Procesos
Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso
Creación De Scripts Ejecutables
Creación De Scripts Ejecutables Este manual se hace con la finalidad de dar una explicación paso a paso de cómo crear scripts que pueden ejecutar diversas tareas de acuerdo al contenido del texto del guión.
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
PROCESOS. Sistemas Operativos
PROCESOS Un proceso es un programa que se encuentra en ejecución. Un proceso no sólo es una copia del programa, sino que el núcleo le añade: un segmento de texto, un segmento de datos y un segmento de
Examen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Introducción a la Programación
Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación
Introducción a Sistemas Operativos: Comunicación entre Procesos
Introducción a Sistemas Operativos: Comunicación entre Procesos Clips xxx Fr ancisco J Ballesteros 1. Pipefroms Otra función de utilidad realiza el trabajo inverso, permite leer la salida de un comando
Dobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Sintaxis de los aspectos generales de un lenguaje de programación
Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para
Tema 4: Padre e hijo
Tema 4: Padre e hijo Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 11 de marzo de 2010 (cc) 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este
Tema 2: Programas y procesos
Tema 2: Programas y procesos Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 15 de febrero de 2012 (cc) 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados.
ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015
2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 20 minutos) Para el código de test adjunto, se pide. 1. Diagrama de clases de diseño (2.5 puntos). 2. Implementación en C++ de la solución
roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación
There are no translations available. Introducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C.
Procesos Definición y Estados
Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).
Sistemas Operativos 1
Ejercicio 1. Se desea implementar una aplicación de n procesos concurrentes, donde cada proceso ejecuta una determinada tarea en forma de pipeline. Un ejemplo de esta aplicación con n=4 sería la siguiente:
Práctica 2. Teoría. Memoria Compartida y Semáforos
Práctica 2 Grupos Realización Entrega/Evaluación Lunes 22 de Marzo, 12 y 19 de Abril 26 de Abril Martes 23 de Marzo, 13 y 20 de Abril 27 de Abril Miércoles 24 de Marzo, 14 y 21 de Abril 28 de Abril Viernes
Laboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática (2009)
Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad Politécnica de Madrid
Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE
Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE 1. Qué es un bucle? 2. A que se denomina cuerpo de un bucle? 3. Define iteración de un bucle. 4. Cuál es el cuerpo de un bucle? 5. Qué es
Programación I Teoría : Entrada/Salida - Archivos.
Programación I Teoría : Entrada/Salida - Archivos http://proguno.unsl.edu.ar proguno@unsl.edu.ar Entrada/Salida Interacción del programa con su ambiente para leer (entrada) y escribir (salida) datos. 2
Algoritmo, Estructuras y Programación I Ing. Marglorie Colina
Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona
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,
Ficheros. Archivo, o fichero: Características:
Ficheros Archivo, o fichero: Es una estructura de datos en memoria externa, cuyo tiempo de vida no está ligado a la ejecución del programa que lo crea o lo maneja. Un fichero existe desde que un programa
Redes de Computadores Nivel de Aplicación: Programación con sockets 3
Redes de Computadores Nivel de Aplicación: Programación con sockets 3 Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ En clases anteriores... Clientes y servidores
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
Nombre alumno: Ventajas: Inconvenientes:
Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo 2. Explica qué ventajas e inconvenientes tendría
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
Para C un chero no es más que una porción de almacenamiento
Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese
$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Programación 1 Grado de Ingeniería Robótica
Programación 1 Grado de Ingeniería Robótica Tema 6: Datos estructurados Índice (sesión 11/11/2015): Arrays estáticos Cadenas de caracteres Funciones de la librería string.h Punteros Declaración de punteros
Escuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs JUNIO 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, cuando se destruye un objeto de una
Shell Script Sistemas Operativos III - ITS EMT - CETP
Shell Script SHELL tiene dos formas distintas de ejecutar comandos : Archivos binarios Programas compilados y de los cuales existe un ejecutable archivos.exe ó.com en MS-DOS Archivos de texto Contienen
05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales
05 Funciones en lenguaje C Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 1 Temario Programación funcional Declaración (prototipos) y definición de funciones
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Introducción a Sistemas Operativos: Concurrencia
Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso
Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc().
Notas auxiliares sobre manejo de archivos Las funciones de entrada salida (E/S) de las librerías estandar de C, permiten leer y escribir datos a, y desde, archivos y dispositivos. La caracteristica fundamental
Examen Final de Teoría. Grupo de teoría:
Preguntas Cortas (2 puntos) 1. Respecto a la optimización de gestión de memoria CoW, explica brevemente: a. Qué soporte hardware utiliza el sistema para poder implementarla? b. Qué permisos aplica el sistema
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
LENGUAJE. Tema 8 Ficheros
LENGUAJE Tema 8 Ficheros FICHEROS EN C Los ficheros, en contraposición con las estructuras de datos vistas hasta ahora (variables simples, vectores, registros, etc.), son estructuras de datos almacenadas
Tema 2. Administración de procesos
Sistemas Operativos Tema 2. Administración de procesos Objetivo: El alumno identificará los tipos de procesos y sus estados. Describirá las diferentes técnicas de comunicación y sincronización de procesos
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)
Bucles en lenguaje C Bucle while y forzar detención con break APRENDERAPROGRAMARCOM WHILE Y DO WHILE BREAK EN LENGUAJE C BUCLES MIENTRAS FORZAR SALIDA O TERMINACIÓN EJEMPLO (CU00534F) Sección: Cursos Categoría:
EJERCICIOS MANEJO DE ESTRUCTURAS BÁSICAS SCRIPTS
EJERCICIOS MANEJO DE ESTRUCTURAS BÁSICAS SCRIPTS Ejercicio 1: Hacer un script que muestre por pantalla el mensaje Hola mundo. Ejecútalo de las dos formas vistas Ejercicio 2: Realizar otro script que cree
Arquitectura de Computadores. Práctica 3: Mecanismos de comunicación entre procesos
- 1 - Arquitectura de Computadores Práctica 3: Mecanismos de comunicación entre procesos Miguel Martínez de Falcón Pérez Mikel Anthony Rodríguez Manderson - 2-1) TUBERÍAS SIN NOMBRE a) Para comprobar su
Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior STRINGS
STRINGS 1 Strings (Cadena de caracteres) En C no existe un tipo de dato y operadores para el tratamiento de cadenas de caracteres de manera atómica Un string es una cadena de cero o más caracteres finalizados
TP II Procesos Pesados
TP II Procesos Pesados Objetivo: Desarrollar una serie de funciones que encapsulen cierta funcionalidad vinculada con la gestión de procesos y consola para luego reutilizarlas en la construcción de un
Llamadas a Sistema para procesos
Llamadas a Sistema para procesos SistOp 2012 Nicolás Wolovick FaMAF, Universidad Nacional de Córdoba, Argentina 5 de Septiembre de 2012 El Cajón de Arena: los procesos Comandos simples con y sin background
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia Calendario Comienzo: Lunes 2 de noviembre y miércoles 4 de noviembre. Entrega: 16 de noviembre y 18 de noviembre. 1. Requisitos
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
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
INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C
INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C Programación en Entornos Multitarea Curso 2006/2007 Introducción C: lenguaje de medio nivel 32 palabras clave Eficiencia de ejecución del código generado Portabilidad
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
Sistemas Operativos Primer Parcial Tema2
Dpto. 1: Realice la gráfica de la estructura de procesos generada por el siguiente código, en la gráfica asigne PID a cada proceso. (2) int n = 4;pid_t pid; while( n!= 0){ if ( pid == 0 ) break; n--; return
Contenido. Principales requisitos de los sistemas operativos. Proceso. Tema 3
Tema 3 Descripción y Control de Procesos Stallings: 3.1 3.4 Contenido Introducción: qué es un proceso. Estados de un proceso: modelos de colas. Creación y terminación de procesos. Descripción de procesos:
Primer control de teoría
rimer control de teoría Ejercicio : reguntas cortas ( puntos) Tiempo estimado 5 min.. En un sistema actual de propósito general, las direcciones (funciones, referencias a datos, etc) que encontramos en