lunes, agosto 28, 2006

 

Laboratorio # 2

1.-fork() simple

Explique porque si el valor de “x” en el proceso padre es igual o distinto al del proceso hijo.

Los valores de x son iguales pero solo porque el proceso hijo y el proceso padre se ejecutan rápidamente como rand() utiliza el reloj para calcular el valor prácticamente es el mismo si se pone una pausa los valores serian diferentes porque cada proceso hace su propio rand()

¿Existe alguna forma de predecir los ID del proceso que serán asignado al proceso hijo y al proceso padre?

Por lo que se muestra en las corridas los valores que identifican al proceso hijo es mayor en una al del proceso padre y el valor del proceso padre no se puede predecir ya que toma el valor de del siguiente identificador de proceso disponible.

1.-fork() no tan simple
Revise el siguiente programa sin correrlo y responda: ¿Cuántos procesos se van a crear?

Creo que serán 16 procesos















Compile el programa y ahora indique cuántos procesos se crearon.
¿Es igual a su respuesta anterior? Si no es, ¿por qué?












Fueron 8 Procesos
Ya que cada hijo del padre tiene un fork – 1 por lo que seria asi:













Mencione los puntos más relevantes que se encuentran en el manual de fork, que no fueron discutidos en este laboratorio.

fork() requiere las siguientes librerias
#include
#include


Modifique el programa para se creen tres copias únicamente.

/* Programa bien_facil */
#include
#include
#include
#include
#include
#include
#define MAX_COUNT 2
#define BUF_SIZE 120
void main(void)
{
pid_t pid;
int i;
int x=0;
char buf[BUF_SIZE];
fork();
fork();
pid = getpid();
for (i = 1; i <= MAX_COUNT; i++) { x= rand();
sprintf(buf, "Esta linea es de pid %d, valor = %d, valor de x es %d\n", pid, i, x);
write(1, buf, strlen(buf));
} }







Copia pid 95,97,94


3) Fork() más complicado


Explique el funcionamiento del programa “gnarls”.

En main se crea una copia del proceso con el fork() el proceso hijo ejecuta ChildProcess() y el padre ejecuta ParentProcess()
Son dos procesos que se encuentran en memoria requiriendo el uso del cpu.

Explique la salida que obtuvo del programa “gnarls”, ¿qué muestra?
Ejecutas por un momento el proceso hijo y por otro momento el proceso padre obteniendo así salida de los dos procesos.




















Explique si después de ejecutar el programa “gnarls” 20 veces, considera que el manejo del procesador es justo o injusto.

Es justo porque genera prácticamente los procesos simultáneamente y terminan casi al mismo tiempo

lunes, agosto 21, 2006

 

Proyecto 1

Crear un manual

Crear anuales para ser visualizados con el man

Para crear un manual debemos crear un fichero en el directorio
/usr/local/man1
Por Ejemplo el archivo
/usr/local/man1/dwimsh

El archivo puede ser formateada con diferentes ordenes

La primera orden en una página de manual debería ser
.TH título sección
Donde:
Título Es el título de la página del manual (p.ej.,MAN)
Sección Es el número de sección donde debería ir la página (P. ej., 1 )

Luego de crean las SECCIONES
Las secciones empiezan con .SH seguido del encabezamiento.

Por Ejemplo
.TH dwimsh
.SH NOMBRE
dwimsh \-Una breve descripción que utiliza whatis es su base de datos
.SH SINOPSIS
.B dwimsh
.RI [ argumento ]
.SH DESCRIPCION
.B dwimsh
La descripción del proyecto
.P
En varios párrafos
.br
.SH
NOTAS
Pueden ir notas

.SH AUTOR
El nombre del autor


Crear un MAKEFILE

Con make de GNU se utiliza para mantener grupos de programas
El propósito de la utilidad make es determinar automáticamente qué piezas de un programa necesitan ser recopiladas, y lanzar las órdenes para recompilarlas.

Para prepararnos a utilizar make, debemos escribir antes un fichero llamado makefile que describe las relaciones entre los ficheros de nuestro programa, y las órdenes necesarias para actualizar cada fichero. En un programa, normalmente el fichero ejecutable se actualiza a partir de los ficheros o módulos objetos, los cuales a su vez construyen mediante la compilación de los ficheros con el código fuente.
Una vez que existe un makefile apropiado, cada vez que cambiemos algún fichero fuente, esta simple orden:

