manual de fundamentos de sistemas operativos

Upload: alexis-andres

Post on 12-Jul-2015

293 views

Category:

Documents


0 download

TRANSCRIPT

M ANUAL DE SIST EM AS OPERAT IVOS I

Pgina 1 de 164

DESC R IPC IN DEL C ONTE NID OEl presente documento contiene una sntesis ordenada de los tpicos ms relevantes de la asignatura de Sistemas Operativos I. El documento pretende ser una fuente de informacin que complemente la labor docente y a la vez sirva como gua de estudio para el alumno. Este manual se organiza en nueve captulos. Adems, contiene un completo conjunto de preguntas y ejercicios resueltos que facilitarn el proceso de autoevaluacin de aprendizajes y avances de parte del alumno.

CAPTULO I CAPTULO II CAPTULO III CAPTULO IV CAPTULO V CAPTULO VI CAPTULO VII CAPTULO VIII CAPTULO IX

: : : : : : : : :

INTRODUCCIN SERVICIOS DE LOS SISTEMAS OPERATIVOS ELEMENTOS BSICOS ADMINISTRACIN DE CPU ADMINISTRACIN DE MEMORIA CONCURRENCIA ASPECTOS DE SEGURIDAD ELEMENTOS DE CONFIGURACIN ALGUNOS SISTEMAS OPERATIVOS

NOTA: Lea todo el manual, al menos una vez, antes de comenzar su estudio detallado.

Pgina 2 de 164

NDI CEINTRODUCCIN ............................................................................................ 7Qu Es Un Sistema Operativo? ............................................................................................... 8El Sistema Operativo Como Mquina Virtual...........................................................................................................8 El Sistema Operativo Como Administrador De Recursos ......................................................................................9

Resumen Histrico................................................................................................................. 10Sistemas De Procesamiento Por Lotes (Batch) ....................................................................................................10

SERVICIOS DE LOS SISTEMAS OPERATIVOS........................................11Monoprogramacin................................................................................................................ 11 Multiprogramacin ................................................................................................................ 11 Tiempo Compartido................................................................................................................ 12 Sistemas De Tiempo Real........................................................................................................ 12 Multiproceso.......................................................................................................................... 13Sistemas Multiprocesadores .....................................................................................................................................13 Sistemas Distribuidos .................................................................................................................................................14

ELEMENTOS BSICOS ........................................................................... ....15Llamadas Al Sistema .............................................................................................................. 15 Programas Del Sistema .......................................................................................................... 16 Procesamiento Concurrente.................................................................................................... 16Procesos ......................................................................................................................................................................17 Relacin Entre Los Procesos ...................................................................................................................................17 Especificacin De Los Procesos ..............................................................................................................................18 Estados De Los Procesos .........................................................................................................................................18 Transiciones entre los estados .................................................................................................................................19 El Bloque De Control De Procesos (PCB, Process Control Block )...................................................................24 Procesos y H ebras .....................................................................................................................................................25 Operaciones ................................................................................................................................................................25 El Planificador De Procesos .....................................................................................................................................25 Criterios De Performance ..........................................................................................................................................26

Conceptos Bsicos De Un Sistema Operativo........................................................................... 26Modelo Sencillo De Un Sistema Operativo ............................................................................................................27 Interrupciones: La Base De Los Sistemas Operativos Modernos ......................................................................29

Administracin De Datos........................................................................................................ 33Archivos ........................................................................................................................................................................34 Tipos Y Estructuras De Archivos .............................................................................................................................34 Operaciones Con Los Archivos ................................................................................................................................34 Directorios De Archivos .............................................................................................................................................35 Operaciones Con Los Directorios ............................................................................................................................36 Acceso Secuencial .....................................................................................................................................................38 Acceso Directo ............................................................................................................................................................38 Otros Mtodos De Acceso........................................................................................................................................38 Realizacin Del Sistema De Archivos .....................................................................................................................38

Administracin De Dispositivos De Almacenamiento Rotacional............................................. 40Estructura De Un Disco .............................................................................................................................................41 Estructura Fsica.........................................................................................................................................................41 Estructura Lgica ........................................................................................................................................................42 Planificacin De Discos .............................................................................................................................................43 Evaluacin De Desem peo.......................................................................................................................................45

Pgina 3 de 164

ADMINISTRACIN DE CPU .......................................................................48Algoritmo FCFS..................................................................................................................... 49 Algoritmos SJF & SRT........................................................................................................... 49 Planificacin Por Prioridades................................................................................................. 50 Algoritmo Round Robin.......................................................................................................... 50 Colas Multinivel..................................................................................................................... 50 Algoritmo Round Robin Virtual.............................................................................................. 51 Evaluacin De Las Polticas................................................................................................... 51

ADMINISTRACIN DE MEMORIA............................................................52La memoria dedicada. ............................................................................................................ 52 Divisin De Memoria: El Monitor Residente........................................................................... 52 Proteccin de la memoria ....................................................................................................... 52 Reasignacin de direcciones ................................................................................................... 53 Memoria Virtual..................................................................................................................... 53 Swapping ............................................................................................................................... 54 Segmentacin........................................................................................................................ . 55 Paginacin............................................................................................................................. 56 Paginacin De Mltiples Niveles............................................................................................. 59 Segmentacin/Paginacin ...................................................................................................... 60 Fragmentacin....................................................................................................................... 60 Estrategias De Localidad ........................................................................................................ 60Concepto De Localidad .............................................................................................................................................60 Conjunto De Trabajo..................................................................................................................................................61

Algoritmos De Reemplazo....................................................................................................... 62Algoritmo De Bits Adicionales De Referencia........................................................................................................63 Algoritmo De Segunda Op ortunidad........................................................................................................................63 Algoritmo LFU .............................................................................................................................................................63 Algoritmo MFU ............................................................................................................................................................64 Algoritmos Adicionales ...............................................................................................................................................64 Algoritmos Basados En Ajuste .................................................................................................................................64

CONCURRENCIA ......................................................................................... 65Secciones Crticas................................................................................................................... 66Operaciones Lock/Unlock .........................................................................................................................................67 Bloqueo Mediante El Uso De Variables Compartidas ..........................................................................................67 Sincronizacin De Ejecucin ....................................................................................................................................68 Algoritmo de Peterson ...............................................................................................................................................69 Algoritmo De Dekker..................................................................................................................................................70 Sincronizacin Con Instrucciones De Hardware...................................................................................................71 Semforos ....................................................................................................................................................................72 Operaciones Wait/Signal...........................................................................................................................................72 Versin Ms General De Los Semforos ...............................................................................................................74 Buffers Mltiples .........................................................................................................................................................74

Comunicacin Entre Procesos ................................................................................................ 75Tcnicas De Comunicacin ......................................................................................................................................75 Sistema Maestro-Sirviente ........................................................................................................................................76 Sistema De D ilogo....................................................................................................................................................76 Sistema De Correo.....................................................................................................................................................76 Transmisin Entre Mensajes, Comunicacin Directa ...........................................................................................77 Transmisin Entre Mensajes, Comunicacin Indirecta ........................................................................................77 Utilizacin De Buffers.................................................................................................................................................78 Monitores .....................................................................................................................................................................79 Propietarios ..................................................................................................................................................................81

Pgina 4 de 164

Deadlocks (Interbloqueos)...................................................................................................... 83Prevencin De Interbloqueos ...................................................................................................................................83 Evitacin De Los Interbloqueos ................................................................................................................................84 Deteccin De Los Interbloqueos ..............................................................................................................................85 Recuperacin De Interbloqueos ...............................................................................................................................86

ASPECTOS DE SEGURIDAD .......................................................................88Tcnicas De Proteccin .......................................................................................................... 88Nomina cin..................................................................................................................................................................88 Contraseas ................................................................................................................................................................89 Dominios de Proteccin.............................................................................................................................................89 Matriz De Acceso........................................................................................................................................................89 Listas De Acceso........................................................................................................................................................90 Usuarios y Grupos De Acceso.................................................................................................................................90

Seguridad De Los Sistemas Operativos.................................................................................... 91Concepto De Seguridad ............................................................................................................................................91 Mtodos De Verificacin............................................................................................................................................92 Estrategia De Total Seguridad .................................................................................................................................92 Seguridad Externa......................................................................................................................................................93 Seguridad De Operacin...........................................................................................................................................93 Vigilancia ......................................................................................................................................................................93 Supervisin De Amenazas ........................................................................................................................................94 Proteccin Por Contrasea (Llave/Cerradura) ......................................................................................................94 Auditora .......................................................................................................................................................................95 Criptografa ..................................................................................................................................................................95

