You are on page 1of 54

SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS UNIDAD I INTRODUCCION A LOS SISTEMAS OPERATIVOS


1.1 Concepto y funciones

Sistema Operativo Es el conjunto de programas que establecen al usuario una interfaz (medio de comunicacin) con la computadora (cpu) y sus perifricos. Un sistema operativo est compuesto por una serie de programas dispuestos ya sea en el software o en la memoria fija que hacen al hardware utilizable. Un sistema operativo (SO) es un conjunto de programas destinados a permitir la comunicacin del usuario con un ordenador y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la mquina desde los niveles ms bsicos. Otros conceptos: Herramientas para poder trabajar con software. Programa que permite la interfaz entre el hombre y la computadora. Programa de arranque. Software que controla el hardware. Administrador de recursos del sistema de cmputo. Conjunto de programas que se integran con el hardware para facilitar al usuario, el aprovechamiento de los recursos disponibles.

Funciones de un Sistema Operativo 1. 2. 3. 4. Establecer una interfaz entre el usuario, el hardware y el software. Controlar estrictamente los dispositivos (perifricos, circuitos, tarjetas, memoria, disco, etc). Controlar procesos (funciones, tareas) en el sistema. Detectar errores en el sistema. Avisa por medio de mensajes la presencia de un error, por ejemplo, cuando queremos leer un archivo en la unidad de 3 y no hemos introducido el disquet. 5. Planificar recursos entre usuarios. En sistemas compartidos, el sistema operativo asigna recursos y da servicio a todos los usuarios. 6. Recuperarse de errores. Lo que permite no interrumpir el funcionamiento normal del sistema. 7. Compartir el hardware entre los usuarios. Recursos que administra el s.o. en el sistema 1. 2. 3. 4. El (los) procesador(es). El almacenamiento primario (memoria RAM) y secundario (unidades de disco). Dispositivos de entrada/salida (monitor, teclado, micrfonos, lectores, escner, mouse). Datos.

SISTEMAS OPERATIVOS
Cmo trabaja un sistema operativo? El sistema operativo administra la ejecucin de las operaciones en el sistema de dos maneras: 1. En serie 2. En paralelo (concurrente)

En un trabajo en serie el sistema operativo va Hay un tiempo determinado en cada tarea para su atendiendo las operaciones una por una. ejecucin. Al terminar su tiempo de ejecucin, se Hasta que termina una operacin se ejecuta la sigue con la siguiente operacin. siguiente. El sistema operativo Windows trabaja en paralelo. El sistema operativo MS-DOS trabaja en serie. Ventaja: En menos tiempo se atiende a todos los Ventaja: Garantiza que se ejecuten usuarios. completamente los procesos. Desventaja: No garantiza que se ejecuten Desventaja: Es muy lento. completamente los procesos.

1.2

Evolucin de los sistemas operativos

El desarrollo y evolucin de los sistemas operativos va de la mano con la evolucin de los sistemas computacionales y las Tecnologas de Informacin y Comunicacin (TIC). Generacin 0 No haba sistemas operativos. Dcada de los 40s. Codificacin en lenguaje mquina (0,1). Los programas se introducan bit a bit. 1945-1955 Mquinas enormes. Bulbos y conexiones. Lenguaje mquina absoluto. Tarjetas perforadas. Mquinas lentas y costosas. Lenguajes de programacin desconocidos. 1955-1965 Transistores. Procesamiento por lotes (unitarea). Cintas magnticas como unidades de almacenamiento. Se empieza a hablar de sistemas operativos. El primer sistema operativo es desarrollado por la General Motors para una IBM 701 y la 7094. Los sistemas se utilizan para clculos cientficos e ingeniera. Lenguaje ensamblador. FORTRAN, IBSYS. Tiempos compartidos.

1 Generacin

2 Generacin

SISTEMAS OPERATIVOS
3 Generacin 1965-1980 Circuitos integrados. Multiprogramacin. Tiempos compartidos. Lenguaje de alto nivel C. Etapa inicial de las PCs. Estndares de comunicacin. Lectura de trabajos de tarjetas a discos. Ejecucin de trabajos en serie. Sistemas de tiempo real. Manejo por cola de impresin. Dcada de los 80s a nuestros das. Surgen PCs MS-DOS, UNIX. Diseo de interfaz amigables grficas. VLCI Redes Sistemas operativos de redes Sistemas operativos distribuidos Mquinas virtuales Compatibilidad entre plataformas Comunicacin remota Programacin orientada a objetos Internet Robtica SW amable con el usuario Sistemas de seguridad para BDs. HTML Agentes TICs

4 Generacin

NOTA: Se maneja hasta esta 4 Generacin por el avance del hw y sw que en la actualidad es muy rpido. En esta ltima generacin se incluyen las nuevas tecnologas actuales como: programacin para Internet, memory flash, realidad virtual, etc. 1.3 Conceptos de hardware y software

A continuacin vamos describir algunos conceptos de hardware y software, que nos facilitarn la comprensin del funcionamiento de un sistema operativo. El hardware se refiere a los dispositivos fsicos del sistema. Compaginacin de almacenamiento. La compaginacin del almacenamiento se utiliza para acelerar el acceso al almacenamiento primario (memoria RAM), al dividir el dispositivo de almacenamiento en localidades de memoria para almacenar la informacin.

SISTEMAS OPERATIVOS
1. LOCALIDADES ADYACENTES. El sistema operativo guarda la informacin de manera contigua. La informacin queda compactada. El acceso es ms rpido. 2. LOCALIDADES NO ADYACENTES. El sistema operativo guarda la informacin en espacios no contiguos. La informacin queda esparcida. El acceso es ms lento.

Registro de relocalizacin (reubicacin) Permite relocalizar de forma dinmica los programas y/o informacin en memoria. Se aade a cada direccin que genere el programa o informacin en memoria, de esta manera el sistema proporciona un registro para localizar el programa donde quiera que se encuentre. Utilizacin del Buffer Un buffer es un rea del almacenamiento primario destinada a contener datos durante transferencias de entrada/salida. Durante le entrada, los datos son colocados en el buffer (ya que ocupan demasiada memoria). Cuando termina la transferencia el procesador ya puede accesar a los datos. NOTA: El buffer NO utiliza localidades de memoria porque ocupara muchsima. Dispositivos perifricos Un perifrico es un dispositivo de soporte fsico a una computadora, que le permite interactuar con el exterior por medio de la entrada, salida y el almacenamiento de datos as como la comunicacin entre ordenadores. El trmino suele aplicarse a los dispositivos que no forman parte indispensable de una computadora (como lo son cpu y memoria) y que son, en cierta forma, opcionales. Tambin se suele utilizar habitualmente para definir a los elementos que se conectan externamente a un puerto de la misma, aunque muchos de ellos se han vuelto tan indispensables para las computadoras personales de hoy en da que ya son integrados desde la fabricacin en la tarjeta principal. Los dispositivos perifricos pueden dividirse en cuatro categoras principales:

Almacenamiento: Su funcin principal es asegurar la permanencia de la informacin producida y/o manejada por la computadora despus de que esta ha sido apagada. Entrada: Aportan datos al ordenador para su tratamiento por parte de la CPU. Son la interfaz por medio de la cual el ser humano introduce informacin al mismo. Salida: Se encargan de transmitir los datos procesados por el CPU de vuelta a la persona que est utilizando la computadora por diferentes medios. Comunicacin: Su funcin es servir de canal entre una o ms computadoras o entre la computadora y un dispositivo perifrico externo.

Proteccin del almacenamiento La proteccin del almacenamiento limita el nmero de direcciones que un programa puede referenciar. Se utiliza para evitar que los programas se interfieran entre s. El sistema operativo debe ser capaz de proteger determinadas reas del acceso a usuarios, mediante registros lmites o claves de proteccin de almacenamiento.

SISTEMAS OPERATIVOS
Se puede implantar a travs de: a) Registros lmites. Definen la direccin superior e inferior del bloque de almacenamiento. b) Claves de proteccin del almacenamiento. Asociadas con reas de memoria principal (un programa puede hacer referencia a localidades de memoria solamente en aquellas reas cuyas claves coincidan con la clave del programa). Operacin en lnea & Operacin fuera de lnea Operacin en lnea. Los dispositivos perifricos estn conectados al procesador. Es decir, el procesador se incluye en las operaciones, por ejemplo la lectura/escritura en memoria RAM. -Operacin fuera de lnea. Los dispositivos perifricos son manejados por unidades de control que no estn conectadas al cpu. Estas unidades de control hacen posible manejar los dispositivos perifricos sin cargar directamente al procesador. Hacen posible manejar dispositivos perifricos sin que esto represente una carga directa al procesador, por ejemplo, una operacin para pasar informacin de una memoria flash a un cd. Temporizadores y relojes Un Temporizador de intervalos es un circuito que controla el pulso del reloj del sistema, es til en sistemas de usuarios mltiples para prevenir que un solo usuario monopolice el procesador. El reloj controla las actividades dentro del sistema. Es de cristal de cuarzo. El sistema cuenta con dos tipos de reloj: 1. Reloj horario. Lleva la hora y fecha del sistema. 2. Reloj de procesos. Enva interrupciones al cpu de manera peridica para la sincronizacin en los procesos (tiempo de ejecucin) Para sincronizar los procesos el sistema almacena un valor en un registro o variable denominado QUANTUM el cual se va decrementando cada ciclo de reloj, cuando llega a 0 lanza un proceso que ejecutar las operaciones necesarias. Canales de entrada/salida Los mdulos de E/S (un controlador de disco, por ejemplo) pueden intercambiar datos directamente con el procesador. Al igual que el procesador puede iniciar una lectura o escritura en la memoria, indiciando la direccin de una ubicacin especfica, el procesador tambin puede leer datos de un mdulo de E/S o escribir datos en un mdulo de E/S. Un canal es un sistema computacional de propsito especial dedicado al manejo de entrada/salida con independencia del procesador central. El verdadero mrito de los canales de entrada/salida consiste en aumentar en gran medida la cantidad de actividad concurrente de hw posible y evitar al procesador la mayor parte de la carga de manejar E/S (esto por medio de sus controladores). Robo de ciclo (de reloj) Un punto de conflicto entre los canales y el procesador est en el acceso al almacenamiento primario. Como no puede estar en marcha ms que un solo acceso a la vez (a la memoria), y como no es posible que tanto los canales como el procesador quieran tener acceso al almacenamiento primario de forma simultnea, en general, se da prioridad a los canales. Esto se llama robo de ciclo , los canales literalmente, roban ciclos al procesador.

SISTEMAS OPERATIVOS
Estado problema & Estado supervisor Estado problema o Estado de usuario. Cuando el cpu se encuentra ejecutando una actividad y se impide la ejecucin directa de operaciones de entrada/salida. Estado supervisor. El sistema operativo trabajando en un sistema, entra a un estado supervisor con todos los privilegios necesarios para cumplir con las tareas designadas. Almacenamiento virtual Los sistemas de almacenamiento virtual permiten a los programas hacer referencia a espacios de direcciones mucho mayores que los espacios de direcciones disponibles en el almacenamiento primario. El sistema operativo se vale de los dispositivos de almacenamiento secundario para hacer el almacenamiento virtual. Ofrece la ventaja de incrementar la capacidad de memoria. El software consiste en los programas de instrucciones y datos que definen para el hardware los algoritmos necesarios para la resolucin de problemas. A continuacin mencionaremos algunos conceptos de software tiles para entender el funcionamiento de los sistemas operativos. Lenguaje mquina & Lenguaje Ensamblador Lenguaje mquina. Es un SW de bajo nivel, utiliza cdigo binario, dependiente de la mquina, con instrucciones bastante primitivas. Es el lenguaje que el sistema de cmputo puede comprender directamente. -Lenguaje ensamblador. Se desarrollaron para aumentar la velocidad del proceso de programacin y reducir los errores de codificacin. Se consideran la versin simblica del lenguaje mquina. No son directamente entedibles por la computadora, para ellos requieren ser previamente traducidos (Ensamblador). Compilador Programa que traduce los lenguajes de alto nivel a lenguaje mquina. Sistema de Control de Entrada/Salida (IOCS) Es el conjunto de programas a travs del cual el sistema operativo controla las actividades de entrada/salida que se generan en el sistema. Comnmente conocido como BIOS. Spool / Spooling Operaciones perifricas simultneas en lnea. (Simultaneous Peripherical Operation on Line) Actividad que realiza el sistema operativo para hacer cambios de velocidad entre los diferentes dispositivos. Es el empleo de un almacenamiento auxiliar como buffer para reducir el retardo del procesamiento cuando se transfieren datos entre los equipos perifricos y los procesadores de un computador. El SPOOL es una tcnica que permite que las entradas y las salidas de un proceso tengan un paso intermedio en dispositivos de gran capacidad de almacenamiento. El ejemplo tpico es el spool de impresora: un proceso puede obtener una gran cantidad de informacin en poco tiempo, y en cambio estos resultados pueden necesitar mucho tiempo para ser impresos. Otro caso muy corriente es el de trabajar con un procesador de textos y hacer una impresin de un documento relativamente largo. Si no se utiliza el spool, tanto el computador como el usuario no podrn hacer nada hasta que se termine de imprimir.

