Archivo de la etiqueta: concurrencia

Fundamentos de Sistemas Operativos: Gestión de Procesos, Memoria y Seguridad Informática

Gestión de Procesos y Hilos

#PreguntaRespuesta Correcta
1¿Qué significan los estados de llegada, listo, ejecución y quantum concluido en la gestión de procesos?Explicación de los estados y transiciones de un proceso.
2¿Qué es la concurrencia?Ejecución paralela o pseudo-paralela con acceso a recursos compartidos.
3¿Por qué falla contador = contador + 1 con varios procesos?Condición de carrera: cuando el resultado depende del orden de ejecución.
4Estados de un proceso en el modelo de procesos: Seguir leyendo “Fundamentos de Sistemas Operativos: Gestión de Procesos, Memoria y Seguridad Informática” »

Gestión de Procesos y Concurrencia en Sistemas Operativos: Planificación y Sincronización

Planificación del Procesador

Colas de Retroalimentación de Niveles Múltiples

Las colas de retroalimentación de niveles múltiples proporcionan una estructura eficaz para lograr los siguientes objetivos en la planificación del procesador:

  • Favorecer la ejecución de trabajos cortos.
  • Optimizar el uso de los dispositivos de Entrada/Salida (E/S) al favorecer trabajos limitados por E/S.
  • Determinar la naturaleza de un proceso lo más rápido posible y planificarlo en consecuencia.

Un nuevo proceso entra Seguir leyendo “Gestión de Procesos y Concurrencia en Sistemas Operativos: Planificación y Sincronización” »

Conceptos Clave de Sistemas Operativos: Procesos, Sincronización y Deadlock

Procesos e Hilos

#

Pregunta

Respuesta Correcta

1

Concurrencia es:

a. Ejecución paralela o pseudoparalela con acceso a recursos compartidos

2

Condición de Carrera es:

b. Cuando el resultado depende del orden particular en que se intercalan las operaciones de procesos concurrentes

3

Cuando nunca hay más de un proceso ejecutando en su sección crítica, se conoce como:

c. Exclusión Mutua

11

Cuando se ejecuta un proceso con multihilo en una CPU, los hilos:

c. Toman turnos para ejecutarse

12

Es llamada para crear Seguir leyendo “Conceptos Clave de Sistemas Operativos: Procesos, Sincronización y Deadlock” »

Sistemas Distribuidos: Conceptos, Arquitectura y Comunicación

Conceptos Básicos de Sistemas Distribuidos

Definición

Según Coulouris, un Sistema Operativo Distribuido es aquel en el que los componentes, localizados en computadores conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes. Esto trae como consecuencias: concurrencia, inexistencia de un reloj global y fallos independientes.

Tanenbaum define un Sistema Distribuido como una colección de computadoras independientes que aparecen ante los usuarios del sistema como Seguir leyendo “Sistemas Distribuidos: Conceptos, Arquitectura y Comunicación” »

Conceptos Fundamentales de la Gestión de Procesos Concurrentes

1. Concepto de Concurrencia

La concurrencia entre los procesos se logra porque las hebras de diferentes procesos se pueden ejecutar concurrentemente. Si se dispone de varias CPUs, se pueden asignar distintos procesadores a hebras del mismo proceso. Las hebras del mismo proceso pueden intercambiar información entre ellas a través de la memoria compartida y tener acceso a los recursos compartidos del proceso.

2. Problema de la Sección Crítica

Cada proceso tiene un segmento de código, llamado sección Seguir leyendo “Conceptos Fundamentales de la Gestión de Procesos Concurrentes” »

Sistemas Distribuidos: Características, Ventajas y Desventajas

Redes Distribuidas

Es una topología de red caracterizada por la ausencia de un centro individual o colectivo donde los nodos se vinculan unos a otros de modo que ninguno de ellos tiene poder de filtro sobre la información que se transmite en la red.

Sistemas Distribuidos

Son sistemas cuyos componentes de hardware y software, que están en ordenadores conectados en red, se comunican por sus acciones mediante el paso de mensajes. Para el logro de su objetivo se establece la comunicación mediante un Seguir leyendo “Sistemas Distribuidos: Características, Ventajas y Desventajas” »

Gestión de Procesos y Memoria en Sistemas Operativos

1. Máquina Virtual

El objetivo es presentar al usuario una versión simplificada de la máquina, denominada máquina virtual o máquina extendida, que abstrae al usuario de las particularidades físicas del equipo.

2. Complejidad O(1)

Implica una complejidad constante.

3. Cambio de Contexto

Es el intercambio del proceso activo con uno preparado para ejecutarse. Implica:

  1. Salvar el estado del proceso en ejecución.
  2. Cargar los registros del próximo proceso.

4. Estados de un Proceso

Conceptos Fundamentales de Programación Orientada a Objetos

Funciones

Una función es una parte de un programa con un nombre, que puede ser invocada desde otra parte tantas veces como se desee. Es un bloque de código que puede ser ejecutado como una unidad funcional que puede recibir valores, se ejecuta y puede devolver un valor.

Arreglos

Un arreglo es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre.

Concurrencia

La concurrencia es una propiedad que distingue a un objeto activo de uno no activo, y permite que varios objetos Seguir leyendo “Conceptos Fundamentales de Programación Orientada a Objetos” »

Desarrollo de sistemas empotrados y concurrencia en programación

Etapas del desarrollo

Analisis, Diseño (UML: Unified Modeling Language), Programación, Testeo y Mantenimiento.

Paradigmas del desarrollo

Metodo en cascada, Metodo en espiral, Metodo de prototipos, Métodos ágiles

Sistema Empotrado

Sistema informático específicamente diseñado para resolver un problema concreto. Un sistema empotrado es un sistema con procesador que no es de propósito general.

Hardware en Empotrados

En unos casos HW es el de un PC: cajeros automático o PC-104. Pero en la mayoría Seguir leyendo “Desarrollo de sistemas empotrados y concurrencia en programación” »

Problemas comunes en programación concurrente

Pregunta 1B:
El principio de la bandera es un teorema que podemos usar para comprobar si está garantizado la exclusión mutua para dos procesos en un código concreto. Si dos procesos primero levantan sus banderas y después miran al otro lado por lo menos uno de los procesos ve la bandera del otro levantado.

Se puede comprobar con contradicción:

Asumimos P0 era el último en mirar

Entonces la bandera de P0 está levantada

Asumimos que P0 no ha visto la bandera de P1

Entonces P1 ha levantado la bandera Seguir leyendo “Problemas comunes en programación concurrente” »