miércoles, 30 de noviembre de 2011

UNIDAD 5


ADMINISTRADOR DE DISPOSITIVOS
El Administrador de Dispositivos administra los recursos de hardware tales como CPU, memoria, dispositivos de almacenamiento, periféricos de entrada y de salida y de forma eficiente, asignándolos de forma equitativa a los procesos, evitando que los procesos se saturen.  En el caso de dispositivos de Windows muestra los dispositivos que están instalados en el PC, además permite actualizar los drivers o controladores de los dispositivos instalados, así como  modificar la configuración del hardware y de este modo resolver algunos problemas
DISPOSITIVOS
Estructuras sólidas, electrónicas y mecánicas diseñadas para un uso específico, estos se conectan entre sí para crear una conexión en común y obtener los resultados esperados siempre y cuando cumplan con las reglas de configuración.  Permiten a una computadora realizar acciones como emitir sonidos, imprimir imágenes y texto, incorporar texto, etc. 
DISPOSITIVOS DE ENTRADA
Introducen datos a la computadora para su proceso, se leen y se almacenan en la memoria central o interna, convierten la información en señales eléctricas que se almacenan en la memoria central. Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas de mando (joystick), CD-ROM, discos compactos (CD), mouse. 
DISPOSITIVOS DE SALIDA
Permiten representar los resultados (salida) del proceso de datos.  El dispositivo de salida típico es la pantalla o monitor, otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), bocinas, entre otros...
DISPOSITIVOS DE ENTRADA
MOUSE
Su función principal es transmitir los movimientos de nuestra mano sobre una superficie plana hacia el ordenador, allí el software denominado driver se encarga realmente de transformarlo a un movimiento del puntero por la pantalla dependiendo de varios parámetros.
          Tipos de Mouse
Ø  Mecánico: Unidad de ingreso de datos equipada con uno o más botones y una pequeña esfera en su parte inferior, del tamaño de una mano y diseñado para trabajar sobre una tabla o mouse-pad ubicada al lado del teclado. Al mover el mouse la esfera rueda y un censor activa la acción.
Ø  Óptico: Emplea la luz para obtener sus coordenadas y se desplaza sobre una tabla que contiene una rejilla reflectante, colocada sobre el escritorio.
TECLADO
          Es el dispositivo más común de entrada de datos, se lo utiliza para introducir comandos, textos y números. Estrictamente hablando, es un dispositivo de entrada y de salida, ya que los LEDs también pueden ser controlados por la máquina.

          Funciones del teclado:
Ø  Teclado alfanumérico: Conjunto de 62 teclas entre las que se encuentran las letras, números, símbolos ortográficos, Enter, alt...etc.
Ø  Teclado de Función: Conjunto de 13 teclas entre las que se encuentran el ESC, tan utilizado en sistemas informáticos, más 12 teclas de función, suelen ser configurables pero por ejemplo existe un convenio para asignar la ayuda a F1.
Ø  Teclado Numérico: Se encuentra a la derecha del teclado alfanumérico y consta de  números así como un Enter y operadores numéricos de suma, resta,... etc.
Ø  Teclado Especial: son las flechas de dirección y un conjunto de 9 teclas agrupadas en 2 grupos; uno de 6 (Inicio y fin entre otras) y otro de 3 con la tecla de impresión de pantalla entre ellas.
Tipos de Teclado:
Ø  De Membrana
Ø  Mecánico
Ø  Teclado para internet
Ø  Teclados inalámbricos
SCANNER
Aparato digitalizador de imagen, transforma algo analógico (algo físico) en algo digital (en bits). Se encarga de copiar una imagen (fotografía, dibujo o texto) y convertirla a un formato que podamos almacenar y modificar con el ordenador. El proceso de captación de una imagen resulta casi idéntico para cualquier escáner: se ilumina la imagen con un foco de luz, se conduce mediante espejos la luz reflejada hacia un dispositivo denominado CCD que transforma la luz en señales eléctricas, se transforma dichas señales eléctricas a formato digital en un DAC (conversor analógico-digital) y se transmite el caudal de bits resultante al ordenador.
Tipos de Escáner:
Ø  Flatbed: los objetos se colocan boca abajo sobre una superficie lisa de cristal y son barridos por un mecanismo que pasa por debajo de ellos. Otro tipo de escáner flatbed utiliza un elemento de barrido instalado en una carcasa fija encima del documento.
Ø  Escáner de mano: también llamado hand-held, porque el usuario sujeta el escáner con la mano y lo desplaza sobre el documento. Estos escáneres tienen la ventaja de ser relativamente baratos, pero resultan algo limitados porque no pueden leer documentos con una anchura mayor a 12 o 15 centímetros.
Ø  Lector de código de barras: dispositivo que mediante un haz de láser lee dibujos formados por barras y espacios paralelos, que codifica información mediante anchuras relativas de estos elementos. Los códigos de barras representan datos en una forma legible por el ordenador, y son uno de los medios más eficientes para la captación automática de datos.

