5.1 Principios de Hardware de I O
Funciones del Sistema de Archivos
Los usuarios deben poder crear, modificar y borrar archivos.
Se deben poder compartir los archivos de una manera cuidadosamente controlada [7, Deitel].
El mecanismo encargado de compartir los archivos debe proporcionar varios tipos de acceso controlado:
Ej.: “Acceso de Lectura”, “Acceso de Escritura”, “Acceso de Ejecución”, varias combinaciones de estos, etc. Se debe poder estructurar los archivos de la manera más apropiada a cada aplicación. Los usuarios deben poder ordenar la transferencia de información entre archivos.
El “Sistema de Archivos” es un componente importante de un S. O. y suele contener [7, Deitel]:
“Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos. “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados. “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario. “Integridad del archivo” para garantizar la integridad de la información del archivo.
5.1.1 Dispositivos de Io
DISPOSITIVOS DE I/O.
A lo largo de la historia de las computadoras se han desarrollado muchos tipos de dispositivos que podemos reunir en tres grandes grupos:
Dispositivos de almacenamiento.
Terminales.
Comunicaciones.
A su vez los dispositivos se pueden clasificar, atendiendo al tipo de información que manejan y como lo hacen, los siguientes grupos:
Dirigidos a bloques. -Tratan la información en bloques de tamaño fijo. Su característica principal es que se puede leer cada bloque como una unidad independiente de las demás (por ejemplo los discos).
Dirigidos al carácter. - Entregan o aceptan cadenas de caracteres sin tener en cuenta
dispositivos de bloque base
Discos.
Son los dispositivos para almacenamiento secundario más comunes aceptan y recuperan datos a alta velocidad. Los datos son transferidos entre el disco y la memoria en bloques. Los discos pueden ser fijos o removibles. Los primeros no se pueden cambiar, mientras que los segundos pueden ser intercambiados, con los que se consigue un mayor volumen de almacenamiento. Pueden reunirse varios discos en un paquete para conseguir con ello un mayor almacenamiento en un reducido espacio. Todos los discos de un disk pack giran a la misma velocidad.
Tambores magnéticos.
Los tambores se suelen emplear para el intercambio o swapping. Tienen forma cilíndrica y están divididos en pistas circulares cada una de las cuales tienen su propia cabeza de lectura/escritura.
TERMINALES.
En general se denomina terminal al conjunto formado por un teclado y una pantalla conectados a la computadora para producir datos a través del primero y recibirlos a través de la segunda.
COMUNICACIONES
LINEA DE COMUNICACIONES.
Son dispositivos cuya misión es la de conectar entre computadoras estas sus terminales cuando la distancia es grande. Suelen llevar consigo elementos físicos como pueden ser la propia línea y los adaptadores a la línea denominados modems, y lógicos, como pueden ser el protocolo de comunicación y el método de control y detección de errores que s e utiliza.
REGISTROS.
Los dispositivos que pueden ser accedidos directamente en una zona determinada de la memoria o indirectamente por medio de instrucciones hardware que devuelven el estado del mismo.
5.1.2 Controladores de Dispositivos
Un controlador de dispositivo (llamado normalmente controlador, o, en inglés, driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.
5.2 Principios de Software de I O
El ``Software Libre`` es un asunto de libertad, no de precio. Para entender el concepto, debes pensar en ``libre`` como en ``libertad de expresión``, no como en ``cerveza gratis`` [N. del T.: en inglés una misma palabra (free) significa tanto libre como gratis, lo que ha dado lugar a cierta confusión].
``Software Libre'`` se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:
La libertad de usar el programa, con cualquier propósito (libertad 0).
La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.
La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
5.2.1 Objetivos del Software de IO
Un concepto clave es la independencia del dispositivo:
• Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos, sin tener que modificar los programas para cada tipo de dispositivo.
• El problema debe ser resuelto por el S. O.
El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo.
Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso.
5.2.2 Manejadores de Interrupciones
Manejadores de Interrupciones: Tratan las interrupciones que generan los controladores de los dispositivos una vez que estos están listos para la transferencia de datos o bien han leído o escrito los datos de la memoria principal en el caso de DMA. Su función es salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecución de un proceso. Cuando una interrupción ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de información a transferir es muy pequeña, en el caso del teclado, sería muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupción registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulación de caracteres en un buffer del teclado. La notificación al manejador se hace únicamente cada cierto número de ocurrencias del evento, el caso del reloj, o activando un flag que indica que hay datos en el buffer del teclado.
5.2.3 Manejador de Dispositivos
Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos.
Cada controlador posee uno o más registros de dispositivos:
• Se utilizan para darle los comandos.
• Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada. La labor de un manejador de dispositivos es la de:
• Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo.
• Verificar la ejecución de dichas solicitudes. Si al recibir una solicitud el manejador está ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.
5.3 DISCO RAM
Un disco RAM o unidad RAM es una unidad de disco que usa una zona de memoria RAM del sistema como almacenamiento secundario en lugar de un medio magnético (como los discos duros y las disqueteras) o memoria flash, implementada como un controlador de dispositivo más. El tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales. Sin embargo, la volatilidad de la memoria RAM implica que los datos almacenados en un disco RAM se perderán si falla la alimentación
5.4 DUSCO DUROS
El disco duro es un dispositivo de almacenamiento no volátil, es decir conserva la información que le ha sido almacenada de forma correcta aun con la perdida de energía, emplea un sistema de grabación magnética digital, es donde en la mayoría de los casos se encuentra almacenado
5.4.1 Hardware de Discos
Un disco duro se compone de muchos elementos; citaremos los más importantes de cara a entender su funcionamiento. En primer lugar, la información se almacena en unos finos platos o discos, generalmente de aluminio, recubiertos por un material sensible a alteraciones magnéticas. Estos discos, cuyo número varía según la capacidad de la unidad, se encuentran agrupados uno sobre otro y atravesados por un eje, y giran continuamente a gran velocidad.
Asimismo, cada disco posee dos diminutos cabezales de lectura/escritura, uno en cada cara. Estos cabezales se encuentran flotando sobre la superficie del disco sin llegar a tocarlo, a una distancia de unas 3 o 4 micropulgadas (a título de curiosidad, podemos comentar que el diámetro de un cabello humano es de unas 4.000 micropulgadas). Estos cabezales generan señales eléctricas que alteran los campos magnéticos del disco, dando forma a la información. (dependiendo de la dirección hacia donde estén orientadas las partículas, valdrán 0 o valdrán 1).
5.4.2 Software para Discos
El software para la recuperación de unidad de disco duro ofrecido por Stellar le ayuda realizar la Recuperación de los Datos después de los incidentes de la pérdida de los datos causados por formatos accidental, problemas del virus, el malfuncionamiento del software, la supresión del fichero /directorio o el sabotaje.
Stellar Phoenix - El Software para la Recuperación de los Datos un utilitario de la recuperación del fichero de datos NO DESTRUCTIVO y DE SOLA LECTURA que le ayuda en la recuperación de sus todos los datos importantes contra las amenazas numerosas - formato accidental, problemas del virus, malfuncionamiento del software, supresión de fichero /directorio, o ¡aún un sabotaje!
Stellar Phoenix - Software de Recuperación de Datos le ayuda a recuperar datos perdidos después de
Un formato accidental
El ataque del virus
Error humano
La pérdida de la partición
El funcionamiento defectuoso del software
El borrado del archivo/directorio o aun el sabota
5.5 Relojes
Los relojes son el medio por el cual funciona la CPU. Básicamente todo sistema de computadora cuenta con un cristal de cuarzo que vibra a determinada frecuencia. Incluso, cuando se compra un procesador, lo primero que se hace es saber a qué velocidad de reloj trabajará éste. Actualmente se cuentan con procesadores capaces de trabajar a velocidades que varían desde los 800 Mega Hertz? hasta los 4 Giga Hertz? o más. Un Hertz está definido como el tiempo que transcurre durante un ciclo completo, donde un ciclo se define como un pico y un valle.
5.51 Manejador de relojes
Las principales funciones del software manejador del reloj son:
Mantener la hora del día o tiempo real
Evitar que los procesos se ejecuten durante mas tiempo del permitido
Mantener un registro del uso de la CPU
Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario
Proporcionar cronómetros guardianes de partes del propio sistema
Realizar resúmenes, monitoreo y recolección de estadísticas
El software manejador del reloj puede tener que simular varios relojes virtuales con un único reloj físico.
5.2 Terminales
Dispositivo del hardware electrónico o electromecánico que se usa para introducir o mostrar datos de una computadora. Su funcion es mostrar y recibir datos con capacidad significativa del procesador de datos, puede ser llamado “Terminal inteligente o cliente lijero”.
Una computadora puede ejecutar software que envie la funcion de un terminal en cocaciones permitiendo el uso simultaneo de programas locales y acceso a un servidor.
SISTEMAS OPERATIVOS 1
martes, 25 de enero de 2011
UNIDAD 4: ADMINISTRACION DE MEMORIA
4.1 Gestion de Memoria
La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de memoria y 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 Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.
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.
4.1.1 Organizacion de la memoria
En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:
Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leida por el pic (el pic va leyendo las instrucciones del programa
almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra. Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra. Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear
4.1.2 Administracion de la memoria
El Administrador De Memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente.
4.1.3 Jerarquia de la memoria
Los puntos básicos relacionados con la memoria pueden resumirse en:
* Cantidad
* Velocidad
* Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
* A menor tiempo de acceso mayor coste
* A mayor capacidad menor coste
* A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.
4.1.4 Estrategias para Administracion de Memoria
Existen 3 mecanismos de Asignación:
1. ASIGNACIÓN DE UNA PARTICIÓN. En la memoria se considera la existencia de una sola partición, esto es, se tiene la capacidad de ejecutar un proceso. La partición es toda la memoria, cuya administración corre por cuenta del usuario, o sea, no hay un sistema operativo.
2. ASIGNACIÓN DE DOS PARTICIONES. La memoria se divide en 2 bloques. En una partición se carga el Sistema Operativo y en la otra el programa del usuario. Es el concepto de Sistema Operativo Monousuario.
3. ASIGNACIÓN DE MULTIPLES PARTICIONES. La memoria es dividida en varias particiones una para el Sistema Operativo y las demás para los procesos de usuarios u otras funciones especiales del Sistema Operativo. Este es el concepto teórico de asignación de memoria en los Sistemas Operativos de Multiparticiones y de Multitarea..
ESTRATEGIAS DE ASIGNACIÓN.
Una estrategia de asignación de memoria determina el lugar donde será cargado un nuevo proceso en base a un criterio.
4.1.5 Multiprogramacion con Particiones Fijas y Variables
Multiprogramación con particiones variables
Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado MFT), el cual ya no está en uso. El sistema operativo lleva una tabla indicando cuáles partes de la memoria están disponibles y cuáles están ocupadas. Inicialmente, toda la memoria está disponible para los procesos de usuario y es considerado como un gran bloque o hueco único de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio. Cuando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del CPU.
4.2 MEMORIA REAL
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria 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 de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor
4.2.1 Administracion de Memoria con Mapa de Bits
Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.
4.2.2 Administracion de Memoria con Listas Enlazadas
Mantiene una lista enlazada de segmentos de memoria asignados y libres, donde un segmento es un proceso o un hueco entre dos procesos.
•Si la lista se ordena por dirección es más fácil su actualización.
•Si hay dos listas, una para memoria usada y otra para huecos, la asignación es más rápida, pero la liberación es más lenta
•Ocurre lo mismo para asignar hueco de intercambio.
4.2.3 Distribucion del Espacio para Intercambio
DISTRIBUCION DEL ESPACIO PARA INTERCAMBIO.
En algunos sistemas, cuando un proceso esta en la memoria, no se le puede asignar espacio en disco.cuando deba intercambiarse, puede colocarse en alguna otra parte del disco.los algoritmos para administrar el espacio de intercambio son los mismos que se emplean para administrar la memoria principal.
En otros sistemas,cuando se crea un proceso,el espacio para intercambio se asigna para el en disco. Cada ves que el proceso se intercambia, siempre se cambia a su espacio asignado, en lugar de dirigirse a un lugar diferente en cada ocacion. Cuando el proceso sale, se desasigna el espacio para el intercambio.
4.3 MEMORIA VIRTUAL
Cómo la memoria virtual se mapea a la memoria físicaLa Memoria virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cache (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.
4.3.1 PAGINACION DE MEMORIA VIRTUAL
Paginación en memoria virtual
El único inconveniente del sistema de paginación pura es que todas las páginas de un proceso deben estar en memoria para que pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten.
4.3.2 Segmentacion Memoria Virtual
información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa. La segmentación permite alcanzar los siguientes objetivos:
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.
3. Protección: se puede proteger los módulos del segmento contra accesos no autorizados.
4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
5. Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
Ventajas de la segmentación El esquema de segmentación ofrece las siguientes ventajas:
* El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular.
* Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
* Debido a que es posible separar los módulos se hace más fácil la modificación de los mismos. Cambios dentro de un modulo no afecta al resto de los módulos.
* Es fácil el compartir segmentos.
* Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución.
* Existe la posibilidad de definir segmentos que aun no existan. Así, no se asignara memoria, sino a partir del momento que sea necesario hacer
4.3.3 Algoritmos de Sustitucion de Paginas
334 ADMINISTRACIÓN DE MEMORIA CAP. 4
si el bit R está encendido, A se coloca al final de la lista y su “tiempo de carga” se ajusta al tiempo actual (20). También se apaga su bit R. La búsqueda de una página apropiada continúa con B. Lo que hace el algoritmo de segunda oportunidad es buscar una página vieja a la que no se, haya hecho referencia en el intervalo de reloj anterior. Si se ha hecho referencia a todas las páginas, este algoritmo pasa a ser FIFO puro. Específicamente, imaginemos que todas las páginas de la Fig. 4–13(a) tienen su bit R encendido. Una por una, el sistema operativo pasará’ páginas al final de la lista, apagando el bit R cada vez que anexa una página al final de la lista. Tarde o temprano, regresará a la página A, que ahora tiene su bit R apagado. En este punto, A será desalojada. Así, el algoritmo siempre termina.
El algoritmo de sustitución de páginas por reloj
Aunque el algoritmo de segunda oportunidad es razonable, es innecesariamente eficiente porque constantemente cambia de lugar páginas dentro de su lista. Un enfoque mejor consiste en mantener todas las páginas en una lista circular con forma de reloj, como se muestra en la Fig. 4–14. Una manecilla apunta a la página más vieja.
Cuando ocurre una falla de página, se inspecciona la página a la que apunta la manecilla. Si su bit R es O, se desaloja la página, se inserta la nueva página en el reloj en su lugar, y la manecilla avanza una posición. Si R es 1, se pone en O y la manecilla se avanza a la siguiente página. Este proceso se repite hasta encontrar una página con R = 0. No resulta sorprendente que este algoritmo se llame de reloj. La única diferencia respecto al de segunda oportunidad es la implementación.
4.3.4 Aspectos de Diseño para el Sistema
En las secciones anteriores hemos explicado cómo funciona la paginación y hemos presentado algunos de los algoritmos de reemplazo de páginas básicos. Sin embargo, no basta con conocer los aspectos mecánicos del funcionamiento. Para diseñar un sistema, necesitamos saber mucho más si queremos lograr que funcione bien. La diferencia es similar a la que existe entre saber cómo se mueven la torre, el caballo, el alfil y las demás piezas de ajedrez, y ser un buen jugador En las siguientes secciones examinaremos otros aspectos que los diseñadores de sistemas operad deben considerar detenidamente si quieren obtener un buen rendimiento de un sistema de paginación
4.3.5 Liberacion de Paginas
Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el marco de página cuando ya no necesitara esa página [7, Deitel].
Se puede eliminar el “desperdicio” y acelerar la ejecución.
El inconveniente es que la incorporación de mandatos de liberación de páginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.
“Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.
La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de memoria y 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 Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.
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.
4.1.1 Organizacion de la memoria
En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:
Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leida por el pic (el pic va leyendo las instrucciones del programa
almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra. Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra. Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear
4.1.2 Administracion de la memoria
El Administrador De Memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente.
4.1.3 Jerarquia de la memoria
Los puntos básicos relacionados con la memoria pueden resumirse en:
* Cantidad
* Velocidad
* Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
* A menor tiempo de acceso mayor coste
* A mayor capacidad menor coste
* A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.
4.1.4 Estrategias para Administracion de Memoria
Existen 3 mecanismos de Asignación:
1. ASIGNACIÓN DE UNA PARTICIÓN. En la memoria se considera la existencia de una sola partición, esto es, se tiene la capacidad de ejecutar un proceso. La partición es toda la memoria, cuya administración corre por cuenta del usuario, o sea, no hay un sistema operativo.
2. ASIGNACIÓN DE DOS PARTICIONES. La memoria se divide en 2 bloques. En una partición se carga el Sistema Operativo y en la otra el programa del usuario. Es el concepto de Sistema Operativo Monousuario.
3. ASIGNACIÓN DE MULTIPLES PARTICIONES. La memoria es dividida en varias particiones una para el Sistema Operativo y las demás para los procesos de usuarios u otras funciones especiales del Sistema Operativo. Este es el concepto teórico de asignación de memoria en los Sistemas Operativos de Multiparticiones y de Multitarea..
ESTRATEGIAS DE ASIGNACIÓN.
Una estrategia de asignación de memoria determina el lugar donde será cargado un nuevo proceso en base a un criterio.
4.1.5 Multiprogramacion con Particiones Fijas y Variables
Multiprogramación con particiones variables
Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado MFT), el cual ya no está en uso. El sistema operativo lleva una tabla indicando cuáles partes de la memoria están disponibles y cuáles están ocupadas. Inicialmente, toda la memoria está disponible para los procesos de usuario y es considerado como un gran bloque o hueco único de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio. Cuando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del CPU.
4.2 MEMORIA REAL
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria 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 de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor
4.2.1 Administracion de Memoria con Mapa de Bits
Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.
4.2.2 Administracion de Memoria con Listas Enlazadas
Mantiene una lista enlazada de segmentos de memoria asignados y libres, donde un segmento es un proceso o un hueco entre dos procesos.
•Si la lista se ordena por dirección es más fácil su actualización.
•Si hay dos listas, una para memoria usada y otra para huecos, la asignación es más rápida, pero la liberación es más lenta
•Ocurre lo mismo para asignar hueco de intercambio.
4.2.3 Distribucion del Espacio para Intercambio
DISTRIBUCION DEL ESPACIO PARA INTERCAMBIO.
En algunos sistemas, cuando un proceso esta en la memoria, no se le puede asignar espacio en disco.cuando deba intercambiarse, puede colocarse en alguna otra parte del disco.los algoritmos para administrar el espacio de intercambio son los mismos que se emplean para administrar la memoria principal.
En otros sistemas,cuando se crea un proceso,el espacio para intercambio se asigna para el en disco. Cada ves que el proceso se intercambia, siempre se cambia a su espacio asignado, en lugar de dirigirse a un lugar diferente en cada ocacion. Cuando el proceso sale, se desasigna el espacio para el intercambio.
4.3 MEMORIA VIRTUAL
Cómo la memoria virtual se mapea a la memoria físicaLa Memoria virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cache (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.
4.3.1 PAGINACION DE MEMORIA VIRTUAL
Paginación en memoria virtual
El único inconveniente del sistema de paginación pura es que todas las páginas de un proceso deben estar en memoria para que pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten.
4.3.2 Segmentacion Memoria Virtual
información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa. La segmentación permite alcanzar los siguientes objetivos:
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.
3. Protección: se puede proteger los módulos del segmento contra accesos no autorizados.
4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
5. Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
Ventajas de la segmentación El esquema de segmentación ofrece las siguientes ventajas:
* El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular.
* Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
* Debido a que es posible separar los módulos se hace más fácil la modificación de los mismos. Cambios dentro de un modulo no afecta al resto de los módulos.
* Es fácil el compartir segmentos.
* Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución.
* Existe la posibilidad de definir segmentos que aun no existan. Así, no se asignara memoria, sino a partir del momento que sea necesario hacer
4.3.3 Algoritmos de Sustitucion de Paginas
334 ADMINISTRACIÓN DE MEMORIA CAP. 4
si el bit R está encendido, A se coloca al final de la lista y su “tiempo de carga” se ajusta al tiempo actual (20). También se apaga su bit R. La búsqueda de una página apropiada continúa con B. Lo que hace el algoritmo de segunda oportunidad es buscar una página vieja a la que no se, haya hecho referencia en el intervalo de reloj anterior. Si se ha hecho referencia a todas las páginas, este algoritmo pasa a ser FIFO puro. Específicamente, imaginemos que todas las páginas de la Fig. 4–13(a) tienen su bit R encendido. Una por una, el sistema operativo pasará’ páginas al final de la lista, apagando el bit R cada vez que anexa una página al final de la lista. Tarde o temprano, regresará a la página A, que ahora tiene su bit R apagado. En este punto, A será desalojada. Así, el algoritmo siempre termina.
El algoritmo de sustitución de páginas por reloj
Aunque el algoritmo de segunda oportunidad es razonable, es innecesariamente eficiente porque constantemente cambia de lugar páginas dentro de su lista. Un enfoque mejor consiste en mantener todas las páginas en una lista circular con forma de reloj, como se muestra en la Fig. 4–14. Una manecilla apunta a la página más vieja.
Cuando ocurre una falla de página, se inspecciona la página a la que apunta la manecilla. Si su bit R es O, se desaloja la página, se inserta la nueva página en el reloj en su lugar, y la manecilla avanza una posición. Si R es 1, se pone en O y la manecilla se avanza a la siguiente página. Este proceso se repite hasta encontrar una página con R = 0. No resulta sorprendente que este algoritmo se llame de reloj. La única diferencia respecto al de segunda oportunidad es la implementación.
4.3.4 Aspectos de Diseño para el Sistema
En las secciones anteriores hemos explicado cómo funciona la paginación y hemos presentado algunos de los algoritmos de reemplazo de páginas básicos. Sin embargo, no basta con conocer los aspectos mecánicos del funcionamiento. Para diseñar un sistema, necesitamos saber mucho más si queremos lograr que funcione bien. La diferencia es similar a la que existe entre saber cómo se mueven la torre, el caballo, el alfil y las demás piezas de ajedrez, y ser un buen jugador En las siguientes secciones examinaremos otros aspectos que los diseñadores de sistemas operad deben considerar detenidamente si quieren obtener un buen rendimiento de un sistema de paginación
4.3.5 Liberacion de Paginas
Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el marco de página cuando ya no necesitara esa página [7, Deitel].
Se puede eliminar el “desperdicio” y acelerar la ejecución.
El inconveniente es que la incorporación de mandatos de liberación de páginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.
“Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.
lunes, 24 de enero de 2011
UNIDAD 3: ADMINISTRADOR DEL PROCESADOR
3.1 planeacion de trabajo job scheduling
Cuando hay más de un proceso que está en condiciones de ejecutarse en la CPU, se debe escoger alguno. El encargado de tomar esa decisión es el planificador o scheduler, y el algoritmo que usa se llama algoritmo de planificación. (Scheduler = planificación). Posibles objetivos (algunos de ellos contradictorios) del algoritmo de planificación son
Justicia: Asegurarse que todos los procesos tengan su turno de CPU.
Eficiencia: Mantener la CPU ocupada todo el tiempo.
Tiempo de respuesta: Minimizar el tiempo de respuesta de los usuarios interactivos.
Rendimiento o productividad (throughput): Maximizar el número de trabajos terminados por hora.
Tiempo de espera: Minimizar el tiempo medio de espera (en la cola READY) de los procesos.
Una complicación adicional que hay que tener presente es que cada proceso es único e impredecible. Algunos son procesos limitados por I/O, es decir, pierden la mayor parte del tiempo esperando por I/O; otros son procesos limitados por CPU, es decir, requieren principalmente tiempo de CPU. En cualquier caso, todos los procesos alternan entre una fase de ejecución de CPU y otra de espera por I/O
3.2 CONCEPTOS BASICOS job scheduling
Maximizar la utilización del CPU obtenida con la multiprogramación
Ciclo de ráfaga CPU–I/O. La ejecución del proceso consiste de un ciclo de CPU y de una espera de I/O.
Distribución de las ráfagas de CPU
Un planificador de tareas es una aplicación de software de la empresa que se encarga de las ejecuciones desatendida fondo, comúnmente conocido por razones históricas como del procesamiento por lotes.
Los sinónimos son lote sistema, Sistema de Gestión de Recursos Distribuidos (SGDD), y Distributed Resource Manager (DRM). Hoy en día el trabajo de programadores suelen ofrecer una interfaz gráfica de usuario
3.3 TIPOS DE PLANEACION DE JOB SCHEDULING
Objetivo de la planificación: Minimizar el tiempo de espera y minimizar el tiempo de respuesta. La planificación (scheduling) es la base para lograr la multiprogramación.
Un sistema multiprogramado tendrá varios procesos que requerirán
el recurso procesador a la vez. Esto sucede cuando los procesos están en estado ready (pronto). Si existe un procesador disponible, se debe elegir el proceso que será asignado para ejecutar. La parte del sistema operativo que realiza la elección del proceso es llamada planificador (scheduler).
La planificación hace referencia a un conjunto de políticas Y mecanismos incorporados a sistemas operativos que gobiernan el orden en que se ejecutan los trabajos.
3.3.1 FIRST IN FIRST OUT JOB SCHEDULING FIFO
Primero en llegar primero en ser tendido. la cpu se asigna a los procesos en el orden que lo solicitan,
se le inicia de inmediato y se le permite ejecutar todo el tiempo que necesite, cuando llegan otros procesos se les coloca al final de la cola.Cuando se bloquea el proceso en ejecucion, se ejecuta el primer proceso de la cola, si un proceso bloqueado vuelve a estar listo se le coloca al final de la cola como si fuera un proceso recien llegado.
. Es del tipo no expropiativo
. Es equitativo
. Solo necesita una cola para implementarse
3.3.2 ROUN ROBIN JOB SCHEDULING RR
ROUN ROBIN (RR)
Algoritmo apropiativo consistente en determinar un quantum (tiempo de reloj) que marcará
el intervalo de CPU que se le cederá al proceso ejecutando. Cuando finalice el quantum al
Proceso se le quitará la CPU y pasará a la cola de listo. La cola de listos sigue la estructura
FIFO. Si un proceso no consume su quantum libera la CPU y ésta es asignada al siguiente
Proceso de la cola de listo.
Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”.
3.3.3 CHORTEST JOB
SHORTEST JOB FIRST (SJF)
Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido. El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es el siguiente en ejecutarse. Los tiempos promedio de espera son menores que con “FIFO”.
Los tiempos de espera son menos predecibles que en “FIFO”.
Favorece a los procesos cortos en detrimento de los largos.
Tiende a reducir el número de procesos en espera y el número de procesos que esperan detrás de procesos largos. Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que generalmente se desconoce
3.3.4 SGORTEST REAMINING
Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecución estimado para completar su ejecución; de esta forma aunque un proceso requiera mucho tiempo de ejecución, a medida que se va ejecutando iría avanzando
en la lista de procesos en estado listo hasta llegar a ser el primero. Para realizar esta elección, es necesario actualizar el PCB de los procesos a medida que se le asigna tiempo de servicio, lo que supone una mayor sobrecarga adicional.
Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a la lista de procesos en estado listo otro con un tiempo restante de ejecución estimado menor.
Este algoritmo es la versión no apropiativa o espulsiva del algoritmo Shortest Process Next (SPN) o también llamado Shortest Job First (SJF).
3..3.5 HIGHTEST
Algoritmo apropiativo parecido al SRT consistente en calcular el Reponse Ratio (Ratio de respuesta) para asignar la CPU a procesos más viejos. (Para evitar la inanición).
Características:
pero se sobrecarga el sistema.
Ofrece un buen tiempo de respuesta.
Equilibra los procesos, aunque da prioridad a los procesos más cortos.
Evita la inanición (los procesos que envejecen serán ejecutados).
3.4 MULTIPROCESAMIENTO
Generalidades de Multiprocesadores.
Un multiprocesador se define como una computadora que contiene dos o más unidades de procesamiento que trabajan sobre una memoria común bajo un control integrado.
Si el sistema de multiprocesamiento
posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simétrico; en el otro caso hablamos de multiprocesamiento asimétrico.
Si un procesador falla, los restantes continúan operando, lo cual no es automático y requiere de un diseño cuidadoso.
Un procesador que falla habrá de informarlo a los demás de alguna manera, para que se hagan cargo de su trabajo .
3.5 CONCEPTOS BASICOS DE MULTIPROCESAMIENTO
Medios de multiprocesamiento que tienen más de un procesador que opera en la misma memoria pero ejecuta procesos simultáneamente. En un sistema de multiprocesamiento procesadores múltiples son empleados a ejecutado más de una actividad en el tiempo, siempre que la informática masiva deba ser realizada con regularidad.
Como muchas de las actividades principales de la informática se ejecutan simultáneamente por los procesadores diferentes.
Sin embargo, es esencial proporcionar la sincronización entre procesador múltiple ellos tienen acceso a la memoria común tal que ninguna parte del trabajo de informática debería ser descuidada por el procesador individual con una presunción que el otro procesador lo hará.
Un sistema de multiprocesamiento con vario funcionamiento juntos a la vez proporcionará un ambiente de multiprogramación. La multiprogramación permite que programas múltiples residan en áreas separadas de la memoria principal al mismo tiempo. Con este acercamiento, es posible mantener dos o más empleos simultáneamente en la ejecución o en estados de la ejecución.
3.6 PARALELISMO DE PROCESAMIENTO
Funcionamiento
El paralelismo consiste en ejecutar más instrucciones en menos tiempo, aunque las instrucciones sigan tardando lo mismo en ejecutarse, mediante un simple truco, aunque algo difícil de explicar en detalle. Intentémoslo.
un microprocesador ejecuta instrucciones de código máquina.
Estas instrucciones le dicen como tiene que ir modificando diferentes posiciones de memoria, y como debe ir modificando el flujo de ejecución. Se tiende a pensar, erróneamente, que un procesador con un reloj a 200 MHz (200 millones de ciclos por segundo) ejecuta 200 millones de estas operaciones por segundo
3.7 SISTEMA MULTIPROCESAMIENTO
pesar de las grandes mejoras acaecidas en monoprocesadores para algunas aplicaciones no es suficiente.
– La solución pueden ser los sistemas multiprocesadores:
o Solución más sencilla, natural y con mejor coste-prestaciones.
Dos factores clave para la extensión de los Multiprocesadores
1. Flexibilidad: El mismo sistema puede usarse para un único usuario incrementado el rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones en un entorno compartido.
2. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales, por lo que su coste se ha reducido drásticamente. La inversión más fuerte se hace en la memoria y la red de interconexión.
3.8 ORGANIZACION DEL MULTIPROCESADOR
Un multiprocesador contiene dos o más procesadores con capacidades aproximadamente comparables.
• Todos los procesadores comparten el acceso a un almacenamiento común y a canales de Entrada / Salida, unidades de control y dispositivos.
• Todo está controlado por un Sistema Operativo que proporciona interacción entre procesadores y sus programas en los niveles de trabajo, tarea, paso, archivo y elementos de datos.
Las organizaciones más comunes son las siguientes:
• Tiempo compartido o bus común (conductor común).
• Matriz de barras cruzadas e interruptores.
• Almacenamiento de interconexión múltiple.
Tiempo Compartido o Bus Común (o Conductor Común)
Usa un solo camino de comunicación entre todas las unidades funcionales
El bus común es en esencia una unidad pasiva.
Un procesador o procesador de Entrada / Salida que desee transferir datos debe efectuar los siguientes pasos:
1. Verificar la disponibilidad del conductor y de la unidad de destino.
2. Informar a la unidad de destino de lo que se va a hacer con los datos.
3.9 SISTEMAS OPERATIVOS MULTIPROCESADOR
Sistema Operativo de Multiprocesadores Las capacidades funcionales de los Sistema Operativo de multiprogramación y de multiprocesadores incluyen lo siguiente:
• Asignación y administración de recursos.
• Protección de tablas y conjuntos de datos.
• Prevención contra el ínter bloqueo del sistema.
• Terminación anormal.
• Equilibrio de cargas de Entrada / Salida.
• Equilibrio de carga del procesador.
• Reconfiguración.
Las tres últimas son especialmente importantes en Sistemas Operativos de multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los programas y hacerlo automáticamente.
Cuando hay más de un proceso que está en condiciones de ejecutarse en la CPU, se debe escoger alguno. El encargado de tomar esa decisión es el planificador o scheduler, y el algoritmo que usa se llama algoritmo de planificación. (Scheduler = planificación). Posibles objetivos (algunos de ellos contradictorios) del algoritmo de planificación son
Justicia: Asegurarse que todos los procesos tengan su turno de CPU.
Eficiencia: Mantener la CPU ocupada todo el tiempo.
Tiempo de respuesta: Minimizar el tiempo de respuesta de los usuarios interactivos.
Rendimiento o productividad (throughput): Maximizar el número de trabajos terminados por hora.
Tiempo de espera: Minimizar el tiempo medio de espera (en la cola READY) de los procesos.
Una complicación adicional que hay que tener presente es que cada proceso es único e impredecible. Algunos son procesos limitados por I/O, es decir, pierden la mayor parte del tiempo esperando por I/O; otros son procesos limitados por CPU, es decir, requieren principalmente tiempo de CPU. En cualquier caso, todos los procesos alternan entre una fase de ejecución de CPU y otra de espera por I/O
3.2 CONCEPTOS BASICOS job scheduling
Maximizar la utilización del CPU obtenida con la multiprogramación
Ciclo de ráfaga CPU–I/O. La ejecución del proceso consiste de un ciclo de CPU y de una espera de I/O.
Distribución de las ráfagas de CPU
Un planificador de tareas es una aplicación de software de la empresa que se encarga de las ejecuciones desatendida fondo, comúnmente conocido por razones históricas como del procesamiento por lotes.
Los sinónimos son lote sistema, Sistema de Gestión de Recursos Distribuidos (SGDD), y Distributed Resource Manager (DRM). Hoy en día el trabajo de programadores suelen ofrecer una interfaz gráfica de usuario
3.3 TIPOS DE PLANEACION DE JOB SCHEDULING
Objetivo de la planificación: Minimizar el tiempo de espera y minimizar el tiempo de respuesta. La planificación (scheduling) es la base para lograr la multiprogramación.
Un sistema multiprogramado tendrá varios procesos que requerirán
el recurso procesador a la vez. Esto sucede cuando los procesos están en estado ready (pronto). Si existe un procesador disponible, se debe elegir el proceso que será asignado para ejecutar. La parte del sistema operativo que realiza la elección del proceso es llamada planificador (scheduler).
La planificación hace referencia a un conjunto de políticas Y mecanismos incorporados a sistemas operativos que gobiernan el orden en que se ejecutan los trabajos.
3.3.1 FIRST IN FIRST OUT JOB SCHEDULING FIFO
Primero en llegar primero en ser tendido. la cpu se asigna a los procesos en el orden que lo solicitan,
cuando el primer proceso entra en el sistema,
se le inicia de inmediato y se le permite ejecutar todo el tiempo que necesite, cuando llegan otros procesos se les coloca al final de la cola.Cuando se bloquea el proceso en ejecucion, se ejecuta el primer proceso de la cola, si un proceso bloqueado vuelve a estar listo se le coloca al final de la cola como si fuera un proceso recien llegado.
. Es del tipo no expropiativo
. Es equitativo
. Solo necesita una cola para implementarse
3.3.2 ROUN ROBIN JOB SCHEDULING RR
ROUN ROBIN (RR)
Algoritmo apropiativo consistente en determinar un quantum (tiempo de reloj) que marcará
el intervalo de CPU que se le cederá al proceso ejecutando. Cuando finalice el quantum al
Proceso se le quitará la CPU y pasará a la cola de listo. La cola de listos sigue la estructura
FIFO. Si un proceso no consume su quantum libera la CPU y ésta es asignada al siguiente
Proceso de la cola de listo.
Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”.
3.3.3 CHORTEST JOB
SHORTEST JOB FIRST (SJF)
Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido. El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es el siguiente en ejecutarse. Los tiempos promedio de espera son menores que con “FIFO”.
Los tiempos de espera son menos predecibles que en “FIFO”.
Favorece a los procesos cortos en detrimento de los largos.
Tiende a reducir el número de procesos en espera y el número de procesos que esperan detrás de procesos largos. Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que generalmente se desconoce
3.3.4 SGORTEST REAMINING
Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecución estimado para completar su ejecución; de esta forma aunque un proceso requiera mucho tiempo de ejecución, a medida que se va ejecutando iría avanzando
en la lista de procesos en estado listo hasta llegar a ser el primero. Para realizar esta elección, es necesario actualizar el PCB de los procesos a medida que se le asigna tiempo de servicio, lo que supone una mayor sobrecarga adicional.
Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a la lista de procesos en estado listo otro con un tiempo restante de ejecución estimado menor.
Este algoritmo es la versión no apropiativa o espulsiva del algoritmo Shortest Process Next (SPN) o también llamado Shortest Job First (SJF).
3..3.5 HIGHTEST
Algoritmo apropiativo parecido al SRT consistente en calcular el Reponse Ratio (Ratio de respuesta) para asignar la CPU a procesos más viejos. (Para evitar la inanición).
Características:
Es muy productivo
pero se sobrecarga el sistema.
Ofrece un buen tiempo de respuesta.
Equilibra los procesos, aunque da prioridad a los procesos más cortos.
Evita la inanición (los procesos que envejecen serán ejecutados).
3.4 MULTIPROCESAMIENTO
Generalidades de Multiprocesadores.
Un multiprocesador se define como una computadora que contiene dos o más unidades de procesamiento que trabajan sobre una memoria común bajo un control integrado.
Si el sistema de multiprocesamiento
posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simétrico; en el otro caso hablamos de multiprocesamiento asimétrico.
Si un procesador falla, los restantes continúan operando, lo cual no es automático y requiere de un diseño cuidadoso.
Un procesador que falla habrá de informarlo a los demás de alguna manera, para que se hagan cargo de su trabajo .
3.5 CONCEPTOS BASICOS DE MULTIPROCESAMIENTO
Multiprocesamiento
Medios de multiprocesamiento que tienen más de un procesador que opera en la misma memoria pero ejecuta procesos simultáneamente. En un sistema de multiprocesamiento procesadores múltiples son empleados a ejecutado más de una actividad en el tiempo, siempre que la informática masiva deba ser realizada con regularidad.
Multiprocesador.
Como muchas de las actividades principales de la informática se ejecutan simultáneamente por los procesadores diferentes.
Sin embargo, es esencial proporcionar la sincronización entre procesador múltiple ellos tienen acceso a la memoria común tal que ninguna parte del trabajo de informática debería ser descuidada por el procesador individual con una presunción que el otro procesador lo hará.
Un sistema de multiprocesamiento con vario funcionamiento juntos a la vez proporcionará un ambiente de multiprogramación. La multiprogramación permite que programas múltiples residan en áreas separadas de la memoria principal al mismo tiempo. Con este acercamiento, es posible mantener dos o más empleos simultáneamente en la ejecución o en estados de la ejecución.
3.6 PARALELISMO DE PROCESAMIENTO
Funcionamiento
El paralelismo consiste en ejecutar más instrucciones en menos tiempo, aunque las instrucciones sigan tardando lo mismo en ejecutarse, mediante un simple truco, aunque algo difícil de explicar en detalle. Intentémoslo.
un microprocesador ejecuta instrucciones de código máquina.
Estas instrucciones le dicen como tiene que ir modificando diferentes posiciones de memoria, y como debe ir modificando el flujo de ejecución. Se tiende a pensar, erróneamente, que un procesador con un reloj a 200 MHz (200 millones de ciclos por segundo) ejecuta 200 millones de estas operaciones por segundo
3.7 SISTEMA MULTIPROCESAMIENTO
pesar de las grandes mejoras acaecidas en monoprocesadores para algunas aplicaciones no es suficiente.
– La solución pueden ser los sistemas multiprocesadores:
o Solución más sencilla, natural y con mejor coste-prestaciones.
Dos factores clave para la extensión de los Multiprocesadores
1. Flexibilidad: El mismo sistema puede usarse para un único usuario incrementado el rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones en un entorno compartido.
2. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales, por lo que su coste se ha reducido drásticamente. La inversión más fuerte se hace en la memoria y la red de interconexión.
3.8 ORGANIZACION DEL MULTIPROCESADOR
Un multiprocesador contiene dos o más procesadores con capacidades aproximadamente comparables.
• Todos los procesadores comparten el acceso a un almacenamiento común y a canales de Entrada / Salida, unidades de control y dispositivos.
• Todo está controlado por un Sistema Operativo que proporciona interacción entre procesadores y sus programas en los niveles de trabajo, tarea, paso, archivo y elementos de datos.
Las organizaciones más comunes son las siguientes:
• Tiempo compartido o bus común (conductor común).
• Matriz de barras cruzadas e interruptores.
• Almacenamiento de interconexión múltiple.
Tiempo Compartido o Bus Común (o Conductor Común)
Usa un solo camino de comunicación entre todas las unidades funcionales
El bus común es en esencia una unidad pasiva.
Un procesador o procesador de Entrada / Salida que desee transferir datos debe efectuar los siguientes pasos:
1. Verificar la disponibilidad del conductor y de la unidad de destino.
2. Informar a la unidad de destino de lo que se va a hacer con los datos.
3.9 SISTEMAS OPERATIVOS MULTIPROCESADOR
Sistema Operativo de Multiprocesadores Las capacidades funcionales de los Sistema Operativo de multiprogramación y de multiprocesadores incluyen lo siguiente:
• Asignación y administración de recursos.
• Protección de tablas y conjuntos de datos.
• Prevención contra el ínter bloqueo del sistema.
• Terminación anormal.
• Equilibrio de cargas de Entrada / Salida.
• Equilibrio de carga del procesador.
• Reconfiguración.
Las tres últimas son especialmente importantes en Sistemas Operativos de multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los programas y hacerlo automáticamente.
UNIDAD 2 : ESTADOS DE PROCESOS DE SISTEMAS OPERATIVOS
ESTADOS DE PROCESOS DE SISTEMAS OPERATIVOS
La tarea activa es la que está ejecutándose en un instante dado.En el caso de sistemas con un único procesador, sólo puede haber una tarea en dicho estado en cada instante.
En el estado de preparado, se encuentran todas las tareas que están listas para ejecutarse pero que esperan a que un/el procesador quede libre(hay otros procesos más prioritarios en ejecución).
Las tareas que están a la espera de que se cumpla una condición y que por lo tanto, no están preparadas para ejecutase, se dice que están en el estado bloqueado o suspendido; alguno ejemplos de condición son: que se termine una operación de E/S o que se reciba una señal de sincronización.
Un proceso esta muerto cuando ha terminado su ejecución o bien el sistema operativo a detectado un error fatal y lo ha transferido a dicho estado. También es posible que haya entrado él como resultado de un fallo del propio sistema operativo(cuestión que desgraciadamente suele ocurrir frecuente mente en algunos OS.
El estado de nonato indica que el programa realmente existe pero todavía no es conocido por el OS.
2.4 CONTROL DE PROCESOS DE SISTEMA OPERATIVO
La mayoría de los procesadores dan soporte para dos modos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse sólo en modo privilegia do. Entre éstas están la lectura o molificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria sólo en el modo más privilegia do.
El modo menos privilegia do a menudo se conoce como modo de usuario, ya que los pro¬ gramas de usuario ejecutan normalmente en ese modo. Al modo más privilegia do normal¬ mente se le conoce como modo del sistema, modo de controlo modo del núcleo.
2.5 PROCESOS E HILOS
Procesos E Hilos
1. Definición de proceso.
Espíritu animado de un programa
Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados.
La unidad mínima de expedición y de asignación de recursos es el proceso.
2. Estados en los que puede estar un proceso.
Listo. Tiene todo lo necesario para ejecutarse excepto el procesador.
Suspendido. No está en memoria principal.
Bloqueado. Está esperando un evento.
Bloqueado y suspendido.
Listo y suspendido.
3. Tareas e hilos.
Unidad mínima de asignación: tarea.
Unidad mínima de expedición: hilo.
Un hilo tendrá lo siguiente:
Estado.
Contexto del procesador. Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos.
Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.
Pila de ejecución donde se irá metiendo y sacando instrucciones.
(Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
Espacio de almacenamiento estático donde almacenará las variables.
Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
Ventajas del uso de hilos.
2.6 CONCURRENCIA Y EXCLUSIÓN MUTUA Y SINCRONIZACION
Los temas fundamentales del diseño de sistemas operativos están relacionados conÇ la gestión de procesos e hilos:
• Multiprogramación: consiste en la gestión de varios procesos dentro de un sistema mono-procesador.
• Multiprocesamiento: consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
• Procesamiento distribuido: consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.
La concurrencia puede presentarse en tres contextos diferentes:
• Múltiples aplicaciones: la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas.
• Aplicaciones estructuradas: como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.
• Estructura del sistema operativo: las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos o hilos.
2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA
En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada .
2.8 EXCLUSION MUTUA
Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan en programación concurrente para evitar el uso simultáneo de recursos comunes, como variables globales, por fragmentos de código conocidos como secciones críticas.
La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.
La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.
2.9 SEMAFOROS DEL SISTEMA OPERATIVO
Semáforos es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:
Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador.
Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta, saca a este proceso de su ejecución y depende de su estado
2.10 MONITORES DEL SISTEMA
Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa; ventajas:
• mantenimiento más simple
• menos errores de programación
La implementación del monitor garantiza la exclusión mutua
• mediante semáforos o algún otro mecanismo
• o implícitamente en los lenguajes concurrentes
2.11 PASO DE MENSAJES DEL SISTEMA OPERATIVO
Paso de mensajes
El paso de mensajes es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.
Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.
2.12 CONCURRENCIA EN INTERBLOQUEO
DEADLOCK
Los procesos no son ejecutados constantemente desde que se inician hasta que son finalizados.
Un proceso puede estar identificado con tres estados diferentes: leyendo (ready), ejecutando (running) o bloqueado (blocked). En el estado de lectura, un proceso está parado, concediendo que otro proceso sea ejecutado; en el estado de ejecución, un proceso está utilizando algún recurso; y en el estado de bloqueo, el proceso está parado y no se ejecutará mientras algo lo restaure.
Una condición común no deseable es descripta como deadlock, que es cuando dos procesos están en un estado de ejecución, y requieren intercambiar recursos entre sí para continuar. Ambos procesos están esperando por la liberación del recurso requerido, que nunca será realizada; como no hay ningún resultado, tomará un camino que llevará a un estado de deadlock.
La tarea activa es la que está ejecutándose en un instante dado.En el caso de sistemas con un único procesador, sólo puede haber una tarea en dicho estado en cada instante.
En el estado de preparado, se encuentran todas las tareas que están listas para ejecutarse pero que esperan a que un/el procesador quede libre(hay otros procesos más prioritarios en ejecución).
Las tareas que están a la espera de que se cumpla una condición y que por lo tanto, no están preparadas para ejecutase, se dice que están en el estado bloqueado o suspendido; alguno ejemplos de condición son: que se termine una operación de E/S o que se reciba una señal de sincronización.
Un proceso esta muerto cuando ha terminado su ejecución o bien el sistema operativo a detectado un error fatal y lo ha transferido a dicho estado. También es posible que haya entrado él como resultado de un fallo del propio sistema operativo(cuestión que desgraciadamente suele ocurrir frecuente mente en algunos OS.
El estado de nonato indica que el programa realmente existe pero todavía no es conocido por el OS.
2.4 CONTROL DE PROCESOS DE SISTEMA OPERATIVO
La mayoría de los procesadores dan soporte para dos modos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse sólo en modo privilegia do. Entre éstas están la lectura o molificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria sólo en el modo más privilegia do.
El modo menos privilegia do a menudo se conoce como modo de usuario, ya que los pro¬ gramas de usuario ejecutan normalmente en ese modo. Al modo más privilegia do normal¬ mente se le conoce como modo del sistema, modo de controlo modo del núcleo.
2.5 PROCESOS E HILOS
Procesos E Hilos
1. Definición de proceso.
Espíritu animado de un programa
Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados.
La unidad mínima de expedición y de asignación de recursos es el proceso.
2. Estados en los que puede estar un proceso.
Listo. Tiene todo lo necesario para ejecutarse excepto el procesador.
Suspendido. No está en memoria principal.
Bloqueado. Está esperando un evento.
Bloqueado y suspendido.
Listo y suspendido.
3. Tareas e hilos.
Unidad mínima de asignación: tarea.
Unidad mínima de expedición: hilo.
Un hilo tendrá lo siguiente:
Estado.
Contexto del procesador. Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos.
Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.
Pila de ejecución donde se irá metiendo y sacando instrucciones.
(Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
Espacio de almacenamiento estático donde almacenará las variables.
Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
Ventajas del uso de hilos.
2.6 CONCURRENCIA Y EXCLUSIÓN MUTUA Y SINCRONIZACION
Los temas fundamentales del diseño de sistemas operativos están relacionados conÇ la gestión de procesos e hilos:
• Multiprogramación: consiste en la gestión de varios procesos dentro de un sistema mono-procesador.
• Multiprocesamiento: consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
• Procesamiento distribuido: consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.
La concurrencia puede presentarse en tres contextos diferentes:
• Múltiples aplicaciones: la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas.
• Aplicaciones estructuradas: como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.
• Estructura del sistema operativo: las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos o hilos.
2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA
En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada .
2.8 EXCLUSION MUTUA
Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan en programación concurrente para evitar el uso simultáneo de recursos comunes, como variables globales, por fragmentos de código conocidos como secciones críticas.
La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.
La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.
2.9 SEMAFOROS DEL SISTEMA OPERATIVO
Semáforos es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:
Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador.
Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta, saca a este proceso de su ejecución y depende de su estado
2.10 MONITORES DEL SISTEMA
Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa; ventajas:
• mantenimiento más simple
• menos errores de programación
La implementación del monitor garantiza la exclusión mutua
• mediante semáforos o algún otro mecanismo
• o implícitamente en los lenguajes concurrentes
2.11 PASO DE MENSAJES DEL SISTEMA OPERATIVO
Paso de mensajes
El paso de mensajes es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.
Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.
2.12 CONCURRENCIA EN INTERBLOQUEO
DEADLOCK
Los procesos no son ejecutados constantemente desde que se inician hasta que son finalizados.
Un proceso puede estar identificado con tres estados diferentes: leyendo (ready), ejecutando (running) o bloqueado (blocked). En el estado de lectura, un proceso está parado, concediendo que otro proceso sea ejecutado; en el estado de ejecución, un proceso está utilizando algún recurso; y en el estado de bloqueo, el proceso está parado y no se ejecutará mientras algo lo restaure.
Una condición común no deseable es descripta como deadlock, que es cuando dos procesos están en un estado de ejecución, y requieren intercambiar recursos entre sí para continuar. Ambos procesos están esperando por la liberación del recurso requerido, que nunca será realizada; como no hay ningún resultado, tomará un camino que llevará a un estado de deadlock.
UNIDAD 1. INTRODUCCION A LOS SITEMAS OPERATIVOS
1.1. DEFINICIÓN Y OBJETIVOS
El sistema operativo son conjuntos de programas encargados de administrar y suministrar los recursos de una computadora o también conocida como ordenador.
Su objetivo fundamental es:
Gestionar y administrar correctamente los recursos del hardware.
Facilitar el uso de la computadora y conseguir que se utilice efeicientemente
Es un programa de control encargado de gestionar y asignar los recursos del hardware
Los recursos del hardware son:
Procesador, Memoria Principal, Discos y otros periféricos.
Se encarga de contabilizar los recursos del hardware y seguridad de usuario.
1.2.HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS

1.3. SUBSISTEMAS DE UN SISTEMA OPERATIVO
ADMINISTRADOR DE ARCHIVOS
Un archivo es un conjunto de información, que se encuentra almacenada o guardada en la memoria principal del computador, en el disco duro, en el disquete, flexible o en los discos compactos.
DISPOSITIVOS DE ENTRADA Y SALIDA
El código empleado a manejar la entrada y salida de los diferentes perifericos en un S.O. es de una extensión considerable y sumamente complejo. Resuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores.
ADMINISTRADOR DEL PROCESO
Un proceso es un programa en ejecución junto con el entorno asociado registros, variables, etc)
GESTIÓN DE LA MEMORIA
El S.O. se encarga de gestionar el espacio de memoria asignado para cada aplicación y para cada usuario, si resulta pertinente. Cuando la memoria física es insuficiente, el S.O puede crear una zona de memoria en el disco duro, denominada memoria virtual.
La memoria vitual es una memoria simulada mayor a la memoria física.
1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA MONOLÍTICA
Es la estructura de los primeros S.O. constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
ESTRUCTURA JERARQUICA
Es la división del S.O. en pequeñas partes, de tal forma que cada una de ellas esten perfectamente definidas y con una interfaz clara para el resto de los elementos.
MÁQUINA VIRTUAL
Se trata de un S.O. que presenta una interfaz a cada proceso, mostrando una máquina que parece idéntica a la máquina virtual subyacente. El objetivo de los sistemas operativos de máquina virtual es de integrar distintos S.O. dando la sensación de ser varias máquinas diferentes.
CLIENTE/SERVIDOR
Este sistema sirve para cualquier clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades de los Sistemas Operativos convencionales.
1.5. ANALISIS DE LOS SISTEMAS OPERATIVOS COMERCIALES



El sistema operativo son conjuntos de programas encargados de administrar y suministrar los recursos de una computadora o también conocida como ordenador.
Su objetivo fundamental es:
Gestionar y administrar correctamente los recursos del hardware.
Facilitar el uso de la computadora y conseguir que se utilice efeicientemente
Es un programa de control encargado de gestionar y asignar los recursos del hardware
Los recursos del hardware son:
Procesador, Memoria Principal, Discos y otros periféricos.
Se encarga de contabilizar los recursos del hardware y seguridad de usuario.
1.2.HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
1.3. SUBSISTEMAS DE UN SISTEMA OPERATIVO
ADMINISTRADOR DE ARCHIVOS
Un archivo es un conjunto de información, que se encuentra almacenada o guardada en la memoria principal del computador, en el disco duro, en el disquete, flexible o en los discos compactos.
DISPOSITIVOS DE ENTRADA Y SALIDA
El código empleado a manejar la entrada y salida de los diferentes perifericos en un S.O. es de una extensión considerable y sumamente complejo. Resuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores.
ADMINISTRADOR DEL PROCESO
Un proceso es un programa en ejecución junto con el entorno asociado registros, variables, etc)
GESTIÓN DE LA MEMORIA
El S.O. se encarga de gestionar el espacio de memoria asignado para cada aplicación y para cada usuario, si resulta pertinente. Cuando la memoria física es insuficiente, el S.O puede crear una zona de memoria en el disco duro, denominada memoria virtual.
La memoria vitual es una memoria simulada mayor a la memoria física.
1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA MONOLÍTICA
Es la estructura de los primeros S.O. constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
ESTRUCTURA JERARQUICA
Es la división del S.O. en pequeñas partes, de tal forma que cada una de ellas esten perfectamente definidas y con una interfaz clara para el resto de los elementos.
MÁQUINA VIRTUAL
Se trata de un S.O. que presenta una interfaz a cada proceso, mostrando una máquina que parece idéntica a la máquina virtual subyacente. El objetivo de los sistemas operativos de máquina virtual es de integrar distintos S.O. dando la sensación de ser varias máquinas diferentes.
CLIENTE/SERVIDOR
Este sistema sirve para cualquier clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades de los Sistemas Operativos convencionales.
1.5. ANALISIS DE LOS SISTEMAS OPERATIVOS COMERCIALES
Suscribirse a:
Entradas (Atom)