Vous êtes sur la page 1sur 76

LIC.

EN SISTEMAS COMPUTACIONALES

SISTEMAS OPERATIVOS
Universidad Cultural
Lic. Alfredo Trujillo bentez

[2011]

ALFREDO.TRUJILLO@YAHOO.COM.MX

SISTEMAS OPERATIVOS I CENTRO CULTURAL UNIDAD I PRINCIPIOS DE SISTEMAS OPERATIVOS ............................................. 5 Definicin ..................................................................................................................... 5 Evolucin de los sistemas operativos. .......................................................................... 5 Procesamiento Serie. ................................................................................................ 6 Procesamiento por lotes ............................................................................................ 7 Multiprogramacin ................................................................................................... 8 Sistemas operativos distribuidos .............................................................................. 9 Tipos de Sistemas Operativos....................................................................................... 9 Sistemas Operativos por Servicios (Visin Externa). .............................................. 9 Sistemas Operativos por su Estructura (Visin Interna). ....................................... 11 Sistemas Operativos por la Forma de Ofrecer sus Servicios .................................. 14 Caractersticas de los sistemas operativos .................................................................. 15 Procesos ...................................................................................................................... 16 Ncleo o Kernel y niveles de un Sistema Operativo. ................................................. 19 Gestin de Procesos ................................................................................................ 20 Gestin de la memoria ............................................................................................ 25 Gestin del Almacenamiento Secundario............................................................... 33 El Sistema de Entrada-Salida ................................................................................. 33 Sistema de Archivos ............................................................................................... 35 Unidad II ADMINISTRACION DE LA MEMORIA .................................................... 40 Introduccin ................................................................................................................ 40 Concepto ................................................................................................................. 40 Polticas y Filosofa de la Administracin de la Memoria. .................................... 40 Mecanismos de Asignacin. ....................................................................................... 40 Estrategias de Asignacin........................................................................................... 40 Mtodos de Asignacin de Memoria. ......................................................................... 41 Segmentacin. ........................................................................................................ 41 Validacin del Direccionamiento (Segmentacin) ................................................. 41 Paginacin .............................................................................................................. 42 OPCIONES DE IMPLEMENTACION DE LA TABLA DE PAGINAS .............. 43 Direccionamiento MS-DOS ................................................................................... 43 WINDOWS ............................................................................................................ 44 Segmentacin/Paginacin........................................................................................... 46 Segmentacin MS-DOS ......................................................................................... 47 TAMAO MAXIMO DE SEGMENTO. .............................................................. 47 TIPOS DE SEGMENTOS ...................................................................................... 47 MEMORIA VIRTUAL. ......................................................................................... 47 ESQUEMA BASICO. ............................................................................................ 47 TECNICAS DE CARGA. ...................................................................................... 48 ALGORITMOS DE DESCARGA (REEMPLAZO). ............................................ 48 ESQUEMA PAGINADO WINDOWS '95 ............................................................ 48 UNIDAD III.- METODOS PARA COMPARTIR RECURSOS DE SOFTWARE ...... 50 INTRODUCCION ...................................................................................................... 50 REQUISITOS ............................................................................................................. 50 PROCESOS REENTRANTES. ................................................................................. 50 RECURSOS COMPARTIDOS ASIGNADOS ESTATICAMENTE. ....................... 50 RECURSOS COMPARTIDOS ASIGNADOS DINAMICAMENTE. ..................... 50 MTODOS PARA LA COMPARTICION DE RECURSOS DE SOFTWARE....... 50 SEGMENTOS COMPARTIDOS. ......................................................................... 51 PAGINAS COMPARTIDAS. ................................................................................ 51

Lic. Alfredo Trujillo Bentez

Pg. 2 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL UNIDAD IV. MECANISMOS DE PROTECCION ...................................................... 54 INTRODUCCION. ..................................................................................................... 54 FUNCIONES DE UN SISTEMA DE PROTECCIN. ............................................. 54 MECANISMOS Y POLTICAS. (LIMITACIONES) ............................................... 54 DOMINIO DE PROTECCIN. ................................................................................. 54 IMPLANTACION DE MATRICES CON DERECHOS DE ACCESO. .................. 55 ESTRUCTURAS DE PROTECCIN DINAMICAS................................................ 56 DERECHO DE ACCESO COPIA. ........................................................................ 56 DERECHO DE ACCESO CAMBIO. .................................................................... 57 MECANISMOS DE PROTECION DE WINDOWS '95 ........................................... 58 PROTECCION DE MEMORIA ............................................................................ 58 PROTECCION DE DISPOSITIVOS ..................................................................... 58 PROTECCION DEL SISTEMA OPERATIVO .................................................... 58 UNIDAD V. ADMINISTRACION DE ARCHIVOS .................................................... 59 INTRODUCCION ...................................................................................................... 59 ARCHIVO FISICO. ............................................................................................... 59 ARCHIVO LOGICO. ............................................................................................. 59 EL SISTEMA DE ARCHIVOS DE UN SISTEMA OPERATIVO. ......................... 59 COMPONENTES DEL SISTEMA DE ARCHIVOS. ........................................... 59 ORGANIZACIN DE ARCHIVOS. ..................................................................... 60 UNIDAD II SISTEMA OPERATIVO MS-DOS ........................................................... 66 El BIOS ...................................................................................................................... 66 COMO ARRANCA EL DOS ..................................................................................... 66 USO DE LA MEMORIA ........................................................................................... 66 Direcciones de segmento y desplazamiento ............................................................... 66 El conjunto de registros del PC .................................................................................. 66 MODELOS DE MEMORIA ...................................................................................... 66 INTERRUPCIONES .................................................................................................. 66 Uso de los servicios del DOS ..................................................................................... 66 EL SISTEMA DE ARCHIVOS DEL DOS (PAG. 307 PC INTERNO).................... 66 COMPRESIN DE ARCHIVOS............................................................................... 66 UNIDAD III COMANDOS DEL MS-DOS................................................................... 66 Comandos internos ..................................................................................................... 66 Comandos externos .................................................................................................... 66 Archivos de lotes o Batch ........................................................................................... 66 Uso del config.sys ...................................................................................................... 66 Uso del autoexec.bat ................................................................................................... 66 UNIDAD IV UTILERIAS DEL DOS ............................................................................ 66 DEFRAG .................................................................................................................... 66 SCAN ......................................................................................................................... 66 ENSAMBLADOR .......................................................................................................... 66 SEGMENTOS Y DIRECCIONAMIENTO ............................................................... 67 Segmento de cdigo (CS) ....................................................................................... 67 Segmento de Datos(DS) ......................................................................................... 67 Segmento de pila(SS) ............................................................................................. 67 Lmites de los segmentos ........................................................................................ 67 REGISTROS .............................................................................................................. 70 REGISTRO CS ....................................................................................................... 70 REGISTRO DS ...................................................................................................... 70 REGISTRO SS ....................................................................................................... 70

Lic. Alfredo Trujillo Bentez

Pg. 3 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL REGISTRO APUNTADOR DE INSTRUCCIONES (IP) ..................................... 71 REGISTROS APUNTADOR (SP)......................................................................... 71 REGISTROS DE PROPOSITO GENERAL. ............................................................. 71 REGISTRO AX ...................................................................................................... 71 REGISTRO BX ...................................................................................................... 71 REGISTRO CX ...................................................................................................... 71 REGISTRO DX ...................................................................................................... 71 REGISTROS INDICE ................................................................................................ 72 REGISTROS SI ...................................................................................................... 72 REGISTROS DI ..................................................................................................... 72 REGISTRO DE BANDERAS .................................................................................... 72 PROGRAMACION EN EL SISTEMA OPERATIVO .................................................. 73 Creando Un programa con DEBUG ........................................................................... 73 Comandos de DEBUG ........................................................................................... 73 DESPLIEGUE DE DEBUG ....................................................................................... 73 Introducir un programa en cdigo mquina ............................................................... 73 Introducir un programa simblico en ensamblador .................................................... 74 LA INSTRUCCIN INT ........................................................................................... 74 INSTRUCCIONES DE ENSAMBLADOR ............................................................... 74 Directivas ................................................................................................................ 75 Directiva Page......................................................................................................... 75 Directiva Title ......................................................................................................... 75 Directiva Segment .................................................................................................. 75 Directiva proc ......................................................................................................... 75 Directiva assume..................................................................................................... 75 Definicin de Sistema Operativo ................................ Error! Marcador no definido. Clasificacin de los Sistemas Operativos ................... Error! Marcador no definido. Cmo funciona un Sistema Operativo ........................ Error! Marcador no definido. Cmo se utiliza un Sistema Operativo ....................... Error! Marcador no definido. Ejemplos de Sistema Operativo .................................. Error! Marcador no definido. Familia Windows.................................................... Error! Marcador no definido. Familia Macintosh .................................................. Error! Marcador no definido. Familia UNIX ......................................................... Error! Marcador no definido.

Lic. Alfredo Trujillo Bentez

Pg. 4 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL SISTEMAS OPERATIVOS

UNIDAD I OPERATIVOS

PRINCIPIOS

DE

SISTEMAS

Definicin Un sistema operativo puede ser contemplado como una coleccin organizada de programas pequeos llamados sub rutinas o servicios, los cuales realizan una funcin de control especfica en la computadora. Todos ellos conforman el sistema operativo Los programas invocan generalmente los servicios del sistema operativo por medio de llamadas al sistema operativo. Adems los usuarios pueden interactuar con el sistema operativo directamente por medio de rdenes del sistema operativo. En cualquier caso, el sistema operativo acta como interfaz entre los usuarios y el hardware de un sistema informtico. En general, el objetivo primario de los sistemas operativos es incrementar la productividad de un recurso de proceso tal como el hardware o los usuarios del sistema. Evolucin de los sistemas operativos. Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales caractersticas de un Sistema Operativo contemporneo, es til considerar como han ido evolucionando stos con el tiempo. A finales de los 40's el uso de computadoras estaba restringido a aquellas empresas o instituciones que podan pagar su alto precio, y no existan los sistemas operativos. En su lugar, el programador deba tener un conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, deba examinar los valores de los registros y pneles de luces indicadoras del estado de la computadora para determinar la causa del fallo y poder corregir su programa, adems de enfrentarse nuevamente a los procedimientos de apartar tiempo del sistema y poner a punto los compiladores, ligadores, etc; para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serial ( serial processing ). La importancia de los sistemas operativos nace histricamente desde los 50's, cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generacin y luego por medio del trabajo en lote en la segunda generacin se poda mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las caractersticas contempladas en la definicin de lo que es un programa. Es decir, se comenz a ver que las tareas mismas del operador podan plasmarse en un programa, el cual a travs del tiempo y por su enorme complejidad se le llam "Sistema Operativo". As, tenemos entre los primeros sistemas operativos al Fortran Monitor System ( FMS ) e IBSYS. Posteriormente, en la tercera generacin de computadoras nace uno de los primeros sistemas operativos con la filosofa de administrar una familia de computadoras: el OS/360 de IBM. Fue este un proyecto tan novedoso y ambicioso que enfrent por primera vez una serie de problemas conflictivos debido a que anteriormente las computadoras eran creadas para dos propsitos en general: el comercial y el cientfico. As, al tratar de crear un solo sistema operativo para computadoras que podan dedicarse a un propsito, al otro o ambos, puso en evidencia la problemtica del trabajo en equipos de anlisis, diseo e implantacin de sistemas grandes. El resultado fue un sistema del cual uno de sus mismos diseadores patentiz

Lic. Alfredo Trujillo Bentez

Pg. 5 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL su opinin en la portada de un libro: una horda de bestias prehistricas atascadas en un foso de brea. Surge tambin en la tercera generacin de computadoras el concepto de la multiprogramacin, porque debido al alto costo de las computadoras era necesario idear un esquema de trabajo que mantuviese a la unidad central de procesamiento ms tiempo ocupada, as como el encolado (spooling ) de trabajos para su lectura hacia los lugares libres de memoria o la escritura de resultados. Sin embargo, se puede afirmar que los sistemas durante la tercera generacin siguieron siendo bsicamente sistemas de lote. En la cuarta generacin la electrnica avanza hacia la integracin a gran escala, pudiendo crear circuitos con miles de transistores en un centmetro cuadrado de silicn y ya es posible hablar de las computadoras personales y las estaciones de trabajo. Surgen los conceptos de interfaces amigables intentando as atraer al pblico en general al uso de las computadoras como herramientas cotidianas. Se hacen populares el MSDOS y UNIX en estas mquinas. Tambin es comn encontrar clones de computadoras personales y una multitud de empresas pequeas ensamblndolas por todo el mundo. Para mediados de los 80's, comienza el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. La red mundial Internet se va haciendo accesible a toda clase de instituciones y se comienzan a dar muchas soluciones ( y problemas ) al querer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. Para los 90's el paradigma de la programacin orientada a objetos cobra auge, as como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan crearse para ser ejecutadas en una plataforma especfica y poder ver sus resultados en la pantalla o monitor de otra diferente (por ejemplo, ejecutar una simulacin en una mquina con UNIX y ver los resultados en otra con DOS ). Los niveles de interaccin se van haciendo cada vez ms profundos. Un sistema operativo puede procesar su carga de trabajo de forma serie o de forma concurrente. Es decir, los recursos del sistema informtico pueden estar dedicados a un solo programa hasta que este termine, o pueden ser reasignados dinmicamente entre una coleccin de programas activos en diferentes etapas de ejecucin. Debido a su capacidad de ejecutar mltiples programas de forma intercalada, a tales sistemas operativos se les denomina con frecuencia sistemas de multiprogramacin. Existen diferentes variaciones de ambos tipos de sistemas operativos, serie y multigrado. Procesamiento Serie. En teora, todo sistema puede ser programado en su lenguaje mquina, sin necesidad de soporte de software de sistema. La programacin de la mquina <<desnuda>> fue costumbre en los sistemas informticos primitivos. Una versin ligeramente mas avanzada de este modo de operacin es habitual con las tarjetas de evaluacin simple que a veces se utilizan en cursos introductorias de diseo de computadoras. Inicialmente, el programador tena que cambiar el cdigo mquina cada vez que necesitaba que la computadora realizara una tarea especfica, por tal motivo, comenz a generar pequeos programas a travs de pseudo cdigos para que fuera mas sencilla la forma de ejecutarlas, aunque representa una mejora definitiva con respecto a la utilizacin del cdigo mquina, obviamente este modo de operacin no es muy eficaz. La ejecucin en el sistema informtico puede requerir la carga manual frecuentemente de programas y datos. Esto repercute en la baja utilizacin de los recursos del sistema.

Lic. Alfredo Trujillo Bentez

Pg. 6 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL La productividad de los usuarios, especialmente en entornos multiusuario, es baja ya que los usuarios deben esperar su turno ante la mquina. Procesamiento por lotes El siguiente paso lgico en la evolucin de los sistemas operativos fue automatizar la secuencia de operaciones involucradas en la ejecucin de un programa y los aspectos mecnicos del desarrollo de programas. El propsito era incrementar la utilizacin de los recursos del sistema y la productividad del programador mediante la reduccin o eliminacin de los tiempos muertos de los componentes ocasionados por las comparativamente lentas operaciones manuales. Operaciones auxiliares tales como montar cintas y rellenar largos formularios, incluso cuando se automatizaron, tardaban demasiado tiempo comparado con las velocidades del procesador y de la memoria. Como no se poda hacer mucho por reducir estas operaciones, haba que intentar incrementar el rendimiento del sistema dividiendo este tiempo de preparacin entre una serie de programas. Para sacar provecho al potencial de utilizacin de recursos del procesamiento de lotes, un lote de trabajos debe de ejecutarse automticamente sin la lenta intervencin humana. Una parte residente en memoria del sistema operativo por lotes ( llamado monitor de lotes ) , lee, interpreta y ejecuta estas rdenes. Formas mas sofisticadas de almacenamiento de E/S, llamadas SPOOL (Simultaneous peripheral Operations Online, operaciones simultaneas sobre perifricos en lnea), utilizan discos para almacenar temporalmente la entrada y salida de los trabajos. Las operaciones de tarjeta-a-disco y disco-a-impresora para los programas posteriores y anteriores, respectivamente, son realizadas por el monitor de SPOOL concurrentemente con la ejecucin del programa actual. Tanto la entrada como la salida de varios trabajos pueden ser dispuestas en cola en el disco segn sea necesario para sostener elevadas tasas de utilizacin del procesador. La planificacin en sistemas por lotes es muy sencilla. Los trabajos son tpicamente procesados en rden de llegada, es decir, en modo primero en llegar, primero en ejecutarse, a veces se emplean algunas otras ordenaciones de los trabajos, tales como la de primero el trabajo mas corto, para obtener una distribucin mas equilibrada de los tiempos de retorno. La gestin de memoria en sistemas de lotes es tambien muy sencilla . La memoria se suele dividir en dos reas. Una de ellas esta permanentemente ocupada por la parte residente del sistema operativo, y la otra es utilizada para cargar programas transitorios durante su ejecucin. Cuando un programa transitorio termina, se carga un nuevo programa en el mismo rea de memoria. Puesto que en cada momento hay como mximo un programa en ejecucin, los sistemas de lotes no requieren ninguna gestin de dispositivos crtica en el tiempo. Por esta razn, muchos sistemas operativos por lotes y serie utilizan el sencillo mtodo de E/S controlada por programa que describe en el captulo 9. La falta de competencia por los dispositivos de E/S hace que su asignacin y designacin sea trivial. Los sistemas por lotes suelen proporcionar formas sencillas de gestin de archivos. Puesto que el acceso a los archivos es tambin serie, se requiere poca proteccin y ningn control de concurrencia para tal acceso.

Lic. Alfredo Trujillo Bentez

Pg. 7 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Multiprogramacin La ejecucin serie de los programas provoca que o bien el procesador o bien los dispositivos de E/S se encuentren inactivos en algn momento incluso cuando el flujo de trabajos a la entrada nunca esta vacio. Un modo de abordar este problema es asignar alguna otra tarea al procesador y a los dispositivos de E/S cuando de otro modo se vayan a encontrar inactivo, si se permite que los programas se ejecuten concurrentemente, pueden proporcionarse amplios suministros de trabajos pendientes para que sean asignados a los componentes infrautilizados. Programa 1 Programa 2