WEBCAM
Estas cámaras se usan típicamente solo cuando los usuarios de las computadoras están encendidos y conectados a Internet. Con el apoyo de un modem DSL y Cable, sus únicas complicaciones son velocidad y de seguridad. Cámara que esta simplemente conectada a la red o INTERNET,  tienen un funcionamiento continuo de cámara de video, contienen un programa para captar un imagen en un archivo cada determinados segundos o minutos, y cargan el archivo de la imagen en un servidor Web para desplegarla en una página Web.
Tipos de Cámaras:
Ø  Cámara de fotos digital: Toma fotos con calidad digital, casi todas incorporan una pantalla LCD (Liquid Cristal Display) donde se puede visualizar la imagen obtenida, tiene una pequeña memoria donde almacena fotos para después transmitirlas a un ordenador.
Ø  Cámara de video: Graba videos como si de una cámara normal se tratara, pero las ventajas que ofrece en estar en formato digital, que es mucho mejor la imagen, tiene una pantalla LCD por la que ves simultáneamente la imagen mientras grabas. Se conecta al PC y este recoge el video que has grabado, para poder retocarlo posteriormente con el software adecuado.
LAPIZ ÒPTICO
Dispositivo señalador que permite sostener sobre la pantalla (fotosensible) un lápiz que está conectado al ordenador con un mecanismo de resorte en la punta o en un botón lateral, mediante el cual se puede seleccionar información visualizada en la pantalla, este dispositivo al presionarlo sobre la ventana respectiva o presionando el botón lateral, permitiendo de ese modo que se proyecte un rayo láser desde el lápiz hacia la pantalla fotosensible, contiene sensores luminosos y envía una señal a la computadora cada vez que registra una luz, por ejemplo al tocar la pantalla cuando los píxeles no negros que se encuentran bajo la punta del lápiz son refrescados por el haz de electrones de la pantalla.
JOYSTICK
Principalmente existen diferentes tipos de joystick: analógicos y los digitales. Esa un dispositivo que está constituido por una palanca que se mueve apoyada en una base, con una rótula en un extremo, que permite efectuar rotaciones según dos ejes perpendiculares, su orientación es detectada por dos medidores angulares perpendiculares, siendo enviada esta información al ordenador, van conectados al puerto juegos de la placa, al de la tarjeta de sonido, al puerto o puertos de una tarjeta de juegos.
Tipos de Joysticks:
Ø  Pads. Se componen de una carcasa de plástico con un mando en forma de cruz para las direcciones y unos botones para las acciones. El control se hace de forma digital: es decir, o pulsas o no pulsas.
Ø  Joystick clásico. Una carcasa de plástico con una palanca con botones de disparo, imitando a las de los aviones. El control en estos joysticks suele ser analógico: cuánto más inclinas la palanca, más rápido responde el juego, especialmente recomendados para simuladores de vuelo.
Ø  Volantes y pedales. Para juegos de coches.
Ø  También hay joysticks 3D, con procesador incorporado (para responder a tus movimientos) e incluso los hay que dan sacudidas y tal cuando te pegan un tiro.

