ESTADO DE TRANSACCIONES Y CONCEPTOS
Un sistema de procesamiento de transacciones (TPS por sus siglas en inglés) es un tipo de sistema de información. Un TPS recolecta, almacena, modifica y recupera toda la información generada por las transacciones producidas en una organización. Una transacción es un evento que genera o modifica los datos que se encuentran eventualmente almacenados en un sistema de información. Para que un sistema informático pueda ser considerado como un TPS, este debe superar el test ACID.
Desde un punto de vista técnico, un TPS monitoriza los programas transaccionales (un tipo especial de programas). La base de un programa transaccional está en que gestiona los datos de forma que estos deben ser siempre consistentes (por ejemplo, si se realiza un pago con una tarjeta electrónica, la cantidad de dinero de la cuenta sobre la que realiza el cargo debe disminuir en la misma cantidad que la cuenta que recibe el pago, de no ser así, ninguna de las dos cuentas se modificará), si durante el transcurso de una transacción ocurriese algún error, el TPS debe poder deshacer las operaciones realizadas hasta ese instante. Si bien este tipo de integridad es que debe presentar cualquier operación de procesamiento de transacciones por lotes, es particularmente importante para el procesamiento de transacciones on-line: si, por ejemplo, un sistema de reserva de billetes de una línea aérea es utilizado simultáneamente por varios operadores, tras encontrar un asiento vacío, los datos sobre la reserva de dicho asiento deben ser bloqueados hasta que la reserva se realice, de no ser así, otro operador podría tener la impresión de que dicho asiento está libre cuando en realidad está siendo reservado en ese mismo instante. Sin las debidas precauciones, en una transacción podría ocurrir una reserva doble. Otra función de los monitores de transacciones es la detección y resolución de interbloqueos (deadlock), y cortar transacciones para recuperar el sistema en caso de fallos masivos.
Proceso ligerod de hilo o hembras
El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
• Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivo de E/S o ficheros
Administración de memoria
Administración de la Memoria
La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello existen diferentes esquemas de administración de memoria desde los mas simples hasta los mas elaborados entre los cuales se ubican:
Administración de la memoria sin intercambio o paginación.
Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.
Monopogramación sin intercambio o paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.
• Multiprogramación y uso de la memoria.
La multiprogramación facilita la programación de una aplicación al dividirla en dos o más procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.
Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula:
Uso de la CPU = 1 - pn
• Multiprogramación con particiones fijas
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.
Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.
• Intercambio
En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.
• Multiprogramación con particiones variables.
Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria
Otros métodos de administración de memoria que tenemos son:
la administración de memoria con mapa de bits
la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.
la administración de memoria con listas ligadas
otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.
la administración de memoria con el sistema de los asociados
basado en el sistema binario o utiliza para las direcciones.
• Memoria Virtual
El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.
• Paginación
El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.
Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.
Paginación de nivel 1: PDP-11
Paginación de 2 niveles: la VAX
Paginación de 3 niveles: la SPARC
Paginación de 4 niveles: la 68030
Memoria asociativa
En los algoritmos de paginación las tablas de páginas se mantienen en la memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el rendimiento.
• Algoritmos de reemplazo de páginas.
Cuando ocurre un fallo de página el sistema operativo debe elegir una página para retirarla de la memoria y hacer un espacio para la página por recuperar. Si la página por eliminar fue modificada mientras estaba en memoria, debe escribirla en el disco para mantener actualizada la copia del disco, si por el contrario la página no ha sido modificada la copia del disco ya está actualizada por lo que no es necesario volver a escribir, la página por leer sólo escribe encima de la página por retirar.
Aunque es posible elegir una página al azar para el reemplazo relacionado con un fallo de página, el rendimiento del sistema es mucho mejor si se elige una página de poco uso.
• Algoritmo de reemplazo de páginas optimo
Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.
Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con el número de instrucciones ejecutadas antes de la primera referencia a esa página, el algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el único problema de este algoritmo es que es irrealizable. Al momento del fallo de página el S.O. no tiene forma de saber a qué página se hace referencia.
• Algoritmo de página de uso no muy reciente.
En un fallo de página , el sistema operativo inspecciona todas las páginas y las divide en cuatro categorías según los valores actuales de los bits R y M
Clase 0: No se ha hecho referencia ni ha sido modificada
Clase 1: No se ha hecho referencia pero ha sido modificada
Clase 2: Se ha hecho referencia pero no ha sido modificada
Clase 3: Se ha hecho referencia y ha sido modificada
El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.
• Algoritmo de reemplazo " primero en entrar, primero en salir FIFO"
El sistema operativo tiene una lista de todas las páginas que se encuentran en memoria, siendo la primera página la mas antigua y la última la mas reciente, en un fallo de página, se elimina la primera página y se añade la nueva al final de la lista.
• Algoritmo de reemplazo de páginas de la segunda oportunidad
Una modificación simple del FIFO que evita deshacerse de una página de uso frecuente inspecciona el bit R de la página mas antigua, busca una página antigua sin referencias durante el anterior intervalo de tiempo.
• Algoritmo de reemplazo de páginas del reloj
Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas en una lista circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición y el bit se limpia, esto continua hasta encontrar una página con R=0.
Segmentación
La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.
Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho mas sencillo.
Bit que se activa si se hace referencia a la página en cuestión
Bit que se activa si se modifica la página
ADMINSTRACION DE ENTRADA Y SALIDA
E/S diferida: Uno de los principales problemas que aparecieron en los SSOO era la aparición de tiempos muertos. Una solución consistió en liberar al procesador central de las operaciones lentas de E/S utilizando unos procesadores de bajo coste. El funcionamiento global de un sistema de E/S diferida consta de las siguientes fases:
1.1.1. En un procesador auxiliar se realizaba la transferencia fichas-cinta de un lote completo.
1.1.2. Es llevada por el operador al ordenador principal. La lectura y escritura de los trabajos en cinta resultaba más rápida.
1.1.3. El operador montaba la cinta correspondiente en otro procesador auxiliar que permite sacar por impresora todos los resultados de un mismo lote.
Se mantienen utilizados todo el tiempo el procesador principal, la lectora de tarjetas y la impresora. Hemos obtenido una mayor productividad a costa de aumentar el tiempo de respuesta, y de separar aún más al usuario de la ejecución de su programa.
Buffering: la utilización de un buffer nos permite que el equipo de entrada vaya por delante de la UCP, los registros serán leídos por anticipado y almacenado en el buffer donde estarán disponibles para el programa de usuario. La utilización de esta técnica, permite la E/S asíncrona. Una interrupción es una señal que transfiere el control de la UCP de un programa de usuario a una rutina del SO, salvando previamente los registros de la UCP y el contador de programa.
1.2. Multiproceso.
Aparecen dispositivos de E/S equipados con controladores de periféricos y procesadores dedicados, que funcionan con una mínima intervención de la UCP.
Spool: con el desarrollo de las unidades de discos magnéticos, en los que no existían restricciones de acceso secuencial y que permiten el almacenamiento de grandes cantidades de información, aparecieron los sistemas spool. Trata básicamente de utilizar dispositivos periféricos autónomos que podían realizar operaciones de E/S mientras el procesador central seguía ejecutando el programa. Se basa en realizar las operaciones de E/S sobre disco, permite que se pueda estar leyendo la entrada de un trabajo, ejecutando un segundo trabajo e imprimiendo un tercero. Como diferencia del buffering, el buffering permite solapar las E/S de un trabajo con su ejecución, mientras que el spooling permite la superposición de varios trabajos.
Multiprogramación batch: Para aprovechar los tiempos muertos de E/S se desarrolló una técnica mediante la cual, cuando el programa que se estaba ejecutando pasaba a realizar una E/S, la UCP podía ejecutar un nuevo proceso. A esta técnica se la conoce con el nombre de multiproceso. El término proceso se introdujo para indicar la actividad elemental, un proceso representa la ejecución de un trabajo (job). En las técnicas de multiproceso primitivas solamente existía un proceso en memoria, de manera que el proceso que perdía el control de la UCP era pasado a memoria secundaria, mientras que otro proceso era transferido a memoria principal para su ejecución. Las principales aportaciones de estos sistemas es que varios programas deben residir en memoria al mismo tiempo, por lo que es necesaria la gestión de memoria. El concepto de procesos concurrentes, que identifica a aquellos que se solapan en el tiempo, es decir, el comienzo de no ocurre antes que el final de otro. Aparece un lenguaje de órdenes que permite al operador controlar desde consola la operación del computador
Se trata de compartir el ordenador entre varios usuarios de forma interactiva. Consiste en asignar a cada trabajo una cantidad fija de tiempo. Los sistemas de tiempo compartido permiten que varios usuarios compartan una instalación; en cada instante el ordenador solo está atendiendo a un usuario, pero como la mayor parte de los trabajos interactivos se basan en peticiones triviales que pueden ser atendidas en una rodaja de tiempo, podemos conseguir que los usuarios tengan la ilusión de disponer de un sistema para cada usuario. Las principales aportaciones son que se necesita una gestión de memoria, que las operaciones de E/S deben coordinarse para soportar el acceso de los diversos usuarios a los dispositivos del sistema, el planificador debe soportar un gran número de procesos y que un sistema de ficheros permite a cada usuario hacer referencia a los datos almacenados en un disco mediante operaciones virtuales.
Aparece el concepto de sesión, para comenzar su trabajo en el sistema el usuario deberá iniciar una sesión en él. También aparece el concepto de sistemas multiusuario, que son aquellos que pueden ser utilizados simultáneamente por varios usuarios
SITEMA DE ARCHIVOS
El sistema de archivos de Ubuntu está basado en el Filesystem Hierarchy Standard. Este es un estándar que con mayor o menor rigor siguen la mayoría de las distribuciones GNU/Linux y algunos otros sistemas operativos basados en UNIX.
Algunas de sus principales características son:
Todo está organizado en una única estructura de directorios. Todo está dentro del directorio raíz, representado por el signo '/'.
Todo es un archivo. Dentro de / está representado todo el sistema, los directorios y archivos presentes en los discos duros y demás dispositivos de almacenamiento montados, todo el hardware de la computadora, todos los procesos en ejecución, etc...
Cada cosa en su sitio y un sitio para cada cosa. Todos los directorios tienen una finalidad concreta, todos los contenidos tienen una ubicación predeterminada según su naturaleza y función.
Aunque todo aparente formar parte de un único sistema de archivos en realidad hay varios. Además del sistema de archivo de disco que contienen los archivos normales, incluye diversos sistemas de archivos virtuales que cumplen diversas funciones.
Si quieres una información más exhaustiva del sistema de archivos de Linux, consulta la página Tipos de archivo.