martes, 18 de mayo de 2010

Asignación de espacios para archivos

18 de mayo de 2010
ASIGNACIÓN ENLAZADA/ENCADENADA
Cada archivo es una lista enlazada de bloques de disco: los bloques pueden estar dispersos en cualquier parte del disco
En lo que respecta a la admon de espacio libre, no hay desperdicio d espacio
No hay acceso aleatorio
No hay fragmentación externa
Se adapta mejor a archivos secuenciales
Asignación indexada
Tiene todos lo punteros untos en el bloque de índices
Vista lógica
El tamaño del archivo esta limitado al número de índices que quepan

Ubicación indexada
• Requiere de tabla índice
• Acceso aleatorio
• Acceso denamico sin fragmentación externa, pero hay sobre costo en el bloque de índice
Que tan grande debe ser el bloque índice
• Lo suficiente para contener los distintos índices:
o Esquema enlazado. Dentro del bloque las últimas direcciones indican otros bloques de dirección
o Índice multinivel. Bloque índice de primer nivel y de segundo nivel. El tercero es el de datos. Con 4096 de tamaño de bloque se tienen 1024 punteros de 4 bytes que apuntarían a 1048576 bloques de datos o 4 GB de datos
o Esquema combinado. Ej. 17 punteros de bloque en el bloque de índice o I-nodo. Los primeros 12 son directos, 3 a bloques indirectos, luego un indirecto doble, e indirecto triple




BUSCAR LA FORMULA DE TALMACENAMIENTO EN EL DISCO DURO (TAMAÑO MÁXIMO DE ARCHIVO)

D*Tb+IS*(Tb/db)*Tb+ID*(Tb/db)^2*Tb+IT*(TB/db)^3*Tb...
Tb tamaño del bloque
D punteros directos
IS indirectos simples
ID indirectos dobles
IT indirectos triples
db: Tamaño direcciones a bloque


ADMINISTRACIÓN DEL ESPACION LIBRE

esquema de bloques encadenados

jueves, 22 de abril de 2010

PLANIFICACIÓN MULTIPLES PROCESADORES

La planificación es más compleja cuando se tienen varios procesadores

ASIGNACIÓN DE PROCESOS A PROCESADORES

• Trata cada procesador como un recurso colectivo y asigna proce3sos a procesadores por demanda
• Un porceso se vincula permanentemente a un procesador
o Estrategia conocida como planificación de grupo o pandilla (gang)
o Dedica una cola a corto plazo por cada procesador
o Menos sobrecarga
o El procesador puede estar ocioso mientras otro procesador tiene trabajo acumulado
• Cola global
o Procesos planificados sobre cualquier procesador disponible
• Arquitectura maestro/esclavo
o Las funciones clave del núcleo ejecutan siempre en un procesador concreto
o El maestro es responsable de la planificación de trabajos
o El esclavo envia una solicitud al maestro
o Desventajas
 Un fallo el maestr hace que falle el sistema completo
 El maestro puede llegar a ser un cuello de botella para el rendimiento del sistema
• Arquitectura de camaradas
o El nucleo puede ejecutarse en cualquier procesador
o Cada procesador se auto-planifica
o Complica el sistema operativo
 Asegura que dos procesadores no escogen el mismo proceso

martes, 23 de marzo de 2010

MAQUINAS VIRTUALES

Concepto inventado por IBM como un método de tiempo compartido para los mainframes (VM/370).
“Una máquina virtual es una copia completamente protegida y aislada del hw de la máquina subyacente” IBM
Una máquina virtual aprovecha en forma lógica el enfoque de niveles. Considera el hardware y el kernel como si fueran los dos el hardware.
Una máquina virtual proporciona una interface idéntica al hardware desnudo subyacente.
El sistema operativo crea una ilusión a los múltiples procesos de cada uno esta ejecutandose sobre su propio procesador con su propia memoria (virtual)

La filosofía de la máquina virtual funciona a nivel de hardware hasta el nivel de lógica digital; luego se pasa a una capa que prepara el sistema para tener una vista distinta a la que el hardware me ofrecería, puede ser parcial o total, que es la máquina virtual
Por encima de la máquina virtual, a esta se le pone un software que me descomplejice el hardware.
Una desventaja es que le agrega niveles a mi máquina multinivel; entonces hay un sobrecosto; aunque hoy en día no es notorio.

“cualquier problema en la ciencia computacional puede ser resuelto con otro nivel de indireccion” David Wheeler