DISPOSITIVOS DE SALIDA
MONITOR O PANTALLA
Cuando hablamos de monitor nos referimos normalmente a la pantalla de vídeo y su carcasa, se conecta al adaptador de vídeo mediante un cable, es el dispositivo en el que se muestran las imágenes generadas por el adaptador de vídeo del ordenador o computadora.
Ø  Monitor analógico es un monitor visual capaz de presentar una gama continua (un número infinito) de colores o tonalidades de gris, a diferencia de un monitor digital, que sólo es capaz de presentar un número finito de colores
Ø  Monitor digital es un monitor de vídeo capaz de presentar sólo un número fijo de colores o tonalidades de gris.
IMPRESORAS
Una impresora es un periférico de ordenador que permite producir una copia permanente de textos o gráficos de documentos almacenados en formato electrónico, imprimiéndolos en medios físicos, normalmente en papel o transparencias, utilizando cartuchos de tinta o tecnología láser.
BOCINAS
En algunos países de Hispanoamérica se le llama al altavoz, bafle, parlante o altoparlante, el cual es un dispositivo utilizado para la reproducción de sonido a partir de una señal eléctrica.
TARJETA DE SONIDO
Una tarjeta de sonido o placa de sonido es una tarjeta de expansión para computadoras que permite la salida de audio bajo el control de un programa informático llamado controlador (en inglés driver). El típico uso de las tarjetas de sonido consiste en proveer mediante un programa que actúa de mezclador, que las aplicaciones multimedia del componente de audio suenen y puedan ser gestionadas. Estas aplicaciones multimedia engloban composición y edición de video o audio, presentaciones multimedia y entretenimiento (videojuegos). Algunos equipos (como los personales) tienen la tarjeta ya integrada, mientras que otros requieren tarjetas de expansión. También hay otro tipo de equipos que por circunstancias profesionales (como por ejemplo servidores) no requieren de dicho servicio.
ALTAVOCES
Un altavoz (también conocido como parlante en América del Sur, Costa Rica, El Salvador es un transductor electroacústico utilizado para la reproducción de sonido. Uno o varios altavoces pueden formar una pantalla acústica. El sonido se transmite mediante ondas sonoras, en este caso, a través del aire. El oído capta estas ondas y las transforma en impulsos nerviosos que llegan al cerebro. Si se dispone de una grabación de voz, de música en soporte magnético o digital, o si se recibe estas señales por radio, se dispondrá a la salida del aparato de señales eléctricas que deben ser convertidas en sonidos; para ello se utiliza el altavoz.
AURICULARES
Los auriculares son transductores que reciben una señal eléctrica de un tocador de medios de comunicación o el receptor y usan altavoces colocados en la proximidad cercana a los oídos para convertir la señal en ondas sonoras audibles.Los auriculares son principalmente usados en aparatos como radios o reproductores musicales (incluyendo la computadora), pero también pueden ser conectados a amplificadores musicales, como los estéreos y los reproductores de música. Los auriculares de más calidad suelen tener la cápsula o “corazón” del altavoz de neodimio, una aleación de metal que permite un gran rango dinámico y una amplitud de frecuencias completa. Además, su sonido es más claro y de mayor calidad.
FAX
Se denomina fax, por abreviación de facsímil, a un sistema que permite transmitir a distancia por la línea telefónica escritos o gráficos (telecopia).
Método y aparato de transmisión y recepción de documentos mediante la red telefónica conmutada que se basa en la conversión a impulsos de las imágenes «leídas» por el emisor, impulsos que son traducidos en puntos -formando imágenes- en el receptor.
CANALES
El tamaño del bus, llamado “bus width”, determina el número de bits que la computadora puede transmitir en un momento dado, por ejemplo, un bus de 32 bits puede transmitir 32 bits (cuatro bytes) a la vez. Mientras más grande es el número de bits que el bus puede manejar, con mayor rapidez los datos se transfieren en la computadora.
La computadora procesa y guarda datos como una serie de bits electrónicos, estos bits se transfieren internamente dentro de los circuitos de la computadora a través de canales eléctricos. Cada canal eléctrico, llamado “bus”, permite la comunicación del ordenador.

PARTES DE LOS CANALES O BUSES
Ø  El bus de datos transfiere datos actuales
Ø  El bus de dirección transfiere información hacia qué lugar en la memoria van los datos.

TIPOS BASICOS DE BUSES

Ø  El “sistema bus” es parte del motherboard y conecta el procesador a la memoria principal.
Ø  El “expansion bus” permite que el procesador se comunique con los equipos, por lo general, cuando se utiliza el término “bus” se refiere al “system bus”.

UNIDAD DE CONTROL

La unidad de control (UC) es la circuitería que controla el flujo de datos a través del procesador, y coordina las actividades de las otras unidades dentro de él. De una manera, es el "cerebro dentro del cerebro", pues controla lo que sucede dentro del procesador, que a su vez controla el resto del PC. Es uno de los tres bloques funcionales principales en los que se divide una Unidad Central de Procesamiento (CPU). Los otros dos bloques son la Unidad de Proceso y el BSalida. Su función es buscar las instrucciones en la memoria principal, decodificarlas (interpretación) y ejecutarlas, empleando para ello la unidad de proceso.

Tipos de Unidades de Control

Ø  Las Cableadas, usadas generalmente en máquinas sencillas. Sus componentes principales son el circuito de lógica secuencial, el de control de estado, el de lógica combinacional y el de emisión de reconocimiento de señales de control.
Ø  Las Micro programadas, propias de máquinas más complejas. La  microprogramación de la unidad de control se encuentra almacenada en una micro memoria, a la cual se accede de manera secuencial para posteriormente ir ejecutando cada una de las microinstrucciones.

FUNCIONES DE LA UNIDAD DE CONTROL

Las funciones realizadas por la unidad de control varían grandemente por la arquitectura interna del CPU. En un procesador regular que ejecuta las instrucciones x86 nativamente, la unidad de control realiza las tareas de leer decodificar, manejo de la ejecución y almacenamiento de los resultados.  Ella maneja la planificación de las microinstrucciones entre las varias unidades de ejecución y maneja la salida de estas unidades para cerciorarse de que terminen donde supuestamente deben ir.
CONTROLADOR TRAFICO DE ENTRADA/SALIDA

El controlador tráfico lleva el estado de los dispositivos, unidades de control y procesadores de E/S por medio de bloques de control. Determina la posibilidad de una operación de E/S y la posibilidad de caminos alternativos. Una vez que hay un orden es el controlador de tráfico que determina que puede ser satisfecho el pedido al colocarlo en determinado bloque de control estableciendo de esta forma la ruta.

ASIGNACION DE DISPOSITIVOS A LOS PROCESOS

                Cuando un proceso es creado por el sistema operativo tras la solicitud explícita de otro proceso, la acción se conoce como generación de procesos (process spawning). Cuando un proceso genera otro, el proceso generador se conoce como proceso padre y el proceso generado es el proceso hijo. De aquí su asignación al entorno de un trabajo.
  • En un entorno de trabajo por lotes, un proceso se crea como respuesta a la remisión de un trabajo.
  • En un entorno interactivo, cuando un nuevo usuario intenta conectarse.
  • Por una aplicación. Por ejemplo, si un usuario solicita la impresión de un archivo, el S.O. creará un proceso que gestionará dicha impresión.
  • Por solicitud de otro proceso.
 Y al referirnos a los dispositivos decimos que sus características son fundamentales para su asignación en función de los procesos a ejecutar
SPOOLING

En el campo de la Informática, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer (un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo.

Que Hace el Spooling

Ø  Simular más periféricos dedicados  de los que existen en la instalación
Ø  Simular periféricos que no existen en la instalación
Ø  Menor tiempo en listo_ejecutando_bloqueado
Ø  Funcionamiento del periférico a su máxima velocidad
Ø  Permite la planificación de los trabajos de impresión

La aplicación más común del spooling es la impresión. En este caso, los documentos son cargados en un buffer, que habitualmente es un área en un disco, y la impresora los saca de éste a su propia velocidad. El usuario puede entonces realizar otras operaciones en el ordenador mientras la impresión tiene lugar en segundo plano. El spooling permite también que los usuarios coloquen varios trabajos de impresión en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.
DISPOSITIVOS VIRTUALES

Son utilizados mediante controladores de dispositivo también virtuales, estas piezas de software "virtualizan" los mencionados dispositivos, de forma que se comportan hacia la máquina virtual como si estuviese dialogando con un dispositivo hardware real y le proporcionan los mismos servicios que si los dispositivos físicos estuviesen realmente disponibles. 

La particularidad es que este hardware es ideal, en el sentido que es normalizado, por ejemplo, para una aplicación que corre en una máquina virtual, la controladora de video es siempre la misma, con independencia de cuál sea el modelo realmente conectado. Aunque la mayoría de los dispositivos virtuales manejan dispositivos hardware sus entradas y salidas,  otros manejan o reemplazan determinados recursos software, por ejemplo rutinas de ROM BIOS. Estos dispositivos virtuales son únicos y compartidos por todas las máquinas virtuales que los necesitan en cada momento. 

BUFFERING

Es una ubicación de la memoria en una computadora o en un instrumento digital reservada para el almacenamiento temporal de información digital, mientras que está esperando ser procesada.  Por ejemplo, un analizador TRF tendrá uno o varios buffers de entrada, donde se guardan las palabras digitales que representan las muestras de la señal de entrada.   Las diferencias entre Buffering y Spooling son que el Buffering solapa la E/S de un trabajo con su propio tratamiento (procesamiento) y el Spooling solapa la E/S de un trabajo con el procesamiento de otro.

UNIDADES 3 Y 4


LA MEMORIA

La Memoria es uno de los principales recursos de la computadora. Actualmente las aplicaciones tienen altos requerimientos de memoria y la parte del sistema operativo que administra la memoria se llama Administrador de Memoria.  Su labor 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 necesiten y liberándola cuando terminen, así como administrar el intercambio entre 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 ella.

El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal al menos parcialmente durante la ejecución.

MEMORIA REAL-.La Memoria Real o Principal es  donde son ejecutados los programas y procesos de una computadora, siendo el espacio real que existe para que se ejecuten los procesos.Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es más rápido. Solo la memoria caché es más rápida que la principal pero su costo es mayor.

Estas memorias a menudo tienen una capacidad de más de 100GB y permiten almacenar buena parte de los archivos y datos que un usuario emplea habitualmente.

MEMORIA AUXILIAR.- La Memoria Secundaria o Auxiliar es en un ordenador el conjunto de dispositivos que permiten almacenar datos complementarios a aquellos que se archivan en la memoria principal.

Funciona como un dispositivo complementario y suele ubicarse por fuera del ordenador, como uno o más periféricos que cuentan con espacio adicional para almacenar más datos que los que entran en el disco duro de la computadora.  Aunque se trata de memorias más lentas o con menor capacidad, son una buena opción de complemento a la hora de ampliar la disponibilidad de espacio de un ordenador cualquiera. 

Al hablar de este tipo de memorias puede hacerse referencia a los antiguos diskettes, CD-ROM, DVD, unidades de memoria flash, discos Zip y otras alternativas.  Cada una de ellas presenta diversas características que la adecuan a uno u otro propósito. 

Los dispositivos de memoria auxiliar se vinculan al ordenador por medio de puertos USB o en casos se relacionan directamente con la memoria principal, conformando un sub-sistema.   Además, muchas de ellas permiten la movilidad del dispositivo, transportando información de un ordenador a otro con facilidad y rapidez.

MEMORIA VIRTUAL-. La Memoria Virtual es el mecanismo más general para la ejecución de programas no enteros en memoria. Se basa en un sistema de paginación (o combinado) en el que sólo un subconjunto de las páginas del programa estácargado en memoria.
Presenta adicionalmente capacidad para ejecutar programas mayores que la memoria física disponibles, un conjunto de interesantes ventajas con respecto a la paginación con programas enteros: 

·         Reduce la latencia en la ejecución de los programas, al no tener éstos que cargarse completamente para comenzar a ejecutarse. 

·         Permite gestionar más eficientemente la memoria física. Cualquier espacio libre, incluso una única página, puede ser aprovechado para cargar un nuevo  programa y comenzar a ejecutarlo. Por otra parte, si una página de un  programa no se referencia durante la ejecución, no habrá que cargarla. 

·         Al aumentar el grado de multiprogramación a costa de reducir el número de páginas cargadas de cada programa, permite incrementar la eficiencia de la CPU en sistemas multiprogramados

Ahora la independencia de los programas con respecto a la máquina es completa, además del direccionamiento virtual que aporta la paginación, la cantidad de memoria física disponible para ejecutar el programa sólo es relevante para la velocidad de ejecución del programa.  El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener más memoria RAM de la que realmente hay en el sistema.

La memoria virtual es un concepto que se usa en algunos sistemas de computadoras grandes y que permite al usuario construir programas como si estuviera disponible un gran espacio de memoria, igual a la totalidad de la memoria auxiliar.Esta memoria utiliza una parte de almacenamiento secundario de la computadora (disco duro) como si fuera memoria.Es por lo general de menos costo que la secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. 

Se usa la memoria virtual para dar a los programadores la ilusión de que tienen a su disposición una memoria muy grande, aunque la computadora tenga en realidad una memoria relativamente pequeña.

Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario, hay varias formas de hacer esto. Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación) y de traerla y llevarla. 

La desventaja de esto  además de la dificultad en el diseño e implementación del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en cuenta que es el único programa ejecutándose en el sistema.
La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee.  Con la memoria virtual el sistema operativo asigna una porción de un medio de almacenamiento, usualmente el disco duro para funcionar como RAM adicional.

Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real, el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. 

Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real). 

Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en:

