Sei sulla pagina 1di 165

M ANUAL DE SIST EM AS OPERAT IVOS I

Pgina 1 de 164

DESC R IPC IN DEL C ONTE NID O


El 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 CE
INTRODUCCIN ............................................................................................ 7
Qu Es Un Sistema Operativo? ............................................................................................... 8
El Sistema Operativo Como Mquina Virtual...........................................................................................................8 El Sistema Operativo Como Administrador De Recursos ......................................................................................9

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

SERVICIOS DE LOS SISTEMAS OPERATIVOS........................................11


Monoprogramacin................................................................................................................ 11 Multiprogramacin ................................................................................................................ 11 Tiempo Compartido................................................................................................................ 12 Sistemas De Tiempo Real........................................................................................................ 12 Multiproceso.......................................................................................................................... 13
Sistemas Multiprocesadores .....................................................................................................................................13 Sistemas Distribuidos .................................................................................................................................................14

ELEMENTOS BSICOS ........................................................................... ....15


Llamadas Al Sistema .............................................................................................................. 15 Programas Del Sistema .......................................................................................................... 16 Procesamiento Concurrente.................................................................................................... 16
Procesos ......................................................................................................................................................................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........................................................................... 26


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

Administracin De Datos........................................................................................................ 33
Archivos ........................................................................................................................................................................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............................................. 40


Estructura 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 .......................................................................48


Algoritmo 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............................................................52
La 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 ........................................................................................................ 60
Concepto De Localidad .............................................................................................................................................60 Conjunto De Trabajo..................................................................................................................................................61

Algoritmos De Reemplazo....................................................................................................... 62
Algoritmo 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 ......................................................................................... 65
Secciones Crticas................................................................................................................... 66
Operaciones 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 ................................................................................................ 75


Tcnicas 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)...................................................................................................... 83
Prevencin De Interbloqueos ...................................................................................................................................83 Evitacin De Los Interbloqueos ................................................................................................................................84 Deteccin De Los Interbloqueos ..............................................................................................................................85 Recuperacin De Interbloqueos ...............................................................................................................................86

ASPECTOS DE SEGURIDAD .......................................................................88


Tcnicas De Proteccin .......................................................................................................... 88
Nomina 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.................................................................................... 91


Concepto 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.........................................................97
Estructuras De Sistemas Operativos (Diseos) ........................................................................ 97
Sistemas 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.............................................................. 98


Tiempo 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 .......................................... 100


Sistemas Ligeramente Acoplados v/s Sistemas Rgidamente Acoplados ..................................................... 100 Maestro/Satlite ....................................................................................................................................................... 101 Ejecutivos Separados ............................................................................................................................................. 101 Simtrico ................................................................................................................................................................... 101

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

ALGUNOS SISTEMAS OPERATIVOS ...................................................... 102


Sistema Operativo Unix ........................................................................................................ 102
Control 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 ........................................................................................ 108


Netware 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............................................................................................ 113


Otras Caractersticas .............................................................................................................................................. 113 Control Y Sincronizacin De Procesos ................................................................................................................ 114 Gestin De Memoria ............................................................................................................................................... 114

Sistema Operativo Windows 2000 ......................................................................................... 116


Instalacin 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 ...................................................................................................... 121


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

PREGUNTAS Y PROBLEMAS RESUELTOS............................................ 126


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

Unidades V & VI:................................................................................................................. 137


Preguntas De Seleccin Mltiple.......................................................................................................................... 137 Preguntas de trminos pareados .......................................................................................................................... 141 Preguntas De Desarrollo ........................................................................................................................................ 142 Problemas ................................................................................................................................................................. 143

Unidades VII, VIII & IX: ..................................................................................................... 145


Preguntas De Seleccin Mltiple.......................................................................................................................... 145 Preguntas De Trminos Pareados ....................................................................................................................... 148 Preguntas De Desarrollo ........................................................................................................................................ 149

Respuestas y Soluciones: ...................................................................................................... 150


Preguntas 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 I
INT RODUCC IN
Todo 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 Virtual


Un 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 Recursos


La 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 istrico
En 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 II
SERV ICIOS DE L OS S ISTEM AS OPERATIVOS
M onoprogramacin
Se 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 cin


En 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 ido


El 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 eal


Se 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 ceso
Una 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 Multiprocesadores
Un 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 Distribuidos
La 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 III
ELEMENTOS BS ICOS
Recordando 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 ma


Constituyen 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 istema
Son 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 oncurrente
La 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

Procesos
Un 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 Procesos


El 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 Procesos


Todo 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 Hebras
Es 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.

Operaciones
Todos 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 Procesos
Software 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 Performance
En 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 ivo


Los 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 Operativo


Supuestos: 1. Se trata de un microsistema conformado por una CPU, una impresora (PR) y un lector de archivos (RF). Existen tres estados posibles: Ocupado, la CPU tiene un trabajo en proceso. Listo, la CPU esta lista para recepcionar un proceso. Ocioso, la CPU esta esperando la ocurrencia de algn evento. 3. 4. 5. 6. Slo puede existir un proceso en ejecucin a la vez. PR y RF dependen adems de si existe un comando pendiente (COM). RF depende tambin de existe al menos un archivo para leer (OKF). Los perifricos PR y RF tienen botones inicio/trmino; cuando inicio esta apagado el dispositivo se encuentra en estado ocioso. Pgina 27 de 164

2.

De esta forma la estrategia de proceso del programa administrativo ejecutado por la CPU es: Repeat Leer Archivo Interpretar archivo Cargar en memo ria Ejecutar Imprimir resultados Until (se apaga la mquina)

Las tablas de estados posibles para PR y RF son:


PR 0 1 2 3 Inicio 0 0 1 1 COM 0 1 0 1 Estado Ocioso Ocioso Listo Ocupado RF 0 1 2 3 4 5 6 7 Inicio 0 0 0 0 1 1 1 1 OkFile 0 0 1 1 0 0 1 1 COM 0 1 0 1 0 1 0 1 Estado Ocioso Ocioso Ocioso Ocioso Ocioso Ocioso Listo Ocup ado

Los diagramas de transicin de estados de los dispositivos son: Diagrama de transiciones de la impresora Diagrama de transiciones del lector de archivos

Finalmente, los algoritmos de control de PR y RF son: PR_Control (Salida_Inicial, lc) { Salida Salida_Inicial While (lc <> 0) { Wait (PR=Lista) Enviar comando de impresin-lnea lc lc - 1 Salida Proxima(Salida) } } RF_Control (Entrada_Inicial, fc) { Entrada Entrada_Inicial fc 0 Wait (RF=Lista) Repeat Enviar comando de lectura -archivo fc fc + 1 Entrada Proxima(Entrada) Wait (RF <> Ocupada) Until (RF=Ociosa) }

Pgina 28 de 164

Interrupciones: La Base De Los Sistemas Operativos Modernos


Para que las ope raciones de la CPU y de E/S puedan superponerse deben contar con un mecanismo que permita la desincronizacin y la resincronizacin de la operacin. Puede usarse cualquiera de los mtodos siguientes (algunos sistemas emplean ambos): Transferencia de datos dirigida por interrupciones. Transferencia de datos por acceso directo a memoria (DMA, Direct Memory Access).

En contraste con los sistemas ms antiguos, la transferencia de datos se efectuaba bajo el control de la CPU. Esta tena que ejecutar, o por lo menos supervisar, la transferencia de datos, lo que no permita hacer simultneas las operaciones de la CPU y de E/S. Como ejemplo, considere los siguientes pasos como necesarios para imprimir datos de la memoria: 1. 2. 3. 4. 5. Verificar si la impresora esta lista para recibir el siguiente carcter. Si la impresora no esta lista, volver al paso 1. Si la impresora esta lista, verificar si hay otro carcter por imprimir. Si hay otro carcter, volver al paso 1. Si no hay ms caracteres, la impresin ha terminado.

A este mtodo de superposicin se le conoce como espera activa, ya que la CPU necesita realizar un seguimiento del estado de la E/S y, por consiguiente, esta activa mientras espera que termine la E/S. Aunque en teora es cierto que la CPU podra efectuar algn otro procesamiento y regresar ms tarde a imprimir el siguiente carcter, en la prctica esto no siempre es posible. Considere que aunque se emplea un dispositivo de entrada de a velocidad, la CPU seguir siendo ms rpida, y por tanto, lta deber esperar entre una y otra entrada. No obstante, si la CPU cambia a otra tarea para evitar esta prdida de tiempo, se presenta el riesgo de omitir parte de la entrada, ya que durante ese lapso se pueden recibir dos entradas. La E/S basada en interrupciones es la solucin perfecta para esta situacin. En un sistema basado en interrupciones, cada uno de los controladores de dispositivos se encarga de un tipo especfico de dispositivo. Un cont rolador de dispositivo cuenta con almacenamiento local en buffer y un conjunto de registros de propsito especial. El controlador del dispositivo es el responsable de transferir los datos entre el perifrico que controla y su buffer local. Para iniciar una operacin de E/S, la CPU carga los registros apropiados del controlador del dispositivo y luego contina con su operacin normal. A su vez, el controlador del dispositivo examina el contenido de estos registros para determinar que accin emprender. Por ejemplo, si encuentra una solicitud de lectura, el controlador comenzar la transferencia de datos del dispositivo a su buffer local. Una vez concluida la transferencia de datos, el controlador del dispositivo informa a la CPU que su operacin ha terminado. Esta comunicacin se logra causando una interrupcin. Cuando se interrumpe a la CPU, sta suspende lo que estaba haciendo y transfiere de inmediato la ejecucin a una posicin fija, la cual generalmente contiene la direccin de inicio donde se encuentra la rutina de procesamiento de la interrupcin. La rutina de procesamiento de la interrupcin transfiere los datos del buffer local del controlador del dispositivo a la memoria principal. Una vez lograda esta transferencia, la CPU puede continuar con los clculos interrumpidos; as, los dispositivos de E/S y la CPU pueden funcionar concurrentemente. Las interrupciones son una parte importante de la arquitectura del computador. Cada diseo cuenta con su propio mecanismo de interrupcin, pero hay varias func iones comunes para todos. La interrupcin debe transferir el control a la rutina de procesamiento de la interrupcin. Por lo general, esto se logra reservando un conjunto de posiciones en a parte baja de la memoria para que almacenen las direcciones de las rutinas de procesamiento de la interrupcin para los distintos dispositivos. Este vector de direcciones, se indexa usando un nmero de dispositivo nico que se da junto con la solicitud de interrupcin para as proporcionar la direccin de la rutina de procesamiento de la interrupcin para el dispositivo que la emite. La arquitectura de interrupciones tambin debe guardar la direccin de la instruccin interrumpida. Las arquitecturas ms recientes almacenan la direccin de retorno en la pila del sistema. Quiz la rutina de Pgina 29 de 164

procesamiento de la interrupcin tenga que guardar explcitamente otros registros, como acumuladores o registros de ndices, y luego recuperarlos. Despus de procesar la interrupcin, con un salto a la direccin de retorno almacenada, la ejecucin continuar como si no hubiese ocurrido nada. Usualmente las interrupciones se desactivan mientras una de ellas se procesa, demorando la interrupcin que entra hasta que el sistema operativo termine con la actual y las interrupciones que se hayan activado. Si no se desactivaran, el procesamiento de la segunda interrupcin mientras se da servicio a la anterior escribira sobre los datos de la primera; y la primera sera una interrupcin perdida. Las arquitecturas complejas de interrupciones permiten procesar una interrupcin mientras se atiende otra, por lo general siguiendo un esquema donde se asignan prioridades a los tipos de solicitud de acuerdo con su importancia relativa y se almacena por separado la informacin de procesamiento de la interrupcin para cada prioridad. Se aceptar una interrupcin de prioridad ms alta aun si est activa una interrupcin de menor prioridad, pero las interrupciones de igual o menor prioridad se enmascaran, o desactivan selectivamente, para evitar interrupciones perdidas o innecesarias. Para resolver el problema de la velocidad de atencin y procesamiento de interrupciones por parte de la CPU se utiliza el acceso directo a memoria (DMA) para los dispositivos de E/S de a velocidad. lta Despus de fijar los buffers, apuntadores y contadores para el dispositivo de E/S, el controlador del dispositivo transfiere directamente todo un bloque de datos de su almacenamiento en buffer a la memoria, o viceversa, sin que intervenga la CPU. La operacin bsica de la CPU sigue siendo la misma. Un programa de usuario, o el mismo sistema operativo, puede solicitar una transferencia de datos. El sistema operativo localiza un buffer (vaco para la entrada o lleno para la salida) de una cola de buffers para la transferencia. Entonces el controlador del DMA tiene sus registros con las direcciones apropiadas fuente y destino as como la longitud de la transferencia. En general, esto lo lleva a cabo un manejador de dispositivo, que sabe exactamente cmo proporcionar esta informacin al controlador. Luego se ordena al controlador del DMA que comience la operacin de E/S. El controlador del DMA interrumpe a la CPU cuando termina la transferencia. Ejemplo: multiprogramacin (timesharing) 1. 2. 3. 4. 5. El sistema operativo inicializa el timer o reloj en una tajada de tiempo, y lo echa a andar. El sistema operativo entrega el control a un proceso. El proceso se ejecuta. Concluido el tiempo prefijado, el timer provoca una interrupcin. El manejador de interrupciones del timer (que es parte del sistema operativo) guarda la informacin del proceso interrumpido necesaria para poder reanudarlo despus. Se repite el ciclo, escogiendo ahora otro proc eso.

6.

Otro ejemplo: manejo de dispositivos de I/O (Input / Output) Para comenzar una operacin de I/O, el sistema operativo escribe los registros del caso en el controlador del dispositivo. A su vez, el controlador determina qu hacer mirando el contenido de esos registros. Por ejemplo, si se trata de una solicitud de lectura, inicia la transferencia de datos desde el dispositivo hacia la memoria. Cuando finaliza la transferencia, el controlador le avisa a la CPU a travs de una interrupcin. Esto permite que la CPU, en vez de esperar que la transferencia termine (lo que sera I/O sincrnico), en el intertanto puede realizar otra tarea (I/O asincrnico). Una secuencia tpica sera: 1. El proceso que est ejecutando en la CPU solicita una operacin de I/O, mediante una llamada al sistema. El sistema operativo suspende el proceso, ponindolo en la cola de procesos suspendidos, y comienza la operacin de I/O. El sistema operativo escoge otro proceso para que siga ejecutando en la CPU. Pgina 30 de 164

2. 3.

4.

Cuando la operacin de I/O se completa, el control vuelve al sistema operativo gracias a que el controlador del dispositivo provoc una interrupcin. El sistema operativo, determina, segn la interrupcin y sus tablas internas, que el proceso que haba sido suspendido ahora puede reanudarse, por lo tanto lo pone en la cola de procesos listos para ejecutar. El sistema operativo reanuda ese (o tal vez otro) proceso de la cola de procesos listos. Por norma general, las interrupciones pueden clasificarse en dos tipos de acuerdo al carcter de su ejecucin:

5.

6.

Interrupciones No Enmascarables
Corresponden a aquellas interrupciones que deben ser ejecutadas inmediatamente cada vez que el perifrico lo solicite. Estas se refieren principalmente a las tareas del sistema, como la atencin de las rutinas de bajadas del sistema, chequeo de integridad de la memoria, actualizacin del tiempo, etc.

Interrupciones Enmascarables
Se ejecutan a solicitud del perifrico correspondiente, siempre y cuando el registro de estado de interrupciones este indicando que la interrupcin puede ser atendida, en caso contrario la interrupcin es ignorada y la CPU sigue efectuando sus tareas. Una forma de hacer que la CPU pueda identificar el evento asincrnico y reaccionar ante l es modificando adecuadamente el ciclo Buscar-Ejecutar. En forma simplificada, esto es: Repeat If (INTERRUPT = 1) { AUX PC PC @[Rutina de atencin de Interrupciones] INTERRUPT 0 PC AUX } IR Mem(PC) PC PC + 1 Ejecutar(IR) Until (IR = Instruccin de alto) La rutina de atencin de interrupciones debera realizar las siguientes tareas. 1. 2. 3. 4. Guardar todos los acumuladores, registros, etc. Atender al dispositivo e indicrselo, para que se detenga y no siga interrumpiendo. Restaurar todos los acumuladores, registros, etc. Continuar con la ejecucin del programa interrumpido.

Es comn que las interrupciones provengan de diversos dispositivos; por lo tanto, es importante que estas interrupciones sean atendidas rpidamente y bajo alguna poltica de prioridad donde habra que considerar: 1. Cambiar las prioridades de las interrupciones que ya han sido atendidas. 2. Poder deshabilitar prioridades colectivamente. 3. Poder soltar una rutina de atencin de interrupciones para ejecutar otra. Existen distintos tipos de interrupciones de acuerdo al tipo de servicio que es solicitado y el dispositivo que lo solicita.

Pgina 31 de 164

Interrupciones De SVC (Supervisor Call; Llamadas Al Supervisor)


Son efectuadas por un proceso en estado de ejecucin, el cual solicita un servicio en particular del sistema. Su objetivo es conmutar el estado de la mquina y ayuda a mantener el sistema operativo seguro de los usuarios "intrusos".

Interrupciones De E/S
Son indicadas por algn dispositivo de E/S a travs del envo de seales a la CPU, indicando el estado de un canal de comunicacin. En el caso de varios pedidos simultneos, las interrupciones son atendidas bajo una poltica de prioridades prefijada y adems se va formando una cola de solicitudes por interrupcin.

Interrupciones Externas
Provee de un medio a travs del cual la CPU responde las seales causadas por varios eventos. Por ejemplo, trmino de un lapso de reloj de una interrupcin o la presin de una tecla de interrupcin. Estas seales pueden ser provocadas por distintos entes, pueden ser emitidas en cualquier momento y puede haber varias simultneamente.

Interrupciones De Servicio
Ocurren cuando el usuario presiona la tecla Restart (u otra similar) en la consola del sistema o desde otro procesador en un sistema multiprocesador.

Interrupciones Por Programa


Proveen de la especificacin de acciones incorrectas o mal uso de instrucciones y datos, causando un error al ejecutar un proceso. Slo puede haber un tipo de interrupcin para cada instruccin; los distintos tipos de int errupciones que pueden ocurrir son: 1. 2. 3. 4. 5. 6. 7. Excepcin de operacin: cdigo de operacin invlido. Excepcin de operacin privilegiada: operacin denegada. Excepcin de proteccin: acceso a zona denegado. Excepcin de direccionamiento: direccin fuera de rango de memoria. Excepcin de datos: incompatibilidad, inexistencia, etc. Excepcin de overflow: la variable se llen e intenta almacenar ms an. Excepcin de divisin: divisin por cero.

Interrupciones Por Error De Mquina


Son causadas por mal funcionamiento de hardware. Proveen un medio para reanudar la operacin, despus de producido un evento en mal funcionamiento de la mquina, automticamente bifurca a una rutina de diagnstico. Durante la ejecucin de una instruccin puede ocurrir que se presenten simultneamente varias situaciones que generen una interrupcin. Algunas de las prioridades de atencin son: Error de mquina, prioridad 1. Interrupciones de E/S, prioridad 4. Interrupciones externas, prioridad 5. El orden de atencin de interrupciones es inverso al orden de prioridad fijado, excepto en el caso de la interrupcin por error de mquina, la cual es atendid a de inmediato.

Pgina 32 de 164

Una forma de sincronizar los comandos que la CPU enva a los perifricos es a travs de la utilizacin de cierto tipo de interrupcin conocida como interrupcin de reloj. Esta interrupcin puede ser fcilmente implementada mediante una leve modificacin al ciclo Buscar -Ejecutar: Repeat If (Reloj > 0) { IR Mem(PC) PC PC + 1 } else { IR Mem(X) } Reloj Reloj - 1 Ejecutar(IR) Until (IR = Instruccin de alto) Donde Mem(X) es un apuntador a la siguiente primitiva: Interrupcin _Reloj() { Guardar estado del programa interrumpido Reloj Algn nuevo valor Restaurar estado del programa interrumpido } Una desventaja de la interrupcin de reloj es que interrumpe an cuando el dispositivo pueda no estar listo. Por otra parte, si un dispositivo queda listo podra llegar a tener que esperar que se complete todo el ciclo del reloj para ser atendido. Una solucin a esta deficiencia se conoce como interrupcin de dispositivo. Esta consiste en que el dispositivo produce una interrupcin slo cuando necesita utilizar la CPU. Supngase que existen n dispositivos y cada uno de ellos tiene un bit asignado a un vector de interrupcin (VEC). De este modo cuando un dispositivo quiera provocar una interrupcin coloca un "1" en el bit n del vector de interrupcin, es decir VEC[n]. El ciclo Buscar-Ejecutar y la rutina de atencin de interrupcin sern entonces: Repeat If (VEC == 0) { IR Mem(PC) PC PC + 1 } else { IR Mem(X) // Apuntador a la rutina de atencin } Ejecutar(IR) Until (IR = Instruccin de alto) Interru pcin _Dispositivo() { Guardar estado del programa interrumpido ndice ndice del bit con "1" en VEC VEC[ndice] "0" Rutina_de_Dispositivo(ndice) Restaurar estado del programa interrumpido }

Para el caso dado, se ha de suponer que existe algn medio a travs del cual se puedan inhibir, si es necesario, las dems interrupciones mientras una se est ejecutando (prioridades).

A dminist ra cin D e D atos


El sistema de archivos es el aspecto ms visible de un sistema operativo. Los archivos almacenan datos y programas, y el sistema operativo implanta el concepto abstracto de archivo administrando dispositivos de almacenamiento masivo, como cintas y discos. Adems, los archivos normalmente se organizan en directorios para facilitar su uso, por lo que se vern diversas estructuras de directorios. Por ltimo, cuando varios usuarios tienen acceso a los archivos, puede ser deseable controlar quin y cmo puede tener acceso a ellos. A este control se le conoce como proteccin de archivos. Pgina 33 de 164

Archivos
El sistema operativo da una visin uniforme para todos los sistemas de almacenamiento, definiendo una unidad lgica de almacenamiento denominada archivo. Se considera como archivo a un conjunto de informacin relacionada definida por su creador. Corresponden a los programas y a los datos de cualquier tipo. En general, un archivo es una serie de bits, bytes o registros. Los archivos son nombrados y referenciados por su nombre. Adems, tienen otras propiedades o atributos, como su tipo, fecha y hora de creacin, nombre o identificador del creador, longitud, etc.

Tipos Y Estructuras De Archivos


Los archivos pueden contener distintos tipos de informacin y, dependiendo de su uso, tendrn una determinada estructura. Casos posibles: a) El sistema operativo puede tener conocimiento de estas distintas estructuras lgicas y considerar diferentes tipos de archivos. Des ventajas: 1) 2) Mayor tamao del sistema operativo. Gran rigidez, ya que slo se pueden considerar los tipos de archivos definidos por el sistema.

b)

c)

En algunos sistemas operativos como Unix no se definen los tipos de archivos, con lo que se tiene una gran flexibilidad, pero con un soporte mnimo, de forma que los programas de aplicacin tienen que incluir el cdigo que interprete la estructura adecuada de los archivos. El sistema operativo slo empaqueta y desempaqueta los bytes cuando los escribe y los lee del disco de acuerdo a los bloques fsicos del mismo. Considerar un archivo como una secuencia de registros lgicos (en desuso), cada uno con su propia estructura interna (la visin de Unix y MS-DOS es una particularizacin de sta, reducindose el registro lgico a un byte). Estructuras de rbol (restringido a grandes computadores corporativos). Los registros tienen una clave y la operacin bsica no es obtener el siguiente registro, sino obtener el registro con la clave especificada.

d)

El acceso original a los archivos (heredado de las cintas magnticas) era secuencial. Una operacin de lectura lea el registro actual y automticamente avanzaba al siguiente registro del archivo. La operacin de escritura aada el registro al final y avanzaba al nuevo final del archivo. Con la aparicin de los discos se pudo acceder directamente a cualquier registro del archivo, dando lugar al acceso arbitrario (acceso directo). Las operaciones de lectura y escritura deben incluir el nmero de registro como parmetro. En la actualidad todos los archivos se consideran de acceso directo.

Operaciones Con Los Archivos


CREATE (crear), realiza las siguientes acciones: 1) 2) 3) 4) Buscar si ya existe ese archivo. Asignarle una entrada en el directorio. Asignarle espacio en disco. Registrar sus atributos en el directorio.

Pgina 34 de 164

En algunos sistemas, la propia funcin de crear el archivo lleva implcita la apertura del mismo, haciendo una llamada a OPEN. OPEN (abrir), establece un enlace ent re el programa y el archivo, trasladando los atributos y la lista de direcciones desde el disco a la memoria principal. SEEK (buscar), se cambia la posicin del apuntador para sealar al byte o registro cuya direccin lgica se suministra en la llamada. READ (leer), la lectura se hace en la posicin actual y en la llamada se tiene que especificar la cantidad de datos necesarios y proporcionar un buffer para su transmisin. El resultado de la operacin se indica mediante el valor que se devuelve en status. WRITE (escribir), escribe en un archivo nuevo o los aade a uno existente. En este caso, el sistema de archivos llama al mdulo de asignacin de espacio para proporcionar el nmero requerido de bloques libres. Los bloques del directorio y los ndices de los archivos sern modificados en consecuencia. Algunos sistemas tienen una forma restringida de WRITE, con la que slo pueden aadir datos al final del archivo (APPEND). Los sistemas con las funciones OPEN y CLOSE requieren generalmente que los archivos sean abiertos antes de poderlos leer o escribir. Pero muchos sistemas abren implcitamente el archivo cuando se realiza cualquier referencia a ellos. CLOSE (cerrar), se libera la tabla con la lista de atributos y direcciones que se mantena en memoria, actualizndola en disco si se ha modificado. En muchos sistemas, la terminacin obligada o voluntaria de procesos incluye el cierre de todos los archivos abiertos (incluyendo en las rutinas EXIT o ABORT una llamada a CLOSE) DELETE (borrar), elimina un archivo y libera el espacio que ocupa, borrando del directorio la entrada al archivo y liberando el espacio asignado al mismo. Hay sistemas operativos que, como medida de seguridad, mantienen una copia de los archivos borrados hasta que reciben la orden expres a de liberar este espacio. RENAME (renombrar), cambia el nombre del archivo en la tabla del directorio correspondiente. Se puede suplir copiando el archivo original en otro con el nuevo nombre y borrando el original. COPYFILE (copiar), lleva implcita la creacin de un nuevo archivo, aunque en algunas versiones se permite copiar en un archivo ya existente grabando sobre la informacin del mismo. Lectura y modificacin de atributos, muchos sistemas permiten la lectura y, en algunos casos, modificacin de algunos atributos.

Directorios De Archivos
Son tablas simblicas de archivos. Una entrada tpica puede contener: a) b) c) Nombre, tipo y nmero de versin del archivo. Puntero de acceso al archivo, direccin de comienzo en el disco. Lista de atributos.

En muchos sistemas, la tabla del directorio est dividida en dos. En una se mantienen los nombres de los archivos con un nmero de identificacin, el cual da acceso a otra donde se tiene el puntero de acceso al archivo y la lista de atributos. Esto agiliza la gestin de los enlaces, la generacin de alias y los homnimos. Casos: a) b) Directorio de nivel nico: sistema usado en los primeros microcomputadores. Un directorio por usuario. Pgina 35 de 164

c)

rbol de directorios: las entradas del directorio correspondiente tienen un atributo ms que indica si corresponde a un archivo o a un subdirectorio.

Normalmente, cada usuario tiene su directorio inicial indicado en un archivo de cuentas. Cuando se hace referencia a un archivo o directorio, se busca en el directorio actual. Si no se encuentra, el usuario debe cambiar de directorio o indicar el camino completo. Los nombres de los caminos pueden ser completos o relativos. Normalmente, los sistemas operativos tienen dos entradas especiales para cada directorio: . para el propio directorio (con un puntero a s mismo) y .. para el directorio padre. Estas pueden ser usadas en los caminos relativos. Como los directorios pueden ser muy grandes, se suelen guardar en disco. Esto facilita montar y desmontar dispositivos. Es habitual considerar los directorios como archivos que tienen una lista de todos los archivos. Para localizar el directorio raz al arrancar el sistema, ste se sita en una direccin conocida por el volumen desde el que se arranca el sistema.

Operaciones Con Los Directorios


MAKEDIR (crear directorio), en el directorio actual, se crea una entrada para un nuevo subdirectorio vaco, salvo las entradas . y .. . REMOVEDIR (borrar directorio), elimina un directorio vaco. Si no lo est, se pueden hacer dos cosas: 1) 2) No permitir el borrado. Suponer que se quiere borrar todos los archivos y subdirectorios que contiene.

OPENDIR (abrir directorio) y CLOSEDIR (cerrar directorio), al abrirlo, se copian sus tablas en memoria. Cuando se cierra, se actualizan en el disco. READDIR (leer directorio), devuelve en un formato estndar la entrada actual del directorio. (por defecto, el actual). RENAMEDIR (cambiar el nombre), cambia el nombre de un direc torio. LINK (enlazar), forma de hacer que un archivo o subdirectorio aparezca en varios directorios. En la llamada se especifica el nombre del archivo y el camino de acceso, crendose un enlace entre este camino y el archivo ya existente. La estructura de directorios es, en este caso, un grafo dirigido acclico. UNLINK (desenlazar), eliminacin del enlace y borrado de la correspondiente entrada en el directorio. La informacin especfica que se conserva para cada archivo en el directorio vara de un sistema operativo a otro. En una entrada del directorio se puede conservar la siguiente informacin, aunque no sea la misma para todos los sistemas: Nombre del archivo. El nombre simblico del archivo es la nica informacin que se mantiene en forma legible para el hombre. Tipo de archivo. Esta informacin es necesaria para aquellos sistemas que apoyan diferentes tipos de archivos. Ubicacin. Este es un apuntador al dispositivo y a la ubicacin fsica del archivo en ese dispositivo. Tamao. El tamao actual del archivo (en bytes, palabras o bloques) y, posiblemente, el tamao mximo permitido. Pgina 36 de 164

Posicin actual. Este es un apuntador a la posicin actual de lectura o escritura en el archivo. Proteccin. Informacin de control de acceso para establecer quin puede leer, escribir, ejecutar, etc. Recuento de uso. Este valor indica el nmero de procesos que actualmente estn usando (han abierto) el archivo. Hora, fecha e identificacin de proceso. Esta informacin puede conservarse para la creacin, ltima modificacin y ltimo acceso. Estos datos pueden servir para la proteccin y la supervisin de la utilizacin.

Para almacenar esta informacin se puede necesitar desde 16 hasta ms de 1000 bytes por archivo. En un sistema con gran cantida d de archivos, el tamao del directorio puede ser de varios cientos o miles de bytes, por lo que es probable que el directorio tenga que almacenarse en su dispositivo y traerse a memoria por partes, segn se necesite. Una lista lineal de entradas del directorio requiere una bsqueda secuencial para encontrar una entrada determinada. Esto es fcil de programar, pero la ejecucin tarda mucho. Por ejemplo, para crear un nuevo archivo, primero se debe buscar en el directorio para asegurar que no haya un archivo con el mismo nombre; luego, se aade una nueva entrada al final del directorio. Para eliminar un archivo, se busca en el directorio hasta encontrar su nombre y despus se libera el espacio que se le haba asignado. Para reutilizar la entrada del directorio, existen varias alternativas: se puede marcar la entrada como no utilizada o se puede aadir a una lista de entradas libres para el directorio. Una tercera alternativa consiste en copiar la ltima entrada en la localidad liberada y reducir el tamao del directorio. Tambin puede emplearse una lista ligada para disminuir el tiempo necesario para eliminar un archivo. La gran desventaja de una lista lineal de entradas de directorio es la bsqueda secuencial necesaria para encontra r un archivo. Una lista ordenada permite una bsqueda binaria que reduce el tiempo promedio de bsqueda, aunque la programacin del algoritmo de bsqueda es ms compleja y, adems, siempre hay que mantener ordenada la lista. Este requisito puede complicar la creacin y eliminacin de archivos ya que se tendrn que mover grandes cantidades de informacin del directorio para mantener el orden. En este caso puede servir de ayuda un rbol binario enlazado. Otra estructura de datos que se ha utilizado para directorios de archivos es la tabla de dispersin (una estructura de datos que puede mejorar considerablemente el tiempo de bsqueda). La insercin y eliminacin son bastante directas, aunque hay que tomar medidas para evi tar colisiones, situaciones donde dos nombres de archivos se traducen a la misma localidad. Las principales dificultades con una tabla de dispersin son el tamao generalmente fijo de la tabla y la dependencia de la funcin de dispersin respecto al tamao de la tabla. Por ejemplo, suponga que se establece una tabla de dispersin de 64 entradas. La funcin de dispersin convierte los nombres de archivos en nmeros enteros del 0 al 63, probablemente con una operacin final que emplee el residuo de una divisin entre 64. Si despus se intenta crear el archivo 65, se debe ampliar la tabla de dispersin del directorio, quiz a 100 entradas. Por tanto, se necesita una nueva funcin de dispersin que haga corresponder los nombres de archivos al intervalo 0 a 99 y reorganizar las entradas existentes en el directorio para reflejar los nuevos valores de la funcin de dispersin (hassing). Los archivos almacenan informacin. Cuando sta es utilizada, es necesario obtenerla y cargarla en la memoria del computador. Existen varias modalidades para acceder a la informacin en un archivo. Unos sistemas slo ofrecen un mtodo de acceso y otros permiten varios mtodos de acceso y la eleccin del ms adecuado para una aplicacin especfica representa un serio problema de diseo.

Pgina 37 de 164

Acceso Secuencial
La informacin en el archivo se procesa en orden, un registro tras otro. Este es el modo de acceso a archivos ms comn que hay. Los programas de edicin por lo general acceden de esta manera a los archivos. La mayor parte de las operaciones con archivos son lecturas y escrituras. Una operacin de lectura lee la siguiente porcin del archivo y el apuntador avanza automticamente. De manera parecida, una escritura aade al final del archivo y luego avanza al final de lo que se acaba de escribir. Puede reposicionarse el archivo para apuntar al inicio o, en algunos sistemas, un programa puede avanzar o retroceder n registros, siendo n un nmero entero. A este esquema se le conoce como acceso secuencial al archivo y esta basado en un archivo que se comporta como una unidad de cinta.

Acceso Directo
Otro mtodo de acceso es el acceso directo, que se basa en el disco como modelo de archivo. Para el acceso directo se considera que el archivo es una secuencia numerada de bloques o registros. Un archivo de acceso directo permite leer o escribir cualquier bloque. As, se puede leer el bloque 14, luego el bloque 53 y despus escribir el 7. No existen restricciones en cuanto al orden de lectura o escritura para un archivo de acceso directo. Los archivos de acceso directo son muy tiles para obtener acceso inmediato a grandes cantidades de informacin, y las bases de datos frecuentemente son de este tipo. Cuando llega una consulta sobre un tema determinado, se calcula el bloque que contiene la respuesta y luego se lee ese bloque directamente para proporcionar la informacin deseada. No todos los sistemas operativos permiten ambos mtodos de acceso a archivos. Algunos slo permiten el acceso secuencial y otros slo el directo. Algunos sistemas requieren que un archivo se defina como directo o secuencial al momento de crearlo, y slo se permitir el acceso de manera consistente con la declaracin inicial. Obsrvese, sin embargo, que es fcil simular el acceso secuencial en un archivo de acceso directo si se mantiene una variable contadora.

Otros Mtodos De Acceso


Es posible construir otros mtodos de acceso a partir del acceso directo. Estos mtodos adicionales generalmente implican la construccin de un ndice para el archivo. Este ndice contiene apuntadores a los distintos bloques. Para encontrar una entrada en el archivo, se busca primero en el ndice y luego se usa el apuntador para acceder directamente al archivo y encontrar la entrada deseada.

Realizacin Del Sistema De Archivos Gestin del espacio libre


Para mantener una lista del espacio libre en disco se usan dos mtodos: 1) 2) Tener un mapa de bits de los bloques libres. Usar una lista enlazada de bloques libres, manteniendo un puntero al primer bloque libre.

El segundo mtodo no es muy eficiente, puesto que para leer la lista hay que leer todos los bloques. Como mejora, se puede utilizar una lista enlazada de bloques en la que cada bloque contiene nmeros de bloques libres. El mapa de bits ocupa menos espacio, ya que slo usa 1 bit por cada bloque, en vez de los 19 que necesita el mtodo de lista enlazada. Si existe espacio suficiente en memoria para mantener el mapa de bits, este mtodo es preferible. Aunque cuando el disco est casi lleno podra ser ms rentable el mtodo de las listas enlazadas. Pgina 38 de 164

La eleccin del tamao de los bloques requiere hacer un estudio previo de cuan grandes en promedio van a ser los archivos en ese sistema (lo habitual es 512 bytes, 1 Kb o 2 Kb).

Mtodo de asignacin contigua


Requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco. Las entradas en los directorios indicarn el bloque de comienzo y la longitud. La dificultad est en asignarle el espacio corr ecto cuando se crea el archivo. Las soluciones son del tipo primero en ajustarse o mejor en ajustarse. Ventaja: buen rendimiento cuando se quiere leer un archivo completo. Inconvenientes: a) Debe conocerse el tamao mximo del archivo en el momento de su creacin. b) Si, al crecer, el espacio asignado no es suficiente, se tiene que reubicar. c) Produce fragmentacin externa. Puede solucionarse con compactacin, pero es una operacin muy costosa.

Mtodo de asignacin mediante listas enlazadas


Algunos bytes iniciales de los bloques se usan como puntero al siguiente bloque. Las entradas en el directorio slo tienen que guardar un puntero al primer bloque del disco asignado al archivo. Escribir en el archivo supone tomar uno de los bloques libres y aadirlo al final de la lista. Para facilitar esta operacin, tambin suele haber un puntero al ltimo bloque del archivo. Para leer un archivo slo hay que seguir los punteros de bloque a bloque. Ventajas: a) b) c) No causa fragmentacin externa. No se tiene que declarar el tamao del archivo cuando se crea. Los archivos pueden crecer sin ningn problema mientras haya bloques libres.

Inconveniente: El acceso aleatorio a un archivo es muy lento, puesto que hay que seguir los punteros hasta llegar al archivo deseado.

Mtodo de asignacin mediante indexacin


Se crea una tabla de ndices en la que se colocan los ndices a los bloques de los archivos. El directorio contiene la direccin del bloque donde estn los ndices a los bloques de datos (concepto anlogo a l as tablas de pginas de memoria). Ventajas: a) b) c) Todo el bloque est disponibles para los datos. Se soporta con la misma eficacia el acceso aleatorio que el secuencial. No sufre fragmentacin externa.

Inconveniente: prdida de espacio en el bloque de ndices para ndices pequeos. Para archivos grandes, se necesitara asignar ms bloques a la tabla de ndices, pudindose utilizar sistemas de indexacin de varios niveles (Unix).

Algunos aspectos de diseo


a) Problemas de diseo: 1) 2) Definir cmo ver el usuario el sistema de archivos (la estructura de directorios, los archivos y sus atributos). Crear los algoritmos y las estructuras de datos que relacionan el sistema de archivos lgicos con el dispositivo fsico de almacenamiento.

Pgina 39 de 164

b)

Niveles: El sistema de archivos se puede considerar compuesto por varios niveles o capas. Cada nivel en el diseo usa las posibilidades de los niveles inferiores para crear nuevas caractersticas que usarn los ni veles superiores. Estos niveles son: (0) Dispositivos fsicos de control de las transferencias de informacin entre la memoria y el disco. (1) Sistema bsico de archivos, el cual usa las caractersticas del nivel anterior para leer y escribir bloques en el disco. La indicacin de los bloques que tiene que leer o escribir la hace un mdulo de organizacin de archivos que conoce el tipo de ubicacin usado por los archivos y la situacin de los mismos. (2) Sistema de archivos lgicos, que conoce la estructura de directorios. Estos se pueden tratar como archivos de forma que el mdulo de organizacin puede leer y escribir los directorios cuando se producen peticiones del sistema de archivos lgicos. (3) Programas de aplicaciones.

c)

Control de acceso, que deber verificar los permisos y los bloqueos de lectura y escritura.

Comparticin de archivos
Se puede realizar de distintas formas (operacin LINK). En Unix existe una pequea estructura de datos, el i-nodo, asociada al propio archivo, de forma que los directorios apuntaran al i-nodo correspondiente. La creacin de un enlace aumenta el contador de enlaces del i-nodo, de forma que el sistema conoce el nmero de entradas de directorio que apuntan al archivo. Cuando se intenta eliminar el archivo original, si se eliminase el archivo y su i-nodo sin ms, el directorio tendra una entrada que apuntara a un i-nodo no vlido. La solucin es dejar intacto el i-nodo con su contador en 1. Enlaces simblicos: Consiste en crear un nuevo archivo que contiene solamente la ruta de acceso al archivo al que se quiere enlazar. Slo el propietario del archivo tiene un apuntador al i -nodo. Ventaja: Se pueden utilizar para enlazar archivos a otras mquinas. Inconvenientes: a) Su alto coste. Hay que leer el archivo que contiene la ruta de acceso, analizarla y seguirla hasta alcanzar el i-nodo. Se necesita incluir un i-nodo para cada enlace simblico, as como un bloque ms en disco para almacenar la ruta de acceso, aunque sta se podra almacenar en el propio inodo. Al restaurar un backup podran crearse dos copias del mismo archivo.

b)

A dminist ra cin D e D is positivos D e A lmace nam ie nto R otaciona l


En los sistemas de cmputo multiprogramados, la ineficiencia se debe muchas veces al uso inapropiado de recursos de almacenamiento rotacional como discos y tambor. En esta seccin se darn a conocer algunos de los conceptos ms importantes sobre administracin de dispositivos de almacenamiento rotacional. En los sistemas de computacin multiprogramados, muchos procesos pueden estar generando solicitudes de lectura y escritura de registros en discos. Como a veces dichos procesos realizan peticiones ms rpido de lo que pueden ser atendidas por los discos de cabeza mvil, se forman colas de espera para cada dispositivo. Algunos sistemas de cmputo se limitan a atender las peticiones segn un esquema de primero que llega, primero que se atiende (FCFS, first-come-first-served). FCFS es un mtodo justo para asignar servicio, pero cuando la tasa de solicitud (es decir, la carga) llega a ser pesada, FCFS puede dar lugar a tiempos de espera muy largos. FCFS exhibe un patrn de bsqueda aleatorio en el cual peticiones sucesivas pueden provocar bsquedas de los cilindros ms internos a los ms externos, cosa que consume mucho tiempo. Para reducir al mnimo el tiempo de bsqueda de registros, parece razonable ordenar la cola de solicitudes en Pgina 40 de 164

una forma diferente a FCFS. Este proceso se conoce como planificacin de disco. La planificacin de disco implica un examen cuidadoso de las peticiones pendientes para determinar la forma ms eficiente de atenderlas. Un planificador de disco exami na las relaciones de posicin entre las peticiones en espera. La cola de espera se reordena para que las peticiones puedan atenderse con un mnimo de movimiento mecnico. Los dos tipos ms comunes de planificacin son la optimizacin de bsqueda y la optimizacin rotacional (o de latencia). Como los tiempos de bsqueda son un orden de magnitud ms grandes que los tiempos de latencia, la mayor parte de los algoritmos de planificacin se concentran en reducir al mnimo los tiempos de bsqueda para un conjunto de peticiones. La reduccin de la latencia por lo general tiene poco efecto sobre el rendimiento global del sistema, excepto bajo cargas pesadas.

Estructura De Un Disco
Antes de proseguir con las polticas de planificacin de discos, es necesario mostrar, al menos, una visin global de la estructura fsica de un disco. Adems es conveniente hacer notar que prcticamente todas las caractersticas asociadas a la forma de administracin de un disco, tambin son vlidas para los tambores. Fsicamente, los discos son bastante sencillos. Cada disco tiene una forma circular plana, como un disco de audio. Sus dos superficies estn cubiertas con un material magntico, similar al de las cintas magnticas. La informacin se graba en dichas superficies.

Estructura Fsica
Cuando el disco est en uso, un motor lo hace girar a alta velocidad (por ejemplo, 60 revoluciones por segundo). Tiene una cabeza de lectura y escritura ubicada justo encima de su superficie, la cual se divide lgicamente en pistas. Se almacena la informacin grabndola magnticamente en las pistas que estn debajo de la cabeza de lectura y escritura. En la superficie de un disco puede haber cientos de pistas. Un disco de cabeza fija tiene una cabeza para cada pista. Esta disposicin permite que el computador cambie rpidamente de una pista a otra, pero requiere un gran nmero de cabezas, lo que hace que el dispositivo sea muy costoso. Lo habitual es que haya una sola cabeza, la cual se desplaza hacia adentro y hac ia afuera para acceder a las distintas pistas (ver figura) . Un disco de cabeza mvil requiere hardware para mover la cabeza. En aquellas situaciones que requieren alto rendimiento, puede usarse un disco de alta velocidad o un gran dispositivo de memoria (disco de memoria de acceso directo (RAM Random Access Memory)), para as obtener una mayor velocidad de acceso y transferencia que la que puede ofrecer un disco convencional con una sola cabeza mvil. Los discos se disearon originalmente para el almacenamiento de archivos, por lo que los principales criterios de diseo fueron costo, tamao y velocidad. Para ofrecer mayor capacidad de almacenamiento, los diseadores siguieron varias estrategias, obtenindose la mayor ganancia al mejorar la densidad de grabacin, permitiendo que se colocaran ms bits en una superficie. La densidad se refleja en el nmero de pistas por pulgada y, por consiguiente, en el total de pistas de una superficie. Adems, al colocar cabezas a cada lado del plato, la capacidad del disco puede duplicarse con un costo mnimo. Se puede extender esta estrategia apilando varios discos, cada uno con dos superficies de grabacin, sobre un eje. Como todos los discos giran juntos, slo se necesita un motor, aunque cada superficie an requiere su propia cabeza de lectura y escritura. Los choques de la cabeza, debido a la distancia mnima existente entre cabeza y plato, pueden ser un problema. Si la cabeza hace contacto con la superficie del disco (debido, por ejemplo, a un corte de energa), la cabeza raspar el medio de grabacin del disco, destruyendo los datos que all se Pgina 41 de 164

encuentren. En muchas ocasiones, cuando la cabeza toca la superficie se desprende el material magntico y se introduce entre las otras cabezas y sus platos, ocasionado ms choques. Antiguamente en circunstancias normales, si se produca un choque de la cabeza haba que cambiar todo el disco; en la actualidad, gracias a las poderosas tecnologas de software, este riesgo es muy bajo. El hardware para un sistema de disco puede dividirse en dos partes. La parte mecnica es la unidad de disco, que incluye el motor del dispositivo, las cabezas de lectura y escritura y la lgica relacionada. La otra parte, llamada controlador de disco, determina la interaccin lgica con el computador. El controlador recibe instrucciones de la CPU y ordena a la unidad de disco que ejecute la instruccin. Esta divisin de tareas permite que varias unidades de disco se conecten al mismo controlador. Para hacer referencia a la informacin en disco se emplea una direccin compuesta por varias partes, que incluye el nmero de la unidad, la superficie y la pista. Al conjunto de pistas a las que se puede acceder sin mover las cabezas (bsicamente, las pistas en superficies distintas) en una misma unidad se le denomina cilindro. Dentro de una pista la informacin se escribe en bloques, los cuales pueden ser de tamao fijo, especificado por el hardware, y se llaman sectores; cada sector puede leerse o escribirse por separado. Por otra parte, la informacin en un pista puede componerse de bloques de longitud variable, separados por marcas de terminacin. Este segundo esquema es ms flexible, pero a la vez ms difcil de usar. Incluso, muchos sistemas, aunque por hardware tengan bloques variables en disco, por software definirn un tamao fijo. Las transferencias de E/S entre la memoria y el disco se realizan en unidades de uno o ms sectores. Para direccionar un sector especfico se necesitan un nmero de pista (o de cilindro), un nmero de superficie y un nmero de sector. De esta manera, un disco se puede considerar como un arreglo tridimensional de sectores, el cual comnmente es tratado por el sistema operativo como un arreglo unidimensional de bloques de disco, donde cada bloque es un sector. Por lo general, las direcciones de los bloques aumentan al recorrer los sectores de una pista, despus al pasar por todas las pistas de un cilindro, y finalmente desde el cilindro cero hasta el ltimo en el disco. Si se utiliza s para representar el nmero de sectores por pista y p para el nmero de pistas por cilindro se puede convertir una direccin en disco del cilindro i, superficie j, sector k, a un nmero de bloque unidimensional b, por ejemplo calculando: b = k + s * [ j + (i*p) ] Obsrvese que, al usar esta correspondencia, cuando el ltimo bloque al que se accedi fue b, el acceso al bloque b+1 requerir un posicionamiento slo cuando b sea el ltimo bloque de un cilindro y b+1, el primero del siguiente cilindro. lncluso en este caso, la cabeza slo se desplazar una pista. Un tambor es, de hecho, un disco de un solo cilindro. Como cada pista tiene su propia cabeza de lectura y escritura, no hay tiempo de posicionamiento. Las principales diferencias entre discos y tambores estn relacionadas con el rendimiento, el costo y la capacidad de almacenamiento, pero no con su estructura lgica. Los discos presentan dos caractersticas importantes que los convierten en un medio adecuado para el almacenamiento de mltiples archivos: Pueden rescribirse en el mismo lugar; en otras palabras, es posible leer un bloque del disco, modificarlo y volver a escribirlo sin cambiar la ubicacin. Se puede acceder directamente a cualquier bloque de informacin en el disco. De esta manera es sencillo acceder aleatoria o secuencialmente a cualquier archivo, y para cambiar de un archivo a otro slo hay que mover las cabezas de lectura y escritura y esperar que gire el disco.

Estructura Lgica
Un disco generalmente cuenta con un directorio del dispositivo que indica cules son los archivos que se encuentran en l. El directorio es la lista de los nombres de los archivos e incluye informacin como la ubicacin del archivo en el disco, su longitud, tipo, dueo, hora de creacin, hora del ltimo acceso, Pgina 42 de 164

protecciones, etc. Como los bloques de un disco pueden rescribirse en su lugar, se puede leer, actualizar y rescribir el directorio cada vez que sea necesario, sin tener que copiar el resto del disco. Cada unidad de disco fsica, sea un paquete de discos o un disco flexible, tiene su propio directorio del dispositivo, almacenado en el mismo dispositivo, generalmente en una direccin fija del disco, como la 00001 (la direccin 00000 es casi siempre es un cargador para el arranque del sistema). Esta disposicin es especialmente deseable en dispositivos removibles, como las unidades de discos flexibles o paquetes. Si el medio se desmonta, se almacena y luego se vuelve a montar, quiz en una unidad de disco diferente y an se desear poder localizar los archivos en ese dispositivo.

Planificacin De Discos
Tal como se mencion anteriormente, FCFS es un mtodo relativamente justo para atender solicitudes. Algunos otros criterios para clasificar las polticas de planificacin son: la productividad, el tiempo promedio de respuesta y la varianza de los tiempos de respuesta (predecibilidad). Los criterios recin sealados tratan de mejorar el rendimiento global, cada vez a expensas de las peticiones individuales. La planificacin mejora a menudo el rendimiento global pero reduce el nivel de atencin para ciertas peticiones. Una medida importante de este fenmeno es la varianza de los tiempos de respuesta. La varianza es una medida matemtica de cunto se desvan elementos individuales del promedio de los elementos. Como tal, se utiliza la varianza para indicar la predecibilidad: a menor varianza mayor predecibilidad. En general, se desea una poltica de planificacin que reduzca al mnimo la varianza. De otra forma, ciertas peticiones recibiran niveles de servicio errticos, lo que podra ser intolerable. Si una poltica de planificacin slo trata de aumentar la produccin sin reducir al mnimo la varianza, podra procesar nada ms las peticiones fciles y hacer caso omiso de las difciles.

Planificacin FCFS (First Come First Served)


En planificacin FCFS (primero que llega, primero que se atiende), la prime ra solicitud que llega es la primera que se atiende. FCFS es justa en el sentido de que al llegar una solicitud, su lugar en la planificacin es fijo. Una peticin no puede ser desplazada por la llegada de otra con mayor prioridad; en efecto FCFS realizar una bsqueda larga para atender una peticin en espera aunque llegue una solicitud para el mismo cilindro donde esta colocada la cabeza de lectura-escritura. Cuando las peticiones estn distribuidas uniformemente en la superficie del disco, la planificac in FCFS da como resultado un patrn de bsqueda aleatorio. Hace caso omiso de las relaciones de posicin entre las solicitudes pendientes. No hace ningn intento por optimizar el patrn de bsqueda. FCFS es aceptable cuando la carga del disco es ligera. Pero conforme crece la carga, FCFS tiende a saturar el dispositivo y aumenta los tiempos de respuesta. FCFS s ofrece una varianza pequea, pero esto no es mucho consuelo para la peticin que espera al final de la cola mientras el brazo mvil se desplaza de un lado a otro.

Planificacin SSTF (Shortest Seek Time First)


En la planificacin SSTF (primero el de menor tiempo de bsqueda), la peticin que implica la menor bsqueda es la siguiente en atenderse, aun cuando esta solicitud no sea la primera de la cola. SSTF es un esquema orientado hacia los cilindros. SSTF tiende a favorecer mucho ciertas solicitudes. Los patrones de bsqueda SSTF tienden a estar muy localizados y, en consecuencia, las pistas ms exteriores e interiores pueden recibir una atencin deficiente en comparac in con la que reciben las pistas de la parte media. Pgina 43 de 164

SSTF ofrece mejores tasas de productividad que FCFS, y los tiempos de respuesta tienden a ser ms bajos cuando la carga es moderada. Una desventaja importante es que aumenta la varianza de los tiempos de respuesta debido a la discriminacin contra las pistas exteriores e interiores. En un caso extremo, podra hacer inanicin de las solicitudes alejadas de las cabezas de lectura -escritura. Si se consideran las importantes mejoras en la productividad y en los tiempos promedio de respuesta, el aumento en la varianza puede parecer tolerable. SSTF resulta til en sistemas de procesamiento por lotes, donde la productividad es la consideracin ms importante. Pero la elevada varianza de los tiempos de respuesta lo hace inaceptable en sistemas interactivos.

Planificacin SCAN
Denning desarroll la estrategia de planificacin SCAN para evitar la discriminacin y la alta variacin en los tiempos de respuesta de SSTF. SCAN elige la solicitud que implica la menor distancia de bsqueda en una direccin preferida. Si la direccin preferida en un momento dado es hacia afuera, la estrategia SCAN elige la distancia de bsqueda ms corta en esa direccin. SCAN no cambia de direccin hasta que llega al cilindro ms exterior o hasta que ya no hay solicitudes pendientes en la direccin preferida. En este sentido, se denomina a veces algoritmo del ascensor. SCAN ha sido la base de la mayor parte de las estrategias de planificacin de disco implantadas hasta ahora. A causa del movimiento oscilante de las cabezas de lectura-escritura en SCAN, las pistas ms exteriores se visitan con menos frecuencia que las de la parte media, pero ello no es tan grave como la discriminacin de SSTF .

Planificacin SCAN De N Pasos ( SCAN-N)


Una modificacin interesante de la estrategia SCAN bsica se denomina SCAN de N pasos. En esta estrategia, el brazo del disco se mueve en una y otra direccin como en SCAN, excepto que slo atiende las solicitudes que ya estaban esperando cuando se inici un barrido especfico. Las solicitudes que llegan durante un barrido se agrupan y ordenan para darles una atencin ptima durante el barrido de regreso. En cada barrido se atienden las primeras n peticiones en secuencia ptima de acuerdo con la direccin de la cabeza de lectura-escritura. SCAN-N ofrece un buen desempeo en cuanto a productividad y tiempo promedio de respuesta. Su caracterstica ms importante es la menor variacin de los tiempos de respuesta que en la planificacin SSTF o en la SCAN convencional. SCAN de N pasos elimina la posibilidad de que ocurra un aplazamiento indefinido si llega un gran nmero de peticiones para el cilindro actual.

Planificacin C-SCAN
Otra modificacin de la estrategia SCAN bsica se denomina C-SCAN (SCAN circular). C-SCAN elimina la discriminacin de las estrategias anteriores contra los cilindros ms interiores y exteriores. En la estrategia C-SCAN el brazo se mueve del cilindro exterior hacia el interior, atendiendo solicitudes segn un criterio de la bsqueda ms corta. Cuando el brazo ha completado su barrido hacia adentro, salta inmediatamente a la solicitud ms cercana al cilindro ms exterior y luego reinicia su ba rrido hacia adentro procesando solicitudes. C-SCAN presenta una varianza muy pequea de los tiempos de respuesta. Algunos resultados de simulaciones indican que la mejor poltica de planificacin de disco podra operar en dos etapas. Cuando la carga es ligera, poltica SCAN es la mejor. Cuando la carga es mediana o pesada, C-SCAN produce los mejores resultados. C-SCAN con optimizacin rotacional maneja en forma activa las situaciones de carga pesada.

Pgina 44 de 164

Planificacin LOOK
La planificacin Look es una planificacin que opera igual a SCAN, pero si hay peticiones slo llega hasta la ltima pista que tiene peticin sin necesidad de llegar al final (lo que mejora significativamente el desempeo).

Planificacin C-LOOK
En la planificacin C-Look (Look circular) es una combinacin de C -SCAN y LOOK. Al igual que en CSCAN, C-LOOK mueve el brazo del cilindro exterior hacia el interior, atendiendo solicitudes segn un criterio de la bsqueda ms corta. El brazo completa su barrido hacia adentro cuando llega hasta la ltima pista que tiene peticin sin necesidad de llegar al final, luego salta a la solicitud ms cercana al cilindro ms exterior y luego reinicia su barrido hacia adentro.

Esquema De Eschenbach
Esta estrategia se desarroll originalmente para un sistema de reservaciones de una lnea area diseado para manejar cargas en extremo pesadas. El esquema fue uno de los primeros en tratar de (*) optimizar no slo el tiempo de bsqueda, sino tambin el retraso rotacional . Sin embargo, la estrategia C-SCAN con optimizacin rotacional ha demostrado ser mejor que el esquema de Eschenbach, sean cuales sean las condiciones de carga.

Evaluacin De Desempeo
Como un sistema operativo es en primer trmino un administrador de recursos, es importante que los diseadores, administradores y usuarios de los sistemas operativos sean capaces de averiguar cun efectivo es un sistema especfico para manejar sus recursos. En los primeros aos del desarrollo de los sistemas de cmputo, el equipo representaba el costo dominante, de manera que los estudios sobre desempeo se concentraban ante todo en aspectos del equipo. Ahora los equipos son relativamente econmicos y su costo baja cada vez ms. Sin embargo, los costos de la mano de obra han seguido creciendo constantemente. En consecuencia, se debe comenzar a medir el desempeo con tcnicas ms acordes con la productividad humana. La complejidad de los programas va en aumento con la generalizacin del empleo de sistemas operativos de multiprogramacin, multiprocesamiento, sistemas distribuidos, sistemas administrativos de bases de datos, interfaces con el usuario orientadas a los grficos y diversos sistemas de apoyo a aplicaciones. Los programas ocultan a menudo el equipo al usuario, con lo que crean una mquina virtual definida por las caractersticas de operacin de los programas. Con frecuencia, los programas de difcil manejo provocan un desempeo pobre, aun en sistemas con equipo poderoso, por lo que es importante examinar el desempeo de los programas de un sistema adems del desempeo del equipo. La evaluacin y prediccin del desempeo se necesitan desde los primeros momentos de la concepcin de un sistema nuevo, en la operacin cotidiana del sistema y despus de la instalacin, y cuando se estudia su modificacin o posible sustitucin por un sistema mejor.

(*)

En condiciones de carga pesada aumenta la probabilidad de mltiples referencias a un cilindro especfico, por lo que resulta til tener en cuenta la optimizacin rotacional adems de la optimizacin de bsqueda. La optimizacin rotacional se ha utilizado durante muchos aos con dispositivos de cabeza fija. La estrategia de primero el tiempo de latencia ms corto (SLTF, shortest-latency-time-first) para la optimizacin rotacional es anloga a la estrategia SSTF para la optimizacin de bsqueda. Una vez que el brazo del disco llega a un cilindro determinado, puede haber muchas solicitudes pendientes para las diversas pistas de dicho cilindro. La estrategia SLTF examina todas estas solicitudes y atiende primero la que tiene el retraso rotacional ms corto. Se ha demostrado que esta estrategia llega cerca del rendimiento ptimo terico y su realizacin es relativamente sencilla. La optimizacin rotacional se denomina a veces puesta en cola de sectores; los sectores se colocan en una cola segn su posicin alrededor del disco y se atienden primero los sectores ms cercanos. Pgina 45 de 164

El desempeo (o rendimiento) se refiere al modo en el que un sistema de cmputo cumple con sus objetivos, o la eficiencia con la que lo hace. Por tanto, el desempeo es una cantidad relativa ms que absoluta, aunque muchas veces se hablar de medidas absolutas de desempeo tales como el nmero de trabajos por hora que puede atender un sistema de cmputo dado. No obstante, siempre que se estima una medida del desempeo, lo normal es que sirva como base para comparaciones . Algunas medidas del desempeo, tales como la facilidad de uso, son difciles de cuantificar. Lo contrario sucede con otras, tales como el nmero de accesos a disco por minuto. El evaluador del rendimiento debe asegurarse de tomar en cuenta los dos tipos de mediciones, aunque quiz slo sea posible proporcionar datos estadsticos precisos en el segundo caso. Se dice que algunas medidas del desempeo, tales como el tiempo de respuesta estn orientadas al usuario. Otras, como el porcentaje de utilizacin del procesador, se dice que estn orientadas al sistema. Algunas de las medidas ms comunes del desempeo son: Tiempo de retorno (turnaround time): En un sistema de procesamiento por lotes, se define como el tiempo transcurrido desde la entrega de un trabajo hasta su devolucin al usuario. Tiempo de respuesta: Es el tiempo de retorno en un sistema interactivo, y a menudo se le define como el tiempo transcurrido desde que el usuario presiona una tecla Enter (Intro) u oprime el botn de un ratn hasta que el sistema comienza a imprimir o exhibir una respuesta. Tiempo de reaccin del sistema: En un sistema interactivo, se define a menudo como el tiempo transcurrido desde que el usuario presiona una tecla Enter (Intro) u oprime el botn de un ratn hasta que se otorga la primera tajada de tiempo de servicio a esa solicitud del usuario. Estas son cantidades probabilsticas, y en los estudios de simulacin y modelado de sistemas se consideran como variables aleatorias. Cuando se habla del valor esperado de una variable aleatoria, se esta haciendo referencia a su valor promedio. Pero los promedios muchas veces pueden ser engaosos porque un valor medio dado se puede producir promediando una serie de valores idnticos o casi idnticos, o bien promediando una amplia variedad de valores, algunos mucho ms grandes y algunos mucho ms pequeos que el promedio calculado. Es por ello es que a menudo se utilizan otras medidas de desempeo, como por ejemplo: Varianza de los tiempos de respuesta: La varianza de los tiempos de respuesta es una medida de la dispersin. Una varianza pequea indica que los tiempos de respuesta que perciben los usuarios estn en general cerca de la media. Una varianza considerable indica que algunos usuarios pueden estar recibiendo tiempos de respuesta muy distintos de la media. Produccin: Es la medida de rendimiento de trabajos por unidad de tiempo. Carga de trabajo: Es la medida de la cantidad de trabajo que se ha introducido en el sistema, cantidad que el sistema debe procesar en condicio nes normales para que su funcionamiento se considere aceptable. Capacidad: Es una medida de la produccin mxima que puede tener un sistema, si se supone que cada vez que el sistema est preparado para aceptar ms trabajos, hay otro trabajo inmediatamente disponible. Utilizacin: Es la fraccin de tiempo que est en uso algn recurso. La utilizacin puede ser una medida engaosa. Aunque al parecer lo mejor es tener un porcentaje de utilizacin alto, esto puede ser el resultado de un aprovechamiento ineficiente. Una forma de lograr un alto porcentaje de utilizacin del procesador, por ejemplo, es ejecutar una serie de procesos, cada uno de los cuales esta en un ciclo infinito. Otro punto de vista sobre la utilizacin del procesador ofrece tambin observaciones interesantes. Se puede considerar que el procesador en un momento dado est ocioso, en estado de programa o en estado de supervisin. Cuando un procesador est en Pgina 46 de 164

estado de programa realiza labores en beneficio de un usuario y lo ms probable es que el costo se cobre a dicho usuario. Sin embargo, cuando el procesador esta en el estado de supervisin, se encuentra dentro del sistema operativo. Parte de este tiempo se puede cobrar directamente a los usuarios, pero una parte, como el tiempo ocupado en conmutar entre diversos procesos en los sistemas de programacin, no es sino un gasto general. Este componente de gasto general puede ser considerable en algunos sistemas. As, cuando se mide la utilizacin del procesador, debe interesar cunto de este uso es trabajo productivo en beneficio de los usuarios y cunto es un gasto general del sistema.

Pgina 47 de 164

CAP T UL O IV
AD M INIST RAC IN DE CPU
Retomando del concepto de procesos y la necesidad de planificar su utilizacin de la CPU, es necesario tener presente que la planificacin se hace teniendo en cuenta determinados criterios: Tiempo de respuesta. En un sistema interactivo puede que el mejor criterio no sea el tiempo de retorno, por eso se utiliza esta otra medida: El tiempo que transcurre desde que se emite solicitud hasta que se recibe la primera respuesta. Tiempo de retorno. Desde el punto de vista de un nico proceso el criterio ms importante es el tiempo que tarda en ejecutarse. El intervalo de tiempo transcurrido desde la entrada de un proceso en el sistema hasta su finalizacin. Plazos. Si se especifica un plazo de terminacin de un proceso la planificacin debe planificar otras metas a la maximizacin de plazos cumplidos. Previsibilidad. Una tarea que se ejecute reiteradamente se deber ejecutar en el mismo tiempo y con el mismo coste. Productividad. Nmero de procesos finalizados por unidad de tiempo. Utilizacin de procesador. Porcentaje de tiempo que proces ador esta ocupado. Equidad. Todos los procesos deben ser tratados de igual forma impidiendo inanicin de un proceso. Prioridades. Se debe favorecer a los procesos con mayor prioridad. Recursos equilibrados. En lo posible, se deben mantener todos los recursos del sistema ocupados. Tiempo de espera. Total de tiempo que un proceso espera por su ejecucin completa. Se obtiene sumando los tiempos de espera de todas las rfagas con el tiempo de espera de la primera rfaga.

Adems existen otras polticas de planificacin. Por ejemplo, hay sistemas cuya poltica de planificacin se basa en prioridades de dos tipos: Estticas (se mantienen durante la ejecucin) y dinmicas (que pueden variar durante ejecucin). El resto de las polticas pueden ser de tipo apropiativas y no apropiativas: No apropiativas (no explusivas). Una vez que el proceso obtiene CPU no le puede ser requisada hasta que acaba la rfaga. Tiene como inconveniente el acaparamiento injusto de la CPU. Apropiativas (explusivas). Permiten que un proceso con mayor prioridad requise de CPU al proceso que la tenia asignada sin finalizar su ejecucin. Para implementar un tiempo compartido y tiempo real es necesaria una planificacin apropiativ a.

En general, existen varios algoritmos de planificacin. Por ejemplo: FCFS (First Come First Serviced). SJF (Smallest Job First). SRT ( SJF apropiativo). RR (Round Robin). Colas multinivel. Colas multinivel realimentadas. Pgina 48 de 164

A lgoritmo FC FS
En FCFS, el proceso que primero solicita la CPU es el primero al que se le asigna. Esta poltica se implementa fcilmente utilizando una cola FIFO. Cuando un proceso entra el PCB apunta al ltimo proceso en la cola FIFO. Cuando la CPU est libre se asigna al proceso que est situado primero en la cola. En la poltica FCFS el tiempo promedio de espera es bastante largo. El algoritmo FCFS es no apropiativo, una vez que se ha asignado la CP U a un proceso, ste la conserva hasta que desee liberarla ya sea por terminacin o por E/S lo cual puede llegar a ser especialmente problemtico. Por ejemplo: Si P1 hubiese llegado al final, los tiempos hubiesen mejorado bastante, logrando un tempo de espera media de slo 3.3

A lgoritmos S JF & S R T
En el algoritmo SJF (tiempo restante ms corto) se asocia a cada proceso la longitud de su siguiente rfaga de CPU. Cuando la CPU est disponible es asignada al proceso que tiene la siguiente rfaga de CPU menor. Si dos procesos tienen la misma longitud para la siguiente rfaga de CPU se utiliza la planificacin FCFS para romper el empate. Puede comprobarse que el algoritmo SJF es ptimo, ya que ofrece el menor tiempo promedio para un conjunto de procesos dados. El problema principal del algoritmo es el conocimiento de la longitud de la siguiente rfaga de CPU por tanto no puede implantarse a nivel de la planificacin de la CPU, aunque se utilizan aproximaciones. Aunque no se conocen los valores de las siguientes rfagas de la CPU se puede predecir su valor esperando que sea ms o menos del mismo tamao que las anteriores (por ello se elige el proceso con rfaga previa de CPU ms breve) El algoritmo SJF puede ser apropiativo (SRT) o no apropiativo. La alternativa se plantea cuando un nuevo proceso llega a la cola de procesos listos mientras se est ejecutando otro proceso. El nuevo proceso puede tener una rfaga de CPU menor que lo que resta del proceso que se ejecuta en ese momento. Un algoritmo SRT desplazar al proceso que se ejecuta. Por ejemplo:

Pgina 49 de 164

P lanifica cin P or P r iori da des


Bajo este concepto, el procedimiento se basa en que cada proceso tiene una prioridad; luego, entrar a la CPU aquel proceso que tenga mayor prio ridad. En este caso, la poltica puede ser explusiva o no explusiva y las prioridades de los procesos las puede asignar en forma interna el propio sistema operativo o pueden asignarse en forma externa por el usuario. El algoritmo SJF es un caso de planificacin por prioridades. En este caso prioridad ser proporcional a la duracin estimada. El mayor riesgo que presenta la asignacin de prioridad de este modo es la posibilidad de postergar demasiado a los procesos con menos prioridad; como solucin, se suele aumentar progresivamente la prioridad de los procesos en espera (envejecimiento).

A lgoritmo R ound R obin


Round Robin (algoritmo de planificacin circular) fue diseado especialmente para sistemas de tiempo compartido. Se define una pequea cantidad de tiempo o cuanto de tiempo, que generalmente vara entre los 10 y 100 milisegundos. La cola de procesos listos se trata como una cola circular, el planificador de CPU la recorre asignando a cada proceso un cuanto de tiempo. Se mantiene la cola de listos en una cola FIFO. Los nuevos procesos se agregan al final de la cola. El planificador toma el primer proceso de la cola de listos y programa el cronmetro para que provoque una interrupcin y despacha el proceso. Pueden suceder una de estas dos cosas. Que el proceso tenga una rfaga de CPU menor que el cuanto, el proceso se libera voluntariamente. Si la rfaga es ms grande que el cuanto, el cronmetro se activar y provocar una interrupcin para el sistema operativo. Se ejecuta cambio de contexto y el proceso se colocar al final de la cola de listos.

El rendimiento del RR depende en gran medida del cuanto de tiempo. Si el cuanto es muy grande la poltica es la misma que la del FCFS. Si es muy pequeo, el enfoque se llama compartir el procesador, y para los usuarios parece que cada proceso tiene su propio procesador; pero si llega a ser demasiado pequeo, entonces, ocurrirn demasiados cambios de contexto y el rendimiento caer.

Colas M ultinivel
Se han creado otros algoritmos de planificacin en aquellos sistemas donde los procesos pueden clasificarse fcilmente en diferentes grupos. Un algoritmo de planificacin de colas de mltiples niveles divide la cola en varios niveles. Los procesos se asignan de forma permanente a una cola, generalmente dependiendo de una prioridad. Cada cola tiene su propio algoritmo de planificacin. Debe existir adems una planificacin entre colas la cual es generalmente una planificacin apropiativa de prioridad fija. Se gestiona la cola de ms prioridad hasta que est vaca y se pasa a la siguiente. La planificacin de colas multinivel (con realimentacin) permiten al proceso moverse de una cola a otra. La idea es separar a los procesos con diferentes caractersticas en cuanto a rfagas de CPU. Si n procesos utilizan demasiado tiempo la CPU, pasarn a una cola de m enor prioridad. Este esquema deja a los procesos interactivos y a los limitados por E/S en las colas de mayor prioridad.

Pgina 50 de 164

Por lo general un planificador de colas multinivel se define por los siguientes parmetros: Nmero de colas. Algoritmo de planificacin para cada cola. El mtodo utilizado para promover un proceso a colas de mayor prioridad. El mtodo utilizado para degradar un proceso en colas de menor prioridad. Mtodo utilizado para determinar a cual cola entrar un proceso cuando necesite un servicio. Tiempo umbral, definido como el tiempo en que una tarea puede finalizar si con esto finaliza su ejecucin completa mejorando as el rendimiento medio del sistema. Tiempo de refresco, que es el tiempo mximo que una tarea puede estar en una cola sin ser ejecutado; transcurrido ese tiempo sube de nivel.

A lgoritmo R ound R obin V ir tua l


El algoritmo RR Virtual se aplica a sistemas con muchas operaciones de E/S y rfagas de CPU cortas. Cuando se va a seleccionar una tarea, se da prioridad a las que han finalizado su operacin de E/S frente a las que vienen de la cola de listos. Con las tareas que vienen de E/S se crea una cola de prioridad, pero el cuanto asignado queda disminuido en el tiempo de CPU ejecutado. Su finalidad es la utilizacin de los dispositivos de E/S.

E valuacin D e Las P olticas


En la realidad es difcil determinar que algoritmo es mejor o peor; pues el rendimiento de cualquiera de ellos variar en funcin de las cargas de trabajo. Por esta razn, es necesario aplicar algn criterio que permita determinar la eficiencia de cada uno de ellos para finalmente implementar el que mejor se ajuste a un sistema operativo en particular. Entre las estrategias utilizadas para evaluar la eficiencia de un algoritmo se pueden encontrar: El modelo de terminista. El cual consiste en someter a las polticas a una carga de trabajo representativa. Los modelos de colas (estadsticos). Se trabaja con modelos estadsticos para evaluar matemticamente las cargas de trabajo. Las simulaciones. Se construye un modelo informtico de la mquina y se le inyecta una carga de procesos simulada. La implementacin. En este caso simplemente se modifica el sistema operativo y se prueba en condiciones reales.

Pgina 51 de 164

CAP T UL O V
AD M INIST RAC IN DE MEMORIA
En un sentido amplio los programas del sistema se encargan de controlar las operaciones propias del computador, mientras que los programas de aplicacin son los que resuelven problemas especficos a los usuarios. De los programas del sistema el ms importante es el sistema operativo cuyo objetivo es que el computador se pueda utilizar de una manera cmoda y eficiente, proporcionando un caparazn a la mquina desnuda que permite dar la visin de una mquina virtual, con la que es factible comunicarse al crearse un interfaz entre el usuario y la mquina y gestionar los recursos de la misma. Para mejorar la utilizacin de la CPU y su velocidad de respuesta a los usuarios, el sistema operativo debe mantener varios procesos en memoria. Es posible hallar muchos esquemas para la administracin de la memoria, los cuales reflejan distintas estrategias para realizar una misma tarea, y la mejor o peor eficiencia de los distintos algoritmos depende situaciones muy concretas. Como ya se ha indicado en el Captulo N 2, la monoprogramacin es el modo de trabajo en el que solamente un programa utiliza el procesador. A continuacin se mostrar cmo se ha gestionando y cmo se gestiona la memoria en aquellos sistemas que utilizan este modo de trabajo:

La memoria de dica da .
Las primeras computadoras utilizaban lo que s denomina rgimen dedicado, consistente en que el programador acceda directamente al hardware y gestionaba la memoria en sus programas. En estos primeros equipos se programaba en lenguaje mquina, sin existir sistema operativo y consiguientemente tampoco gestor de memoria. De esta forma, la utilizacin de la memoria es ineficaz y se obliga a un conocimiento profundo del hardware utilizado. El programador dedicaba gran parte de su tiempo y esfuerzo a gestionar el propio hardware, desvindolo de su principal objetivo que era el proceso de la informacin.

D ivis in D e Memoria: E l M onitor R eside nte


La introduccin de los sistemas ope rativos para utilizar mejor el hardware dividi la memoria en dos zonas, una utilizable por el usuario y otra reservada para la parte residente del propio sistema operativo denominada comnmente monitor.
(*)

Este reparto de la memoria introduce nuevos problemas que es necesario resolver, estos problemas son:
Cmo asegurar la independencia de ambas zonas (Proteccin). Cmo asegurar que los programas de usuario no se vean afectados por esta divisin de la memoria.

P roteccin de la me mor ia
Debido a que el programa monitor y el programa de usuario van a compartir la memoria, se hace necesario proteger la zona del sistema operativo contra cualquier intento de acceso a dicha zona por parte del programa. Se establece, por tanto, una direccin frontera que limita la zona del sistema
(*)

En general, se habla de particiones fijas (cuando la memoria es segmentada en porciones de tamao fijo e invariable durante el funcionamiento de la mquina) y de particiones variables (cuando la memoria es dividida dinmicamente de acuerdo a las necesidades). Pgina 52 de 164

operativo. Cualquier direccin de memoria que pida o solicite el programa de usuario se compara con dicha direccin frontera, permitiendo el acceso o no, segn corresponda. Este control se realiza directamente por el hardware a travs de uno de sus registros. Evidentemente, este control provoca un cierto aumento de tiempo en el acceso a la memoria, pero ste queda compensado con la mejora en rendimiento que permite el sistema operativo. La direccin frontera, en general, suele ser va riable para permitir que un sistema pueda ir evolucionando en prestaciones y versiones de su propio sistema operativo, en definitiva que pueda variar su tamao, obligando por tanto a variar la direccin frontera.

R easignac in de dire cciones


Una vez inicializado el sistema operativo, el contenido del registro frontera indicar el punto a partir del cual puede cargarse el programa de usuario. Para ello, es necesario reasignar las direcciones del programa en funcin de la frontera. Existen dos formas de realizar la reasignacin, una esttica y otra dinmica. La reasignacin esttica se realiza durante la compilacin, o bien durante la carga del programa en memoria. De esta manera, cualquier variacin de tamao en el sistema operativo exige una nueva compilacin o carga del programa. Es una tcnica fcil de realizar, pero demasiado rgida. La reasignacin dinmica se realiza durante la ejecucin del programa. Un dispositivo especial del hardware interceptar cada direccin lgica generada por el programa y le sumar el contenido del registro frontera para obtener la direccin real correspondiente. Cualquiera que sea la tcnica utilizada, el usuario no manejar direcciones reales en su programa. Utilizar direcciones relativas que podrn variar entre 0 y el mx imo permitido por el sistema operativo. Este es el denominado espacio lgico de direcciones. Posteriormente, el sistema operativo, con la ayuda del hardware, establecer la correspondencia adecuada entre las direcciones relativas y las direcciones reales que configuran lo que se denomina espacio fsico de direcciones (memoria real). Esta separacin entre la visin del usuario (espacio lgico) y la memoria real (espacio fsico) permite gestionar sta con mayor eficacia.

Memoria V irtual
En la actualidad es muy corriente or hablar de memoria virtual en el ambiente computacional. Como su nombre lo indica, la memoria virtual es una memoria que en realidad no existe fsicamente. Si bien se entiende que la memoria es cualquier forma de almacenamiento, permanente o no, la memoria virtual es un tipo de memoria equivalente a la memoria RAM, es decir es voltil y limitada. Pero es un tipo de memoria con capacidades de almacenamiento generalmente mucho mayores que la capacidad de una memoria RAM ordinaria, pero paga esta virtud en velocidad; es decir, la memoria virtual es mucho ms lenta que la memoria RAM. La memoria virtual puede ser generada a partir de una combinacin de capacidades de hardware y sistema operativo. Su tamao es inversamente proporcional a su velocidad de acceso y generalmente se trata de una forma de almacenamiento en disco el cual es administrado de una forma muy especial a fin de acelerar al mximo las velocidades de acceso y traspaso de informacin a la memoria RAM para su utilizacin verdadera. La memoria virtual ms all de cumplir una funcin similar a la memoria RAM es algo as como un soporte para guardar momentneamente toda la informacin que es de vital importancia para la correcta funcionalidad de los procesos pero que por limitaciones de hardware no pueden ser almacenada en RAM. La idea fundamental detrs de la memoria virtual es que el tamao combinado del programa, los datos y la pila de ejecucin puede exceder la cantidad de memoria real disponi ble para l. El sistema operativo mantiene aquellas partes del programa que se estn utilizando en cada momento en la memoria principal y el resto permanece en el disco. En la medida en que se vayan necesitando nuevas partes estas se intercambian con las residentes en la memoria principal. En los sistemas que utilizan memoria virtual, todas las direcciones son virtuales y el conjunto de todas ellas conforman el espacio de direcciones virtuales. En los computadores donde no hay memoria virtual, Pgina 53 de 164

la direccin se coloca directamente sobre el bus de la memoria, lo que permite que se pueda acceder al contenido de la memoria fsica que tenga tal direccin. Al utilizar memoria virtual, las direcciones no pasan directamente al bus de memoria, sino que van a una unidad de administracin de la memoria (MMU, Memory Manager Unit), un conjunto de chips, que asocian las direcciones virtuales con las direcciones de memoria fsica.

La idea central de la memoria vi rtual es que direccin es diferente de localizacin fsica, por ello se hace necesario tomar las direcciones virtuales y convertirlas a reales para poder tener acceso a la posicin de memoria correspondiente.

S wappin g
Como se mencion anteriormente una de las principales preocupaciones administrativas del sistema operativo, en cuanto a memoria virtual se refiere, es la optimizacin del proceso de intercambio de informacin entre la memoria RAM y la memoria virtual. Este proceso es conocido como swapping. Los tiempos de E/S son considerablemente superiores a los tiempos de procesamiento de la CPU, por lo que la memoria que el programa no est verdaderamente utilizando, perfectamente podra ser despejada para dejar lugar para ser utilizada por otro programa que s la requiera. Una forma de realizar el intercambio es utilizando el swapping. La idea bsica es que cada programa que est en memoria principal (RAM) tiene una copia en memoria secundaria (memoria virtual) y esa copia se traspasa a memoria principal cada vez que se requiera. Una forma de economizar tiempo puede obtenerse si se tiene presente que en la memoria virtual slo son dinmicos los datos y los resultados de los procesos, pero el cdigo de los programas (procesos de instruccin) siempre son fijos. As, si existe una copia de ellos en memoria secundaria, no es necesario rescribirlos en memoria secundaria, slo se requiere eliminarlos de memoria principal. Adems, es posible compartir cdigo de programas o bibliotecas de datos muy utilizados. Por ejemplo, en un sistema de tiempo compartido donde todos los usuarios estn trabajando en la creacin de documentos de un mismo editor, entonces se podra tener en memoria principal slo una copia del editor, la cual puede ser compartida por todos los usuarios. De esta forma sera recomendable dividir la memoria principal en tres reas.

Una de almacenamiento de datos. Los que implican intercambio de entrada y salida. Una de almacenamiento de programas. Los que implican slo intercambio de salida. Una de almacenamiento compartido. Lo cual no implica ningn tipo de intercambio.

Pgina 54 de 164

S egmentacin
Es posible generalizar la idea de separar la parte de programa y datos, y dividir la memoria en tantos trozos de longitud variable como sea posible y necesario. Este procedimiento es conocido como segmentacin. As, por ejemplo, cada rutina podra pertenecer a un trozo separado. La segmentacin tiene considerables ventajas desde el punto de vista administrativo de la memoria, ya que es ms fcil encontrar trozos libres pequeos. Adems, no es necesario tener todo el programa en memoria a la vez; basta tener aquellos segmentos, de l, que verdaderamente estn participando de la ejecucin. (*) Por supuesto, al ser los segmentos de longitud variable, se producen overhead , por lo que es conveniente minimizar las transacciones de estas secciones. Esto puede lograrse haciendo que las palabras que son referenciadas en forma cercana pertenezcan a un mismo segmento. Tpicamente una rutina correspondera a un mismo segmento; un arreglo, una estructura como una lista sera tambin conveniente que fuesen almacenadas ordenadamente en un mismo segmento. Los programas y los datos son almacenados arbitrariamente en memoria principal. Un segmento es descrito por un descriptor de segmento que, entre otras cosas, apunta a la base del segmento en memoria. Todos los descriptores de segmentos se almacenan en una tabla de segmentos. Hay una tabla de segmentos para cada proceso y la base y el tamao de cada segmento se anotan en el descriptor mismo de cada segmento. Una direccin virtual es un par ordenado (s,d), donde s es el ndice dentro de la tabla de segmentos (no es directamente el apuntad or al bloque) y d es un desplazamiento hacia el segmento (celda inicial dentro del segmento, no del bloque). Por lo tanto: Direccion_Real Tabla_segmento[s].base + d; 0 d Tabla_segmento[s].limite Direccion_Virtual (s,d) Algunos de los problemas tpicos que se pueden producir, son: 1. 2. 3. s esta fuera del rango mximo de la tabla de segmentos. d es mayor que el desplazamiento mximo permitido. El segmento referenciado por la tabla de segmentos no existe en memoria principal.

Estos podran considerarse como un error. Pero, si se recuerda que se est tratando de un medio compuesto por una memoria principal y una virtual, se corrige inmediatamente realizando el intercambio correspondiente, del segmento referenciado, desde memoria virtual a memoria principal. Al costado derecho se puede ver grficamente el concepto de traduccin de direcciones de memoria. Dentro de cada entrada de la tabla de segmentos se encuentra un campo (Long) que indica la longitud del segmento. Este se utiliza para verificar que no se hagan referencias fuera del segmento. Si esto llegase a ocurrir se generara una interrupcin.

(*)

Si bien se afirma que un segmento puede ser de longitud variable, se entiende que la memoria virtual se compone de bloques de longitud fija, los que a su vez se comp onen de celdas. Idealmente un segmento debera estar cuantizado en bloques y no en celdas pero esto hara perder espacio de almacenamiento disponible. Por lo tanto los segmentos se cuantifican en celdas. Por lo tanto, la responsabilidad del sistema operativo es asignar la informacin de los segmentos de tal modo que estos ajusten lo ms perfectamente posible a los bloques. Cuando un bloque es utilizado por dos o ms segmentos a la vez se dice que existe un overhead. Pgina 55 de 164

Un descriptor de segmentos se compone de tres campos de atributos y tres campos de datos.

donde :
Index Type State Length base limit :Es el ndice del descriptor dentro de la tabla de segmentos. :Programa, dato descriptor compartido. :En memoria principal, secundaria o en intercambio. :Largo del segme nto. :Direccin. :Direccin mxima.

El mecanismo de traduccin de una direccin sera: If (s > Tabla_Segmento[s].limit) { Error("Tabla de segmento fuera de rango") } else { X Tabla_Segmento[s] If (d > X.length) { Error("Segmento fuera de rango") } else { If (x.state = accesible) { // en memoria principal Dir X.base + d } else { SegFault() // Intercambiar de memoria secundaria a principal } } } Este algoritmo debe ser invocado por el hardware para cada operacin fetch (buscar) de una instruccin y tambin por cada referencia a una palabra de memoria. En sntesis, las ventajas de la segmentacin es que evita la fragmentacin interna, ya que los segmentos se definen del tamao que se requiera y que facilita la proteccin de la memoria. Por otra parte, la principal desventaja es que conduce a fragmentacin externa, que es un fenmeno que presenta cuando se manejan bloques de longitud variable.

P aginacin
Cuando los trozos de memoria son de tamao fijo se denominan pginas. El almacenamiento real es (*) particionado en marcos del mismo tamao que las pginas. De este modo una pgina puede y debe ser almacenada slo en un marco y viceversa. En forma anloga al mecanismo de direccionamiento de segmentos, para la paginacin se tiene: Direccion_Virtual (p,d), donde p es el indicador de la pgina y d el desplazamiento en ella.

(*)

Entindase como particin a las secciones en las que puede ser fraccionada la memoria principal. As, es conveniente tener presente que en el caso de la segmentacin las particiones son variables y en el caso de la paginacin las particiones son fijas. Tambin, segn el esquema ms sencillo de administracin de memoria, lo menos complejo es tener una sola particin Pgina 56 de 164

Se utiliza tambin una tabla de pginas en la cual sern almacenadas todas las referencias a la pgina. As mismo, el descriptor de pginas es similar al descriptor de segmentos, pero sin el campo de longitud de pgina. Si se supone que es el hardware el encargado de verificar que una direccin base sea vlida, el algoritmo para la traduccin de una direccin por paginacin del sistema operativo es: X Tabla_Pagina[p] If (d > Tamao_Marco_Pgina) { Error("Desplazamiento fuera de rango de pgina") } else { If (x.state = accesible) { // en memoria principal Dir X.base + d } else { PageFault() // Intercambiar de memoria secundaria a principal } } Como ejemplo, suponga que un computador puede generar direcciones virtuales de 16 bits que van desde 0 hasta 640K. Suponga adems que la mquina slo tiene 32K de memoria real. El espacio de direcciones virtuales se divide en unidades denominadas pginas y las unidades correspondientes en memoria real, marcos de pgina. Las pginas y los marcos siempre tienen el mismo tamao. En el ejemplo son de 4K. Las transferencias entre la memoria real y el disco son siempre unidades de pgina. Por ejemplo, si el programa referencia la direccin 0 virtual, esta se enva a la MMU. La MMU ve que esta direccin cae en la pgina 0 (04095), la cual de acuerdo a la tabla de pginas est en el marco 2 (8192 -12287). Transforma entonces la direccin en 8192 y manda esta al bus. La memoria no sabe de la existencia de la MMU y slo ve una solicitud de acceso a la posicin 8192, la que atiende. La direccin virtual 21500, que est a 20 bytes del inicio de la pgina virtual 5 (20480-24575) est asociada a la direccin real 12288+20=12308. Dado que la memoria virtual tiene 16 pginas y la memoria real 8 marcos de pgina, en un momento dado slo se podrn albergar en sta ltima 8 pginas. Es por ello que 8 entradas en la tabla de pginas estn marcadas con x, indicando que ellas no residen en la memoria real. Si se referencia la direccin virtual 32780 que est en la pgina 8 (12 bytes abajo de 32768). Como se ve en el grfico, la entrada correspondiente est marcada con x, lo que indica que ella no reside en la memoria real. En este caso se presenta una interrupcin denominada defecto o fallo de pgina, entonces el sistema operativo toma el control, elige un marco de pgina y lo "baja" de la memoria real. Despus trae la pgina correspondiente a la direccin referenciada y la ubica en el marco liberado, modifica las entradas correspondientes en la tabla de pginas y reinicia el proceso. Si en el ejemplo, el sistema operativo decidi liberar el marco 1, carga la pgina virtual 8 en la direccin fsica 4K y har dos modificaciones a la tabla de pgina. En la entrada 1 quedar una x, indicando que est pgina ya no reside en la memo ria real y en la entrada 8 quedar un 1 indicando que est pgina reside en tal marco. De esta forma la direccin virtual 32780, ser traducida como 4108 real.

Pgina 57 de 164

En un rgimen permanente, todos los marcos van a tender a estar ocupados, luego ser necesario ir desalojando marcos no utilizados para almacenar all las pginas faltantes de otro proceso que sea demandado. El mtodo de paginacin permite tener pginas compartidas entre varios programas. Normalmente tambin existe un bit que indica si una determin ada pgina ha sido modificada o no, lo cual es utilizado para determinar si el contenido de una pgina almacenada en un marco debe ser copiado a memoria secundaria o no. Resulta conveniente tener informacin, asociada a cada marco, que permita decidir que pgina desalojar y cual traer a memoria principal. Esta informacin es almacenada en una tabla de marcos y los distintos procesos (esquemas) de decisin de paginacin se llaman algoritmos de reemplazo. A la derecha se muestra la entrada tpica en una tabla de pginas. La direccin del marco de pgina , guarda la direccin en memoria real donde se encuentra la pgina. El bit presente/ausente , indica si la pgina reside en la memoria real o no. Si la pgina no est presente (0) y se referencia, se producir un defecto de pgina. Los bits de proteccin indican el tipo de acceso permitido. Estos generalmente se conocen como rwx y dependiendo de si estn encendidos, la pgina se podr leer (r), escribi r (w) o ejecutar (x). El bit de modificacin se enciende cada que la pgina sufre algn cambio en memoria real. Se utiliza cuando la pgina es seleccionada para salir de la memoria real, cuando se presenta un defecto de pgina. Si el bit est encendido, entonces la pgina se escribir sobre el disco. En caso contrario slo se desecha pues la imagen en disco es igual a la existente en la memoria real. El bit de referencia como su nombre lo indica se enciende cada vez que la pgina es referenciada, bien s para lectura o escritura. Sirve para apoyar al sistema operativo, para ea seleccionar la pgina a salir cuando se presenta un defecto de pgina. Las pginas no referenciadas son unas muy buenas candidatas a salir. Ver algoritmos de reemplazo. El bit de ca ching. Si est esta desactivado, cuando se produzca una operacin de E/S, el sistema (*) operativo busca la informacin en el hardware y no una copia antigua en el cach .

Existe un gran nmero de algoritmos de reemplazo de entre los cuales se har mencin a cuatro: Randmico. Es el mtodo ms sencillo; supone que es imposible adivinar que pgina ser requerida en el futuro. Cuando es necesario traer alguna pgina a memoria principal selecciona aleatoriamente un marco y lo desaloja para dejar el espacio requerido. Cclico. Es un mtodo bastante simple, el cual consiste en ir trayendo pginas, no necesariamente en orden, a memoria principal y cada vez que sea requerido un espacio se desaloja el marco siguiente al ltimo utilizado. Es decir, se va buscando cclicamente en la tabla de marcos, de modo que una pgina debe esperar todo un ciclo para ser desalojada. Este mtodo sup one que el tiempo de utilizacin de una pgina es muy cercano al tiempo promedio de utilizacin. FIFO. Supone que la probabilidad de la utilizacin de una determinada pgina es una funcin decreciente en el tiempo. Requiere de una cola FIFO, en la que se van anotando las pginas a

(*)

La memoria cach agiliza el proceso y amortigua la diferencia de velocidad entre la memoria principal y los registros mquina. Estos ltimos, son registros de almacenamiento implementados en hardware, siendo su velocidad de acceso elevada y su tamao muy limitado. Pgina 58 de 164

medida que van siendo tradas a memoria principal. De este modo, cuando se requiere un marco de pgina, se retira la pgina que lleva ms tiempo en memoria. LRU (Last Recently Used). El mtodo del ltimo recientemente usado, se basa en el hecho de que algunas pginas son mucho ms utilizadas que otras. La suposicin es que la probabilidad de que una pgina sea utilizada depende del intervalo de tiempo transcurrido desde su ltima utilizacin. A menor intervalo mayor probabilidad de seguir utilizando la pgina. Por lo tanto se desalojan las de mayor intervalo de tiempo transcurrido (las que menos se han usado).

Los mtodos mencionados anteriormente s slo de desalojo de marcos. El ideal de todos estos on mtodos es nunca llegar a desalojar una pgina que ser referenciada muy prximamente. As mismo, existen tcnicas de paginacin para realizar el intercambio desde memoria secundaria a principal. El ms simple de ellos es paginar slo cuando sea necesario. Una forma ms eficiente y ms compleja es utilizar algn medio de paginacin anticipada, el cual consiste en adivinar que pgina del almacenamiento secundario ser requerida en el futuro prximo y cuando la CPU disponga de un quantum de tiempo ocioso calcular que pgina es posible desalojar y, entonces, realizar la paginacin anticipada. Si el nmero de marcos asignados a un proceso de baja prioridad desciende por debajo del nmero mnimo requerido por la arquitectura del computador, se debe suspender la ejecucin de ese proceso. Luego, se deben descargar sus pginas restantes, liberando todos los marcos asignados. Si un proceso no posee suficientes marcos asignados, provocar pagefoults frecuentes; sin embargo como todas sus pginas estn activas, deber descargar una pgina que muy probablemente se volver utilizar dentro de un breve lapso de tiempo. Por consiguiente vuelve a efectuar un pagefoult una y otra vez. A esta altsima actividad de paginacin se le conoce como hiperpaginacin; anlogamente existe la hipersegmentacin. Se dice que un proceso se encuentra en fase de hiperpaginacin cuando emplea ms tiempo paginando que procesando (ejecutando).

P aginacin D e M lti ples N iveles


Para evitar el problema de tener unas tablas de pginas muy grandes en la memoria todo el tiempo, algunos sistemas utilizan tablas con varios niveles o (*) hiperpaginacin . La idea central de las tablas de pginas de varios niveles consiste en evitar mantener todas las tablas en la memoria todo el tiempo. Aquellas que no sean necesarias no deben mantenerse all. La direccin virtual ahora se compone de tres campos: dos direcciones de pginas y un desplazamiento. Cuando una direccin virtual llega a la MMU, esta extrae primero el componente p1 y lo utiliza como ndice en la tabla de pginas de nivel 1. All ubica la direccin donde se encuentra la direccin de inicio de otra pgina en la tabla de pginas de nivel y con la componente p2 de la direccin encuentra la direccin del marco que contiene la pgina respectiva. Luego con la tercera componente de la direccin, el desplazamiento d, encuentra la direccin real. El sistema de dos tablas, puede aumentarse a tres o ms, pero ello implica que la complejidad del sistema se eleve de manera considerable, por lo que no se acostumbra ms de tres niveles.

(*)

As como el concepto de paginacin, dependiendo del contexto, puede ser entendido como (1) una estrategia de administracin de memoria o como (2) el proceso de intercambio de pginas desde memoria virtual a memoria real. La hiperpaginacin puede ser entendida como (1) una estrategia de paginacin de mltiples niveles o como (2) el intercambio excesivo de pginas entre memoria real y memoria virtual. Pgina 59 de 164

S egmentacin/P aginac in
En este mtodo las direcciones virtuales se componen de tres partes: un segmento, una pgina y un desplazamiento (offset). La primera sirve para encontrar la entrada en la tabla de segmentos en donde se encuentra la direccin donde comienza la pgina, con la segunda componente se encuentra la entrada correspondiente a la pgina y all la direccin del marco de pgina que junto con el desplazamiento dan la direccin real. Una ventaja de este mtodo es que permite mantener una estructura de segmentacin sin conducir a fragmentacin externa. Adems permite mantener las tablas de pginas en memoria auxiliar.

Fragme nta cin


Tanto para el caso de la paginacin, para el de segmentacin y en general en todos los sistemas de cmputo (sea cual sea la organizacin de su almacenamiento), se presenta la fragmentacin del almacenamiento. En los sistemas de multiprogramacin y particiones fijas, la fragmentacin se presenta porque los trabajos de los usuarios (pginas) no llenan por completo las particiones designadas (marcos) o porque una particin se queda sin utilizar por ser demasiado pequea para almacenar una tarea en espera. La fragmentacin se presenta en todas las formas de almacenamiento y a todo nivel de informacin. En el caso de la paginacin, cuanto menor sea el tamao de las pginas, ms pginas y marcos de pgina habr y mayores tendrn que ser las tablas de marcos. El desperdicio de almacenamiento primario debido a tablas excesivamente grandes se denomina fragmentacin de tablas. Para el caso de particiones variables y fijas, tambin existe una fo rma de fragmentacin de la informacin en el sentido que, a pesar de estar ocupadas todas las particiones, la informacin correspondiente a una misma tarea se encuentra dispersa en una serie de particiones no contiguas y nisiquiera en un orden ascendente o descendente.

Fragmentacin por perdida de espacios

Fragmentacin por divisin de cdigo de procesos

Los sistemas operativos modernos y las nuevas tcnicas de programacin y generacin de cdigos (por ej emplo la programacin orientada al objeto) minimizan el nivel de fragmentacin de la informacin de tal forma que, al menos para el caso de los cdigos de ejecucin de programas, se puede afirmar que la fragmentacin es casi nula.

E strategias D e Loca li da d
El concepto de localidad es fundamental en la mayor parte de las estrategias administrativas de memoria, e indica que los procesos tienden a hacer referencia a la memoria en patrones no uniformes y altam ente localizados.

Concepto De Localidad
La localidad se manifiesta tanto en el tiempo como en el espacio. La localidad temporal es la localidad en el tiempo(*) y la localidad espacial significa que los elementos cercanos a una localidad tienden a ser similares a los contenidos en dicha localidad(**).

(*)

Si en La Serena se sabe que son las 3:00 P.M. y est lloviendo intensamente, entonces es muy probable, aunque no seguro, que el clima haya estado as hace 15 minutos y en 15 minutos ms contine igual. Pgina 60 de 164

La localidad es una propiedad emprica que se observa, en los sistemas operativos, particularmente en el rea de la administracin del almacenamiento. Nunca esta garantizada, pero generalmente es altamente probable. De hecho, si se toma en consideracin la forma en que se escriben los programas y se organizan los datos y cdigos, el concepto de localidad es bastante razonable en los sistemas computacionales. Tal vez una de las consecuencias ms significativas de la localidad de las referencias a memoria es que un programa puede ejecutarse ms rpida y eficientemente mientras su subconjunto de pginas favorecido se encuentre en el almacenamiento primario. Se han realizado muchsimos estudios que ilustran el concepto de localidad. Gracias a estos estudios naci la teora de conjunto de trabajo en el comportamiento de un programa.
Localidad temporal Ciclos, Subrutinas, Pilas, Variables de cuenta y totalizacin. Localidad espacial Recorridos de arreglos, Ejecucin secuencial de cdigo, Tendencia de los programadores a ubicar, prximas unas de otras, las definiciones de variables afines

Conjunto De Trabajo
En trminos informales, un conjunto de trabajo es un conjunto de pginas a las que se hace referencia activamente en un proceso. Se ha afirmado que para ejecutar en forma eficiente un programa se debe mantener en memoria principal su conjunto de trabajo; de otra forma, podra surgir una situacin de hiperpaginacin, debido a las frecuentes solicitudes de pginas contenidas en memoria virtual. Lamentablemente, este tipo de deducciones a menudo dirigen el accionar hacia polticas de administracin de memoria virtual en exceso conservadoras, lo cual limita en ltima instancia el nmero real de procesos que pueden disponer de marcos para compartir el almacenamiento primario. Una poltica administrativa del almacenamiento virtual mediante conjuntos de trabajo intenta mantener en memoria principal todos los conjuntos de trabajo de cada uno de los procesos activos. La decisin de aadir o no un nuevo proceso al conjunto de procesos activos se basa en el hecho de si existe suficiente espacio de almacenamiento principal como para contener todo el conjunto de trabajo del nuevo proceso. Debido a que, en la situacin inicial, es imposible determinar el tamao exacto del conjunto de trabajo de un proceso determinado, el clculo de dimensiones de los grupos de trabajo, generalmente, se realiza a travs de heursticas. Se define el conjunto de trabajo como una funcin sobre un par ordenado: W(t,w), donde W representa el nmero de pginas a las que el proceso ha hecho referencia en el intervalo de tiempo t-w. El tiempo de proceso es el tiempo durante el cual un proceso tiene la CPU. A la variable w se le conoce como tamao de ventana del conjunto de trabajo. La determinacin de la magnitud adecuada de w es fundamental para la adecuada operacin de alguna estrategia de administracin del almacenamiento con conjuntos de trabajo. Es claro que a medida que el tamao de w aumenta tambin lo hace el conjunto de trabajo del proceso asociado. Cuando el sistema operativo destruye proporcionalmente la memoria significa que recoge la informacin de los conjuntos de trabajos y asigna memoria segn la demanda en forma proporcional a las necesidades de cada aplicacin. Cuando la distribucin de memoria se efecta en partes iguales sin importar las necesidades reales de cada aplicacin, se haba de una distribucin equitativa.

(**)

Si en La Serena se sabe que son las 3:00 P.M. y est lloviendo intensamente, entonces es muy probable, aunque no seguro, que en los pueblos cercanos el clima est en las mismas condiciones. Pgina 61 de 164

Los conjuntos de trabajo varan durante el transcurso de ejecucin de un proceso. En ocasiones se aaden o quitan pginas, a veces el cambio es drstico y el proceso requiere de un cambio total del grupo de trabajo. As, las suposiciones acerca del contenido y tamao del grupo de trabajo inicial no son necesariamente vlidas para la posteridad del proc eso. Esta situacin complica un poco las cosas para la poltica de administracin con conjuntos de trabajo. En la figura anterior, Tr representa una transaccin de pginas y Ci representa un conjunto de trabajo en algn momento. Primero, a medida que el proceso solicita la paginacin de su conjunto de trabajo inicial recibe gradualmente suficiente almacenamiento para contener su conjunto de trabajo. En ese instante y por algn tiempo su utilizacin del almacenamiento primario se estabiliza mientras hace slo referencias a las pginas activas de su conjunto de trabajo. Despus de un tiempo, el proceso realizar una transicin al siguiente grupo de trabajo, como lo muestra la cercha que une el primer grupo de trabajo y el segundo. Inicialmente, la curva sobrepasa el nmero de pginas del primer conjunto de trabajo debido a que el proceso demanda una paginacin rpida de su nuevo conjunto de trabajo. El sistema no tiene forma de determinar si se trata de una paginacin que agrega ms pginas al conjunto de trabajo previo o si se esta renovando por completo el conjunto de trabajo. Cada vez que ocurre una transaccin entre conjuntos de trabajo, la curva asciende y desciende haciendo notar la forma en que el sistema se adapta a la transicin.

A lgoritmos D e R eempla zo
Existen muchos y variados algoritmos para el reemplazo de pginas. Quiz cada sistema operativo cuente con su propio esquema de reemplazo. En general, se requiere de la seleccin de un algoritmo de reemplazo en particular el que presente la menor tasa de fallas de pgina. Se evala un algoritmo ejecutndolo para una serie determinada de referencias a memoria y calculando el nmero de fallas de pgina. A la serie de referencias a memoria se le Ilama serie de referencias. Se pueden generar artificialmente las series de referencias (utilizando, por ejemplo, un generador de nmeros aleatorios) o rastreando un sistema y anotando la direccin de cada referencia a memoria. La segunda opcin produce un gran nmero de datos (alrededor de un milln de direcciones por segundo). Para reducir el nmero de datos, se observan dos aspectos. En primer lugar, para un tamao de pgina dado se necesita considerar slo el nmero de pgina, no toda la direccin. Segundo, si se tiene una referencia a una pgina p, entonces ninguna referencia a la pgina p que se presente inmediatamente despus provocar una falla de pgina; la pgina p ya se encontrar en memoria despus de la primera referencia y las referencias siguientes no provocarn fallas. Por ejemplo, si se rastrease un proceso determinado, se puede anotar la siguiente secuencia de direcciones: 0100, 0104, 0432, 0101, 0101, 0610, 0612, 0102, 0102, 0103, 0103, 0104, 0104, 0101, 0101, 0609, 0611, 0102, 0102, 0105, 0103,

lo cual, a 100 bytes por pgina, se reduce a la siguiente serie de referencias 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1.

Para determinar el nmero de fallas de pgina para una serie de referencias y un algoritmo de reemplazo de pginas concreto, se necesita conocer tambin el nmero de marcos de pgina disponibles. Evidentemente, si aumenta el nmero de marcos, se reducir el nmero de fallas de pgina. Por ejemplo, para la serie de referencias antes mencionada, si se dispusiese de tres o ms marcos, se tendran slo tres fallas, una para la primera referencia a cada pgina. Por otra parte, si hubiera slo un marco disponible, se tendra un reemplazo con cada referencia, generando 11 fallas. Por lo general, se espera una curva decreciente. Al aumentar el nmero de marcos, el nmero de fallas de pgina se reduce hasta un nivel mnimo. Adems de los algoritmos de reemplazo mencionados anteriormente en este texto, se pueden destacar:

Pgina 62 de 164

Algoritmo De Bits Adicionales De Referencia


Se puede obtener informacin adicional de la ordenacin anotando los bits de referencia a intervalos regulares. En una tabla en memoria se pude conservar un byte de ocho bits para cada pgina. A intervalos regulares (supngase cada 100 milisegundos), una interrupcin del cronmetro transfiere el control al sistema operativo. El sistema operativo desplaza el bit de referencia de cada pgina al bit de orden superior de su byte de ocho bits, desplazando los otros bits una posicin a la derecha y descartando el bit de orden inferior. Estos registros de desplazamiento de ocho bits contienen la historia de la utilizacin de la pgina durante los ltimos ocho periodos. Si el registro de desplazamiento contiene 00000000, entonces la pgina no ha sido utilizada en ocho periodos; una pgina que se utiliza por lo menos una vez cada periodo tendra un valor 11111111 en su registro de desplazamiento. Una pgina con un valor 11000100 en su registro histrico ha sido utilizada ms recientemente que una con valor 01110111. Si de interpretan estos bytes de ocho bits como enteros sin signo, la pgina con el menor nmero es la pgina menos recientemente utilizada y puede reemplazarse. No obstante, obsrvese que no se garantiza que los nmeros sean nicos. Se puede reemplazar todas las pginas con el menor valor o ut ilizar una seleccin FIFO entre ellas. Por supuesto, el nmero de bits histricos puede variar, y esa cantidad se seleccionara para acelerar las actualizaciones todo lo posible. En el caso extremo, el nmero puede reducirse a cero, dejando nicamente el bit de referencia. Esta versin se denomina algoritmo de reemplazo de pginas de segunda oportunidad.

Algoritmo De Segunda Oportunidad


El algoritmo bsico para el reemplazo de segunda oportunidad es un algoritmo FIFO. Sin embargo, cuando se selecciona una pgina, se examina su bit de referencia; si es igual a 0, se reemplaza la pgina. Sin embargo, si el bit de referencia es 1, se da a la pgina una segunda oportunidad y se pasa a seleccionar la siguiente pgina en el orden FIFO. Cuando a una pgina se le brinda una segunda oportunidad, se borra su bit de referencia y se establece como su instante de Ilegada el momento actual. De esta manera, una pgina a la que se le brinda una segunda oportunidad no ser reemplazada hasta que todas las dems pginas se reemplacen (o se les otorgue una segunda oportunidad). Adems, si una pgina se usa con la frecuencia suficiente para mantener en 1 su bit de referencia, nunca ser reemplazada. Una forma de implantar el algoritmo de segunda oportunidad (en ocasiones mencionado como reloj) consiste en usar una cola circular. Un apuntador indica cul es la siguiente pgina que se reemplazar. Cuando se requiere un marco, el apuntador avanza hasta encontrar una pgina con bit de referencia a 0; conforme avanza, borra los bits de referencia. En el peor de los casos, cuando todos los bits estn a 1, el apuntador recorre toda la cola, dando a cada pgina una segunda oportunidad; adems, borra todos los bits de referencia antes de seleccionar la siguiente pgina par a el reemplazo. Si todos los bits estn activos, el reemplazo de segunda oportunidad se convierte en un reemplazo FIFO.

Algoritmo LFU
Un algoritmo de reemplazo de pgina menos frecuentemente usada (LFU, least frequently used) mantiene un contador del nmero de referencias que se han hecho para cada pgina. Se reemplaza la pgina con el menor recuento. La razn para esta seleccin es que una pgina que se usa activamente debe tener un alto nmero de referencias. Este algoritmo tiene problemas cuando una pgina se usa mucho en la fase inicial de un proceso, pero despu s ya no se utiliza. Como se us bastantes veces, tiene un recuento alto y permanece en memoria aunque ya no se necesite. Una solucin consiste en desplazar los recuentos un bit a la derecha a intervalos regulares, formando un recuento promedio de utilizac in que disminuye exponencialmente.

Pgina 63 de 164

Algoritmo MFU
Otro algoritmo para el reemplazo de pginas es el reemplazo ms frecuentemente usado (MFU, most frequently used), que se basa en el argumento de que la pgina con el menor recuento probablemente acaba de llegar y an tiene que usarse. Como se podra esperar, no es comn ni el reemplazo MFU ni el LFU. La implantacin de estos algoritmos, es bastante costosa y estos no se aproximan mucho al reemplazo ptimo.

Algoritmos Adicionales
Existen muchos otros algoritmos que pueden usarse para el reemplazo de pginas. Por ejemplo, si se considera tanto el bit de referencia como el bit de modificacin como un par ordenado, se tienen las cuatro clases siguientes: (0,0) (0,1) (1,0) (1,1) : : : : Ni usada ni modificada. No usada (recientemente), pero modificada. Usada pero limpia (no modificada). Usada y modificada.

Cuando es necesario un reemplazo de pgina, cada pgina se encuentra en una de estas cuatro clases. Se reemplaza la pgina en la clase inferior no vaca. Si hay varias pginas en la clase inferior, se utiliza el reemplazo FIFO o se elige al azar una entre ellas.

Algoritmos Basados En Ajuste


Cuando los procesos y los espacios se mantienen en una lista ordenada por direcciones, se pueden utilizar diversos algoritmos para asignar la memoria para un proceso de reciente creacin. Se supone que el administrador de memoria conoce la cantidad de memoria a asignar. Entre ellos estn: First Fit (Primero en Ajustarse): El administrador de memoria revisa toda la lista de segmentos hasta encontrar un espacio lo suficientemente grande. El espacio se divide entonces en dos partes, una para el proceso y otro para la memoria no utilizada. Este algoritmo es rpido, puesto que busca lo menos posible. Siguiente en Ajustarse : Funciona de la misma forma que el anterior, con la diferencia que mantie ne un registro del lugar dnde se encuentra un espacio adecuado. La siguiente vez que se le llama, comienza a buscar desde el punto donde se detuvo, en lugar de comenzar a buscar siempre desde el inicio. Best Fit (Mejor en Ajustarse): Busca en toda la lista y toma el mnimo espacio adecuado. En lugar de asignar un espacio grande, intenta encontrar un espacio lo ms cercano al tamao necesario. El peor ajuste : Toma siempre el espacio ms grande disponible, de forma que el espacio resultante sea lo suficientemente grande para ser til. Estos cuatro algoritmos pueden agilizarse si se tienen dos listas independientes, una para los procesos y otra para los espacios. De esta forma todos ellos, pueden limitarse a inspeccionar la lista de espacios y no la de los procesos. Sin embargo, el aumentar la velocidad implica que la complejidad se aumenta y la velocidad al liberar la memoria se aumenta, ya que un segmento liberado, debe ser liberado de la lista de procesos y adicionado a la lista de espacios libes. Otro algoritmo de asignacin es el de ajuste rpido, que consiste en tener listas independientes para algunos de los tamaos que se solicitan con mayor frecuencia. Si se solicita un espacio de tamao tpico (de los ms frecuentes) se busca primero en tales listas. Igual sucede si se libera, se adiciona a una de ellas. Esto facilita la administracin de la memoria puesto que se van a tener espacios libres de tamaos comunes en una lista, lo que facilita su bsqueda. Sin embargo el mantenimiento de las listas tambin es costoso en tiempo. Pgina 64 de 164

CAP T UL O V I
C ONCURRENC IA
Para fines prcticos, los trminos paralelo y concurrente, desde el punto de vista computacional, son equivalentes. En estricto rigor, se dice que los procesos son concurrentes si existen en un mismo intervalo de tiempo (dt>0). Por otra parte, se dice que los procesos son paralelos si existen en un mismo instante t. (dt=0). Los procesos concurrentes pueden funcionar en total independencia, o bien, pueden (*) ser asncronos . Dos (o ms) procesos son paralelos si existen un mismo instante de tiempo, lo que implica que deben ser ejecutados en procesadores separados (para mayor informacin vase captulo VIII) . Por otra parte, se dice que dos (o ms) procesos son concurrentes si estn activos simultneamente. Grficamente, se tiene:

Los procesos P1 y P2, as como P2 y P3 son concurrentes, en cambio P3 y P1 no lo son. Generalizando se puede decir que cuand o hay multiprogramacin hay una alta probabilidad de tener concurrencia. Los procesos no concurrentes no presentan problemas de coordinacin, pues se ejecutan en perodos diferentes de tiempo y por lo general no hay comunicacin entre ellos. Los procesos c oncurrentes pueden ser independientes si no hay interaccin directa entre ellos o dependientes si la hay. Para los procesos concurrentes dependientes deben crearse mecanismos de comunicacin y coordinacin entre ellos. Para efectos de anlisis, se supondr que las instrucciones son entes indivisibles. Por ejemplo, en la realidad un simple incremento de contador se ejecuta en tres pasos, an cuando la instruccin es slo una. INSTRUCCIN X X+ 1 PASOS Load X Add 1 Store X

Del mismo modo, es conveniente considerar a los procesos como un conjunto de instrucciones. Por ejemplo, se supondr un sistema que administre bloques de memoria y una pila para anotar las direcciones de los bloques de memoria. El acceso a esta pila se hace mediante las operaciones: direccin Get_Bloque(), Set_Bloque(direccin), para pedir un dato de memoria (liberar memoria). para poner un dato en memoria (pedir memoria).

Se supondr la existencia de tres programas que comparten el uso de la memoria principal bajo e l control del sistema operativo (ver figura). El sistema operativo mantiene la pista de los bloques de memoria libres en una pila S. Cuando un bloque libre es requerido, el elemento del tope de la pila es retirado. Cuando un bloque se libera es colocado en la pila S. Adems, se har el fantasioso supuesto de que el sistema nunca ejecutar la instruccin Get_Bloque() cuando la pila S est vaca.

(*)

Un proceso asincrnico requiere de sincronizacin y cooperacin con otros procesos. Pgina 65 de 164

Se definen las rutinas para la administracin de memoria: Get_Bloque() { Direccin Pila[Tope] Tope Tope - 1 Return(Direccin) }

Set_Bloque(direccin) { Tope Tope + 1 Pila[Tope] Direccin }

Si se sabe que ambas operaciones se ejecutan concurrentemente y si se imagina que las rutinas pueden dividirse y entremezclarse, podra ocurrir la siguiente ejecucin de instrucciones: t0 t1 t2 t3 : : : : Tope Tope + 1 Direccin Pila[Tope] Tope Tope - 1 Pila[Tope] Direccin

se obtiene como resultado que la operacin Get_Bloque() recibe una direccin invlida y la operacin Set_Bloque() destruye una direccin buena. Por lo tanto debe hallarse la forma de que las operaciones puedan ser ejecutadas en instantes de tiempo no entremezclados y en forma estrictamente secuencial; como si se tratase de instrucciones indivisibles. A tales bloques de ejecucin indivisible se conocen con el nombre de secciones crticas, y la modificacin adecuada de estas operaciones ser vista a continuacin.

S ecciones Crt icas


Considere un sistema compuesto por n procesos {P0, P1, ..., Pn-1}. Cada proceso tiene un segmento de cdigo, llamado seccin crtica, en el cual el proceso puede estar modificando variables comunes, actualizando una tabla, escribiendo en un archivo, etc. La caracterstica importante del sistema es que, cuando un proceso se ejecuta en su seccin crtica, no se permite que ningn otro proceso se ejecute en su seccin. De esta manera, la ejecucin de las secciones crticas de los procesos es mutuamente excluyente en el tiempo. El problema de la seccin crtica consiste en disear un protocolo que los procesos puedan usar para cooperar. Cada proceso debe solicitar permiso para entrar en su seccin crtica; la seccin de cdigo que implanta esta solicitud es la seccin de entrada. A la seccin crtica puede seguir una seccin de salida y el cdigo que queda es la seccin restante. Una solucin para el problema de la seccin crtica debe cumplir los tres requisitos siguientes: 1. Exclusin mutua. Si un proceso P1 se est ejecutando en su seccin crtica, entonces ningn otro proceso se puede estar ejecutando en la suya. Progreso. Si ningn proceso se est ejecutando en su seccin crtica y hay otros procesos que desean entrar en las suyas, entonces slo aquellos procesos que no se estn ejecutando en su seccin restante pueden participar en la decisin de cul ser el siguiente tem que ingresar en la seccin crtica (y esta seleccin no puede postergarse indefinidamente). Espera limitada. Debe haber un lmite en el nmero de veces que se permite que los dems procesos entren en su seccin crtica despus de que un proceso haya efectuado una solicitud para entrar en la suya y antes de que se conceda esa solicitud.

2.

3.

Es importante no olvidar que aunque se supone que cada proceso se ejecuta a una velocidad no nula, no puede hac erse ninguna suposicin acerca de la velocidad relativa de los n procesos. Cuando un proceso est accesando datos compartidos, se dice que el proceso se encuentra en una seccin crtica. Por lo tanto, las secciones crticas tienen que ejecutarse lo ms rpidamente posible, un programa no debe bloquearse dentro de una seccin crtica y se deben evitar los ciclos infinitos. Las secciones crticas pueden ser fcilmente restringidas asocindoles un nombre nico. Por ejemplo si el nombre de una seccin crtica fuese Nom_Bloque, se tiene que:

Pgina 66 de 164

Get_Bloque(Num_Bloque) { When (Num_Bloque) { Direccin Pila[Tope] Tope Tope - 1 Return(Direccin) } }

Set_Bloque(Num_Bloque , Direccin) { When (Num_Bloque) { Tope Tope + 1 Pila[Tope] Direccin } }

La forma correcta de implementar el mecanismo de seguridad administrativo de las secciones crticas puede realizarse a travs de diversos mecanismos: Operaciones Lock /Unlock , operacion es P y V , operaciones Wait/Signal, etc.

Operaciones Lock/Unlock
La operacin Lock tiene por objetivo el bloquear la entrada a cierta rea a los dems procesos; la operacin Unlock anula el efecto de Lock. Supngase que el acceso de memoria se hace en forma indivisible. Siendo S el nombre de una regin crtica que solamente puede ser accesada por un proceso a la vez. Asumiendo que si S es asociado a una celda de memoria Llave[S], se tiene que la estructura de programacin sera la sealado a la derecha: Lock(Llave[S]) { < Seccin Crtica > } Unlock(Llave[S])

Ahora, si Llave[S]=1 entonces el acceso a dicha secci n est permitido, en caso contrario el acceso es denegado. De esta forma las primitivas Lock () y Unlock () quedaran como: Lock(Llave[S]) { Repeat V Llave[S] Until ( V = 1) Llave[S] 0 } Unlock(Llave[S]) { Llave[S] 1 }

Las secciones crticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones crticas de cada una. Para conseguir dicha exclusin, se deben implementar protocolos de software que impidan o bloqueen el acceso a una seccin crtica mientras est siendo utilizada por un proceso. Los protocolos son la parte de cdigo dedicada a asegurar que la seccin crtica se ejecuta de forma exclusiva. Resulta adecuado que tanto la seccin crtica como los protocolos sean lo ms breves posible.

Bloqueo Mediante El Uso De Variables Compartidas


Supngase que se asocia a cada recurso que se comparte un flag que podr tomas dos valores: True: Indicar que el recurso est siendo utilizado Fase: Indicar que el recurso est disponible

La ejecucin concurrente de los procesos se iniciar mediante la estructura cobegin/coend. Para evitar que se entrelace el uso del recurso por ambos procesos , se asocia un indicador a cada uno de los procesos. Ambos procesos pueden leer los dos indicadores, pero slo pueden modificar el que tienen asociado. Esto evita el problema de que los dos procesos actualicen de forma simultnea el mismo indicador. Antes de acceder al recurso, un proceso debe activar su indicador y comprobar que el otro no tiene su indicador activado. Si ambos procesos realizasen la llamada al bloqueo de forma simultnea, ambos veran los indicadores contrarios como ocupados y permaneceran a la espera de que el recurso quede liberado. Esta accin se conoce como interbloqueo (deadlock ). Se puede intentar resolver el problema haciendo que el proceso Pgina 67 de 164

desactive su propio indicador durante la fase de bloqueo siempre que encuentre que el indicador del otro proceso est activado. Esto permitira que, en caso de interbloqueo, se pueda proseguir, siempre que no exista una completa sincronizacin entre los procesos. Otro posible problema sera que podra permitir que un proceso deje su seccin crtica y vuelva a entrar mientras que el otro proceso desactiva su indicador en la seccin de bloqueo. El que un proceso no pueda progresar porque se lo impida otro se denomina cierre (lockout o starvation ).

Sincronizacin De Ejecucin
Un Grafo de Precedencia es un grafo acclico orientado cuyos nodos corresponden a sentencias individuales. Un arco de un nodo Si al nodo Sj significa que la sentencia S j puede ejecutarse slo cuando ha acabado Si. Los grafos no se pueden utilizar en programacin; por lo tanto se requieren otras herramientas: La ejecucin concurrente de los procesos se iniciar mediante la estructura cobegin/coend (tambin conocida como parbegin/pa rend). En estricto rigor, la ejecucin concurrente de procesos puede efectuarse en dos niveles: A nivel de lenguajes ensambladores se utiliza FORK (bifurcar) para crear exactamente dos procesos concurrentes a partir de slo uno y JOIN (unir) para provocar la confluencia de exactamente dos procesos en uno solo.

A nivel de lenguajes de compilador de alto nivel se utiliza PARBEGIN para indicar el inicio de una secuencia de dos (o ms) pr ocesos que se ejecutarn concurrentemente y PAREND para indicar su trmino.

Por ejemplo, dado el siguiente segmento de cdigo:


1.2.3.4.a ( x+ y) b(z+1) c ( a - b) w(c+1)

Es posible observar que las lneas N 1 y N 2 son independientes y por lo tanto es posible su ejecucin simultnea. Grficamente, esto es:

Luego, su implementacin en ambos con ambas estructuras sera: Utilizando FORK y JOIN
FORK L1 a ( x+ y) GOTO L2 L1: b(z+1) L2: JOIN c ( a - b) w(c+1)

Utilizando PARBEGIN y PAREND


PARGEGIN a ( x+ y) b(z+1) PAREND c ( a - b) w(c+1)

Pgina 68 de 164

Algoritmo de Peterson
Se introduce una variable adicional (turno) que solamente resultar til cuando se produzca un problema de peticin simultnea de acceso a la regin crtica (para mayor informacin vase monitores, pgina nmero 77) . module Exclusion_Mutua_P; var flag1, flag2: boolean; turno: integer; procedure bloqueo (var mi_flag, su_flag: boolean; su_turno: integer); begin mi_flag := true; turno := su_turno; while su_flag and (turno = su_turno) do ; end end bloqueo; procedure desbloqueo (var mi_flag: boolean); begin mi_flag := false; end desbloqueo; process P1 begin loop bloqueo (flag1, flag2,2); (* Uso del recurso Seccin Crtica *) desbloqueo (flag1); (* resto del proceso *) end end P1; process P2 begin loop bloqueo (flag2, flag1,1); (* Uso del recurso Seccin Crtica *) desbloqueo (flag2); (* resto del proceso *) end end P2; begin (* Exclusion_Mutua_P *) flag1 := false; flag2 := false; cobegin P1; P2; coend end Exclusion_Mutua_P.

Si ambos procesos intentan entrar a la vez, el valor de turno se pondr a 1 y 2, pero slo uno de los valores permanecer al escribirse sobre el otro. El algoritmo permite resolver el problema de la exclusin mutua y garantiza que ambos procesos usarn de forma consecutiva el recurso.

Pgina 69 de 164

Algoritmo De Dekker
La variable turno sirve ahora p ara establecer la prioridad relativa de los dos procesos (para mayor informacin vase monitores, pgina nmero 77). module Exclusion_Mutua_D; var flag1, flag2: boolean; turno: integer; procedure bloqueo ( var mi_flag, su_flag: boolean; su_turno: integer ); begin mi_flag := true; while su_flag do (* otro proceso en la seccin crtica *) if turno = su_turno then mi_flag := false; while turno = su_turno do; (* espera a que el otro acabe *) end; mi_flag := true; end; end; end bloqueo; procedure desbloqueo ( var mi_flag: boolean; su_turno: integer ); begin turno := su_turno; mi_flag := false end desbloqueo; process P1 begin loop bloqueo (flag1, fgal2, 2); (* Uso del recurso Seccin Crtica *) desbloqueo (flag1); (* resto del proceso *) end end P1; process P2 begin loop bloqueo (flag2, flag2, 1); (* Uso del recurso Seccin Crtica *) desbloqueo (flag2); (* resto del proceso *) end end P2; begin (* Exlusion_Mutua_P *) flag1 := false; flag2 := false; turno := 1; cobegin P1; P2; coend end Exlusion_Mutua_D.

Pgina 70 de 164

Los algoritmos de Peterson y Dekker se pueden extender al caso ms general en el que haya n procesos en ejecucin concurrente; pero no son soluciones adecuadas, ya que la espera de acceso a un recurso siempre se realiza de forma ocupada: el proceso se queda permanentemente comprobando una variable.

Sincronizacin Con Instrucciones De Hardware


Para el sistema operativo, el problema de administracin se dificulta en forma evidente al considerar seriamente el problema de las secciones crticas. El problema de la seccin crtica puede solucionarse simplemente evitando que ocurran interrupciones mientras se modifica una variable compartida, pero por desgracia no siempre es factible esta solucin. Por esto, muchas mquinas ofrecen instrucciones de hardware especiales que permiten evaluar y modificar el contenido de una palabra o intercambiar atmicamente el contenido de dos palabras. Estas instrucciones especiales pueden usarse para resolver el problema de la seccin crtica de una manera bastante sencilla, por ejemplo: Evaluar_y_asignar (o bjetivo) { Evaluar_y_asignar objetivo; objetivo verdadero; } La caracterstica importante es que la instruccin se ejecuta atmicamente, es decir, como una unidad ininterrumpible, de modo que si dos instrucciones Evaluar_y_asignar se ejecutan simultneamente (cada una en una en la misma CPU), lo harn secuencialmente siguiendo algn orden arbitrario. Repeat while Evaluar-y-asignar(cerradura) do Esperar < Seccin Crtica > cerradura falso < Seccin Restante > Until (falso); Si la mquina permite la instruccin Evaluar_y_asignar, entonces se puede implantar la exclusin mutua declarando una variable booleana cerradura con valor inicial falso. La instruccin Intercambiar, intercambia atmicamente el contenido de dos palabras y se define como se muestra a la derecha. Como en el caso de la instruccin Evaluar_y_asignar, la instruccin Intercambiar tambin se ejecuta atmicamente.

Intercambiar (a, b) { temporal a a b b temporal }

Si la mquina permite la instruccin Intercambiar, entonces la exclusin mutua puede ofrecerse de la siguiente manera: Se declara una variable booleana global cerradura y se le asigna un valor inicial falso. Adems, cada proceso tiene una variable local booleana clave. repeat clave verdadero repeat Intercambiar(cerradura,clave) until (clave =falso) < Seccin Crtica > cerradura falso < Seccin Restante > until (falso)

Obsrvese que estos algoritmos no satisfacen el requisito de la espera limitada.

Pgina 71 de 164

Semforos
El sistema de proteccin a travs de las operaciones Lock/Unlock, los procesos deciden quin entra a la seccin crtica. Sin embargo debera ser el sistema operativo el encargado de realizar esta determinacin. Los semforos pueden utilizarse para tratar el problema de la seccin crtica para n procesos y tambin pueden usarse para resolver varios problemas de sincronizacin. Un semforo binario es un indicador de condicin S que registra si un recurso est disponible o no: Si S=1, entonces el recurso est disponible. Si S=0, entonces el recurso no est disponible.

Los semforos se implementan con una cola de tareas o de condicin a la cual se aaden los procesos que estn en espera del recurso. Las operaciones P y V fueron inventadas en 1965 por E. W. Dijkastra. Dijkastra llam al argumento de una operacin P y V semforo en analoga con la luz de trfico del ferrocarril, el cual indica que si un tren entra a la lnea el semforo cambia de color la luz para asegurar que ningn otro tren ingrese a la lnea. La operacin P(S) produce que el sistema operativo bloquee la entrada a la seccin S y permite la entrada slo al proceso que ejecut la operacin. La operacin V(S) desbloquea la seccin para dejar el acceso disponible para cualquier proceso que lo solicite. Si A y B son dos procesos concurrentes y se utiliza un indicador de prioridades que apunta al proceso siguiente cuando el actual termina, se tiene que las primitivas de proceso son: Proceso A { Entrada[A] 1 While (Entrada[A] = 1) { While (Prioridad <> A) { Entrada[A] 0 } Entrada[A] 1 <Instrucciones de Seccin Crtica> Prioridad B Entrada[A] 0 } Proceso B { Entrada[B] 1 While (Entrada[B] = 1) { While (Prioridad <> B) { Entrada[B] 0 } Entra da[B] 1 <Instrucciones de Seccin Crtica > Prioridad A Entrada[B] 0 }

Por otro lado, se observa que existen otras operaciones a travs de las cuales es posible manejar secciones crticas.

Operaciones Wait/Signal
Si existe un evento E compartido entre, al menos, dos procesos, se definen las operaciones: Wait(E), en espera de la ocurrencia del evento E. Signal (E), ocurrencia del evento E. Si un proceso requiere de la ocurrencia de un evento para terminar su ejecucin deber esperar hasta que el evento ocurra; cuando el proceso termina deber sealar que el evento ya ha ocurrido y que est en espera de otro proceso que lo solicite. A modo de ejemplo, supngase un clsico ejemplo de productor y consumidor. Se tienen dos procesos un productor y un consumidor, adems se dispone de un buffer sencillo con capacidad para almacenar un dato. Para que el productor pueda producir un dato y almacenarlo en el buffer, ste debe estar vaco; Pgina 72 de 164

anlogamente el consumidor para poder extraer un dato del buffer, debe esperar hasta que ste est lleno. Bajo las condiciones anteriores, las primitivas de control para los procesos productor, consumidor y la inicializacin son: Productor() { Repeat X Algn dato Wait(Buffer_Vaco) Buffer X Signal(Buffer_Lleno) Until ( trmino del proceso) } Consumidor() { Repeat Wait(Buffer_Lleno) X Buffer Signal(Buffer_Vaco) Utilizacin X Until ( trmino del proceso) }

Inicializacion() { Signal(Buffer_Vaco) Iniciar procesos Productor() y Consumidor() en paralelo. } Una versin ms detallada del problema del productor/consumidor debera contemplar que hay situaciones en las que existe un conjunto de procesos que producen informacin que otros procesos consumen, siendo diferentes las velocidades de produccin y consumo. Esto es: module Productor_Consumidor; var BufferComun: buffer; AccesoBuffer, Nolleno, Novacio: semaforo; process Productor; var x: dato; begin loop produce (x); espera (AccesoBuffer); if Lleno then seal (AccessoBuffer); espera (NoLleno); espera (AccesoBuffer) end; Poner (x); seal (AccesoBuffer); seal (Novacio) end end Productor; process Consumidor; var x: dato; begin loop espera (AccesoBuffer); if Vacio then seal (AccesoBuffer); espera (Novacio); espera (AccesBuffer) end Tomar (x); Pgina 73 de 164

seal (AccesoBuffer); seal (Nolleno); consume (x) end end Consumidor; begin inicializa (AccesoBuffer, 1); inicializa (Nolleno, 1); inicializa (Novacio, 0); cobegin Productor; Consumidor; coend end Productor_Consumidor; El acceso al buffer para tomar o poner un dato est protegido por las operaciones espera y seal del semforo AccesoBuffer. Antes de ejecutar las operaciones espera (Nolleno ) y espera (Novacio) se libera el semforo AccesoBuffer para evitar que se bloquee el sistema.

Versin Ms General De Los Semforos


Cuando hay que proteger un conjunto de recursos similares, el semforo se inicializa con el nmero total de recursos disponibles (n) y las operaciones de espera y seal se disean de modo que se impida el acceso al recurso protegido por el semforo cuando el valor de ste es menor o igual que cero. Cada vez que se solicita y obtiene un recurso, el semforo se decrementa y se incrementa cuando se libera uno de ellos. Si la operacin de espera se ejecuta cuando el semforo tiene un valor menor que 1, el proceso debe quedar en espera de que la ejecucin de una operacin seal libere alguno de los recursos. Operaciones primitivas sobre un semforo generalizado: Operacin de inicializar inicializa (S: SemaforoBinario; v: integer) poner el valor del semforo S al valor de V (n) numero_suspendidos := 0 Operacin de espera espera (S) if S > 0 then S := S - 1 else numero_suspendidos := numero_suspendidos + 1 suspender la tarea que hace la llamada y ponerla en la cola de tareas Operacin de seal seal (S) if nume ro_suspendidos > 0 then numero_suspendidos := numero_suspendidos -1 pasar al estado preparado un proceso suspendido else S := S + 1 Si el semforo se asocia a un cdigo concurrente, su valor inicial restringe el nmero mximo de ejecuciones concur rentes que se pueden realizar.

Buffers Mltiples
En el ejemplo anterior se hizo el supuesto de la existencia de un buffer simple con capacidad para un solo elemento. En la realidad un buffer puede contener N datos. Si adems se dispone de ms de un Pgina 74 de 164

buffer (por simplicidad supngase slo dos: uno de entrada y otro de salida) las condiciones de procesamiento seran: 1. El proceso productor debera esperar a que el buffer de entrada tuviese espacio para almacenar al menos un dato. El pr oceso consumidor debera esperar a que el buffer de salida tuviese al menos un dato almacenado. Si el proceso consumidor intenta acceder el buffer de salida y detecta que este est vaco, deber marcarlo como buffer de entrada y al de entrada como buffer de salida. Lo cual es vlido slo si al menos uno de los buffer contiene al menos un dato almacenado. Si el proceso productor intenta almacenar un dato en el buffer de entrada y detecta que ste est lleno, deber marcarlo como buffer de salida y al de salida como buffer de entrada. Lo cual es vlido slo si al menos uno de los buffer contiene al menos un espacio de almacenamiento disponible.

2.

3.

4.

Las condiciones anteriores son vlidas slo si el orden de recepcin no tiene importancia respecto del orden de emisin. En caso de ser necesario recepcionar los datos en el mismo orden de transmisin, se deber esperar a que uno de los buffers este lleno y otro vaco y slo entonces se realizar el intercambio de buffers de entrada y salida.

Comunicac in E ntre P ro cesos


Son muchos los problemas de sincronizacin que se presentan; Sin embargo, en un sentido ms amplio, son ejemplos sencillos de un problema mayor: permitir la comunicacin entre procesos que deseen cooperar. Principalmente hay dos esquemas complementarios de comunicacin: sistemas de memoria compartida y sistemas de transmisin de mensajes . Los sistemas de memoria compartida estn orientados bsicamente a las aplicaciones y requieren que los procesos comunicantes compart an algunas variables. Se espera que los procesos intercambien informacin por medio de estas variables compartidas. En un sistema de memoria compartida, la responsabilidad de proporcionar la comunicacin recae sobre los programadores de aplicaciones; el sistema operativo slo tiene que ofrecer la memoria compartida. El mtodo del sistema de mensajes permite que los procesos intercambien mensajes. Entonces, la responsabilidad de proporcionar la comunicacin corresponde al propio sistema operativo. Es obvio q ue estos dos esquemas no son mutuamente exclusivos y que podran utilizarse simultneamente en un sistema operativo. La funcin de un sistema de mensajes es permitir que los procesos se comuniquen entre s sin tener que recurrir a variables compartidas. Un medio para la comunicacin entre procesos facilita bsicamente dos operaciones: enviar(mensaje) y recibir(mensaje). Los mensajes que enva un proceso pueden ser de tamao fijo o variable. Si slo puede enviarse mensajes de longitud fija, la implantacin fsica es bastante sencilla, pero esta restriccin dificulta la tarea de programacin. Por otra parte, los mensajes de tamao variable requieren una implantacin fsica un tanto compleja, pero se simplifica la tarea de programacin.

Tcnicas De Comunicacin
Puede decirse que la transmisin de mensajes es controlada por un intercambio de preguntas y respuestas entre los procesos que se estn comunicando. Llmese mensaje a dichas preguntas y respuestas, debido a que es un concepto ms intuitivo que comando o instruccin. De este modo, para que un mensaje sea completo debe incluir: 1. 2. 3. Una identificacin del proceso emisor. Una identificacin del proceso receptor. Una descripcin de los datos involucrados o mensaje. Pgina 75 de 164

Sin embarg o, en casos particulares, cualquiera de estas componentes puede estar ausente si la informacin requerida puede ser obtenida de otras fuentes. Existen tres mtodos (o tcnicas) bsicas para implementar la comunicacin entre procesos: 1. 2. 3. Sistema Maestro -Sirviente. Sistema de dilogo. Sistema de correo.

Sistema Maestro-Sirviente
El maestro asigna trabajo al sirviente, y ser su responsabilidad si lo confunde envindole ms de un comando a la vez. El sirviente est todo el tiempo disponible, excepto cuando se encuentra ejecutando alguna tarea. El sirviente ve cmo se debe modificar al maestro cuando termina su tarea, de modo que pueda aceptar otro comando (el sirviente). Las princ ipales caractersticas de este esquema son: 1. 2. 3. El maestro no requiere de autorizacin para la utilizacin de su sirviente. Las actividades del sirvientes estn absolutamente controladas por el maestro. La conexin entre emisor y receptor es fi ja.

Sistema De Dilogo
Un sistema de dilogo es similar a la facilidad del servicio proporcionado por un telfono. Los usuarios compiten por el servicio y el nmero de clientes que pueden ser simultneamente atendidos depende de la estructura del servicio. Sin embargo, una vez que la comunicacin entre el usuario y la facilidad ha sido establecida, el usuario puede permanecer conectado todo el tiempo que estime conveniente (monopolio del recurso). Las principales caractersticas del esquema de comunicacin a travs del sistema de dilogo son: 1. 2. El proceso debe solicitar autorizacin para obtener la facilidad del recurso. La actividad de la facilidad es puesta en marcha por la solicitud del usuario, pero controlada por la facilidad. 3. La conexin entre la facilidad y el usuario es establecida slo temporalmente.

Sistema De Correo
En un sistema de correos los mensajes son enviados, sean o no sean procesados en forma inmediata por los receptores. Los mensajes no son enviados directamente desde el origen al destino; en vez de eso, emisores y receptores se comunican a travs de reas de enlace compartidas, por lo cual se utilizan los trminos de casillas (MailBox) en buffers de comunicacin. El emisor deposita un mensaje en la casilla y el receptor lo retira a su debido tiempo. Los mailbox son dispositivos virtuales de E/S, que permiten el traspaso de informacin entre dos o ms procesos. En general, son temporales, debiendo tener privilegios especiales para ser permanentes. Un sistema de correo permite, entre otras cosas, administrar la interaccin en la cual el nmero de mensajes vara en el tiempo. El propsito de tener un mailboxs es evitar la diferencia entre la tasa de intercambio en la cual los mensajes son enviados y la tasa en la cual estos pueden ser recepcionados. De este modo, los mensajes que no pueden ser procesados inmediatamente permanecen en el mailbox. Pgina 76 de 164

Un sistema de correo se caracteriza por: 1. 2. 3. 4. El tamao del mailbox permite que el emisor no requiera de autorizacin para enviar un mensaje. Lo emisores no tienen control sobre los receptores. El tiempo de enlace directo entre el emisor y el receptor es nulo. El mailbox ofrece el servicio de aceptar mensajes enviados a una velocidad mayor a la velocidad con que estos pueden ser procesados.

Existen dos funciones bsicas utilizadas para acceder a un mensaje de un mailbox. Es obvio que las restricciones del proceso mismo son las mismas que para cualquier grupo de procesos que utilizan un buffer compartido. La declaracin de las funciones y sus primitivas se dan a continuacin: Depositar(Msg) { Wait(Ok_IN_Buffer) X < Idx de casillero vaco > Mailbox[X] Msg Marcar(X, l leno) Signal(Ok_OUT_Buffer) } Quitar(Msg) { Wait(Ok_OUT_Buffer) X < Idx de casillero lleno > Msg mailbox[X] Marcar(X, vaco) Signal(Ok_IN_Buffer) }

La utilizacin de estas funciones, a travs de la utilizacin de las operaciones wait/signal, aseguran que el receptor no pueda anticiparse al emisor y el emisor tampoco podr anticiparse al receptor ms all del nmero de casillas del mailbox.

Transmisin Entre Mensajes, Comunicacin Directa


Los procesos que desean comunicarse deben tener una manera de referirse unos a otros. Para esto pueden utilizar la comunicacin directa o la comu nicacin indirecta. En la disciplina de comunicacin directa cada proceso que desea enviar o recibir un mensaje debe nombrar explcitamente al receptor o emisor de la comunicacin. En este esquema, las operaciones primitivas enviar y recibir se definen de la manera siguiente: enviar(P, mensaje). recibir(Q,mensaje). Enviar un mensaje al proceso P. Recibir un mensaje del proceso Q.

Un enlace de comunicacin en este esquema posee las siguientes propiedades: 1. 2. 3. 4. Se establece un enlace automticamente entre cada par de procesos que quieren comunicarse. Los procesos slo necesitan conocer la identidad del otro para comunicarse. Un enlace est asociado exactamente a dos procesos. Entre cada par de procesos en comunicacin hay exactamente un enlace. El enlace es bidireccional.

Transmisin Entre Mensajes, Comunicacin Indirecta


Con la comunicacin indirecta los mensajes se envan y reciben usando buzones. Un buzn puede considerarse de manera abstracta como un objeto en el que los procesos pueden colocar mensajes y del cual se pueden extraer los mensajes. Cada buzn tiene una identificacin nica. En este esquema, un proceso puede comunicarse con otro a travs de varios buzones distint os. Dos procesos nicamente pueden comunicarse si comparten un buzn. Las primitivas enviar y recibir se definen como sigue: enviar(A, mensaje). recibir(A, mensaje). Enviar un mensaje al buzn A. Recibir un mensaje del buzn A.

En este esquema, un enlace de comunicacin tiene las propiedades siguientes: Pgina 77 de 164

1. 2. 3. 4.

Se establece un enlace entre un par de procesos slo si comparten un buzn. Un enlace puede asociarse a ms de dos procesos. Entre cada par de procesos en comunicacin puede haber varios enlaces correspondiendo cada uno a un buzn. Un enlace puede ser unidireccional o bidireccional.

diferentes,

Suponga ahora que los procesos P1, P2 y P3 comparten el buzn A. El proceso P1 enva un mensaje a A, mientras P2 y P3 se ejecutan. Para determinar que proceso recibir el mensaje enviado por P1 se puede: Permitir que un enlace este asociado a dos procesos como mximo. Permitir que a lo sumo un proceso ejecute en cada ocasin una operacin recibir. Permitir que el sistema seleccione arbitrariamente cul proceso recibir el mensaje (es decir, P2 P3, pero no ambos). El sistema puede identificar el receptor para el emisor.

Un buzn puede pertenecer a un proceso o al sistema. Si el buzn pertenece a un proceso, entonces se hace una distincin entre el dueo y el usuario del buzn. Como cada buzn tiene un solo dueo, no hay confusin sobre quin debe recibir un mensaje enviado al buzn. Cuando termina un proceso dueo de un buzn, ste desaparece. A cualquie r proceso que enve posteriormente un mensaje a este buzn se le debe notificar que ya no existe. Hay varias maneras de designar al dueo y a los usuarios de un buzn en concreto. Una posibilidad es permitir que un proceso declare variables de tipo buzn. El proceso que declara un buzn es su dueo. Cualquier otro proceso que conozca el nombre de este buzn podr utilizarlo. Por otra parte, un buzn que pertenece al sistema operativo tiene existencia propia, es independiente y no est unido a un proceso en particular. El sistema operativo proporciona un mecanismo que permite a cualquier proceso: crear un nuevo buzn, enviar y recibir mensajes mediante el buzn y destruir un buzn. EI proceso que crea un nuevo buzn es, por omisin, dueo del mismo. Inicialmente, el dueo es el nico proceso que puede recibir mensajes mediante el buzn. Sin embargo, el privilegio de recibir y la propiedad del buzn pueden transferirse a otros procesos por medio de las llamadas adecuadas al sistema. Por supuesto, esta caracterstica puede representar la existencia de varios receptores para cada buzn. Los procesos tambin pueden compartir un buzn mediante la funcin de creacin de procesos. Por ejemplo, si el proceso P cre el buzn A y luego cre un proceso Q, P y Q pueden compartir el buzn A. Como todos los procesos con derechos de acceso al buzn pueden terminar, puede ser que tras cierto tiempo ningn proceso tenga acceso al buzn, en cuyo caso el sistema operativo debe reclamar el espacio utilizado para el buzn. Para esta tarea se puede necesitar alguna forma de recoleccin de basura.

Utilizacin De Buffers
Un enlace tiene cierta capacidad que determina el nmero de mensajes que puede contener temporalmente. Esta propiedad puede considerarse como una cola de mensajes unidos al enlace. Hay tres maneras bsicas de implantar esta cola: Capacidad cero. La cola tiene una longitud mxima 0, de modo que el enlace no puede contener ningn mensaje esperando. En este caso, el emisor debe esperar a que el receptor reciba el mensaje. Los dos procesos se deben sincronizar para que pueda tener lugar la transferencia de un mensaje. A esta sincronizacin se le llama encuentro. Capacidad limitada. La cola tiene una longitud finita n; as, como mximo pueden recibir n mensajes en ella. Si la cola no esta llena al enviar un nuevo mensaje, se guarda en la cola y el emisor puede continuar su ejecucin sin esperar. No obstante, el enlace tiene una capacidad finita. Si el enlace est lleno, el emisor debe demorarse hasta que haya espacio disponible en la cola. Pgina 78 de 164

Capacidad ilimitada. La cola tiene una longitud potencialmente infinita, por lo que en ella puede esperar cualquier nmero de mensajes. El emisor nunca se demora.

El caso de capacidad cero en ocasiones se conoce como sistema de mensajes sin buffer; los otros casos ofrecen buffers automticos. Se observa que, en los casos de capacidad no nula, un proceso no sabe si un mensaje ha llegado a su destino despus de concluir la operacin enviar. Si esta informacin es decisiva para los clculos, el emisor deber comunicarse explcitamente con el receptor para averiguar si ste recibi el mensaje. Por ejemplo, suponga que el proceso P enva un mensaje al proceso Q y slo puede continuar su ejecucin tras la recepcin del mensaje. El proceso P ejecuta la secuencia: enviar(Q,mensaje) y luego: recibir(Q,mensaje).

El proceso Q ejecuta: recibir(P,mensaje)

y luego: enviar(P, "confirmacin ").

Se dice que estos procesos se comunican en forma asncrona. Existen casos especiales que no encajan en ninguna de las categoras que se han visto. El proceso que enva el mensaje nunca se demora. Sin embargo, si el receptor no ha recibido el mensaje antes de que el proceso emisor enve otro, el primer mensaje se pierde. La ventaja de este esquema es que los mensajes de gran tamao no tienen que copiarse ms de una vez. La desventaja principal es que la tarea de programacin se complica. Los procesos se deben sincronizar explcitamente, para asegurar que los mensajes no se pierdan y que el emisor y el receptor no manipulen simultneamente el buffer de mensajes. El proceso que enva un mensaje se demora hasta que recibe una respuesta. Un proceso P que enva un mensaje se bloquea h asta que el proceso receptor haya recibido el mensaje y devuelva una respuesta de ocho palabras a travs de la primitiva responder(P, mensaje). El mensaje de respuesta sobrescribe el buffer usado en el mensaje original. La nica diferencia entre las primitivas enviar y responder consiste en que enviar hace que el proceso emisor se bloquee, mientras que responder permite que ambos procesos, el receptor y el emisor, prosigan de inmediato su ejecucin. Este mtodo de comunicacin se puede ampliar fcilmente para lograr un completo sistema RPC (Remote Procedure Call). El RPC se basa en que una llamada a un procedimiento o subrutina en un sistema monoprocesador acta exactamente como un sistema de mensajes donde el emisor se bloquea hasta recibir una respuesta. El mensaje es entonces como una llamada a una subrutina y el mensaje de respuesta contiene el valor calculado por la subrutina. Por tanto, el siguiente paso lgico es que los procesos concurrentes puedan Ilamar a otros como subrutinas utilizando el RPC.

Monitores
Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusin mutua a un recurso o conjunto de recursos compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un mdulo que tiene la propiedad especial de que slo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. Puede tener varios puntos de entrada o procedimientos para el uso del recurso, as como varias condiciones para proporcionar sincronizacin entre los procesos que estn esperando para usar el recurso. Para los procesos que desean acceder al monitor se utiliza una nica cola de espera. La exclusin mutua est ahora implcita: la nica accin que debe realizar el programador del proceso que usa un recurso es invocar una entrada del monitor (con los semforos el programador deba proporcionar la correcta secuencia de operaciones de espera y seal para no bloquear al sistema). Los monitores no proporcionan por s mismos un mecanismo para la sincronizacin de tareas y, por ello, su construccin debe completarse permitiendo, por ejemplo, que se puedan usar seales para sincronizar los procesos. As, para impedir que se pueda producir un bloqueo, un proceso que gane el Pgina 79 de 164

acceso a un procedimiento del monitor que necesite esperar a una seal, se suspende y se coloca fuera del monitor para permitir que entre otro proceso. Una variable que se utilice como mecanismo de sincronizacin en un monitor se conoc e como variable condicin. A cada causa diferente por la que un proceso deba esperar se le asocia una variable de condicin. Sobre ellas slo se puede actuar con dos procedimientos: espera y seal. Cuando un proceso ejecuta una operacin de espera, se suspende y se coloca en una cola asociada a dicha variable de condicin. Si ejecuta una operacin de seal, se libera un proceso suspendido en la cola de la variable de condicin utilizada. El monitor debe usar un sistema de prioridades en la asignacin del recurso que impida que un proceso en espera de lograr entrar se vea postergado indefinidamente por otros procesos nuevos que deseen utilizarlo. En sntesis, una construccin de alto nivel para la sincronizacin por un conjunto de operadores definidos por el programador. consiste en declaraciones de variables cuyos valores definen mdulo, as como los cuerpos de procedimientos o funciones que de subrutina. La sintaxis de un monitor es: nombre_monitor : monitor { < declaraciones de variables > Procedure nombre_Proc( < Parmetros > ) begin ... end < Inicializacin de variables > } Los distintos procesos no pueden usar directamente la representacin de un tipo monitor por lo que un procedimiento definido dentro de un monitor slo puede tener acceso a las variables declaradas localmente y a los parmetros formales. De manera parecida, slo los procedimientos locales pueden tener acceso a las variables locales de un monitor. La construccin monitor asegura que slo un proceso a la vez puede estar activo en el monitor. Por consiguiente, el programador no necesita codificar explcitamente esta situacin de sincronizacin. Hasta donde se ha definido, es similar en muchos aspectos a la regin crtica. Pero como ya se vio, la regin crtica no es suficientemente potente para mod elar algunos esquemas de sincronizacin, por lo que se ha ampliado a regin crtica condicional. En forma similar, se necesitan ms mecanismos para la sincronizacin con monitores, los que son proporcionados por la construccin condicin. Un programador qu e necesita escribir su propio esquema de sincronizacin a la medida, puede definir una o ms variables de tipo condicin: var x,y: condition; Las nicas operaciones que pueden invocarse para una variable de condicin son espera y seal. La operacin x.espera significa que se suspende el proceso que invoca la operacin hasta que otro invoque x.seal . La operacin x.seal reanuda exactamente un proceso suspendido; si no hay ninguno, entonces la operacin seal no tiene efecto, es decir, el estado de x es el mismo que tendra si la operacin nunca se hubiese ejecutado. Ahora suponga que cuando un proceso P invoca la operacin x.seal , hay un proceso suspendido Q asociado a la condicin x. Obviamente, si se permite que el proceso suspendido Q reanude su ejecucin, el proceso sealizador P debe esperar. De lo contrario, tanto P como Q estarn activos simultneamente dentro del monitor. Observe, sin embargo, que en teora ambos procesos pueden continuar con su ejecucin. Existen dos posibilidades: 1. 2. P espera a que Q abandone el monitor, o que espere en otra condicin. Q espera a que P abandone el monitor, o que espere en otra condicin. Pgina 80 de 164 es el tipo monitor, el cual se caracteriza La representacin de un tipo monitor el estado de un ejemplar del tipo de implantan las operaciones sobre el tipo

Hay argumentos razonables en favor de adoptar las alternativas (1) (2). Como P ya se estaba ejecutando en el monitor, la opcin (2) parece ms razonable. Sin embargo, si se permite que el proceso P contine, es posible que la condicin lgica que esperaba Q ya no se mantenga cuando se reanude Q. Los monitores son una construccin de nivel ms e levado que otras primitivas de sincronizacin de recursos. Un ejemplo de la estructura de un programa monitor es para el caso del sistema productor/consumidor: Productor_Consumidor : monitor { I : Integer x : Condition Procedure Productor begin ... end Procedure Consumidor begin ... end I0 }

Propietarios
Otra forma de administrar los recursos de un sistema operativo es a travs de una estructura llamada propietario. Un propietario es un proceso que es dueo del recurso y todos los usuarios que deseen ejecutar alguna operacin sobre dicho recurso debern solicitar al propietario la debida autorizacin. Es una estructura de formato muy similar a un monitor, tal como se muestra a continuacin: nombre_propietario { < Inicializacin de variables > Repeat Identificacion Recibir(Msg) Case ( Respuesta(Msg) ) { <Comp_1> : { .... } <Comp_2> : { .... } ... <Comp_N> : { .... } } Replicar(Msg, Identificacion) Until ( < El proceso termina >) } Cada una de las comparaciones de la estructura case es una seccin crtica. El hecho que el proceso sea slo uno garantiza que nunca ser ejecutado ms de una comparacin a la vez. La estructura propuesta no es muy adecuada en el caso que un proceso no pueda ser atendido inmediatamente. Una posible solucin es mantener una lista explcita de procesos pendientes a los que aun no se les ha enviado un replicar(). Otra solucin sera la utilizacin de colas disjuntas para los mensajes que recibe el propietario, a travs de la utilizacin de concentradores de mensajes independientes y sus identificadores son conocidos por el propietario.

Pgina 81 de 164

A modo de ejemplo considrese el caso del productor y consumidor; los algoritmos administrativos seran (procesos): Productor() { Repeat X Algn dato Enviar(X, Agregar) Until ( trmino del proceso) } Las rutinas de los concentradores sern: Agregar() { Repeat Identificacion Recibir(X) Enviar(X, Buffer) Replicar(X, Identificacion) Until ( trmino del proceso) } Quitar() { Repeat Identificacion Recibir(Y) Enviar(Y, Buffer) Replicar(Y, Identificacion) Until ( trmino del proceso) } Consumidor() { Repeat Enviar(Y, Quitar) Utilizacin Y Until ( trmino del proceso) }

Finalmente la rutina del propietario (del recurso Buffer) sera: Buffer() { Primer_Llenado 0 Contador 0 Repeat If (Contador = 0) { Identificacion Recibir(X, Agregar) } ElseIf (Contador = Max_Buffer) { Identificacion Recibir(X, Quitar) } Else { Identificacion Recibir(X) } Case ( Respuesta[Identificacion] ) { Agregar : { Contador Contador + 1 Buffer [ Primer_Llenado + Contador ] X } Quitar : { X Buffer [ Primer_Llenado + Contador ] Contador Contador - 1 } } Replicar(X, Identificacion) Until ( trmino del proceso) } Pgina 82 de 164

D eadlocks (I nterbloque os)


Deadlock, tambin conocido como estancamiento o interbloqueo, es un posible estado de un proceso. Se dice que un proceso est en estado de deadlock si se encuentra esperando la ocurrencia de un evento que se sabe nunca habr de ocurrir. Por ejemplo. Si existen dos procesos A y B y dos recursos R1 y R2, y suponiendo que la ejecucin de uno de los procesos requiere de los dos recursos. Si al proceso A se le alcanza a asignar el recurso R1 y al proc eso B el recurso R2, entonces B esperar eternamente el recurso R1 y A har lo mismo respecto del recurso R2. Por lo tanto ambos procesos estn en estado de deadlock.

Si cada proceso requiere de varios recursos, el sistema operativo debe ser cuidadoso de no caer en estancamientos. Esto ocurre si todos los procesos comienzan a solicitar recursos mientras todos los recursos estn en uso y ninguno de los procesos est dispuesto a retractar su demanda. Para que se de u situacin de interbloqueo se deben de cumplir de forma simultnea las cuatro na condiciones siguientes: 1. 2. Exclusin mutua. Retencin y espera. Los procesos retienen los recursos que han adquirido mientras esper an para adquirir otros. No existencia de expropiacin. Espera circular. Cadena circular de procesos en la que cada uno retiene al menos un recurso que se solicita por el siguiente. Formas de tratar el problema: a. Evitar que se llegue al interbloqueo. Mtodos: 1. 2. b. Prevencin de los interbloqueos. Evitacin de los interbloqueos.

3. 4.

Permitir que se pueda entrar. Dos pasos: 1. 2. Deteccin del interbloqueo. Recuperacin del interbloqueo.

Prevencin De Interbloqueos
Basta con evitar una de las cuatro condiciones necesarias; pero la condicin de exclusin mutua se debe mantener. Retencin y espera Para evitarla, basta con garantizar que un proceso que posee un recurso no pueda pedir otro, haciendo que la peticin de todos los recursos que necesita un proceso se realice bajo la premisa de todos o ninguno. Pgina 83 de 164

Problemas: 1. Pobre uso de los recursos, ya que puede haber recursos retenidos que no estn en uso y otros que, aunque no estn retenidos, no se puedan asignar por ser requeridos junto con otros que s lo estn. Puede resultar difcil que un conjunto de recursos se encuentren disponibles a la vez, lo que puede producir una espera indefinida del proceso que los necesita.

2.

No existencia de la expropiacin Se puede permitir la expropiacin mediante dos estrategias: a. Si un proceso que tiene uno o ms recursos solicita otro que est en uso, debe esperar y permite que los rec ursos de que dispone se puedan expropiar. El proceso libera, de forma implcita, los recursos de que dispone y se aaden a la lista de recursos disponibles y, a la vez, a la lista de recursos solicitados por ste. El proceso slo se puede volver a activar cuando pueda ganar el acceso a todos los recursos que necesita. Si un proceso solicita algunos recursos que estn asignados a otros procesos, se mira si estos estn esperando, en cuyo caso se expropian. Si hay algn recurso que no est libre o que no puede ser expropiado, el proceso se suspende y no puede volver a ejecucin hasta que no disponga de todos los recursos.

b.

Inconveniente: Puede llevar a que haya procesos que se vean relegados durante un tiempo excesivamente grande. Se suele aplicar con aqu ellos recursos que pueden ser fcilmente salvados y restaurados, tales como posiciones de memoria o registros de la CPU. Espera circular Para evitarla, se ordenan los recursos asignndoles a cada tipo de ellos un nmero entero y se impone que se pidan en orden ascendente. Adems, las peticiones de todos los recursos perteneciente a un mismo tipo deben realizarse con una nica peticin y no incrementalmente. Desventaja: Los recursos no se piden en el orden que se necesitan, sino en el que se ha establecido. Los procesos pueden verse obligados a pedir los recursos antes de necesitarlos , acaparndolos innecesariamente.

Evitacin De Los Interbloqueos


Impone condiciones menos restrictivas que el mtodo de la prevencin. En el momento de asignar un recurso, si se prev la posibilidad de que se produzca un bloqueo, el recurso no se concede. El algoritmo del banquero de Dijkstra asegura que el nmero de recursos asignados a todos los procesos nunca puede exceder del nmero de recursos del sistema. Adems, nunca se pueden asignar recursos de modo que no queden suficientes para satisfacer las necesidades de todos los procesos. Cuando se crean los procesos, se declara que en cualquier instante no podrn necesitar ms de x recursos. Se construye una tabla para llevar la cuenta de los recursos disponibles y de los necesitados.
Proceso P1 P2 P3 Total disponibles Usados 2 1 3 4 (de 10) Posibles necesarios 3 5 1 Mximos necesarios 5 6 4

Pgina 84 de 164

Un estado se considera seguro si todos los procesos que ya tienen concedidos recursos tienen la posibilidad de ser completados en algn orden determinado, incluso con la posibilidad de que cada uno de los procesos utilizase el mximo de los recursos declarados. En el algoritmo del banquero: a. Se permiten las condiciones de exclusin mutua, retencin y espera y de no existencia de expropiacin. Los procesos solicitan el uso exclusivo de los recursos que necesitan. Mientras esperan alguno, se les permite mantener los recursos de que disponen sin que se les puedan expropiar. Los procesos piden los recursos al sistema operativo de uno en uno. El sistema puede conceder o rechazar cada peticin. Una peticin que no conduce a un estado seguro se rechaza y cada peticin que conduce a un estado seguro se concede.

b.

c. d. e.

Inconvenientes: 1. La gestin de los recursos suele ser conservadora, ya que los estados inseguros constituyen un conjunto grande de estados dentro del cual se encuentra el subconjunto de los estados que realmente producen interbloqueos. El algoritmo requiere que los procesos conozcan por adelantado sus necesidades mximas.

2.

Deteccin De Los Interbloqueos


Se utiliza en aquellos sistemas en los que se permite que se produzca el interbloqueo, comprobando peridicamente si se ha producido el interbloqueo. Inconvenientes: 1. Sobrecarga del sistema operativo para mantener la informacin necesaria y el algoritmo de deteccin. Posibles prdidas en el intento de recuperar el sistema.

2.

Se suele utilizar un grafo dirigido (grafos de asignacin de recursos) que indica las asignaciones de los recursos a los procesos y las peticiones que estos realizan. Cada arco conecta el nodo de un proceso con el nodo de un recurso. Si slo hay un elemento por cada tipo de recurso, la existencia de un ciclo es una condicin necesaria y suficiente para que haya un interbloqueo. Si cada tipo de recurso tiene varios elementos, la condicin de existencia de un ciclo es necesaria pero no suficiente para asegurar que existe un interbloqueo. Una condicin suficiente es la existencia de un ciclo en el que no hay ningn camino que salga de alguno de los nodos que lo forman. Mtodo de reduccin del grafo: Se determinan los procesos a los que se les pueden conceder los recursos que tienen solicitados y se quitan los arcos. Si el grafo puede reducirse para todos los procesos, no existe interbloqueo. En cas o contrario, los procesos irreducibles constituyen el conjunto de procesos interbloqueados.

Pgina 85 de 164

Recuperacin De Interbloqueos
Dos opciones: a. Reiniciar uno o ms de los procesos bloqueados. Factores a tener en cuenta con el fin de elegir aquellos procesos cuya reiniciacin resulte menos traumtica: 1. 2. 3. 4. 5. b. Prioridad del proceso. Tiempo de procesamiento utilizado y restante. Tipo y nmero de recursos que posee. Nmero de recursos que necesita para finalizar. Nmero de procesos que se veran involucrados con su reiniciacin.

Expropiar los recursos de algunos de los procesos bloqueados de forma sucesiva hasta que se consiga salir del interbloqueo. Adems, hay que tener en cuenta el estado al que se pasan los procesos expropiados. La solucin sera volverlos a un estado anterior en el que el bloqueo se rompa. Para que esto sea posible, se necesita que el sistema disponga de una utilidad que registre los estados de los distintos procesos en tiempo de ejecucin, con la consiguiente carga adicional sobre el sistema operativo.

En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables, por lo que no se puede permitir que se pres ente dicha situacin. En otros sistemas se rechaza el interbloqueo, aunque la situacin pudiera ser aceptable, por el costo en tiempo y medios adicionales que conlleva la recuperacin. Se puede obtener una mayor eficacia combinando los distintos mtodos para aprovechar sus ventajas: a. Agrupar los recursos del sistema en clases disjuntas. b. Para evitar el interbloqueo entre las clases, se ordenan para evitar la espera circular. c. Usar en cada clase el mtodo ms apropiado de evitar en ella el interbloqueo. A continuacin se presenta un ejemplo para cuatro clases de recursos:
Clase de recurso Mtodos ms adecuado Motivo

Espacio de intercambio

Prevencin del interbloqueo por el mtodo usado para evitar la condicin de retencin Se conoc e de antemano la capacidad y espera. mxima de almacenamiento necesitada por cada proceso. Evitacin del interbloqueo.

Recursos de los procesos (impresoras, ficheros, discos, cintas)

Evitacin de interbloqueos.

Ordenacin de recursos.

Los procesos declaran los recursos de una determinada clase que van a necesitar.

Memoria principal

Prevencin mediante expropiacin

El proceso expropiado se pasa a memoria secundaria.

Recursos internos (canales E/S, etc.)

Prevencin por ordenacin de recursos

No suele s er necesario realizar ninguna eleccin en tiempo de ejecucin entre las peticiones pendientes.

Algoritmo del banquero Sistematizando y generalizando para mltiples recursos, se obtiene el algoritmo del banquero (se supone que los procesos son clientes que piden crdito y los recursos corresponden al dinero del que dispone el banco). La idea es bsicamente la misma, slo que se deben manejar vectores en vez de escalares. Por ejemplo, para 5 procesos y 3 recursos, Mximo, Actual y Diferencia, que antes eran columnas, ahora son matrices de 5x3; y Disponible, que antes era un escalar, ahora es un vector de 3 elementos. Pgina 86 de 164

Mximo Proceso A P0 P1 P2 P3 P4 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 A 0 2 3 2 0

Actual B 1 0 0 1 0 C 0 0 2 1 2

Diferencia A 7 1 6 0 4 B 4 2 0 1 3 C 3 2 0 1 1

Disponible A 3 B 3 C 2

Para chequear si un estado, como el anterior, es seguro: 1. Buscar un proceso (cualquiera) cuyos recursos mximos puedan satisfacerse con los disponibles (ms los que ya tiene); o sea, un proceso tal que Diferencia Disponible, componente a componente. Si no existe, el estado es inseguro. Si existe, suponer que el proceso termina y libera todos sus recursos, agregndolos a los disponibles. Repetir 1 y 2 hasta haber pasado por todos los procesos, en cuyo caso el estado es seguro, o hasta determinar que el estado es inseguro.

2.

3.

En el ejemplo, se puede escoger primero P1 o P3 (da igual); supngase P1. Al terminar, los recursos disponibles quedan en <4,5,4> . Ahora se pude escoger P3 P4, y as, hasta determinar que el estado es seguro. Supngase ahora que, en ese estado, P1 pide 1 instancia adicional de A y 2 de C. Los recursos estn disponibles, pero antes de concedrselos a P1, se debe chequear si el nuevo estado sera seguro o no. Dicho estado sera:
Mximo Proce so A P0 P1 P2 P3 P4 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 A 0 3 3 2 0 B 1 0 0 1 0 C 0 2 2 1 2 A 7 0 6 0 4 B 4 2 0 1 3 C 3 0 0 1 1 A 2 B 3 C 0 Actual Dife rencia Disponible

y tambin es seguro, ya que la secuencia <P1,P3,P4,P0,P2> es segura. En consecuencia, se pueden otorgar los recursos solicitados por P1. Si en ese nuevo estado, P4 pide ahora 3 unidades de A y 3 de B, entonces P4 debe suspenderse porque no hay suficientes recursos para satisfacer el pedido. Si P3 pide 2 unidades adicionales de B, simplemente se aborta el proceso, pues no cumplira con el mximo declarado. Y si P0 pide 2 unidades de B, tambin debe suspenderse, pero en este caso porque si se le otorgan los recursos, el estado pasara a ser inseguro. Cada vez que algn proceso libera recursos, debera chequearse cules de las solicitudes pendientes pueden atenderse. Este algoritmo fue publicado en 1965 y ha sido objeto de innumerables estudios. En teora funciona muy bien, pero en la prctica, rara vez se usa, puesto que es muy difcil para los procesos saber a priori sus necesidades mximas de cada recurso. En resumen, los algoritmos de prevencin son extremadamente restrictiv y los de evitacin requieren os informacin que por lo general no est disponible. Por eso, los mtodos de deteccin y recuperacin no son tan poco usuales ni descabellados. Tambin se usan mtodos adecuados a situaciones especficas, pero no existe ningn mtodo un mtodo de resolucin universal que sirva para todo. Pgina 87 de 164

CAP T UL O V II
AS PECT OS DE SEGURID AD
Tcnicas D e P rote ccin
Cuando se almacena informacin en un sistema de computacin, una de las mayores preocupaciones es protegerla de daos fsicos (confi abilidad) y del acceso inadecuado (proteccin). La confiabilidad generalmente se obtiene creando copias de los archivos. Muchos computadores tienen programas de sistema que automticamente o manualmente copian los archivos de disco a una cinta a intervalos regulares para conservar una copia en caso de que el sistema de archivos se destruya accidentalmente. Un sistema de archivos puede ser daado por problemas de hardware, cortes o sobrecargas de energa, choques de las cabezas, polvo, temperatura y vandalismo; adems, los archivos pueden eliminarse accidentalmente. Los errores en el software del sistema de archivos tambin pueden ocasionar la prdida del contenido de los archivos. Por otra parte, tambin se encuentran los virus informticos, caballos de troya y los gusanos. La proteccin puede ofrecerse de variadas formas. Se puede proteger un pequeo sistema monousuario quitando los discos flexibles y guardndolos bajo llave en un cajn del escritorio o en un archivero. Sin embargo, en los sistemas multius uario se requieren otros mecanismos ms complejos y aplicables a la realidad. La necesidad de proteccin surge de la capacidad de acceder a los archivos, y en aquellos sistemas donde no se permite el acceso a los archivos de otros usuarios, no es necesaria la proteccin. De esta manera, un extremo sera ofrecer una proteccin completa prohibiendo el acceso, mientras que el otro extremo sera ofrecer acceso ilimitado sin proteccin. Ambas estrategias son demasiado radicales para aplicarlas de manera general; lo que se necesita es acceso controlado . Los mecanismos de proteccin ofrecen acceso controlado limitando los tipos de accesos que pueden efectuarse a los archivos. El acceso se permite o niega dependiendo de varios factores, uno de los cuales es el tip o de acceso solicitado. Es posible controlar varias clases de operaciones como lectura, escritura, ejecucin, modificacin y eliminacin. Tambin pueden controlarse los accesos a directorios completos mediante especificaciones que son inevitablemente aplicables a todos los archivos contenidos en el directorio en cuestin. Las operaciones con directorios que se deben proteger son algo diferentes. Se quiere controlar la creacin y eliminacin de archivos en el directorio y, adems, controlar si un usuario puede determinar la existencia de un archivo en un directorio. En algunos casos, puede que el conocimiento de la existencia y nombre de un archivo sea significativo por s mismo, por lo que la visualizacin del contenido de un directorio debe ser una operacin protegida. Se han propuesto muchos mecanismos de proteccin. Como siempre, cada esquema tiene sus ventajas y desventajas y debe seleccionarse el apropiado para la aplicacin que se pretende. Un pequeo sistema de computacin utilizado por unos cuantos integrantes de un equipo de investigacin no necesitar los mismos tipos de proteccin que el computador de una gran corporacin empleado para operaciones financieras, de investigacin y de gestin de personal. La proteccin puede estar asociada al archivo o a la ruta que se usa para especificarlo. En el esquema ms comn se aplica la proteccin a la ruta; as, si el nombre de la ruta hace referencia a un archivo en un directorio, el usuario debe contar con acceso al directorio y al archivo. En los sistemas donde los archivos tienen varios nombres de ruta (como en los grafos acclicos o generales) el usuario puede tener diferentes derechos de acceso al archivo dependiendo del nombre de ruta que utilice.

Nominacin
Los esquemas de proteccin de varios sistemas dependen de que el usuario no tenga acceso a un archivo que no puede nombrar; si no es capas de nombrarlo, entonces no es posible que opere con l. Este esquema supone que no hay ningn mecanismo para obtener los nombres de los archivos de otros Pgina N 88 de 151

usuarios y que es difcil adivinarlos. En realidad, como los nombres de archivos se eligen para que sean mnemnicos, a menudo es fcil adivinarlos.

Contraseas
Otra estrategia consiste en asociar una contrasea con cada archivo. De la misma manera que el acceso al computador se controla por medio de una contrasea, tambin as se puede controlar el acceso a cada archivo. Si las contraseas se eligen al azar y se cambian con frecuencia, esta estrategia puede ser eficaz para restringir el acceso a los usuarios que conozcan la contrasea. No obstante, existen varias desventajas con este esquema. Si se asocia una contrasea individual con cada archivo, puede ser muy grande el nmero de contraseas que hay que recordar, lo que no resulta prctico. Si se emplea la misma contrasea para todos los archivos, una vez que esta se descubre todos los archivos se hacen accesibles. Algunos sistemas permiten que el usuario asocie una contrasea con un subdirectorio, en vez de con un archivo.

Dominios de Proteccin
Un dominio de proteccin es un conjunto de pares (objeto, operaciones); cada par identifica un objeto y las operaciones permitidas sobre l. En cada instante, cada proceso se ejecuta dentro de un dominio de proteccin. Los procesos pueden cambiar de un dominio a otro en el tiempo; el cmo depende mucho del sistema. En UNIX, se asocia un dominio a cada usuario/grupo; dado un usuario y el grupo al cual pertenece, se puede construir una lista de todos los objetos que puede acceder y con qu operaciones. Cuando un usuario ejecuta un programa almacenado en un archivo de propiedad de otro usuario B, el proceso puede ejecutar dentro del dominio de proteccin de A o B, dependiendo del bit de dominio o SETUSERID bit del archivo. Este mecanismo se usa con algunos utilitarios. Por ejemplo, el programa passwd debe tener privilegios que un usuario comn no tiene, para poder modificar el archivo donde se guardan las claves. Lo que se hace es que el archivo /bin/passwd que contiene el programa es propiedad del superusuario, y tiene el SETUSERID encendido. Este esquema es peligroso: un proceso puede pasar de un estado en que tiene poco poder a otro en que tiene poder absoluto (no hay trminos medios). Cualquier error en un programa como passwd puede significar un gran hoyo en la seguridad del sistema. Cuando se hace una llamada al sistema tambin se produce un cambio de dominio, puesto que la llamada se ejecuta en modo protegido.

Matriz De Acceso
Otra Ahora bien, cmo se las arregla el sistema para llevar la cuenta de quin puede acceder a qu objetos y con qu operaciones? Conceptualmente al menos, se puede ver este modelo de proteccin como una gran matriz de acceso. Los cambios de dominio que un proceso puede hacer tambin pueden integrarse a la matriz, tratando a los dominios como otros objetos, con una operacin: entrar. Una poltica de proteccin involucra decidir cmo se va a llenar esta matriz. Normalmente el usuario que crea un objeto es quin decide cmo se va a llenar la columna de la matriz correspondiente a ese objeto. La matriz de acceso es suficientemente general como para apoyar diversas polticas. Por ejemplo: La capacidad para copiar o transferir un derecho de un objeto a otro dominio. Pgina 89 de 164

Capacidad de un dominio para modificar los derechos en otros dominios (todos, o para un recurso especfico).

El problema es cmo almacenar esta matriz. Como es una matriz poco densa (muchos de los elementos son vacos), no resulta prctico representarla como matriz propiamente. Podramos usar una tabla con triples (dominio, objeto, derechos). Si un proceso dentro de un dominio D intenta efectuar una operacin M sobre un objeto O, se busca (D, O, C), y se verifica si M pertenece a C. De todas maneras, la tabla es grande, y el esquema no es muy eficient e. Adems, si un objeto puede ser, por ejemplo, ledo por todo el mundo, debe tener entradas para cada dominio.

Listas De Acceso
Otra estrategia es hacer que el acceso dependa de la identidad del usuario. Los distintos usuarios pueden requerir tipos de acceso diferentes para un archivo o un directorio, al cual puede asociarse una lista de acceso que especifique los nombres de los usuarios y los tipos de acceso permitidos para cada uno. Cuando un usuario solicita el acceso a un archivo, el sistema operativo comprueba la lista de acceso correspondiente. Si el usuario aparece en la lista junto con el acceso solicitado, se permite el acceso; de lo contrario, ocurre una violacin de la proteccin y se niega el acceso. Alternativamente, se puede guardar la matriz por columnas (descartando las entradas vacas). Es decir, a cada objeto se le asocia una lista de pares (dominio, derechos). Es lo que se conoce como lista de acceso. Si se piensa en archivos de Unix, se puede almacenar esta lista en el nodo-i de cada archivo, y sera algo as como: ((Juan, *, RW), (Pedro, Profes, RW), (*, Profes, R)). Donde R: Read (Leer), W: Write (Escribir), X: Excecute (Ejecucin). En la prctica, se usa un esquema ms simple (y menos poderoso), pero que puede considerarse an una lista de accesos, reducida a 9 bits. 3 para el dueo (RWX), 3 para el grupo, y 3 para el resto del mundo. Windows NT usa listas de accesos con todo el nivel de detalle que uno quiera: para cualquier usuario o grupo, se puede especificar cualquier subconjunto de derechos para un archivo La otra posibilidad es almacenar la matriz por filas. En este caso, a cada proceso se le asocia una lista de capacidades. Cada capacidad corresponde a un objeto ms las operaciones permitidas. Cuando se usan capacidades, lo usual es que, para efectuar una operacin M sobre un objeto O, el proceso ejecute la operacin especificando un puntero a la capacidad correspondiente al objeto, en vez de un puntero al objeto. La sola posesin de la capacidad por parte del proceso quiere decir que tiene los derechos que en ella se indican. Por lo tanto, obviamente, se debe evitar que los procesos puedan "falsificar" capacidades. Una posibilidad es mantener las listas de capacidades dentro del sistema operativo, y que los procesos slo manejen punteros a las capacidades, no las capacidades propiamente. Otra posibilidad es cifrar las capacidades con una clave conocida por el sistema, pero no por el usuario. Un problema de las capacidades es que puede ser difcil revocar derechos ya entre gados.

Usuarios y Grupos De Acceso


El sistema operativo tambin provee seguridad a nivel de usuarios. En este caso define para cada usuario del sistema un conjunto de atributos (perfil) que especifican a que recursos puede acceder. Por lo general la de finicin de un perfil para cada usuario resultara demasiado extenso y complejo de administrar. Es as, que el sistema operativo crea grupos de usuarios que permiten definir un conjunto de atributos a un grupo amplio de individuos.

Pgina 90 de 164

El mayor problema con las listas de acceso puede ser su longitud. Si se quiere que todos puedan leer un archivo, se debe elaborar una lista de todos los usuarios con acceso de lectura. Esta tcnica tiene dos consecuencias indeseables: La construccin de la lista (o matriz de acceso ) puede ser una tarea tediosa e infructuosa, especialmente si no se conoce por adelantado la lista de usuarios del sistema. La entrada del directorio, que antes era de tamao fijo, ahora necesita ser de tamao variable, lo que complica la administracin del espacio.

Estos problemas pueden resolverse usando una versin condensada de la lista de acceso. Para condensar el tamao de la lista de acceso muchos sistemas reconocen tres clasificaciones de los usuarios en relacin con cada archivo: Dueo. El usuario que cre el archivo es su dueo. Grupo. Un grupo o grupo de trabajo es un conjunto de usuarios que comparten el archivo y necesitan acceso similar. Universo. Todos los dems usuarios en el sistema forman el universo. Obsrvese que, para que este esquema funcione correctamente, hay que controlar con cuidado la pertenencia a los grupos. Hay varias maneras para ejercer este control. Por ejemplo, en los sistemas UNIX los grupos slo pueden ser creados o modificados por el administrador de la instalacin (o por cualquier superusuario). De esta manera, el control se obtiene por interaccin humana.

S eguri dad D e Los S iste mas O perativos


Los mecanismos de seguridad son instrumentos de proteccin contra amenaz as a la seguridad. Sucede con demasiada frecuencia que los proveedores de productos especficos de seguridad presentan sus productos como la respuesta a todos los problemas de seguridad. El partidario de los dispositivos de ciframiento dice que la seguridad es un problema de ciframiento, el auditor de seguridad de los datos opina que la seguridad es una cuestin de auditoria y control, mientras que el especialista en emanaciones comprometedoras siente que la respuesta reside en el blindaje electrnico que protege el equipo contra fugas de informacin. La eleccin de soluciones para problemas reales de seguridad es una decisin tanto econmica como tcnica. Los criterios econmicos surgen del equilibrio entre el costo de prdidas potenciales y el costo de instrumentos y procedimientos de proteccin; este proceso se denomina a veces estimacin de riesgos. Existen guas especficas para agencias que manejan aspectos de seguridad nacional e informacin. No todos los niveles de proteccin son apropiados para todos los ambientes. EI trabajo de seguridad OSI (Open System Interconnection) considera las amenazas como accidentales o intencionales, y como activas o pasivas. Las amenazas pasivas se limitan a la obtencin de informacin confidencial, en tanto que las activas incluyen la alteracin de datos, la denegacin de servicio o la reproduccin de trfico legtimo. Existe la idea errnea de que los sistemas abiertos no son seguros; ello ha provocado retrasos en la realizacin de OSI. En la arquitectura de seguridad OSI se identifican tanto los servicios de seguridad como los mecanismos para ofrecerlos. Entre los servicios proporcionados se pueden mencionar el control de acceso , la identificacin de autenticidad de las entidades iguales, la confidencialidad en los contextos de los datos, la transferencia de datos orientada a las conexiones y sin conexiones, la seguridad a nivel de campos, la seguridad del flujo de trfico y la integridad de los datos.

Concepto De Seguridad
Conform e los sistemas de computacin se han vuelto ms complejos y sus aplicaciones se han difundido ms, tambin ha crecido la necesidad de proteger su integridad. En un principio, la proteccin se Pgina 91 de 164

concibi como una aadidura a los sistemas operativos de multiprogramacin para que varios usuarios, en los que no se poda confiar, pudieran compartir con seguridad un mismo espacio lgico, como un directorio de archivos o un mismo espacio fsico, como la memoria. Se ha evolucionado hasta los modernos conceptos de proteccin para aumentar la seguridad de cualquier sistema complejo que utilice recursos compartidos. La proteccin se refiere a un mecanismo para controlar el acceso de programas, procesos o usuarios a los recursos definidos por un sistema de computacin. Este mecanismo debe ofrecer un medio para especificar los controles que se impondrn, as como la manera de aplicarlos. Se debe establecer la diferencia entre proteccin y seguridad, la cual representa una medida de la confianza en que se conservar la integridad del sistema y sus datos. El control de la seguridad es un tema mucho ms amplio que la proteccin. Hay varias razones para proporcionar la proteccin, la ms obvia es la necesidad de evitar una violacin mal intencionada de una restriccin de acces o. Sin embargo, tiene una importancia ms general la necesidad de asegurar que cada componente de un programa activo utilice los recursos slo de manera consistente con las polticas establecidas para su uso. Este es un requisito absoluto para un sistema seguro. La proteccin puede mejorar la seguridad detectando errores latentes en las interfaces entre los subsistemas componentes. Si en las primeras etapas se detecta un error en las interfaces, muchas veces se puede evitar la contaminacin de un sistema ntegro debido al mal funcionamiento de un subsistema. Un recurso desprotegido no puede defenderse del uso, o abuso, no autorizado o de un usuario incompetente. Un sistema orientado a la proteccin ofrece un medio para distinguir entre el uso autorizado y el no autorizado. El papel de la proteccin en un sistema de computacin consiste en proporcionar un mecanismo para aplicar las polticas que gobiernan la utilizacin de los recursos. Estas polticas pueden establecerse de varias maneras: algunas estn det erminadas en el diseo del sistema, otras estn formuladas por los administradores de un sistema, y algunas ms son definidas por los usuarios para proteger sus propios archivos y programas. Un sistema de proteccin debe tener la flexibilidad suficiente pa ra aplicar las diversas polticas que se le puedan indicar. Las polticas para la utilizacin de los recursos pueden variar, dependiendo de la aplicacin, y pueden cambiar con el tiempo. Por estas razones, la proteccin no puede considerarse como algo que slo concierne al diseador de un sistema operativo; tambin debe estar a disposicin del programador de aplicaciones para que puedan asegurar los recursos creados y el servicio proporcionando a un subsistema de aplicaciones contra el mal uso.

Mtodos De Verificacin
Los requisitos de seguridad de un sistema dado definen qu significa que ese sistema sea seguro. Tales requisitos sirven como base para determinar si el sistema realizado es seguro: sin un conjunto preciso de requisitos de seguridad no tiene mucho sentido preguntar si el sistema es seguro. De manera similar, si los requisitos no estn expresados en forma tajante, no dirn mucho acerca de la verdadera seguridad del sistema. Para establecer adecuadamente los requisitos de seguridad, es necesario evaluar cul es el mejor mtodo de seguridad que se puede aplicar para satisfacer las necesidades del sistema computacional involucrado. Existen muchas estrategias considerativas de seguridad, de las cuales slo se har mencin de algunas.

Estrategia De Total Seguridad


En vista de lo indispensable de una estrategia total respecto a la seguridad de los computadores. La seguridad externa se ocupa de proteger el recurso de cmputo contra intrusos y desastres como incendios e inundaciones. Una vez que un usuario obtiene acceso fsico a un recurso de cmputo, el sistema operativo debe lograr su identificacin antes de concederle acceso a los programas y datos Pgina 92 de 164

almacenados en el sistema. Esto podra llamarse seguridad de la interfaz con el usuario. La seguridad interna se ocupa de los diversos controles integrados al equipo y al sistema operativo con el fin de garantizar el funcionamiento confiable y sin corrupcin del sistema de cmputo y la integridad de los programas y los datos.

Seguridad Externa
La seguridad externa consiste en seguridad fsica y seguridad de operacin. La seguridad fsica incluye la proteccin contra desastres y la proteccin contra intrusos. Los mecanismos de deteccin son importantes para la seguridad fsica. Los detectores de humo y los sensores de calor pueden proporcionar un aviso temprano en caso de incendio; los detectores de movimiento pueden determinar si ha entrado un intruso en una instalacin de cmputo. Poner en prctica la proteccin contra desastres puede resultar costoso y a menudo se trata con demasiada ligereza, pero es obvio que la necesidad de este tipo de proteccin depende de las consecuencias de una prdida. La mayora de las organizaciones sencillamente no pueden darse el lujo de un plan minucioso pa ra proteccin contra desastres, por lo que las principales labores en cuanto a seguridad fsica se encaminan hacia el rechazo de intrusos. Para dicho propsito, las instalaciones utilizan diversos tipos de sistemas de identificacin fsica, como por ejempl o, las credenciales con firmas, o fotografas, o bien, las dos cosas. Los sistemas de huellas dactilares o de patrn de voz tambin gozan de popularidad.

Seguridad De Operacin
La seguridad de operacin se compone de las diversas polticas y procedimientos puestos en prctica por los administradores de una instalacin de cmputo. La autorizacin determina qu acceso se otorga a qu entidades. La clasificacin fragmenta el problema en subproblemas; los datos del sistema y los usuarios se dividen en clases a las cuales se conceden diversos derechos de acceso. La eleccin y asignacin del personal es vital. Es posible confiar en los empleados. Un enfoque comn en este aspecto es la divisin de responsabilidades; a las personas se les asignan diferentes conjuntos de deberes, mismos que pueden realizar sin necesidad de conocer la totalidad del sistema, y as los individuos no pueden percibir el panorama completo. Para poner en peligro al sistema podra ser necesaria la cooperacin entre muchos empleados y ello reduce considerablemente la probabilidad de violaciones de la seguridad. Por ejemplo, en instalaciones de cmputo grandes slo se permite el acceso al sistema de cmputo a los operadores y slo los programadores pueden escribir programas. Los operadores no deberan saber programar ni los programadores deberan estar familiarizados con los detalles de operacin del sistema de cmputo. De manera similar, un grupo separado debera controlar las entradas a los sistemas de produccin y un grupo totalmente distinto debera revisar y verificar las salidas. Es preciso incluir verificaciones y balances en el sistema de cmputo como una forma de ayuda para la deteccin de violaciones de la seguridad; el personal de operacin no debe tener conocimiento de la naturaleza de estos controles, lo cual reduce la posibilidad de esquivarlos, pero debe indicrseles que se han incluido controles complejos en el sistema porque semejante conocimiento muchas veces basta para refrenar a las personas que podran i ntentar violar la seguridad.

Vigilancia
La vigilancia se ocupa de supervisar el sistema, realizar auditoras de l y de verificar la identidad de los usuarios. Algunos de los sistemas de verificacin de autenticidad usados hoy da son m uy complejos; es cierto que se pueden esquivar, pero hacerlo requiere cada vez de mayor conocimientos y esfuerzo. Un problema interesante en estos sistemas es la posibilidad de rechazar usuarios legtimos; un sistema de patrn de voz podra rechazar a un usuario legtimo que esta resfriado; un sistema de huellas digitales podra rechazar a un usuario legtimo con una cortadura o quemadura. Pgina 93 de 164

Supervisin De Amenazas
Una forma de reducir al mnimo los riesgos para la seguridad es hacer que el sistema operativo controle las operaciones delicadas en vez de entregar el control directamente a un usuario. Si un usuario desea obtener acceso a un archivo vital, algunos sistemas podran permitir al usuario un acceso directo al archivo. El usuario estara fuera de cont rol y el sistema operativo no podra supervisar los movimientos realizados con el archivo en el momento en que tienen lugar. Una tcnica ms segura es la denominada supervisin de amenazas. Cuando hay supervisin de amenazas, los usuarios no pueden obtener acceso directo a los recursos; este acceso directo slo pueden tenerlo algunas rutinas de los sistemas operativos llamadas programas de vigilancia. El usuario que desea obtener acceso a un recurso lo solicita al sistema operativo, el cual puede conceder o denegar el acceso. Si lo concede, un programa de vigilancia se encarga del acceso real al archivo y pasa los resultados al programa del usuario. Este concepto es similar al de los monitores. La supervisin de amenazas es una actividad continua; los intentos de penetracin se detectan en el momento en que ocurren y se notifica de inmediato al administrador del sistema. A veces es preciso conceder a un programa de vigilancia mayores derechos de acceso que los otorgados a los usuarios para que pueda atender en forma efectiva ciertas solicitudes de los usuarios. Esto se denomina amplificacin. Aun as, los usuarios astutos podran inferir informacin realizando varias consultas diferentes y examinando el traslape en los resultados. Sin embargo, es posible disear programas de vigilancia que detecten tales intentos y lo notifiquen a un administrador del sistema.

Proteccin Por Contrasea (Llave/Cerradura)


Hay tres clases de elementos para la verificacin de autenticidad con los cuales puede establecerse la identidad de un usuario de un sistema: Algo caracterstico de la persona. Esto incluye huellas dactilares, patrones de voz, fotografas y firmas. Algo que posee la persona. Esto incluye credenciales, tarjetas de identificacin y claves. Algo que sabe la persona. Esto incluye contraseas y combinaciones de candados.

El esquema ms comn para la verificacin de autenticidad es la simple proteccin por contrasea utilizando una matriz de accesos sobre dominios de proteccin. El usuario escoge una palabra clave, la memoriza y despus la teclea para obtener acceso a un sistema de cmputo. La mayor parte de los sistemas suprimen la impresin o despliegue de la contrasea mientras se teclea. La proteccin por contrasea tiene muchos puntos dbiles. Los usuarios eligen por lo regular contraseas fciles de recordar, como por ejemplo el nombre de un amigo o pariente. Alguien que conoce al usuario podra tratar varias veces de entrar en el sistema usando los nombres de gente conocida por esta persona; tal cosa podra dar por resultado una violacin de seguridad mediante intentos repetidos. Algunos de los primeros sistemas empleaban contraseas cortas; dichos sistemas eran fc iles de penetrar por la simple prueba de todas las contraseas posibles. La mayor parte de los sistemas actuales usan contraseas ms largas para frustrar tales intentos de penetracin. No obstante, el empleo de contraseas largas tiene tambin sus problemas: si las claves son difciles de recordar, los usuarios tendern a anotarlas en algn lado lo cual facilita la obtencin de la contrasea por parte de un tercero. La penetracin de las defensas de un sistema operativo no resulta por fuerza un peligro significativo para la seguridad. Por ejemplo, supngase que alguien logra obtener acceso a la lista maestra de contraseas de un sistema. En general, esto significara que el intruso podra obtener acceso a cualquier informacin en el sistema. Para lograr que las contraseas resulten intiles para un intruso, se puede usar el ciframiento. As, la posesin de las contraseas servir de poco a menos que la persona cuente tambin con la clave de desciframiento. Se recomienda a los usuarios cambiar sus contraseas con frecuencia; de este modo, aunque un intruso obtenga una contrasea, sta podra haber cambiado antes de que l logre hacer un verdadero dao. Pgina 94 de 164

Una defensa sencilla contra los intentos repetidos es limitar el nmero de intentos de entrada que pueden iniciarse en cualquier periodo desde una misma terminal o estacin de trabajo (o desde una misma cuenta). Sin duda, cualquier persona comete errores de tecleo cuando intenta entrar en el sistema. Pero no es razonable que una persona que conoce la contrasea correcta requiera decenas, cientos o miles de intentos. Por tanto, un sistema podra permitir tres o cuatro intentos, y despus desconectar automticamente la terminal durante varios minutos. Despus de un periodo de espera, el terminal se puede volver a conectar. Si ocurre otra serie de intentos intiles por entrar en el sistema, el sistema operativo podra desplegar un aviso en la terminal indicando que su intento de violacin al sistema ha sido detectado.

Auditora
La auditora se re aliza por lo general en sistemas manuales a posteriori. Se convocan auditores peridicamente para examinar las transacciones recientes de una organizacin y determinar si se han realizado actividades fraudulentas. La auditora en sistemas de cmputo puede implicar un procesamiento inmediato en el computador para revisar las transacciones que se acaban de realizar. Una bitcora de auditoria es un registro permanente de eventos importantes que ocurren en el sistema de cmputo. Se produce automticamente cada vez que sucede un evento as y se almacena en un rea protegida del sistema; si el sistema se ve comprometido, la bitcora de auditora deber permanecer intacta. La bitcora de auditora es un mecanismo de deteccin importante. Aunque logren penetrar las defensas de un sistema, las personas pueden refrenar sus deseos de hacerlo si temen una deteccin posterior. La mayora de los sistemas operativos poseen este tipo de bitcoras y en ellas se almacena informacin como:
La identificacin general del usuario. Su clave formal de acceso al sistema y el nmero de veces que tuvo que repetir la clave antes de poder ingresar al sistema. Toda la informacin asociada al usuario (nombre, cdula de identidad, etc.) y al evento (eliminacin o lectura de archivos importantes, ingreso a directorios no autorizados, etc.). Informacin acerca de la fecha, hora y nmero de serie del terminal.

La simple produccin de una bitcora de auditora no garantiza una seguridad adecuada. Es necesario revisar la bitcora con frecuencia y detenimiento. Estas revisiones pueden realizarse tanto en forma peridica como al azar. Las auditoras peridicas atienden en forma regular los problemas de seguridad; las auditoras al azar ayudan a atrapar desprevenidos a los intrusos.

Criptografa
Al ir ganando popularidad las redes de computadores, cada vez se transmite ms informacin confidencial por canales donde es posible interceptar o escuchar los mensajes sin autorizacin. Por ejemplo, las transferencias de cuentas bancarias, fichas mdicas e historiales criminales son algo rutinario en muchos lugares, generalmente en redes aisladas de propsito especial. Para que esta informacin confidencial este segura, se necesita de mecanismos que permitan que un us uario proteja los datos transferidos por la red. El cifrado es un mtodo comn para proteger la informacin que se transmite por enlaces poco confiables. El mecanismo bsico funciona en la forma siguiente:
La informacin se codifica de su formato legible inicial, o texto limpio, a un formato interno, o texto cifrado. Este formato interno del texto, aunque puede ser legible, no tiene ningn sentido. El texto cifrado puede almacenarse en un archivo legible o transmitirse por canales no protegidos.

Pgina 95 de 164

Para que el texto cifrado tenga sentido, el receptor debe decodificarlo adecuadamente a fin de recuperar el texto limpio.

Incluso si la informacin cifrada cae en manos de una persona no autorizada, no le servir de nada a menos que la pueda decodificar. El asunto ms importante es el desarrollo de esquemas de cifrado que sean imposibles, o por lo menos muy difciles, de romper. Hay una gran variedad de mtodos para lograr esta tarea. Los ms comunes proporcionan un algoritmo de cifrado general E (encryption) un algoritmo de descifrado general D (decryption) y una o varias claves secretas que se proporcionan para cada aplicacin. Sean E k y Dk la representacin de los algoritmos de cifrado y descifrado, respectivamente, para una aplicacin con la clave k. El algoritmo de cifrado debe satisfacer las siguientes propiedades para cualquier mensaje m: Dk (E k (m)) = m. Tanto Ek como Dk pueden calcularse eficientemente. La seguridad del sistema depende nicamente de lo secreto de la clave y no de lo secreto de los algoritmos E y D.

Uno de estos esquemas es llamado norma de cifrado de datos. Este esquema presenta el problema de distribucin de Ilaves: antes que se pueda establecer la comunicacin, las llaves secretas se deben enviar de manera segura tanto al emisor como al receptor, tarea que no puede lograrse eficazmente en un entorno de comunicaciones por red. Una solucin para este problema consiste en utilizar una estrategia de cifrado de llave pblica: cada usuario tienen una clave pblica y una privada, y dos usuarios slo se pueden comunicar si conocen la clave pblica del otro. De este concepto surge un algoritmo que se considera casi inviolable. La clave p blica de cifrado es un par (e,n); la clave privada es un par (d,n), donde e, d y n son enteros positivos. Cada mensaje esta representado por un entero entre 0 y n-1. Un mensaje de gran tamao se divide en una serie de mensajes ms pequeos, cada uno de los cuales puede representarse con un entero. Las funciones E y D se definen como E(m) = (m e) mod n = C D(C) = (Cd ) mod n. El problema principal es la eleccin de las claves de cifrado y descifrado. El entero n se calcula como el producto de dos nmero primos aleatorios (p y q) de gran tamao (100 o ms dgitos) donde n = p * q. Se escoge d de tal manera que su valor sea un nmero entero aleatorio de gran tamao relativamente primo a (p-1)*(q-1). Es decir, d cumple con el mximo comn divisor [d, (p -1)*(q-1)] =1. Por ltimo, se calcula el entero e a partir de p, q y d para que sea el inverso multiplicador de d mdulo (p-1)*(q-1). Es decir, e satisface la ecuacin: (e*d) mod ((p-1)x(q-1)) = 1. Se debe sealar que, aunque n es de conocimiento pblico, no lo son p y q. Esta condicin se permite porque es muy difcil factorizar n y, por tanto, no es fcil adivinar los enteros d y e. A modo de ejemplo: Sean p=5 y q=7. Entonces, n=35 y (p-1)*(q -1)=4. Como 11 es relativamente primo de 24, se puede escoge r d =11; Luego, como (11*11) mod 24 =121 mod 24 =1, se concluye que e =11. Supngase que m =3. Entonces, C = me mod n = 311 mod 35 =12, y Cd mod n = 1211 mod 35 = 3 = m. De esta manera, si se codifica m usando e, se puede decodificar m con d. Pgina 96 de 164

C APTULO V III ELEMENTOS DE C ONF IGURAC IN


E structuras D e S is temas Opera tivos (D iseos) Sistemas Monolticos (DOS, MAC)
Esta estructura de 3 niveles es muy utilizada en los sistemas operativos y consiste en una estructura muy rudimentaria. Bsicamente todas las funcionalidades del sistema operativo son proporcionadas a travs de un conjunto de procedimientos, los que pueden ser llamados por otros cada vez que se requiera. Nivel superior: Programas de aplicacin que llaman los procedimientos de servicio. Nivel intermedio: Conjunto de procedimientos de servicio que realizan los llamados a sistema. Nivel inferior: Conjunto de procedimientos utilitarios que ayudan a los procedimientos de servicio.

Sistemas Con Capas (Unix / OS2)


El enfoque por capas consiste en dividir el sistema operativo en varias capas, cada una de las capas se construye sobre una capa inferior. La capa 0 (la ms baja) es el hardwar e y la capa N (la ms alta) es la interfaz con el usuario. La caracterstica ms importante de este tipo de estructura es la modularidad. Las capas se seleccionan de manera que cada una utilice funciones y servicios slo de las capas inferiores. Desvent aja: Dificultad de definir los niveles.

Mquinas Virtuales (VM/370 CMS (Conversational Monitor System))


Este tipo de sistema consiste en que se ejecuta el ncleo del sistema, que se le llama monitor de la mquina virtual, sobre el hardwa re y realiza la multiprogramacin, proporcionando al nivel superior varias mquinas virtuales. Estas mquinas virtuales son simulaciones del hardware, con su modo ncleo/usuario, E/S, interrupciones y todos los dems aspectos fsicos del hardware.

Sistemas De Microkernel
La tendencia en el desarrollo de los sistemas operativos apunta a mover la mayor cantidad posible del cdigo del sistema operativo a las capas superiores, de manera de minimizar el tamao del ncleo del sistema. Microke rnel (cliente/servidor): Los procesos clientes solicitan los servicios a los procesos servidores. Firmware : Tecnologa de instrucciones incluidas en el procesador.

Pgina 97 de 164

Orga niz a c iones M s Com une s De Mu ltiproc e s a dore s


A continuacin se presenta una clasificacin para los sistemas con varios procesadores basado en cmo la mquina relaciona sus instrucciones con los datos que tiene que procesar. 1) SISD (Single Instruction Single Data). Un solo flujo de instruccin, un solo flujo de datos. Computadores con un nico procesador. SIMD (Single Instruction Multiple Data). Un solo flujo de instrucciones, varios flujos de datos. Procesadores vectoriales y computadores en arreglo en los que una sola instruccin se ejecuta sobre varios datos. MISD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, un solo flujo de datos. Ningn computador se ajusta a este tipo. MIMD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, fluj o de varios datos. Grupo de computadores independientes, cada uno con su propio contador de programa, programa y datos. Segn la conexin entre los procesadores, se pueden considerar: a) Sistemas fuertemente acoplados. Los procesadores comparten la memoria y el reloj. Son sistemas multiprocesadores y la comunicacin generalmente se hace a travs de la memoria compartida. Sistemas dbilmente acoplados. Los procesadores no comparten la memoria ni el reloj y cada uno tiene su propia memoria local. Se comunican mediante redes locales o de rea extensa. Son los sistemas distribuidos. Un sistema distribuido proporciona a los usuarios acceso a los distintos recursos hardware y software controlado por el sistema operativo Los esquemas bsicos del son: b.1. Sistemas operativos de red. Los usuarios estn enterados de la multiplicidad de mquinas y para acceder a sus recursos necesitan conectarse al computador remoto apropiado. Son sistemas dbilmente acoplados tanto en hardware como en software. Sistemas operativos distribuidos. Los usuarios no necesitan saber que existe una multiplicidad de mquinas y pueden acceder a los recursos remotos de la misma forma que lo hacen a los recursos locales. Son sistemas de hardware dbilmente acoplado, pero de software fuertemente acoplados.

2)

3)

4)

b)

b.2.

Tiempo Compartido O Bus Comn (Conductor Comn)


Usa un solo camino de comunicacin entre todas las unidades funcionales (procesadores, almacenamiento y los proces adores de I/O). En ese sencillo esquema, el bus comn es en esencia una unidad pasiva, es decir, las operaciones de transferencia entre las unidades funcionales son controladas por las interfaces del conductor de las propias unidades. La principal vent aja es que es una de las formas ms sencillas (usar un bus compartido para conectar los procesadores y la memoria); el problema es que el bus o la memoria compartida se pueden saturar. Para esto se puede recurrir a las siguientes soluciones: 1) Disponer de una memoria cach: a) Asociada con la memoria compartida: los procesadores acceden a ella por el bus,

Pgina 98 de 164

b)

Asignar a cada procesador una cach. Presenta problemas de coherencia. Para mantener esta coherencia, se utilizan protocolos especializados y hardware adicional, como los espas de cach o monitores de cach, que observan el bus y cuando se hace una peticin de escritura en una direccin presente en la cach, se actualiza sta con el nuevo valor. Esto hace que aumente el trfico en el bus.

2) 3)

Considerar un bus de ms anchura. Soportar protocolos diferentes de peticin/respuesta. Las peticiones y las respuestas de memoria se tratan de forma separada en el bus. Despus de que un procesador realiza una peticin, el bus queda liberado para que le puedan utilizar otros usuarios durante el tiempo que tarda la memoria en acceder y ensamblar la informacin solicitada.

La escalabilidad de este esquema est limitada por el bus y la memoria compartida. En implementaciones comerciales se soportan del orden de 64 procesadores. Es un esquema sencillo, por lo que muchos diseos comerciales estn basados en l.

Matriz De Barras Cruzadas E Interruptores


Existe un camino diferente para cada unidad de almacenamiento. Con este esquema, las referencias a dos unidades diferentes de almacenamiento pueden producirse de forma simultnea, una no puede bloquear a la otra. De hecho, un sistema de matriz de barras cruzadas e interruptores puede mantener transmisiones simultneas para todas las unidades de almacenamiento. Se disponen de n memorias y n procesadores conectados mediante conmutadores.

La conmutacin en los cruces (punto de unin entre las lneas) es la nica fuente de retardo. La contencin en el acceso a la m emoria slo ocurre cuando un procesador intenta acceder a la misma memoria y al mismo tiempo que otro. Pero con una apropiada situacin de los datos se puede evitar, o por lo menos aliviar. El problema persiste en el caso de variables compartidas (como un semforo). Permite un elevado grado de paralelismo entre tareas no relacionadas, pero se presentan problemas de contencin cuando hay procesos con memoria compartida. Para n procesadores y n memorias, se necesitan n conmutadores, lo que hace que el coste sea elevado.
2

Almacenamiento De Interconexin Mltiple


En este esquema, cada unidad funcional puede acceder a cada unidad de almacenamiento, pero slo en una conexin de almacenamiento especfica. Se suministra una conexin de almacenamiento por unidad funcional. A las conexiones de almacenamiento suelen asignrselas prioridades permanentes para resolver los conflictos entre las unidades funcionales que intentan acceder al almacenamiento al mismo tiempo.

Pgina 99 de 164

Una posibilidad interesante del esquema de interconexin mltiple es la capacidad de restringir el acceso de varias unidades de almacenamiento a ciertos subconjuntos de procesadores y procesadores de entrada/salida, creando as ciertas unidades de almacenamiento privadas. Una red omega est basada en conmutadores 2x2, cada uno con dos entradas y dos salidas. Cada conmutador puede dirigir cualquiera de las entradas a cualquiera de las salidas y todos los procesadores pueden acceder a todas las memorias. Puede conectar simultneamente todas las entradas a todas las salidas, suponiendo que no haya dos procesadores que intenten acceder al mismo tiempo al mismo mdulo de memoria. En caso contrario, se puede presentar contencin de acceso a la memoria. Los principales problemas que puede presentar son: a) Cuando algunos mdulos de memoria se referencian con mucha frecuencia, se produce un punto caliente, que bloquea ciertas rutas de comunicacin durante largos perodos de tiempo. Retraso en la conexin. Si hay n memorias y n procesadores, habr log2n etapas, cada una con n/2 conmutadores.

b)

Conexiones Hipercubo
Un hipercubo es un cubo n-dimensional que cumple las siguientes condiciones: a) b) c) d) Est formado por 2*n procesadores. Cada procesador tiene n conexiones directas con otros procesadores. La mxima distancia entre dos nodos cualesquiera (nmero de enlaces fsicos entre nodos) es n. Es una estructura recursiva formada por dos hipercubos de dimensin n -1.

En las figuras se ilustra un hipercubo de dimensin 4 en el que cada vrtice es un procesador con su correspondiente memoria. Las principales ventajas de este esquema son:

a)

La complejidad de los hipercubos crece logartmicamente con el nmero de nodos, por lo que son una buena bas e para realizar sistemas escalables. Se considera la solucin idnea para sistemas grandes (dimensin 10 a 1.024 procesadores). La comunicacin entre nodos adyacentes es directa y el mayor retardo entre dos nodos est acotado por la dimensin del hipe rcubo.

b)

Organ izacin D e Los S istemas O perativos D e M ult i procesa dores Sistemas Ligeramente Acoplados v/s Sistemas Rgidamente Acoplados
El multiprocesamiento ligeramente acoplado incluye la conexin de dos o ms sistemas de computacin independientes por medio de un enlace de comunicacin. Cada sistema tiene su propio sistema operativo y almacenamiento. Los sistemas pueden funcionar de forma independiente, comunicndose cuando sea necesario. Los sistemas separados pueden acceder a los archivos de los otros a travs del enlace de comunicacin y, en algunos casos, pueden intercambiar tareas a procesadores menos cargados para lograr un cierto grado de equilibrio de la carga (sistemas RPC; Remote Procedure Call). Pgina 100 de 164

El multiprocesamiento rgidamente acoplado utiliza un solo almacenamiento para varios procesadores y un solo sistema operativo que controla mientras compara todos los procesadores y el hardware del sistema. Una de las mayores diferencias entre los sistemas operativos de multiprocesadores y uniprocesadores est en su organizacin y estructura en relacin con los procesadores mltiples. Las tres organizaciones bsicas de los sistemas operativos para multiprocesadores son: Maestro/satlite Ejecutivo separado para cada procesador Tratamiento simtrico (o annimo) para todos los procesadores.

Maestro/Satlite
La maestro/satlite es la organizacin ms fcil de implementar y suele construirse por extensin directa de un sistema de multiprogramacin existente. En la organizacin maestro/satlite, slo un procesador particular, el maestro, puede ejecutar el sistema operativo. Un procesador satlite tan slo puede ejecutar programas del usuario.

Ejecutivos Separados
En la organizacin de ejecutivos separados, cada procesador tiene su propio sistema operativo y responde a interrupciones de los usuarios que operan en ese procesador. Algunas tablas contienen informacin global de todo el sistema: Por ejemplo, la lista de procesadores conocidos por el sistema y el acceso a estas tablas debe controlarse con cuidado, usando tcnicas de exclusin mutua.

Simtrico
El multiprocesamiento simtrico es la organizacin ms complicada de implementar y la ms poderosa. Todos los procesadores son idnticos. El sistema operativo administra un grupo de procesadores idnticos, cualquiera de los cuales puede ser utilizado para controlar cualquier dispositivo de entrada/salida, o hacer referencia a cualquier unidad de almacenamiento.

Consideraciones fina les


Al momento de implementar estructuras de hardware de acuerdo a las necesidades del cliente, se habr de tener presente una serie de caractersticas generales de Hardware como los tipos de discos a implementar (capacidad, velocidad y confiabilidad) los tipos de monitores (resolucin, tamao) los dispositivos de comunicacin a incorporara (tarjetas de red, modem) los perifricos asociados (impresoras, escner, etc.) y, por supuesto, los medios de respaldo a implementar.

Pgina 101 de 164

CAP T UL O IX
AL GUNOS S ISTEM AS OPE RATIVOS
S istema O perat ivo U nix
El sistema operativo UNIX se compone de las siguientes capas: 1) 2) Ncleo: Primera capa inmediata al hardware. Es el autntico SO. Libreras: Contiene un procedimiento para cada llamada al sistema. (En el estndar Posix se especifica el interfaz de la librera y no el de la llamada al sistema).

3) 4)

Utilidades: shell, compiladores, editores y otras para manejo de archivos. Usuario: Desde el terminal el usuario llama directamente a estos programas de utilidades.

Adems, sus interfaces son: a) b) c) de llamadas al sistema de librera del usuario, formada por los programas de utilidades estndar.

Diagrama del ncleo:


Interfaz de llamadas al sistema Control de procesos Sincronizacin y Comunicacin Sistema de archivos Gestin de Memoria Cach buffer Bloque Controladores de perifricos

Planificador

Carcter

Control de hardware HARDWARE

El ncleo es el autntico sistema operativo interactuando directamente con el hardware hay unas rutinas primitivas , que corresponden al bloque de control del hardware y en la parte superior est el interfaz de llamadas al sistema, que permite al software de alto nivel tener acceso a funciones especficas del ncleo. El resto del ncleo se puede dividir en dos partes principales, que estn asociadas al control de procesos y a la gestin de archivos y de la E/S. La parte de control de procesos se responsabiliza de la planificacin y distribucin de los procesos, de la gestin de memoria y de la sincronizacin y comunicacin entre ellos. La parte de gestin de archivos intercambia datos entre la memoria y los dispositivos externos, tanto de caracteres como de bloques, para lo que se disponen de distintos controladores de perifricos. En la transferencia orientada a bloques, se utiliza un mtodo de cach de disco, que interpone un buffer del sistema en la memoria principal entre el espacio de direcciones del usuario y el dispositivo externo.

Control Y Sincronizacin De Procesos


En Unix todos los procesos se crean mediante rdenes del programa de usuario, excepto: a) El proceso 0, que se crea cuando se arranca el sistema y que corresponde al proceso intercambiador. Pgina 102 de 164

b) El proceso 1, que es creado por el proceso 0. Es el proceso init, antecesor de todos los dems procesos. Cuando se conecta un usuario al sistema, el proceso 1 crea un proceso de usuario para l. El programa de usuario puede a su vez crear procesos hijos. Un proceso puede estar en uno de estos nueve estados: 1) 2) 3) 4) 5) 6) 7) 8) 9) Ejecucin en modo usuario. Ejecucin en modo ncleo. Preparado para ejecucin en memoria principal. Espera en memoria principal, esperando a que ocurra un suceso. Preparado para ejecucin en memoria secundaria. Espera en memoria secundaria. Adelantado: se est ejecutando desde el modo ncleo al modo usuario, pero el ncleo lo adelanta y hace un cambio de contexto para planificar otro proceso (similar al estado 3). Creado o nonato: existe pero an no est preparado (estado inicial de todo proceso; excepto el 0). Zombi: el proceso ejecuta una llamada exit al sistema. No existe, pero libera un registro para unir a su proceso padre conteniendo cdigo de salida y algunas estadsticas. Es el estado final de un proceso.

La imagen de un proceso se organiza como la unin de tres partes: 1) Contexto a nivel de usuario: Se divide en rea de texto (slo lectura) que contiene las instrucciones del programa y rea de datos. Adems dispone de una pila de usuario y de la memoria compartida que ocupa el espacio de direcciones virtuales del proceso. Hay una sola copia del rea de memoria compartida, pero mediante el uso de la memoria virtual, cada proceso percibe que dicha regin est en su espacio de direcciones. Contexto de registro: Almacena la informacin del estado de un proceso cuando no se est ejecutando. Consta de: a) Contador de programa: Especifica la direccin de la siguiente instruccin que ejecutar el procesador. Puede ser una direccin virtual en el espacio de memoria del ncleo o del usuario. Registro de estado del proceso: Contiene el estado hardw are de la mquina relacionado con el proceso. Puntero de pila: Especifica la direccin de la siguiente entrada en la pila del ncleo o del usuario, dependiendo del modo de operacin. Registros de propsito general: Contienen datos generados por el proceso durante su ejecucin.

2)

b)

c)

d)

3)

Contexto a nivel de sistema: Contiene el resto de informacin que el sistema operativo necesita para gestionarlo. Consiste en una parte esttica, cuyo tamao es fijo y permanece con el proc eso a lo largo de la vida de ste., y una parte dinmica, que vara en tamao a lo largo de la vida del proceso. Componentes: a) Entrada a la tabla del proceso: Define el estado del mismo y contiene informacin de control que siempre est accesible al sistema operativo. Es una parte de la tabla del proceso mantenida por el sistema operativo. rea (o usuario): Contiene informacin de control del proceso que necesita ser accedida slo en el contexto del proceso. Tablas de pginas y de regiones: Definen la correspondencia entre las direcciones virtuales y las fsicas y campos de permisos. Se utilizan por el gestor de memoria. Pgina 103 de 164

b)

c)

d)

Pila del ncleo: Contiene los marcos de la pila de los procedimientos del ncleo como un proceso ejecutado en modo ncleo. Parte dinmica del contexto a nivel de sistema de un proceso: Consiste en un conjunto de capas (pila LIFO). Cada una contiene la informacin necesaria para recuperar la capa anterior, incluyendo el contexto de registro.

e)

La distincin entre la entrada a la tabla del proceso y el rea refleja el hecho de que el ncleo de Unix siempre se ejecuta en el contexto de algn proceso. Muchas de las veces se ejecutar segn el inters de este proceso. Pero, algunas veces (por ejemplo, cuando el ncleo realiza un algoritmo de planificacin para distribuir a otro proceso) necesita acceder a la informacin sobre dicho proceso.

Creacin De Procesos
La creacin de un proceso en Unix se hace mediante la llamada del sistema fork: pid fork() . A la vuelta de la llamada fork, los dos procesos tienen copias idnticas de sus contextos a nivel de usuario excepto por el valor pid devuelto. Cuando un proceso hace una peticin de fork, el ncleo realiza las siguientes funciones: 1) 2) 3) 4) 5) 6) En la tabla de procesos se le asigna un espacio. Al proceso hijo se le asigna un identificador (ID). Se hace una copia de la imagen del proceso padre, con excepcin de la memoria compartida. Se incrementan los contadores de algunos archivos propiedad del padre, para reflejar que ahora tambin pertenecen a otro proceso ms. al proceso hijo se le asigna un estado de preparado para ejecucin. Se devuelve al proceso padre el ID del hijo, y un valor cero al hijo.

Todo este trabajo se realiza en modo ncleo en el proceso padre. Cuando el ncleo termina estas funciones, el distribuidor puede: 1) 2) 3) Permanecer en el proceso padre. Transferir el control al proceso hij o. Transferir el control a otro proceso.

Tanto el padre como el hijo se ejecutan en el mismo trozo de cdigo. La diferencia est en que cuando se vuelve de fork se verifica el parmetro devuelto, si el valor es cero, ste es el proceso hijo, en caso contrario, es el padre. Comunicacin Entre Procesos 1) Tubos. Permiten transferir datos entre procesos y sincronizar la ejecucin de los mismos. Usan un modelo de productor -consumidor, y hay una cola FIFO donde un proceso escribe y el otro lee. Clase de tubos: a) b) 2) No etiquetados: slo se pueden comunicar procesos relacionados (un proceso con sus descendientes). Etiquetados: se pueden comunicar procesos no relacionados.

Seales. Mecanismo software que informa a un proceso de que ha ocurrido algn suceso asncrono (similar a una interrupcin hardware). Los procesos pueden enviar seales a los otros con la llamada al sistema kill, o bien el ncleo las puede enviar internamente. Cuando se enva una seal a un proceso, el ncleo actualiza un bit en un campo de seales de la entrada de la tabla del proceso. Hay un bit para cada tipo de seal, slo se puede atender una seal de cada tipo y no se puede crear una cola de seales. Mensajes. Permiten a los procesos enviar a cualquier proceso cadenas de datos formateados. En Unix hay cuatro llamadas al sistema para los mensajes: Pgina 104 de 164

3)

a) b) c) d) 4)

msgget: Devuelve un descriptor del mensaje. msgctl: Tiene las opciones de poner y devolver par metros y de eliminar descriptores. msgsnd: Enva un mensaje. msgrcv: Recibe un mensaje.

Memoria compartida. Posibilita que los procesos compartan parte de su espacio de direcciones virtuales. Es la forma ms rpida de comunicacin. Llamadas al sistema: a) b) c) d) e) shmget: Crea una nueva regin de memoria compartida o devuelve una existente. shmat: Une una regin con el espacio de direcciones virtuales de un proceso. shmdt: Adhiere una regin al espacio de direcciones virtuales de un proceso. shmdt: Elimina esta regin del espacio de direcciones virtuales del proceso. shmctl: Manipula varios parmetros asociados con la memoria compartida.

5)

Semforos. Pueden sincronizar la ejecucin de los procesos. Consta de los siguientes elementos: a) b) c) d) Valor del semforo. ID del ltimo proceso que manipulo al semforo. Nmero de procesos que esperan que el valor del semforo aumente. Nmero de procesos que esperan que el valor del semforo sea igual a cero.

Se crean en conjuntos y las llamadas al sistema son: a) b) c) semget: Crear y tener acceso a un conjunto de semforos. semctl: Operaciones de control sobre el conjunto. semop: Manipular los valores de los semforos. Sintaxis: oldval = semop (id, oplist, count); donde id es el descriptor devuelto por semget; oplist es un puntero a un arreglo de operaciones y count es el tamao del arreglo. El valor devuelto oldval es la ltima operacin sobre el semforo.

Gestin De La Memoria
Muchas de las implementaciones Unix hacen uso de memoria virtual paginada. En Unix System V se usan unas estructuras de datos prcticamente independientes de la mquina: 1) Tabla de pginas. Una para cada proceso, con una entrada para cada una de las pginas de memoria virtual del proceso y los siguientes campos: a) b) c) d) e) f) Bit 2) Nmero del marco en la memoria virtual. Edad o tiempo que ha estado la pgina en la memoria sin referenciarse. Copias para escritura. Si un proceso escribe en una pgina compartida, se hac e primero una copia para los otros procesos. Bit de pgina modificada. Bit de referencia, que indica si ha sido referenciada. Bit de validacin, que seala que la pgina est en memoria principal. g) de proteccin, que indica si se permiten operaciones de escritura.

Descriptor de bloques del disco. Describe la copia en el disco de la pgina virtual. Campos principales: a) b) c) Nmero lgico del dispositivo de intercambio que tiene la pgina. Nmero de bloque. tipo de almacenamient o: una unidad de intercambio o un archivo ejecutable.

3)

Tabla de datos del marco de pgina. Se describe cada uno de los marcos de la memoria real. El ndice de la tabla es el nmero del marco. Hay varios punteros utilizados para crear listas dentro d e la tabla. Los marcos disponibles se enlazan juntos en una lista de marcos libres. Algunos campos: Pgina 105 de 164

a) b) c) d) e)

Estado del marco de pgina: disponible o no. Contador de referencia: nmero de procesos que referencia la pgina. Dispositivo lgico que contiene una copia de la pgina. Nmero de bloque. Un puntero a otra entrada de esta tabla, a una lista de pginas libre y a una cola hash de pginas.

4)

Tabla de intercambio. Tiene una entrada por cada pgina en el dispositivo de int ercambio y existe una por cada dispositivo. Campos: a) b) Contador de referencia: nmero de puntos de entradas de la tabla de pginas a una pgina en el dispositivo de intercambio. Identificador de la pgina en la unidad de almacenamiento.

Sistema De Archivos
Tipos de archivos en Unix: 1) 2) 3) 4) Ordinarios. Contienen la informacin del usuario y los programas de aplicacin o de utilidades del sistema. Directorio. Contienen listas de nombres de archivos, ms los punteros asociados a los i-nodos. Especiales. Corresponden a los perifricos. Etiquetados. Tubos etiquetados.

Todos los tipos de archivos de Unix se gestionan por el sistema operativo mediante los i-nodos. Estos corresponden a una tabla que contiene los atributos y las direcciones de los bloques del archivo. Los archivos se ubican dinmicamente, segn es necesario, por lo que los bloques de un archivo en el disco no son necesariamente contiguos. Los archivos pequeos tienen toda su informacin en el propio i-nodo. Para archivos ms grandes, una de las direcciones del i-nodo es la direccin de otro bloque del disco en el que hay otra tabla de ndices. Si esto no es suficiente, hay otras dos direcciones para una doble y triple indexacin. Ventajas de los i-nodos: Son relativamente pequeos y de tamao fijo, de forma que se pueden mantener en memoria principal, y los archivos que ocupan poco espacio se pueden acceder sin indexacin.

Subsistema De Entrada/Salida
En Unix, todos los perifricos estn asociados a un archivo especial, que se gestiona por el sistema de archivos, pudindose leer y escribir como otro archivo ms. Los perifricos pueden ser: a) b) De bloque: Perifricos de almacenamiento de acceso arbitrario (como discos). Orientados a caracteres: Los otros tipos (impresoras, terminales).

La E/S se puede realizar: a) Con buffer. Donde los mecanismos de buffer son: a.1) Cach de buffer: Es esencialmente una cach de disco. La transferenc ia de datos entre la cach del buffer y el espacio de E/S del proceso del usuario se realiza mediante DMA, ya que ambos estn localizados en la memoria principal.

Pgina 106 de 164

a.2)

Colas de caracteres: Resulta apropiado pa ra los perifricos orientados a caracteres. El dispositivo de E/S escribe una cola de caracteres que son ledos por el proceso o viceversa. En ambos casos se utiliza un modelo de productor-consumidor.

b)

Sin buffer. Es simplemente una operacin de DMA entre el perifrico y el espacio de memoria del proceso. Este es el mtodo ms rpido. Sin embargo, un proceso que est realizando una transferencia de E/S sin buffer est bloqueado en la memoria principal y no pu ede intercambiarse.

Pgina 107 de 164

S istema O perat ivo N ove ll N etware


Inicialmente, Novell realiz un sistema operativo que se llamaba Netware, y estaba fabricado para el procesador Motorola MC-68000. En 1983 apareci el XT y el sistema operativo MS-DOS, y en ese momento, Novell rescribi el sistema operativo. Conforme ha avanzado la informtica ha avanzado el sistema operativo Novell Netware. A partir de 1983 se tienen las siguientes versiones de Netware: 1. 2. 3. 4. Advance Netware 2.86 para ordenadores 80286 Intel. Netware 386 para los microprocesadores 80386 y 80486. Netware 4.X para 80486 y Pentium. Versiones mejoradas de Netware con soporte amplio de protocolos TCP/IP.

Se tiene el siguiente cuadro de versiones para el sistema operativo Netware:


VERSIN Netware Lite SERVIDOR N USUARIOS Pequeos grupos. De 2 a 25. OBSERVACIN

No dedicado.

Es punto a punto.

Netware 2.2

Puede ser dedicado o Permite hasta 100 usuarios no, dependiendo de con una estrategia querer mas coste o multiprotocolo. mas potencia. Dedicado. Grandes empresas.

Esta pensado para empresas de tamao medio o pequeos grupos dentro de grandes empresas. Limitacin en las prestaciones de conexin con INTERNET. Posee todas las prestaciones del 3.11, y adems un interfaz grfico para el usuario que facilita el manejo del sistema operativo.

Netware 3.11

Netware 4.X

Dedicado y multiprotocolo.

Tiene soporte para redes de rea amplia.

Netware 4.X
El sistema operativo Netware est en el servidor. La forma de compartir informacin es mediant e el proceso cliente/servidor. Este proceso cliente/servidor se basa en la estructura ilustrada en la imagen de la derecha:

Protocolo Bsico De Netware


La caracterstica fundamental es que el sistema operativo Netware trabaja con 32 bits. Netware se basa en que todo esta controlado por el servicio de directorios de Netware (NDS) que va a trabajar con todos los recursos de la red de modo global. Este servicio de directorios va a tratar a todos los recursos de la red como objetos. Un objeto puede ser un usuario, un archivo, un terminal, etc. Eso permite que la gestin de la red sea sencilla y que se puedan enlazar una red con otras gracias al servicio de directorios.

Pgina 108 de 164

Dentro de estas caractersticas se tiene que hablar del protocolo bsico de Netware (NCP). El NCP es el que define los servicios disponibles a todos los usuarios de la red. Esos servicios se agrupan en distintas categoras: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Acceso a archivos (apertura y cierre de archivos; lectura y escritura). Bloqueo de archivo. Seguridad. Control de la asignacin de recursos. Notificacin de eventos. NDS (servicio de directorios de Netware ). Sincronizacin entre servidores. Conexin y comunicacin. Servicio de impresin. Gestin de la red.

El NCP es transparente al usuario. El cliente pide algo y el servidor se lo da. Netware es modular y expansible, ya que se le pueden ir aadiendo mdulos cargables (NLM) desde el servidor que pueden aportar nuevos servicios a sistema operativo. Estos mdulos son: 1. 2. 3. 4. 5. Soporte para sistemas operativos que no sean MS-DOS. Servicio de comunicaciones. Servicio de base de datos. Servicio de almacenamiento y copias de seguridad. Servicios de administracin general de la red.

Niveles Internos De Netware


El soporte para los sistemas operativos MS-DOS, OS/2 y UNIX, as como el interfaz grfico de WINDOWS, vienen incluidos en Netware. Para el sistema operativo Macintoch y FTAM no vienen en Netware, pero puede instalarse como una opcin. El sistema operativo Netware utiliza una interfaz abierta de enlaces de datos (ODI) que elige el protocolo de comunicacin adecuado de pendiendo de la placa que tenga conectado. Esta interfaz es la que hace posible que pueda usar un multiprotocolo. La IPX es el protocolo que realmente utiliza Novell por convenio, aunque Novell acepta cualquiera. El soporte de sistema ope rativo es la que se encarga de dar servicios al usuario. El soporte de espacios de nombres quiere decir que los sistemas operativos no tienen un convenio entre ellos (por ejemplo, hay sistemas operativos que distinguen maysculas y minsculas y otros no). Netware, por su parte, dejar usar el sistema operativo que se tenga en el equipo.

Netware, tambin soporta una amplia variedad de topologas. Las topologas ms usadas y vendidas como estndares son las sealadas en la prxima pgina:

Pgina 109 de 164

NORMA 802.3 802.5 802.4

NOMBRE Ethernet Token ring Arcnet

ACCESO CSMAICD Paso de testigo. Paso de testigo

TOPOLOGA A nivel lgico es un bus lineal. A nivel lgico es un anillo. A nivel lgico es un bus lineal o estrella

CABLEADO Coaxial o par trenzado. Par trenzado o coaxial Coaxial.

Caractersticas De Rendimiento
Una de las caractersticas por la que Netware es tan potente es que el rendimiento que ofrece es muy bueno. Este buen rendimiento est basado en dos factores: La gestin de la memoria: Netware permite gestionar sobre cuatro Gibabytes. Netware no tiene zonas reservadas de memoria como una sola entidad. La versin 3.11 de Netware, tena una gestin de memoria que se basaba en dividir la memoria en cinco zonas (o pool), y dependiendo del tipo de aplicacin, la ejecutaba en una de esas zonas. Cuando la tarea terminaba, esa parte de memoria no poda ser utilizada por otra aplicacin. A partir de la versin 4.X, Netware utiliza toda la memoria con cada aplicacin que la necesite y despus la elimina y pudiendo ser utilizada por otra aplicacin. La gestin de sistemas de archivos: Esta mejor gestin se realiza gracias a: 1. Bsqueda por el mtodo del ascensor: Intenta mejorar el tiempo de acceso al disco. El mtodo del ascensor prioriza la lectura basndose en la mejor forma de acceder a ella a partir de la posicin actual de la cabeza de lectura. (Ejemplo: ascensor del Corte Ingls: Aunque lo llame antes el del segundo que el del quinto, si esta en el sexto y va para abajo, recog e primero al del quinto). Cach de disco: Va a disminuir el nmero de accesos al disco. La cach de disco consiste en que los archivos que se utilizan ms frecuentemente se retienen en un buffer de memoria que se llama cach. Para que esto sea eficiente, tambin tiene que haber un mecanismo que saque archivos que no se usen para que puedan entrar otros archivos que, en ese momento, se estn usando ms. Turbo FAT: La tabla de asignacin de archivos es la FAT de un disco. La FAT sera como el ndice de un libro, donde se ve la posicin de todos los archivos. La turbo FAT forma un ndice de la tabla de asignacin de archivos (la indexada) para s lograra acceder a los archivos mucho mas rpido. Escritura en dos planos: Se basa en que N etware prioriza las lecturas respecto a las escrituras. Compresin de archivos: Un archivo comprimido es la forma de almacenar archivos en un disco para que ocupe menos espacio. Aquellos archivos que previamente comunique el administrador o el usuario, o los archivos que no se usan durante un tiempo determinado, Netware los comprime. Con esto, se aumenta hasta en un 63% la capacidad del disco. Reserva parcial de bloque: Al instalar Netware se establece un tamao de disco por defecto. Este tamao de disco por defecto es de 8 Kb, de modo que cuando se va a trabajar con el disco, se toma y almacena la informacin en bloques de 8 Kb. Si el sistema operativo encuentra bloques que estn parcialmente usados, los subdivide en bloques de 512 bits, que se utilizan para almacenar archivos pequeos o para fragmentos de otros archivos. Sistema de archivos con recuperacin: Netware permite recuperar los archivos que se han borrado. Con Netware se p uede controlar cuanto tiempo puede meterse un archivo como recuperable, y adems, tiene una opcin donde se pueden mantener recuperables todos los archivos borrados hasta que se encuentre sin espacio en el disco. Pgina 110 de 164

2.

3.

4.

5.

6.

7.

Caractersticas De Proteccin De Datos


Las caractersticas que ofrece Netware en proteccin de datos son en dos sentidos: 1. Seguridad: Se basa principalmente en el acceso a la red. Seguridad a nivel de cuenta/clave de acceso: Si un usuario no tiene asignado un nombre de usuario para entrar en la red, o bien un usuario no introduce bien la clave de acceso, no se podr conectar al sistema operativo de la red. Restricciones sobre las cuentas: El administrador restringe los accesos a las diferentes utilidades de los usuarios. Seguridad de objetos y archivos: El administrador puede asignar a los usuarios unos privilegios o derechos efectivos, llamados trustees. Los trustees determinan el modo en que se accede a la red. El modo se refiere, por ejemplo, a si se pueden modificar cosas, entrar en slo en lectura, etc. Trustees es algo parecido a los atributos de archivos de MS-DOS. Seguridad entre redes: Netware permite conexin entre redes. Esto es debido a que los NDS (rbol de directorios de Netware) son nicos. El NDS es una manera que tiene Netware de usar todos los archivos de la red de manera nica.

2.

Fiabilidad: Se basa en la realidad de los datos que estn dentro de la red. Verificacin de lectura tras escritura: Cada vez que se realiza una escritura en disco, Netware, comprueba mediante una lectura, que los datos se han grabado correctamente. En caso de que se haya producido un error los dat os vuelven a ser escritos desde el cach de disco. Duplicacin de directorios: Permite duplicar el directorio raz de un disco para ofrecer una copia de seguridad en caso de que el original resulte daado. Ese dao puede ser tanto un dao fsico como por la destruccin de un virus. Duplicacin de la FAT: Se mantiene un duplicado de la FAT. En caso de que se pierda la FAT original, se pasa al duplicado. Esto lo hace Netware sin que el usuario lo note. Hot fix: Detecta y corrige errores de disco durante la ejecucin. Tolerancia a fallos del sistema (STF): Permite tener redundancia en cuanto a hardware del equipo, es decir, puedes instalar dos discos duros en el servidor duplicando uno en el otro. As, en el servidor, tendrs dos discos dur os con la misma informacin. Sistema de control de transacciones (TTS): Ante una cada del servidor, Netware deshace las transacciones incompletas cuando reanuda el servicio. Monitorizacin de la energa: Las UPS son unos mdulos que cont rolan el estado del suministro de energa elctrica que est conectada al servidor. De manera, que si en un momento determinado, se detecta que el servidor est trabajando con la alimentacin de reserva, indica los usuarios que se esta trabajando con as. En ese momento se empiezan a guardar los datos y luego el sistema baja.

Pgina 111 de 164

Otras Prestaciones
1. Servicios de comunicacin: Son bsicamente dos los que permiten la comunicacin entre usuarios de una red y usuarios de una red distinta: Mensaje y correo. Esta comunicacin se hace posible gracias a Netware Comunication Service, que son los servicios de comunicacin de Netware. Servicio de copia de seguridad: Existe una utilidad que es el sbackup que permite establecer copias de seguridad en distintos dispositivos fsicos. Servicios de impresin: Hace que con esta versin de Netware se puedan compartir hasta 256 impresoras. Adems, los servicios de impresin gestionaran las colas de impresin y el modo de acceso de los usuarios a las impresoras. Los servicios de impresin de Netware se pueden instalar en la versin 3.11 en el servidor o en una estacin de trabajo como tarea dedicada, no obstante en la 4.12 slo lo permite en un servidor de archivos. Servicios distribuidos de directorios: El hecho de que existan directorios distribuidos est controlado gracias a la gestin mediante los NDS. Los NDS ofrecen una visin global de todos los recursos de la red y todos los recursos se tratan como objetos. Sistemas de facturacin: Existen unas utilidades mediante las cuales se pueden realizar estadsticas y seguimientos del tiempo de uso del servidor y de los distintos recursos de la red. Servicios de administracin: Son distintas utilidades que permiten controlar el estado de la red: Netadmin (DOS): Funciona en entorno de MS-DOS. No se tiene control sobre directorios y archivos, y eso es lo nico que la diferencia de Netware Administration Service. Monitor: Es un mdulo cargable que permite la visualizacin de informacin sobre el estado del servidor y de las distintas actividades de la red. Servman: Es una utilidad que slo se puede ejecutar desde el servidor. A esto se le llama una utilidad de consola. Permite al administrador del sistema modificar las caractersticas del servidor. Administracin remota: El administrador de la red puede gestionar la red desde una unidad remota. Netware administrator (Windows): Es una utilidad que trabaja en entorno Windows y permite al administrador, desde una estacin de trabajo, gestionar todo el sistema.

2.

3.

4.

5.

6.

Pgina 112 de 164

S istema O perat ivo W indows N T


En Windows NT, al igual que en otros sistemas operativos, se distingue entre el software orientado a las aplicaciones (que se ejecuta en modo usuario) y el software del sistema operativo (que se ejecuta en modo privilegiado o modo ncleo). Este ltimo tiene acceso a los datos del sistema y al hardware, mientras que le resto del sistema lo tiene limitado. El sistema operativo se divide en cuatro capas: 1) Capa de abstraccin del hardware (HAL, Hardware Abstraction Layer). El objetivo de esta capa es que el ncleo vea por igual a todo el hardware, independientemente de la plataforma que use. Para ello realiza la conversin entre las rdenes y las respuestas del hardware genrico y el de una plataforma especfica. Ncleo (kernel). Parte central del sistema operativo que se encarga de gestionar la planificacin y conmutacin de contexto, la sincronizacin y los manipuladores de excepciones e interrupciones. Subsistemas. Incluye mdulos para funciones especficas que hacen uso de los servicios bsicos dados por el ncleo: a) b) c) d) e) Gestor de objetos. Gestor de memoria virtual. Gestor de procesos. Monitor de referencia de seguridad. Facilidades de llamada a los procedimientos locales.

2)

3)

El subsistema gestor de E/S incluye el sistema de archivos, el gestor de cach, los manejadores de dispositivos y de red, etc. y evita que el ncleo interaccione directamente con el hardware. 4) Servicios del sistema. Proporciona un interfaz para el software que se ejecuta en modo usuario.
Aplicaciones

Por encima de estas capas estn los subsistemas protegidos, que se encargan de la comunicacin con el usuario final. Proporcionan un interfaz de usuario grfico o de lnea de rdenes y el interfaz de programacin (API, Application Programming Interface).

Subsistemas protegidos

Servicios del sistema Gestor de objetos Gestor de procesos Gestor de memoria virtual

Subsistemas

Gestor de E/S

Otras Caractersticas

Ncleo Capa de abstraccin del hardware (HAL) Hardware

Arquitectura cliente/servidor. Cada servidor se implementa como uno o ms procesos, de forma que cada proceso espera que algn cliente (un programa de aplicacin u otro mdulo del sistema operativo) realice una peticin de alguno de sus servicios. Esta peticin se hace enviando un mensaje al servidor, que realiza la operacin pedida y contesta mediante otro mensaje. Esta arquitectura simplifica mucho el sistema operativo bsico, puesto que no proporciona ningn API, se pueden construir otros API sin ningn conflicto, adems de ser una forma natural para el clculo distribuido. Tambin se aumenta la fiabilidad, puesto que cada servidor se ejecuta en un proceso separado con su propia particin de memoria y protegido de otros servidores, de forma que si falla no corrompe al resto del sistema. Pgina 113 de 164

Soporte de hebras dentro de los procesos. Una hebra es una unidad bsica de ejecucin que se puede interrumpir para que el procesador pase a otra hebra. Desde el punto de vista del planificador y del distribuidor, este concepto es equivalente al de proceso en otros sistemas operativos. En Windows N T un proceso es un conjunto de una o ms hebras junto con los recursos del sistema asociados. Esto corresponde al concepto de programa en ejecucin. Utilizacin de los conceptos de diseo orientado a objetos. Aunque no es un sistema operativo orient ado a objeto puro, ya que no est implementado en un lenguaje orientado a objetos. Las estructuras de datos que residen completamente dentro de un ejecutable no se representan como objetos. Y no incorpora la herencia ni el polimorfismo. S usa la encapsulacin (los objetos consisten en uno o ms tems de datos, llamados atributos, y uno o ms procedimientos que se pueden ejecutar sobre estos datos, llamados servicios) y las clases e instancias de objetos (una clase de objetos es una plantilla en la que se guardan los atributos y servicios de un objeto y se definen ciertas caractersticas del mismo). En NT los objetos se emplean en los casos donde los datos estn abiertos para acceso en modo usuario o cuando el acceso a los datos es compartido o restringido. Entidades representadas por objetos son procesos, hebras , archivos, semforos, relojes y ventanas. NT maneja todos los tipos de objetos mediante un gestor de objetos, cuya responsabilidad es crear y eliminar los objetos segn la peticin de las aplicaciones y otorgar acceso a servicios de objetos y datos. Un objeto (un proceso o una hebra) puede referenciar a otro objeto (un archivo o un semforo) abriendo un manejador del mismo. Los objetos pueden estar etiquetados o no. Cuando un proces o crea un objeto no etiquetado, el gestor de objetos devuelve un manejador al objeto. La nica forma de referenciarlo es mediante su manejador. Los objetos etiquetados tienen un nombre que puede usarse por otro proceso para obtener un manejador del objeto. Los objetos etiquetados tienen asociada informacin de seguridad en la forma de un testigo de acceso que se puede utilizar para limitar el acceso al objeto.

Control Y Sincronizacin De Procesos


El diseo de los procesos en NT est marcado por la necesidad de proporcionar soporte para diferentes entornos de sistemas operativos, por lo que la estructura de los procesos y los servicios proporcionados por el ncleo son relativamente sencillos y de propsito general. Esto permite que cada subsistema del sistema operativo emule una funcionalidad y estructura de procesos particular. Caractersticas de los procesos: 1) 2) 3) 4) Son implementados como objetos. Puede tener una o ms hebras . Llevan incorporadas las capacidades de sincronizacin. El ncleo no mantiene ninguna relacin con los procesos que crea (ni de padre-hijo).

La concurrencia entre los procesos se consigue porque hebras de diferentes procesos se pueden ejecutar concurrentemente. Si se dispone de varias CPUs, se pu eden asignar distintos procesadores a hebras del mismo proceso. Las hebras del mismo proceso pueden intercambiar informacin entre ellas a travs de la memoria compartida y tener acceso a los recursos compartidos del proceso. Para implementar los servicios de sincronizacin entre las hebras , se tiene la familia de objetos de sincronizacin, que son: procesos, hebras, archivos, sucesos, semforos y relojes. Los tres primeros tienen otros usos, el resto se disean especficamente para soportar la sincronizacin.

Gestin De Memoria
Se adopta el tamao de pgina de 4 Kb del 80486 como base de su esquema de memoria virtual. En estos procesadores de Intel se incluye un hardware especial para soportar la segmentacin y la paginacin. Estas funciones pueden desactivarse, pudindose elegir entre las opciones de memoria: Pgina 114 de 164

1) 2) 3) 4)

Ni segmentada ni paginada. Paginada, pero no segmentada. Segmentada, pero no paginada. Segmentada y paginada.

Segmentacin
Cuando se emplea segmentacin, cada direccin virtual (o lgica) se compone de un campo de referencia al segmento de 16 bits (dos de ellos destinados a los mecanismos de proteccin y catorce para especificar el segmento) y un campo de desplazamiento en el segmento de 32 bits. El espacio de memoria virtual que puede ver un usuario es de 246=64 Tb. Mientras que el espacio de direcciones fsicas que se puede direccionar con 32 bits es de 4 Gb. Hay dos formas de proteccin asociadas con cada segmento: 1) Nivel de privilegio. Hay cuatro niveles de privilegio (del 0 al 3), que cuando se trata de un segmento de datos corresponde a la clasificacin del mismo y si es un segmento de programa es su acreditacin. Un programa slo puede acceder a segmentos de datos para los que le nivel de acreditacin es menor o igual que el de clasificacin. Generalmente los niveles 0 y 1 corresponden al sistema operativo, el nivel 2 a algunos subsistemas y el 3 a las aplicaciones. Los atributos de acceso de un segmento de datos. Indican si el permiso es de lectura/escritura o de slo lectura. Para un segmento de programa expresan si es de lectura/ejecucin o de slo lectura.

2)

Paginacin
Cuando no se usa segmentacin, los programas emplean direcciones lineales (corresponden a las direcciones en el espacio de memoria del proceso que utilizan 46 bits) que hay que convertir en una direccin real de 32 bits. El mecanismo de paginacin utilizado para hacer esto consiste en una operacin de bsqueda en una tabla de dos niveles. El primer nivel es un directorio de pginas con 1024 entradas, con lo que se divide el espacio de memoria de 4 Gb en grupos de 1024 pginas, de 4 Mb cada una con su propia tabla de pginas. Cada tabla de pginas contiene 1024 entradas y cada entrada corresponde a una pgina de 4 Kb. El gestor de memoria puede usar un directorio de pginas para todos los procesos, un directorio para cada proceso o una combinacin de ellos. El directorio de pginas de la tarea actual est en memoria principal, pero las tablas de pginas pueden estar en memoria virtual.

Pgina 115 de 164

S istema O perat ivo W indows 2000


Microsoft Windows 2000 Professional se considera como el sistema operativo ideal para computadores mviles y de escritorio, diseado para sustituir a Windows 95 como el estndar de las empresas. Pues al agregarle el poder y la seguridad de Windows NT Workstation, seguridad de Windows NT Workstation, as como la interfaz de Windows 98, se obtiene como resultado el ms sencillo y eficiente sistema operativo de escritorio hasta ahora concebido (segn sus propios fabricantes). Las funciones mejoradas de Windows 2000 Professional, ayudan a los usuarios a aprovechar completamente sus capacidades. Este Windows constituye hasta ahora el ms sencillo sistema operativo para configurar o trabajar en un computador o navegar en Internet. Fue desarrollado con base en el poder de Windows NT Workstation, por lo que ofrece estndares de seguridad, confiabilidad industrial y un mejor desempeo. Proporciona las mejores caractersticas de Windows 98, para estar al da en apoyo mvil y asegurarle que podr aprovechar la nueva generacin de equipos y provee un escritorio ms manejable y ms sencillo de implementar, administrar y dar soporte, lo que traduce en una disminucin del costo total de propiedad.

Instalacin Ms Sencilla
Una de las mejoras que se experimenta al utilizar Windows 2000 es que su sistema de instalacin es ms confiable y simplificado, soport a scripts de instalacin que requieren una participacin mnima. Los administradores pueden hacer un script completo del proceso de instalacin, de manera que no se necesita contestar ms preguntas que el nombre y contrasea; aun las instalaciones para las que no se ha preparado un script son ms simples y ms confiables. Su instalacin es sumamente fcil. Adems, Windows 2000 Professional cuenta con soporte para la creacin de redes pequeas. A continuacin se detallan varios ejemplos de lo que hace Windows 2000 Profesional durante una instalacin sin script: Simplifica la instalacin: Pantallas y las preguntas que se presentan durante el proceso de instalacin poseen un lenguaje sencillo y no tcnico. Automatiza ms tareas: Windows 2000 Professional tiene ms supuestos acerca de la manera en que se deberan instalar los computadores. Adems, proporciona deteccin de hardware y soporta Plug and Play, lo que automatiza la instalacin y la configuracin de los dispositivos de hardware. Instalacin ms confiable: Windows 2000 Professional rastrea los problemas durante la instalacin, y en caso de que surja algn problema que no sea crtico (lo que no evitar que el computador arranque), la instalacin continuar. Cuando sta se haya completado, el sistema operativo genera un reporte de registro de problemas, para que un administrador los resuelva. Obliga a validarse: Utilizar CTR+ALT+DEL antes de conectarse, es la manera ms segura para que el usuario se conecte a Windows 2000 Professional; ayuda a proteger el sistema operativo de algn acceso no autorizado. Para conectarse, primero se ve una pantalla de conexin simplificada que oculta los nombres de dominio. No es frecuente que necesiten cambiar su dominio; por lo tanto, ocultar esta opcin puede reducir los costos del escritorio de ayuda, al disminuir las posibilidades de que cambien el dominio en forma inadvertida. Configuracin de pequeas redes: Con Windows 2000 Professional es posible configurar redes pequeas al slo conectar los computadores configuradas con Windows 2000 Professional en un HUB. La prime ra vez que Windows 2000 Professional inicia, se ajusta a una predeterminacin que busca un servidor DHCP (Protocolos de configuracin de host dinmico). Adems, Windows 2000 posee un escritorio mucho ms poderoso y pers onalizable que incorpora cualidades como:

Pgina 116 de 164

Confiabilidad y soporte mejorado para cambios de configuracin: Windows 2000 Professional soporta aplicaciones autorreparables, Plug and Play y manejo de potencia, que permiten instalar el hardware y las aplicaciones sin comprometer el sistema ni incurrir en pausas significativas. El soporte para Plug and Play, la administracin de potencia y el bus serial universal (USB) facilitan trabajar con hardware. Un Panel de control mej orado organiza las herramientas de manera ms lgica. Gestin de aplicaciones: El cuadro de dilogo Agregar/Eliminar Programas de Windows 2000 Professional proporciona mayor informacin acerca de las aplicaciones, como espacio de disco utilizado, versin, frecuencia de uso y si est disponible el soporte tcnico en lnea. Gestin de hardware: Windows 2000 Professional ha sido mejorado para trabajar con una mayor variedad de compone ntes hardware, y especficamente da soporte a Plug and Play, administracin de energa, y bus serial universal (USB). USB es un tipo de bus que facilita an ms la instalacin de diferentes tipos de perifricos compatibles, incluidos teclados, cmaras, escner y otros dispositivos de imagen. El asistente Agregar/Quitar Hardware ayuda a resolver problemas de hardware; as cuando Windows 2000 detecta un hardware nuevo, verifica las configuraciones para el dispositivo e instala el controlado r correcto. Adems, cuando Windows 2000 Professional detecta un hardware nuevo, verifica las configuraciones actuales para el dispositivo e instala el controlador correcto; adems el asistente, muestra una lista del hardware instalado y ayuda a verificar para que est seguro de que cada dispositivo est trabajando de manera adecuada. Herramientas administrativas: En el panel de control mejorado, las herramientas avanzadas estn en el mismo cuadro de dilogo. Estas herramientas incluyen: a) Servicios de Componentes. Usado para instalar y administrar programas COM+ de una interfaz grfica, o para automatizar tareas administrativas utilizando un lenguaje de programacin o script. Administracin de Sistema. La administracin del computador combina varias herramientas administrativas de Windows 2000 (Herramientas de sistema, almacenamiento, servicios y aplicaciones) en un solo rbol de consola, que ofrece fcil acceso a propiedades administrativas del computador.

b)

Visualizador de eventos: Al utilizar los registros de eventos del visualizador de eventos, se puede compilar informacin acerca del hardware, software y problemas con el sistema, adems de monitorizar eventos de seguridad de Windows 2000.

La Evolucin Plug & Play


Plug and Play es una combinacin de soporte de hardware y software que permite al sistema del computador reconocer y adaptar cambios en la configuracin de hardware con poca o nula intervencin del usuario. En Windows 2000, el soporte para Plug and Play fue optimizado para laptops, estaciones de trabajo y computadores de servicios que incluyen tarjetas de sistema. Plug and Play permite cambiar la configuracin de un computador con la seguridad de que todos los dispositivos trabajarn juntos y que la mquina iniciar correctamente despus de hacer los cambios.

Lo Mejor De Versiones De Las Anteriores


Lo mejor de Windows 98: Windows 2000 Professional incluye y mejora las funciones clave de Windows 98, con lo que perfecciona el apoyo a sistemas mviles y agrega soporte para los ltimos modelos de equipos. Est diseado para que las personas que trabajan fuera de lnea (desconectados de una red), tengan la misma experiencia que las que trabajan en lnea. Administrar los documentos fuera de lnea y de las pginas de la Red es mucho ms automatizado, ya que las mejoras en el sistema indican y actualizan la administracin. Uno de sus principales objetivos de diseo es crear un ambiente de trabajo consistente para las personas que usan computadores mviles, ya sea que estn conectadas o desconectadas de la red, lo que les permite trabajar en forma ms productiva . Como resultado, las personas pueden trabajar en los Pgina 117 de 164

mismos archivos, carpetas o sitios Web estando conectados o no, y sincronizar con facilidad esos recursos. El poder de Windows NT: Microsoft Windows 2000 Professional se basa en la fuerza de Windows NT para proporcionar confianza, una mayor seguridad, la habilidad de operar de manera integrada con la red actual, as como un nivel de desempeo bastante efectivo. En un ambiente Wind ows 2000, usando el cambio basado en la poltica de grupo y la administracin de configuracin, el administrador puede aprobar ciertas aplicaciones, al especificar que todas las operaciones de configuracin en tales aplicaciones (instalacin, remocin y reparacin) se ejecuten como cuenta del sistema local. De esta forma, los administradores pueden asegurar el registro y los sistemas de archivo, el servicio Windows Installer puede todava realizar instalaciones para la persona. Slo las aplicaciones aprobadas por el administrador se ejecutan con privilegios elevados (en un ambiente Windows NT 4.0, los administradores pueden especificar que todas las operaciones de Windows Installer se ejecuten con privilegios del sistema local, pero ciertos productos no pueden aprobarse en forma granular).

Seguridad Basada En Elevados Estndares De Desempeo


Windows 2000 Professional ofrece una infraestructura segura que permite seleccionar los niveles de proteccin para la informacin y las aplicaciones que se necesitan. Para los computadores que requieran estar conectadas a UNIX, Microsoft ofrece un complemento llamado Windows NT Servicios para UNIX que incluye un cliente/servidor NES, un cliente/servidor Telnet, herramientas Scripting y sincronizacin de clave. Algunas de las caractersticas que se pueden encontrar en Windows 2000 Professional son: Sistema de Archivos encriptado: Este nuevo sistema de encriptacin EFS permite codificar archivos en el disco duro, a los que nicamente se puede tener acceso va autorizacin de Windows NT. Esta caracterstica protege archivos en caso de prdida o robo de laptops, as como en sistemas de cmputo de oficinas. EFS ofrece la tecnologa principal de encriptacin de archivos para almacenar los archivos NTFS encriptados en disco. EFS se dirige particularmente a los problemas de seguridad que surgen por las herramientas disponibles en otros sistemas operativos, que permiten acceder archivos desde un volumen NTFS sin una verificacin de acceso. Tecnologa de encriptacin EFS: Se basa en la encriptacin de clave pblica, que aprovecha la arquitectura CryptoAPI en Windows . Cada archivo se encripta utilizando una clave generada de manera aleatoria, que es independiente del par de clave privada/pblica de la persona que lo utiliza, con lo que se evita varias formas de ataque con base en criptoanlisis. La encriptacin de archivos puede utilizar cualquier algoritmo de encriptacin simtrico. El EFS est integrado firmemente con el NTFS. Cuando se crean archivos temporales, los atributos del archivo original se copian a los archivos temporales, siempre que los archivos estn en el volumen NTFS. Si encripta un archivo, el EFS tambin encripta sus copias temporales. El EFS reside en el kernel del sistema operativo y utiliza una agrupacin de no bsqueda para almacenar las claves de encriptacin de archivo, lo que asegura que nunca estn en el archivo de bsqueda. Interaccin del usuario: La configuracin predeterminada del EFS permite que los usuarios inicien la encriptacin de archivos sin esfuerzo administrativo. El EFS genera de manera automtica un par de clave pblica para la encriptacin de archivos de un usuario, en caso de que no exista. La encriptacin y desencri ptacin de archivos se soporta sobre una base de directorio completo o por archivos; la encriptacin de directorios se refuerza de manera transparente. Todos los archivos (y subdirectorios) creados en un directorio marcado para encriptacin se encriptan en forma automtica. Cada archivo tiene una clave de encriptacin nica, lo que lo hace seguro para volver a nombrarlo; si renombra un archivo desde un directorio encriptado a un directorio no encriptado en el mismo volumen, el archivo permanece encriptado. Los servicios de encriptacin y desencriptacin estn disponibles en Windows Explorer.

Pgina 118 de 164

Sistema de autenticacin Kerberos: La implementacin del protocolo Kerberos V.5 en Windows 2000 se basa en RFC-1510, que ha pasado a travs de una amplia revisin de la industria y es bien conocido en la comunidad de seguridad. La autenticacin Kerberos proporciona varias funciones que soportan los objetivos de rendimiento y seguridad para las redes empresariales. Windows 2000 integra el protocolo Kerberos en el modelo de seguridad distribuida de Windows 2000 existente, y utiliza las funciones de ampliacin del protocolo, como lo han hecho otras arquitecturas de seguridad. El protocolo Kerberos es slo uno de los protocolos de seguridad soportados en Windows 2000; otros incluyen NTLM para compatibilidad con versiones anteriores SSL y la Seguridad de nivel de transporte (TLS) estndar de IETF para autenticacin de cla ve pblica, Negociacin protegida individual (SPNEGO) de mecanismos de seguridad y la seguridad IP (IPsec) para la seguridad a nivel de la red utilizando la autenticacin de clave compartida o clave pblica. El Kernel de Windows 2000 realiza una verificacin de acceso en cada intento para abrir un controlador de objetos. El control de acceso y la auditora se administran al configurar las propiedades de seguridad del objeto para otorgar permisos al usuario, o preferencia a un grupo. La autorizacin se administra de manera central, al agregar usuarios a los grupos de Windows 2000 a los que se otorgan los derechos de acceso correspondiente. Autenticacin de claves pblicas: Windows 2000 Professional soporta certificados estndar X.509 v3.0. El sistema operativo Microsoft Windows 2000 introduce una infraestructura de claves pblicas (PKI) completa para la plataforma Windows. Esta infraestructura ampla los servicios criptogrficos de cla ves pblicas (PK) basados en Windows que fueron introducidos durante los ltimos aos, por lo que proporciona un conjunto integrado de servicios y herramientas administrativas a fin de crear, instalar y administrar aplicaciones basadas en PK. Esto permite a los desarrolladores aprovechar los mecanismos de seguridad de confidencialidad compartida o el mecanismo de seguridad basado en PK, segn sea necesario. Criptografa de claves pblicas: La criptografa es la ciencia de proteger datos. Los algoritmos criptogrficos combinan matemticamente datos de texto simple de entrada y una clave de encriptacin para generar datos encriptados (texto cifrado). Con un buen algoritmo criptogrfico, no es posible, desde el punto de vista computacional, invertir el proceso de encriptacin y derivar los datos de texto simple, empezando slo con el texto cifrado; algunos datos adicionales, como una clave de desencriptacin, son necesarios para efectuar la transformacin. Funcionalidad de las claves pblicas: La separacin entre claves pblicas y privadas en la criptografa PK ha permitido la creacin de varias nuevas tecnologas. Las ms importantes de estas son las firmas digitales, la autenticacin distribuida, convenio de claves secretas a travs de claves pblicas y sin claves secretas compartidas anteriores. Las siguientes lneas describen los usos principales de la criptografa PK. Firmas Digitales: Crear y validar firmas digitales se basa en una transformacin matemtica que combina la clave privada con los datos que se van a firmar, de tal forma que: (1) slo la persona que posee la clave privada pudo haber creado la firma digital; (2) quien tenga acceso a la clave pblica correspondiente puede verificar la firma digital y; (3) cualquier modificacin de los datos firmados invalida la firma digital. Autenticacin: La autenticacin de entidades garantiza que el transmisor sea la entidad que el receptor piensa que es. Si una persona recibe datos de otra, y despus le enva un intercambio de seales encriptado con la clave pblica de la segunda persona, sta decodifica el intercambio de seales y lo enva de nuevo a la primera persona, probando que tiene acceso a la clave privada asociada con la clave pblica que esa persona utiliz para emitir el intercambio de seales. Convenio de claves secretas a travs de clave pblica: Otra funcin de la criptografa PK es que permite que dos partes acuerden una clave secreta compartida, utilizando redes de comunicaciones pblicas y no seguras. Encriptacin de datos masivos sin claves secretas compartidas anteriores: La cuarta tecnologa principal habilitada por la criptografa PK es la capacidad de encriptar datos masivos, sin establecer claves secretas compartidas anteriores. Los algoritmos PK existentes tienen un alto nivel computacional con relacin a los algoritmos de claves secretas; esto los hace adecuados para la encriptacin de Pgina 119 de 164

grandes cantidades de datos. Para obtener las ventajas de la criptografa PK junto con la encriptacin eficaz masiva, normalmente se combinan las tec nologas PK y de claves secretas. Proteger y confiar claves criptogrficas: En la criptografa de claves secretas, los dos usuarios confan en su clave secreta compartida porque la acordaron mutuamente o la intercambiaron en una manera segura, y cada uno convino guardarla para evitar el acceso de una tercera parte mal intencionada. En contraste, al utilizar la criptografa PK, cada persona slo necesita proteger su propia clave privada (independientemente). Confianza y validacin: Microsoft Certificate Services, que se incluyen con Windows 2000, proporciona un medio para que una empresa establezca certificados de autenticidad (CA) con facilidad a fin de soportar requerimientos empresariales. Los Servicios de certificacin incluyen un mdulo de polticas predeterminadas que es adecuado para emitir certificados destinados a entidades empresariales. Esto incluye identificacin de la entidad solicitante y validacin de que el certificado solicitado est permitido bajo la poltica de seguridad PK de dominio; puede modificarse fcilmente o mejorarse para cubrir otras consideraciones de polticas o ampliar el soporte CA para varios escenarios de extranet o internet. Jerarquas de certificacin: Windows 2000 PKI supone un modelo CA jerrquico. ste fue elegido por su capacidad de escalabilidad, facilidad de administracin y consistencia con un creciente nmero de productos CA comerciales y de terceros. En su forma ms simple, una jerarqua CA consta de una sola CA, a pesar de que en general una jerarqua contiene mltiples CA con relaciones principales y secundarias claramente definidas. De hecho puede haber varias jerarquas de inters sin conectar; no existe un requerimiento de que todas las CA compartan una CA principal comn de nivel superior (o raz). En este modelo, los componentes secundarios son avalados por certificados emitidos por una CA principal, que une una clave pblica de CA a su identidad y a otros atributos manejados por polticas. La CA en la parte superior de una jerarqua se conoce generalmente como una raz CA. Las CA subordinadas se conocen a menudo como CAs intermedias o emisoras. En un mundo ideal, PKI sera una infraestructura. Las CA emitiran un paquete de certificados completamente interoperables basados en un protocolo estndar de solicitud de certificados. Entonces, las aplicaciones los evaluaran en una manera consistente (incluso si han sido revocados), y no habra ambigedad en la interpretacin de sintaxis o gramtica en ninguna parte del proceso.

Pgina 120 de 164

S istema O perat ivo Linux


Para comprender Linux , se debe primero la pregunta Qu el Unix?. La razn es que Linux es un proyecto iniciado para crear una versin de trabajo de Unix en mquinas basadas en Intel, ms conocidas como ordenadores IBM PC o compatibles. Lo que realmente se entiende por el trmino de Linux es el Kernel, el corazn de cualquier sistema operativo tipo Unix. Pero el Kernel por si solo no forma todava un sistema operativo. Justamente para Unix existe una multitud de software libre, lo que significa que estos estn tambin disponibles para Linux. Son estas utilidades las que realmente forman el sistema operativo. Todo se complementa con XFREE86tm que es el sistema X Window para sistemas Unix a base de PC. Todos estos compone ntes, junto a otros programas o tambin juegos, forman el sistema que generalmente se denomina Linux . Por su naturaleza, Linux se distribuye libremente y puede ser obtenido y utilizado sin restricciones por cualquier persona, organizacin o empresa que as lo desee, sin necesidad de que tenga que firmar ningn documento ni inscribirse como usuario. Por todo ello, es muy difcil establecer quines son los principales usuarios de Linux. No obstante, se sabe que actualmente Linux est siendo utilizado ampliamente en soportar servicios en Internet, lo utilizan Centros de Educacin alrededor del todo el mundo para sus redes y sus clases, lo utilizan empresas productoras de equipamiento industrial para vender como software de apoyo a su maquinaria, lo utilizan cadenas de supermercados, estaciones de servicio y muchas instituciones del gobierno y militares de varios pases. Obviamente, tambin es utilizado por miles de usuarios en sus computadores personales. El apoyo ms grande, sin dud a, ha sido Internet ya que a travs de ella se ha podido demostrar que se puede crear un sistema operativo para todos los usuarios sin la necesidad de fines lucrativos. El sistema Linux es compatible con ciertos estndares de Unix a nivel de cdigo fuente, incluyendo el IEEE POSIX.1 , System V y BSD. Fue desarrollado buscando la portabilidad de las fuentes: todo el software gratuito desarrollado para Unix se compila en Linux sin problemas. Y todo lo que se hace para Linux (cdigo del ncleo, drivers, libreras y programas de usuario) es de libre distribucin. En Linux tambin se implementa el control de trabajos POSIX (que se usa en los shells csh y bash ), las pseudoterminales (dispositivos pty), y teclados nacionales mediante manejadores de teclado cargables dinmicamente. Adems, soporta consolas virtuales, lo que permite tener ms de una sesin abierta en la consola de texto y conmutar entre ellas fcilmente. Linux soporta diversos sistemas de archi vos para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados especficamente para Linux. Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde manejadores para las tarjetas de red ms populares has ta SLIP/PPP, que permiten acceder a una red TCP/IP por el puerto serie. Tambin se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a ficheros). Y tambin se han portado los clientes de TCP/IP, como FTP, telnet, NNTP y SMTP. Esta es la mascota oficial de Linux , que fue elegida por el creador de Linux para representar el sistema operativo que el haba creado. Hoy en da todo el mundo asocia a este simptico pingino con el sistema operativo.

Por Qu Utilizar Linux?


Si se posee un computador, se debe tener un sistema operativo, el cual es un conjunto complejo de cdigos informticos que proporcionan los protocolos de proceso operativo, o leyes de comportamiento. Sin un sistema operativo, el ordenador est inactivo, es incapaz de interpretar y actuar sobre los comandos introducidos o de ejecutar un programa sencillo. Los programas de aplicaciones son paquetes de software que adquiere para realizar determinadas actividades, como por ejemplo el procesador de textos. Cada paquete esta escrito para un sistema operativo y una mquina determinada. Pgina 121 de 164

Como en el caso de los sistemas operativos, el usuario no tendr control sobre como efectuar modificaciones o cuando se efectan actualizaciones. Se desear utilizar Linux porque es el nico sistema operativo que en la actualidad est libremente disponible para proporcionar posibilidades multitarea y multiproceso para mltiples usuarios en plataformas de hardware IBM PC o compatible. Ningn otro sistema operativo le ofrece las mismas caractersticas con la potencia de Linux, a la vez que le mantiene al margen de los caprichos de marketing de los distintos proveedores comerciales. No esta obligado a actualizarse cada poco tiempo y a pagar sumas considerables para actualizar todas sus aplicaciones. Muchas aplicaciones para Linux estn disponibles de forma gratuita en Internet, al igual que el propio cdigo de Linux. As pues tiene acceso al cdigo fuente para modificar y ampliar el sistema operativo para adaptarlo a sus necesidades algo que es imposible hacer con otros sistemas operativos. Un grave inconveniente de Linux que se debe tener en cuenta es que ningn proveedor comercial lo apoya por lo que la obtencin de ayuda no se soluciona mediante una simple llamada telefnica. Linux puede ser que en algn determinado hardware no se ejecute correctamente o dae archivos que residan actualmente en su sistema. Sin embargo, Linux se comporta de forma muy estable en muchos sistemas, lo que ofrece una oportunidad econmica de aprender y utilizar uno de los sistemas operativos ms populares del mundo.

Descripcin De Las Funciones De Linux


Las ventajas que se derivan de la utilizacin de Linux parten de su potencia y flexibilidad. Son el resultado de muchas funciones incorporadas en el sistema, listo para lo que se pueda utilizar en cuanto se encienda la mquina.

Multitarea
La palabra multitarea describe la capacidad de ejecutar muchos prog ramas al mismo tiempo sin detener la ejecucin de cada aplicacin. Se le denomina multitarea prioritaria porque cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para que se ejecute. Linux consigue el proceso de prioridad supervisando los procesos que esperan para ejecutarse, as como los que estn ejecutndose. El sistema programa entonces cada proceso para que disponga de las mismas oportunidades de acceso al microprocesador. Otra de las caractersticas referentes a este tema es que Linux es multiplataforma. Fue diseada para plataforma Intel pero ha sido fcilmente exportado a diversos tipos de sistema.

Multiusuario
La capacidad de Linux para asignar el tiempo de microprocesador simultneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicios a diversos usuarios a la vez, ejecutando cada uno de ellos una o ms aplicaciones a la vez. Ms de una persona puede trabajar con la misma versin de la misma aplicacin al mismo tiempo. No se debe confundir esto con el hecho de que muchos usuarios puedan actualizar el mismo archivo simultneamente.

Shells Programables
El shell programable es otra caracterstica que hace que el sistema operativo sea el ms flexible de los existentes. Un shell es como el command.com de MS-DOS, es decir, un intrprete de comandos. Es bsicamente la interfaz, el modo de comunicacin, entre el usuario y el sistema. El shell de Linux explora cada lnea de comandos para determinar si su formacin y deletreado son coherentes con sus protocolos. El proceso de exploracin del shell se denomina anlisis. Un shell funciona como interprete entre el usuario y el kernel (cerebro o corazn del sistema operativo), la diferencia entre los diferentes shell que puedan existir radica en la sntesis de la lnea de comandos. Cada usuario de un sistema Linux tiene su propia interfaz de usuario o Shell. Los usuarios pueden personalizar sus shells adecundolos a sus propias necesidades especficas. As, el Shell de un usuario funciona ms como un entorno operativo que el usuario puede controlar. Pgina 122 de 164

Linux permite la utilizacin de distintos tipos de shell programables. Cada shell tiene sus caractersticas propias. La principal diferencia que existe entre los distintos tipos de shell radica en la sintaxis de la lnea de comandos. No es necesario aprender a programar con todos los tipos de shell ya que sabiendo uno se conocern todos, as que es mucho ms sencillo de lo que parece. Concluyendo se puede decir que un shell conecta las ordenes de un usuario con el Kernel de Linux y al ser programables se puede modificar para adaptarlo a tus necesidades.

Independencia De Dispositivos Bajo Unix


A simple vista, quizs no parezca importante que los perifricos de su sistema informtico puedan funcionar de forma autnoma o independiente. Sin embargo, desde el punto de vista del entorno Unix multius uario se convierte en un factor decisivo en un lugar de trabajo productivo. Hasta hace poco, los sistemas informticos generalmente slo podan admitir perifricos como impresoras, terminales, unidades de disco y mdems. Poco a poco se han ido aadiendo un nmero de dispositivos demasiado elevados. El problema comienza cuando el usuario no puede utilizar un perifrico porque un sistema operativo no puede acceder a l. Unix evita los problemas que supone agregar nuevos dispositivos contemplando cada perifrico como un archivo aparte. Cada vez que se necesitan nuevos dispositivos el administrador del sistema aade al kernel el enlace necesario denominado controlador de dispositivo, el cual garantiza que el kernel y el nuevo dispositivo se fusionan del mismo modo cada vez que se solicita el servicio del dispositivo.

Independencia De Dispositivos Bajo Linux


Linux comparte muchas de las mismas ventajas de Unix en cuanto a independencia de los dispositivos. Por lo que Linux tambin posee un kernel adaptable y cuantos ms programadores participen en el proyecto de Linux, ms dispositivos de hardware se aadirn a los distintos kernels y distribuciones de Linux, en ltima instancia como se dispone del cdigo fuente el usuario puede modificar el kernel para que trabaje con los nuevos dispositivos.

Comunicaciones Y Redes
Ningn otro sistema operativo incluye unas posibilidades de conexin en red tan amplias y flexibles. Con Linux ofrece total acceso a Internet ya que el mismo naci y es creado en Internet, permite comunicar instantneamente con el mundo y realizar todo tipo de operaciones como hablar con otro usuario, transferir archivos, mandar e -mail, etc. Linux dispone de varios protocolos como PPP, SLIP, TCP/IP, PLIP, etc. Posee gran variedad de comandos para comunicacin interna entre usuarios que se encuentren ubicados en plataformas distintas (gracias a utilidades como telnet). Un universo de posibilidades de comunicacin a recopilar las distintas aplicaciones escritas para Linux y ponerlas en uno u otro formato, con diferentes facilidades de instalacin, mantenimiento y configuracin. La licencia garantiza la libre distribucin de las aplicaciones, pero las empresas pueden cobrar por el trabajo de agrupar un determinado conjunto de esas aplicaciones y hacer ms sencilla su instalacin. Lo nico que no vara para nadie es el ncleo del sistema, que se desarrolla de forma coordinada y con actualizaciones sistemticas. Es por ello que antes de instalar Linux se ha de elegir qu distribucin interesa ms. Linux no sacrifica en ningn momento la creatividad, tal y como lo hacen algunas compaas informticas. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informtica puede ser disfrutada sin lmites ni monopolios. Linux es distribuido mediante una serie de distribuciones (como RedHat, Slackware y Debian) las cuales se diferencian por su mtodo de instalacin y por los paquetes (software) que viene incluido. Todo el software de Linux est regido por la licencia de GNU, con la cual cualquier persona puede modificar un programa y venderlo segn el desee, con la condicin que la persona que compra ese producto puede realizar la misma accin o simplemente hacer copias para todos aquellos que lo quieran sin tener que pagar ms. Esta licencia es la garanta que afirma la absoluta libertad de este sistema operativo.

Pgina 123 de 164

Portabilidad De Sistemas Abiertos


El impulso por la estandarizacin de Unix no ha pasado desapercibido, este impulso se deriva de sus muchas variaciones disponibles actualmente. Se han dedicado grandes esfuerzos a combinar, compaginar, y unir todas les versiones de Unix en una nica versin del sistema operativo que lo englobe todo. Aunque estos esfuerzos han cado en saco roto. Sin embargo, la existencia continuada de variaciones de Unix no es motivo suficiente de alarma, ya que todas son esencialmente superiores a los restantes sistemas operativos disponibles en la actualidad.

Linux Es Seguro
El concepto de seguridad en redes de ordenadores es siempre relativo. Un sistema puede ser seguro para un determinado tipo de actividades e inseguro para otras. Por ejemplo, no sera recomendable guardar secretos de estado en un sistema Linux al que pudiera acceder mucha gente y careciese de un administrador dedicado absolutamente a la tarea ya que, segn los hackers, no hay sistema cuya seguridad sea perfecta. El sistema de contraseas que protege el acceso al sistema se basa en el algoritmo DES, el ms probado de los algoritmos de seguridad. Pero claro, por muy bueno que sea el algoritmo, si despus permitimos a sus usuarios poner como contrasea su nombre de usuario, de nada servir la contrasea y todos sus esfuerzos. Si se quiere que el sistema sea seguro, se debe administrar de tal forma que se tengan controlados a los usuarios en todo momento, para poder aconsejarles e incluso regaarles, en caso de que cometan alguna imprudencia, todo ello con el fin de mantener la propia seguridad de sus datos y de los nuestros. Para ayudarse a mantener la seguridad surgen nuevas herramientas constantemente, tanto para detectar intrusos como para encontrar fallos en el sistema y evitar as ataques desde el exterior.

Qu Se Puede Hacer Con Linux?


Las reas de aplicabilidad de Linux son varias. En sus inicios fue muy utilizado por personas relacionadas con ciencias de la computacin, desde hace algunos aos ha sido tambin adoptado en instalaciones cientficas de diversa ndole (fsica, biologa, ciencias espaciales y otras). Son de particular inters los proyectos en el rea de computacin de alto ren dimiento, donde Linux se est utilizando intensiva y extensivamente. Recientemente, tambin muchas compaas grandes han introducido soporte para Linux en su lnea de productos. Un caso ejemplar es Corel, desarrolladores del popular programa de oficina WordPerfect, quienes han venido trabajando de cerca con la comunidad de Linux y ofrecen una versin de WordPerfect en forma gratuita para uso personal. Adems de WordPerfect hay otros programas de oficina disponibles para Linux, pero haciendo honor a la verdad, las aplicaciones de escritorio son un rea con poco desarrollo en este ambiente. Otras compaas internacionales que utilizan y desarrollan productos para Linux incluyen a IBM, Netscape, Oracle, HP y Dell.

Distribuciones
En s, Linux es slo el ncleo del sistema operativo, pero necesita aplicaciones y programas para hacer algo. Muchos han sido portados a Linux, otros han sido creados especficamente para Linux, todos ellos se encuentran en Internet dispuestos a que cualquiera los baje y los instale en su sistema. Como esto es una ardua tarea no tardan en surgir compaas dedicadas a reunir todos esos programas facilitando la tarea de crear un sistema Linux funcional. En la actualidad existe un sin nmero de estas compaas pero slo se mencionarn las mas importantes dentro del contexto mundial: Slackware, Debian, SuSe, Caldera, Mandrake, Red Hat. Slackware Una de las primeras distribuciones que surgi fue Slackware (http://www.slackware.com), diseada por Patrick Volkerding a partir de SLS Linux . Esta tuvo una gran aceptacin al principio hasta llegar a ser la Pgina 124 de 164

distribucin ms popular del mercado. Actualmente ha perdido terreno a favor de distribuciones ms modernas, siendo relegada a aplicaciones especializadas. Una de las debilidades de Slackware se encuentra en el sistema de instalacin de paquetes, el cual no tiene control de versiones ni dependencias. Las nuevas distribuciones han implementado y adoptado dos sistemas de instalacin de archivos RPM (RedHat Package Manager) y DEB (Debian Package Manager). Cada programa distribuido de esta forma es un archivo comprimido, que se identifica por la extensin rpm o deb y proporciona una descripcin de lo que contiene, la versin del programa, su ubicacin en el sistema, validez de la firma electrnica y las dependencias con otros programas o libreras; por ejemplo, un determinado paquete puede necesitar de otro para su correcto funcionamiento, por lo que se dice que es dependiente del otro. De esta forma, se garantiza el xito del proceso de instalacin de una aplicacin y la estabilidad a largo plazo del sistema. Debian Debian (http://www.debian.org) es una distribucin bastante popular que no est desarrollada por ninguna com paa comercial sino que es fruto del trabajo de diversos voluntarios en toda la comunidad de Internet. Es, por lo tanto, una distribucin completamente gratis, sin restriccin de licencias en donde todo el software es GNU/GPL y no incluye software comercial. Adems, es bastante completa y estable gracias a su sistema de instalacin de paquetes DEB. Sin embargo, tal vez sea algo difcil para alguien que empieza por primera vez con Linux . Esto no quiere decir que si es la primera vez que se va a instalar Linux y se tiene una Debian a mano va a ser casi imposible instalarla. Es importante mencionar que Debian tambin ofrece una versin de su distribucin basado en otro kernel diferente a Linux: GNU Hurd . SuSE SuSE (http://www.suse.de) es una distribucin de una compaa alemana la cual combina el sistema de paquetes de Red Hat (RPM) con una organizacin derivada de Slackware. Esta distribucin es la ms popular en Europa y tiene un gran soporte para diferentes lenguas incluido el espaol. Es u de las na ms fciles de instalar y configurar, adems viene con una gran cantidad de paquetes: 1300 en la versin 6.2 lo que implica una instalacin completa de alrededor de 5.3 Gbytes en disco duro. Caldera Una compaa norteamericana llamada Caldera (http://www.calderasystems.com) ha creado su propia distribucin llamada OpenLinux, basada tambin en el sistema de paquetes de Red Hat, con un sistema de instalacin muy amigable llamada Lizard (Linux Wizard). Es una distribucin pensada par a entornos comerciales, la cual incluye paquetes comerciales como las aplicaciones de oficina Aplixware y Corel WordPerfect. Esta compaa ostenta asociaciones con empresas tan importantes como Novell e IBM. Mandrake Mandrake (http://ww w.linux -mandrake.com) surge originalmente como un clon de Red Hat el cual incorporaba las bondades del ambiente integrado KDE con la estabilidad e instalacin de Red Hat. Hoy en da es considerada una de las distribuciones ms vendidas en el mundo Red Hat Red Hat (http://www.redhat.com) es la distribucin ms popular del mercado hoy en da, siendo emulada por muchas otras. Muy sencilla de instalar, excelente auto-deteccin de dispositivos, instalador grfico (6.1) y un excelente conjunto de aplicaciones comerciales en su distribucin oficial. Aparte de estas distribuciones existen otras no tan conocidas como: Mcc Interin Linux , Tamu Linux, Lst, Sls y The Linux Quartely CD -ROM (entre otras).

Pgina 125 de 164

PREGUNT AS Y P ROBLE MAS RES UEL T OS


Unid ad es I, II, III & IV:
Preguntas De Seleccin Mltiple
1. En el contexto de la evolucin histrica de los sistemas informticos, los manejadores de dispositivos aparecieron como una mejora de: a. b. c. d. 2. Los primeros sistemas. Los sistemas de procesamiento en lotes sencillos. Los sistemas de procesamiento en lote sofisticados. Los sistemas multiprogramados.

Los primeros sistemas operativos rudimentarios se crearon para que los ordenadores fueran ms: a. b. c. d. Fciles de utilizar. Productivos. Seguros. Interactivos.

3.

El modo de operacin denominado "fuera de lnea" permite: a. b. c. d. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. Todas las anteriores son falsas.

4.

La tcnica de buffering permite: a. b. c. d. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. Todas las anteriores son falsas.

5.

La tcnica de spooling permite: a. b. c. d. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. Todas las anteriores son falsas.

6.

El tiempo de respuesta es un parmetro de especial importancia en un sistema: a. b. c. d. Sistema de procesamient o en lotes. Sistema multiprogramado. Sistema de tiempo compartido. En todos los sistemas anteriores posee la misma importancia.

Pgina N 126 de 151

7.

Para procesar simultneamente operaciones de CPU con operaciones de E/S se requieren: a. b. c. d. Dispositivos rpidos de E/S. Un reloj del sistema. Interrupciones . Instrucciones hardware especiales de proteccin.

8.

El modelo "Cliente/Servidor" se utiliz en el diseo del sistema: a. b. c. d. MSDOS. UNIX VMS. WINDOWS-NT.

9.

Un proceso cuando desea solicitar un servicio al sistema operativo lo hace mediante: a. b. c. d. Una funcin o procedimiento. Una llamada al sistema. Un comando del sistema. Una interrupcin.

10. Cul de estos recursos es lgico?: a. La memoria principal. b. Una impresora. c. Un archivo. d. El procesador. 11. La secuenciacin automtica de tareas naci con: a. b. c. d. Los Los Los Los primeros sistemas informticos. sistemas de procesamiento por lotes. sistemas multiprogramados. sistemas distribuidos.

12. El fenmeno de espera activa por operaciones de entrada/salida se puede evitar utilizando: a. b. c. d. Interrupciones . Instrucciones privilegiadas. Acceso directo a memoria (DMA). Un pareja de registros base y lmite.

13. El modo dual de operacin consigue que el sistema informtico sea: a. b. c. d. Ms veloz. Ms fcil de usar. Ms seguro. Ninguna de las anteriores.

14. En la planificacin de procesos, el mdulo que ocasionalmente mueve procesos de memoria hacia el disco y viceversa se llama: a. b. c. d. Planificador Planificador Planificador Planificador de alto nivel. de medio nivel. de bajo nivel. de corto plazo.

Pgina 127 de 164

15. Sobre planificacin de procesos, es cierto afirmar que: a. b. c. d. En general es imposible planificar procesos segn el algoritmo SJF. Los mtodos multicolas reparten proporcionalmente el tiempo disponible de CPU entre varias colas de procesos. El algoritmo FCFS perjudica a los procesos intensivos en E/S. Los enunciados a, b y c son todos ciertos.

16. La multiprogramacin implica necesariamente: a. b. c. d. Concurrencia. Paralelismo. Procesamiento por lotes. Tiempo compartido.

17. Respecto del ncleo del sistema oper ativo, es cierto afirmar que: a. b. c. d. Es un proceso que se ejecuta en modo privilegiado. Contiene el cdigo del programa de usuario. Contiene el cdigo de los programas del sistema. Reside de forma permanente en memoria principal.

18. Respecto de las llamadas al sistema, es correcto afirmar que: a. b. c. d. Slo se pueden ejecutar en modo privilegiado. Ejecutan cdigo perteneciente al ncleo. (a) y (b) son ciertas. Todas las anteriores son falsas.

19. El conjunto de datos donde se incluyen el estado de un proceso en cada momento, los recursos utilizados por el proceso, los recursos y archivos que est utilizando el mismo, etc., se denomina: a. b. c. d. e. Bloque de control de sistema. Diagrama de estado de proceso. Bloque de control de proceso. Administrador de archivos. Administrador del procesador.

20. Suponga un sistema que planifica procesos segn un Round Robin. Cuando se crea un nuevo proceso en el sistema, siempre ocurre que: a. b. c. d. Disminuye el tiempo medio de espera. Aumenta el nmero de cambios de contexto por unidad de tiempo. Aumenta la utilizacin de CPU. Se incrementa el tiempo medio de respuesta.

21. Cul de estos sistemas no puede darse jams?: a. b. c. d. Un Un Un Un sistema por lotes multiprogramado. sistema multiprogramado y no multiusuario. sistema de tiempo compartido no multiprogramado. sistema no multiprogramado y multiusuario.

22. En un sistema multihilo, se puede afirmar que: a. b. c. d. Los hilos de un mismo proceso pesado comparten el mismo cdigo. Los hilos de distintos procesos pesados comparten la misma pila. Los hilos de un mismo proceso pesado comparten el mismo contador de programa. Todas las anteriores son falsas. Pgina 128 de 164

23. Cuando un proceso en modo usuario intenta ejecutar una instruccin privilegiada, ocurre: a. b. c. d. Una interrupcin. Una excepcin. Una llamada al sistema. Un avatar (un cambio).

24. El despachador es responsable de: a. b. c. d. Decidir a qu proceso se asigna la CPU. Decidir cundo hay que desalojar al proceso que est en CPU. Realizar los cambios de contexto entre procesos. Mantener una mezcla adecuada de procesos intensivos en CPU y en E/S.

25. El modo dual de operacin (dos procesadores) se adopt para que el sistema informtico fuese: a. b. c. d. Ms Ms Ms Ms fcil de usar. eficiente. rpido. seguro.

26. El llamado efecto convoy se produce cuando el procesador se planifica con una poltica: a. b. c. d. FCFS. SJF expulsivo. SJF no expulsivo. Round -Robin con un cuanto de tiempo muy pequeo.

27. Cul de estas transiciones de estados de un proceso jams se produce en un sistema normal?: a. b. c. d. De De De De bloqueado a preparado. preparado a bloqueado. bloqueado a en ejecucin. en ejecucin a bloqueado.

28. Qu ventaja aporta el uso de interrupciones en las operaciones de E/S frente a no usarlas?: a. b. c. d. Aumenta la rapidez en las transferencias de datos. Aumenta la fiabilidad en las transferencias de datos. Contribuye a proteger la entrada/salida de accesos maliciosos. Permite comprobar fcilmente la finalizacin de las operaciones de E/S.

29. El sistema que permite que el computador sea ms interactiva disminuyendo el tiempo de respuesta, se conoce como: a. b. c. d. e. Multiproceso. Spooling. Timesharing. Monitor residente. Buffering.

30. El tiempo que los procesos estn activos pero sin ser ejecutados se denomina: a. b. c. d. e. Tiempo de respuesta. Tiempo de servicio. Tiempo de ejecucin. Tiempo de espera. Ninguna de las anteriores. Pgina 129 de 164

31. El tiempo consumido cuando un sistema operativo no tiene ningn tipo de carga (colas vacas) corresponde a: a. b. c. d. e. Tiempo Tiempo Tiempo Tiempo Tiempo medio de servicio. de ncleo. de inactividad. medio de espera. de respuesta.

32. El Concepto de Multiprogramacin se refiere a que: a. b. c. d. e. La CPU ejecuta las diversas tareas alternando entre ellas, optimizndose el uso de la CPU. Los computadores se comunican a travs de distintas lneas de comunicacin, como lneas telefnicas. El procesamiento debe llevarse a cabo dentro de lmites de tiempo o el sistema fallar. Se tiene un proceso padre que delega funciones a otros procesos. El procesador esta dedicado a mandar respuestas rpidas al usuario, sin importar el comportamiento de los procesos en su interior.

33. La manipulacin de archivos por parte del sistema operativo consiste en: a. b. c. d. e. Guardar archivos en un dispositivo una vez que el programa efecta una llamada para grabarlo. Leer un archivo desde un dispositivo de almacenamiento. Asignar una ubicacin fsica para el archivo una vez que es llevado a Memoria Virtual. Todas las anteriores. Ninguna de las anteriores.

34. La funcin de un sistema operativo distribuido es: a. b. c. d. e. Poder copiar una base de datos a cada uno de las estaciones de trabajo. Tener un Servidor y Estaciones de trabajo. Poder realizar una conexin en punto geogrficos distantes. Presentarse ante sus usuarios como un sistema uniprocesador tradicional, aunque este compuesto de mltiples procesadores. Todas las anteriores.

35. En la evolucin de los sistemas operativos: a. b. c. d. e. Aparece primero la Multiprogramacin y luego el procesamiento por Lotes. Aparece el concepto de Memoria Virtual y luego Multiprogramacin. Aparecen juntos Multiprogramacin y Tiempo compartido. Se trabajo siempre con un Multiprogramacin. Se trabajo primero con Procesamiento por Lotes (o Batch. hasta llegar a multiprogramacin.

36. Una caracterstica del sistema por Lotes es: a. b. d. e. Acepta todo tipo de trabajos remotos. La falta de interaccin entre el usuario y el trabajo mientras este se ejecuta. c. Los distintos recursos del sistema se aprovechan de manera activa. Cada dispositivo se activa slo cuando es requerido. Ninguna de las anteriores.

Pgina 130 de 164

37. La definicin: Conjunto de rutinas cuya misin es gestionar el procesador, la memoria y el resto de recursos disponibles en la instalacin, corresponde a: a. b. c. d. e. Proceso. Sistema operativo. Kernel. Buffer. Ninguna de las anteriores .

38. Una caracterstica fundamental de los sistemas operativos de tiempo real es que: a. b. c. d. e. Los procesos sean reales sin importar el tiempo de ejecucin de la operacin. Son compatibles con los sistemas de tiempo compartido. Tiene restricciones de tiempo fijas bien definidas para ejecutar una operacin. Incrementa el rendimiento de la CPU. Slo a y d son correctas.

39. Las relaciones entre procesos del sistema operativo pueden ser: a. b. c. d. e. Competicin y expropiacin. Competicin y cooperacin. Expropiacin y suspensin. Expropiacin y cooperacin. Ninguna de las anteriores.

40. La conexin de computadores entre si a travs de una gran variedad de dispositivos, compartiendo el mismo almacenamiento principal, se conoce como: a. b. c. d. e. Multiprogramacin. Monoprogramacin. Proceso Distribuido. Tiempo real. Multiproceso.

41. La anomala de Belady se produce en la poltica de asignacin: a. b. c. d. e. LRU. LFU. ptimo. FIFO. Ninguna de las anteriores.

42. La planificacin por prioridad: a. c. d. e. Consiste en asignar el procesador a los procesos de mayor prioridad. b. Consiste en que los procesos tienen todos la misma prioridad. Se usa slo en los sistemas operativos multiusuarios. Alternativas (a) y (c). Ninguna de las anteriores.

43. En general, una poltica de administracin del procesador no apropiativa: a. b. c. d. e. Asigna el procesador a los procesos por periodos fijos de tiempo. Es indispensable para sistemas interactivos. Tiende a que los trabajos cortos deban esperar por los trabajos largos. Usa siempre una cola de procesos listos ordenados en prioridad decreciente. Ninguna de las anteriores.

Pgina 131 de 164

44. La poltica de planificacin de CPU que toma de la cola de procesos preparados el que necesite menos tiempo de ejecucin para realizar su ejecucin es: a. b. c. d. e. FCFS (First Come First Served). HRN (High Response Next). SJF (Shortest Job First). RR (Round Robin ). Ninguna de las anteriores.

45. Un proceso en tiempo real debe ser ejecutado con: a. b. c. d. e. Algoritmo Algoritmo Algoritmo Algoritmo Algoritmo SJF . Round -Robin por prioridad. por prioridad o Algoritmo SJF. por prioridad o Round -Robin.

Pgina 132 de 164

Preguntas De Trminos Pareados


Caso 1 Columna A 1) Sistemas Batch 2) SJF 3) Tiempo Compart ido 4) Transicin 5) PCB 6) Proceso distribuido 7) Memoria RAM 8) Gestin de excepciones 9) Sistema operativo __ Tratamiento de errores de un programa en ejecucin. 10) Proceso 11) Monoprogramacin 12) Editor __ Programa en ejecucin con el entorno asociado (registros, variables, etc). Caso 2. Columna A 1) 2) 3) 4) 5) 6) 7) 8) 9) Proceso en tiempo real S.O. no corrige el error __ Errores de Hardware. Round Robin Cola de Procesos Planificado r de trabajos Ncleo del sistema operativo Poltica no apropiativa Interprete de comandos Compilador __ Programa traductor de un lenguaje de alto nivel a cdigo de maquina; efecta un control previo de todo el programa. __ Programas encargados de crear el entorno de trabajo de los usuarios. __ Sistema operativo monousuario __ Decide cual ser el prximo trabajo que se va a ejecutar Pgina 133 de 164 __ Requiere una respuesta inmediata. Se le asigna una alta prioridad. __ Programa que permite escribir o corregir archivos de texto, generalmente programas fuente. __ Se le da un tiempo de ejecucin a un proceso y vencido su tiempo se le da el turno a otro. __ Existe cuando en estado Ready hay varios procesos en espera por el Procesador. Columna B __ Programa de control que reacciona ante cualquier interrupcin de eventos externos y da servicio a los procesos. __ Programa que se instala en la memoria del computador en el momento de arranque, interpreta y codifica las ordenes del usuario __ Ejecutan un conjunto de tareas sin la intervencin de un usuario u operador. __ Planificacin adecuada para procesamiento por lotes. __ Varios usuarios o procesos compartiendo un Procesador. __ Medio de almacenamiento primario __ Es la conexin de computadores entre s a tra vs de una gran variedad de dispositivos Columna B __ Cambio de estado de un proceso. __ Almacena el estado general de un proceso cuando este no est activo.

10) Editor 11) DOS 12) Multiprogramacin

Preguntas De Desarrollo
1. 2. Tiene sentido un sistema monousuario que sea tambin multiprogramado?. Por qu el algoritmo FCFS (en orden de llegada) de planificacin de procesos no es apropiado para sistemas multiusuarios e interactivos?. Por qu la manipulacin directa de la entrada/salida ha de ejecutarse en modo privilegiado?. Por qu es conveniente que el sistema operativo disponga de dos clases de procesos: procesos pesados e hilos?. Por qu una duracin muy baja del cuanto de tiempo en el algoritmo Round-Robin resulta perjudicial para el rendimiento del sistema?. Explique en qu es un Intrprete de Comandos. Explique qu es la Gestin de excepciones. Responda con brevedad y precisin a las siguientes preguntas: a. b. Qu ventajas tiene poder declarar hilos dentro de un proceso pesado?. El intrprete de rdenes (command interpreter) puede ser una aplicacin indepe ndiente (ej. UNIX), o puede estar implementado dentro del ncleo del sistema operativo (ej. CP/M). Qu ventajas o inconvenientes observa usted en cada alternativa?. Por qu es necesario establecer dos modos de ejecucin (modo supervisor y modo usuari o)?. Qu diferencia hay entre las llamadas al sistema y los programas del sistema?. Si un sistema no es multiusuario, tampoco es multitarea?.

3. 4.

5.

7. 8. 9.

c.

d. e.

10. Se propone una nueva poltica de planificacin de procesos, que consiste en ceder siempre la CPU al proceso que menos memoria necesita. a. b. c. Esta poltica ofrece algn beneficio?. Y algn efecto negativo?. Es implementable?.

Pgina 134 de 164

Problemas
1. Para el conjunto de procesos indicados ms abajo calcule el tiempo (de finalizacin) solicitado usando las planificaciones FCFS y SJF. Tiempo de Llegada (ut) 0.5 1.0 1.5 2.0 2.5 Tiempos de CPU(ut) 16 8 14 12 4

NOTAS: 1.- Todos los procesos se encuentran inicialmente en cola listos para ser ejecutados. 2.- No existen interrupciones I/O por parte de los procesos. 3.- ut: Unidades de Tiempo 2. (A) Para cada uno de los procesos indicados ms abajo calcule: tiempo de finalizacin, tiempo de servicio y el ndice de servicio.
Con planificacin FCFS Tiem po de Tiem po de ndice de finalizacin servicio servicio Con planificacin SJF Tiem po de Tiem po de ndice de finalizacin servicio servicio

Tiem po de Tiem po de Llegada ejecucin 0 3 2 2 4 4 6 5 8 1 PROMEDIOS

NOTAS: 1.- La atencin de procesos comienza en el instante 0 (cero). 2.- No existen interrupciones I/O por parte de los procesos. 3.- Los tiempos estn expresados en unidades lineales. 4.- Suponga que los tiempos estn en segundos . (B) Considerando los resultados obtenidos en (A) indique cul de las planificaciones es ms eficiente (debe fundamentar) 3 Dada la siguiente carga de trabajo, obtener el diagrama de Gantt, el tiempo medio de retorno y el tiempo medio de espera al aplicar las siguientes polticas de planificacin: a. b. Primero el ms corto (SJF ) con expropiacin. Round -Robin con cuanto de 3 u.t.
Proceso P0 P1 P2 P3 Tiempo de llegada 0 2 3 5 Duracin 9 5 2 4

4.

Considere la siguiente carga de trabajo para un planificador de procesos. Los tiempos se miden en unidades arbitrarias.
Proceso P0 P1 P2 P3 Tiempo de llegada 0 2 4 5 Duracin 7 4 1 3

Pgina 135 de 164

Para los algoritmos SRTF (primero el ms corto expulsivo) y el Round -Robin con cuanto igual a 3 unidades de tiempo, se pide lo siguiente: a) b) c) d)
BFB

Confeccione los diagramas de Gantt de ambas polticas. En qu algoritmo se producen ms cambios de contexto? Qu algoritmo proporciona un menor tiempo de espera medio? Qu algoritmo considera usted que hace un reparto ms justo del procesador? Apoye sus argumentos con cifras.

Pgina 136 de 164

Unid ad es V & VI:


Preguntas De Seleccin Mltiple
1. Si en una solucin al problema de la seccin crtica un proceso puede verse impedido de acceder a su seccin crtica debido a que siempre hay otros procesos que entran antes que l, entonces no se cumple: a. La condicin de progreso. b. La condicin de espera limitada. c. La condicin de exclusin mutua. d. La condicin de interbloqueo. 2. El concepto de paginacin y sus componentes corresponden a: a. b. c. d. e. Una tcnica que recurre al uso de frame. Una tcnica de gestin de memoria de tamao variable. Un direc cionamiento de memoria de forma lineal. Una fragmentacin interna de la memoria. Una tcnica de gestin de memoria que posee nmero de pgina y un desplazamiento de la pgina.

3.

La segmentacin es una tcnica que se utiliza para: a. b. c. d. e. Solucionar los problemas que provoca la paginacin. Eliminar la fragmentacin en el almacenamiento principal. Distribuir el almacenamiento principal en segmentos de tamao variable. Slo (a) y (c). Slo (a) y (b).

4.

En un sistema con memoria virtual, el tamao del espacio lgico de un proceso: a. b. c. d. e. Debe ser exactamente igual que la memoria real disponible. Debe ser menor que la memoria real disponible. Debe ser mayor que la memoria real disponible. Puede ser mayor que la memoria real disponible. Ninguna de las anteriores.

5.

En el contexto del problema del interbloqueo un estado inseguro es: a. b. c. d. Un Un Un Un estado donde siempre existe al menos una situacin de interbloqueo. estado donde los procesos esperan por recursos. estado a partir del cual se puede llegar a una situacin de interbloqueo. estado donde no hay disponibilidades de recursos.

6.

En el interbloqueo, la estrategia que puede dar lugar a una muy baja utilizacin de recursos es: a. b. c. d. Estrategia liberal. Estrategia de prevencin. Estrategia de deteccin y recuperacin. Estrategia de evitacin.

Pgina 137 de 164

7.

En la administracin de memoria, la estrategia del mejor ajuste es aquella que: a. b. c. d. e. Permita al proceso ubicarse en el hueco en el que quepa mejor en el almacenamiento principal. Permita al proceso o trabajo ubicarse en el primer hueco disponible lo bastante grande para contenerlo en el almacenamiento principal. Permita al proceso ubicarse ordenadamente en el almacenamiento principal. Permita al proceso ubicarse en forma contigua en el almacenamiento principal. Ninguna de las anteriores.

8.

Intercambiar pginas, segmentos o programas completos entre RAM y disco se conoce como: a. b. c. d. e. Memoria real. Particiones fijas. Relocalizacin de memoria. Particiones variables. Intercambio o swapping.

9.

La segmentacin es una tcnica que se utiliza para: a. b. d. e. Solucionar los problemas que provoca la paginacin. Distribuir el almacenamiento principal en segmentos de tamao variable. c. Eliminar la fragmentacin en el almacenamiento principal. Slo (a) y (c). Slo (a) y (b).

10.

El algoritmo LRU es aquel que: a. b. c. d. e. Reemplaza la pgina que no se usar durante ms tiempo. Reemplaza la pgina que tiene ms tiempo sin usarse. Asocia a cada pgina el instante en que se trajo a la memoria. Considera la pgina ms frecuentemente usada. Ninguna de las anteriores.

11.

El concepto de paginacin y sus componentes corresponden a: a. b. c. d. e. Una tcnica de gestin de memoria que posee nmero de pgina (p) y un desplazamiento de la pgina (d). Una tcnica de gestin de memoria de tamao variable. Una tcnica que recurre al uso de frame. Un direccionamiento de memoria de forma lineal. Una fragmentacin interna de la memoria.

12.

Para solucionar el problema de las colas de espera en las particiones contiguas de tamao fijo, cual de los siguientes algoritmos son utilizados: a. b. c. d. e. Best Fit, SJN, FIFO. FIFO, Worst Fit, First Fit. First Fit, LRU, Best Fit. FIFO, Best Fit, First Fit. Best Fit, LRU.

13.

En el contexto de sistemas combinados, cual de las siguientes afirmaciones es INCORRECTA: a. b. c. d. e. Paginacin segmentada y segmentacin paginada son sinnimos. Los sistemas combinados aprovechan las ventajas de la paginacin y la segmentacin. Segmentacin implica asignacin de espacios variables de memoria. Los sistemas combinados segmentan la tabla de pgina. Los sistemas combinados paginan los segmentos. Pgina 138 de 164

14

Qu tipo de planificador est ntimamente ligado con la gestin de la memoria?: a. b. c. d. Planificador de bajo nivel. Planificador de medio nivel. Planificador de alto nivel. Todas las anteriores son falsas.

15.

La compactacin es: a. b. c. d. e. La eliminacin de reas de memoria desocupadas. La eliminacin de algunos jobs en proceso. La reubicacin de reas de memoria desocupadas. La distribucin de memoria, para convertir todas las reas libres en un espacio contiguo. Ninguna de las anteriores.

16.

En el interbloqueo, la estrategia que requiere declarar por adelantado los recursos mximos necesarios es : a. b. c. d. Estrategia liberal. Estrategia de prevencin negando la condicin de espera circular. Estrategia de deteccin y recuperacin. Estrategia de evitacin mediante el algoritmo del banquero.

17.

Respecto de los semforos, es correcto afirmar que: a. b. c. d. Eliminan el problema del interbloqueo. Son ms potentes que las regiones crticas condicionales. Tienen dos operaciones pblicas (wait y signal). Todas las ant eriores son ciertas.

18.

Respecto del algoritmo de reemplazo FIFO, indique cul de las siguientes afirmaciones es FALSA: a. b. c. d. e. Cuando se sustituye una pgina se elige la que lleva menos tiempo en memoria principal. Cuando se sustituye una pgina se elige la que lleva ms tiempo en memoria principal. Para controlar el tiempo de permanencia, se utiliza una cola de espera. La pgina que est primera en la cola de espera es la que lleva ms tiempo cargada. Ninguna de las anteriores.

19.

La anomala de Belady se produce en la poltica de asignacin: a. b. c. d. e. LRU. ptimo. FIFO. NRU. Ninguna de las anteriores.

20.

En la administracin de memoria, la estrategia del mejor ajuste es aquella que: a. b. c. d. e. Permita al proceso o trabajo ubicarse en el primer hueco disponible lo bastante grande para contenerlo en el almacenamiento principal. Permita al proceso ubicarse en el espacio en el que quepa mejor en el almacenamiento principal. Permita al proceso ubicarse en forma contigua en el almacenamiento principal. Permita al proceso ubicarse ordenadamente en el almacenamiento principal. Ninguna de las anteriores.

Pgina 139 de 164

21.

Cul de los siguientes mtodos de gestin de memoria no tiene fragmentacin externa?: a. b. c. d. e. Particiones fijas. Paginacin. Particiones variables. Segment acin. Ningn mtodo tiene fragmentacin externa.

22.

En un sistema de paginacin por demanda, cul de estas operaciones corre a cargo del hardware?: a. b. c. d. e. Traduccin de direccin lgica a direccin fsica. Aplicacin de la poltica de reemplazo de pginas. Confeccin de la tabla de pginas. Colocar el valor adecuado en el bit de validez. Ninguna de las anteriores.

23.

Cuando un proceso obtiene acceso a datos compartidos modificables se dice que se encuentra en: a. b. c. d. e. Un semforo. Un monitor. Un segmento. Una seccin crtica. Una pgina.

24.

Para tratar el interbloqueo por el sistema operativo, la estrategia ms costosa de ejecutar es: a. b. c. d. Estrategia liberal. Estrategia de prevencin. Estrategia de deteccin y recuperacin. Estrategia de evitacin.

25.

La reasignacin de direcciones estticas se realiza durante: a. b. c. d. e. El arranque del equipo. La ejecucin de un Programa. El arranque del sistema operativo. La compilacin o carga del programa en memoria. Ninguna de las anteriores.

Pgina 140 de 164

Preguntas de trminos pareados


Caso N 1 COLUMNA A 1.- Particin variable 2.- Memoria virtual 3.- Fragmentacin externa 4.- Algoritmo del peor ajuste __ Es una direccin de memoria relocalizable 5.- Sistemas combinados 6.- Particin fija __ La memoria libre en el sistema que no puede ser asignada a ningn proceso __ Gestin de memoria con particiones continuas de tamao fijo __ Forma de aprovechar los conceptos de la divisin lgica de los programas con la granularidad de las pginas __ Estrategia que permite determinar el tamao de una pgina __ El proceso es asignado a la particin ms grande de la memoria Caso N 2 COLUMNA A 1.- Sistemas combinados 2.- Memoria virtual 3.- Particin fija 4.- Particin variable 5.- Fragmentacin externa 6.- Algoritmo del peor ajuste __ Forma de aprovechar los conceptos de la divisin lgica de los programas con la granularidad de las pginas __ Consiste en reemplazar la pgina ms vieja __ Gestin de memoria con particiones continuas de tamao fijo __ La memoria libre en el sistema que no puede ser asignada a ningn proceso __ Es la traduccin de memoria lgica a fsica __ Tcnica que asigna dinmicamente la memoria a los trabajos de acuerdo a su tamao __ Tcnica que combina hardware y software permitiendo la ejecucin de programas parcialmente cargados en memoria real COLUMNA B __ Tcnica que combina hardware y software permitiendo la ejecucin de programas parcialmente cargados en memoria real __ Tcnica que asigna dinmicamente la memoria a los trabajos de acuerdo a su tamao

COLUMNA B __ El proceso es asignado a la particin ms grande de la memoria

Pgina 141 de 164

Preguntas De Desarrollo
1. 2. Explique qu funciones realiza el MONITOR RESIDENTE. Con las particiones variables de memoria se logra un mejor aprovechamiento de la memoria que con las particiones fijas. Cul es el inconveniente que genera este sistema (particiones variables)?. Explique en qu consiste el Swapping. Explique que pasa con la ejecucin de un programa al encontrar una estructura de control ParBegin / ParEnd. Explique en qu consiste la anomala de Belady. Explique qu son los semforos. Explique qu es un deadlock.

3. 4.

5. 6. 7.

Pgina 142 de 164

Problemas
1. Dada la siguiente cadena referencial:
1 6 1 2 1 0 4 7 0 3 7 4 5 3 3 5 1 1 6 1

Utilizando el algoritmo LRU determine: El nmero de fallas de pginas. El nmero de referencias a pginas que ya estn en memoria. La pgina ms utilizada. La pgina menos utilizada.

NOTA: Asuma que dispone de CUATRO marcos de pgina; todos inicialmente VACIOS. 2. Dada la siguiente cadena referencial:
1 1 1 2 1 0 4 7 0 3 7 4 5 2 3 5 1 0 6 1

Utilizando el algoritmo FIFO determine: El nmero de fallas de pginas. El nmero de referencias a pginas que ya estn en memoria. La pgina ms utilizada. La pgina menos utilizada.

NOTA: Asuma que dispone de CUATRO marcos de pgina; todos inicialmente VACIOS. 3. Se tiene un sistema concurrente con una capacidad de memoria de N bytes. Cada proceso del sistema, para poder ejecutarse, debe reservar previamente un nmero de bytes. Si no hay cantidad suficiente de memoria, debe quedarse bloqueado hasta que otros procesos vayan liberando memoria suficiente. La ejecucin del proceso debe estar regulada mediante un monitor, como se muestra a continuacin: monitor.reserva (nbytes); se ejecuta el proceso monitor.devuelve (nbytes); Implemente las operaciones de este monitor. Para escribir su solucin, puede usar un monitor clsico o bien cerrojos y variables condicin. 4. A continuacin se muestra la implementacin de los semforos en C: void Semaphore::P() { IntStatus oldLevel = interrupt >SetLevel(IntOff); while (value == 0) { queue->Append((void *)currentThread); currentThread->Sleep(); } value--; (void) interrupt ->SetLevel(oldLevel); } void Semaphore::V() { Thread *thread; IntStatus oldLevel = interrupt ->SetLevel(IntOff); thread = (Thread *)queue ->Remove(); if (thread != NULL) scheduler->ReadyToRun(thread); value++; (void) interrupt ->SetLevel(oldLevel); }

a)

Qu significa el ReadyToRun() de la operacin V()? Pgina 143 de 164

b) c) d)

Qu tipo de cola es el atributo queue? FIFO? LIFO? con prioridad? La implementacin de los semforos en Nachos utiliza espera activa? Por qu hace falta un while en la implementacin de la operacin P()? No puede sustituirse por un if?

5.

El siguiente algoritmo pretende solucionar el problema de la seccin crtica para dos procesos, P0 y P1. Demuestre si el algoritmo es o no es correcto. El algoritmo usa un vector global flag, declarado de la siguiente forma: flag : array(0..1) of boolean := (false,false); i y j son dos constantes cuyos valores dependen del proceso que ejecuta el algoritmo, segn esta tabla:
P0 P1 i 0 1 j 1 0

Algoritmo: 1 2 3 4 5 6 7 8 9 10 11 6. loop flag(i) := true; while flag(j) { flag(i) := false; while flag(j) { NADA; } flag(i) := true; }; ... seccin crtica ... flag(i) := false; ... seccin no crtica ... end loop;

Dada la siguiente propuesta de solucin al problema de la seccin crtica para 2 procesos (proceso 0 y proceso 1). Es correcta?. Justifique su respuesta. Var Flag: array[0..1] of boolean; Repeat While Flag[j] do no -op; Flag[i] = true; Seccin crtica Flag[i] = false; Until false; Inicialmente Flag[0] = Flag[1] = false. La variable "i" identifica al proceso que quiere entrar en la seccin crtica y la variable "j" al otro proceso, cumplindose j = i 1.

7.

Utilizando slo regiones crticas condicionales, resolver el problema de los Consumidores con buf fer finito (tambin conocido como problema del buffer limitado).

Productores -

Pgina 144 de 164

Unid ad es VII, VIII & IX:


Preguntas De Seleccin Mltiple
1 Linux es un sistema operativo: a. b. c. d. 2. Por lotes. De tiempo compartido. De tiempo real. Distribuido.

En el contexto de los dominios de proteccin, cul de las siguientes afirmaciones es falsa?: a. b. c. d. e. Un dominio es una coleccin de derechos de acceso. Los domi nios pueden compartir derechos de acceso. Los elementos de un sistema se categorizar como procesos y objetos. Los procesos pueden compartir derechos de acceso. Un derecho de acceso es un par ordenado [nombre_de_objeto, conjunto_de_derechos"]

3.

La funcin de un sistema operativo distribuido es: a. b. c. d. e. Poder copiar una base de datos a cada uno de las estaciones de trabajo. Poder realizar una conexin en punto geogrficos distantes. Presentarse como un sistema uniprocesad or tradicional, aunque este compuesto de mltiples procesadores. Tener un Servidor y Estaciones de trabajo. Todas las anteriores.

4.

El sistema operativo Windows NT: a. b. c. d. e. Puede trabajar con sistemas de archivos FA T. Puede trabajar con sistema NTFS. Es un sistema operativo Multiusuario. Tiene una arquitectura Cliente/Servidor. Todas las anteriores.

5.

Un dominio de proteccin es: a. b. c. d. e. Es una matriz que indica las restricciones de un usuario sobre un objeto. Conjunto de pares (usuario, objeto) donde cada par identifica las operaciones permitidas sobre l. Un conjunto de pares (objeto, operaciones) en el que cada par identifica un objeto y las operaciones permitidas sobre l. Alternativas (a) y (c) Ninguna de las anteriores.

6.

Al hablar de seguridad externa, se hace referencia explicita a: a. b. c. d. e. Seguridad de datos. Sistemas de proteccin Seguridad fsica o lgica. Seguridad fsica y de administracin. Ninguna de las anteriores

Pgina 145 de 164

7.

La SEGURIDAD se diferencia de la PROTECCIN en que: a. b. c. d. e. La primera se refiere a seguridad fsica y la segunda a seguridad lgica. La seguridad comprende la informacin estratgica y proteccin los datos de cualquier usuario. Seguridad esta relacionada con las polticas definidas y la proteccin con los mecanismos a implementar para llevar a cabo esas polticas. Alternativas (a) y (b). Todas las anteriores.

8.

Cul de las siguientes afirmaciones NO es correcta?: a. b. c. d. e. La seguridad interna considera la seguridad del procesador. La seguridad interna considera la seguridad de la memoria. La seguridad interna considera la seguridad de los archivos. La seguridad interna es controlada por el propio sistema operativo. La seguridad interna considera la integridad de la transmisin de los datos.

9.

El proceso al que hay que someter la informacin para conseguir que sea secreta se denomina: a. b. c. d. e. Username. Password. Encapsulado. Compactacin. Encriptado.

10.

Cul de las siguientes afirmaciones NO es correcta?: a. b. c. d. e. Una estrategia para el acceso a los recursos como, archivos o directorios, es tener identidades para el usuario. Al conjunto de usuarios que comparten recursos y necesitan acceso similar es llamado grupo. Por lo general, los usuarios de un grupo slo son creados y modificados por el administrador del sistema. Los tipos de usuarios slo se clasifican en dueos y grupos. Ninguna de las anteriores.

11.

Un sistema operativo de red: a. b. c. d. e. Se caracteriza porque su estructura interna est orientada a objetos. Se caracteriza porque comparte unos pocos recursos, normalmente discos e impresoras, a travs de una red con otras mquinas conectadas entre s. Almacena el archivo de contraseas en un archivo encriptado con un algoritmo de triple clave pseudoaletoria. Todas las anteriores. Ninguna de las anteriores.

12.

Al hablar de seguridad externa, se hace referencia explicita a: a. b. c. d. e. Seguridad de datos. Sistemas de proteccin Seguridad fsica o lgica. Seguridad fsica y de administracin. Ninguna de las anteriores

Pgina 146 de 164

13.

Seale la alternativa que da sentido correcto a la frase: Si cada usuario pudiese ser un dominio entonces el conjunto de objetos al que se puede acceder depende de _____. Hay conmutacin de dominio cuando cambia _____________, y si un nuevo usuario inicia una sesin ocurre ____________. a. b. d. e. un User Id, el usuario, una conmutacin de dominios . la identidad del usuario, los derechos de acceso, la creacin de un objeto. c. los objetos, el dominio, la creacin de un usuario nuevo. el usuario, la conmutacin de dominio, la generacin de derechos de acceso. Ninguna de las anteriores.

Pgina 147 de 164

Preguntas De Trminos Pareados


Caso N 1 Columna A 1.- Caballo de troya 2.- Intrusin 3.- Mecanismo llave/cerradura 4.- Perfil Mvil Columna B Aaden varios bits de control al octeto o palabra a transmitir, de tal forma que detectan errores de uno o ms bits y los corrigen. Corresponde a una ranura para montar el procesador. Definicin dada para una entrada no autorizada o indebida en el sistema. En sistemas de archivos auxiliares donde se registran todas las operaciones que realiza un usuario. Permite que el usuario ingrese a distintos computadores con los mismos permisos de acceso a recursos y programas, la misma interfaz y privilegios similares. Programa aparentemente til que contiene un trozo de cdigo que hace algo no deseado. Son los mecanismos que impiden a los agentes fsicos la destruccin de la informacin existente en el sistema. Un proceso puede efectuar una operacin con un objeto slo si el dominio bajo el que se ejecuta posee una llave especfica para alguna de las cerraduras del objeto. Caso N 2 Columna A 1.- Caza Claves 2.- Compatibilidad 3.- Criptografa 4.- Dominio de proteccin 5.- Matriz de acceso 6.- Seguridad externa Columna B Consiste en que cada cierto tiempo se realice una copia del contenido de los archivos. Es la capacidad de un dispositivo o aplicacin de poder adaptarse en distintos ambientes computacionales. Es un conjunto de pares (objeto, operaciones); cada par identifica un objeto y las operaciones permitidas sobre l. Es un proceso de transformacin que se aplica a unos datos para ocultar su contenido. Programa que pide "login:" y luego "password:", para engaar a los usuarios de modo que estos revelen su clave. Se refiere a las instalaciones del sistema informtico y al acceso de personas al sistema y su informacin. Son los mecanismos que impiden a los agentes fsicos la destruccin de la informacin existente en el sistema. Tabla que indica los objetos a los que puede acceder un sujeto y permisos que tiene sobre l.

5.- Seguridad fsica 6.- Socket

Pgina 148 de 164

Preguntas De Desarrollo
1. 2. Indique a lo menos 3 medios de respaldo de Informacin, y sus caractersticas. Nombre 3 normas que se deben mantener para evitar accesos no autorizados a una red o el sistema operativo. Explique qu es la Criptografa En una empresa turstica se desea implementar una pequea red LAN para llevar en un principio el manejo de los sistemas de facturacin, de control de suministros y un sistema contable. Los usuarios en esta red sern 4 personas: dos asistentes contables que utilizarn el sistema de facturacin en los casos que sea necesario, una persona que llevar e control de suministros, el contador que l utilizar el sistema contable. A usted se le ha encargado definir los requerimientos de esta red indicando las estructuras de hardware necesarias para satisfacer estos requerimientos. Se pide: a) b) c) d) e) f) 5. Sugerir un sistema operativo (de los vistos en clases) para administrar esta red. Los tipos de procesos que se ejecutarn. Cantidad y tipos de usuarios. Tipo de tarjeta de red. Cantidad y tipo de servidores. Procesadores para cada estacin de trabajo.

3. 4.

Se tienen los siguientes dominios de usuarios: a) Dominio Jefaturas: Acceso total a las estaciones de trabajo (E1), (E2), (E3). Acceso total a las impresoras lser (L1), inyeccin de tinta (I1), bases de datos (B1) y (B 2). Dominio Operarios: Acceso total a estaciones de trabajo: (E4), (E5), (E6). Acceso total a la impresoras lser (L1) y a una impresora inyeccin de tinta (I2). Acceso total a la base de batos (B2) y de lectura y ejecucin a la base de datos (B1). Dominio Administradores: Acceso total a todos los equipos y a las impresora lser (L1) y la inyeccin de tinta (I1). Accesos de lectura y ejecucin a la base de datos (B2).

b)

c)

SE PIDE: a. Dibujar un esquema con los dominios y accesos a cada uno de los recursos para cada dominio. Realizar una matriz de acceso considerando los permisos a cada recurso que se posean en los distintos dominios : Lectura (R), Escritura (W ) y Ejecucin(X).

b.

Pgina 149 de 164

Res puestas y So luc ion es:


Preguntas De Seleccin Mltiple
Unidades I, II, III & IV N Resp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 a b c a b c c d b c b a c b d a d c c d c a b c d a b d c d c a d d e b c c b c d a c c c

Unidades V & VI N Resp.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 b e d d c b a e e b a d a b d d c a c b b a d c d -

Unidades VII, VIII & IX N Resp.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 b d c e c d c e e d b d a -

Pgina 150 de 164

Preguntas De Trminos Pareados


Unidades I, II, III & IV Caso N 1 Columna A 1) Sistemas Batch 2) SJF 3) Tiempo Compartido 4) Transicin 5) PCB 6) Proceso distribuido 7) Memoria RAM 8) Gestin de excepciones 9) Sistema operativo 8 Tratamiento de errores de un programa en ejecucin. 10) Proceso 11) Monoprogramacin 12) Editor 10 Programa en ejecucin con el entorno asociado (registros, variables, etc). Caso N 2 Columna A 1) 2) 3) 4) 5) 6) Proceso en tiempo real S.O. no corrige el error 2 Errores de Hardware. Round Robin Cola de Procesos Planificador de trabajos Ncleo del sistema operativo Poltica no apropiativa Interprete de comandos Compilador 9 Programa traductor de un lenguaje de alto nivel a cdigo de maquina; efecta un control previo de todo el programa. 8 Programas encargados de crear el entorno de trabajo de los usuarios. 11 Sistema operativo monousuario 12) Multiprogramacin 5 Decide cual ser el prximo trabajo que se va a ejecutar Pgina 151 de 164 3 Se le da un tiempo de ejec ucin a un proceso y vencido su tiempo se le da el turno a otro. 4 Existe cuando en estado Ready hay varios procesos en espera por el Procesador. 1 Requiere una respuesta inmediata. Se le asigna una alta prioridad. 10 Programa que permite escribir o corregir archivos de texto, generalmente programas fuente. Columna B 6 Programa de control que reacciona ante cualquier interrupcin de eventos externos y da servicio a los procesos. 9 Programa que se instala en la memoria del computador en el momento de a rranque, interpreta y codifica las ordenes del usuario 1 Ejecutan un conjunto de tareas sin la intervencin de un usuario u operador. 2 Planificacin adecuada para procesamiento por lotes. 3 Varios usuarios o procesos compartiendo un Procesador. 7 Medio de almacenamiento primario 6 Es la conexin de computadores entre s a travs de una gran variedad de dispositivos Columna B 4 Cambio de estado de un proceso. 5 Almacena el estado general de un proceso cuando este no est activo.

7) 8) 9)

10) Editor 11) DOS

Unidades V & VI Caso N 1 Columna A 1.- Particin variable 2.- Memoria virtual 3.- Fragmentacin externa 4.- Algoritmo del peor ajuste __ 5.- Sistemas combinados 3 6.- Particin fija 6 5 La memoria libre en el sistema que no puede ser asignada a ningn proceso Gestin de memoria con particiones continuas de tamao fijo Forma de aprovechar los conceptos de la divisin lgica de los programas con la granularidad de las pginas Estrategia que permite determinar el tamao de una pgina El proceso es asignado a la particin ms grande d e la memoria Es una direccin de memoria relocalizable 1 2 Columna B Tcnica que combina hardware y software permitiendo la ejecucin de programas parcialmente cargados en memoria real Tcnica que asigna dinmicamente la memoria a los trabajos de acuerdo a su tamao

__ 4

Caso N 2 Columna A 1.- Sistemas combinados 2.- Memoria virtual 3.- Particin fija 4.- Particin variable 5.- Fragmentacin externa 6.- Algoritmo del peor ajuste 1 Forma de aprovechar los conceptos de la divisin lgica de los programas con la granularidad de las pginas __ Consiste en reemplazar la pgina ms vieja 3 Gestin de memoria con particiones continuas de tamao fijo 5 La memoria libre en el sistema que no puede ser asignada a ningn proceso __ Es la traduccin de memoria lgica a fsica 4 Tcnica que asigna di nmicamente la memoria a los trabajos de acuerdo a su tamao 2 Tcnica que combina hardware y software permitiendo la ejecucin de programas parcialmente cargados en memoria real Columna B 6 El proceso es asignado a la particin ms grande de la memoria

Pgina 152 de 164

Unidades VII, VIII & IX Caso N 1 Columna A 1.- Caballo de troya 2.- Intrusin 3.- Mecanismo llave/cerradura 4.- Perfil Mvil Columna B Aaden varios bits de control al octeto o palabra a transmitir, de tal forma que detectan errores de uno o ms bits y los corrigen. 6 Corresponde a una ranura para montar el procesador. Definicin dada para una entrada no autorizada o indebida en el 2 sistema. En sistemas de archivos auxiliares donde se registran todas las operaciones que realiza un usuario. Permite que el usuario ingrese a distintos computadores con los mismos permisos de acceso a recursos y programas, la misma 4 interfaz y privilegios similares. Programa aparentemente til que contiene un trozo de cdigo 1 que hace algo no deseado. Son los mecanismos que impiden a los agentes fsicos la 5 destruccin de la informacin existente en el sistema. Un proceso puede efectuar una operacin con un objeto slo si el dominio bajo el que se ejecuta posee una llave especfica 3 para alguna de las cerraduras del objeto. Caso N 2 Columna A 1.- Caza Claves 2.- Compatibilidad 3.- Criptografa 4.- Dominio de proteccin 5.- Matriz de acceso 6.- Seguridad externa Columna B Consiste en que cada cierto tiempo se realice una copia del contenido de los archivos. Es la capacidad de un dispositivo o aplicacin de poder 2 adaptarse en distintos ambientes computacionales. Es un conjunto de pares (objeto, operaciones); cada par 4 identifica un objeto y las operaciones permitidas sobre l. Es un proceso de transformacin que se aplica a unos datos 3 para ocultar su contenido. Programa que pide "login:" y luego "password:", para engaar a 1 los usuarios de modo que estos revelen su clave. Se refiere a las instalaciones del sistema informtico y al acceso 6 de personas al sistema y su informacin. Son los mecanismos que impiden a los agentes fsicos la destruccin de la informacin existente en el sistema. Tabla que indica los objetos a los que puede acceder un sujeto 5 y permisos que tiene sobre l.

5.- Seguridad fsica 6.- Socket

Pgina 153 de 164

Preguntas de desarrollo
Unidades I, II, III & IV 1. Por supuesto que s. La multiprogramacin siempre contribuye a aumentar el rendimiento de los recursos, ya que saca ms partido del procesador. Adems, a un usuario individual le puede resultar muy til tener varios programas en ejecucin simultnea, como ocurre en un entorno de ventanas tpico, en el cual el usuario puede tener abierta varias aplicaciones al mismo tiempo. Esto permite aumentar la productividad del usuario, ya que no ha de esperar a que una aplicacin finalice para trabajar con otro programa. El algoritmo FCFS no tiene la capacidad de expulsar del procesador a un proceso que no lo solicite. Por este motivo, un proceso intensivo en CPU puede acaparar el procesador por tiempo indefinido, postergando a los restantes procesos preparados. Esto significa que un programa interactivo, que exige tiempos de respuesta bajos, pueda verse retrasado un tiempo excesivo y por tanto incumplir los requisitos de interactividad. Fundamentalmente, para garantizar que el estado de la entrada/salida es correcto que se respetan las polticas de acceso a los recursos definidas por el sistema operativo. Si cualquier proceso pudiera acceder a E/S directamente, podra dejarla en un estado inconsistente. Podra saltarse las prioridades de acceso a los recursos. En los dispositivos de almacenamiento o transmisin de datos, se podra leer informacin no autorizada. Por todo ello, el acceso directo a E/S slo se puede hacer con las rutinas dadas por el sistema operativo, en modo privilegiado. Si los programadores pretenden escribir aplicaciones que contengan varios flujos de ejecucin concurrentes, estos usarn el mismo cdigo y adems necesitarn comunicarse informacin con frecuencia. Por ello se considera apropiado definir una clase de procesos que compartan cdigo, datos y dems recursos dentro de una aplicacin: son los procesos ligeros o hilos. El proceso pesado es la estructura que contiene uno o varios hilos, ms los recursos compartidos por estos hilos. Con ello se pueden escribir aplicaciones concurrentes con menos consumo de memoria y menor tiempo de comunicacin entre hilos (ya que lo hacen a travs de la memoria compartida). Porque cuanto ms baja sea la duracin del cuanto de tiempo, ms cambios de contexto se producirn por unidad de tiempo. Como el cambio de contexto no realiza trabajo productivo, el rendimiento del procesador decae. En particular, si el cuanto de tiempo es inferior a la duracin de un cambio de contexto, el procesador pasar ms tiempo administrando que realizando trabajo productivo. Es un programa encargado de crear el entorno de trabajo de los usuarios Es una tcnica que realiza el tratamiento de errores de un programa en ejecucin La ventaja principal es poder dotar de concurrencia interna a una aplicacin, con un coste reducido. Varios hilos dentro de un proceso pesado comparten el mismo espacio de memoria (cdigo y datos), as como los recursos que la aplicacin tenga asignados. Si nuestro sistema operativo no diera la posibilidad de declarar hilos en un proceso, las activi dades concurrentes de una aplicacin tendran que definirse mediante procesos pesados, que no comparten memoria ni recursos, y por tanto se consumiran ms recursos. Ventajas del intrprete en el ncleo: Dado que es una aplicacin de uso muy frecuent e, si se tiene el cdigo en el ncleo, la ejecucin de las aplicaciones puede ser ms rpida (no hay que cargarla del disco). Inconvenientes del intrprete en el ncleo: El ncleo crece de tamao. Cuando no se est utilizando el intrprete de rdenes, se est ocupando memoria con cdigo que no se emplea. El sistema es menos flexible, ya que si se quisiera cambiar la versin del intrprete de rdenes, se tendra que reinstalar el ncleo del sistema operativo.

2.

3.

4.

5.

7. 8. 9.a.

9.b.

Pgina 154 de 164

9.c.

Principalmente, porque en un sistema oper ativo multiprogramado o multiusuario existen restricciones de acceso a los recursos: proteccin de zonas de memoria, restriccin del uso de archivos y dispositivos de E/S, etc. En segundo lugar, y muy relacionado con lo anterior, para poder preservar la integridad del sistema operativo, que no debe ser daado por el uso indebido de los programas de usuario. Las llamadas al sistema son los mecanismos que utilizan las aplicaciones para solicitar servicios al ncleo del sistema operativo, mientras que los programas del sistema son aplicaciones independientes que se distribuyen junto al sistema operativo y que resuelven necesidades bsicas de operacin o administracin (por ejemplo: editores, compiladores, intrpretes de rdenes, etc.) Las llamadas al sistema son la interfaz del sistema operativo para las aplicaciones, mientras que los programas del sistema son la interfaz del sistema operativo para los usuarios. No necesariamente. Un sistema puede ser multitarea sin ser multiusuario. Aunque slo exista un usuario en el sistema, ste puede encontrar til lanzar varias aplicaciones concurrentes, como puede suceder en Windows .

9.d.

9.e.

10.a. Se est dando preferencia a los programas de pequeo tamao, con lo cual se estimula a los programadores a que escriban aplicaciones lo ms pequeas que puedan (lo cual es deseable). AMPLIACIN: Si esta idea se extendiera al Planificador de Largo Plazo, se estara hablando de mantener en la cola de preparados a los procesos con menos demanda de memoria: en ese caso, la poltica tendra el efecto beneficioso de mantener en ejecucin la mayor cantidad de procesos posible. 10.b. El efecto negativo ms inmediato es el perjuicio causado a los procesos que demanden ms memoria para su ejecucin, con el riesgo de inanicin. Otro efecto negativo es que la poltica no tiene en cuenta caractersticas importantes de los procesos, como la duracin de sus rfagas de CPU, sus requisitos de interactividad, etc., que se sabe que influyen mucho en el rendimiento de la planificacin de procesos. Un proceso de pequeo tamao no implica un proceso de menos duracin. Por tanto, el rendimiento de esta poltica sera imprevisible y no ptimo. 10.c. Por supuesto que s, ya que se pueden conocer por anticipado las necesidades de memoria de un programa (cdigo y datos), o al menos una estimacin fiable. Unidades V & VI 1. Gestionar la memoria en los siguientes aspectos: Asegurar la independencia de las zonas, es decir la proteccin de memoria Asegurar que los programas de usuarios no se vean afectados por la divisin de memoria La fragmentacin que sufre la memoria es su mayor inconveniente debido a la sobrecarga que se origina en el procesador para realizar la compactacin con la consiguiente prdida de tiempo Es una tcnica del sistema operativo que permite mejorar la utilizacin de la memoria realizando intercambios desde la memoria principal a dispositivos rpidos de almacenamiento secundario En la programacin en paralelo, la estructura de control ParBegin / ParEnd, indica que una ejecucin secuencial se dividir en varias secuencias de ejecucin en paralelo (hilos de control) y luego se reanudarn como una sola ejecucin secuencial La anomala de Belady consiste en que algunos algoritmos de reemplazo de pginas, la tasa de fallas de pgina puede aumentar al incrementar el nmero de marcos asignados. El sistema operativo debe ofrecer mecanismos para sincronizar la ejecucin de procesos: Uno de estos son los semforos. Los semforos son rutinas de software (que en su nivel ms interno se auxilian del hardware) para lograr exclusin mutua en el uso de recursos Es cuando dos o mas procesos esperan por un mismo recurso el cual no puede ser liberado, lo cual imposibilita a los procesos continuar con sus ejecuciones de manera normal Pgina 155 de 164

2.

3.

4.

5.

6.

7.

Unidades VII, VIII & IX 1. Cintas (DAT, DLT, 6150 6525, tipo Reel), CDROM, Discos pticos, Tcnicas RAID. (Arreglos tipo 1 3 4 y 5), el tipo 0 es un RAID pero no respalda, etc. Evitar que los usuario introduzcan sus contraseas en un archivo por lotes para una autentificaron automtica. Los usuario no autorizados pueden visualizar los archivos por lotes; Requerir que la contrasea tenga un mnimo de caracteres; Requerir el cam bio de contraseas a lo menos cada 30, 60 90 das; Requerir el uso de contraseas nicas cuando se cambian, es decir, un usuario no puede seleccionar la misma contrasea dos veces; Al abandonar sus estaciones de trabajo el usuario debe salir del sistema o bloquear su estacin; Etc. Es un proceso de transformacin que se aplica a unos datos para ocultar su contenido. Windows NT Server y Windows NT Cliente. (o bien Novell, Linux , MAC, etc.) Los procesos a ejecutar sern todos de tipo interactivos. Pueden existir procesos Batch, en el caso de realizar respaldos para la seguridad de los datos. Los tipos de usuarios pueden ser de dos tipos : el administrador de la red que utilizar en forma espordica el servidor y el resto de usuarios que usar cada uno sus aplicaciones correspondientes (depende del sistema operativo que se haya seleccionado en 1). Una tarjeta para de red para cada computador (Ethernet) con una velocidad de transmisin adecuada (rpida). Slo un servidor que atiende solicitudes de datos y servicios de impresin principalmente para la persona que lleva el control de suministros y el contador. Sera recomendable un procesador de 1 GHz, 40 GB de disco duro y 128 MB de RAM. (aunque una estacin de trabajo tambin puede dar servicios) Puede ser muy variable, pero se puede recomendar que los dems procesadores de cada equipo sean sobre 500 MHz, 5 GB de disco duro y 64 MB de RAM. 5.a.

2.

3. 4.a. 4.b.

4.c.

4.d.

4.e.

4.f.

5.b.
Dominio Jefaturas Operarios Administrador E1 RWX RWX E2 RWX RWX E3 RWX RWX E4 RW X RW X E5 RWX RWX E6 RWX RWX L1 RWX RWX RWX I1 RWX RWX I2 RWX B1 RWX RX B2 RWX RWX RX

Pgina 156 de 164

Problemas
Unidades I, II, III & IV 1.
Tiempo de Llegada (ut) Tiempos de CPU(ut) 0.5 16 1.0 8 1.5 14 2.0 12 2.5 4 TIEMPOS PROMEDIOS Tiempo con FCFS 16 24 38 50 54 36,4 Tiempo con SJF 54 12 38 24 4 26,4

2.a.
Tiempo de Tiempo de Llegada ejecucin 0 3 2 2 4 4 6 5 8 1 PROMEDIOS Con planificacin FCFS Tiempo de Tiempo de ndice de finalizacin servicio servicio 3 3 1,00 5 3 0,67 9 5 0,80 14 8 0,63 15 7 0,14 5,20 0,65 Con planificacin SJF Tiempo de Tiempo de ndice de finalizacin servicio servicio 3 3 1,00 5 3 0,67 9 5 0,80 15 9 0,56 10 2 0,50 4,40 0,70

2.b.

La planificacin SJF es ms eficiente ya que el promedio de su ndice de servicio es ms cercano a la unid ad. Primero el ms corto (SJF ) con expropiacin: admite dos posibilidades

3.a.

Solucin A: P0 , P0 , P1 , P2 , P2 , P3 , P3 , P3 , P3 , P1 , P1 , P1 , P1 , P0 , P0 , P0 , P0 , P0 , P0 , P0 Proceso Tiempo de Tiempo de retorno espera P0 20 11 P1 11 6 P2 2 0 P3 4 0 Media 9,25 4,25 Solucin B: P0 , P0 , P1 , P2 , P2 , P1 , P1 , P1 , P1 , P3 , P3 , P3 , P3 , P0 , P0 , P0 , P0 , P0 , P0 , P0 Proceso Tiempo de Tiempo de retorno espera P0 20 11 P1 7 2 P2 2 0 P3 8 4 Media 9,25 4,25 3.b. Round -Robin (Q = 3 u.t.): admite dos posibilidades, se presenta una solucin

Solucin A: P0 , P0 , P0 , P1 , P1 , P1 , P2 , P2 , P0 , P0 , P0 , P3 , P3 , P3 , P1 , P1 , P0 , P0 , P0 , P3 Proceso Tiempo de Tiempo de retorno espera P0 19 10 P1 14 9 P2 5 3 P3 15 11 Media 13,2 8,2

Pgina 157 de 164

4.a.
SRTF P0 P1 P2 P3 Round-Robin, q=3 P0 P1 P2 P3 1 X 2 X 3 X 4 X X X 1 X 2 X 3 X 4 X 5 X 6 X X X X X 7 X 8 X X 9 X X 10 11 12 13 14 X 15 X 5 6 X 7 X 8 9 10 11 X 12 X 13 X 14 X 15 X

4.b. 4.c.

Hay ms cambios de contexto en el RR (seis) que en el SRTF (cinco). El menor tiempo de espera medio lo da el SRTF, como era de esperar, con 11/4=275 u.t. El RR da una media de 26/4=65 u.t. La decisin sobre cul es el algoritmo ms justo depende del concepto que se tenga de justicia. En el mbito de este conc epto pueden entrar: el reparto equilibrado del procesador, la igualdad de oportunidades en el acceso al mismo, la menor desviacin respecto a la media de los tiempos de espera, etc. Tiempos de espera SRTF Round -Robin P0 8 8 P1 1 8 P2 0 5 P3 2 5 Si se habla de igualdad en el trato, se puede observar que en el RR las desviaciones respecto a la media en el tiempo de espera son menores (15 u.t. de diferencia) que en el SRTF, en el cual hay ms disparidad de resultados. Obsrvese la diferencia entre P0 y P2. Este dato es un argumento a favor de calificar al RR como ms justo. Sin embargo, la aparente justicia del RR no es tan clara. Comparado con el RR, el SRTF no perjudica a ningn proceso, exceptuando quizs a P0, que tiene un periodo de espera continua de 8 u.t. y que en el RR disfruta del procesador con ms frecuencia. Por el contrario, P1 y P2 estn muy penalizados en el RR. Como el SRTF beneficia a ms procesos que el RR, podra afirmarse que en este caso es ms justo. Unidades V & VI

4.d.

1. Desarrollo Cadena de referencias


1 6 1 2 1 0 4 7 0 3 7 4 5 3 3 5 1 1 6 1

Marcos de pgina
1 1 6 1 6 1 6 2 1 6 2 1 6 2 0 1 4 2 0 1 4 7 0 1 4 7 0 3 4 7 0 3 4 7 0 3 4 7 0 3 4 7 5 3 4 7 5 3 4 7 5 3 4 7 5 3 4 1 5 3 4 1 5 3 6 1 5 3 6 1 5

Respuestas
El nmero de fallas de pginas El nmero de referencias a pginas que ya estn en memoria La pgina ms utilizada La pgina menos utilizada 10 10 Pgina N 1 Pgina N 2

Pgina 158 de 164

2. Desarrollo Cadena de referencias


1 1 1 2 1 0 4 7 0 3 7 4 5 2 3 5 1 0 6 1

Marcos de pgina
1 1 1 1 2 1 2 1 2 0 1 2 0 4 7 2 0 4 7 2 0 4 7 3 0 4 7 3 0 4 7 3 0 4 7 3 5 4 7 3 5 2 7 3 5 2 7 3 5 2 1 3 5 2 1 0 5 2 1 0 6 2 1 0 6 2

Respuestas
El nmero de fallas de pginas El nmero de referencias a pginas que ya estn en memoria La pgina ms utilizada La pgina menos utilizada 11 09 Pgina N 1 Pgina N 6

3.

Con un monitor (lenguaje estilo Ada): Monitor ReservaMemoria is begin procedure entry reserva (n bytes: natural) is begin while espacio_libre < nbytes loop HayEspacio.Wait; HayEspacio.Signal; end loop; espacio_libre := espacio_libre - nbytes; end reserva;

procedure entry devuelve (nbytes: natural) is begin espacio_libre := espacio_libre + nbytes; HayEspacio.Signal; end devuelve; HayEspacio: condition; N: constant natural := ; espacio_libre: natural range 0..N := N; end ReservaMemoria;

NOTA: El signal posterior al wait es imprescindible para despertar a todos los procesos en espera cuando se devuelve memoria al sistema. P.ej. si hay dos procesos en espera que necesitan 10 y 30 bytes, y un proceso que finaliza devuelv 50 bytes, hay que desbloquear a los dos procesos. e Considrese tambin el ejemplo en el que estn esperando tres procesos que necesitan 60, 10 y 30 bytes; y que un proceso devuelve 50 bytes. Si se desbloquea el proceso de 60, tiene que volver a bloquearse, pero hay que darle una oportunidad a los procesos de 10 y de 30 bytes. El signal de devuelve() se puede sustituir por un broadcast, en cuyo caso no hace falta hacer el signal posterior al wait del mtodo reserva(). Con cerrojos y variables condicin (estilo Nachos, escrito en C++): const int N = ; class ReservaMemoria { private: int espacio_libre; Lock cerrojo; Condition HayEspacio; public: ReservaMemoria () : HayEspacio(cerrojo) { espacio_libre = N; } void reserva (int nbytes) { cerrojo.Acquire(); while ( espacio_libre < nbytes ) { HayEspacio.Wait(); HayEspacio.Signal(); } espacio_libre -= nbytes; cerrojo.Release(); } Pgina 159 de 164

void devuelve (int nbytes) { cerrojo.Acquire(); espacio_libre += nbytes; HayEspacio.Signal (); cerrojo.Release(); } }; NOTA: la misma que para la solucin de Ada. 4. a) por b) c) Sirve para reincorporar en la cola de preparados a un hilo que estaba bloqueado (apuntado la variable thread). Se est usando como una cola FIFO. No. Cuando un hilo que hace una P() descubre que el semforo vale cero, se bloquea con Sleep () y no reevala el semforo hasta que alguien le despierta. Por tanto, mientras est bloqueado est fuera de la cola de preparados. d) El while es necesario, porque cuando el hilo que hizo la P() se recupera del Sleep(), ingresa en la cola de preparados por el final. Delante de l, en la cola de preparados, puede haber otros procesos que van a hacer operaciones P() sobre el mismo semforo, con lo cual, cuando le llegue el turno de CPU al proceso despertado, puede ocurrir que el semforo vuelva a estar a cero. Por eso tiene que volver a evaluar el valor del semforo y bloquearse si de nuevo lo encuentra a cero. Para sustituir el while por un if, habra que hacer modificaciones en los algoritmos aqu expuestos.

5.

La solucin planteada no es vlida, ya que no se cumple los requisitos de progreso y de espera limitada. La condicin de exclusin mutua siempre se cumple, aunque aqu no hace falta demostrarlo. Si los dos procesos intentan entrar al mismo tiempo en seccin crtica, se puede dar la siguiente secuencia de acciones (estado inicial: P0 y P1 estn en la lnea 2): Paso Accin (p0,2) (p1,2) (p0,3) (p1,3) (p0,4) (p1,4) (p0,5) (p1,5) (p0,6) (p1,6) (p0,7) (p1,7) Efecto flag[0]:=true flag[1]:=true flag[1]=true, P0 entra en el while flag[0]=true, P1 entra en el while flag[0]:=false flag[1]:=false como flag[1]=false, P0 no entra en el while como flag[0]=false, P1 no entra en el while flag[0]:=true flag[1]:=true P0 vuelve a la lnea 3 P1 vuelve a la lnea 3

<aqu>

El estado final es el mismo que en el punto marcado como <aqu>: los dos booleanos estn a true y tanto P0 como P1 estn a punto de ejecutar la lnea 3. Esto quiere decir que se puede producir la misma secuencia de acciones nuevamente, y as indefinidamente. Por tanto no se garantiza que, si uno o varios procesos quieren entrar en seccin crtica, se tome una decisin en tiempo finito. Esto viola el requisito llamado de progreso. Por otro lado, la condicin de espera limitada tampoco se cumple, ya que un proceso que acaba de salir de seccin crtica puede volver a entrar una y otra vez a pesar de que su compaero quiera tambin entrar. Vase sta secuencia, cuyo estado inicial es P0 en la lnea 8 y P1 en la lnea 2: Accin (p0,9) (p1,2) (p0,10) (p0,2) (p1,3) Efecto flag[0]:=false, P0 sale de seccin crtica. flag[1]:=true, P1 expresa su intencin de entrar. P0 ejecuta su seccin no crtica Flag[0]:=true, P0 quiere entrar otra vez en s.c. P1 observa que flag[0]=true, entra en el bucle Pgina 160 de 164

(p1,4) (p0,3) (p0,7) (p0,8) (p1,5)

flag[1]:=false P0 observa que flag[0]=false: no entra en el bucle P0 sale del bucle P0 est en seccin crtica P1 observa que flag[1]=true, sigue iterando

Esta secuencia es posible y adems se puede repetir indefinidamente, de forma que no se garantiza que P1 entra en seccin crtica en un tiempo finito aunque P0 entra tantas veces como desea. En conclusin, el algoritmo propuesto no se puede considerar una solucin correcta al problema de la seccin crtica. 6. La solucin aportada no es correcta, puesto que el principio de exclusin mutua no se cumple. Efectivamente, supngase que los dos procesos (P0 y P1) intentan entrar en la seccin crtica y se ejecutan, por ejemplo, de la siguiente manera: T0: P0 comprueba el estado de Flag[1] y lo encuentra a "falso" T1: P1 comprueba el estado de Flag[0] y lo encuentra a "falso" Entonces, los procesos tendran va libre para acceder a la sec cin crtica; no cumplindose por tanto el principio de exclusin mutua. 7. var buffer: shared record depsito: array [0 .. n-1] of elemento; recuento, entrada, salida: integer; --inicializadas a cero end; Productor: region buffer when ( recuento < n ) do begin deposito[entrada] := psiguiente; entrada := (entrada+1) mod n; recuento := recuento + 1; end; Consumidor: region buffer when (recuento > 0 ) do begin csiguiente := depsito[salida]; salida := (salida+1) mod n; recuento := recuento - 1; end;

Pgina 161 de 164

BIBLIOGRAF A

ALCALDE, Eduardo y otros. Introduccin a los Sistemas Operativos. Madrid: McGraw Hill, 1992. DEILEL, Harvey. Introduccin a los Sistemas Operativos. E.U.A: Addison Wesley, 1993. MILENKOVIC, Milan. Sistemas Operativos, Conceptos y Diseo. Mxico: McGraw Hill, 1994. TANENBAUM, Andrew. Sistemas Operativos Distribuidos . Mxico: Prentice Hall, 1996. TANENBAUM, Andrew. Sistemas Operativos Modernos. Mxico: Prentice Hall, 1992.

Pgina 162 de 164

ND ICE AL F ABT IC O
A
Acceso directo................................................. 38, 127 Acceso directo a memoria............. 29, 30, 106, 107, 127 Acceso secuencial................................................... 38 Administracin de CPU............................................................... 48 de Datos.............................................................. 33 de Dispositivos.................................................... 40 de Memoria......................................................... 52 Ajuste.................................................51, 64, 138, 139 Ajuste rpido.......................................................... 64 Algoritmo ...17, 18, 25, 26, 28, 33, 37, 39, 41, 44, 48, 49, 50, 51, 52, 56, 57, 58, 62, 6 3, 64, 67, 69, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 85, 86, 87, 96, 102, 104, 118, 119, 124, 128, 132, 134, 136, 138, 139, 141, 143, 144, 146, 152, 154, 155, 158, 160, 161 Almacenamiento..................................................... 99 API ..................................................................... 113 Archivos................................................ 9, 28, 34, 118 Auditora ............................................................... 95

H
Hardware...................................21, 113, 117, 133, 151 Hebras............................................................ 25, 114

I
Interbloqueo......... 67, 68, 83, 85, 86, 137, 139, 140, 142 Interrupciones ............11, 19, 21, 26, 29, 31, 32, 33, 127

J
JOIN .................................................................... . 68

L
LFU ..........................................................63, 64, 131 Linux.........................121, 122, 123, 124, 125, 145, 156 Localidad............................................................... 61 Lock..........................................................67, 72, 159 Look .................................................................... . 45 LRU..........................................59, 131, 138, 139, 143

B
Batch.............................................. 130, 133, 151, 156 Best Fit........................................................... 64, 138 Bits adicionales ...................................................... 63 Buffers......................................27, 73, 74, 77, 82, 131

M
Matriz de accesos........................................91, 94, 149 Mejor en Ajustarse........................................... 64, 138 Memoria.............. 53, 105 , 130, 133, 138, 141, 151, 152 Localidad.................................................... 37, 60, 61 Paginacin ........................................56, 115, 138, 140 Segmentacin....................................55, 115, 138, 140 Swapping........................................................ 54, 142 Virtual............................................................ 53, 130 Memoria Virtual................................................... 130 Memory Manager Unit ................................. 54, 57, 59 MFU ..................................................................... 64 MMU......................................................... 54, 57, 59 Monitor residente.................................................. 129 Monitores ............................ 79, 97, 112, 113, 129, 159 Monoprogramacin............................11, 131, 133, 151 Multiprogramables......................11, 130, 131, 133, 151

C
Caballo de Troya ........................................... 148, 153 Cach........................................................... 106, 110 Cclico.................................................................. . 58 Cifrado ...............................95, 119, 120, 148, 149, 153 C- Look.................................................................. 45 Comunicacin ...................................9, 13, 17, 75, 104 Concurrencia ........................................................ 128 Conjunto de trabajo................................................. 61 Contexto . 50, 91, 103, 104, 113, 124, 126, 128, 129, 136, 137, 138, 145, 154, 158 Criptografa.........................95, 119, 120, 148, 149, 153 C-SCAN...........................................................44 , 45

N
Netware.....................108, 109, 110, 111, 112, 125, 156 Nominacin ........................................................... 88

D
Deadlocks............ 67, 68, 83, 85, 86, 137, 139, 140, 142 Dekker..............................................................70 , 71 Desempeo ................................................. 26, 45, 51 Directorios...................................................... 35, 106 Discos............................................................ 43, 156 Dispo sitivos........................................33, 40, 106, 127 Distribuidos ......................................................... 162 DMA.......................................... 29, 30, 106, 107, 127 Dominio .............. 94, 116, 120, 145, 147, 148, 149, 153 Dominios de proteccin.................................... 94, 145

P
Paginacin ........................................56, 115, 138, 140 PARBEGIN .......................................................... . 68 PAREND............................................................... 68 PCB ...................................................... 20, 22, 24, 49 Peor ajuste............................................... 64, 141, 152 Peterson............................................................69 , 71 Planificacin de CPU............................................................... 48 de Memoria......................................................... 52 de Procesos......................................................... 16 Planificaciones ......................... 43, 44, 45, 50, 133, 151 Bits adicionales.................................................... 63 Cclico............................................................... . 58 C-SCAN........................................................44 , 45 Eschenbach ......................................................... 45 FCFS.. 40, 43, 44, 48, 49, 50, 128, 129, 132, 134, 135, 154 FIFO.. 49, 50, 58, 63, 64, 104, 131, 138, 139, 143, 144, 160 LFU........................................................63, 64, 131 LRU .......................................59, 131, 138, 139, 143 MFU.................................................................. . 64 Prioridades .......................................................... 19 Randmico ......................................................... . 58 Round Robin ................ 48, 50, 51, 128, 132, 133, 151

E
Eschenbach ............................................................ 45 Estructuras de Hardware........................................................ 98 de Sistema Operativo..................................... 97, 100

F
FCFS ..... 40, 43, 44, 48, 49, 50, 1 28, 129, 132, 134, 135, 154 FIFO ... 49, 58, 63, 64, 104, 131, 138, 139, 143, 144, 160 Firmware ............................................................7, 97 First Fit........................................................... 64, 138 FORK................................................................... . 68 Fragmentacin.......................................... 60, 141, 152

Pgina 163 de 164

SCAN............................................................44, 45 SCAN- N............................................................ . 44 Segunda oportunidad............................................ 63 SJF.........48, 49, 50, 128, 129, 132, 133, 135, 151, 157 SRT...............................................................48 , 49 SSTF....................................................... 43, 44, 45 Primero en Ajustarse........................................ 64, 138 Primitiva.... 17, 18, 25, 26, 28, 33, 37, 39, 41, 44, 48, 49, 50, 51, 52, 56, 57, 58, 62, 63, 64, 67, 69, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 85, 86, 87, 96, 102, 104, 118, 119, 124, 128, 132, 134, 136, 138, 139, 141, 143, 144, 146, 152, 154, 155, 158, 160, 161 Prioridades............................................. 24, 48, 72, 86 Interrupciones...................................................... 32 Planificaciones..................................................... 19 Procesos....................17, 18, 25, 72, 131, 133, 151, 157 Concurrencia ..................................................... 128 DeadLock............................................................ 83 Definicin ........................................................ 17 PCB...................................................... 24, 133, 151 Transicin de estados......................................... 19 Propietarios............................................................ 81 Proteccin................................................... 15, 37, 94

Sistemas . 10, 12, 13, 14, 97, 98, 100, 112, 131, 133, 141, 145, 146, 151, 152, 162 Batch ......................................10, 130, 133, 151, 156 Maestro Esclavo............................................ 76, 101 Multiprogramables...................11, 130, 131, 133, 151 Tiempo Real...................................................... 131 Sistemas Operativos Distribuidos......................................................... 14 Historia .............................................................. . 10 Servicios.......................................................... 9, 11 SJF............48, 49, 50, 128, 129, 132, 133, 135, 151, 157 Software............................................................... . 25 SRT .................................................................48 , 49 SSTF.......................................................... 43, 44, 45 Swapping........................................................ 54, 142

T
Thread................................................................ . 143 Tiempo Compartido ....................................... 133, 151 Tiempo Real......................................................... 131 Timesharing........................................... 129, 133, 151 Transicin..................................................... 133, 151 Transicin de estados de dispositivos..................................................... 28 de procesos.......................................................... 19 Trustees.............................................................. . 111

R
Randmico............................................................. 58 Recursos............................................................... . 48 Registro ............................................................... 103 Round Robin ................... 48, 50, 51, 128, 132, 133, 151 RPC.............................................................. . 79, 100

U
Unix ....34, 39, 40, 97, 102, 104, 105, 106, 121, 123, 124, 126, 137, 145, 150 Unlock..............................................................67, 72

S
SCAN...............................................................44, 45 SCAN- N............................................................... . 44 Seccin Crtica ..................................67, 69, 70, 71, 72 Segmentacin....................................55, 115, 138, 140 Seguridad. 91, 93, 109, 111, 118, 119, 145, 146, 148, 153 Semforos....................................................... 72, 105 Signal ...................................... 67, 72, 73, 77, 159, 160 Siguiente en Ajustarse............................................. 64 Sincronizacin...................................... 17, 68, 71, 109 Sistema de Archivos.............................................. 118

V
Vigilancia ............................................................. . 93 Virtual........................................................ 51, 55, 56

W
Wait .................................... 27, 28, 67, 72, 73, 77, 159 Windows ....112, 113, 114, 116, 117, 118, 119, 120, 145, 155, 156 Windows 2000 ......................... 116, 117, 118, 119, 120 Windows NT .....................113, 114, 116, 118, 145, 156

Pgina 164 de 164

Potrebbero piacerti anche