Procesos. Fernando R. Rannou Departamento de Ingenieria Informatica Universidad de Santiago de Chile. October 10, 2013

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

Download "Procesos. Fernando R. Rannou Departamento de Ingenieria Informatica Universidad de Santiago de Chile. October 10, 2013"

Transcripción

1 Procesos Fernando R. Rannou Departamento de Ingenieria Informatica Universidad de Santiago de Chile October 10, 2013

2 Concepto de proceso Un programa es un conjunto de instrucciones en un lenguaje en particular. Cuando un programa es compilado, linkeado y cargado en memoria se transforma en un proceso En términos simples, un proceso es un programa en ejecución una instancia de un programa corriendo en un computador unidad de actividad caracterizada por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto asociado de recursos del sistema La labor principal del SO está basada en el control de los procesos

3 De programa a proceso Considere el siguiente programa en C, hello.c: #include <stdio.h> #define N 10 main() { int i; for (i=0; i < N; i++) printf("hola %d\n", i); } Las etapas que transforman este código en un programa ejecutable son: Usando gcc podemos obtener los resultados de algunas de estas etapas: $ gcc -o hello -save-temps hello.c $ ls hello* hello hello.c hello.i hello.o hello.s

4 El preprocesador El preprocesador de gcc, llamado cpp se encarga de expandir los #include<> y reemplazar la macros y #define<>, entre otras cosas. El archivo transformado tiene extension.i $ cat hello.i... typedef long unsigned int size_t;... extern int printf ( const char * restrict format,...); main() { int i; for (i=0; i < 10; i++) printf("hola %d\n", i); }

5 El compilador EL compilador trasforma el código a lenguaje assembler $ cat hello.s.file "main.c".section.rodata.lc0:.string "Hola %d\n".text.globl main.type main:.lfb0:.cfi_startproc pushq %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16 movq %rsp, %rbp.cfi_def_cfa_register 6 subq $16, %rsp movl $0, -4(%rbp) jmp.l2.l3: movl $.LC0, %eax movl -4(%rbp), %edx movl %edx, %esi movq %rax, %rdi movl $0, %eax call printf addl $1, -4(%rbp).L2: cmpl $9, -4(%rbp) jle.l3 leave.cfi_def_cfa 7, 8 ret.cfi_endproc.lfe0:.size main,.-main.ident "GCC: (Ubuntu/Linaro ub.section.note.GNU-stack,"",@progbits

6 El ensamblador El ensamblador traduce el programa assembler a lenguaje de máquina El producto resultante es llamado objeto reubicable, o simplemente objeto. El módulo aún no contiene el código de printf

7 El linkeador Finalmente, el linker ld se encarga se resolver todas las referencias pendientes En este ejemplo, el linker mezcla los módulos hello.o con el módulo de printf.o El resultado es un código ejecutable Este objeto está listo para ser cargado en memoria y transformarse en un proceso Un programa ejecutable NO es un proceso

8 Creación de procesos Situaciones típicas que crean nuevos procesos: 1 Solicitud de un usuario mediante la ejecución de un comando: $./hello 2 Solicitud de un proceso ya existente, mediante la invocación de un llamado al sistema main() {... pid = fork();... } 3 Cuando se abre un aplicación mediante la interacción en una GUI 4 El SO puede crear varios procesos al momento de bootear El SO se encarga de crear a los procesos y administralos. Debe: 1 Procurar memoria principal para alojar al proceso, y 2 Crear una estructura o registro que contenga información acerca del proceso

9 Bloque de control de proceso (PCB) El PCB es el nombre genérico dado a la estructura de datos que el Kernel maneja acerca del proceso. Contiene toda la información que describe al proceso en el sistema. PID: Identificador del proceso Otros identificadores (padre, grupo, etc) Estado: qué está haciendo el proceso Prioridad Tiempos de procesador Información de I/O Información de memoria Contexto