SISTEMAS OPERATIVOS
El Spooling utiliza el disco como un buffer muy grande para leer tan por delante como sea posible de los dispositivos de entrada y para almacenar los ficheros hasta que los dispositivos de salida sean capaces de aceptarlos. De esta manera, puede mantener tanto a la CPU como a los dispositivos de E/S trabajando con un rendimiento mucho mayor. Cargadores Un cargador es un programa que se encarga de colocar las instrucciones y datos (fichero ejecutable) dentro de localidades del almacenamiento primario, asignando el espacio necesario en memoria y pasando el control a la primera de las instrucciones a ejecutar, comenzando a continuacin la fase de ejecucin. Cargador absoluto. Reserva un espacio determinado de memoria especfico para un determinado programa. Cargador de relocalizacin. Puede cargar un programa en diversos lugares de la memoria, dependiendo de la disponibilidad de memoria al momento de realizar la carga. 1.4 Estructura de un sistema operativo

Se considera la organizacin interna del sistema operativo y para ello debemos observar dos tipos de requisitos: a. Requisitos del usuario: Sistema fcil de usar y aprender Seguro Rpido Adecuado al uso al que se quiere destinar Mantenimiento Forma de operacin Restricciones de uso Eficiencia Tolerancia frente a errores Flexibilidad

b. Requisitos de software:

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. Es una estructura jerrquica, con mayor organizacin del sw del sistema operativo. El sistema operativo se divide en partes o niveles, cada uno perfectamente definido y con un claro interfase (comunicacin) con el resto de los elementos. La 1 estructura jerrquica o de niveles, la desarroll Djikstra, utilizndose para fines didcticos, denominada THE (Technische Hogeschool, Eindhoven). Una forma de ver este tipo de sistema es la denominada de anillos concntricos o rings:

SISTEMAS OPERATIVOS

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. A continuacin definiremos de manera breve cada uno de estos niveles que conforman el sistema operativo (nota: en el grfico la quinta y ltima capa de intrprete de comandos est representada por un crculo aparte de los niveles, pero est interrelacionado con los dems). 1. Ncleo (Kernell) Es la parte primordial del sistema operativo. El ncleo o centro del sistema operativo administra todo el sistema, sincroniza todos los procesos. A nivel de ncleo solo se trabaja con procesos. 2. Gestin de entrada/salida El sistema operativo administra los dispositivos externos a travs de sus controladores. 3. Gestin de memoria El sistema operativo administra todos los aspectos relativos a memoria real y memoria virtual. 4. Sistemas de archivos El sistema operativo se ocupa de administrar los archivos del usuario a travs de una estructura de directorios con algn tipo de organizacin. 5. Intrprete de comandos Es un mecanismo de comunicacin entre los usuarios y el sistema. Lee las instrucciones del usuario y hace que se ejecuten las funciones del sistema solicitadas.

SISTEMAS OPERATIVOS
1.5 Clasificacin de los sistemas operativos

Existen diversas clasificaciones de los sistemas operativos, la ms comn es por lo servicios que ofrecen al usuario final:

Sistemas operativos monousuarios Los sistemas operativos monousuarios son aquellos 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. Sistemas operativos multiusuarios 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. Sistemas operativos monotareas 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. Sistemas operativos multitareas Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico. 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.

SISTEMAS OPERATIVOS
Sistemas operativos uniproceso Un sistema operativo uniproceso es aqul 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. Sistemas operativos 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. 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. Cuando se trabaja de manera simtrica, los procesos o partes de ellos son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema.

10

SISTEMAS OPERATIVOS

UNIDAD II ADMINISTRACIN DE PROCESOS


2.1 Definicin de proceso

El ncleo del sistema operativo controla todas las operaciones en las que participan los procesos. Es la parte que ms se utiliza del sistema operativo, por lo que reside en memoria, mientras que otras partes del sistema operativo son cargadas en memoria solo cuando se necesitan. Proceso Este trmino fue utilizado por primera vez en los aos sesenta, muchas veces utilizado como sinnimo de tarea. Programa en ejecucin El espritu animado de un procedimiento El centro de control de un procedimiento en ejecucin Entidad atendida por un procesador. Secuencia codificada en trance de ejecucin. Conjunto de microinstrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Es un programa en ejecucin que necesita recursos para realizar su tarea: tiempo de cpu, memoria, archivos y dispositivos de e/s. Consiste en el conjunto de instrucciones de programa destinadas a ser ejecutadas por el microprocesador. Un programa como tal es una entidad inanimada, cuando el procesador le infunde vida se convierte en una entidad activa que se denomina PROCESO. Un proceso est conformado por: CDIGO y DATOS. Funciones del proceso 1. Ejecutarse 2. Crear otro(s) proceso(s). (Estructura jerrquica de los procesos: un proceso padre crea proceso(s) hijo(s). Padre Hijo Hijo

2.2 Funciones y polticas del procesador El sistema operativo a nivel de ncleo nicamente trabaja con procesos. El sistema operativo atiende y administra los procesos a travs de su PCB. PCB. Bloque de control de procesos. Es un descriptor del proceso. Es una estructura de datos que contiene informacin acerca del proceso.

11

SISTEMAS OPERATIVOS
Funciones del sistema operativo sobre los procesos El sistema operativo sabe en todo momento lo que hace cada proceso. Administra su ejecucin, sabe a qu hora entran al procesador, etc. Las principales funciones que realiza el sistema operativo sobre los procesos: 1. Crear el Bloque de Control de Procesos (PCB) para cada proceso. Al sistema no entran procesos desconocidos. 2. Auxiliar en la ejecucin del proceso: Creacin: dar nombre al proceso, insertar en la Tabla de Procesos, determinar la prioridad inicial del proceso, crear el PCB, asignar recursos iniciales. Destruccin

3. Suspender momentneamente el proceso. Se suspenden temporalmente ciertos procesos y as se reduce la carga de trabajo del sistema. Por ejemplo, tenemos un proceso de impresin y tenemos problemas con la impresora que no est lista (encendida), el proceso detiene su ejecucin, se resuelve el problema y sigue. 4. Bloquear un proceso. Un proceso est bloqueado cuando est esperando que suceda algn evento de entrada/salida antes de poder seguir su ejecucin. El proceso no se puede ejecutar debido a la ocurrencia de un evento externo. Por ejemplo, el cursor en word indica que el proceso est esperando que entre un carcter. O el botn Aceptar. 5. Reanudar un proceso. Cuando un proceso es suspendido (problemas con el disco dura, impresora) y se resuelve, el sistema operativo hace que el proceso contine a partir del punto en que se qued. 6. Cambiar la prioridad de un proceso. 7. Dormir un proceso. El sistema operativo indica que un proceso est en espera para pasar al CPU a realizar una actividad. 8. Despertar un proceso. El sistema operativo activa los procesos al momento en que van a pasar al CPU a ejecutarse. 9. Permitir que un proceso se comunique con otros (comunicacin entre procesos). 10. Destruir un proceso. Cuando el proceso se termina de ejecutar, el sistema operativo lo destruye y da de baja su PCB, y se libera memoria. Polticas del sistema operativo sobre los procesos 1. Cuando se est creando el PCB para un proceso, la informacin que se debe asignar es: a) Identificador nico del proceso. b) Estado actual del proceso. (El sistema operativo debe saber en todo momento en qu parte del sistema est el proceso). c) Prioridad del proceso. d) Recursos que va a ocupar el proceso. e) El procesador en que se est ejecutando el proceso. f) Apuntador hacia el padre del proceso. g) Apuntador(es) hacia el (los) hijo(s) del proceso. h) Apuntadores hacia las zonas de memoria del proceso.

12

SISTEMAS OPERATIVOS
2. Si se elimina a un proceso padre, se elimina a los procesos hijo. Cuando un proceso crea a otro(s) proceso(s) se genera una estructura jerrquica. Cuando se destruye un proceso padre, se elimina del sistema, se quita de la Tabla de Procesos, se elimina su PCB y se libera memoria, no sin antes eliminar a sus procesos hijo. Por poltica, termina de ejecutarse el proceso padre y se va a destruir, el sistema operativo elimina a los hijos (esperando a que terminen de ejecutarse para eliminar al padre). 2.3 Bloque de Control de Procesos El Bloque de Control de Procesos (PCB) es un descriptor del proceso. El PCB es un almacn central de informacin que permite al sistema operativo localizar toda la informacin importante acerca de un proceso. El PCB es la entidad que define a un proceso al sistema operativo. Es una estructura de datos que contiene informacin acerca del proceso, que incluye: a) Identificador nico del proceso. b) Estado actual del proceso. (El sistema operativo debe saber en todo momento en qu parte del sistema est el proceso). c) Prioridad del proceso. d) Recursos que va a ocupar el proceso. e) El procesador en que se est ejecutando el proceso. f) Apuntador hacia el padre del proceso. g) Apuntador(es) hacia el (los) hijo(s) del proceso. h) Apuntadores hacia las zonas de memoria del proceso. 2.4 Estados de un proceso Un proceso pasa por varios estados. Varios eventos pueden ocasionar que un proceso cambie de estado.

Un proceso est en estado de: Ejecucin. Cuando tiene asignada la CPU, es decir, en ese momento est utilizando el CPU. Slo puede haber un proceso en ejecucin a la vez. Listo. Cuando un proceso est en espera de pasar al CPU. Puede haber varios procesos listos en una Lista de Procesos Listos (se ordenan). Se dice que el proceso est en un estado de dormido y est formado para pasar al CPU. El proceso est listo para pasar al CPU. Bloqueado. Se presenta cuando un proceso est esperando que suceda algn evento de estrada/salida antes de poder proseguir su ejecucin. Puede haber varios procesos bloqueados en una Lista de Procesos Bloqueados. El proceso no se puede ejecutar debido a la ocurrencia de un evento externo. Una vez que ocurre el evento externo por que se estaba esperando, se desbloquean los procesos y pasan a Listos en el orden de ocurrencia de estos eventos (en la lista de procesos bloqueados no se ordenan los procesos).

13

SISTEMAS OPERATIVOS
2.5 Transiciones de estado de los procesos Una transicin de estado implica que un proceso cambie de un estado a otro. Al realizar un proceso una transicin de estado, el sistema operativo registra el nuevo estado en el PCB.

Despacho La asignacin del procesador al primer proceso de la lista de procesos listos se denomina DESPACHO. Llega un proceso al sistema y se inserta al final de la Lista de Procesos Listos, el proceso se desplaza poco a poco en esta lista a medida que los procesos se van ejecutando. Cuando el proceso llega al principio de la lista, se le asigna el CPU (que ya est disponible). Se dice que hay una transicin de estado: ESTADO LISTO Expiracin de tiempo Ocurre cuando el sistema decide que el proceso en ejecucin ya ha sido ejecutado el tiempo suficiente y es hora de que otro proceso tenga tiempo de CPU. Para evitar que un proceso monopolice el sistema, el sistema operativo utiliza el reloj, para que las tareas de un usuario se ejecuten durante un intervalo especfico de tiempo (quantum). Si el proceso no libera voluntariamente el CPU antes que expire el intervalo de tiempo, el reloj genera una interrupcin, haciendo que el sistema operativo retome el control. El sistema operativo transforma el proceso en ejecucin en un proceso listo; y como est desocupado el CPU, pasa un proceso que estaba en la Lista de Procesos Listos primero. Se dice que hay una transicin de estado: ESTADO EN EJECUCIN Bloqueo El proceso se bloquea esperando que se complete una operacin de entrada/salida. Un proceso se est ejecutando normalmente en CPU, el proceso descubre que no puede continuar porque no llegan los datos que espera. El proceso libera voluntariamente el CPU, en espera de los datos. Es comn que los procesos estn en espera de datos y estos no estn disponibles, por lo que se bloquean en forma inmediata. Se dice que hay una transicin de estado: ESTADO EN EJECUCIN ESTADO BLOQUEADO ESTADO LISTO ESTADO DE EJECUCIN