Comienza con el procesador ejecutando la primera secuencia computacional del programa 1. En vez de permanecer inactivo durante la posterior secuencia de E/S del programa 1, el procesador es asignado a la primera secuencia del programa 2, que se supone que se encuentra en memoria y esperando ser ejecutado. Cuando este trabajo termina, el procesador es asignado al programa 1 de nuevo, luego al programa 2, y as sucesivamente. A una instancia de un programa en ejecucin se le denomina proceso o tarea. Un sistema operativo multitarea se distingue por su capacidad para soportar la ejecucin concurrente de dos o mas procesos activos. La multitarea se implementa generalmente mantenindole cdigo y los datos de varios procesos simultneamente en memoria, y multiplexando el procesador y los dispositivos de E/S entre ellos. La multitarea suele asociarse con soporte hardware y software para proteccin de memoria con el fin de evitar que procesos erroneos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes. El trmino multiprogramacin designa a un sistema operativo que, ademas de soportar multitarea, proporciona formas sofisticadas de proteccin de memoria y fuerza el control de la concurrencia cuando los procesos acceden a dispositivos de E/S y archivos compartidos. Los sistemas operativos multiprogramacin soportan generalmente mltiples usuarios, en cuyo caso tambin se les denomina sistemas multiusuarios. En general, la multiprogramacin implica multitarea, pero la multitarea no implica multiprogramacin. Sistemas de tiempo compartido.-Uno de los objetivos esenciales de los sistemas multiusuario en general, y de los de tiempo compartido en particular, es el de proporcionar un buen tiempo de respuesta de Terminal. Dando la ilusin a cada usuario de disponer de una mquina para s mismo, los sistemas de tiempo compartido intentan con frecuencia lograr una utilizacin compartida equitativa de los recursos comunes, la mayora de los sistemas de tiempo compartido utilizan una planificacin por reparto circular del tiempo. Con el fin de evitar que los programas monopolicen el procesador, un programa que se ejecute durante mas tiempo que el intervalo definido por el sistema, es interrumpido por el sistema operativo y colocado al final de la cola de programas en espera. Sistemas de tiempo real.-Este tipo de sistema se utilizan en entornos en donde deban ser aceptados y procesados un gran nmero de sucesos, la mayora externos al sistema informtico, en breve tiempo o dentro de ciertos plazos. Los procesos de mayor prioridad expropian generalmente la ejecucin de los procesos de prioridad inferior. Esta forma de planificacin llamada planificacin expropiativa basada en prioridades, es utilizada por la mayora de los sistemas de tiempo real. La gestin de memoria en

Lic. Alfredo Trujillo Bentez

Pg. 8 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL sistemas de tiempo real es comparativamente menos exigente que en otros tipos de sistemas de multiprogramacin Sistemas operativos distribuidos Es una coleccin de sistemas informticos autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software. Este tipo de sistemas proporcionan medios para compartir todos sus recursos, tambin puede permitir el acceso a recursos remotos. Tipos de Sistemas Operativos Sistemas Operativos por Servicios (Visin Externa).
Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del usuario final. Esta clasificacin se comprende fcilmente con el cuadro sinptico que a continuacin se muestra:

Por Nmero de Usuarios:


Sistema Operativo Monousuario.
Los sistemas operativos monousuarios son aqullos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln.

Lic. Alfredo Trujillo Bentez

Pg. 9 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


En otras palabras los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se est ejecutando.

Sistema Operativo Multiusuario.


Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. En esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Por el Nmero de Tareas:


Sistema Operativo Monotarea.
Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Los sistemas operativos monotareas son ms primitivos y, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una.

Sistema Operativo Multitarea.


Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se est procesando la aplicacin que se encuentra en primer plano (la que ve el usuario. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin est esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Un sistema operativo multitarea puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico en un proceso en background. Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para el usuario, mejorando su productividad. Un sistema operativo multitarea se distingue por su capacidad para soportar la ejecucin concurrente de dos o ms procesos activos. La multitarea se implementa generalmente manteniendo el cdigo y los datos de varios procesos simultneamente en memoria y multiplexando el procesador y los dispositivos de E/S entre ellos.

Lic. Alfredo Trujillo Bentez

Pg. 10 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


La multitarea suele asociarse con soporte hardware y software para proteccin de memoria con el fin de evitar que procesos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes.

Por el Nmero de Procesadores:


Sistema Operativo de Uniproceso.
Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS.

Sistema Operativo de Multiproceso.


Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o asimtricamente. Asimtrica.-Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Simtrica.-Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a cual quiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un rea de memoria, un conjunto de registros con valores especficos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial.

Sistemas Operativos por su Estructura (Visin Interna).


Segn, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al que se le quiere destinar. Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. A continuacin se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.

Lic. Alfredo Trujillo Bentez

Pg. 11 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Estructura Monoltica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este tipo de estructura son: Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

Estructura Jerrquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles. Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categora.

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings".

Lic. Alfredo Trujillo Bentez

Pg. 12 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas.

Mquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes. El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina extendida al usuario

Lic. Alfredo Trujillo Bentez

Pg. 13 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Cliente-Servidor(Microkernel).
El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o pequeas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNIX que contempla en su diseo este paradigma.

Sistemas Operativos por la Forma de Ofrecer sus Servicios


Esta clasificacin tambin se refiere a una visin externa, que en este caso se refiere a la del usuario, el cmo accesa a los servicios. Bajo esta clasificacin se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.

Sistema Operativo de Red.


Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras a travs de un medio de transmisin con el objeto de intercambiar informacin, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, adems de la ubicacin de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivomatriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podra copiarlo a travs de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo%. En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecut el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos Distribuidos.


Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola mquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicacin de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de

Lic. Alfredo Trujillo Bentez

Pg. 14 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


trabajo habitual. Todo lo anterior es el marco terico de lo que se deseara tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la proteccin y seguridad entre los diferentes componentes del sistema y los usuarios. Los avances tecnolgicos en las redes de rea local y la creacin de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autnoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en clculo en unidades ms pequeas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando as una mquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los dems recursos como una sola entidad en forma transparente se le llama sistema operativo distribudo. Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad ( debido a que los problemas a resolver son inherentemente distribuidos ) o porque se desea tener ms confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automticos en diferentes estados de la repblica. Ah no es posible ni eficiente mantener un control centralizado, es ms, no existe capacidad de cmputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de informacin en disco duro con una alta confiabilidad y disponibilidad. La solucin puede ser que para cada grupo de trabajo se asigne una particin de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino slo a unos cuantos y, ms an, se podra tener un sistema con discos en espejo ( mirror ) a travs de la red, de manera que si un servidor se cae, el servidor en espejo contina trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Caractersticas de los sistemas operativos


Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera ms eficiente posible. Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera. Organizar datos para acceso rpido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras. Procesamiento por bytes de flujo a travs del bus de datos.

Lic. Alfredo Trujillo Bentez

Pg. 15 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. Tcnicas de recuperacin de errores. Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informndoles si esa aplicacin esta siendo ocupada por otro usuario. Generacin de estadsticas. Permite que se puedan compartir el hardware y los datos entre los usuarios.

Procesos

Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecucin junto con el entorno asociado (registros, variables ,etc.). El corazn de un sistema operativo es el ncleo, un programa de control que reacciona ante cualquier interrupcin de eventos externos y que da servicio a los procesos, crendolos, terminndolos y respondiendo a cualquier peticin de servicio por parte de los mismos. Planificacin del Procesador. La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de ejecucin y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. Caracteristicas a considerar de los Procesos. No todos los equipos de cmputo procesan el mismo tipo de trabajos, y un algoritmo de planificacin que en un sistema funciona excelente puede dar un rendimiento psimo en otro cuyos procesos tienen caractersticas diferentes. Estas caractersticas pueden ser: Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida (aplicaciones de bases de datos, por ejemplo). Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con matrices. Procesos de Lote o Interactivos: Un proceso de lote es ms eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo (no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea datos) por las respuestas de los usuarios. Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecucin. Longevidad de los Procesos: Existen procesos que tpicamente requerirn varias horas para finalizar su labor, mientras que existen otros que solo necesitan algunos segundos. Un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa. El Bloque de Control de Procesos (PCB). Un proceso se representa desde el punto de vista del sistema operativo, por un conjunto de datos donde se incluyen el estado en cada momento, recursos utilizados, registros, etc.,

Lic. Alfredo Trujillo Bentez

Pg. 16 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


denominado Bloque de Control de Procesos (PCB). Los objetivos del bloque de control de procesos son los siguientes: Localizacin de la informacin sobre el proceso por parte del sistema operativo. Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecucin o reanudarla. La informacin contenida en el bloque de control es la siguiente: Estado del proceso. Informacin relativa al contenido del controlador del programa (Program Counter, PC), estado de procesador en cuanto a prioridad del proceso, modo de ejecucin, etc., y por ultimo el estado de los registros internos de la computadora. Estadsticas de tiempo y ocupacin de recursos para la gestin de la planificacin del procesador. Ocupacin de memoria interna y externa para el intercambio (swapping). Recursos en uso (normalmente unidades de entrada/salida). Archivos en uso. Privilegios. Estas informaciones se encuentran en memoria principal en disco y se accede a ellas en los momentos en que se hace necesaria su actualizacin o consulta. Los datos relativos al estado del proceso siempre se encuentran en memoria principal. Existe un Bloque de Control de Sistema (SCB) con objetivos similares al anterior y entre los que se encuentra el enlazado de los bloques de control de procesos existentes en el sistema. 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. Estado de los Procesos. Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados de los procesos son internos del sistema operativo y transparentes al usuario. Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos. 1.- Estados activos: Son aquellos que compiten con el procesador o estn en condiciones de hacerlo. Se dividen en: Ejecucin. Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado slo lo puede tener un proceso. Preparado. Aquellos procesos que estn dispuestos para ser ejecutados, pero no estn en ejecucin por alguna causa (Interrupcin, haber entrado en cola estando otro proceso en ejecucin, etc.). Bloqueado. Son los procesos que no pueden ejecutarse de momento por necesitar algn recurso no disponible (generalmente recursos de entrada/salida). 2.- Estados inactivos: Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a ejecutarse desde el principio. Son de dos tipos: Suspendido bloqueado. Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas de su bloqueo.

Lic. Alfredo Trujillo Bentez

Pg. 17 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


Suspendido programado. Es el proceso que han sido suspendido, pero no tiene causa parta estar bloqueado. Operaciones sobre procesos. Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es el de la manipulacin de los procesos. Las operaciones que se pueden hacer sobre un proceso son las siguientes: Crear el proceso. Se produce con la orden de ejecucin del programa y suele necesitar varios argumentos, como el nombre y la prioridad del proceso. Aparece en este momento el PCB, que ser insertado en la cola de procesos preparados. La creacin de un proceso puede ser de dos tipos: Jerrquica. En ella, cada proceso que se crea es hijo del proceso creador y hereda el entorno de ejecucin de su padre. El primer proceso que ejecuta un usuario ser hijo del intrprete de comandos con el que interacta. No jerrquica. Cada proceso creado por otro proceso se ejecuta independientemente de su creador con un entorno diferente. Es un tipo de creacin que no suele darse en los sistemas operativos actuales. Destruir un proceso. Se trata de la orden de eliminacin del proceso con la cual el sistema operativo destruye su PCB. Suspender un proceso. Es un proceso de alta prioridad que paraliza un proceso que puede ser reanudado posteriormente. Suele utilizarse en ocasiones de mal funcionamiento o sobrecarga del sistema. Reanudar un proceso. Trata de activar un proceso que a sido previamente suspendido. Cambiar la prioridad de un proceso. Temporizar la ejecucin de un proceso. Hace que un determinado proceso se ejecute cada cierto tiempo (segundos, minutos, horas...) por etapas de una sola vez, pero transcurrido un periodo de tiempo fijo. Despertar un proceso. Es una forma de desbloquear un proceso que habr sido bloqueado previamente por temporizacin o cualquier otra causa. Prioridades Todo proceso por sus caractersticas e importancia lleva aparejadas unas determinadas necesidades de ejecucin en cuanto a urgencia y asignacin de recursos. Las prioridades segn los sistemas operativos se pueden clasificar del siguiente modo: Asignadas por el sistema operativo. Se trata de prioridades que son asignadas a un proceso en el momento de comenzar su ejecucin y dependen fundamentalmente de los privilegios de su propietario y del modo de ejecucin. Asignadas por el propietario. Estticas. Dinmicas. El Ncleo del Sistema Operativo. Todas las operaciones en las que participan procesos son controladas por la parte del sistema operativo denominada ncleo (nucleus, core o kernel, eningls). El ncleo normalmente representa slo una pequea parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal slo cuando se necesitan. Los ncleos se disean para realizar "el mnimo" posible de procesamiento en cada interrupcin y dejar que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el ncleo se habilita para atender otras interrupciones. El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar las siguientes funciones: Manejo de interrupciones.

Lic. Alfredo Trujillo Bentez

Pg. 18 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


Creacin y destruccin de procesos. Cambio de estado de los procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de los bloques de control de procesos. Apoyo para las actividades de entrada/salida. Apoyo para asignacin y liberacin de memoria. Apoyo para el sistema de archivos. Apoyo para el mecanismo de llamada y retorno de un procedimiento. Apoyo para ciertas funciones de contabilidad del sistema. Ncleo o Kernel y niveles de un Sistema Operativo. El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas: Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la gestin de memoria secundaria necesaria para la ejecucin de procesos. Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos. Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria. El ncleo y los procesos. El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. Los procesos relacionados con la entidad bsica de los sistemas operativos actuales: Los procesos. El esquema general del mismo es el siguiente: Definicin y concepto de proceso. El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del proceso.

Lic. Alfredo Trujillo Bentez

Pg. 19 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL


Estados por los que pasa un proceso a lo largo de su existencia en la computadora. Operaciones que se pueden realizar sobre un proceso. Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.

Gestin de Procesos Uno de los mdulos ms importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de cmputo. En esta seccin se revisarn dos temas que componen o conciernen a este mdulo: la planificacin del procesador y los problemas de concurrencia. Planificacin del procesador La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de ejecucin y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea nohay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. Niveles de planificacin En los sistemas de planificacin generalmente se identifican tres niveles: el alto, en medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya estn listos (y que en algn momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutndose en la unidad central de procesamiento. En este trabajo se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en ejecucin. Objetivos de la planificacin Una estrategia de planificacin debe buscar que los procesos obtengan sus turnos de ejecucin apropiadamente, conjuntamente con un buen rendimiento y minimizacin de la sobrecarga (overhead) del planificador mismo. En general, se buscan cinco objetivos principales: Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algn momento obtienen su turno de ejecucin o intervalos de tiempo de ejecucin hasta su terminacin exitosa. Maximizar la Produccin: El sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo. Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo. El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rpido y con cargas pesadas debe ir degradndose paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar. Caractersticas a considerar de los procesos No todos los equipos de cmputo procesan el mismo tipo de trabajos, y un algoritmo de planificacin que en un sistema funciona excelente puede dar un rendimiento psimo en otro cuyos procesos tienen caractersticas diferentes. Estas caractersticas pueden ser:

Lic. Alfredo Trujillo Bentez

Pg. 20 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida (aplicaciones de bases de datos, por ejemplo). Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con matrices. Procesos de Lote o Interactivos: Un proceso de lote es ms eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo (no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea datos) por las respuestas de los usuarios. Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecucin. Longevidad de los Procesos: Existen procesos que tpicamente requerirn varias horas para finalizar su labor, mientras que existen otros que solo necesitan algunos segundos. Planificacin apropiativa o no apropiativa (preemptive or not preemptive) La planificacin apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecucin ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. Este esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. Una planificacin no apropiativa es aquella en que existe un reloj que lanza interrupciones peridicas en las cuales el planificador toma el control y se decide si el mismo proceso seguir ejecutndose o se le da su turno a otro proceso. Este mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema. Por ejemplo en los sistemas UNIX existen los 'cronjobs' y 'atjobs', los cuales se programan en base a la hora, minuto, da del mes, da de la semana y da del ao. En una planificacin no apropiativa, un trabajo muy grande aplaza mucho a uno pequeo, y si entra un proceso de alta prioridad est tambin debe esperar a que termine el proceso actual en ejecucin. Asignacin del turno de ejecucin Los algoritmos de la capa baja para asignar el turno de ejecucin se describen a continuacin: Por prioridad: Los procesos de mayor prioridad se ejecutan primero. Si existen varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden ejecutarse estos de acuerdo a su orden de llegada o por 'round robin'. La ventaja de este algoritmo es que es flexible en cuanto a permitir que ciertos procesos se ejecuten primero e, incluso, por ms tiempo. Su desventaja es que puede provocar aplazamiento indefinido en los procesos de baja prioridad. Por ejemplo, suponga que existen procesos de prioridad 20 y procesos de prioridad 10. Si durante todo el da terminan procesos de prioridad 20 al mismo ritmo que entran otros con esa prioridad, el efecto es que los de prioridad 10 estarn esperando por siempre. Tambin provoca que el sistema sea impredecible para los procesos de baja prioridad. El trabajo ms corto primero: Es dificil de llevar a cabo porque se requiere saber o tener una estimacin de cunto tiempo necesita el proceso para terminar. Pero si se sabe, se ejecutan primero aquellos trabajos que necesitan menos tiempo y de esta manera se obtiene el mejor tiempo de respuesta promedio para todos los procesos. Por ejemplo, si llegan 5 procesos A,B,C,D y E cuyos tiempos de CPU son 26, 18, 24, 12 y 4 unidades de tiempo, se observa que el orden de ejecucin ser E,D,B,C y A (4,12,18, 24 y 26 unidades de tiempo respectivamente). En la tabla siguiente se muestra en que unidad de tiempo comienza a ejecutarse cada proceso y como todos comenzaron a esperar desde la unidad cero, se obtiene el tiempo promedio de espera. Proceso Espera desde Termina Tiempo de Espera

Lic. Alfredo Trujillo Bentez

Pg. 21 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL A044 B 0 16 16 C 0 34 34 D 0 58 58 E 0 84 84 Tiempo promedio = (4 + 16 + 34 + 58 + 84 )/5 = 39 unidades. El primero en llegar, primero en ejecutarse: Es muy simple, los procesos reciben su turno conforme llegan. La ventaja de este algoritmo es que es justo y no provoca aplazamiento indefinido. La desventaja es que no aprovecha ninguna caracterstica de los procesos y puede no servir para un proceso de tiempo real. Por ejemplo, el tiempo promedio de respuesta puede ser muy malo comparado con el logrado por el del trabajo ms corto primero. Retomando el mismo ejemplo que en el algoritmo anterior, obtenemos un tiempo de respuesta promedio (26+44+68+80+84)/5 = 60 unidades, el cual es muy superior a las 39 unidades que es el mejor tiempo posible. Round Robin: Tambin llamada por turno, consiste en darle a cada proceso un intervalo de tiempo de ejecucin (llamado time slice), y cada vez que se vence ese intervalo se copia el contexto del proceso a un lugar seguro y se le da su turno a otro proceso. Los procesos estn ordenados en una cola circular. Por ejemplo, si existen tres procesos, el A,B y C, dos repasadas del planificador daran sus turnos a los procesos en el orden A,B,C,A,B,C. La ventaja de este algoritmo es su simplicidad, es justo y no provoca aplazamiento indefinido. El tiempo restante ms corto: Es parecido al del trabajo ms corto primero, pero aqui se est calculando en todo momento cunto tiempo le resta para terminar a todos los procesos, incluyendo los nuevos, y aquel que le quede menos tiempo para finalizar es escogido para ejecutarse. La ventaja es que es muy til para sistemas de tiempo compartido porque se acerca mucho al mejor tiempo de respuesta, adems de responder dinmicamente a la longevidad de los procesos; su desventaja es que provoca ms sobrecarga porque el algoritmo es ms complejo. La tasa de respuesta ms alta: Este algoritmo concede el truno de ejecucin al proceso que produzca el valor mayor de la siguiente formula: tiempo que ha esperado + tiempo total para terminar valor = ___________________________________________ tiempo total para terminar. Es decir, que dinmicamente el valor se va modificando y mejora un poco las deficiencias del algoritmo del trabajo ms corto primero. Por poltica: Una forma de asignar el turno de ejecucin es por poltica, en la cual se establece algn reglamento especfico que el planificador debe obedecer. Por ejemplo, una poltica podra ser que todos los procesos reciban el mismo tiempo de uso de CPU en cualquier momento. Esto significa, por ejemplo, que si existen 2 procesos y han recibido 20 unidades de tiempo cada uno (tiempo acumulado en time slices de 5 unidades) y en este momento entra un tercer proceso, el planificador le dara inmediatamente el turno de ejecucin por 20 unidades de tiempo. Una vez que todos los procesos estn 'parejos' en uso de CPU, se les aplica 'round robin'. Problemas de Concurrencia En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que reparten el uso de CPU entre estos) se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. Imagine que un proceso est escribiendo en la unidad de cinta y se le termina su turno de ejecucin e inmediatamente despus el proceso elegido para ejecutarse comienza a escribir sobre la misma cinta. El resultado es una cinta cuyo contenido es un desastre de datos mezclados. As como la

Lic. Alfredo Trujillo Bentez

Pg. 22 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL cinta, existen una multitud de recursos cuyo acceso debe der controlado para evitar los problemas de la concurrencia. El sistema operativo debe ofrecer mecanismos para sincronizar la ejecucin de procesos: semforos, envo de mensajes, 'pipes', etc. 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. Para entender este y otros mecanismos es importante entender los problemas generales de concurrencia, los cuales se describen enseguida. Condiciones de Carrera o Competencia: La condicin de carrera (race condition) ocurre cuando dos o ms procesos accesan un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada. Suponga, por ejemplo, que dos clientes de un banco realizan cada uno una operacin en cajeros diferentes al mismo tiempo. El usuario A quiere hacer un depsito. El B un retiro. El usuario A comienza la transaccin y lee su saldo que es 1000. En ese momento pierde su turno de ejecucin (y su saldo queda como 1000) y el usuario B inicia el retiro: lee el saldo que es 1000, retira 200 y almacena el nuevo saldo que es 800 y termina. El turno de ejecucin regresa al usuario A el cual hace su depsito de 100, quedando saldo = saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se perdi y eso le encanta al usuario A y B, pero al banquero no le convino esta transaccin. El error pudo ser al revs, quedando el saldo final en 800. Postergacin o Aplazamiento Indefinido(a): Esto se mencion en el apartado anterior y consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de ejecucin para terminar su tarea. Por ejemplo, que un proceso ocupe un recurso y lo marque como 'ocupado' y que termine sin marcarlo como 'desocupado'. Si algn otro proceso pide ese recurso, lo ver 'ocupado' y esperar indefinidamente a que se 'desocupe'. Condicin de Espera Circular: Esto ocurre cuando dos o ms procesos forman una cadena de espera que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso 'disco'. En ese momento al proceso A se le ocurre pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahi se forma una espera circular entre esos dos procesos que se puede evitar quitndole a la fuerza un recurso a cualquiera de los dos procesos. Condicin de No Apropiacin: Esta condicin no resulta precisamente de la concurrencia, pero juega un papel importante en este ambiente. Esta condicin especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatrsele por ningn motivo, y estar disponible hasta que el proceso lo 'suelte' por su voluntad. Condicin de Espera Ocupada: Esta condicin consiste en que un proceso pide un recurso que ya est asignado a otro proceso y la condicin de no apropiacin se debe cumplir. Entonces el proceso estar gastando el resto de su time slice checando si el recurso fue liberado. Es decir, desperdicia su tiempo de ejecucin en esperar. La solucin ms comn a este problema consiste en que el sistema operativo se d cuenta de esta situacin y mande a una cola de espera al proceso, otorgndole inmediatamente el turno de ejecucin a otro proceso. Condicin de Exclusin Mutua: Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y despus lo deja de usar. A la seccin de cdigo que usa ese recurso se le llama 'regin crtica'. La condicin de exclusin mutua establece que solamente se permite a un proceso estar dentro de la misma regin crtica. Esto es, que en cualquier momento solamente un proceso puede usar un recurso a la vez. Para lograr la exclusin mutua se ideo tambin el concepto de 'regin crtica'. Para

Lic. Alfredo Trujillo Bentez

Pg. 23 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL logar la exclusin mutua generalmente se usan algunas tcnicas para lograr entrar a la regin crtica: semforos, monitores, el algoritmo de Dekker y Peterson, los 'candados'. Para ver una descripcin de estos algoritmos consulte Condicin de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado. Los problemas descritos son todos importantes para el sistema operativo, ya que debe ser capaz de prevenir o corregirlos. Tal vez el problema ms serio que se puede presentar en un ambiente de concurrencia es el 'abrazo mortal', tambin llamado 'trabazn' y en ingls deadlock. El deadlock es una condicin que ningn sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se presentan al mismo tiempo cuatro condiciones necesarias: La condicin de no apropiacin, la condicin de espera circular, la condicin de exclusin mutua y la condicin de ocupar y esperar un recurso. Ante esto, si el deadlock involucra a todos los procesos del sistema, el sistema ya no podr hacer algo productivo. Si el deadlock involucra algunos procesos, stos quedarn congelados para siempre. En el rea de la informtica, el problema del deadlock ha provocado y producido una serie de estudios y tcnicas muy tiles, ya que ste puede surgir en una sola mquina o como consecuencia de compartir recursos en una red. En el rea de las bases de datos y sistemas distribuidos han surgido tcnicas como el 'two phase locking' y el 'two phase commit' que van ms all de este trabajo. Sin embargo, el inters principal sobre este problema se centra en generar tcnicas para detectar, prevenir o corregir el deadlock. Las tcnicas para prevenir el deadlock consisten en proveer mecanismos para evitar que se presente una o varias de las cuatro condiciones necesarias del deadlock. Algunas de ellas son: Asignar recursos en orden lineal: Esto significa que todos los recursos estn etiquetados con un valor diferente y lo procesos solo pueden hacer peticiones de recursos 'hacia adelante'. Esto es, que si un proceso tiene el recurso con etiqueta '5' no puede pedir recursos cuya etiqueta sea menor que '5'. Con esto se evita la condicin de ocupar y esperar un recurso. Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede drselos todos, si no, no le da nada y lo bloquea. Algoritmo del banquero: Este algoritmo usa una tabla de recursos para saber cuntos recursos tiene de todo tipo. Tambin requiere que los procesos informen del mximo de recursos que va a usar de cada tipo. Cuando un proceso pide un recurso, el algoritmo verifica si asignndole ese recurso todava le quedan otros del mismo tipo para que alguno de los procesos en el sistema todava se le pueda dar hasta su mximo. Si la respuesta es afirmativa, el sistema se dice que est en 'estado seguro' y se otorga el recurso. Si la respuesta es negativa, se dice que el sistema est en estado inseguro y se hace esperar a ese proceso. Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlock, s dice cundo se est en estado inseguro que es la antesala del deadlock. Sin embargo, para detectar el deadlock se pueden usar las 'grficas de recursos'. En ellas se pueden usar cuadrados para indicar procesos y crculos para los recursos, y flechas para indicar si un recurso ya est asignado a un proceso o si un proceso est esperando un recurso. El deadlock es detectado cuando se puede hacer un viaje de ida y vuelta desde un proceso o recurso. Por ejemplo, suponga los siguientes eventos: Evento 1: Proceso A pide recurso 1 y se le asigna.

Lic. Alfredo Trujillo Bentez

Pg. 24 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL evento 2: Proceso A termina su time slice. evento 3: Proceso B pide recurso 2 y se le asigna. evento 4: Proceso B termina su time slice. evento 5: Proceso C pide recurso 3 y se le asigna. evento 6: Proceso C pide recurso 1 y como lo est ocupando el proceso A, espera. evento 7: Proceso B pide recurso 3 y se bloquea porque lo ocupa el proceso C. evento 8: Proceso A pide recurso 2 y se bloquea porque lo ocupa el proceso B. En la figura 5.1 se observa como el 'resource graph' fue evolucionando hasta que se present el deadlock, el cual significa que se puede viajar por las flechas desde un proceso o recurso hasta regresar al punto de partida. En el deadlock estn involucrados los procesos A,B y C. Una vez que un deadlock se detecta, es obvio que el sistema est en problemas y lo nico que resta por hacer es una de dos cosas: tener algn mecanismo de suspensin o reanudacin [Deitel93] que permita copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los perifricos que est usando para reanudarlo otro da, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la prdida de datos y tiempo.

Gestin de la memoria En esta seccin se describirn las tcnicas ms usuales en el manejo de memoria, revisando los conceptos relevantes. Se abarcarn los esquemas de manejo simple de memoria real, la multiprogramacin en memoria real con sus variantes, el concepto de `overlays', la multiprogramacin con intercambio y los esquemas de manejo de memoria virtual. Manejo de memoria en sistemas monousuario sin intercambio Este esquema es an muy frecuente en Mxico y se usa principalmente en sistemas monousuario y monotarea, como son las computadoras personales con DOS. Bajo este esquema, la memoria real es tomada para almacenar el programa que se est ejecutando en un momento dado, con la visible desventaja de que si se est limitado a la cantidad de RAM disponible nicamente. La organizacin fsica bajo este esquema es muy simple: El sistema operativo se ubica en las localidades superiores o inferiores de la memoria, seguido por algunos manejadores de dispositivos ( `drivers' ). Esto deja un espacio contiguo de memoria disponible que es tomado por los programas del usuario, dejando generalmente la ubicacin de la pila (` stack' ) al ltimo, con el objetivo de que sta pueda crecer hasta el mximo posible. Estas diferentes opciones se pueden ver en la figura 4.2. Como es obvio, bajo estos esquemas no se requieren algoritmos sofisticados para asignar la memoria a los diferentes procesos, ya que stos son ejecutados secuencialmente conforme van terminando. Multiprogramacin en memoria real En los 60's, las empresas e instituciones que haban invertido grandes sumas en la compra de equipo de cmputo se dieron cuenta rpidamente que los sistemas en lote invertan una gran cantidad de tiempo en operaciones de entrada y salida, donde la intervencin de la unidad central de procesamiento era prcticamente nula, y se comenzaron a preguntar cmo hacer que se mantuviera ms tiempo ocupada. Fue as como naci el concepto de multiprogramacin, el cual consiste en la idea de poner en la memoria fsica ms de un proceso al mismo tiempo, de manera que si el que se est ejecutando en este momento entraba en un periodo de entrada/salida, se podia tomar