·         La dirección real de memoria (la dirección de memoria física)  o
·     Una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual)

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales, simplifica la carga del programa para su ejecución llamada reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.   Siendo el espacio en nuestro disco duro que Windows usa cuando le queda poca memoria RAM (que a su vez, es la memoria que se utiliza para correrprogramas, etc.).
Windows, por defecto, asigna cierta cantidad de espacio en nuestro disco duro para cumplir la función de “memoria virtual” y la verdad, este espacio asignado puede resultar insuficiente si usualmente corremos varios programas pesados.

PAGINACION Y MEMORIA VIRTUAL-. La memoria virtual usualmente pero no necesariamente es implementada usando paginación. En paginación, los bits menos significativos de la dirección de memoria virtual son preservados y usados directamente como los bits de orden menos significativos de la dirección de memoria física. Los bits más significativos son usados como una clave en una o más tablas de traducción de direcciones (llamadas tablas de paginación), para encontrar la parte restante de la dirección física buscada.

La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato.

La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.

Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.

ADMINISTRACIÓN DE MEMORIA

Es la tarea llevada a cabo por el OS y el hardware para acomodar múltiples procesos  en memoria principal.  El administrador de memoria tiene como objetivos:

·         Ubicar, reemplazar, cargar y descargar procesos en la memoria principal.
·         Proteger la memoria de accesos indeseados
·         Permitir la compartición de zonas de memoria indispensables para lograr la cooperación de procesos.

Las técnicas usadas para la administración de memoria son las siguientes:
Partición Fija-. La memoria principal se divide en un conjunto de particiones de tamaño fijo durante el inicio del sistema. Ventaja: Poca sobrecarga al S.O.
Partición Dinámica.- El uso de la memoria es muy ineficiente, se genera huecos entre las particiones, cada vez más pequeñas se genera la fragmentación externa.
Paginación Simple.- La memoria principal se divide en un conjunto de marcos de igual tamaño. Cada proceso se divide en una serie de páginas del tamaño de los marcos. Fragmentación interna pequeña.
Segmentación Simple.- Cada proceso y sus datos se dividen en segmentos de longitud variable. Fragmentación externa, con menos compactación.
ADMINISTRACION DE MEMORIA SIMPLE-. Se refiere al caso más simple donde no hay memoria virtual.  Un proceso para su ejecución debe cargarse completamente en memoria principal (si no se usan overlays). 