10 El PCB de Linux El descriptor de procesos en Linux es task struct (include/linux/sched.h). Algunos de los elementos más importantes son: struct task_struct { volatile long state; // estado del proceso long counter; // Usada junto con prioridad long priority; // prioridad unsigned long blocked; // señales mascaradas struct task_struct *next_task, *prev_task; // punteros, anterior y p int pid; // Process ID struct task_struct *p_opptr, *p_pptr, *p_cptr; // punteros al padre original, actual // hijo más joven, etc unsigned short uid,euid,suid,fsuid; // ID usuarios long utime, stime, cutime, cstime, start_time; // usos de procesador struct thread_struct tss; // Thread state stack struct fs_struct *fs; // info de sistema de archivos struct files_struct *files; // info sobre archivos abiertos struct mm_struct *mm; // punero a estructura de admin memoria struct signal_struct *sig; // manejadores de señales };

11 La lista de descriptores Linux mantiene una lista dóblemente enlazada de task struct

12 Componentes de un proceso en memoria En memoria, un proceso se organiza en segmentos. Los principales son: Memoria Texto Texto: código ejecutable Datos globales: inicializados y no inicializados Heap: memoria dinámica Stack de usuario: usado para paso de parámetros en llamados a funciones y variables locales Datos globales Heap Stack usuario

13 Intel Task State Segment (TSS) Independientemente del PCB definido por un SO, éste debe finalmente ajustarse al descriptor de tareas del procesador estructura. struct tss_struct { unsigned short back_link, blh; unsigned long esp0; unsigned short ss0, ss0h; unsigned long esp1; unsigned short ss1, ss1h; unsigned long esp2; unsigned short ss2, ss2h; unsigned long cr3; unsigned long eip; unsigned long eflags; unsigned long eax,ecx,edx,ebx; unsigned long esp; unsigned long ebp; unsigned long esi; unsigned long edi; unsigned short es, esh; unsigned short cs, csh; unsigned short ss, ssh; unsigned short ds, dsh; unsigned short fs, fsh; unsigned short gs, gsh; unsigned short ldt, ldth; unsigned short trace, bitmap; unsigned long io_bitmap[io_bitmap_size+1]; }; EAX, ECX, EDX, EBX: registros propósito general EFLAS: registros de status CS: Code segment DS: Data segment SS: Stack segment ES, FS, FS: otros Data segment

14 Proceso Luego, el proceso se realiza con tres componentes principales: 1 Su descriptor 2 Su espacio de direcciones 3 Su contexto, que generalmente es parte del descriptor

15 Primer modelo de estados de un proceso En términos simples, un proceso puede estar en uno de dos estados: 1 Corriendo, es decir ejecutándose en el procesador 2 No corriendo; en el sistema, pero fuera del procesador

16 Modelo de proceso de 5 estados El estado no-corriendo se divide en dos: listo y bloqueado Por conveniencia, se agregan dos estados más: Nuevo y Salir. Entrar Despachar Termino Nuevo No corriendo Corriendo Salir Time-out Evento ocurre Esperar evento Bloqueado

17 Modelo de 5 estados Corriendo (running): el proceso está corriendo, es decir está en el procesador Listo (ready): el proceso está listo para ejecutarse Bloqueado (blocked): no puede ejecutarse hasta que un evento dado ocurra. Ej: operación de I/O termine Nuevo (new): está recién creado, pero aún no ha sido admitido en la cola de listos. Ej. Aún no ha sido cargado en memoria Fin (exit): un proceso que, por algún motivo, ya no sigue ejecutándose en el sistema

18 Ejemplo transición entre estados Proceso A Proceso B Proceso C Dispatcher

19 Uso de múltiples colas de espera El SO puede organizar los procesos en colas de espera, según sus estados Por ejemplo una cola de listos, otra de espera por I/O de disco, otra para I/O de interface de red, etc.

20 Procesos suspendidos El procesador es mucho más veloz que los dispositivos de I/O, y sería posible que todos los procesos en memoria estuvieran esperando por I/O Swapear temporalmente algunos de estos procesos a disco y así liberar memoria. Procesos que han sido swapeados a disco desde el estado de bloqueados, pasan al estado Suspendido (suspended) Note que swapping es una operación de I/O

21 Modelo de estados con un estado suspendido Entrar Despachar Termino Nuevo No corriendo Corriendo Salir Time-out Activar Evento ocurre Esperar evento Suspendido Suspender Bloqueado

22 Modelo de estados con dos estados suspendidos Bloqueado: proceso en memoria principal y esperando por un evento Bloqueado/Suspendido: proceso en memoria secundaria y esperando por un evento Admitir Listo/ Suspendido Nuevo Activar Suspender Suspender Admitir Despachar No corriendo Time-out Corriendo Termino Salir Listo/Suspendido: proceso en memoria secundaria, pero listo para ejecución en cuanto se cargue en memoria principal Evento ocurre Suspender Bloqueado/ Suspendido Activar Evento ocurre Bloqueado Esperar evento

23 Cambio de contexto (process switch) Un cambio de contexto ocurre cada vez que el procesador comienza o reanuda la ejecución de un proceso distinto (al actual). Cuándo hacer un cambio de contexto? 1 Trap: interrupción asociada a un error de la ejecución de la instrucción actual 2 Interrupción: evento externo a la ejecución del proceso 3 Interrupción del reloj por término de tiempo 4 Fallo de memoria. La dirección de memoria no se encuentra actualmente en memoria principal. 5 Llamado al sistema (system call): por ejemplo instrucción de I/O Un cambio de contexto o cambio de proceso no es lo mismo que un cambio del modo de ejecución del procesador

24 Labores en un cambio de contexto Guardar el contexo del proceso incluyendo el PC y otros registros Actualizar el PCB del proceso que actualmente está en ejecución Mover el PCB de la cola de listo a la cola apropiada. Seleccionar otro proceso para ejecución Actualizar el PCB del proceso seleccionado Actualizar las estructuras de administración de memoria Restaurar el estado del procesador con el contexto del proceso elegido

25 Ejecución del sistema operativo 1 Ejecución en el contexto de un proceso usuario Cada vez que se solicita un servivio al SO, simplemente se realiza un llamado a una rutina del SO, pero no hay cambio de contexto. Hay cambio de modo usuario a modo kernel Un número pequeño de tareas, como por ejemplo cambio de contexto, pueden ejecutarse fuera del contexto usuario 2 Basado en procesos Implementa las tareas del SO como una colección de procesos del sistema Útil en sistemas multiprocesadores y multicomputadores, pues permiten que los servicios prestados por los procesos puedan ser ejecutados exclusivamante en algunos procesadores y así mejorar rendimiento.

26 Cambio del modo de ejecución Existen dos modos principales para la ejecución de procesos: 1 Modo usuario : Es un modo no privilegiado, en el cual el proceso no puede ejecutar instrucciones reservadas al kernel 2 Modo kernel : En este modo, el proceso puede ejecutar cualquier tipo de instrucciones y tiene el control absoluto del sistema En SO donde el kernel se ejecuta en el contexto de procesos usuarios (Unix, por ejemplo) es necesario realizar cambio en el modo de ejecución cada vez que un proceso invoca algún llamado al sistema Recordar que el procesador chequea por interrupciones durante el ciclo fetch. Si hay alguna interrupción pendiente, el procesador realiza lo siguiente: 1 Setea el PC con la dirección inicial del manejador de interrupciones 2 Cambia el modo del procesador de modo usuario a modo kernel, de manera que el manejador de interrupciones pueda ejecutar instrucciones privilegiadas.

27 Modelo de estados en Unix

28 Modelo de estados en Linux start TASK RUNNING (ready) TASK ZOMBIE TASK STOPPED TASK RUNNING (in processor) TASK INTERRUPTIBLE TASK UNINTERRUPTIBLE TASK RUNNING: en la cola de listos o en el procesador TASK INTERRUPTABLE: proceso bloqueado esperando un evento: fin de I/O, o alguna señal de otro procesos TASK UNINTERRUPTABLE: proceso bloqueado esperando alguna condición de hardware. No recibe señales de otros procesos TASK ZOMBIE: proceso finalizado TASK STOPPED: proceso detenido y sólo puede reanudarse mediante una señal de otro proceso (ejemplo debugger)

29 Comando ps Código Estado R Runnable (TASK RUNNING) S Sleeping (TAKS INTERRUPTABLE) D Sleeping (TASK UNINTERRUPTABLE) T Stopped (TASK STOPPED). Z Zombie (TASK ZOMBIE). l Multi-thread s Session leader < Alta prioridad N Baja prioridad

30 Creación de procesos en Unix fork() es el llamado al sistema para crear un nuevo proceso #include <sys/types.h> #include <unistd.h> pid_t fork(void); fork() crea un proceso hijo, copia exacta del proceso padre. Lo único diferente es el identificador de proceso o pid fork() retorna: 1 el pid del hijo, en el proceso padre 2 0, en el proceso hijo 3-1 si hubo algún error (sólo en el padre) fork() es llamado una vez, pero retorna dos veces

31 Ejemplo 1 de fork() #include <sys/types.h> #include <unistd.h> main() { int pid; if ( (pid = fork()) == -1) { printf("no se pudo crear hijo\n"); exit(-1); } if (pid == 0) { // soy el hijo printf("soy el hijo y mi pid = %d\n", getpid()); printf("hijo: el pid de mi padre es = %d\n", getppid()); exit(0); } else { // soy el padre printf("soy el padre y mi pid = %d\n", getpid()); printf("padre: el pid de mi hijo es %d\n", pid); printf("padre: el pid de mi padre es %d\n", getppid()); exit(0); } }

32 Ejemplo 2 de fork()

33 Identificadores En sistemas Unix-like cada proceso tiene al menos seis identificadores asociados con el. pid t getpid(void): ID del proceso (el que invoca) pid t getppid(void): ID del padre del proceso uid t getuid(void): ID del usuario real del proceso uid t geteuid(void): ID del usuario efectivo del proceso gid t getgid(void): ID del grupo real del proceso gid t getegid(void): ID del grupo efectivo del proceso El usuario y grupo real identifican quién realmente somos y son seteados al momento de hacer login al sistema (archivo password /etc/passwd) El usuario y grupo efectivo definen los permisos de acceso del proceso a los archivos.

34 El 1/2 ambiente de un proceso El medio ambiente de un proceso se refiere a todos aquellos elementos que permite que un proceso se ejecute; incluye Cómo comienza la ejecución de un proceso; Los recursos asociados y sus ĺımites; El layout en memoria principal; Los argumentos de linea de comando; Las variables de medio ambiente.

35 La función main() Un programa en C comienza su ejecución cuando la funcíıon main() es invocada. int main(int argc, char *argv[]); argc es el número de argumentos en ĺınea de comandos *argv[] es el vector de punteros los argumentos de ĺınea de comandos Ejemplo: $ sort -n 100 -o file.txt argc es 5 argv[] = { sort, -n, 100, -o, file.txt En realidad, el kernel llama a una rutina start-up la cual finalmente invoca a main

36 Inicio, ejecución y término de un proceso Cuando el proceso invoca exit(), el proceso realiza operaciones de limpieza antes de retornar al kernel. Cuando el proceso invoca exit(), el proceso retorna inmediatamente al kernel.

37 La función atexit() Esta función le permite al proceso registrar manejadores de salida, es decir funciones que se ejecutan cuando el proceso termina. #include <stdlib.h> int atexit(void (*func)(void)); Cuando el proceso termina, se invocan las funciones registradas con atexit() en el orden inverso al que fueron registradas static void limpieza(void); int main(int argc, char *argv[]) { if (atexit(limpieza)!= 0) err_sys("error registrar limpieza()"); } printf("eso es todo, amigos\n"); return(0); static void limpieza(void) { printf("limpiando...\n"); }

38 Variables de 1/2 ambiente Un proceso puede acceder a sus variables de 1/2 ambiente mediante el puntero environ extern char **environ; Cada variable consiste de un par nombre=valor y pueden ser leídas por el proceso usando la función char *getenv(const char *name); Estas variables no tiene valor para el kernel; el significado es dado por las aplicaciones environ "HOME=/home/batman" "PATH=/bin:/usr/bin" "SHELL=/bin/bash" "USER=batman" "PWD=/home/batman/lab1" NULL

39 Layout de un proceso Linux en memoria $ cat /proc/self/maps 001c c3000 r-xp 001c :00 0 [vdso] 002b d1000 r-xp : /lib/ld-2.5.so 002d d2000 r-xp : /lib/ld-2.5.so 002d d3000 rwxp 0001a000 08: /lib/ld-2.5.so 00c dc4000 r-xp : /lib/i686/nosegneg/libc-2.5.so 00dc dc6000 r-xp 0013d000 08: /lib/i686/nosegneg/libc-2.5.so 00dc dc7000 rwxp 0013f000 08: /lib/i686/nosegneg/libc-2.5.so 00dc dca000 rwxp 00dc : d000 r-xp : /bin/cat 0804d e000 rw-p : /bin/cat 0987f a0000 rw-p 0987f000 00:00 0 b7db6000-b7fb6000 r--p : /usr/lib/locale/locale-archive b7fb6000-b7fb7000 rw-p b7fb :00 0 b7fcf000-b7fd0000 rw-p b7fcf000 00:00 0 bfaf8000-bfb0d000 rw-p bfaf :00 0 [stack] $ size /bin/cat text data bss dec hex filename c0b /bin/cat

40 Familia exec() Si fork() crea un clon de un proceso, cómo sería posible crear procesos hijos totalmente distintos a un padre? execve() ejecuta un nuevo programa en el proceso que realiza la invocación execve() no crea un nuevo proceso, sino que sobre-escribe el programa actual con uno nuevo #include <unistd.h> int execve(const char *filename, char *const argv [], char *const filename es el camino absoluto del programa ejecutable argv[] es un arreglo con los argumentos de ĺınea de comandos envp[] es el medio ambiente de ejecución del proceso execve() no retorna si hubo éxito

41 Familia exec() Las siguientes funciones son front-ends de execve(): #include <unistd.h> int execl(const char *path, const char *arg,...); int execlp(const char *file, const char *arg,...); int execle(const char *path, const char *arg,..., char * const envp[ int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); Para recordar: l : lista uno a uno los argumentos v : entrega un vector con los argumentos p : usa el PATH definido en el medio ambiente del proceso para encontrar el ejecutable e : asigna un environment, es decir medio ambiente

42 Ejemplo de execve() #include <sys/types.h> #include <unistd.h> main() { int pid; if ( (pid = fork()) == -1) { printf("no se pudo crear hijo\n"); exit(-1); } if (pid == 0) { // soy el hijo if (execlp("ls", "ls", "/home/rannou", 0) == -1) { printf("no se pudo hacer exec\n"); exit(-1); } printf("bye"); } // soy el padre wait(pid); printf("mi hijo finalizo\n"); exit(0); }

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

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

Más detalles

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

Sistemas Operativos Práctica 3

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

Más detalles

Sistemas Operativos Practica 1: procesos y concurrencia.

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

Más detalles

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

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

Más detalles

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

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

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño? Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene

Más detalles

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

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

Más detalles

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, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso

Más detalles

Manipulación de procesos

Manipulación de procesos Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama

Más detalles

Sistemas Operativos I Manual de prácticas

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

Más detalles

Gestión de procesos en UNIX

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

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

TEMA 2. GESTIÓN DE PROCESOS

TEMA 2. GESTIÓN DE PROCESOS TEMA 2. GESTIÓN DE PROCESOS 2.1. Estados y transiciones de un proceso. 2.1.1. Ciclo de vida de un proceso en UNIX. Conjunto de estados. 2.1.2. Control sobre algunas transiciones a nivel de usuario. 2.1.3.

Más detalles

mov_and_reg =========== En este reto se nos pedía que calculásemos el valor del registro eax al final de la ejecución del siguiente código:

mov_and_reg =========== En este reto se nos pedía que calculásemos el valor del registro eax al final de la ejecución del siguiente código: mov_and_reg =========== En este reto se nos pedía que calculásemos el valor del registro eax al final de la ejecución del siguiente código: inicio: mov $1337, %eax mov $31337, %ebx mov $3371, %ecx xor

Más detalles

Usando el Sistema Operativo

Usando el Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software

Más detalles

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 5. Procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Concepto de proceso Estructuras de datos: BCP y colas de procesos Niveles de planificación

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

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:

SISTEMAS OPERATIVOS: SISTEMAS OPERATIVOS: Lección 3: Introducción a la Gestión de Procesos Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato María

Más detalles

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1 Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador

Más detalles

Arquitectura (Procesador familia 80 x 86 )

Arquitectura (Procesador familia 80 x 86 ) Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene

Más detalles

Construyendo Programas más Complejos

Construyendo Programas más Complejos Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más

Más detalles

HP - UX. Qué es HP UX?

HP - UX. Qué es HP UX? HP - UX Integrantes: Cisneros Pedraza Christian. Jiménez Nieves José Manuel. Villanueva Armenta Fernando. Qué es HP UX? Hp UX es una variante de Unix creada por los desarrolladores de software de HP. Provee

Más detalles

La Pila en los Procesadores IA-32 e Intel c 64

La Pila en los Procesadores IA-32 e Intel c 64 La Pila en los Procesadores IA-32 e Intel c 64 Alejandro Furfaro Ilustraciones de David Gonzalez Marquez (tnx a lot) Abril 2012 Abril 2012 1 / 44 Agenda 1 Funcionamiento Básico 2 Ejemplos de uso de pila

Más detalles

Procesadores de 64 bits

Procesadores de 64 bits Procesadores de 64 bits Técnicas Digitales III Ing. Gustavo Nudelman 2013 Introducción Desarrollada por AMD en 2003 con el modelo Opteron, continuando con el Athlon para ser luego tomado por Intel en los

Más detalles

Concurrencia y paralelismo

Concurrencia y paralelismo Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.

Más detalles

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op.. Cuentas Guía 1er laboratorio Linux - Comandos - Fork Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..) Windows: Cuenta (passwd): So (s2013o..) Programación en C Linux sobre Linux: gcc compiler

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

Lenguaje C. Lenguaje C. Erwin Meza Vega

Lenguaje C. Lenguaje C. Erwin Meza Vega Lenguaje C Erwin Meza Vega Outline 1 Introducción 2 Tipos básicos de datos 3 Estructuras de control 4 Funciones 5 Ejemplos de funciones 6 Tipos compuestos de datos 7 Arreglos 8 Apuntadores (punteros) 9

Más detalles

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

Más detalles

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

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

Más detalles

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

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Sistemas Operativos. Curso 2016 Procesos

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

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas. Generalidades acerca de los sistemas operativos Hoy en día muchas personas, usan las computadoras de una forma muy fácil, muchos incluso creen que la máquina tiene incorporada todas las potencialidades

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

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

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

Más detalles

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final Trabajo Final 1 Objetivo Comprender (en gran parte) un programa desarrollado en: C++ (Core ) Generador de código / Ejecución de comandos Flex (Lex) Lexer Genera un Analizador Léxico en C http://en.wikipedia.org/wiki/lex_(software)

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

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

Unidad 2: Gestión de Procesos

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

Más detalles

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos Sistemas Operativos Curso 2014 Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura

Más detalles

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red 53.- Cuál de las siguientes intrucciones consideras que son privilegiadas? Razónalo Leer una posición de memoria

Más detalles

Modelo de procesamiento

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

Más detalles

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro Microprocesadores Procesadores IA-32 e Intel R 64 Tareas Alejandro Furfaro Junio de 2012 Temario 1 Introducción 2 Recursos para manejo de tareas en IA-32 Task State Segment Descriptor de TSS Descriptor

Más detalles

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

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Sesión 8- Práctica de Medida de Rendimiento

Sesión 8- Práctica de Medida de Rendimiento Sesión 8- Práctica de Medida de Rendimiento Arquitectura de Computadores I (IS19) Arquitectura de Computadores I (II19) Área de Arquitectura y Tecnología de Computadores Departamento de Ingeniería y Ciencia

Más detalles

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación 3.- Procesos Capítulo 3: Procesos Concepto de Proceso Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor

Más detalles

Uso avanzado de punteros

Uso avanzado de punteros Uso avanzado de punteros Mario Medina C. mariomedina@udec.cl Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores

Más detalles

Taller de Sistemas Operativos Introducción

Taller de Sistemas Operativos Introducción Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

TIPOS DE DATOS BASICOS EN LENGUAJE C

TIPOS DE DATOS BASICOS EN LENGUAJE C TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char

Más detalles

ESTRUCTURAS BÁSICAS DE UN S.O.

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

Más detalles

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles

Más detalles

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS PUNTEROS 1 Punteros en C Un puntero es una variable que almacena direcciones de memoria tipo *puntero; tipo variable; puntero = &variable; ffd0 valor variable fff0 ffd0 puntero A partir de la última sentencia

Más detalles

Introducción a Sistemas Operativos: Procesos

Introducción a Sistemas Operativos: Procesos Introducción a Sistemas Operativos: Procesos Clips xxx Fr ancisco J Ballesteros 1. Variables de entorno Otra forma de darle información a un proceso (además de usando sus argumentos) es utilizar las llamadas

Más detalles

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Informática Electrónica Manejadores de Dispositivos (Device Drivers) Informática Electrónica Manejadores de Dispositivos (Device Drivers) DSI-EIE-FCEIA 2015 Que es un DD? Es una pieza de software que interactúa con (entre) el sistema operativo y con uno o mas dispositivos

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

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo

Más detalles

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

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

Más detalles

Taller de Sistemas Operativos. Módulos del kernel

Taller de Sistemas Operativos. Módulos del kernel Taller de Sistemas Operativos Módulos del kernel Módulos El kernel de Linux es modular ya que permite la inserción y eliminación dinámica de código en el kernel en tiempo de ejecución. Las subrutinas asociadas,

Más detalles

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS SO. Tema 3 Trasp. Nº 1 FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS Tema 3: El núcleo del Sistema Operativo Indice 1.- Introducción. 2.- Representación de procesos. 3.- Primer nivel de interrupción. 4.- Dispatcher

Más detalles

Primeros pasos con CUDA. Clase 1

Primeros pasos con CUDA. Clase 1 Primeros pasos con CUDA Clase 1 Ejemplo: suma de vectores Comencemos con un ejemplo sencillo: suma de vectores. Sean A, B y C vectores de dimensión N, la suma se define como: C = A + B donde C i = A i

Más detalles

T5-multithreading. Indice

T5-multithreading. Indice T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2

Más detalles

Fundamentos de Arquitectura y Código Máquina

Fundamentos de Arquitectura y Código Máquina Fundamentos de Arquitectura y Código Máquina Lección 3 Ing. Jorge Castro-Godínez MT7003 Microprocesadores y Microcontroladores Área de Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica I Semestre

Más detalles

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa

Más detalles

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

Lenguaje de Programación: Compiladores de C y C++

Lenguaje de Programación: Compiladores de C y C++ UG Introducción a C/C++ Lenguaje de Programación: de C y C++ Universidad de Guanajuato Septiembre 2010 C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell de

Más detalles

Guía de uso del programa AVR-Studio

Guía de uso del programa AVR-Studio Guía de uso del programa AVR-Studio El entorno de desarrollo AVR-STUDIO nos permite cargar, ensamblar y depurar los programas que escribimos en lenguaje ensamblador. Los pasos para crear un proyecto nuevo

Más detalles

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012 Taller de Sistemas Operativos Direccionamiento de Memoria 2012 TSO Direccionamiento de Memoria - 2010 Agenda Arquitectura de memoria en x86 (IA-32). Direccionamiento en Linux. Arquitectura de memoria en

Más detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

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

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

Más detalles

Sistemas Operativos - Intro

Sistemas Operativos - Intro Sistemas Operativos - Intro Técnicas Digitales III Ing. Gustavo Nudelman 2012 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Conceptos generales Un sistema operativo es simplemente un

Más detalles

Sistema Operativo Linux

Sistema Operativo Linux Sistema Operativo Linux Contenidos Administración de usuarios Creación, modificación, eliminación Atributos de las contraseñas Administración de permisos en archivos y directorios Mecanismos de autenticación

Más detalles

SOLUCION EXAMEN junio 2006

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

Más detalles

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):