Lic. Alfredo Trujillo Bentez

Pg. 25 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL otro proceso para que usara la unidad central de procesamiento. De esta forma, la memoria fisica se divida en secciones de tamao suficiente para contener a varios programas. De esta manera, si un sistema gastaba en promedio 60% de su tiempo en entrada/salida por proceso, se poda aprovechar ms el CPU. Anterior a esto, el CPU se mantena ese mismo porcentaje ocioso; con la nueva tcnica, el tiempo promedio ocioso disminuye de la siguiente forma. Llmese al tiempo promedio que el CPU est ocupado `grado de multiprogramacin'. Si el sistema tuviese un solo proceso siempre, y ste gastara 60% en entrada/salida, el grado de multiprogramacin sera 1 - 60% = 40% = 0.4. Con dos procesos, para que el CPU est ocioso se necesita que ambos procesos necesiten estar haciendo entrada/salida, es decir, suponiendo que son independientes, la probabilidad de que ambos estn en entrada/salida es el producto de sus probabilidades, es decir, 0.6x0.6 = 0.36. Ahora, el grado de multiprogramacin es 1 - (probabilidad de que ambos procesos estn haciendo entrada/salida) = 1 - 0.36 = 0.64. Como se ve, el sistema mejora su uso de CPU en un 24% al aumentar de uno a dos procesos. Para tres procesos el grado de multiprogramacin es 1 - (0.6) 3 = 0.784, es decir, el sistema est ocupado el 78.4% del tiempo. La frmula del grado de multiprogramacin, aunque es muy idealista, pudo servir de gua para planear un posible crecimiento con la compra de memoria real, es decir, para obtener el punto en que la adicin de procesos a RAM ya no incrementa el uso de CPU. Dentro del esquema de multiprogramacin en memoria real surgieron dos problemas interesantes: la proteccin y la relocalizacin. El problema de la relocalizacin Este problema no es exclusivo de la multiprogramacin en memoria real, sino que se present aqu pero se sigue presentando en los esquemas de memoria virtual tambin. Este problema consiste en que los programas que necesitan cargarse a memoria real ya estn compilados y ligados, de manera que internamente contienen una serie de referencias a direcciones de instrucciones, rutinas y procedimientos que ya no son vlidas en el espacio de direcciones de memoria real de la seccin en la que se carga el programa. Esto es, cuando se compil el programa se definieron o resolvieron las direcciones de memoria de acuerdo a la seccin de ese momento, pero si el programa se carga en otro dia en una seccin diferente, las direcciones reales ya no coinciden. En este caso, el manejador de memoria puede solucionar el problema de dos maneras: de manera `esttica' o de manera `dinmica'. La solucin `esttica' consiste en que todas las direcciones del programa se vuelvan a recalcular al momento en que el programa se carga a memoria, esto es, prcticamente se vuelve a recompilar el programa. La solucin `dinmica' consiste en tener un registro que guarde la direccin base de la seccin que va a contener al programa. Cada vez que el programa haga una referencia a una direccin de memoria, se le suma el registro base para encontrar la direccin real. Por ejemplo, suponga que el programa es cargado en una seccin que comienza en la direccin 100. El programa har referencias a las direcciones 50,52,54. Pero el contenido de esas direcciones no es el deseado, sino las direcciones 150, 152 y 154, ya que ah comienza el programa. La suma de 100 + 50, ...,etctera se hacen al tiempo de ejecucin. La primera solucin vale ms la pena que la segunda si el programa contiene ciclos y es largo, ya que consumir menos tiempo en la resolucin inicial que la segunda solucin en las resoluciones en lnea. El problema de la proteccin Este problema se refiere a que, una vez que un programa ha sido caragado a memoria en algn segmento en particular, nada le impide al programador que intente direccionar ( por error o deliberadamente ) localidades de memoria menores que el lmite inferior de

Lic. Alfredo Trujillo Bentez

Pg. 26 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL su programa o superiores a la direccin mayor; es decir, quiere referenciar localidades fuera de su espacio de direcciones. Obviamente, este es un problema de proteccin, ya que no es legal leer o escribir en reas de otros programas. La solucin a este problema tambin puede ser el uso de un registro base y un registro lmite. El registro base contiene la direccin del comienzo de la seccin que contiene al programa, mientras que el lmite contiene la direccin donde termina. Cada vez que el programa hace una referencia a memoria se checa si cae en el rango de los registros y si no es as se enva un mensaje de error y se aborta el programa. Particiones fijas o particiones variables En el esquema de la multiprogramacin en memoria real se manejan dos alternativas para asignarle a cada programa su particin correspondiente: particiones de tamao fijo o particiones de tamao variable. La alternativa ms simple son las particiones fijas. Dichas particiones se crean cuando se enciende el equipo y permanecern con los tamaos iniciales hasta que el equipo se apague. Es una alternativa muy vieja, quien haca la divisin de particiones era el operador analizando los tamaos estimados de los trabajos de todo el da. Por ejemplo, si el sistema tena 512 kilobytes de RAM, podia asignar 64 k para el sistema operativo, una particin ms de 64 k, otra de 128k y una mayor de 256 k. Esto era muy simple, pero inflexible, ya que si surgan trabajos urgentes, por ejemplo, de 400k, tenan que esperar a otro da o reparticionar, inicializando el equipo desde cero. La otra alternativa, que surgi despus y como necesidad de mejorar la alternativa anterior, era crear particiones contiguas de tamao variable. Para esto, el sistema tena que mantener ya una estructura de datos suficiente para saber en dnde haban huecos disponibles de RAM y de dnde a dnde haban particiones ocupadas por programas en ejecucin. As, cuando un programa requera ser cargado a RAM, el sistema analizaba los huecos para saber si haba alguno de tamao suficiente para el programa que queria entrar, si era as, le asignaba el espacio. Si no, intentaba relocalizar los programas existentes con el propsito de hacer contiguo todo el espacio ocupado, as como todo el espacio libre y as obtener un hueco de tamao suficiente. Si an as el programa no caba, entonces lo bloqueaba y tomaba otro. El proceso con el cual se juntan los huecos o los espacios ocupados se le llama `compactacin'. El lector se habr dado cuenta ya de que surgen varios problemas con los esquemas de particiones fijas y particiones variables: En base a qu criterio se elige el mejor tamao de particin para un programa ? Por ejemplo, si el sistema tiene dos huecos, uno de 18k y otro de 24 k para un proceso que desea 20 k, Cual se le asigna ? Existen varios algoritmos para darle respuesta a la pregunta anterior, los cuales se ennumeran y describen enseguida. Primer Ajuste: Se asigna el primer hueco que sea mayor al tamao deseado. Mejor Ajuste: Se asigna el hueco cuyo tamao exceda en la menor cantidad al tamao deseado. Requiere de una bsqueda exhaustiva. Peor Ajuste: Se asigna el hueco cuyo tamao exceda en la mayor cantidad al tamao deseado. Requiere tambin de una bsqueda exhaustiva. El Siguiente Ajuste: Es igual que el `primer ajuste' con la diferencia que se deja un apuntador al lugar en donde se asign el ltimo hueco para realizar la siguiente bsqueda a partir de l. Ajuste Rpido: Se mantienen listas ligadas separadas de acuerdo a los tamaos de los huecos, para as buscarle a los procesos un hueco ms rpido en la cola correspondiente. Otro problema que se vislumbra desde aqu es que, una vez asignado un hueco, por ejemplo, con "el peor ajuste", puede ser que el proceso requiriera 12 kilobytes y que el hueco asignado fuera de 64 kilobytes, por lo cual el proceso va a desperdiciar una gran cantidad de memoria dentro de su particin, lo cual se le llama `fragmentacin interna'.

