martes, 5 de abril de 2011

http://es.scribd.com/doc/19063553/004-Sistemas-Operativos-Gestion-de-Ficheros
http://es.wikipedia.org/wiki/Sistema_operativo

GESTION DE MEMORIA

Otro de los problemas que debe resolver el sistema  operativo es el de la asignación de memoria al programa o programas que se encuentren en ejecución. Tiene que llevar la cuenta de que partes se están usando y cuáles no.
El método más sencillo de gestión de memoria consiste en tener, en cada instante, un solo proceso en memoria principal, disponiendo éste de toda la memoria disponible. En este caso, la memoria se divide entre el sistema operativo y el proceso de usuario.
Se pueden ver las distintas posibilidades en el siguiente gráfico: (1), (2), (3) de la figura :
El sistema operativo se puede situar al principio de la memoria RAM (1) (memoria de acceso directo), al final de está o al final en una memoria ROM (2) (memoria de sólo lectura). Otra posibilidad (3) es separar del sistema operativo la parte correspondiente a los manejadores de los distintos dispositivos y situarla en una memoria ROM dejando el resto del sistema operativo en memoria RAM.
Con la aparición del concepto de multiprogramación para optimizar la utilización de la computadora, la gestión de la memoria ya no resulta tan sencilla. El sistema operativo tiene que asignar un trozo de memoria a cada proceso. Además tiene que proteger a unos procesos de otros de forma que un usuario no pueda acceder a los datos de otro usuario. En el gráfico e la figura, se muestra una posible ejecución y la correspondiente asignación de memoria de cuatro procesos A, B, C y D a lo largo del tiempo.
Comienza ejecutando el proceso A; mientras que ejecutándose A, otro usuario ordena la ejecución del proceso B. Posteriormente, el proceso A termina su ejecución y libera la memoria que estaba utilizando. Más tarde surgen los procesos C, D y se les asigna su correspondiente espacio de memoria.

lunes, 4 de abril de 2011

GESTIÓN DE ENTRADA Y SALIDA

Los problemas que tiene que resolver esta parte del código son los relacionados con los dispositivos de entrada/salida: terminales, discos, impresoras, ratón, interfaz a redes de comunicación etc.

Cada uno de los dispositivos de entrada/salida tiene un controlador que trata directamente con las características particulares de cada dispositivo en concreto.

La computadora no trata con el dispositivo físico sino con el controlador del dispositivo. La razón es que la velocidad de procesamiento de la computadora es muy superior a la de cualquier dispositivo de entrada/salida. De esta forma se envía la orden al controlador, por ejemplo leer cierta información del disco, y la computadora pasa a ejecutar otro proceso mientras el proceso anterior espera la respuesta del dispositivo de entrada/salida. Cuando la información está lista para utilizar, el controlador avisa a la computadora indicándole que la operación de lectura ya ha finalizado y puede continuar con la ejecución del proceso anterior. En este momento se decide cual será el proceso que sigue ejecutándose.

SISTEMA DE GESTIÓN DE FICHEROS

Para la mayoría de usuarios, el sistema de ficheros es el aspecto más visible de un sistema operativo. Los ficheros almacenan datos y programas. El sistema operativo ofrece el concepto abstracto de fichero, gestionando dispositivos de almacenamiento externo, tales como discos duros, disquetes y cintas. Pero ¿qué es un sistema de gestión de ficheros y de qué se compone?
Las computadoras pueden almacenar información de distinta formas físicas: los discos son las mas corrientes. Cada uno de estos dispositivos tiene sus propias características y organización física.
Con vistas al buen uso de la computadora, el sistema operativo ofrece una visión lógica sencilla del almacenamiento de información. Este también oculta las propiedades físicas de sus dispositivos de almacenamiento, y define una unidad lógica de almacenamiento: el fichero.
¿Qué es un fichero? Es un conjunto de registros, que permiten almacenar información.
También se puede definir como una colección de informaciones relacionadas entre si y definidas por su creador.
 Normalmente, los ficheros almacenan programas (tanto en fuente como en forma objeto) y datos, aunque también podrían almacenar una carta que escriba o un dibujo que se haya hecho.