14

SISTEMAS OPERATIVOS
Despertar Ocurre cuando se completa una operacin de entrada/salida. Ocurre el evento externo por el que espera un proceso bloqueado (llegada de nuevos datos). Se despierta al proceso bloqueado que pasa al estado Listo tomando su lugar en la fila y espera hasta que llega al inicio de la fila para pasar nuevamente a CPU. Se dice que hay una transicin de estado: ESTADO BLOQUEADO 2.6 Procesamiento de interrupciones Los procesos que estn en ejecucin en CPU a veces son interrumpidos. La interrupcin es generada por el hardware del sistema, a travs de un bip, una alarma, una seal, una luz, entre otros). Interrupcin Es un evento que altera la secuencia en que el procesador ejecuta las instrucciones. Suspensin de un proceso, como la ejecucin de un programa, originada por un suceso externo a dicho proceso y llevada a cabo de forma que el proceso pueda reanudarse. ESTADO LISTO

Tipos de interrupcin 1. Interrupciones de programa Generadas por alguna condicin que se produce como resultado de la ejecucin de una instruccin, como el desbordamiento aritmtico, la divisin por cero, el intento de ejecutar una instruccin ilegal de la mquina, o una referencia a una zona de memoria fuera del espacio permitido al usuario. 2. Interrupciones de reloj Generadas por el reloj interno del sistema. Esto permite al sistema operativo llevar a cabo ciertas funciones con determinada regularidad, por ejemplo, el no permitir que ciertos procesos monopolicen el sistema. 3. Interrupciones de entrada/salida Generadas por los controladores de entrada/salida, para indicar que una operacin ha terminado normalmente o para indicar diversas condiciones de error.

15

SISTEMAS OPERATIVOS
4. Interrupciones de reinicio Ocurre cuando se presiona el botn de reinicio o llega desde otro procesador la instruccin de Reinicio. 5. Interrupciones de verificacin de la mquina. Ocasionadas por el mal funcionamiento del hardware o por fallas tales como un corte de energa. Qu pasa cuando ocurre una interrupcin? 1. El sistema operativo toma el control (el hardware pasa el control al sistema operativo). 2. El sistema operativo guarda el estado del proceso interrumpido en el PCB del proceso. 3. El sistema operativo analiza la interrupcin y transfiere el control a la rutina adecuada para atenderla. Actualmente, el hardware se encarga de esto automticamente. 4. La rutina del manejador de interrupciones procesa la interrupcin. 5. Se restablece el estado del proceso interrumpido. 6. Se ejecuta el proceso interrumpido (pasa a su estado Listo). 2.7 Secciones crticas En sistemas multiusuarios los procesos entran en conflicto cuando compiten por el uso de un mismo recurso (CPU, memoria, dispositivos de entrada/salida). En el caso de que haya procesos en competencia por un recurso compartido, es necesaria la exclusin mutua. Basado en el operador xor exclusivo donde entra uno pero no ambos. Exclusin mutua Administra el rea de datos compartidos y los recursos compartidos del sistema. La exclusin mutua es la actividad que realiza el sistema operativo para evitar que dos o ms procesos ingresen al mismo tiempo a un rea de datos compartidos o accedan a un mismo recurso. En otras palabras, es la condicin por la cual, de un conjunto de procesos, slo uno puede acceder a un recurso dado o realizar una funcin dada en un instante de tiempo. Regin/seccin crtica Cuando un proceso utiliza un recurso compartido, realiza una serie de operaciones sobre este recurso y luego lo deja de utilizar. A estos recursos se les llama recursos crticos y la parte del programa/cdigo que utiliza estos recursos se le conoce como seccin crtica del programa. Para lograr la exclusin mutua, generalmente se utilizan algunas tcnicas o algoritmos como: semforos, monitores, algoritmo de Decker, algoritmo de Peterson, los candados. 2.8 Semforos y Monitores Semforo Programa del sistema operativo que controla el trfico de procesos dentro del sistema. Controla los procesos dentro de memoria en el rea de datos compartidos (lectura, lectura/escritura, escritura). Trabaja con dos elementos: seal (despertar) espera (dormir)

16

SISTEMAS OPERATIVOS
Dependiendo del tipo de operacin en el rea de datos compartidos, ser el semforo que se implante. El uso de semforos depende del nmero de procesos; en reas de datos no compartidos no tiene razn de ser. Monitores Dentro de un sistema operativo es un programa que observa y administra los procesos dentro del cpu. Se pueden implementar monitores en memoria en reas de datos compartidos y no compartidos. NOTA: Dentro de los monitores se implementan los semforos. 2.9 Deadlock (Abrazo mortal) A cada proceso se le asignan varios recursos para su ejecucin. En sistemas de multiprogramacin, uno de los principales objetivos del sistema operativo es el compartimiento de los recursos. Cuando se comparten los recursos entre una poblacin de usuarios, cada uno de los cuales mantiene un control exclusivo sobre ciertos recursos asignados a l, es posible que otros usuarios no terminen sus procesos (bloqueo entre usuarios). El bloqueo mutuo puede aparecer de muchas formas: - Si a un proceso se le asigna la tarea de esperar a que ocurra un evento y el sistema no incluye providencias para sealar la ocurrencia de dicho evento, habr un bloqueo mutuo con un solo proceso. Es muy difcil detectar bloqueos mutuos de esta naturaleza. - La mayor parte de los bloqueos mutuos en sistemas reales implican una competencia entre varios procesos por varios recursos. Bloqueo mutuo = Deadlock = Abrazo mortal El bloqueo mutuo o abrazo mortal (deadlock) es el problema ms serio que se puede presentar en un ambiente de multiprogramacin. Es la actividad en que dos o ms procesos esperan un recurso (cpu, memoria, entrada/salida) que nunca les va a ser otorgado.

Como se v, aqu el sistema est bloqueado: Proceso1 tiene a Recurso1 y necesita a Recurso2 para continuar. Y Proceso2 tiene asignado a Recurso2, y necesita a Recurso1 para continuar. Cada proceso espera que el otro libere un recurso que no liberar hasta que el otro libere su recurso, lo cual no suceder si el primero no libera su recurso. Aqu se presenta una espera circular.

17

SISTEMAS OPERATIVOS
Otro ejemplo, dos procesos adueados de cpu. ProcesoA se ejecuta y llama a ProcesoB, ProcesoB se ejecuta y llama a ProcesoA, ... , si llega otro proceso, no lo van a dejar entrar a CPU a ejecutarse.

Deteccin Es el proceso de determinar si realmente existe un bloqueo mutuo e identificar los procesos y recursos implicados en l. * PCB indica qu recursos, cuntos y en qu orden va a utilizar el proceso. Al momento que se asignen recursos al proceso no se le deben asignar a otro proceso. Prevencin Es la tcnica ms empleada para tratar el bloqueo mutuo. Para prevenir la condicin de deadlock: a. Cada proceso deber pedir desde un principio todos los recursos que va a utilizar. b. Si va a utilizar ms recursos despus, tiene que esperarse a que se liberen los dems recursos. c. Si a un proceso que tiene varios recursos se le niegan los dems, ese proceso deber liberar sus recursos que ya le haban sido asignados. d. Asignar prioridad a los recursos. 1 CPU 2 Memoria 3 E/S 4 Buses Recuperacin Cuando se ha bloqueado un sistema, el deadlock se debe romper mediante la eliminacin de una o ms de las condiciones necesarias. Por lo general, varios procesos perdern una parte o la totalidad del trabajo que han efectuado, pero el precio puede ser pequeo en comparacin con las consecuencias de permitir que el sistema siga bloqueado. En los sistemas actuales, la recuperacin se suele realizar eliminando un proceso y arrebatndole sus recursos. Por lo general, el proceso eliminado se pierde, pero ahora es posible concluir los procesos restantes. Los procesos pueden eliminarse de acuerdo a su prioridad. Si se llega a presentar el deadlock, el sistema operativo debe eliminar un proceso, el de menos prioridad, para que los dems puedan continuar. Al momento que se elimina un proceso se libera el recurso que tena asignado. Si los 2 procesos tienen la misma prioridad, se elimina el segundo que pidi el recurso (solo por poltica).

18

SISTEMAS OPERATIVOS

UNIDAD II continuacin ADMINISTRACIN DEL PROCESADOR


A. Niveles de planificacin La asignacin del (los) procesador(es) a los procesos es lo que permite que estos ltimos realicen su trabajo. Cundo deben asignarse los procesadores y a qu procesos? Esto lo decide la actividad conocida como Planificacin del procesador. Se consideran 3 niveles importantes de planificacin:

Planificacin de alto nivel. - Planificacin de trabajos o procesos. - Determina a qu trabajos se les va a permitir competir activamente por los recursos del sistema. - Planificacin de admisin, pues determina qu trabajos obtienen admisin al sistema. Una vez admitidos, los trabajos se convierten en procesos o grupos de procesos. Planificacin de nivel intermedio. - Determina a qu procesos se les puede permitir competir por la CPU. - Suspende y activa los procesos para lograr una operacin uniforme del sistema y para ayudar a alcanzar ciertas metas en el rendimiento total del sistema. - Acta como un buffer entre la admisin de trabajos al sistema y la asignacin de la CPU a estos trabajos. Planificacin de bajo nivel. - Determina a qu proceso listo se le asigna la CPU cuando sta queda disponible y se le asigna la CPU a este proceso. - Despacha los procesos. - Ejecuta los procesos.

19

SISTEMAS OPERATIVOS
B. 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 los siguientes objetivos principales: 1. Justicia. Todos los procesos son tratados de la misma manera y ninguno experimenta postergacin indefinida. 2. Maximizar la capacidad de ejecucin. procesos por unidad de tiempo. Debe intentar dar servicio al nmero mximo de

3. Maximizar el tiempo de respuesta. Cada usuario o proceso debe observar que el sistema les responda consistentemente a sus requerimientos. 4. Evitar el aplazamiento indefinido. Los procesos deben terminar de ejecutarse en un plazo finito de tiempo. 5. El sistema debe ser predecible. Un trabajo dado debe ejecutarse, aproximadamente, en la misma cantidad de tiempo y costo con independencia de la carga del sistema. 6. Equilibrar el uso de recursos. El planificador debe mantener ocupados los recursos del sistema. 7. Mantener bien definidas las prioridades de los procesos. Establecer las prioridades de los procesos en cuanto al uso de los recursos. C. Criterios de planificacin Para poder alcanzar los objetivos de la planificacin mencionados en el punto anterior, los mecanismos de planificacin deben considerar los siguientes criterios o caractersticas: 1. Limitacin de un proceso a operaciones de entrada/salida. El proceso nada ms entra a CPU a esperar un evento de entrada/salida, solo la utiliza brevemente. 2. Limitacin de un proceso al CPU. El proceso tiende a usar el CPU hasta que termina su tiempo. 3. Si un proceso es por lote o interactivo. Por lote, los proceso se realizan ininterrumpidamente; interactivo, permite la interaccin usuario-mquina, que lleva ms tiempo. 4. Rapidez de respuesta. Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecucin. 5. Prioridad. Los procesos de alta prioridad deben recibir mejor tratamiento que los de prioridad baja. 6. Tiempo de ejecucin real. Cunto tiempo requiere el proceso para ejecutarse. 7. Tiempo de ejecucin adicional. Cunto tiempo ms requiere el proceso para terminar de ejecutarse.

20