Lic. Alfredo Trujillo Bentez

Pg. 27 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Por otro lado, conforme el sistema va avanzando en el da, finalizando procesos y comenzando otros, la memoria se va configurando como una secuencia contigua de huecos y de lugares asignados, provocando que existan huecos, por ejemplo, de 12 k, 28k y 30 k, que sumados dan 70k, pero que si en ese momento llega un proceso pidindolos, no se le pueden asignar ya que no son localidades contiguas de memoria ( a menos que se realice la compactacin ). Al hecho de que aparezcan huecos no contiguos de memoria se le llama `fragmentacin externa'. De cualquier manera, la multiprogramacin fue un avance significativo para el mejor aprovechamiento de la unidad central de procesamiento y de la memoria misma, as como dio pie para que surgieran los problemas de asignacin de memoria, proteccin y relocalizacin, entre otros.

Los overlays
Una vez que surgi la multiprogramacin, los usuarios comenzaron a explorar la forma de ejecutar grandes cantidades de cdigo en reas de memoria muy pequeas, auxiliados por algunas llamadas al sistema operativo. Es as como nacen los `overlays'. Esta tcnica consiste en que el programador divide lgicamente un programa muy grande en secciones que puedan almacenarse el las particiones de RAM. Al final de cada seccin del programa ( o en otros lugares necesarios ) el programador insertaba una o varias llamadas al sistema con el fin de descargar la seccin presente de RAM y cargar otra, que en ese momento resida en disco duro u otro medio de almacenamiento secundario. Aunque esta tcnica era eficaz ( porque resolva el problema ) no era eficiente ( ya que no lo resolva de la mejor manera ). Esta solucin requera que el programador tuviera un conocimiento muy profundo del equipo de cmputo y de las llamadas al sistema operativo. Otra desventaja era la portabilidad de un sistema a otro: las llamadas cambiaban, los tamaos de particiones tambin. Resumiendo, con esta tcnica se podan ejecutar programas ms grandes que las particiones de RAM, donde la divisin del cdigo corra a cuenta del programador y el control a cuenta del sistema operativo.

Multiprogramacin en memoria virtual


La necesidad cada vez ms imperiosa de ejecutar programas grandes y el crecimiento en poder de las unidades centrales de procesamiento empujaron a los diseadores de los sistemas operativos a implantar un mecanismo para ejecutar automticamente programas ms grandes que la memoria real disponible, esto es, de ofrecer `memoria virtual'. La memoria virtual se llama as porque el programador ve una cantidad de memoria mucho mayor que la real, y en realidad se trata de la suma de la memoria de almacenamiento primario y una cantidad determinada de almacenamiento secundario. El sistema operativo, en su mdulo de manejo de memoria, se encarga de intercambiar programas enteros, segmentos o pginas entre la memoria real y el medio de almacenamiento secundario. Si lo que se intercambia son procesos enteros, se habla entonces de multiprogramacin en memoria real, pero si lo que se intercambian son segmentos o pginas, se puede hablar de multiprogramacin con memoria virtual. La memoria virtual se apoya en varias tcnicas interesantes para lograr su objetivo. Una de las teorias ms fuertes es la del `conjunto de trabajo', la cual se refiere a que un programa o proceso no est usando todo su espacio de direcciones en todo momento, sino que existen un conjunto de localidades activas que conforman el `conjunto de Lic. Alfredo Trujillo Bentez Pg. 28 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL trabajo'. Si se logra que las pginas o segmentos que contienen al conjunto de trabajo estn siempre en RAM, entonces el programa se desempear muy bien. Otro factor importante es si los programas exhiben un fenmeno llamado `localidad', lo cual quiere decir que algunos programas tienden a usar mucho las instrucciones que estn cercanas a la localidad de la instruccin que se est ejecutando actualmente. Paginacin pura La paginacin pura en el manejo de memoria consiste en que el sistema operativo divide dinmicamente los programas en unidades de tamao fijo ( generalmente mltiplos de 1 kilobyte ) los cuales va a manipular de RAM a disco y viceversa. Al proceso de intercambiar pginas, segmentos o programas completos entre RAM y disco se le conoce como `intercambio' o `swapping'. En la paginacin, se debe cuidar el tamo de las pginas, ya que si stas son muy pequeas el control por parte del sistema operativo para saber cules estn en RAM y cuales en disco, sus direcciones reales, etc; crece y provoca mucha `sobrecarga' (overhead). Por otro lado, si las pginas son muy grandes, el overhead disminuye pero entonces puede ocurrir que se desperdicie memoria en procesos pequeos. Debe haber un equilibrio. Uno de los aspectos ms importantes de la paginacin, asi como de cualquier esquema de memoria virtual, es la forma de traducir una direccin virtual a direccin real. Para explicarlo, obsrvese la figura Como se observa, una direccin virtual `v' = ( b,d) est formada por un nmero de pgina virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32 kilobytes, entonces tenemos 16 pginas virtuales y 8 reales. La tabla de direcciones virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en memoria, quin es el dueo de la pgina, si la pgina ha sido modificada o es de lectura nada mas, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde a la pgina virtual. Obviamente, de las 16 virtuales, slo ocho tendrn un valor de control que dice que la pgina est cargada en RAM, as como la direccin real de la pgina, denotada en la figura 4.3 como b' . Por ejemplo, supngase que para la pgina virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2 ( direccin de memoria 8192 ). Una vez encontrada la pgina real, se le suma el desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ). La tabla de direcciones virtuales a veces est ubicada en la misma meoria RAM, por lo cual se necesita saber en qu direccin comienza, en este caso, existe un registro con la direccin base denotada por la letra `a' en la figura 4.3. Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se llama un `fallo de pgina' (page fault ). Esto es caro para el manejador de memoria, ya que tiene que realizar una serie de pasos extra para poder resolver la direccin deseada y darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y entonces se busca en la tabla la direccin de esta pgina en disco. Una vez localizada en disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se marca su valor de control en la tabla de direcciones virtuales para indicar que ya no est en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que los accesos a disco duro son del orden de decenas de veces ms lentos que en RAM. En el ejemplo anterior se mencion que cuando se necesita descargar una pgina de RAM hacia disco se debe de hacer una eleccin. Para realizar esta eleccin existen

Lic. Alfredo Trujillo Bentez

