Está en la página 1de 26

SISTEMAS OPERATIVOS

FUNDAMENTOS
Un sistema de computadora

memoria principal
discos impresoras interfaces de red dispostivos in/out
escribir programas para estos disp es complejo por ello se creo los SO como una capa se software sobre el hardware que administre todas las partes del sistema

ESTRUCTURA SIMPLIFICADA

Deba encontrarse alguna forma de proteger a los programadores de la complejidad del hardware. La solucin consiste en poner una capa de software encima del hardware, que se encargue de administrar todas las partes del sistema y presente al usuario una interfaz o mquina virtual que sea ms fcil de entender y programar.

QU ES UN SISTEMA OPERATIVO?
El S.O como maquina extendida
El S.O como administrador de recursos En esta vista, la funcin del sistema operativo es presentar al usuario el equivalente de una mquina extendida o mquina virtual que es ms fcil de programar que el hardware subyacente. la misin del sistema operativo es asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S entre los diferentes programas que compiten por ellos.

CONCEPTOS DE SISTEMAS OPERATIVOS


La interfaz entre el sistema operativo y los programas de usuario est definida por el conjunto de operaciones extendidas que el sistema operativo ofrece. Estas instrucciones se han llamado tradicionalmente llamadas al sistema , aunque ahora pueden implementarse de varias formas. Para entender realmente lo que los sistemas operativos hacen, debemos examinar con detenimiento esta interfaz. Las llamadas disponibles en la interfaz varan de un sistema operativo a otro (aunque los conceptos subyacentes tienden a ser similares).

PROCESOS
Un proceso es bsicamente un programa en ejecucin. Cada proceso tiene asociado un espacio de direcciones , una lista de posiciones de memoria desde algn mnimo (usualmente O) hasta algn mximo, que el proceso puede leer y escribir. El espacio de direcciones contiene el programa ejecutable, los datos del programa, y su pila. A cada proceso tambin se asocia un conjunto de registros, que incluyen el contador del programa, el apuntador de la pila y otros registros de hardware, as como toda la dems informacin necesaria para ejecutar el programa.

PROCESOS
Cuando ha transcurrido el nmero de segundos que se especific, el sistema operativo enva una seal al proceso. La seal hace que el proceso suspenda temporalmente lo que estaba haciendo, guarde sus registros en la pila, y comience a ejecutar un procedimiento especial de manejo de seales, por ejemplo, para retransmitir un mensaje que al parecer se perdi. Una vez que el manejador de seales termina, el proceso en ejecucin se reinicia en el estado en que estaba justo antes de la seal. Las seales son el anlogo en software de las interrupciones de hardware, y pueden ser generadas por diversas causas adems de la expiracin de temporizadores. Muchas trampas detectadas por el hardware, como la ejecucin de una instruccin no permitida o el empleo de una direccin no vlida, tambin se convierten en seales que se envan al proceso culpable

INTRODUCCIN A LOS PROCESOS


Todas las computadoras modernas pueden hacer varias cosas al mismo tiempo. Mientras ejecuta un programa de usuario, una computadora tambin puede estar leyendo de un disco y enviando texto a una pantalla o impresora. En un sistema de multiprogramacin, la CPU tambin conmuta de un programa a otro, ejecutando cada uno durante decenas o centenas de milisegundos. Si bien, estrictamente hablando, en un instante dado la CPU est ejecutando slo un programa, en el curso de un segundo puede trabajar con varios programas, dando a los usuarios la ilusin de paralelismo.

La idea clave aqu es que un proceso es una actividad de algn tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algn algoritmo de planificacin para determinar cundo debe dejarse de trabajar en un proceso para atender a uno distinto.

MODELO DE PROCESOS
A veces se usa el trmino seudoparalelismo para referirse a esta rpida conmutacin de la CPU entre programas, para distinguirla del verdadero paralelismo de hardware de los sistemas multiprocesador (que tienen dos o ms CPU que comparten la misma memoria fsica). Para el ser humano es difcil seguir la pista a mltiples actividades paralelas. Por ello, los diseadores de sistemas operativos han desarrollado a lo largo de los aos un modelo (procesos secuenciales) que facilita el manejo del paralelismo.

MODELO DE PROCESOS
En este modelo, todo el software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, est organizado en una serie de procesos secuenciales , o simplemente procesos.

ANALOGIA DE PROCESOS
La diferencia entre un programa y un proceso es sutil, pero crucial. Tal vez una analoga ayude a aclarar este punto. Consideremos un computlogo con inclinaciones gastronmicas que est preparando un pastel de cumpleaos para su hija. l cuenta con una receta para pastel de cumpleaos y una cocina bien abastecida de las entradas necesarias: harina, huevos, azcar, extracto de vainilla, etc. En esta analoga, la receta es el programa (es decir, un algoritmo expresado en alguna flotacin apropiada), el computlogo es el procesador (CPU) y los ingredientes del pastel son los datos de entrada.

ANALOGIA DE PROCESOS
El proceso es la actividad de nuestro pastelero consistente en leer la receta, obtener los ingredientes y hornear el pastel. Imaginemos ahora que el hijo del computlogo llega corriendo y llorando, diciendo que le pic una abeja. El computlogo registra el punto en que estaba en la receta (guarda el estado del proceso actual), saca un libro de primeros auxilios, y comienza a seguir las instrucciones que contiene. Aqu vemos cmo el procesador se conmuta de un proceso (hornear) a un proceso de ms alta prioridad (administrar cuidados mdicos), cada uno con un programa diferente (receta vs. libro de primeros auxilios). Una vez que se ha atendido la picadura de abeja, el computlogo regresa a su pastel, continuando en el punto donde haba interrumpido. La idea clave aqu es que un proceso es una actividad de algn tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algn algoritmo de planificacin para determinar cundo debe dejarse de trabajar en un proceso para atender a uno distinto.

HILOS

1. QU ES UN HILO?
Un hilo es una unidad bsica de utilizacin de CPU, la cual contiene un id de hilo, su propio program counter, un conjunto de registros, y una pila; que se representa a nivel del sistema operativo con una estructura llamada TCB (thread control block). Los hilos comparten con otros hilos que pertenecen al mismo proceso la seccin de cdigo, la seccin de datos, entre otras cosas. Si un proceso tiene mltiples hilos, puede realizar ms de una tarea a la vez (esto es real cuando se posee ms de un CPU).Veamos un ejemplo para clarificar el concepto:

Un servidor web acepta solicitudes de los clientes que piden pginas web. Si este servidor tiene varios clientes y funcionara con un solo hilo de ejecucin, solo podra dar servicio a un cliente por vez, y el tiempo que podra esperar un cliente para ser atendido podra ser muy grande.
Una posible solucin sera que el servidor funcione de tal manera que acepte una solicitud por vez, y que cuando reciba otra solicitud, cree otro proceso para dar servicio a la nueva solicitud. Pero crear un proceso lleva tiempo y utiliza muchos recursos, entonces, si cada proceso realizar las mismas tareas

2. POR QU NO UTILIZAR HILOS?


Generalmente es ms eficiente usar un proceso que utilice mltiples hilos (un hilo para escuchar las solicitudes, y cuando llega una solicitud, el lugar de crear otro proceso, se crea otro hilo para procesar la solicitud)

3. TAREAS E HILOS.
Unidad mnima de asignacin: tarea. Unidad mnima de expedicin: hilo. Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de cdigo, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea. Podemos captar la funcionalidad de los hilos si comparamos el control de mltiples hilos con el control de mltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones. Este tipo de organizacin es muy til cuando los trabajos que los procesos efectan no tienen ninguna relacin entre s. Pero cuando los trabajos a realizar van a necesitar, por ejemplo, la llamada a una misma funcin o bien, la comparticin de una variable en memoria, nos interesar englobarlos en una tarea. Ej.: Avin-Torre.Cuando un hilo est en ejecucin, posee el acceso a todos los recursos que tiene asignados la tarea.

UN HILO TENDR LO SIGUIENTE:


Estado: Contexto del procesador. Punto en el que estamos ejecutando, la instruccin 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 ltima instruccin que ejecutamos, y as podemos conocer por donde tenemos que continuar la ejecucin del hilo.

Pila de ejecucin: Donde se ir metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas). Espacio de almacenamiento almacenar las variables. esttico: Donde

Acceso a los recursos de la tarea: Que son compartidos por todos los hilos de la tarea.

4. VENTAJAS DE USAR HILOS


-Respuesta: el tiempo de respuesta mejora, ya que el programa puede continuar ejecutndose, aunque parte de l est bloqueado. -Compartir recursos: los hilos comparten la memoria y los recursos del proceso al que pertenecen, por lo que se puede tener varios hilos de ejecucin dentro del mismo espacio de direcciones. -Economa: Es ms fcil la creacin, cambio de contexto y gestin de hilos que de procesos.

-Utilizacin mltiples CPUs: permite que hilos de un mismo proceso ejecuten en diferentes CPUs a la vez. En un proceso mono-hilo, un proceso ejecuta en una nica CPU, independientemente de cuantas tenga disponibles.

5. HILOS A NIVEL DE USUARIO Y DE KERNEL


Hasta ahora hemos hablado de los hilos en sentido genrico, pero a nivel prctico los hilos pueden ser implementados a nivel de usuario o a nivel de kernel. -Hilos a nivel e usuario: son implementados en alguna librera. Estos hilos se gestionan sin soporte del SO, el cual solo reconoce un hilo de ejecucin. -Hilos a nivel de kernel: el SO es quien crea, planifica y gestiona los hilos. Se reconocen tantos hilos como se hayan creado. Los hilos a nivel de usuario tienen como beneficio que su cambio de contexto es ms sencillo que el cambio de contexto entre hilos de kernel. A dems, se pueden implementar an si el SO no utiliza hilos a nivel de kernel. Otro de los beneficios consiste en poder planificar diferente a la estrategia del SO.

Los hilos a nivel de kernel tienen como gran beneficio poder aprovechar mejor las arquitecturas multiprocesadores, y que proporcionan un mejor tiempo de respuesta, ya que si un hilo se bloquea, los otros pueden seguir ejecutando.

6. CMO SE RELACIONAN LOS HILOS A NIVEL DE KERNEL Y LOS DE USUARIO?


Existen 3 formas para establecer la relacin:

-Modelo Mx1 (Many to one)


El modelo asigna mltiples hilos de usuario a un hilo del kernel. Este caso se corresponde a los hilos implementados a nivel de usuario, ya que el sistema solo reconoce un hilo de control para el proceso.

Tiene como inconveniente que si un hilo se bloquea, todo el proceso se bloquea. Tambin, dado que solo un hilo puede acceder al kernel cada vez, no podrn ejecutarse varios hilos en paralelo en mltiples CPUs.

-MODELO MX1 (MANY TO ONE)

-Modelo 1x1 (one to one) El modelo asigna cada hilo de usuario a un hilo del kernel. Proporciona una mayor concurrencia que el modelo anterior, permitiendo que se ejecute otro hilo si uno se bloque. Tiene como inconveniente que cada vez que se crea un hilo a nivel de usuario, se crea un hilo a nivel del kernel, y la cantidad de hilos a nivel del kernel estn restringidos en la mayora de los sistemas

MODELO 1X1 (ONE TO ONE)

- Modelo MxN (many to many)

El modelo multiplexa muchos hilos de usuario sobre un nmero menor o igual de hilos del kernel. Cada proceso tiene asignado un conjunto de hilos de kernel, independientemente de la cantidad de hilos de usuario que haya creado. No posee ninguno de los inconvenientes de los dos modelos anteriores, ya que saca lo mejor de cada uno. El usuario puede crear tantos hilos como necesite y los hilos de kernel pueden ejecutar en paralelo. Asimismo, cuando un hilo se bloquea, el kernel puede planificar otro hilo para su ejecucin.
Entonces, el planificador a nivel de usuario asigna los hilos de usuario a los hilos de kernel, y el planificador a nivel de kernel asigna los hilos de kernel a los procesadores

- MODELO MXN (MANY TO MANY)

También podría gustarte