You are on page 1of 15

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Universitaria Instituto Universitario de Tecnologa de Valencia.

Coordinacin P.N.F en Informtica

Estructura de los sistemas operativos


Procesos y administracin de procesos

Facilitador(a): Prof. Prez, Nelson. Autores: Edgar vila, C.I.: 12.313.316 Jess Gonzales, C.I.: 17.282.733 Jos Cuicas, C.I.: 10.231.335 Seccin: 03GN

Valencia, Marzo 2013


IDENTIFICACION DEL EQUIPO DE TRABAJO Nombre y apellido: Edgar vila Cedula de identidad: V-12.313.316 E-mail: chande1973@gmaill.com Residencia: Municipio Valencia Barrio Bicentenario 3-01 Av. Libertador M43-6.

Nombre y apellido: Jess Eduardo Gonzales Mosqueda. Cedula de identidad: V-17.282.733 E-mail: jegm_69@hotmail.com Residencia: Municipio Valencia Calle Rojas Queipo Res. Camoruco Av. Bolvar Norte.

Nombre y apellido: Jos Alejandro Cuicas Santana. Cedula de identidad: V-10.231.335 E-mail: jose_cuicas@hotmail.com Residencia: Municipio Libertador Parroquia Tocuyito Urb. Jos Rafael Pocaterra Pasaje 1 Casa 24

Evolucin de los sistemas operativos


En este apartado se va a comentar cmo han ido evolucionando los sistemas operativos a travs de la historia. No estamos interesados en las fechas, sino en la progresin de las ideas. Primera etapa: Procesamiento en serie En un principio no existan sistemas operativos, programndose sobre el hardware bsico. Los programas se escriban en lenguaje mquina, y se introducan en el ordenador, junto a los datos, en octal o hexadecimal mediante una consola con interruptores manuales. Se iniciaban los programas cargando el registro contador de programa con la direccin de memoria de la primera instruccin del programa. Los resultados de la ejecucin se obtenan examinando el contenido de los registros y posiciones de memoria relevantes. Los dispositivos de E/S se controlaban directamente, escribiendo y leyendo en los puertos de E/S. Evidentemente la programacin del hardware bsico resulta baja en productividad, tanto para los usuarios, como para la mquina. El proceso largo y tedioso de la introduccin de programas y datos excluye prcticamente la ejecucin de programas medios y grandes. Un siguiente paso significativo en la evolucin en el uso de los ordenadores viene con la llegada de los dispositivos de E/S, tales como lectores de tarjetas y de cintas de papel perforadas. Tambin aparecen los traductores de lenguajes. Los programas, codificados ahora en un lenguaje simblico, se traducen a forma ejecutable mediante un traductor. Otro programa, llamado cargador, automatiza la carga de programas ejecutables en memoria. El usuario pone un programa y sus datos de entrada en un dispositivo de entrada, y el cargador transfiere informacin desde el dispositivo de entrada a memoria. Despus, se transfiere el control, mediante medios manuales o automticos, al programa cargado para su ejecucin. El programa en ejecucin lee sus entradas desde el dispositivo de entrada designado y puede producir alguna salida en un dispositivo de salida, como la impresora o la pantalla.
3

Una vez en memoria, el programa se puede re ejecutar con un conjunto diferente de datos de entrada. El mecanismo de desarrollo de programas sigue siendo engorroso. En una secuencia tpica, se carga el programa editor para preparar el cdigo fuente del programa de usuario. El siguiente paso es cargar y ejecutar el traductor, y alimentarlo con el cdigo fuente del programa de usuario. Los traductores de paso mltiple pueden requerir que se vuelva a poner el cdigo fuente durante cada paso para leerlo. Una vez corregido sintcticamente el programa se ejecuta el cdigo objeto. Si se detectan errores en la ejecucin, se puede examinar y modificar el contenido de la mquina mediante los interruptores de la consola, o con la ayuda de un programa denominado depurador. La mayora de los programas utilizaban dispositivos de E/S. Una mejora lgica fue el proporcionar unas rutinas estndares de E/S que fueran usadas por todos los programas. Al principio, las rutinas de E/S se introducan con las dems tarjetas del programa de usuario. Posteriormente, se guardaba en memoria las rutinas compiladas, y mediante un programa enlazador se combinaban con el cdigo objeto del usuario. En estos sistemas las rutinas de E/S y el programa cargador constituyen una forma rudimentaria de sistema operativo. Los traductores, editores y depuradores son programas de sistema, pero no forman parte del sistema operativo. Segunda etapa: Procesamiento por lotes Hasta ahora la utilizacin del procesador es muy baja, pues el tiempo empleado en leer un programa almacenado en tarjetas suele ser mucho mayor que el empleado en ejecutar el programa. Cuando aparecieron las cintas magnticas, cuya lectura y escritura era muy inferior en tiempo a las tarjetas, se pens que se utilizara ms el procesador si todas las entradas y salidas se realizaban sobre cintas. Para realizar esto se utiliz una tcnica de off-lining (fuera de lnea). La idea era dedicar un ordenador perifrico, de menor costo y potencia, a convertir las tarjetas o la cinta perforada en informacin sobre cinta magntica, y la salida sobre cinta magntica en
4

