Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Oblivi0n

#201
GNU/Linux / Re: ¿Qué es journaling?
20 Julio 2013, 16:50 PM
Cita de: OmarHack en 20 Julio 2013, 16:16 PM
Y que desventajas tiene? porque en un tuto me recomiendan un sistema de archivos sin journaling.

A nivel de rendimiento "ninguno", la carga que supone crear/cargar/borrar el archivo creado por el Journaling es infima.
Si quieres un booteo rápido esto no debería de afectar.
#202
GNU/Linux / Re: ¿Qué es journaling?
20 Julio 2013, 16:14 PM
El journaling es una técnica que permite que la estructura de datos que "gobierna" el disco duro no sufra fallos en caso de un apagado brusco por ejemplo.

Es decir, los discos duros tiene un sistema de ficheros , en el cual se apuntan los registros en donde se encuentran los ficheros. Mediante el journaling esta estrcutura de datos suele copiarse a un fichero (con algo mas de información) para recuperarla en caso de fallo.


Beneficios: En caso de fallo del sistema, y una corrupción del sistema de ficheros, este puede ser recuperado al volver a encender el ordenador.
#203
Para programar en C hace falta un poco mas que conocer el lenguaje  ;)
#204
Cita de: 0xDani en 18 Julio 2013, 16:15 PM
Seriously? Puedes darme una referencia fidedigna en la que se indique esto?

http://stackoverflow.com/questions/12626929/pointer-c-declaration
#205
Cita de: eferion en 18 Julio 2013, 15:53 PM
Cuando tú ejecutas un programa el sistema operativo reserva memoria y se la asigna al programa para que pueda trabajar.

La memoria, como norma general, está paginada y/o segmentada. Básicamente esto quiere decir que está dividida en fragmentos.

El sistema operativo dispone de un algoritmo que elige, entre los disponibles, qué segmento de memoria va a asignar al programa... dicho algoritmo suponemos que es LTI ( lineal e invariante en el tiempo ), es decir, que a una misma entrada, en unas mismas condiciones, generará siempre la misma salida.

Por tanto, si tu ejecutas varias veces seguidas tu programa sucederá lo siguiente:

Ejecutas el programa ( 1ª vez )
El sistema operativo reserva un fragmento de memoria y se lo asigna.
El programa te muestra los desplazamientos.
El programa finaliza y el fragmento de memoria es liberado.
Ejecutas el programa ( 2ª vez )
El sistema operativo, te asigna el mismo fragmento de memoria.
El programa te muestra los desplazamientos.
El programa finaliza y el fragmento de memoria es liberado.
...

Si quieres tener resultados diferentes prueba a poner una pausa en el programa, lo ejecutas una vez y, sin cerrarlo, lo vuelves a ejecutar. Verás como entonces sí te cambian las posiciones de memoria.

No es exactamente así. El programa siempre muestra las mismas direcciones de memoria porque las direcciones que estas mostrando son direcciones virtuales (asignadas en tiempo de compilación). Si tu ejecutas 2 veces el programa, no se te asignara 2 veces el mismo bloque (si es muy seguido si, cumpliendo el principio de localidad).

Las direcciones virtuales son traducidas luego por la MMU a direcciones físicas.

Cita de: Caster en 18 Julio 2013, 15:55 PM
Aprovecho este post para preguntar una cosa, que diferencia hay entre estas dos declaraciones:

int* ptrArray1;

int *ptrArray1;

Fijate:

Si hacemos int* ptr1,ptr2,ptr3;  entonces ptr1,ptr2 y ptr3 son punteros a un entero.
Si hacemos int *ptr1,ptr2,ptr3;  entonces solo ptr1 es un punterom. El resto son variables enteras.
#206
Depende del compilador se almacenan de forma lineal o no.

C# tiene un modo de definir las matrices para que se almacenen de forma lineal matriz[x,y].
Se ve clara la diferencia respecto a matriz
  • [y];

    Un vector es como antes se comentaba : int vector[2] = {1,2}

    Mientras que una matriz es int vector[2][2] = {{1,2},{3,4}};

    Es mas rapido trabajar con vectores principalmente porque producen menos fallos de pagina, y el acceso es ligeramente mas rapido.