Make

Basta y sobra para que se realice todas las recopilaciones necesarias.
Un ejemplo de un makefile es:

d=/user/Proyecto
program: Programa1.o programa2.o
cc –o program programa1.o programa2.o
echo Programa terminado
programa1.o: $d/miprog1.h Prog1.c
programa2.o: $d/miprog2.h Prog2.c

lunes, agosto 07, 2006

 

Tarea

Deadlock

Deadlock - Muerte por bloqueo, espera indefinida por un recurso compartido que no es liberado nunca.
El problema ocurre al alternar varias tareas compartiendo recursos en forma simultánea, pudiendo anularse entre si, lo cual es algo que depende del azar.

En un sistema de multiprogramación varios procesos, pueden competir por una cantidad de recursos.
Un proceso requiere recursos y si los recursos no están disponibles, el proceso entra en estado de espera. Puede suceder que el proceso que espera nunca cambie su estado debido a que los recursos que requiere, están asignados a otros procesos, que a su vez están en estado de espera.
También surge el problema del aplazamiento indefinido en el que el proceso, aunque no este en deadlock puede esperar largo tiempo, por un evento debido a la predisposición de los controles de planificación de recursos del sistema. Hay 4 condiciones que tienen que estar presentes para que se produzca el deadlock:
1) Mutua exclusión
2) Retención y espera
3) No remoción
4) Espera circular

Encriptar
Conversión de los datos propios a un código privado e ininteligible. La encriptación transforma la información de modo que adopte un estado incomprensible, por medio de un algoritmo que responde a una clave de encriptación denominada "llave". Es necesario poseer esta llave para cerrar (encriptar) el archivo o mensaje y para "abrirlo" (desencriptarlo). La encriptación se utiliza, por ejemplo, para transmitir documentos por una red o para codificar textos de modo que no puedan ser modificados con un procesador. La protección de la información es anterior a las computadoras. Julio César enviaba mensajes en clave a sus ejércitos reemplazando letras por números ("a" corresponde a "1", "b" a "2", "c" a "3", etc.). Así, aunque un mensajero cayera en manos del enemigo, la información secuestrada no sería inteligible.

¿Qué es la criptografía?
La criptografía es la ciencia de usar las matemáticas para encriptar y desencriptar datos. Una vez que la información ha sido encriptada, puede ser almacenada en un medio inseguro o enviada a través de una red insegura (como Internet) y aún así permanecer secreta. Luego, los datos pueden desencriptarse a su formato original.

Encriptación en redes wireless
WEP

Este esquema de encriptación [8] fue incluido en el estándar 802.11 y desde entonces ha sido
ampliamente criticado, debido a sus más que demostradas debilidades. Está basado en clave simétrica, por lo que tanto el cliente como la estación base deben conocer la clave a utilizar. El tamaño de ésta puede ser de 40 ó 104 bits, y se completa con un vector de inicialización de 24 bits.
Precisamente, este corto vector ha sido uno de los principales puntos débiles de este esquema. La encriptación se basa en el algoritmo RC4, y utiliza un algoritmo de integridad CRC32 que genera un ICV (Integrity Check Value) independiente de la clave utilizada, lo que también ha ocasionado vulnerabilidades a nivel de seguridad. Se han publicado diversos artículos sobre cómo romper el esquema de encriptación WEP, entre ellos

TKIP
Este esquema de encriptación surge como alternativa al WEP intentando solucionar sus problemas de seguridad. Uno de los requisitos principales de este nuevo esquema era que pudiera funcionar en el mismo hardware que el antiguo WEP, con una simple actualización del firmware. TKIP también utiliza un algoritmo de encriptación RC4, lo que implica nuevamente clave simétrica compartida entre el cliente y la estación base. En este caso las claves utilizadas (llamadas Temporal Key) son de 128 bits, que son actualizables cada cierto número de paquetes, y el vector de inicialización es de 48 bits, el cual es reiniciado a 0 cada vez que se fija una nueva clave temporal. Para la encriptación se pueden utilizar unas claves derivadas de la TK, llamadas PPK (Per-Packet Key) que son generadas de manera dinámica por cada paquete enviado. Para la integridad de la información, TKIP utiliza MIC (algoritmo de Michael) que introduce un valor de 8 bytes antes del CRC. Este valor es encriptado utilizando una combinación de la información enviada, el vector de inicialización, la dirección origen y destino.