Las Técnicas de gestión de Memoria Simple

·         Partición fija
·         Partición dinámica
·         Paginación simple
·         Segmentación simple

ADMINISTRACIÓN DE MEMORIA PARTICIONADA-. Divide la memoria principal en un conjunto solapado de regiones llamadas Particiones, de tamaños iguales o desiguales.

ADMINISTRACIÓN DE MEMORIA DE PAGINA REORGANIZABLE-. Es la vista del espacio de direccionamiento como arreglo de bytes, divide el espacio en páginas de igual tamaño, usa la tabla de página para mapear paginas virtuales a páginas físicas.

En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página, de  esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.En un momento cualquiera la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. 

El sistema operativo mantiene una lista de estos últimos marcos y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso, de esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.

En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.

ADMINISTRACIÓN DE MEMORIA CON DEMANDAS DE PÁGINAS

El término memoria virtualse asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.
Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la memoria principal, se crea y carga en la memoria principal una tabla de páginas. Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal. Puesto que sólo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la página correspondiente está presente (P) en la memoria principal o no. Si el bit indica que la página está en la memoria, la entrada incluye también el número de marco para esa página.
Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargó en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente. 

Estructura de la tabla de páginas.- El mecanismo básico de lectura de una palabra de la memoria supone la traducción por medio de la tabla de páginas de una dirección virtual o lógica, formada por un número de página y un desplazamiento, a una dirección física que está formada por un número de marco y un desplazamiento. 

Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinación de hardware y software a direcciones físicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducción de direcciones. Actualmente los dos niveles de la jerarquía de memoria controlados por la memoria virtual son las DRAM y los Discos magnéticos.

 La mayoría de los esquemas de memoria virtual almacenan las tablas de páginas en la memoria virtual en vez de en la memoria real, esto significa que estas tablas de páginas están también sujetas a paginación, de la misma forma que las otras páginas.

La paginación elimina la fragmentación externa y de este modo, aprovecha la memoria principal de forma eficiente, además, puesto que los fragmentos que se cargan y descargan de la memoria principal son de tamaño fijo e iguales, es posible construir algoritmos se gestión de memoria sofisticados que aprovechen mejor el comportamiento de los programas
SEGMENTACIÓN-. Divide el espacio de direccionamiento en unidades logicas, stock, codigo, datos,procedimientos.La segmentación es la capacidad de gestionar estructuras de datos que puedan crecer, la modularidad y el soporte de la compartición y la protección.Es el sistema de gestión de memoria en un sistema operativo, divide la memoria en segmentos, cada uno de los cuales tiene una longitud variable, que está definida intrínsecamente por el tamaño de ese segmento del programa. Los elementos dentro de un segmento están identificados por su desplazamiento con respecto al inicio del segmento.

La Paginación y Segmentación permiten la ubicación no contigua de programas para combatir la fragmentación y la  degradación de la memoria. Al poder ubicarse de forma no contigua, un programa  ya no necesita un hueco de su tamaño, sino que la cantidad total de memoria libre  sea mayor o igual. La ubicación no contigua requiere dividir los programas en trozos. En paginación, que es un caso particular del particionado fijo, el programa se divide en páginas del mismo tamaño. La segmentación, que es un caso particular de particionado variable, divide el programa en sus unidades lógicas (código, pila, datos,…), denominadas segmentos.

Las direcciones lógicas de los programas no contiguos presentan una gran independencia de su ubicación física (direccionamiento virtual), proporcionada  sobre la base de tablas de traducción de direcciones. Otra ventaja de los programas no contiguos es que facilita que varios programas compartan trozos entre ellos, por ejemplo el código, lo que permite un ahorro importante de memoria y de tiempo de carga.

OVERLAYS-. Esta técnica consiste en que el programador divide lógicamente un programa muy grande en secciones que puedan almacenarse en las particiones de RAM. Al final de cada sección del programa (o en otros lugares necesarios) el programador inserta una o varias llamadas al sistema con el fin de descargar la sección presente de RAM y cargar otra, que en ese momento reside en disco duro u otro medio de almacenamiento secundario. Esta solución requiere que el programador tenga un conocimiento muy profundo del equipo de cómputo y de las llamadas al sistema operativo. Con esta técnica se puede ejecutar programas más grandes que las particiones de RAM, donde la división del código corría a cuenta del programador y el control a cuenta del sistema operativo.

SWAPPING.- Es un mecanismo o modo de interrelacionar la memoria principal (la que contiene el programa en ejecución, los datos de proceso inmediato y los resultados intermedios) con la secundaria, de tal modo que se produce un intercambio de programas entre ambas cuyo resultado es la simulación de un sistema multitarea o la potenciación de memoria central a base de recursos de la memoria secundaria.

Es un mecanismo para mover programas entre memoria  principal y secundaria, normalmente disco (dispositivo se  swap). Con swapping, los programas pueden salir/entrar de/a memoria durante su tiempo de ejecución. Normalmente, un programa abandona la memoria para dejar espacio a otro. 

La función del sistema operativo que gestiona el intercambio entre disco y memoria se denomina intercambiador o  swapper. La operación de escribir el programa en disco se conoce como swap-out, mientras que leer el programa de disco se denomina swap-in. 

El swapping aporta las siguientes ventajas:

·         Permite influir en la gestión de procesos para controlar el grado de multiprogramación (planificación a medio plazo). 

·         Proporciona flexibilidad en la gestión de la memoria, permitiendo una utilización más eficiente del espacio.

Para soportar swapping se requiere espacio para el intercambio en almacenamiento  secundario, generalmente disco. Se puede utilizar un dispositivo específico  independiente, una partición del disco, o incluso compartir la misma del sistema de  ficheros.

CARGA Y ENLACE DINAMICO

El mecanismo del enlace dinámico necesita una llamada al sistema que cargue las rutinas y que gestione la memoria. Los beneficios actuales si se usa memoria virtual son los siguientes:

