Archivo de la categoría: Ingeniería informática

Implementación de una Lista Doblemente Enlazada en C

Introducción

Este código implementa una lista doblemente enlazada en C, permitiendo la inserción, borrado y otras operaciones como la verificación de palíndromos. Incluye funciones para mostrar la lista en orden ascendente y descendente.

Código

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h> //Para usar getch() y system("pause")
#include <string.h> //Para usar strlen()

#define ASCENDENTE 1
#define DESCENDENTE 0
#define TRUE 1

typedef  Seguir leyendo “Implementación de una Lista Doblemente Enlazada en C” »

Fundamentos de la gestión de memoria y procesos en sistemas operativos

Gestión de Memoria

Alta tasa de actividad de paginación:

Sobrepaginación

Hardware encargado de correspondencia entre direcciones virtuales y físicas:

MMU

Para que un programa se ejecute:

Su código y datos necesitan estar cargados por completo en memoria

El programa se descompone en módulos separados:

Recubrimientos

Un proceso pierde la CPU, se vuelca su imagen de la memoria al disco:

Swapping

Algoritmo de frecuencia de fallo más baja:

Óptimo

¿En qué algoritmo se apoya Belady?:

FIFO

El algoritmo “NUR” Seguir leyendo “Fundamentos de la gestión de memoria y procesos en sistemas operativos” »

Optimización de Procesos: Planificación y Gestión de Memoria

Planificación de Procesos

La planificación es la técnica que indica qué procesos deben ejecutarse. Con los algoritmos de planificación se decide qué proceso se ejecuta y por qué. Cuando hacemos doble clic en un proceso para lanzarlo, el sistema operativo lo introduce en planificación y ahí empieza el proceso.

Instrucciones y Procesamiento

¿Cuántas instrucciones puede procesar en un instante de tiempo la UCP?

Una instrucción, a no ser que el ordenador sea multiproceso/multiprocesador o tenga Seguir leyendo “Optimización de Procesos: Planificación y Gestión de Memoria” »

Administración de Usuarios, Seguridad Informática y Criptografía

Usuarios y Grupos

El Dominio permite tener un espacio común de usuarios globales. La identidad de un usuario se comparte entre todas las máquinas y procesos del dominio, basada en Kerberos. Para la gestión de usuarios y grupos, se utiliza una consola de administración con dos marcos: izquierdo (jerarquía de objetos y contenedores) y derecho (contenido del contenedor). Los contenedores agrupan y contienen otros objetos. Un grupo relaciona distintos objetos usuario, pero no los contiene.

Creación Seguir leyendo “Administración de Usuarios, Seguridad Informática y Criptografía” »

Diseño, Construcción y Pruebas de Sistemas Informáticos

Diseño Físico de Sistemas

Diseño Técnico

Adaptar las funcionalidades al entorno tecnológico y al equipo técnico (analistas, programadores, administradores).

  • Resultados del diseño técnico: Cuaderno de carga (documentación de todo el desarrollo, programas, pseudocódigo, plan de pruebas, formularios, ordinogramas, diagramas de flujo, registros de bases de datos y tablas de especificación); diseño de estructura modular Vtoc; diseño de interfaces entre módulos; definición de interfaces con Seguir leyendo “Diseño, Construcción y Pruebas de Sistemas Informáticos” »

Sistemas Operativos: Clientes, Servidores y Redes

Sistemas Operativos Clientes

Windows 3.11
NT Workstation
Windows 95, 98
Windows 2000 Professional
Windows XP
Windows Vista
Windows 7

Sistemas Operativos Servidor

Windows NT 3.51
Windows NT Server 4.0
Windows 2000 Server
Windows 2003 Server
Windows 2008 Server

Service Packs y Hotfixes

Service Packs: Actualizaciones del sistema operativo que proporcionan mejoras y nuevas herramientas funcionales.

Hotfix: Software que corrige una falla específica del sistema operativo o de aplicaciones como SQL, Exchange o IIS.

Windows Seguir leyendo “Sistemas Operativos: Clientes, Servidores y Redes” »

Optimización de Protocolos de Coherencia y Paralelismo en Sistemas Multiprocesador

Protocolo MSI

Modificado (M)

  • PrLec/PrEsc: Modificado
  • PtLec: Genera paquete respuesta (RpBloque) → Compartido
  • PtLecEx: Genera paquete respuesta (RpBloque) e invalida copia local → Inválido
  • Reemplazo: Genera paquete posescritura (PtPEsc) → Inválido

Compartido (S)

  • PrLec: Compartido
  • PrEsc: Genera paquete PtLecEx → Modificado
  • PtLec: Compartido
  • PtLecEx: Invalida copia local → Inválido

Inválido (I)

  • PrLec: Genera paquete PtLec → Compartido
  • PrEsc: Genera paquete PtLecEx → Modificado
  • PtLec/PtLecEx: Inválido

Protocolo Seguir leyendo “Optimización de Protocolos de Coherencia y Paralelismo en Sistemas Multiprocesador” »

Sistemas Operativos: Gestión de Arranque, Procesos y Planificación

Gestor de Arranque

Un gestor de arranque es un programa que toma el control de la máquina nada más conectarse y una vez que el hardware ha terminado las verificaciones de memoria y dispositivos conectados. Cuando el gestor de arranque toma el control, puede solicitar al usuario información necesaria sobre qué sistema cargar o cómo cargarlo.

En este caso, como gestor de arranque tenemos LILO (Linux Loader). Este programa instala el gestor de arranque, que permite que en un mismo equipo coexistan Seguir leyendo “Sistemas Operativos: Gestión de Arranque, Procesos y Planificación” »

Fundamentos de Sistemas Operativos

Administración de Procesos

Recursos

Un recurso es un elemento que un programa o proceso puede utilizar en la computadora. Estos recursos son concedidos a un proceso solicitante cuando están disponibles. El ciclo de vida de un recurso implica:

  • Solicitar
  • Utilizar
  • Liberar

Tipos de recursos:

Introducción a la Programación Paralela: Conceptos, Arquitecturas y Modelos

T.1 Introducción a la Programación Paralela

1.1 Conceptos básicos

¿Qué es la programación paralela?

La programación paralela se encarga de desarrollar programas capaces de realizar muchos cálculos simultáneamente. Estos problemas deben ser capaces de dividirse en subproblemas más pequeños, los cuales se resuelven simultáneamente, suponiendo que disponemos de hardware capaz de desarrollar cálculos en paralelo.

1.2 Evolución del paralelismo

Comienzos

El paralelismo ha estado presente desde Seguir leyendo “Introducción a la Programación Paralela: Conceptos, Arquitecturas y Modelos” »