Imagen tomada de https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Fragmentacionpng.png/300px-Fragmentacionpng.png
Esto ocurre cuando el primer bloque libre de memoria no es
suficiente para que el siguiente programa lo use. Por ejemplo, digamos que un
sistema carga tres programas en la memoria, cada uno ocupando 50 megabytes o
MB. El segundo programa termina, dejando ese bloque de 50 MB libres. Si el
siguiente programa a iniciar requiere de 100 MB, no sería capaz de utilizar ese
bloque de 50 MB de espacio libre, y el sistema le asigna el siguiente intervalo
de 100 MB libres. Esa brecha en la memoria utilizada se mantendría sin uso
hasta que algún programa requiera menos de 50 MB de memoria. Con el tiempo,
estos pequeños espacios pueden sumarse, y un sistema se puede ejecutarse con
memoria baja a pesar de las muchas pequeñas áreas de memoria libre. Tomado de http://www.ehowenespanol.com/diferencias-fragmentacion-interna-externa-info_495419/
Imagen tomada de http://labvirtual.webs.upv.es/Applets/GAndreu/Objeto_Fijas_Una_cola/part_fijas_frag_interna.jpg
Ésta se deriva del hecho de que mientras la memoria está
denominada en bytes, la unidad más pequeña disponible generalmente es mayor que
eso debido a las reglas de memoria de direccionamiento. Por ejemplo, si el
sistema carga un programa que requiere de 50 MB y 19 bytes de memoria, puede
que no sea capaz de iniciar el próximo programa a ese 20° byte, en lugar de iniciarlo
al byte 24 o 28. Estas brechas resultan en pequeñas áreas de memoria
inutilizable, simplemente porque el sistema no puede abordar todos y cada byte
de memoria disponible para él. Si bien pérdida de memoria por la fragmentación
interna generalmente es mucho menor que la pérdida por la fragmentación
externa, estas pequeñas cantidades todavía pueden sumarse con el tiempo. Tomado de http://www.ehowenespanol.com/diferencias-fragmentacion-interna-externa-info_495419/
Imagen tomada de http://images.slideplayer.es/1/92224/slides/slide_32.jpg
Otro modo de subdividir el programa el la
segmentación, en este caso el programa y sus datos asociados se dividen en un
conjunto de segmentos.
En el sistema operativo se mantiene una tabla de
segmentos para cada uno de los procesos y la lista de bloques libres. Una
dirección de memoria, es un número de segmento (S) y un desplazamiento dentro
del segmento (W)
Imagen tomada de http://images.slideplayer.es/1/92224/slides/slide_28.jpg
Las particiones de tamaño fijo y las particiones de
tamaño variable hacen un uso ineficiente de la memoria; las primeras generan
fragmentación interna, mientras que las segundas originan fragmentación externa
En el sistema operativo se mantiene una tabla de
páginas para cada uno de los procesos y la lista de marcos para cada pagina
contiene una dirección de memoria, es un numero de página (P) y un
desplazamiento dentro de la pagina (W).
Imagen tomada de http://labvirtual.webs.upv.es/Applets/GAndreu/Objeto_Fijas_Una_cola/part_fijas_frag_interna.jpg
La memoria física es un conjunto de celdas
referenciables por medio de una dirección lineal
(p.ej. de la 00000h a la FFFFFh)
n Para que un programa se ejecute, su código y
sus datos necesitan estar cargados en memoria
(al menos en parte)
n En un sistema multitarea, la memoria ha de
repartirse entre los diferentes procesos
Tomado de http://sopa.dis.ulpgc.es/so/teoria/pdf/so-08-Memoria.pdf
En un sistema monoprogramado, la memoria principal
se divide en dos partes: una parte para el sistema operativo (monitor
residente, núcleo) y otra parte para el programa que se ejecuta en ese
instante. En un sistema multiprogramado, la parte de " Usuario " de
la memoria debe subdividirse aún mas para hacer sitio a varios procesos. La
tarea de subdivisión la lleva a cabo dinàmicamente el sistema operativo y se
conoce como gestión de memoria.
En un sistema multiprogramado resulta vital una
gestión efectiva de la memoria. Si solo hay unos pocos procesos en memoria,
entonces la mayor parte del tiempo estarán esperando a la E/S y el procesador
estará desocupado. Por ello, hace falta repartir eficientemente la memoria para
meter tantos procesos como sea posible.
Requisitos para la gestión de memoria:
a. Re-ubicación: Un proceso después de dejar la memoria virtual puede re ubicarse a la memoria principal, no necesariamente a la misma ubicación.
b. Protección: Los procesos no deberían ser capaces de referenciar el espacio de memoria de otro proceso sin permiso, es posible comprobar las direcciones absolutas de los programas puesto que estos pueden ser re ubicados, deben ser traducidas durante la ejecución.
c. Compartición: Permite a varios procesos acceder a la misma zona de memoria, es mejor permitir a cada proceso a la misma copia del programa que tener cada uno su copia individual.
d. Organización Lógica: Deben ser llamados por registros de apuntador.
e. Organización Física: La memoria disponible para un programa y sus datos puede ser insuficiente, el programador no sabe cuanto espacio habrá disponible.
- Preferente --> No Apropiativo - El proceso no termina y puede salir del procesador para darle espacio a otro proceso.
- No Preferente --> Apropiativo - Mantiene los procesos hasta que terminan
Conceptos de planificacion:
1. Tiempos:
TL: Tiempo de Llegada: Tiempo en el cual el proceso es admitido, (Lo establece el Usuario y SO).
TS: Tiempo de Servicio: Tiempo que dura el proceso en la memoria y tiempos de servicio que dura para un programa, (Lo Preestablece el Programador).
TR: Tiempo de Retorno: Tiempo que dura un proceso desde que es admitido hasta que es ejecutado.
TE: Tiempo de Espera: El proceso ya ha sido admitido pero aun no esta en Ejecución.
TLat: Tiempo de Latencia: Considerado el tiempo de Backup/Restore. Se hace a travez del bloque de control de procesos.
2. P.P.P:
2.1 FCFS. (First-Come, First-Served): Es una politica No Preferente.
PR
TL
TS
A
0
6
B
1
4
C
3
1
D
4
5
2.2. R.R. (Round Robin): Fracciones de Tiempo: Es una politica Preferente Quantum.
3. Shortest process next (SPN): Primero el más corto.
No preferente - Apropiativo
En el estado listo se ordenan los procesos de menor a mayor, expide al menor proceso.
Dif: Si existe un tren largo de procesos cortos, un proceso largo puede sufrir de inanición.
4. Shortest Remaiming Time (SRT): Menor tiempo restante.
Preferente - Cuantum
Cada Cuantum del proceso en ejecución es expulsado de retorno a LISTO.
y se elige de esta lista al proceso que tenga menor cantidad de tiempos de servicio en ese momento.
INANICION
5. Highest Response Ratio Next (HRRN) Mayor tasa de respuesta.
Tasa de respuesta:
W = TR/TS
W = (TS + TE)/TS
No preferente - Apropiativa.
Selecciona una vez terminado un proceso al siguiente con mayor W.
6. Multi Level Feedback. (MLF) Realimentacion Multi Nivel.
- Planificación de largo plazo: Estado Nuevo, Estado Terminado.
- Planificación de mediano plazo: Estado Listo/Suspendido, Estado Suspendido/Bloqueado.
- Planificación de corto plazo: Estado Ejecución, Estado Listo, Estado Bloqueado.
- Planificación de entrada y salida: Dispositivos Externos al Procesador.
Los estados siempre se graficaran contenedores, como carpetas.
Las transiciones se grafican con flechas.
Existen dos estados: Estado de Ejecución y No Ejecución.
Todos los estados entran por (No Ejecución). a través de la transición ENTRAR, luego termina a través de una transición que se denomina SALIR, del estado de No Ejecución al estado de Ejecución hay una transición que se llama EXPEDIR.
Si esta en No Ejecución es porque no cumple los requisitos para estar en Ejecución, de lo contrario si podrá estar en Ejecución, es decir, se puede EXPEDIR.
Cuando un proceso pasa de Ejecución a No ejecución se hace una transición llamada PAUSA.
Hecho por Jeisson Caldas.
Modelos 3 estados:
- Listo
- Bloqueado
- Ejecución
Modelo 5 estados:
- Listo
- Bloqueado
- Ejecución
- Nuevo
- Terminado
Modelo 6 estados:
- Listo
- Bloqueado
- Ejecución
- Nuevo
- Terminado
- Suspendido - (Hace uso de la Memoria Virtual)
Constituido por la CPU ó Unidad Central de Procesamiento.
Unidad Central de procesamiento ( procesador)
Memoria RAM
Memoria ROM
Unidad Entrada y Salida
Unidad Aritmética Lógica; Calcula operaciones aritméticas, permite operar sumas, es la única operación que realiza el circuito, el resto de operaciones van saliendo a través de un algoritmo.
2 operaciones aritméticas
2 operaciones lógicas
Unidad de Control
1 bit de RAM , determina el flujo de info R/W.
la componen 3 bits que controlan la ALU controlando el flujo de datos.
Hyper Threading; Multi Hilo
El registro controlador del programa (PC)
Memoria RAM, procesos del equipo
Memoria ROM, BIOS SETUP
Unidad E/S, Mouses, teclados, USB
El hardware de un ordenador lo componen todas las partes físicas y tangibles que componen todo el sistema que hace posible el funcionamiento del proceso de datos. Entre las partes más importantes que componen el hardware de un ordenador se encuentra el procesador o microprocesador, antiguamente conocido como CPU ( Unidad Central de Procesamiento), que es el cerebro o corazón del sistema, por el cual pasan todos los datos, la placa base, o placa madre, que contiene todos los circuitos que interconectan los componentes del hardware.
El software es un ingrediente indispensable para el funcionamiento del computador. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en sí, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada.
El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional.
Funciones del software: administrar los recursos de computacionales, proporcionar las herramientas para optimizar estos recursos, actuar como intermediario entre el usuario y la información almacenada.
El sistema operativo es un software básico, necesario en el ordenador, en el que se apoyan todas las aplicaciones para funcionar y que, además actúa de intérprete entre el usuario y el propio ordenador.
Los sistemas operativos pueden ser textuales (las órdenes se teclean en pantalla) o gráficos (todas las operaciones o, al menos, la gran mayoría de ellas se ejecutan mediante el empleo de iconos y diferentes elementos gráficos).
Ejemplos: Windows XP, Windows 98, Ubuntu, Mac OSx Lion, Slackware Linux.
Firmware (término que hace referencia a la Programación Firme) es el software compuesto por un bloque de instrucciones que tienen un fin específico y que se almacena y se ejecuta desde la memoria ROM (que es la memoria de sólo lectura). Este software está integrado en la parte del hardware, es decir que viene incorporado con el dispositivo, por lo que el firmware es en cierto punto, hardware y software al mismo tiempo.
En la década de los 40's. Los primeros sistemas computacionalesno poseían sistemas operativos.
Los usuarios tenían completo acceso al lenguaje de la maquina.
Todas las instrucciones eran codificadas a mano.
El programador debía tener un conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, debía examinar los valores de los registros y paneles de luces indicadoras del estado de la computadora para determinar la causa del fallo y poder corregirlo; se accedía directamente a la consola de la computadora desde la cual se actuaba sobre una serie de micro interruptores que permitían introducir directamente el programa en la memoria de la computadora.
Administrador de Tiempo: Es la persona encargada de coordinar los tiempos de los programadores en una tabla.
Administrador de Consola: Encargado de realizar el proceso de perforación de las tarjetas.
Administrador de Recursos: Encargado del manejo del lector de tarjetas donde se grababa el programa en una cinta.
Administrador de Procesamiento: Encargado de procesar la Cinta y entregarla con los resultados.
Administrador de Impresión: Encargado de recoger la Cinta con los datos guardados e imprimir las hojas que le correspondían a cada programador.
SISTEMA OPERATIVO
Su función principal es controlar el HARDWARE: Los tres tipos de Sistemas Operativos son de: