lunes, 24 de enero de 2011

Unidad 1. Introducción a los Sistemas 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











domingo, 23 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

4.1.1 ORGANIZACION DE MEMORIA

Organización 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 ADMINISTRADOR 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

Jerarquía de memoria
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.

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.

4.1.4 ESTRATEGIAS DE ADMINISTRACION DE MEMORIA

ADMINISTRACION DE MEMORIA CONCEPTO:
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.
POLITICAS Y FILOSOFIA DE LA ADMINISTRACION DE LA MEMORIA.
La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, asi como algunos datos a emplear.
Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los procesos y datos que actualmente se están utilizando.
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..

4.1.5   PARTICIONES FIJAS Y VARIABLES

Una vez implementada la partición, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola única que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamaño del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en él. Otra forma de asignación es buscar en la cola el proceso de tamaño mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal método discrimina a los procesos más pequeños. Dicho problema podría tener solución si se asigna una partición pequeña en la memoria al momento de hacer la partición inicial, el cual sería exclusivo para procesos pequeños.
Esta idea nos lleva a la implementación de otro método para particiones fijas, que es el uso de diferentes colas independientes exclusivas para cierto rango en el tamaño de los procesos. De esta manera al llegar un proceso, éste sería asignado a la cola de tamaño más pequeño que la pueda aceptar. La desventaja en esta organización es que si una de las colas tiene una larga lista de procesos en espera, mientras otra cola esta vacía, el sector de memoria asignado para ese tamaño de procesos estaría desperdiciándose.

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 MEMORIA 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. 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  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 DE ESPACIO

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

l ú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.
Cuando la paginación se utiliza junto con memoria virtual, el sistema operativo mantiene además el conocimiento sobre qué páginas están en memoria principal y cuáles no, usando la tabla de paginación. Si una página buscada está marcada como no disponible (tal vez porque no está presente en la memoria física, pero sí en el área de intercambio), cuando la CPU intenta referenciar una dirección de memoria en esa página, la MMU responde levantando una excepción (comúnmente llamada fallo de página

4.3.2 SEGMENTACION DE MEMORIA VIRTUAL

. 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 usos del segmento. Un ejemplo de esto, serian los arreglos cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podría retardar la asignación de memoria hasta el momento en el cual se referencia el arreglo u otra estructura de dato por primera vez.

4.3.3 ALGORITMOS DE SUSTITUCION DE PAGINA
Cuando ocurre una falla de página, el sistema operativo tiene que escoger la página que sacará de la memoria para que pueda entrar la nueva página. Si la página que se eliminará fue modificada mientras estaba en la memoria, se debe reescribir en el disco a fin de actualizar la copia del disco, pero si no fue así (p. ej., si la página contenía texto de programa), la copia en disco ya estará actualizada y no será necesario reescribirla. La nueva página simplemente sobreescribe la que está siendo desalojada.

4.3.4  DISEÑO PARA EL SISTEMA

Cuando ocurre una falla de página, el sistema operativo tiene que escoger la página que sacará de la memoria para que pueda entrar la nueva página. Si la página que se eliminará fue modificada mientras estaba en la memoria, se debe reescribir en el disco a fin de actualizar la copia del disco, pero si no fue así (p. ej., si la página contenía texto de programa), la copia en disco ya estará actualizada y no será necesario reescribirla. La nueva página simplemente sobreescribe la que está siendo desalojada.

4.3.4 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”.

UNIDAD 3 : Administracion 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,
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.


    Unidad 5 Administración de Dispositivos.

    Dale un vistazo a esta Presentación: Unidad 7

    Unidad 6 Administrador de Archivos

    Dale un vistazo a esta Presentación: Unidad 6

    Unidad 7 - Desempeño y Seguridad

    Dale un vistazo a esta Presentación: Unidad 7

    Presentación 251m



    Tecnologico de Estudios Superiores de Cuautitlán Izcallí
    Licenciatura en Informatica
    Sistemas Operativos 1
    251M

    Alumnos:
    Cruz Cruz Elizabeth
    Zavala Melendez Diana
    Cervantes Rubio Alejandro
    Guerrero Romero Edgar Saul

    Profesor:
    Lic. Jose Juan Hernandez Granados