salida sobre impresora o cinta perforada. Una vez que se procesaban varios trabajos a cinta, sta se desmontaba del ordenador perifrico, y se llevaba a mano para su procesamiento por el ordenador principal. Cuando el ordenador principal llenaba una cinta de salida, sta se llevaba al ordenador perifrico para su paso a impresora o cinta perforada. Una de las implicaciones de esta forma de trabajo era que en una cinta de entrada podan existir los trabajos de varios programadores. Para diferenciar los trabajos (o tareas) de distintos programadores se introducan tarjetas de control que interpretaba un sistema operativo embrionario. As, por ejemplo, un trabajo poda empezar con una tarjeta $JOB de comienzo, con un identificativo del programador. Despus una tarjeta $FORTRAN para indicarle al sistema operativo que cargue el compilador de FORTRAN de una cinta del sistema. A continuacin vendran las tarjetas del cdigo fuente. Una tarjeta $LOAD para que se cargue en memoria el programa compilado (pues usualmente se guardaba en cinta). La tarjeta $RUN indicaba que se ejecutara el programa con los datos que vienen en las tarjetas siguientes. Por fin, una tarjeta $END indicaba el fin del trabajo. El sistema operativo resida en memoria y tena un programa de control que interpretaba las tarjetas de control, las cuales representaban un lenguaje de control de tareas. Dependiendo del tipo de tarjeta de control el sistema operativo realizaba una accin determinada. Este programa de control es un antecedente de los modernos intrpretes de rdenes. Con esta forma de trabajo el programador entregaba sus tarjetas a un operador y esperaba horas hasta que el programa proporcionara su salida. La falta de un punto y coma al final de una lnea de un programa poda provocar un error sintctico, y la prdida de estas horas de espera. Por otro lado, debido a que la cinta magntica es un medio de almacenamiento serie, no haba opcin alguna de orden de ejecucin de las tareas que no fuese el orden en que stas se haban presentado al ordenador. De cara a eliminar la dependencia de las E/S en lugar de tan slo reducirla, hay que emplear tcnicas mediante las cuales se puedan superponer las E/S al proceso a ejecutar. Ello es posible con la ayuda de dos elementos del hardware: el canal y la interrupcin. Un canal es un elemento que controla uno o ms dispositivos, llevando a cabo transferencias de
5

datos entre estos dispositivos y la memoria sin involucrar prcticamente al procesador central. Una interrupcin es una seal que transfiere el control del procesador central a una posicin fija de memoria, almacenando al mismo tiempo el valor anterior del contador de programa, y, posiblemente, la palabra de estado del procesador. De esta forma, se suspende temporalmente la ejecucin del programa que estaba siendo llevado a cabo en el momento de la interrupcin, aunque podr reemprenderse dicha ejecucin ms tarde (o sea, el programa es interrumpido). Una interrupcin de un canal acta como seal que indica que se ha completado una transferencia de datos. De esta forma es posible que el procesador central inicie una transferencia a un dispositivo, contine el proceso que estaba llevando a cabo mientras el canal controla la transmisin y reciba a travs de una interrupcin la notificacin de haberse completado dicha transferencia. Es posible ahora leer las tareas a ejecutar guardndolas en un soporte adecuado (normalmente disco), y ejecutarlas una a una al mismo tiempo que se van leyendo otras. Para ello ha habido que aadir a nuestro sistema operativo una rutina de gestin de las interrupciones y otra que decida cul de las tareas almacenadas en disco ser la siguiente en ser ejecutada. Esta ltima funcin, que recibe el nombre de scheduling, deriva del empleo del disco (caracterizado por un acceso aleatorio) como medio de almacenamiento de las distintas tareas en lugar de la cinta magntica, caracterizada por un acceso serie. Un sistema que trabaje de esta forma recibe el nombre de monitor de batch de flujo nico (en ingls, single stream batch monitor). El concepto de flujo nico lleva implcita la idea de una sola tarea ejecutndose a la vez. Tercera etapa: Multiprogramacin y tiempo compartido La principal desventaja de un sistema de cola nica es la total dedicacin de la mquina a la ejecucin de una sola tarea, no importa lo larga o lo corta que sea. Este inconveniente puede superarse mediante la multiprogramacin, o sea, la ejecucin simultnea de varios programas que residen en la memoria principal, dividiendo el procesador central su tiempo entre ellos de acuerdo con los recursos (tal como canales o dispositivos) que necesite en cada momento cada uno de ellos. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, obtener una
6