Tamaño en disco y en RAM: una repetición de la rutina solo se carga una vez para todos los programas, mayor rapidez de carga se cargan cuando se necesitan, los programas se inician más rápidamente, actualizan másfácilmente los programas si se actualiza la librería.Su función principal es proteger  la carga en memoria de un módulo hasta que el programa lo llame, como también tenemos el "Enlace dinámico"  que es otro caso de carga dinámica, es aquel en el cual la biblioteca de código se enlazada cuando un determinado programa se ejecuta en posición contraria a  un enlace estático que se produce en un tiempo de proceso de compilación. Este tipo de enlace tiene grandes ventajas, por ejemplo: hace que el
programa sea más liviano y puede evitar las duplicaciones de código.Las bibliotecas de enlace dinámico, o bibliotecas compartidas, suelen encontrarse en directorios específicos del sistema operativo, de forma que, cada vez que un programa necesite usar alguna, el sistema operativo conozca el lugar en el que se encuentra, para así poder enlazarla y realizar correctamente la operación.  

FUNCIONES ADMINISTRADOR DE MEMORIA

El administrador de memoria debe conocer:

·         Qué zonas de la memoria están libres y qué zonas ocupadas.
·         Introducir los procesos en memoria.

·         Se encarga de asignar y desasignar memoria a los procesos conforme vayan necesitando y liberando.

·         Debe controlar el intercambio entre Mp y Ms.

·         Además de esas funciones, el administrador de memoria debe cumplir los siguientes requisitos:

Protección: No solo debe proteger la zona de memoria del proceso, sino de la memoria del sistema operativo u otro proceso.

Compartición de memoria: cuando se ejecutan dos procesos iguales, debe permitir que dos procesos compartan la memoria.

Reubicación: Un proceso puede cambiar de zona de memoria durante su ejecución. Este requisito tiene sentido evidentemente es sistema multiprogramado.
En un sistema monoprogramado no tiene sentido porque si solo hay un proceso, ¿para qué lo voy a cambiar de sitio?

TECNICAS DEL ADMINISTRADOR DE MEMORIA

Asignación completa y contigua: el proceso se efectúa en una zona continua

·         Máquina desnuda
·         Mono programación
·         Particiones múltiples:
·         Particiones fijas
·         Sistema compañero
·         Particiones variables.

Asignación completa y no contigua:

·         Paginación
·         Segmentación
·         Segmentación-paginación

Asignación parical y no contigua:

·         Memoria Virtual
Asignación completa y contigua:
El proceso se ejecuta en una zona continua

REQUERIMIENTOS ESPECIALES HARWARE Y SOFTWARE

Cada fabricante oferta numerosas versiones de una arquitectura básica y  amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software.

El diseño del gestor de memoria en un sistema operativo depende de tres áreas fundamentales de decisión:

·         Si se emplean o no técnicas de memoria virtual.
·         El uso de paginación, segmentación o ambas.
·         Los algoritmos empleados para los problemas de la gestión de memoria.
 Las decisiones tomadas en las dos primeras áreas dependen de la plataforma de hardware disponible. Las decisiones del tercer punto (los algoritmos) son del dominio del software del S.O.  Además, el S.O. debe planificar la ejecución de otro proceso durante el intercambio de página, dando lugar a un cambio de proceso.
ALGORITMOS

Los algoritmos que se emplean para seleccionar una página a reemplazar son las siguientes:
·         Óptima: selecciona para reemplazar la página que tiene que esperar más tiempo hasta que se produzca la referencia siguiente, esta política genera el menor número de fallos de página. Este algoritmo resulta imposible de implementar ya que requiere que el S. O. tenga un conocimiento exacto de los sucesos futuros

·         Algoritmo de reemplazo de páginas según el uso no tan reciente: Este algoritmo hace uso de los dos bits de estado que están asociados a cada página. Estos bits son: R, el cual se activa cuando se hace referencia (lectura / escritura) a la página asociada; y M, que se activa cuando la página asociada es modificada (escritura), deben de ser actualizado cada vez que se haga referencia a la memoria, por esto es de suma importancia que sean activados por el hardware. Una vez activado el bit, permanece en ese estado hasta que el sistema operativo, mediante software, modifica su estado.

Los bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que cuando inicie el proceso, el sistema operativo asigne un valor de 0 a ambos bits en todas las páginas. En cada interrupción de reloj, limpie el bit R para distinguir cuáles páginas tuvieron referencia y cuáles no.

Cuando ocurre un fallo de página, el sistema operativo revisa ambos bits en todas las páginas y las clasifica de la siguiente manera:

Clase 0: La página no ha sido referenciada, ni modificada.
Clase 1: La página no ha sido referenciada, pero ha sido modificada.
Clase 2: La página ha sido referenciada, pero no ha sido modificada.
Clase 3: La página ha sido referenciada y también modificada.

Estrategia: Sustituir primero celdas tipo 0 (mejor opción), o tipo 1 (lento) pero grabando celda de salida, o tipo 2 (posible hiperpaginación), o tipo 3 (peor) pero grabando celda de salida.
Una vez obtenida la clasificación, elimina una página de manera aleatoria de la primera clase no vacía con el número más pequeño. Esto porque para el algoritmo es mejor eliminar una página modificada sin referencias en al menos un intervalo de reloj, que una página en blanco de uso frecuente.

A pesar de que este algoritmo no es el óptimo, es fácil de implementar y de comprender y con mucha frecuencia es el más adecuado.

·         Usada menos recientemente (LRU, Last Recently  Used): reemplaza la página de memoria que no ha sido referenciada desde hace más tiempo. Debido al principio de cercanía esta debería ser la página con menor probabilidad de ser referenciada en un futuro cercano. El problema de este método es su dificultad de implementación. Una solución sería etiquetar cada página con el momento de su última referencia; tanto para instrucciones como datos. Este esquema produce sobrecarga. 