#207
Los accesos a memoria en un vector son consecutivos (mas rapidos), en una matriz no.

#208
Libro: Sistemas Operativos
Autor: William Stallings
Editorial: Pearson

Es un tochaco,la 5ª edición impresa en castellano son unas 900 paginas, a mi particularmente me encantó.

El stallings siempre fue considerado como la biblia de los sistemas operativos. Te lo explica casi todo. Además, despues de explicar la teoría (que es muchísima). Explica como resuelven cada apartado (gestión de memoria física/virtual, gestion de ficheros,...etc etc) cada grupo de sistemas operativos (Unix, Linux, Windows y Solaris). El libro contiene un proyecto de programación que tiene que realizar uno mismo a medida que avanza en el libro , yo no lo hice porque lo use como libro base para la asignatura de Sistemas Operativos (2º Ingenieria Informática).

Es un libro excelente, quizá muy técnico y muy avanzado en función de los conocimientos que tengas, no de programación, que también sería deseable tener un buen nivel de programación en C, sino de la arquitectura de los computadores. En muchas ocasiones para entender bien ciertos conceptos. Además, también es importante tener nociones de algoritmia, dado que a la hora de implementar muchas rutinas, vas a tener que tener en cuenta ciertas cosas, como por ejemplo, en la gestión de memoria, que no surja la anomalía de Belady, o que en gestión de procesos un proceso sufra de inanición de recursos.

En definitiva, este es un libro excelente, pero si te parece muy lejos de tus capacidades, dime que buscas saber de sistemas oeprativos y puede que tenga algo mas acorde.

Un saludo.
#209
A bajo nivel, la suma la realiza la ALU, aquí tienes el circuíto que la realizaría (lo han complicao un poco xD)

#210
Java / Estructuras de datos en Java
10 Julio 2013, 17:29 PM
Bueno, os dejo unas prácticas de la asignatura Estructuras de Datos (2º Ing.Informática). Os subo solo en las que he sacado un 10 que son las que evidentemente están mas correctas. Faltaría una practica que tiene algún fallo gordo (Concretamente, modelado de un Grafo).

Las practicas pueden tener algo de código extra a parte del de la estructura de datos, debido a la practica en cuestión. Algunas no están comentadas, otras si, otras en parte, otras en inglés , esto suelo hacerlo un poco aleatorio a veces  :laugh:

De momento las que tengo son las siguientes:

1) Arboles binarios de busqueda:
Link: https://docs.google.com/file/d/0B7OFy99INLxjWWVqc0ZZcDBJVXM/edit?usp=sharing
Wikipedia: http://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda

2) Arboles Adelson-Velsklii Landis (Arbol AVL)
Link: https://docs.google.com/file/d/0B7OFy99INLxjVUhJX3RPaG94OXc/edit?usp=sharing
Wikipedia: http://es.wikipedia.org/wiki/%C3%81rbol_AVL

3) Colas de prioridad(La clase probablemente se llame Binary Heap, se debe a que las colas de prioridad son un monticulo binario)
Link: https://docs.google.com/file/d/0B7OFy99INLxjZ003eTVHMkhiLUU/edit?usp=sharing
Wikipedia: http://es.wikipedia.org/wiki/Cola_de_prioridades_(estructura_de_datos)

4)Tablas Hash (abiertas y cerradas)

Link: https://docs.google.com/file/d/0B7OFy99INLxjTXBsZ0lhMUhVWWc/edit?usp=sharing
Wikipedia: http://es.wikipedia.org/wiki/Tabla_hash


Los codigos pueden contenter errores, aunque no deberían de ser muy graves. Soy consciente de que la función isAPE de arbol AVL y arbol BB está erronea, pero no la pienso modificar  :laugh:

DADO QUE SON PRÁCTICAS UNIVERSITARIAS, SI ALGUIEN ENCUENTRA INFORMACIÓN COMO NOMBRE, DNI O CORREO, POR FAVOR, MANDADME UN MP PARA QUE LO QUITE, ESTAN REVISADAS, PERO PUEDE QUE SE ME HAYA ESCAPADO ALGO