SISTEMAS OPERATIVOS
D. SCHEDULER (Scheduling) El Scheduler es el programa dentro del sistema operativo que administra de manera eficiente el procesador, es parte del ncleo del sistema operativo. Funciones principales: a) Dar de alta el PCB b) Hacer actualizaciones al PCB c) Dar de baja el PCB d) Asigna tiempos de ejecucin a cada proceso e) Organiza la fila de listos y bloqueados El Planificador de trabajos o Scheduler se encarga de elegir la tarea siguiente que hay que admitir en el sistema y el proceso siguiente que hay que ejecutar. Su finalidad es asignar procesos para que sean ejecutados por el procesador o procesadores con el fin de obtener mejores tiempos de respuesta, mayor productividad o rendimiento y eficiencia del procesador. En otras palabras, podemos definir al Scheduling como el conjunto de polticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse. El Scheduler o Scheduling est muy relacionado con la gestin de los recursos, en cuestiones como: cundo introducir un nuevo proceso en el sistema o determinar el orden de ejecucin de los procesos del sistema. Existen tres niveles de Scheduling que son: a) Planificador de la CPU o a corto plazo: Tambin llamado short.term scheduler o low scheduler, es el responsable de decidir quin, cundo, cmo y por cunto tiempo recibe el procesador un proceso que est preparado para ejecutar (los recursos a esta altura ya deben estar todos disponibles para este trabajo). Adems en en sistemas operativos con esquemas apropiativos (se quita el recurso CPU al proceso) verifica las interrupciones. b) Planificador a mediano plazo: El planificador a mediano plazo es el encargado de regir las transiciones de procesos entre memoria principal y secundaria, acta intentando maximizar la utilizacin de los recursos. Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados, o transfiriendo a memoria principal procesos bloqueados nicamente por no tener memoria. Este tipo de planificador se encuentra solo en algunos sistemas especialmente en los de tiempo compartido, ya que permite mantener un equilibrio entre los procesos activos e inactivos. Este planificador puede ser invocado cuando quede espacio libre de memoria por efecto de la terminacin de un proceso o cuando el suministro de procesos caiga por debajo de un lmite especificado. c) Planificador a largo plazo: El planificador a largo plazo, Scheduler o planificador de trabajos, es un administrador que se encarga de organizar la ejecucin con un adecuado planeamiento de recursos para que el trabajo se ejecute ordenadamente y eficientemente segn la modalidad de procesamiento. El Scheduler se ejecuta con poca frecuencia, slo cuando se necesita crear un nuevo proceso en el sistema, cuando termina un proceso, o ingresa un usuario en el sistema, por lo que tiene prioridad mxima para ejecutar. Es el responsable de controlar el nivel de multiprogramacin del sistema y el balance de carga del sistema.

21

SISTEMAS OPERATIVOS
E. Estrategias de planificacin del procesador Una vez que el proceso entra al CPU a ejecutarse, el sistema le indica en qu forma va a realizar su ejecucin. 1. Planificacin No Apropiativa 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 CPU. Los trabajos largos hacen esperar a los trabajos cortos, pero el tratamiento que reciben todos los procesos es ms justo. Trabaja en serie, hasta que no termina una operacin se ejecuta la siguiente.

Existe una fila de procesos, los procesos se ejecutan ininterrumpidamente. El proceso se aduea de los recursos (CPU, memoria, datos, dispositivos e/s) que le haban sido asignados inicialmente hasta terminar su ejecucin. Si entra un proceso de alta prioridad, ste tambin debe esperar a que termine el proceso en ejecucin. 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. Los tiempos de respuesta son ms fciles de predecir. 2. Planificacin 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 d su turno a otro proceso. Este mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema (por ejemplo, antivirus programados, analizadores de rendimiento). Al proceso se le puede arrebatar la CPU. Es til en sistemas en los cuales los procesos de alta prioridad requieren una atencin rpida.

Se permite a cada proceso ejecutarse un determinado tiempo. Al proceso se le asignan los recursos que va a utilizar inicialmente. Garantiza tiempos de respuesta aceptables. Trabaja de manera concurrente. Sistema operativo ms complejo, se requiere estar checando en todo momento los procesos y sus recursos (PCB).

22

SISTEMAS OPERATIVOS
Algoritmos o Estrategias del turno de ejecucin

a) Por prioridad Cada proceso tiene asociada una prioridad y el proceso ejecutable con mxima prioridad es el que tiene permiso de ejecucin. Si existen varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden ejecutarse stos de acuerdo a su orden de llegada u otro algoritmo de planificacin. Ventaja: Es flexible al permitir que ciertos procesos se ejecuten primero, e incluso, por ms tiempo. Desventajas: Puede provocar aplazamiento indefinido en los procesos de baja prioridad. Provoca que el sistema sea impredecible para los procesos de baja prioridad. Por ejemplo, entran procesos al sistema con las siguientes prioridades:

b) El trabajo ms corto primero Se ejecutan primero aquellos trabajos que necesitan menos tiempo de ejecucin, y de esta manera se obtiene el mejor tiempo de respuesta promedio para los procesos. Ventaja: Se ejecuta un mayor nmero de procesos. Desventaja: Es difcil llevar a cabo porque se requiere saber o tener una estimacin de cunto tiempo necesita el proceso para terminar. Por ejemplo, entran procesos al sistema con los siguientes tiempos de ejecucin, en la tercer columna se muestra el orden de ejecucin de ejecucin de los procesos.

23

SISTEMAS OPERATIVOS

c) FIFO (primero en llegar, primero en ejecutarse) Los procesos reciben su turno de ejecucin conforme llegan. Ventaja: Es justo y no provoca aplazamiento. Desventajas: No aprovecha ninguna caracterstica de los procesos. Puede no servir para un proceso de tiempo real. Los procesos llegan al sistema y se van formando, en ese orden van pasando a ejecutarse.

d) Round Robin (RR) Los procesos se despachan en FIFO, pero se les otorga una cantidad limitada de tiempo de CPU conocida como quantum o time slice. Los procesos estn ordenados en una cola circular. Si un proceso no termina antes que expire su tiempo en CPU, se le quita la CPU y se asigna al siguiente proceso en espera. El proceso que sale del CPU se coloca al final de la fila de procesos Listos. Ventaja: es simple y justo. No provoca aplazamiento indefinido. Los procesos llegan al sistema y se van formando, en ese orden van pasando a ejecutarse el tiempo que asigne el procesador; sale y pasa a ocupar un lugar al final de la fila de procesos.

e) 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: Que todos los procesos reciban el mismo tiempo de uso de CPU en cualquier momento. Entonces, tenemos dos procesos que han pasado a CPU a ejecutarse, recibiendo un total de 20 unidades de tiempo cada uno, en intervalos de 5 unidades.

24

SISTEMAS OPERATIVOS

Cuando el proceso 2 se estaba terminando de ejecutar y completa sus 20 unidades de tiempo, llega el proceso 3 y pasa al procesador. Inmediatamente el CPU le da 20 unidades para ejecutarse, para que se cumpla la poltica, y despus sigue asignando unidades de tiempo de 5.

25

SISTEMAS OPERATIVOS UNIDAD III ADMINISTRACIN DE LA MEMORIA


3.1 Almacenamiento real La organizacin y administracin de la memoria principal, memoria primaria o memoria real de un sistema ha sido y es uno de los factores ms importantes en el diseo de los sistemas operativos. Los trminos memoria y almacenamiento se consideran equivalentes. deben estar en el almacenamiento principal para:

Los programas y datos

Poderlos ejecutar. Referenciarlos directamente.

Se considera almacenamiento secundario o almacenamiento auxiliar al generalmente soportado en discos. Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rpido como las memorias:

Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda la memoria disponible para ellos.

La parte del S. O. que administra la memoria se llama administrador de la memoria, el cual: - Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. - Asigna espacio en memoria a los procesos cuando estos la necesitan. - Libera espacio de memoria asignada a procesos que han terminado.

Organizacin y administracin del almacenamiento El almacenamiento principal, es un recurso relativamente caro, por lo que los diseadores de sistemas operativos intentan optimizar su uso. En los ltimos aos ha disminuido su costo, pero sigue siendo ms caro en relacin con el almacenamiento secundario, y las aplicaciones actuales requieren cantidades mayores de almacenamiento principal. La organizacin del almacenamiento es la forma de considerar el almacenamiento principal, bajo los siguientes esquemas de organizacin: sistemas de usuario nico multiprogramacin con particiones fijas, con traduccin y carga con reubicacin multiprogramacin con particiones fijas, con traduccin y carga absoluta multiprogramacin con particiones variables sistemas de intercambio de almacenamiento

26

SISTEMAS OPERATIVOS
Sea cual sea el esquema de organizacin de la memoria que se adopte, hay que decidir qu estrategias de deben utilizar para obtener un rendimiento ptimo de la misma. Las estrategias de administracin del almacenamiento buscan obtener el mejor aprovechamiento y desempeo posible del caro recurso de almacenamiento principal. Se divide en las siguientes categoras: 1) Estrategias de obtencin (Cundo se toma un nuevo programa para colocarlo en memoria? Se toma el programa cuando el sistema lo solicita o se anticipa?) a) Estrategias de obtencin por demanda b) Estrategias de obtencin anticipada 2) 3) Estrategias de colocacin (En qu lugar del almacenamiento se coloca el siguiente programa?) Estrategias de reemplazo (Qu programas se deben reemplazar, los ms antiguos, los menos usados?)

Jerarqua de almacenamiento Por la dcada de los 50 y 60s se contaba con una cantidad de memoria suficiente para el sistema operativo y para cierto nmero de usuarios. El objetivo era comprar mayor cantidad de almacenamiento para manejar adecuadamente cargas de usuario anticipadas dentro de las limitaciones econmicas de esa poca. Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos. Los programas o datos que no se necesitan de inmediato pueden guardarse en el almacenamiento secundario hasta que se necesiten, y en ese momento se transfieren al almacenamiento principal para ser ejecutados o hacer referencia a ellos. Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles

En la dcada de los 60s se extiende un nivel ms la jerarqua de almacenamiento, con una clara mejora del rendimiento y utilizacin. La memoria cach o memoria de alta velocidad es mucho ms rpida que el almacenamiento principal. La memoria cach es extremadamente cara, por lo que slo se utilizan memorias cach relativamente pequeas. La memoria cach introduce un nivel adicional de transferencia de informacin en el sistema, los programas son traspasados de la memoria principal al cach antes de su ejecucin. Los programas en la memoria cach se ejecutan mucho ms rpido que en la memoria principal.

27

SISTEMAS OPERATIVOS
Al utilizar memoria cach se espera que la sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecucin mucho ms rpida en la cach.

Estrategias de administracin de memoria Independientemente del esquema de organizacin hay que decidir las estrategias que se utilizarn para optimizar el rendimiento. Las estrategias de administracin de la memoria estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal. Las estrategias de administracin deben considerar:

cundo se consigue un nuevo programa para colocar en la memoria ?: - cuando el sistema lo pide especficamente o se intenta anticiparse a las peticiones ?. dnde se colocar el programa que se ejecutar a continuacin ?: - se prioriza el tiempo de carga o la optimizacin en el uso del almacenamiento ?. con qu criterio se desplazarn programas ?.

1. Estrategias de obtencin. Determinan cuando debe obtenerse la siguiente parte del programa o los datos que se van a transferir del almacenamiento secundario al principal.

28

SISTEMAS OPERATIVOS
a. por demanda. La siguiente parte del programa o de los datos se transfiere al almacenamiento principal cuando un programa en ejecucin hace referencia a ella. Es decir, el usuario solicita la informacin, hasta ese momento el sistema operativo lo carga en memoria. b. por anticipado. El sistema operativo aplica funciones probabilsticas para colocar en memoria datos de programa que el usuario podra ocupar. El sistema operativo verifica el comportamiento del usuario, ahorrando tiempo en el acceso, pero desperdiciando espacio. 2. Estrategias de colocacin. Tienen que ver con la determinacin de la parte de almacenamiento principal donde se colocar un programa entrante.

3. Estrategias de reemplazo. Estn relacionadas con la determinacin de qu parte del programa o de los datos se debe desalojar para dejar espacio a los programas entrantes.

Asignacin de memoria contigua y no contigua Asignacin de memoria contigua. Cada programa tiene que ocupar un nico bloque contiguo y sencillo de localidades de memoria. Asignacin de memoria no contigua. Un programa se divide en varios bloques o segmentos que se pueden colocar en el almacenamiento principal, en fragmentos que no necesitan ser adyacentes, por lo que es ms compleja pero ms eficiente que la asignacin contigua.

29

SISTEMAS OPERATIVOS
Esquemas de Organizacin del Almacenamiento real Por organizacin del almacenamiento se entiende la manera de considerar este almacenamiento: - se coloca un solo programa de usuario o varios?, Si se encuentran varios programas de usuario:
o se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en

porciones o particiones de diferente tamao?


o se utilizar un esquema rgido de nmero y tamao de particiones o un esquema dinmico y