CCMP
CCMP (Counter Mode with CBC-MAC Protocol) es un esquema de encriptación que utiliza AES
(Advanced Encryption Standard), uno de los algoritmos de clave simétrica más seguros en la actualidad. En el caso de redes WIFI este esquema se integra en el estándar WPA2, y utiliza laves de 128 bits, vector de inicialización de 48 bits y chequeo de integridad. Este esquema de encriptación hace necesario el cambio de hardware para su uso, por lo que no mantiene la compatibilidad con esquemas de anteriores, como ocurría con el TKIP.

buffer
Un buffer en informática es un espacio de memoria, en el que se almacenan datos para evitar que el recurso que los requiere, ya sea hardware o software, se quede en algún momento sin datos.
Algunos ejemplos de aplicaciones de buffers son:
En Audio o video en streaming por internet. Se tiene un buffer para que haya menos posibilidades de que se corte la reproducción cuando se reduzca o corte el ancho de banda.
Un buffer adecuado permite que en el salto entre dos canciones no haya una pausa molesta.
Las grabadoras de CD o DVD, tienen un buffer para que no se pare la grabación. Hoy en dia hay sistemas para retomar la grabación pero antes suponia que el CD no quedaba bien grabado y muchas veces era inservible.

Caché

En informática, un caché es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso aparente al dato sea menor.
Por otro lado el término caché puede utilizarse también para una zona de memoria de disco denominado caché de disco (Disk cache o Cache buffer en inglés).

Spool

El spool es un directorio donde se alojan los trabajos o las tareas en forma de fichero que el demonio debe atender. La estructura del spool es el de una cola FIFO (first in, first out) en la que los trabajos son atendidos en el orden temporal en el que van llegando
Un sistema de spool es utilizado para incrementar la capacidad de ejecución del sistema, al desasociar un programa de la lenta velocidad de los dispositivos. Ej. Impresoras. Si un programa envía líneas a una impresora, en realidad son enviadas a un dispositivo más rápido(disco). Se almacenan temporalmente hasta ser impresas. Varios trabajos en ejecución que generan líneas de spool puede ínter bloquearse si el espacio disponible se llena ates de completarse alguno de estos trabajos.

Protocolo

Un protocolo es un conjunto de reglas establecidas entre dos dispositivos para permitir la comunicación entre ambos.

Windows XP
Recordemos primero la posibilidad de direccionamiento de memoria de los sistemas de 32 y 64 bits (XP 32 bits, W2000/W2003 32 bits, XP 64 bits y W2003 64 bits). El concepto es igualmente ampliable a Linux y otros sistemas operativos.
* En 32 bits: aunque el bus de direcciones ya es de 64 bits, se puede direccionar (teóricamente):
Modo Normal: 4 GB de memoria (2 elevado a 32)Modo PAE : 64 GB de memoria (16 veces más debido a que se pueden usar 4 bits de uno de los registros de control).
* En 64 bits: se pueden usar xx bits del bus de direcciones: (siempre está activo el modo PAE)
La lista siguiente contiene información acerca del número de procesadores que se admiten en diversos y Windows XP 64 - Bit Edition:

Edición Windows Server 2003 Datacenter x 64 Edition admite hasta 64 procesadores.

Windows Server 2003 Enterprise x64 Edition supports up to 8 processors.

Edición Datacenter de Windows Server 2003 x 64 Edition admite hasta 4 procesadores.

Windows XP Professional x64 Edition supports up to 2 processors.
Para agregar más procesadores en un equipo que tiene sólo un procesador, se deben cumplir las condiciones siguientes:

El equipo tiene una placa que admite varios procesadores.

Los procesadores que desea agregar al equipo utilizan la misma velocidad y que avanza mismo paso a paso.

Cualquier actualización de BIOS o unas actualizaciones de controladores a la placa que desea aplicar se instalan en el equipo antes de agregar los procesadores adicionales.


This page is powered by Blogger. Isn't yours?