P. 1
Manual_de_S_O

Manual_de_S_O

|Views: 40|Likes:
Publicado porslarad

More info:

Published by: slarad on Jan 04, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/05/2013

pdf

text

original

Sections

  • El Sistema Operativo Como Máquina Virtual
  • El Sistema Operativo Como Administrador De Recursos
  • Sistemas De Procesamiento Por Lotes (Batch)
  • Sistemas Multiprocesadores
  • Sistemas Distribuidos
  • Procesos
  • Relación Entre Los Procesos
  • Especificación De Los Procesos
  • Estados De Los Procesos
  • Transiciones entre los estados
  • El Bloque De Control De Procesos (PCB, Process Control Block )
  • Procesos y Hebras
  • Operaciones
  • El Planificador De Procesos
  • Criterios De Performance
  • Modelo Sencillo De Un Sistema Operativo
  • Interrupciones: La Base De Los Sistemas Operativos Modernos
  • Archivos
  • Tipos Y Estructuras De Archivos
  • Operaciones Con Los Archivos
  • Directorios De Archivos
  • Operaciones Con Los Directorios
  • Acceso Secuencial
  • Acceso Directo
  • Otros Métodos De Acceso
  • Realización Del Sistema De Archivos
  • Estructura De Un Disco
  • Estructura Física
  • Estructura Lógica
  • Planificación De Discos
  • Evaluación De Desempeño
  • Concepto De Localidad
  • Conjunto De Trabajo
  • Algoritmo De Bits Adicionales De Referencia
  • Algoritmo De Segunda Oportunidad
  • Algoritmo LFU
  • Algoritmo MFU
  • Algoritmos Adicionales
  • Algoritmos Basados En Ajuste
  • Operaciones Lock/Unlock
  • Bloqueo Mediante El Uso De Variables Compartidas
  • Sincronización De Ejecución
  • Algoritmo de Peterson
  • Algoritmo De Dekker
  • Sincronización Con Instrucciones De Hardware
  • Semáforos
  • Operaciones Wait/Signal
  • Versión Más General De Los Semáforos
  • Buffers Múltiples
  • Técnicas De Comunicación
  • Sistema Maestro-Sirviente
  • Sistema De Diálogo
  • Sistema De Correo
  • Transmisión Entre Mensajes, Comunicación Directa
  • Transmisión Entre Mensajes, Comunicación Indirecta
  • Utilización De Buffers
  • Monitores
  • Propietarios
  • Prevención De Interbloqueos
  • Evitación De Los Interbloqueos
  • Detección De Los Interbloqueos
  • Recuperación De Interbloqueos
  • Evitación de interbloqueos
  • Nominación
  • Contraseñas
  • Dominios de Protección
  • Matriz De Acceso
  • Listas De Acceso
  • Usuarios y Grupos De Acceso
  • Concepto De Seguridad
  • Métodos De Verificación
  • Estrategia De Total Seguridad
  • Seguridad Externa
  • Seguridad De Operación
  • Vigilancia
  • Supervisión De Amenazas
  • Protección Por Contraseña (Llave/Cerradura)
  • Auditoría
  • Criptografía
  • Sistemas Monolíticos (DOS, MAC)
  • Sistemas Con Capas (Unix / OS2)
  • Máquinas Virtuales (VM/370 CMS (Conversational Monitor System))
  • Sistemas De Microkernel
  • Tiempo Compartido O Bus Común (Conductor Común)
  • Matriz De Barras Cruzadas E Interruptores
  • Almacenamiento De Interconexión Múltiple
  • Conexiones Hipercubo
  • Sistemas Ligeramente Acoplados v/s Sistemas Rígidamente Acoplados
  • Maestro/Satélite
  • Ejecutivos Separados
  • Simétrico
  • Control Y Sincronización De Procesos
  • Creación De Procesos
  • Comunicación Entre Procesos
  • Gestión De La Memoria
  • Sistema De Archivos
  • Subsistema De Entrada/Salida
  • Netware 4.X
  • Protocolo Básico De Netware
  • Niveles Internos De Netware
  • Características De Rendimiento
  • Características De Protección De Datos
  • Otras Prestaciones
  • Gestión De Memoria
  • Instalación Más Sencilla
  • La Evolución Plug & Play
  • Lo Mejor De Versiones De Las Anteriores
  • Seguridad Basada En Elevados Estándares De Desempeño
  • ¿Por Qué Utilizar Linux?
  • Descripción De Las Funciones De Linux
  • ¿Qué Se Puede Hacer Con Linux?
  • Distribuciones
  • Preguntas De Selección Múltiple
  • Preguntas De Términos Pareados
  • Problemas
  • Preguntas de términos pareados
  • Preguntas De Desarrollo
  • Preguntas de desarrollo

M ANUAL DE SISTEM AS OPERATIVOS I

Dirección de Área Infor mática
w ww .inform a tica.ina ca p.cl

Colaboraron en el presente manual: Carlos Covarrubias Astudillo
Jefe de Programa de Estudios Ingeniería en Gestión Informática INACAP La Serena

Derechos Reservados Titular del Derecho: INACAP N° de inscripción en el Registro de Propiedad Intelectual # 130.357 de fecha 02-01-2003. © INACAP 2003. Página 1 de 164

DESC R IPC IÓ N DEL C O NTE NID O
El presente documento contiene una síntesis ordenada de los tópicos más relevantes de la asignatura de Sistemas Operativos I, correspondientes al programa de estudios de Ingeniería en Gestión Informática. El documento pretende ser una fuente de información que complemente la labor docente y a la vez sirva como guía de estudio para el alumno. Este manual se organiza en nueve capítulos ordenados según los contenidos establecidos en el programa de la asignatura (plan 790-5). Además, contiene un completo conjunto de preguntas y ejercicios resueltos que facilitarán el proceso de autoevaluación de aprendizajes y avances de parte del alumno.

Sugerencia de distribución de tiempo de lectura y estudio. Tiempo sugerido CAPÍTULO I CAPÍTULO II CAPÍTULO III CAPÍTULO IV CAPÍTULO V CAPÍTULO VI CAPÍTULO VII CAPÍTULO VIII CAPÍTULO IX : : : : : : : : : INTRODUCCIÓN SERVICIOS DE LOS SISTEMAS OPERATIVOS ELEMENTOS BÁSICOS ADMINISTRACIÓN DE CPU ADMINISTRACIÓN DE MEMORIA CONCURRENCIA ASPECTOS DE SEGURIDAD ELEMENTOS DE CONFIGURACIÓN ALGUNOS SISTEMAS OPERATIVOS 1 1 4 3 3 4 2 2 4 hrs. hrs. hrs. hrs. hrs. hrs. hrs. hrs. hrs.

RESOLUCIÓN DE PREGUNTAS Y PROBLEMAS

12 hrs.

TIEMPO TOTAL DE LECTURA Y ESTUDIO

36 hrs.

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

Página 2 de 164

................................................................................................................................................................................................................................................................................................................................................................................25 El Planificador De Procesos ................................................................45 Página 3 de 164 ..................35 Operaciones Con Los Directorios ...............................................................................................................................................................................................................................................................................................................................................................................29 Administración De Datos................................................................... Process Control Block )............................................................................................................................................................15 Llamadas Al Sistema .....................................................................................................................7 ¿Qué Es Un Sistema Operativo? ................................................................... 8 El Sistema Operativo Como Máquina Virtual........ 12 Multiproceso............................................................................................................ÍNDICE INTRODUCCIÓN .........................................................................................................11 Monoprogramación..................................................................................................................................................................................38 Administración De Dispositivos De Almacenamiento Rotacional............................ 16 Procesamiento Concurrente...................................................9 Resumen Histórico...............................................................................................................................43 Evaluación De Desempeño......................................................41 Estructura Lógica........................................................................................................................................................................................................................................................................................................................................................................................................................... 13 Sistemas Multiprocesadores..................................18 Transiciones entre los estados..................................................................................................................8 El Sistema Operativo Como Administrador De Recursos............................34 Tipos Y Estructuras De Archivos ..........................................................................................................................................................38 Otros Métodos De Acceso.................................................................................................................................................................................................................................................................................................................................................................................................26 Conceptos Básicos De Un Sistema Operativo.......................27 Interrupciones: La Base De Los Sistemas Operativos Modernos .................42 Planificación De Discos ............................................................................................ 12 Sistemas De Tiempo Real......................................................................................................................................................10 SERVICIOS DE LOS SISTEMAS OPERATIVOS.................................................................. 10 Sistemas De Procesamiento Por Lotes (Batch)..........................................................................................................................................................................................................................14 ELEMENTOS BÁSICOS .....................................................................................................................................................................................................................................25 Criterios De Performance.............................................................................. 16 Procesos ................................................................................................................ 26 Modelo Sencillo De Un Sistema Operativo .................18 Estados De Los Procesos ................................................................................................ 11 Tiempo Compartido..........................................................................34 Operaciones Con Los Archivos...................................................................... 11 Multiprogramación .................13 Sistemas Distribuidos.............................................................................................................................................................................24 Procesos y Hebras .......................................17 Especificación De Los Procesos ............................41 Estructura Física..............................................................17 Relación Entre Los Procesos .................................................................................................................................................................................36 Acceso Secuencial ........................................................................... 40 Estructura De Un Disco .......................................................................................19 El Bloque De Control De Procesos (PCB...........................................................................................................................................................................................................................38 Acceso Directo........................... 33 Archivos.............................................................................................. 15 Programas Del Sistema .............................................................................................................................25 Operaciones ..................................34 Directorios De Archivos .........................................................................38 Realización Del Sistema De Archivos.............................................................................................

............76 Transmisión Entre Mensajes......................................................63 Algoritmo De Segunda Oportunidad......................................................................70 Sincronización Con Instrucciones De Hardware...................................................................................................76 Sistema De Correo............................65 Secciones Críticas...................................................................................................72 Versión Más General De Los Semáforos ................... Comunicación Indirecta ..............................................................................................................81 Página 4 de 164 .............................................................................................................ADMINISTRACIÓN DE CPU ................................................................................67 Bloqueo Mediante El Uso De Variables Compartidas ......................................................................................... 51 ADMINISTRACIÓN DE MEMORIA... 66 Operaciones Lock/Unlock..................77 Transmisión Entre Mensajes...............................64 Algoritmos Basados En Ajuste ..................................................................................................................... 60 Concepto De Localidad...............................74 Comunicación Entre Procesos .............................................................................................. 60 Estrategias De Localidad ...................................................... Comunicación Directa........................................................................................................................................... 50 Colas Multinivel................................................................... 55 Paginación...................................................................................................................................79 Propietarios............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................61 Algoritmos De Reemplazo.....................................................................................................................78 Monitores .................................................................................................... 49 Planificación Por Prioridades.....................................63 Algoritmo LFU ............................................................................................................................60 Conjunto De Trabajo...................................................................................................75 Sistema Maestro-Sirviente....................... 52 División De Memoria: El Monitor Residente............................63 Algoritmo MFU .....................................74 Buffers Múltiples ................................................................................................................................................................ 49 Algoritmos SJF & SRT..................................68 Algoritmo de Peterson.............................................................................................48 Algoritmo FCFS................................................... 62 Algoritmo De Bits Adicionales De Referencia...................................................................72 Operaciones Wait/Signal................................................................................................................................................................................................................................................. 54 Segmentación......................................................................................................................................................................... 59 Segmentación/Paginación .........................................................................................................................77 Utilización De Buffers.............................................................................. 52 Reasignación de direcciones.......................................................................................... 75 Técnicas De Comunicación........................64 Algoritmos Adicionales................................52 La memoria dedicada.................................................. ......................................................................................................................................................................... 56 Paginación De Múltiples Niveles......................................................................................................................................69 Algoritmo De Dekker..............64 CONCURRENCIA ..................................................................................................................................................... 50 Algoritmo Round Robin Virtual........... 50 Algoritmo Round Robin......................................................................................................... 52 Protección de la memoria ........................................................................................................................... 53 Swapping ........................................................................................... 60 Fragmentación......................................................................................................................................................................67 Sincronización De Ejecución........................................................................................................................................................................................................................................................................................................................................................................................................... 51 Evaluación De Las Políticas............................................................................................................................................................................................................... 53 Memoria Virtual..........76 Sistema De Diálogo..............................................................................................................................................................................................................................................................................................................................................................................................................71 Semáforos.......................................................................................................................................................................................................................................................................

.................................................................................................................. 101 Ejecutivos Separados .............................98 Matriz De Barras Cruzadas E Interruptores .................................................................................................................................................................................. 102 Creación De Procesos .......................................................................................................................................................................................................................83 Evitación De Los Interbloqueos..............................97 Sistemas Con Capas (Unix / OS2) ............93 Supervisión De Amenazas ............................................................................................................90 Usuarios y Grupos De Acceso.................85 Recuperación De Interbloqueos................................................................................................................................................................................................95 ELEMENTOS DE CONFIGURACIÓN.......................... 101 Consideraciones finales.......................... 100 Maestro/Satélite.......................................................94 Protección Por Contraseña (Llave/Cerradura).89 Dominios de Protección................................................................................................................88 Técnicas De Protección ....................................................................................................... 104 Gestión De La Memoria........................................................................................................................................................................................................................................................................................................... 108 Protocolo Básico De Netware........................97 Organizaciones Más Comunes De Multiprocesadores............................................................................................................................................................................................................................................97 Máquinas Virtuales (VM/370 CMS (Conversational Monitor System))............................................................................ 97 Sistemas Monolíticos (DOS.............. 106 Sistema Operativo Novell Netware .....92 Seguridad Externa.................................................................................................................................................................................................................................................................................................................. 106 Subsistema De Entrada/Salida......................................................................................................................................................................................................................................................................................94 Auditoría ...........................................Deadlocks (Interbloqueos).................................................................................................99 Almacenamiento De Interconexión Múltiple............... 102 Control Y Sincronización De Procesos ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 104 Comunicación Entre Procesos .........................................................................................X................................................................................................................................. 101 ALGUNOS SISTEMAS OPERATIVOS .........................................93 Vigilancia............................................................................................................................................................................................................................................................................................................................................................................................................95 Criptografía ....................................................................................................................................................................................................... 83 Prevención De Interbloqueos .................................................90 Seguridad De Los Sistemas Operativos..................................................................................................................................89 Matriz De Acceso.................................................. 100 Sistemas Ligeramente Acoplados v/s Sistemas Rígidamente Acoplados ....................................................................................84 Detección De Los Interbloqueos ............................................................................................................................................................................................................ 109 Página 5 de 164 ...............................................................................................................................92 Estrategia De Total Seguridad............................................. 105 Sistema De Archivos........................................................................................................................102 Sistema Operativo Unix .................................................................................. 101 Simétrico..................................................................................86 ASPECTOS DE SEGURIDAD ............................................................................................................................................................................................................................................................................... 108 Netware 4...93 Seguridad De Operación........... MAC).....................................................................................................................................................................................................................................................................88 Contraseñas .................................................................................... 98 Tiempo Compartido O Bus Común (Conductor Común).............................................99 Conexiones Hipercubo..................................................................................................................................................................................................................................97 Estructuras De Sistemas Operativos (Diseños) ................................................................................................................................................ 91 Concepto De Seguridad..........................................................................................................................................................................................................97 Sistemas De Microkernel...... 108 Niveles Internos De Netware......................................................................................91 Métodos De Verificación........................................................... 88 Nominación.... 100 Organización De Los Sistemas Operativos De Multiprocesadores .....................................89 Listas De Acceso..........

.....................163 Página 6 de 164 ......................................................................................................................................................................................................................................................................................................................................... 154 Problemas ......... 116 Instalación Más Sencilla............ 133 Preguntas De Desarrollo ......................................... 110 Características De Protección De Datos ........................................................................................ 150 Preguntas De Términos Pareados . 113 Otras Características ............................................... 145 Preguntas De Selección Múltiple................................................. 126 Preguntas De Términos Pareados ................................................................................................................................................................................................................ 149 Respuestas y Soluciones:.................................................................................................................................................................................................................................................... 148 Preguntas De Desarrollo .........................................................................................................................................................Características De Rendimiento..... 114 Sistema Operativo Windows 2000 ...................................................... 117 Lo Mejor De Versiones De Las Anteriores........................................................................................ 137 Preguntas De Selección Múltiple...................................................................................................................................................................................................................................................... 134 Problemas ........................ 118 Sistema Operativo Linux ..........................................................................................................162 ÍNDICE ALFABÉTICO....................................... VIII & IX: ...................................................... 126 Preguntas De Selección Múltiple......................................................................................................................................................................................................................................... 143 Unidades VII........................................................................................................................................ 151 Preguntas de desarrollo........................................... 117 Seguridad Basada En Elevados Estándares De Desempeño ......................................... 142 Problemas ........................... 111 Otras Prestaciones ............................................ II................................................................................................................. 112 Sistema Operativo Windows NT............................................................................................................................................................................................................................................................................................. 114 Gestión De Memoria.................................................................................................................................................................................................................................... III & IV: . 141 Preguntas De Desarrollo ......................................................... 124 Distribuciones ................................................................ 145 Preguntas De Términos Pareados ............................................................................. 121 ¿Por Qué Utilizar Linux? ........................................................................................ 137 Preguntas de términos pareados ...................................... 150 Preguntas De Selección Múltiple............................................................ 135 Unidades V & VI:...................................................................................................................................................................................................................................................................................................126 Unidades I........................................... 113 Control Y Sincronización De Procesos .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 122 ¿Qué Se Puede Hacer Con Linux? ................................................ 124 PREGUNTAS Y PROBLEMAS RESUELTOS.................................................................................................. 116 La Evolución Plug & Play..................................................................................... 157 BIBLIOGRAFÍA ..................................................................................................................................................................... 121 Descripción De Las Funciones De Linux.............................................................................................

presentó conceptos que forman la base de las técnicas actuales de microprogramación. presenta nuevos retos a los fabricantes que antes se concentraban en sus propias arquitecturas. OSI (Open System Interconnection) e ISDN (Integrated Services Digital Network) ya permiten que los computadores de todo el mundo se comuniquen fácilmente entre sí. Los software de aplicación son los encargados de dar un uso adecuado a todo este conjunto de recursos. La actual es una etapa muy interesante en la evolución de los sistemas operativos. no fue sino hasta mediados de los años sesenta. en 1951. El estudio de los sistemas operativos ha llegado ha ser un tópico importante en las ciencias de la computación después de la introducción del concepto time sharing. mientras que su costo se reduce asombrosamente. Sin embargo. es decir. La microprogramación introduce una capa de programación debajo del lenguaje de máquina del computador. (*) EI concepto de microprogramación (firmware) se atribuye por lo general al profesor Maurice Wilkes quien. Es evidente que se necesita una nueva definición de sistema operativo. instalados en el software o el firmware. un sistema operativo se podría haber definido como el software que controla al hardware. las arquitecturas de los procesadores múltiples y en red están creando un sin número de oportunidades para investigar y desarrollar nuevas estrategias de hardware y software. microcódigo. Un sistema operativo es un conjunto de programas que supervisan la ejecución de todos los programas de aplicación y controlan la utilización de todos los recursos de hardware que estén disponibles al momento de su ejecución. características que hasta hoy en día aún siguen revolucionando el ambiente computacional. Los lenguajes de programación secuenciales han sido desplazados por lenguajes de programación concurrentes que permitan especificar actividades de cómputo en paralelo. hace posible la definición de instrucciones en lenguaje de máquina. En esta década son muy comunes las estaciones de trabajo de escritorio con velocidades de procesamiento muy elevadas y ya se habla de máquinas de escritorio capaces de manejar velocidades de más de mil millones de instrucciones por segundo. Se puede imaginar un sistema operativo como los programas. Sin embargo. Página 7 de 164 .CAP ÍT UL O I INT RODUCCIÓN Todo el hardware de un sistema computacional a cualquier nivel se compone de una serie de recursos físicos que van desde periféricos en general hasta la misma CPU. Como tal. La capacidad de los computadores continúa aumentando a una velocidad vertiginosa. La microprogramación. En los años sesenta. es parte integral de las arquitecturas de computador modernas y es importante para los aspectos de rendimiento y seguridad de los sistemas operativos. El hardware proporciona la "capacidad bruta de cómputo". Dicha tendencia se ha pronunciado tanto que es probable que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aquellas codificadas en software. que se ejecuta en una memoria de control de alta velocidad. que hacen utilizable el hardware. multiprogramación y multitarea. los sistemas operativos ponen dicha capacidad de cómputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento. software y dispositivos de comunicación producen sistemas que se ajustan a estándares aceptados internacionalmente. cuando se generalizó la microprogramación. Los nuevos estándares internacionales que rigen la comunicación abierta. en el cual los proveedores de hardware. Como el costo de los procesadores se está reduciendo tanto. El enfoque de sistemas abiertos. actualmente existe una tendencia significativa a la transferencia de las (*) funciones del software al firmware . lo cual representa un paso gigante hacia el establecimiento de la computación distribuida a escala mundial.

de cómo funciona el disco duro del computador. que puede ser visto como una capa de software que maneja todas las partes del sistema y hace de intermediario entre el hardware y los programas del usuario. tarjetas de expansión (tarjetas de red. Hace muchos años que quedó claro que era necesario encontrar algún medio para aislar a los programadores de las complejidades del hardware. En parte. que decir: 1. módems y otros). para una misma familia de máquinas. entonces a la fecha se habría escrito una cantidad bastante reducida de programas. protegiéndolo de los detalles y complejidades del hardware. 3. por ejemplo. el sistema operativo presenta una interfaz o máquina virtual que es más fácil de entender y de programar que la máquina "pura". monitores de distinta resolución o discos duros de diversos fabricantes). 4. etc. es un sistema complejo. así como también es el encargado de asignar en forma racional y eficiente los recursos que precisen los software de aplicación. es difícil definir qué es un sistema operativo. habría que rescribir el programa si se instala un disco diferente o se desea ejecutar el programa en otra máquina. teniendo además siempre presentes todas las posibles cosas que podrían fallar. Administrar eficientemente los recursos del computador. teclado. Decir al controlador que efectué la operación. el número de bytes que se desea escribir. Decidir qué hacer si el controlador se demora más de lo esperado (¿cuánto es "lo esperado"?). Además. es el encargado de interpretar las instrucciones de las aplicaciones y traducir los códigos de respuesta de la máquina. Interpretar el resultado de la operación (una serie de bits). Página 8 de 164 . amén de otros parámetros. A pesar de que todo el mundo utiliza sistemas operativos casi a diario. De esta manera. 2. un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente. mouse y otros dispositivos. 5. el sentido de la operación (lectura o escritura). Reintentar si algo anduvo mal.¿Qué Es Un Sistema O pera tivo? El sistema operativo es el ente intermedio entre las aplicaciones y la máquina. Es mucho más fácil decir “escriba lo apuntado por este puntero al final del archivo datos”. Esa es precisamente una de las tareas del sistema operativo. O sea. memoria principal o RAM. memoria secundaria (discos). monitor. Esperar. la posición de memoria donde está la información a escribir. Además. Poner en determinados registros del controlador de disco la dirección que se quiere escribir. aunque tengan componentes diferentes (por ejemplo. Escribir programas que hagan uso correcto de todos estos componentes no es una tarea trivial (peor aún si se habla del uso óptimo). Si cada programador tuviera que preocuparse. la máquina virtual puede ser idéntica: el programador ve exactamente la misma interfaz. • El Sistema Operativo Como Máquina Virtual Un computador se compone de uno o más procesadores o CPUs. es decir. esto se debe a que los sistemas operativos realizan dos funciones diferentes: • Proveer una máquina virtual.

Contiene tablas de asignación de direcciones que indican qué programas y datos están en memoria. Administración de CPU • • Decide qué programa hace uso del recurso de la unidad central de procesamiento. Asigna o quita espacio en memoria a programas según sea posible o requerido. Indica el número de usuarios que están utilizando el sistema computacional. y arbitrar en caso de solicitudes conflictivas. Además. Página 9 de 164 . c. En síntesis.El Sistema Operativo Como Administrador De Recursos La otra tarea del sistema operativo consiste en administrar los recursos del computador cuando hay dos o más programas que se ejecutan simultáneamente y además requieren usar el mismo recurso (como tiempo de CPU. un usuario puede ser una persona. en un sistema multiusuario. En resumen. Mantiene directorios de los archivos existentes en el disco y administra el espacio libre. Comunicación con el usuario • • • • Permite que el operador controle el computador. elimina. (En este caso. Por ejemplo el término anormal de alguna aplicación debido a fallas de la aplicación misma o problemas de hardware. un programa. se puede afirmar que las principales tareas que realiza un sistema operativo son: a. Por ejemplo: la información confidencial sólo debe ser accedida por usuarios autorizados. memoria o impresora). Indica y. Manejo de dispositivos de E/S • • Controla el flujo de datos desde y hacia cualquier dispositivo de entrada y salida. copia y controla el acceso a los archivos. Al mismo tiempo. algún dispositivo de E/S o la utilización de algún otro recurso. esperando el uso de la CPU. cuando no se encuentran disponibles envía un correspondiente mensaje de información al usuario o la aplicación que lo solicita. controla los errores ocurridos en el sistema. en que momento y por cuánto tiempo. Administración de archivos en disco • Crea. Administración de memoria • • • Mantiene el estado de los programas y datos residentes en memoria. Crea una lista de espera con los programas que están solicitando utilizar este recurso a fin de poder asignar posteriormente el recurso bajo alguna política de prioridad. u otro computador). d. Controla la comunicación con los dispositivos de E/S y para dispositivos particulares existen programas especiales de control de periféricos (drivers). si es posible. otorgar recursos a quienes lo solicitan (siempre que el solicitante tenga derechos adecuados sobre el recurso). etc. suele ser necesario (o conveniente) compartir información (además de dispositivos físicos). cuanto espacio ocupan en forma independiente y dónde están ubicados. el sistema operativo debe llevar la cuenta acerca de quién está usando qué recursos. Permite la utilización de dispositivos generales o particulares. e. deben tenerse en cuenta una serie de consideraciones de seguridad. un usuario cualquiera no debiera ser capaz de sobrescribir áreas críticas del sistema. b.

el compilador. o las demoras. Estos sistemas son muy útiles cuando se trata de la realización de procesos masivos. • Versiones mejoradas de diversos sistemas operativos. se puede observar la siguiente tabla: Generación de computadores 1° 2° 3° 4° 5° Año(s) 1945 . • Ms-DOS. ligador y cargador de FORTRAN. La característica que delata un sistema por lotes en forma definitiva es la ausencia de interconexión entre el usuario y el trabajo mientras se ejecuta. • Sistemas operativos de propósito general multimodo. ahora se utilizan otras características. Cuando éste termina. Los sistemas por lotes se pueden clasificar en monoprogramables y multiprogramables.. Así fue como aparecieron los compiladores FORTRAN y COBOL que hacían en su tiempo las veces de lo que hoy se conoce como sistema operativo. etc.. Un sistema operativo por lotes lee un flujo separado de datos. Los primeros computadores eran voluminosas máquinas que se operaban directamente desde una consola. como la diferencia entre el tiempo compartido y la multiprogramación. se (*) envía y más tarde se obtiene algún resultado. Características • Tubos de vacío y tableros de cómputo. Los sistemas por lotes se caracterizan por ser secuenciales y por el hecho de que la CPU tiene el control total de la ejecución del proceso.. Al hacerse factible el almacenamiento en línea en disco fue posible ofrecer un acceso inmediato a todo el paquete de aplicación. aparición del PC. El tiempo de retorno puede ser el resultado de la cantidad de procesos que se realizan en forma necesaria. Posteriormente aparecieron los sistemas operativos propiamente tales. • Transistores y sistemas batch.. antes de que el sistema operativo comience a procesar un nuevo lote (o trabajo). • IBM/360 sistema operativo OS/360. • Fortran y Assembler en tarjetas perforadas. • Circuitos integrados de gran escala. se manejan por medio de hardware y secuencias de comandos directos. A fin de evitar mayores extensiones en cuanto a los detalles de evolución de los sistemas operativos y en general de los sistemas computacionales. • Superconductores. hace ya tiempo que dejaron de ser definidos por la agrupación de trabajos similares. generalmente se imprime el resultado a través de algún dispositivo de salida. 1990 .1980 1980 . Página 10 de 164 . (*) El tiempo de retorno es el tiempo transcurrido desde que se envía el trabajo hasta obtener la salida. primero se ha de conocer el método de procesamiento por lotes. por lo que únicamente podía usarse un paquete de aplicación en cada ocasión (por ejemplo. sin embargo. Cuando se desarrollaron por primera vez los sistemas por lotes.Resumen Histórico En un principio sólo existía el hardware del computador. debido a la considerable lentitud de los procesos de carga y descarga de paquetes de información (antiguamente tarjetas).. Los sistemas por lotes. Microchips. Sistemas De Procesamiento Por Lotes (Batch) Para comprender conceptos más específicos. • No existe sistema operativo. Los sistemas basados en tarjetas y cintas sólo permitían el acceso secuencial a los programas y datos.1955 1955 . quienes progresivamente se veían ante la necesidad de crear programas de aplicación cada vez más grandes y consecuentemente el proceso de detección y corrección de fallas en interacción directa con la máquina se hacía cada vez más lento y complejo. Pentium. etc. Pero con el transcurso del tiempo se hizo evidente la necesidad de simplificar la tarea de los programadores. el tiempo de proceso es alto y la CPU pasa la mayor parte de ese tiempo ociosa. cada uno con banderas de control que definen qué hace cada trabajo. o sus equivalentes de COBOL)..1965 1965 . El trabajo se prepara. estaban caracterizados por la "agrupación en lotes" de trabajos similares. UNIX.

se necesita alguna forma de administración de memoria. así. Los sistemas monoprogramables con prioridades y tiempo de salida se caracterizan por tener una cola de atención con prioridades y un proceso puede terminar al haber completado su ejecución o después de haber transcurrido un intervalo de tiempo de atención prefijado. la CPU nunca estará inactiva. El concepto es el siguiente: El sistema operativo escoge uno de los trabajos del depósito y lo comienza a ejecutar. y así sucesivamente. Los sistemas monoprogramables lineales son la expresión más simple del sistema operativo y se caracterizan por tener una cola de atención sin prioridades y un proceso no termina hasta haber completado su ejecución. o que termine una operación de E/S. La monoprogramación es el modo de trabajo en el que solamente un programa utiliza el procesador. hasta que termina. la CPU estaría inactiva. Los sistemas operativos multiprogramados son bastante complejos. el trabajo tendrá que esperar que se efectúe cierta tarea como montar una cinta. mientras haya otro trabajo por ejecutar. La multiprogramación aumenta la utilización de la CPU organizando los trabajos de manera que ésta siempre tenga algo que ejecutar. Para que pueda haber varios programas listos para ejecutarse. el sistema operativo cambia a otro trabajo y lo ejecuta. sustituyendo al anterior. el sistema debe elegir uno de ellos. Esta decisión se denomina planificación de la CPU. Cuando el programa entra en proceso se apodera de la CPU y de los dispositivos de E/S. En un sistema multiprogramado. En el Capítulo N° 5 se detalla el cómo se gestiona la memoria en aquellos sistemas que utilizan este modo de trabajo. cuando ese trabajo tiene que esperar. En algún momento. Por otra parte. Cuando se consigue esto. el sistema debe conservarlos todos en la memoria al mismo tiempo. siendo además el único existente en la memoria principal. él seguirá ocupando la CPU mientras espera que el proceso de impresión termine. M ultipro grama ción En un p rocesamiento por lotes puede ocurrir que en cierto instante ocupe la CPU un proceso que demande una tarea de impresión. la CPU cambia a otro. existen dos formas habituales de organizar la diferencia de velocidades de ejecución (*) (**) entre la CPU y los dispositivos: Polling e Interrupciones . si al mismo tiempo existen varios programas listos para ejecutarse. En un sistema no multiprogramado. Página N° 11 de 151 . de tal forma que hasta que éste no termine su trabajo no cederá el control al siguiente programa que será cargado en memoria. Eventualmente el primer trabajo deja de esperar y recupera la CPU. dejando la CPU ociosa. Los sistemas monoprogramables con prioridades se caracterizan por tener una cola de atención con prioridades y un proceso no termina hasta haber completado su ejecución. (*) El polling consiste en que la CPU está constantemente preguntando a cada periférico si tiene algo que hacer.CAP ÍT UL O II SERVICIOS DE LOS SISTEM AS OPERAT IVOS M onoprogramación Se atiende un trabajo a la vez. que se introduzca un mandato mediante el teclado. Además. En el último caso es devuelto a la cola de atención.

Es decir es el procedimiento inverso al polling. ambas técnicas no pueden ser implementadas por hardware. experimentos científicos y sistemas médicos. aunque siempre su diseño básico se inclina hacia uno u otro tipo. Por ejemplo: sistemas de control industrial. La multiprogramación y el tiempo compartido son los aspectos centrales de los sistemas operativos modernos. Como el sistema pasa rápidamente de un usuario al siguiente. Para lograr un tiempo de respuesta razonable hay que intercambiar los trabajos entre la memoria principal y el disco que funciona como almacenamiento de respaldo para la memoria principal. Los datos son almacenados en memorias no volátiles (ROM). supervisión de controles industriales y realidad virtual. así. cada uno de ellos tiene la impresión de que cuenta con su propio computador. • (**) Las interrupciones permiten que la CPU se concentre en la atención de procesos. Estos sistemas tienen menos utilidades que los implementados por hard. como en la multiprogramación. protección y planificación de la CPU. no fueron comunes sino hasta principios de los años setenta. los investigadores han tratado de combinar los sistemas por lotes y de tiempo compartido en uno solo. Hoy en día. además. pero como los sistemas de este tipo eran más difíciles y costosos de construir. un sistema de archivos en línea. luego. Los sistemas de tiempo real se pueden clasificar en: • Los sistemas de tiempo real por hard: que garantizan que las tareas críticas se ejecutan a tiempo. pero estos cambios son tan frecuentes que los usuarios pueden interactuar con cada programa mientras se ejecuta.Finalmente. La CPU ejecuta las diversas tareas alternando entre ellas. En los sistemas multiprogramables de partición variable la memoria disponible es dividida en secciones variables de acuerdo a la demanda de cada uno de los procesos que sean almacenados en ella. Un sistema operativo de tiempo compartido permite a los diversos usuarios compartir al mismo tiempo el computador. si varios programas se ejecutan concurrentemente. Puesto que en un sistema de tiempo compartido cada acción o mandato suele ser breve. Diversos sistemas de computación diseñados inicialmente como sistemas por lotes se han modificado para crear un subsistema de tiempo compartido. cuando un dispositivo requiere de la atención de la CPU. sólo se requiere un corto tiempo de la CPU para cada proceso. el almacenamiento en disco y la administración de memoria. Los sistemas de tiempo real por soft: que ejecutan tareas menos críticas y manejan técnicas de prioridades para la asignación de tareas. un proceso debe esperar hasta que este disponible un bloque (o más) de memoria lo suficientemente grande para ser atendido. le enviará una solicitud de interrupción. Sistemas De Tiem po Real Se utilizan cuando hay requerimientos de tiempo muy rígidos en las operaciones o en el flujo de datos. generalmente se utilizan como sistemas de control en una aplicación dedicada. Por tanto. es necesario limitar la posibilidad de que se interfieran unos a otros e todas las fases del sistema operativo. Al crecer la popularidad del tiempo compartido. incluyendo la planificación de n procesos. hay que conservar simultáneamente varios programas en la memoria. no utilizan técnicas de memoria virtual ni tiempo compartido. lo que requiere algún tipo de administración de memoria. Los sistemas multiprogramables con partición fija disponen de espacios de almacenamiento fijo para los procesos que se encuentran en la cola. Pero sí para multimedia. la mayoría de los sistemas ofrecen tanto el procesamiento por lotes como el tiempo compartido. también es necesario proporcionar administración del disco. Los sistemas operativos de tiempo compartido son complejos y ofrecen algún mecanismo para la ejecución concurrente. En 1960 se expuso el concepto de tiempo compartido. Además. Los sistemas de tiempo compartido deben ofrecer. Tiempo Com part ido El tiempo compartido (o sistemas en línea) es una extensión lógica de la multiprogramación. Página 12 de 164 . cuando en realidad todos comparten sólo uno. por ejemplo no pueden utilizarse para control industrial ni en robótica.

Confiabilidad Si falla una instalación de un sistema distribuido. Si. por otra parte. Los procesadores se comunican a través de distintas líneas de comunicación. Un ejemplo son los sistemas de ventanas. Estos sistemas asignan una tarea específica a cada procesador. En general. Por ejemplo. pues cada uno cuenta con su propia memoria local. minicomputadores y grandes sistemas de computación de propósito general. los procesos en las distintas instalaciones tienen la oportunidad de intercambiar información. procesar información en una base de datos distribuida. Las ventajas más evidentes son mayor potencia de computación y fiabilidad. Aceleración de los cálculos Si un cálculo determinado puede dividirse en varios subcálculos que se ejecuten concurrentemente. En general. utilizar dispositivos remotos de hardware especializado y llevar a cabo otras operaciones. entonces un solo error puede detener el funcionamiento de todo el sistema. algunos de ellos pueden pasarse a otras instalaciones con poca carga. imprimir archivos en instalaciones remotas. Además. Compartimiento de recursos Si varias instalaciones (con distintas capacidades) están conectadas entre sí. c. en la instalación A se puede utilizar una impresora láser sólo disponible en la instalación B. el sistema puede continuar su operación. si hay suficiente redundancia en el sistema (tanto en hardware como en datos). Algunas de las razones para construir sistemas distribuidos son las siguientes: a. A este movimiento de trabajos se le llama compartimiento de cargas. Sistemas Multiprocesadores Un sistema multiprocesador tiene más de una CPU compartiendo memoria y periféricos. Al mismo tiempo. un sistema distribuido permitiría distribuir los cálculos entre las diversas instalaciones y también ejecutarlos concurrentemente. como canales de alta velocidad o líneas telefónicas. entonces un usuario puede utilizar desde una instalación los recursos disponibles en otra. y por lo general la comunicación se lleva a cabo a través de una memoria compartida. estaciones de trabajo. Un procesador maestro controla el sistema. En un sistema fuertemente acoplado los procesadores comparten la memoria y un reloj. Este esquema define una relación Página 13 de 164 . potencialmente. ya que con frecuencia se comparten datos o se transfieren entre ventanas.M ultipro ceso Una nueva tendencia de los sistemas de computación es distribuir los cálculos entre varios procesadores. el compartimiento de recursos en un sistema distribuido ofrece los mecanismos para compartir archivos en instalaciones remotas. la avería de una no debe afectar a las demás. d. Comunicación Existen varias situaciones más donde los programas de un sistema necesitan intercambiar datos entre sí. b. en B es posible tener acceso a un archivo que reside en A. Existen dos esquemas básicos para la construcción de estos sistemas de multiproceso (o distribuidos). Cuando varias instalaciones están conectadas entre sí por una red de comunicaciones. el sistema esta compuesto por varias máquinas pequeñas. Si el sistema se compone de varias instalaciones autónomas de gran tamaño. si en un momento dado una instalación esta sobrecargada con trabajos. las restantes pueden. pueden incluir pequeños microprocesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj. incluso cuando fallen algunas de las instalaciones. A estos sistemas generalmente se les conoce como sistemas distribuidos y en ellos los procesadores pueden variar en cuanto a tamaño y función. cada una responsable de alguna función indispensable del sistema. los otros esperan al maestro o tienen tareas predefinidas. continuar operando.

Pueden usarse pequeños ordenadores situados a cierta distancia de la CPU principal. trabajando en lectoras de tarjetas e impresoras en línea y transfiriendo estos trabajos hacia y desde la CPU principal. transfiriéndose información.maestro/esclavo. Otra forma son las redes de ordenadores. Un procesador maestro controla el sistema. cada sistema tiene su propio sistema operativo y trabaja independientemente. es que estos últimos no comparten memoria ni periféricos. donde se comunican muchos sistemas informáticos independientes. Sin embargo. tales como líneas telefónicas o buses de alta velocidad. Los sistemas de tiempo compartido se componen generalmente de un ordenador grande (principal) y un ordenador más pequeño que sólo es responsable de las entradas y salidas sobre terminales. Estos esquemas se pueden clasificar en sistemas multiprocesadores simétricos. (Para mayor información véase capítulo VIII) Sistemas Distribuidos La principal diferencia entre los sistemas de multiprocesadores y distribuidos. Los procesadores se comunican entre si a través de varias líneas de comunicación. o multiprocesadores asimétricos. Cada procesador tiene su propia memoria local. Dicho de otra forma. en el cual cada procesador corre una copia idéntica del sistema operativo y se comunica con los demás procesadores según sus necesidades. se trata de redes de computadores donde los procesadores pueden variar en tamaño y función. Página 14 de 164 . en los cuales cada procesador tiene asignado una tarea predefinida.

El sistema tiene que ser capaz de cargar un programa en memoria y ejecutarlo. • Protección. Manipulación de archivos: • • • • Crear y borrar un archivo. • Manipulación del sistema de archivos. hay que asignar recursos a cada uno de ellos. Cargar o ejecutar otro programa. Se desea controlar los pasos de los usuarios que utilizan el computador. escribir y eliminar archivos. terminar procesos. El sistema operativo necesita constantemente detectar posibles errores. Crear nuevos procesos. Estas llamadas se implementan generalmente por instrucciones en lenguaje de máquina. Página 15 de 164 . El sistema operativo debe facilitar las herramientas necesarias para que los programas puedan leer. • Detección de errores. Esto implica: • Asignación de recursos. Leer. Cuando hay muchos trabajos ejecutándose al mismo tiempo no debe ser posible que un trabajo interfiera sobre otro. El sistema operativo gestiona muchos tipos de recursos diferentes. • Operaciones de entrada/salida. Esperar un suceso. Abrir y cerrar un archivo. Obtener atributos de un archivo y establecer atributos de un archivo. manipulación de dispositivos y archivos. Llamadas Al Sistema Constituyen una interfaz entre los programas que se están ejecutando y el sistema operativo. • Contabilidad. Los sistemas operativos con usuarios múltiples pueden mejorar su eficiencia compartiendo entre ellos los recursos del computador. Obtener atributos de un proceso y establecer atributos de un proceso. Se pueden agrupar en tres categorías: control de procesos o de trabajos. el sistema operativo debe adoptar la iniciativa apropiada que garantice una computación (u operación) correcta y consistente. Control de procesos y de trabajos: • • • • • • Finalización (normal o anormal).CAP ÍT UL O III ELEMENT OS BÁSICOS Recordando lo señalado en el primer capítulo. Para cada tipo de error. los tipos de servicios de los sistemas operativos son: • Ejecución de programas. Como un programa no puede acceder directamente a un dispositivo de E/S el sistema operativo debe facilitarle algunos medios para realizarlo. en qué medida lo hacen y qué tipo de recursos emplean. Dos métodos básicos de prestación de servicios son las llamadas al sistema y los programas de sistemas. escribir y reposicionar un archivo. Esperar un tiempo. Los errores pueden producirse en la CPU y en el hardware de la memoria. y mantenimiento de información. en los dispositivos de E/S o bien en el programa de usuario. Cuando hay múltiples usuarios o múltiples trabajos ejecutándose al mismo tiempo. Los sistemas operativos prestan sus servicios de muchas maneras.

Por ejemplo el comando Delete archivo utilizado por DOS.Manipulación de dispositivos: • Solicitar dispositivo y liberar dispositivo. interpretarlo y ejecutarlo. Procesamiento Concurrente La CPU ejecuta una elevada cantidad de programas y su principal ocupación es la ejecución de los programas de usuario. escribir y reposicionar. la hora. calculadoras. copian. el sistema operativo puede hacer más productivo al computador. • Soporte al lenguaje de programación: Compiladores. • Obtener atributos de dispositivos y establecer atributos de dispositivos. Al conmutar la CPU entre procesos. • Programas de aplicación: Programas que son útiles para resolver problemas corrientes. intérpretes y ensambladores que dan soporte a lenguajes de alto nivel. Página 16 de 164 . Mantenimiento de información: • Obtener y/o establecer hora o fecha. el cual consiste en un conjunto de procesos: los procesos del sistema operativo ejecutan código del sistema y los procesos de los usuarios ejecutan código de los usuarios. listan y generalmente manejan archivos y directorios. programas gráficos (o de diseño). borran. Este proceso de ejecución de procesos se realiza a través de procesos. la cantidad de memoria disponible o el espacio en disco. Se pueden dividir en las siguientes categorías: • Manipulación de archivos: Estos programas crean. Uno de los programas más importantes en un sistema operativo es el intérprete de comandos. Un proceso es la unidad de trabajo dentro de un sistema. imprimen. En potencia. como editores de texto. todos estos procesos se pueden ejecutar concurrentemente y la CPU o varias de ellas se multiplexan entre ellos. • Modificación de archivos: Editores de texto usados para crear y modificar el contenido de un archivo. • Obtener y/o modificar datos del sistema. éste se ejecuta al iniciar el sistema operativo. renombran. • Obtener y/o establecer atributos de proceso. Programas Del S istema Son un grupo de programas que resuelven problemas corrientes y ofrecen un entorno más adecuado para el desarrollo y la ejecución de programas. archivos o dispositivos. • Leer. Para que este comando se pueda ejecutar el intérprete de comandos debe contener el programa adecuado que elimine el archivo del disco rígido. su función es sencilla: captar un comando dictado por el usuario. etc. • Información de estados: Usados para pedir la fecha.

Las herramientas serían los recursos disponibles. c) Comunicación entre procesos. Distinción entre programas y procesos: Cada invocación a un programa genera un proceso distinto e independiente. en la que las herramientas no serán las mismas que antes (distintos recursos). pero crucial para atender el funcionamiento de los sistemas operativos. Además. Existe en el taller un almacén de repuestos de todo tipo y herramientas suficientes para las reparaciones. preparados o esperando a que ocurra algún evento. A veces. sólo un proceso estará en ejecución mientras que los otros estarán suspendidos. se permiten reparaciones rápidas a las que se les da mayor prioridad que a las mencionadas anteriormente. “La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia. En cualquier instante.Procesos Un proceso es cualquier tipo de actividad que demande de la atención de utilización de la CPU de una máquina. sustituye el manual que estaba utilizando por el de la reparación rápida que se dispone a realizar (cambio de programa). El manual de cada reparación sería el programa. las indicaciones de usuario. Comienza la nueva reparación (cambio de proceso). Además. La actividad de utilizar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al proceso. estos se clasifican en: Página 17 de 164 . El mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha reparación y qué operación estaba realizando es este momento (guarda el estado del proceso). b) Sincronización entre procesos. b) Llevar cuenta de los estados de los procesos. debe disponer de algoritmos de gestión y planificación de procesos que se encarguen de: a) Decidir qué proceso se ejecutará o tomará el procesador.” Imagínese un mecánico de automóviles en un taller donde se reparan vehículos con averías complejas en las que se hace necesario consultar el manual de reparaciones de cada modelo. Relación Entre Los Procesos El sistema operativo debe suministrar los servicios necesarios que permitan: a) Ejecución concurrente de los procesos. se pueden establecer las siguientes analogías: • • • • • El mecánico sería el procesador que va a realizar el trabajo. Supóngase que en un determinado momento el mecánico está realizando un reparación compleja (de las que llevan tiempo) y aparece un vehículo que solicita una reparación de las rápidas (ha aparecido una interrupción). recursos. dos o más procesos cooperan para alguna operación común. Quedan contenidos en este concepto los trabajos de ejecución por lotes. Los procesos compiten por el uso de los recursos del sistema. Las piezas de recambio serían los datos. que contiene instrucciones para todas las posibles averías. sus prioridades y toda la información relevante acerca de ellos. Asimismo. Comparando esta situación con una computadora. Dependiendo de la interacción entre los procesos. las piezas de repuesto (datos) y las indicaciones del manual (programa) llevarán a feliz término la reparación para que el mecánico vuelva a continuación a la reparación inicial. un estado en cada momento y un programa. Con este ejemplo se desea resaltar que un proceso es una actividad que se apoya en datos. los programas de usuario o tareas y el apoyo de actividades internas propias del sistema. de manera que se necesitan herramientas que permitan la sincronización y la comunicación entre los mismos.

señal. Estados De Los Procesos Todo proceso. Estados Activos Estado RUNNING o EN EJECUCIÓN Se dice que un proceso está en estado RUNNING (en ejecución) cuando tiene el control de la CPU (es decir. considera que los estados más importantes son: a. Un proceso que esté en un estado activo puede competir por recursos. El sistema operativo lo cambia en respuesta a eventos externos o internos. pasa a través de una serie de estados discretos. b) Cooperativos: Se comunican y sincronizan sus actividades para realizar una labor común. Especificación De Los Procesos • • • • Implícitos: Procesos generados y eliminados por el SO.a) Independientes: No se comunican o sincronizan entre ellos. etc. En un sistema con un sólo procesador. Son estados especiales que se dan durante la creación y destrucción de los procesos. los procesos independientes no existen (en sentido estricto). Proceso hijo: Procesos creados por otro. también de la comunicación entre los procesos. Bloqueado o suspendido: Esperando a que se cumpla alguna condición (E/S. Preparado: Listo para ejecutarse. b. cuando la CPU está ejecutando el programa correspondiente a ese proceso). Muerto: Ha terminado su ejecución o el sistema operativo ha detectado un error fatal. esperando a que el procesador quede libre. genera un nuevo estado global. El sistema operativo dispone de algoritmos de planificación y de gestión de los procesos y de los recursos de modo que. El acceso ordenado a estos necesita de la sincronización y. c) Competitivos: Todos compiten por los recursos del computador. los estados de un proceso se pueden clasificar en: a) b) c) d) e) f) Activo: Proceso que está ejecutándose en un instante dado. Página 18 de 164 . El sistema no les permite (de manera momentánea) que compitan por recursos. Nonato: Existe. El sistema crea para cada proceso un conjunto independiente de variables locales. pero todavía no es conocido por el sistema operativo Estado global del sistema: Conjunto de recursos y procesos existentes con sus estados correspondientes en un instante determinado. Puede tener varios hijos. considerando como entradas los eventos y el estado global del sistema. a veces. c. Estados externos o intermedios.). Estados inactivos o suspendidos. parámetros formales y llamadas a los procedimientos y a las funciones. Estados activos. Un gran número de autores. En forma general. El sistema operativo hace que los argumentos y variables locales del procedimiento o función que da lugar al proceso se asocien a éste y no al código en el que aparecen. Sólo pueden tener un padre. Se dice entonces que ese proceso es el proceso en curso del procesador. desde que se crea hasta que se destruye. Explícitos: Definidos por el usuario realizando llamadas al sistema. Proceso padre: Que crea otro proceso.

Estados Suspendidos Tanto si un proceso está ejecutándose (RUNNING) y es suspendido a petición suya. como una llamada al sistema del bloqueado proceso activo preparado Tiene lugar un evento que estaba esperando Finaliza muerto Eliminado por otro proceso Página 19 de 164 .: E/S) bloqueado Necesita que tenga lugar un evento Acción determinada. un proceso está bloqueado cuando está a la espera de que se complete la operación de Entrada/Salida que ha solicitado. como si el proceso está en estado ejecutable (READY). Interrupción: Hace que la tarea que está activa deje de ejecutarse en favor del sistema operativo que decidirá cuál de los procesos preparados pasarán a estado activo. si los hubiera).. que se llama suspendido bloqueado o suspended-blocked. Estados Intermedios. Transiciones: DE nonato preparado Activo activo nonato preparado bloqueado Activo preparado bloqueado A preparado activo activo preparado MOTIVOS Al crearse Activado por el distribuidor o por el planificador Interrupción Solicita un recurso necesario para continuar (ej.). cuando el proceso se destruye después de que el programa se haya sacado de memoria.. Planificador (scheduler): Hace que el proceso activo vuelva a preparado sin que medie una llamada al sistema (por fin de tiempo asignado o proceso con mayor prioridad preparado). si el proceso estaba previamente bloqueado (BLOCKED). por ejemplo. o a petición de otro proceso. se le asignan dispositivos.. por otro lado. o FINAL) El estado de espera (WAIT) es aquél en el que está el proceso cuando se crea (es decir. la transición de estado hará que el proceso pase a estar en un nuevo estado.. . Transiciones entre los estados Distribuidor (dispatcher): Módulo del sistema operativo que se encarga de activar los procesos que están en el estado preparado. o. se p repara su entorno. Estado BLOCKED o EN ESPERA Un proceso está en estado BLOCKED (bloqueado) cuando está a la espera de que se produzca una determinada circunstancia (evento). o INICIAL. pero aún no está físicamente en memoria.) END (o FIN. Estos estados son: WAIT (o ESPERA. Externos o Especiales En algunos sistemas existen otros estados que se denominan externos y que se dan cuando el proceso se crea antes de que el programa correspondiente se cargue en memoria. Cuando el proceso termina.Estado READY o EJECUTABLE Se dice que un proceso está en estado READY (ejecutable) cuando lo único que necesita para estar en ejecución es que se le conceda tiempo de CPU. Sin embargo. ocurre la situación contraria: el proceso queda en estado END hasta que se ha eliminado cualquier rastro del proceso (y de sus descendientes. al ser suspendido se provoca una transición de estado que lo deja en suspendido ejecutable o suspended-ready.

reanudación. suspensión. devolviéndose al sistema. Página 20 de 164 . En este caso la transición que se provoca en el proceso se denota como sigue: Terminate (id-proceso): RUNNING ß END Activate (activar) Cualquier proceso de los existentes puede generar uno o varios procesos nuevos. su PCB se borra y se elimina cualquier rastro suyo de las tablas y las listas del sistema. creación. es decir. entorno.Los sistemas de gestión de procesos deben tener la capacidad de realizar ciertas operaciones más o menos complejas sobre procesos. desbloqueo. todavía sin desprenderse de todas sus referencias. pero todavía esperando una desactivación total. Lo explicado aquí sería la destrucción de un proceso en ejecución. Los recursos que tenía asignados se liberan. Por esta transición el proceso queda fuera de memoria. Estas operaciones son las que provocan los cambios o transiciones de estado en los procesos. bloqueo. etc. destrucción. El proceso generador se llama padre y los generados procesos hijo. como son: conmutación de contexto. asignaciones. Esto (*) (*) Se puede destruir un proceso en cualquier estado. cambio de prioridad. etc. siendo necesario un único proceso para crear otro. Es posible representar nuevamente estos estados y las transiciones entre ellos con el siguiente gráfico: A continuación se explicarán detalladamente estas últimas transiciones de estados: Terminate (terminar) La destrucción de un proceso implica su eliminación del sistema.

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

Se subsanen los fallos del sistema Se tenga que "tirar" el sistema abajo Un proceso puede ser suspendido hasta que se comprueben los resultados intermedios. en lugar de abortar los procesos. pero esto no es lo normal. La operación de suspensión también provoca transiciones de estado. Sin embargo.Observaciones • • • El único elemento que puede hacer que un proceso quede en estado RUNNING es el dispatcher. a petición del propio proceso o de otros procesos (si se está en un sistema multiprogramado). se puede proceder a su suspensión. Normalmente. hasta que la paginación vuelva a ser normal. La suspensión de un proceso implica la liberación de los recursos asignados. esta operación consiste sólo en relanzar el proceso suspendido desde el punto en que se suspendió. Un modo de solucionar este problema es suspendiendo los procesos menos prioritarios (de menor a mayor prioridad). se producirá la transición: Suspend (id-proceso): RUNNING ß SUSPENDED-READY (*) Se produce un cambio de prioridad en la lista-ready. Hay situaciones de thrashing (o hiperpaginación) en las que la tasa de paginación sube mucho y puede causar una ralentización muy grande del sistema. el recurso de memoria es básico para el sistema y es liberado inmediatamente. Si se sospecha una deficiencia en el sistema. se reactiva el proceso Si no lo son. la operación de cambio de prioridad de un proceso no implica más que el cambio del valor de la prioridad en su descriptor o PCB. Dos operaciones importantes son las de suspensión y reanudación: Un proceso suspendido sólo puede recontinuar (reactivarse) cuando otro realiza una operación de reactivación sobre él. hasta que: • • 2. y luego reactivándolas progresivamente (de mayor a menor prioridad). La aplicación más extendida e importante es que la suspensión es una forma de alivio de (**) fluctuaciones de carga del sistema . La suspensión es un estado que suele durar breves instantes de tiempo y es una operación que realiza el sistema. Como se ha podido ver. pero siempre dependiendo de su naturaleza. ya que suele durar breves instantes. si la planificación de la CPU se (*) hace por prioridad con requisamiento también habrá que estudiar si el proceso en curso sigue siendo el más adecuado para su ejecución. su reorganización. se le requisa la CPU y se le asigna al de más prioridad. de modo que: • • Si son correctos. Básicamente. se aborta 3. las demás las provocan agentes externos al proceso. y si la lista de ejecutables está ordenada por dicho criterio. y si la del proceso que se está ejecutando es menor que la del proceso que ahora se encuentra en la cabeza de la lista. que se analizan a continuación: Si un proceso en ejecución es suspendido a petición de él mismo o de otro. Página 22 de 164 (**) . pero recursos como unidades de cinta o periféricos poco usados no tienen que ser liberados instantáneamente si la suspensión es prolongada. la suspensión tiene tres aplicaciones: 1. Es decir. la única transición de estado que se provoca a petición del propio proceso es la block.

resume (continuar). puede ocurrir que. Lógicamente. resume la dejará en estado BLOCK. inmediatamente. Cuando ocurre esto. la transición provocada se denota: Suspend (id-proceso): READY ß SUSPENDED-READY Si se suspende un proceso bloqueado se dará en él la transición que se puede formalizar así: Suspend (id-proceso): BLOCKED ß SUSPENDED-BLOCKED. el proceso pasa al estado SUSPENDED-READY (lógicamente. si se realiza una operación de activación sobre un proceso en estado suspendido ejecutable (SUSPENDED-READY). por las que estaba en estado BLOCKED. puede que nunca tenga lugar ésta consumación o que se retrase mucho. La transición que realiza este cambio es la completion (realización ó completación) y se denota como: Completion (id-proceso): SUSPENDED-BLOCKED ß SUSPENDED-READY En cuanto a la reactivación.Cuando el proceso suspendido está en estado ejecutable. Desafortunadamente. ya que si no estuviera suspendido debería estar READY). por la que pasará a estado ejecutable (READY). suspenderlo. la representación anterior se podría dejar finalmente como: Página 23 de 164 . Resume (id-proceso): SUSPENDED-BLOCKED ß BLOCKED Con estos nuevos estados. Resume (id-proceso): SUSPENDED-READY ß READY Si la transición se encuentra suspendida bloqueada. se cumplan las condiciones que estaba esperando. y la suspensión es una operación prioritaria. mientras un proceso está en estado SUSPENDED-BLOCKED. se provoca una transición de estado. Se podría argumentar que en lugar de suspender un proceso bloqueado es mejor esperar hasta que se complete la operación de E/S o se dé la circunstancia por la que estaba esperando y que el proceso pase a ejecutable para.

Etc. Información de contabilidad y planificación. System Control Block). etc. para lo cual se supondrá una computadora con un solo procesador (sólo un proceso puede estar ejecutándose en cada momento).). El sistema operativo mantiene listas de PCB para cada uno de los estados del sistema (preparado. El núcleo estudia si el proceso B está preparado para su ejecución y. Process Control Block ) Cuando se somete un determinado trabajo para su ejecución y es aceptado. tablas. activo. Puede haber una lista de estados suspendidos ligada en exclusiva a un dispositivo o evento. que es el subconjunto de elementos compartidos en el sistema susceptibles de cambios con la ejecución de los procesos y que son accesibles desde ellos. y son las siguientes: • Deja de ejecutar el proceso en curso (A). Se supondrá que los programas de los procesos A y B están ambos en memoria principal. • El cambio de contexto se producirá en caso de ejecución de una instrucción privilegiada. realiza el cambio de contexto correspondiente pasando del modo supervisor al modo usuario. además. A continuación se verá cómo se realiza el cambio de un proceso a otro. Información para gestionar la memoria (punteros. es decir.). Estado hardware (contador de programa. preparado. RUNNING.). A continuación repone el estado del proceso B ( en caso de haber sido interrumpido con anterioridad) y. y aparece lo que se denomina un cambio de contexto pasando del modo usuario al modo supervisor. cediéndose el control al núcleo del sistema operativo. De igual forma existe un Bloque de Control de Sistema (SCB. códigos de condición. registros. con unos objetivos globales similares al anterior y entre los que se encuentra el enlazado de los bloques de control de los procesos existentes en el sistema.El Bloque De Control De Procesos (PCB. una llamada al sistema operativo o una interrupción. siempre que se requiera la atención de algún servicio del sistema operativo. En el cambio de contexto.. Las acciones que realiza el sistema operativo para cambiar el proceso A por el B se denominan cambio de proceso. etc. Antes de realizarse el cambio de contexto se salva el estado del proceso A para su posterior vuelta al punto donde fue interrumpido. La información de rearranque contiene: • • • • • • • Identificador único de proceso (pid). se carga el programa correspondiente en memoria y. Cada proceso pertenece a una única lista. el núcleo salva el estado del proceso que se estaba Página 24 de 164 . Prioridad. por último. punteros de pila. El entorno volátil. Estado del proceso (activo. El planificador se encarga de gestionar el paso de los procesos de una lista a otra. se crea el descriptor de proceso correspondiente (PCB) que contiene: • • El estado actual (status): READY. si es así. pone en ejecución el proceso B. y existen varios procesos activos compitiendo por el acceso al procesador (se está ejecutando un proceso A y el núcleo del sistema operativo decide que debe ejecutarse en un instante dado otro proceso B). etc.. bloqueado). La información que contienen estos elementos se llama información de rearranque y también se define como el bloque de contexto o estado del procesador para el proceso.

como algunos sistemas de tiempo compartido que se limitan a poner en el estado de preparado cualquier proceso nuevo. Procesos y Hebras Es posible concebir el proceso como una entidad formada por una o más unidades de ejecución denominadas hebras (threads) o procesos primitivos y un conjunto de recursos asociados. Asignar recursos iniciales al proceso. OPERACIÓN TAREA Definir nombre del proceso. Creación de un proceso Destrucción de un proceso Suspensión/Reanudación Sacar momentáneamente al proceso de la CPU. el PLP sólo existe en sistemas que admiten procesamiento por lotes. Cada vez que se crea un proceso el sistema operativo debe considerar algún mecanismo de jerarquía para determinar la prioridad inicial del proceso. en la cual cada nodo tiene un solo padre. Los recursos no están asociados a las hebras. por lo tanto se trata de un árbol n-ario. Eliminarlo de la lista de procesos. Insertarlo en la lista de procesos del sistema. cuando la salida del proceso esta determinada por la entrada. Cada hebra posee su propio vector de estado. sino al proceso. cuando la secuencia de instrucciones ejecutadas depende de la entrada. Existen sistemas que no tienen algoritmo PLP o este es mínimo. un modelo jerárquico de prioridades se ilustra a la derecha y en él se muestra un número indicando el orden de creación. El Planificador De Procesos Software del sistema operativo asigna los recursos de un sistema entre los procesos que los solicitan.ejecutando en su bloque de control y restaura el proceso de va a ejecutarse a partir de los datos almacenados en su bloque de control. Debe realizar una mezcla adecuada de trabajos destinados al procesador y trabajos destinados al sistema de E/S. Lo más usual es definir una función de prioridad y asignarle a cada programa un valor para la misma que se actualiza en instantes determinados por el PLP. Así. va de izquierda a derecha. No pueden existir fuera de un proceso y sólo pueden pertenecer a uno de ellos. Página 25 de 164 . Crear el bloque de control del proceso. Operaciones Todos los procesos tienen una serie de operaciones asociadas a ellos. Esta forma de creación de procesos produce una estructura jerárquica de procesos. pero cada padre puede tener varios hijos. determina qué trabajos se admiten en el sistema para su procesamiento y son cargados en la memoria disponible. no determinísticos. Bloqueo de un proceso Dejar "parado" el proceso hasta que ocurra algún evento. En general. las prioridades de atención van de la cúspide hacia abajo y. cuando pueden ejecutarse más de una instrucción al mismo tiempo. cuando las instrucciones se ejecutan una después de otra. de un Proceso Reactivar la ejecución del proceso. Determinar la prioridad inicial del proceso. para niveles iguales. En general los procesos pueden clasificarse en determinísticos. Planificador a largo plazo (PLP): O planificador de trabajos. secuenciales. y paralelos. las cuales se indican en la siguiente tabla junto a sus características o tareas asociadas. Quitar la asignación de recursos.

e) Tiempo de respuesta a un evento: Intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción. d) Tiempo de espera: Tiempo que el proceso espera hasta que se le concede el procesador. La ejecución de un proceso comienza con una ráfaga de CPU. Conceptos Bási cos De Un Sistema O perat ivo Los sistemas operativos desde sus inicios han sido capaces (o. La última ráfaga de CPU terminará con solicitud al sistema de terminación ejecución. Es muy importante para la comprensión real del mecanismo de funcionamiento de un sistema operativo el tener siempre presente que es posible realizar dos o más procesos a la vez o en una secuencia de atención extremadamente veloz. Finalización de operaciones de E/S. Distribuidor (dispatcher): Parte del PCP encargada en exclusiva de realizar las gestiones oportunas para pasar el procesador a la tarea seleccionada para su ejecución (en algunos sistemas se denomina distribuidor al PCP). Su elevada frecuencia de uso hace que el algoritmo suela ser sencillo (no calcula prioridades). Interrupciones. gestiona los procesos entre dos instantes de gestión del PLP.Planificador a corto plazo (PCP): O planificador del procesador. al menos. Activación de programas interactivos. que una atención de varios procesos en forma secuencial se hace transparente al usuario. maximizar el uso de la CPU. Llamadas al sistema operativo Envío y recepción de señales. En próximo capítulo se abordarán algunas planificaciones con mayor detalle. valores extremos o varianzas de esas magnitudes. c) Tiempo de regreso (turnaround): Intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que se completa por el sistema. Por ejemplo: En una red de computadores parece que todos estuviesen trabajando en forma independiente. • • Un programa limitado por E/S tendrá muc has ráfagas de CPU breves. En cualquiera de los casos. etc. Planificador a medio plazo (PMP): (En algunos sistemas) se encarga del intercambio ( swapping) o proceso de salvar una tarea suspendida en la memoria secundaria para: a) Liberar memoria principal. Finalmente. b) Separar los procesos destinados al procesador de los destinados al sistema de E/S. Criterios De Performance En general se utilizan varios criterios para medir el rendimiento de los algoritmos de planificación. Es invocado siempre que se origina un cambio de estado del sistema por un evento: a) b) c) d) e) f) Señales del reloj del sistema. a ésta el siguen ráfagas de CPU y E/S. también se puede definir la planificación de la CPU como un ciclo de ráfagas de CPU y E/S. a un mismo Página 26 de 164 . La ejecución de un proceso consiste en un ciclo de ejecución de CPU y espera de E/S. Un programa limitado por la CPU tendrá pocas ráfagas de CPU muy largas. Selecciona al proceso que pasará al estado activo de entre todos los preparados. eso es lo que se ha intentado) de realizar más de un proceso en forma simultánea. tanto así. se pueden considerar las madias. entre los cuales se pueden encontrar: a) Eficacia: Porcentaje del tiempo medio de utilización. Entre los objetivos de la planificación se puede encontrar: Minimizar el tiempo medio de espera o de retorno. b) Rendimiento (throughput): Número de procesos completados por unidad de tiempo. Puede resultar la medida más adecuada de la eficiencia del sistema. mantener el tiempo de espera por debajo de un cierto valor máximo.

la CPU tiene un trabajo en proceso. el cual se muestra a continuación. para el computador servidor de la red es imposible atender dos servicios de escritura en disco a un mismo tiempo. aún cuando eso es algo muy difícil de notar. Contabilizar la instrucción para determinar en que momento se ejecuta. debido a la diversidad de dichos dispositivos se hace necesario ejecutar diversas acciones. sin embargo. . 3. 4. la CPU esta esperando la ocurrencia de algún evento. RF depende también de existe al menos un archivo para leer (OKF). 6. Sólo puede existir un proceso en ejecución a la vez. cuando inicio esta apagado el dispositivo se encuentra en estado ocioso. La secuencia de pasos dada se conoce como ciclo Buscar-Ejecutar (fetch-execute). una impresora (PR) y un lector de archivos (RF). Página 27 de 164 2. 2. envía y recibe información. la CPU esta lista para recepcionar un proceso. 3. el manejo de la unidad de entrada y salida (E/S) es importante puesto que es a través de ella que el computador comunica. para lograr realizar algún proceso de E/S. Pero en términos generales. Listo. Busy ← 1 } DISPOSITIVOS { Wait(Busy = 1) Busy ← 0 Ejecutar comando Indicador en CB Ready ← 1 } Modelo Sencillo De Un Sistema Operativo Supuestos: 1. Ocioso. los cuales poseen una velocidad generalmente inferior a la CPU y que deben ser administrados por ella. Se trata de un microsistema conformado por una CPU. Existen varios tipos de dispositivos de E/S. dependiendo del dispositivo. Ejecutar la instrucción. Repeat { IR ← Mem(PC) PC ← PC + 1 Ejecutar(IR) } Until (IR = Instrucción de alto) Por otra parte. Además. Los periféricos PR y RF tienen botones inicio/término. Para la ejecución un programa es necesario realizar una serie de pasos: 1. PR y RF dependen además de si existe un comando pendiente (COM). Buscar la instrucción que se va a ejecutar. Existen tres estados posibles: Ocupado. //CB = Command Buffer. 5.tiempo y en distintas máquinas. los procesos que se realizan (en forma simultánea) son los siguientes: CPU { Wait(Ready = 1) Ready ← 0 Copiar comando a CB.

lc) { Salida ← Salida_Inicial While (lc <> 0) { Wait (PR=Lista) Enviar comando de impresión-línea lc ← lc .1 Salida ← Proxima(Salida) } } RF_Control (Entrada_Inicial.De esta forma la estrategia de proceso del programa administrativo ejecutado por la CPU es: Repeat Leer Archivo Interpretar archivo Cargar en memoria Ejecutar Imprimir resultados Until (se apaga la máquina) Las tablas de estados posibles para PR y RF son: PR 0 1 2 3 Inicio 0 0 1 1 COM 0 1 0 1 Estado Ocioso Ocioso Listo Ocupado RF 0 1 2 3 4 5 6 7 Inicio 0 0 0 0 1 1 1 1 OkFile 0 0 1 1 0 0 1 1 COM 0 1 0 1 0 1 0 1 Estado Ocioso Ocioso Ocioso Ocioso Ocioso Ocioso Listo Ocupado Los diagramas de transición de estados de los dispositivos son: Diagrama de transiciones de la impresora Diagrama de transiciones del lector de archivos Finalmente. fc) { Entrada ← Entrada_Inicial fc ← 0 Wait (RF=Lista) Repeat Enviar comando de lectura-archivo fc ← fc + 1 Entrada ← Proxima(Entrada) Wait (RF <> Ocupada) Until (RF=Ociosa) } Página 28 de 164 . los algoritmos de control de PR y RF son: PR_Control (Salida_Inicial.

volver al paso 1. 3. Aunque en teoría es cierto que la CPU podría efectuar algún otro procesamiento y regresar más tarde a imprimir el siguiente carácter. La interrupción debe transferir el control a la rutina de procesamiento de la interrupción. lta deberá esperar entre una y otra entrada. volver al paso 1. considere los siguientes pasos como necesarios para imprimir datos de la memoria: 1. Si hay otro carácter. Quizá la rutina de Página 29 de 164 . Verificar si la impresora esta lista para recibir el siguiente carácter. A este método de superposición se le conoce como espera activa. Un cont rolador de dispositivo cuenta con almacenamiento local en buffer y un conjunto de registros de propósito especial. 4. El controlador del dispositivo es el responsable de transferir los datos entre el periférico que controla y su buffer local. 5. Si la impresora no esta lista. 2. Si la impresora esta lista. ya que durante ese lapso se pueden recibir dos entradas. esta activa mientras espera que termine la E/S. Por ejemplo. La arquitectura de interrupciones también debe guardar la dirección de la instrucción interrumpida. La E/S basada en interrupciones es la solución perfecta para esta situación. se presenta el riesgo de omitir parte de la entrada. la CPU carga los registros apropiados del controlador del dispositivo y luego continúa con su operación normal. ésta suspende lo que estaba haciendo y transfiere de inmediato la ejecución a una posición fija. el controlador comenzará la transferencia de datos del dispositivo a su buffer local. la transferencia de datos. ya que la CPU necesita realizar un seguimiento del estado de la E/S y. Por lo general. la CPU seguirá siendo más rápida. si encuentra una solicitud de lectura. la CPU puede continuar con los cálculos interrumpidos. Cuando se interrumpe a la CPU. Direct Memory Access). La rutina de procesamiento de la interrupción transfiere los datos del buffer local del controlador del dispositivo a la memoria principal. así.Interrupciones: La Base De Los Sistemas Operativos Modernos Para que las operaciones de la CPU y de E/S puedan superponerse deben contar con un mecanismo que permita la desincronización y la resincronización de la operación. y por tanto. el controlador del dispositivo informa a la CPU que su operación ha terminado. pero hay varias funciones comunes para todos. por consiguiente. el controlador del dispositivo examina el contenido de estos registros para determinar que acción emprenderá. Considere que aunque se emplea un dispositivo de entrada de a velocidad. Transferencia de datos por acceso directo a memoria (DMA. la cual generalmente contiene la dirección de inicio donde se encuentra la rutina de procesamiento de la interrupción. Puede usarse cualquiera de los métodos siguientes (algunos sistemas emplean ambos): • • Transferencia de datos dirigida por interrupciones. En contraste con los sistemas más antiguos. si la CPU cambia a otra tarea para evitar esta pérdida de tiempo. verificar si hay otro carácter por imprimir. En un sistema basado en interrupciones. lo que no permitía hacer simultáneas las operaciones de la CPU y de E/S. Para iniciar una operación de E/S. Este vector de direcciones. Las interrupciones son una parte importante de la arquitectura del computador. Si no hay más caracteres. Una vez concluida la transferencia de datos. Esta tenía que ejecutar. Una vez lograda esta transferencia. Como ejemplo. A su vez. o por lo menos supervisar. esto se logra reservando un conjunto de posiciones en a parte baja de la memoria para que almacenen las direcciones de las rutinas de procesamiento de la interrupción para los distintos dispositivos. Las arquitecturas más recientes almacenan la dirección de retorno en la pila del sistema. en la práctica esto no siempre es posible. cada uno de los controladores de dispositivos se encarga de un tipo específico de dispositivo. los dispositivos de E/S y la CPU pueden funcionar concurrentemente. No obstante. Cada diseño cuenta con su propio mecanismo de interrupción. la transferencia de datos se efectuaba bajo el control de la CPU. se indexa usando un número de dispositivo único que se da junto con la solicitud de interrupción para así proporcionar la dirección de la rutina de procesamiento de la interrupción para el dispositivo que la emite. Esta comunicación se logra causando una interrupción. la impresión ha terminado.

5. 3. Concluido el tiempo prefijado. Si no se desactivaran. el controlador determina qué hacer mirando el contenido de esos registros. El manejador de interrupciones del timer (que es parte del sistema operativo) guarda la información del proceso interrumpido necesaria para poder reanudarlo después. para evitar interrupciones perdidas o innecesarias. y lo echa a andar. El sistema operativo inicializa el timer o reloj en una tajada de tiempo. y comienza la operación de I/O. apuntadores y contadores para el dispositivo de E/S. El controlador del DMA interrumpe a la CPU cuando termina la transferencia. En general. El sistema operativo entrega el control a un proceso. en vez de esperar que la transferencia termine (lo que sería I/O sincrónico). Ejemplo: multiprogramación (timesharing) 1. Cuando finaliza la transferencia. lta Después de fijar los buffers. que sabe exactamente cómo proporcionar esta información al controlador. 6. el controlador le avisa a la CPU a través de una interrupción. . puede solicitar una transferencia de datos. Entonces el controlador del DMA tiene sus registros con las direcciones apropiadas fuente y destino así como la longitud de la transferencia. y la primera sería una interrupción perdida. el controlador del dispositivo transfiere directamente todo un bloque de datos de su almacenamiento en buffer a la memoria. Una secuencia típica sería: 1. Después de procesar la interrupción. El sistema operativo suspende el proceso. inicia la transferencia de datos desde el dispositivo hacia la memoria. Esto permite que la CPU. demorando la interrupción que entra hasta que el sistema operativo termine con la actual y las interrupciones que se hayan activado. en el intertanto puede realizar otra tarea (I/O asincrónico). Usualmente las interrupciones se desactivan mientras una de ellas se procesa. pero las interrupciones de igual o menor prioridad se enmascaran. Luego se ordena al controlador del DMA que comience la operación de E/S. Página 30 de 164 2. el sistema operativo escribe los registros del caso en el controlador del dispositivo. como acumuladores o registros de índices. mediante una llamada al sistema. si se trata de una solicitud de lectura. o el mismo sistema operativo. Otro ejemplo: manejo de dispositivos de I/O (Input / Output) Para comenzar una operación de I/O. Se repite el ciclo. El proceso se ejecuta. escogiendo ahora otro proceso. el procesamiento de la segunda interrupción mientras se da servicio a la anterior escribiría sobre los datos de la primera. A su vez. el timer provoca una interrupción. Por ejemplo. Un programa de usuario. El sistema operativo escoge otro proceso para que siga ejecutando en la CPU. sin que intervenga la CPU. 2. Las arquitecturas complejas de interrupciones permiten procesar una interrupción mientras se atiende otra. La operación básica de la CPU sigue siendo la misma. El proceso que está ejecutando en la CPU solicita una operación de I/O. Se aceptará una interrupción de prioridad más alta aun si está activa una interrupción de menor prioridad. o desactivan selectivamente. poniéndolo en la cola de procesos suspendidos. o viceversa. Para resolver el problema de la velocidad de atención y procesamiento de interrupciones por parte de la CPU se utiliza el acceso directo a memoria (DMA) para los dispositivos de E/S de a velocidad. por lo general siguiendo un esquema donde se asignan prioridades a los tipos de solicitud de acuerdo con su importancia relativa y se almacena por separado la información de procesamiento de la interrupción para cada prioridad. 4. y luego recuperarlos. con un salto a la dirección de retorno almacenada.procesamiento de la interrupción tenga que guardar explícitamente otros registros. la ejecución continuará como si no hubiese ocurrido nada. 3. El sistema operativo localiza un buffer (vacío para la entrada o lleno para la salida) de una cola de buffers para la transferencia. esto lo lleva a cabo un manejador de dispositivo.

determina. como la atención de las rutinas de bajadas del sistema. 3. etc. Interrupciones No Enmascarables Corresponden a aquellas interrupciones que deben ser ejecutadas inmediatamente cada vez que el periférico lo solicite. 1. Poder deshabilitar prioridades colectivamente. Por norma general. Existen distintos tipos de interrupciones de acuerdo al tipo de servicio que es solicitado y el dispositivo que lo solicita. que el proceso que había sido suspendido ahora puede reanudarse. registros. 2. etc. Continuar con la ejecución del programa interrumpido. para que se detenga y no siga interrumpiendo. En forma simplificada. es importante que estas interrupciones sean atendidas rápidamente y bajo alguna política de prioridad donde habría que considerar: 1. registros. por lo tanto lo pone en la cola de procesos listos para ejecutar. en caso contrario la interrupción es ignorada y la CPU sigue efectuando sus tareas. El sistema operativo. el control vuelve al sistema operativo gracias a que el controlador del dispositivo provocó una interrupción. por lo tanto. Cuando la operación de I/O se completa. 2. El sistema operativo reanuda ese (o tal vez otro) proceso de la cola de procesos listos. Poder soltar una rutina de atención de interrupciones para ejecutar otra. siempre y cuando el registro de estado de interrupciones este indicando que la interrupción puede ser atendida. Página 31 de 164 . Interrupciones Enmascarables Se ejecutan a solicitud del periférico correspondiente. Cambiar las prioridades de las interrupciones que ya han sido atendidas. Guardar todos los acumuladores. Estas se refieren principalmente a las tareas del sistema. 4. Atender al dispositivo e indicárselo. etc. Restaurar todos los acumuladores. chequeo de integridad de la memoria. según la interrupción y sus tablas internas.4. Una forma de hacer que la CPU pueda identificar el evento asincrónico y reaccionar ante él es modificando adecuadamente el ciclo Buscar-Ejecutar. esto es: Repeat If (INTERRUPT = 1) { AUX ← PC PC ← @[Rutina de atención de Interrupciones] INTERRUPT ← 0 PC ← AUX } IR ← Mem(PC) PC ← PC + 1 Ejecutar(IR) Until (IR = Instrucción de alto) La rutina de atención de interrupciones debería realizar las siguientes tareas. Es común que las interrupciones provengan de diversos dispositivos. 6. las interrupciones pueden clasificarse en dos tipos de acuerdo al carácter de su ejecución: 5. actualización del tiempo. 3.

Interrupciones Por Programa Proveen de la especificación de acciones incorrectas o mal uso de instrucciones y datos. excepto en el caso de la interrupción por error de máquina. 5. prioridad 1. la cual es atendida de inmediato. En el caso de varios pedidos simultáneos. prioridad 4. Excepción de división: división por cero. 2. Su objetivo es conmutar el estado de la máquina y ayuda a mantener el sistema operativo seguro de los usuarios "intrusos". los distintos tipos de interrupciones que pueden ocurrir son: 1. Excepción de operación: código de operación inválido. indicando el estado de un canal de comunicación. 3. Excepción de overflow: la variable se llenó e intenta almacenar más aún. el cual solicita un servicio en particular del sistema. Proveen un medio para reanudar la operación. Llamadas Al Supervisor) Son efectuadas por un proceso en estado de ejecución. Excepción de protección: acceso a zona denegado. Interrupciones Externas Provee de un medio a través del cual la CPU responde las señales causadas por varios eventos. Excepción de operación privilegiada: operación denegada. 7. Sólo puede haber un tipo de interrupción para cada instrucción. Interrupciones de E/S. Interrupciones De E/S Son indicadas por algún dispositivo de E/S a través del envío de señales a la CPU. inexistencia. Página 32 de 164 . término de un lapso de reloj de una interrupción o la presión de una tecla de interrupción. Durante la ejecución de una instrucción puede ocurrir que se presenten simultáneamente varias situaciones que generen una interrupción. automáticamente bifurca a una rutina de diagnóstico. 4. las interrupciones son atendidas bajo una política de prioridades prefijada y además se va formando una cola de solicitudes por interrupción. después de producido un evento en mal funcionamiento de la máquina. Excepción de datos: incompatibilidad. Algunas de las prioridades de atención son: Error de máquina. Excepción de direccionamiento: dirección fuera de rango de memoria. prioridad 5. Por ejemplo. etc. Interrupciones externas. Estas señales pueden ser provocadas por distintos entes. causando un error al ejecutar un proceso. pueden ser emitidas en cualquier momento y puede haber varias simultáneamente. Interrupciones De Servicio Ocurren cuando el usuario presiona la tecla Restart (u otra similar) en la consola del sistema o desde otro procesador en un sistema multiprocesador. Interrupciones Por Error De Máquina Son causadas por mal funcionamiento de hardware. 6.Interrupciones De SVC (Supervisor Call. El orden de atención de interrupciones es inverso al orden de prioridad fijado.

Por otra parte. Una solución a esta deficiencia se conoce como interrupción de dispositivo. Página 33 de 164 . puede ser deseable controlar quién y cómo puede tener acceso a ellos. Esta consiste en que el dispositivo produce una interrupción sólo cuando necesita utilizar la CPU. es decir VEC[n]. como cintas y discos. los archivos normalmente se organizan en directorios para facilitar su uso. Supóngase que existen n dispositivos y cada uno de ellos tiene un bit asignado a un vector de interrupción (VEC). se ha de suponer que existe algún medio a través del cual se puedan inhibir.Una forma de sincronizar los comandos que la CPU envía a los periféricos es a través de la utilización de cierto tipo de interrupción conocida como interrupción de reloj. por lo que se verán diversas estructuras de directorios. si es necesario. Por último. Esta interrupción puede ser fácilmente implementada mediante una leve modificación al ciclo Buscar-Ejecutar: Repeat If (Reloj > 0) { IR ← Mem(PC) PC ← PC + 1 } else { IR ← Mem(X) } Reloj ← Reloj . De este modo cuando un dispositivo quiera provocar una interrupción coloca un "1" en el bit n del vector de interrupción. las demás interrupciones mientras una se está ejecutando (prioridades). cuando varios usuarios tienen acceso a los archivos. Los archivos almacenan datos y programas. si un dispositivo queda listo podría llegar a tener que esperar que se complete todo el ciclo del reloj para ser atendido. y el sistema operativo implanta el concepto abstracto de archivo administrando dispositivos de almacenamiento masivo. Administ ra ción De Datos El sistema de archivos es el aspecto más visible de un sistema operativo. El ciclo Buscar-Ejecutar y la rutina de atención de interrupción serán entonces: Repeat If (VEC == 0) { IR ← Mem(PC) PC ← PC + 1 } else { IR ← Mem(X) // Apuntador a la rutina de atención } Ejecutar(IR) Until (IR = Instrucción de alto) Interrupción_Dispositivo() { Guardar estado del programa interrumpido Índice ← Índice del bit con "1" en VEC VEC[Índice] ← "0" Rutina_de_Dispositivo(Índice) Restaurar estado del programa interrumpido } Para el caso dado. Además.1 Ejecutar(IR) Until (IR = Instrucción de alto) Donde Mem(X) es un apuntador a la siguiente primitiva: Interrupción_Reloj() { Guardar estado del programa interrumpido Reloj ← Algún nuevo valor Restaurar estado del programa interrumpido } Una desventaja de la interrupción de reloj es que interrumpe aún cuando el dispositivo pueda no estar listo. A este control se le conoce como protección de archivos.

Des ventajas: 1) Mayor tamaño del sistema operativo. realiza las siguientes acciones: 1) 2) 3) 4) Buscar si ya existe ese archivo. fecha y hora de creación. con lo que se tiene una gran flexibilidad. c) Considerar un archivo como una secuencia de registros lógicos (en desuso). pero con un soporte mínimo. Los archivos son nombrados y referenciados por su nombre. Los registros tienen una clave y la operación básica no es obtener el siguiente registro. como su tipo. un archivo es una serie de bits. definiendo una unidad lógica de almacenamiento denominada archivo. d) Estructuras de árbol (restringido a grandes computadores corporativos). Casos posibles: a) El sistema operativo puede tener conocimiento de estas distintas estructuras lógicas y considerar diferentes tipos de archivos. longitud. Una operación de lectura leía el registro actual y automáticamente avanzaba al siguiente registro del archivo. nombre o identificador del creador. Página 34 de 164 . b) En algunos sistemas operativos como Unix no se definen los tipos de archivos. Asignarle espacio en disco.Archivos El sistema operativo da una visión uniforme para todos los sistemas de almacenamiento. Además. bytes o registros. El acceso original a los archivos (heredado de las cintas magnéticas) era secuencial. ya que sólo se pueden considerar los tipos de archivos definidos por el sistema. etc. La operación de escritura añadía el registro al final y avanzaba al nuevo final del archivo. dando lugar al acceso arbitrario (acceso directo). tendrán una determinada estructura. cada uno con su propia estructura interna (la visión de Unix y MS-DOS es una particularización de ésta. Registrar sus atributos en el directorio. En general. Operaciones Con Los Archivos CREATE (crear). En la actualidad todos los archivos se consideran de acceso directo. El sistema operativo sólo empaqueta y desempaqueta los bytes cuando los escribe y los lee del disco de acuerdo a los bloques físicos del mismo. Con la aparición de los discos se pudo acceder directamente a cualquier registro del archivo. Corresponden a los programas y a los datos de cualquier tipo. Asignarle una entrada en el directorio. Se considera como archivo a un conjunto de información relacionada definida por su creador. Tipos Y Estructuras De Archivos Los archivos pueden contener distintos tipos de información y. Las operaciones de lectura y escritura deben incluir el número de registro como parámetro. reduciéndose el registro lógico a un byte). de forma que los programas de aplicación tienen que incluir el código que interprete la estructura adecuada de los archivos. tienen otras propiedades o atributos. sino obtener el registro con la clave especificada. 2) Gran rigidez. dependiendo de su uso.

actualizándola en disco si se ha modificado. la tabla del directorio está dividida en dos. el sistema de archivos llama al módulo de asignación de espacio para proporcionar el número requerido de bloques libres. En este caso. haciendo una llamada a OPEN. b) Puntero de acceso al archivo. En una se mantienen los nombres de los archivos con un número de identificación. En muchos sistemas. la propia función de crear el archivo lleva implícita la apertura del mismo. Directorios De Archivos Son tablas simbólicas de archivos. WRITE (escribir). SEEK (buscar). el cual da acceso a otra donde se tiene el puntero de acceso al archivo y la lista de atributos. la lectura se hace en la posición actual y en la llamada se tiene que especificar la cantidad de datos necesarios y proporcionar un buffer para su transmisión. como medida de seguridad. borrando del directorio la entrada al archivo y liberando el espacio asignado al mismo. establece un enlace entre el programa y el archivo. tipo y número de versión del archivo. COPYFILE (copiar). en algunos casos. mantienen una copia de los archivos borrados hasta que reciben la orden expresa de liberar este espacio. lleva implícita la creación de un nuevo archivo. Se puede suplir copiando el archivo original en otro con el nuevo nombre y borrando el original. El resultado de la operación se indica mediante el valor que se devuelve en status. se libera la tabla con la lista de atributos y direcciones que se mantenía en memoria. Hay sistemas operativos que. Los bloques del directorio y los índices de los archivos serán modificados en consecuencia. Casos: a) Directorio de nivel único: sistema usado en los primeros microcomputadores. modificación de algunos atributos. cambia el nombre del archivo en la tabla del directorio correspondiente. Página 35 de 164 . elimina un archivo y libera el espacio que ocupa. Algunos sistemas tienen una forma restringida de WRITE. Una entrada típica puede contener: a) Nombre. c) Lista de atributos. se cambia la posición del apuntador para señalar al byte o registro cuya dirección lógica se suministra en la llamada.En algunos sistemas. b) Un directorio por usuario. aunque en algunas versiones se permite copiar en un archivo ya existente grabando sobre la información del mismo. CLOSE (cerrar). la generación de alias y los homónimos. con la que sólo pueden añadir datos al final del archivo (APPEND). Pero muchos sistemas abren implícitamente el archivo cuando se realiza cualquier referencia a ellos. READ (leer). RENAME (renombrar). muchos sistemas permiten la lectura y. la terminación obligada o voluntaria de procesos incluye el cierre de todos los archivos abiertos (incluyendo en las rutinas EXIT o ABORT una llamada a CLOSE) DELETE (borrar). Esto agiliza la gestión de los enlaces. En muchos sistemas. OPEN (abrir). trasladando los atributos y la lista de direcciones desde el disco a la memoria principal. dirección de comienzo en el disco. escribe en un archivo nuevo o los añade a uno existente. Los sistemas con las funciones OPEN y CLOSE requieren generalmente que los archivos sean abiertos antes de poderlos leer o escribir. Lectura y modificación de atributos.

el tamaño máximo permitido. Cuando se hace referencia a un archivo o directorio. Este es un apuntador al dispositivo y a la ubicación física del archivo en ese dispositivo.”.. OPENDIR (abrir directorio) y CLOSEDIR (cerrar directorio). en el directorio actual. se actualizan en el disco. Esto facilita montar y desmontar dispositivos. Normalmente. devuelve en un formato estándar la entrada actual del directorio. cada usuario tiene su directorio inicial indicado en un archivo de cuentas. READDIR (leer directorio). el actual). creándose un enlace entre este camino y el archivo ya existente. El nombre simbólico del archivo es la única información que se mantiene en forma legible para el hombre. Si no lo está. Operaciones Con Los Directorios MAKEDIR (crear directorio). Cuando se cierra. La información específica que se conserva para cada archivo en el directorio varía de un sistema operativo a otro. forma de hacer que un archivo o subdirectorio aparezca en varios directorios. aunque no sea la misma para todos los sistemas: • • • • Nombre del archivo. 2) Suponer que se quiere borrar todos los archivos y subdirectorios que contiene. El tamaño actual del archivo (en bytes.c) Árbol de directorios: las entradas del directorio correspondiente tienen un atributo más que indica si corresponde a un archivo o a un subdirectorio. se busca en el directorio actual. Para localizar el directorio raíz al arrancar el sistema. los sistemas operativos tienen dos entradas especiales para cada directorio: “. elimina un directorio vacío. al abrirlo. se copian sus tablas en memoria.. cambia el nombre de un directorio. se pueden hacer dos cosas: 1) No permitir el borrado.” y “. Estas pueden ser usadas en los caminos relativos. Es habitual considerar los directorios como archivos que tienen una lista de todos los archivos. en este caso. posiblemente. Tamaño. Esta información es necesaria para aquellos sistemas que apoyan diferentes tipos de archivos. La estructura de directorios es. RENAMEDIR (cambiar el nombre). Si no se encuentra. Normalmente. LINK (enlazar). REMOVEDIR (borrar directorio). Tipo de archivo. En la llamada se especifica el nombre del archivo y el camino de acceso. Como los directorios pueden ser muy grandes. UNLINK (desenlazar). eliminación del enlace y borrado de la correspondiente entrada en el directorio. (por defecto. Ubicación.” para el directorio padre. palabras o bloques) y. el usuario debe cambiar de directorio o indicar el camino completo. se suelen guardar en disco. un grafo dirigido acíclico. éste se sitúa en una dirección conocida por el volumen desde el que se arranca el sistema. salvo las entradas “. En una entrada del directorio se puede conservar la siguiente información.” para el propio directorio (con un puntero a sí mismo) y “. Los nombres de los caminos pueden ser completos o relativos. Página 36 de 164 . se crea una entrada para un nuevo subdirectorio vacío.

Unos sistemas sólo ofrecen un método de acceso y otros permiten varios métodos de acceso y la elección del más adecuado para una aplicación específica representa un serio problema de diseño. Para eliminar un archivo. escribir. Por ejemplo. por lo que es probable que el directorio tenga que almacenarse en su dispositivo y traerse a memoria por partes. Para almacenar esta información se puede necesitar desde 16 hasta más de 1000 bytes por archivo. Si después se intenta crear el archivo 65. Recuento de uso. Esta información puede conservarse para la creación. se debe ampliar la tabla de dispersión del directorio. Los archivos almacenan información. Protección. última modificación y último acceso. Este es un apuntador a la posición actual de lectura o escritura en el archivo. Este requisito puede complicar la creación y eliminación de archivos ya que se tendrán que mover grandes cantidades de información del directorio para mantener el orden. Información de control de acceso para establecer quién puede leer. pero la ejecución tarda mucho. se necesita una nueva función de dispersión que haga corresponder los nombres de archivos al intervalo 0 a 99 y reorganizar las entradas existentes en el directorio para reflejar los nuevos valores de la función de dispersión (hassing). Este valor indica el número de procesos que actualmente están usando (han abierto) el archivo. probablemente con una operación final que emplee el residuo de una división entre 64. Las principales dificultades con una tabla de dispersión son el tamaño generalmente fijo de la tabla y la dependencia de la función de dispersión respecto al tamaño de la tabla. En este caso puede servir de ayuda un árbol binario enlazado. aunque hay que tomar medidas para evitar colisiones. Una tercera alternativa consiste en copiar la última entrada en la localidad liberada y reducir el tamaño del directorio. etc. Una lista lineal de entradas del directorio requiere una búsqueda secuencial para encontrar una entrada determinada. Para reutilizar la entrada del directorio. para crear un nuevo archivo. Una lista ordenada permite una búsqueda binaria que reduce el tiempo promedio de búsqueda. Estos datos pueden servir para la protección y la supervisión de la utilización. además. La gran desventaja de una lista lineal de entradas de directorio es la búsqueda secuencial necesaria para encontrar un archivo. Otra estructura de datos que se ha utilizado para directorios de archivos es la tabla de dispersión (una estructura de datos que puede mejorar considerablemente el tiempo de búsqueda). se busca en el directorio hasta encontrar su nombre y después se libera el espacio que se le había asignado. es necesario obtenerla y cargarla en la memoria del computador. ejecutar. Hora. aunque la programación del algoritmo de búsqueda es más compleja y. Página 37 de 164 . suponga que se establece una tabla de dispersión de 64 entradas. se añade una nueva entrada al final del directorio. siempre hay que mantener ordenada la lista. Esto es fácil de programar. el tamaño del directorio puede ser de varios cientos o miles de bytes. También puede emplearse una lista ligada para disminuir el tiempo necesario para eliminar un archivo. existen varias alternativas: se puede marcar la entrada como no utilizada o se puede añadir a una lista de entradas libres para el directorio. luego. según se necesite. Por tanto. Por ejemplo. situaciones donde dos nombres de archivos se traducen a la misma localidad. Cuando ésta es utilizada. La inserción y eliminación son bastante directas. fecha e identificación de proceso. En un sistema con gran cantidad de archivos. primero se debe buscar en el directorio para asegurar que no haya un archivo con el mismo nombre. Existen varias modalidades para acceder a la información en un archivo. quizá a 100 entradas.• • • • Posición actual. La función de dispersión convierte los nombres de archivos en números enteros del 0 al 63.

Algunos sólo permiten el acceso secuencial y otros sólo el directo. Obsérvese. Realización Del Sistema De Archivos Gestión del espacio libre Para mantener una lista del espacio libre en disco se usan dos métodos: 1) Tener un mapa de bits de los bloques libres. No todos los sistemas operativos permiten ambos métodos de acceso a archivos. una escritura añade al final d archivo y luego avanza al final de lo que se acaba de escribir. luego el bloque 53 y después escribir el 7. Aunque cuando el disco está casi lleno podría ser más rentable el método de las listas enlazadas. Este es el modo de acceso a archivos más común que hay. De manera parecida. Los archivos de acceso directo son muy útiles para obtener acceso inmediato a grandes cantidades de información. Algunos sistemas requieren que un archivo se defina como directo o secuencial al momento de crearlo. que es fácil simular el acceso secuencial en un archivo de acceso directo si se mantiene una variable contadora. un programa puede avanzar o retroceder n registros. manteniendo un puntero al primer bloque libre. se busca primero en el índice y luego se usa el apuntador para acceder directamente al archivo y encontrar la entrada deseada. se puede leer el bloque 14. 2) Usar una lista enlazada de bloques libres. Así. este método es preferible. Una operación de lectura lee la siguiente porción del archivo y el apuntador avanza automáticamente. y las bases de datos frecuentemente son de este tipo. No existen restricciones en cuanto al orden de lectura o escritura para un archivo de acceso directo. en algunos sistemas. Como mejora. A este esquema se le conoce como acceso secuencial al archivo y esta basado en un archivo que se comporta como una unidad de cinta. Otros Métodos De Acceso Es posible construir otros métodos de acceso a partir del acceso directo. Acceso Directo Otro método de acceso es el acceso directo. un registro tras otro. se calcula el bloque que contiene la respuesta y luego se lee ese bloque directamente para proporcionar la información deseada. siendo n un número entero. Puede el reposicionarse el archivo para apuntar al inicio o. Estos métodos adicionales generalmente implican la construcción de un índice para el archivo. Para encontrar una entrada en el archivo. sin embargo. Este índice contiene apuntadores a los distintos bloques. que se basa en el disco como modelo de archivo. Cuando llega una consulta sobre un tema determinado. en vez de los 19 que necesita el método de lista enlazada. Página 38 de 164 . Los programas de edición por lo general acceden de esta manera a los archivos. Para el acceso directo se considera que el archivo es una secuencia numerada de bloques o registros. ya que sólo usa 1 bit por cada bloque. Un archivo de acceso directo permite leer o escribir cualquier bloque. El segundo método no es muy eficiente. El mapa de bits ocupa menos espacio. se puede utilizar una lista enlazada de bloques en la que cada bloque contiene números de bloques libres. puesto que para leer la lista hay que leer todos los bloques. Si existe espacio suficiente en memoria para mantener el mapa de bits.Acceso Secuencial La información en el archivo se procesa en orden. y sólo se permitirá el acceso de manera consistente con la declaración inicial. La mayor parte de las operaciones con archivos son lecturas y escrituras.

Método de asignación contigua Requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco.La elección del tamaño de los bloques requiere hacer un estudio previo de cuan grandes en promedio van a ser los archivos en ese sistema (lo habitual es 512 bytes. Las entradas en los directorios indicarán el bloque de comienzo y la longitud. al crecer. el espacio asignado no es suficiente. Puede solucionarse con compactación. también suele haber un puntero al último bloque del archivo. El directorio contiene la dirección del bloque donde están los índices a los bloques de datos (concepto análogo a las tablas de páginas de memoria). Para facilitar esta operación. pudiéndose utilizar sistemas de indexación de varios niveles (Unix). los archivos y sus atributos). Inconvenientes: a) Debe conocerse el tamaño máximo del archivo en el momento de su creación. Las soluciones son del tipo primero en ajustarse o mejor en ajustarse. pero es una operación muy costosa. Método de asignación mediante indexación Se crea una tabla de índices en la que se colocan los índices a los bloques de los archivos. Para archivos grandes. Ventaja: buen rendimiento cuando se quiere leer un archivo completo. puesto que hay que seguir los punteros hasta llegar al archivo deseado. Inconveniente: pérdida de espacio en el bloque de índices para índices pequeños. Ventajas: a) Todo el bloque está disponibles para los datos. se tiene que reubicar. 1 Kb o 2 Kb). Método de asignación mediante listas enlazadas Algunos bytes iniciales de los bloques se usan como puntero al siguiente bloque. Escribir en el archivo supone tomar uno de los bloques libres y añadirlo al final de la lista. se necesitaría asignar más bloques a la tabla de índices. La dificultad está en asignarle el espacio correcto cuando se crea el archivo. Ventajas: a) No causa fragmentación externa. c) Los archivos pueden crecer sin ningún problema mientras haya bloques libres. 2) Crear los algoritmos y las estructuras de datos que relacionan el sistema de archivos lógicos con el dispositivo físico de almacenamiento. Para leer un archivo sólo hay que seguir los punteros de bloque a bloque. c) No sufre fragmentación externa. Página 39 de 164 . b) Se soporta con la misma eficacia el acceso aleatorio que el secuencial. Las entradas en el directorio sólo tienen que guardar un puntero al primer bloque del disco asignado al archivo. b) Si. b) No se tiene que declarar el tamaño del archivo cuando se crea. Algunos aspectos de diseño a) Problemas de diseño: 1) Definir cómo verá el usuario el sistema de archivos (la estructura de directorios. Inconveniente: El acceso aleatorio a un archivo es muy lento. c) Produce fragmentación externa.

Como a veces dichos procesos realizan peticiones más rápido de lo que pueden ser atendidas por los discos de cabeza móvil. que deberá verificar los permisos y los bloqueos de lectura y escritura. la ineficiencia se debe muchas veces al uso inapropiado de recursos de almacenamiento rotacional como discos y tambor. el directorio tendría una entrada que apuntaría a un i-nodo no válido. asociada al propio archivo. La indicación de los bloques que tiene que leer o escribir la hace un módulo de organización de archivos que conoce el tipo de ubicación usado por los archivos y la situación de los mismos. Ventaja: Se pueden utilizar para enlazar archivos a otras máquinas. Para reducir al mínimo el tiempo de búsqueda de registros. Administ ra ción De Dis positivos De Almacenam iento Rotacional En los sistemas de cómputo multiprogramados. FCFS puede dar lugar a tiempos de espera muy largos. (2) Sistema de archivos lógicos. Enlaces simbólicos: Consiste en crear un nuevo archivo que contiene solamente la ruta de acceso al archivo al que se quiere enlazar. La creación de un enlace aumenta el número de entradas de directorio que (operación LINK). parece razonable ordenar la cola de solicitudes en Página 40 de 164 . En esta sección se darán a conocer algunos de los conceptos más importantes sobre administración de dispositivos de almacenamiento rotacional. contador de enlaces del i-nodo. Estos se pueden tratar como archivos de forma que el módulo de organización puede leer y escribir los directorios cuando se producen peticiones del sistema de archivos lógicos. b) Al restaurar un backup podrían crearse dos copias del mismo archivo. c) Control de acceso. analizarla y seguirla hasta alcanzar el i-nodo. (1) Sistema básico de archivos. de forma que los directorios apuntarían al i-nodo correspondiente.b) Niveles: El sistema de archivos se puede considerar compuesto por varios niveles o capas. Cuando se intenta eliminar el archivo original. el cual usa las características del nivel anterior para leer y escribir bloques en el disco. En los sistemas de computación multiprogramados. Inconvenientes: a) Su alto coste. Algunos sistemas de cómputo se limitan a atender las peticiones según un esquema de primero que llega. pero cuando la tasa de solicitud (es decir. Sólo el propietario del archivo tiene un apuntador al i-nodo. Cada nivel en el diseño usa las posibilidades de los niveles inferiores para crear nuevas características que usarán los niveles superiores. Se necesita incluir un i-nodo para cada enlace simbólico. de forma que el sistema conoce el apuntan al archivo. la carga) llega a ser pesada. La solución es dejar intacto el i-nodo con su contador en 1. si se eliminase el archivo y su i-nodo sin más. que conoce la estructura de directorios. se forman colas de espera para cada dispositivo. FCFS exhibe un patrón de búsqueda aleatorio en el cual peticiones sucesivas pueden provocar búsquedas de los cilindros más internos a los más externos. aunque ésta se podría almacenar en el propio inodo. first-come-first-served). cosa que consume mucho tiempo. primero que se atiende (FCFS. (3) Programas de aplicaciones. FCFS es un método justo para asignar servicio. En Unix existe una pequeña estructura de datos. muchos procesos pueden estar generando solicitudes de lectura y escritura de registros en discos. Compartición de archivos Se puede realizar de distintas formas el i-nodo. Hay que leer el archivo que contiene la ruta de acceso. Estos niveles son: (0) Dispositivos físicos de control de las transferencias de información entre la memoria y el disco. así como un bloque más en disco para almacenar la ruta de acceso.

60 revoluciones por segundo). para así obtener una mayor velocidad de acceso y transferencia que la que puede ofrecer un disco convencional con una sola cabeza móvil. permitiendo que se colocaran más bits en una superficie. aunque cada superficie aún requiere su propia cabeza de lectura y escritura. Los dos tipos más comunes de planificación son la optimización de búsqueda y la optimización rotacional (o de latencia). Los discos se diseñaron originalmente para el almacenamiento de archivos. Como los tiempos de búsqueda son un orden de magnitud más grandes que los tiempos de latencia. Para ofrecer mayor capacidad de almacenamiento. En aquellas situaciones que requieren alto rendimiento. Lo habitual es que haya una sola cabeza. por lo que los principales criterios de diseño fueron costo. Estructura Física Cuando el disco está en uso. Si la cabeza hace contacto con la superficie del disco (debido. por consiguiente. cada uno con dos superficies de grabación. Físicamente. la capacidad del disco puede duplicarse con un costo mínimo. es necesario mostrar. a un corte de energía). La planificación de disco implica un examen cuidadoso de las peticiones pendientes para determinar la forma más eficiente de atenderlas. Estructura De Un Disco Antes de proseguir con las políticas de planificación de discos. la cual se desplaza hacia adentro y hacia afuera para acceder a las distintas pistas (ver figura). sobre un eje. una visión global de la estructura física de un disco. en el total de pistas de una superficie. Los choques de la cabeza. La densidad se refleja en el número de pistas por pulgada y. Como todos los discos giran juntos. por ejemplo. similar al de las cintas magnéticas. excepto bajo cargas pesadas. Además es conveniente hacer notar que prácticamente todas las características asociadas a la forma de administración de un disco. como un disco de audio. Sus dos superficies están cubiertas con un material magnético. destruyendo los datos que allí se Página 41 de 164 . sólo se necesita un motor. La reducción de la latencia por lo general tiene poco efecto sobre el rendimiento global del sistema. Un planificador de disco examina las relaciones de posición entre las peticiones en espera. pero requiere un gran número de cabezas. puede usarse un disco de alta velocidad o un gran dispositivo de memoria (disco de memoria de acceso directo (RAM Random Access Memory)). Además. los discos son bastante sencillos. debido a la distancia mínima existente entre cabeza y plato. tamaño y velocidad.una forma diferente a FCFS. lo que hace que el dispositivo sea muy costoso. Un disco de cabeza móvil requiere hardware para mover la cabeza. pueden ser un problema. un motor lo hace girar a alta velocidad (por ejemplo. Un disco de cabeza fija tiene una cabeza para cada pista. la cual se divide lógicamente en pistas. Cada disco tiene una forma circular plana. Se almacena la información grabándola magnéticamente en las pistas que están debajo de la cabeza de lectura y escritura. también son válidas para los tambores. la cabeza raspará el medio de grabación del disco. La información se graba en dichas superficies. Esta disposición permite que el computador cambie rápidamente de una pista a otra. La cola de espera se reordena para que las peticiones puedan atenderse con un mínimo de movimiento mecánico. obteniéndose la mayor ganancia al mejorar la densidad de grabación. Se puede extender esta estrategia apilando varios discos. Tiene una cabeza de lectura y escritura ubicada justo encima de su superficie. al colocar cabezas a cada lado del plato. Este proceso se conoce como planificación de disco. la mayor parte de los algoritmos de planificación se concentran en reducir al mínimo los tiempos de búsqueda para un conjunto de peticiones. al menos. los diseñadores siguieron varias estrategias. En la superficie de un disco puede haber cientos de pistas.

la superficie y la pista. modificarlo y volver a escribirlo sin cambiar la ubicación. este riesgo es muy bajo. muchos sistemas. Estructura Lógica Un disco generalmente cuenta con un directorio del dispositivo que indica cuáles son los archivos que se encuentran en él. en la actualidad. y se llaman sectores. y finalmente desde el cilindro cero hasta el último en el disco. cuando la cabeza toca la superficie se desprende el material magnético y se introduce entre las otras cabezas y sus platos. ocasionado más choques. separados por marcas de terminación. dueño. las direcciones de los bloques aumentan al recorrer los sectores de una pista. lncluso en este caso. Los discos presentan dos características importantes que los convierten en un medio adecuado para el almacenamiento de múltiples archivos: • • Pueden rescribirse en el mismo lugar. su longitud. Para direccionar un sector específico se necesitan un número de pista (o de cilindro). por software definirán un tamaño fijo. un número de superficie y un número de sector. Página 42 de 164 . la cabeza sólo se desplazará una pista. El controlador recibe instrucciones de la CPU y ordena a la unidad de disco que ejecute la instrucción. gracias a las poderosas tecnologías de software. Un tambor es. pero no con su estructura lógica. un disco se puede considerar como un arreglo tridimensional de sectores. Como cada pista tiene su propia cabeza de lectura y escritura. Esta división de tareas permite que varias unidades de disco se conecten al mismo controlador. Por lo general. y para cambiar de un archivo a otro sólo hay que mover las cabezas de lectura y escritura y esperar que gire el disco. llamada controlador de disco.encuentren. que incluye el motor del dispositivo. el primero del siguiente cilindro. De esta manera. el cual comúnmente es tratado por el sistema operativo como un arreglo unidimensional de bloques de disco. donde cada bloque es un sector. Si se utiliza s para representar el número de sectores por pista y p para el número de pistas por cilindro se puede convertir una dirección en disco del cilindro i. tipo. Se puede acceder directamente a cualquier bloque de información en el disco. si se producía un choque de la cabeza había que cambiar todo el disco. hora de creación. hora del último acceso. aunque por hardware tengan bloques variables en disco. las pistas en superficies distintas) en una misma unidad se le denomina cilindro. después al pasar por todas las pistas de un cilindro. cuando el último bloque al que se accedió fue b. por ejemplo calculando: b = k + s * [ j + (i*p) ] Obsérvese que. las cabezas de lectura y escritura y la lógica relacionada. los cuales pueden ser de tamaño fijo. de hecho. determina la interacción lógica con el computador. el costo y la capacidad de almacenamiento. Dentro de una pista la información se escribe en bloques. En muchas ocasiones. especificado por el hardware. cada sector puede leerse o escribirse por separado. El hardware para un sistema de disco puede dividirse en dos partes. Por otra parte. el acceso al bloque b+1 requerirá un posicionamiento sólo cuando b sea el último bloque de un cilindro y b+1. al usar esta correspondencia. a un número de bloque unidimensional b. Para hacer referencia a la información en disco se emplea una dirección compuesta por varias partes. es posible leer un bloque del disco. Al conjunto de pistas a las que se puede acceder sin mover las cabezas (básicamente. Las principales diferencias entre discos y tambores están relacionadas con el rendimiento. El directorio es la lista de los nombres de los archivos e incluye información como la ubicación del archivo en el disco. pero a la vez más difícil de usar. no hay tiempo de posicionamiento. que incluye el número de la unidad. Antiguamente en circunstancias normales. La parte mecánica es la unidad de disco. Este segundo esquema es más flexible. la información en un pista puede componerse de bloques de longitud variable. La otra parte. un disco de un solo cilindro. Incluso. en otras palabras. Las transferencias de E/S entre la memoria y el disco se realizan en unidades de uno o más sectores. sector k. superficie j. De esta manera es sencillo acceder aleatoria o secuencialmente a cualquier archivo.

su lugar en la planificación es fijo. se almacena y luego se vuelve a montar. FCFS tiende a saturar el dispositivo y aumenta los tiempos de respuesta. etc. la primera solicitud que llega es la primera que se atiende. Planificación SSTF (Shortest Seek Time First) En la planificación SSTF (primero el de menor tiempo de búsqueda). Pero conforme crece la carga. Una medida importante de este fenómeno es la varianza de los tiempos de respuesta. la planificación FCFS da como resultado un patrón de búsqueda aleatorio. FCFS es aceptable cuando la carga del disco es ligera. Si una política de planificación sólo trata de aumentar la producción sin reducir al mínimo la varianza. primero que se atiende). Una petición no puede ser desplazada por la llegada de otra con mayor prioridad. como la 00001 (la dirección 00000 es casi siempre es un cargador para el arranque del sistema). aun cuando esta solicitud no sea la primera de la cola. las pistas más exteriores e interiores pueden recibir una atención deficiente en comparación con la que reciben las pistas de la parte media. SSTF tiende a favorecer mucho ciertas solicitudes. Como los bloques de un disco pueden rescribirse en su lugar. ciertas peticiones recibirían niveles de servicio erráticos. Esta disposición es especialmente deseable en dispositivos removibles. La varianza es una medida matemática de cuánto se desvían elementos individuales del promedio de los elementos. generalmente en una dirección fija del disco. Hace caso omiso de las relaciones de posición entre las solicitudes pendientes. La planificación mejora a menudo el rendimiento global pero reduce el nivel de atención para ciertas peticiones. FCFS sí ofrece una varianza pequeña. Planificación De Discos Tal como se mencionó anteriormente. FCFS es justa en el sentido de que al llegar una solicitud. sea un paquete de discos o un disco flexible. actualizar y rescribir el directorio cada vez que sea necesario. en efecto FCFS realizará una búsqueda larga para atender una petición en espera aunque llegue una solicitud para el mismo cilindro donde esta colocada la cabeza de lectura-escritura. se desea una política de planificación que reduzca al mínimo la varianza. se puede leer. Como tal. en consecuencia. Cada unidad de disco física. Los patrones de búsqueda SSTF tienden a estar muy localizados y. FCFS es un método relativamente justo para atender solicitudes. podría procesar nada más las peticiones fáciles y hacer caso omiso de las difíciles. tiene su propio directorio del dispositivo. se utiliza la varianza para indicar la predecibilidad: a menor varianza mayor predecibilidad. pero esto no es mucho consuelo p ara la petición que espera al final de la cola mientras el brazo móvil se desplaza de un lado a otro. Cuando las peticiones están distribuidas uniformemente en la superficie del disco. la petición que implica la menor búsqueda es la siguiente en atenderse. Los criterios recién señalados tratan de mejorar el rendimiento global. como las unidades de discos flexibles o paquetes. almacenado en el mismo dispositivo. sin tener que copiar el resto del disco. En general. Si el medio se desmonta. Página 43 de 164 . cada vez a expensas de las peticiones individuales. SSTF es un esquema orientado hacia los cilindros.protecciones. lo que podría ser intolerable. De otra forma. No hace ningún intento por optimizar el patrón de búsqueda. Algunos otros criterios para clasificar las políticas de planificación son: la productividad. Planificación FCFS (First Come First Served) En planificación FCFS (primero que llega. el tiempo promedio de respuesta y la varianza de los tiempos de respuesta (predecibilidad). quizá en una unidad de disco diferente y aún se deseará poder localizar los archivos en ese dispositivo.

pero ello no es tan grave como la discriminación de SSTF. donde la productividad es la consideración más importante. Las solicitudes que llegan durante un barrido se agrupan y ordenan para darles una atención óptima durante el barrido de regreso. C-SCAN elimina la discriminación de las estrategias anteriores contra los cilindros más interiores y exteriores. se denomina a veces algoritmo del ascensor. C-SCAN con optimización rotacional maneja en forma activa las situaciones de carga pesada. política SCAN es la mejor. la estrategia SCAN elige la distancia de búsqueda más corta en esa dirección. Cuando la carga es ligera. Pero la elevada varianza de los tiempos de respuesta lo hace inaceptable en sistemas interactivos. En esta estrategia. SCAN no cambia de dirección hasta que llega al cilindro más exterior o hasta que ya no hay solicitudes pendientes en la dirección preferida. Planificación SCAN Denning desarrolló la estrategia de planificación SCAN para evitar la discriminación y la alta variación en los tiempos de respuesta de SSTF. podría hacer inanición de las solicitudes alejadas de las cabezas de lectura-escritura. Su característica más importante es la menor variación de los tiempos de respuesta que en la planificación SSTF o en la SCAN convencional. SCAN de N pasos elimina la posibilidad de que ocurra un aplazamiento indefinido si llega un gran número de peticiones para el cilindro actual. Cuando el brazo ha completado su barrido hacia adentro. En este sentido. En la estrategia C-SCAN el brazo se mueve del cilindro exterior hacia el interior. En un caso extremo. las pistas más exteriores se visitan con menos frecuencia que las de la parte media. SCAN ha sido la base de la mayor parte de las estrategias de planificación de disco implantadas hasta ahora. excepto que sólo atiende las solicitudes que ya estaban esperando cuando se inició un barrido específico. Página 44 de 164 . A causa del movimiento oscilante de las cabezas de lectura-escritura en SCAN. En cada barrido se atienden las primeras n peticiones en secuencia óptima de acuerdo con la dirección de la cabeza de lectura-escritura.SSTF ofrece mejores tasas de productividad que FCFS. y los tiempos de respuesta tienden a ser más bajos cuando la carga es moderada. SCAN elige la solicitud que implica la menor distancia de búsqueda en una dirección preferida. Planificación SCAN De N Pasos (ó SCAN-N) Una modificación interesante de la estrategia SCAN básica se denomina SCAN de N pasos. Algunos resultados de simulaciones indican que la mejor política de planificación de disco podría operar en dos etapas. Si la dirección preferida en un momento dado es hacia afuera. Si se consideran las importantes mejoras en la productividad y en los tiempos promedio de respuesta. C-SCAN produce los mejores resultados. Una desventaja importante es que aumenta la varianza de los tiempos de respuesta debido a la discriminación contra las pistas exteriores e interiores. Cuando la carga es mediana o pesada. el aumento en la varianza puede parecer tolerable. Planificación C-SCAN Otra modificación de la estrategia SCAN básica se denomina C-SCAN (SCAN circular). el brazo del disco se mueve en una y otra dirección como en SCAN. C-SCAN presenta una varianza muy pequeña de los tiempos de respuesta. salta inmediatamente a la solicitud más cercana al cilindro más exterior y luego reinicia su barrido hacia adentro procesando solicitudes. SCAN-N ofrece un buen desempeño en cuanto a productividad y tiempo promedio de respuesta. SSTF resulta útil en sistemas de procesamiento por lotes. atendiendo solicitudes según un criterio de la búsqueda más corta.

atendiendo solicitudes según un criterio de la búsqueda más corta. C-LOOK mueve el brazo del cilindro exterior hacia el interior. Ahora los equipos son relativamente económicos y su costo baja cada vez más. es importante que los diseñadores. La optimización rotacional se denomina a veces puesta en cola de sectores. La complejidad de los programas va en aumento con la generalización del empleo de sistemas operativos de multiprogramación. Página 45 de 164 . sean cuales sean las condiciones de carga. Los programas ocultan a menudo el equipo al usuario. En los primeros años del desarrollo de los sistemas de cómputo. Sin embargo. La optimización rotacional se ha utilizado durante muchos años con dispositivos de cabeza fija. luego salta a la solicitud más cercana al cilindro más exterior y luego reinicia su barrido hacia adentro. por lo que es importante examinar el desempeño de los programas de un sistema además del desempeño del equipo. Se ha demostrado que esta estrategia llega cerca del rendimiento óptimo teórico y su realización es relativamente sencilla. El brazo completa su barrido hacia adentro cuando llega hasta la última pista que tiene petición sin necesidad de llegar al final. Planificación C-LOOK En la planificación C-Look (Look circular) es una combinación de C -SCAN y LOOK. en la operación cotidiana del sistema y después de la instalación.Planificación LOOK La planificación Look es una planificación que opera igual a SCAN. de manera que los estudios sobre desempeño se concentraban ante todo en aspectos del equipo. los sectores se colocan en una cola según su posición alrededor del disco y se atienden primero los sectores más cercanos. administradores y usuarios de los sistemas operativos sean capaces de averiguar cuán efectivo es un sistema específico para manejar sus recursos. la estrategia C-SCAN con optimización rotacional ha demostrado ser mejor que el esquema de Eschenbach. Al igual que en C SCAN. los costos de la mano de obra han seguido creciendo constantemente. La estrategia de primero el tiempo de latencia más corto (SLTF. el equipo representaba el costo dominante. Evaluación De Desempeño Como un sistema operativo es en primer término un administrador de recursos. Sin embargo. shortest-latency-time-first) para la optimización rotacional es análoga a la estrategia SSTF para la optimización de búsqueda. sino también el retraso rotacional . por lo que resulta útil tener en cuenta la optimización rotacional además de la optimización de búsqueda. los programas de difícil manejo provocan un desempeño pobre. Con frecuencia. y cuando se estudia su modificación o posible sustitución por un sistema mejor. pero si hay peticiones sólo llega hasta la última pista que tiene petición sin necesidad de llegar al final (lo que mejora significativamente el desempeño). interfaces con el usuario orientadas a los gráficos y diversos sistemas de apoyo a aplicaciones. Una vez que el brazo del disco llega a un cilindro determinado. sistemas administrativos de bases de datos. La estrategia SLTF examina todas estas solicitudes y atiende primero la que tiene el retraso rotacional más corto. multiprocesamiento. El esquema fue uno de los primeros en tratar de (*) optimizar no sólo el tiempo de búsqueda. (*) En condiciones de carga pesada aumenta la probabilidad de múltiples referencias a un cilindro específico. se debe comenzar a medir el desempeño con técnicas más acordes con la productividad humana. aun en sistemas con equipo poderoso. sistemas distribuidos. Esquema De Eschenbach Esta estrategia se desarrolló originalmente para un sistema de reservaciones de una línea aérea diseñado para manejar cargas en extremo pesadas. puede haber muchas solicitudes pendientes para las diversas pistas de dicho cilindro. La evaluación y predicción del desempeño se necesitan desde los primeros momentos de la concepción de un sistema nuevo. con lo que crean una máquina virtual definida por las características de operación de los programas. En consecuencia.

• Tiempo de respuesta: Es el tiempo de retorno en un sistema interactivo. Cuando un procesador está en Página 46 de 164 . El evaluador del rendimiento debe asegurarse de tomar en cuenta los dos tipos de mediciones. se define como el tiempo transcurrido desde la entrega de un trabajo hasta su devolución al usuario. Una varianza pequeña indica que los tiempos de respuesta que perciben los usuarios están en general cerca de la media. cantidad que el sistema debe procesar en condiciones normales para que su funcionamiento se considere aceptable. Una forma de lograr un alto porcentaje de utilización del procesador. Es por ello es que a menudo se utilizan otras medidas de desempeño. La utilización puede ser una medida engañosa. Se dice que algunas medidas del desempeño. hay otro trabajo inmediatamente disponible. • Producción: Es la medida de rendimiento de trabajos por unidad de tiempo. Pero los promedios muchas veces pueden ser engañosos porque un valor medio dado se puede producir promediando una serie de valores idénticos o casi idénticos. Se puede considerar que el procesador en un momento dado está ocioso. Una varianza considerable indica que algunos usuarios pueden estar recibiendo tiempos de respuesta muy distintos de la media. son difíciles de cuantificar. Cuando se habla del valor esperado de una variable aleatoria. tales como la facilidad de uso. aunque quizá sólo sea posible proporcionar datos estadísticos precisos en el segundo caso. Otro punto de vista sobre la utilización del procesador ofrece también observaciones interesantes. Lo contrario sucede con otras. • Tiempo de reacción del sistema: En un sistema interactivo. algunos mucho más grandes y algunos mucho más pequeños que el promedio calculado. se dice que están orientadas al sistema. y a menudo se le define como el tiempo transcurrido desde que el usuario presiona una tecla Enter (Intro) u oprime el botón de un ratón hasta que el sistema comienza a imprimir o exhibir una respuesta. el desempeño es una cantidad relativa más que absoluta. por ejemplo. cada uno de los cuales esta en un ciclo infinito. tales como el tiempo de respuesta están orientadas al usuario. se define a menudo como el tiempo transcurrido desde que el usuario presiona una tecla Enter (Intro) u oprime el botón de un ratón hasta que se otorga la primera tajada de tiempo de servicio a esa solicitud del usuario. Por tanto. en estado de programa o en estado de supervisión. • Utilización: Es la fracción de tiempo que está en uso algún recurso.El desempeño (o rendimiento) se refiere al modo en el que un sistema de cómputo cumple con sus objetivos. Aunque al parecer lo mejor es tener un porcentaje de utilización alto. Algunas de las medidas más comunes del desempeño son: • Tiempo de retorno (turnaround time): En un sistema de procesamiento por lotes. o bien promediando una amplia variedad de valores. Estas son cantidades probabilísticas. aunque muchas veces se hablará de medidas absolutas de desempeño tales como el número de trabajos por hora que puede atender un sistema de cómputo dado. es ejecutar una serie de procesos. y en los estudios de simulación y modelado de sistemas se consideran como variables aleatorias. como por ejemplo: • Varianza de los tiempos de respuesta: La varianza de los tiempos de respuesta es una medida de la dispersión. esto puede ser el resultado de un aprovechamiento ineficiente. No obstante. como el porcentaje de utilización del procesador. si se supone que cada vez que el sistema está preparado para aceptar más trabajos. Otras. • Carga de trabajo: Es la medida de la cantidad de trabajo que se ha introducido en el sistema. se esta haciendo referencia a su valor promedio. Algunas medidas del desempeño. o la eficiencia con la que lo hace. siempre que se estima una medida del desempeño. lo normal es que sirva como base para comparaciones. • Capacidad: Es una medida de la producción máxima que puede tener un sistema. tales como el número de accesos a disco por minuto.

Parte de este tiempo se puede cobrar directamente a los usuarios. se encuentra dentro del sistema operativo. Este componente de gasto general puede ser considerable en algunos sistemas. Sin embargo. pero una parte. no es sino un gasto general. cuando se mide la utilización del procesador. Así. como el tiempo ocupado en conmutar entre diversos procesos en los sistemas de programación. debe interesar cuánto de este uso es trabajo productivo en beneficio de los usuarios y cuánto es un gasto general del sistema. cuando el procesador esta en el estado de supervisión.estado de programa realiza labores en beneficio de un usuario y lo más probable es que el costo se cobre a dicho usuario. Página 47 de 164 .

Página 48 de 164 . • • • • • • • • • Además existen otras políticas de planificación. Todos los procesos deben ser tratados de igual forma impidiendo inanición de un proceso. Total de tiempo que un proceso espera por su ejecución completa. Colas multinivel realimentadas. por eso se utiliza esta otra medida: El tiempo que transcurre desde que se emite solicitud hasta que se recibe la primera respuesta. Número de procesos finalizados por unidad de tiempo. RR (Round Robin). se deben mantener todos los recursos del sistema ocupados. Porcentaje de tiempo que procesador esta ocupado. SRT (ó SJF apropiativo). Utilización de procesador. Equidad. Prioridades. Apropiativas (explusivas). Tiene como inconveniente el acaparamiento injusto de la CPU. es necesario tener presente que la planificación se hace teniendo en cuenta determinados criterios: • Tiempo de respuesta. Desde el punto de vista de un único proceso el criterio más importante es el tiempo que tarda en ejecutarse. hay sistemas cuya política de planificación se basa en prioridades de dos tipos: Estáticas (se mantienen durante la ejecución) y dinámicas (que pueden variar durante ejecución). Si se especifica un plazo de terminación de un proceso la planificación debe planificar otras metas a la maximización de plazos cumplidos. SJF (Smallest Job First). Por ejemplo: • • • • • • FCFS (First Come First Serviced). Plazos. El intervalo de tiempo transcurrido desde la entrada de un proceso en el sistema hasta su finalización. Una tarea que se ejecute reiteradamente se deberá ejecutar en el mismo tiempo y con el mismo coste. existen varios algoritmos de planificación. Productividad. Recursos equilibrados. En un sistema interactivo puede que el mejor criterio no sea el tiempo de retorno. En general. Tiempo de retorno. Una vez que el proceso obtiene CPU no le puede ser requisada hasta que acaba la ráfaga. Colas multinivel. Por ejemplo.CAP ÍT UL O IV ADM INIST RACIÓN DE CPU Retomando del concepto de procesos y la necesidad de planificar su utilización de la CPU. Permiten que un proceso con mayor prioridad requise de CPU al proceso que la tenia asignada sin finalizar su ejecución. Previsibilidad. El resto de las políticas pueden ser de tipo apropiativas y no apropiativas: • • No apropiativas (no explusivas). Se obtiene sumando los tiempos de espera de todas las ráfagas con el tiempo de espera de la primera ráfaga. Para implementar un tiempo compartido y tiempo real es necesaria una planificación apropiativ a. Tiempo de espera. En lo posible. Se debe favorecer a los procesos con mayor prioridad.

En la política FCFS el tiempo promedio de espera es bastante largo. éste la conserva hasta que desee liberarla ya sea por terminación o por E/S lo cual puede llegar a ser especialmente problemático. El nuevo proceso puede tener una ráfaga de CPU menor que lo que resta del proceso que se ejecuta en ese momento. el proceso que primero solicita la CPU es el primero al que se le asigna. Puede comprobarse que el algoritmo SJF es óptimo. Un algoritmo SRT desplazará al proceso que se ejecuta. La alternativa se plantea cuando un nuevo proceso llega a la cola de procesos listos mientras se está ejecutando otro proceso. ya que ofrece el menor tiempo promedio para un conjunto de procesos dados. El problema principal del algoritmo es el conocimiento de la longitud de la siguiente ráfaga de CPU por tanto no puede implantarse a nivel de la planificación de la CPU. Por ejemplo: Si P1 hubiese llegado al final. aunque se utilizan aproximaciones. logrando un tempo de espera media de sólo 3. Esta política se implementa fácilmente utilizando una cola FIFO. Cuando la CPU está disponible es asignada al proceso que tiene la siguiente ráfaga de CPU menor. los tiempos hubiesen mejorado bastante.3 Algori tmos SJF & SRT En el algoritmo SJF (tiempo restante más corto) se asocia a cada proceso la longitud de su siguiente ráfaga de CPU. Cuando la CPU está libre se asigna al proceso que está situado primero en la cola. Aunque no se conocen los valores de las siguientes ráfagas de la CPU se puede predecir su valor esperando que sea más o menos del mismo tamaño que las anteriores (por ello se elige el proceso con ráfaga previa de CPU más breve) El algoritmo SJF puede ser apropiativo (SRT) o no apropiativo. Por ejemplo: Página 49 de 164 . Cuando un proceso entra el PCB apunta al último proceso en la cola FIFO.Algori tmo FCFS En FCFS. una vez que se ha asignado la CP U a un proceso. Si dos procesos tienen la misma longitud para la siguiente ráfaga de CPU se utiliza la planificación FCFS para romper el empate. El algoritmo FCFS es no apropiativo.

La cola de procesos listos se trata como una cola circular. la política puede ser explusiva o no explusiva y las prioridades de los procesos las puede asignar en forma interna el propio sistema operativo o pueden asignarse en forma externa por el usuario. ocurrirán demasiados cambios de contexto y el rendimiento caerá. El rendimiento del RR depende en gran medida del cuanto de tiempo. En este caso. el procedimiento se basa en que cada proceso tiene una prioridad. Algori tmo Round Robin Round Robin (algoritmo de planificación circular) fue diseñado especialmente para sistemas de tiempo compartido. • • Que el proceso tenga una ráfaga de CPU menor que el cuanto. Se gestiona la cola de más prioridad hasta que está vacía y se pasa a la siguiente. Si es muy pequeño. Los procesos se asignan de forma permanente a una cola. Un algoritmo de planificación de colas de múltiples niveles divide la cola en varios niveles. Pueden suceder una de estas dos cosas. Debe existir además una planificación entre colas la cual es generalmente una planificación apropiativa de prioridad fija. La planificación de colas multinivel (con realimentación) permiten al proceso moverse de una cola a otra. pasarán a una cola de menor prioridad. Se mantiene la cola de listos en una cola FIFO. luego. Se ejecuta cambio de contexto y el proceso se colocará al final de la cola de listos. En este caso prioridad será proporcional a la duración estimada. pero si llega a ser demasiado pequeño. Si n procesos utilizan demasiado tiempo la CPU.Planifi ca ción Por Pr iori da des Bajo este concepto. el proceso se libera voluntariamente. Si la ráfaga es más grande que el cuanto. Los nuevos procesos se agregan al final de la cola. el cronómetro se activará y provocará una interrupción para el sistema operativo. y para los usuarios parece que cada proceso tiene su propio procesador. generalmente dependiendo de una prioridad. Este esquema deja a los procesos interactivos y a los limitados por E/S en las colas de mayor prioridad. Si el cuanto es muy grande la política es la misma que la del FCFS. Colas M ultinivel Se han creado otros algoritmos de planificación en aquellos sistemas donde los procesos pueden clasificarse fácilmente en diferentes grupos. el planificador de CPU la recorre asignando a cada proceso un cuanto de tiempo. el enfoque se llama compartir el procesador. Se define una pequeña cantidad de tiempo o cuanto de tiempo. como solución. entonces. Cada cola tiene su propio algoritmo de planificación. que generalmente varía entre los 10 y 100 milisegundos. se suele aumentar progresivamente la prioridad de los procesos en espera (envejecimiento). El algoritmo SJF es un caso de planificación por prioridades. El mayor riesgo que presenta la asignación de prioridad de este modo es la posibilidad de p ostergar demasiado a los procesos con menos prioridad. Página 50 de 164 . El planificador toma el primer proceso de la cola de listos y programa el cronómetro para que provoque una interrupción y despacha el proceso. La idea es separar a los procesos con diferentes características en cuanto a ráfagas de CPU. entrará a la CPU aquel proceso que tenga mayor prioridad.

El cual consiste en someter a las políticas a una carga de trabajo representativa. que es el tiempo máximo que una tarea puede estar en una cola sin ser ejecutado. Su finalidad es la utilización de los dispositivos de E/S. Se trabaja con modelos estadísticos para evaluar matemáticamente las cargas de trabajo. Cuando se va a seleccionar una tarea. pues el rendimiento de cualquiera de ellos variará en función de las cargas de trabajo. El método utilizado para promover un proceso a colas de mayor prioridad.Por lo general un planificador de colas multinivel se define por los siguientes parámetros: • • • • • • • Número de colas. pero el cuanto asignado queda disminuido en el tiempo de CPU ejecutado. Algoritmo de planificación para cada cola. Tiempo de refresco. transcurrido ese tiempo sube de nivel. La implementación. Método utilizado para determinar a cual cola entrará un proceso cuando necesite un servicio. Por esta razón. Evaluación De Las Polí ti cas En la realidad es difícil determinar que algoritmo es mejor o peor. Entre las estrategias utilizadas para evaluar la eficiencia de un algoritmo se pueden encontrar: • • • • El modelo determinista. definido como el tiempo en que una tarea puede finalizar si con esto finaliza su ejecución completa mejorando así el rendimiento medio del sistema. Tiempo umbral. Con las tareas que vienen de E/S se crea una cola de prioridad. En este caso simplemente se modifica el sistema operativo y se prueba en condiciones reales. Algori tmo Round Robin Vir tual El algoritmo RR Virtual se aplica a sistemas con muchas operaciones de E/S y ráfagas de CPU cortas. Página 51 de 164 . El método utilizado para degradar un proceso en colas de menor prioridad. Los modelos de colas (estadísticos). es necesario aplicar algún criterio que permita determinar la eficiencia de cada uno de ellos para finalmente implementar el que mejor se ajuste a un sistema operativo en particular. Las simulaciones. Se construye un modelo informático de la máquina y se le inyecta una carga de procesos simulada. se da prioridad a las que han finalizado su operación de E/S frente a las que vienen de la cola de listos.

División De M emoria: El M onitor Resi dente La introducción de los sistemas operativos para utilizar mejor el hardware dividió la memoria en dos zonas.CAP ÍT UL O V ADM INIST RACIÓN DE MEMORIA En un sentido amplio los programas del sistema se encargan de controlar las operaciones propias del computador. De esta forma. Cómo asegurar que los programas de usuario no se vean afectados por esta división de la memoria. De los programas del sistema el más importante es el sistema operativo cuyo objetivo es que el computador se pueda utilizar de una manera cómoda y eficiente. Para mejorar la utilización de la CPU y su velocidad de respuesta a los usuarios. consistente en que el programador accedía directamente al hardware y gestionaba la memoria en sus programas. desviándolo de su principal objetivo que era el proceso de la información. los cuales reflejan distintas estrategias para realizar una misma tarea. Se establece. El programador dedicaba gran parte de su tiempo y esfuerzo a gestionar el propio hardware. se hace necesario proteger la zona del sistema operativo contra cualquier intento de acceso a dicha zona por parte del programa. Es posible hallar muchos esquemas para la administración de la memoria. una utilizable por el usuario y otra reservada para la parte residente del propio sistema operativo denominada comúnmente monitor. sin existir sistema operativo y consiguientemente tampoco gestor de memoria. y la mejor o peor eficiencia de los distintos algoritmos depende situaciones muy concretas. el sistema operativo debe mantener varios procesos en memoria. Página 52 de 164 . Protección de la memor ia Debido a que el programa monitor y el programa de usuario van a compartir la memoria. se habla de particiones fijas (cuando la memoria es segmentada en porciones de tamaño fijo e invariable durante el funcionamiento de la máquina) y de particiones variables (cuando la memoria es dividida dinámicamente de acuerdo a las necesidades). En estos primeros equipos se programaba en lenguaje máquina. la monoprogramación es el modo de trabajo en el que solamente un programa utiliza el procesador. Las primeras computadoras utilizaban lo que sé denomina régimen dedicado. (*) Este reparto de la memoria introduce nuevos problemas que es necesario resolver. Como ya se ha indicado en el Capítulo N° 2. con la que es factible comunicarse al crearse un interfaz entre el usuario y la máquina y gestionar los recursos de la misma. por tanto. una dirección frontera que limita la zona del sistema (*) En general. estos problemas son: • • Cómo asegurar la independencia de ambas zonas (Protección). proporcionando un caparazón a la máquina desnuda que permite dar la visión de una máquina virtual. A continuación se mostrará cómo se ha gestionando y cómo se gestiona la memoria en aquellos sistemas que utilizan este modo de trabajo: La memoria de di ca da. mientras que los programas de aplicación son los que resuelven problemas específicos a los usuarios. la utilización de la memoria es ineficaz y se obliga a un conocimiento profundo del hardware utilizado.

es decir es volátil y limitada. Este control se realiza directamente por el hardware a través de uno de sus registros. o bien durante la carga del programa en memoria. en definitiva que pueda variar su tamaño. pero demasiado rígida. obligando por tanto a variar la dirección frontera. permitiendo el acceso o no. el contenido del registro frontera indicará el punto a partir del cual puede cargarse el programa de usuario. es necesario reasignar las direcciones del programa en función de la frontera. Como su nombre lo indica. todas las direcciones son virtuales y el conjunto de todas ellas conforman el espacio de direcciones virtuales. establecerá la correspondencia adecuada entre las direcciones relativas y las direcciones reales que configuran lo que se denomina espacio físico de direcciones (memoria real). la memoria virtual es un tipo de memoria equivalente a la memoria RAM. La reasignación estática se realiza durante la compilación. cualquier variación de tamaño en el sistema operativo exige una nueva compilación o carga del programa. pero paga esta virtud en velocidad. este control provoca un cierto aumento de tiempo en el acceso a la memoria. La dirección frontera. M emoria Virtual En la actualidad es muy corriente oír hablar de memoria virtual en el ambiente computacional. La memoria virtual más allá de cumplir una función similar a la memoria RAM es algo así como un soporte para guardar momentáneamente toda la información que es de vital importancia para la correcta funcionalidad de los procesos pero que por limitaciones de hardware no pueden ser almacenada en RAM. Cualquiera que sea la técnica utilizada. La memoria virtual puede ser generada a partir de una combinación de capacidades de hardware y sistema operativo. permanente o no. la memoria virtual es mucho más lenta que la memoria RAM. según corresponda. En los computadores donde no hay memoria virtual. La idea fundamental detrás de la memoria virtual es que el tamaño combinado del programa. Si bien se entiende que la memoria es cualquier forma de almacenamiento. es decir. La reasignación dinámica se realiza durante la ejecución del programa. suele ser variable para permitir que un sistema pueda ir evolucionando en prestaciones y versiones de su propio sistema operativo. Utilizará direcciones relativas que podrán variar entre 0 y el máximo permitido por el sistema operativo. De esta manera. Este es el denominado espacio lógico de direcciones. una estática y otra dinámica. Posteriormente. Para ello.operativo. el usuario no manejará direcciones reales en su programa. Esta separación entre la visión del usuario (espacio lógico) y la memoria real (espacio físico) permite gestionar ésta con mayor eficacia. pero éste queda compensado con la mejora en rendimiento que permite el sistema operativo. Es una técnica fácil de realizar. En la medida en que se vayan necesitando nuevas partes estas se intercambian con las residentes en la memoria principal. Pero es un tipo de memoria con capacidades de almacenamiento generalmente mucho mayores que la capacidad de una memoria RAM ordinaria. En los sistemas que utilizan memoria virtual. Un dispositivo especial del hardware interceptará cada dirección lógica generada por el programa y le sumará el contenido del registro frontera para obtener la dirección real correspondiente. Su tamaño es inversamente proporcional a su velocidad de acceso y generalmente se trata de una forma de almacenamiento en disco el cual es administrado de una forma muy especial a fin de acelerar al máximo las velocidades de acceso y traspaso de información a la memoria RAM para su utilización verdadera. los datos y la pila de ejecución puede exceder la cantidad de memoria real disponible para él. el sistema operativo. Página 53 de 164 . Cualquier dirección de memoria que pida o solicite el programa de usuario se compara con dicha dirección frontera. Reasignación de dire cciones Una vez inicializado el sistema operativo. Evidentemente. El sistema operativo mantiene aquellas partes del programa que se están utilizando en cada momento en la memoria principal y el resto permanece en el disco. en general. con la ayuda del hardware. Existen dos formas de realizar la reasignación. la memoria virtual es una memoria que en realidad no existe físicamente.

la dirección se coloca directamente sobre el bus de la memoria. es la optimización del proceso de intercambio de información entre la memoria RAM y la memoria virtual. Una forma de realizar el intercambio es utilizando el swapping. Una de almacenamiento compartido. Página 54 de 164 . un conjunto de chips. De esta forma sería recomendable dividir la memoria principal en tres áreas. La idea central de la memoria vi rtual es que dirección es diferente de localización física. Este proceso es conocido como swapping. Los que implican intercambio de entrada y salida. pero el código de los programas (procesos de instrucción) siempre son fijos. en un sistema de tiempo compartido donde todos los usuarios están trabajando en la creación de documentos de un mismo editor. lo que permite que se pueda acceder al contenido de la memoria física que tenga tal dirección. La idea básica es que cada programa que está en memoria principal (RAM) tiene una copia en memoria secundaria (memoria virtual) y esa copia se traspasa a memoria principal cada vez que se requiera. Lo cual no implica ningún tipo de intercambio. Sw appin g Como se mencionó anteriormente una de las principales preocupaciones administrativas del sistema operativo. Una de almacenamiento de programas. por ello se hace necesario tomar las direcciones virtuales y convertirlas a reales para poder tener acceso a la posición de memoria correspondiente. las direcciones no pasan directamente al bus de memoria. perfectamente podría ser despejada para dejar lugar para ser utilizada por otro programa que sí la requiera. por lo que la memoria que el programa no está verdaderamente utilizando. Los tiempos de E/S son considerablemente superiores a los tiempos de procesamiento de la CPU. Además. Una forma de economizar tiempo puede obtenerse si se tiene presente que en la memoria virtual sólo son dinámicos los datos y los resultados de los procesos. sino que van a una unidad de administración de la memoria (MMU. Así. Por ejemplo. Al utilizar memoria virtual. la cual puede ser compartida por todos los usuarios. si existe una copia de ellos en memoria secundaria. que asocian las direcciones virtuales con las direcciones de memoria física. • • • Una de almacenamiento de datos. no es necesario rescribirlos en memoria secundaria. Memory Manager Unit). es posible compartir código de programas o bibliotecas de datos muy utilizados. entonces se podría tener en memoria principal sólo una copia del editor. Los que implican sólo intercambio de salida. sólo se requiere eliminarlos de memoria principal. en cuanto a memoria virtual se refiere.

Este se utiliza para verificar que no se hagan referencias fuera del segmento. un arreglo. Por lo tanto los segmentos se cuantifican en celdas. la responsabilidad del sistema operativo es asignar la información de los segmentos de tal modo que estos ajusten lo más perfectamente posible a los bloques. Esto puede lograrse haciendo que las palabras que son referenciadas en forma cercana pertenezcan a un mismo segmento. apunta a la base del segmento en memoria. (*) Si bien se afirma que un segmento puede ser de longitud variable. El segmento referenciado por la tabla de segmentos no existe en memoria principal. La segmentación tiene considerables ventajas desde el punto de vista administrativo de la memoria. no es necesario tener todo el programa en memoria a la vez. entre otras cosas. Todos los descriptores de segmentos se almacenan en una tabla de segmentos. una estructura como una lista sería también conveniente que fuesen almacenadas ordenadamente en un mismo segmento. donde s es el índice dentro de la tabla de segmentos (no es directamente el apuntador al bloque) y d es un desplazamiento hacia el segmento (celda inicial dentro del segmento. son: 1. Página 55 de 164 . se corrige inmediatamente realizando el intercambio correspondiente. 2.d). Este procedimiento es conocido como segmentación. los que a su vez se componen de celdas. Pero. Estos podrían considerarse como un error. cada rutina podría pertenecer a un trozo separado. por ejemplo. Al costado derecho se puede ver gráficamente el concepto de traducción de direcciones de memoria. d es mayor que el desplazamiento máximo permitido. y dividir la memoria en tantos trozos de longitud variable como sea posible y necesario. del segmento referenciado. por lo que es conveniente minimizar las transacciones de estas secciones. ∀ 0 ≤ d ≤Tabla_segmento[s]. Un segmento es descrito por un descriptor de segmento que. de él. Idealmente un segmento debería estar cuantizado en bloques y no en celdas pero esto haría perder espacio de almacenamiento disponible. Por lo tanto: Direccion_Real ß Tabla_segmento[s].d) Algunos de los problemas típicos que se pueden producir. Dentro de cada entrada de la tabla de segmentos se encuentra un campo (Long) que indica la longitud del segmento. Una dirección virtual es un par ordenado (s. (*) Por supuesto. 3. se producen overhead . Así. se entiende que la memoria virtual se compone de bloques de longitud fija. Los programas y los datos son almacenados arbitrariamente en memoria principal. s esta fuera del rango máximo de la tabla de segmentos. no del bloque). Si esto llegase a ocurrir se generaría una interrupción. Hay una tabla de segmentos para cada proceso y la base y el tamaño de cada segmento se anotan en el descriptor mismo de cada segmento. Por lo tanto. que verdaderamente están participando de la ejecución. Típicamente una rutina correspondería a un mismo segmento. Cuando un bloque es utilizado por dos o más segmentos a la vez se dice que existe un overhead.Segmentación Es posible generalizar la idea de separar la parte de programa y datos. si se recuerda que se está tratando de un medio compuesto por una memoria principal y una virtual. Además. al ser los segmentos de longitud variable.limite Direccion_Virtual ß (s. desde memoria virtual a memoria principal. basta tener aquellos segmentos. ya que es más fácil encontrar trozos libres pequeños.base + d.

:Dirección máxima. En síntesis. :Programa. que es un fenómeno que presenta cuando se manejan bloques de longitud variable.limit) { Error("Tabla de segmento fuera de rango") } else { X ß Tabla_Segmento[s] If (d > X.length) { Error("Segmento fuera de rango") } else { If (x. es conveniente tener presente que en el caso de la segmentación las particiones son variables y en el caso de la paginación las particiones son fijas. lo menos complejo es tener una sola partición Página 56 de 164 .Un descriptor de segmentos se compone de tres campos de atributos y tres campos de datos. dato ó descriptor compartido. donde : Index Type State Length base limit :Es el índice del descriptor dentro de la tabla de segmentos. donde p es el indicador de la página y d el desplazamiento en ella. ya que los segmentos se definen del tamaño que se requiera y que facilita la protección de la memoria. para la paginación se tiene: Direccion_Virtual ß (p. las ventajas de la segmentación es que evita la fragmentación interna. :Largo del segmento. :En memoria principal. El almacenamiento real es (*) particionado en marcos del mismo tamaño que las páginas. :Dirección. De este modo una página puede y debe ser almacenada sólo en un marco y viceversa. En forma análoga al mecanismo de direccionamiento de segmentos.state = accesible) { // en memoria principal Dir ß X. El mecanismo de traducción de una dirección sería: If (s > Tabla_Segmento[s].base + d } else { SegFault() // Intercambiar de memoria secundaria a principal } } } Este algoritmo debe ser invocado por el hardware para cada operación fetch (buscar) de una instrucción y también por cada referencia a una palabra de memoria. la principal desventaja es que conduce a fragmentación externa. según el esquema más sencillo de administración de memoria. Por otra parte. Así. También.d). (*) Entiéndase como partición a las secciones en las que puede ser fraccionada la memoria principal. Paginación Cuando los trozos de memoria son de tamaño fijo se denominan páginas. secundaria o en intercambio.

En el ejemplo son de 4K.Se utiliza también una tabla de páginas en la cual serán almacenadas todas las referencias a la página. marcos de página. entonces el sistema operativo toma el control. Dado que la memoria virtual tiene 16 páginas y la memoria real 8 marcos de página. indicando que está página ya no reside en la memoria real y en la entrada 8 quedará un 1 indicando que está página reside en tal marco. De esta forma la dirección virtual 32780. será traducida como 4108 real. En este caso se presenta una interrupción denominada defecto o fallo de página. carga la página virtual 8 en la dirección física 4K y hará dos modificaciones a la tabla de página. Las páginas y los marcos siempre tienen el mismo tamaño. Por ejemplo. Es por ello que 8 entradas en la tabla de páginas están marcadas con x. el sistema operativo decidió liberar el marco 1. que está a 20 bytes del inicio de la página virtual 5 (20480-24575) está asociada a la dirección real 12288+20=12308. Página 57 de 164 . pero sin el campo de longitud de página. Suponga además que la máquina sólo tiene 32K de memoria real. el descriptor de páginas es similar al descriptor de segmentos. Las transferencias entre la memoria real y el disco son siempre unidades de página. modifica las entradas correspondientes en la tabla de páginas y reinicia el proceso. En la entrada 1 quedará una x.base + d } else { PageFault() // Intercambiar de memoria secundaria a principal } } Como ejemplo. indicando que ellas no residen en la memoria real. Si se supone que es el hardware el encargado de verificar que una dirección base sea válida. el algoritmo para la traducción de una dirección por paginación del sistema operativo es: X ß Tabla_Pagina[p] If (d > Tamaño_Marco_Página) { Error("Desplazamiento fuera de rango de página") } else { If (x. El espacio de direcciones virtuales se divide en unidades denominadas páginas y las unidades correspondientes en memoria real. La MMU ve que esta dirección cae en la página 0 (04095). Si en el ejemplo. Si se referencia la dirección virtual 32780 que está en la página 8 (12 bytes abajo de 32768). lo que indica que ella no reside en la memoria real.state = accesible) { // en memoria principal Dir ß X. si el programa referencia la dirección 0 virtual. esta se envía a la MMU. la cual de acuerdo a la tabla de páginas está en el marco 2 (8192-12287). Así mismo. La dirección virtual 21500. Después trae la página correspondiente a la dirección referenciada y la ubica en el marco liberado. la que atiende. elige un marco de página y lo "baja" de la memoria real. suponga que un computador puede generar direcciones virtuales de 16 bits que van desde 0 hasta 640K. Transforma entonces la dirección en 8192 y manda esta al bus. en un momento dado sólo se podrán albergar en ésta última 8 páginas. la entrada correspondiente está marcada con x. Como se ve en el gráfico. La memoria no sabe de la existencia de la MMU y sólo ve una solicitud de acceso a la posición 8192.

son registros de almacenamiento implementados en hardware. Cíclico. • • • • La dirección del marco de página. Ver algoritmos de reemplazo. se va buscando cíclicamente en la tabla de marcos. escribir (w) o ejecutar (x). Página 58 de 164 . entonces la página se escribirá sobre el disco. indica si la página reside en la memoria real o no. El método de paginación permite tener páginas compartidas entre varios programas. Se utiliza cuando la página es seleccionada para salir de la memoria real. el sistema (*) operativo busca la información en el hardware y no una copia antigua en el caché . lo cual es utilizado para determinar si el contenido de una página almacenada en un marco debe ser copiado a memoria secundaria o no. Las páginas no referenciadas son unas muy buenas candidatas a salir.En un régimen permanente. el cual consiste en ir trayendo páginas. a memoria principal y cada vez que sea requerido un espacio se desaloja el marco siguiente al último utilizado. Cuando es necesario traer alguna página a memoria principal selecciona aleatoriamente un marco y lo desaloja para dejar el espacio requerido. Si el bit está encendido. Es un método bastante simple. Esta información es almacenada en una tabla de marcos y los distintos procesos (esquemas) de decisión de paginación se llaman algoritmos de reemplazo. FIFO. no necesariamente en orden. Es el método más sencillo. supone que es imposible adivinar que página será requerida en el futuro. asociada a cada marco. Estos generalmente se conocen como rwx y dependiendo de si están encendidos. El bit de caching. la página se podrá leer (r). En caso contrario sólo se desecha pues la imagen en disco es igual a la existente en la memoria real. se producirá un defecto de página. Estos últimos. Resulta conveniente tener información. bien s para lectura o escritura. en la que se van anotando las páginas a • • (*) La memoria caché agiliza el proceso y amortigua la diferencia de velocidad entre la memoria principal y los registros máquina. Normalmente también existe un bit que indica si una determinada página ha sido modificada o no. A la derecha se muestra la entrada típica en una tabla de páginas. Supone que la probabilidad de la utilización de una determinada página es una función decreciente en el tiempo. siendo su velocidad de acceso elevada y su tamaño muy limitado. Es decir. El bit de referencia como su nombre lo indica se enciende cada vez que la página es referenciada. • • Existe un gran número de algoritmos de reemplazo de entre los cuales se hará mención a cuatro: • Randómico. El bit de modificación se enciende cada que la página sufre algún cambio en memoria real. Si la página no está presente (0) y se referencia. Los bits de protección indican el tipo de acceso permitido. cuando se produzca una operación de E/S. Este método supone que el tiempo de utilización de una página es muy cercano al tiempo promedio de utilización. Requiere de una cola FIFO. El bit presente/ausente. cuando se presenta un defecto de página. luego será necesario ir desalojando marcos no utilizados para almacenar allí las páginas faltantes de otro proceso que sea demandado. para ea seleccionar la página a salir cuando se presenta un defecto de página. guarda la dirección en memoria real donde se encuentra la página. Si esté esta desactivado. que permita decidir que página desalojar y cual traer a memoria principal. Sirve para apoyar al sistema operativo. todos los marcos van a tender a estar ocupados. de modo que una página debe esperar todo un ciclo para ser desalojada.

Si el número de marcos asignados a un proceso de baja prioridad desciende por debajo del número mínimo requerido p la arquitectura del computador. Se dice que un proceso se encuentra en fase de hiperpaginación cuando emplea más tiempo paginando que procesando (ejecutando). Por consiguiente vuelve a efectuar un pagefoult una y otra vez. Luego con la tercera componente de la dirección. Página 59 de 164 . Así mismo. cuando se requiere un marco de página. encuentra la dirección real. Por lo tanto se desalojan las de mayor intervalo de tiempo transcurrido (las que menos se han usado). (*) Así como el concepto de paginación. Cuando una dirección virtual llega a la MMU. liberando todos los marcos asignados. De este modo. La suposición es que la probabilidad de que una página sea utilizada depende del intervalo de tiempo transcurrido desde su última utilización. se deben descargar sus páginas restantes. se retira la página que lleva más tiempo en memoria. puede aumentarse a tres o más. Aquellas que no sean necesarias no deben mantenerse allí.medida que van siendo traídas a memoria principal. el cual consiste en adivinar que página del almacenamiento secundario será requerida en el futuro próximo y cuando la CPU disponga de un quantum de tiempo ocioso calcular que página es posible desalojar y. pero ello implica que la complejidad del sistema se eleve de manera considerable. El más simple de ellos es paginar sólo cuando sea necesario. el desplazamiento d. Allí ubica la dirección donde se encuentra la dirección de inicio de otra página en la tabla de páginas de nivel y con la componente p2 de la dirección encuentra la dirección del marco que contiene la página respectiva. esta extrae primero el componente p1 y lo utiliza como índice en la tabla de páginas de nivel 1. El ideal de todos estos on métodos es nunca llegar a desalojar una página que será referenciada muy próximamente. La hiperpaginación puede ser entendida como (1) una estrategia de paginación de múltiples niveles o como (2) el intercambio excesivo de páginas entre memoria real y memoria virtual. A esta altísima actividad de paginación se le conoce como hiperpaginación. Una forma más eficiente y más compleja es utilizar algún medio de paginación anticipada. entonces. La idea central de las tablas de páginas de varios niveles consiste en evitar mantener todas las tablas en la memoria todo el tiempo. puede ser entendido como (1) una estrategia de administración de memoria o como (2) el proceso de intercambio de páginas desde memoria virtual a memoria real. La dirección virtual ahora se compone de tres campos: dos direcciones de páginas y un desplazamiento. existen técnicas de paginación para realizar el intercambio desde memoria secundaria a principal. • LRU (Last Recently Used). se debe suspender la ejecución de ese proceso. El método del último recientemente usado. or Luego. A menor intervalo mayor probabilidad de seguir utilizando la página. provocará pagefoults frecuentes. sin embargo como todas sus páginas están activas. realizar la paginación anticipada. dependiendo del contexto. por lo que no se acostumbra más de tres niveles. Paginación De M últi ples Niveles Para evitar el problema de tener unas tablas de páginas muy grandes en la memoria todo el tiempo. se basa en el hecho de que algunas páginas son mucho más utilizadas que otras. análogamente existe la hipersegmentación. Los métodos mencionados anteriormente s sólo de desalojo de marcos. deberá descargar una página que muy probablemente se volverá utilizar dentro de un breve lapso de tiempo. algunos sistemas utilizan tablas con varios niveles o (*) hiperpaginación . Si un proceso no posee suficientes marcos asignados. El sistema de dos tablas.

Segmentación/Paginación
En este método las direcciones virtuales se componen de tres partes: un segmento, una página y un desplazamiento (offset). La primera sirve para encontrar la entrada en la tabla de segmentos en donde se encuentra la dirección donde comienza la página, con la segunda componente se encuentra la entrada correspondiente a la p ágina y allí la dirección del marco de página que junto con el desplazamiento dan la dirección real. Una ventaja de este método es que permite mantener una estructura de segmentación sin conducir a fragmentación externa. Además permite mantener las tablas de páginas en memoria auxiliar.

Fragmenta ción
Tanto para el caso de la paginación, para el de segmentación y en general en todos los sistemas de cómputo (sea cual sea la organización de su almacenamiento), se presenta la fragmentación del almacenamiento. En los sistemas de multiprogramación y particiones fijas, la fragmentación se presenta porque los trabajos de los usuarios (páginas) no llenan por completo las particiones designadas (marcos) o porque una partición se queda sin utilizar por ser demasiado pequeña para almacenar una tarea en espera. La fragmentación se presenta en todas las formas de almacenamiento y a todo nivel de información. En el caso de la paginación, cuanto menor sea el tamaño de las páginas, más páginas y marcos de página habrá y mayores tendrán que ser las tablas de marcos. El desperdicio de almacenamiento primario debido a tablas excesivamente grandes se denomina fragmentación de tablas. Para el caso de particiones variables y fijas, también existe una forma de fragmentación de la información en el sentido que, a pesar de estar ocupadas todas las particiones, la información correspondiente a una misma tarea se encuentra dispersa en una serie de particiones no contiguas y nisiquiera en un orden ascendente o descendente.

Fragmentación por perdida de espacios

Fragmentación por división de código de procesos

Los sistemas operativos modernos y las nuevas técnicas de programación y generación de códigos (por ejemplo la programación orientada al objeto) minimizan el nivel de fragmentación de la información de tal forma que, al menos para el caso de los códigos de ejecución de programas, se puede afirmar que la fragmentación es casi nula.

Estrategias De Local i dad
El concepto de localidad es fundamental en la mayor parte de las estrategias administrativas de memoria, e indica que los procesos tienden a hacer referencia a la memoria en patrones no uniformes y altamente localizados.

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

(*)

Si en La Serena se sabe que son las 3:00 P.M. y está lloviendo intensamente, entonces es muy probable, aunque no seguro, que el clima haya estado así hace 15 minutos y en 15 minutos más continúe igual. Página 60 de 164

La localidad es una propiedad empírica que se observa, en los sistemas operativos, particularmente en el área de la administración del almacenamiento. Nunca esta garantizada, pero generalmente es altamente probable. De hecho, si se toma en consideración la forma en que se escriben los programas y se organizan los datos y códigos, el concepto de localidad es bastante razonable en los sistemas computacionales. Tal vez una de las consecuencias más significativas de la localidad de las referencias a memoria es que un programa puede ejecutarse más rápida y eficientemente mientras su subconjunto de páginas favorecido se encuentre en el almacenamiento primario. Se han realizado muchísimos estudios que ilustran el concepto de localidad. Gracias a estos estudios nació la teoría de conjunto de trabajo en el comportamiento de un programa.
Localidad temporal • • • • Ciclos, Subrutinas, Pilas, Variables de cuenta y totalización. Localidad espacial • Recorridos de arreglos, • Ejecución secuencial de código, • Tendencia de los programadores a ubicar, próximas unas de otras, las definiciones de variables afines

Conjunto De Trabajo
En términos informales, un conjunto de trabajo es un conjunto de páginas a las que se hace referencia activamente en un proceso. Se ha afirmado que para ejecutar en forma eficiente un programa se debe mantener en memoria principal su conjunto de trabajo; de otra forma, podría surgir una situación de hiperpaginación, debido a las frecuentes solicitudes de páginas contenidas en memoria virtual. Lamentablemente, este tipo de deducciones a menudo dirigen el accionar hacia políticas de administración de memoria virtual en exceso conservadoras, lo cual limita en última instancia el número real de procesos que pueden disponer de marcos para compartir el almacenamiento primario. Una política administrativa del almacenamiento virtual mediante conjuntos de trabajo intenta mantener en memoria principal todos los conjuntos de trabajo de cada uno de los procesos activos. La decisión de añadir o no un nuevo proceso al conjunto de procesos activos se basa en el hecho de si existe suficiente espacio de almacenamiento principal como para contener todo el conjunto de trabajo del nuevo proceso. Debido a que, en la situación inicial, es imposible determinar el tamaño exacto del conjunto de trabajo de un proceso determinado, el cálculo de dimensiones de los grupos de trabajo, generalmente, se realiza a través de heurísticas. Se define el conjunto de trabajo como una función sobre un par ordenado: W(t,w), donde W representa el número de páginas a las que el proceso ha hecho referencia en el intervalo de tiempo t-w. El tiempo de proceso es el tiempo durante el cual un proceso tiene la CPU. A la variable w se le conoce como tamaño de ventana del conjunto de trabajo. La determinación de la magnitud adecuada de w es fundamental para la adecuada operación de alguna estrategia de administración del almacenamiento con conjuntos de trabajo. Es claro que a medida que el tamaño de w aumenta también lo hace el conjunto de trabajo del proceso asociado. Cuando el sistema operativo destruye proporcionalmente la memoria significa que recoge la información de los conjuntos de trabajos y asigna memoria según la demanda en forma proporcional a las necesidades de cada aplicación. Cuando la distribución de memoria se efectúa en partes iguales sin importar las necesidades reales de cada aplicación, se haba de una distribución equitativa.

(**)

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

Los conjuntos de trabajo varían durante el transcurso de ejecución de un proceso. En ocasiones se añaden o quitan páginas, a veces el cambio es drástico y el proceso requiere de un cambio total del grupo de trabajo. Así, las suposiciones acerca del contenido y tamaño del grupo de trabajo inicial no son necesariamente válidas para la posteridad del proceso. Esta situación complica un poco las cosas para la política de administración con conjuntos de trabajo. En la figura anterior, Tr representa una transacción de páginas y Ci representa un conjunto de trabajo en algún momento. Primero, a medida que el proceso solicita la paginación de su conjunto de trabajo inicial recibe gradualmente suficiente almacenamiento para contener su conjunto de trabajo. En ese instante y por algún tiempo su utilización del almacenamiento primario se estabiliza mientras hace sólo referencias a las páginas activas de su conjunto de trabajo. Después de un tiempo, el proceso realizará una transición al siguiente grupo de trabajo, como lo muestra la cercha que une el primer grupo de trabajo y el segundo. Inicialmente, la curva sobrepasa el número de páginas del primer conjunto de trabajo debido a que el proceso demanda una paginación rápida de su nuevo conjunto de trabajo. El sistema no tiene forma de determinar si se trata de una paginación que agrega más páginas al conjunto de trabajo previo o si se esta renovando por completo el conjunto de trabajo. Cada vez que ocurre una transacción entre conjuntos de trabajo, la curva asciende y desciende haciendo notar la forma en que el sistema se adapta a la transición.

Algori tmos De Reempla zo
Existen muchos y variados algoritmos para el reemplazo de páginas. Quizá cada sistema operativo cuente con su propio esquema de reemplazo. En general, se requiere de la selección de un algoritmo de reemplazo en particular el que presente la menor tasa de fallas de página. Se evalúa un algoritmo ejecutándolo para una serie determinada de referencias a memoria y calculando el número de fallas de página. A la serie de referencias a memoria se le Ilama serie de referencias. Se pueden generar artificialmente las series de referencias (utilizando, por ejemplo, un generador de números aleatorios) o rastreando un sistema y anotando la dirección de cada referencia a memoria. La segunda opción produce un gran número de datos (alrededor de un millón de direcciones por segundo). Para reducir el número de datos, se observan dos aspectos. En primer lugar, para un tamaño de página dado se necesita considerar sólo el número de página, no toda la dirección. Segundo, si se tiene una referencia a una página p, entonces ninguna referencia a la página p que se presente inmediatamente después provocará una falla de página; la página p ya se encontrará en memoria después de la primera referencia y las referencias siguientes no provocarán fallas. Por ejemplo, si se rastrease un proceso determinado, se puede anotar la siguiente secuencia de direcciones: 0100, 0104, 0432, 0101, 0101, 0610, 0612, 0102, 0102, 0103, 0103, 0104, 0104, 0101, 0101, 0609, 0611, 0102, 0102, 0105, 0103,

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

Para determinar el número de fallas de página para una serie de referencias y un algoritmo de reemplazo de páginas concreto, se necesita conocer también el número de marcos de página disponibles. Evidentemente, si aumenta el número de marcos, se reducirá el número de fallas de página. Por ejemplo, para la serie de referencias antes mencionada, si se dispusiese de tres o más marcos, se tendrían sólo tres fallas, una para la primera referencia a cada página. Por otra parte, si hubiera sólo un marco disponible, se tendría un reemplazo con cada referencia, generando 11 fallas. Por lo general, se espera una curva decreciente. Al aumentar el número de marcos, el número de fallas de página se reduce hasta un nivel mínimo. Además de los algoritmos de reemplazo mencionados anteriormente en este texto, se pueden destacar:

Página 62 de 164

Por supuesto. conforme avanza. el número puede reducirse a cero. A intervalos regulares (supóngase cada 100 milisegundos). En una tabla en memoria se pude conservar un byte de ocho bits para cada página.Algoritmo De Bits Adicionales De Referencia Se puede obtener información adicional de la ordenación anotando los bits de referencia a intervalos regulares. Cuando a una página se le brinda una segunda oportunidad. El sistema operativo desplaza el bit de referencia de cada página al bit de orden superior de su byte de ocho bits. obsérvese que no se garantiza que los números sean únicos. se da a la página una segunda oportunidad y se pasa a seleccionar la siguiente página en el orden FIFO. pero después ya no se utiliza. una página que se utiliza por lo menos una vez cada periodo tendría un valor 11111111 en su registro de desplazamiento. Cuando se requiere un marco. el reemplazo de segunda oportunidad se convierte en un reemplazo FIFO. y esa cantidad se seleccionaría para acelerar las actualizaciones todo lo posible. Una solución consiste en desplazar los recuentos un bit a la derecha a intervalos regulares. cuando todos los bits están a 1. el número de bits históricos puede variar. si el bit de referencia es 1. desplazando los otros bits una posición a la derecha y descartando el bit de orden inferior. tiene un recuento alto y permanece en memoria aunque ya no se necesite. least frequently used) mantiene un contador del número de referencias que se han hecho para cada página. además. una interrupción del cronómetro transfiere el control al sistema operativo. Como se usó bastantes veces. dejando únicamente el bit de referencia. La razón para esta selección es que una página que se usa activamente debe tener un alto número de referencias. borra todos los bits de referencia antes de seleccionar la siguiente página para el reemplazo. Algoritmo De Segunda Oportunidad El algoritmo básico para el reemplazo de segunda oportunidad es un algoritmo FIFO. Esta versión se denomina algoritmo de reemplazo de páginas de segunda oportunidad. nunca será reemplazada. si una página se usa con la frecuencia suficiente para mantener en 1 su bit de referencia. Se puede reemplazar todas las páginas con el menor valor o utilizar una selección FIFO entre ellas. cuando se selecciona una página. Algoritmo LFU Un algoritmo de reemplazo de página menos frecuentemente usada (LFU. se borra su bit de referencia y se establece como su instante de Ilegada el momento actual. Una página con un valor 11000100 en su registro histórico ha sido utilizada más recientemente que una con valor 01110111. Página 63 de 164 . De esta manera. el apuntador recorre toda la cola. Si el registro de desplazamiento contiene 00000000. Una forma de implantar el algoritmo de segunda oportunidad (en ocasiones mencionado como reloj) consiste en usar una cola circular. se reemplaza la página. Estos registros de desplazamiento de ocho bits contienen la historia de la utilización de la página durante los últimos ocho periodos. una página a la que se le brinda una segunda oportunidad no será reemplazada hasta que todas las demás páginas se reemplacen (o se les otorgue una segunda oportunidad). Si de interpretan estos bytes de ocho bits como enteros sin signo. Este algoritmo tiene problemas cuando una página se usa mucho en la fase inicial de un proceso. si es igual a 0. dando a cada página una segunda oportunidad. entonces la página no ha sido utilizada en ocho periodos. Si todos los bits están activos. En el peor de los casos. la página con el menor número es la página menos recientemente utilizada y puede reemplazarse. borra los bits de referencia. En el caso extremo. Sin embargo. No obstante. se examina su bit de referencia. Un apuntador indica cuál es la siguiente página que se reemplazará. Además. formando un recuento promedio de utilización que disminuye exponencialmente. el apuntador avanza hasta encontrar una página con bit de referencia a 0. Sin embargo. Se reemplaza la página con el menor recuento.

Usada pero limpia (no modificada). Si se solicita un espacio de tamaño típico (de los más frecuentes) se busca primero en tales listas. ya que un segmento liberado. intenta encontrar un espacio lo más cercano al tamaño necesario. Se supone que el administrador de memoria conoce la cantidad de memoria a asignar. pueden limitarse a inspeccionar la lista de espacios y no la de los procesos. Algoritmos Adicionales Existen muchos otros algoritmos que pueden usarse para el reemplazo de páginas. no es común ni el reemplazo MFU ni el LFU. Se reemplaza la página en la clase inferior no vacía. que se basa en el argumento de que la página con el menor recuento probablemente acaba de llegar y aún tiene que usarse. Por ejemplo. Sin embargo el mantenimiento de las listas también es costoso en tiempo. se adiciona a una de ellas.1) (1. Igual sucede si se libera. lo que facilita su búsqueda. El espacio se divide entonces en dos partes. de forma que el espacio resultante sea lo suficientemente grande para ser útil. es bastante costosa y estos no se aproximan mucho al reemplazo óptimo. Otro algoritmo de asignación es el de ajuste rápido. Este algoritmo es rápido. se pueden utilizar diversos algoritmos para asignar la memoria para un proceso de reciente creación.1) : : : : Ni usada ni modificada. Estos cuatro algoritmos pueden agilizarse si se tienen dos listas independientes.Algoritmo MFU Otro algoritmo para el reemplazo de páginas es el reemplazo más frecuentemente usado (MFU. puesto que busca lo menos posible. Usada y modificada. Entre ellos están: First Fit (Primero en Ajustarse): El administrador de memoria revisa toda la lista de segmentos hasta encontrar un espacio lo suficientemente grande. comienza a buscar desde el punto donde se detuvo. Esto facilita la administración de la memoria puesto que se van a tener espacios libres de tamaños comunes en una lista. se tienen las cuatro clases siguientes: (0. una para los procesos y otra para los espacios. pero modificada. La siguiente vez que se le llama. La implantación de estos algoritmos. debe ser liberado de la lista de procesos y adicionado a la lista de espacios libes. el aumentar la velocidad implica que la complejidad se aumenta y la velocidad al liberar la memoria se aumenta. cada página se encuentra en una de estas cuatro clases. Sin embargo. una para el proceso y otro para la memoria no utilizada. Página 64 de 164 . Como se podría esperar. De esta forma todos ellos. se utiliza el reemplazo FIFO o se elige al azar una entre ellas. El peor ajuste: Toma siempre el espacio más grande disponible.0) (1. Siguiente en Ajustarse : Funciona de la misma forma que el anterior.0) (0. si se considera tanto el bit de referencia como el bit de modificación como un par ordenado. en lugar de comenzar a buscar siempre desde el inicio. En lugar de asignar un espacio grande. Si hay varias páginas en la clase inferior. Best Fit (Mejor en Ajustarse): Busca en toda la lista y toma el mínimo espacio adecuado. No usada (recientemente). most frequently used). Cuando es necesario un reemplazo de página. con la diferencia que mantiene un registro del lugar dónde se encuentra un espacio adecuado. que consiste en tener listas independientes para algunos de los tamaños que se solicitan con mayor frecuencia. Algoritmos Basados En Ajuste Cuando los procesos y los espacios se mantienen en una lista ordenada por direcciones.

(*) Un proceso asincrónico requiere de sincronización y cooperación con otros procesos. se hará el fantasioso supuesto de que el sistema nunca ejecutará la instrucción Get_Bloque() cuando la pila S esté vacía. En estricto rigor. Para los procesos concurrentes dependientes deben crearse mecanismos de comunicación y coordinación entre ellos. en la realidad un simple incremento de contador se ejecuta en tres pasos.CAP ÍT UL O VI CONCURRENCIA Para fines prácticos. (dt=0). se supondrá un sistema que administre bloques de memoria y una pila para anotar las direcciones de los bloques de memoria. los términos paralelo y concurrente. o bien. el elemento del tope de la pila es retirado. El acceso a esta pila se hace mediante las operaciones: dirección ← Get_Bloque(). Página 65 de 164 . desde el punto de vista computacional. El sistema operativo mantiene la pista de los bloques de memoria libres en una pila S. Se supondrá la existencia de tres programas que comparten el uso de la memoria principal bajo e l control del sistema operativo (ver figura). Cuando un bloque se libera es colocado en la pila S. Los procesos no concurrentes no presentan problemas de coordinación. Por otra parte. son equivalentes. Dos (o más) procesos son paralelos si existen un mismo instante de tiempo. es conveniente considerar a los procesos como un conjunto de instrucciones. Por ejemplo. Para efectos de análisis. Generalizando se puede decir que cuando hay multiprogramación hay una alta probabilidad de tener concurrencia. pueden (*) ser asíncronos . Los procesos concurrentes pueden funcionar en total independencia. para pedir un dato de memoria (liberar memoria). se supondrá que las instrucciones son entes indivisibles. lo que implica que deben ser ejecutados en procesadores separados (para mayor información véase capítulo VIII). Por otra parte. INSTRUCCIÓN X← X+1 PASOS Load X Add 1 Store X Del mismo modo. Por ejemplo. se dice que los procesos son paralelos si existen en un mismo instante t. así como P2 y P3 son concurrentes. Los procesos c oncurrentes pueden ser independientes si no hay interacción directa entre ellos o dependientes si la hay. aún cuando la instrucción es sólo una. Gráficamente. en cambio P3 y P1 no lo son. se dice que los procesos son concurrentes si existen en un mismo intervalo de tiempo (dt>0). Set_Bloque(dirección). Cuando un bloque libre es requerido. pues se ejecutan en períodos diferentes de tiempo y por lo general no hay comunicación entre ellos. se dice que dos (o más) procesos son concurrentes si están activos simultáneamente. Además. para poner un dato en memoria (pedir memoria). se tiene: Los procesos P1 y P2.

escribiendo en un archivo. no se permite que ningún otro proceso se ejecute en su sección. podría ocurrir la siguiente ejecución de instrucciones: t0 t1 t2 t3 : : : : Tope ← Tope + 1 Dirección ← Pila[Tope] Tope ← Tope . llamado sección crítica. Las secciones críticas pueden ser fácilmente restringidas asociándoles un nombre único. A tales bloques de ejecución indivisible se conocen con el nombre de secciones críticas. Cuando un proceso está accesando datos compartidos. la ejecución de las secciones críticas de los procesos es mutuamente excluyente en el tiempo. y la modificación adecuada de estas operaciones será vista a continuación. cuando un proceso se ejecuta en su sección crítica. entonces sólo aquellos procesos que no se están ejecutando en su sección restante pueden participar en la decisión de cuál será el siguiente ítem que ingresará en la sección crítica (y esta selección no puede postergarse indefinidamente). etc.. la sección de código que implanta esta solicitud es la sección de entrada. se tiene que: Página 66 de 164 .1 Return(Dirección) } Set_Bloque(dirección) { Tope ← Tope + 1 Pila[Tope] ← Dirección } Si se sabe que ambas operaciones se ejecutan concurrentemente y si se imagina que las rutinas pueden dividirse y entremezclarse. El problema de la sección crítica consiste en diseñar un protocolo que los procesos puedan usar para cooperar. en el cual el proceso puede estar modificando variables comunes. Secciones Crít i cas Considere un sistema compuesto por n procesos {P0. A la sección crítica puede seguir una sección de salida y el código que queda es la sección restante. Por ejemplo si el nombre de una sección crítica fuese Nom_Bloque. se dice que el proceso se encuentra en una sección crítica. Por lo tanto. Si ningún proceso se está ejecutando en su sección crítica y hay otros procesos que desean entrar en las suyas.Se definen las rutinas para la administración de memoria: Get_Bloque() { Dirección ← Pila[Tope] Tope ← Tope . Por lo tanto debe hallarse la forma de que las operaciones puedan ser ejecutadas en instantes de tiempo no entremezclados y en forma estrictamente secuencial. actualizando una tabla. un programa no debe bloquearse dentro de una sección crítica y se deben evitar los ciclos infinitos. De esta manera. 2. Una solución para el problema de la sección crítica debe cumplir los tres requisitos siguientes: 1. P1. como si se tratase de instrucciones indivisibles. La característica importante del sistema es que.1 Pila[Tope] ← Dirección se obtiene como resultado que la operación Get_Bloque() recibe una dirección inválida y la operación Set_Bloque() destruye una dirección buena.. Debe haber un límite en el número de veces que se permite que los demás procesos entren en su sección crítica después de que un proceso haya efectuado una solicitud para entrar en la suya y antes de que se conceda esa solicitud. no puede hacerse ninguna suposición acerca de la velocidad relativa de los n procesos. Cada proceso tiene un segmento de código. Es importante no olvidar que aunque se supone que cada proceso se ejecuta a una velocidad no nula. las secciones críticas tienen que ejecutarse lo más rápidamente posible. Espera limitada. Pn-1}.. . 3. Cada proceso debe solicitar permiso para entrar en su sección crítica. Exclusión mutua. Si un proceso P1 se está ejecutando en su sección crítica. Progreso. entonces ningún otro proceso se puede estar ejecutando en la suya.

Antes de acceder al recurso. Ambos procesos pueden leer los dos indicadores. Dirección) { When (Num_Bloque) { Tope ← Tope + 1 Pila[Tope] ← Dirección } } La forma correcta de implementar el mecanismo de seguridad administrativo de las secciones críticas puede realizarse a través de diversos mecanismos: Operaciones Lock/Unlock. Esta acción se conoce como interbloqueo (deadlock ). Los protocolos son la parte de código dedicada a asegurar que la sección crítica se ejecuta de forma exclusiva. se tiene que la estructura de programación sería la señalado a la derecha: Lock(Llave[S]) { < Sección Crítica > } Unlock(Llave[S]) Ahora. en caso contrario el acceso es denegado. etc. De esta forma las primitivas Lock() y Unlock() quedarían como: Lock(Llave[S]) { Repeat V ← Llave[S] Until ( V = 1) Llave[S] ← 0 } Unlock(Llave[S]) { Llave[S] ← 1 } Las secciones críticas se pueden agrupar en clases. Esto evita el problema de que los dos procesos actualicen de forma simultánea el mismo indicador.1 Return(Dirección) } } Set_Bloque(Num_Bloque . ambos verían los indicadores contrarios como ocupados y permanecerían a la espera de que el recurso quede liberado. operaciones P y V .Get_Bloque(Num_Bloque) { When (Num_Bloque) { Dirección ← Pila[Tope] Tope ← Tope . Operaciones Lock/Unlock La operación Lock tiene por objetivo el bloquear la entrada a cierta área a los demás procesos. Se puede intentar resolver el problema haciendo que el proceso Página 67 de 164 . Asumiendo que si S es asociado a una celda de memoria Llave[S]. operaciones Wait/Signal. Si ambos procesos realizasen la llamada al bloqueo de forma simultánea. Resulta adecuado que tanto la sección crítica como los protocolos sean lo más breves posible. Siendo S el nombre de una región crítica que solamente puede ser accesada por un proceso a la vez. siendo mutuamente exclusivas las secciones críticas de cada una. si Llave[S]=1 entonces el acceso a dicha sección está permitido. se deben implementar protocolos de software que impidan o bloqueen el acceso a una sección crítica mientras está siendo utilizada por un proceso. Para evitar que se entrelace el uso del recurso por ambos procesos. Supóngase que el acceso de memoria se hace en forma indivisible. Para conseguir dicha exclusión. pero sólo pueden modificar el que tienen asociado. Bloqueo Mediante El Uso De Variables Compartidas Supóngase que se asocia a cada recurso que se comparte un flag que podrá tomas dos valores: • • True: Indicará que el recurso está siendo utilizado Fase: Indicará que el recurso está disponible La ejecución concurrente de los procesos se iniciará mediante la estructura cobegin/coend. un proceso debe activar su indicador y comprobar que el otro no tiene su indicador activado. la operación Unlock anula el efecto de Lock. se asocia un indicador a cada uno de los procesos.

2.aß(x+y) bß(z+1) c ß ( a . A nivel de lenguajes de compilador de alto nivel se utiliza PARBEGIN para indicar el inicio de una secuencia de dos (o más) procesos que se ejecutarán concurrentemente y PAREND para indicar su término. esto es: Luego. la ejecución concurrente de procesos puede efectuarse en dos niveles: A nivel de lenguajes ensambladores se utiliza FORK (bifurcar) para crear exactamente dos procesos concurrentes a partir de sólo uno y JOIN (unir) para provocar la confluencia de exactamente dos procesos en uno solo. dado el siguiente segmento de código: 1. En estricto rigor. Otro posible problema sería que podría permitir que un proceso deje su sección crítica y vuelva a entrar mientras que el otro proceso desactiva su indicador en la sección de bloqueo. Los grafos no se pueden utilizar en programación. su implementación en ambos con ambas estructuras sería: Utilizando FORK y JOIN FORK L1 aß(x+y) GOTO L2 L1: b ß ( z + 1 ) L2: JOIN c ß ( a .3. Por ejemplo. Un arco de un nodo Si al nodo Sj significa que la sentencia Sj puede ejecutarse sólo cuando ha acabado Si. El que un proceso no pueda progresar porque se lo impida otro se denomina cierre (lockout o starvation).b) wß(c+1) Página 68 de 164 . siempre que no exista una completa sincronización entre los procesos. Esto permitiría que. se pueda proseguir.b) wß(c+1) Utilizando PARBEGIN y PAREND PARGEGIN aß(x+y) bß(z+1) PAREND c ß ( a . Gráficamente.4. en caso de interbloqueo.desactive su propio indicador durante la fase de bloqueo siempre que encuentre que el indicador del otro proceso está activado. Sincronización De Ejecución Un Grafo de Precedencia es un grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.b) wß(c+1) Es posible observar que las líneas N° 1 y N° 2 son independientes y por lo tanto es posible su ejecución simultánea. por lo tanto se requieren otras herramientas: La ejecución concurrente de los procesos se iniciará mediante la estructura cobegin/coend (también conocida como parbegin/parend).

Página 69 de 164 . var flag1. flag2.2). turno := su_turno. pero sólo uno de los valores permanecerá al escribirse sobre el otro. (* resto del proceso *) end end P2.Algoritmo de Peterson Se introduce una variable adicional (turno) que solamente resultará útil cuando se produzca un problema de petición simultánea de acceso a la región crítica (para mayor información véase monitores. su_turno: integer). flag1. cobegin P1. P2.1). end desbloqueo. process P2 begin loop bloqueo (flag2. procedure desbloqueo (var mi_flag: boolean). end end bloqueo. module Exclusion_Mutua_P. turno: integer. flag2 := false. El algoritmo permite resolver el problema de la exclusión mutua y garantiza que ambos procesos usarán de forma consecutiva el recurso. Si ambos procesos intentan entrar a la vez. página número 77). procedure bloqueo (var mi_flag. begin (* Exclusion_Mutua_P *) flag1 := false. (* Uso del recurso Sección Crítica *) desbloqueo (flag2). flag2: boolean. while su_flag and (turno = su_turno) do . su_flag: boolean. (* Uso del recurso Sección Crítica *) desbloqueo (flag1). begin mi_flag := true. coend end Exclusion_Mutua_P. el valor de turno se pondrá a 1 y 2. process P1 begin loop bloqueo (flag1. (* resto del proceso *) end end P1. begin mi_flag := false.

1). procedure bloqueo ( var mi_flag. Página 70 de 164 . coend end Exlusion_Mutua_D. while turno = su_turno do. module Exclusion_Mutua_D. turno := 1. mi_flag := true. flag2 := false.Algoritmo De Dekker La variable turno sirve ahora p ara establecer la prioridad relativa de los dos procesos (para mayor información véase monitores. process P2 begin loop bloqueo (flag2. end. 2). var flag1. cobegin P1. (* Uso del recurso Sección Crítica *) desbloqueo (flag2). end. begin mi_flag := true. (* resto del proceso *) end end P1. process P1 begin loop bloqueo (flag1. (* resto del proceso *) end end P2. P2. (* espera a que el otro acabe *) end. su_flag: boolean. su_turno: integer ). página número 77). flag2. turno: integer. begin turno := su_turno. fgal2. flag2: boolean. begin (* Exlusion_Mutua_P *) flag1 := false. su_turno: integer ). while su_flag do (* otro proceso en la sección crítica *) if turno = su_turno then mi_flag := false. procedure desbloqueo ( var mi_flag: boolean. end bloqueo. (* Uso del recurso Sección Crítica *) desbloqueo (flag1). mi_flag := false end desbloqueo.

entonces la exclusión mutua puede ofrecerse de la siguiente manera: Se declara una variable booleana global cerradura y se le asigna un valor inicial falso. El problema de la sección crítica puede solucionarse simplemente evitando que ocurran interrupciones mientras se modifica una variable compartida. Como en el caso de la instrucción Evaluar_y_asignar. } La característica importante es que la instrucción se ejecuta atómicamente. por ejemplo: Evaluar_y_asignar (objetivo) { Evaluar_y_asignar ← objetivo. Además. repeat clave ← verdadero repeat Intercambiar(cerradura. objetivo ← verdadero. lo harán secuencialmente siguiendo algún orden arbitrario. Estas instrucciones especiales pueden usarse para resolver el problema de la sección crítica de una manera bastante sencilla. muchas máquinas ofrecen instrucciones de hardware especiales que permiten evaluar y modificar el contenido de una palabra o intercambiar atómicamente el contenido de dos palabras. Página 71 de 164 . el problema de administración se dificulta en forma evidente al considerar seriamente el problema de las secciones críticas. es decir. ya que la espera de acceso a un recurso siempre se realiza de forma ocupada: el proceso se queda permanentemente comprobando una variable. intercambia atómicamente el contenido de dos palabras y se define como se muestra a la derecha. la instrucción Intercambiar también se ejecuta atómicamente. Por esto. pero no son soluciones adecuadas. b) { temporal ← a a← b b ← temporal } Si la máquina permite la instrucción Intercambiar. Si la máquina permite la instrucción Evaluar_y_asignar. pero por desgracia no siempre es factible esta solución. de modo que si dos instrucciones Evaluar_y_asignar se ejecutan simultáneamente (cada una en una en la misma CPU). como una unidad ininterrumpible. entonces se puede implantar la exclusión mutua declarando una variable booleana cerradura con valor inicial falso.Los algoritmos de Peterson y Dekker se pueden extender al caso más general en el que haya n procesos en ejecución concurrente. cada proceso tiene una variable local booleana clave. Repeat while Evaluar-y-asignar(cerradura) do Esperar < Sección Crítica > cerradura ← falso < Sección Restante > Until (falso). Sincronización Con Instrucciones De Hardware Para el sistema operativo.clave) until (clave =falso) < Sección Crítica > cerradura ← falso < Sección Restante > until (falso) Obsérvese que estos algoritmos no satisfacen el requisito de la espera limitada. Intercambiar (a. La instrucción Intercambiar.

Sin embargo debería ser el sistema operativo el encargado de realizar esta determinación. se definen las operaciones: Wait(E). se observa que existen otras operaciones a través de las cuales es posible manejar secciones críticas. el cual indica que si un tren entra a la línea el semáforo cambia de color la luz para asegurar que ningún otro tren ingrese a la línea. ocurrencia del evento E. Si un proceso requiere de la ocurrencia de un evento para terminar su ejecución deberá esperar hasta que el evento ocurra. dos procesos. entonces el recurso está disponible. en espera de la ocurrencia del evento E. se tiene que las primitivas de proceso son: Proceso A { Entrada[A] ← 1 While (Entrada[A] = 1) { While (Prioridad <> A) { Entrada[A] ← 0 } Entrada[A] ← 1 <Instrucciones de Sección Crítica> Prioridad ← B Entrada[A] ← 0 } Proceso B { Entrada[B] ← 1 While (Entrada[B] = 1) { While (Prioridad <> B) { Entrada[B] ← 0 } Entrada[B] ← 1 <Instrucciones de Sección Crítica> Prioridad ← A Entrada[B] ← 0 } Por otro lado. éste debe estar vacío. Signal(E). W. supóngase un clásico ejemplo de productor y consumidor. Un semáforo binario es un indicador de condición S que registra si un recurso está disponible o no: • • Si S=1. Los semáforos pueden utilizarse para tratar el problema de la sección crítica para n procesos y también pueden usarse para resolver varios problemas de sincronización. Página 72 de 164 .Semáforos El sistema de protección a través de las operaciones Lock/Unlock. A modo de ejemplo. Si A y B son dos procesos concurrentes y se utiliza un indicador de prioridades que apunta al proceso siguiente cuando el actual termina. La operación P(S) produce que el sistema operativo bloquee la entrada a la sección S y permite la entrada sólo al proceso que ejecutó la operación. Para que el productor pueda producir un dato y almacenarlo en el buffer. además se dispone de un buffer sencillo con capacidad para almacenar un dato. entonces el recurso no está disponible. La operación V(S) desbloquea la sección para dejar el acceso disponible para cualquier proceso que lo solicite. Dijkastra llamó al argumento de una operación P y V semáforo en analogía con la luz de tráfico del ferrocarril. Si S=0. los procesos deciden quién entra a la sección crítica. al menos. Operaciones Wait/Signal Si existe un evento E compartido entre. Los semáforos se implementan con una cola de tareas o de condición a la cual se añaden los procesos que están en espera del recurso. cuando el proceso termina deberá señalar que el evento ya ha ocurrido y que está en espera de otro proceso que lo solicite. Las operaciones P y V fueron inventadas en 1965 por E. Dijkastra. Se tienen dos procesos un productor y un consumidor.

señal (Novacio) end end Productor. debe esperar hasta que éste esté lleno. AccesoBuffer. Bajo las condiciones anteriores. begin loop produce (x). las primitivas de control para los procesos productor. espera (AccesoBuffer). señal (AccesoBuffer). process Consumidor. espera (AccesBuffer) end Tomar (x). siendo diferentes las velocidades de producción y consumo. Página 73 de 164 . espera (NoLleno). if Vacio then señal (AccesoBuffer). espera (Novacio). var x: dato. Esto es: module Productor_Consumidor. espera (AccesoBuffer) end. consumidor y la inicialización son: Productor() { Repeat X ← Algún dato Wait(Buffer_Vacío) Buffer ← X Signal(Buffer_Lleno) Until ( término del proceso) } Consumidor() { Repeat Wait(Buffer_Lleno) X ←Buffer Signal(Buffer_Vacío) Utilización ← X Until ( término del proceso) } Inicializacion() { Signal(Buffer_Vacío) “Iniciar procesos Productor() y Consumidor() en paralelo. Poner (x). var x: dato. Nolleno. if Lleno then señal (AccessoBuffer). begin loop espera (AccesoBuffer).” } Una versión más detallada del problema del productor/consumidor debería contemplar que hay situaciones en las que existe un conjunto de procesos que producen información que otros procesos consumen. Novacio: semaforo. var BufferComun: buffer.análogamente el consumidor para poder extraer un dato del buffer. process Productor.

0). El acceso al buffer para tomar o poner un dato está protegido por las operaciones espera y señal del semáforo AccesoBuffer. Si la operación de espera se ejecuta cuando el semáforo tiene un valor menor que 1. Cada vez que se solicita y obtiene un recurso. v: integer) poner el valor del semáforo S al valor de V (n) numero_suspendidos := 0 Operación de espera espera (S) if S > 0 then S := S .1 else numero_suspendidos := numero_suspendidos + 1 suspender la tarea que hace la llamada y ponerla en la cola de tareas Operación de señal señal (S) if numero_suspendidos > 0 then numero_suspendidos := numero_suspendidos -1 pasar al estado preparado un proceso suspendido else S := S + 1 Si el semáforo se asocia a un código concurrente. inicializa (Novacio. señal (Nolleno). 1). Antes de ejecutar las operaciones espera (Nolleno) y espera (Novacio) se libera el semáforo AccesoBuffer para evitar que se bloquee el sistema. Operaciones primitivas sobre un semáforo generalizado: Operación de inicializar inicializa (S: SemaforoBinario. En la realidad un buffer puede contener N datos. el semáforo se decrementa y se incrementa cuando se libera uno de ellos. cobegin Productor. consume (x) end end Consumidor.señal (AccesoBuffer). inicializa (Nolleno. Consumidor. 1). Si además se dispone de más de un Página 74 de 164 . el proceso debe quedar en espera de que la ejecución de una operación señal libere alguno de los recursos. Buffers Múltiples En el ejemplo anterior se hizo el supuesto de la existencia de un buffer simple con capacidad para un solo elemento. begin inicializa (AccesoBuffer. su valor inicial restringe el número máximo de ejecuciones concurrentes que se pueden realizar. coend end Productor_Consumidor. el semáforo se inicializa con el número total de recursos disponibles (n) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero. Versión Más General De Los Semáforos Cuando hay que proteger un conjunto de recursos similares.

Si el proceso consumidor intenta acceder el buffer de salida y detecta que este está vacío. Lo cual es válido sólo si al menos uno de los buffer contiene al menos un dato almacenado. deberá marcarlo como buffer de salida y al de salida como buffer de entrada. 2. para que un mensaje sea completo debe incluir: 1. Las condiciones anteriores son válidas sólo si el orden de recepción no tiene importancia respecto del orden de emisión. Una identificación del proceso receptor. Lo cual es válido sólo si al menos uno de los buffer contiene al menos un espacio de almacenamiento disponible. De este modo. Página 75 de 164 . la responsabilidad de proporcionar la comunicación corresponde al propio sistema operativo. Los sistemas de memoria compartida están orientados básicamente a las aplicaciones y requieren que los procesos comunicantes compartan algunas variables. pero se simplifica la tarea de programación.buffer (por simplicidad supóngase sólo dos: uno de entrada y otro de salida) las condiciones de procesamiento serían: 1. la implantación física es bastante sencilla. 4. pero esta restricción dificulta la tarea de programación. debido a que es un concepto más intuitivo que comando o instrucción. se deberá esperar a que uno de los buffers este lleno y otro vacío y sólo entonces se realizará el intercambio de buffers de entrada y salida. Los mensajes que envía un proceso pueden ser de tamaño fijo o variable. La función de un sistema de mensajes es permitir que los procesos se comuniquen entre sí sin tener que recurrir a variables compartidas. deberá marcarlo como buffer de entrada y al de entrada como buffer de salida. el sistema operativo sólo tiene que ofrecer la memoria compartida. Una identificación del proceso emisor. 3. los mensajes de tamaño variable requieren una implantación física un tanto compleja. Es obvio que estos dos esquemas no son mutuamente exclusivos y que podrían utilizarse simultáneamente en un sistema operativo. Llámese mensaje a dichas preguntas y respuestas. El proceso consumidor debería esperar a que el buffer de salida tuviese al menos un dato almacenado. en un sentido más amplio. 3. Se espera que los procesos intercambien información por medio de estas variables compartidas. Entonces. Principalmente hay dos esquemas complementarios de comunicación: “sistemas de memoria compartida” y “sistemas de transmisión de mensajes”. 2. Un medio para la comunicación entre procesos facilita básicamente dos operaciones: enviar(mensaje) y recibir(mensaje). son ejemplos sencillos de un problema mayor: permitir la comunicación entre procesos que deseen cooperar. El método del sistema de mensajes permite que los procesos intercambien mensajes. la responsabilidad de proporcionar la comunicación recae sobre los programadores de aplicaciones. Si sólo puede enviarse mensajes de longitud fija. El proceso productor debería esperar a que el buffer de entrada tuviese espacio para almacenar al menos un dato. Si el proceso productor intenta almacenar un dato en el buffer de entrada y detecta que éste está lleno. Sin embargo. Por otra parte. En un sistema de memoria compartida. En caso de ser necesario recepcionar los datos en el mismo orden de transmisión. Técnicas De Comunicación Puede decirse que la transmisión de mensajes es controlada por un intercambio de preguntas y respuestas entre los procesos que se están comunicando. Una descripción de los datos involucrados o mensaje. Comunicación Entre Pro cesos Son muchos los problemas de sincronización que se presentan.

El sirviente está todo el tiempo disponible. Un sistema de correo permite. La conexión entre la facilidad y el usuario es establecida sólo temporalmente. 3. Página 76 de 164 . debiendo tener privilegios especiales para ser permanentes. por lo cual se utilizan los términos de casillas (MailBox) en buffers de comunicación. Los mailbox son dispositivos virtuales de E/S. pero controlada por la facilidad. Las principales características del esquema de comunicación a través del sistema de diálogo son: 1. los mensajes que no pueden ser procesados inmediatamente permanecen en el mailbox. en vez de eso. 3. El proceso debe solicitar autorización para obtener la facilidad del recurso. cualquiera de estas componentes puede estar ausente si la información requerida puede ser obtenida de otras fuentes. 3. El propósito de tener un mailboxs es evitar la diferencia entre la tasa de intercambio en la cual los mensajes son enviados y la tasa en la cual estos pueden ser recepcionados. en casos particulares. De este modo. Los mensajes no son enviados directamente desde el origen al destino.Sin embargo. 2. Sin embargo. Sistema De Diálogo Un sistema de diálogo es similar a la facilidad del servicio proporcionado por un teléfono. La conexión entre emisor y receptor es fija. Las principales características de este esquema son: 1. una vez que la comunicación entre el usuario y la facilidad ha sido establecida. Sistema De Correo En un sistema de correos los mensajes son enviados. El sirviente ve cómo se debe modificar al maestro cuando termina su tarea. La actividad de la facilidad es puesta en marcha por la solicitud del usuario. 2. emisores y receptores se comunican a través de áreas de enlace compartidas. Sistema de correo. Sistema Maestro-Sirviente El maestro asigna trabajo al sirviente. el usuario puede permanecer conectado todo el tiempo que estime conveniente (monopolio del recurso). El maestro no requiere de autorización para la utilización de su sirviente. Sistema Maestro-Sirviente. son temporales. y será su responsabilidad si lo confunde enviándole más de un comando a la vez. 2. entre otras cosas. excepto cuando se encuentra ejecutando alguna tarea. Existen tres métodos (o técnicas) básicas para implementar la comunicación entre procesos: 1. administrar la interacción en la cual el número de mensajes varía en el tiempo. Sistema de diálogo. de modo que pueda aceptar otro comando (el sirviente). Los usuarios compiten por el servicio y el número de clientes que pueden ser simultáneamente atendidos depende de la estructura del servicio. sean o no sean procesados en forma inmediata por los receptores. En general. Las actividades del sirvientes están absolutamente controladas por el maestro. que permiten el traspaso de información entre dos o más procesos. El emisor deposita un mensaje en la casilla y el receptor lo retira a su debido tiempo.

Comunicación Indirecta Con la comunicación indirecta los mensajes se envían y reciben usando buzones. El enlace es bidireccional. Un buzón puede considerarse de manera abstracta como un objeto en el que los procesos pueden colocar mensajes y del cual se pueden extraer los mensajes. Comunicación Directa Los procesos que desean comunicarse deben tener una manera de referirse unos a otros. Enviar un mensaje al buzón A. a través de la utilización de las operaciones wait/signal. En este esquema. un proceso puede comunicarse con otro a través de varios buzones distintos. El mailbox ofrece el servicio de aceptar mensajes enviados a una velocidad mayor a la velocidad con que estos pueden ser procesados. recibir(Q. Los procesos sólo necesitan conocer la identidad del otro para comunicarse. La declaración de las funciones y sus primitivas se dan a continuación: Depositar(Msg) { Wait(Ok_IN_Buffer) X ← < Idx de casillero vacío > Mailbox[X] ← Msg Marcar(X. Existen dos funciones básicas utilizadas para acceder a un mensaje de un mailbox. Se establece un enlace automáticamente entre cada par de procesos que quieren comunicarse. las operaciones primitivas enviar y recibir se definen de la manera siguiente: enviar(P. recibir(A.mensaje). El tiempo de enlace directo entre el emisor y el receptor es nulo. aseguran que el receptor no pueda anticiparse al emisor y el emisor tampoco podrá anticiparse al receptor más allá del número de casillas del mailbox. Es obvio que las restricciones del proceso mismo son las mismas que para cualquier grupo de procesos que utilizan un buffer compartido. 3. 3.Un sistema de correo se caracteriza por: 1. mensaje). 2. Entre cada par de procesos en comunicación hay exactamente un enlace. En este esquema. Enviar un mensaje al proceso P. En la disciplina de comunicación directa cada proceso que desea enviar o recibir un mensaje debe nombrar explícitamente al receptor o emisor de la comunicación. Para esto pueden utilizar la comunicación directa o la comunicación indirecta. Un enlace de comunicación en este esquema posee las siguientes propiedades: 1. Un enlace está asociado exactamente a dos procesos. Dos procesos únicamente pueden comunicarse si comparten un buzón. Transmisión Entre Mensajes. 2. 4. vacío) Signal(Ok_IN_Buffer) } La utilización de estas funciones. En este esquema. mensaje). Lo emisores no tienen control sobre los receptores. Transmisión Entre Mensajes. un enlace de comunicación tiene las propiedades siguientes: Página 77 de 164 . Las primitivas enviar y recibir se definen como sigue: enviar(A. Recibir un mensaje del proceso Q. lleno) Signal(Ok_OUT_Buffer) } Quitar(Msg) { Wait(Ok_OUT_Buffer) X ← < Idx de casillero lleno > Msg ← mailbox[X] Marcar(X. Recibir un mensaje del buzón A. mensaje). Cada buzón tiene una identificación única. El tamaño del mailbox permite que el emisor no requiera de autorización para enviar un mensaje. 4.

Para determinar que proceso recibirá el mensaje enviado por P1 se puede: • • • Permitir que un enlace este asociado a dos procesos como máximo. Un buzón puede pertenecer a un proceso o al sistema. La cola tiene una longitud máxima 0. P2 y P3 comparten el buzón A. 4. Por otra parte. como máximo pueden recibir n mensajes en ella. Para esta tarea se puede necesitar alguna forma de recolección de basura. Cuando termina un proceso dueño de un buzón. El sistema puede identificar el receptor para el emisor. Suponga ahora que los procesos P1. Cualquier otro proceso que conozca el nombre de este buzón podrá utilizarlo. P y Q pueden compartir el buzón A. Hay varias maneras de designar al dueño y a los usuarios de un buzón en concreto. Un enlace puede ser unidireccional o bidireccional. Si la cola no esta llena al enviar un nuevo mensaje. Esta propiedad puede considerarse como una cola de mensajes unidos al enlace. Permitir que a lo sumo un proceso ejecute en cada ocasión una operación recibir. si el proceso P creó el buzón A y luego creó un proceso Q. Los procesos también pueden compartir un buzón mediante la función de creación de procesos. Se establece un enlace entre un par de procesos sólo si comparten un buzón. A cualquier proceso que envíe posteriormente un mensaje a este buzón se le debe notificar que ya no existe. Como cada buzón tiene un solo dueño. A esta sincronización se le llama encuentro. el dueño es el único proceso que puede recibir mensajes mediante el buzón. Entre cada par de procesos en comunicación puede haber varios enlaces diferentes. de modo que el enlace no puede contener ningún mensaje esperando. El sistema operativo proporciona un mecanismo que permite a cualquier proceso: crear un nuevo buzón. un buzón que pertenece al sistema operativo tiene existencia propia. dueño del mismo. Por supuesto. Sin embargo. La cola tiene una longitud finita n. Si el enlace está lleno. Como todos los procesos con derechos de acceso al buzón pueden terminar. 2. mientras P2 y P3 se ejecutan. es independiente y no está unido a un proceso en particular. correspondiendo cada uno a un buzón. entonces se hace una distinción entre el dueño y el usuario del buzón. el enlace tiene una capacidad finita. Un enlace puede asociarse a más de dos procesos. por omisión. Utilización De Buffers Un enlace tiene cierta capacidad que determina el número de mensajes que puede contener temporalmente. P2 ó P3. Por ejemplo. el emisor debe demorarse hasta que haya espacio disponible en la cola. Capacidad limitada. 3. Hay tres maneras básicas de implantar esta cola: • Capacidad cero. No obstante. Permitir que el sistema seleccione arbitrariamente cuál proceso recibirá el mensaje (es decir. esta característica puede representar la existencia de varios receptores para cada buzón. así. el emisor debe esperar a que el receptor reciba el mensaje. Página 78 de 164 • . en cuyo caso el sistema operativo debe reclamar el espacio utilizado para el buzón. Si el buzón pertenece a un proceso.1. Los dos procesos se deben sincronizar para que pueda tener lugar la transferencia de un mensaje. puede ser que tras cierto tiempo ningún proceso tenga acceso al buzón. El proceso que declara un buzón es su dueño. El proceso P1 envía un mensaje a A. EI proceso que crea un nuevo buzón es. Una posibilidad es permitir que un proceso declare variables de tipo buzón. éste desaparece. Inicialmente. En este caso. el privilegio de recibir y la propiedad del buzón pueden transferirse a otros procesos por medio de las llamadas adecuadas al sistema. pero no ambos). se guarda en la cola y el emisor puede continuar su ejecución sin esperar. no hay confusión sobre quién debe recibir un mensaje enviado al buzón. enviar y recibir mensajes mediante el buzón y destruir un buzón.

Monitores Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos compartidos por un grupo de procesos. prosigan de inmediato su ejecución. Por ejemplo. el receptor y el emisor. el primer mensaje se pierde. La única diferencia entre las primitivas enviar y responder consiste en que enviar hace que el proceso emisor se bloquee. por ello. El proceso que envía un mensaje se demora hasta que recibe una respuesta. y luego: enviar(P. para asegurar que los mensajes no se pierdan y que el emisor y el receptor no manipulen simultáneamente el buffer de mensajes. suponga que el proceso P envía un mensaje al proceso Q y sólo puede continuar su ejecución tras la recepción del mensaje. La ventaja de este esquema es que los mensajes de gran tamaño no tienen que copiarse más de una vez. que se puedan usar señales para sincronizar los procesos. mientras que responder permite que ambos procesos. así como varias condiciones para proporcionar sincronización entre los procesos que están esperando para usar el recurso. Se observa que. El mensaje de respuesta sobrescribe el buffer usado en el mensaje original. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. los otros casos ofrecen buffers automáticos. el emisor deberá comunicarse explícitamente con el receptor para averiguar si éste recibió el mensaje. por lo que en ella puede esperar cualquier número de mensajes. La exclusión mutua está ahora implícita: la única acción q debe realizar el programador del proceso ue que usa un recurso es invocar una entrada del monitor (con los semáforos el programador debía proporcionar la correcta secuencia de operaciones de espera y señal para no bloquear al sistema). El emisor nunca se demora. El proceso que envía el mensaje nunca se demora. Puede tener varios puntos de entrada o procedimientos para el uso del recurso. Un proceso P que envía un mensaje se bloquea hasta que el proceso receptor haya recibido el mensaje y devuelva una respuesta de ocho palabras a través de la primitiva responder(P. un proceso que gane el Página 79 de 164 . el siguiente paso lógico es que los procesos concurrentes puedan Ilamar a otros como subrutinas utilizando el RPC. Sin embargo. El mensaje es entonces como una llamada a una subrutina y el mensaje de respuesta contiene el valor calculado por la subrutina. Para los procesos que desean acceder al monitor se utiliza una única cola de espera. en los casos de capacidad no nula. por ejemplo.• Capacidad ilimitada. Los monitores no proporcionan por sí mismos un mecanismo para la sincronización de tareas y. Si esta información es decisiva para los cálculos. Este método de comunicación se puede ampliar fácilmente para lograr un completo sistema RPC (Remote Procedure Call). Así. La desventaja principal es que la tarea de programación se complica. El proceso P ejecuta la secuencia: enviar(Q. si el receptor no ha recibido el mensaje antes de que el proceso emisor envíe otro. Los procesos se deben sincronizar explícitamente.mensaje) y luego: recibir(Q. un proceso no sabe si un mensaje ha llegado a su destino después de concluir la operación enviar. Por tanto. Existen casos especiales que no encajan en ninguna de las categorías que se han visto.mensaje) El proceso Q ejecuta: recibir(P. La cola tiene una longitud potencialmente infinita. "confirmación ").mensaje). Se dice que estos procesos se comunican en forma asíncrona. mensaje). su construcción debe completarse permitiendo. para impedir que se pueda producir un bloqueo. El RPC se basa en que una llamada a un procedimiento o subrutina en un sistema monoprocesador actúa exactamente como un sistema de mensajes donde el emisor se bloquea hasta recibir una respuesta. El caso de capacidad cero en ocasiones se conoce como sistema de mensajes sin buffer.

. Las únicas operaciones que pueden invocarse para una variable de condición son espera y señal.. Por consiguiente. sólo los procedimientos locales pueden tener acceso a las variables locales de un monitor. La construcción monitor asegura que sólo un proceso a la vez puede estar activo en el monitor. si no hay ninguno.y: condition. A cada causa diferente por la que un proceso deba esperar se le asocia una variable de condición. así como los cuerpos de procedimientos o funciones que implantan las operaciones sobre el tipo de subrutina.señal reanuda exactamente un proceso suspendido. se suspende y se coloca fuera del monitor para permitir que entre otro proceso. el programador no necesita codificar explícitamente esta situación de sincronización. sin embargo. Cuando un proceso ejecuta una operación de espera. Obviamente. Hasta donde se ha definido. La sintaxis de un monitor es: nombre_monitor : monitor { < declaraciones de variables > Procedure nombre_Proc( < Parámetros > ) begin . el cual se caracteriza por un conjunto de operadores definidos por el programador. por lo que se ha ampliado a región crítica condicional. se necesitan más mecanismos para la sincronización con monitores. Observe. o que espere en otra condición. El monitor debe usar un sistema de prioridades en la asignación del recurso que impida que un proceso en espera de lograr entrar se vea postergado indefinidamente por otros procesos nuevos que deseen utilizarlo. tanto P como Q estarán activos simultáneamente dentro del monitor. una construcción de alto nivel para la sincronización es el tipo monitor. el proceso señalizador P debe esperar. Pero como ya se vio. es decir. La operación x. se libera un proceso suspendido en la cola de la variable de condición utilizada. De lo contrario. la región crítica no es suficientemente potente para modelar algunos esquemas de sincronización. hay un proceso suspendido Q asociado a la condición x. La operación x. Un programador que necesita escribir su propio esquema de sincronización a la medida. Sobre ellas sólo se puede actuar con dos procedimientos: espera y señal. Ahora suponga que cuando un proceso P invoca la operación x. Q espera a que P abandone el monitor. que en teoría ambos procesos pueden continuar con su ejecución. puede definir una o más variables de tipo condición: var x.espera significa que se suspende el proceso que invoca la operación hasta que otro invoque x. el estado de x es el mismo que tendría si la operación nunca se hubiese ejecutado. se suspende y se coloca en una cola asociada a dicha variable de condición. Página 80 de 164 . Si ejecuta una operación de señal. En forma similar.acceso a un procedimiento del monitor que necesite esperar a una señal. si se permite que el proceso suspendido Q reanude su ejecución. P espera a que Q abandone el monitor.señal. end < Inicialización de variables > } Los distintos procesos no pueden usar directamente la representación de un tipo monitor por lo que un procedimiento definido dentro de un monitor sólo puede tener acceso a las variables declaradas localmente y a los parámetros formales. es similar en muchos aspectos a la región crítica. Una variable que se utilice como mecanismo de sincronización en un monitor se conoce como variable condición. o que espere en otra condición. De manera parecida. En síntesis. entonces la operación señal no tiene efecto. La representación de un tipo monitor consiste en declaraciones de variables cuyos valores definen el estado de un ejemplar del tipo de módulo. 2. Existen dos posibilidades: 1.señal. los que son proporcionados por la construcción condición.

Página 81 de 164 .. a través de la utilización de concentradores de mensajes independientes y sus identificadores son conocidos por el propietario. Una posible solución es mantener una lista explícita de procesos pendientes a los que aun no se les ha enviado un replicar(). Un propietario es un proceso que es dueño del recurso y todos los usuarios que deseen ejecutar alguna operación sobre dicho recurso deberán solicitar al propietario la debida autorización. es posible que la condición lógica que esperaba Q ya no se mantenga cuando se reanude Q.. Los monitores son una construcción de nivel más e levado que otras primitivas de sincronización de recursos. si se permite que el proceso P continúe. Sin embargo. El hecho que el proceso sea sólo uno garantiza que nunca será ejecutado más de una comparación a la vez.. tal como se muestra a continuación: nombre_propietario { < Inicialización de variables > Repeat Identificacion ← Recibir(Msg) Case ( Respuesta(Msg) ) { <Comp_1> : { ... end I←0 } Propietarios Otra forma de administrar los recursos de un sistema operativo es a través de una estructura llamada propietario. Un ejemplo de la estructura de un programa monitor es para el caso del sistema productor/consumidor: Productor_Consumidor : monitor { I : Integer x : Condition Procedure Productor begin . <Comp_N> : { .. La estructura propuesta no es muy adecuada en el caso que un proceso no pueda ser atendido inmediatamente... } ..... Como P ya se estaba ejecutando en el monitor.. Identificacion) Until ( < El proceso termina >) } Cada una de las comparaciones de la estructura case es una sección crítica. } } Replicar(Msg. end Procedure Consumidor begin . Es una estructura de formato muy similar a un monitor. } <Comp_2> : { .Hay argumentos razonables en favor de adoptar las alternativas (1) ó (2)... Otra solución sería la utilización de colas disjuntas para los mensajes que recibe el propietario. la opción (2) parece más razonable.

Identificacion) Until ( término del proceso) } Consumidor() { Repeat Enviar(Y. Identificacion) Until ( término del proceso) } Quitar() { Repeat Identificacion ← Recibir(Y) Enviar(Y. Quitar) Utilización ← Y Until ( término del proceso) } Finalmente la rutina del propietario (del recurso Buffer) sería: Buffer() { Primer_Llenado ← 0 Contador ← 0 Repeat If (Contador = 0) { Identificacion ← Recibir(X.1 } } Replicar(X. Buffer) Replicar(X. Quitar) } Else { Identificacion ← Recibir(X) } Case ( Respuesta[Identificacion] ) { Agregar : { Contador ← Contador + 1 Buffer[ Primer_Llenado + Contador ] ← X } Quitar : { X ← Buffer [ Primer_Llenado + Contador ] Contador ← Contador . Buffer) Replicar(Y. Identificacion) Until ( término del proceso) } Página 82 de 164 . los algoritmos administrativos serían (procesos): Productor() { Repeat X ← Algún dato Enviar(X. Agregar) Until ( término del proceso) } Las rutinas de los concentradores serán: Agregar() { Repeat Identificacion ← Recibir(X) Enviar(X. Agregar) } ElseIf (Contador = Max_Buffer) { Identificacion ← Recibir(X.A modo de ejemplo considérese el caso del productor y consumidor.

2. Retención y espera.Deadlocks (I nterbloqueos) Deadlock. Evitar que se llegue al interbloqueo. entonces B esperará eternamente el recurso R1 y A hará lo mismo respecto del recurso R2. Si existen dos procesos A y B y dos recursos R1 y R2. Espera circular. Evitación de los interbloqueos. pero la condición de exclusión mutua se debe mantener. el sistema operativo debe ser cuidadoso de no caer en estancamientos. No existencia de expropiación. Por ejemplo. b. Permitir que se pueda entrar. Retención y espera Para evitarla. Si al proceso A se le alcanza a asignar el recurso R1 y al proceso B el recurso R2. Exclusión mutua. Recuperación del interbloqueo. Formas de tratar el problema: a. basta con garantizar que un proceso que posee un recurso no pueda pedir otro. Página 83 de 164 . Por lo tanto ambos procesos están en estado de deadlock. Cadena circular de procesos en la que cada uno retiene al menos un recurso que se solicita por el siguiente. Dos pasos: 1. Prevención de los interbloqueos. Para que se de u situación de interbloqueo se deben de cumplir de forma simultánea las cuatro na condiciones siguientes: 1. Esto ocurre si todos los procesos comienzan a solicitar recursos mientras todos los recursos están en uso y ninguno de los procesos está dispuesto a retractar su demanda. 4. también conocido como estancamiento o interbloqueo. Si cada proceso requiere de varios recursos. y suponiendo que la ejecución de uno de los procesos requiere de los dos recursos. Métodos: 1. Se dice que un proceso está en estado de deadlock si se encuentra esperando la ocurrencia de un evento que se sabe nunca habrá de ocurrir. 2. 3. Los procesos retienen los recursos que han adquirido mientras esperan para adquirir otros. Detección del interbloqueo. 2. haciendo que la petición de todos los recursos que necesita un proceso se realice bajo la premisa de todos o ninguno. Prevención De Interbloqueos Basta con evitar una de las cuatro condiciones necesarias. es un posible estado de un proceso.

a la vez. se declara que en cualquier instante no podrán necesitar más de x recursos. sino en el que se ha establecido. acaparándolos innecesariamente. se mira si estos están esperando. aunque no estén retenidos. debe esperar y permite que los recursos de que dispone se puedan expropiar. Evitación De Los Interbloqueos Impone condiciones menos restrictivas que el método de la prevención. Proceso P1 P2 P3 Total disponibles Usados 2 1 3 4 (de 10) Posibles necesarios 3 5 1 Máximos necesarios 5 6 4 Página 84 de 164 . Si un proceso solicita algunos recursos que están asignados a otros procesos. ya que puede haber recursos retenidos que no estén en uso y otros que. Si un proceso que tiene uno o más recursos solicita otro que esté en uso. El proceso sólo se puede volver a activar cuando pueda ganar el acceso a todos los recursos que necesita. los recursos de que dispone y se añaden a la lista de recursos disponibles y. el proceso se suspende y no puede volver a ejecución hasta que no disponga de todos los recursos. no se puedan asignar por ser requeridos junto con otros que sí lo están. lo que puede producir una espera indefinida del proceso que los necesita. El proceso libera. Además. Se construye una tabla para llevar la cuenta de los recursos disponibles y de los necesitados. nunca se pueden asignar recursos de modo que no queden suficientes para satisfacer las necesidades de todos los procesos. Espera circular Para evitarla. de forma implícita. Los procesos pueden verse obligados a pedir los recursos antes de necesitarlos . Se suele aplicar con aquellos recursos que pueden ser fácilmente salvados y restaurados. se ordenan los recursos asignándoles a cada tipo de ellos un número entero y se impone que se pidan en orden ascendente. Desventaja: Los recursos no se piden en el orden que se necesitan.Problemas: 1. Puede resultar difícil que un conjunto de recursos se encuentren disponibles a la vez. Pobre uso de los recursos. En el momento de asignar un recurso. si se prevé la posibilidad de que se produzca un bloqueo. en cuyo caso se expropian. a la lista de recursos solicitados por éste. Si hay algún recurso que no está libre o que no puede ser expropiado. No existencia de la expropiación Se puede permitir la expropiación mediante dos estrategias: a. Cuando se crean los procesos. Además. b. el recurso no se concede. El algoritmo del banquero de Dijkstra asegura que el número de recursos asignados a todos los procesos nunca puede exceder del número de recursos del sistema. las peticiones de todos los recursos perteneciente a un mismo tipo deben realizarse con una única petición y no incrementalmente. Inconveniente: Puede llevar a que haya procesos que se vean relegados durante un tiempo excesivamente grande. 2. tales como posiciones de memoria o registros de la CPU.

2. la existencia de un ciclo es una condición necesaria y suficiente para que haya un interbloqueo. Detección De Los Interbloqueos Se utiliza en aquellos sistemas en los que se permite que se produzca el interbloqueo. Inconvenientes: 1. ya que los estados inseguros constituyen un conjunto grande de estados dentro del cual se encuentra el subconjunto de los estados que realmente producen interbloqueos. retención y espera y de no existencia de expropiación. Si el grafo puede reducirse para todos los procesos. incluso con la posibilidad de que cada uno de los procesos utilizase el máximo de los recursos declarados. Una petición que no conduce a un estado seguro se rechaza y cada petición que conduce a un estado seguro se concede. Posibles pérdidas en el intento de recuperar el sistema. Se permiten las condiciones de exclusión mutua. En caso contrario. 2. los procesos irreducibles constituyen el conjunto de procesos interbloqueados. Página 85 de 164 . no existe interbloqueo. El algoritmo requiere que los procesos conozcan por adelantado sus necesidades máximas. Mientras esperan alguno. Los procesos solicitan el uso exclusivo de los recursos que necesitan. Los procesos piden los recursos al sistema operativo de uno en uno. Método de reducción del grafo: Se determinan los procesos a los que se les pueden conceder los recursos que tienen solicitados y se quitan los arcos. c. Inconvenientes: 1. se les permite mantener los recursos de que disponen sin que se les puedan expropiar. d. La gestión de los recursos suele ser conservadora. e. Si sólo hay un elemento por cada tipo de recurso. Una condición suficiente es la existencia de un ciclo en el que no hay ningún camino que salga de alguno de los nodos que lo forman. El sistema puede conceder o rechazar cada petición. la condición de existencia de un ciclo es necesaria pero no suficiente para asegurar que existe un interbloqueo. Si cada tipo de recurso tiene varios elementos. Sobrecarga del sistema operativo para mantener la información necesaria y el algoritmo de detección. En el algoritmo del banquero: a.Un estado se considera seguro si todos los procesos que ya tienen concedidos recursos tienen la posibilidad de ser completados en algún orden determinado. b. Se suele utilizar un grafo dirigido (grafos de asignación de recursos) que indica las asignaciones de los recursos a los procesos y las peticiones que estos realizan. Cada arco conecta el nodo de un proceso con el nodo de un recurso. comprobando periódicamente si se ha producido el interbloqueo.

máxima de almacenamiento necesitada por cada proceso. Reiniciar uno o más de los procesos bloqueados.) Prevención por ordenación de recursos No suele ser necesario realizar ninguna elección en tiempo de ejecución entre las peticiones pendientes. Evitación del interbloqueo. Usar en cada clase el método más apropiado de evitar en ella el interbloqueo. Recursos de los procesos (impresoras. que antes eran columnas. Para evitar el interbloqueo entre las clases. para 5 procesos y 3 recursos. Actual y Diferencia. Factores a tener en cuenta con el fin de elegir aquellos procesos cuya reiniciación resulte menos traumática: 1. ficheros. Prioridad del proceso. Memoria principal Prevención mediante expropiación El proceso expropiado se pasa a memoria secundaria. Para que esto sea posible. Expropiar los recursos de algunos de los procesos bloqueados de forma sucesiva hasta que se consiga salir del interbloqueo. Se puede obtener una mayor eficacia combinando los distintos métodos para aprovechar sus ventajas: a. sólo que se deben manejar vectores en vez de escalares. y Disponible. por lo que no se puede permitir que se presente dicha situación. 4. Número de recursos que necesita para finalizar. Los procesos declaran los recursos de una determinada clase que van a necesitar.Recuperación De Interbloqueos Dos opciones: a. Por ejemplo. ahora son matrices de 5x3. b. La idea es básicamente la misma. Tipo y número de recursos que posee. por el costo en tiempo y medios adicionales que conlleva la recuperación. 3. ahora es un vector de 3 elementos. hay que tener en cuenta el estado al que se pasan los procesos expropiados. c. b. que antes era un escalar. se ordenan para evitar la espera circular. 2. discos. Además. En otros sistemas se rechaza el interbloqueo. Número de procesos que se verían involucrados con su reiniciación. se necesita que el sistema disponga de una utilidad que registre los estados de los distintos procesos en tiempo de ejecución. etc. Recursos internos (canales E/S. La solución sería volverlos a un estado anterior en el que el bloqueo se rompa. Máximo. En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables. cintas) Evitación de interbloqueos. A continuación se presenta un ejemplo para cuatro clases de recursos: Clase de recurso Métodos más adecuado Motivo Espacio de intercambio Prevención del interbloqueo por el método usado para evitar la condición de retención Se conoce de antemano la capacidad y espera. Algoritmo del banquero Sistematizando y generalizando para múltiples recursos. Tiempo de procesamiento utilizado y restante. Página 86 de 164 . 5. Agrupar los recursos del sistema en clases disjuntas. Ordenación de recursos. se obtiene el algoritmo del banquero (se supone que los procesos son clientes que piden crédito y los recursos corresponden al dinero del que dispone el banco). aunque la situación pudiera ser aceptable. con la consiguiente carga adicional sobre el sistema operativo.

debería chequearse cuáles de las solicitudes pendientes pueden atenderse. 3. ya que la secuencia <P1. los algoritmos de prevención son extremadamente restrictiv y los de evitación requieren os información que por lo general no está disponible.P2> es segura. Supóngase ahora que. En teoría funciona muy bien. se pueden otorgar los recursos solicitados por P1. 2. los recursos disponibles quedan en <4. En consecuencia. Al terminar.P3. y así. es seguro: 1. como el anterior. En resumen.4>. se debe chequear si el nuevo estado sería seguro o no. Este algoritmo fue publicado en 1965 y ha sido objeto de innumerables estudios. supóngase P1. Los recursos están disponibles. rara vez se usa. Si existe. o sea. Repetir 1 y 2 hasta haber pasado por todos los procesos.P4. suponer que el proceso termina y libera todos sus recursos. Y si P0 pide 2 unidades de B. Si no existe. en cuyo caso el estado es seguro. un proceso tal que Diferencia≤Disponible. P4 pide ahora 3 unidades de A y 3 de B. Si en ese nuevo estado. pero antes de concedérselos a P1. simplemente se aborta el proceso. también debe suspenderse. En el ejemplo. componente a componente. Ahora se pude escoger P3 ó P4. Por eso. pues no cumpliría con el máximo declarado. el estado es inseguro. entonces P4 debe suspenderse porque no hay suficientes recursos para satisfacer el pedido. o hasta determinar que el estado es inseguro. hasta determinar que el estado es seguro. pero no existe ningún método un método de resolución universal que sirva para todo. pero en la práctica. el estado pasaría a ser inseguro. se puede escoger primero P1 o P3 (da igual).P0. Página 87 de 164 . También se usan métodos adecuados a situaciones específicas. Si P3 pide 2 unidades adicionales de B. P1 pide 1 instancia adicional de A y 2 de C. puesto que es muy difícil para los procesos saber a priori sus necesidades máximas de cada recurso. Cada vez que algún proceso libera recursos. los métodos de detección y recuperación no son tan poco usuales ni descabellados.5.Máximo Proceso A P0 P1 P2 P3 P4 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 A 0 2 3 2 0 Actual B 1 0 0 1 0 C 0 0 2 1 2 Diferencia A 7 1 6 0 4 B 4 2 0 1 3 C 3 2 0 1 1 Disponible A 3 B 3 C 2 Para chequear si un estado. en ese estado. Dicho estado sería: Máximo Proceso A P0 P1 P2 P3 P4 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 A 0 3 3 2 0 B 1 0 0 1 0 C 0 2 2 1 2 A 7 0 6 0 4 B 4 2 0 1 3 C 3 0 0 1 1 A 2 B 3 C 0 Actual Diferencia Disponible y también es seguro. Buscar un proceso (cualquiera) cuyos recursos máximos puedan satisfacerse con los disponibles (más los que ya tiene). agregándolos a los disponibles. pero en este caso porque si se le otorgan los recursos.

modificación y eliminación. un extremo sería ofrecer una protección completa prohibiendo el acceso.CAP ÍT UL O VII ASPECTOS DE SEGURIDAD Técni cas De Prote cción Cuando se almacena información en un sistema de computación. lo que se necesita es acceso controlado. Es posible controlar varias clases de operaciones como lectura. uno de los cuales es el tipo de acceso solicitado. cortes o sobrecargas de energía. De esta manera. Un pequeño sistema de computación utilizado por unos cuantos integrantes de un equipo de investigación no necesitará los mismos tipos de protección que el computador de una gran corporación empleado para operaciones financieras. En algunos casos. Este esquema supone que no hay ningún mecanismo para obtener los nombres de los archivos de otros Página N° 88 de 151 . además. También pueden controlarse los accesos a directorios completos mediante especificaciones que son inevitablemente aplicables a todos los archivos contenidos en el directorio en cuestión. mientras que el otro extremo sería ofrecer acceso ilimitado sin protección. caballos de troya y los gusanos. Se puede proteger un pequeño sistema monousuario quitando los discos flexibles y guardándolos bajo llave en un cajón del escritorio o en un archivero. no es necesaria la protección. y en aquellos sistemas donde no se permite el acceso a los archivos de otros usuarios. escritura. en los sistemas multiusuario se requieren otros mecanismos más complejos y aplicables a la realidad. Nominación Los esquemas de protección de varios sistemas dependen de que el usuario no tenga acceso a un archivo que no puede nombrar. El acceso se permite o niega dependiendo de varios factores. La protección puede estar asociada al archivo o a la ruta que se usa para especificarlo. En los sistemas donde los archivos tienen varios nombres de ruta (como en los grafos acíclicos o generales) el usuario puede tener diferentes derechos de acceso al archivo dependiendo del nombre de ruta que utilice. Muchos computadores tienen programas de sistema que automáticamente o manualmente copian los archivos de disco a una cinta a intervalos regulares para conservar una copia en caso de que el sistema de archivos se destruya accidentalmente. entonces no es posible que opere con él. el usuario debe contar con acceso al directorio y al archivo. Los mecanismos de protección ofrecen acceso controlado limitando los tipos de accesos que pueden efectuarse a los archivos. además. una de las mayores preocupaciones es protegerla de daños físicos (confiabilidad) y del acceso inadecuado (protección). si no es capas de nombrarlo. La necesidad de protección surge de la capacidad de acceder a los archivos. La protección puede ofrecerse de variadas formas. los archivos pueden eliminarse accidentalmente. temperatura y vandalismo. si el nombre de la ruta hace referencia a un archivo en un directorio. cada esquema tiene sus ventajas y desventajas y debe seleccionarse el apropiado para la aplicación que se pretende. de investigación y de gestión de personal. Ambas estrategias son demasiado radicales para aplicarlas de manera general. Como siempre. La confiabilidad generalmente se obtiene creando copias de los archivos. controlar si un usuario puede determinar la existencia de un archivo en un directorio. Se quiere controlar la creación y eliminación de archivos en el directorio y. Sin embargo. Por otra parte. En el esquema más común se aplica la protección a la ruta. también se encuentran los virus informáticos. choques de las cabezas. así. polvo. puede que el conocimiento de la existencia y nombre de un archivo sea significativo por sí mismo. Los errores en el software del sistema de archivos también pueden ocasionar la pérdida del contenido de los archivos. ejecución. por lo que la visualización del contenido de un directorio debe ser una operación protegida. Las operaciones con directorios que se deben proteger son algo diferentes. Se han propuesto muchos mecanismos de protección. Un sistema de archivos puede ser dañado por problemas de hardware.

dado un usuario y el grupo al cual pertenece. dependiendo del bit de dominio o SETUSERID bit del archivo. se puede ver este modelo de protección como una gran matriz de acceso. se puede construir una lista de todos los objetos que puede acceder y con qué operaciones. Contraseñas Otra estrategia consiste en asociar una contraseña con cada archivo. En UNIX. en vez de con un archivo. Normalmente el usuario que crea un objeto es quién decide cómo se va a llenar la columna de la matriz correspondiente a ese objeto. De la misma manera que el acceso al computador se controla por medio de una contraseña. tratando a los dominios como otros objetos. puesto que la llamada se ejecuta en modo protegido.usuarios y que es difícil adivinarlos. Cuando se hace una llamada al sistema también se produce un cambio de dominio. En realidad. En cada instante. Algunos sistemas permiten que el usuario asocie una contraseña con un subdirectorio. Si las contraseñas se eligen al azar y se cambian con frecuencia. Dominios de Protección Un dominio de protección es un conjunto de pares (objeto. cada par identifica un objeto y las operaciones permitidas sobre él. con una operación: entrar. el proceso puede ejecutar dentro del dominio de protección de A o B. también así se puede controlar el acceso a cada archivo. y tiene el SETUSERID el encendido. Cuando un usuario ejecuta un programa almacenado en un archivo de propiedad de otro usuario B. Los procesos pueden cambiar de un dominio a otro en el tiempo. Este esquema es peligroso: un proceso puede pasar de un estado en que tiene poco poder a otro en que tiene poder absoluto (no hay términos medios). ¿cómo se las arregla el sistema para llevar la cuenta de quién puede acceder a qué objetos y con qué operaciones? Conceptualmente al menos. el programa passwd debe tener privilegios que un usuario común no tiene. Si se asocia una contraseña individual con cada archivo. Los cambios de dominio que un proceso puede hacer también pueden integrarse a la matriz. operaciones). Por ejemplo. el cómo depende mucho del sistema. para poder modificar el archivo donde se guardan las claves. cada proceso se ejecuta dentro de un dominio de protección. Por ejemplo: • La capacidad para copiar o transferir un derecho de un objeto a otro dominio. se asocia un dominio a cada usuario/grupo. Este mecanismo se usa con algunos utilitarios. La matriz de acceso es suficientemente general como para apoyar diversas políticas. a menudo es fácil adivinarlos. una vez que esta se descubre todos los archivos se hacen accesibles. puede ser muy grande el número de contraseñas que hay que recordar. Una política de protección involucra decidir cómo se va a llenar esta matriz. esta estrategia puede ser eficaz para restringir el acceso a los usuarios que conozcan la contraseña. Matriz De Acceso Otra Ahora bien. Página 89 de 164 . lo que no resulta práctico. Si se emplea la misma contraseña para todos los archivos. existen varias desventajas con este esquema. No obstante. Cualquier error en un programa como passwd puede significar un gran hoyo en la seguridad del sistema. como los nombres de archivos se eligen para que sean mnemónicos. Lo que se hace es que el archivo /bin/passwd que contiene el programa es propiedad d superusuario.

Cada capacidad corresponde a un objeto más las operaciones permitidas. Es así. Cuando un usuario solicita el acceso a un archivo. pero que puede considerarse aún una lista de accesos. RW). Profes. En este caso define para cada usuario del sistema un conjunto de atributos (perfil) que especifican a que recursos puede acceder. En la práctica. de lo contrario. Es lo que se conoce como lista de acceso. El problema es cómo almacenar esta matriz. leído por todo el mundo. En este caso. Es decir. y el esquema no es muy eficiente. X: Excecute (Ejecución). Donde R: Read (Leer). y sería algo así como: ((Juan. lo usual es que. para efectuar una operación M sobre un objeto O. Por lo general la definición de un perfil para cada usuario resultaría demasiado extenso y complejo de administrar. y 3 para el resto del mundo. y que los procesos sólo manejen punteros a las capacidades. y se verifica si M pertenece a C. pero no por el usuario.• Capacidad de un dominio para modificar los derechos en otros dominios (todos. Como es una matriz poco densa (muchos de los elementos son vacíos). a cada objeto se le asocia una lista de pares (dominio. el sistema operativo comprueba la lista de acceso correspondiente. se puede especificar cualquier subconjunto de derechos para un archivo La otra posibilidad es almacenar la matriz por filas. que el sistema operativo crea grupos de usuarios que permiten definir un conjunto de atributos a un grupo amplio de individuos. se busca (D. (Pedro. Si un proceso dentro de un dominio D intenta efectuar una operación M sobre un objeto O. si un objeto puede ser. 3 para el dueño (RWX). Listas De Acceso Otra estrategia es hacer que el acceso dependa de la identidad del usuario. no resulta práctico representarla como matriz propiamente. W: Write (Escribir). Además. por ejemplo. derechos). Podríamos usar una tabla con triples (dominio. reducida a 9 bits. Si se piensa en archivos de Unix. C). no las capacidades propiamente. Windows NT usa listas de accesos con todo el nivel de detalle que uno quiera: para cualquier usuario o grupo. R)). el proceso ejecute la operación especificando un puntero a la capacidad correspondiente al objeto. La sola posesión de la capacidad por parte del proceso quiere decir que tiene los derechos que en ella se indican. se puede almacenar esta lista en el nodo-i de cada archivo. Por lo tanto. se usa un esquema más simple (y menos poderoso). Un problema de las capacidades es que puede ser difícil revocar derechos ya entregados. De todas maneras. se debe evitar que los procesos puedan "falsificar" capacidades. Cuando se usan capacidades. objeto. Otra posibilidad es cifrar las capacidades con una clave conocida por el sistema. Página 90 de 164 . (*. ocurre una violación de la protección y se niega el acceso. la tabla es grande. RW). 3 para el grupo. se permite el acceso. Los distintos usuarios pueden requerir tipos de acceso diferentes para un archivo o un directorio. Profes. *. obviamente. o para un recurso específico). Si el usuario aparece en la lista junto con el acceso solicitado. derechos). Una posibilidad es mantener las listas de capacidades dentro del sistema operativo. en vez de un puntero al objeto. al cual puede asociarse una lista de acceso que especifique los nombres de los usuarios y los tipos de acceso permitidos para cada uno. O. se puede guardar la matriz por columnas (descartando las entradas vacías). debe tener entradas para cada dominio. Alternativamente. a cada proceso se le asocia una lista de capacidades. Usuarios y Grupos De Acceso El sistema operativo también provee seguridad a nivel de usuarios.

El usuario que creó el archivo es su dueño. Hay varias maneras para ejercer este control. Todos los demás usuarios en el sistema forman el universo. que antes era de tamaño fijo. lo que complica la administración del espacio. En la arquitectura de seguridad OSI se identifican tanto los servicios de seguridad como los mecanismos para ofrecerlos. Universo. Un grupo o grupo de trabajo es un conjunto de usuarios que comparten el archivo y necesitan acceso similar. en los sistemas UNIX los grupos sólo pueden ser creados o modificados por el administrador de la instalación (o por cualquier superusuario). ahora necesita ser de tamaño variable. Sucede con demasiada frecuencia que los proveedores de productos específicos de seguridad presentan sus productos como la respuesta a todos los problemas de seguridad. De esta manera. también ha crecido la necesidad de proteger su integridad. Para condensar el tamaño de la lista de acceso muchos sistemas reconocen tres clasificaciones de los usuarios en relación con cada archivo: Dueño.El mayor problema con las listas de acceso puede ser su longitud. la transferencia de datos orientada a las conexiones y sin conexiones. reproducción seguridad OSI (Open System Interconnection) considera las amenazas como accidentales o y como activas o pasivas. La entrada del directorio. Obsérvese que. Entre los servicios proporcionados se pueden mencionar el control de acceso. Si se quiere que todos puedan leer un archivo. se debe elaborar una lista de todos los usuarios con acceso de lectura. el auditor de seguridad de los datos opina que la seguridad es una cuestión de auditoria y control. especialmente si no se conoce por adelantado la lista de usuarios del sistema. Por ejemplo. El partidario de los dispositivos de ciframiento dice que la seguridad es un problema de ciframiento. ello ha provocado retrasos en la realización de OSI. este proceso se denomina a veces estimación de riesgos. para que este esquema funcione correctamente. No todos los niveles de protección son apropiados para todos los ambientes. Grupo. Concepto De Seguridad Conforme los sistemas de computación se han vuelto más complejos y sus aplicaciones se han difundido más. Existen guías específicas para agencias que manejan aspectos de seguridad nacional e información. Los criterios económicos surgen del equilibrio entre el costo de pérdidas potenciales y el costo de instrumentos y procedimientos de protección. hay que controlar con cuidado la pertenencia a los grupos. el control se obtiene por interacción humana. la protección se Página 91 de 164 . la seguridad del flujo de tráfico y la integridad de los datos. la seguridad a nivel de campos. la confidencialidad en los contextos de los datos. Esta técnica tiene dos consecuencias indeseables: • • La construcción de la lista (o matriz de acceso) puede ser una tarea tediosa e infructuosa. confidencial. la denegación de servicio o la de tráfico legítimo. La elección de soluciones para problemas reales de seguridad es una decisión tanto económica como técnica. Existe la idea errónea de que los sistemas abiertos no son seguros. mientras que el especialista en emanaciones comprometedoras siente que la respuesta reside en el blindaje electrónico que protege el equipo contra fugas de información. Las amenazas pasivas se limitan a la obtención de información en tanto que las activas incluyen la alteración de datos. En un principio. Estos problemas pueden resolverse usando una versión condensada de la lista de acceso. la identificación de autenticidad de las entidades iguales. EI trabajo de intencionales. Seguri dad De Los Sistemas O perativos Los mecanismos de seguridad son instrumentos de protección contra amenazas a la seguridad.

tiene una importancia más general la necesidad de asegurar que cada componente de un programa activo utilice los recursos sólo de manera consistente con las políticas establecidas para su uso. El papel de la protección en un sistema de computación consiste en proporcionar un mecanismo para aplicar las políticas que gobiernan la utilización de los recursos. El control de la seguridad es un tema mucho más amplio que la protección. Este es un requisito absoluto para un sistema seguro. procesos o usuarios a los recursos definidos por un sistema de computación. es necesario evaluar cuál es el mejor método de seguridad que se puede aplicar para satisfacer las necesidades del sistema computacional involucrado. así como la manera de aplicarlos. Existen muchas estrategias considerativas de seguridad. De manera similar. pudieran compartir con seguridad un mismo espacio lógico. Este mecanismo debe ofrecer un medio para especificar los controles que se impondrán. la más obvia es la necesidad de evitar una violación mal intencionada de una restricción de acceso. de las cuales sólo se hará mención de algunas. también debe estar a disposición del programador de aplicaciones para que puedan asegurar los recursos creados y el servicio proporcionando a un subsistema de aplicaciones contra el mal uso. o abuso.concibió como una añadidura a los sistemas operativos de multiprogramación para que varios usuarios. en los que no se podía confiar. como la memoria. muchas veces se puede evitar la contaminación de un sistema ntegro debido al mal funcionamiento de un í subsistema. La seguridad externa se ocupa de proteger el recurso de cómputo contra intrusos y desastres como incendios e inundaciones. Sin embargo. Se ha evolucionado hasta los modernos conceptos de protección para aumentar la seguridad de cualquier sistema complejo que utilice recursos compartidos. Las políticas para la utilización de los recursos pueden variar. Si en las primeras etapas se detecta un error en las interfaces. no dirán mucho acerca de la verdadera seguridad del sistema. dependiendo de la aplicación. Estas políticas pueden establecerse de varias maneras: algunas están determinadas en el diseño del sistema. Un sistema de protección debe tener la flexibilidad suficiente para aplicar las diversas políticas que se le puedan indicar. Una vez que un usuario obtiene acceso físico a un recurso de cómputo. Un recurso desprotegido no puede defenderse del uso. Un sistema orientado a la protección ofrece un medio para distinguir entre el uso autorizado y el no autorizado. La protección se refiere a un mecanismo para controlar el acceso de programas. Hay varias razones para proporcionar la protección. Para establecer adecuadamente los requisitos de seguridad. La protección puede mejorar la seguridad detectando errores latentes en las interfaces entre los subsistemas componentes. Métodos De Verificación Los requisitos de seguridad de un sistema dado definen qué significa que ese sistema sea seguro. si los requisitos no están expresados en forma tajante. y pueden cambiar con el tiempo. y algunas más son definidas por los usuarios para proteger sus propios archivos y programas. otras están formuladas por los administradores de un sistema. la cual representa una medida de la confianza en que se conservará la integridad del sistema y sus datos. como un directorio de archivos o un mismo espacio físico. Estrategia De Total Seguridad En vista de lo indispensable de una estrategia total respecto a la seguridad de los computadores. Tales requisitos sirven como base para determinar si el sistema realizado es seguro: sin un conjunto preciso de requisitos de seguridad no tiene mucho sentido preguntar si el sistema es seguro. Por estas razones. no autorizado o de un usuario incompetente. la protección no puede considerarse como algo que sólo concierne al diseñador de un sistema operativo. Se debe establecer la diferencia entre protección y seguridad. el sistema operativo debe lograr su identificación antes de concederle acceso a los programas y datos Página 92 de 164 .

o bien. Los mecanismos de detección son importantes para la seguridad física. Para poner en peligro al sistema podría ser necesaria la cooperación entre muchos empleados y ello reduce considerablemente la probabilidad de violaciones de la seguridad. La autorización determina qué acceso se otorga a qué entidades. las dos cosas. un grupo separado debería controlar las entradas a los sistemas de producción y un grupo totalmente distinto debería revisar y verificar las salidas. Los sistemas de huellas dactilares o de patrón de voz también gozan de popularidad. lo cual reduce la posibilidad de esquivarlos. los datos del sistema y los usuarios se dividen en clases a las cuales se conceden diversos derechos de acceso. Poner en práctica la protección contra desastres puede resultar costoso y a menudo se trata con demasiada ligereza. Seguridad Externa La seguridad externa consiste en seguridad física y seguridad de operación. Página 93 de 164 . el personal de operación no debe tener conocimiento de la naturaleza de estos controles. La elección y asignación del personal es vital. pero debe indicárseles que se han incluido controles complejos en el sistema porque semejante conocimiento muchas veces basta para refrenar a las personas que podrían intentar violar la seguridad. Seguridad De Operación La seguridad de operación se compone de las diversas políticas y procedimientos puestos en práctica por los administradores de una instalación de cómputo. Es posible confiar en los empleados. los detectores de movimiento pueden determinar si ha entrado un intruso en una instalación de cómputo. mismos que pueden realizar sin necesidad de conocer la totalidad del sistema. Para dicho propósito. como por ejemplo. en instalaciones de cómputo grandes sólo se permite el acceso al sistema de cómputo a los operadores y sólo los programadores pueden escribir programas. o fotografías.almacenados en el sistema. Los operadores no deberían saber programar ni los programadores deberían estar familiarizados con los detalles de operación del sistema de cómputo. La clasificación fragmenta el problema en subproblemas. un sistema de patrón de voz podría rechazar a un u suario legítimo que esta resfriado. y así los individuos no pueden percibir el panorama completo. un sistema de huellas digitales podría rechazar a un usuario legítimo con una cortadura o quemadura. La seguridad física incluye la protección contra desastres y la protección contra intrusos. pero es obvio que la necesidad de este tipo de protección depende de las consecuencias de una pérdida. Un problema interesante en estos sistemas es la posibilidad de rechazar usuarios legítimos. Por ejemplo. por lo que las principales labores en cuanto a seguridad física se encaminan hacia el rechazo de intrusos. pero hacerlo requiere cada vez de mayor conocimientos y esfuerzo. Vigilancia La vigilancia se ocupa de supervisar el sistema. Esto podría llamarse seguridad de la interfaz con el usuario. Algunos de los sistemas de verificación de autenticidad usados hoy día son muy complejos. las instalaciones utilizan diversos tipos de sistemas de identificación física. a las personas se les asignan diferentes conjuntos de deberes. realizar auditorías de él y de verificar la identidad de los usuarios. Es preciso incluir verificaciones y balances en el sistema de cómputo como una forma de ayuda para la detección de violaciones de la seguridad. De manera similar. Un enfoque común en este aspecto es la división de responsabilidades. La mayoría de las organizaciones sencillamente no pueden darse el lujo de un plan minucioso para protección contra desastres. La seguridad interna se ocupa de los diversos controles integrados al equipo y al sistema operativo con el fin de garantizar el funcionamiento confiable y sin corrupción del sistema de cómputo y la integridad de los programas y los datos. Los detectores de humo y los sensores de calor pueden proporcionar un aviso temprano en caso de incendio. las credenciales con firmas. es cierto que se pueden esquivar.

Protección Por Contraseña (Llave/Cerradura) Hay tres clases de elementos para la verificación de autenticidad con los cuales puede establecerse la identidad de un usuario de un sistema: • Algo característico de la persona. Esto incluye contraseñas y combinaciones de candados. se puede usar el ciframiento. Los usuarios eligen por lo regular contraseñas fáciles de recordar. este acceso directo sólo pueden tenerlo algunas rutinas de los sistemas operativos llamadas programas de vigilancia. el cual puede conceder o denegar el acceso. Esto se denomina amplificación. Cuando hay supervisión de amenazas. • • Algo que posee la persona. Página 94 de 164 . supóngase que alguien logra obtener acceso a la lista maestra de contraseñas de un sistema.Supervisión De Amenazas Una forma de reducir al mínimo los riesgos para la seguridad es hacer que el sistema operativo controle las operaciones delicadas en vez de entregar el control directamente a un usuario. Si un usuario desea obtener acceso a un archivo vital. Este concepto es similar al de los monitores. los usuarios no pueden obtener acceso directo a los recursos. El esquema más común para la verificación de autenticidad es la simple protección por contraseña utilizando una matriz de accesos sobre dominios de protección. la posesión de las contraseñas servirá de poco a menos que la persona cuente también con la clave de desciframiento. La protección por contraseña tiene muchos puntos débiles. Aun así. la memoriza y después la teclea para obtener acceso a un sistema de cómputo. fotografías y firmas. A veces es preciso conceder a un programa de vigilancia mayores derechos de acceso que los otorgados a los usuarios para que pueda atender en forma efectiva ciertas solicitudes de los usuarios. algunos sistemas podrían permitir al usuario un acceso directo al archivo. El usuario escoge una palabra clave. Una técnica más segura es la denominada supervisión de amenazas. como por ejemplo el nombre de un amigo o pariente. patrones de voz. Esto incluye credenciales. aunque un intruso obtenga una contraseña. Esto incluye huellas dactilares. El usuario estaría fuera de control y el sistema operativo no podría supervisar los movimientos realizados con el archivo en el momento en que tienen lugar. ésta podría haber cambiado antes de que él logre hacer un verdadero daño. La penetración de las defensas de un sistema operativo no resulta por fuerza un peligro significativo para la seguridad. los usuarios astutos podrían inferir información realizando varias consultas diferentes y examinando el traslape en los resultados. Para lograr que las contraseñas resulten inútiles para un intruso. Sin embargo. de este modo. Si lo concede. La mayor parte de los sistemas actuales usan contraseñas más largas para frustrar tales intentos de penetración. El usuario que desea obtener acceso a un recurso lo solicita al sistema operativo. No obstante. Así. Algo que sabe la persona. el empleo de contraseñas largas tiene también sus problemas: si las claves son difíciles de recordar. es posible diseñar programas de vigilancia que detecten tales intentos y lo notifiquen a un administrador del sistema. dichos sistemas eran fáciles de penetrar por la simple prueba de todas las contraseñas posibles. Por ejemplo. Alguien que conoce al usuario podría tratar varias veces de entrar en el sistema usando los nombres de gente conocida por esta persona. tarjetas de identificación y claves. los usuarios tenderán a anotarlas en algún lado lo cual facilita la obtención de la contraseña por parte de un tercero. Algunos de los primeros sistemas empleaban contraseñas cortas. La supervisión de amenazas es una actividad continua. esto significaría que el intruso podría obtener acceso a cualquier información en el sistema. tal cosa podría dar por resultado una violación de seguridad mediante intentos repetidos. En general. La mayor parte de los sistemas suprimen la impresión o despliegue de la contraseña mientras se teclea. Se recomienda a los usuarios cambiar sus contraseñas con frecuencia. los intentos de penetración se detectan en el momento en que ocurren y se notifica de inmediato al administrador del sistema. un programa de vigilancia se encarga del acceso real al archivo y pasa los resultados al programa del usuario.

se necesita de mecanismos que permitan que un usuario proteja los datos transferidos por la red. Su clave formal de acceso al sistema y el número de veces que tuvo que repetir la clave antes de poder ingresar al sistema. Si ocurre otra serie de intentos inútiles por entrar en el sistema. o texto cifrado. Información acerca de la fecha.) y al evento (eliminación o lectura de archivos importantes. el terminal se puede volver a conectar.). cientos o miles de intentos. Por ejemplo. El texto cifrado puede almacenarse en un archivo legible o transmitirse por canales no protegidos. Las auditorías periódicas atienden en forma regular los problemas de seguridad. Auditoría La auditoría se realiza por lo general en sistemas manuales a posteriori. Este formato interno del texto. etc.Una defensa sencilla contra los intentos repetidos es limitar el número de intentos de entrada que pueden iniciarse en cualquier periodo desde una misma terminal o estación de trabajo (o desde una misma cuenta). hora y número de serie del terminal. y después desconectar automáticamente la terminal durante varios minutos. si el sistema se ve comprometido. las transferencias de cuentas bancarias. Página 95 de 164 . etc. a un formato interno. El mecanismo básico funciona en la forma siguiente: • • La información se codifica de su formato legible inicial. aunque puede ser legible. el sistema operativo podría desplegar un aviso en la terminal indicando que su intento de violación al sistema ha sido detectado. cada vez se transmite más información confidencial por canales donde es posible interceptar o escuchar los mensajes sin autorización. Sin duda. El cifrado es un método común para proteger la información que se transmite por enlaces poco confiables. Se convocan auditores periódicamente para examinar las transacciones recientes de una organización y determinar si se han realizado actividades fraudulentas. Estas revisiones pueden realizarse tanto en forma periódica como al azar. Es necesario revisar la bitácora con frecuencia y detenimiento. o texto limpio. La bitácora de auditoría es un mecanismo de detección importante. La auditoría en sistemas de cómputo puede implicar un procesamiento inmediato en el computador para revisar las transacciones que se acaban de realizar. Por tanto. cualquier persona comete errores de tecleo cuando intenta entrar en el sistema. cédula de identidad. Pero no es razonable que una persona que conoce la contraseña correcta requiera decenas. Se produce automáticamente cada vez que sucede un evento así y se almacena en un área protegida del sistema. Aunque logren penetrar las defensas de un sistema. Criptografía Al ir ganando popularidad las redes de computadores. las auditorías al azar ayudan a atrapar desprevenidos a los intrusos. las personas pueden refrenar sus deseos de hacerlo si temen una detección posterior. La mayoría de los sistemas operativos poseen este tipo de bitácoras y en ellas se almacena información como: • • • • La identificación general del usuario. fichas médicas e historiales criminales son algo rutinario en muchos lugares. Toda la información asociada al usuario (nombre. Para que esta información confidencial este segura. la bitácora de auditoría deberá permanecer intacta. Una bitácora de auditoria es un registro permanente de eventos importantes que ocurren en el sistema de cómputo. generalmente en redes aisladas de propósito especial. ingreso a directorios no autorizados. Después de un periodo de espera. un sistema podría permitir tres o cuatro intentos. no tiene ningún sentido. La simple producción de una bitácora de auditoría no garantiza una seguridad adecuada.

se concluye que e =11. se puede escoger d =11. si se codifica m usando e. no le servirá de nada a menos que la pueda decodificar. como (11*11) mod 24 =121 mod 24 =1. no lo son p y q. Luego. Entonces. n=35 y (p-1)*(q -1)=4. Se escoge d de tal manera que su valor sea un número entero aleatorio de gran tamaño relativamente primo a (p-1)*(q-1). De este concepto surge un algoritmo que se considera casi inviolable. Entonces. (p-1)*(q-1)] =1. de romper. respectivamente. Por último. Incluso si la información cifrada cae en manos de una persona no autorizada. Sean Ek y Dk la representación de los algoritmos de cifrado y descifrado. o por lo menos muy difíciles. La seguridad del sistema depende únicamente de lo secreto de la clave y no de lo secreto de los algoritmos E y D. La clave pública de cifrado es un par (e. e satisface la ecuación: (e*d) mod ((p-1)x(q-1)) = 1. Como 11 es relativamente primo de 24. y dos usuarios sólo se pueden comunicar si conocen la clave pública del otro. se puede decodificar m con d.n). el receptor debe decodificarlo adecuadamente a fin de recuperar el texto limpio. Hay una gran variedad de métodos para lograr esta tarea. d cumple con el máximo común divisor [d. Un mensaje de gran tamaño se divide en una serie de mensajes más pequeños. q y d para que sea el inverso multiplicador de d módulo (p-1)*(q-1).• Para que el texto cifrado tenga sentido. El algoritmo de cifrado debe satisfacer las siguientes propiedades para cualquier mensaje m: • • • Dk (E k (m)) = m. se calcula el entero e a partir de p. no es fácil adivinar los enteros d y e. Esta condición se permite porque es muy difícil factorizar n y. por tanto. El problema principal es la elección de las claves de cifrado y descifrado. El asunto más importante es el desarrollo de esquemas de cifrado que sean imposibles. Las funciones E y D se definen como E(m) = (m e) mod n = C D(C) = (Cd ) mod n. El entero n se calcula como el producto de dos número primos aleatorios (p y q) de gran tamaño (100 o más dígitos) donde n = p * q. De esta manera. Es decir. cada uno de los cuales puede representarse con un entero. Este esquema presenta el problema de distribución de Ilaves: antes que se pueda establecer la comunicación. y Cd mod n = 1211 mod 35 = 3 = m. d y n son enteros positivos. aunque n es de conocimiento público. Supóngase que m =3. A modo de ejemplo: Sean p=5 y q=7. Uno de estos esquemas es llamado norma de cifrado de datos. la clave privada es un par (d. las llaves secretas se deben enviar de manera segura tanto al emisor como al receptor. Tanto Ek como Dk pueden calcularse eficientemente. Página 96 de 164 . para una aplicación con la clave k. Cada mensaje esta representado por un entero entre 0 y n-1. Se debe señalar que. C = me mod n = 311 mod 35 =12. Una solución para este problema consiste en utilizar una estrategia de cifrado de llave pública: cada usuario tienen una clave pública y una privada. donde e.n). Los más comunes proporcionan un algoritmo de cifrado general E (encryption) un algoritmo de descifrado general D (decryption) y una o varias claves secretas que se proporcionan para cada aplicación. tarea que no puede lograrse eficazmente en un entorno de comunicaciones por red. Es decir.

los que pueden ser llamados por otros cada vez que se requiera. La característica más importante de este tipo de estructura es la modularidad. Microkernel (cliente/servidor): Los procesos clientes solicitan los servicios a los procesos servidores. E/S. Sistemas Con Capas (Unix / OS2) El enfoque por capas consiste en dividir el sistema operativo en varias capas. de manera de minimizar el tamaño del núcleo del sistema. Estas máquinas virtuales son simulaciones del hardware. • Nivel superior: Programas de aplicación que llaman los procedimientos de servicio. cada una de las capas se construye sobre una capa inferior. • Nivel inferior: Conjunto de procedimientos utilitarios que ayudan a los procedimientos de servicio. sobre el hardware y realiza la multiprogramación. proporcionando al nivel superior varias máquinas virtuales. • Nivel intermedio: Conjunto de procedimientos de servicio que realizan los llamados a sistema. Sistemas De Microkernel La tendencia en el desarrollo de los sistemas operativos apunta a mover la mayor cantidad posible del código del sistema operativo a las capas superiores. La capa 0 (la más baja) es el hardware y la capa N (la más alta) es la interfaz con el usuario. interrupciones y todos los demás aspectos físicos del hardware. Firmware : Tecnología de instrucciones incluidas en el procesador. Máquinas Virtuales (VM/370 CMS (Conversational Monitor System)) Este tipo de sistema consiste en que se ejecuta el núcleo del sistema. que se le llama monitor de la máquina virtual. Página 97 de 164 . con su modo núcleo/usuario. Las capas se seleccionan de manera que cada una utilice funciones y servicios sólo de las capas inferiores. Básicamente todas las funcionalidades del sistema operativo son proporcionadas a través de un conjunto de procedimientos. MAC) Esta estructura de 3 niveles es muy utilizada en los sistemas operativos y consiste en una estructura muy rudimentaria. Desventaja: Dificultad de definir los niveles.CAPÍT ULO VIII ELEMENT OS DE CONFIGURACIÓN Estructuras De Sis temas Opera tivos (Diseños) Sistemas Monolíticos (DOS.

Organizaciones Más Com unes De Multiprocesadores
A continuación se presenta una clasificación para los sistemas con varios procesadores basado en cómo la máquina relaciona sus instrucciones con los datos que tiene que procesar. 1) SISD (Single Instruction Single Data). Un solo flujo de instrucción, un solo flujo de datos. Computadores con un único procesador. 2) SIMD (Single Instruction Multiple Data). Un solo flujo de instrucciones, varios flujos de datos. Procesadores vectoriales y computadores en arreglo en los que una sola instrucción se ejecuta sobre varios datos. 3) MISD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, un solo flujo de datos. Ningún computador se ajusta a este tipo. 4) MIMD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, flujo de varios datos. Grupo de computadores independientes, cada uno con su propio contador de programa, programa y datos. Según la conexión entre los procesadores, se pueden considerar: a) Sistemas fuertemente acoplados. Los procesadores comparten la memoria y el reloj. Son sistemas multiprocesadores y la comunicación generalmente se hace a través de la memoria compartida. b) Sistemas débilmente acoplados. Los procesadores no comparten la memoria ni el reloj y cada uno tiene su propia memoria local. Se comunican mediante redes locales o de área extensa. Son los sistemas distribuidos. Un sistema distribuido proporciona a los usuarios acceso a los distintos recursos hardware y software controlado por el sistema operativo Los esquemas básicos del son: b.1. Sistemas operativos de red. Los usuarios están enterados de la multiplicidad de máquinas y para acceder a sus recursos necesitan conectarse al computador remoto apropiado. Son sistemas débilmente acoplados tanto en hardware como en software. Sistemas operativos distribuidos. Los usuarios no necesitan saber que existe una multiplicidad de máquinas y pueden acceder a los recursos remotos de la misma forma que lo hacen a los recursos locales. Son sistemas de hardware débilmente acoplado, pero de software fuertemente acoplados.

b.2.

Tiempo Compartido O Bus Común (Conductor Común)
Usa un solo camino de comunicación entre todas las unidades funcionales (procesadores, almacenamiento y los procesadores de I/O). En ese sencillo esquema, el bus común es en esencia una unidad pasiva, es decir, las operaciones de transferencia entre las unidades funcionales son controladas por las interfaces del conductor de las propias unidades. La principal ventaja es que es una de las formas más sencillas (usar un bus compartido para conectar los procesadores y la memoria); el problema es que el bus o la memoria compartida se pueden saturar. Para esto se puede recurrir a las siguientes soluciones: 1) Disponer de una memoria caché: a) Asociada con la memoria compartida: los procesadores acceden a ella por el bus,

Página 98 de 164

b) Asignar a cada procesador una caché. Presenta problemas de coherencia. Para mantener esta coherencia, se utilizan protocolos especializados y hardware adicional, como los “espías” de caché o monitores de caché, que observan el bus y cuando se hace una petición de escritura en una dirección presente en la caché, se actualiza ésta con el nuevo valor. Esto hace que aumente el tráfico en el bus. 2) Considerar un bus de más anchura. 3) Soportar protocolos diferentes de petición/respuesta. Las peticiones y las respuestas de memoria se tratan de forma separada en el bus. Después de que un procesador realiza una petición, el bus queda liberado para que le puedan utilizar otros usuarios durante el tiempo que tarda la memoria en acceder y ensamblar la información solicitada. La escalabilidad de este esquema está limitada por el bus y la memoria compartida. En implementaciones comerciales se soportan del orden de 64 procesadores. Es un esquema sencillo, por lo que muchos diseños comerciales están basados en él.

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

La conmutación en los cruces (punto de unión entre las líneas) es la única fuente de retardo. La contención en el acceso a la memoria sólo ocurre cuando un procesador intenta acceder a la misma memoria y al mismo tiempo que otro. Pero con una apropiada situación de los datos se puede evitar, o por lo menos aliviar. El problema persiste en el caso de variables compartidas (como un semáforo). Permite un elevado grado de paralelismo entre tareas no relacionadas, pero se presentan problemas de contención cuando hay procesos con memoria compartida. Para n procesadores y n memorias, se necesitan n conmutadores, lo que hace que el coste sea elevado.
2

Almacenamiento De Interconexión Múltiple
En este esquema, cada unidad funcional puede acceder a cada unidad de almacenamiento, pero sólo en una conexión de almacenamiento específica. Se suministra una conexión de almacenamiento por unidad funcional. A las conexiones de almacenamiento suelen asignárselas prioridades permanentes para resolver los conflictos entre las unidades funcionales que intentan acceder al almacenamiento al mismo tiempo.

Página 99 de 164

Una posibilidad interesante del esquema de interconexión múltiple es la capacidad de restringir el acceso de varias unidades de almacenamiento a ciertos subconjuntos de procesadores y procesadores de entrada/salida, creando así ciertas unidades de almacenamiento privadas. Una red omega está basada en conmutadores 2x2, cada uno con dos entradas y dos salidas. Cada conmutador puede dirigir cualquiera de las entradas a cualquiera de las salidas y todos los procesadores pueden acceder a todas las memorias. Puede conectar simultáneamente todas las entradas a todas las salidas, suponiendo que no haya dos procesadores que intenten acceder al mismo tiempo al mismo módulo de memoria. En caso contrario, se puede presentar contención de acceso a la memoria. Los principales problemas que puede presentar son: a) Cuando algunos módulos de memoria se referencian con mucha frecuencia, se produce un punto caliente, que bloquea ciertas rutas de comunicación durante largos períodos de tiempo. b) Retraso en la conexión. Si hay n memorias y n procesadores, habrá log2n etapas, cada una con n/2 conmutadores.

Conexiones Hipercubo
Un hipercubo es un cubo n-dimensional que cumple las siguientes condiciones: a) b) c) d) Está formado por 2*n procesadores. Cada procesador tiene n conexiones directas con otros procesadores. La máxima distancia entre dos nodos cualesquiera (número de enlaces físicos entre nodos) es n. Es una estructura recursiva formada por dos hipercubos de dimensión n-1.

En las figuras se ilustra un hipercubo de dimensión 4 en el que cada vértice es un procesador con su correspondiente memoria. Las principales ventajas de este esquema son:

a) La complejidad de los hipercubos crece logarítmicamente con el número de nodos, por lo que son una buena base para realizar sistemas escalables. Se considera la solución idónea para sistemas grandes (dimensión 10 a 1.024 procesadores). b) La comunicación entre nodos adyacentes es directa y el mayor retardo entre dos nodos está acotado por la dimensión del hipercubo.

Organ i zación De Los Sistemas O perativos De M ult i procesa dores Sistemas Ligeramente Acoplados v/s Sistemas Rígidamente Acoplados
El multiprocesamiento ligeramente acoplado incluye la conexión de dos o más sistemas de computación independientes por medio de un enlace de comunicación. Cada sistema tiene su propio sistema operativo y almacenamiento. Los sistemas pueden funcionar de forma independiente, comunicándose cuando sea necesario. Los sistemas separados pueden acceder a los archivos de los otros a través del enlace de comunicación y, en algunos casos, pueden intercambiar tareas a procesadores menos cargados para lograr un cierto grado de equilibrio de la carga (sistemas RPC; Remote Procedure Call). Página 100 de 164

el maestro. Las tres organizaciones básicas de los sistemas operativos para multiprocesadores son: • • • Maestro/satélite Ejecutivo separado para cada procesador Tratamiento simétrico (o anónimo) para todos los procesadores. cada procesador tiene su propio sistema operativo y responde a interrupciones de los usuarios que operan en ese procesador. escáner. velocidad y confiabilidad) los tipos de monitores (resolución. Consideraciones finales Al momento de implementar estructuras de hardware de acuerdo a las necesidades del cliente. la lista de procesadores conocidos por el sistema y el acceso a estas tablas debe controlarse con cuidado. Una de las mayores diferencias entre los sistemas operativos de multiprocesadores y uniprocesadores está en su organización y estructura en relación con los procesadores múltiples. Algunas tablas contienen información global de todo el sistema: Por ejemplo. modem) los periféricos asociados (impresoras. Ejecutivos Separados En la organización de ejecutivos separados. etc. Simétrico El multiprocesamiento simétrico es la organización más complicada de implementar y la más poderosa. tamaño) los dispositivos de comunicación a incorporara (tarjetas de red. usando técnicas de exclusión mutua. Maestro/Satélite La maestro/satélite es la organización más fácil de implementar y suele construirse por extensión directa de un sistema de multiprogramación existente. se habrá de tener presente una serie de características generales de Hardware como los tipos de discos a implementar (capacidad. puede ejecutar el sistema operativo.El multiprocesamiento rígidamente acoplado utiliza un solo almacenamiento para varios procesadores y un solo sistema operativo que controla mientras compara todos los procesadores y el hardware del sistema.) y. por supuesto. los medios de respaldo a implementar. Página 101 de 164 . o hacer referencia a cualquier unidad de almacenamiento. cualquiera de los cuales puede ser utilizado para controlar cualquier dispositivo de entrada/salida. sólo un procesador particular. Todos los procesadores son idénticos. En la organización maestro/satélite. El sistema operativo administra un grupo de procesadores idénticos. Un procesador satélite tan sólo puede ejecutar programas del usuario.

El resto del núcleo se puede dividir en dos partes principales. Página 102 de 164 . 2) Librerías: Contiene un procedimiento para cada llamada al sistema. formada por los programas de utilidades estándar. compiladores. tanto de caracteres como de bloques. Diagrama del núcleo: Interfaz de llamadas al sistema Control de procesos Sincronización y Comunicación Sistema de archivos Gestión de Memoria Caché buffer Bloque Controladores de periféricos Planificador Carácter Control de hardware HARDWARE El núcleo es el auténtico sistema operativo interactuando directamente con el hardware hay unas rutinas primitivas. que se crea cuando se arranca el sistema y que corresponde al proceso intercambiador. que están asociadas al control de procesos y a la gestión de archivos y de la E/S. de la gestión de memoria y de la sincronización y comunicación entre ellos. Es el auténtico SO. sus interfaces son: a) de llamadas al sistema b) de librería c) del usuario. excepto: a) El proceso 0. para lo que se disponen de distintos controladores de periféricos. (En el estándar Posix se especifica el interfaz de la librería y no el de la llamada al sistema). que permite al software de alto nivel tener acceso a funciones específicas del núcleo. que interpone un buffer del sistema en la memoria principal entre el espacio de direcciones del usuario y el dispositivo externo. 3) Utilidades: shell. se utiliza un método de caché de disco. Control Y Sincronización De Procesos En Unix todos los procesos se crean mediante órdenes del programa de usuario. que corresponden al bloque de control del hardware y en la parte superior está el interfaz de llamadas al sistema.CAP ÍT UL O IX ALGUNOS SISTEM AS OPERAT IVOS Sistema O perat ivo Unix El sistema operativo UNIX se compone de las siguientes capas: 1) Núcleo: Primera capa inmediata al hardware. La parte de control de procesos se responsabiliza de la planificación y distribución de los procesos. 4) Usuario: Desde el terminal el usuario llama directamente a estos programas de utilidades. editores y otras para manejo de archivos. La parte de gestión de archivos intercambia datos entre la memoria y los dispositivos externos. En la transferencia orientada a bloques. Además.

El programa de usuario puede a su vez crear procesos hijos. Es el proceso init. pero libera un registro para unir a su proceso padre conteniendo código de salida y algunas estadísticas. Puede ser una dirección virtual en el espacio de memoria del núcleo o del usuario. 3) Contexto a nivel de sistema: Contiene el resto de información que el sistema operativo necesita para gestionarlo. Espera en memoria secundaria. Espera en memoria principal. Consta de: a) Contador de programa: Especifica la dirección de la siguiente instrucción que ejecutará el procesador. excepto el 0). Cuando se conecta un usuario al sistema. pero mediante el uso de la memoria virtual. Hay una sola copia del área de memoria compartida. cuyo tamaño es fijo y permanece con el proceso a lo largo de la vida de éste. c) Tablas de páginas y de regiones: Definen la correspondencia entre las direcciones virtuales y las físicas y campos de permisos. Es una parte de la tabla del proceso mantenida por el sistema operativo. Consiste en una parte estática. el proceso 1 crea un proceso de usuario para él. que es creado por el proceso 0. c) Puntero de pila: Especifica la dirección de la siguiente entrada en la pila del núcleo o del usuario. esperando a que ocurra un suceso. Ejecución en modo núcleo. dependiendo del modo de operación. b) Registro de estado del proceso: Contiene el estado hardware de la máquina relacionado con el proceso. y una parte dinámica. Componentes: a) Entrada a la tabla del proceso: Define el estado del mismo y contiene información de control que siempre está accesible al sistema operativo. pero el núcleo lo adelanta y hace un cambio de contexto para planificar otro proceso (similar al estado 3). Es el estado final de un proceso. cada proceso percibe que dicha región está en su espacio de direcciones. 8) Creado o nonato: existe pero aún no está preparado (estado inicial de todo proceso. Adelantado: se está ejecutando desde el modo núcleo al modo usuario. No existe. Página 103 de 164 . Preparado para ejecución en memoria secundaria.b) El proceso 1. Además dispone de una pila de usuario y de la memoria compartida que ocupa el espacio de direcciones virtuales del proceso.. antecesor de todos los demás procesos. que varía en tamaño a lo largo de la vida del proceso. 9) Zombi: el proceso ejecuta una llamada exit al sistema. La imagen de un proceso se organiza como la unión de tres partes: 1) Contexto a nivel de usuario: Se divide en área de texto (sólo lectura) que contiene las instrucciones del programa y área de datos. Se utilizan por el gestor de memoria. Un proceso puede estar en uno de estos nueve estados: 1) 2) 3) 4) 5) 6) 7) Ejecución en modo usuario. 2) Contexto de registro: Almacena la información del estado de un proceso cuando no se está ejecutando. Preparado para ejecución en memoria principal. d) Registros de propósito general: Contienen datos generados por el proceso durante su ejecución. b) Área (o usuario): Contiene información de control del proceso que necesita ser accedida sólo en el contexto del proceso.

sólo se puede atender una señal de cada tipo y no se puede crear una cola de señales. Todo este trabajo se realiza en modo núcleo en el proceso padre. Permiten a los procesos enviar a cualquier proceso cadenas de datos formateados. si el valor es cero. Tanto el padre como el hijo se ejecutan en el mismo trozo de código. Al proceso hijo se le asigna un identificador (ID). b) Etiquetados: se pueden comunicar procesos no relacionados. el núcleo actualiza un bit en un campo de señales de la entrada de la tabla del proceso. con excepción de la memoria compartida. y un valor cero al hijo. para reflejar que ahora también pertenecen a otro proceso más. cuando el núcleo realiza un algoritmo de planificación para distribuir a otro proceso) necesita acceder a la información sobre dicho proceso. 3) Transferir el control a otro proceso. Cuando se envía una señal a un proceso. e) Parte dinámica del contexto a nivel de sistema de un proceso: Consiste en un conjunto de capas (pila LIFO). En Unix hay cuatro llamadas al sistema para los mensajes: Página 104 de 164 . Cada una contiene la información necesaria para recuperar la capa anterior. Cuando un proceso hace una petición de fork. incluyendo el contexto de registro. 5) al proceso hijo se le asigna un estado de “preparado para ejecución”. Cuando el núcleo termina estas funciones. Comunicación Entre Procesos 1) Tubos. algunas veces (por ejemplo. Creación De Procesos La creación de un proceso en Unix se hace mediante la llamada del sistema fork: “pid fork()”. La distinción entre la entrada a la tabla del proceso y el área refleja el hecho de que el núcleo de Unix siempre se ejecuta en el contexto de algún proceso. éste es el proceso hijo. 2) Transferir el control al proceso hijo. Mecanismo software que informa a un proceso de que ha ocurrido algún suceso asíncrono (similar a una interrupción hardware). los dos procesos tienen copias idénticas de sus contextos a nivel de usuario excepto por el valor pid devuelto. el núcleo realiza las siguientes funciones: 1) 2) 3) 4) En la tabla de procesos se le asigna un espacio. 6) Se devuelve al proceso padre el ID del hijo. Hay un bit para cada tipo de señal. Los procesos pueden enviar señales a los otros con la llamada al sistema kill. Usan un modelo de productor-consumidor. Clase de tubos: a) No etiquetados: sólo se pueden comunicar procesos relacionados (un proceso con sus descendientes). en caso contrario. Pero. Se hace una copia de la imagen del proceso padre. Se incrementan los contadores de algunos archivos propiedad del padre. 2) Señales. Permiten transferir datos entre procesos y sincronizar la ejecución de los mismos.d) Pila del núcleo: Contiene los marcos de la pila de los procedimientos del núcleo como un proceso ejecutado en modo núcleo. es el padre. o bien el núcleo las puede enviar internamente. y hay una cola FIFO donde un proceso escribe y el otro lee. 3) Mensajes. La diferencia está en que cuando se vuelve de fork se verifica el parámetro devuelto. el distribuidor puede: 1) Permanecer en el proceso padre. A la vuelta de la llamada fork. Muchas de las veces se ejecutará según el interés de este proceso.

b) semctl: Operaciones de control sobre el conjunto. msgctl: Tiene las opciones de poner y devolver parámetros y de eliminar descriptores. shmdt: Elimina esta región del espacio de direcciones virtuales del proceso. Campos principales: a) Número lógico del dispositivo de intercambio que tiene la página. msgsnd: Envía un mensaje. shmctl: Manipula varios parámetros asociados con la memoria compartida. ID del último proceso que manipulo al semáforo. donde id es el descriptor devuelto por semget. Consta de los siguientes elementos: a) b) c) d) Valor del semáforo. Describe la copia en el disco de la página virtual. Algunos campos: Página 105 de 164 . Llamadas al sistema: a) b) c) d) e) shmget: Crea una nueva región de memoria compartida o devuelve una existente. Se describe cada uno de los marcos de la memoria real. b) Número de bloque. Sintaxis: oldval = semop (id.a) b) c) d) msgget: Devuelve un descriptor del mensaje. Los marcos disponibles se enlazan juntos en una lista de marcos libres. 5) Semáforos. se hace primero una copia para los otros procesos. Si un proceso escribe en una página compartida. que indica si se permiten operaciones de escritura. Hay varios punteros utilizados para crear listas dentro de la tabla. que indica si ha sido referenciada. g) Bit de protección. c) semop: Manipular los valores de los semáforos. Número de procesos que esperan que el valor del semáforo aumente. 3) Tabla de datos del marco de página. f) Bit de validación. El índice de la tabla es el número del marco. e) Bit de referencia. El valor devuelto oldval es la última operación sobre el semáforo. shmat: Une una región con el espacio de direcciones virtuales de un proceso. Es la forma más rápida de comunicación. shmdt: Adhiere una región al espacio de direcciones virtuales de un proceso. Posibilita que los procesos compartan parte de su espacio de direcciones virtuales. msgrcv: Recibe un mensaje. c) Copias para escritura. Una para cada proceso. Se crean en conjuntos y las llamadas al sistema son: a) semget: Crear y tener acceso a un conjunto de semáforos. Pueden sincronizar la ejecución de los procesos. 4) Memoria compartida. que señala que la página está en memoria principal. con una entrada para cada una de las páginas d e memoria virtual del proceso y los siguientes campos: a) Número del marco en la memoria virtual. count). oplist es un puntero a un arreglo de operaciones y count es el tamaño del arreglo. 2) Descriptor de bloques del disco. b) Edad o tiempo que ha estado la página en la memoria sin referenciarse. Gestión De La Memoria Muchas de las implementaciones Unix hacen uso de memoria virtual paginada. c) tipo de almacenamiento: una unidad de intercambio o un archivo ejecutable. d) Bit de página modificada. En Unix System V se usan unas estructuras de datos prácticamente independientes de la máquina: 1) Tabla de páginas. oplist. Número de procesos que esperan que el valor del semáforo sea igual a cero.

Si esto no es suficiente. Para archivos más grandes. según es necesario. terminales). y los archivos que ocupan poco espacio se pueden acceder sin indexación. Todos los tipos de archivos de Unix se gestionan por el sistema operativo mediante los i-nodos. b) Orientados a caracteres: Los otros tipos (impresoras. 2) Directorio. pudiéndose leer y escribir como otro archivo más. 4) Tabla de intercambio. Sistema De Archivos Tipos de archivos en Unix: 1) Ordinarios. Tubos etiquetados. Los periféricos pueden ser: a) De bloque: Periféricos de almacenamiento de acceso arbitrario (como discos). más los punteros asociados a los i-nodos. Un puntero a otra entrada de esta tabla. todos los periféricos están asociados a un archivo especial. 4) Etiquetados. Los archivos se ubican dinámicamente.a) b) c) d) e) Estado del marco de página: disponible o no. Estos corresponden a una tabla que contiene los atributos y las direcciones de los bloques del archivo. Dispositivo lógico que contiene una copia de la página. b) Identificador de la página en la unidad de almacenamiento. Donde los mecanismos de buffer son: a. 3) Especiales. Ventajas de los i-nodos: Son relativamente pequeños y de tamaño fijo. Subsistema De Entrada/Salida En Unix. La E/S se puede realizar: a) Con buffer. Campos: a) Contador de referencia: número de puntos de entradas de la tabla de páginas a una página en el dispositivo de intercambio. hay otras dos direcciones para una doble y triple indexación. Corresponden a los periféricos. de forma que se pueden mantener en memoria principal. que se gestiona por el sistema de archivos. Contienen la información del usuario y los programas de aplicación o de utilidades del sistema. Los archivos pequeños tienen toda su información en el propio i-nodo. ya que ambos están localizados en la memoria principal. Tiene una entrada por cada página en el dispositivo de intercambio y existe una por cada dispositivo. una de las direcciones del i-nodo es la dirección de otro bloque del disco en el que hay otra tabla de índices. a una lista de páginas libre y a una cola hash de páginas. por lo que los bloques de un archivo en el disco no son necesariamente contiguos. La transferencia de datos entre la caché del buffer y el espacio de E/S del proceso del usuario se realiza mediante DMA. Contienen listas de nombres de archivos. Contador de referencia: número de procesos que referencia la página. Página 106 de 164 .1) Caché de buffer: Es esencialmente una caché de disco. Número de bloque.

a.2)

Colas de caracteres: Resulta apropiado para los periféricos orientados a caracteres. El dispositivo de E/S escribe una cola de caracteres que son leídos por el proceso o viceversa. En ambos casos se utiliza un modelo de productor-consumidor.

b) Sin buffer. Es simplemente una operación de DMA entre el periférico y el espacio de memoria del proceso. Este es el método más rápido. Sin embargo, un proceso que esté realizando una transferencia de E/S sin buffer está bloqueado en la memoria principal y no puede intercambiarse.

Página 107 de 164

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

Se tiene el siguiente cuadro de versiones para el sistema operativo Netware:
VERSIÓN Netware Lite SERVIDOR Nº USUARIOS Pequeños grupos. De 2 a 25. OBSERVACIÓN

No dedicado.

Es punto a punto.

Netware 2.2

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

Esta pensado para empresas de tamaño medio o pequeños grupos dentro de grandes empresas. Limitación en las prestaciones de conexión con INTERNET. Posee todas las prestaciones del 3.11, y además un interfaz gráfico para el usuario que facilita el manejo del sistema operativo.

Netware 3.11

Netware 4.X

Dedicado y multiprotocolo.

Tiene soporte para redes de área amplia.

Netware 4.X
El sistema operativo Netware está en el servidor. La forma de compartir información es mediante el proceso cliente/servidor. Este proceso cliente/servidor se basa en la estructura ilustrada en la imagen de la derecha:

Protocolo Básico De Netware
La característica fundamental es que el sistema operativo Netware trabaja con 32 bits. Netware se basa en que todo esta controlado por el servicio de directorios de Netware (NDS) que va a trabajar con todos los recursos de la red de modo global. Este servicio de directorios va a tratar a todos los recursos de la red como objetos. Un objeto puede ser un usuario, un archivo, un terminal, etc. Eso permite que la gestión de la red sea sencilla y que se puedan enlazar una red con otras gracias al servicio de directorios. Página 108 de 164

Dentro de estas características se tiene que hablar del protocolo básico de Netware (NCP). El NCP es el que define los servicios disponibles a todos los usuarios de la red. Esos servicios se agrupan en distintas categorías: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Acceso a archivos (apertura y cierre de archivos; lectura y escritura). Bloqueo de archivo. Seguridad. Control de la asignación de recursos. Notificación de eventos. NDS (servicio de directorios de Netware). Sincronización entre servidores. Conexión y comunicación. Servicio de impresión. Gestión de la red.

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

Niveles Internos De Netware
El soporte para los sistemas operativos MS-DOS, OS/2 y UNIX, así como el interfaz gráfico de WINDOWS, vienen incluidos en Netware. Para el sistema operativo Macintoch y FTAM no vienen en Netware, pero puede instalarse como una opción. El sistema operativo Netware utiliza una interfaz abierta de enlaces de datos (ODI) que elige el protocolo de comunicación adecuado dependiendo de la placa que tenga conectado. Esta interfaz es la que hace posible que pueda usar un multiprotocolo. La IPX es el protocolo que realmente utiliza Novell por convenio, aunque Novell acepta cualquiera. El soporte de sistema operativo es la que se encarga de dar servicios al usuario. El soporte de espacios de nombres quiere decir que los sistemas operativos no tienen un convenio entre ellos (por ejemplo, hay sistemas operativos que distinguen mayúsculas y minúsculas y otros no). Netware, por su parte, dejará usar el sistema operativo que se tenga en el equipo.

Netware, también soporta una amplia variedad de topologías. Las topologías más usadas y vendidas como estándares son las señaladas en la próxima página:

Página 109 de 164

La FAT sería como el índice de un libro. Para que esto sea eficiente. esa parte de memoria no podía ser utilizada por otra aplicación. Netware utiliza toda la memoria con cada aplicación que la necesite y después la elimina y pudiendo ser utilizada por otra aplicación. tiene una opción donde se pueden mantener recuperables todos los archivos borrados hasta que se encuentre sin espacio en el disco. La gestión de sistemas de archivos: Esta mejor gestión se realiza gracias a: 1. también tiene que haber un mecanismo que saque archivos que no se usen para que puedan entrar otros archivos que.X.5 802. Escritura en dos planos: Se basa en que N etware prioriza las lecturas respecto a las escrituras. se toma y almacena la información en bloques de 8 Kb.11 de Netware. A nivel lógico es un bus lineal o estrella CABLEADO Coaxial o par trenzado. Par trenzado o coaxial Coaxial. Cuando la tarea terminaba. o los archivos que no se usan durante un tiempo determinado. se aumenta hasta en un 63% la capacidad del disco. Netware no tiene zonas reservadas de memoria como una sola entidad. se estén usando más. en ese momento. Búsqueda por el método del ascensor: Intenta mejorar el tiempo de acceso al disco. 6. Caché de disco: Va a disminuir el número de accesos al disco. Este tamaño de disco por defecto es de 8 Kb. donde se ve la posición de todos los archivos. Netware los comprime. de modo que cuando se va a trabajar con el disco.NORMA 802. Con esto. 4. Aquellos archivos que previamente comunique el administrador o el usuario. Si el sistema operativo encuentra bloques que están parcialmente usados. Reserva parcial de bloque: Al instalar Netware se establece un tamaño de disco por defecto.4 NOMBRE Ethernet Token ring Arcnet ACCESO CSMAICD Paso de testigo. 7. La turbo FAT forma un índice de la tabla de asignación de archivos (la indexada) para sí lograra acceder a los archivos mucho mas rápido. 5. Sistema de archivos con recuperación: Netware permite recuperar los archivos que se han borrado. si esta en el sexto y va para abajo. Turbo FAT: La tabla de asignación de archivos es la FAT de un disco. 3. y dependiendo del tipo de aplicación. A nivel lógico es un anillo. la ejecutaba en una de esas zonas. A partir de la versión 4. Características De Rendimiento Una de las características por la que Netware es tan potente es que el rendimiento que ofrece es muy bueno. tenía una gestión de memoria que se basaba en dividir la memoria en cinco zonas (o pool). Compresión de archivos: Un archivo comprimido es la forma de almacenar archivos en un disco para que ocupe menos espacio. La caché de disco consiste en que los archivos que se utilizan más frecuentemente se retienen en un buffer de memoria que se llama caché. que se utilizan para almacenar archivos pequeños o para fragmentos de otros archivos. Con Netware se p uede controlar cuanto tiempo puede meterse un archivo como recuperable. El método del ascensor p rioriza la lectura basándose en la mejor forma de acceder a ella a partir de la posición actual de la cabeza de lectura. y además. recoge primero al del quinto). Página 110 de 164 • 2. Este buen rendimiento está basado en dos factores: • La gestión de la memoria: Netware permite gestionar sobre cuatro Gibabytes. Paso de testigo TOPOLOGÍA A nivel lógico es un bus lineal. los subdivide en bloques de 512 bits. La versión 3. (Ejemplo: ascensor del Corte Inglés: Aunque lo llame antes el del segundo que el del quinto. .3 802.

En caso de que se pierda la FAT original. entrar en sólo en lectura. En caso de que se haya producido un error los datos vuelven a ser escritos desde el caché de disco. El NDS es una manera que tiene Netware de usar todos los archivos de la red de manera única. puedes instalar dos discos duros en el servidor duplicando uno en el otro. Así. Monitorización de la energía: Las UPS son unos módulos que cont rolan el estado del suministro de energía eléctrica que está conectada al servidor. es decir. • • • • • • Página 111 de 164 . comprueba mediante una lectura. Ese daño puede ser tanto un daño físico como por la destrucción de un virus. Netware deshace las transacciones incompletas cuando reanuda el servicio. • Seguridad a nivel de cuenta/clave de acceso: Si un usuario no tiene asignado un nombre de usuario para entrar en la red. Restricciones sobre las cuentas: El administrador restringe los accesos a las diferentes utilidades de los usuarios. indica los usuarios que se esta trabajando con así. que los datos se han grabado correctamente. por ejemplo. Hot fix: Detecta y corrige errores de disco durante la ejecución. etc. De manera. Duplicación de directorios: Permite duplicar el directorio raíz de un disco para ofrecer una copia de seguridad en caso de que el original resulte dañado. no se podrá conectar al sistema operativo de la red. Seguridad de objetos y archivos: El administrador puede asignar a los usuarios unos privilegios o derechos efectivos. se detecta que el servidor está trabajando con la alimentación de reserva. Los trustees determinan el modo en que se accede a la red. • • • 2. Esto es debido a que los NDS (árbol de directorios de Netware) son únicos. o bien un usuario no introduce bien la clave de acceso. Netware. Tolerancia a fallos del sistema (STF): Permite tener redundancia en cuanto a hardware del equipo. tendrás dos discos duros con la misma información. Seguridad entre redes: Netware permite conexión entre redes.Características De Protección De Datos Las características que ofrece Netware en protección de datos son en dos sentidos: 1. • Verificación de lectura tras escritura: Cada vez que se realiza una escritura en disco. llamados trustees. a si se pueden modificar cosas. que si en un momento determinado. en el servidor. Trustees es algo parecido a los atributos de archivos de MS-DOS. se pasa al duplicado. Seguridad: Se basa principalmente en el acceso a la red. Esto lo hace Netware sin que el usuario lo note. En ese momento se empiezan a guardar los datos y luego el sistema baja. El modo se refiere. Fiabilidad: Se basa en la realidad de los datos que están dentro de la red. Duplicación de la FAT: Se mantiene un duplicado de la FAT. Sistema de control de transacciones (TTS): Ante una caída del servidor.

Servicios de comunicación: Son básicamente dos los que permiten la comunicación entre usuarios de una red y usuarios de una red distinta: Mensaje y correo. Esta comunicación se hace posible gracias a Netware Comunication Service.12 sólo lo permite en un servidor de archivos. 6. los servicios de impresión gestionaran las colas de impresión y el modo de acceso de los usuarios a las impresoras. gestionar todo el sistema. Servicios de impresión: Hace que con esta versión de Netware se puedan compartir hasta 256 impresoras. A esto se le llama una utilidad de consola. 4. Monitor: Es un módulo cargable que permite la visualización de información sobre el estado del servidor y de las distintas actividades de la red. Administración remota: El administrador de la red puede gestionar la red desde una unidad remota. desde una estación de trabajo. Netware administrator (Windows): Es una utilidad que trabaja en entorno Windows y permite al administrador. no obstante en la 4. Sistemas de facturación: Existen unas utilidades mediante las cuales se pueden realizar estadísticas y seguimientos del tiempo de uso del servidor y de los distintos recursos de la red. Además. • • Página 112 de 164 . No se tiene control sobre directorios y archivos. Los NDS ofrecen una visión global de todos los recursos de la red y todos los recursos se tratan como objetos. Servicio de copia de seguridad: Existe una utilidad que es el sbackup que permite establecer copias de seguridad en distintos dispositivos físicos.11 en el servidor o en una estación de trabajo como tarea dedicada. Permite al administrador del sistema modificar las características del servidor. Servman: Es una utilidad que sólo se puede ejecutar desde el servidor. Servicios distribuidos de directorios: El hecho de que existan directorios distribuidos está controlado gracias a la gestión mediante los NDS. 3. Servicios de administración: Son distintas utilidades que permiten controlar el estado de la red: • • • Netadmin (DOS): Funciona en entorno de MS-DOS.Otras Prestaciones 1. Los servicios de impresión de Netware se pueden instalar en la versión 3. 2. 5. y eso es lo único que la diferencia de Netware Administration Service. que son los servicios de comunicación de Netware.

Hardware Abstraction Layer). de forma que cada proceso espera que algún cliente (un programa de aplicación u otro módulo del sistema operativo) realice una petición de alguno de sus servicios. Cada servidor se implementa como uno o más procesos. etc. El objetivo de esta capa es que el núcleo vea por igual a todo el hardware. Incluye módulos para funciones específicas que hacen uso de los servicios básicos dados por el núcleo: a) b) c) d) e) Gestor de objetos. Application Programming Interface).Sistema O perat ivo W indow s NT En Windows NT. El subsistema gestor de E/S incluye el sistema de archivos. Proporciona un interfaz para el software que se ejecuta en modo usuario. además de ser una forma natural para el cálculo distribuido. que realiza la operación pedida y contesta mediante otro mensaje. la sincronización y los manipuladores de excepciones e interrupciones. de forma que si falla no corrompe al resto del sistema. Aplicaciones Subsistemas protegidos Servicios del sistema Gestor de objetos Gestor de procesos Gestor de memoria virtual ………… Subsistemas Gestor de E/S Otras Características • Núcleo Capa de abstracción del hardware (HAL) Hardware Arquitectura cliente/servidor. Gestor de procesos. se pueden construir otros API sin ningún conflicto. puesto que cada servidor se ejecuta en un proceso separado con su propia partición de memoria y protegido de otros servidores. Este último tiene acceso a los datos del sistema y al hardware. se distingue entre el software orientado a las aplicaciones (que se ejecuta en modo usuario) y el software del sistema operativo (que se ejecuta en modo privilegiado o modo núcleo). el gestor de caché. independientemente de la plataforma que use. Página 113 de 164 . Gestor de memoria virtual. al igual que en otros sistemas operativos. Esta arquitectura simplifica mucho el sistema operativo básico. puesto que no proporciona ningún API. los manejadores de dispositivos y de red. También se aumenta la fiabilidad. y evita que el núcleo interaccione directamente con el hardware. Para ello realiza la conversión entre las órdenes y las respuestas del hardware genérico y el de una plataforma específica. 3) Subsistemas. Proporcionan un interfaz de usuario gráfico o de línea de órdenes y el interfaz de programación (API. 4) Servicios del sistema. Esta petición se hace enviando un mensaje al servidor. que se encargan de la comunicación con el usuario final. Por encima de estas capas están los subsistemas protegidos. Parte central del sistema operativo que se encarga de gestionar la planificación y conmutación de contexto. mientras que le resto del sistema lo tiene limitado. Facilidades de llamada a los procedimientos locales. Monitor de referencia de seguridad. 2) Núcleo (kernel). El sistema operativo se divide en cuatro capas: 1) Capa de abstracción del hardware (HAL.

• Soporte de hebras dentro de los procesos. Esto corresponde al concepto de programa en ejecución. Los objetos etiquetados tienen asociada información de seguridad en la forma de un testigo de acceso que se puede utilizar para limitar el acceso al objeto. hebras. semáforos. Características de los procesos: 1) 2) 3) 4) Son implementados como objetos. que son: procesos. Estas funciones pueden desactivarse. Los objetos etiquetados tienen un nombre que puede usarse por otro proceso para obtener un manejador del objeto. archivos. Cuando un proceso crea un objeto no etiquetado. archivos. cuya responsabilidad es crear y eliminar los objetos según la petición de las aplicaciones y otorgar acceso a servicios de objetos y datos. llamados atributos. se pueden asignar distintos procesadores a hebras del mismo proceso. por lo que la estructura de los procesos y los servicios proporcionados por el núcleo son relativamente sencillos y de propósito general. semáforos y relojes. Puede tener una o más hebras. llamados servicios) y las clases e instancias de objetos (una clase de objetos es una plantilla en la que se guardan los atributos y servicios de un objeto y se definen ciertas características del mismo). Las hebras del mismo proceso pueden intercambiar información entre ellas a través de la memoria compartida y tener acceso a los recursos compartidos del proceso. Llevan incorporadas las capacidades de sincronización. Las estructuras de datos que residen completamente dentro de un ejecutable no se representan como objetos. se tiene la familia de objetos de sincronización. En estos procesadores de Intel se incluye un hardware especial para soportar la segmentación y la paginación. La única forma de referenciarlo es mediante su manejador. El núcleo no mantiene ninguna relación con los procesos que crea (ni de padre-hijo). el resto se diseñan específicamente para soportar la sincronización. Los objetos pueden estar etiquetados o no. sucesos. Para implementar los servicios de sincronización entre las hebras. Una hebra es una unidad básica de ejecución que se puede interrumpir para que el procesador pase a otra hebra. Si se dispone de varias CPUs. Aunque no es un sistema operativo orientado a objeto puro. este concepto es equivalente al de proceso en otros sistemas operativos. el gestor de objetos devuelve un manejador al objeto. En NT los objetos se emplean en los casos donde los datos están abiertos para acceso en modo usuario o cuando el acceso a los datos es compartido o restringido. Los tres primeros tienen otros usos. pudiéndose elegir entre las opciones de memoria: Página 114 de 164 . La concurrencia entre los procesos se consigue porque hebras de diferentes procesos se pueden ejecutar concurrentemente. Sí usa la encapsulación (los objetos consisten en uno o más ítems de datos. hebras. y uno o más procedimientos que se pueden ejecutar sobre estos datos. Utilización de los conceptos de diseño orientado a objetos. NT maneja todos los tipos de objetos mediante un gestor de objetos. En Windows NT un proceso es un conjunto de una o más hebras junto con los recursos del sistema asociados. Gestión De Memoria Se adopta el tamaño de página de 4 Kb del 80486 como base de su esquema de memoria virtual. Desde el punto de vista del planificador y del distribuidor. • Control Y Sincronización De Procesos El diseño de los procesos en NT está marcado por la necesidad de proporcionar soporte para diferentes entornos de sistemas operativos. relojes y ventanas. Entidades representadas por objetos son procesos. ya que no está implementado en un lenguaje orientado a objetos. Un objeto (un proceso o una hebra) puede referenciar a otro objeto (un archivo o un semáforo) abriendo un manejador del mismo. Esto permite que cada subsistema del sistema operativo emule una funcionalidad y estructura de procesos particular. Y no incorpora la herencia ni el polimorfismo.

cada dirección virtual (o lógica) se compone de un campo de referencia al segmento de 16 bits (dos de ellos destinados a los mecanismos de protección y catorce para especificar el segmento) y un campo de desplazamiento en el segmento de 32 bits. Generalmente los niveles 0 y 1 corresponden al sistema operativo. pero no segmentada. pero no paginada. El gestor de memoria puede usar un directorio de páginas para todos los procesos. 2) Los atributos de acceso de un segmento de datos. Hay dos formas de protección asociadas con cada segmento: 1) Nivel de privilegio. El primer nivel es un directorio de páginas con 1024 entradas. Cada tabla de páginas contiene 1024 entradas y cada entrada corresponde a una página de 4 Kb. de 4 Mb cada una con su propia tabla de páginas. El directorio de páginas de la tarea actual está en memoria principal. Un programa sólo puede acceder a segmentos de datos para los que le nivel de acreditación es menor o igual que el de clasificación. Segmentación Cuando se emplea segmentación. pero las tablas de páginas pueden estar en memoria virtual. Mientras que el espacio de direcciones físicas que se puede direccionar con 32 bits es de 4 Gb. El mecanismo de paginación utilizado para hacer esto consiste en una operación de búsqueda en una tabla de dos niveles. Indican si el permiso es de lectura/escritura o de sólo lectura. Hay cuatro niveles de privilegio (del 0 al 3). Paginada. un directorio para cada proceso o una combinación de ellos. Segmentada y paginada.1) 2) 3) 4) Ni segmentada ni paginada. con lo que se divide el espacio de memoria de 4 Gb en grupos de 1024 páginas. los programas emplean direcciones lineales (corresponden a las direcciones en el espacio de memoria del proceso que utilizan 46 bits) que hay que convertir en una dirección real de 32 bits. el nivel 2 a algunos subsistemas y el 3 a las aplicaciones. Segmentada. que cuando se trata de un segmento de datos corresponde a la clasificación del mismo y si es un segmento de programa es su acreditación. Para un segmento de programa expresan si es de lectura/ejecución o de sólo lectura. Página 115 de 164 . Paginación Cuando no se usa segmentación. El espacio de memoria virtual que puede ver un usuario es de 246=64 Tb.

diseñado para sustituir a Windows 95 como el estándar de las empresas. Las funciones mejoradas de Windows 2000 Professional. seguridad de Windows NT Workstation. Instalación más confiable: Windows 2000 Professional rastrea los problemas durante la instalación. proporciona detección de hardware y soporta Plug and Play. Instalación Más Sencilla Una de las mejoras que se experimenta al utilizar Windows 2000 es que su sistema de instalación es más confiable y simplificado. Proporciona las mejores características de Windows 98.Sistema O perat ivo W indow s 2000 Microsoft Windows 2000 Professional se considera como el sistema operativo ideal para computadores móviles y de escritorio. lo que automatiza la instalación y la configuración de los dispositivos de hardware. La primera vez que Windows 2000 Professional inicia. aun las instalaciones para las que no se ha preparado un script son más simples y más confiables. Obliga a validarse: Utilizar CTR+ALT+DEL antes de conectarse. Windows 2000 Professional cuenta con soporte para la creación de redes pequeñas. Automatiza más tareas: Windows 2000 Professional tiene más supuestos acerca de la manera en que se deberían instalar los computadores. administrar y dar soporte. por lo que ofrece estándares de seguridad. el sistema operativo genera un reporte de registro de problemas. de manera que no se necesita contestar más preguntas que el nombre y contraseña. Su instalación es sumamente fácil. para que un administrador los resuelva. se obtiene como resultado el más sencillo y eficiente sistema operativo de escritorio hasta ahora concebido (según sus propios fabricantes). Para conectarse. primero se ve una pantalla de conexión simplificada que oculta los nombres de dominio. por lo tanto. ayuda a proteger el sistema operativo de algún acceso no autorizado. Cuando ésta se haya completado. la instalación continuará. ocultar esta opción puede reducir los costos del escritorio de ayuda. A continuación se detallan varios ejemplos de lo que hace Windows 2000 Profesional durante una instalación sin script: Simplifica la instalación: Pantallas y las preguntas que se presentan durante el proceso de instalación poseen un lenguaje sencillo y no técnico. para estar al día en apoyo móvil y asegurarle que podrá aprovechar la nueva generación de equipos y provee un escritorio más manejable y más sencillo de implementar. al disminuir las posibilidades de que cambien el dominio en forma inadvertida. No es frecuente que necesiten cambiar su dominio. Configuración de pequeñas redes: Con Windows 2000 Professional es posible configurar redes pequeñas al sólo conectar los computadores configuradas con Windows 2000 Professional en un HUB. y en caso de que surja algún problema que no sea crítico (lo que no evitará que el computador arranque). Además. lo que traduce en una disminución del costo total de propiedad. Fue desarrollado con base en el poder de Windows NT Workstation. Este Windows constituye hasta ahora el más sencillo sistema operativo para configurar o trabajar en un computador o navegar en Internet. es la manera más segura para que el usuario se conecte a Windows 2000 Professional. Pues al agregarle el poder y la seguridad de Windows NT Workstation. Windows 2000 posee un escritorio mucho más poderoso y personalizable que incorpora cualidades como: Página 116 de 164 . ayudan a los usuarios a aprovechar completamente sus capacidades. Además. Además. así como la interfaz de Windows 98. Los administradores pueden hacer un script completo del proceso de instalación. confiabilidad industrial y un mejor desempeño. soporta scripts de instalación que requieren una participación mínima. se ajusta a una predeterminación que busca un servidor DHCP (Protocolos de configuración de host dinámico).

Gestión de hardware: Windows 2000 Professional ha sido mejorado para trabajar con una mayor variedad de componentes hardware. frecuencia de uso y si está disponible el soporte técnico en línea. software y problemas con el sistema. Como resultado. estaciones de trabajo y computadores de servicios que incluyen tarjetas de sistema. además el asistente. Visualizador de eventos: Al utilizar los registros de eventos del visualizador de eventos. En Windows 2000. y específicamente da soporte a Plug and Play. con lo que perfecciona el apoyo a sistemas móviles y agrega soporte para los últimos modelos de equipos. Plug and Play y manejo de potencia. así cuando Windows 2000 detecta un hardware nuevo. Plug and Play permite cambiar la configuración de un computador con la seguridad de que todos los dispositivos trabajarán juntos y que la máquina iniciará correctamente después de hacer los cambios. Usado para instalar y administrar programas COM+ de una interfaz gráfica. Además. el soporte para Plug and Play fue optimizado para laptops. Uno de sus principales objetivos de diseño es crear un ambiente de trabajo consistente para las personas que usan computadores móviles. que permiten instalar el hardware y las aplicaciones sin comprometer el sistema ni incurrir en pausas significativas. servicios y aplicaciones) en un solo árbol de consola. ya sea que estén conectadas o desconectadas de la red. La Evolución Plug & Play Plug and Play es una combinación de soporte de hardware y software que permite al sistema del computador reconocer y adaptar cambios en la configuración de hardware con poca o nula intervención del usuario. Lo Mejor De Versiones De Las Anteriores Lo mejor de Windows 98: Windows 2000 Professional incluye y mejora las funciones clave de Windows 98. la administración de potencia y el bus serial universal (USB) facilitan trabajar con hardware. muestra una lista del hardware instalado y ayuda a verificar para que esté seguro de que cada dispositivo está trabajando de manera adecuada. Administrar los documentos fuera de línea y de las páginas de la Red es mucho más automatizado. las personas pueden trabajar en los Página 117 de 164 . lo que les permite trabajar en forma más productiva. El soporte para Plug and Play. que ofrece fácil acceso a propiedades administrativas del computador. escáner y otros dispositivos de imagen. Herramientas administrativas: En el panel de control mejorado.Confiabilidad y soporte mejorado para cambios de configuración: Windows 2000 Professional soporta aplicaciones autorreparables. o para automatizar tareas administrativas utilizando un lenguaje de programación o script. cámaras. Un Panel de control mejorado organiza las herramientas de manera más lógica. y bus serial universal (USB). El asistente Agregar/Quitar Hardware ayuda a resolver problemas de hardware. verifica las configuraciones para el dispositivo e instala el controlador correcto. USB es un tipo de bus que facilita aún más la instalación de diferentes tipos de periféricos compatibles. Está diseñado para que las personas que trabajan fuera de línea (desconectados de una red). versión. además de monitorizar eventos de seguridad de Windows 2000. La administración del computador combina varias herramientas administrativas de Windows 2000 (Herramientas de sistema. ya que las mejorías en el sistema indican y actualizan la administración. tengan la misma experiencia que las que trabajan en línea. b) Administración de Sistema. Estas herramientas incluyen: a) Servicios de Componentes. administración de energía. se puede compilar información acerca del hardware. como espacio de disco utilizado. Gestión de aplicaciones: El cuadro de diálogo Agregar/Eliminar Programas de Windows 2000 Professional proporciona mayor información acerca de las aplicaciones. las herramientas avanzadas están en el mismo cuadro de diálogo. incluidos teclados. verifica las configuraciones actuales para el dispositivo e instala el controlador correcto. almacenamiento. cuando Windows 2000 Professional detecta un hardware nuevo.

Cada archivo se encripta utilizando una clave generada de manera aleatoria. los administradores pueden especificar que todas las operaciones de Windows Installer se ejecuten con privilegios del sistema local. Esta característica protege archivos en caso de pérdida o robo de laptops. siempre que los archivos estén en el volumen NTFS. El EFS reside en el kernel del sistema operativo y utiliza una agrupación de no búsqueda para almacenar las claves de encriptación de archivo. el servicio Windows Installer puede todavía realizar instalaciones para la p ersona. En un ambiente Windows 2000. que aprovecha la arquitectura CryptoAPI en Windows. Para los computadores que requieran estar conectadas a UNIX. La encriptación de archivos puede utilizar cualquier algoritmo de encriptación simétrico. EFS se dirige particularmente a los problemas de seguridad que surgen por las herramientas disponibles en otros sistemas operativos.0. Tecnología de encriptación EFS: Se basa en la encriptación de clave pública. Cada archivo tiene una clave de encriptación única. Algunas de las características que se pueden encontrar en Windows 2000 Professional son: Sistema de Archivos encriptado: Este nuevo sistema de encriptación EFS permite codificar archivos en el disco duro. con lo que se evita varias formas de ataque con base en criptoanálisis. Microsoft ofrece un complemento llamado Windows NT Servicios para UNIX que incluye un cliente/servidor NES. que permiten acceder archivos desde un volumen NTFS sin una verificación de acceso. y sincronizar con facilidad esos recursos. Los servicios de encriptación y desencriptación están disponibles en Windows Explorer. EFS ofrece la tecnología principal de encriptación de archivos para almacenar los archivos NTFS encriptados en disco. el administrador puede aprobar ciertas aplicaciones. carpetas o sitios Web estando conectados o no. en caso de que no exista.mismos archivos. una mayor seguridad. la habilidad de operar de manera integrada con la red actual. remoción y reparación) se ejecuten como cuenta del sistema local. lo que asegura que nunca estén en el archivo de búsqueda. si renombra un archivo desde un directorio encriptado a un directorio no encriptado en el mismo volumen. un cliente/servidor Telnet. que es independiente del par de clave privada/pública de la persona que lo utiliza. Sólo las aplicaciones aprobadas por el administrador se ejecutan con privilegios elevados (en un ambiente Windows NT 4. la encriptación de directorios se refuerza de manera transparente. Cuando se crean archivos temporales. El poder de Windows NT: Microsoft Windows 2000 Professional se basa en la fuerza de Windows NT para proporcionar confianza. así como en sistemas de cómputo de oficinas. Seguridad Basada En Elevados Estándares De Desempeño Windows 2000 Professional ofrece una infraestructura segura que permite seleccionar los niveles de protección para la información y las aplicaciones que se necesitan. El EFS genera de manera automática un par de clave pública para la encriptación de archivos de un usuario. Página 118 de 164 . a los que únicamente se puede tener acceso vía autorización de Windows NT. El EFS está integrado firmemente con el NTFS. pero ciertos productos no pueden aprobarse en forma granular). De esta forma. La encriptación y desencriptación de archivos se soporta sobre una base de directorio completo o por archivos. Todos los archivos (y subdirectorios) creados en un directorio marcado para encriptación se encriptan en forma automática. Interacción del usuario: La configuración predeterminada d EFS permite que los usuarios inicien la el encriptación de archivos sin esfuerzo administrativo. herramientas Scripting y sincronización de clave. los atributos del archivo original se copian a los archivos temporales. al especificar que todas las operaciones de configuración en tales aplicaciones (instalación. así como un nivel de desempeño bastante efectivo. el archivo permanece encriptado. los administradores pueden asegurar el registro y los sistemas de archivo. usando el cambio basado en la política de grupo y la administración de configuración. lo que lo hace seguro para volver a nombrarlo. el EFS también encripta sus copias temporales. Si encripta un archivo.

Los algoritmos criptográficos combinan matemáticamente datos de texto simple de entrada y una clave de encriptación para generar datos encriptados (texto cifrado). Autenticación de claves públicas: Windows 2000 Professional soporta certificados estándar X. Convenio de claves secretas a través de clave pública: Otra función de la criptografía PK es que permite que dos partes acuerden una clave secreta compartida. Criptografía de claves públicas: La criptografía es la ciencia de proteger datos. El sistema operativo Microsoft Windows 2000 introduce una infraestructura de claves públicas (PKI) completa para la plataforma Windows. son necesarios para efectuar la transformación. al agregar usuarios a los grupos de Windows 2000 a los que se otorgan los derechos de acceso correspondiente. empezando sólo con el texto cifrado. algunos datos adicionales. El Kernel de Windows 2000 realiza una verificación de acceso en cada intento para abrir un controlador de objetos. Con un buen algoritmo criptográfico. sin establecer claves secretas compartidas anteriores. Las más importantes de estas son las firmas digitales. y utiliza las funciones de ampliación del protocolo. instalar y administrar aplicaciones basadas en PK. Las siguientes líneas describen los usos principales de la criptografía PK. Firmas Digitales: Crear y validar firmas digitales se basa en una transformación matemática que combina la clave privada con los datos que se van a firmar. no es posible. otros incluyen NTLM para compatibilidad con versiones anteriores SSL y la Seguridad de nivel de transporte (TLS) estándar de IETF para autenticación de clave pública. Los algoritmos PK existentes tienen un alto nivel computacional con relación a los algoritmos de claves secretas. invertir el proceso de encriptación y derivar los datos de texto simple. Si una persona recibe datos de otra. esto los hace adecuados para la encriptación de Página 119 de 164 . probando que tiene acceso a la clave privada asociada con la clave pública que esa persona utilizó para emitir el intercambio de señales. Esta infraestructura amplía los servicios criptográficos de claves públicas (PK) basados en Windows que fueron introducidos durante los últimos años. o preferencia a un grupo.0. Autenticación: La autenticación de entidades garantiza que el transmisor sea la entidad que el receptor piensa que es. ésta decodifica el intercambio de señales y lo envía de nuevo a la primera persona. El control de acceso y la auditoría se administran al configurar las propiedades de seguridad del objeto para otorgar permisos al usuario. la autenticación distribuida. Windows 2000 integra el protocolo Kerberos en el modelo de seguridad distribuida de Windows 2000 existente. Esto permite a los desarrolladores aprovechar los mecanismos de seguridad de confidencialidad compartida o el mecanismo de seguridad basado en PK. La autenticación Kerberos proporciona varias funciones que soportan los objetivos de rendimiento y seguridad para las redes empresariales. como lo han hecho otras arquitecturas de seguridad. desde el punto de vista computacional. (3) cualquier modificación de los datos firmados invalida la firma digital. Funcionalidad de las claves públicas: La separación entre claves públicas y privadas en la criptografía PK ha permitido la creación de varias nuevas tecnologías.Sistema de autenticación Kerberos: La implementación del protocolo Kerberos V. El protocolo Kerberos es sólo uno de los protocolos de seguridad soportados en Windows 2000. La autorización se administra de manera central. utilizando redes de comunicaciones públicas y no seguras. convenio de claves secretas a través de claves públicas y sin claves secretas compartidas anteriores. como una clave de desencriptación.509 v3. por lo que proporciona un conjunto integrado de servicios y herramientas administrativas a fin de crear. Encriptación de datos masivos sin claves secretas compartidas anteriores: La cuarta tecnología principal habilitada por la criptografía PK es la capacidad de encriptar datos masivos. de tal forma que: (1) sólo la persona que posee la clave privada pudo haber creado la firma digital. y después le envía un intercambio de señales encriptado con la clave pública de la segunda persona. (2) quien tenga acceso a la clave pública correspondiente puede verificar la firma digital y. que ha pasado a través de una amplia revisión de la industria y es bien conocido en la comunidad de seguridad.5 en Windows 2000 se basa en RFC-1510. Negociación protegida individual (SPNEGO) de mecanismos de seguridad y la seguridad IP (IPsec) para la seguridad a nivel de la red utilizando la autenticación de clave compartida o clave pública. según sea necesario.

En su forma más simple. Las CA subordinadas se conocen a menudo como CAs intermedias o emisoras. normalmente se combinan las tecnologías PK y de claves secretas. los dos usuarios confían en su clave secreta compartida porque la acordaron mutuamente o la intercambiaron en una manera segura. Los Servicios de certificación incluyen un módulo de políticas predeterminadas que es adecuado para emitir certificados destinados a entidades empresariales. cada persona sólo necesita proteger su propia clave privada (independientemente). puede modificarse fácilmente o mejorarse para cubrir otras consideraciones de políticas o ampliar el soporte CA para varios escenarios de extranet o internet. que se incluyen con Windows 2000. PKI sería una infraestructura. Entonces. Las CA emitirían un paquete de certificados completamente interoperables basados en un protocolo estándar de solicitud de certificados. En un mundo ideal. y no habría ambigüedad en la interpretación de sintaxis o gramática en ninguna parte del proceso. los componentes secundarios son avalados por certificados emitidos por una CA principal. las aplicaciones los evaluarían en una manera consistente (incluso si han sido revocados). Esto incluye identificación de la entidad solicitante y validación de que el certificado solicitado está permitido bajo la política de seguridad PK de dominio. a pesar de que en general una jerarquía contiene múltiples CA con relaciones principales y secundarias claramente definidas. Confianza y validación: Microsoft Certificate Services.grandes cantidades de datos. En contraste. que une una clave pública de CA a su identidad y a otros atributos manejados por políticas. facilidad de administración y consistencia con un creciente número de productos CA comerciales y de terceros. En este modelo. Jerarquías de certificación: Windows 2000 PKI supone un modelo CA jerárquico. La CA en la parte superior de una jerarquía se conoce generalmente como una raíz CA. proporciona un medio para que una empresa establezca certificados de autenticidad (CA) con facilidad a fin de soportar requerimientos empresariales. una jerarquía CA consta de una sola CA. De hecho puede haber varias jerarquías de interés sin conectar. Éste fue elegido por su capacidad de escalabilidad. al utilizar la criptografía PK. Proteger y confiar claves criptográficas: En la criptografía de claves secretas. Para obtener las ventajas de la criptografía PK junto con la encriptación eficaz masiva. y cada uno convino guardarla para evitar el acceso de una tercera parte mal intencionada. Página 120 de 164 . no existe un requerimiento de que todas las CA compartan una CA principal común de nivel superior (o raíz).

Obviamente. Desde manejadores para las tarjetas de red más populares hasta SLIP/PPP. Esta es la mascota oficial de Linux. librerías y programas de usuario) es de libre distribución. Son estas utilidades las que realmente forman el sistema operativo. el ordenador está inactivo. es muy difícil establecer quiénes son los principales usuarios de Linux. lo que permite tener más de una sesión abierta en la consola de texto y conmutar entre ellas fácilmente. No obstante. que fue elegida por el creador de Linux para representar el sistema operativo que el había creado. soporta consolas virtuales. que permiten acceder a una red TCP/IP por el puerto serie. junto a otros programas o también juegos. telnet. Y todo lo que se hace para Linux (código del núcleo. más conocidas como ordenadores IBM PC o compatibles. NNTP y SMTP. Pero el Kernel por si solo no forma todavía un sistema operativo. se sabe que actualmente Linux está siendo utilizado ampliamente en soportar servicios en Internet. Hoy en día todo el mundo asocia a este simpático pingüino con el sistema operativo. se debe primero la pregunta “¿Qué el Unix?”. drivers. ha sido Internet ya que a través de ella se ha podido demostrar que se puede crear un sistema operativo para todos los usuarios sin la necesidad de fines lucrativos. Cada paquete esta escrito para un sistema operativo y una máquina determinada. Justamente para Unix existe una multitud de software libre. organización o empresa que así lo desee. Linux implementa todo lo necesario para trabajar en red con TCP/IP. El sistema Linux es compatible con ciertos estándares de Unix a nivel de código fuente. Linux se distribuye libremente y puede ser obtenido y utilizado sin restricciones por cualquier persona. ¿Por Qué Utilizar Linux? Si se posee un computador. Además. Por su naturaleza. La razón es que Linux es un proyecto iniciado para crear una versión de trabajo de Unix en máquinas basadas en Intel. En Linux también se implementa el control de trabajos POSIX (que se usa en los shells csh y bash). Por todo ello. o leyes de comportamiento. las pseudoterminales (dispositivos pty). como por ejemplo el procesador de textos. incluyendo el IEEE POSIX. Algunos de ellos. han sido desarrollados específicamente para Linux. como el ext2fs. y teclados nacionales mediante manejadores de teclado cargables dinámicamente. Todos estos componentes. el cual es un conjunto complejo de códigos informáticos que proporcionan los protocolos de proceso operativo. System V y BSD. se debe tener un sistema operativo. Lo que realmente se entiende por el término de Linux es el Kernel. sin duda. también es utilizado por miles de usuarios en sus computadores personales. También se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a ficheros). el corazón de cualquier sistema operativo tipo Unix. Y también se han portado los clientes de TCP/IP. lo utilizan Centros de Educación alrededor del todo el mundo para sus redes y sus clases. lo utilizan cadenas de supermercados. lo que significa que estos están también disponibles para Linux. Sin un sistema operativo. lo utilizan empresas productoras de equipamiento industrial para vender como software de apoyo a su maquinaria. Página 121 de 164 . El apoyo más grande. Todo se complementa con XFREE86tm que es el sistema X Window para sistemas Unix a base de PC. Linux soporta diversos sistemas de archivos para guardar los datos.1. Los programas de aplicaciones son paquetes de software que adquiere para realizar determinadas actividades. Fue desarrollado buscando la portabilidad de las fuentes: todo el software gratuito desarrollado para Unix se compila en Linux sin problemas.Sistema O perat ivo Linux Para comprender Linux. es incapaz de interpretar y actuar sobre los comandos introducidos o de ejecutar un programa sencillo. como FTP. estaciones de servicio y muchas instituciones del gobierno y militares de varios países. sin necesidad de que tenga que firmar ningún documento ni inscribirse como usuario. forman el sistema que generalmente se denomina Linux.

listo para lo que se pueda utilizar en cuanto se encienda la máquina. la diferencia entre los diferentes shell que puedan existir radica en la síntesis de la línea de comandos. entre el usuario y el sistema. un intérprete de comandos. Linux puede ser que en algún determinado hardware no se ejecute correctamente o dañe archivos que residan actualmente en su sistema. Los usuarios pueden personalizar sus shells adecuándolos a sus propias necesidades específicas. Linux consigue el proceso de prioridad supervisando los procesos que esperan para ejecutarse. Un shell funciona como interprete entre el usuario y el kernel (cerebro o corazón del sistema operativo). No se debe confundir esto con el hecho de que muchos usuarios puedan actualizar el mismo archivo simultáneamente. Fue diseñada para plataforma Intel pero ha sido fácilmente exportado a diversos tipos de sistema. el Shell de un usuario funciona más como un entorno operativo que el usuario puede controlar. y se ejecuta hasta que el sistema operativo da prioridad a otro programa para que se ejecute.Como en el caso de los sistemas operativos. Muchas aplicaciones para Linux están disponibles de forma gratuita en Internet. Es básicamente la interfaz. Ningún otro sistema operativo le ofrece las mismas características con la potencia de Linux. Más de una persona puede trabajar con la misma versión de la misma aplicación al mismo tiempo. No esta obligado a actualizarse cada poco tiempo y a pagar sumas considerables para actualizar todas sus aplicaciones. Multitarea La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación. Un shell es como el command. al igual que el propio código de Linux. a la vez que le mantiene al margen de los caprichos de marketing de los distintos proveedores comerciales. lo que ofrece una oportunidad económica de aprender y utilizar uno de los sistemas operativos más populares del mundo. Sin embargo. Shells Programables El shell programable es otra característica que hace que el sistema operativo sea el más flexible de los existentes.com de MS-DOS. el usuario no tendrá control sobre como efectuar modificaciones o cuando se efectúan actualizaciones. Página 122 de 164 . es decir. Linux se comporta de forma muy estable en muchos sistemas. El shell de Linux explora cada línea de comandos para determinar si su formación y deletreado son coherentes con sus protocolos. así como los que están ejecutándose. El proceso de exploración del shell se denomina análisis. Se le denomina multitarea prioritaria porque cada programa tiene garantizada la oportunidad de ejecutarse. Cada usuario de un sistema Linux tiene su propia interfaz de usuario o Shell. Así. Descripción De Las Funciones De Linux Las ventajas que se derivan de la utilización de Linux parten de su potencia y flexibilidad. Un grave inconveniente de Linux que se debe tener en cuenta es que ningún proveedor comercial lo apoya por lo que la obtención de ayuda no se soluciona mediante una simple llamada telefónica. Así pues tiene acceso al código fuente para modificar y ampliar el sistema operativo para adaptarlo a sus necesidades algo que es imposible hacer con otros sistemas operativos. el modo de comunicación. Otra de las características referentes a este tema es que Linux es multiplataforma. El sistema programa entonces cada proceso para que disponga de las mismas oportunidades de acceso al microprocesador. Son el resultado de muchas funciones incorporadas en el sistema. Se deseará utilizar Linux porque es el único sistema operativo que en la actualidad está libremente disponible para proporcionar posibilidades multitarea y multiproceso para múltiples usuarios en plataformas de hardware IBM PC o compatible. ejecutando cada uno de ellos una o más aplicaciones a la vez. Multiusuario La capacidad de Linux para asignar el tiempo de microprocesador simultáneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicios a diversos usuarios a la vez.

transferir archivos. Linux dispone de varios protocolos como PPP. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informática puede ser disfrutada sin límites ni monopolios. Sin embargo. Hasta hace poco. Independencia De Dispositivos Bajo Linux Linux comparte muchas de las mismas ventajas de Unix en cuanto a independencia de los dispositivos. el cual garantiza que el kernel y el nuevo dispositivo se fusionan del mismo modo cada vez que se solicita el servicio del dispositivo. desde el punto de vista del entorno Unix multiusuario se convierte en un factor decisivo en un lugar de trabajo productivo. etc. terminales. Con Linux ofrece total acceso a Internet ya que el mismo nació y es creado en Internet. más dispositivos de hardware se añadirán a los distintos kernels y distribuciones de Linux. Es por ello que antes de instalar Linux se ha de elegir qué distribución interesa más. Poco a poco se han ido añadiendo un número de dispositivos demasiado elevados. pero las empresas pueden cobrar por el trabajo de agrupar un determinado conjunto de esas aplicaciones y hacer más sencilla su instalación. Linux no sacrifica en ningún momento la creatividad. con la condición que la persona que compra ese producto puede realizar la misma acción o simplemente hacer copias para todos aquellos que lo quieran sin tener que pagar más. Un universo de posibilidades de comunicación a recopilar las distintas aplicaciones escritas para Linux y ponerlas en uno u otro formato. Posee gran variedad de comandos para comunicación interna entre usuarios que se encuentren ubicados en plataformas distintas (gracias a utilidades como telnet). etc. Página 123 de 164 . El problema comienza cuando el usuario no puede utilizar un periférico porque un sistema operativo no puede acceder a él. mandar e -mail. así que es mucho más sencillo de lo que parece. Esta licencia es la garantía que afirma la absoluta libertad de este sistema operativo. La licencia garantiza la libre distribución de las aplicaciones. TCP/IP. La principal diferencia que existe entre los distintos tipos de shell radica en la sintaxis de la línea de comandos. con la cual cualquier persona puede modificar un programa y venderlo según el desee. en última instancia como se dispone del código fuente el usuario puede modificar el kernel para que trabaje con los nuevos dispositivos. Independencia De Dispositivos Bajo Unix A simple vista. unidades de disco y módems. Cada vez que se necesitan nuevos dispositivos el administrador del sistema añade al kernel el enlace necesario denominado controlador de dispositivo. SLIP. que se desarrolla de forma coordinada y con actualizaciones sistemáticas. Concluyendo se puede decir que un shell conecta las ordenes de un usuario con el Kernel de Linux y al ser programables se puede modificar para adaptarlo a tus necesidades. Cada shell tiene sus características propias. Slackware y Debian) las cuales se diferencian por su método de instalación y por los paquetes (software) que viene incluido. Comunicaciones Y Redes Ningún otro sistema operativo incluye unas posibilidades de conexión en red tan amplias y flexibles. tal y como lo hacen algunas compañías informáticas. PLIP. Linux es distribuido mediante una serie de distribuciones (como RedHat. permite comunicar instantáneamente con el mundo y realizar todo tipo de operaciones como hablar con otro usuario. Por lo que Linux también posee un kernel adaptable y cuantos más programadores participen en el proyecto de Linux. con diferentes facilidades de instalación. Lo único que no varía para nadie es el núcleo del sistema. Todo el software de Linux está regido por la licencia de GNU. quizás no parezca importante que los periféricos de su sistema informático puedan funcionar de forma autónoma o independiente. No es necesario aprender a programar con todos los tipos de shell ya que sabiendo uno se conocerán todos. los sistemas informáticos generalmente sólo podían admitir periféricos como impresoras. mantenimiento y configuración.Linux permite la utilización de distintos tipos de shell programables. Unix evita los problemas que supone agregar nuevos dispositivos contemplando cada periférico como un archivo aparte.

desde hace algunos años ha sido también adoptado en instalaciones científicas de diversa índole (física. ya que todas son esencialmente superiores a los restantes sistemas operativos disponibles en la actualidad. Por ejemplo. el más probado de los algoritmos de seguridad. desarrolladores del popular programa de oficina WordPerfect. Se han dedicado grandes esfuerzos a combinar. las aplicaciones de escritorio son un área con poco desarrollo en este ambiente. Para ayudarse a mantener la seguridad surgen nuevas herramientas constantemente. tanto para detectar intrusos como para encontrar fallos en el sistema y evitar así ataques desde el exterior. la existencia continuada de variaciones de Unix no es motivo suficiente de alarma. diseñada por Patrick Volkerding a partir de SLS Linux.slackware. Debian. Muchos han sido portados a Linux.com). según los hackers. Slackware Una de las primeras distribuciones que surgió fue Slackware (http://www.Portabilidad De Sistemas Abiertos El impulso por la estandarización de Unix no ha pasado desapercibido. Mandrake. Como esto es una ardua tarea no tardan en surgir compañías dedicadas a reunir todos esos programas facilitando la tarea de crear un sistema Linux funcional. Linux Es Seguro El concepto de seguridad en redes de ordenadores es siempre relativo. Caldera. este impulso se deriva de sus muchas variaciones disponibles actualmente. Además de WordPerfect hay otros programas de oficina disponibles para Linux. Linux es sólo el núcleo del sistema operativo. SuSe. de nada servirá la contraseña y todos sus esfuerzos. En la actualidad existe un sin número de estas compañías pero sólo se mencionarán las mas importantes dentro del contexto mundial: Slackware. Si se quiere que el sistema sea seguro. Distribuciones En sí. quienes han venido trabajando de cerca con la comunidad de Linux y ofrecen una versión de WordPerfect en forma gratuita para uso personal. pero necesita aplicaciones y programas para hacer algo. Oracle. HP y Dell. ciencias espaciales y otras). biología. Un caso ejemplar es Corel. pero haciendo h onor a la verdad. Pero claro. Aunque estos esfuerzos han caído en saco roto. Netscape. Son de particular interés los proyectos en el área de computación de alto rendimiento. Otras compañías internacionales que utilizan y desarrollan productos para Linux incluyen a IBM. El sistema de contraseñas que protege el acceso al sistema se basa en el algoritmo DES. para poder aconsejarles e incluso regañarles. también muchas compañías grandes han introducido soporte para Linux en su línea de productos. no hay sistema cuya seguridad sea perfecta. se debe administrar de tal forma que se tengan controlados a los usuarios en todo momento. en caso de que cometan alguna imprudencia. Recientemente. donde Linux se está utilizando intensiva y extensivamente. si después permitimos a sus usuarios poner como contraseña su nombre de usuario. Un sistema puede ser seguro para un determinado tipo de actividades e inseguro para otras. Sin embargo. y unir todas les versiones de Unix en una única versión del sistema operativo que lo englobe todo. Red Hat. todos ellos se encuentran en Internet dispuestos a que cualquiera los baje y los instale en su sistema. todo ello con el fin de mantener la propia seguridad de sus datos y de los nuestros. ¿Qué Se Puede Hacer Con Linux? Las áreas de aplicabilidad de Linux son varias. compaginar. otros han sido creados específicamente para Linux. no sería recomendable guardar secretos de estado en un sistema Linux al que pudiera acceder mucha gente y careciese de un administrador dedicado absolutamente a la tarea ya que. En sus inicios fue muy utilizado por personas relacionadas con ciencias de la computación. Esta tuvo una gran aceptación al principio hasta llegar a ser la Página 124 de 164 . por muy bueno que sea el algoritmo.

Esta distribución es la más popular en Europa y tiene un gran soporte para diferentes lenguas incluido el español. la versión del programa. Además. además viene con una gran cantidad de paquetes: 1300 en la versión 6. excelente auto-detección de dispositivos. Sls y The Linux Quartely CD-ROM (entre otras). Aparte de estas distribuciones existen otras no tan conocidas como: Mcc Interin Linux.de) es una distribución de una compañía alemana la cual combina el sistema de paquetes de Red Hat (RPM) con una organización derivada de Slackware. Debian Debian (http://www. validez de la firma electrónica y las dependencias con otros programas o librerías.suse. un determinado paquete puede necesitar de otro para su correcto funcionamiento. Es importante mencionar que Debian también ofrece una versión de su distribución basado en otro kernel diferente a Linux: GNU Hurd. Actualmente ha perdido terreno a favor de distribuciones más modernas. Esto no quiere decir que si es la primera vez que se va a instalar Linux y se tiene una Debian a mano va a ser casi imposible instalarla. Tamu Linux. Es u de las na más fáciles de instalar y configurar. Las nuevas distribuciones han implementado y adoptado dos sistemas de instalación de archivos RPM (RedHat Package Manager) y DEB (Debian Package Manager). De esta forma. Mandrake Mandrake (http://www.com) surge originalmente como un clon de Red Hat el cual incorporaba las bondades del ambiente integrado KDE con la estabilidad e instalación de Red Hat.com) es la distribución más popular del mercado hoy en día. Esta compañía ostenta asociaciones con empresas tan importantes como Novell e IBM. el cual no tiene control de versiones ni dependencias.3 Gbytes en disco duro. que se identifica por la extensión rpm o deb y proporciona una descripción de lo que contiene. Muy sencilla de instalar. Hoy en día es considerada una de las distribuciones más vendidas en el mundo Red Hat Red Hat (http://www. una distribución completamente gratis. es bastante completa y estable gracias a su sistema de instalación de paquetes DEB. siendo relegada a aplicaciones especializadas. su ubicación en el sistema.1) y un excelente conjunto de aplicaciones comerciales en su distribución oficial. con un sistema de instalación muy amigable llamada Lizard (Linux Wizard). por lo que se dice que es dependiente del otro. instalador gráfico (6.com) ha creado su propia distribución llamada OpenLinux.2 lo que implica una instalación completa de alrededor de 5. basada también en el sistema de paquetes de Red Hat. Lst. SuSE SuSE (http://www. Sin embargo.linux-mandrake. por ejemplo. Es. Es una distribución pensada para entornos comerciales. sin restricción de licencias en donde todo el software es GNU/GPL y no incluye software comercial.redhat. tal vez sea algo difícil para alguien que empieza por primera vez con Linux. por lo tanto. siendo emulada por muchas otras. Cada programa distribuido de esta forma es un archivo comprimido. la cual incluye paquetes comerciales como las aplicaciones de oficina Aplixware y Corel WordPerfect.calderasystems.distribución más popular del mercado. Una de las debilidades de Slackware se encuentra en el sistema de instalación de paquetes. Página 125 de 164 .debian. Caldera Una compañía norteamericana llamada Caldera (http://www.org) es una distribución bastante popular que no está desarrollada por ninguna compañía comercial sino que es fruto del trabajo de diversos voluntarios en toda la comunidad de Internet. se garantiza el éxito del proceso de instalación de una aplicación y la estabilidad a largo plazo del sistema.

El modo de operación denominado "fuera de línea" permite: a. 5. b. 2. d. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. d. Sistema multiprogramado. d. Sistema de tiempo compartido. c. c. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. Los primeros sistemas operativos rudimentarios se crearon para que los ordenadores fueran más: a. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. sistemas de procesamiento en lote sofisticados. b. sistemas multiprogramados. 6. b. Página N° 126 de 151 . b. Los Los Los Los primeros sistemas. d. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. Todas las anteriores son falsas. Todas las anteriores son falsas. d. Fáciles de utilizar. b. los manejadores de dispositivos aparecieron como una mejora de: a. En el contexto de la evolución histórica de los sistemas informáticos. Interactivos. En todos los sistemas anteriores posee la misma importancia. c. La técnica de buffering permite: a. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. 4. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. II. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. Todas las anteriores son falsas. Productivos. El tiempo de respuesta es un parámetro de especial importancia en un sistema: a. c. Sistema de procesamiento en lotes.PREG UNT AS Y P RO BLE MAS RES UELT OS Unidades I. c. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. III & IV: Preguntas De Selección Múltiple 1. 3. b. d. sistemas de procesamiento en lotes sencillos. La técnica de spooling permite: a. c. Seguros.

sistemas de procesamiento por lotes. b. Una interrupción. d. c. c. En la planificación de procesos. d. 12. Una llamada al sistema. La secuenciación automática de tareas nació con: a. MSDOS. Para procesar simultáneamente operaciones de CPU con operaciones de E/S se requieren: a. d. La memoria principal.7. 8. 9. 11. Planificador de bajo nivel. 10. Un reloj del sistema. b. Un pareja de registros base y límite. b. b. Instrucciones hardware especiales de protección. Una impresora. Ninguna de las anteriores. d. Dispositivos rápidos de E/S. b. sistemas distribuidos. b. c. ¿Cuál de estos recursos es lógico?: a. Más seguro. Planificador de alto nivel. Interrupciones. c. El modo dual de operación consigue que el sistema informático sea: a. El procesador. c. Instrucciones privilegiadas. El fenómeno de espera activa por operaciones de entrada/salida se puede evitar utilizando: a. Una función o procedimiento. Más fácil de usar. c. c. 14. Acceso directo a memoria (DMA). b. d. el módulo que ocasionalmente mueve procesos de memoria hacia el disco y viceversa se llama: a. 13. Planificador de corto plazo. d. Interrupciones. b. Un archivo. El modelo "Cliente/Servidor" se utilizó en el diseño del sistema: a. Página 127 de 164 . Un proceso cuando desea solicitar un servicio al sistema operativo lo hace mediante: a. sistemas multiprogramados. d. Los Los Los Los primeros sistemas informáticos. Planificador de medio nivel. UNIX VMS. WINDOWS-NT. Un comando del sistema. Más veloz. c. d.

Administrador del procesador. Administrador de archivos. c. no multiprogramado y multiusuario. 17.. En general es imposible planificar procesos según el algoritmo SJF. Cuando se crea un nuevo proceso en el sistema. d. es cierto afirmar que: a. Página 128 de 164 . b. b. Procesamiento por lotes. Ejecutan código perteneciente al núcleo. Disminuye el tiempo medio de espera. c. b. multiprogramado y no multiusuario. c. Paralelismo. d. se denomina: a.15. Concurrencia. c. c. d. Suponga un sistema que planifica procesos según un Round Robin. b. c. Aumenta el número de cambios de contexto por unidad de tiempo. Diagrama de estado de proceso. c. b. Bloque de control de sistema. Bloque de control de proceso. Es un proceso que se ejecuta en modo privilegiado. b. Respecto del núcleo del sistema operativo. e. b y c son todos ciertos. Tiempo compartido. d. es cierto afirmar que: a. (a) y (b) son ciertas. En un sistema multihilo. los recursos utilizados por el proceso. Se incrementa el tiempo medio de respuesta. El algoritmo FCFS perjudica a los procesos intensivos en E/S. La multiprogramación implica necesariamente: a. b. Respecto de las llamadas al sistema. Los hilos de distintos procesos pesados comparten la misma pila. de tiempo compartido no multiprogramado. siempre ocurre que: a. 18. b. Contiene el código de los programas del sistema. Los hilos de un mismo proceso pesado comparten el mismo código. Sobre planificación de procesos. los recursos y archivos que está utilizando el mismo. d. es correcto afirmar que: a. c. 21. 19. El conjunto de datos donde se incluyen el estado de un proceso en cada momento. se puede afirmar que: a. ¿Cuál de estos sistemas no puede darse jamás?: a. Los enunciados a. Los hilos de un mismo proceso pesado comparten el mismo contador de programa. Aumenta la utilización de CPU. d. Contiene el código del programa de usuario. Reside de forma permanente en memoria principal. 20. 22. etc. Los métodos multicolas reparten proporcionalmente el tiempo disponible de CPU entre varias colas de procesos. d. Sólo se pueden ejecutar en modo privilegiado. Todas las anteriores son falsas. 16. Un Un Un Un sistema sistema sistema sistema por lotes multiprogramado. d. Todas las anteriores son falsas.

ocurre: a. Multiproceso. El modo dual de operación (dos procesadores) se adoptó para que el sistema informático fuese: a. c. d. Cuando un proceso en modo usuario intenta ejecutar una instrucción privilegiada. d. El tiempo que los procesos están activos pero sin ser ejecutados se denomina: a. Timesharing. Una excepción. Decidir a qué proceso se asigna la CPU. c. c. “en ejecución” a “bloqueado”. d. El llamado efecto convoy se produce cuando el procesador se planifica con una política: a. d. d. El sistema que permite que el computador sea más interactiva disminuyendo el tiempo de respuesta. e. Aumenta la fiabilidad en las transferencias de datos. Round-Robin con un cuanto de tiempo muy pequeño. Una interrupción. FCFS. ¿Qué ventaja aporta el uso de interrupciones en las operaciones de E/S frente a no usarlas?: a. Tiempo de servicio. De De De De “bloqueado” a “preparado”. “bloqueado” a “en ejecución”. b. SJF expulsivo. Realizar los cambios de contexto entre procesos. b. Un avatar (un cambio). Tiempo de ejecución. rápido. c. b. d. Decidir cuándo hay que desalojar al proceso que está en CPU. se conoce como: a. 24. 26. e. Más Más Más Más fácil de usar. Buffering. Tiempo de respuesta. c. El despachador es responsable de: a. SJF no expulsivo. 25. Monitor residente. b. d. b. d. Ninguna de las anteriores. c. Página 129 de 164 . Spooling. seguro. Mantener una mezcla adecuada de procesos intensivos en CPU y en E/S. Una llamada al sistema. 30. 27. c. 29. b. c. “preparado” a “bloqueado”. b. b.23. Contribuye a proteger la entrada/salida de accesos maliciosos. eficiente. 28. Aumenta la rapidez en las transferencias de datos. ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal?: a. Tiempo de espera. Permite comprobar fácilmente la finalización de las operaciones de E/S.

32. 34. Tiempo de respuesta. Tiempo medio de servicio. c. Tiempo medio de espera. b. Tiempo de inactividad. e. 36. Aparece primero la Multiprogramación y luego el procesamiento por Lotes. e. b. Acepta todo tipo de trabajos remotos. d. El procesamiento debe llevarse a cabo dentro de límites de tiempo o el sistema fallará. d. Tiempo de núcleo. hasta llegar a multiprogramación. El procesador esta dedicado a mandar respuestas rápidas al usuario. La manipulación de archivos por parte del sistema operativo consiste en: a. sin importar el comportamiento de los procesos en su interior. 33.31. Asignar una ubicación física para el archivo una vez que es llevado a Memoria Virtual. Una característica del sistema por Lotes es: a. Tener un Servidor y Estaciones de trabajo. La CPU ejecuta las diversas tareas alternando entre ellas. aunque este compuesto de múltiples procesadores. Página 130 de 164 . c. e. Todas las anteriores. Los computadores se comunican a través de distintas líneas de comunicación. c. b. El Concepto de Multiprogramación se refiere a que: a. b. c. Presentarse ante sus usuarios como un sistema uniprocesador tradicional. d. Se trabajo primero con Procesamiento por Lotes (o Batch. Poder copiar una base de datos a cada uno de las estaciones de trabajo. d. Cada dispositivo se activa sólo cuando es requerido. d. Leer un archivo desde un dispositivo de almacenamiento. e. Todas las anteriores. Poder realizar una conexión en punto geográficos distantes. En la evolución de los sistemas operativos: a. La falta de interacción entre el usuario y el trabajo mientras este se ejecuta. Se trabajo siempre con un Multiprogramación. 35. b. Se tiene un proceso padre que delega funciones a otros procesos. Aparecen juntos Multiprogramación y Tiempo compartido. Ninguna de las anteriores. La función de un sistema operativo distribuido es: a. optimizándose el uso de la CPU. c. Guardar archivos en un dispositivo una vez que el programa efectúa una llamada para grabarlo. como líneas telefónicas. Ninguna de las anteriores. Los distintos recursos del sistema se aprovechan de manera activa. e. d. b. Aparece el concepto de Memoria Virtual y luego Multiprogramación. El tiempo consumido cuando un sistema operativo no tiene ningún tipo de carga (colas vacías) corresponde a: a. c. e.

se conoce como: a. c. e. Expropiación y cooperación. c. 40. Proceso. Tiempo real. b. Ninguna de las anteriores. Usa siempre una cola de procesos listos ordenados en prioridad decreciente. Página 131 de 164 . d. Sólo a y d son correctas.37. b. e. 39. Expropiación y suspensión. Óptimo. Monoprogramación. d. b. La anomalía de Belady se produce en la política de asignación: a. Consiste en asignar el procesador a los procesos de mayor prioridad. la memoria y el resto de recursos disponibles en la instalación”. c. compartiendo el mismo almacenamiento principal. Una característica fundamental de los sistemas operativos de tiempo real es que: a. Sistema operativo. 43. 41. FIFO. c. Ninguna de las anteriores. c. c. e. 42. Proceso Distribuido. Kernel. Se usa sólo en los sistemas operativos multiusuarios. Multiprogramación. b. d. La conexión de computadores entre si a través de una gran variedad de dispositivos. e. Ninguna de las anteriores. c. Es indispensable para sistemas interactivos. Multiproceso. Ninguna de las anteriores. Alternativas (a) y (c). una política de administración del procesador no apropiativa: a. e. Tiende a que los trabajos cortos deban esperar por los trabajos largos. d. Competición y cooperación. Incrementa el rendimiento de la CPU. Los procesos sean reales sin importar el tiempo de ejecución de la operación. La planificación por prioridad: a. Ninguna de las anteriores. LRU. Las relaciones entre procesos del sistema operativo pueden ser: a. b. b. b. 38. e. d. En general. Competición y expropiación. Tiene restricciones de tiempo fijas bien definidas para ejecutar una operación. d. Consiste en que los procesos tienen todos la misma prioridad. La definición: “Conjunto de rutinas cuya misión es gestionar el procesador. e. corresponde a: a. Asigna el procesador a los procesos por periodos fijos de tiempo. LFU. d. Buffer. Son compatibles con los sistemas de tiempo compartido.

Página 132 de 164 . RR (Round Robin). b. b. Algoritmo Algoritmo Algoritmo Algoritmo Algoritmo SJF. Round-Robin por prioridad. FCFS (First Come First Served). por prioridad o Algoritmo SJF. c. por prioridad o Round-Robin. 45. e. Un proceso en tiempo real debe ser ejecutado con: a. d. e. SJF (Shortest Job First). La política de planificación de CPU que toma de la cola de procesos preparados el que necesite menos tiempo de ejecución para realizar su ejecución es: a. d.44. HRN (High Response Next). Ninguna de las anteriores. c.

etc). 3) Round Robin 4) Cola de Procesos 5) Planificador de trabajos 6) Núcleo del sistema operativo 7) Política no apropiativa 8) Interprete de comandos 9) Compilador __ Programa traductor de un lenguaje de alto nivel a código de maquina. variables. interpreta y codifica las ordenes del usuario __ Ejecutan un conjunto de tareas sin la intervención de un usuario u operador. __ Planificación adecuada para procesamiento por lotes. efectúa un control previo de todo el programa. __ Programas encargados de crear el entorno de trabajo de los usuarios.Preguntas De Términos Pareados Caso 1 Columna A 1) Sistemas Batch 2) SJF 3) Tiempo Compartido 4) Transición 5) PCB 6) Proceso distribuido 7) Memoria RAM 8) Gestión de excepciones 9) Sistema operativo __ Tratamiento de errores de un programa en ejecución. __ Almacena el estado general de un proceso cuando este no está activo. no corrige el error __ Errores de Hardware. __ Sistema operativo monousuario __ Decide cual será el próximo trabajo que se va a ejecutar Página 133 de 164 __ Requiere una respuesta inmediata. __ Se le da un tiempo de ejecución a un proceso y vencido su tiempo se le da el turno a otro. Columna A 1) Proceso en tiempo real 2) S. __ Programa que se instala en la memoria del computador en el momento de arranque. Se le asigna una alta prioridad. Columna B __ Programa de control que reacciona ante cualquier interrupción de eventos externos y da servicio a los procesos. 10) Editor 11) DOS 12) Multiprogramación . 10) Proceso 11) Monoprogramación 12) Editor __ Programa en ejecución con el entorno asociado (registros. __ Medio de almacenamiento primario __ Es la conexión de computadores entre sí a través de una gran variedad de dispositivos Columna B __ Cambio de estado de un proceso. __ Programa que permite escribir o corregir archivos de texto. Caso 2. generalmente programas fuente. __ Existe cuando en estado Ready hay varios procesos en espera por el Procesador. __ Varios usuarios o procesos compartiendo un Procesador.O.

8. Se propone una nueva política de planificación de procesos. d. ¿Y algún efecto negativo?. 2. Página 134 de 164 . El intérprete de órdenes (command interpreter) puede ser una aplicación independiente (ej. ¿Qué ventajas o inconvenientes observa usted en cada alternativa?. b. c. 3. UNIX). ¿Por qué es conveniente que el sistema operativo disponga de dos clases de procesos: procesos pesados e hilos?. ¿Qué diferencia hay entre las llamadas al sistema y los programas del sistema?. CP/M). Explique en qué es un “Intérprete de Comandos”. b. c. 4. e. ¿Por qué es necesario establecer dos modos de ejecución (modo supervisor y modo usuario)?. ¿Esta política ofrece algún beneficio?. 10. a. ¿Por qué la manipulación directa de la entrada/salida ha de ejecutarse en modo privilegiado?. ¿Es implementable?. 9. ¿Por qué una duración muy baja del cuanto de tiempo en el algoritmo Round-Robin resulta perjudicial para el rendimiento del sistema?. que consiste en ceder siempre la CPU al proceso que menos memoria necesita. 5. o puede estar implementado dentro del núcleo del sistema operativo (ej. ¿tampoco es multitarea?. ¿Tiene sentido un sistema monousuario que sea también multiprogramado?. Si un sistema no es multiusuario.Preguntas De Desarrollo 1. Explique qué es la “Gestión de excepciones”. ¿Por qué el algoritmo FCFS (en orden de llegada) de planificación de procesos no es apropiado para sistemas multiusuarios e interactivos?. Responda con brevedad y precisión a las siguientes preguntas: a. 7. ¿Qué ventajas tiene poder declarar hilos dentro de un proceso pesado?.

t.. Para el conjunto de procesos indicados más abajo calcule el tiempo (de finalización) solicitado usando las planificaciones FCFS y SJF. 2. (B) Considerando los resultados obtenidos en (A) indique cuál de las planificaciones es más eficiente (debe fundamentar) 3 Dada la siguiente carga de trabajo. Considere la siguiente carga de trabajo para un planificador de procesos. tiempo de servicio y el índice de servicio..0 2... 2. Los tiempos se miden en unidades arbitrarias.0 1. Proceso P0 P1 P2 P3 Tiempo de llegada 0 2 4 5 Duración 7 4 1 3 Página 135 de 164 . el tiempo medio de retorno y el tiempo medio de espera al aplicar las siguientes políticas de planificación: a. Con planificación FCFS Tiempo de Tiempo de Tiempo de Tiempo de Índice de Llegada ejecución finalización servicio servicio 0 3 2 2 4 4 6 5 8 1 PROMEDIOS Con planificación SJF Tiempo de Tiempo de Índice de finalización servicio servicio NOTAS: 1. Tiempo de Llegada (ut) 0. Primero el más corto (SJF) con expropiación.5 2.. b.ut: Unidades de Tiempo 2.Problemas 1. Round-Robin con cuanto de 3 u.Los tiempos están expresados en unidades lineales. 3..No existen interrupciones I/O por parte de los procesos.La atención de procesos comienza en el instante 0 (cero)..Todos los procesos se encuentran inicialmente en cola listos para ser ejecutados.5 Tiempos de CPU(ut) 16 8 14 12 4 NOTAS: 1.Suponga que los tiempos están en segundos. (A) Para cada uno de los procesos indicados más abajo calcule: tiempo de finalización. Proceso P0 P1 P2 P3 Tiempo de llegada 0 2 3 5 Duración 9 5 2 4 4. 4. obtener el diagrama de Gantt.No existen interrupciones I/O por parte de los procesos. 3.5 1.

¿En qué algoritmo se producen más cambios de contexto? ¿Qué algoritmo proporciona un menor tiempo de espera medio? ¿Qué algoritmo considera usted que hace un reparto más justo del procesador? Apoye sus argumentos con cifras.Para los algoritmos SRTF (primero el más corto expulsivo) y el Round-Robin con cuanto igual a 3 unidades de tiempo. se pide lo siguiente: a) b) c) d) BFB Confeccione los diagramas de Gantt de ambas políticas. Página 136 de 164 .

La segmentación es una técnica que se utiliza para: a. c. La La La La condición condición condición condición de progreso. e. Puede ser mayor que la memoria real disponible. Debe ser exactamente igual que la memoria real disponible. b. d. c. c. donde los procesos esperan por recursos. Página 137 de 164 . Solucionar los problemas que provoca la paginación.Unidades V & VI: Preguntas De Selección Múltiple 1. d. c. 6. la estrategia que puede dar lugar a una muy baja utilización de recursos es: a. Eliminar la fragmentación en el almacenamiento principal. Estrategia liberal. Estrategia de evitación. b. d. b. Un direccionamiento de memoria de forma lineal. Una técnica que recurre al uso de frame. d. Distribuir el almacenamiento principal en segmentos de tamaño variable. 5. Estrategia de detección y recuperación. 4. b. el tamaño del espacio lógico de un proceso: a. c. Una fragmentación interna de la memoria. Sólo (a) y (b). e. de interbloqueo. Un Un Un Un estado estado estado estado donde siempre existe al menos una situación de interbloqueo. Ninguna de las anteriores. de exclusión mutua. Una técnica de gestión de memoria de tamaño variable. Una técnica de gestión de memoria que posee número de página y un desplazamiento de la página. Estrategia de prevención. de espera limitada. Si en una solución al problema de la sección crítica un proceso puede verse impedido de acceder a su sección crítica debido a que siempre hay otros procesos que entran antes que él. c. En el interbloqueo. Sólo (a) y (c). d. donde no hay disponibilidades de recursos. En el contexto del problema del interbloqueo un estado inseguro es: a. 2. Debe ser mayor que la memoria real disponible. b. 3. b. Debe ser menor que la memoria real disponible. a partir del cual se puede llegar a una situación de interbloqueo. entonces no se cumple: a. d. En un sistema con memoria virtual. El concepto de paginación y sus componentes corresponden a: a. e.

Distribuir el almacenamiento principal en segmentos de tamaño variable. Paginación segmentada y segmentación paginada son sinónimos. c. e. c. segmentos o programas completos entre RAM y disco se conoce como: a. Eliminar la fragmentación en el almacenamiento principal. Best Fit. c. FIFO. b. 12. cual de los siguientes algoritmos son utilizados: a.7. FIFO. Una técnica de gestión de memoria de tamaño variable. 11. la “estrategia del mejor ajuste” es aquella que: a. b. e. Sólo (a) y (c). En la administración de memoria. e. Reemplaza la página que tiene más tiempo sin usarse. Best Fit. Permita al proceso ubicarse en forma contigua en el almacenamiento principal. El algoritmo LRU es aquel que: a. Ninguna de las anteriores. e. e. Una técnica que recurre al uso de frame. Best Fit. Segmentación implica asignación de espacios variables de memoria. c. Best Fit. Permita al proceso ubicarse en el hueco en el que quepa mejor en el almacenamiento principal. LRU. Página 138 de 164 . c. Para solucionar el problema de las colas de espera en las particiones contiguas de tamaño fijo. b. c. Permita al proceso o trabajo ubicarse en el primer hueco disponible lo bastante grande para contenerlo en el almacenamiento principal. d. First Fit. e. En el contexto de “sistemas combinados”. Considera la página más frecuentemente usada. e. FIFO. 9. Particiones variables. La segmentación es una técnica que se utiliza para: a. Sólo (a) y (b). Reemplaza la página que no se usará durante más tiempo. Ninguna de las anteriores. Una fragmentación interna de la memoria. Asocia a cada página el instante en que se trajo a la memoria. d. Worst Fit. Memoria real. b. El concepto de paginación y sus componentes corresponden a: a. 8. Intercambio o swapping. Una técnica de gestión de memoria que posee número de página (p) y un desplazamiento de la página (d). d. d. Relocalización de memoria. Los sistemas combinados paginan los segmentos. Particiones fijas. b. Solucionar los problemas que provoca la paginación. LRU. First Fit. 10. First Fit. SJN. Permita al proceso ubicarse ordenadamente en el almacenamiento principal. d. Un direccionamiento de memoria de forma lineal. d. Intercambiar páginas. 13. cual de las siguientes afirmaciones es INCORRECTA: a. b. Los sistemas combinados aprovechan las ventajas de la paginación y la segmentación. Los sistemas combinados segmentan la tabla de página. c. d. b.

17. Para controlar el tiempo de permanencia. Cuando se sustituye una página se elige la que lleva menos tiempo en memoria principal. b. c. Ninguna de las anteriores. 16. Planificador de medio nivel. d. Son más potentes que las regiones críticas condicionales. La página que está primera en la cola de espera es la que lleva más tiempo cargada. Ninguna de las anteriores. Planificador de bajo nivel. e. d. Página 139 de 164 . b. Ninguna de las anteriores.14 ¿Qué tipo de planificador está íntimamente ligado con la gestión de la memoria?: a. Estrategia de prevención negando la condición de espera circular. Estrategia de evitación mediante el algoritmo del banquero. 20. e. La eliminación de algunos jobs en proceso. d. Todas las anteriores son falsas. La distribución de memoria. Planificador de alto nivel. Permita al proceso ubicarse ordenadamente en el almacenamiento principal. FIFO. indique cuál de las siguientes afirmaciones es FALSA: a. la “estrategia del mejor ajuste” es aquella que: a. para convertir todas las áreas libres en un espacio contiguo. e. Óptimo. b. c. La compactación es: a. d. Eliminan el problema del interbloqueo. Ninguna de las anteriores. c. LRU. NRU. Estrategia de detección y recuperación. Todas las ant eriores son ciertas. d. En el interbloqueo. Permita al proceso o trabajo ubicarse en el primer hueco disponible lo bastante grande para contenerlo en el almacenamiento principal. Estrategia liberal. b. Respecto de los semáforos. Tienen dos operaciones públicas (wait y signal). c. 18. c. La reubicación de áreas de memoria desocupadas. e. Cuando se sustituye una página se elige la que lleva más tiempo en memoria principal. b. d. En la administración de memoria. 15. se utiliza una cola de espera. b. b. la estrategia que requiere declarar por adelantado los recursos máximos necesarios es: a. Permita al proceso ubicarse en forma contigua en el almacenamiento principal. c. La eliminación de áreas de memoria desocupadas. Permita al proceso ubicarse en el espacio en el que quepa mejor en el almacenamiento principal. 19. c. es correcto afirmar que: a. d. La anomalía de Belady se produce en la política de asignación: a. Respecto del algoritmo de reemplazo FIFO.

Particiones fijas. c. La reasignación de direcciones estáticas se realiza durante: a. d. Un semáforo. c. Particiones variables. 22. Segmentación. La compilación o carga del programa en memoria. Traducción de dirección lógica a dirección física. 25. Un segmento. e. En un sistema de paginación por demanda. b. Página 140 de 164 . Estrategia liberal. d. Ningún método tiene fragmentación externa. e. Paginación. d. b. Estrategia de detección y recuperación. Aplicación de la política de reemplazo de páginas. ¿cuál de estas operaciones corre a cargo del hardware?: a. e. c. Para tratar el interbloqueo por el sistema operativo. b. Estrategia de evitación. Una página. El arranque del equipo. la estrategia más costosa de ejecutar es: a. Ninguna de las anteriores. Ninguna de las anteriores. El arranque del sistema operativo. Cuando un proceso obtiene acceso a datos compartidos modificables se dice que se encuentra en: a. d. c. Una sección crítica.21. b. e. ¿Cuál de los siguientes métodos de gestión de memoria no tiene fragmentación externa?: a. Un monitor. 23. 24. La ejecución de un Programa. Colocar el valor adecuado en el bit de validez. c. Confección de la tabla de páginas. d. b. Estrategia de prevención.

.Partición variable 2..Memoria virtual 3.Partición fija 4...Sistemas combinados 6.Partición fija __ La memoria libre en el sistema que no puede ser asignada a ningún proceso __ Gestión de memoria con particiones continuas de tamaño fijo __ Forma de aprovechar los conceptos de la división lógica de los programas con la granularidad de las páginas __ Estrategia que permite determinar el tamaño de una página __ El proceso es asignado a la partición más grande de la memoria Caso N° 2 COLUMNA A 1...Algoritmo del peor ajuste __ Es una dirección de memoria relocalizable 5..Partición variable 5..Preguntas de términos pareados Caso N° 1 COLUMNA A 1.Algoritmo del peor ajuste __ Forma de aprovechar los conceptos de la división lógica de los programas con la granularidad de las páginas __ Consiste en reemplazar la página más vieja __ Gestión de memoria con particiones continuas de tamaño fijo __ La memoria libre en el sistema que no puede ser asignada a ningún proceso __ Es la traducción de memoria lógica a física __ Técnica que asigna dinámicamente la memoria a los trabajos de acuerdo a su tamaño __ Técnica que combina hardware y software permitiendo la ejecución de programas parcialmente cargados en memoria real COLUMNA B __ Técnica que combina hardware y software permitiendo la ejecución de programas parcialmente cargados en memoria real __ Técnica que asigna dinámicamente la memoria a los trabajos de acuerdo a su tamaño COLUMNA B __ El proceso es asignado a la partición más grande de la memoria Página 141 de 164 ...Fragmentación externa 4.Fragmentación externa 6...Memoria virtual 3.Sistemas combinados 2.

Explique en qué consiste el Swapping. 4. Explique en qué consiste la anomalía de Belady. Explique qué es un deadlock. 7. 3. Página 142 de 164 . Explique qué son los semáforos. 2. Explique qué funciones realiza el MONITOR RESIDENTE. 6. ¿Cuál es el inconveniente que genera este sistema (particiones variables)?. Explique que pasa con la ejecución de un programa al encontrar una estructura de control ParBegin / ParEnd. 5.Preguntas De Desarrollo 1. Con las particiones variables de memoria se logra un mejor aprovechamiento de la memoria que con las particiones fijas.

if (thread != NULL) scheduler->ReadyToRun(thread). IntStatus oldLevel = interrupt->SetLevel(IntOff). El número de referencias a páginas que ya están en memoria.devuelve (nbytes). puede usar un monitor clásico o bien cerrojos y variables condición. La página menos utilizada. La ejecución del proceso debe estar regulada mediante un monitor. 2. Dada la siguiente cadena referencial: 1 6 1 2 1 0 4 7 0 3 7 4 5 3 3 5 1 1 6 1 Utilizando el algoritmo LRU determine: · · · · El número de fallas de páginas. Si no hay cantidad suficiente de memoria. Cada proceso del sistema. while (value == 0) { queue->Append((void *)currentThread). todos inicialmente VACIOS. La página menos utilizada. (void) interrupt ->SetLevel(oldLevel). Se tiene un sistema concurrente con una capacidad de memoria de N bytes. para poder ejecutarse.Problemas 1. } a) ¿Qué significa el ReadyToRun() de la operación V()? Página 143 de 164 . NOTA: Asuma que dispone de CUATRO marcos de página. todos inicialmente VACIOS. thread = (Thread *)queue->Remove(). Para escribir su solución.reserva (nbytes). debe quedarse bloqueado hasta que otros procesos vayan liberando memoria suficiente. Dada la siguiente cadena referencial: 1 1 1 2 1 0 4 7 0 3 7 4 5 2 3 5 1 0 6 1 Utilizando el algoritmo FIFO determine: · · · · El número de fallas de páginas. NOTA: Asuma que dispone de CUATRO marcos de página. … se ejecuta el proceso … monitor. currentThread->Sleep(). La página más utilizada. 4. como se muestra a continuación: monitor. Implemente las operaciones de este monitor. 3. value++. (void) interrupt ->SetLevel(oldLevel). El número de referencias a páginas que ya están en memoria. } void Semaphore::V() { Thread *thread. } value--. A continuación se muestra la implementación de los semáforos en C: void Semaphore::P() { IntStatus oldLevel = interrupt>SetLevel(IntOff). La página más utilizada. debe reservar previamente un número de bytes.

Until false.1] of boolean. }. while flag(j) { flag(i) := false.false)... Sección crítica Flag[i] = false. Var Flag: array[0. .. cumpliéndose j = i – 1.b) ¿Qué tipo de cola es el atributo queue? ¿FIFO? ¿LIFO? ¿con prioridad? c) ¿La implementación de los semáforos en Nachos utiliza espera activa? d) ¿Por qué hace falta un while en la implementación de la operación P()? ¿No puede sustituirse por un if? 5. P0 y P1. declarado de la siguiente forma: flag : array(0. Demuestre si el algoritmo es o no es correcto. Dada la siguiente propuesta de solución al problema de la sección crítica para 2 procesos (proceso 0 y proceso 1).. 7. resolver el problema de los ProductoresConsumidores con buffer finito (también conocido como problema del buffer limitado). end loop. El algoritmo usa un vector global “flag”. Justifique su respuesta. Inicialmente Flag[0] = Flag[1] = false. Utilizando sólo regiones críticas condicionales. i y j son dos constantes cuyos valores dependen del proceso que ejecuta el algoritmo. while flag(j) { NADA.. Flag[i] = true. sección no crítica .. flag(i) := false. Página 144 de 164 . ¿Es correcta?... . loop flag(i) := true.1) of boolean := (false. El siguiente algoritmo pretende solucionar el problema de la sección crítica para dos procesos.. } flag(i) := true. sección crítica . Repeat While Flag[j] do no-op. La variable "i" identifica al proceso que quiere entrar en la sección crítica y la variable "j" al otro proceso. según esta tabla: P0 P1 i 0 1 j 1 0 Algoritmo: 1 2 3 4 5 6 7 8 9 10 11 6..

se hace referencia explicita a: a. Todas las anteriores. Seguridad física y de administración. d. Distribuido. “conjunto_de_derechos"] 3. c. V III & IX: Preguntas De Selección Múltiple 1 Linux es un sistema operativo: a. d. Presentarse como un sistema uniprocesador tradicional. La función de un sistema operativo distribuido es: a. e. 6. b. e. c. Los dominios pueden compartir derechos de acceso. Sistemas de protección Seguridad física o lógica. De tiempo real. Un dominio de protección es: a. Al hablar de seguridad externa. 4. d. Ninguna de las anteriores Página 145 de 164 . objeto) donde cada par identifica las operaciones permitidas sobre él. b. De tiempo compartido. En el contexto de los dominios de protección.Unidades VII. Es una matriz que indica las restricciones de un usuario sobre un objeto. 5. Un conjunto de pares (objeto. e. b. operaciones) en el que cada par identifica un objeto y las operaciones permitidas sobre él. c. Los procesos pueden compartir derechos de acceso. Poder copiar una base de datos a cada uno de las estaciones de trabajo. ¿cuál de las siguientes afirmaciones es falsa?: a. Tiene una arquitectura Cliente/Servidor. Conjunto de pares (usuario. c. Un derecho de acceso es un par ordenado [“nombre_de_objeto”. Puede trabajar con sistema NTFS. b. d. d. Todas las anteriores. Alternativas (a) y (c) Ninguna de las anteriores. c. Los elementos de un sistema se categorizar como “procesos” y “objetos”. Es un sistema operativo Multiusuario. b. Seguridad de datos. aunque este compuesto de múltiples procesadores. Poder realizar una conexión en punto geográficos distantes. El sistema operativo Windows NT: a. Por lotes. Puede trabajar con sistemas de archivos FAT. c. 2. Un dominio es una colección de derechos de acceso. Tener un Servidor y Estaciones de trabajo. d. b. e. e.

c. los usuarios de un grupo sólo son creados y modificados por el administrador del sistema.7. archivos o directorios. e. Ninguna de las anteriores Página 146 de 164 . seguridad interna considera la integridad de la transmisión de los datos. ¿Cuál de las siguientes afirmaciones NO es correcta?: a. e. seguridad interna considera la seguridad de la memoria. b. e. Password. La seguridad comprende la información estratégica y protección los datos de cualquier usuario. Ninguna de las anteriores. c. d. 11. es tener identidades para el usuario. Un sistema operativo de red: a. a través de una red con otras máquinas conectadas entre sí. Una estrategia para el acceso a los recursos como. b. Al hablar de seguridad externa. b. 8. Se caracteriza porque su estructura interna está orientada a objetos. Seguridad esta relacionada con las políticas definidas y la protección con los mecanismos a implementar para llevar a cabo esas políticas. Ninguna de las anteriores. Compactación. b. Al conjunto de usuarios que comparten recursos y necesitan acceso similar es llamado grupo. Alternativas (a) y (b). Almacena el archivo de contraseñas en un archivo encriptado con un algoritmo de triple clave pseudoaletoria. Todas las anteriores. c. ¿Cuál de las siguientes afirmaciones NO es correcta?: a. seguridad interna considera la seguridad de los archivos. d. c. Se caracteriza porque comparte unos pocos recursos. La La La La La seguridad interna considera la seguridad del procesador. seguridad interna es controlada por el propio sistema operativo. 12. La SEGURIDAD se diferencia de la PROTECCIÓN en que: a. b. Encapsulado. Sistemas de protección Seguridad física o lógica. El proceso al que hay que someter la información para conseguir que sea secreta se denomina: a. 10. c. Seguridad física y de administración. Los tipos de usuarios sólo se clasifican en dueños y grupos. d. La primera se refiere a seguridad física y la segunda a seguridad lógica. se hace referencia explicita a: a. b. c. Por lo general. Todas las anteriores. Username. e. e. e. d. Encriptado. 9. Seguridad de datos. d. d. normalmente discos e impresoras.

d. Página 147 de 164 . la conmutación de dominio. el dominio. Hay conmutación de dominio cuando cambia _____________. una conmutación de dominios. la creación de un usuario nuevo. e. c. los derechos de acceso. los objetos. la creación de un objeto. Ninguna de las anteriores. la generación de derechos de acceso. la identidad del usuario. Señale la alternativa que da sentido correcto a la frase: “Si cada usuario pudiese ser un dominio entonces el conjunto de objetos al que se puede acceder depende de ___________. a. un User Id. el usuario. y si un nuevo usuario inicia una sesión ocurre ____________”. el usuario.13. b.

Matriz de acceso 6.. Programa que pide "login:" y luego "password:".Criptografía 4..Seguridad física 6. para engañar a los usuarios de modo que estos revelen su clave.. 5. cada par identifica un objeto y las operaciones permitidas sobre él.Compatibilidad 3. de tal forma que detectan errores de uno o más bits y los corrigen. Se refiere a las instalaciones del sistema informático y al acceso de personas al sistema y su información. Caso N° 2 Columna A 1.. la misma interfaz y privilegios similares.. Es un conjunto de pares (objeto.Seguridad externa Columna B Consiste en que cada cierto tiempo se realice una copia del contenido de los archivos.Dominio de protección 5. Son los mecanismos que impiden a los agentes físicos la destrucción de la información existente en el sistema.Caballo de troya 2. operaciones). Es un proceso de transformación que se aplica a unos datos para ocultar su contenido..Socket Página 148 de 164 . Es la capacidad de un dispositivo o aplicación de poder adaptarse en distintos ambientes computacionales.. Son los mecanismos que impiden a los agentes físicos la destrucción de la información existente en el sistema. Un proceso puede efectuar una operación con un objeto sólo si el dominio bajo el que se ejecuta posee una llave específica para alguna de las cerraduras del objeto.Intrusión 3.. Definición dada para una entrada no autorizada o indebida en el sistema. Corresponde a una ranura para montar el procesador. Permite que el usuario ingrese a distintos computadores con los mismos permisos de acceso a recursos y programas.. En sistemas de archivos auxiliares donde se registran todas las operaciones que realiza un usuario.Caza Claves 2. Programa aparentemente útil que contiene un trozo de código que hace algo no deseado.Perfil Móvil Columna B Añaden varios bits de control al octeto o palabra a transmitir..Mecanismo llave/cerradura 4.Preguntas De Términos Pareados Caso N° 1 Columna A 1... Tabla que indica los objetos a los que puede acceder un sujeto y permisos que tiene sobre él.

e) Cantidad y tipo de servidores. el contador que l utilizará el sistema contable. (E6). (E2). Se pide: a) Sugerir un sistema operativo (de los vistos en clases) para administrar esta red. f) 5. Página 149 de 164 . Los usuarios en esta red serán 4 personas: dos asistentes contables que utilizarán el sistema de facturación en los casos que sea necesario. 4. Acceso total a la base de batos (B2) y de lectura y ejecución a la base de datos (B1). b. bases de datos (B1) y (B2). inyección de tinta (I1). Acceso total a la impresoras láser (L1) y a una impresora inyección de tinta (I2). Indique a lo menos 3 medios de respaldo de Información. 3. y sus características. Se tienen los siguientes dominios de usuarios: a) Dominio Jefaturas: Acceso total a las estaciones de trabajo (E1). Explique qué es la Criptografía En una empresa turística se desea implementar una pequeña red LAN para llevar en un principio el manejo de los sistemas de facturación. Dibujar un esquema con los dominios y accesos a cada uno de los recursos para cada dominio. Realizar una matriz de acceso considerando los permisos a cada recurso que se posean en los distintos dominios: Lectura (R). (E3). SE PIDE: a. 2. A usted se le ha encargado definir los requerimientos de esta red indicando las estructuras de hardware necesarias para satisfacer estos requerimientos. Accesos de lectura y ejecución a la base de datos (B2).Preguntas De Desarrollo 1. b) Los tipos de procesos que se ejecutarán. Escritura (W) y Ejecución(X). Procesadores para cada estación de trabajo. Nombre 3 normas que se deben mantener para evitar accesos no autorizados a una red o el sistema operativo. d) Tipo de tarjeta de red. c) Cantidad y tipos de usuarios. de control de suministros y un sistema contable. Acceso total a las impresoras láser (L1). (E5). b) Dominio Operarios: Acceso total a estaciones de trabajo: (E4). c) Dominio Administradores: Acceso total a todos los equipos y a las impresora láser (L1) y la inyección de tinta (I1). una persona que llevará e control de suministros.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 a b c a b c c d b c b a c b d a d c c d c a b c d a b d c d c a d d e b c c b c d a c c c Unidades V & VI N° Resp. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 b d c e c d c e e d b d a - Página 150 de 164 .Respuestas y Soluciones: Preguntas De Selección Múltiple Unidades I. III & IV N° Resp. VIII & IX N° Resp. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 b e d d c b a e e b a d a b d d c a c b b a d c d - Unidades VII. II.

2 Planificación adecuada para procesamiento por lotes. 1 Requiere una respuesta inmediata. efectúa un control previo de todo el programa. 8 Programas encargados de crear el entorno de trabajo de los usuarios. 9 Programa que se instala en la memoria del computador en el momento de a rranque. no corrige el error 2 Errores de Hardware. 7 Medio de almacenamiento primario 6 Es la conexión de computadores entre sí a través de una gran variedad de dispositivos Columna B 4 Cambio de estado de un proceso. 3 Varios usuarios o procesos compartiendo un Procesador. 10 Programa que permite escribir o corregir archivos de texto. variables. Se le asigna una alta prioridad. Caso N° 2 Columna A 1) Proceso en tiempo real 2) S. Columna B 6 Programa de control que reacciona ante cualquier interrupción de eventos externos y da servicio a los procesos. interpreta y codifica las ordenes del usuario 1 Ejecutan un conjunto de tareas sin la intervención de un usuario u operador. 4 Existe cuando en estado Ready hay varios procesos en espera por el Procesador.Preguntas De Términos Pareados Unidades I. 5 Almacena el estado general de un proceso cuando este no está activo. etc). II. 10) Editor 11) DOS . generalmente programas fuente. 10) Proceso 11) Monoprogramación 12) Editor 10 Programa en ejecución con el entorno asociado (registros. 3) Round Robin 4) Cola de Procesos 5) Planificador de trabajos 6) Núcleo del sistema operativo 7) Política no apropiativa 8) Interprete de comandos 9) Compilador 9 Programa traductor de un lenguaje de alto nivel a código de maquina. 11 Sistema operativo monousuario 12) Multiprogramación 5 Decide cual será el próximo trabajo que se va a ejecutar Página 151 de 164 3 Se le da un tiempo de ejecución a un proceso y vencido su tiempo se le da el turno a otro.O. III & IV Caso N° 1 Columna A 1) Sistemas Batch 2) SJF 3) Tiempo Compartido 4) Transición 5) PCB 6) Proceso distribuido 7) Memoria RAM 8) Gestión de excepciones 9) Sistema operativo 8 Tratamiento de errores de un programa en ejecución.

..Partición fija 4..Fragmentación externa 6.Memoria virtual 3.Sistemas combinados 3 6.Algoritmo del peor ajuste 1 Forma de aprovechar los conceptos de la división lógica de los programas con la granularidad de las páginas __ Consiste en reemplazar la página más vieja 3 Gestión de memoria con particiones continuas de tamaño fijo 5 La memoria libre en el sistema que no puede ser asignada a ningún proceso __ Es la traducción de memoria lógica a física 4 Técnica que asigna dinámicamente la memoria a los trabajos de acuerdo a su tamaño 2 Técnica que combina hardware y software permitiendo la ejecución de programas parcialmente cargados en memoria real Columna B 6 El proceso es asignado a la partición más grande de la memoria Página 152 de 164 ...Algoritmo del peor ajuste __ 5.Partición variable 2..Sistemas combinados 2...Memoria virtual 3.Partición variable 5.Fragmentación externa 4...Partición fija 6 5 La memoria libre en el sistema que no puede ser asignada a ningún proceso Gestión de memoria con particiones continuas de tamaño fijo Forma de aprovechar los conceptos de la división lógica de los programas con la granularidad de las páginas Estrategia que permite determinar el tamaño de una página El proceso es asignado a la partición más grande de la memoria Es una dirección de memoria relocalizable 1 2 Columna B Técnica que combina hardware y software permitiendo la ejecución de programas parcialmente cargados en memoria real Técnica que asigna dinámicamente la memoria a los trabajos de acuerdo a su tamaño __ 4 Caso N° 2 Columna A 1..Unidades V & VI Caso N° 1 Columna A 1..

Son los mecanismos que impiden a los agentes físicos la 5 destrucción de la información existente en el sistema.Criptografía 4.Socket Página 153 de 164 ..Matriz de acceso 6. Es la capacidad de un dispositivo o aplicación de poder 2 adaptarse en distintos ambientes computacionales. cada par 4 identifica un objeto y las operaciones permitidas sobre él.Mecanismo llave/cerradura 4. Definición dada para una entrada no autorizada o indebida en el 2 sistema..Caza Claves 2. Programa aparentemente útil que contiene un trozo de código 1 que hace algo no deseado. Se refiere a las instalaciones del sistema informático y al acceso 6 de personas al sistema y su información. 5.. Permite que el usuario ingrese a distintos computadores con los mismos permisos de acceso a recursos y programas.Seguridad externa Columna B Consiste en que cada cierto tiempo se realice una copia del contenido de los archivos.Caballo de troya 2.Intrusión 3. Un proceso puede efectuar una operación con un objeto sólo si el dominio bajo el que se ejecuta posee una llave específica 3 para alguna de las cerraduras del objeto....Compatibilidad 3. Es un proceso de transformación que se aplica a unos datos 3 para ocultar su contenido.. En sistemas de archivos auxiliares donde se registran todas las operaciones que realiza un usuario. operaciones).. Son los mecanismos que impiden a los agentes físicos la destrucción de la información existente en el sistema.Dominio de protección 5. 6 Corresponde a una ranura para montar el procesador.Perfil Móvil Columna B Añaden varios bits de control al octeto o palabra a transmitir... de tal forma que detectan errores de uno o más bits y los corrigen.. la misma 4 interfaz y privilegios similares. VIII & IX Caso N° 1 Columna A 1. para engañar a 1 los usuarios de modo que estos revelen su clave.Unidades VII.. Tabla que indica los objetos a los que puede acceder un sujeto 5 y permisos que tiene sobre él. Es un conjunto de pares (objeto. Programa que pide "login:" y luego "password:". Caso N° 2 Columna A 1.Seguridad física 6.

el acceso directo a E/S sólo se puede hacer con las rutinas dadas por el sistema operativo. 9. que no comparten memoria ni recursos. el procesador pasará más tiempo administrando que realizando trabajo productivo. ya que no ha de esperar a que una aplicación finalice para trabajar con otro programa. si se tiene el código en el núcleo. Página 154 de 164 . si el cuanto de tiempo es inferior a la duración de un cambio de contexto. las activi dades concurrentes de una aplicación tendrían que definirse mediante procesos pesados. a un usuario individual le puede resultar muy útil tener varios programas en ejecución simultánea. El algoritmo FCFS no tiene la capacidad de expulsar del procesador a un proceso que no lo solicite. Por ello se considera apropiado definir una clase de procesos que compartan código. más cambios de contexto se producirán por unidad de tiempo. se podría leer información no autorizada. Esto permite aumentar la productividad del usuario. Por este motivo. se tendría que reinstalar el núcleo del sistema operativo. Podría saltarse las prioridades de acceso a los recursos. El sistema es menos flexible. ya que si se quisiera cambiar la versión del intérprete de órdenes. postergando a los restantes procesos preparados. en modo privilegiado.Preguntas de desarrollo Unidades I. En particular. Con ello se pueden escribir aplicaciones concurrentes con menos consumo de memoria y menor tiempo de comunicación entre hilos (ya que lo hacen a través de la memoria compartida). Por supuesto que sí. un proceso intensivo en CPU puede acaparar el procesador por tiempo indefinido. II.b. ya que saca más partido del procesador. Como el cambio de contexto no realiza trabajo productivo. El proceso pesado es la estructura que contiene uno o varios hilos. se está ocupando memoria con código que no se emplea. Varios hilos dentro de un proceso pesado comparten el mismo espacio de memoria (código y datos). Además. Si nuestro sistema operativo no diera la posibilidad de declarar hilos en un proceso. y por tanto se consumirían más recursos. Ventajas del intérprete en el núcleo: Dado que es una aplicación de uso muy frecuent e. estos usarán el mismo código y además necesitarán comunicarse información con frecuencia. el rendimiento del procesador decae. Porque cuanto más baja sea la duración del cuanto de tiempo. datos y demás recursos dentro de una aplicación: son los procesos ligeros o hilos. podría dejarla en un estado inconsistente. Si los programadores pretenden escribir aplicaciones que contengan varios flujos de ejecución concurrentes. así como los recursos que la aplicación tenga asignados. como ocurre en un entorno de ventanas típico.a. 8. 7. que exige tiempos de respuesta bajos. en el cual el usuario puede tener abierta varias aplicaciones al mismo tiempo. 5. para garantizar que el estado de la entrada/salida es correcto que se respetan las políticas de acceso a los recursos definidas por el sistema operativo. Por todo ello. más los recursos compartidos por estos hilos. Es un programa encargado de crear el entorno de trabajo de los usuarios Es una técnica que realiza el tratamiento de errores de un programa en ejecución La ventaja principal es poder dotar de concurrencia interna a una aplicación. 4. 9. con un coste reducido. III & IV 1. 2. Si cualquier proceso pudiera acceder a E/S directamente. 3. Fundamentalmente. Esto significa que un programa interactivo. Inconvenientes del intérprete en el núcleo: El núcleo crece de tamaño. pueda verse retrasado un tiempo excesivo y por tanto incumplir los requisitos de interactividad. En los dispositivos de almacenamiento o transmisión de datos. Cuando no se está utilizando el intérprete de órdenes. La multiprogramación siempre contribuye a aumentar el rendimiento de los recursos. la ejecución de las aplicaciones puede ser más rápida (no hay que cargarla del disco).

Las llamadas al sistema son los mecanismos que utilizan las aplicaciones para solicitar servicios al núcleo del sistema operativo. Otro efecto negativo es que la política no tiene en cuenta características importantes de los procesos. AMPLIACIÓN: Si esta idea se extendiera al Planificador de Largo Plazo. 10.9. mientras que los programas del sistema son aplicaciones independientes que se distribuyen junto al sistema operativo y que resuelven necesidades básicas de operación o administración (por ejemplo: editores. es decir la protección de memoria Asegurar que los programas de usuarios no se vean afectados por la división de memoria La fragmentación que sufre la memoria es su mayor inconveniente debido a la sobrecarga que se origina en el procesador para realizar la compactación con la consiguiente pérdida de tiempo Es una técnica del sistema operativo que permite mejorar la utilización de la memoria realizando intercambios desde la memoria principal a dispositivos rápidos de almacenamiento secundario En la programación en paralelo. y muy relacionado con lo anterior. Un sistema puede ser multitarea sin ser multiusuario. mientras que los programas del sistema son la interfaz del sistema operativo para los usuarios. el rendimiento de esta política sería imprevisible y no óptimo. la política tendría el efecto beneficioso de mantener en ejecución la mayor cantidad de procesos posible. 9. lo cual imposibilita a los procesos continuar con sus ejecuciones de manera normal Página 155 de 164 2. la tasa de fallas de página puede aumentar al incrementar el número de marcos asignados. con el riesgo de inanición. Un proceso de pequeño tamaño no implica un proceso de menos duración. Por supuesto que sí. con lo cual se estimula a los programadores a que escriban aplicaciones lo más pequeñas que puedan (lo cual es deseable). éste puede encontrar útil lanzar varias aplicaciones concurrentes. 10.e.c. 3. No necesariamente. Los semáforos son rutinas de software (que en su nivel más interno se auxilian del hardware) para lograr exclusión mutua en el uso de recursos Es cuando dos o mas procesos esperan por un mismo recurso el cual no puede ser liberado. En segundo lugar.d. como puede suceder en Windows. El sistema operativo debe ofrecer mecanismos para sincronizar la ejecución de procesos: Uno de estos son los semáforos. Principalmente. indica que una ejecución secuencial se dividirá en varias secuencias de ejecución en paralelo (hilos de control) y luego se reanudarán como una sola ejecución secuencial La anomalía de Belady consiste en que algunos algoritmos de reemplazo de páginas. intérpretes de órdenes. 4. etc. 5. etc. ya que se pueden conocer por anticipado las necesidades de memoria de un programa (código y datos). etc.) Las llamadas al sistema son la interfaz del sistema operativo para las aplicaciones. se estaría hablando de mantener en la cola de preparados a los procesos con menos demanda de memoria: en ese caso. . Por tanto. 6. 10. 9.c. 7. que no debe ser dañado por el uso indebido de los programas de usuario. como la duración de sus ráfagas de CPU. porque en un sistema operativo multiprogramado o multiusuario existen restricciones de acceso a los recursos: protección de zonas de memoria. Se está dando preferencia a los programas de pequeño tamaño. Unidades V & VI 1. o al menos una estimación fiable.. restricción del uso de archivos y dispositivos de E/S. la estructura de control ParBegin / ParEnd.a. Gestionar la memoria en los siguientes aspectos: Asegurar la independencia de las zonas.b. sus requisitos de interactividad. Aunque sólo exista un usuario en el sistema. El efecto negativo más inmediato es el perjuicio causado a los procesos que demanden más memoria para su ejecución. para poder preservar la integridad del sistema operativo. que se sabe que influyen mucho en el rendimiento de la planificación de procesos. compiladores.

5. Linux. MAC. Sería recomendable un procesador de 1 GHz. Una tarjeta para de red para cada computador (Ethernet) con una velocidad de transmisión adecuada (rápida). Evitar que los usuario introduzcan sus contraseñas en un archivo por lotes para una autentificaron automática. Discos ópticos. (aunque una estación de trabajo también puede dar servicios) Puede ser muy variable. Windows NT Server y Windows NT Cliente. Técnicas RAID. Los usuario no autorizados pueden visualizar los archivos por lotes.) Los procesos a ejecutar serán todos de tipo interactivos. 4. etc. Sólo un servidor que atiende solicitudes de datos y servicios de impresión principalmente para la persona que lleva el control de suministros y el contador. Es un proceso de transformación que se aplica a unos datos para ocultar su contenido. 4. Dominio Jefaturas Operarios Administrador E1 RWX RWX E2 RWX RWX E3 RWX RWX E4 RWX RWX E5 RWX RWX E6 RWX RWX L1 RWX RWX RWX I1 RWX RWX I2 RWX B1 RWX RX B2 RWX RWX RX Página 156 de 164 . es decir. Cintas (DAT. Los tipos de usuarios pueden ser de dos tipos: el administrador de la red que utilizará en forma esporádica el servidor y el resto de usuarios que usará cada uno sus aplicaciones correspondientes (depende del sistema operativo que se haya seleccionado en 1).a. 4.c. 2.d. Requerir que la contraseña tenga un mínimo de caracteres. 4. DLT. 5. (Arreglos tipo 1 3 4 y 5). VIII & IX 1. el tipo 0 es un RAID pero no respalda.e.b. etc.f. tipo Reel). (o bien Novell. pero se puede recomendar que los demás procesadores de cada equipo sean sobre 500 MHz. Requerir el cambio de contraseñas a lo menos cada 30.a. Al abandonar sus estaciones de trabajo el usuario debe salir del sistema o bloquear su estación. un usuario no puede seleccionar la misma contraseña dos veces. 4. 40 GB de disco duro y 128 MB de RAM. 6150 6525.Unidades VII. Pueden existir procesos Batch. CDROM.b. en el caso de realizar respaldos para la seguridad de los datos. Etc. 5 GB de disco duro y 64 MB de RAM. Requerir el uso de contraseñas únicas cuando se cambian. 3. 4. 60 ó 90 días.

40 0. P3 .25 4. P0 . P3 . P0 . P0 . P2 . P0 .0 8 1.0 12 2. P2 .5 14 2.25 Solución B: P0 . P1 .b.): admite dos posibilidades. P1 . P2 .80 15 9 0. P1 .20 0. P1 . P3 . P0 .25 4. P1 . P3 . III & IV 1.70 2. P0 .t. Primero el más corto (SJF) con expropiación: admite dos posibilidades Solución A: P0 .5 4 TIEMPOS PROMEDIOS Tiempo con FCFS 16 24 38 50 54 36. P3 .00 5 3 0. Round-Robin (Q = 3 u. P0 .50 4. Con planificación FCFS Tiempo de Tiempo de Tiempo de Tiempo de Índice de Llegada ejecución finalización servicio servicio 0 3 3 3 1. P1 .4 2. P0 . P0 . P0 . P3 . P1 . P0 . P2 . P3 Proceso Tiempo de Tiempo de retorno espera P0 19 10 P1 14 9 P2 5 3 P3 15 11 Media 13. P0 . P1 . P2 .4 Tiempo con SJF 54 12 38 24 4 26. P0 .a. P1 . P0 . P0 . P1 .b. P3 .Problemas Unidades I.00 2 2 5 3 0. II. P0 . P0 Proceso Tiempo de Tiempo de retorno espera P0 20 11 P1 11 6 P2 2 0 P3 4 0 Media 9.67 9 5 0. P1 .56 10 2 0. P0 Proceso Tiempo de Tiempo de retorno espera P0 20 11 P1 7 2 P2 2 0 P3 8 4 Media 9. P2 . P0 . P0 . P3 .5 16 1. P3 .2 8. P3 . P1 . La planificación SJF es más eficiente ya que el promedio de su índice de servicio es más cercano a la unidad.a.80 6 5 14 8 0. P1 . P3 . Tiempo de Llegada (ut) Tiempos de CPU(ut) 0.63 8 1 15 7 0. P0 . P0 . P1 .65 Con planificación SJF Tiempo de Tiempo de Índice de finalización servicio servicio 3 3 1.2 Página 157 de 164 . se presenta una solución Solución A: P0 .67 4 4 9 5 0. P0 . P1 . P0 .14 PROMEDIOS 5. 3.25 3.

Comparado con el RR. Sin embargo. El menor tiempo de espera medio lo da el SRTF. Unidades V & VI 1. se puede observar que en el RR las desviaciones respecto a la media en el tiempo de espera son menores (1’5 u. Marcos de página 1 1 6 1 6 1 6 2 1 6 2 1 6 2 0 1 4 2 0 1 4 7 0 1 4 7 0 3 4 7 0 3 4 7 0 3 4 7 0 3 4 7 5 3 4 7 5 3 4 7 5 3 4 7 5 3 4 1 5 3 4 1 5 3 6 1 5 3 6 1 5 Respuestas El número de fallas de páginas El número de referencias a páginas que ya están en memoria La página más utilizada La página menos utilizada 10 10 Página N° 1 Página N° 2 Página 158 de 164 . La decisión sobre cuál es el algoritmo más justo depende del concepto que se tenga de “justicia”. Por el contrario.t. SRTF P0 P1 P2 P3 Round-Robin. El RR da una media de 26/4=6’5 u. la aparente justicia del RR no es tan clara. con 11/4=2’75 u. exceptuando quizás a P0.t. el SRTF no perjudica a ningún proceso. etc. de diferencia) que en el SRTF. En el ámbito de este concepto pueden entrar: el reparto equilibrado del procesador. Obsérvese la diferencia entre P0 y P2. la igualdad de oportunidades en el acceso al mismo.t. como era de esperar.a. y que en el RR disfruta del procesador con más frecuencia.4. Hay más cambios de contexto en el RR (seis) que en el SRTF (cinco). que tiene un periodo de espera continua de 8 u.b. P1 y P2 están muy penalizados en el RR.c.t. la menor desviación respecto a la media de los tiempos de espera. q=3 P0 P1 P2 P3 1 X 2 X 3 X 4 X X X 1 X 2 X 3 X 4 X 5 X 6 X X X X X 7 X 8 X X 9 X X 10 11 12 13 14 X 15 X 5 6 X 7 X 8 9 10 11 X 12 X 13 X 14 X 15 X 4. 4. Tiempos de espera SRTF Round-Robin P0 8 8 P1 1 8 P2 0 5 P3 2 5 Si se habla de igualdad en el trato.d. Este dato es un argumento a favor de calificar al RR como más justo. podría afirmarse que en este caso es más justo. Como el SRTF beneficia a más procesos que el RR. Desarrollo Cadena de referencias 1 6 1 2 1 0 4 7 0 3 7 4 5 3 3 5 1 1 6 1 4. en el cual hay más disparidad de resultados.

Lock cerrojo. El signal de devuelve() se puede sustituir por un broadcast. while ( espacio_libre < nbytes ) { HayEspacio. Con un monitor (lenguaje estilo Ada): Monitor ReservaMemoria is begin procedure entry reserva (nbytes: natural) is begin while espacio_libre < nbytes loop HayEspacio.. espacio_libre := espacio_libre . } espacio_libre -= nbytes.Wait. HayEspacio.Signal(). P. Desarrollo Cadena de referencias 1 1 1 2 1 0 4 7 0 3 7 4 5 2 3 5 1 0 6 1 Marcos de página 1 1 1 1 2 1 2 1 2 0 1 2 0 4 7 2 0 4 7 2 0 4 7 3 0 4 7 3 0 4 7 3 0 4 7 3 5 4 7 3 5 2 7 3 5 2 7 3 5 2 1 3 5 2 1 0 5 2 1 0 6 2 1 0 6 2 Respuestas El número de fallas de páginas El número de referencias a páginas que ya están en memoria La página más utilizada La página menos utilizada 11 09 Página N° 1 Página N° 6 3. HayEspacio. N: constant natural := …. y un proceso que finaliza devuelve 50 bytes. end reserva. Considérese también el ejemplo en el que estén esperando tres procesos que necesitan 60. class ReservaMemoria { private: int espacio_libre.ej. public: ReservaMemoria () : HayEspacio(cerrojo) { espacio_libre = N. escrito en C++): const int N = …. end ReservaMemoria. en cuyo caso no hace falta hacer el signal posterior al wait del método reserva(). 10 y 30 bytes. NOTA: El signal posterior al wait es imprescindible para despertar a todos los procesos en espera cuando se devuelve memoria al sistema. cerrojo.Signal. end devuelve.N := N.Release().2. tiene que volver a bloquearse. si hay dos procesos en espera que necesitan 10 y 30 bytes.Acquire(). espacio_libre: natural range 0. hay que desbloquear a los dos procesos.Wait(). pero hay que darle una oportunidad a los procesos de 10 y de 30 bytes. HayEspacio.nbytes.Signal. y que un proceso devuelve 50 bytes. end loop. Con cerrojos y variables condición (es tilo Nachos. } Página 159 de 164 . Si se desbloquea el proceso de 60. HayEspacio: condition. Condition HayEspacio. procedure entry devuelve (nbytes: natural) is begin espacio_libre := espacio_libre + nbytes. } void reserva (int nbytes) { cerrojo.

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

5.

La solución planteada no es válida, ya que no se cumple los requisitos de progreso y de espera limitada. La condición de exclusión mutua siempre se cumple, aunque aquí no hace falta demostrarlo. Si los dos procesos intentan entrar al mismo tiempo en sección crítica, se puede dar la siguiente secuencia de acciones (estado inicial: P0 y P1 están en la línea 2): Paso Acción (p0,2) (p1,2) (p0,3) (p1,3) (p0,4) (p1,4) (p0,5) (p1,5) (p0,6) (p1,6) (p0,7) (p1,7) Efecto flag[0]:=true flag[1]:=true flag[1]=true, P0 entra en el while flag[0]=true, P1 entra en el while flag[0]:=false flag[1]:=false como flag[1]=false, P0 no entra en el while como flag[0]=false, P1 no entra en el while flag[0]:=true flag[1]:=true P0 vuelve a la línea 3 P1 vuelve a la línea 3

<aquí>

El estado final es el mismo que en el punto marcado como <aquí>: los dos booleanos están a true y tanto P0 como P1 están a punto de ejecutar la línea 3. Esto quiere decir que se puede producir la misma secuencia de acciones nuevamente, y así indefinidamente. Por tanto no se garantiza que, si uno o varios procesos quieren entrar en sección crítica, se tome una decisión en tiempo finito. Esto viola el requisito llamado de progreso. Por otro lado, la condición de espera limitada tampoco se cumple, ya que un proceso que acaba de salir de sección crítica puede volver a entrar una y otra vez a pesar de que su compañero quiera también entrar. Véase ésta secuencia, cuyo estado inicial es P0 en la línea 8 y P1 en la línea 2: Acción (p0,9) (p1,2) (p0,10) (p0,2) (p1,3) Efecto flag[0]:=false, P0 sale de sección crítica. flag[1]:=true, P1 expresa su intención de entrar. P0 ejecuta su sección no crítica Flag[0]:=true, P0 quiere entrar otra vez en s.c. P1 observa que flag[0]=true, entra en el bucle Página 160 de 164

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

flag[1]:=false P0 observa que flag[0]=false: no entra en el bucle P0 sale del bucle P0 está en sección crítica P1 observa que flag[1]=true, sigue iterando

Esta secuencia es posible y además se puede repetir indefinidamente, de forma que no se garantiza que P1 entra en sección crítica en un tiempo finito aunque P0 entra tantas veces como desea. En conclusión, el algoritmo propuesto no se puede considerar una solución correcta al problema de la sección crítica. 6. La solución aportada no es correcta, puesto que el principio de exclusión mutua no se cumple. Efectivamente, supóngase que los dos procesos (P0 y P1) intentan entrar en la sección crítica y se ejecutan, por ejemplo, de la siguiente manera: T0: P0 comprueba el estado de Flag[1] y lo encuentra a "falso" T1: P1 comprueba el estado de Flag[0] y lo encuentra a "falso" Entonces, los procesos tendrían vía libre para acceder a la sección crítica; no cumpliéndose por tanto el principio de exclusión mutua. 7. var buffer: shared record depósito: array [0 .. n-1] of elemento; recuento, entrada, salida: integer; --inicializadas a cero end; Productor: region buffer when ( recuento < n ) do begin deposito[entrada] := psiguiente; entrada := (entrada+1) mod n; recuento := recuento + 1; end; Consumidor: region buffer when (recuento > 0 ) do begin csiguiente := depósito[salida]; salida := (salida+1) mod n; recuento := recuento - 1; end;

Página 161 de 164

BIBLIOGRAFÍA

ALCALDE, Eduardo y otros. Introducción a los Sistemas Operativos. Madrid: McGraw Hill, 1992. DEILEL, Harvey. Introducción a los Sistemas Operativos. E.U.A: Addison Wesley, 1993. MILENKOVIC, Milan. Sistemas Operativos, Conceptos y Diseño. México: McGraw Hill, 1994. TANENBAUM, Andrew. Sistemas Operativos Distribuidos. México: Prentice Hall, 1996. TANENBAUM, Andrew. Sistemas Operativos Modernos. México: Prentice Hall, 1992.

Página 162 de 164

..................... 74.................................. 138 Bits adicionales.... 88 D Deadlocks...... 133........................... 152 Página 163 de 164 ...... 58... 139................ 138... 68..................... 51 Directorios........................... 99 API........................ 162 DMA....................... 141..... 115............ 19 Randómico........ 67.... 132................. 158 Criptografía.. 52 de Procesos.......................... 43..............70. 130 Memoria Virtual.... 71... 96.......... 115....................... 160 LFU.... 49........9...... 84.... 151 Multiprogramables......... 124..... 58.................................. 130...... 68 PAREND.......... 50....... 104............ 37..... 139... 49................................. 139...................... 85.... 141.....55....................... 152................................. 144................69........................... 64.... 113 Archivos................................................... 142 Dekker.................. 64............... 138.. 26.. 48.. 64.............. 153 C-Look............. 140 PARBEGIN.................. 115.. 48... 64... 138 FORK........................................ 129.. 106 Discos........ 143.....59....... 85... 97 First Fit..... 113............ 145........... 86....... 104. 143 B Batch.................... 152 Localidad............. 22.... 58 Cifrado....... 148.................................. 142 Virtual... 133........................ 86......................................................................................... 83.... 131..... 104.................... 64..... 151 C Caballo de Troya............ 143 MFU............121. 130............. 35...... 144.... 72. 138........... 61 Lock................ 45 LRU...... 45 N Netware...... 51. 37........................... 151 Hebras...................... 156 Best Fit.............................. 127 J JOIN................ 29.. 56......... 145......................... 128...... 114 I Interbloqueo...................... 44.... 112. 39............................................... 143..................................... 43.. 54........... 77....................... 45........... 152 Peterson..................... 122........... 149........ 156 Localidad......................... 58......... 71 Planificación de CPU..................ÍND ICE ALFA BÉT IC O A Acceso directo........... 64......... 124................................. 50............. 49.... 107... 106.. 68 PCB......................................91.. 95 H Hardware............ 40....... 31......................................... 153 Dominios de protección....... 60.............63.. 107... 29....... 29.......... 124....................................... 138 Memoria..... 28...... 134...... 118 Auditoría. 97. 52 Ajuste................ 63 Buffers............................ 64...................... 57.............. 50.......... 97.. 109.. 32. 33.... 133.... 49..... 149 Mejor en Ajustarse............................................. 120......... 153 Caché............................................................................ 148... 44.. 70.......... 151 E Eschenbach....................... 30....................... 125...... 148.............. 154......................... 132.. 139.... 158........... 138................ 128 Conjunto de trabajo. 133....... 129........... 142 Interrupciones ....... 145 P Paginación ....................... 53............... 69......... 24........ 155......... 127 Acceso secuencial...... 38 Administración de CPU......... 134............... 131.......... 64.... 119...... 82... 138...... 141....... 43.............................. 161 Almacenamiento................... 54. 106......................... 50..... 63 Cíclico....................................................................................... 128.................. 48 de Datos... 160 Firmware .. 30... 59 MFU.. 44.. 64..............56....... 44. 105.................................. 139...................... 40. 61 Contexto.... 138....... 58 C-SCAN...........95... 131............................ 149................ 20... 104 Concurrencia......... 106.. 64 Prioridades... 144.......... 130 Memory Manager Unit ......... 154.............. 63....17........................... 118........ 68.................... 50... 49 Peor ajuste.............21....... 140.... 58 Round Robin .........59.. 129............... 128..44... 64 MMU........... 26..................... 51............ 127 Dominio ......... 139.. 117... 45 Comunicación ..................... 40 de Memoria.. 138.............. 40.... 141...... 128.......... 116......67.. 112....... 137..... 131 M Matriz de accesos.......... 100 F FCFS ... 140.......................... 151................... 132............................................ 50.......................................... 9...............11........................................ 133...51.. 110.... 52.......... 140 Swapping......................................... 110 Cíclico..................................56....... 63.... 140 Segmentación.. 85... 103......... 133....................... 151 Bits adicionales................. 127 Distribuidos...... 159 Monoprogramación.. 60. 135... 98 de Sistema Operativo...................11............................. 79... 25................... 136. 143......................................................... 111..... 28.. 77..... 131........ 104.. 87....... 48.......... 131..... 79.............. 134.......... 68 L LFU.... 123..... 53.......... 63..... 62... 147..... 131 LRU ............ 74.... 128.... 139 Ajuste rápido... 139.. 153 C-SCAN. 151... 43........ 149.................... 137........................ 94............ 61 Paginación ....... 160... 72..............................108. 130. 13. 120... 38................ 64 Algoritmo ....... 45.. 54........................... 127 Acceso directo a memoria.......... 33 de Dispositivos................................. 41......................... 106. 138.................... 21............. 71 Desempeño ...... 131 Linux.. 67.............. 57............................. 48.. 113.... 49.... 138...... 154 FIFO..................... 132..................................... 34... 129 Monitores.......... 94.................................. 73........... 159 Look ... 136................. 86.. 94.......................... 48 de Memoria..... 133............................................. 138.. 82............... 113..... 73............... 81.... 75..... 119....................................................... 25.. 126......... 119................ 83. 148..... 135..... 145........ 18.. 45 Estructuras de Hardware......................27. 67.......... 146............................ 64.................... 45 Eschenbach .. 68 Fragmentación................. 129....................................................... 26.............. 91. 45 FCFS...... 137...44......... 120..... 125......................................33.......7..... 57..63....................... 50............................................... 59 Monitor residente.... 16 Planificaciones...11.... 33... 17.......... 102..........95...................................... 154 FIFO....................... 156 Dispositivos........ 131. 19.... 138.. 156 Nominación.....................

79........ 111 R Randómico................. 151.. 25............................. 151 Transición de estados de dispositivos........ 93...... 117...... 28 de procesos....... 157 Software..................... 133.................. 15............. 55..... 145............ 159 Windows .... 56................ 118 V Vigilancia.. 19 Trustees.............. 25.......... 133................. 73..................... 73........ 116.........55. 134................. 128. 156 Maestro Esclavo....... 10 Servicios............. 156 Página 164 de 164 ...... 41.. 43... 143................ 96........................................... 132................ 148... 133....... 52. 39............. 28.................... 79.. 33. 82................... 119................................ 19 Procesos. 133........ 69........... 73... 118...................... 86 Interrupciones.. 158. 138...... 112................... 72............................................... 119......... 131 Sistemas Operativos Distribuidos.... 111............11.......................................... 132..... 129........ 13....... 71................ 48... 150 Unlock............................. 121....................... 140 Seguridad... 24........48..... 146.......................... 151................ 133............. 102............. 114.... 58 Recursos... 156 Windows 2000 ................................................ 135........................ 135...... 94 Sistemas......................... 69....... 58................... 56 W Wait ........ 44. 145.. 102.................... 104. 113................. 91......... 138 Primitiva........... 11 SJF. 39....................... 151 Tiempo Real.. 103 Round Robin ........ 44.... 100 U Unix ............... 51.......... 109 Sistema de Archivos... 62......... 97.......... 71....... 81 Protección.......... 117...................... 77.......... 24......... 153 Semáforos. 101 Multiprogramables.... 85.. 45 SCAN-N... 151..... 81...... 77......... 49 SSTF... 120 Windows NT...................... 118.............. 64 Sincronización.... 74. 115.......... 152.......... 105 Signal................. 106. 44 Segunda oportunidad................................67.................. 72 S SCAN....... 155... 154............... 114................................................ 133....................... 136....... 133....... 70.... 77.... 143 Tiempo Compartido. 146...... 72 Segmentación........ 25 SRT ...................... 128 DeadLock...................... 44 Sección Crítica.......................... 93 Virtual........ 133...............................17................ 145...112... 124... 97.... 139.. 71... 18.... 123.......... 151....... 45 Primero en Ajustarse............... 132.. 72................... 131 Timesharing... 141.......... 131..... 84.......... 144. 49....... 157 Concurrencia ....10............................... 76..... 160.. 146.. 138........ 145.. 50................................. 133........... 157 SRT......................... 160 Siguiente en Ajustarse........... 159............. 10............... 32 Planificaciones................................ 137.. 128...... 45 Swapping.........44...................... 64.......... 17 PCB..... 133.. 131. 128... 49 SSTF. 67................ 142 T Thread...... 126........ 50. 105.......... 141..... 48.... 51.......... 43..... 155. 49.. 128................................... 100................................................ 131.......................9.............. 26. 87............. 116......... 51................... 48................... 124..... 64...... 49......... 40... 19 Propietarios.......... 70...... 116........... 54. 14 Historia. 118................... 68........... 27......48.................. 130...... 118................. 104........................ 152......... 162 Batch........ 48 Registro.. 132........... 119.67.............. 119.... 18... 72....44.... 118.. 151 RPC............................ 129....................... 83 Definición..................48. 145....................... 17..........SCAN............................ 63 SJF.... 67...... 17......................... 151.. 133...... 44........................................ 57...... 37.......................... 72........... 109.................. 37................ 151 Tiempo Real....................... 12..... 63................................... 50................ 72...................34.. 45 SCAN-N.... 151 Transición de estados............ 28..................... 129...... 14. 67......................................................................................48............. 86.. 50........................113.................... 161 Prioridades....... 151 Transición......... 72.. 130.......... 98....... 120...............

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->