ELEMENTOS DE CONFIGURACIN.........................................................97Estructuras De Sistemas Operativos (Diseos) ........................................................................ 97Sistemas Monolticos (DOS, MAC) ..........................................................................................................................97 Sistemas Con Capas (Unix / OS2) ..........................................................................................................................97 Mquinas Virtuales (VM/370 CMS (Conversational Monitor System))..............................................................97 Sistemas De Microkernel...........................................................................................................................................97

Organizaciones Ms Comunes De Multiprocesadores.............................................................. 98Tiempo Compartido O Bus Comn (Conductor Comn) .....................................................................................98 Matriz De Barras Cruzadas E Interruptores ...........................................................................................................99 Almacenamiento De Interconexin Mltiple...........................................................................................................99 Conexiones Hipercubo............................................................................................................................................ 100

Organizacin De Los Sistemas Operativos De Multiprocesadores .......................................... 100Sistemas Ligeramente Acoplados v/s Sistemas Rgidamente Acoplados ..................................................... 100 Maestro/Satlite ....................................................................................................................................................... 101 Ejecutivos Separados ............................................................................................................................................. 101 Simtrico ................................................................................................................................................................... 101

Consideraciones finales........................................................................................................ 101

ALGUNOS SISTEMAS OPERATIVOS ...................................................... 102Sistema Operativo Unix ........................................................................................................ 102Control Y Sincronizacin De Procesos ................................................................................................................ 102 Creacin De Procesos ............................................................................................................................................ 104 Comunicacin Entre Procesos .............................................................................................................................. 104 Gestin De La Memoria.......................................................................................................................................... 105 Sistema De Archivos ............................................................................................................................................... 106 Subsistema De Entrada/Salida ............................................................................................................................. 106

Sistema Operativo Novell Netware ........................................................................................ 108Netware 4.X.............................................................................................................................................................. 108 Protocolo Bsico De Netware................................................................................................................................ 108 Niveles Internos De Netware................................................................................................................................. 109

Pgina 5 de 164

Caractersticas De Rendimiento............................................................................................................................ 110 Caractersticas De Proteccin De Datos ............................................................................................................. 111 Otras Prestaciones .................................................................................................................................................. 112

Sistema Operativo Windows NT............................................................................................ 113Otras Caractersticas .............................................................................................................................................. 113 Control Y Sincronizacin De Procesos ................................................................................................................ 114 Gestin De Memoria ............................................................................................................................................... 114

Sistema Operativo Windows 2000 ......................................................................................... 116Instalacin Ms Sencilla......................................................................................................................................... 116 La Evolucin Plug & Play ....................................................................................................................................... 117 Lo Mejor De Versiones De Las Anteriores .......................................................................................................... 117 Seguridad Basada En Elevados Estndares De Desempeo ......................................................................... 118

Sistema Operativo Linux ...................................................................................................... 121Por Qu Utilizar Linux? ........................................................................................................................................ 121 Descripcin De Las Funciones De Linux............................................................................................................. 122 Qu Se Puede Hacer Con Linux? ...................................................................................................................... 124 Distribuciones ........................................................................................................................................................... 124

PREGUNTAS Y PROBLEMAS RESUELTOS............................................ 126Unidades I, II, III & IV: ....................................................................................................... 126Preguntas De Seleccin Mltiple.......................................................................................................................... 126 Preguntas De Trminos Pareados ....................................................................................................................... 133 Preguntas De Desarrollo ........................................................................................................................................ 134 Problemas ................................................................................................................................................................. 135

Unidades V & VI:................................................................................................................. 137Preguntas De Seleccin Mltiple.......................................................................................................................... 137 Preguntas de trminos pareados .......................................................................................................................... 141 Preguntas De Desarrollo ........................................................................................................................................ 142 Problemas ................................................................................................................................................................. 143

Unidades VII, VIII & IX: ..................................................................................................... 145Preguntas De Seleccin Mltiple.......................................................................................................................... 145 Preguntas De Trminos Pareados ....................................................................................................................... 148 Preguntas De Desarrollo ........................................................................................................................................ 149

Respuestas y Soluciones: ...................................................................................................... 150Preguntas De Seleccin Mltiple.......................................................................................................................... 150 Preguntas De Trminos Pareados ....................................................................................................................... 151 Preguntas de desarrollo.......................................................................................................................................... 154 Problemas ................................................................................................................................................................. 157

BIBLIOGRAFA ......................................................................................... . 162 NDICE ALFABTICO ............................................................................... 163

Pgina 6 de 164

CAP T UL O IINT RODUCC INTodo el hardware de un sistema computacional a cualquier nivel se compone de una serie de recursos fsicos que van desde perifricos en general hasta la misma CPU. Los software de aplicacin son los encargados de dar un uso adecuado a todo este conjunto de recursos. Un sistema operativo es un conjunto de programas que supervisan la ejecucin de todos los programas de aplicacin y controlan la utilizacin de todos los recursos de hardware que estn disponibles al momento de su ejecucin. En los aos sesenta, un sistema operat ivo se podra haber definido como el software que controla al hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia de las (*) funciones del software al firmware , es decir, microcdigo. Dicha tendencia se ha pronunciado tanto que es probable que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aquellas codificadas en software. Es evidente que se necesita una nueva definicin de sistema operativo. Se puede imaginar un sistema operativo como los programas, instalados en el software o el firmware, que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cmputo"; los sistemas operativos ponen dicha capacidad de cmputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento. El estudio de los sistemas operativos ha llegado ha ser un tpico importante en las ciencias de la computacin despus de la introduccin del concepto time sharing, multiprogramacin y multitarea, caractersticas que hasta hoy en da an siguen revolucionando el ambiente computacional. La actual es una etapa muy interesante en la evolucin de los sistemas operativos. La capacidad de los computadores contina aumentando a una velocidad vertiginosa, mientras que su costo se reduce asombrosamente. En esta dcada son muy comunes las estaciones de trabajo de escritorio con velocidades de procesamiento muy elevadas y ya se habla de mquinas de escritorio capaces de manejar velocidades de ms de mil millones de instrucciones por segundo. Como el costo de los procesadores se est reduciendo tanto, las arquitecturas de los procesadores mltiples y en red estn creando un sin nmero de oportunidades para investigar y desarrollar nuevas es trategias de hardware y software. Los lenguajes de programacin secuenciales han sido desplazados por lenguajes de programacin concurrentes que permitan especificar actividades de cmputo en paralelo. El enfoque de sistemas abiertos, en el cual los provee dores de hardware, software y dispositivos de comunicacin producen sistemas que se ajustan a estndares aceptados internacionalmente, presenta nuevos retos a los fabricantes que antes se concentraban en sus propias arquitecturas. Los nuevos estndares internacionales que rigen la comunicacin abierta, OSI (Open System Interconnection) e ISDN (Integrated Services Digital Network) ya permiten que los computadores de todo el mundo se comuniquen fcilmente entre s, lo cual representa un paso gigante hacia el establecimiento de la computacin distribuida a escala mundial.

(*)

EI concepto de microprogramacin (firmware) se atribuye por lo general al profesor Maurice Wilkes quien, en 1951, present conceptos que forman la base de las tcnicas actuales de microprogramacin. Sin embargo, no fue sino hasta mediados de los aos sesenta, cuando se generaliz la microprogramacin. La microprogramacin introduce una capa de programacin debajo del lenguaje de mquina del computador. Como tal, hace posible la definicin de instrucciones en lenguaje de mquina. La microprogramacin, que se ejecuta en una memoria de control de alta velocidad, es parte integral de las arquitecturas de computador modernas y es importante para los aspectos de rendimiento y seguridad de los sistemas operativos. Pgina 7 de 164

Qu E s U n S istema O pera tivo?El sistema operativo es el ente intermedio entre las aplicaciones y la mquina; es el encargado de interpretar las instrucciones de las aplicaciones y traducir los cdigos de respuesta de la mquina, as como tambin es el encargado de asignar en forma racional y eficiente los recursos que precisen los software de aplicacin. A pesar de que todo el mundo utiliza sistemas operativos casi a diario, es difcil de finir qu es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes: Proveer una mquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegindolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador.

El Sistema Operativo Como Mquina VirtualUn computador se compone de uno o ms procesadores o CPUs, memoria principal o RAM, memoria secundaria (discos), tarjetas de expansin (tarjetas de red, mdems y otros), monitor, teclado, mouse y otros dispositivos. O sea, es un sistema complejo. Escribir programas que hagan uso correcto de todos estos componentes no es una tarea trivial (peor an si se habla del uso ptimo). Si cada programador tuviera que preocuparse, por ejemplo, de cmo funciona el disco duro del computador, teniendo adems siempre presentes todas las posibles cosas que podran fallar, entonces a la fecha se habra escrito una cantidad bastante reducida de programas. Es mucho ms fcil decir escriba lo apuntado por este puntero al final del archivo datos, que decir: 1. Poner en determinados registros del controlador de disco la direccin que se quiere escribir, el nmero de bytes que se desea escribir, la posicin de memoria donde est la informacin a escribir, el sentido de la operacin (lectura o escritura), amn de otros parmetros; Decir al controlador que efectu la operacin; Esperar. Decidir qu hacer si el controlador se dem ora ms de lo esperado (cunto es "lo esperado"?); Interpretar el resultado de la operacin (una serie de bits); Reintentar si algo anduvo mal, etc.