Arquitecturar Vmware
Otros ejemplos:
• BOCHIS: Un programa bajo licencia GPL, programado en C++ para simular o emular un ordenador donde instalar uns sistema operativo y poder ejecutar aplicaciones en él.
• QEMU: Programa que ejecuta máquinas virtuales dentro de un sistema operativo, ya sea Linux, Windows, etc. Esta máquina virtual puede ser cualquier tipo de microprocesador o arquitectura (x86, x86-64, powerPC, MIPS, SPARC, etc).
• VirtualPC: Programa desarrollado por Connectix y comprado por microsoft para crear ordenadores virtuales. Es decir, su función es emular un hardware sobre el que funciones varios sistemas operativos, con esto se puede conseguir ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se comuniquen entre ellos.

Para – virtualización:
• Presenta el invitado uns sistema similar, pero no identico al hw
• El invitado debe modificarse para correr en el hw paravirtualizado
• El invitado puede ser un sistema operativo o en el caso de solaris aplicaciones corriendo en conectores

MONITORES DE MÁQUINA VIRTUAL
Es la capa de software que me permite ocultar o virtualizar un hardware o un software que tengo por debajo.
• Una componenete clave de mas VM son los monitores de maquina virtual (VMM) que proporciona una capa entre los ambientes de sortware y el hardware, que es programable, transparente al software que tiene encima y hace diferente el hardware sobre el que esta montado.
• Porcesos y las VM.
o En un proceso de VM, el software de virtualización traduce un conjunto de instrucciones del OS y de nivel de usuario convirtiendo un plataforma en otra.
o En un sistema de VM, el software de virtualización traduce la ISA (arquitectura del conjunto de instrucciones) utiliza par una plataforma de hardware en otra.

Ventajas y desventajas de las máuinas virtuales;:
• El concepto de máquina virtual proporciona completa protección de los recursos del sistema. ya que cada máquina virtual esta aislada de las otras máquinas virtuales. El aislamiento, no permite el compartir en forma directa los recursos
• Un sistema de máquina virtual es una perfecto vehiculo para la investigación y el desarrollo de los so. El desarrollo del sistema se hace sobre la máquina virtual, a cambio de realizarlo sobre la máquina física de tal forma que no afecta la operación

Ambientes de lenguajes de alto nivel:
A. Ambiente convencional donde se distribuye el código objeto de la plataforma tradicional
B. Ambiente de VM donde una VM dependiente de plataforma ejecuta código portable intermedio.

domingo, 21 de marzo de 2010

bitacora 2

Después de revisar documentos en internet y en libros acerca de java, ya podemos decir que tenemos un conocimiento acerca de este lenguaje mucho mayor que el que teníamos hace dos semas, aplicando lo aprendido y apoyándonos en la internet, ya tenemos implementado el código para abrir y guardar un archivo. Consideramos que este es un avance muy significativo ya que al tener esto es mucho mas fácil continuar con lo que se necesita.

Lo que viene…
Vamos a continuar con la revisión de sintaxis, para esto hemos encontrado unos métodos bastante interesantes, estos son:
readLine: este método lee toda una línea de texto hasta que encuentra un enter y la coloca en una cadena.
StringTokenizer: este método sirve para buscar más fácilmente una subcadena separada mediante caracteres especiales, dentro de una cadena de caracteres.
hasMoreTokens: este método sirve para establecer si hay más Tokens para evaluar.

martes, 16 de marzo de 2010

Características de Win 32

16 de marzo de 2010
CARACTERÍSTICAS DE WIN 32
• Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT, Windows 2000, XP
• No es un estándar
• API totalmente distinto a POSIX
• Los recursos se referencian mediante manejadores
• Nombres de4 funciones largos y descriptivos:
o GetFileAttributes
o CreateNamePipe
• Dispone de tipos de datos predefinidos:
o BOOL
o DWORD
o TCHAR
• Las funciones devuelven en general true en caso de éxito y false en caso de error

Administración de Procesos:
• Un proceso es un programa en ejecución. Un proceso para lograr sus objetivos requiere algunos recursos como tiempo de CPU, memoria, archivos, y dispositivos de entrada y salida
• El sistema operativo es responsable de las siguientes actividades relacionadas con la admon de procesos:
o Creación y eliminación
o Suspensión y reanudación
o Proveer los mecanismos para:
 Sincronización de procesos
 Comunicación entre procesos.
