Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

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

Download "Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente."

Transcripción

1 Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución que realiza actividades síncronas asignadas a un procesador. Cuando solo hay un procesador, todos los procesos son asignados a éste, si existen varios procesadores cada uno de los procesos se asigna de forma independiente a c/u de los procesadores. Procesos concurrentes: Dos procesos son concurrentes cuando la primera instrucción de uno de ellos se ejecuta después de la primera instrucción del otro proceso y antes de la última. Encadenamientos: Son procesos lanzados concurrentemente: Simultaneidad de procesos: Cuando hay varios procesadores se habla de simultaneidad de procesos, y en caso de un solo procesador, se habla de solapamiento de procesos. (ver figura) Ejecución de dos procesos en un sistema monoprocesador y en un sistema multiprocesador. Clase Thread: Es la clase de java que nos permite manejar encadenamientos. Ejemplo de en encadenamiento utilizando la clase Thread. class Encadenamiento extends Thread { Encadenamiento(String nombre) {super(nombre); { for (int i=0;i<10;i++) System.out.println(getName()); public static void main(string args[]) {Encadenamiento p1=new Encadenamiento(""); Encadenamiento p2=new Encadenamiento("");

2 p1.start(); p2.start(); Una posible salida del programa es: java Encadenamiento Prioridades de un thread: El orden de ejecución de los encadenamientos viene dado por dos factores: la prioridad del thread y la segmentación del tiempo. Todos los encadenamientos tienen una prioridad: MIN_PRIORITY constante de valor 1 NORM_PRIORITY constante de valor 5 MAX_PRIORITY constante de valor 10 El planificador de java es el encargado de decidir que proceso tendrá acceso al procesador. Esto lo decide tomando en cuenta que proceso tiene la máxima prioridad en el sistema. El método setpriority() de la clase Thread establece la prioridad de un encadenamiento. Si hay error se lanzará una excepción del tipo illegalargumentexception. Para obtener la prioridad de un encadenamiento se tiene el método getpriority(). Ciclo de vida de un Thread: Un proceso puede encontrarse en varios estados ( ver figura)

3 Cuando se crea un proceso pasa al estado de "Creado". Cuando ejecutamos el método start() del proceso, éste pasa al estado de "listo" o "preparado". Cuando el sistema encuentra un thread que tiene mayor prioridad lo pasa al estado de "ejecución", y por lo tanto le asigna el procesador al thread. Cuando un proceso solicita una operación de E/S éste pasa al estado de bloqueado, y éste thread no podrá utilizar el procesador ( aunque haya alguno disponible) hasta que se haya terminado la operación de E/S Cuando se invoca al método sleep() de un proceso, éste automáticamente pasa al estado de "dormido", saliendo de este estado solo cuando haya terminado el método sleep() y éste no podrá usar el procesador mientras esté dormido. Cuando se invoca al método suspend() de un proceso, éste pasa al estado de "suspendido", y sólo pasa al estado de "listo" cuando se invoca al método resume() del proceso, tampoco podrá utilizar éste thread el procesador hasta que pase del estado de "suspendido" a "listo" Cuando se invoca al método wait() de un proceso, éste pasa al estado de "espera", donde espera una cola asociada al objeto específico para el cual invocó wait(). El primer proceso de la cola de espera de un objeto en particular pasará al estado de "listo" cuando otro thread asociado a éste objeto realice una llamada al método notify(). Todos los proceso de la cola de espera asociada a un objeto pasarán al estado de "listo" cuando un proceso asociado a ese objeto realice una llamada al método notifyall(). El proceso pasará al estado de "terminado" cuando se invoque al método stop() de ese thread, o bien, cuando

4 termine su método run(). Fundación CIDCA Centro de Docencia y Consultoría Administrativa Método Descripción Estado válido Estado de comprobación start() Empieza la ejecución del encadenamiento. Se invoca al método run() de dicho Creado encadenamiento stop() Finaliza o termina la ejecución de Creado, en un encadenamiento ejecución Terminado Efectúa una espera de un sleep(long mili) determinado número de En espera milisegundos Efectúa una espera de un sleep(long mili, int determinado número de nano) milisegundos y nanosegundos En espera suspend() Suspende la ejecución de un thread En espera resume() Reanuda la ejecución del thread que ha efectuado una llamada a Suspendido suspend() yield() Cede el control del procesador a otro thread, o sea, abandona explícitamente el procesador La interfaz Runnable Como java no posee herencia múltiple, se da el caso de utilizar encadenamientos sin poder extender la clase Thread. Para ésto utilizamos la interfaz Runable. class Encadenamiento2 implements Runnable { String nombre; Encadenamiento2(String nom) {nombre= nom; { for (int i=0;i<10;i++) {System.out.println(nombre); public static void main(string args[]) {Encadenamiento2 proceso1=new Encadenamiento2(""); Encadenamiento2 proceso2=new Encadenamiento2(""); Thread p1= new Thread(proceso1); Thread p2= new Thread(proceso2); p1.start(); p2.start(); java Encadenamiento2

5 La diferencia entre heredar de la clase Thread al utilizar la interface Runnable es la invocación al contructor de la clase Thread. Thread(Runnable) Segmentación de tiempo: El orden de ejecución de un encadenamiento esta determinado por dos factores: la segmentación de tiempo la prioridad En la plataforma Solaris, Java ejecuta un proceso hasta que éste termine o se encuentre un hilo que esté en el estado "listo" y que tenga una prioridad mas alta. El hilo que se estaba ejecutando, deja de ejecutarse y comienza la ejecución del hilo nuevo que ha entrado y que posee más prioridad que el antigüo.... (hasta que termine el )... (hasta que termine el ) En windows 95/98/2000/Me/NT los hilos se manejan por tajadas de tiempo o quantums. Cada proceso se le asigna un quantums de tiempo para usar el procesador. Una vez pasado ese quantum el proceso tendrá que esperar a que los demás procesos que tienen su misma prioridad terminen de utilizar su quantum siguiendo un turno circular ( round - robin)...

6 Para resolver éste problema de que un proceso se ejecute hasta que otro terminte, Java ofrece una programación expulsora, por tanto, el método yield() de la clase Thread permite expulsar el encadenamiento o proceso que se encuentre en ejecución: Ejemplo de segmentación de tiempo: class Encadenamiento extends Thread { Encadenamiento(String nombre) {super(nombre); { for (int i=0;i<10;i++) {System.out.println(getName()); yield(); public static void main(string args[]) {Encadenamiento p1=new Encadenamiento(""); Encadenamiento p2=new Encadenamiento(""); p1.start(); p2.start(); Una posible salida del programa es: java Encadenamiento Si la salida corresponde a un sistema con segmentación de tiempo, significa que aunque no se tenga un sistema multitarea la utilización de método yield() de la clase Thread hace que un programa ejecutandose en sistema que no lleva segmentación de tiempo lo tenga. Ejemplo para saber si nuestra computadora tiene segmentación de tiempo /*Esta clase incrementa la variable contador indefinidamente*/ class tiempo extends Thread { private int contador; tiempo()

7 {contador=0; {while (true) contador++; public int dev_contador() {return contador; Fundación CIDCA Centro de Docencia y Consultoría Administrativa /*La siguiente clase comprobar si es o no el sistema segmentado*/ class essegmentado extends Thread { boolean segmen; boolean determinado; essegmentado() {segmen=false; determinado=false; public boolean EsSegmen() { start(); while(!determinado) { //Habr que determinar el valor, para ello esperaremos try{sleep(1500); catch(interruptedexception e){ return segmen; { tiempo proceso1=new tiempo(); tiempo proceso2=new tiempo(); //Establecemos en la clase essegmentado la m xima prioridad setpriority(max_priority); proceso1.start(); proceso2.start(); try {sleep(500); catch(interruptedexception e){ proceso1.stop(); proceso2.stop(); if ((proceso1.dev_contador()>2*proceso2.dev_contador()) (proceso2.dev_contador()>2*proceso1.dev_contador())) segmen=false; else segmen=true; /*En este momento ya tenemos determinado si es o no segmentado*/ determinado=true; class Test {public static void main(string args[]) { essegmentado comprobar=new essegmentado(); if (comprobar.essegmen()) System.out.println("Este sistema tiene segmentacion en el tiempo"); else System.out.println("Este sistema no tiene segmentacion en el tiempo");

8 Problema de exclusión mutua y los monitores Sincronización de procesos: Se refiere a cuando dos o más procesos compiten por la obtención de un recurso. Ejemplo: Una aplicación que cuente los accesos que se realizan en una base de datos desde dos terminales. Cuando dos procesos están accediendo a la misma variable ( recurso ) con el consiguiente problema de que uno está modificando la variable pero ésta no tiene su valor correcto debido a que el otro proceso la está actualizando también a éste problema se le llama exclusión mutua, lo que significa que dos procesos no pueden acceder a la misma variable. La exclusión mutua trata de resolver el problema de las secciones criticas o variables compartidas. Existen éstos criterios para garantizar la exclusión mutua. El número de procesos que puedan existir en una sección crítica, en un momento determinado, como máximo, debe ser uno. Cuando existen varios procesos que tienen que acceder a una sección crítica, se le ha de conceder el derecho a entrar en esa sección crítica a uno de ellos, pero en un tiempo finito, por tanto deberá de devolver el recurso en un tiempo finito. Si un proceso no está en su sección crítica, entonces se debe de dejar a otro proceso entrar en la sección crítica. class BD { protected int contador=0; public int dev_contador(){return contador; public void inc_contador(){contador++; class Terminal extends Thread { BD basedatos; Terminal(String nombre,bd bd) {super(nombre); this.basedatos=bd; /*Metodo que incrementa el contador*/

9 { for (int i=0;i<10;i++) {basedatos.inc_contador(); System.out.println(getName()+" : "+basedatos.dev_contador()+" personas"); class Test {public static void main(string args[]) {BD basedatos=new BD(); Terminal terminal1=new Terminal("Terminal1",basedatos); Terminal terminal2=new Terminal("Terminal2",basedatos); terminal1.start(); terminal2.start(); java Test Terminal1 : 1 personas Terminal1 : 2 personas Terminal1 : 3 personas Terminal2 : 4 personas Terminal1 : 5 personas Terminal2 : 6 personas Terminal1 : 7 personas Terminal2 : 8 personas Terminal1 : 9 personas Terminal2 : 10 personas Terminal1 : 11 personas Terminal2 : 12 personas Terminal1 : 13 personas Terminal2 : 14 personas Terminal1 : 15 personas Terminal2 : 16 personas Terminal1 : 17 personas Terminal2 : 18 personas Terminal2 : 19 personas Terminal2 : 20 personas Una solución rudimentaria pero básica para el problema de la exclusión mutua es la que dio Peterson en 1981 (Algoritmo de Peterson) class BD { public int contador=1,turno=1; public boolean flag1,flag2; class Terminal1 extends Thread { BD basedatos; Terminal1(BD bd){this.basedatos=bd; //Metodo que incrementa el contador {int i=1; while (i<11) {basedatos.flag1=true;

10 basedatos.turno=2; while (basedatos.flag2 && basedatos.turno==2); //Seccion cr tica System.out.println("Terminal 1: "+basedatos.contador+++"personas"); basedatos.flag1=false; //Secci n no cr tica i++; class Terminal2 extends Thread { BD basedatos; Terminal2(BD bd) {this.basedatos=bd; //Metodo que incrementa el contador {int i=1; while (i<11) {basedatos.flag2=true; basedatos.turno=1; while (basedatos.flag1 && basedatos.turno==1); //Seccion cr tica System.out.println("Terminal 2: "+basedatos.contador+++"personas"); basedatos.flag2=false; //Secci n no cr tica i++; class Test {public static void main(string args[]) {BD basedatos=new BD(); Terminal1 term1=new Terminal1(basedatos); Terminal2 term2=new Terminal2(basedatos); term1.start(); term2.start(); java Test Terminal 1: 1personas Terminal 1: 2personas Terminal 1: 3personas Terminal 2: 4personas Terminal 1: 5personas Terminal 2: 6personas Terminal 1: 7personas Terminal 2: 8personas Terminal 1: 9personas Terminal 2: 10personas

11 Terminal 1: 11personas Terminal 2: 12personas Terminal 1: 13personas Terminal 2: 14personas Terminal 1: 15personas Terminal 2: 16personas Terminal 1: 17personas Terminal 2: 18personas Terminal 2: 19personas Terminal 2: 20personas Los Monitores Fundación CIDCA Centro de Docencia y Consultoría Administrativa Los monitores resuelven el problema de las variables compartidas. C.A.R. Hoaere en 1974 analizó por 1ra vez el concepto de monitor. La sincronización de procesos se debía a que dos o más procesos luchan por conseguir un recurso. Java usa monitores para la sincronización de procesos. Java permite marcar las secciones críticas de código mediante la palabra reservada synchronized. Cuando declaramos un método como synchronized estamos creado un monitor. Un monitor solo permite que un encadenamiento pueda ejecutar un método synchonized a la vez con el objeto. Esto se logra poniendo una especie de candado al objeto impidiendo que ningún otro método pueda acceder al objeto hasta que el encadenamiento que está dentro del monitor termine de ejecutar el método sincronizado Ejemplo de la base de datos utilizando monitores class BD { private int contador; BD(){contador=0; /*Método que modifica el contador, y por tanto contiene la sección crítca a proteger*/ public synchronized int dev_contador(){ return contador; public synchronized void inc_contador() {contador++; // System.out.println(contador+" personas"); class Terminal extends Thread { BD basedatos; Terminal (BD bd) {this.basedatos=bd; //Metodo que incrementa el contador { for (int i=1;i<=10;i++) {basedatos.inc_contador(); System.out.println(getName()+" : "+basedatos.dev_contador()+" personas" ); class Test {public static void main(string args[]) {BD basedatos=new BD();

12 Terminal terminal1=new Terminal(basedatos); Terminal terminal2=new Terminal(basedatos); terminal1.start(); terminal2.start(); C:\jdk1.3\ejemplos\capitulo10\monitor>java Test Thread-0 : 1 personas Thread-0 : 2 personas Thread-0 : 3 personas Thread-1 : 4 personas Thread-0 : 5 personas Thread-1 : 6 personas Thread-0 : 7 personas Thread-1 : 8 personas Thread-0 : 9 personas Thread-1 : 10 personas Thread-0 : 11 personas Thread-1 : 12 personas Thread-0 : 13 personas Thread-1 : 14 personas Thread-0 : 15 personas Thread-1 : 16 personas Thread-0 : 17 personas Thread-1 : 18 personas Thread-1 : 19 personas Thread-1 : 20 personas

1 HILOS (THREADS) EN JAVA

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

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Concurrencia. Primitivas IPC con bloqueo

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

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Java: Programación Multithread

Java: Programación Multithread Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

Java y JVM: programación concurrente

Java y JVM: programación concurrente Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín CONCURRENCIA EN JAVA Diseño de Sistemas Operativos Avanzados 2000/2001 Pedro Pablo Gómez Martín Concurrencia en Java 1 ÍNDICE ÍNDICE... 1 INTRODUCCIÓN... 3 CREAR UNA NUEVA HEBRA... 3 FINALIZACIÓN... 5

Más detalles

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

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

Más detalles

Si bien Pascal-FC no trae algunas de las características de Pascal como:

Si bien Pascal-FC no trae algunas de las características de Pascal como: PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

Programación multihebra

Programación multihebra Programación multihebra by Scheme the API man 2000 (jmrequena@larural.es) Qué es la programación multihebra? Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

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

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

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

Hebras y Sincronización en Java

Hebras y Sincronización en Java Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz

Más detalles

Concurrencia en Android LSUB, GYSC, URJC

Concurrencia en Android LSUB, GYSC, URJC Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo

Más detalles

Mensajes. Interbloqueo

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

Más detalles

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

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

Más detalles

Manual de rol gestor de GAV para moodle 2.5

Manual de rol gestor de GAV para moodle 2.5 Manual de rol gestor de GAV para moodle 2.5 Consultas LDAP-GAUR... 2 Buscar en LDAP datos de un usuario... 2 Docentes... 3 Buscar en GAUR datos de un docente... 3 Buscar en GAUR la docencia de un docente

Más detalles

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

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

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones

Más detalles

4. Programación Paralela

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

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,

Más detalles

Procesos. Planificación del Procesador.

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

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

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

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

Primer Parcial Septiembre 5 de 2009

Primer Parcial Septiembre 5 de 2009 Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar

Más detalles

Programación Concurrente y Paralela. P(S) ; sección crítica P(S);

Programación Concurrente y Paralela. P(S) ; sección crítica P(S); 2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles

Más detalles

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Sistema de proceso por lotes: esquema operativo

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

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Programación concurrente en Java

Programación concurrente en Java Diseño Y Aplicaciones de Sistemas Distribuidos Programación concurrente en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Threads en

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

void main(void) { string lname; list <string> lnamelist; cout << "Please enter your list of last names finishing with `.`"<<endl;

void main(void) { string lname; list <string> lnamelist; cout << Please enter your list of last names finishing with `.`<<endl; Segundo Certamen 1.- Haga uso de la información adjunta y desarrolle un programa en C++ que lea apellidos de teclado y los almacene en una lista. Luego se pide listar los apellidos en orden alfabético

Más detalles

Sistema operativo Discos duros Usuarios

Sistema operativo Discos duros Usuarios Práctica III Para este último bloque de unidades, vamos a modificar la infraestructura de la empresa PEQUE, S.A., que tenemos: Tipo de hardware Sistema operativo Discos duros Usuarios TIPO 1 (5 equipos)

Más detalles

Proyecto Help Desk en plataforma SOA Modelo de Dominio Versión 1.3. Historia de revisiones

Proyecto Help Desk en plataforma SOA Modelo de Dominio Versión 1.3. Historia de revisiones Proyecto Help Desk en plataforma SOA Modelo de Dominio Versión.3 Historia de revisiones Fecha Versión Descripción Autor 8/08/2005.0 Se presenta modelo de dominio, restricciones y observaciones. 25/08/2005.

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

3. PROGRAMACION CONCURRENTE

3. PROGRAMACION CONCURRENTE 3. PROGRAMACION CONCURRENTE INTRODUCCION Actualmente observamos que el paradigma orientado a objetos, solo podemos ejecutar un equipo a la vez como máximo en cambio con la introducción de las hebras concurrentes(programación

Más detalles

Windows XP Instalación y configuración de hardware

Windows XP Instalación y configuración de hardware Servicio de Informática Atención al Usuario Windows XP Instalación y configuración de hardware Sección de Atención al Usuario Ultima modificación: 01 de Julio de 2.003 Instalación y configuración de hardware

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Monitores Ing. Iván Medrano Valencia

Monitores Ing. Iván Medrano Valencia Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos

Más detalles

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

Más detalles

SINAUTO. (Captura Requirimientos) GRUPO 03

SINAUTO. (Captura Requirimientos) GRUPO 03 SINAUTO (Captura Requirimientos) GRUPO 03 Iker Jauregi ikerjauregivicente@hotmail.com Iñigo Arregui bateman2012@gmail.com Javier Arce arcjav@hotmail.com Jorge García. jgfand@gmail.com Patxi Campos.patxi948@wanadoo.es

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa.

Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa. Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa. Contenido 1 2 3 4 5 HABILITAR DATOS DE COSTES EN EL ÓRGANO GESTOR.... 2 SINCRONIZACIÓN DE DATOS DE CANOA... 2 2.1 ACCESO...

Más detalles

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

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

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

Estructura de datos tipo vector.

Estructura de datos tipo vector. Estructura de datos tipo vector. Hemos empleado variables de distinto tipo para el almacenamiento de datos (variables int, float, String) En esta sección veremos otros tipos de variables que permiten almacenar

Más detalles

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis.

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis. NOVEDADES Y MEJORAS Continuando con nuestra política de mejora, innovación y desarrollo, le presentamos la nueva versión 9.50 de datahotel que se enriquece con nuevas funcionalidades que aportan soluciones

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases PHP y MySQL Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases Herencia de Objetos La herencia permite crear muchas clases que son similares entre si, sin tener

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados

Más detalles

Secretos de la Programación Concurrente

Secretos de la Programación Concurrente Secretos de la Programación Concurrente Stuart Perez, Luis Castro Autómatas y Compiladores, Escuela de Ciencias de la Computación e Informática, San Pedro de Montes de Oca, Costa Rica jstuartp@gmail.com

Más detalles

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:... Cuadernillo de examen ASIGNATURA Laboratorio de Sistemas Operativos Abiertos (Java) CÓDIGO 321 CONVOCATORIA Extraordinaria de Septiembre de 2003 PLAN DE ESTUDIOS 1996 ESPECIALIDAD Sistemas CURSO 2002/2003

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

Sistemas Operativos. Curso 2014 Planificación

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

Más detalles

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

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

Más detalles

Sistemas Operativos. Curso 2015 Planificación

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

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Administrar El Usuario Mediante Windows NT

Administrar El Usuario Mediante Windows NT Administrar El Usuario Mediante Windows NT Administración de usuarios El Administrador de usuarios es la utilidad estándar que ofrece Windows NT. Como su nombre indica, se encarga de la administración

Más detalles

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

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

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Introducción: Testing ad hoc Testing sistemático Testing unitario Unidad y Suite de tests Frameworks xunit Fixtures compartidos e independecia Tests parametrizados

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

Ingeniería del Software Arquitectura Física en 3 niveles Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre

Más detalles

Unidad II: Administración de Procesos y del procesador

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

Más detalles