2. 3.

4. 5.

Adems, habra que rescribir el programa si se instala un disco diferente o se desea ejecutar el programa en otra mquina. Hace muchos aos que qued claro que era necesario encontrar algn medio para aislar a los programadores de las complejidades del hardware. Esa es precisamente una de las tareas del sistema operativo, que puede ser visto como una capa de software que maneja todas las partes del sistema y hace de intermediario entre el hardware y los programas del usuario. De esta manera, el sistema operativo presenta una interfaz o mquina virtual que es ms fcil de entender y de programar que la mquina "pura". Adems, para una misma familia de mquinas, aunque tengan componentes diferentes (por ejemplo, monitores de distinta resolucin o discos duros de diversos fabricantes), la mquina virtual puede ser idntica: el programador ve exactamente la misma interfaz. Pgina 8 de 164

El Sistema Operativo Como Administrador De RecursosLa otra tarea del sistema operativo consiste en administrar los recursos del computador cuando hay dos o ms programas que se ejecutan simultneamente y adems requieren usar el mismo recurso (como tiempo de CPU, memoria o impresora). Adems, en un sistema multiusuario, suele ser necesario (o conveniente) compartir informacin (adems de dispositivos fsicos). Al mismo tiempo, deben tenerse en cuenta una serie de consideraciones de seguridad; Por ejemplo: la informacin confidencial slo debe ser accedida por usuarios autorizados, un usuario cualquiera no debiera ser capaz de sobrescribir reas crticas del sistema, etc. (En este caso, un usuario puede ser una persona, un programa, u otro computador). En resumen, el sistema operativo debe llevar la cuenta acerca de quin est usando qu recursos; otorgar recursos a quienes lo solicitan (siempre que el solicitante tenga derechos adecuados sobre el recurso); y arbitrar en caso de solicitudes conflictivas. En sntesis, se puede afirmar que las principales tareas que realiza un sistema operativo son: a. Administracin de memoria Mantiene el estado de los programas y datos residentes en memoria, esperand o el uso de la CPU, algn dispositivo de E/S o la utilizacin de algn otro recurso. Contiene tablas de asignacin de direcciones que indican qu programas y datos estn en memoria, cuanto espacio ocupan en forma independiente y dnde estn ubicados. Asigna o quita espacio en memoria a programas segn sea posible o requerido.

b. Administracin de CPU Decide qu programa hace uso del recurso de la unidad central de procesamiento, en que momento y por cunto tiempo. Crea una lista de espera con los programas que estn solicitando utilizar este recurso a fin de poder asignar posteriormente el recurso bajo alguna poltica de prioridad.

c. Manejo de dispositivos de E/S Controla el flujo de datos desde y hacia cualquier dispositivo de entrada y salida. Controla la comunicacin con los dispositivos de E/S y para dispositivos particulares existen programas especiales de control de perifricos (drivers).

d. Administracin de archivos en disco Crea, elimina, copia y controla el acceso a los archivos. Mantiene directorios de los archivos existentes en el disco y administra el espacio libre.

e. Comunicacin con el usuario Permite que el operador controle el computador. Indica y, si es posible, controla los errores oc urridos en el sistema. Por ejemplo el trmino anormal de alguna aplicacin debido a fallas de la aplicacin misma o problemas de hardware. Indica el nmero de usuarios que estn utilizando el sistema computacional. Permite la utilizacin de dispositivos generales o particulares; cuando no se encuentran disponibles enva un correspondiente mensaje de informacin al usuario o la aplicacin que lo solicita.

Pgina 9 de 164

R esumen H istricoEn un principio slo exista el hardware del computador. Los primeros computadores eran voluminosas mquinas que se operaban directamente desde una consola. Pero con el transcurso del tiempo se hizo evidente la necesidad de simplificar la tarea de los programadores, quienes progresivamente se vean ante la necesidad de crear programas de aplicacin cada vez ms grandes y consecuentemente el proceso de deteccin y correccin de fallas en interaccin directa con la mquina se haca cada vez ms lento y complejo. As fue como aparecieron los compiladores FORTRAN y COBOL que hacan en su tiempo las veces de lo que hoy se conoce como sistema operativo. Posteriormente aparecieron los sistemas operativos propiamente tales. A fin de evitar mayores extensiones en cuanto a los detalles de evolucin de los sistemas operativos y en general de los sistemas computacionales, se puede observar la siguiente tabla: Generacin de computadores 1 2 3 4 5 Ao(s) 1945 - 1955 1955 - 1965 1965 - 1980 1980 - ... 1990 - ... Caractersticas Tubos de vaco y tableros de cmputo. No existe sistema operativo; se manejan por medio de hardware y secuencias de comandos directos. Transistores y sistemas batch. Fortran y Assembler en tarjetas perforadas. IBM/360 sistema operativo OS/360. Sistemas operativos de propsito general multimodo. Circuitos integrados de gran escala; aparicin del PC. Ms-DOS, UNIX, etc. Superconductores, Microchips, Pentium, etc. Versiones mejoradas de diversos sistemas operativos.

Sistemas De Procesamiento Por Lotes (Batch)Para comprender conceptos ms especficos, como la diferencia entre el tiempo compartido y la multiprogramacin, primero se ha de conocer el mtodo de procesamiento por lotes. Cuando se desarrollaron por primera vez los sistemas por lotes, estaban caracterizados por la "agrupacin en lotes" de trabajos similares. Los sistemas basados en tarjetas y cintas slo permitan el acceso secuencial a los programas y datos, por lo que nicamente poda usarse un paquete de aplicacin en cada ocasin (por ejemplo, el compilador, ligador y cargador de FORTRAN, o sus equivalentes de COBOL). Al hacerse factible el almacenamiento en lnea en disco fue posible ofrecer un acceso inmediato a todo el paquete de aplicacin. Los sistemas por lotes, hace ya tiempo que dejaron de ser definidos por la agrupacin de trabajos similares; ahora se utilizan otras caractersticas. Un sistema operativo por lotes lee un flujo separado de datos, cada uno con banderas de control que definen qu hace cada trabajo. Cuando ste termina, generalmente se imprime el resultado a travs de algn dispositivo de salida. La caracterstica que delata un sistema por lotes en forma definitiva es la ausencia de interconexin entre el usuario y el trabajo mientras se ejecuta. El trabajo se prepara, se (*) enva y ms tarde se obtiene algn resultado. El tiempo de retorno puede ser el resultado de la cantidad de procesos que se realizan en forma necesaria, o las demoras, antes de que el sistema operativo comience a procesar un nuevo lote (o trabajo). Los sistemas por lotes se caracterizan por ser secuenciales y por el hecho de que la CPU tiene el control total de la ejecucin del proceso. Estos sistemas son muy tiles cuando se trata de la realizacin de procesos masivos; sin embargo, el tiempo de proceso es alto y la CPU pasa la mayor parte de ese tiempo ociosa, debido a la considerable lentitud de los procesos de carga y descarga de paquetes de informacin (antiguamente tarjetas). Los sistemas por lotes se pueden clasificar en monoprogramables y multiprogramables.(*)

El tiempo de retorno es el tiempo transcurrido desde que se enva el trabajo hasta obtener la salida. Pgina 10 de 164

CAP T UL O IISERV ICIOS DE L OS S ISTEM AS OPERATIVOSM onoprogramacinSe atiende un trabajo a la vez. Cuando el programa entra en proceso se apodera de la CPU y de los dispositivos de E/S, hasta que termina. La monoprogramacin es el modo de trabajo en el que solamente un programa utiliza el procesador, siendo adems el nico existente en la memoria principal, de tal forma que hasta que ste no termine su trabajo no ceder el control al siguiente programa que ser cargado en memoria, sustituyendo al anterior. En el Captulo N 5 se detalla el cmo se gestiona la memoria en aquellos sistemas que utilizan este modo de trabajo.

Los sistemas monoprogramabl es lineales son la expresin ms simple del sistema operativo y se caracterizan por tener una cola de atencin sin prioridades y un proceso no termina hasta haber completado su ejecucin.

Los sistemas monoprogramables con prioridades se caracterizan por tener una cola de atencin con prioridades y un proceso no termina hasta haber completado su ejecucin.

Los sistemas monoprogramables con prioridades y tiempo de salida se caracterizan por tener una cola de atencin con prioridades y un proceso puede terminar al haber completado su ejecucin o despus de haber transcurrido un intervalo de tiempo de atencin prefijado. En el ltimo caso es devuelto a la cola de atencin.

M ultipro grama cinEn un p rocesamiento por lotes puede ocurrir que en cierto instante ocupe la CPU un proceso que demande una tarea de impresin; as, l seguir ocupando la CPU mientras espera que el proceso de impresin termine, dejando la CPU ociosa. La multiprogramacin aumenta la utilizacin de la CPU organizando los trabajos de manera que sta siempre tenga algo que ejecutar. El concepto es el siguiente: El sistema operativo escoge uno de los trabajos del depsito y lo comienza a ejecutar. En algn momento, el trabajo tendr que esperar que se efecte cierta tarea como montar una cinta, que se introduzca un mandato mediante el teclado, o que termine una operacin de E/S. En un sistema no multiprogramado, la CPU estara inactiva. En un sistema multiprogramado, el sistema operativo cambia a otro trabajo y lo ejecuta; cuando ese trabajo tiene que esperar, la CPU cambia a otro, y as sucesivamente. Eventualmente el primer trabajo deja de esperar y recupera la CPU; mientras haya otro trabajo por ejecutar, la CPU nunca estar inactiva. Los sistemas operativos multiprogramados son bastante complejos. Para que pueda haber varios programas listos para ejecutarse, el sistema debe conservarlos todos en la memoria al mismo tiempo. Cuando se consigue esto, se necesita alguna forma de administracin de memoria. Adems, si al mismo tiempo existen varios programas listos para ejecutarse, el sistema debe elegir uno de ellos. Esta decisin se denomina planificacin de la CPU. Por otra parte, existen dos formas habituales de organizar la diferencia de velocidades de ejecucin (*) (**) entre la CPU y los dispositivos: Polling e Interrupciones .(* )

El polling consiste en que la CPU est constantemente preguntando a cada perifrico si tiene algo que hacer. Pgina N 11 de 151

Finalmente, si varios programas se ejecutan concurrentemente, es necesario limitar la posibilidad de que se interfieran unos a otros e todas las fases del sistema operativo, incluyendo la planificacin de n procesos, el almacenamiento en disco y la administracin de memoria. Los sistemas multiprogramables con particin fija disponen de espacios de almacenamiento fijo para los procesos qu e se encuentran en la cola; as, un proceso debe esperar hasta que este disponible un bloque (o ms) de memoria lo suficientemente grande para ser atendido. En los sistemas multiprogramables de particin variable la memoria disponible es dividida en secciones variables de acuerdo a la demanda de cada uno de los procesos que sean almacenados en ella.

Tiempo Com part idoEl tiempo compartido (o sistemas en lnea) es una extensin lgica de la multiprogramacin. La CPU ejecuta las diversas tareas alternando ent re ellas, pero estos cambios son tan frecuentes que los usuarios pueden interactuar con cada programa mientras se ejecuta. Un sistema operativo de tiempo compartido permite a los diversos usuarios compartir al mismo tiempo el computador. Puesto que en un sistema de tiempo compartido cada accin o mandato suele ser breve, slo se requiere un corto tiempo de la CPU para cada proceso. Como el sistema pasa rpidamente de un usuario al siguiente, cada uno de ellos tiene la impresin de que cuenta con su propio computador, cuando en realidad todos comparten slo uno. En 1960 se expuso el concepto de tiempo compartido, pero como los sistemas de este tipo eran ms difciles y costosos de construir; no fueron comunes sino hasta principios de los aos setenta. Al crecer la popularidad del tiempo compartido, los investigadores han tratado de combinar los sistemas por lotes y de tiempo compartido en uno solo. Diversos sistemas de computacin diseados inicialmente como sistemas por lotes se han modificado para crear un subsistema de tiempo compartido. Hoy en da, la mayora de los sistemas ofrecen tanto el procesamiento por lotes como el tiempo compartido, aunque siempre su diseo bsico se inclina hacia uno u otro tipo. Los sistemas operativos de tiempo compartido son complejos y ofrecen algn mecanismo para la ejecucin concurrente. Adems, como en la multiprogramacin, hay que conservar simultneamente varios programas en la memoria, lo que requiere algn tipo de administracin de memoria, proteccin y planificacin de la CPU. Para lograr un tiempo de respuesta razonable hay que intercambiar los trabajos entre la memoria principal y el disco que funciona como almacenamiento de respaldo para la memoria principal. Por tanto, tambin es necesario proporcionar administracin del disco. Los sistemas de tiempo compartido deben ofrecer, adems, un sistema de archivos en lnea. La multiprogramacin y el tiempo compartido son los aspectos centrales de los sistemas operativos modernos.

S istemas D e Tiem po R ealSe utilizan cuando hay requerimientos de tiempo muy rgidos en las operaciones o en el flujo de datos, generalmente se utilizan como sistemas de control en una aplicacin dedicada. Por ejemplo: sistemas de control industrial, experimentos cientficos y sistemas mdicos. Los sistemas de tiempo real se pueden clasificar en: Los sistemas de tiempo real por hard: que garantizan que las tareas crticas se ejecutan a tiempo. Los datos son almacenados en memorias no voltiles (ROM), no utilizan tcnicas de memoria virtual ni tiempo compartido, ambas tcnicas no pueden ser implementadas por hardware. Los sistemas de tiempo real por soft: que ejecutan tareas menos crticas y manejan tcnicas de prioridades para la asignacin de tareas. Estos sistemas tienen menos utilidades que los implementados por hard, por ejemplo no pueden utilizarse para control industrial ni en robtica. Pero s para multimedia, supervisin de controles industriales y realidad virtual.

(**)

Las interrupciones permiten que la CPU se concentre en la atencin de procesos; luego, cuando un dispositivo requiere de la atencin de la CPU, le enviar una solicitud de interrupcin. Es decir es el procedimiento inverso al polling. Pgina 12 de 164

M ultipro cesoUna nueva tendencia de los sistemas de computacin es distribuir los clculos entre varios procesadores. Existen dos esquemas bsicos para la construccin de estos sistemas de multiproceso (o distribuidos). En un sistema fuertemente acoplado los procesadores comparten la memoria y un reloj, y por lo general la comunicacin se lleva a cabo a travs de una memoria compartida. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, pues cada uno cuenta con su propia memoria local. Los procesadores se comunican a travs de distintas lneas de comunicacin, como canales de alta velocidad o lneas telefnicas. A estos sistemas generalmente se les conoce como sistemas distribuidos y en ellos los procesadores pueden variar en cuanto a tamao y funcin; pueden incluir pequeos microprocesadores, estaciones de trabajo, minicomputadores y grandes sistemas de computacin de propsito general. Algunas de las razones para construir sistemas distribuidos son las siguientes: a. Compartimiento de recursos Si varias instalaciones (con distintas capacidades) estn conectadas entre s, entonces un usuario puede utilizar desde una instalacin los recursos disponibles en otra. Por ejemplo, en la instalacin A se puede utilizar una impresora lser slo disponible en la instalacin B. Al mismo tiempo, en B es posible tener acceso a un archivo que reside en A. En general, el compartimiento de recursos en un sistema distribuido ofrece los mecanismos para compartir archivos en instalaciones remotas, procesar informacin en una base de datos distribuida, imprimir archivos en instalaciones remotas, utilizar dispositivos remotos de hardware especializado y llevar a cabo otras operaciones. b. Aceleracin de los clculos Si un clculo determinado puede dividirse en varios subclculos que se ejecuten concurrentemente, un sistema distribuido permitira distribuir los clculos entre las diversas instalaciones y tambin ejecutarlos concurrentemente. Adems, si en un momento dado una instalacin esta sobrecargada con trabajos, algunos de ellos pueden pasarse a otras instalaciones con poca carga. A este movimiento de trabajos se le llama compartimiento de cargas. c. Confiabilidad Si falla una instalacin de un sistema distribuido, las restantes pueden, potencialmente, continuar operando. Si el sistema se compone de varias instalaciones autnomas de gran tamao, la avera de una no debe afectar a las dems. Si, por otra parte, el sistema esta compuesto por varias mquinas pequeas, cada una responsable de alguna funcin indispensable del sistema, entonces un solo error puede detener el funcionamiento de todo el sistema. En general, si hay suficiente redundancia en el sistema (tanto en hardware como en datos), el sistema puede continuar su operacin, incluso cuando fallen algunas de las instalaciones. d. Comunicacin Existen varias situaciones ms donde los programas de un sistema necesitan intercambiar datos entre s. Un ejemplo son los sistemas de ventanas, ya que con frecuencia se comparten datos o se transfieren entre ventanas. Cuan do varias instalaciones estn conectadas entre s por una red de comunicaciones, los procesos en las distintas instalaciones tienen la oportunidad de intercambiar informacin.

Sistemas MultiprocesadoresUn sistema multiprocesador tiene ms de una CPU compartiendo memoria y perifricos. Las ventajas ms evidentes son mayor potencia de computacin y fiabilidad. Estos sistemas asignan una tarea especfica a cada procesador. Un procesador maestro controla el sistema, los otros esperan al maes tro o tienen tareas predefinidas. Este esquema define una relacin Pgina 13 de 164

maestro/esclavo. Pueden usarse pequeos ordenadores situados a cierta distancia de la CPU principal, trabajando en lectoras de tarjetas e impresoras en lnea y transfiriendo estos trabajos hacia y desde la CPU principal. Los sistemas de tiempo compartido se componen generalmente de un ordenador grande (principal) y un ordenador ms pequeo que slo es responsable de las entradas y salidas sobre terminales. Otra forma son las redes de ordenadores, donde se comunican muchos sistemas informticos independientes, transfirindose informacin. Sin embargo, cada sistema tiene su propio sistema operativo y trabaja independientemente. Estos esquemas se pueden clasificar en sistemas multiprocesadores simtricos, en el cual cada procesador corre una copia idntica del sistema operativo y se comunica con los dems procesadores segn sus necesidades; o multiprocesadores asimtricos, en los cuales cada procesador tiene asignado una tarea predefinida. Un procesador maestro controla el sistema. (Para mayor informacin vase captulo VIII)

Sistemas DistribuidosLa principal diferencia entre los sistemas de multiprocesadores y distribuidos, es que estos ltimos no comparten memoria ni perifricos. Cada procesador tiene su propia memoria local. Los procesadores se comunican entre si a travs de varias lneas de comunicacin, tales como lneas telefnicas o buses de alta velocidad. Dicho de otra forma, se trata de redes de computadores donde los procesadores pueden variar en tamao y funcin.

Pgina 14 de 164

CAP T UL O IIIELEMENTOS BS ICOSRecordando lo sealado en el primer captulo, los tipos de servicios de los sistemas operativos son: Ejecucin de programas. El sistema tiene que ser capaz de cargar un programa en memoria y ejecutarlo. Operaciones de entrada/salida. Como un programa no puede acceder directamente a un dispositivo de E/S el sistema operativo debe facilitarle algunos medios para realizarlo. Manipulacin del sistema de archivos. El sistema operativo debe facilitar las herramientas necesarias para que los programas puedan leer, escribir y eliminar archivos. Deteccin de errores. El sistema operativo necesita constantemente detectar posibles errores. Los errores pueden producirse en la CPU y en el hardware de la memoria, en los dispositivos de E/S o bien en el programa de usuario. Para cada tipo de error, el sistema operativo debe adoptar la iniciativa apropiada que garantice una computacin (u operacin) correcta y consistente. Los sistemas operativos con usuarios mltiples pueden mejorar su eficiencia compartiendo entre ellos los recursos del computador. Esto implica: Asignacin de recursos. Cuando hay mltiples usuarios o mltiples trabajos ejecutndose al mismo tiempo, hay que asignar recursos a cada uno de ellos. El sistema operativo gestiona muchos tipos de recursos diferentes. Contabilidad. Se desea controlar los pasos de los usuarios que utilizan el computador, en qu medida lo hacen y qu tipo de recursos emplean. Proteccin. Cuando hay muchos trabajos ejecutndose al mismo tiempo no debe ser posible que un trabajo interfiera sobre otro. Los sistemas operativos prestan sus servicios de muchas maneras. Dos mtodos bsicos de prestacin de servicios son las llamadas al sistema y los programas de sistemas.

Llama das A l S iste maConstituyen una interfaz entre los programas que se estn ejecutando y el sistema operativo. Estas llamadas se implementan generalmente por instrucciones en lenguaje de mquina. Se pueden agrupar en tres categoras: control de procesos o de trabajos, manipulacin de dispositivos y archivos, y mantenimiento de informacin. Control de procesos y de trabajos: Finalizacin (normal o anormal). Carga r o ejecutar otro programa. Crear nuevos procesos, terminar procesos. Obtener atributos de un proceso y establecer atributos de un proceso. Esperar un tiempo. Esperar un suceso.

Manipulacin de archivos: Crear y borrar un archivo. Abrir y cerrar un arc hivo. Leer, escribir y reposicionar un archivo. Obtener atributos de un archivo y establecer atributos de un archivo. Pgina 15 de 164

Manipulacin de dispositivos: Solicitar dispositivo y liberar dispositivo. Leer, escribir y reposicionar. Obtener atributos de dispositivos y establecer atributos de dispositivos. Mantenimiento de informacin: Obtener y/o establecer hora o fecha. Obtener y/o modificar datos del sistema. Obtener y/o establecer atributos de proceso, archivos o dispositivos.

P rogramas D el S istemaSon un grupo de programas que resuelven problemas corrientes y ofrecen un entorno ms adecuado para el desarrollo y la ejecucin de programas. Se pueden dividir en las siguientes categoras: Manipulacin de archivos: Estos programas crean, borran, copian, renombran, imprimen, listan y generalmente manejan archivos y directorios. Informacin de estados: Usados para pedir la fecha, la hora, la cantidad de memoria disponible o el espacio en disco. Modificacin de archivos: Editores de texto usados para crear y modificar el contenido de un archivo. Soporte al lenguaje de programacin: Compiladores, intrpretes y ensambladores que dan soporte a lenguajes de alto nivel. Programas de aplicacin: Programas que son tiles para resolver problemas corrientes, como editores de texto, programas grficos (o de diseo), calculadoras, etc. Uno de los programas ms importantes en un sistema operativo es el intrprete de comandos, ste se ejecuta al iniciar el sistema operativo, su funcin es sencilla: captar un comando dictado por el usuario, interpretarlo y ejecutarlo. Por ejemplo el comando Delete archivo utilizado por DOS; Para que este comando se pueda ejecutar el intrprete de comandos debe contener el programa adecuado que elimine el archivo del disco rgido.

P rocesamiento C oncurrenteLa CPU ejecuta una elevada cantidad de programas y su principal ocupacin es la ejecucin de los programas de usuario. Este proceso de ejecucin de procesos se realiza a travs de procesos. Un proceso es la unidad de trabajo dentro de un sistema, el cual consiste en un conjunto de procesos: los procesos del sistema operativo ejecutan cdigo del sistema y los procesos de los usuarios ejecutan cdigo de los usuarios. En potencia, todos estos procesos se pueden ejecutar concurrentemente y la CPU o varias de ellas se multiplexan entre ellos. Al conmutar la CPU entre procesos, el sistema operativo puede hacer ms productivo al computador.

Pgina 16 de 164

ProcesosUn proceso es cualquier tipo de ac tividad que demande de la atencin de utilizacin de la CPU de una mquina. Quedan contenidos en este concepto los trabajos de ejecucin por lotes, los programas de usuario o tareas y el apoyo de actividades internas propias del sistema. Distincin entre programas y procesos: Cada invocacin a un programa genera un proceso distinto e independiente. Los procesos compiten por el uso de los recursos del sistema, de manera que se necesitan herramientas que permitan la sincronizacin y la comunicacin entre los mismos. A veces, dos o ms procesos cooperan para alguna operacin comn. En cualquier instante, slo un proceso estar en ejecucin mientras que los otros estarn suspendidos, preparados o esperando a que ocurra algn evento. La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutndose) es obvia, pero crucial para atender el funcionamiento de los sistemas operativos. Imagnese un mecnico de automviles en un taller donde se reparan vehculos con averas complejas en las que se hace necesario consultar el manual de reparaciones de cada modelo, que contiene instrucciones para todas las posibles averas. Adems, se permiten reparaciones rpidas a las que se les da mayor prioridad que a las mencionadas anteriormente. Existe en el taller un almacn de repuestos de todo tipo y herramientas suficientes para las reparaciones. Comparando esta situacin con una computadora, se pueden establecer las siguientes analogas: El mecnico sera el procesador que va a realizar el trabajo. El manual de cada reparacin sera el programa. Las herramientas seran los recursos disponibles. Las piezas de recambio seran los datos. La actividad de utilizar las herramientas para desmontar las piezas defectuosas sustituyndolas por otras nuevas siguiendo las instrucciones del manual equivaldra al proceso.

Supngase que en un determinado momento el mecnico est realizando un reparacin compleja (de las que llevan tiempo) y aparece un vehculo que solicita una reparacin de las rpidas (ha aparecido una interrupcin). El mecnico suspende momentneamente la reparacin compleja anotando en qu situacin se queda dicha reparacin y qu operacin estaba realizando es este momento (guarda el estado del proceso). Asimismo, sustituye el manual que estaba utilizando por el de la reparacin rpida que se dispone a realizar (cambio de programa). Comienza la nueva reparacin (cambio de proceso), en la que las herramientas no sern las mismas que antes (distintos recursos); las indicaciones de usuario, las piezas de repuesto (datos) y las indicaciones del manual (programa) llevarn a feliz trmino la reparacin para que el mecnico vuelva a continuacin a la reparacin inicial. Con este ejemplo se desea resaltar que un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.

Relacin Entre Los ProcesosEl sistema operativo debe suministrar los servicios necesarios que permitan: a) b) c) Ejecucin concurrente de los procesos. Sincronizacin entre procesos. Comunicacin entre procesos.

Adems, debe disponer de algoritmos de gestin y planificacin de procesos que se encarguen de: a) b) Decidir qu proceso se ejecutar o tomar el procesador. Llevar cuenta de los estados de los procesos, sus prioridades y toda la informacin relevante acerca de ellos.

Dependiendo de la interaccin entre los procesos, estos se clasifican en: Pgina 17 de 164

a) b) c)

Independientes: No se comunican o sincronizan entre ellos. En un sistema con un slo procesador, los procesos independientes no existen (en sentido estricto). Cooperativos: Se comunican y sincronizan sus actividades para realizar una labor comn. Competitivos: Todos compiten por los recursos del computador. El acceso ordenado a estos necesita de la sincronizacin y, a veces, tambin de la comunicacin entre los procesos.

Especificacin De Los Procesos Implcitos: Procesos generados y eliminados por el SO. Explcitos: Definidos por el usuario realizando llamadas al sistema. Proceso padre: Que crea otro proceso. Puede tener varios hijos. Proceso hijo: Procesos creados por otro. Slo pueden tener un padre.

El sistema operativo hace que los argumentos y variables locales del procedimiento o funcin que da lugar al proceso se asocien a ste y no al cdigo en el que aparecen. El sistema crea para cada proceso un conjunto independiente de variables locales, parmetros formales y llamadas a los procedimientos y a las funciones.

Estados De Los ProcesosTodo proceso, desde que se crea hasta que se destruye, pasa a travs de una serie de estados discretos. En forma general, los estados de un proceso se pueden clasificar en: a) Activo: Proceso que est ejecutndose en un instante dado. b) Preparado: Listo para ejecutarse, esperando a que el procesador quede libre. c) Bloqueado o suspendido: Esperando a que se cumpla alguna condicin (E/S, seal, etc.). d) Muerto: Ha terminado su ejecucin o el sistema operativo ha detectado un error fatal. e) Nonato: Existe, pero todava no es conocido por el sistema operativo f) Estado global del sistema: Conjunto de recursos y procesos existentes con sus estados correspondientes en un instante determinado. El sistema operativo lo cambia en respuesta a eventos externos o internos. El sistema operativo dispone de algoritmos de planificacin y de gestin de los procesos y de los recursos de modo que, considerando como entradas los eventos y el estado global del sistema, genera un nuevo estado global. Un gran nmero de autores, considera que los estados ms importantes son: a. b. Estados activos. Un proceso que est en un estado activo puede competir por recursos. Estados inactivos o suspendidos. El sistema no les permite (de manera momentnea) que compitan por recursos. Estados externos o intermedios. Son estados especiales que se dan durante la creacin y destruccin de los procesos.

c.

Estados Activos Estado RUNNING o EN EJECUCIN Se dice que un proceso est en estado RUNNING (en ejecucin) cuando tiene el control de la CPU (es decir, cuando la CPU est ejecutando el programa correspondiente a ese proceso). Se dice ent onces que ese proceso es el proceso en curso del procesador.

Pgina 18 de 164

Estado READY o EJECUTABLE Se dice que un proceso est en estado READY (ejecutable) cuando lo nico que necesita para estar en ejecucin es que se le conceda tiempo de CPU. Estado BLOCKED o EN ESPERA Un proceso est en estado BLOCKED (bloqueado) cuando est a la espera de que se produzca una determinada circunstancia (evento); por ejemplo, un proceso est bloqueado cuando est a la espera de que se complete la operacin de Entrada/Salida que ha solicitado. Estados Suspendidos Tanto si un proceso est ejecutndose (RUNNING) y es suspendido a peticin suya, o a peticin de otro proceso, como si el proceso est en estado ejecutable (READY), al ser suspendido se provoca una transicin de estado que lo deja en suspendido ejecutable o suspended-ready. Sin embargo, si el proceso estaba previamente bloqueado (BLOCKED), la transicin de estado har que el proceso pase a estar en un nuevo estado, que se llama suspendido bloqueado o suspended-blocked. Estados Intermedios, Externos o Especiales En algunos sistemas existen otros estados que se denominan externos y que se dan cuando el proceso se crea antes de que el programa correspondiente se cargue en memoria; o, por otro lado, cuando el proceso se destruye despus de que el programa se haya sacado de memoria. Estos estados son: WAIT (o ESPERA, o INICIAL, ...) END (o FIN, o FINAL) El estado de espera (WAIT) es aqul en el que est el proceso cuando se crea (es decir, se le asignan dispositivos, se prepara su entorno...), pero an no est fsicamente en memoria. Cuando el proceso termina, ocurre la situacin contraria: el proceso queda en estado END hasta que se ha eliminado cualquier rastro del proceso (y de sus descendientes, si los hubiera). Transiciones entre los estados Distribuidor (dispatcher): Mdulo del sistema operativo que se encarga de activar los procesos que estn en el estado preparado. Interrupcin: Hace que la tarea que est activa deje de ejecutarse en favor del sistema operativo que decidir cul de los procesos preparados pasarn a estado activo. Planificador (scheduler): Hace que el proceso activo vuelva a preparado sin que medie una llamada al sistema (por fin de tiempo asignado o proceso con mayor prioridad preparado). Transiciones:DE nonato preparado Activo activo nonato preparado bloqueado Activo preparado bloqueado A preparado activo activo preparado bloqueado bloqueado preparado muerto MOTIVOS Al crearse Activado por el distribuidor o por el planificador Interrupcin Solicita un recurso necesario para continuar (ej.: E/S) Necesita que tenga lugar un evento Accin determinada, como una llamada al sistema del proceso activo Tiene lugar un evento que estaba esperando Finaliza Eliminado por otro proceso

Pgina 19 de 164

Los sistemas de gestin de procesos deben tener la capacidad de realizar ciertas operaciones ms o menos complejas sobre procesos, como son: conmutacin de contexto, bloqueo, desbloqueo, suspensin, reanudacin, creacin, destruccin, cambio de prioridad, etc. Estas operaciones son las que provocan los cambios o transiciones de estado en los procesos. Es posible representar nuevamente estos estados y las transiciones entre ellos con el siguiente grfico:

A continuacin se explicarn detalladamente estas ltimas transiciones de estados: Terminate (terminar) La destruccin de un proceso implica su eliminacin del sistema. Los recursos que tena asignados se liberan, devolvindose al sistema, su PCB se borra y se elimina cualquier rastro suyo de las tablas y las listas del sistema. Por esta transicin el proceso queda fuera de memoria, pero todava esperando una desactivacin total, es decir, todava sin desprenderse de todas sus referencias, asignaciones, entorno, etc. En este caso la transicin que se provoca en el proceso se denota como sigue: Terminate (id-proceso): RUNNING END Activate (activar) Cualquier proceso de los existentes puede generar uno o varios proc esos nuevos. El proceso generador se llama padre y los generados procesos hijo, siendo necesario un nico proceso para crear otro. Esto(*)

(*)

Se puede destruir un proceso en cualquier estado. Lo explicado aqu sera la destruccin de un proceso en ejecucin. Pgina 20 de 164