Administración de memoria:
• La memoria es un gran arreglo de palabras y bytes, cada uno con su propia dirección. ES un repositorio de acceso rápido de datos compartidos por la CPU y los dispositivos E/S.
• La memoria principal es un dispositivo de almacenamiento volátil
• El sistema operativo es responsable por las actividades relacionadas con la admon de la memoria:
o Llevar el rastro de las componentes de la memoria que están siendo usadas y quien las está usando
o Decidir que procesos cargar en memoria cuando hay espacio disponible
o Asignar y liberar espacio de memoria en la medida de las necesidades
Administración de memoria secundaria:
• Dado que la memoria principal es volátil y muy pequeña para acomodar todos los datos y programas permanentemente, el sistema de computación debe proveer almacenamiento secundario para respaldar la memoria principal.
• La mayoría de los computadores modernos utilizan discos como medio principal de almacenamiento en línea, tanto para programas como para datos.
• El sistema operativo es responsable por las siguientes tareas relacionadas con la admon secundaria:
o Admon del espacio libre
o Admon de espacio
o Planificación del disco.
Administración de Archivos:
• Un archivo es una colección de información relacionada definida por su creador. En general los archivos representan programas (tanto en formato fuente como objeto) y datos.
• El sistema operativo es responsable por las siguientes actividades en relación con la admon de archivos

o Creación y borrado de archivos
o Creación y borrado de directorios
o Soporte de primitivas para manipular archivos y directorios
o Mapeo de archivos en almacenamiento terciario
o Respaldo de archivos en medios de almacenamiento estables (no volátiles)
Interfaz de usuario:
• Manipulación de archivos y directorios
• Herramientas de desarrollo de aplicaciones
• Comunicación de desarrollo de aplicaciones
• Comunicación con otros sistemas
• Información de estado
• Configuración de la propia interfaz y entorno
• Intercambio de datos entre las aplicaciones
• Control de acceso
• Sistema de ayuda intercambio
Tipos:
• Interfaces alfanuméricas (interpretes de mandatos)
• Interfaces gráficas.

Sistema interprete de comandos:
• Muchos comandos se dan al sistema operativo por instrucciones de control que tienen que ver con:
o Admon y creación de procesos
o Manejo de E/S
o Admon de memoria secundaria
o Admon de memoria principal
o Acceso al sistema de archivos
o Protección
o Redes
Interprete de comandos:
• Programa cuya función es obtener los mandatos del usuario y ordenar4 su ejecución al sistema operativo
• Hoy dos tipos básicos:
o Interpretes de mandatos internos
o Interpretes de mandatos externos
• Casi todos los mandatos son sentencias de control para los gestores del SO descritos (procesos, E/S, ficheros, protección y comunicaciones)
• Puede haber múltiples interpretes de mandatos sobre el mismo SO; la visión del mismo SO cambia el usado

jueves, 11 de marzo de 2010

Protección del Hardware

11 de Marzo del 2010

PROTECCIÓN DE HARDWARE

Operación en modo dual:

· El compartir los recursos del sistema requiere que el SO se asegure que un programa incorrecto no pueda propiciar que otros programas se ejecuten de forma incorrecta.

· Proporciona soporte al hardware para diferenciar entre al menos dos modos de operación.

1. Modo Usuario: Ejecución de parte del usuario

2. Modo Monitor (también modo supervisor o modo del sistema): Ejecución realizada pro parte del sistema operativo. “tiene todo el control sobre el sistema

· Se adiciona al hardware un bit de moso para indicar el modo actual: monitor(0) o usuario (1).

· Cuando sucede una interrupción o falle el hardware se cambia a modo monitor.

· Las instrucciones priviligiadas solo pueden ser ejecutadas en el modo supervisor.

Protección de E/S

· Todas las instrucciones de E/S son privilegiadas.

· Debe asegurarse que el programa del usuario no pueda tener el control del computador en el modo supervisor (Ej: un programa de usuario que, como parte de su ejecución, almacena una nueva en el vector de interrupciones)

Protección de memoria

· Debe proveer protección de memoria al menos para el vector de interrupciones y el vector de las rutinas de servicios de interrupción.

· Con el fin de tener la protección de memoria, se agregan dos registros que determinan el rango de las direcciones validas que un programa puede acceder:

o Registro base: Contiene la dirección legal física más pequeña.

o Registro límite: Contiene el tamaño del rango

o La memoria fuera del rango es protegida.

Cuando se esta ejecutando en modo supervisor, el SO tiene acceso irrestricto tanto a la memoria del usuario como la del supervisor.

Las instrucciones de carga para el registro base y el límite son privilegiadas.

PROTECCIÓN DE CPU

Se hace a través del concepto de temporizador.

· Temporizador: Interrumpe al computador después de un período especifico para garantizar que el SO mantenga el control.

