Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Funciones Útiles fork() Sistemas Operativos.

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

Introducción a C++ Sistemas Operativos
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a C Sistemas Operativos.
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a C Sistemas Operativos.
ESTRUCTURAS DE CONTROL
El lenguaje de programación C - El primer programa -
ING SEC 3 - UCSC Agosto 2009 Laboratorio Lenguaje de Programación ING – Universidad Católica SSMA Concepción Semestre II Tema:
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Funciones Útiles Señales Sistemas Operativos.
Tema 5 Sentencias básicas. Sentencia –Línea de código en C Básicas –Entrada de datos desde el teclado –Salida de datos por la pantalla –Asignación de.
FICHEROS.
Estructuras de decisión en C
ARISO 2 Escola Tècnica Superior dEnginyeria de Telecomunicació de Barcelona (Universitat Politècnica de Catalunya)
MANUAL EXPRESS DE C J.M.sevilla.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Fundamentos de la Programación Estructurada
Programación, Algoritmos y Estructuras de Datos
Funciones. Programación, Algoritmos y Estructuras de Datos.
INFORMATICA I Funciones CLASE 13.
Comunicación entre procesos en Linux
Tareas en Linux · TASK_RUNNING (0): Indica que el proceso en cuestión se está ejecutando o listo para ejecutarse. En este segundo caso, el proceso dispone.
ESTRUCTURA DEL LENGUAJE C
Aplicaciones Multihilo
Una breve introducción
Llamadas al Sistema EXIT y WAIT
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Funciones y procedimientos
El lenguaje de programación C - Funciones -
Multiprogramación Procesos Cecilia Hernández
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Tema 3 Entrada y Salida.
Archivos Programación.
Asignatura: Lenguaje de Programación de Sistemas PPT No.05 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya.
Signal, kill, sigaction y máscara de señales
Semana 5 Subprogramas..
PROBLEMA PROPUESTO NUMERO 3 PROBLEMA: SE DESEA UN ALGORITMO QUE REALIZA LA OPERACION DE SUMA O RESTA DE LOS NUMEROS LEIDOS DEL TECLADOEN FUNCION ALA RESPUESTA.
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Cadenas y apuntadores Programación.
Ing Florencia Ferrigno Tecnicas Digitales 3
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Unidad III Administración de procesos
Archivos.
1 UNIVERSIDAD TECNOLOGICA DE PEREIRA PROGRAMA DE TECNOLOGIA ELÉCTRICA 2014 NOTA: Este taller hace parte de la nota del 15% de la materia. Taller 1) Consultar.
Lenguaje C Ing. Sonia Alexandra Pinzón Nuñez
Introducción al Minikernel
Informática Ingeniería en Electrónica y Automática Industrial
Programación de Memoria Compartida
Manejo de archivos de datos en C
Pablo Abrile1 Threads Lenguajes de Programación I.
Archivos Programación I MC Beatriz Beltrán Martínez.
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.
Taller de Linux Practica 7 Mandos para el manejo de procesos LSC Veronica Quizan Garcia.
Bibliotecas Nacen a partir de la necesidad de la compilación por módulos. Lo cual consiste en separar el programa principal de aquellas funciones que se.
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
PARCIAL DE JUNIO DEL 2014 LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE.
LENGUAJE “C” Programación. Condicionales Los condicionales permiten al programa escoger entre varios posibles resultados dependiendo de la evaluación.
Estructuras de Repetición (Hacer-Mientras)
INTRODUCCION A LA PROGRAMACION
LENGUAJE “C” Programación.
Fundamentos de Programación
LENGUAJE “C” Programación.
Programación de Clientes Especialidad en Base de Datos.
Repaso de archivos #include int main(void) { FILE *fp; fp=fopen(“prueba.txt”, “w”); if (fp==NULL) { printf(“Error al abrir el archivo\n”); printf(“No lo.
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Clase 1 Gabriela Araya Baez.. Char: Variable que almacena caracteres. Int: Variable que almacena enteros. Float: Variable que almacena decimales. Doble:
Desarrollador Profesional de Juegos Programación III Unidad II Introdución a threading en windows.
Interfaz de programación de aplicación 5R1221. Las API’s API es la abreviatura de Aplication Programming Interface. Un API no es más que una serie de.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Funciones Útiles fork() Sistemas Operativos

Fork() – Caso base #include int main (void) { char c; printf("Ingrese un caracter\n"); c = getchar(); printf(Se ingresó: %c\n", c); } ¿Cómo puedo hacer si quiero que si el usuario no presiona ninguna tecla imprima en pantalla el mensaje nuevamente cada un segundo?

Fork() – Introducción Proceso ejecutando - Código (solo lectura) - Datos (memoria dinámica) - Stack (asignaciones estáticas) Identificador único (PID) Padre único Tres estructuras de memoria

Fork() – Introducción UID PID PPID C STIME TTY TIME CMD root :41 ? 00:00:00 init [2] :41 ? 00:00:00 /usr/sbin/exim4 -bd -q30m root :41 ? 00:00:00 /usr/sbin/inetd root :41 ? 00:00:00 /usr/sbin/sshd statd :41 ? 00:00:00 /sbin/rpc.statd daemon :41 ? 00:00:00 /usr/sbin/atd root :41 ? 00:00:00 /usr/sbin/cron root :41 tty1 00:00:00 /bin/login -- root :41 tty2 00:00:00 /sbin/getty tty2 root :41 tty3 00:00:00 /sbin/getty tty3 root :41 tty4 00:00:00 /sbin/getty tty4 root :41 tty5 00:00:00 /sbin/getty tty5 root :41 tty6 00:00:00 /sbin/getty tty6 root :42 tty1 00:00:00 -bash

Fork() – Introducción fork() Proceso en ejecución (PID x) Proceso Padre (PID x)Proceso Hijo (PID Y / PPID X)

Fork() – ¿Para Qué? Respuesta 1: Que los dos procesos sean iguales no quiere decir que tengan que seguir haciendo lo mismo. fork() Proceso en ejecución (PID x) Proceso en ejecución (PID x). ahora padre de Y Proceso en ejecución (PID Y). Hijo de X Leer_de_teclado() Escribir_en_archivo()

Fork() – ¿Para Qué? Respuesta 1: Que los dos procesos sean iguales no quiere decir que tengan que seguir haciendo lo mismo. int main() { int pid = 0, status = 0; pid = fork() if (pid == 0) { /* SOLO Proceso Hijo */ printf(``El PID de mi proceso padre es %d\n'', getppid()); exit(1); } else { /* SOLO Proceso Padre */ printf(``Mi PID es el %d y el de mi hijo es %d\n'', getpid(), pid); exit(0); }

Fork() – Notas - El proceso hijo comparte el entorno con el proceso padre. (Descriptores abiertos) -El proceso padre debe esperar la muerte del proceso hijo para que este no sea un zombie. funcion wait() - Todo proceso puede a su vez ser padre - Al morir un hijo se recibe la señal SIGCHLD - Al morir un padre deben morir sus hijos

Fork() – Exec*() La familia de funciones exec() reemplaza la imagen de proceso actual con la imagen de un proceso nuevo. fork() Proceso en ejecución (PID x) if (pid == 0) { // hijo execv(/bin/ls, NULL); // nunca se ejecuta exit(0); } else { // padre wait (pid); exit(0); }