adaptable?
o se requerir que los trabajos de los usuarios sean diseados para funcionar en una particin

especfica o se permitir que se ejecuten en cualquiera donde quepan?


o se requerir o no que cada trabajo sea colocado en un bloque contiguo de memoria?

Para resolver estas cuestiones, el sistema operativo puede optar por cualquiera de los siguientes esquemas de organizacin: 1) Sistemas de usuario nico El usuario tiene un completo control sobre la totalidad del almacenamiento principal. El almacenamiento se divide en porciones que contienen el sistema operativo, el programa del usuario y una porcin sin usar. El programa del usuario podra destruir reas del S. O. que podran detener el sistema y producir salidas errneas. Por ello, el sistema operativo debe estar protegido contra el proceso del usuario por medio de una registro de lmites incorporado a la cpu, el cual contiene la direccin de la instruccin ms utilizada por el sistema operativo, y si se intenta ingresar al sistema operativo la instruccin es interceptada y el proceso finaliza. Los sistemas de un solo usuario se dedican a un trabajo durante ms tiempo del que toma su ejecucin. Los trabajos requieren de: tiempo de instalacin, que es el necesario para preparar el entorno operativo requerido, y de tiempo de descarga: el necesario para desmontar el entorno operativo que fue requerido. Durante la instalacin y descarga de los trabajos, a cpu no est ejecutando dichos trabajos requeridos, por lo cual, automatizar la transicin de trabajo a trabajo reduce la cantidad de tiempo perdido entre trabajos. 2) Multiprogramacin con particiones fijas Para aprovechar al mximo la multiprogramacin, donde varios procesos compiten al mismo tiempo por varios recursos, es necesario que varios trabajos residan al mismo tiempo en el almacenamiento principal del sistema. La multiprogramacin con particiones fijas permite el almacenamiento de programas en espacios de memoria perfectamente definidos (bloques de memoria de tamao fijo).

30

SISTEMAS OPERATIVOS
Con traduccin y cargas absolutas. Utilizada en los primeros sistemas de multiprogramacin. En cada particin puede haber un solo trabajo. Los trabajos se traducan con compiladores y ensambladores absolutos para ejecutarse solo en una particin especfica.

- S.O. decide cuantas particiones hacer en memoria. - Si un programa estaba listo para ser ejecutado y su particin estaba ocupada, tendra que esperar aunque otras estuvieran libres. - Provoca un desperdicio de espacio de almacenamiento. - Dentro de cada particin el sistema operativo asigna la informacin de modo contiguo o no contiguo. - Los programas se cargan en una sola participacin (para programas muy grandes se requeran particiones muy grandes) - Un programa no puede utilizar el espacio libre de otra particin. Con traduccin y carga con reubicacin. Los compiladores, ensambladores y cargadores con reubicacin sirven para producir programas reubicables que se pueden ejecutar en cualquier particin disponible que sea lo bastante grande para contenerlos.

- Hay una fila nica de programas, el S.O. determina las particiones de memoria. - Los programas pasan a las particiones, la que se encuentre libre. - Dentro de cada particin la informacin se guarda de modo contiguo o no contiguo. - No hay fragmentacin de una particin a otra. - Los programas no estn esclavizados a una sola particin. - No se puede pasar de una particin a otra.

31

SISTEMAS OPERATIVOS
3) Multiprogramacin con particiones variables La multiprogramacin con particiones fijas presenta algunos problemas: desperdicio de memoria, desperdicio de tiempo, programas sin ejecutar. La multiprogramacin con particiones variables permite que los trabajos ocupen tanto espacio como necesiten (menor que la totalidad del rea de almacenamiento real). En este esquema, no se imponen lmites fijos, sino que se da a los trabajos todo el almacenamiento que requieren. No existe un tamao fijo de bloque. El espacio que ocupa el programa es el que se le asigna. El sistema operativo tiene la opcin de manejar la asignacin contigua o no contigua.

- La particin de un proceso es exactamente su tamao, no hay desperdicio de memoria. - Hay continuidad en la informacin. - Si la asignacin es No contigua, aumenta el tiempo de acceso. - Un programa muy grande puede monopolizar la memoria. Combinacin o condensacin de huecos. Proceso de fusionar huecos adyacentes para formar un solo hueco ms grande. Cuando un trabajo termina, el sistema operativo trata de unir todos los espacios libres en uno solo, para tener un espacio suficiente para que pueda entrar otro programa en memoria. Se utiliza con la finalidad de tener bloques de memoria ms grandes que permitan que la informacin quede contigua. La velocidad de acceso es mayor.

Compresin o compactacin de almacenamiento. Puede ocurrir que las reas libres o huecos separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria, la cual podra ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria y podra no ser suficiente ningn rea libre individual. La tcnica de compresin de memoria, llamada Recogida de residuos implica pasar todas las reas ocupadas del almacenamiento a uno de los extremos de la memoria principal, para dejar un solo agujero grande de memoria libre contigua. Algunas desventajas de esta tcnica de compresin: 1) Consume recursos del sistema, 2) El sistema debe detener todo mientras efecta la compresin, lo que puede afectar los tiempos de respuesta, y 3) Implica la relocalizacin (reubicacin) de los procesos que se encuentran en la memoria. Una alta carga de trabajo significa mayor frecuencia de compresin que incrementa el uso de recursos.

32

SISTEMAS OPERATIVOS
4) Multiprogramacin con intercambio de almacenamiento El inconveniente de la multiprogramacin con particiones fijas y con particiones variables es que los programas permanecen en memoria hasta que se completan. La multiprogramacin tambin se puede llevar a la prctica utilizando el intercambio con un solo usuario a la vez en el almacenamiento principal. 1. Solamente un usuario a la vez est en el almacenamiento principal (rea de intercambio) 2. El programa se ejecuta hasta que: se obtiene la entrada/salida, se termina su tiempo, termina voluntariamente o sucede un evento extraordinario 3. El rea de intercambio para ese usuario se copia al almacenamiento secundario 4. Se transfiere la imagen del almacenamiento principal del siguiente usuario al rea de intercambio (se intercambia con el de adentro), y el usuario ejecuta hasta que se intercambia con el de afuera y se carga el siguiente usuario (se intercambia con el de adentro), etc.

3.2 Organizacin del almacenamiento virtual El almacenamiento virtual suele asociarse con la capacidad para obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario. Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computacin.

La necesidad de manejar memoria virtual crece dado que el tamao de la memoria real estaba limitado, los programas eran cada vez ms grandes y los procesadores tenan mayor potencia. Las direcciones generadas por los programas en su ejecucin no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.

33

SISTEMAS OPERATIVOS

Evolucin de la organizacin del almacenamiento

La memoria virtual maneja a mayor espacio en memoria que la memoria principal,valindose tanto de la memoria en el almacenamiento principal como de una cantidad determinada de almacenamiento secundario. En la memoria principal el sistema operativo intercambia programas o procesos enteros en particiones de memoria. En la memoria virtual el sistema operativo maneja segmentos y pginas, entre la memoria real y los dispositivos secundarios. La clave del concepto de memoria (almacenamiento) virtual est en la disociacin:

De las direcciones a las que hace referencia un programa. De las direcciones disponibles en la memoria real (almacenamiento primario).

Los principales conceptos son los siguientes: Direcciones virtuales: Son las referidas por un proceso en ejecucin. Direcciones reales: Son las disponibles dentro del almacenamiento primario. Espacio de direcciones virtuales (v) de un proceso: Es el nmero de direcciones virtuales a que puede hacer referencia el proceso. Espacio de direcciones reales (r) de un computador: Es el nmero de direcciones reales disponibles en el ordenador. Los procesos hacen referencia a direcciones virtuales pero stas deben ejecutarse en el almacenamiento real:

Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso est en ejecucin. La traduccin de direcciones deber hacerse rpidamente para no degradar al sistema.

34

SISTEMAS OPERATIVOS
Mtodos de implementacin de memoria virtual Los mtodos ms comunes de implementacin son mediante:

Tcnicas de paginacin. Tcnicas de segmentacin. Una combinacin de ambas tcnicas.

a) Paginacin pura Se refiere al manejo de bloques de tamao fijo en la memoria virtual y la conversin de stas pginas a memoria real.

Para tal conversin, el sistema operativo requiere de 2 elementos: nmero de pgina y desplazamiento de la pgina. Un proceso puede ejecutarse si su pgina actual est en el almacenamiento primario. Las pginas se transfieren del almacenamiento virtual al primario en bloques llamados marcos de pginas que tienen el mismo tamao que las pginas. S hay combinacin de huecos dentro de las pginas. El tamao de pgina en memoria virtual no es el mismo espacio que en memoria real. Ms de una localidad virtual corresponden a una localidad real. Tabla de Descriptores. Registro en el que el sistema operativo identifica de qu localidad a qu localidad est ubicada cada pgina. -Se tiene una organizacin ms completa en el manejo de memoria. - Si se llena una pgina, el sistema operativo puede enviar la informacin a otra pgina, no necesariamente a la pgina siguiente. - Dentro de una pgina se puede administrar de manera contigua o no contigua. - Dentro de una pgina hay N nmero de programas, por lo que el grado de complejidad es mayor. - Se pierde tiempo al hacer las conversiones (cada L/E en memoria virtual requiere de conversiones)

35

SISTEMAS OPERATIVOS
b) Segmentacin pura Se refiere al manejo de bloques de tamao variable en memoria virtual y la conversin de estos segmentos a memoria real.

Se utilizan dos conceptos para tal conversin: nmero de segmento y desplazamiento dentro del segmento. El tamao de los segmentos y el tipo de informacin de ese segmento lo determinan las polticas del sistema operativo, como por ejemplo: a) que un solo segmento lo ocupe una sola aplicacin. b) que el segmento vaya creciendo segn las necesidades del programa (recorriendo los dems segmentos, particionando el segmento que va creciendo). c) que una segmento sea compartido por varios programas. c) Sistemas de paginacin/segmentacin La paginacin y la segmentacin puras son mtodos de manejo de memoria virtual muy efectivos; aunque, la mayora de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginacin (pginas de tamao fijo) y la segmentacin (segmentos de tamao variable), en Segmentos paginados, donde las pginas exigen un tamao fijo y los segmentos no tienen un nmero fijo de pginas. Tales sistemas ofrecen ventajas de ambas tcnicas de organizacin de almacenamiento virtual. Los segmentos tienen, por lo general, un tamao mltiplo de pginas; no es necesario que todas las pginas de un segmento estn en el almacenamiento primario a la vez, y las pginas que son contiguas en el almacenamiento virtual no son por fuerza contiguas en el almacenamiento real.

VENTAJA. No desperdicia espacios pequeos en memoria real. DESVENTAJAS. Tiempo de acceso mayor. Proceso de conversin ms complejo.

36

SISTEMAS OPERATIVOS
3.3 Administracin del almacenamiento virtual Estrategias de administracin del almacenamiento virtual Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan segn esas estrategias. 1. Estrategias de obtencin. Determinan cundo se debe transferir una pgina o un segmento del almacenamiento secundario al almacenamiento real.

CUNDO?

a. por demanda. Esperan a que un proceso en ejecucin haga referencia a una pgina o segmento antes de traer la pgina o segmento al almacenamiento primario. Este mtodo garantiza que las nicas pginas tradas del almacenamiento principal sean las que en realidad necesita el proceso. La sobrecarga implicada en la decisin de qu pginas traer a almacenamiento principal es mnima. VENTAJA. No se cargan pginas equivocadas, solo se cargan las pginas requeridas. DESVENTAJA. Espera el proceso en la transferencia de pginas. b. por anticipado. Intentan determinar por adelantado a cules pginas o segmentos har referencia un proceso. Hoy da, los diseadores de sistemas operativos se centran en los mtodos para reducir la cantidad de tiempo que la gente debe esperar para recibir los resultados de un computador. La tcnica de paginacin anticipada promete dar buenos resultados y se denomina a veces prepaginacin. En la paginacin anticipada, el sistema operativo intenta predecir cules pginas necesitar un proceso y entonces carga dichas pginas cuando hay espacio disponible. Si se toman decisiones correctas, se puede reducir considerablemente el tiempo de ejecucin total del proceso. Mientras el proceso se ejecuta con sus pginas actuales, el sistema carga nuevas pginas, que estarn disponibles cuando las requiera el proceso. NOTA: Si la probabilidad de una referencia es alta y hay espacio disponibles, entonces se trae al almacenamiento primario la pgina o el segmento antes de que se haga la referencia explcita. 2. Estrategias de colocacin. Determinan en qu lugar del almacenamiento primario se debe colocar una pgina o segmento entrante.