utilizacin ptima de los recursos disponibles. Ello incluye la utilizacin del procesador central, ya que en tanto que una tarea est esperando el final de una transferencia de E/S, este procesador puede pasar a trabajar en alguna otra tarea que est pendiente en la mquina. La carga que recae sobre el sistema operativo consiste en el control de los recursos, as como la proteccin de cada tarea frente a las actividades de las otras. Un sistema operativo de este tipo recibe el nombre de monitor de batch de varios flujos. En el estadio actual de la progresin que hemos llevado a cabo tenemos un sistema notablemente sofisticado que hace bastante buen uso de la electrnica disponible. Sin embargo, desde el punto de vista del usuario el sistema adolece de falta de interactividad, tan necesaria en el proceso de desarrollo de programas, y til tambin para desarrollar programas interactivos que respondan instantneamente a las peticiones del usuario. Para hacer posible esta interaccin, el sistema de batch de varios flujos debe modificarse con el fin de que pueda adquirir la informacin que le suministren los usuarios desde los respectivos terminales: es decir, debe convertirse en un sistema multiusuario. Un sistema de este tipo, en el cual existen varios usuarios con un terminal en lnea (usuarios interactivos), se llama sistema de tiempo compartido. En estos sistemas se divide el tiempo del procesador central, y de los dems recursos del ordenador, de forma que cada usuario tiene la ilusin de que todo el ordenador se le dedica exclusivamente a l, al recibir unos tiempos de respuesta aceptables. En un sistema de tiempo compartido los usuarios suelen ejecutar programas cortos (por ejemplo, compilar un programa), frente a los programas largos (por ejemplo, ordenar una cinta de un milln de datos) que se suelen dar en los sistemas batch. Por ltimo hay que indicar que algunos sistemas operativos permiten tanto usuarios interactivos como lotes de trabajos batch. En estos sistemas se atiende a los usuarios interactivos con mayor prioridad, ejecutndose los programas batch cuando no hay programas de usuario. Cuarta etapa: redes de ordenadores En una red de ordenadores se tiene una configuracin de varios ordenadores conectados fsicamente. Los ordenadores de una red pueden tener sistemas operativos de red o sistemas operativos distribuidos.
7

En un sistema operativo de red los usuarios son conscientes de la existencia de varios ordenadores, y pueden conectarse con mquinas remotas para, por ejemplo, copiar ficheros. Cada mquina ejecuta su propio sistema operativo local y tiene su propio usuario (o grupo de usuarios). Los sistemas operativos de red no difieren de los sistemas operativos tradicionales de un slo procesador. Necesitan un controlador de red, algunas rutinas de E/S para utilizar dicho controlador, y programas que permitan la conexin y el acceso a ordenadores remotos, pero esas caractersticas adicionales no modifican la estructura esencial del sistema operativo. En un sistema distribuido los ficheros que utiliza un usuario (as como el procesador en el que se ejecutan sus programas) pueden estar situados en cualquier ordenador de la red. Adems, esto es transparente al usuario. Los sistemas operativos distribuidos requieren algo ms que aadir un poco de cdigo a un sistema operativo de un nico procesador, ya que los sistemas distribuidos difieren en aspectos crticos de los sistemas centralizados. Estructura monoltica. Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este tipo de estructura son: Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del enlazador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. Generalmente estn hechos a la medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