o El temporizador se decrementa por cada pulsación del reloj.

o Cuando el temporizador alcanza el valor de 0, ocurre una interrupción

· El temporizador se utiliza comunmente para implementar tiempo compartido

· El temporizador tambien se utiliza para calcular el tiempo actual

· La carga del temporizador es una instrucción privilegiada.

Bitacora

Dentro de nuestro cronograma de trabajo establecimos un plan de desarrollo de la CHmáquina; este consiste en 4 grandes campos que son:

1. Elección del lenguaje de programación en la semana 1: Para elegir el mejor lenguaje de programación, nos dimos a la tarea de estudiar de una manera general cada uno de los 3 lenguajes que son:

o Python: Para estudiar este lenguaje pedimos que nos abrieran un curso de programación orientada a objetos en dirección de carrera, que estamos viendo los días lunes; y después de estudiar este lenguaje nos dimos cuenta que se nos complica mucho desarrollar un CHmáquina que corra sobre la web; además de que el entrono gráfico que maneja es más complicado que el de otros lenguajes; sin embargo aún vemos el curso y lo vamos a terminar, puesto que nos arece importante conocer y utilizar diferentes lenguajes que nos puedan servir para otro tipo de aplicaciones.

o Delphi: Para estudiar este lenguaje recurrimos a libros y tutoriales, y nos pareció muy interesante, pero muy complicado a la hora de desarrollar software que corra sobre la web; por este motivo no profundizamos mucho en este lenguaje.

o Java: después de indagar bastante sobre este lenguaje, nos dimos cuenta que es el más indicado para desarrollar la CHmáquina, puesto que tiene mejores características para crear interfaz gráfica, además maneja más facilidades para correr sobre la web.


Por esta razón nos inscribimos en el SENA virtual a un curso de java, hace 2 semanas, el cuál fue abierto apenas hace una semana; con este curso de variables de control e interfaz gráfica, vamos a adquirir las mejores herramientas para desarrollar el software propuesto. Es por este motivo que el código fuente que llevamos no es el más extenso puesto que estamos en proceso de aprendizaje y de aplicación.

2. En las semana 2 de nuestro cronograma nos dimos a la tarea de analizar de manera detallada el propósito del CHmáquina; y nos encontramos con una serie de incógnitas que fuimos aclarando con ayuda de nuestros compañeros y de el profesor; preguntas que fueron objeto de discusión dentro de la clase como:

o Diferencias entre modo usuario y modo kernel

o Como se establece la sobrecarga del acumulador.

o El medidor de velocidad.

o Entre otras.

3. En las semanas 3 y 4 tenemos programado desarrollar el código fuente del CHmáquina. Para cumplir nuestro objetivo nos dimos cuenta que debemos hacer uso de NetBeans; programa con el cuál apenas nos estamos familiarizando, y descubrimos que para el desarrollo de la interfaz gráfica es muy apropiado, y hemos estado trabajando sobre la interfaz gráfica, pero hemos encontrado problemas acerca de cómo establecer el código para llamar a un archivo; en este momento nos dedicamos a esa tarea.

martes, 2 de marzo de 2010

Sistemas de tiempo real

SISTEMAS DE TIEMPO REAL
Con frecuencia se utilizan como dispositivos de control en aplicaciones dedicadas tales como el control de experimentos científicos, sistemas de imágenes médicas, y algunos sistemas de presentación. Restreicciones de tiempo fijo bien definidas.