NOTA: Esto es trivial, porque una pgina o segmento entrante se puede ubicar en cualquier marco de pgina disponible.

37

SISTEMAS OPERATIVOS
3. Estrategias de reemplazo. Sirven para decidir cul pgina o segmento se debe desplazar para dejar espacio a una pgina o segmento entrante cuando est completamente ocupado el almacenamiento primario.

NOTA: Al reemplazar un segmento o pgina se va con todos sus programas. Tcnicas de reemplazo de pgina En los sistemas con paginacin es comn que estn en uso todos los marcos de pgina. En este caso, las rutinas de administracin de almacenamiento del sistema operativo deben decidir qu pgina del almacenamiento se debe desplazar para dejar espacio a una pgina entrante.

a. Reposicin de pginas al azar. Todas las pginas de almacenamiento principal deben tener la misma probabilidad de ser reemplazadas. b. Primero en entrar, primero en salir. Se escoge aquella que ha estado ms tiempo almacenada. c. Pgina menos recientemente usada. Selecciona para ser reemplazada la pgina que no ha sido usada durante el mayor periodo de tiempo. d. Pgina menos frecuentemente usada. La pgina que ser reemplazada es aquella que ha sido usada con menos frecuencia o que ha sido referida con menos intensidad. e. Pgina no usada recientemente. Las pginas que no han tenido uso reciente, tienen poca probabilidad de ser usadas en un futuro prximo y pueden ser reemplazadas por otras nuevas. Liberacin de pgina En una administracin del almacenamiento mediante conjuntos de trabajo, los programas indican por referencia explcita cules pginas desean utilizar. Los programas que ya no requieran pginas especficas debern desechar tales pginas de sus conjuntos de trabajo. Por lo regular, hay un tiempo durante el cual permanecen en el almacenamiento principal las paginas que ya no se requieren. Cuando es evidente que ya no ser necesaria una pgina, un usuario podra dar una orden de liberacin voluntaria de pgina para liberar el marco de pgina.

38

SISTEMAS OPERATIVOS

Tamao de pginas Un punto importante a considerar en la administracin del almacenamiento virtual es el tamao que deben tener las pginas. Problemas como si el tamao de las pginas en el sistema deben ser siempre el mismo, o si los tamaos ms grandes deben ser mltiplos enteros de los tamaos menores de pgina, no tienen respuestas universales. No existe una necesidad imperiosa de que todos los sistemas tengan el mismo tamao de pgina o en ese caso, un tamao de pgina nico. Factores que determinan si una pgina debe ser grande o pequea: Cuanto menor sea el tamao de la pgina, ms pginas y marcos de pgina habr y mayores tendrn que ser las tablas de pginas. Con tamaos de pginas grandes, se paginan en el almacenamiento primario grandes cantidades de informacin a la que quiz nunca se haga referencia. Dado que las transferencias de entrada/salida desde el disco son relativamente lentas, se desea reducir al mnimo el nmero de transferencias a que se someta un programa a medida que se ejecuta. Debido a que las unidades de procedimientos y datos rara vez comprenden un nmero entero de pginas, los sistemas con paginacin experimentan fragmentacin interna.

39

SISTEMAS OPERATIVOS UNIDAD IV ADMINISTRACIN DE DISPOSITIVOS DE ENTRADA/SALIDA


4.1 Dispositivos de entrada/salida Quiz el aspecto ms confuso en el diseo de los sistemas operativos sea la entrada y salida. Dada la amplia variedad de dispositivos y aplicaciones de esos dispositivos, resulta difcil desarrollar una solucin general y consistente. Los dispositivos externos que tienen que hacer funcionar la E/S en los sistemas informticos pueden clasificarse bsicamente en tres categoras: Dispositivos legibles por los humanos: apropiados para la comunicacin con el usuario. Por ejemplo se pueden incluir los terminales de video, que constan de un teclado, una pantalla y, quizs, otros dispositivos como un ratn o una impresora. Dispositivos legibles por la mquina: adecuados para comunicarse con equipos electrnicos, como discos, unidades de cinta, sensores, controladores e impulsores. Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos. Por ejemplo, adaptadores de lneas digitales y mdem.

Diferencias entre dispositivos Existen grandes diferencias entre las clases de dispositivos y stas son sustanciales dentro de cada clase. a) Velocidad de los datos. Puede haber una diferencia de varios rdenes de magnitud en las velocidades de transmisin de datos.

b) Aplicaciones. La utilidad que se le da a un dispositivo tiene una gran influencia en el software y en las polticas del sistema operativo y de apoyo. Por ejemplo, un disco que almacena archivos necesita el soporte de un software de gestin de archivos. En cambio, un disco usado como almacn de pginas de un sistema de memoria virtual depender del uso que se haga del hardware y el software de memoria virtual. El uso que se le d exige niveles de privilegio y prioridades, por ejemplo, el uso que se le da al CPU.

40

SISTEMAS OPERATIVOS
c) Complejidad del control. Una impresora necesita una interfaz de control relativamente simple. Un disco es mucho ms complejo. La lgica del mdulo de E/S que controla el dispositivo filtra el efecto de estas diferencias sobre el sistema operativo. d) Unidad de transferencia. Los datos pueden transmitirse como flujos de bytes o caracteres o en bloques mayores. Por ejemplo, dispositivos de entrada/salida a terminal, dispositivo de entrada/salida a disco. e) Representacin de los datos. En diferentes dispositivos se emplean diferentes esquemas de codificacin de datos, incluidas las diferencias en los cdigos de caracteres. f) Condiciones de error. La naturaleza de los errores, la manera en que se informa sobre ellos, sus consecuencias y el rango disponible de respuestas difieren ampliamente de un dispositivo a otro. 4.2 Funciones de la entrada/salida A medida que los sistemas informticos han evolucionado, se ha producido una tendencia creciente en la complejidad y satisfaccin de cada componente individual. En ningn punto es ms evidente que en la funcin de entrada/salida. Las etapas de su evolucin pueden resumirse como sigue: 1. El procesador controla directamente los dispositivos perifricos.

2. Se aade un controlador o mdulo de entrada/salida programada sin interrupciones. El CPU se aisla de los detalles especficos de las interfaces en dispositivos externos. 3. Se emplean interrupciones. Ahora el procesador no tiene que desperdiciar tiempo esperando a que se realice una operacin de entrada/salida, incrementando as la eficiencia. 4. El mdulo de entrada/salida recibe el control directo de la memoria a travs de DMA (Direct Access Memory). Ahora puede mover un bloque de datos de la memoria o desde la misma sin que intervenga el procesador, excepto al principio y al final de la transferencia. 5. Se mejora el mdulo de entrada/salida hasta llegar a ser un procesador separado con un conjunto de instrucciones especializadas para entrada/salida. El CPU ordena al procesador de entrada/salida la ejecucin de un programa de E/S en la memoria principal. El procesador de entrada/salida lee y ejecuta estas instrucciones sin intervencin del procesador. Esto permite al procesador especificar una secuencia de actividades de e/s e interrumpirla slo cuando haya terminado la secuencia entera. 6. El mdulo de entrada/salida posee su propia memoria local y es, de hecho, un computador independiente. Con esta arquitectura se pueden controlar un gran nmero de dispositivos de entrada/salida, con una participacin mnima del procesador. A medida que se sigue en esta evolucin, una mayor parte de las funciones de entrada/salida se realiza sin la participacin del procesador. El procesador central se ve liberado cada vez ms de las tareas relacionadas con la entrada/salida, mejorando as el rendimiento.

41

SISTEMAS OPERATIVOS
Objetivos del diseo del servicio de E/S 1) Eficiencia. Es importante porque las operaciones de entrada/salida constituyen a menudo un cuello de botella en los sistemas informticos. La mayora de los dispositivos de E/S son extremadamente lentos en comparacin con la memoria principal y el procesador. (ver figura de la hoja 1). Una manera de abordar este problema es el uso de la multiprogramacin que permite que algunos procesos esperen en operaciones de entrada/salida mientras otro proceso se est ejecutando. 2) Generalidad. En inters de la simplicidad y la exencin de errores, ser deseable gestionar todos los dispositivos de manera uniforme. Esta afirmacin se aplica tanto a la manera en que los procesos contemplan a los dispositivos de E/S como a la forma en que el sistema operativo gestiona los dispositivos de E/S y las operaciones. 4.3 Planificacin de discos En los ltimos 30 aos, el crecimiento en la velocidad de los procesadores y la memoria principal ha dejado muy atrs el de los accesos al disco. La velocidad del procesador y la memoria se va incrementando en dos rdenes de magnitud con respecto al disco. El resultado es que, actualmente, los discos son por lo menos cuatro veces ms lentos que la memoria principal. De este modo, el rendimiento de los subsistemas de almacenamiento en disco es de una importancia vital y se han realizado muchas investigaciones sobre maneras de mejorar dicho rendimiento. Parmetros de rendimiento del disco Los detalles reales de las operaciones de E/S con los discos dependen de los sistemas informticos, el sistema operativo y la naturaleza del canal de E/S y el hardware controlador del disco. El siguiente es un tpico diagrama de tiempos de la E/S a disco.

Cuando la unidad de disco est operando, el disco gira a una velocidad constante. Para leer o escribir la cabeza debe ponerse en la pista deseada, al comienzo del sector pertinente. Si el sistema es de cabezas mviles, hay que mover la cabeza para elegir la pista. Si el sistema es de cabezas fijas, habr que seleccionar electrnicamente una de ellas. En un sistema de cabezas mviles, el tiempo que se tarda en ubicar la cabeza en la pista se llama tiempo de bsqueda. En cualquier caso, una vez que se ha seleccionado la pista, el controlador del disco esperar hasta que el sector apropiado se alinee con la cabeza en su rotacin. El tiempo que tarda el comienzo del sector en llegar hasta la cabeza se conoce como retardo de giro, o latencia de giro. La suma del tiempo de bsqueda y el retardo de giro es el tiempo de acceso, es decir, el tiempo que se tarda en llegar a la posicin de lectura o escritura. Una vez que la cabeza est ubicada, se puede llevar a cabo la operacin de lectura o escritura a medida que el sector se mueve bajo la cabeza; esta es la parte de transferencia real de datos de la operacin.

42

SISTEMAS OPERATIVOS
Adems del tiempo de acceso y del tiempo de transferencia, existen algunos retrasos en las colas que normalmente tienen asociadas una operacin de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe esperar en una cola a que el dispositivo est disponible. En ese momento, el dispositivo queda asignado al proceso. Si el dispositivo comparte un nico canal de E/S o un conjunto de canales con otras unidades del disco, puede producirse una espera adicional hasta que el canal est disponible. En ese punto se realizar la bsqueda con que comienza el acceso al disco. 4.4 Acceso Directo a Memoria Puesto que la mayora de los datos que maneja el ordenador estn antes o despus en la memoria RAM, los intercambios entre esta y el resto de elementos son muy frecuentes. En general este intercambio es conducido por el procesador, pero si se consigue que en determinados casos, la memoria pueda intercambiar datos con otro perifrico sin intervencin del procesador (por ejemplo un disco o una tarjeta de sonido), se conseguir un incremento sustancial en el rendimiento del sistema, porque el procesador quedar libre para otras tareas. El acceso directo a memoria se invent con el propsito de liberar al CPU de la carga de atender a algunos controladores de dispositivos. Incrementa la velocidad de acceso a los dispositivos y enva informacin en menos tiempo.

El Acceso Directo a Memoria (DMA) es un mtodo rpido para transferir datos de forma directa de un dispositivo perifrico a la memoria del sistema por medio de circuitera especializada o un microprocesador exclusivo, sin pasar por el procesador central. Controlador de dispositivo o adaptador. Es la parte electrnica de los perifricos, la cual puede tener la forma de una tarjeta o un circuito integrado a la tarjeta madre de la computadora. El ADM o DMA es la tcnica de transferencia de informacin/datos que desconecta al proceso durante tal transferencia y deja que el dispositivo perifrico maneje la transferencia directamente a la memoria, mejorando la velocidad de la transferencia y haciendo el sistema ms eficiente.

43