Más detalles

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

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

Más detalles

Lenguaje C Preprocesador, Compilación y Enlazado.

Lenguaje C Preprocesador, Compilación y Enlazado. Lenguaje C Preprocesador, Compilación y Enlazado. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Directivas de Compilación Las directivas

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Paradigma de paso de mensajes

Paradigma de paso de mensajes Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:

Más detalles

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. 1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones

Más detalles

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación Tema 3:Introducción a los Sistemas operativos. Instalación Parte I:Teoría Introducción a los SO Componentes Llamadas al sistema Estructura del Kernel Drivers Esta obra está bajo una licencia Reconocimiento-No

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

Contenido. Procesos. Programas/Procesos. Programas/Procesos. Por qué hacer uso de los Procesos? Proceso

Contenido. Procesos. Programas/Procesos. Programas/Procesos. Por qué hacer uso de los Procesos? Proceso Contenido Procesos Qué es un Proceso? Qué información requiere el Sistema de Operación para manejar los procesos? Programas/Procesos Programas/Procesos Un proceso es diferente a un programa Programa: Código

Más detalles

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

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 8 : Gestión de memoria Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción programa fuente otros objetos

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

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

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

Fundamentos de Ordenadores. Depurar programas usando Nemiver

Fundamentos de Ordenadores. Depurar programas usando Nemiver Fundamentos de Ordenadores Depurar programas usando Nemiver Departamento de Arquitectura de Computadores Autor: Mario Macias. Fecha de elaboración: 16/10/2015 1 Manual básico Nemiver Nemiver es un sencillo

Más detalles

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

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

Más detalles