Pg. 29 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL varios algoritmos, los cuales se describen enseguida. _ La primera en entrar, primera en salir: Se escoge la pgina que haya entrado primero y est cargada en RAM. Se necesita que en los valores de control se guarde un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica de ningn sistema. Es justa e imparcial. _ La no usada recientemente: Se escoge la pgina que no haya sido usada (referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en el conjunto de trabajo. La usada menos recientemente: Es parecida a la anterior, pero escoge la pgina que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse es muy probable que siga sin usarse en los prximos ciclos. Necesita de una bsqueda exhaustiva. La no usada frecuentemente: Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero de referencias. En este caso cualquier pgina que se use muy poco, menos veces que alguna otra. La menos frecuentemente usada: Es parecida a la anterior, pero aqu se busca en forma exhaustiva aquella pgina que se ha usado menos que todas las dems. En forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e imparcial, pero ineficiente. Otro dato interesante de la paginacin es que ya no se requiere que los programas estn ubicados en zonas de memoria adyacente, ya que las pginas pueden estar ubicadas en cualquier lugar de la memoria RAM. Segmentacin pura La segmentacin se aprovecha del hecho de que los programas se dividen en partes lgicas, como son las partes de datos, de cdigo y de pila (stack). La segmentacin asigna particiones de memoria a cada segmento de un programa y busca como objetivos el hacer fcil el compartir segmentos ( por ejemplo libreras compartidas ) y el intercambio entre memoria y los medios de almacenamiento secundario. Por ejemplo, en la versin de UNIX SunOS 3.5, no existan libreras compartidas para algunas herramientas, por ejemplo, para los editores de texto orientados al ratn y mens. Cada vez que un usuario invocaba a un editor, se tena que reservar 1 megabyte de memoria. Como los editores son una herramienta muy solicitada y frecuentemente usada, se dividi en segmentos para le versin 4.x ( que a su vez se dividen en pginas ), pero lo importante es que la mayor parte del editor es comn para todos los usuarios, de manera que la primera vez que cualquier usuario lo invocaba, se reservaba un megabyte de memoria como antes, pero para el segundo, tercero y resto de usuarios, cada editor extra slo consuma 20 kilobytes de memoria. El ahorro es impresionante. Obsrvese que en la segmentacin pura las particiones de memoria son de tamao variable, en contraste con pginas de tamao fijo en la paginacin pura. Tambin se puede decir que la segmentacin pura tiene una granularidad menor que la paginacin por el taman de segmentos versus tamao de pginas. Nuevamente, para comprender mejor la segmentacin, se debe dar un repaso a la forma en que las direcciones virtuales son traducidas a direcciones reales, y para ellos se usa la figura 4.4. Prcticamente la traduccin es igual que la llevada a cabo en la paginacin pura, tomando en consideraci que el tamao de los bloques a controlar por la tabla de traduccin son variables, por lo cual, cada entrada en dicha tabla debe contener la longitud de cada segmento a controlar. Otra vez se cuenta con un registro base que contiene la direccin del comienzo de la tabla de segmentos. La direccin virtual se compone de un nmero de segmento (s) y un desplazamiento ( d ) para ubicar un byte (o palabra ) dentro de dicho segmento. Es importante que el desplazamiento no sea mayor que el tamao del segmento, lo cual se controla simplemente checando que ese valor sea mayor que la direccin del inicio del segmento y menor que el inicio sumado al tamao.

Lic. Alfredo Trujillo Bentez

Pg. 30 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Una ves dada una direccin virtual v=( s,d ), se realiza la operacin b + s para hallar el registro (o entrada de la tabla de segmentos ) que contiene la direccin de inicio del segmento en la memoria real, denotado por s'. Ya conociendo la direccin de inicio en memoria real s' slo resta encontrar el byte o palabra deseada, lo cual se hace sumndole a s' el valor del desplazamiento, de modo que la direccin real r = s'+ d. Cada entrada en la tabla de segmentos tiene un formato similar al mostrado en la figura 4.5. Se tienen campos que indican la longitud, los permisos, la presencia o ausencia y direccin de inicio en memoria real del segmento. Segn amplios experimentos [Deitel93] sugieren que un tamao de pginas de 1024 bytes generalmente ofrece un desempeo muy aceptable. Intuitivamente parecera que el tener pginas del mayor tamao posible hara que el desempeo fuera ptimo pero no es as, a menos que la pgina fuera del tamao del proceso total. No es as con tamaos grandes de pgina menores que el proceso, ya que cuando se trae a memoria principal una pgina por motivo de un solo byte o palabra, se estn trayendo muchsimos ms bytes de los deseados. La dependencia entre el nmero de fallas respecto al tamao de las pginas se muestra en la figura 4.6. Un hecho notable en los sistemas que manejan paginacin es que cuando el proceso comienza a ejecutarse ocurren un gran nmero de fallos de pgina, porque es cuando est referenciando muchas direcciones nuevas por vez primera, despus el sistema se estabiliza, conforme el nmero de marcos asignados se acerca al tamao del conjunto de trabajo. El la figura 4.7 se muestra la relacin entre el tiempo promedio entre fallas de pgina y el nmero de marcos de pgina asignados a un proceso. All se ve que el tiempo entre fallas decrece conforme se le asignan ms pginas al proceso. La grfica se curva en un punto, el cual corresponde a que el proceso tiene un nmero de pginas asignado igual al que necesita para almacenar su conjunto de trabajo. Despus de eso, el asignarle a un proceso ms pginas que las de su conjunto de trabajo ya no conviene, ya que el tiempo promedio entre fallas permanece sin mucha mejora. Un aspecto curioso de aumentar el nmero de pginas a un proceso cuando el algoritmo de seleccin de pginas candidatas a irse a disco es la primera en entrar primera en salir es la llamada `anomala FIFO' a `anomala de Belady'. Belady encontr ejemplos en los que un sistema con un nmero de pginas igual a tres tena menos fallas de pginas que un sistema con cuatro pginas. El ejemplo descrito en [Tanxx] es injusto. Si se mira con cuidado, obviamente si se compara un sistema con 10 pginas contra otro de 5, ya de inicio el primer sistema tendr 5 fallos de pgina ms que el de 5, porque se necesitan diez fallos para cargarlo. A esto debera llamrsele `anomala de Belady con correccin. Sistemas combinados La paginacin y la segmentacin puras son mtodos de manejo de memoria bastante efectivos, aunque la mayora de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginacin y la segmentacin. La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la divisin lgica de los programas (segmentos) con la granularidad de las pginas. De esta forma, un proceso estar repartido en la memoria real en pequeas unidades (pginas) cuya liga son los segmentos. Tambin es factible as el compartir segmentos a medida que las partes necesitadas de los mismos se van referenciando (pginas). Para comprender este esquema, nuevamente se ver cmo se traduce una direccin virtual en una localidad de memoria real. Para la paginacin y segmentacon puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la direccin real. Para el caso combinado, se puede decir que se tiene un direccionamiento `tridimensional'. En la figura 4.8 [ Deitel93] se muestran las partes relevantes para

Lic. Alfredo Trujillo Bentez

Pg. 31 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL lograr la traduccin de direcciones. El sistema debe contar con una tabla de procesos (TP). Por cada rengln de esa tabla se tiene un nmero de proceso y una direccin a una tabla de segmentos. Es decir, cada proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia a memoria, se consulta TP para encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de proceso (TSP) se tienen los nmeros de los segmentos que componen a ese proceso. Por cada segmento se tiene una direccin a una tabla de pginas. Cada tabla de pginas tiene las direcciones de las pginas que componen a un solo segmento. Por ejemplo, el segmento `A' puede estar formado por las pginas reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las pginas `f','g','j','w' y `z'. Para traducir una direccin virtual v=(s,p,d) donde `s' es el segmento, `p' es la pgina y `d' el desplazamiento en la pgina se hace lo siguiente. Primero se ubica de qu proceso es el segmento y se localiza la tabla de segmentos de ese proceso en la TP. Con `s' como ndice se encuentra un rengln ( registro) en la tabla de segmentos de ese proceso y en ese rengln est la direccin de la tabla de pginas que componen al segmento. Una vez en la tabla de pginas se usa el valor `p' como ndice para encontrar la direccin de la pgina en memoria real. Una vez en esa direccin de memoria real se encuentra el byte (o palabra) requerido por medio del valor de `d'. Ahora, en este esquema pueden haber dos tipos de fallos: por fallo de pgina y por fallo de segmento. Cuando se hace referencia a una direccin y el segmento que la contiene no est en RAM ( aunque sea parcialmente ), se provoca un fallo por falta de segmento y lo que se hace es traerlo del medio de almacenamiento secundario y crearle una tabla de pginas. Una vez caragado el segmento se necesita localizar la pgina correspondiente, pero sta no existe en RAM, por lo cual se provoca un fallo de pgina y se carga de disco y finalmente se puede ya traer la direccin deseada por medio del desplazamiento de la direccin virtual. La eficiencia de la traduccin de direcciones tanto en paginacin pura, segmentacin pura y esquemas combinados se mejora usando memorias asociativas para las tablas de pginas y segmentos, as como memorias cache para guardar los mapeos ms solicitados. Otro aspecto importante es la estrategia para cargar pginas ( o segmentos ) a la memoria RAM. Se usan ms comunmente dos estrategias: cargado de pginas por demanda y cargado de pginas anticipada. La estrategia de caragdo por demanda consiste en que las pginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas. La carga anticipada consiste en tratar de adivinar qu pginas sern solicitadas en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no ocurran fallos de pgina. Ese `adivinar' puede ser que se aproveche el fenmeno de localidad y que las pginas que se cargan por anticipado sean aquellas que contienen direcciones contiguas a la direccin que se acaba de refenciar. De hecho, el sistema operativo VMS usa un esquema combinado para cargar pginas: cuando se hace referencia a una direccin cuya pgina no est en RAM, se provoca un fallo de pgina y se carga esa pgina junto con algunas pginas adyacentes. En este caso la pgina solicitada se carg por demanda y las adyacentes se cargaron por anticipacin.

Lic. Alfredo Trujillo Bentez

Pg. 32 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Gestin del Almacenamiento Secundario El Sistema de Entrada-Salida El cdigo destinado a manejar la entrada y salida de los diferentes perifricos en un sistema operativo es de una extensin considerable y sumamente complejo. Resuelve la necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. En esta seccin se repasarn los principios ms importantes a tomar en cuenta en este mdulo del sistema operativo. Dispositivos de Entrada Salida Los dispositivos de entrada salida se dividen, en general, en dos tipos: dispositivos orientados a bloques y dispositivos orientados a caracteres. Los dispositivos orientados a bloques tienen la propiedad de que se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes orientados a bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. Por otro lado, los dispositivos orientados a caracteres son aquellos que trabajan con secuencias de byes sin importar su longitud ni ningna agrupacin en especial. No son dispositivos direccionables. Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificacin anterior no es perfecta, porque existen varios dispositivos que generan entrada o salida que no pueden englobarse en esas categoras. Por ejemplo, un reloj que genera pulsos. Sin embargo, aunque existan algunos perifricos que no se puedan categorizar, todos estn administrados por el sistema operativo por medio de una parte electrnica - mecnica y una parte de software. Controladores de Dispositivos ( Terminales y Discos Duros) Los controladores de dispositivos (tambin llamados adaptadores de dispositivos) son la parte electrnica de los perifricos, el cual puede tener la forma de una tarjeta o un circuito impreso integrado a la tarjeta maestra de la computadora. Por ejemplo, existen controladores de discos que se venden por separado y que se insertan en una ranura de la computadora, o existen fabricantes de computadoras que integran esa funcionalidad en la misma tarjeta en que viene la unidad central de procesamiento (tarjeta maestra). Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. Estas interrupciones viajan por el 'bus' de la computadora y son recibidos por el CPU el cual a su vez pondr en ejecucin algn programa que sabr qu hacer con esa seal. A ese programa se le llama 'manejador de disposito' (device driver). Algunas veces el mismo controlador contiene un pequeo programa en una memoria de solo lectura o en memoria de acceso aleatoria no voltil y re-escribible que interacta con el correspondiente manejador en la computadora. En la figura 6.1 se muestra un esquema simple de dispositivos orientados a bloques y otros a caracteres. Por ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas de bits por medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. Este 'chip' tambin se encarga de leer secuencias de bits que agrupa para su despiegue en la pantalla o para ejecutar algunas funciones de control. Lo importante en todos estos dispositivos es que se debe ejercer un mecanismo para sincronizar el envo y llegada de datos de manera concurrente. Para intercambiar datos o seales entre la computadora y los controladores, muchas veces se usan registros o secciones predefinidas de la memoria de la computadora. A

Lic. Alfredo Trujillo Bentez

Pg. 33 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL este esquema se le llama 'manejo de entrada - salida mapeado por memoria' (memory mapped I/O). Por ejmplo, para una IBM PC se muestran los vectores de interrupcin y las direcciones para la entrada -salida en la tabla 6.1. Controlador Direccin(Hex) Vector de Interrupcin Reloj 040 043 8 Teclado 060 063 9 Disco Duro 320 32F 13 Impresora 378 37F 15 Monitor Mono 380 3BF Monitor Color 3D0 3DF Disco Flexible 3F0 - 3F7 14 Tabla 6.1 Direcciones de Mapeo de Entrada - Salida Acceso Directo a Memoria (DMA) El acceso directo a memoria se invent con el propsito de liberar al CPU de la carga de atender a algunos controladores de dispositivos. Para comprender su funcionamiento vale la pena revisar cmo trabaja un controlador sin DMA. Cuando un proceso requiere algunos bloques de un dispositivo, se envia una seal al controlador con la direccin del bloque deseado. El controlador lo recibe a travs del 'bus' y el proceso puede estar esperando la respuesta (trabajo sncrono) o puede estar haciendo otra cosa (trabajo asncrono). El controlador recibe la seal y lee la direccin del bus. Enva a su vez una o varias seales al dispositivo mecnico (si es que lo hay) y espera los datos. Cuando los recibe los escribe en un buffer local y enva una seal al CPU indicndole que los datos estn listos. El CPU recibe esta interrupcin y comienza a leer byte por byte o palabra por palabra los datos del buffer del controlador (a travs del device driver) hasta terminar la operacin. Como se ve, el CPU gasta varios ciclos en leer los datos deseados. El DMA soluciona ese problema de la manera siguiente. Cuando un proceso requiere uno o varios bloques de datos, el CPU enva al controlador la peticin junto con el nmero de bytes deseados y la direccin de en dnde quiere que se almacenen de regreso. El DMA actuar como un 'cpu secundario' [Stal92] en cuanto a que tiene el poder de tomar el control del 'bus' e indicarle al verdadero CPU que espere. Cuando el controlador tiene listos los datos, el DMA 'escucha' si el 'bus' est libre aprovechando esos ciclos para ir leyendo los datos del buffer del controlador e ir escribindolos en el rea de memoria que el CPU le indic. Cuando todos los datos fueron escritos, se le enva una interrupcin al CPU para que use los datos. El ahorro con el DMA es que el CPU ya no es interrumpido (aunque s puede ser retardado por el DMA) salvando as el 'cambio de contexto' y adems el DMA aprovechar aquellos ciclos en que el 'bus' no fue usado por el CPU. El hecho de que los controladores necesiten buffers internos se debe a que conforme ellos reciban datos de los dispositivos que controlan, los deben poder almacenar temporalmente, ya que el CPU no est listo en todo momento para leerlos. Principios en el Software de Entrada Salida Los principios de software en la entrada - salida se resumen en cuatro puntos: el software debe ofrecer manejadores de interrupciones, manejadores de dispositivos, software que sea independiente de los dispositivos y software para usuarios. Manejadores de interrupciones El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo est ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tard ms o menos en responder a su peticin.

Lic. Alfredo Trujillo Bentez

Pg. 34 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Manejadores de disposisitivos El sistema debe proveer los manejadores de dispositivos necesarios para los perifricos, as como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la informacin, los medios mecnicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias tcnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. Software independiente del dispositivo Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aqu el sistema operativo debe ser capaz, en lo ms posible, de ofrecer un conjunto de utileras para accesar perifricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos. Software para usuarios La mayora de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras libreras en donde el usuario si tiene poder de decisin (por ejemplo la llamada a "printf" en el lenguaje "C"). Otra facilidad ofrecida son las reas de trabajos encolados (spooling areas), tales como las de impresin y correo electrnico. Relojes Los relojes son esenciales para el buen funcionamiento de cualquier sistema porque juegan un papel decisivo en la sincronizacin de procesos, en la calendarizacin de trabajos por lote y para la asignacin de turnos de ejecucin entre otras tareas relevantes. Generalmente se cuenta con dos relojes en el sistema: uno que lleva la hora y fecha del sistema y que oscila entre 50 y 60 veces por segundo y el reloj que oscila entre 5 y 100 millones de veces por segundo y que se encarga de enviar interrupciones al CPU de manera peridica. El reloj de mayor frecuencia sirve para controlar el tiempo de ejecucin de los procesos, para despertar los procesos que estn 'durmiendo' y para lanzar o iniciar procesos que fueron calendarizados. Para mantener la hora y fecha del sistema generalmente se usa un registro alimentado por una pila de alta duracin que almacena estos datos y que se programan de fbrica por primera vez. As, aunque se suspenda la energa la fecha permanece. Para lanzar procesos (chequeo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc), se almacena un valor en un registro (valor QUANTUM) el cual se decrementa con cada ciclo del reloj, y cuando llega a cero se dispara un proceso que ejecutar las operaciones necesarias (escoger un nuevo proceso en ejecucin, verificar el funcionamiento del motor del disco flexible, hacer eco de un caracter del teclado, etc).

Sistema de Archivos Un sistema de archivos ( file system ) es una estructura de directorios con algn tipo de organizacin el cual nos permite almacenar, crear y borrar archivos en diferentes formatos. En esta seccin se revisarn conceptos importantes relacionados a los sistemas de archivos. Almacenamiento Fsico de Datos En un sistema de cmputo es evidente que existe la necesidad por parte de los usuarios y aplicaciones de almacenar datos en algn medio, a veces por periodos largos y a veces

Lic. Alfredo Trujillo Bentez

Pg. 35 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL por instantes. cada aplicacin y cada usuario debe tener ciertos derechos con sus datos, como son el poder crearlos y borrarlos, o cambiarlos de lugar; as como tener privacidad contra otros usuarios o aplicaciones. El subsistema de archivos del sistema operativo se debe encargar de estos detalles, adems de establecer el formato fsico en el cual almacenar los datos en discos duros, cintas o discos flexibles. Debe ser conocido por todos que tradicionalmente la informacin en los sistemas modernos se almacena en discos duros, flexibles y unidades de disco ptico, y en todos ellos se comparten algunos esquemas bsicos para darles formato fsico: las superficies de almacenamiento son divididas en crculos concntricos llamados "pistas" y cada pista se divide en "sectores". A la unin lgica de varias pistas a travs de varias superficies "paralelas" de almacenamiento se les llama "cilindros", los cuales son inspeccionados al momento de lectura o escritura de datos por las respectivas unidades fisicas llamadas "cabezas". Las superficies de almacenamiento reciben el nombre de "platos" y generalmente estn en movimiento rotatorio para que las cabezas accesen a las pistas que los componen. Los datos se escriben a travs de los sectores en las pistas y cilindros modificando las superficies por medio de las cabezas. El tiempo que una cabeza se tarda en ir de una pista a otra se le llama "tiempo de bsqueda" y depender de la distancia entre la posicin actual y la distancia a la pista buscada. El tiempo que tarda una cabeza en ir del sector actual al sector deseado se le llama tiempo de latencia y depende de la distancia entre sectores y la velocidad de rotacin del disco. El impacto que tiene las lecturas y escrituras sobre el sistema est determinado por la tecnologa usada en los platos y cabezas y por la forma de resolver las peticiones de lectura y escritura, es decir, los algoritmos de planificacin. Algoritmos de planificacin de peticiones Los algoritmos de planificacin de peticiones de lectura y escritura a discos se encargan de registrar dichas peticiones y de responderlas en un tiempo razonable. Los algoritmos ms comunes para esta tarea son: Primero en llegar, primero en ser servido ( FIFO ): Las peticiones son encoladas de acuerdo al orden en que llegaron y de esa misma forma se van leyendo o escribiendo las mismas. La ventaja de este algoritmo es su simplicidad y no causa sobrecarga, su desventaja principal es que no aprovecha para nada ninguna caracterstica de las peticiones, de manera que es muy factible que el brazo del disco se mueva muy ineficientemente, ya que las peticiones pueden tener direcciones en el disco unas muy alejadas de otras. Por ejemplo, si se estn haciendo peticiones a los sectores 6,10,8,21 y 4, las mismas sern resueltas en el mismo orden. _ Primero el ms cercano a la posicin actual: En este algoritmo las peticiones se ordenan de acuerdo a la posicin actual de la cabeza lectora, sirviendo primero a aquellas peticiones ms cercanas y reduciendo, as, el movimiento del brazo, lo cual constituye la ventaja principal de este algoritmo. Su desventaja consiste en que puede haber solicitudes que se queden esperando para siempre, en el infortunado caso de que existan peticiones muy alejadas y en todo momento estn entrando peticiones que estn ms cercanas. Para las peticiones 6,10,8,21 y 4, las mismas sern resueltas en el orden 4,6,8,10 y 21. Por exploracin ( algoritmo del elevador ): En este algoritmo el brazo se estar moviendo en todo momento desde el permetro del disco hacia su centro y viceversa, resolviendo las peticiones que existan en la direccin que tenga en turno. En este caso las peticiones 6,10,8,21 y 4 sern resueltas en el orden 6,10,21,8 y 4; es decir, la posicin actual es 6 y como va hacia los sectores de mayor numeracin (hacia el centro, por ejemplo), en el camino sigue el sector 10, luego el 21 y ese fue el ms central, as que ahora el brazo resolver las peticiones en su camino hacia afuera y la primera que se encuentra es la del sector 8 y luego la 4. La ventaja de este algoritmo es que el brazo se

Lic. Alfredo Trujillo Bentez

Pg. 36 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL mover mucho menos que en FIFO y evita la espera indefinida; su desventaja es que no es justo, ya que no sirve las peticiones en el orden en que llegaron, adems de que las peticiones en los extremos interior y exterior tendrn un tiempo de respuesta un poco mayor. Por exploracin circular: Es una variacin del algoritmo anterior, con la nica diferencia que al llegar a la parte central, el brazo regresa al exterior sin resolver ninguna peticin, lo cual proveer un tiempo de respuesta ms cercana al promedio para todas las peticiones, sin importar si estn cercas del centro o del exterior. Asignacin del espacio de almacenamiento El subsistema de archivos se debe encargar de localizar espacio libre en los medios de almacenamiento para guardar archivos y para despus borrarlos, renombrarlos o agrandarlos. Para ello se vale de localidades especiales que contienen la lista de archivos creados y por cada archivo una serie de direcciones que contienen los datos de los mismos. Esas localidades especiales se llaman directorios. Para asignarle espacio a los archivos existen tres criterios generales que se describen enseguida. Asignacin contigua: Cada directorio contiene la los nombres de archivos y la direccin del bloque inicial de cada archivo, as como el tamao total de los mismos. Por ejemplo, si un archivo comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accesado, el brazo se mover inicialmente al bloque 17 y de ah hasta el 27. Si el archivo es borrado y luego creado otro ms pequeo, quedarn huecos intiles entre archivos tiles, lo cual se llama fragmentacin externa. Asignacin encadenada: Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la direccin del bloque inicial que compone al archivo. Cuando un archivo es ledo, el brazo va a esa direccin inicial y encuentra los datos iniciales junto con la direccin del siguiente bloque y as sucesivamente. Con este criterio no es necesario que los bloques estn contiguos y no existe la fragmentacin externa, pero en cada "eslabn" de la cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se crea en el disco es una lista ligada. Asignacin con ndices ( indexada ): En este esquema se guarda en el directorio un bloque de ndices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de mabnera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al bloque de ndices y otro a la direccin deseada. Este es un esquema excelente para archivos grandes pero no para pequeos, porque la relacin entre bloques destinados para ndices respecto a los asignados para datos es incosteable. Mtodos de acceso en los sistemas de archivos. Los mtodos de acceso se refiere a las capacidades que el subsistema de archivos provee para accesar datos dentro de los directorios y medios de almacenamiento en general. Se ubican tres formas generales: acceso secuencial, acceso directo y acceso directo indexado. Acceso secuencial: Es el mtodo ms lento y consiste en recorrer los componentes de un archivo uno en uno hasta llegar al registro deseado. Se necesita que el orden lgico de los registros sea igual al orden fsico en el medio de almacenamiento. Este tipo de acceso se usa comunmente en cintas y cartuchos. Acceso directo: Permite accesar cualquier sector o registro inmediatamente, por medio de llamadas al sistema como la de seek. Este tipo de acceso es rpido y se usa comnmente en discos duros y discos o archivos manejados en memoria de acceso aleatorio. _ Acceso directo indexado: Este tipo de acceso es til para grandes volmenes de informacin o datos. Consiste en que cada archivo tiene una tabla de apuntadores,

Lic. Alfredo Trujillo Bentez

Pg. 37 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL donde cada apuntador va a la direccin de un bloque de ndices, lo cual permite que el archivo se expanda a travs de un espacio enorme. Consume una cantidad importante de recursos en las tablas de ndices pero es muy rpido. Operaciones soportadas por el subsistema de archivos Independientemente de los algoritmos de asignacin de espacio, de los mtodos de acceso y de la forma de resolver las peticiones de lectura y escritura, el subsistema de archivos debe proveer un conjunto de llamadas al sistema para operar con los datos y de proveer mecanismos de proteccin y seguridad. Las operaciones bsicas que la mayora de los sistemas de archivos soportan son: Crear ( create ) : Permite crear un archivo sin datos, con el propsito de indicar que ese nombre ya est usado y se deben crear las estructuras bsicas para soportarlo. Borrar ( delete ): Eliminar el archivo y liberar los bloques para su uso posterior. Abrir ( open ): Antes de usar un archivo se debe abrir para que el sistema conozca sus atributos, tales como el dueo, la fecha de modificacin, etc. _ Cerrar ( close ): Despus de realizar todas las operaciones deseadas, el archivo debe cerrarse para asegurar su integridad y para liberar recursos de su control en la memoria. Leer o Escribir ( read, write ): Aadir informacin al archivo o leer el caracter o una cadena de caracteres a partir de la posicin actual. _ Concatenar ( append ): Es una forma restringida de la llamada `write', en la cual slo se permite aadir informacin al final del archivo. _ Localizar ( seek ): Para los archivos de acceso directo se permite posicionar el apuntador de lectura o escritura en un registro aleatorio, a veces a partir del inicio o final del archivo. Leer atributos: Permite obtener una estructura con todos los atributos del archivo especificado, tales como permisos de escritura, de borrado, ejecucin, etc. Poner atributos: Permite cambiar los atributos de un archivo, por ejemplo en UNIX, donde todos los dispositivos se manejan como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas. Renombrar ( rename ): Permite cambiarle el nombre e incluso a veces la posicin en la organizacin de directorios del archivo especificado. Los subsistemas de archivos tambin proveen un conjunto de llamadas para operar sobre directorios, las ms comunies son crear, borrar, abrir, cerrar, renombrar y leer. Sus funcionalidades son obvias, pero existen tambin otras dos operaciones no tan comunes que son la de `crear una liga' y la de `destruir la liga'. La operacin de crear una liga sirve para que desde diferentes puntos de la organizacin de directorios se pueda accesar un mismo directorio sin necesidad de copiarlo o duplicarlo. La llamada a `destruir nla liga' lo que hace es eliminar esas referencias, siendo su efecto la de eliminar las ligas y no el directorio real. El directorio real es eliminado hasta que la llmada a `destruir liga' se realiza sobre l. Algunas facilidades extras de los sistemas de archivos Algunos sistemas de archivos proveen herramientas al administrador del sistema para facilitarle la vida. Las ms notables es la facilidad de compartir archivos y los sistemas de `cotas'. La facilidad de compartir archivos se refiere a la posibilidad de que los permisos de los archivos o directorios dejen que un grupo de usuarios puedan accesarlos para diferentes operaciones" leer, escribir, borrar, crear, etc. El dueo verdadero es quien decide qu permisos se aplicarn al grupo e, incluso, a otros usuarios que no formen parte de su grupo. La facilidad de `cotas' se refiere a que el sistema de archivos es capaz de llevar un control para que cada usuario pueda usar un mximo de espacio en disco duro. Cuando el usuario excede ese lmite, el sistema le enva un mensaje y le niega el

Lic. Alfredo Trujillo Bentez

Pg. 38 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL permiso de seguir escribiendo, obligndolo a borrar algunos archivos si es que quiere almacenar otros o que crezcan. La versin de UNIX SunOS contiene esa facilidad. Sistemas de Archivos Aislados Los sistemas de archivos aislados son aquellos que residen en una sola computadora y no existe la posibilidad de que, an estando en una red, otros sistemas puedan usar sus directorios y archivos. Por ejemplo, los archivos en discos duros en el sistema MS-DOS clsico se puede ver en esta categora. Sistemas de Archivos Compartidos o de Red Estos sistemas de archivos es factible accesarlos y usarlos desde otros nodos en una red. Generalmente existe un `servidor' que es la computadora en donde reside el sistema de archivos fsicamente, y por otro lado estn los `clientes', que se valen del servidor para ver sus archivos y directorios de manera como si estuvieran localmente en el cliente. Algunos autores les llaman a estos sistemas de archivos `sistemas de archivos distribudos' lo cual no se va a discutir en este trabajo. Los sistemas de archivos compartidos en red ms populares son los provistos por Netware, el Remote Filke Sharing ( RFS en UNIX ), Network File System ( NFS de Sun Microsystems ) y el Andrew File System ( AFS ). En general, lo que proveen los servidores es un medio de que los clientes, localmente, realicen peticiones de operaciones sobre archivos los cuales con `atrapadas' por un `driver' o un `mdulo' en el ncleo del sistema operativo, el cual se comunica con el servidor a travs de la red y la operacin se ejecuta en el servidor. Existen servidores de tipo "stateless y no-stateless". Un servidor "stateless" no registra el estado de las operaciones sobre los archivos, de manera que el cliente se encarga de todo ese trabajo. La ventaja de este esquema es que si el servidor falla, el cliente no perder informacin ya que sta se guarda en memoria localmente, de manera que cuando el servidor reanude su servicio el cliente proseguir como si nada hubiese sucedido. Con un servidor "no-stateless", esto no es posible. La proteccin sobre las operaciones se lleva a cabo tanto el los clientes como en el servidor: si el usuario quiere ejecutar una operacin indebida sobre un archivo, recibir un mensaje de error y posiblemente se enve un registro al subsistema de `seguridad' para informar al administrador del sistema de dicho intento de violacin. En la prctica, el conjunto de permisos que cada usuario tiene sobre el total de archivos se almacena en estructuras llamadas `listas de acceso' ( access lists ). Tendencias actuales Con el gran auge de las redes de comunicaciones y su incremento en el ancho de banda, la proliferacin de paquetes que ofrecen la comparticin de archivos es comn. Los esquemas ms solicitados en la industria es el poder accesar los grandes volmenes de informacin que residen en grandes servidores desde las computadoras personales y desde otros servidores tambin. Es una realidad que la solucin ms socorrida en las empresas pequeas es usar Novell Netware en un servidor 486 o superior y accesar los archivos desde mquinas similares. A veces se requieren soluciones ms complejas con ambientes heterogneos: diferentes sistemas operativos y diferentes arquitecturas. Uno de los sistemas de archivos ms expandidos en estaciones de trabajo es el NFS, y prcticamente todas las versiones de UNIX traen instalado un cliente y hasta un servidor de este servicio. Es posible as que una gran cantidad de computadoras personales (de 10 a 80 ) accesen grandes volmenes de informacin o paquetera (desde 1 a 8 Gygabytes ) desde una sola estacin de trabajo, e incluso tener la flexibilidad de usar al mismo tiempo servidores de Novell y NFS. Soluciones similares se dan con algunos otros paquetes comerciales, pero basta ya de `goles'. Lo importante aqu es observar que el mundo se va moviendo

Lic. Alfredo Trujillo Bentez

Pg. 39 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL poco a poco hacia soluciones distribudas, y hacia la estandarizacin que, muchas veces, es `de facto'.

Unidad II ADMINISTRACION DE LA MEMORIA


Introduccin Concepto La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. Polticas y Filosofa de la Administracin de la Memoria. La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, as como algunos datos a emplear. Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Mecanismos de Asignacin. Un mecanismo de asignacin determina la cantidad de bloques (particiones) que sern administrados en la memoria. Existen 3 mecanismos de Asignacin: 1. ASIGNACIN DE UNA PARTICIN. En la memoria se considera la existencia de una sola particin, esto es, se tiene la capacidad de ejecutar un proceso. La particin es toda la memoria, cuya administracin corre por cuenta del usuario, o sea, no hay un sistema operativo. 2. ASIGNACIN DE DOS PARTICIONES. La memoria se divide en 2 bloques. En una particin se carga el Sistema Operativo y en la otra el programa del usuario. Es el concepto de Sistema Operativo Monousuario. 3. ASIGNACIN DE MULTIPLES PARTICIONES. La memoria es dividida en varias particiones una para el Sistema Operativo y las dems para los procesos de usuarios u otras funciones especiales del Sistema Operativo. Este es el concepto terico de asignacin de memoria en los Sistemas Operativos de Multiparticiones y de Multitarea.. Estrategias de Asignacin. Una estrategia de asignacin de memoria determina el lugar donde ser cargado un nuevo proceso en base a un criterio. Las estrategias de asignacin son: 1. PRIMER AJUSTE. El Sistema Operativo asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la informacin. La bsqueda de este bloque es de manera secuencial. 2. MEJOR AJUSTE. El sistema operativo busca el bloque de memoria que represente el menor desperdicio segn el requerimiento. 3. PEOR AJUSTE. El sistema operativo asigna el bloque mas grande que encuentre. Lic. Alfredo Trujillo Bentez Pg. 40 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Mtodos de Asignacin de Memoria. Un mtodo de asignacin de memoria es la manera mediante la cual el Sistema Operativo lleva el control de la memoria tratando de que sea lo ms eficiente posible. Los mtodos de asignacin ms comunes son: Segmentacin. Este mtodo consiste en la asignacin de bloques de memoria de tamao variable, llamados segmentos. El tamao de cada segmento ser el requerido segn la peticin, por ejemplo el tamao del proceso a cargar. El tamao mximo para un segmento estar determinado por la capacidad de direccionamiento del hardware de la computadora, esto es, de cuantos bits se dispone para almacenar una direccin. El acceso a cada elemento individual (byte) en la memoria se hace mediante una direccin de memoria que se integra por dos elementos: una direccin de segmento y una de desplazamiento. La combinacin (suma) de la direccin de segmento y la de desplazamiento generan la direccin de memoria absoluta a accesar.

Validacin del Direccionamiento (Segmentacin) Dado que en cada proceso se manejan direcciones lgicas, el sistema operativo debe obtener una direccin lgica. El sistema operativo debe tambin asegurarse de que cada direccin lgica est dentro del rango de direcciones empleado por el proceso. Para esto el sistema operativo implementa la tabla de segmentos como un arreglo de registros base limite como se muestra en la siguiente figura:

Lic. Alfredo Trujillo Bentez

Pg. 41 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Paginacin La paginacin consiste en considerar el espacio de direcciones lgicas de cada proceso como un conjunto de bloques de tamao consistente llamados paginas. Cada direccin lgica manejada para un proceso estar conformada por un par de valores [pagina: desplazamiento]. La memoria fsica se administra implementando bloques de tamao consistente denominados 'marcos'. Obviamente el tamao de un 'marco' debe ser igual al tamao de una pagina. Por lo general el tamao designado para los marcos y pginas es pequeo.

Lic. Alfredo Trujillo Bentez

Pg. 42 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

OPCIONES DE IMPLEMENTACION DE LA TABLA DE PAGINAS 1. - La tabla de paginas se implementa completamente en hardware. VENTAJA: Se obtiene una alta velocidad de acceso a memoria. DESVENTAJA: Resulta problemtica cuando la tabla de paginas debe ser grande. 2. - Implementar la tabla de paginas en la memoria principal. VENTAJA: La tabla de paginas puede crecer segn se requiera. DESVENTAJA: La velocidad de accesar a memoria es relativamente baja, dado que cada referencia a memoria involucra 2 accesos. Direccionamiento MS-DOS MS-DOS (Segmentacin) 8086 (16 Bits)

Lic. Alfredo Trujillo Bentez

Pg. 43 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Capacidad de direccionamiento. 220=1'048,576=1MB. 80286 (16 Bits) Puede funcionar de alguno de los 2 modos: Modo real = 8086 Modo protegido: Para cada programa se implementa una tabla de descriptores. El valor que contenga un registro de segmento se utiliza como un apuntador (selector) a la tabla de descriptores.

Capacidad de direccionamiento. 224=16'777,216=16MB WINDOWS (Segmentacin o Paginacin) - 80386 (32 Bits), 486, Pentium + Capacidad de direccionamiento. 232=4,294'967,296=4GB

Lic. Alfredo Trujillo Bentez

Pg. 44 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Puede funcionar de alguno de los 2 modos: Modo real = 8086 Modo protegido: Para cada programa se implementa una tabla de descriptores. El valor que contenga un registro de segmento se utiliza como un apuntador (selector) a la tabla de descriptores.

FORMATO DE UN DESCRIPTOR

BIT G. Es el bit de Granularidad, especifica si el procesador debe interpretar el valor del campo limite como granularidad de bytes o granularidad de paginas. Si vale 0 indica granularidad de byte (para emular el 286) en caso contrario se utiliza cuando el SO implementa paginacin. BIT B/D: Si el segmento que se esta referenciando no tiene cdigo, este bit recibe el nombre de bit D. Si vale 1 indica que el segmento contiene cdigo para 386(Cdigo Nativo) si vale 0, el segmento contiene cdigo para 286.

Lic. Alfredo Trujillo Bentez

Pg. 45 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Si el segmento contiene datos, este bit recibe el nombre de Bit B. Si vale 1 indica que el segmento es mayor de 64 kB. Bit P. Es el bit de presencia, indica si el segmento est presente en la memoria. Bits DPL. Es el campo de nivel de privilegio del descriptor, especifican el nivel de privilegio del segmento (entre 0 y 3). Bit S. Es el bit de segmento, si vale 1 indica que el descriptor hace referencia a un segmento de Memoria, si vale 0 indica que el descriptor hace referencia a otro tipo de estructura. Bits de Tipo. Estos 3 bits de tipo especifican el tipo de segmento de memoria, por ejemplo: indica si el segmento contiene cdigo o datos protegidos, etc. Bit A. Es el bit de accedido, indica si algn programa ha referenciado el segmento. Si vale 0 indica que el segmento o pgina no ha sido accesado. Segmentacin/Paginacin Tanto la Segmentacin como la paginacin ofrecen significativas ventajas, algunos sistemas (Multics y la Serie 370 de IBM) combinan ambas tcnicas en donde los segmentos tienen un tamao mltiplo de pagina. Este mtodo utiliza Segmentacin y Paginacin tal y como su nombre lo indica, el proceso es el siguiente: - Se hace la solicitud de acceso por medio de una direccin "V" la cual contiene los campos Segmento, Pagina y Desplazamiento. Con el campo Segmento, lo que se trata es de accesar a una Tabla de segmentos, cada campo de dicha tabla apunta directamente a la tabla de paginas asignada para ese segmento conteniendo una direccin que ser sumada a una direccin en la Tabla Asociativa para por fin formar una direccin real con el desplazamiento de "V".

En un sistema con un nmero muy grande de procesos, segmentos o paginas, sta estructura puede consumir una parte muy importante de la memoria real. La cuestin es que la traduccin de direcciones puede realizarse con rapidez pero si se tienen demasiadas tablas, el sistema puede soportar menos procesos y bajar su rendimiento

Lic. Alfredo Trujillo Bentez

Pg. 46 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Segmentacin MS-DOS Si un programa trata de asignar un bloque de memoria de cierto tamao, MS-DOS busca un bloque apropiado, si lo encuentra, se modifica para que pertenezca al proceso solicitado. Si el bloque es demasiado grande, MS-DOS divide en un bloque asignado y un nuevo bloque libre. Cuando un programa libera un bloque de memoria, MS-DOS lo modifica para indicar que est disponible. Cuando un programa reduce la cantidad de memoria que necesita, MS-DOS crea un nuevo bloque de control de memoria para la memoria liberada. TAMAO MAXIMO DE SEGMENTO. En realidad no solo se ampliaron los registros de 32 bits, sino que tambin la longitud mxima del segmento con lo que un segmento puede ocupar hasta 4 GB (232). TIPOS DE SEGMENTOS SEGMENTOS DE DATOS: En el solo se puede leer y escribir, pero no se puede ejecutar cdigo de programa. SEGMENTO DE CODIGO: A diferencia del anterior, en este si se puede ejecutar cdigo pero no puede leer ni escribir. SEGMENTO DEL SISTEMA: Describe diferentes tipos de segmentos que todos ellos sirven para la gestin del modo protegido. MEMORIA VIRTUAL. Es un mtodo mediante el cual, un sistema operativo simula tener mas memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. ESQUEMA BASICO. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar pginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria). En las tablas de pginas se agrega un campo ms a cada entrada: El bit valido/invalido (p), en los procesadores 80386 y posteriores, que indica si la pgina a la que se est haciendo referencia en un momento dado se encuentra en la memoria principal (valido) o en el disco duro (invalido). Cuando el sistema operativo haga referencia a una pgina invalida, deber ir al disco duro y cargarla a memoria principal para continuar el procesamiento. Este proceso se muestra en la siguiente figura:

Lic. Alfredo Trujillo Bentez

Pg. 47 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

TECNICAS DE CARGA. Existen 2 mtodos para cargar programas en memoria: Demanda de pagina. Consiste en iniciar la ejecucin de los procesos sin paginas cargadas, estas se irn cargando conforme el proceso las demande. Prepaginacion. Consiste en que el sistema operativo predice cuales paginas se ocuparan durante la ejecucin de un proceso. ALGORITMOS DE DESCARGA (REEMPLAZO). Se utiliza para determinar cuales paginas sern descargadas hacia el disco duro cuando se quiera cargar nuevas paginas y no haya memoria libre. Existen 3 algoritmos bsicos: MIN. Consiste en descargar la o las paginas que no se necesitaran en el periodo de tiempo mas largo en e l futuro. Esta implementacin es imposible. FIFO. Consiste en tener un contador de tiempo para cada pagina para descargar las mas viejas. LRU (Least Recently Used). Consiste en descargar las ultimas paginas usadas (se usa el pasado para predecir el futuro). Lo utiliza Windows. ESQUEMA PAGINADO WINDOWS '95 Windows '95 implementa memoria virtual mediante un esquema paginado, tomando como base la arquitectura de direccionamiento del procesador Intel 80386 y posteriores (visto anteriormente). El algoritmo de carga/descarga de paginas empleado es el LRU (Least Recently Used) mediante el cual se descargan a disco las paginas menos recientemente usadas. En el disco se genera un archivo de intercambio que contendr las paginas que se vayan descargando. Dado que una pagina puede contener alguno de entre varios tipos de objeto (datos, cdigo no modificable, cdigo modificable, cdigo de ligado dinmico, etc.), cada pagina correspondiente a una aplicacin tiene asignado un manejador (Handler) a un descriptor/paginador (PD) almacenado en ella. Un PD contiene las direcciones de las Lic. Alfredo Trujillo Bentez Pg. 48 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL rutinas utilizadas para la transferencia de paginas entre la memoria fsica y el disco. Cuando se requiera cargar o descargar una pagina, el paginador har una llamada a la funcin apropiada dependiendo del estado que la pagina tenga en ese momento. Los posibles estados de una pagina son los siguientes. Virgen. Significa que el contenido de la pagina no se ha modificado durante su tiempo de vida. Por ejemplo, las paginas de cdigo EXE por lo general permanecen vrgenes. Corruptas. Significa que el contenido de la pagina se ha modificado al menos una vez desde que se cre. Por ejemplo las paginas de datos. Limpia. Significa que el contenido de la pagina corrupta no fue modificado desde la ultima vez que se carg. Sucia. El contenido de una pagina corrupta fue modificado desde la ultima vez que se carg (por lo que ser necesario "guardarlo" nuevamente en el archivo de intercambio) Los nombres y tarea que realizar cada una de las funciones PD son: Pd_virgin. Cargar pagina virgen. Pd_taintedin. Cargar pagina corrupta. Pd_cleanout. Descargar pagina limpia. Pd_dirtyout. Descargar pagina sucia. Pd_virginfree. Liberar pagina virgen. Pd_taintedfree. Liberar pagina corrupta.

Lic. Alfredo Trujillo Bentez

Pg. 49 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

UNIDAD III.- METODOS RECURSOS DE SOFTWARE

PARA

COMPARTIR

INTRODUCCION Compartir un recurso de software significa que 2 o ms procesos puedan utilizar una misma rutina que est en memoria (habiendo una sola instancia de la rutina). La rutina es el recurso que se comparte en los procesos (Justificacin). La comparticin de recursos de software hace que un sistema operativo sea ms flexible y eficiente ya que aumenta la capacidad de atencin de procesos. REQUISITOS Para la comparticin de recursos de software se requiere principalmente que el sistema operativo permita la repeticin de apuntadores en las tablas de segmento o de pagina (dependiendo del mtodo empleado). Adems, si la comparticin ser dinmica, se requiere que el sistema operativo soporte carga/descarga y ligado dinmico, para lo cual se requiere implementar tablas auxiliares como la ART (Tabla de Referencia Activa), la AST (Tabla de Segmento Activa) y la SMT (Tabla de Mapeo de Segmentos). PROCESOS REENTRANTES. Para que sean compartidos eficientemente en un sistema de multiprogramacin, los procesos deben ser concurrentemente reutilizables (tambin llamados procesos puros). Un proceso puro opera solamente sobre variables que estn en registros del CPU o sobre datos que estn en otros segmentos asociados con la tarea; nunca se modifican a s mismos. Ejemplo: Los Archivos Ejecutables (EXE). Ejemplo de Archivos No Reentrantes: Archivos de Comando (COM). RECURSOS COMPARTIDOS ASIGNADOS ESTATICAMENTE. Cuando los procesos compartidos se cargan completamente en memoria desde el inicio de su ejecucin, se dice que la comparticin es esttica. Ejemplo: Rutinas del servicio de Interrupcin del BIOS o MS-DOS. RECURSOS COMPARTIDOS ASIGNADOS DINAMICAMENTE. La comparticin dinmica consiste en cargar en memoria solo la parte requerida de los procesos compartidos. Al necesitarse cdigo que no est en memoria, ste ser cargado durante la ejecucin de las tareas. Ejemplo: Cuadros de Dialogo de Windows. MTODOS PARA LA COMPARTICION DE RECURSOS DE SOFTWARE. Bsicamente existen 2 Mtodos:

Lic. Alfredo Trujillo Bentez

Pg. 50 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL SEGMENTOS COMPARTIDOS. Consiste en que cada proceso tiene una tabla de segmentos asociado con su PCB (Bloque de Control de Procesos) el cual es utilizado por el despachador para definir la tabla de segmentos de hardware cuando a ese proceso se le asigne el CPU. Los segmentos son compartidos cuando las entradas en las tablas de segmentos de dos o ms procesos diferentes apuntan a las mismas localidades de memoria fsica. La comparticin ocurre al nivel de Segmentos. Con esto cualquier informacin puede ser compartida si esta definida como un segmento. Varios segmentos pueden ser compartidos, o sea, un programa compuesto por varios segmentos puede ser compartido. Ejemplo: Considrese el uso de un editor de textos de un sistema de tiempo compartido. En lugar de cargar 'n' copias del cdigo del editor, este ser cargado una sola vez. Si hay varios procesos que necesitan usar este cdigo, sus tablas de segmento contendrn apuntadores a la misma direccin de memoria donde est cargado el cdigo.

PAGINAS COMPARTIDAS. Este mtodo utiliza paginacin como sistema base de la administracin de la memoria. Consiste en cargar una sola instancia de las pginas de cdigo a compartir y colocar apuntadores a estas pginas en las tablas de pginas de todos los procesos que utilizan el recurso. Ejemplo: Utilizando el mismo editor de textos cuyo cdigo ocupa 3 pginas. Se generaran 3 tablas de pagina como se ve en la siguiente figura:

Lic. Alfredo Trujillo Bentez

Pg. 51 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

COMPARTICIN DE RECURSOS DE SOFTWARE EN WINDOWS 3.1 MDULOS. En Windows 3.1 el trmino mdulo describe una coleccin relacionada de cdigo, datos y otros recursos (por ejemplo, mapas de bits) presentes en memoria. Normalmente, tal coleccin conformar o bien un nico programa ejecutable o una biblioteca de ligado dinmico (DLL). Windows 3.1 implementa una estructura de datos conocida como Base de Datos del Modulo (MDB), que identifica todos los mdulos que estn activos en el sistema. La MDB describe una coleccin esencialmente esttica de objetos, en lugar de una coleccin dinmica referenciada por la Base de Datos de Tareas (TDB). Es importante tener un registro de los mdulos cargados en cada instante, ya que tal registro es la base para la comparticin de recursos que implementa Windows 3.1. Por ejemplo, la segunda vez que se ejecuta digamos un editor, Windows 3.1 detecta que los segmentos de cdigo y el mapa de bits que forman el icono, ya estn en uso. En lugar de cargar una segunda copia y ocupar mas memoria, Windows crea referencias adicionales para los recursos que ya estn en uso. Durante la vida del sistema, Windows mantiene una cuenta de uso para cada recurso. Cuando las aplicaciones hacen uso de un recurso, el sistema incrementa la cuenta de referencia. Cuando finaliza la aplicacin, el sistema decrementa la cuenta de referencia. Una cuenta de referencia con valor 0 indica que el recurso ya no est en uso y el sistema puede ocupar la memoria liberada. COMPARTICION DE RECURSOS DE SOFTWARE EN WINDOWS '95 Se implementa mediante el uso de unas estructuras de datos llamadas objetos de ncleo. Una aplicacin Win32 crea, abre y maneja objetos de ncleo con regularidad. El sistema crea y maneja varios tipos de objetos de ncleo como por ejemplo, objetos proceso, objetos suceso, objetos semforo, objetos hilo, etc. Estos objetos se forman llamando a varias funciones de Win32, ejemplo, la funcin CreateFileMapping() provoca que el sistema cree un objeto proyectado en archivo. Cada objeto del ncleo es un bloque de memoria asignado por el Kernel y al que solo puede acceder el Kernel. Este bloque de memoria es una estructura de datos cuyos elementos contienen informacin sobre un objeto. La cantidad y el tipo de estos elementos vara dependiendo del tipo de objeto del ncleo implementado. Lic. Alfredo Trujillo Bentez Pg. 52 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Algunos estarn presentes en todos los tipos, por ejemplo, nombre del objeto, descriptor de seguridad, contador de utilizacin, etc., mientras que otros sern incluidos de acuerdo al tipo de objeto. Por ejemplo, un objeto-proceso contendr una identificacin del proceso, una prioridad de base y un cdigo de salida, mientras que un objetoarchivo contendr un desplazamiento de bytes, un modo de comparticin y un modo de apertura. EL CONTADOR DE UTILIZACIN. Es el Kernel quien tiene el control sobre los objetos de ncleo, no los procesos. Esto es, si un proceso llama a una funcin que crea un objeto de ncleo y despus el proceso termina, no es forzoso que se destruya el objeto del ncleo, dado que si otro proceso est utilizando el objeto de ncleo, el Kernel sabe que no debe destruir el objeto del ncleo, sino hasta que ya no haya procesos utilizndolo. El Kernel sabe cuantos procesos estn utilizando cierto objeto del ncleo, ya que cada objeto del ncleo contiene un contador de utilizacin. El contador de utilizacin es uno de los elementos comunes en todos los tipos de objetos de ncleo. El Kernel incrementa o decrementa el contador de cada objeto segn sea su utilizacin. Un contador con valor 0 (cero) significa que no hay procesos utilizando ese objeto de ncleo, por lo que el Kernel lo destruye.

Lic. Alfredo Trujillo Bentez

Pg. 53 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

UNIDAD IV. MECANISMOS DE PROTECCION


INTRODUCCION. Todo Sistema Operativo debe tener implementado un mdulo dedicado a la proteccin. Se implementa mediante el uso de funciones especialmente diseadas para eso que conforman el nivel 5 en la teora de los Sistemas Operativos en Estratos o Capas. FUNCIONES DE UN SISTEMA DE PROTECCIN. Dado que los sistemas de cmputo se han venido haciendo cada vez ms sofisticados en sus aplicaciones, la necesidad de proteger su integridad, tambin ha crecido. Los aspectos principales de proteccin en un Sistema Operativo son: Proteccin de los procesos del sistema contra los procesos de usuario. Proteccin de los procesos de usuario contra los de otros procesos de usuario. Proteccin de Memoria. Proteccin de los dispositivos. MECANISMOS Y POLTICAS. (LIMITACIONES) La funcin de la proteccin en un sistema computacional es la de proveer un mecanismo para la aplicacin de polticas que gobiernen el uso de los recursos. Estas polticas pueden ser establecidas de varias maneras. Algunas son fijadas durante el diseo del sistema, mientras que otras son formuladas como parte de la administracin en la ejecucin del sistema. Algunas otras son definidas por usuarios individuales para proteger sus archivos y programas. Un sistema de proteccin debe tener la flexibilidad para aplicar las polticas que sean declaradas para ello. Las polticas para el uso de recursos puede variar, dependiendo de la aplicacin y pueden estar sujetas a cambios. Por estas razones, la proteccin no puede ser considerada como un problema que solamente concierne al diseador de un Sistema Operativo, sino que debe considerarse, como una herramienta para los programadores de aplicaciones, de manera que los recursos creados y soportados por un subsistema de aplicacin, puedan ser protegidos contra el mal uso. Un principio importante es la separacin entre poltica y mecanismo. Los mecanismos determinan como ser realizado algo. En contraste, las polticas deciden que es lo que se realizar. Es posible que las polticas cambien de lugar en lugar o de tiempo en tiempo. En el peor de los casos, cada cambio en la poltica requerir un cambio en el subyacente mecanismo. DOMINIO DE PROTECCIN. Un sistema computacional es una coleccin de procesos y objetos. Los objetos involucran tanto objetos hardware (como CPU, segmentos de memoria, impresoras, etc.) y objetos software (como archivos, programas, semforos, etc.). Cada objeto tiene un nombre nico que lo diferenca de los dems objetos del sistema y cada una puede ser accesado solamente mediante operaciones bien definidas. Los objetos son

Lic. Alfredo Trujillo Bentez

Pg. 54 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL esencialmente tipos de datos abstractos. Las posibles operaciones que realice un objeto, dependen de l mismo y sus caractersticas. Por ejemplo, un CPU se utiliza solo para ejecucin; en los segmentos de memoria se puede leer o escribir; los archivos de datos pueden ser creados, abiertos, escritos, ledos, cerrados y borrados; un archivo de programa puede ser ledo, escrito, ejecutado y borrado. Obviamente, un proceso tendr permitido accesar solamente a aquellos recursos que est autorizado a accesar solamente a aquellos recursos que est autorizado a accesar. Adems, en un momento dado podr accesar a aquellos recursos que requiera para realizar su tarea. Este requerimiento comnmente llamado el principio "Need_To_Know" es til en la limitacin de la cantidad de dao que un proceso defectuoso pueda causar al sistema. Por ejemplo, cuando un proceso "P" invoque al procedimiento "A", al procedimiento le ser permitido accesar solamente sus propias variables y los parmetros actuales pasados a l; no podr accesar todas las variables del proceso "P". Similarmente considrese el caso de que el proceso "P" invoque algn compilador para compilar algn archivo. El compilador no podr accesar cualquier archivo arbitrariamente, sino a un subconjunto bien definido de archivos (tales como: archivos fuente, archivos de listado, etc.) relacionados al archivo que ser compilado. De manera inversa, el compilador no puede tener archivos privados que utilice para propsitos de conteo y optimizacin, los cuales no podrn ser accesados por el proceso "P". Para facilitar este esquema se introduce el concepto de dominio de proteccin. Un proceso opera dentro de un dominio de proteccin, el cual especifica los recursos que el proceso puede accesar. Cada dominio define un conjunto de objetos y los tipos de operaciones que pueden ser realizadas sobre cada objeto. La capacidad de ejecutar una operacin sobre un objeto es un derecho de acceso. Un dominio es una coleccin de derechos de acceso, cada uno de los cuales es un par ordenado <Nombre_Objeto, Conjunto_de_Operaciones>. Por ejemplo, si el dominio "D" tiene derecho de acceso <Archivo F, {Leer, Escribir}>, entonces un proceso que se est ejecutando en el dominio "D" puede tanto leer como escribir en el archivo F; no podr realizar alguna otra operacin sobre este objeto. Los dominios de proteccin no necesitan ser distintos; por el contrario, pueden compartir derechos de acceso. Por ejemplo; en la siguiente figura: D1 <O3, {Leer, Escribir}> <O1, {Leer, Escribir}> D2 <O2, {Escribir}> <O4, {Imprimir}> D3 <01, {Ejecutar}> <O3, {Leer}> <O4, {Imprimir}> Se tienen 3 dominios de proteccin: D1, D2 y D3. El derecho de acceso <O4, Imprimir> est compartido por los dominios "D2" y "D3". Esto implica que un proceso ejecutndose en el dominio "D1" puede tanto leer como escribir sobre el objeto "O1"; mientras que ejecutndose en el dominio "D3", el proceso podr solamente ejecutar ese mismo objeto. IMPLANTACION DE MATRICES CON DERECHOS DE ACCESO. Un modelo de proteccin puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de acceso. Dado que los objetos son definidos explcitamente por la columna, se puede Lic. Alfredo Trujillo Bentez Pg. 55 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutndose en el dominio "Dj" puede realizar sobre el objeto "Oj". Considrese la siguiente matriz de acceso: Dominio \ Objeto D1 D2 D3 D4 Leer Escribir Leer Ejecutar Leer Escribir A1 Leer A2 A3 Leer Leer Imprimir COM1 LPT1

Hay 4 dominios y 5 objetos: 3 Archivos ("A1", "A2", "A3") 1 Puerto Serial y 1 impresora. Cuando un proceso se ejecuta en O1, puede leer los archivos "A1" y "A3". Un proceso ejecutndose en el dominio "D4" tiene los mismos privilegios que en "D1", pero adems puede escribir en los archivos. Ntese que en el puerto serial y la impresora solo se pueden ser ejecutados por procesos del dominio "D2". ESTRUCTURAS DE PROTECCIN DINAMICAS. Las matrices de acceso vistas hasta el momento, en las que no cambian los derechos en cada dominio durante su ejecucin, son un ejemplo de Estructuras de Proteccin Estticas. Con el fin de ofrecer flexibilidad y de implementar eficientemente la proteccin, un Sistema Operativo debe soportar cambios en los derechos de acceso. Para esto se requiere implementar alguna estructura de proteccin dinmica. En este caso continuaremos considerando las matrices de acceso, aunque en su versin dinmica. Bsicamente se requieren cuatro nuevos derechos de acceso: Copia, Cambio, Propietario y Control. DERECHO DE ACCESO COPIA. Este derecho de acceso da la facultad a un proceso de copiar derechos existentes en un dominio hacia otro dominio para el objeto en cuestin. O sea, este derecho genera copias en columnas. Por ejemplo, considrese la siguiente matriz de acceso: Archivo 1 D1 D2 D3 D4 Leer
+

Archivo 1 Leer+ Escribir

COM1 Enviar+

Impresora

Escribir

Recibir Imprimir

En este caso estar indicado el derecho copia aadiendo el signo ( ) al nombre de los derechos que pueden ser copiados. En la tabla se indica que un proceso ejecutndose en el dominio 1 podr copiar hacia cualquier otro dominio, el derecho enviar sobre el objeto "COM1" y que un proceso ejecutndose en el dominio "D2" podr copiar el derecho "Leer" hacia cualquier otro dominio sobre el objeto "Archivo2". De esta manera, en algn momento posterior, la situacin de la tabla podra ser la siguiente:

Lic. Alfredo Trujillo Bentez

Pg. 56 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

Archivo 1 D1 D2 D3 D4 Leer Escribir

Archivo 2 Leer Leer+ Escribir

COM 1 Enviar+

Impresora

Recibir Enviar Imprimir

En la que se ha copiado el derecho "Enviar" del dominio "D1" al dominio "D4" sobre el objeto "COM1" y se ha copiado el derecho "Leer" del dominio "D2" al dominio "D1" sobre el objeto "Archivo 2". Puede observarse que los derechos "copiados" no contienen el signo (+), o sea, se ha realizado una copia limitada. En general se podra hablar de 3 variantes del derecho "copia": Copia Limitada, Copia Completa, Translacin. COPIA LIMITADA. La copia no incluye el derecho "Copia", con lo que no se podrn hacer copias sucesivas del derecho. Se puede indicar con el signo (+). COPIA COMPLETA. La copia incluye el derecho "Copia", por lo que se pueden realizar copias sucesivas del derecho. Se puede indicar con el signo (*). TRANSLACIN. El derecho en cuestin junto con el derecho copia se eliminan del dominio original y se coloca en el nuevo dominio. Esta es una forma bsica de retirar derechos de un dominio para asignarlo a otro. Se puede indicar con el signo (?). DERECHO DE ACCESO CAMBIO. Este derecho de acceso indica la posibilidad de un proceso para cambiarse de un dominio a otro. La operacin cambio acta sobre dominios, o sea, en este caso los dominios son los objetos. Entonces, para considerar este derecho de acceso se debern incluir los dominios como objetos adicionales en la matriz de acceso. Considrese la siguiente matriz de acceso:

Arch1

Arch2

COM1 Enviar+

Impresora D1

D2

D3

D4 Cambio(a)

D1 Escribir Leer D2 D3 D4 Leer Leer Escribir

Cambio(b) Recibir Enviar Imprimir Cambio(c)

Esta tabla indica que un proceso ejecutndose en "D1" puede cambiarse al dominio "D4" (a); un proceso ejecutndose en "D2" puede cambiarse a "D3"(b) y un proceso ejecutndose en el dominio "D4" puede cambiarse a "D1"(c).

Lic. Alfredo Trujillo Bentez

Pg. 57 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL MECANISMOS DE PROTECION DE WINDOWS '95 PROTECCION DE MEMORIA Siempre que una aplicacin intenta acceder a una zona de memoria que no est comprendida dentro de su mapa actual de memoria, el procesador 386 genera una interrupcin y pasa al sistema operativo un conjunto de informacin relativa al problema. 1. Esto se logra por medio de tablas de pginas que describen exactamente las reas de memoria fsica a las que un programa puede acceder. 2. Un indicador de lectura/escritura para impedir modificar una pgina de solo lectura o de cdigo de programa. 3. Un indicador de usuario/supervisor que permite al sistema operativo proteger su propia memoria de cualquier intento de acceso. PROTECCION DE DISPOSITIVOS La proteccin de dispositivos es otra rea a tratar dentro de Windows '95. En la implementacin de la proteccin de dispositivos se toman en cuenta la referencia de direccin de entrada /salida y una IRQ (Solicitud de Interrupcion) con las que se protege del uso mal administrado o concurrente (que dos usuarios traten de escribir simultneamente a el). PROTECCION DEL SISTEMA OPERATIVO El objetivo de establecer este tipo de proteccin es el de impedir que un programa pueda corromper la operacin del sistema. El ncleo de Windows '95 tiene que ser el nico software capaz de realizar operaciones de conmutacin de tareas, manejo de Interrupciones, etc. Esto se soluciona por medio de la asignacin de 4 niveles de proteccin establecidos a travs de los bits DPL que se encuentran en el Descriptor. El primero (Nivel 0) propone que un software con ese privilegio puede hacer lo que quiera: cambiar tablas de pgina, conmutar entre modos del procesador, activar y desactivar pginas, parar el procesador, etc. El segundo y tercero (niveles 1y2) hasta la fecha no se ha requerido de ellos, es por eso que no existe tanta documentacin acerca de ellos. Por ltimo, el cuarto nivel (3) en el que se ejecutan todas las aplicaciones. Al tener este privilegio y querer ejecutar cualquier operacin del nivel 0 harn que el procesador genere una interrupcin.

Lic. Alfredo Trujillo Bentez

Pg. 58 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

UNIDAD V. ADMINISTRACION DE ARCHIVOS


INTRODUCCION Un Archivo es un conjunto de elementos de informacin relacionados entre si y que fueron definidos por su creador. Por lo general, los archivos representan datos y programas. Un archivo de datos puede ser numrico, alfabtico o binario. Los archivos pueden ser de formato libre, como los archivos de texto, o pueden estar rigurosamente formateados. En general, un archivo es una secuencia de bits, bytes, lneas o registros cuyo significado es definido por el creador del archivo y por el usuario. Un archivo se puede manipular como una unidad mediante operaciones tales como abrir, cerrar, crear, destruir, copiar, renombrar y listar. Los elementos de informacin individuales que conforman un archivo se pueden manipular con acciones tales como leer, escribir, modificar y eliminar. De acuerdo a las caractersticas y tipo de trabajo que se realicen sobre los archivos, estos pueden caracterizarse por su: Volatilidad, Actividad y Tamao. VOLATILIDAD. Se refiere a la frecuencia con la que se inserta o elimina informacin. ACTIVIDAD. Se refiere al porcentaje de los elementos de informacin de un archivo al que se tuvo acceso en un periodo de tiempo dado. TAMAO. Se refiere a la cantidad de informacin que conforma el archivo. ARCHIVO FISICO. La informacin vista desde la perspectiva de hardware. Por ejemplo, el archivo 1 est formado por los sectores 3, 10 y 15 del archivo. Otro ejemplo: el archivo X es la secuencia de bytes localizados en la RAM en el bloque 0A703h:03000h al 0A703h:04200h. ARCHIVO LOGICO. Son datos cuyo significado esta definido por el usuario. Ejemplo, el archivo Y es la informacin de 1000 artculos, cada uno con su cdigo, descripcin y precio. Generalmente, un archivo lgico se representa de manera tabular. EL SISTEMA DE ARCHIVOS DE UN SISTEMA OPERATIVO. Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos. COMPONENTES DEL SISTEMA DE ARCHIVOS. En general, un Sistema de Archivos est compuesto por: Mtodos De Acceso, Administracin De Archivos, Administracin De Almacenamiento Secundario,

Lic. Alfredo Trujillo Bentez

Pg. 59 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Mecanismos De Integridad.

Mtodos De Acceso. Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. Administracin De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos. Administracin De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la informacin de un archivo, de tal manera que solo la informacin que deba estar en el, se encuentre ah. ORGANIZACIN DE ARCHIVOS. Se refiere a las diferentes maneras en las que puede ser organizada la informacin de los archivos, as como las diferentes maneras en que sta puede ser accesada. Dado que hay 2 niveles de visin de los archivos (fsico y lgico), se puede hablar tambin de 2 aspectos de organizacin de archivos: Organizacin de archivos lgicos y de archivos fsicos. DE ARCHIVOS LOGICOS. Contempla la organizacin desde el punto de vista lgico. Por ejemplo, secuencial, directo, etc. DE ARCHIVOS FISICOS. Contempla la administracin de archivos desde la perspectiva fsica, particularmente la organizacin del almacenamiento en disco a nivel de pistas y sectores. Este tipo de organizacin muestra a su vez, 2 aspectos importantes: Mtodos De Asignacin De Espacio Libre y Asignacin De Espacio De Almacenamiento Del Archivo.

METODOS DE ASIGNACION DE ESPACIO LIBRE


Un mtodo de asignacin de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no estn siendo ocupados. Para el control del espacio libre se puede utilizar como base alguno de los mtodos tericos: Vector de Bits, Lista Ligada, Por Agrupacion y por Contador. VECTOR DE BITS Se tiene un arreglo de bits, el nmero de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 estn ocupados su representacion ser:

LISTA LIGADA Existe una cabeceraen la que se tiene la direccion del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente bloque, y as sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre.

Lic. Alfredo Trujillo Bentez

Pg. 60 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

POR AGRUPACION Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacios, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores.

POR CONTADOR Aqui, por cada conjunto de bloques contiguos que estn vacios, se tiene por cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacios.

Lic. Alfredo Trujillo Bentez

Pg. 61 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

MTODOS DE ASIGNACIN DE ESPACIO EN DISCO.


Un mtodo de asignacin de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar bsicamente la identificacin del archivo, sector de inicio y sector final. Para el control del espacio ocupado en disco se puede utilizar como base alguno de los mtodos tericos: Asignacin Contigua, Asignacin Ligada, Asignacin Indexada. ASIGNACIN CONTIGUA. Este mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo:

Lic. Alfredo Trujillo Bentez

Pg. 62 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

VENTAJAS

DESVENTAJAS

- La cabeza de lectura no se mueve demasiado - Produce fragmentacin externa. en la lectura de un archivo. ASIGNACIN LIGADA En este mtodo, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo:

Lic. Alfredo Trujillo Bentez

Pg. 63 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

VENTAJAS - No produce fragmentacin externa.

DESVENTAJAS La cabeza de lectura se puede mover demasiado en la lectura de un archivo. - Si una liga se pierde, se perder el archivo completo. Es ineficiente para la implementacin de archivos directos. Se necesita un campo extra para el apuntador.

ASIGNACIN INDEXADA Como ya se vio, la asignacin ligada resuelve problemas de fragmentacin externa, sin embargo, la asignacin ligada no soporta eficientemente el acceso directo a los archivos. La asignacin indexada resuelve este problema poniendo todos los apuntadores en una sola localidad: El bloque ndice. Cada archivo tiene su bloque ndice, El cual es un arreglo de direcciones de bloques de disco. La i-sima entrada en el bloque ndice apunta al i-simo bloque que conforma el archivo. En el directorio se controla la direccin del bloque ndice de cada archivo, por ejemplo:

Lic. Alfredo Trujillo Bentez

Pg. 64 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

VENTAJAS

DESVENTAJAS

No produce fragmentacin externa. Existe desperdicio cuando hay archivos muy Eficiente para la implementacin de archivos chicos. directos. Desbordamiento de bloque ndice. (Solucin: creacin de un esquema ligado; el ultimo bloque ndice apunta a otro ndice) MTODO FAT (MS-DOS) Un aspecto importante de cualquier Sistema Operativo es la manera de gestionar los archivos. En el antiguo MS-DOS, la gestin de los archivos era casi todo lo que haca el Sistema Operativo, esencialmente cuando se ejecutaba Windows de 16 bits sobre l. Windows de 16 bits se ocupaba de todo a excepcin de la manipulacin de los discos fijos y flexibles, que los dejaba para MS-DOS. El objetivo de la FAT es el de asignar espacio en disco para archivos. Esta contiene una entrada para cada grupo que est en el disco. Cada grupo que est en el disco. Cada grupo es un conjunto de sectores. Al querer crear un archivo o revisar uno existente, el sistema operativo revisa las entradas que estn asociadas a la FAT de acuerdo con la ubicacin del archivo. Despues de la version 3, la entrada depende del numero de cluster, o sea, que si excede de 4096 bytes se utilizarn 16 bits para el direccionamiento. El area de sistema tiene 3 componentes: Registro de arranque, FAT y directorio. La tabla tiene una captacion por bloque, sta define cuantos bloques tiene el primer archivo. Esta ranura de la FAT contiene el nmero de bloque del siguiente bloque. METODO VFAT La VFAT emplea la misma tcnica que la FAT, a diferencia de que la VFAT la implementa Windows '95 con direccionamiento a 32 bits. En s ste mdulo de 32 bits

Lic. Alfredo Trujillo Bentez

Pg. 65 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL est escrito en codigo reentrante, lo que permite que multiples hebras concurrentes ejecuten el cdigo del sistema de archivos.

UNIDAD VI PROGRAMACION DEL SISTEMA


El BIOS COMO ARRANCA EL DOS Cuando se enciende la computadora USO DE LA MEMORIA Direcciones de segmento y desplazamiento El conjunto de registros del PC MODELOS DE MEMORIA INTERRUPCIONES Uso de los servicios del DOS EL SISTEMA DE ARCHIVOS DEL DOS (PAG. 307 PC INTERNO) COMPRESIN DE ARCHIVOS

UNIDAD III COMANDOS DEL MS-DOS


Comandos internos Comandos externos Archivos de lotes o Batch Uso del config.sys Uso del autoexec.bat

UNIDAD IV UTILERIAS DEL DOS


DEFRAG SCAN

ENSAMBLADOR
Equivalencias 1 Byte = 8 bits

Lic. Alfredo Trujillo Bentez

Pg. 66 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL 1 1 1 1 palabra = palabra Doble = palabra Cuadruple Prrafo = 2 4 = 16 bytes bytes 8 bytes Bytes

SEGMENTOS Y DIRECCIONAMIENTO Un segmento es un rea especial en un programa que inicia en un lmite de un prrafo, esto es, en una localidad regularmente divisible entre 16 o 10 hex. Aunque un segmento puede estar ubicado casi en cualquier lugar de la memoria y, en modo real, puede ser hasta de 64K, solo necesita tanto espacio como el programa requiera para su ejecucin. Segmento de cdigo (CS) Contiene las instrucciones de mquina que son ejecutadas. Por lo comn, la primera instruccin ejecutable est en el inicio del segmento, y el sistema operativo enlaza a esa localidad para iniciar la ejecucin del programa. Como su nombre lo indica, el registro del CS direcciona el segmento de cdigo. Si su rea de cdigo requiere mas de 64K, su programa puede necesitar definir mas de un segmento de cdigo. Segmento de Datos(DS) Contine datos, constantes y reas de trabajo definidos por el programa. El registro DS direcciona el segmento de datos. Si su rea de datos requiere de mas de 64K, su programa puede necesitar definir mas de un segmento de datos. Segmento de pila(SS) En trminos sencillos, la pila contiene los daos y direcciones que usted necesita guardar temporalmente o para el uso de sus llamadas subrutinas. El registro del segmento de pila direcciona el segmento de pila. Lmites de los segmentos La direccin de un segmento siempre comienza en el inicio de un prrafo, es decir, en una localidad divisible entre 16 o 10. Vea el siguiente mapa de memoria: PA RR AF O 1 2 3 4 SEG Desp DESPLAZAMIENTOS ME laza BYT NTO mien E to 0000 0000 1 2 3 4 5 6 7 8 9 A B C D E F 12 8 0000 0010 1 2 3 4 5 6 7 8 9 A B C D E F 12 8 0000 0020 12 256 8 BYTES 0000 0030 12 8 Pg. 67 de 76

Lic. Alfredo Trujillo Bentez

SISTEMAS OPERATIVOS I CENTRO CULTURAL 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 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 0050 0060 0070 0080 0090 00A 0 00B 0 00C 0 00D 0 00E 0 00F0 0100 0110 0120 0130 0140 0150 0160 0170 0180 0190 010 01B 0 01C 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12

Lic. Alfredo Trujillo Bentez

Pg. 68 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0 01D 0 01E 0 01F0 0200 0210 0220 0230 0240 0250 0260 0270 0280 0290 020 02B 0 02C 0 02D 0 02E 0 02F0 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8 12 8

La columna segmento indica una direccin que fue asignada a un segmento, ya sea segmento de datos, de cdigo o de pila. La columna desplazamiento, indica el desplazamiento que tendr todo ese segmento La unin del segmento con el desplazamiento forman la direccin real de los datos o programas. Por ejemplo: En la direccin 0000:0160 nos indica que en el segmento 0000 , en el desplazamiento 0160 se localizan ciertos datos.

Lic. Alfredo Trujillo Bentez

Pg. 69 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL El nmero mximo que puede alcanzar un desplazamiento dentro de un segmento es FFFF (note que la direccin del segmento y la desplazamiento se separa por dos puntos, en donde la parte a la izquierda de los dos puntos es considerada el segmento, y la parte de la derecha la de desplazamiento u offset). Por lo tanto al alcanzar la seccin de desplazamiento su punto alto, se alcanzaron 65536 prrafos de 16 Bytes cada uno, es decir, por cada cambio de segmento se estan direccionando 64 KB. 0000:0000 0000:0100 256 BYTES 0000:1000 4096 BYTES 0001:0000 65536 BYTES (64 kb) REGISTROS Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son direccionables por medio de un nombre. Los bits, por convencin, se enumeran de derecha a izquierda, como en: 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Registros de segmento Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para direccionamiento conocida como el segmento actual. Como ya se ha dicho, un segmento se alinea en un lmite de prrafo. REGISTRO CS El dos almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento, mas un valor de desplazamiento en el registro de apuntador de instruccin (IP), indica la direccin de una instruccin que es buscada para su ejecucin. Para propsitos de programacin normal, no necesita referenciar el registro CS. REGISTRO DS La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. En trminos sencillos, esta direccin, mas un valor de desplazamiento en el registro en una instruccin, genera una referencia a la localidad de un byte especfico en el segmento de datos. REGISTRO SS Este registro permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el registro SS. Esta direccin de segmento, mas un valor de desplazamiento en el registro del apuntador de la pila (SS), indica la palabra actual en la pila que esta siendo direccionada. Para propsitos de programacin, no se necesita referenciar el registro SS.

Lic. Alfredo Trujillo Bentez

Pg. 70 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL REGISTRO APUNTADOR DE INSTRUCCIONES (IP) Contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta. El IP est asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento de cdigo que se est ejecutando actualmente. REGISTROS APUNTADOR (SP) Este registro se usa en combinacin con el SS, prcticamente el SP es el registro de desplazamiento del SS, y se refiere a la palabra actual que est siendo procesada. REGISTROS DE PROPOSITO GENERAL. Los registros de propsito general AX, BX, CX, DX son los caballos de batalla del sistema. Son nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ltimo byte de la izquierda es la parte alta, y el ltimo byte de la derecha es la parte baja. Por ejemplo, el registro CX consta de una parte alta (CH) y una parte baja (CL) y nosotros nos podemos referir a cualquier parte por su nombre. Ahora veamos cual es el uso de cada registro de propsito general. REGISTRO AX Es el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. Tambin, algunas operaciones generan cdigo ms eficiente si se refieren al AX en lugar de los otros registros. AX AH AL REGISTRO BX Es conocido como el registro base ya que es el nico registro de propsito general que puede ser un ndice para direccionamiento indexado. Tambin es comn utilizar el BX para clculos. BX BH BL REGISTRO CX Es conocido como el registro contador. Puede contener un valor para controlar el nmero de veces que un ciclo se repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda. El CX tambin es usado para muchos clculos. REGISTRO DX Es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos.

Lic. Alfredo Trujillo Bentez

Pg. 71 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

REGISTROS INDICE Los registros SI y DI estan disponibles para direccionamiento indexado y para sumas y restas. REGISTROS SI (Source Index) Registro fuente es requerido por algunas operaciones con cadenas, en este contexto el SI est relacionado con el registro DS. REGISTROS DI (Destination Index) ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres, este registro esta asociado con el registro ES.

REGISTRO DE BANDERAS Estos registros de banderas se utilizan para indicar el estado actual de la mquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmtica cambian el estado de las banderas, algunas de cuyas instrucciones pueden realizar pruebas para determinar la accin subsecuente. Los bits de las banderas son como siguen: OF(Overflow Desbordamiento).-Indica desbordamiento de un bit de orden alto (mas a la izquierda) despues de una operacin aritmtica. DF(direccin).-Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres. IF(Interrupcin).-Indica que una interrupcin externa, como la entrada desde el teclado sea procesada o ignorada. TF(trampa).-Permite la operacin del procesador en modo de un paso. Los programas depuradores, como DEBUG, activan esta bandera de manera que el programador pueda avanzar en la ejecucin de una sola instruccin a un tiempo, para examinar el efecto de esa instruccin sobre los registros y la memoria. SF(signo).-Contiene el signo resultante de una operacin aritmtica (0=positivo 1=negativo). ZF(Cero).- indica el resultado de una operacin aritmtica o de comparacin (0=resultado diferente de cero y 1=resultado igual a cero). AF.-(acarreo auxiliar).-Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica especializada. PF(Paridad).-Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden (mas a la derecha). CF(Acarreo).-Contiene el acarreo de orden mas alto (mas a la izquierda) despus de una operacin aritmtica; tambin lleva el contenido del ltimo bit en una operacin de corrimiento o de rotacin. Las banderas mas importantes son O, S, Z, y C para operaciones de comparacin y aritmticas y D para operaciones de cadenas de caracteres.

Lic. Alfredo Trujillo Bentez

Pg. 72 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL

PROGRAMACION EN EL SISTEMA OPERATIVO


Creando Un programa con DEBUG Debug es un comando de MSDOS que nos permite navegar por los registros del procesador, as como visualizar algunos puntos de la memoria, extraer de ella e ingresar datos. Tambien por medio del DEBUG podemos crear un programa sin necesidad de tener un editor y un traductor de cdigo mquina (ensamblador). Comandos de DEBUG DEBUG utiliza para cada unos de sus procesos, una serie de comandos de una sola letra, a continuacin se define cada uno de ellos. A Ensamblar instrucciones simblicas y pasarlas a cdigo de mquina D Mostrar el contenido de un rea de memoria E Introducir datos en memoria, iniciando e una localidad especfica G Correr el programa ejecutable que se encuentra en memoria N Nombrar un programa P Proceder o ejecutar un conjunto de instrucciones Q Salir de la sesin con DEBUG R Mostrar el contenido de uno o mas registros T rastrear la instruccin de una instruccin U Desensamblar cdigo de mquina y pasarlo a cdigo simblico W Escribir o grabar un programa en disco. DESPLIEGUE DE DEBUG

Introducir un programa en cdigo mquina Debug -E CS:100 B8 23 01 05 25 00 -E CS:106 B8 D8 03 D8 8B CB -E CS:10C 2B C8 2B C0 90 -T (ejecutar Trace hasta que aparezca la instruccin NOP) Para volver a ejecutar el anterior programa, debemos inicializar el registro IP de nuevo en 100 que es donde comienza el cdigo R IP(enter) 100(enter) R para ver si cambi el valor del registro IP Para ver el cdigo completo de mi programa puedo ejecutar el desplegado de la memoria apartir de la direccin en donde se encuentra mi programa: D cs:100(enter)

Lic. Alfredo Trujillo Bentez

Pg. 73 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Introducir un programa simblico en ensamblador En el ejemplo anterior utilizbamos el comando de DEBUG E, para introducir cdigo directamente en la memoria, ahora en cdigo simblico, nosotros utilizaremos el comando A para ensamblar este cdigo. A 100(enter) Mov al,25(enter) Mov bl,32(enter) Add al,bl(enter) Nop (enter)(enter) Cuando nos salimos del comando A, automticamente se convierte el cdigo simblico a lenguaje mquina. Si queremos ver ese contenido, podemos utilizar el comando U (desensamblar), es decir convierte el cdigo mquina a un lenguaje simblico que yo pueda entender de las direcciones de memoria que te estoy solicitando. -U 100,106(enter) y DEBUG me mostrar algo similar a lo siguiente: 0B48:0100 B025 MOV AL,25 0B48:0102 B332 MOV BL,32 0B48:0104 00D8 ADD AL,BL 0B48:0106 90 NOP LA INSTRUCCIN INT El BIOS y el DOS, cuentan con un conjunto de programas, las cuales tienen algunas funciones ya definidas. Ingrese el siguiente programa: Mov ah,30 Int 21 Nop Ejecutelo con el comando T, pero cuando llegue a la interrupcin ejecute esa lnea con P Obtener la fecha actual Mov AH,2A Int 21 Nop AL CX DH DL dia de la semana (donde 0=Domingo) ao (en hexadecimal; por ejemplo, 07CDH=1997) mes(01 al 12) Da del mes (01 al 31)

INSTRUCCIONES DE ENSAMBLADOR Comentarios.- Para generar un comentario en ensamblador, se utiliza el punto y coma (;) Identificadores.-Es un nombre que se aplica a elementos en el programa. Un identificador puede ser un nombre que se refiere a un dato, o puede ser una etiqueta que se refiere a algn sector del cdigo.

Lic. Alfredo Trujillo Bentez

Pg. 74 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL Directivas.-Ensamblador utiliza algunas secciones para propsitos especiales, a esas secciones, ensamblador las llama directivas. Directivas Directiva Page Indica el nmero mximo de lneas a mostrar en una pgina. Page 60,132 Directiva Title Se utiliza para poner el titulo al programa cuando se imprime. Directiva Title programa en ensamblador de lectura de disco Directiva Segment Esta directiva se utiliza para definir un segmento de datos, de codigo y de pila. Vea la sintaxis para esta diectiva. Nombre Segment alineacin combinar clase Nombre ends Donde; Alineacin es la direccin donde inicia el segmento, si ponemos PARA indica que el segmento inicia en el borde de un prrafo. Combinar se utiliza para indicar si se combina el segmento con otros segmentos como snack , common o public. Clase se utiliza para agrupar segmentos, vea el siguiente ejemplo sobre la directiva de segment.

Nombre

segment

para

stack stack

Directiva proc Esta directiva define el inicio de un procedimiento en el segmento de cdigo. Con ende se finaliza un procedimiento. Directiva assume Se utiliza para definir el propsito de cada segmento definido. Ejemplo de un programa en ensamblador.

Lic. Alfredo Trujillo Bentez

Pg. 75 de 76

SISTEMAS OPERATIVOS I CENTRO CULTURAL PAGE 60,132 TITLE TEST1 ESTRUCTURA DE UN PROGRAMA .EXE ;INICIO DEL SEGMENTO DE PILA PILA SEGMENT PARA STACK STACK PILA ENDS ;INICIO DEL SEGMENTO DE DATOS DATOS SEGMENT PARA DATA DATOS ENDS ;INICIO DEL SEGMENTO DE CODIGO CODIGO SEGMENT PARA CODE INICIO PROC FAR ASSUME SS:PILA,DS:DATOS,CS:CODIGO MOV AX,DATOS MOV DS,AX MOV AX,4C00 INT 21 INICIO ENDP CODIGO ENDS END BEGN PROGRAMAS COM PROGRAMAS EXE

WINDOWS 95 PROCESOS, SUBPROCESOS Y MULTITAREAS ADMINISTRACIN DE LA MEMORIA EL SHELL OLE EL API EL REGISTRO WINDOWS 2000

Lic. Alfredo Trujillo Bentez

Pg. 76 de 76