·         Primera en entrar, primera en salir (FIFO, First In First Out): trata los marcos asignados a un proceso como un buffer circular y las páginas se suprimen de la memoria según la técnica de Round-Robin. Lo que se necesita es un puntero que circule a través de los marcos del proceso. Esta es una de las políticas de reemplazo más sencillas de implementar. Se reemplaza la página que ha estado más tiempo en la memoria, teniendo como desventaja que habrá regiones del programa o de datos que son muy usadas a lo largo de la vida de un programa por lo cual estas páginas se cargarán y expulsarán repetidas veces.

·         Reloj (Clock): requiere asociar un bit adicional a cada marco, denominado ‘bit de uso’. Cuando se carga una página por primera vez el bit de uso se pone a cero. Cuando se hace referencia a la página posteriormente, el bit de uso se pone a uno. Para el algoritmo de reemplazo de páginas, el conjunto de marcos candidatos a ser reemplazados se considera como un buffer circular con un puntero asociado. Al reemplazar una página, se hace que el puntero señale al primer puntero del buffer. Cuando llega el momento de reemplazar una página, el S.O. recorre el buffer buscando un marco con el bit de uso a cero y se detendrá en la posición inicial, reemplazando la página de dicho marco

TASAS DE RENDIMIENTO-. Dada la importancia, en el área del cómputo de alto rendimiento, del desempeño del subsistema de memoria de una computadora, se han usado muchas técnicas para tratar de mejorarlo. Sus dos atributos más importantes son el ancho de banda y la latencia. Ciertos diseños de sistemas de memoria mejoran uno a expensas del otro, mientras que otros impactan positivamente tanto en el ancho de banda como en la latencia. El ancho de banda generalmente se enfoca en la mejor tasa de transferencia del sistema de memoria en estado estacionario, lo que usualmente se mide durante la ejecución de un ciclo largo de avance unitario, que lee o lee y escribe la memoria. 

La latencia es una medida del rendimiento de un sistema de memoria, en el peor caso conforme mueve una pequeña cantidad de datos (como por ejemplo una palabra de 32 o 64 bits) entre el procesador y la memoria. Ambos son importantes porque son parte sustancial de muchas aplicaciones de alto rendimiento.

Como los sistemas de memoria se dividen en componentes, hay valores de ancho de banda y latencia de diferentes órdenes de magnitud entre los distintos componentes. La tasa de ancho de banda entre una cache y la CPU será más alta que el ancho de banda entre la memoria principal y la cache, por ejemplo. 
 
Además, puede haber muchas caches y rutas a la memoria. Usualmente, el valor pico del ancho de banda citado por los vendedores es la velocidad entre la cache de datos y el procesador.

ADMINISTRADOR DEL PROCESADOR-. La operación principal en la gestión de la memoria es traer los procesos a la memoria principal para que el procesador las pueda ejecutar. Para esto, la gestión de memoria debe satisfacer los siguientes requisitos:

·         Reubicación como el sistema operativo se encarga de gestionar la memoria y traer el proceso a la memoria principal a través de direcciones, al ser cargado o ejecutado el proceso no adquiere la misma dirección,  por lo tanto es necesario reubicar las direcciones y con la ayuda del sistema operativo es fácil adquirirlas para localizar los procesos presentes en memoria.

·         Protección, es un requisito que se encarga de regular que los procesos presentes en memoria no invadan o violen el espacio en memoria de otros procesos ya sea de forma accidental o por error. La reubicación dificulta un poco la protección, por esto las referencias de memoria se deben confirmar o comprobar en tiempo de ejecución para asegurar que se refiere al espacio de memoria asignado a dicho proceso.

·         Compartición: a través de esta se tiene acceso controlado a ciertas áreas de memoria ya que varios procesos almacenados en diferentes direcciones ayudan a la ejecución de un mismo programa evitando la redundancia de procesos y el acceso es controlado o restringido para protegerlos; Organización lógica mediante esta los programas tienden a ser ordenados en módulos que pueden ser o no modificables, con las ventajas de que se puedan modificar y compilar de forma independiente, con la dirección del  módulo  el sistema  puede ejecutarlo desde otro modulo, este facilita la graduación de la protección a los módulos, facilitando la especificación de  la compartición deseada; 

·         Organización física, esta es responsabilidad del sistema, dado que si el programador o diseñador del sistema define una compartición de memoria insuficiente para un programa podrían presentarse problemas, además el  no conoce cuanto espacio hay disponible ni donde se encuentra este espacio en  memoria

EL PROCESADOR-. El Procesador permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones. Las instrucciones se almacenan en la memoria principal, esperando ser tratadas por el procesador y pueden agruparse en distintas categorías. A continuación presentamos algunas de las más importantes:

·         Acceso a Memoria: acceso a la memoria o transferencia de información entre registros.
·         Operaciones Aritméticas: operaciones tales como suma, resta, división o multiplicación.
·         Operaciones Lógicas: operaciones tales como Y, O, NO, NO EXCLUSIVO, etc.
·         Control: controles de secuencia, conexiones condicionales, etc.

Cuando el procesador ejecuta instrucciones, la información almacena en forma temporal en pequeñas ubicaciones de memoria local de 8, 16, 32 o 64 bits, denominadas registros.Los registros más importantes son:

·         el registro acumulador (ACC), que almacena los resultados de las operaciones aritméticas y lógicas;

·         el registro de estado (PSWProcessor Estado: Word o Palabra de Estado del Procesador), que contiene los indicadores de estado del sistema (lleva dígitos, desbordamientos, etc.);

·         el registro de instrucción (RI), que contiene la instrucción que está siendo procesada actualmente;

·         el contador ordinal (OC o PC por ProgramCounter, Contador de Programa), que contiene la dirección de la siguiente instrucción a procesar;

·         el registro del búfer, que almacena información en forma temporal desde la memoria.

DIAGRAMAS DE ESTADO, TRABAJO Y PROCESO

El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo.

En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.
Los cinco estados del diagrama son los siguientes:

·         Ejecución: el proceso está actualmente en ejecución.

·         Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.

·         Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.

·         Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.

·         Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.

