martes, 26 de octubre de 2010

Gestión de Memoria

La labor de gestión de memoria consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesitan y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco de los casos en los que la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ello.

Requisitos de la gestión de memoria

-Reubicación: La memoria principal se ubica generalmente compartida por varios procesos. En general el programador no puede conocer por adelantado, qué otros programas residirán en la memoria en el momento de la ejecución de su programa. El sistema operativo tiene que conocer la ubicación de la información de control del proceso y de la pila de ejecución, así como el punto de partida para comenzar la ejecución del programa para dicho proceso, ya que el sistema operativo gestiona la memoria y es responsable de traer el proceso a la memoria principal.
-Protección: Cada proceso debe protegerse contra inferencias no deseadas de otros procesos, sean accidentales o intencionadas. El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos, con fines de lectura o escritura, sin permiso, puesto que se desconoce la ubicación de un programa en la memoria principal, es imposible comprobar las direcciones absolutas durante la compilación para asegurar la protección.
Así, todas las referencias a la memoria generadas por un proceso deben comprobarse durante la ejecución para asegurar que solo hacen referencia al espacio de memoria destinado a dicho proceso, y los mecanismos que respaldan la reubicación también forman parte básica del cumplimiento de las necesidades de protección.

lunes, 25 de octubre de 2010

ACTIVIDADES

-DEFINICIÓN DE PLANIFICACIÓN
Se denomina planificador a aquella parte del SO encargada de asignar los recursos del sistema de manera que se consigan unos objetivos de comportamiento especificados.

TIPOS DE ALGORITMOS DE PLANIFICACIÓN

Algoritmo FCFS: 
También conocido como primero en llegar, primero en  ser atendido.
Dentro de este campo de planificación es el más sencillo, pues es similar a una cola de estructura (FIFO).
Este algoritmo trabaja de la siguiente manera, al entrar un proceso al estado de “listo”,  el bloque de control de proceso se ubica en el final de la cola, entonces el cpu al estar libre retirará de esta cola el primer elemento(cabeza).
Es decir, en este algoritmo el tiempo de espera par que un proceso se ejecute es incierto y no mínimo. Pudiendo así ejecutarse dentro de la cpu un proceso que consuma demasiado tiempo, atrasando a otros procesos y dejando la cpu sin trabajo por lapsos de tiempo.
En definitiva este algoritmo hace que los procesos pequeños esperen a que un grande abandone la cpu. Una gran desventaja.

Planificación SJF:
El algoritmo “primero el trabajo más corto”. Establece para la planificación una relación entre proceso y ráfaga de la CPU. Es decir, al liberarse la cpu ingresará el proceso con la menor ráfaga de tiempo, el más pequeño primero, y si existiera más de un proceso con igual valor, pues se aplicaría dentro de este el algoritmo anterior(FCFS).

Este algoritmo presenta una gran ventaja, pues el tiempo de espera será mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el cpu se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy óptimo.

 Algoritmo de rueda:
Se basa en una estructura FIFO de forma circular, en donde se asigna a los procesos un intervalo de tiempo para la cpu, conocido como quantum. En donde se establece la regla de que un proceso no podrá estar dos veces seguidas en la cpu a menos que sea el único en el estado de listo.
Este algoritmo trabaja de la siguiente manera, al ingresar el proceso a utilizar la cpu, este estará dentro del tiempo(quantum), si al terminar este tiempo el proceso no ha terminado es colocado al final y se ingresará otro proceso. Pero si el proceso pasa ha estado terminado antes de terminar su quantum, también será extraído de la cpu.
Planificación por prioridad:
Esta clase de algoritmo utiliza como relación entre proceso, tiempo de la cpu y prioridad. De donde el proceso con mayor ráfaga tendrá la menor prioridad y viceversa.
Y donde la cpu podrá ser utilizada por el proceso con mayor prioridad.
Dentro de este algoritmo la prioridad es asignada ya sea interna o externamente. Pero, uno de los problemas que puede presentar esta planificación es la de un bloqueo indefinido. Es decir, pudiera darse el caso que existan procesos de prioridad alta que harían que los procesos de prioridad baja queden bloqueados hasta que logren colocarse en la cpu o perderse cuando nuestro sistema se caiga, es decir una espera indefinida.
Es aquí donde se puede aplicar una técnica conocida como envejecimiento, que ira incrementando la prioridad de los procesos en espera cada determinado tiempo hasta que estos se ejecuten. Y a mi parecer este es una de las mejores soluciones.

viernes, 22 de octubre de 2010

Algoritmo de rueda (Round Robin)

La asignación de ejecución a los procesos se realiza de forma secuencial:

-A cada proceso se le asigna el mismo quantum o intervalo de tiempo de ejecución.

cuando llega un nuevo proceso, y hay otro en ejecución, los ciclos cpu se distibuyen entre ellos, pero ejecutandose antes un ciclo de cpu para el proceso que está en activo y  no para el recién llegado, al que se le asignara su ciclo inmediatamente después

Actividades
1. si tenemos un proceso muy largo y muchos procesos cortos?cual es el mejor algoritmo de planificación a utilizar?
- Algoritmo de rueda

2. cuando todos los procesos tienen más o menos la misma duración¿ cuál es el algoritmo que mejor optimizar el tiempo cpu de varios procesos?
- Algoritmo FCFS

miércoles, 13 de octubre de 2010

Actividades. pag:21

13. ¿puede ser mas rápido un equipo con un bus 16 bits que otro de 32 bits?
no , porque la información iría el doble de rápido en el de 32 ya que llevaría el doble de bits a la misma velocidad que el de 16 bits