conduce a una estructura de procesos jerrquica. Cuando la creacin del descriptor del proceso se realiza antes de la carga del programa correspondiente, dicho proceso se encuentra en estado inicial. Tras la carga del programa, dado que lo nico que necesita dicho proceso para ejecutarse es el control del procesador, su descriptor pasar a la lista-ready y se realizar sobr e l la operacin de activacin, que provocar en l una transicin de estado por la cual quedar en estado ejecutable. Esta transicin se puede denotar de la forma: Activate (id-proceso): WAIT READY Dispatch (despachar) Cuando el proceso en ejecucin, por alguna causa, deja de estarlo, la CPU quedar libre y, lgicamente, debe ser asignada a otro proceso, que ser aquel cuyo descriptor est a la cabecera de la lista -ready. El encargado de realizar esta operacin es el dispatcher, o planificador de baj o nivel, y es una operacin de "conmutacin de contexto" (o dispatching, o cesin del control de CPU) que provocar que dicho proceso, en estado READY, pase a estado RUNNING, mediante una transicin de estado que se denomina dispatch y que se formula: Dispatch (id -proceso): READY URNG Time run out (tiempo excedido) Para evitar que un proceso monopolice el procesador, bien de forma accidental o malintencionadamente, el sistema operativo utiliza un temporizador para controlar que cada proceso use la CPU durante un intervalo de tiempo o quantum dado. As, si el proceso en curso no cede voluntariamente el control de la CPU antes de expira dicho tiempo, cuando el temporizador queda a cero se genera una interrupcin hardware que se suele denominar interrupcin de reloj, por la cual toma el control el sistema operativo y provoca una transicin de estado sobre el proceso en ejecucin (RUNNING), dejndolo en estado ejecutable (READY). Esta transicin de estado se puede denotar de la forma siguiente: Time-run-out (id-proceso): RUNNING READY Despus de sta transicin de estado, la CPU queda libre, y vuelve a repetirse el ciclo, tomando el control del dispatcher y realizando, si es posible, una transicin dispatch. Block (bloquear) Si antes de que se le termine el tiempo concedido a un proceso que est en ejecucin (RUNNING) necesita que se cumplan "ciertas condiciones" para poder proseguir (por ejemplo, necesita realizar una operacin de Entrada/Salida para obtener datos), el propio proceso provoca una interrupcin (por ejemplo, de llamada al Supervisor) y cede el control de la CPU, quedando pendiente de que se complete el servicio requerido. Esta interrupcin provoca en el proceso una transicin de estado por la cual el proceso pasar de estar en ejecucin (RUNNING) a estado bloqueado (BLOCKED). Esta transicin se denomina block y se formula del modo siguiente: Block (id-proceso): RUNNING BLOCKED La CPU, entonces, queda libre y pasar el control al dispatcher. Wake -up (despertar) Cuando se den las condiciones que est esperando un proceso bloqueado (por ejemplo, que se complete la operacin de E/S por la cual ha quedado en espera), se producir una nueva interrupcin (esta vez, de E/S) por la cual el sistema operat ivo tomar el control y provocar en el proceso correspondiente una transicin de estado por la cual pasar de estar bloqueado a estar nuevamente ejecutable (READY). Esta transicin se llama wake-up y se representa como: W ak e-up (id-proceso): BLOCKED READY Pgina 21 de 164

Observaciones El nico elemento que puede hacer que un proceso quede en estado RUNNING es el dispatcher. Como se ha podido ver, la nica transicin de estado que se provoca a peticin del propio proceso es la block; las dems las provocan agentes externos al proceso. Normalmente, la operacin de cambio de prioridad de un proceso no implica ms que el cambio del valor de la prioridad en su descriptor o PCB , y si la lista de ejecutables est ordenada por dicho criterio, su reorganizacin. Sin embargo, si la planificacin de la CPU se (*) hace por prioridad con requisamiento tambin habr que estudiar si el proceso en curso sigue siendo el ms adecuado para su ejecucin.

Dos operaciones importantes son las de suspensin y reanudacin: Un proceso suspendido slo puede recontinuar (reactivarse) cuando otro realiza una operacin de reactivacin sobre l; esta operacin consiste slo en relanzar el proceso suspendido desde el punto en que se suspendi. La suspensin es un estado que suele dur ar breves instantes de tiempo y es una operacin que realiza el sistema, a peticin del propio proceso o de otros procesos (si se est en un sistema multiprogramado). Bsicamente, la suspensin tiene tres aplicaciones: 1. Si se sospecha una deficiencia en el sistema, en lugar de abortar los procesos, se puede proceder a su suspensin, hasta que: 2. Se subsanen los fallos del sistema Se tenga que "tirar" el sistema abajo

Un proceso puede ser suspendido hasta que se comprueben los resultados intermedios, de modo que: Si son correctos, se reactiva el proceso Si no lo son, se aborta

3.

La aplicacin ms extendida e importante es que la suspensin es una forma de alivio de (** ) fluctuaciones de carga del sistema .

La suspensin de un proceso implica la liberacin de los recursos asignados, pero siempre dependiendo de su naturaleza. Es decir, el recurso de memoria es bsico para el sistema y es liberado inmediatamente, pero recursos como unidades de cinta o perifricos poco usados no tienen que ser liberados instantneamente si la suspensin es prolongada, pero esto no es lo normal, ya que suele durar breves instantes. La operacin de suspensin tambin provoca transiciones de estado, que se analizan a continuacin: Si un proceso en ejecucin es suspendido a peticin de l mismo o de otro, se producir la transicin: Suspend (id -proceso): RUNNING SUSPENDED-READY

(*)

Se produce un cambio de prioridad en la lista-ready, y si la del proceso que se est ejecutando es menor que la del proceso que ahora se encuentra en la cabeza de la lista, se le requisa la CPU y se le asigna al de ms prioridad. Hay situaciones de thrashing (o hiperpaginacin) en las que la tasa de paginacin sube mucho y puede causar una ralentizacin muy grande del sistema. Un modo de solucionar este problema es suspendiendo los procesos menos prioritarios (de menor a mayor prioridad), hasta que la paginacin vuelva a ser normal, y luego reactivndolas progresivamente (de mayor a menor prioridad). Pgina 22 de 164

(**)

Cuando el proceso suspendido est en estado ejecutable, la transicin provocada se denota: Suspend (id -proceso): READY SUSPENDED-READY Si se suspende un proceso bloqueado se dar en l la transicin que se puede formalizar as: Suspend (id -proceso): BLOCKED SUSPENDED-BLOCKED. Se podra argumentar que en lugar de suspender un proceso bloqueado es mejor esperar hasta que se complete la operacin de E/S o se d la circunstancia por la que estaba esperando y que el proceso pase a ejecutable para, inmediatamente, suspenderlo. Desafortunadamente, puede que nunca tenga lugar sta consumacin o que se retrase mucho, y la suspensin es una operacin prioritaria. Lgicamente, puede ocurrir que, mientras un proceso est en estado SUSPENDED-BLOCKED, se cumplan las condiciones que estaba esperando, por las que estaba en estado BLOCKED. Cuando ocurre esto, el proceso pasa al estado SUSPENDED-READY (lgicamente, ya que si no estuviera suspendido debera estar READY). La transicin que realiza este cambio es la completion (realizacin completacin) y se denota como: Completion (id-proceso): SUSPENDED-BLOCKED SUSPENDED-READY En cuanto a la reactivacin, si se realiza una operacin de activacin sobre un proceso en estado suspendido ejecutable (SUSPENDED-READY), se provoca una transicin de estado, resume (continuar), por la que pasar a estado ejecutable (READY). Resume (id -proceso): SUSPENDED-READY READY Si la transicin se encuentra suspendida bloqueada, resume la dejar en estado BLOCK. Resume (id -proceso): SUSPENDED-BLOCKED BLOCKED Con estos nuevos estados, la representacin anterior se podra dejar finalmente como:

Pgina 23 de 164

El Bloque De Control D e Procesos (PCB, Process Control Block )Cuando se somete un determinado trabajo para su ejecucin y es aceptado, se carga el programa correspondiente en memoria y, adems, se crea el descriptor de proceso correspondiente (PCB ) que contiene: El estado actual (status): READY, RUNNING... El entorno voltil, que es el subconjunto de elementos compartidos en el sistema susceptibles de cambios con la ejecucin de los procesos y que son accesibles desde ellos.

La in formacin que contienen estos elementos se llama informacin de rearranque y tambin se define como el bloque de contexto o estado del procesador para el proceso. La informacin de rearranque contiene: Identificador nico de proceso (pid). Estado del proc eso (activo, preparado, bloqueado). Prioridad. Estado hardware (contador de programa, cdigos de condicin, punteros de pila, etc.). Informacin para gestionar la memoria (punteros, tablas, registros, etc.). Informacin de contabilidad y planificacin. Etc.

El sistema operativo mantiene listas de PCB para cada uno de los estados del sistema (preparado, activo, etc.). Cada proceso pertenece a una nica lista. El planificador se encarga de gestionar el paso de los procesos de una lista a otra. Puede haber una lista de estados suspendidos ligada en exclusiva a un dispositivo o evento. De igual forma existe un Bloque de Control de Sistema (SCB; System Control Block), con unos objetivos globales similares al anterior y entre los que se encuentra el enlazado de los bloques de control de los procesos existentes en el sistema.