Estructura jerrquica. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, los sistemas operativos tambin evolucionaron, en donde una parte del sistema contena sub-partes y esto organizado en forma de niveles. Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con una clara interfaz con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos. Se puede pensar tambin en estos sistemas operativos como si fueran multicapas. Unix caen en esa categora. En esta estructura se basan prcticamente la mayora de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos. En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa, por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas.

Procesos y administracin del proceso


Concepto de procesos Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el

microprocesador.

Su estado de ejecucin en un momento dado, esto es, los valores de los

registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus

contenidos.

Otra informacin que permite al sistema operativo su planificacin.

Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, informacin) con el proceso que los ha creado. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. Estados de un proceso El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo.
10

Figura N 1

En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso. Como se observa en la figura N 1. Operaciones con procesos Los sistemas operativos poseen una serie de funciones cuyo objetivo es la manipulacin de los procesos, se pueden ejecutar de forma concurrente, porque permite compartir informacin, aceleracin de los clculos, modularidad y comodidad.

11

Operaciones que pueden realizar los procesos En general las operaciones que pueden hacerse en los procesos son las siguientes: Crear un proceso. Destruir un proceso. Cambiar la prioridad de un proceso. Bloquear un proceso. Permitir la comunicacin entre procesos. Suspender y Reanudar un proceso. Temporizar la ejecucin de un proceso. Despertar un proceso. Sincronizacin.

Planificacin de Procesos Cuando son ejecutables varios procesos, el sistema operativo debe decidir cul conviene ejecutar si el CPU se encuentra disponible. El elemento del sistema quien toma esta decisin se llama planificador (Scheduling) y el algoritmo del cual hace uso se denomina algoritmo planificador. Tipos de Planificacin No Apropiativa: Una vez que el CPU ha sido asignado a un proceso, ya no se le puede arrebatar. Ejemplos: FIFO, Primer trabajo ms corto. Apropiativa: Cuando a un proceso, el sistema operativo le puede quitar el CPU antes asignado. Ejemplos: Round Robin, Prioridades, Tiempo restante ms corto, Colas mltiples.

12

Bloque de Control del Sistema (S.C.B) El sistema operativo es un programa que tiene como funcin la asignacin de elementos fsicos a los elementos lgicos. Para poder llevar a cabo esta funcin, el sistema operativo mantiene una serie de informaciones acerca de esos objetos lgicos y fsicos. El soporte de esta informacin se conoce como Bloque de Control del Sistema. Bloque de control del sistema Estructura bsica para almacenar los datos necesarios para poder ejecutar el sistema operativo: Lista de descriptores de procesos. Puntero al descriptor del proceso que est haciendo uso del procesador. Puntero a la cola de descriptores de procesos que no hacen uso del ordenador, pero estn en espera. Punteros a colas de procesos que se encuentran en diferentes situaciones. Identificadores de las rutinas necesarias para tratar las interrupciones producidas por el hardware, el software o errores indeseados. Puntero a la cola de descriptores de recursos. Bloque de control del proceso (P.C.B). Es una Estructura de datos, que permite al Sistema Operativo informacin relacionada con cada uno de los procesos. Esto incluye: Estado Actual del Proceso. Identificador del Proceso. Un apuntador hacia el padre del proceso. Apuntadores a los hijos del proceso. Prioridad del Proceso. manejar la

13

Informacin de Administracin de memoria del proceso.

Apuntadores a los recursos asignados al proceso.


Un rea para salvaguarda de los registros relacionados con la ejecucin del proceso. El procesador en que se est ejecutando el proceso (En un sistema de procesadores mltiples).

Niveles de Planificacin del Procesador Se consideran tres niveles importantes de planificacin, Los cuales se pueden observar en la figura N 2. Y que se detallan a continuacin:

Planificacin de alto nivel:


o o

Tambin se denomina Planificacin de trabajos. Determina a qu trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina Planificacin de admisin.

Planificacin de nivel intermedio:


o o

Determina a qu procesos se les puede permitir competir por la CPU. Responde a fluctuaciones a corto plazo en la carga del sistema y efecta suspensiones y activaciones (reanudaciones) de procesos.

Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.

Planificacin de bajo nivel:


o

Determina a qu proceso listo se le asigna la CPU cuando esta queda disponible y asigna la CPU al mismo, es decir que despacha la CPU al proceso.

La efecta el Despachador del Sistema Operativo, el que opera muchas veces por segundo y reside siempre en el almacenamiento primario.

14

Figura N 2 Niveles de planificacin del procesador

15

You might also like