14. El bus de direcciones un equipo, ¿que indica exactamente?
Identifica el dispositivo de el dispositivo al que va destinada la información por el bus de datos

viernes, 8 de octubre de 2010

ADMINISTRADOR DE MEMORIA

Exclusión mútua: Es un mecanismo empleado en el diseño de los SO para evitar los problemas de competencia por reucrsos. Se basa en definir una zona o región crítica la cual está marcada por las instrucciones que hacen uso del recurso o recursos por los que se presenta la competencia.
(Recurso crítico) Existen diferentes métodos de aplicación de la exclusión mútua tanto por hardware como por software.

Interbloqueo: Este problema se presenta cuando dos o más procesos se bloquean mutuamente a la espera de un recurso crítico y esta situaciónse mantiene de forma permanente.

Inanición: Se presenta cuando un proceso nunca logra acceder a un recurso crítico y, por tanto, no puede continuar con su normal ejecución.

COMUNICACIÓN ENTRE PROCESOS

El SO nos provee de mecanismos para que los procesos puedan intercomunicarse. La intercomunicación se puede realizar utilizando o no almacenamiento compartido: se comparte algún medio de almacenamiento entre ambos procesos como un archivo variable o Buffer, ambos procesos pueden leer y escribir el recurso compartido => Problemas concurrencia.

FINALIZACIÓN DE UN PROCESO

Un proceso puede finalizar por varias razones:
-El proceso ejecuta su última instrucción y le pide al SO que lo borre o ejecuta la llamada al sistema EXIT ( ). En ambos casos, el SO libera los recursos utilizados por él.
-El proceso padre puede finalizar  la ejecución del proceso hijo.
-El SO finaliza el proceso hijo si ya finalizó el proceso padre.

OPERACIONES CON PROCESO

Generalmente el S.O. nos provee alguna forma para crear procesos, por ejemplo mediante llamadas al sistema. los procesos se identifican en el sistema como un numero, llamado identificador de procesos (PID) el cual es único para cada proceso ejemplos de creación de proceso en Linux:
-FORK()- crea un proceso hijo (creado) idéntico al padre (creador).
-GetPID( ) - obtiene su propio identificador de procesos.
-EXECVE ( ) -ejecuta un programa , sobreescribe los segmentos de texto, datos y stack del  proceso llamante con el programa a ejecutar si tiene éxito, esta función no retorna.
-WAITPID ( ) - espera hasta que finaliza el proceso hijo.

miércoles, 6 de octubre de 2010

Sistemas operativos procesos PCB

Sistemas operativos procesos PCB: Para administrar procesos, el SO mantiene por cada una de los procesos, una estructura de datos denominada PCB, la cual contiene información de los recursos utilizados por el proceso.
Alguno de los datos contenidos en esta estuctuea serán:
    -Registros del procesador
    -Programa Counter y Stack Pointer
    -Estado del proceso
    -Tiempo que utilizó el procesador
    -Identificador de procesos (PID)
Existe la posibilidad de que dentro de un proceso existan varios hilos de ejecución, cada uno con su PC, conjunto de registros del procesador y segmento de stack, pero comparten con los demás hilos de ejecución el segmento de datos, el segmento de texto, recursos del sistema y el PCB. También se denominan Threads o LightweightProcesses.

Ciclos de vida de un proceso
El más sencillo (y limitado) -ejecutándose
                                        -no ejecutándose

Sistemas operativos procesos.

Sistemas operativos procesos.
proceso es el nombre  con el que se denomina la ejecución de un programa idividual representado por una serie de instrucciones que el procesador debe ejecutar la mayoria de los Sistemas Operativos modernos mbasan toda su estructura en este concecto o alrededor de este concecto tres requisitos fundamentalesque deben seguir todo Sistema Operativo. en relacion a los procesos:
-El Sisitema Operativo debe intercalar la ejecucion de un conjunto de procesos para la utilizacion del procesador ofreciendo cada ved un tiempo de respuesta razonable
-El Sistema Operativo debe asignar los recursos a los procesos en conformida con una política especifica( por ejemplo ciertas funciones o aplicaciones son de prioridad mas alta) evitando al mismo tiempo el interbloqueo que se presenta cuando dos o mas procesos se bloque mutuanmente y de manera permanente debido a algun factor externo como puede ser la espera de un recurso fisico.
-El Sistema Operativo podria tener que dar soporte a la comunicacion entre procesos y la creación entre procesos por parte del usuario, labores que pueden ser de ayuda en la estructuración de aplicaciones.

Divisones de la memoria de un proceso
STACK
ESPACIO DE MEMORIA LIBRE
DATOS
TEXTo
Ejemplo: dos usuarios en unix, utilizando el programa LS para usar archivos. Esto genera dos programas distintos pero comparten el segmento de texto (código de programa)
Un programa se encuentra en el estado ejecutando (running) cuando está haciendo uso del procesador.
Después de permanecer en estado running durante un periodo de tiempo, el sistema operativo conmuta a otro proceso, quedando el anterior en estado ready, es decir, listo para ser ejecutado próximamente.


la conmutación entre procesos la realiza una partedel Sistema operativo ednominado schuducer (organizador) y la selección del proceso al cual se conmuta se realiza utilizando un algoritmo denominado algoritmo de scheduling o planificación.
 un proceso se bloquea cuando no puede continuar su ejecución, normalmente se produce cuando espera datos en su entrada y aun no están disponibles pos ejemplo, el interprete de comndos ( shell) permanece bloqueado hasta que el usuario ingresa una orden

Para administrar procesos el S.O. mantiene por cada uno de ellos, una extructura de datos, denominada PCB (Process Control Block) la cual contiene información de los recursos utilizados por el usuario.