A continuacin se ver cmo se realiza el cambio de un proceso a otro, para lo cual se supondr una computadora con un solo procesador (slo un proceso puede estar ejecutndose en cada momento), y existen varios procesos activos compitiendo por el acceso al procesador (se est ejecutando un proceso A y el ncleo del sistema operativo decide que debe ejecutarse en un instante dado otro proceso B). Se supondr que los programas de los procesos A y B estn ambos en memoria principal. Las acciones que realiza el sistema operativo para cambiar el proceso A por el B se denominan cambio de proceso, y son las siguientes: Deja de ejecutar el proceso en curso (A), cedindose el control al ncleo del sistema operativo, y aparece lo que se denomina un cambio de contexto pasando del modo usuario al modo supervisor. Antes de realizarse el cambio de contexto se salva el estado del proceso A para su posterior vuelta al punto donde fue interrumpido. El ncleo estudia si el proceso B est preparado para su ejecucin y, si es as, realiza el cambio de contexto correspondiente pasando del modo supervisor al modo usuario. A continuacin repone el estado del proceso B ( en caso de haber sido interrumpido con anterioridad) y, por ltimo, pone en ejecucin el proceso B.

El cambio de contexto se producir en caso de ejecucin de una instruccin privilegiada, una llamada al sistema operativo o una interrupcin, es decir, siempre que se requiera la atencin de algn servicio del sistema operativo. En el cambio de contexto, el ncleo salva el estado del proceso que se estaba Pgina 24 de 164

ejecutando en su bloque de control y restaura el proceso de va a ejecutarse a partir de los datos almacenados en su bloque de control.

Procesos y HebrasEs posible concebir el proceso como una entidad formada por una o ms unidades de ejecucin denominadas hebras (threads) o procesos primitivos y un conjunto de recursos asociados. Cada hebra posee su propio vector de estado. No pueden existir fuera de un proceso y slo pueden pertenecer a uno de ellos. Los recursos no estn asociados a las hebras, sino al proceso.

OperacionesTodos los procesos tienen una serie de operaciones asociadas a ellos, las cuales se indican en la siguiente tabla junto a sus caractersticas o tareas asociadas.OPERACIN TAREA Definir nombre del proceso. Insertarlo en la lista de procesos del sistema. Determinar la prioridad inicial del proceso. Crear el bloque de control del proceso. Asignar recursos iniciales al proceso. Eliminarlo de la lista de procesos. Quitar la asignacin de recursos.

Creacin de un proceso

Destruccin de un proceso

Suspensin/Reanudacin Sacar momentneamente al proceso de la CPU. de un Proceso Reactivar la ejecucin del proceso. Bloqueo de un proceso Dejar "parado" el proceso hasta que ocurra algn evento.

Cada vez que se crea un proceso el sistema operativo debe considerar algn mecanismo de jerarqua para determinar la prioridad inicial del proceso. As, un modelo jerrquico de prioridades se ilustra a la derecha y en l se muestra un nmero indicando el orden de creacin; las prioridades de atencin van de la cspide hacia abajo y, para niveles iguales , va de izquierda a derecha. Esta forma de creacin de procesos produce una estructura jerrquica de procesos, en la cual cada nodo tiene un solo padre, pero cada padre puede tener varios hijos; por lo tanto se trata de un rbol n-ario. En general los procesos pueden clasificarse en determinsticos, cuando la secuencia de instrucciones ejecutadas depende de la entrada; no determinsticos, cuando la salida del proceso esta determinada por la entrada; secuenciales, cuando las instrucciones se ejecutan una despus de otra; y paralelos, cuando pueden ejecutarse ms de una instruccin al mismo tiempo.

El Planificador De ProcesosSoftware del sistema operativo asigna los recursos de un sistema entre los procesos que los solicitan. Planificador a largo plazo (PLP): O planificador de trabajos, determina qu trabajos se admiten en el sistema para su procesamiento y son cargados en la memoria disponible. Debe realizar una mezcla adecuada de trabajos destinados al procesador y trabajos destinados al sistema de E/S. Lo ms usual es definir una funcin de prioridad y asignarle a cada programa un valor para la misma que se actualiza en instantes determinados por el PLP. Existen sistemas que no tienen algoritmo PLP o este es mnimo, como algunos sistemas de tiempo compartido que se limitan a poner en el estado de preparado cualquier proceso nuevo. En general, el PLP slo existe en sistemas que admiten procesamiento por lotes. Pgina 25 de 164

Planificador a corto plazo (PCP): O planificador del procesador, gestiona los procesos entre dos instantes de gestin del PLP. Selecciona al proceso que pasar al estado activo de entre todos los preparados. Su elevada frecuencia de uso hace que el algoritmo suela ser sencillo (no calcula prioridades). Es invocado siempre que se origina un cambio de estado del sistema por un evento: a) Seales del reloj del sistema. b) Interrupciones. c) Finalizacin de operaciones de E/S. d) Llamadas al sistema operativo e) Envo y recepcin de seales. f) Activacin de programas interactivos. Distribuidor (dispatcher): Parte del PCP encargada en exclusiva de realizar las gestiones oportunas para pasar el procesador a la tarea seleccionada para su ejecucin (en algunos sistemas se denomina distribuidor al PCP). Planificador a medio plazo (PMP): (En algunos sistemas) se encarga del intercambio ( swapping ) o proceso de salvar una tarea suspendida en la memoria secundaria para: a) b) Liberar memoria principal. Separar los procesos destinados al procesador de los destinados al sistema de E/S.

Finalmente, tambin se puede definir la planificacin de la CPU como un ciclo de rfagas de CPU y E/S. La ejecucin de un proceso consiste en un ciclo de ejecucin de CPU y espera de E/S. La ejecucin de un proceso comienza con una rfaga de CPU, a sta el siguen rfagas de CPU y E/S. La ltima rfaga de CPU terminar con solicitud al sistema de terminacin ejecucin. Un programa limitado por E/S tendr muc has rfagas de CPU breves. Un programa limitado por la CPU tendr pocas rfagas de CPU muy largas.

Criterios De PerformanceEn general se utilizan varios criterios para medir el rendimiento de los algoritmos de planificacin, entre los cuales se pueden encontrar: a) b) c) d) e) Eficacia: Porcentaje del tiempo medio de utilizacin. Rendimiento (throughput): Nmero de procesos completados por unidad de tiempo. Tiempo de regreso (turnaround): Intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que se completa por el sistema. Tiempo de espera: Tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar la medida ms adecuada de la eficiencia del sistema. Tiempo de respuesta a un evento: Intervalo de tiempo que transcurre desde que se seala un evento hasta que se ejecuta la primera instruccin.

Entre los objetivos de la planificacin se puede encontrar: Minimizar el tiempo medio de espera o de retorno, maximizar el uso de la CPU, mantener el tiempo de espera por debajo de un cierto valor mximo, etc. En cualquiera de los casos, se pueden considerar las madias, valores extremos o varianzas de esas magnitudes. En prximo captulo se abordarn algunas planificaciones con mayor detalle.

Conce ptos Bsicos D e U n S istema O perat ivoLos sistemas operativos desde sus inicios han sido capaces (o, al menos, eso es lo que se ha intentado) de realizar ms de un proceso en forma simultnea. Es muy importante para la comprensin real del mecanismo de funcionamiento de un sistema operativo el tener siempre presente que es posible realizar dos o ms procesos a la vez o en una secuencia de atencin extremadamente veloz; tanto as, que una atencin de varios procesos en forma secuencial se hace transparente al usuario. Por ejemplo: En una red de computadores parece que todos estuviesen trabajando en forma independiente, a un mismo Pgina 26 de 164

tiempo y en distintas mquinas; sin embargo, para el computador servidor de la red es impos ible atender dos servicios de escritura en disco a un mismo tiempo, an cuando eso es algo muy difcil de notar. Para la ejecucin un programa es necesario realizar una serie de pasos: 1. Buscar la instruccin que se va a ejecutar. 2. Contabilizar la instruccin para determinar en que momento se ejecuta. 3. Ejecutar la instruccin. La secuencia de pasos dada se conoce como ciclo Buscar-Ejecutar (fetch -execute), el cual se muestra a continuacin.

Repeat { IR Mem(PC) PC PC + 1 Ejecutar(IR) } Until (IR = Instruccin de alto) Por otra parte, el manejo de la unidad de entrada y salida (E/S) es importante puesto que es a travs de ella que el computador comunica, enva y recibe informacin. Existen varios tipos de dispositivos de E/S, los cuales poseen una velocidad generalmente inferior a la CPU y que deben ser administrados por ella. Adems, debido a la diversidad de dichos dispositivos se hace necesario ejecutar diversas acciones, dependiendo del dispositivo, para lograr realizar algn proceso de E/S. Pero en trminos generales, los procesos que se realizan (en forma simultnea) son los siguientes: CPU { Wait(Ready = 1) Ready 0 Copiar comando a CB, //CB = Command Buffer . Busy 1 } DISPOSITIVOS { Wait(Busy = 1) Busy 0 Ejecutar comando Indicador en CB Ready 1 }

Modelo Sencillo De Un Sistema OperativoSupuestos: 1. Se trata de un microsistema conformado por una CPU, una impresora (PR) y un lector de archivos (RF). Existen tres estados pos