martes, 19 de noviembre de 2013

SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

Sincronización y Comunicación entre Procesos

Los procesos es la abstracción de un programa en ejecución se dividen en dos tipos los independientes y los cooperantes, los procesos independientes son aquellos que no necesitan la ayuda de otro proceso pata poderse ejecutar. Los procesos cooperantes son aquellos que están echos para trabajar conjuntamente en alguna actividad.

Independientemente de esto los procesos independientes como los cooperantes tiene que comunicarse de algún modo entre si y estas comunicaciones pueden ser de dos tipos

interacciones motivadas por que los procesos comparten o compiten por el acceso a recursos físicos o lógicos.

interaccion motivada por que los procesos se comunican y sincronizan entre si para alcanzar un objetivo comun por ejemplo un copilador.

Exclusion mutua

los mutexson diseñados para la exclusion y es el mas cencillo. los mutex son una especie de filtros en el cual se pueden ver dos estados:

lock: intenta bloquear el mutex. si el mutex ya esta bloqueado por otro proceso, el proceso que realiza la operacion se bloquea. en caso contrario, se bloquea el mutex si bloquear el proceso.

unlock: desbloquea el mutex. si existen procesos bloqueados en el, se desbloqueara a uno de ellos, que sera el nuevo proceso que quiera el mutex.





En la Figura 4.2.1 se representa de forma gráfica una situación en la que dos procesos ligeros intentan acceder de forma simultánea a ejecutar código de una sección crítica utilizando un mutex para protegerla.

Una variable condicional es una variable de sincronización asociada a un mutex que se utiliza para bloquear a un proceso hasta que ocurra algún suceso. Las variables condicionales tienen dos operaciones atómicas para esperar y señalizar:


c_wait: bloquea al proceso que ejecuta la llamada y le expulsa del mutex dentro del cual se ejecuta y al que está asociado la variable condicional, permitiendo que algún otro proceso adquiera el mutex. El bloqueo del proceso y la liberación del mutex se realiza de forma atómica.

 c_signal: desbloquea a uno o varios procesos suspendidos en la variable condicional. El proceso que se despierta compite de nuevo por el mutex.

Definiciones de Dijkstra:
Algoritmo empleado en la obtención de la trayectoria más corta en grafos. Llamado así por su creador EdsgerWybeDijkstra, holandés nacido en 1930.

Condición de carrera:
Es una expresión usada en electrónica y en programación para Sistemas Operativos con capacidad de multiprocesamiento.

semaforo

Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.

VER MAS

THREADS

THREADS

Son la agrupación de trozos de programa junto con el conjunto de registros del procesador que utiliza una pila de maquina el conjunto de los registros y de la pila de cada se denomina contexto.
Se ejecuta secuencialmente y se puede interrumpir de forma que el procesador pueda dar paso a otro hilo. A diferencia de los procesos, los hilos pueden compartir recursos entre si.
Creación y ciclo de vida.
- Creación: Al crearse un proceso, se crea el hilo correspondiente, posteriormente un hilo del proceso puedo crear otro. Al nuevo proceso, se le proporciona su propio registro de contexto y espacio de pila, y se lo coloca en la cola de listos.
 - Bloqueo: Cuando el hilo requiere esperar por un evento, se bloquea, almacenando los registros de usuario, contador de programa y punteros de pila.
- Desbloqueo: Cuando ocurre el evento que el hilo esta esperando, pasa a la cola de Listos.
 - Finalización: El hilo se completa, y se liberan registro de contexto y pila.

Multiprocesamiento simétrico (SMP - SymmetricMulti-Processing)
Se trata de un tipo de arquitectura donde dos o más procesadores comparten una única memoria central.

Concepto de LWP
Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros.




Cada proceso ligero tiene información propia que son fundamentalmente:




VER MAS

PERISFERICOS DE ENTRADA Y SALIDA

DISPOSITIVOS DE ENTRADA Y SALIDA

Los dispositivos de entrada y salida son el conjunto de aparatos tecnológicos que usan las distintas unidades de un sistema de procesamiento de información como una computadora para comunicarse unas con otras.
Existen varios tipos de dispositivos de entrada y salida y unos que pueden ser de las dos formas, en estos dispositivos se destacan los siguientes:

De entrada:

Teclado
Ratón
Joystick
Lápiz óptico
Micrófono
Webcam
Escáner
Escáner de código de

De salida:

Monitor
 Altavoz
 Auriculares
 Impresora
 Plotter
 Proyector


 Entrada/salida:

Unidades de almacenamiento
 CD
 DVD
 Modem
 Fax
 Memory cards
 USB
 Router

 Pantalla táctil



Transferencias externas o de entrada/salida (E/S); ocurren entre los elementos exteriores y la placa-base. Básicamente son transferencias entre dispositivos exteriores (periféricos) y el procesador, o entre periféricos y memoria.

Transferencias Internas; ocurren entre los elementos internos. Mayoritariamente se trata de transferencias entre el procesador y la memoria, o entre las diversas posiciones de memoria. Pero también (y esto es importante) existen transferencias entre los anteriores y otros dispositivos hardware que conectan directamente con el bus. Considere que al fin y al cabo, incluso los dispositivos considerados "externos" o periféricos, conectan con algún dispositivo (por ejemplo, un adaptador) que está a su vez conectado al bus de la placa base.






