Algoritmo First-Come-First-Served (FCFS): Primero en llegar, primero en ser servido.
Ventajas:
Fácil de implementar, Basta una cola FIFO.
Es bastante justo, si entendemos que procesos con menos CPU tienen menos derecho a usarla.
Desventajas:
Puede provocar baja productividad; efecto "Convoy".
EJEMPLO: Un proceso limitado por CPU y muchos procesos con E/S muy frecuente.
ALGORITMOS APROPIADOS:
Algoritmo Shortest Remainming Time First (SRTF)
Es una versión apropiativa de SJF.
Cada vez que entran trabajos se interrumpe el actual y se compara el tiempo restante de éste con el de los entrantes.
Si hay un trabajo nuevo más corto que lo que le falta al actual en CPU, echamos el actual y metemos el nuevo.
De nuevo, se supone que se conocen los tiempos de uso futuro de CPU de antemano. Una versión práctica debe hacer uso de una estimación.
Algoritmo Round-Robin (RR)
Podemos traducirlo como asignación circular o por torneo.
Cada proceso tiene un tiempo limite de uso de CPU llamado quantium Q.
Los procesos preparados se organizan en una cola FIFO.
Si A está ejecutando y alcanza el quantium --> cambio de contexto:
Se pasa el primero de la cola a CPU y se inserta A al final de la cola.
Un temporizador (interrupción de reloj) se encarga de despertar al planificador para que compruebe si debe actuar o no.
Ventajas: Es fácil de implementar. Es el algoritmo más justo: todos los procesos tienen garantizada su porción de CPU.
Algoritmo Colas Multinivel:
Mayores prioridades para procesos del sistema, procesos foreground interactivos, o procesos con poca CPU. Usamos RR.
Menor prioridad para procesos background.Usamos FCFS.
Si entra un trabajo con mayor prioridad, desbanca a los de menor.
Otra opción: Freccionar el tiempo entre colas (Ej: 80% para la RR y 20% para las colas FCFS).
CONCURRENCIA
¿QUÉ ES?
Decimos que son dos o más procesos,paralelos, o que se ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.
En sistemas multiprocesador, esta ejecución simultánea podría conseguirse completamente, puesto que podremos asignarle, por ejemplo, un proceso A al procesador A y un proceso B al procesador B y cada procesador realizaran la ejecución de su proceso.
VENTAJAS :
Trata de evitar los tiempos muertos de la UCP
Comparte y optimiza el uso de recursos
Permite la modularidad en las diferentes etapas del proceso
Acelera los cálculos
Da mayor comodidad
DESVENTAJAS:
Inanición e interrupción de procesos
Esto quiere decir que cuando un proceso depende de un recurso y no lo recibe este proceso que se ejecutará.
Ocurrencia de bloqueos
Que dos o más procesos requieran el mismo recurso (no apropiativo).
PAGINACIÓN
Los sistemas de paginación de memoria dividen los programas en pequeñas partes o paginas. La memoria es dividida en trozos pequeños de igual tamaño que las paginas, llamados bloques de paginas. En pocas palabras la paginación es la división física de la memoria.
SEGMENTACIÓN
¿QUÉ ES EL PROMPT? Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de órdenes. Éste puede variar dependiendo del intérprete de comandos y suele ser configurable.
DEBUG
Nota: "Bug" significa fallo, defecto en un programa; "debug" significa depurar (escrutar y eliminar fallos). La palabra ha quedado como verbo (depurar), de la que han derivado otras. Por ejemplo: "Debugger" (depurador). Por extensión, todos los programas y utilidades que sirven para escudriñar los datos y el código a bajo nivel, se identifican genéricamente con esta denominación.
DEBUG.EXE es un ejecutable que, hasta 2001, acompañó a todas las versiones de MS-DOS, a partir de la 2.0, y de Windows [1]. Es sin duda un programa antiguo pero de enorme potencial didáctico para el principiante. En adelante nos referiremos a él como debug simplemente.
He aqui algunas funcionalidades para entender mejor
Comando TREE:
Presenta en forma gráfica la estructura de directorios de una ruta de acceso o del disquete en una unidad de disco.
Sintaxis:
TREE [unidad:] [ruta] [/F] [/A]
Parámetros:
unidad:
Especifica la unidad de disco que contiene el disquete cuya estructura de directorios desee presentar.
ruta:
Especifica el directorio cuya estructura de directorios desee presentar.
Modificador
/F
Presenta los nombres de los archivos que contiene cada directorio.
/A
Indica al comando TREE que utilice caracteres de texto en lugar de caracteres gráficos para mostrar las líneas que vinculan los subdirectorios. Utilice este modificador con tablas de códigos que no reconozcan caracteres gráficos y para enviar información a impresoras que no los puedan interpretar adecuadamente.
A continuación veremos la creación de directorios a partir de este comando.
ASEMBLER DEBUG
Otras utilidades del debug
AX: Acumulador (AL:AH)
BX: Registro base (BL:BH)
Modos de direccionamiento
Son medios que facilitan la tarea de programación, permitiendo el acceso a los datos
de una manera natural y eficiente.
Estos indican al procesador como calcular la dirección absoluta (real o efectiva) donde
se encuentran los datos.
1.- Direccionamiento de Registro: Los operandos o datos se encuentran en registros
No se necesita calcular la Dir. Absoluta.
P.e.
ADD BX, CX
MOV BX, AX
SUB DX, BX
2.- Direccionamiento inmediato : El operando es un número que forma parte de la
instrucción. No se necesita calcular la dir absoluta.
P.C.
ADD BX, 2h
SUB CX, 100h
MOV dx, 30h.
3.- Modo directo: La dirección del operando viene incluida en la instrucción , aquí el
procesador calcula la dirección real ([DS]+Dir)
TOP
A la hora de realizar el mantenimiento y monitorización de un servidor GNU/Linux (o de nuestro propio ordenador) hay comandos que son de gran ayuda e importancia. El comando top nos ayuda a conocer los procesos de ejecución del sistema (y más cosas) en tiempo real y es una de las herramientas más importantes para un administrador.
Ejecutar el comando
Abrimos una consola y simplemente ejecutamos el comando:
Nos va a aparecer una interfaz en modo texto que se va a ir actualizando cada 3 segundos. Muestra un resumen del estado de nuestro sistema y la lista de procesos que se están ejecutando. La salida que obtengo en mi ordenador es la siguiente:
1. Tiempo de actividad y carga media del sistema
En la primera línea nos muestra: Hora actual. Tiempo que ha estado el sistema encendido. Número de usuarios (mario y root). Carga media en intervalos de 5, 10 y 15 minutos respectivamente. 2. Tareas
La segunda línea muestra el total de tareas y procesos, los cuales pueden estar en diferentes estados. Yo lo tengo en castellano y la traducción es un poco pobre, así que lo explico en inglés: Running (ejecutar): procesos ejecutándose actualmente o preparados para ejecutarse. Sleeping (hibernar): procesos dormidos esperando que ocurra algo (depende del proceso) para ejecutarse. Stopped (detener): ejecución de proceso detenida. Zombie: el proceso no está siendo ejecutado. Estos procesos se quedan en este estado cuando el proceso que los ha iniciado muere (padre). 3. Estados de la CPU
Esta línea nos muestra los porcentajes de uso del procesador diferenciado por el uso que se le de.
us (usuario): tiempo de CPU de usuario.
sy (sistema): tiempo de CPU del kernel.
id (inactivo): tiempo de CPU en procesos inactivos.
wa (en espera): tiempo de CPU en procesos en espera.
hi (interrupciones de hardware): interrupciones de hardware.
si (interrupciones de software): tiempo de CPU en interrupciones de software.
6. Columnas
Ahora vamos a ver las diferentes columnas que nos encontramos al ejecutar el comando.
PID: es el identificador de proceso. Cada proceso tiene un identificador único.
USER (USUARIO): usuario propietario del proceso.
PR: prioridad del proceso. Si pone RT es que se está ejecutando en tiempo real.
NI: asigna la prioridad. Si tiene un valor bajo (hasta -20) quiere decir que tiene más prioridad que otro con valor alto (hasta 19).
VIRT: cantidad de memoria virtual utilizada por el proceso.
RES: cantidad de memoria RAM física que utiliza el proceso.
SHR: memoria compartida.
S (ESTADO): estado del proceso.
%CPU: porcentaje de CPU utilizado desde la última actualización.
%MEM: porcentaje de memoria física utilizada por el proceso desde la última actualización.
TIME+ (HORA+): tiempo total de CPU que ha usado el proceso desde su inicio.
COMMAND: comando utilizado para iniciar el proceso.
Imagen 1- Particiones
¿QUÉ ES?
Es el nombre que recibe cada una de las divisiones en una sola unidad física de almacenamiento de datos, dándole a cada partición un propio sistema de archivo llamado formato, la gran mayoría de los sistemas operativos reconocen, utilizan y manipulan una partición como un disco físico independiente sabiendo que solo están en un solo disco físico.
PARTICIONES FIJAS
Imagen 1- Particiones Fijas
Con la creación de estas particiones se comienza a ver la multiprogramación, una partición fija por cada tarea, el tamaño de la partición se daba al arrancar el sistema, cada partición se podía re-configurar al volver a encender o reiniciar el sistema, con estas particiones nos aparece la fragmentacion interna.
Imagen 2- Proceso de Particiones Fijas
ALGORITMO DE UBICACIÓN:
Si se llega a tener alguna partición libre, un proceso se puede cargar en esta y si se llega a tener todas las particiones llenas se saca un proceso que no este listo para ejecutarse, para que el proceso que se va a ejecutar pase a tomar su lugar dentro de la partición.
PARTICIONES DINÁMICAS
Imagen 3- Partición Dinámica
Con las particiones dinámicas, la memoria contigua sigue manteniéndose en bloques contiguos pero a los trabajos solo se les proporciona tanta memoria como lo solicitan cuando se cargan para su procesamiento. Aunque esta mejora es importante con respecto a las particiones fijas porque dentro de las particiones no se desperdicia memoria, no elimina por completo el problema.
Imagen 4- Proceso o comportamiento Partición Dinámica
Uso de la memoria principal durante la asignación por particiones dinámicas. Cinco primeros encisos (a-e) de memoria principal cuando 8 trabajos se presentan para su procesamiento y se les asigna espacio como base en el "Primer llegado, primer servido". El trabajo 8 debe esperar a e) aun cuando entre las particiones hay suficiente memoria libre para acomodarlo.
TÉCNICAS DE ASIGNACIÓN
PRIMER AJUSTE : El sistema operativo asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la información. La búsqueda de este bloque es de manera secuencial. Ejemplo: Suponiendo una memoria principal de 32 KB.
MEJOR AJUSTE : El sistema operativo busca el bloque de memoria que represente el menor desperdicio según el requerimiento.
PEOR AJUSTE: El sistema operativo asigna el bloque mas grande que encuentre.
¿VENTAJAS/ DESVENTAJAS?
PRIMER AJUSTE
El mecanismo es más fácil de implementar.
Ejecución rápida.
Pero no considera facilitar las cosas para el futuro...
MEJOR AJUSTE:
Requiere revisión completa de los bloques disponibles.
Mantenerlos en una lista ordenada.
Busca que el desperdicio sea el menor posible.
Pero va generando muchos bloques pequeños.
PEOR AJUSTE:
Requiere revisión de los bloques disponibles.
O mantenerlos en una lista ordenada.
Busca que los bloques que van quedando tras la creación de nuevos procesos tiendan a ser del mismo tamaño.
Balanceando el tamaño de los bloques remanentes.
PARTICIONES RELOCALIZABLES
En este tipo de esquema el administrador de memoria relocaliza los programas para reunir los bloques vacíos y los compacta para hacer un bloque de memoria lo bastante grande. El sistema operativo compacta la memoria a este proceso también se le conoce como recolección de basura o defragmentacion.
La memoria se define como los circuitos que permiten almacenar y recuperar la información y mas técnicamente es la unidad de almacenamiento en bit en disco.
MEMORIA RAM
Imagen 2 - Memoria RAM
La memoria RAM es un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder a cualquier byte de memoria sin acceder a los byte precedentes. La memoria RAM es el tipo de memoria más común en ordenadores y otros dispositivos como las impresoras.
TIPOS
RAM dinámica (DRAM)
RAM estática (SRAM)
Los dos tipos de memoria RAM se diferencian en la tecnología que utilizan para guardar los datos, la memoria RAM dinámica es la mas común. La memoriaRAM Dinámica necesita Actualizarse miles de veces por segundo, mientras que la memoria RAM estática no necesita actualizarse, por lo que es más rápida pero también mas costosa.
MEMORIA ROM
La memoria ROM, (read-only memory) o memoria de sólo lectura, es la memoria que se utiliza para almacenar los programas que ponen en marcha el ordenador y realizan los diagnósticos. La mayoría de los ordenadores tienen una cantidad pequeña de memoria ROM (algunos miles de bytes).
TIPOS DE ROM
Las memorias ROM han evolucionado gradualmente desde memorias fijas de sólo lectura hasta convertirse en memorias que pueden programarse y reprogramarse.
ROM
Las primeras memorias ROM se fabricaron utilizando un procedimiento que escribe directamente la información binaria en una placa de silicona mediante una máscara. Este procedimiento hoy en día es obsoleto.
PROM
Las memorias PROM (Programmable Read Only Memory, o Memoria Programable de Sólo Lectura), fueron desarrolladas a fines de la década del 70 por una compañía llamada Texas Instruments. Dichas memorias consisten en chips que comprimen miles de fusibles (o diodos) capaces de "quemarse" mediante un dispositivo denominado "programador ROM", aplicando un alto voltaje (12V) a las cajas de memoria a marcar. Los fusibles quemados corresponden a 0 y los demás a 1.
EPROM
Las memorias EPROM (Erasable Programmable Read Only Memory, o Memoria Programable y Borrable de Sólo Lectura), son memorias PROM que se pueden eliminar. Estos chips disponen de un panel de vidrio que deja entrar los rayos ultra-violeta. Cuando el chip es sometido a rayos ultra-violeta de una determinada longitud de onda, se reconstituyen los fusibles, lo que implica que todos los bits de memoria vuelven a 1. Por esta razón, este tipo de PROM se denomina borrable.
EEPROM
Las memorias EEPROM (Electrically Erasable Programmable Read Only Memory, o Memoria Programable de Sólo Lectura Borrable Eléctricamente) también son memorias PROM borrables, pero a diferencia de éstas, se pueden borrar mediante una sencilla corriente eléctrica, es decir, incluso si se encuentran en posición en el ordenador.
Fuentes de Información: http://es.ccm.net/contents/399-memoria-de-solo-lectura-rom