SISTEMAS OPERATIVOS
4.5 Dispositivos de almacenamiento en disco Denominamos dispositivos perifricos tanto a unidades a travs de las cuales el ordenador se comunica al mundo exterior, como a los sistemas que almacenan o archivan la informacin, sirviendo de memoria auxiliar de la memoria principal. Las principales caractersticas de estos dispositivos perifricos o unidades de almacenamiento: a. Gran capacidad de almacenamiento b. No se pierde la informacin al apagarse la computadora, es decir no es voltil. c. Altas velocidades de transferencia de informacin. d. La informacin se almacena en el mismo formato como se hace en la memoria principal. e. Para ser procesador por el CPU, los datos se almacenan en la memoria secundaria y luego se llevan a la memoria principal. Algunos dispositivos de almacenamiento en disco pueden ser: Floppy Disco duro Disco duro removible CD-ROM CD-R Cintas magnticas CD-RW DVD Disco magntico-ptico Flash memory Memory Stick Blu-Ray

44

SISTEMAS OPERATIVOS UNIDAD V GESTION DE ARCHIVOS


5.1 Archivos y definiciones Archivos. Conjunto de datos al cual se le asigna un nombre. Mecanismo de abstraccin que permite almacenar informacin en un disco y volver a leerla ms adelante.

Sistema de Gestin de Archivos Es aquel conjunto de software del sistema que ofrece a los usuarios y aplicaciones, servicios relativos al empleo de archivos. La nica forma en que un usuario o aplicacin puede acceder a los archivos es mediante el Sistema de Gestin de Archivos (File System). Esto releva al usuario o programador de la necesidad de desarrollar software de propsito especfico para cada aplicacin y proporciona al sistema un medio de controlar su ventaja ms importante. Objetivos del diseo de un sistema de Gestin de Archivos Cumplir con las necesidades de gestin de datos y con los requerimientos del usuario. Garantizar que los datos de los archivos sean vlidos. Optimizar el rendimiento. Ofrecer soporte de entrada/salida para la variedad de tipos de dispositivos de almacenamiento, y en sistema multiusuarios a los mltiples usuarios. Minimizar o eliminar la posibilidad de prdida o destruccin de datos. Ofrecer un conjunto estndar de rutinas de interfaz de entrada/salida. Proporcionar soporte de entrada/salida para mltiples usuarios.

Con respecto al primer punto, el cumplimiento de los requisitos del usuario, el alcance de dichos requisitos depende de la variedad de aplicaciones y el entorno en que el sistema va a utilizarse. En sistemas interactivos de propsito general, deben cumplirse los siguientes requisitos mnimos: 1) 2) 3) 4) 5) 6) Cada usuario debe ser capaz de crear, borrar y cambiar los archivos. Cada usuario puede tener acceso controlado a los archivos de los otros usuarios. Cada usuario puede controlar qu tipos de acceso estarn permitidos a sus archivos. Cada usuario debe poder reestructurar sus archivos de manera adecuada al problema. Cada usuario debe ser capaz de mover datos entre los archivos. Cada usuario debe ser capaz de guardar una copia de reserva y recuperar sus archivos en el caso de que hayan sufrido algn dao. 7) Cada usuario debe ser capaz de acceder a sus archivos mediante un nombre simblico. Estos objetivos y requerimientos deben tenerse en cuenta en todo nuestro estudio de los sistemas de gestin de archivos.

45

SISTEMAS OPERATIVOS
5.2 Jerarqua de datos El almacenamiento de datos sigue una jerarqua lineal, comenzando con la porcin ms pequea y terminando con la ms grande. 1. Bits (0s y 1s). Unidad bsica de almacenamiento. 2. Patrones de bits. Conjunto de bits que representan datos de inters para un sistema de computo. Existen 2n patrones de bits. 3. Bytes o caracteres. Patrones de bits de longitud fija. Bytes de 8 bits. 28 o 256 caracteres. 4. Conjunto de caracteres. Igual llamado cdigo. ASCII (American Standard Code for Information Interchage). EBCDIC (Extended Binary Coded Decimal Interchange Code) Cuando se habla de archivos, habitualmente se utilizan cuatro trminos: 5. Campo. Es el elemento de datos bsico. Es un grupo de caracteres. Atributos de informacin con respecto a una entidad. Un campo individual contiene un valor nico, como el apellido de un empleado, una fecha, un nombre, o el valor ledo por un sensor. 6. Registro. Es un conjunto de campos relacionados que pueden tratarse como una unidad en algunos programas de aplicacin. Por ejemplo, un registro empleado contendr campos tales como nombre, direccin, nmero de seguridad social, clasificacin del trabajo, fecha de contratacin, etc. 7. Archivo. Es un conjunto de registros similares. Los usuarios y las aplicaciones tratan al archivo como una entidad nica y se refieren a l por un nombre. Los archivos tienen nombres nicos y pueden crearse y borrarse. Las restricciones al control de accesos suelen aplicarse a los archivos. Es decir, es un sistema compartido, el acceso de los usuarios y los programas se garantiza o deniega a archivos completos. En sistemas ms sofisticados dicho control se aplica a los registros o incluso a los campos. Por ejemplo, el arcjivo de empleados de x compaa. 8. Bases de datos. Nivel ms alto de la jerarqua. Es un conjunto de archivos o datos relacionados. Consta de una o ms clases de archivos, las relaciones que existen entre los elementos de datos son explcitas y las BDs estn diseadas para ser usadas por varias aplicaciones. 5.3 Funciones de la gestin de archivos Debe ser capaz de rastrear toda la informacin en los archivos de un disco (cuando se borr, se escribi, se modific, etc.) Debe ser capaz de proteger a los archivos mediante sus atributos (lectura, escritura, ejecucin, ocultos, privados, pblicos, compartidos) Debe ser capaz de asignar y desasignar espacio en discos. Establecer correlaciones fsicas y lgicas entre archivos. 5.4 FAT El Sistema de Archivos para llevar a cabo sus funciones de administrador de archivos lo hace a travs del FAT (File Allocation Table) y el Bloque de Control de Archivos. FAT. File Allocation Table. Registro que contiene la informacin de todo el espacio en disco en el dispositivo; permite localizar la informacin en un disco, espacios vacos para escritura, etc. Conoce cuntos bloques de bytes estn disponibles en el disco, cunto espacio est ocupado. El Sistema de Archivos crea la FAT, y est guardada en el disco.

46

SISTEMAS OPERATIVOS
5.5 Bloque de Control de Archivos Para administrar los archivos, el Sistema de Archivos requiere saber la informacin ms importante de estos. Bloque de Control de Archivos o Descriptor de Archivos. Es una estructura de datos con la informacin que el sistema necesita para administrar los archivos; incluye la informacin ms importante acerca de un archivo como: Nombre simblico del archivo Localizacin el archivo en el almacenamiento secundario Tipo de dispositivo Tipo de archivo (de datos, programa objeto, programa fuente, imagen, sonido, video, mp3) Tratamiento (permanente, temporal) Fecha y hora de creacin Fecha de destruccin Fecha y hora de la ltima modificacin Conteo de la actividad de acceso

5.6 Seguridad Con la introduccin de la computadora, se hizo ms evidente la necesidad de herramientas automatizadas para proteger archivos y otra informacin almacenada en las computadoras. El nombre genrico para la descripcin de herramientas diseadas con el fin de proteger datos y desalentar los hurtos es Seguridad de computadoras. Requisitos de seguridad a) Secreto. Accesible para la lectura solo por las partes autorizadas. b) Integridad. Pueden modificarlo solo las partes autorizadas. c) Disponibilidad. Disponible para las partes autorizadas. Tipos de amenazas Al existir un flujo de informacin desde una fuente (un archivo o un rengln de la memoria principal) a un destino (otro archivo o usuario), se puede presentar alguna de las siguientes amenazas: Interrupcin. Una parte del contenido del sistema se destruye, se torna inutilizable (disponibilidad). Intercepcin. Una parte no autorizada consigue acceder al contenido del sistema (secreto). Modificacin. Una parte no autorizada no solo consigue acceder sino que altera en forma indebida una parte del contenido del sistema (integridad). Fabricacin. Una parte no autorizada inserta objetos falsificados en el sistema (integridad). Causas ms comunes en la prdida de datos Siniestros: incendios, terremotos, guerras, roedores, inundaciones, etc. Errores de hw o sw: mal funcionamiento de cpu, discos daados, errores de telecomunicacin, errores de programa, etc. Errores humanos: entrada incorrecta de datos, mal manejo de discos, ejecucin incorrecta del programa, etc. Amenazas relacionadas con programas Las amenazas a la seguridad ms sofisticadas estn representadas por programas que explotan las debilidades en los sistemas computacionales.

47

SISTEMAS OPERATIVOS
Los programas pueden contener dos clases de amenazas: 1. Amenazas de acceso a la informacin 2. Amenazas al servicios 1. Amenazas de acceso a la informacin Estas interpretan o modifican datos a favor de usuarios que no deben tener acceso a ellos. Entre estas amenazas encontramos las siguientes: a) Trampa. Punto no documentado secreto en un programa. b) Caballo de Troya: Rutina no documentada secreta intercalada dentro de un programa til. c) Canales secretos: Un medio oculto para permitir a un programa comunicar informacin. 2. Amenazas al servicio Explotan defectos de servicio en las computadoras para inhibir el uso por legtimos usuarios.. En estas podemos encontrar las siguientes: a) Virus: Cdigo en un programa que hace que una copia del mismo se inserte en uno o varios otros programas. Adems de la propagacin, el virus ejecuta alguna funcin no deseada. b) Gusano: Programa que puede viajar de computadora a computadora por conexiones de red, el cual puede contener un virus o una bacteria. c) Bacteria: Programa que consume recursos del sistema haciendo rplicas de s mismo. 5.7 Panorama actual de las vulnerabilidades de software y las amenazas. http://www.symantec.com/region/mx/enterprisesecurity/content/expert/LAM_4464.html El lenguaje que utilizamos y la forma de pensar sobre los cdigos maliciosos han cambiado significativamente en los ltimos aos. Las actuales amenazas de cdigos maliciosos son generalmente sinnimo de vulnerabilidades de software y viceversa. Si analizamos el panorama actual de las amenazas entenderemos por qu. Durante los ltimos cuatro o cinco aos hemos visto un aumento constante en el nmero de nuevas vulnerabilidades que se informan al pasar de un promedio de 10 semanales en el ao de 1999 a 51 en el ao 2003. La cifra no est aumentando simplemente porque estemos viendo ms productos llenos de fallos, sino por dos razones principales:

Una actitud de divulgacin mayor de la informacin. Mayor concienciacin sobre las vulnerabilidades y mayores esfuerzos por encontrarlas.

Es una espada de doble filo. Aunque tenemos ms informacin disponible para proteger nuestras redes, los atacantes tambin tienen mayor informacin a su alcance para lanzar ataques. Tendencias de las vulnerabilidades Veamos detalladamente estas vulnerabilidades. Cerca de un 80% de las vulnerabilidades publicadas en el ao 2003 fueron clasificadas como blancos de ataques remotos, sin que se presentara prcticamente ninguna variacin frente al 81% en el ao 2002. Esto es importante porque las vulnerabilidades que son consideradas blancos de ataques remotos casi siempre son clasificadas por lo menos bajo la categora de moderadamente graves. Por qu? Porque el componente vulnerable puede estar al alcance de un nmero mayor de atacantes lo que convierte a la vulnerabilidad en algo ms que una amenaza.

48

SISTEMAS OPERATIVOS
Los investigadores de la seguridad buscan cada vez ms vulnerabilidades que se puedan aprovechar de manera remota debido al gran nmero de blancos a los que pueden acceder las redes interconectadas. Adems, las aplicaciones tienen ms funcionalidades de red y, por consiguiente, las vulnerabilidades que estn expuestas a ataques remotos siguen obviamente el ejemplo. Muchas vulnerabilidades tambin afectan a las aplicaciones Web, lo que favorece la tendencia de vulnerabilidades cada vez ms graves. Por ejemplo:

Se produjeron 54 vulnerabilidades en Internet Explorer en el ao 2003. En el transcurso del ao 2004 se han documentado 43 vulnerabilidades en Internet Explorer.