Sistemas de tiempo real duros.
• La memoria secundaria es muy limitada o ausente, los datos son almacenados en memoria de corto plazo (memoria de solo lectura (ROM) o similar.
• Tiene conflictos con los sistemas de tiempo compartido, no está soportado por los sistemas operativos de propósito general.
Sistemas de tiepo real blandos de utilidad limitada en industrias de control o robotica. Util en aplicaciones que requieren de avanzadas características del sistema opartivo (multimedia, realidad virtual.

La estructura de un sistema de tiempo real esta conformado de un sistema controlador y al menos un sistema controlado.
Los sistmeas de tiempo real deben producir resultados computacionales exactos, llamados exactitud funcional lógica, y estos cálculos deben terminar en un período de tiempo predefinido, llamada exactitud temporal.
Los sistemas de tiempo real se definene como aquellos siistemas en los cuales la exactitu total del sistema depende de la exactitud funcional y de la exactitud temporal

martes, 23 de febrero de 2010

23 de Febrero de 2010

SISTEMAS EMBEBIDOS / COMPUTACIÓN UBICUA

Los sistemas embebidos son sistemas computacionales con un alto acoplamiento en la integración de hardware y software, se diseñan para ejecutar funciones dedicadas.

Presente en todas partes: empresa, hogar,..: automatización industrial, defensa, transporte, viajes espaciales, entretenimiento.

-Ej. Path Finder de NASA, misiles guiados, automóviles, juguetes, electrodomésticos, cámaras, teléfonos celulares, PDAs, GPS, digital set-top box (DST), enrutadores. Caracterizados por un pequeño conjunto de recursos especializados.

-Los procesadores SoC (System-on-a-chip) son muy atractivos para sistemas embebidos.

-Admon eficiente de recursos

· Memoria limitada

· Procesadores lentos

· Pequeñas pantallas de visualización

Ejemplo de sistemas operativos para sistemas embebidos:

eCos, Embebedded Linux, Linux CE, FreeDOS, FreeRTOS, LynxOS, RTOS, NetBSD, OpenBSD, Infierno, OSE, OS-9, QNX, VxWorks, Windows CE, Windows XP Embebedded, IOS

RFID (Radio Frequency Identification) Identificación por rediofrecuencia.

Todo sistema RFID se compone de un interrogador o sistema de base que lee y escribe datos en los dispositivos y un “transponder” o transmisor que responde al interrogador. El interrogador genera un campo de radiofrecuencia, normalmente conmutando una bobina a alta frecuencia. Las frecuencias usuales van desde 125 Khz hasta la banda ISM de 2.4 Fhx, incluso más.

El campo de rediofrecuencia genera una corriente eléctrica sobre la bobina de recepción del dispositivo. Esta señal es rectificada y de esta manera se alimenta el circuito.

Cuando la alimentación llega a ser suficiente el circuito transmite sus datos.

El interrogador detecta los datos transmitidos por la tarjeta como una perturbación del propio nivel de la señal.

jueves, 18 de febrero de 2010

Tipos de Sistemas Operativos

* Monoprogramación:
Por lotes:
Programa + datos+ordenes no interacción (nómina, análisis del tiempo, análisis estadístico, cálculos científicos, etc.
Procesamiento FCFS, no gestión E/S, pobre gestión archivos

* Interactiva : La programación interactiva significa que el usuario puede interactuar con la máquina. ya se podian ver los programas corriendo por la pantalla (aparecen las pantallas por los años 60's cerca a los 70's)
* Por lotes e interactiva


Multiprogramación:

El sistema ya podía atender más de un programa a la vez (seudo-simultáneamente)




  • Multitarea: Varios procesos
  • Monousuario: 1 solo usuario, pero no quiere decir que no sea multiprogramado. ej: PC, solo lo maneja una persona
  • Multiusuario: Varios usuarios interactivos
  • Multiacceso: Un programa varios terminales
  • Multiprocesador: Varios procesadores
  • Tiempo compartido: Multiprog. int+lotes
  • Tiempo real: Respuesta de acuerdo al entorno. Un sistema es de tiempo real cuando trabaja a la velocidad que el sistema para el que trabaja necesita. ej: inmediato: un radar de un avión, o medidor de temperatura de una planta nuclear. Por lapsos de tiempo: El software de una planta de producción que presenta reporte por horas.
  • Combiandos: Mezcla varias modalidades
  • SOR: (sistemas operativos de red) Múltiples computadores, C/máquina ejecuta su SO, ingresos remotos.
  • SO Distribuidos: S/ autónomos capaces de comunicación y cooperación mediante interaciones Hw y Sw. Ven el s/ como si fuera uniprocesador. son la evolución de los SOR; a la luz del usuario se ven como un solo sistema, pero en realidad son varios sistemas trabajando conjuntamente.

SISTEMAS DE COMPUTACIÓN PERSONAL

Computadores personales: computadores dedicados a 1 solo usuario.

Nació a pesar de los grandes fabricantes de computadores a mediados de los años 70's. Inicialmente se crearon con el objetivo de jugar, pero con el paso del tiempo se le fueron añadiendo elementos.

  • Dispositivos I/O- teclados, ratón, pantallas, pequeñas impresoras.
  • Conveniencia y responsabilidad del usuario
  • Pueden adoptar la tecnología desarrolladad para los grandes sistemas operativos. Con frecuencia los individuos usan en forma aislada el computador y no requieren de avanzada utilización de características de protección de la cpu.
  • Desktop, portatil, laptop, pakntop, wearable PC, tablet PC, PDA, celulares 3ra generación, reproductores mp3, mp4, RFID.