Los ficheros de datos pueden ser numéricos, alfabéticos o alfanuméricos. En general, un fichero es una secuencia de bits (ceros o unos), bytes (conjuntos de ocho bits), líneas o registros cuyo significado ha sido definido por su creador y usuario
AL Fichero se le asigna un nombre, por el cual se hace referencia. Tiene algunas otras características como su tipo, el instante de su creación, el nombre de su creador, su longitud, etc. Por ejemplo, en uno de los sistemas operativos, el MS DOS, un fichero tiene un nombre formado por ocho caracteres, seguido de un punto y otras  tres letras. Los ocho primeros caracteres representan el nombre del fichero mientras que los tres últimos representan la extensión del mismo e indica el tipo de fichero del que Se trata. Si es un fichero de texto, la extensión es. TXT, si es un programa fuente en C su extensión es .C y si es programa ejecutable entonces será.EXE.
El sistema operativo MS-DOS también almacena la fecha de creación del fichero, así como su tamaño.
La información que contienen la define su creador. Hay muchos tipos diferentes de información que pueden almacenarse en un fichero: programas fuente, programas objeto, datos numéricos, textos, registros contables, etc.
Un fichero tiene una cierta estructura, que se define según el uso que se vaya a hacer de él. Así, Un fichero de texto es una secuencia de caracteres organizados en líneas (y posiblemente paginas);
Un fichero fuente es una secuencia de subrutinas y funciones, cada una de las cuales se organiza a su vez en forma de declaraciones seguidas de instrucciones ejecutables;
Un fichero objeto es una secuencia de palabras organizada interpretables por el cargador.

MULTIPROGRAMACIÓN Y TIEMPO COMPARTIDO

La idea de la multiprogramación  es la siguiente.  El sistema operativo toma uno de los programas de un grupo de ellos y empieza a ejecutarlo.  Eventualmente, el programa seguramente tendrá que esperar por algún motivo, como por ejemplo que tenga que leer información de un disco, que se teclee un comando en un teclado o que tenga que imprimir algo.  En un sistema sin multiprogramación (monoprogramación), la computadora permanecería inactiva hasta que terminara la operación por la que está esperando. En un sistema con multiprogramación, el sistema operativo sencillamente cambiaría a otro programa y lo ejecutaría. Cuando este último deba esperar, la computadora pasaría a ejecutar otro programa y así sucesivamente. Finalmente, el primer programa habrá acabado su espera y podrá ser ejecutado de nuevo. Los sistemas operativos multiprogramados son sofisticados. Tener varios programas dispuestos para su ejecución, supone mantenerlos simultáneamente en memoria. Tener varios programas en memoria al mismo tiempo requiere una gestión de memoria. Además, Si hay varios programas dispuestos para ejecución al mismo tiempo, hay que tomar alguna decisión para elegir entre ellos. Este proceso, se denomina planificación  de la CPU, consume tiempo de la computadora.
Tiempo compartido
Cuando un usuario está trabajando, generalmente, desea que la respuesta de la computadora sea lo más rápido posible. Antiguamente se empleaban los ” sistema por Lotes “ en donde existía un grupo de programas  de diferentes usuarios  y la computadora los iba ejecutando uno detrás de otro secuencialmente. Entonces para ofrecer tiempos de respuesta más rápidos, se crearon los sistemas de tiempo compartido.
La idea es muy simple, pero no simple de realizar, en vez de dedicarse la computadora a un solo usuario, se divide y atiende por turnos a todos a la vez. En un Sistema de tiempo compartido, si de 20 usuarios conectados 17 están pensando, charlando o tomando un café, el procesador puede dedicarse por turnos a los otros tres trabajos que precisan servicio. Dado que las personas que ponen a punto programas utilizan normalmente comandos de efecto corto (por ejemplo, compilar un programa de cinco paginas), en vez de comandos de efecto largo (por ejemplo, ordenar un millón de registros de un fichero), la computadora puede ofrecer un servicio rápido a cierto número de usuarios y procesar todavía trabajos en los tiempos muertos en que no haya ningún usuario que atender.
Un sistema operativo en tiempo compartido utiliza la planificación de la CPU y la multiprogramación para dotar a cada usuario de una pequeña parte de la computadora compartida. Cada usuario tiene en memoria un programa independiente. Cuando se ejecuta, lo hace normalmente durante un breve periodo de tiempo. Puesto que la entrada de datos se realiza a velocidad humana, puede llevar mucho tiempo completarla. La entrada, por ejemplo, esta limitada por la velocidad de tecleo; cinco caracteres por segundo es un tecleo bastante rápido para una persona, pero muy lento para las computadoras.
En lugar de dejar que la computadora permanezca inactiva cuando esto sucede, el sistema operativo cede rápidamente el control de la computadora al programa de algún otro usuario.

IMPLANTACIÓN DE LOS PROCESOS

Para implantar el modelo de los procesos, el sistema operativo utiliza una tabla ( arreglo de estructuras ), llamada la tabla de procesos , con un dato por proceso. Este dato contiene la información relativa al estado del proceso, el contador del programa , el apuntador a la pila, asignación de memoria, el estado de los archivos abiertos, su información de contabilidad y planificación, así como todos los datos relativos al proceso que deben guardarse cuando el proceso alterna entre los estados en ejecución y listo de forma que se pueda volver a iniciar más adelante como si nunca se hubiera detenido.