Muchas de estas vulnerabilidades se encuentran sin parches por largos periodos de tiempo. Tendencias de los cdigos maliciosos. Con respecto a los cdigos maliciosos, Symantec manifest que haba 4,5 veces ms virus y gusanos Win32 durante el primer semestre del ao 2004 con relacin al mismo periodo del 2003. Para hacer un anlisis comparativo de las estadsticas, haba 2,5 veces ms virus y gusanos Win32 durante el segundo semestre del 2003 frente al mismo periodo del 2002 Las amenazas basadas en Win32 utilizan la Interfase de programacin de aplicaciones (API) que simplifica muchas funciones que las aplicaciones modernas requieren. De la misma manera que las personas legtimas que desarrollan software utilizan esta API para escribir aplicaciones, los autores de cdigos maliciosos estn aprovechando esta interfase para escribir cdigos maliciosos ms eficaces. Algunos ejemplos de estos cdigos son la enumeracin de otros equipos en la red local y su intencin de propagarse a travs del uso compartido de archivos locales. Symantec ha sealado algunas tendencias significativas:

Amenazas recientes de alto riesgo como Blaster y Sasser estn aprovechando los componentes bsicos de Windows. El tiempo que transcurre desde que se descubre una vulnerabilidad hasta que se publica el cdigo de ataque est disminuyendo. Nuevos cdigos de ataque estn aumentando. Existen investigadores y personas mejor capacitados que realizan ataques en la actualidad. El uso compartido de cdigos entre los atacantes aumenta. Los atacantes y las amenazas combinadas atacan cada vez ms las puertas traseras de otras amenazas.

La mensajera instantnea y las redes P2P son atractivas para los autores de cdigos maliciosos por su popularidad y seguridad limitada. Evidentemente, las nuevas amenazas se estn propagando a una velocidad tan asombrosa que ningn mecanismo reactivo de seguridad basado en firmas las puede detener. Adems, las amenazas futuras pueden hacer que incluso Slammer parezca lento. Por lo tanto, no debera sorprendernos el hecho de que necesitamos encontrar bsicamente nuevas formas de detener el proyectil. Se necesita un cambio de estrategia. Si queremos ganar esta batalla, debemos cambiar de estrategia. Necesitamos desarrollar nuevas tcnicas que puedan controlar estos gusanos de propagacin ultrarrpida. Esto no significa que las tecnologas tradicionales basadas en firmas no sean tiles, puesto que son todava indispensables. Sin embargo, debemos explorar otras posibilidades porque los gusanos ms rpidos pueden lograr lo que llamamos contagio total, es decir, la infeccin total de los servidores susceptibles, mucho ms

49

SISTEMAS OPERATIVOS
rpidamente de lo que los humanos o incluso los sistemas automticos pueden generar e instalar una firma. Symantec cree que se necesita una estrategia integral de seguridad que incluya cuatro elementos importantes para proteger el ciberespacio. Primero, un sistema de alerta debe proporcionar alertas tempranas contra las amenazas nuevas e incipientes. Segundo, se deben implementar tecnologas adecuadas para proteger los dispositivos y la informacin crtica de las aplicaciones. Tercero, se debe disear un plan para responder ante un ataque inevitable. Cuarto, se debe establecer un sistema completo para administrar el proceso de proteccin de la infraestructura. Esta estrategia aborda la seguridad desde una perspectiva empresarial integral y no desde un punto de vista estrictamente tecnolgico o de productos aislados. Por esta razn, es necesario integrar el personal y los procesos relacionados con los sistemas de alerta, proteccin, respuesta y administracin. Veamos detalladamente estos cuatro elementos.

Alertar: La mejor forma de proteger una red de una amenaza es saber sobre la amenaza y la vulnerabilidad que ataca antes de que se produzca un ataque. Un sistema de alerta en el ciberespacio debe producir una alerta temprana contra los ataques que surjan. Tambin debe proporcionar informacin til en la toma de decisiones sobre la forma de proteger el entorno del ataque inminente. Proteger: Las organizaciones han brindado tradicionalmente proteccin mediante la implantacin de productos aislados que funcionan independientemente. Sin embargo, en este mtodo cada producto se debe instalar y actualizar individualmente, lo que genera caos administrativo. Aunque ninguna tecnologa aislada puede proteger adecuadamente contra las amenazas complejas actuales, un mtodo integrado de seguridad puede ayudar a eliminar los desafos de los productos aislados y a proporcionar una solucin ms integral. Este sistema se centra menos en las tecnologas individuales de proteccin y ms en las capas de la arquitectura de los sistemas. Es decir, que la atencin se debe centrar en los niveles de gateways, servidores de aplicaciones y estaciones de trabajo, y no en seleccionar un firewall o sensor de intrusos. De esta manera, se crea una solucin de defensa en profundidad que nos permite administrar el entorno total y no las aplicaciones de seguridad por separado. Responder: Un plan de respuesta eficaz comienza con un sistema inteligente sobre el ataque, as como medidas preventivas para controlarlo e informacin detallada sobre la forma de reparar los daos. Tambin es esencial brindar soporte las 24 horas a los productos de seguridad cruciales, como las actualizaciones automticas de las normas del firewall, las definiciones de virus y las firmas de deteccin de intrusos. Administrar: Significa correlacionar rpidamente la informacin generada por las soluciones de seguridad, simplificarla y dar prioridad a las medidas correctivas necesarias. La administracin puede ser un desafo, especialmente en los entornos que tienen productos dispares de mltiples proveedores donde cada dispositivo genera desbordamientos de datos.

Una nueva generacin de amenazas Las amenazas combinadas como Cdigo Rojo y Nimda fueron eficaces porque combinaban las caractersticas ms devastadoras de los virus, gusanos, caballos de Troya y cdigos maliciosos para atacar las vulnerabilidades informticas y de Internet. (por ejemplo, Nimda utiliz cinco mtodos de propagacin). Con estos mltiples mtodos, las amenazas combinadas pueden inhabilitar sistemas informticos que emplean nicamente una forma de seguridad en Internet, para propagarse rpidamente y causar daos extendidos. Usualmente estos ataques ocurran despus de que se identificaba una vulnerabilidad y ese momento que transcurre entre los dos hechos se llama la "ventana de amenazas a las vulnerabilidades". Nimda

50

SISTEMAS OPERATIVOS
y Slammer tenan ventanas de amenazas a las vulnerabilidades por muchos meses y le daban mucho tiempo al distribuidor para crear un parche y avisarle al pblico, lo que reduca el dao posible de la amenaza. En promedio, se producan ataques seis meses despus de que se anunciaba pblicamente una vulnerabilidad. Sin embargo, en el caso de un ataque hipottico de Da Cero, los expertos en seguridad anticipan las infecciones que se propagaban en cuestin de minutos o segundos y exigen la intervencin humana. Los expertos sealan que el gusano Slammer, apareci en enero, se propag cientos de veces ms rpido que el Cdigo Rojo o Nimda, y su velocidad de infeccin se duplic cada 8.5 segundos durante el primer minuto cautivante de su ataque. De hecho, los expertos informticos de la Universidad de California en San Diego revelaron que despus de 10 minutos de su debut, Slammer haba infectado a ms de 75.000 equipos (hosts) vulnerables. Adems, encontraron que las instrucciones del software de Slammer, a 376 bytes, eran un dcimo del tamao de las de Cdigo Rojo; el pequesimo tamao le permiti reproducirse rpidamente y ajustarse a un tipo de "paquete" de red que fue enviado en una direccin a posibles vctimas, un mtodo agresivo diseado para infectar rpidamente todos los equipos vulnerables y saturar el ancho de banda de Internet. Cules son las perspectivas? Las conclusiones que sacaron los expertos en seguridad de estas amenazas combinadas apuntan a un ataque de Da Cero que ocurrir cuando un ataque pueda crearse y lanzarse inmediatamente despus de descubierta la vulnerabilidad, sin dejar tiempo a los expertos o usuarios informticos de responder. Este ataque probablemente utilizar "listas negras" dirigidas a mquinas (hosts) y equipos en Internet vulnerables, como enrutadores, en lugar de explorar sin un objetivo especfico, como fue el caso del Cdigo Rojo y Nimda. Los investigadores tambin se han centrado en las amenazas de los gusanos llamados furtivos" que se esparcen ms lentamente, pero de forma casi indetectable. Aunque estos gusanos an permanecen en el campo terico, han demostrado ser capaces de subvertir ms de 10.000,000 equipos de Internet. An ms alarmante, los investigadores han demostrado cmo estos gusanos pueden ser controlados y actualizados por los atacantes casi indefinidamente. La realidad es difcil de ignorar: A medida que pasamos de las amenazas combinadas a los ataques de Da Cero, podemos esperar trastornos de mayor magnitud y no de corto plazo. Estrategias de proteccin El aumento de esta nueva clase de amenazas en el ciberespacio necesariamente implica un cambio en el perfil del atacante. Olvdese de los programadores amateur o los "jvenes piratas de macros" cuyos ataques proporcionaban los medios para tener un poco de fama o notoriedad (y quizs unos cuantos nmeros de tarjetas de crdito). Dicen los expertos que los atacantes de Da Cero sern de una generacin totalmente diferente, que tendr mayores conocimientos, ser ms dedicada y que probablemente no est relacionada con el crimen organizado u organizaciones terroristas. Entonces, cmo podrn las empresas protegerse de estos atacantes? Los expertos en seguridad estn de acuerdo en que la implementacin de las mejores prcticas sigue siendo la mejor forma de minimizar el dao. Es decir, que se minimiza el dao particularmente al eliminar los servicios innecesarios, actualizar los parches e imponer contraseas fuertes.

Elimine los servicios innecesarios: Las organizaciones deben establecer cules servicios realmente requieren para eliminar los que son innecesarios. La eliminacin de los servicios innecesarios puede reducir considerablemente la vulnerabilidad del sistema. Por ejemplo, no hay razn de ejecutar un servidor Windows NT con un servidor Web IIS en un equipo de escritorio de un empleado; la eliminacin de los IIS de las computadoras de escritorio preventivamente anular los ataques que estn diseados para aprovechar estas vulnerabilidades.

51

SISTEMAS OPERATIVOS

Actualice los parches: La mayora de amenazas combinadas se basa en vulnerabilidades conocidas. Actualice los sistemas operativos, aplicaciones y productos de seguridad con los ltimos parches de seguridad para sellar muchas puertas abiertas que las amenazas combinadas han usado en el pasado para difundirse. Imponga contraseas fuertes: El uso de contraseas fuertes implementadas a travs de la evaluacin frecuente y consistente de las vulnerabilidades puede ayudar a reducir el ataque ms comn: ataques a contraseas por la fuerza. Las contraseas deben escogerse al azar y no deben ser nombres o fechas importantes. Una buena contrasea tendr por lo menos ocho caracteres que incluyan tanto letras como nmeros. Una poltica que le pide a los usuarios que cambien sus contraseas con frecuencia, tambin reduce el riesgo de una violacin a los sistemas.

Las empresas que desean ir ms all de las mejores prcticas podran considerar la implementacin de lo que se llama seguridad a fondo. El objetivo de la seguridad a fondo es crear una barrera protectora que es extremadamente difcil y costosa de sortear a travs de la combinacin de software antivirus, filtrado de contenido, firewall, control de vulnerabilidades y deteccin de intrusos. Cuando se utilizan todas estas defensas al mismo tiempo, tambin pueden desacelerar o impedir la propagacin de un ataque poniendo el cdigo en cuarentena, alertndolo de su presencia, reparando el dao o bloquendolo por completo. Una combinacin de las mejores prcticas y la seguridad a fondo proprociona la lnea de defensa ms fuerte contra los complejos ataques en el ciberespacio de hoy y de maana. Las empresas tambin deben usar un mtodo de capas para la seguridad informtica mediante la implementacin de productos de seguridad en todos los niveles de la red (escritorio, servidor y gateway de Internet). Finalmente y quizs lo ms importante, los empleados deben capacitarse con frecuencia en mtodos para reconocer y evitar las sofisticadas amenazas en Internet.

52

SISTEMAS OPERATIVOS BIBLIOGRAFA

1. BSICA Sistemas operativos Harvey M. Deitel Addison Wesley Sistemas operativos modernos Andrew S. Tanenbaum Prentice Hall Iberoamericana Administracin de Sistemas operativos Andrew S. Tanenbaum Prentice Hall Ibeoramericana Diseo de sistemas operativos Andrew S. Tanenbaum Prentice Hall Iberoamericana

2. COMPLEMENTARIA

Organizacin de computadoras Hamcher / Vranesick McGraw-Hill Manuales de UNIX, Windows NT Server Revistas Internet Netware,

53