JOB-. Esta tecla selecciona el tipo de trabajo o de función a realizar. Por ejemplo leer contenidos de la ROM, de la RAM, grabar, mover, borrar bloques, etc...Esta tecla se utiliza pulsando JOB y un número o letra de teclado de datos. En la parte izquierda de la pantalla pondrá la función que ha sido seleccionada con el número o letra pulsada
SCHDEDULER-. Componente del sistema operativo que decide cuál de los procesos que está en estado ready es el que entrara a la CPU. Su decisión es basada según el sistema que este administrando y es resuelta por los Algoritmos de Calendarización.

El planificador (o scheduler en inglés) es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.

La primera misión de un planificador es expulsar el programa en ejecución cuando decida que es pertinente. Esto se consigue de dos maneras, siempre con ayuda del propio hardware:

§  Cuando expira un temporizador, que se activa a intervalos regulares de tiempo. En intervalos muy cortos, generalmente cada 250 milisegundos.

§  Cuando el programa solicita una operación de entrada/salida. Dado que el programa no puede continuar hasta que termine dicha operación, es un buen momento para ejecutar otro programa.

En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de ejecución del programa (programa y su estado se denomina proceso).

A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estén listos para hacerlo. Si un proceso sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que finalice tal operación.

Una vez seleccionado un proceso, se procede a ejecutarlo, para ello, el planificador restaura su estado de ejecución (previamente salvado) y abandona el uso del microprocesador cediéndoselo a dicho proceso.

Gracias a que el tiempo del microprocesador se reparte entre todos los procesos a intervalos muy cortos, el ordenador ofrece la sensación de que todos los procesos están ejecutándose a la vez.Cuando un ordenador tiene varios microprocesadores este esquema se repite para cada microprocesador.

SINCRONIZACION DE PROCESOS-. La comunicación entre procesos necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización es el funcionamiento coordinado en la resolución de una tarea encomendada.El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos, es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados, es decir, la comunicación es algo puntual.
Los servicios básicos de comunicación son:
a.       crear: el proceso solicita la creación del mecanismo
b.      enviar o escribir: el proceso emisor envía información al proceso receptor
c.       recibir o leer: el proceso receptor recibe información
d.      destruir: el proceso solicita la destrucción del mecanismo de comunicación

La comunicación puede ser sincrona y asíncrona:
a.       síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.
b.      asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la solicite.

DEFINICION DE PROCESADOR.- El procesador es en los sistemas informáticos el complejo de circuitos que configura la unidad central de procesamiento o CPU.  Es parte de cualquier computadora o de equipos electrónicos digitales y es la unidad que hace las veces de motor de todos los procesos informáticos desde los más sencillos hasta los más complejos.
En una computadora se reconocen el procesador como dispositivo de hardware que puede tener diversas calidades y tipos, y por otra parte el concepto lógico en términos de unidad central de procesamiento o CPU, entendido como “cerebro” del sistema. El procesador de hardware suele ser una placa de silicio de distinto tipo integrado por múltiples transistores en conexión entre sí. Un microprocesador típico se compone de registros, unidades de control, unidad aritmético-lógica y otras. 

El funcionamiento de un procesador se da a través de distintos pasos que combinan instrucciones almacenadas en código binario. En primer término, el sistema lee la instrucción desde la memoria, luego la envía al decodificador, el cual determina de qué se trata y cuáles son los pasos a seguir. Posteriormente, se ejecuta la instrucción y los resultados son almacenados en la memoria o en los registros. 

TIPOS DE PROCESADOR-. Existen distintos tipos de procesadores, cada uno de ellos con características y capacidades diversas de acuerdo con las necesidades e intereses del usuario. Los procesadores son unas de las unidades de un sistema informático más atendidas por las empresas desarrolladoras de software y hardware, ya que de su velocidad, eficiencia y rendimiento depende el correcto funcionamiento de todo el equipo.

Entre las marcas que desarrollan procesadores se cuentan Intel, AMD, Cyrix, Motorola y otras. Intel es quizás la más reconocida mundialmente, sus desarrollos son parte de equipos de todo el mundo, tanto de pequeña envergadura como grandes sistemas informáticos. Su eslógan “Intel Inside” es muy popular ya que se encuentra presente en todo sistema que disponga de este tipo de procesadores y para muchos es garantía de calidad. 

USOS

Después del consumo de memoria la actividad del procesador es el dato más importante a controlar en nuestro servidor. Para determinar si las tareas del procesador se manejan eficientemente para todo el trabajo en el equipo o si está sobrecargado, debemos examinar su uso.

El uso del procesador o uso de CPU es el porcentaje de tiempo en el que se encuentra ocupado trabajando. Debemos vigilar esta ocupación para detectar cuellos de botella en el procesador.

El contador que define el uso del procesador en cada una de estas herramientas es:
·         Uso de CPU, en el Administrador de tareas y
  • % Tiempo de proceso en Rendimiento.
En el Administrador de tareas el uso de CPU muestra un gráfico indicando el porcentaje de tiempo que el procesador está trabajando. Este contador es el primer indicador de la actividad del procesador. Si el equipo parece estar lento, el gráfico puede estar mostrando un gran porcentaje de uso.

En Rendimiento, el porcentaje de tiempo de procesador es el porcentaje de tiempo transcurrido que el procesador ha gastado en ejecutar un hilo que no sea el de inactivo. Cada procesador tiene un hilo de inactividad que consume ciclos cuando no hay otros hilos en ejecución. Este contador es el primer indicador de la actividad del procesador, muestra el porcentaje medio de tiempo ocupado observado durante el intervalo de muestra. Se calcula el valor mediante el control del tiempo que el proceso de inactividad está activo y que se le resta al 100%.

Es interesante el control de este contador en sistemas de multiproceso simétrico (SMP) como a los sistemas de único procesador. SMP permite a cualquier procesador del sistema ejecutar cualquier hilo del sistema operativo o de aplicación simultáneamente con otro procesador en el sistema. Observar la pauta en el uso de un procesador en procesadores individuales y para todos los procesadores durante el periodo establecido, también, considerar el número de hilos en la cola del procesador del sistema para determinar si el uso elevado de procesador está limitando la capacidad del sistema para cumplir su trabajo.