jueves, 14 de noviembre de 2013

IMAGEN QR

Como hacer una imagen QR?

Es un sistema que permite almacenar información en una especie de código de barras de última generación.

como crear una imagen QR

  • Se crea una carpeta ne la raíz .
  • En ella se guarda una imagen y el texto que se va a ocultar en la imagen.
  • Comprimimos el texto en zip.
  • Luego  vamos a  CMD.
  • Nos ubicamos en el disco que tiene nuestra carpeta guardada.
  • Nos ubicamos en la carpeta creada.
  • Escribimos copy/b texto.zip + imagen.jpg nuevaimagen.jpg.


SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS


El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.

en pocas palabras el sistema operativo es un administrador de recursos de programas (software) del computador. 



mas información


sábado, 12 de octubre de 2013

COMANDOS LINUX

COMANDOS LINUX



1. Listar todos los archivos, incluidos los ocultos, del directorio raíz.

ls -a


2. Listar todos los ficheros del directorio HOME mostrando su número de
inodo.

ls -i


3. Listar todos los archivos del directorio bin.

ls /bin


4. Listar todos los archivos del directorio tmp.

ls /tmp


5. Listar todos los archivos del directorio usr y sus subdirectorios.

ls -R /usr


6. Mostrar el día y la hora actual.

date +"%A %D - %r" #ó simplemente DATE


7. Ocultar el archivo mensaje del directorio dir3.

mv PRUEBA/dir3/mensaje PRUEBA/dir3/.mensaje


8. Con un solo comando posicionarse en el directorio $HOME.

cd /HOME


9. Mover el directorio dir31 y sus subdirectorios debajo de dir2.

mv PRUEBA/dir3/dir31 PRUEBA/dir2


10. Mostrar por pantalla los archivos ordinarios del directorio HOME y sus
subdirectorios.

ls -R $HOME


11. Borrar los archivos y directorios de dir1, incluido el propio directorio.

rm -rf PRUEBA/dir1


12. Mover el directorio dir312 debajo de dir3.

mv PRUEBA/dir2/dir31/dir312 PRUEBA/dir3


13. Crear un enlace simbólico al directorio dir1 dentro del directorio dir3
llamado enlacedir1.

ln -s /home/usuario1/PRUEBA/dir1 PRUEBA/dir3/enlacedir1


14. Visualizar la trayectoria completa del directorio actual. Crear dos
directorios llamados correo y fuentes debajo del directorio actual.

$ pwd
/home/usuario1/PRUEBA
$ mkdir correo fuentes


15. Posicionarse en el directorio fuentes y crear los directorios dir1, dir2,
dir3.

$ cd fuentes
$ mkdir dir1 dir2


16. Crear el directorio menus bajo correo sin moverse del directorio actual.

mkdir ../correo/menus


17. Visualizar la lista de todos los ficheros que pertenezcan a root.

find / -user root -type f


18. Sacar por pantalla un listado completo (buscar comando ps) de los
procesos que está realizando el usuario root.

ps -U root -u root u


19. Crear el archivo proceso con los procesos que no tienen ningún terminal
asignado.

ps -U root -u root u | grep -v "`ls /dev`"


20. Sacar por pantalla el listado de todos los usuarios conectados ordenados
por número de proceso asignado.

ps axu


21. Averiguar cuál es la actividad actual del sistema. Para ello visualice un
listado completo del estado de todos los procesos que se están ejecutando
en el sistema.

top -d .1 -n 10


22. Extraer los nombres de usuario (primer campo) del sistema

cat /etc/passwd | cut -d ':' -f 1


23. Cambiar la fecha de creación de un archivo ya previamente creado

$ touch -t 9910011101 good
$ ls -l good


24. Monitorear la ocupación de las particiones en los discos

df -lh

sábado, 21 de septiembre de 2013

PROCESOS E HILOS


Procesos e hilos



Un hilo (proceso ligero) es una unidad básica de utilización de la CPU, y consiste en un contador de programa, un juego de registros y un espacio de pila.

Los hilos dentro de una misma aplicación comparten:
  • La sección de código.
  • La sección de datos.
  • Los recursos del SO (archivos abiertos y señales).
Un proceso tradicional o pesado es igual a una tarea con un solo hilo.

Los hilos permiten la ejecución concurrente de varias secuencias de instrucciones asociadas a diferentes funciones dentro de un mismo proceso, compartiendo un mismo espacio de direcciones y las mismas estructuras de datos del núcleo.

Mas informacion

Como hacer una imagen QR?

Es un sistema que permite almacenar información en una especie de código de barras de última generación.

como crear una imagen QR


  • Se crea una carpeta ne la raíz .
  • En ella se guarda una imagen y el texto que se va a ocultar en la imagen.
  • Comprimimos el texto en zip.
  • Luego  vamos a  CMD.
  • Nos ubicamos en el disco que tiene nuestra carpeta guardada.
  • Nos ubicamos en la carpeta creada.
  • Escribimos copy/b texto.zip + imagen.jpg nuevaimagen.jpg.