You are on page 1of 62

Unidad N1 Introduccin a los Sistemas Operativos

Funciones y objetivos de los sistemas operativos


El sistema operativo como interfaz usuario/computadora
El sistema operativo como administrador de recursos
Facilidad de evolucin de un sistema operativo
Evolucin histrica de los sistemas operativos
Proceso en serie
Sistemas sencillos de proceso por lotes
Sistemas por lotes con multiprogramacin
Sistemas de tiempo compartido
Caractersticas de los sistemas operativos modernos
Arquitectura microncleo
Multihilos
Multiproceso simtrico
Sistema operativo distribuido
Diseo orientado a objetos
Microsoft Windows
Resea histrica
Arquitectura
Organizacin del sistema operativo
Mdulos del Ejecutor
Procesos de usuario
Modelo cliente/servidor
Ventajas
UNIX
Historia
Descripcin
Linux
Historia
Estructura modular
Unidad N2 Administracin y gestin de archivos
Archivos
Nombre
Estructuras de archivos
Tipos de archivos
Mtodos de acceso
Atributos de un archivo
Operaciones con archivos
Directorios
Jerarqua de directorios
Nombres de ruta
Operaciones con directorios
Implementacin de sistemas de archivos
Organizacin del sistema de archivos
Implementacin de archivos
Implementacin de directorios
Archivos compartidos
Administracin del espacio en disco
Tamao de bloque
Control de bloques libres
Administracin de cuotas de disco
NTFS (Windows 2000)

Modelo de cinco estados


Transiciones
Procesos suspendidos
Modelo de siete estados
Transiciones
Descripcin de procesos
Estructuras de control del sistema operativo
Estructuras de control de procesos
Bloque de control de proceso e Imagen de proceso
Atributos de los procesos
La importancia del BCP
Control de procesos
Modos de ejecucin
Funciones del ncleo de un SO
Creacin de procesos
Cambio de proceso
Procesos e hilos
Entornos monohilo y multihilo
Elementos de un proceso
Elementos de los hilos de un proceso
Modelos de proceso monohilo y multihilo
Ventajas de la implementacin de hilos
Estados de un hilo
Implementacin de hilos
Multiproceso simtrico (SMP)
Arquitecturas SMP
Microncleo
Antecesores de la arquitectura microncleo
Arquitectura microncleo
Ventajas de la implementacin microncleo
Diseo de microncleo
Hilos y procesos en Linux
Estados de un proceso en Linux
Hilos en Linux
Comunicacin entre procesos
Exclusin mutua con espera ocupada (con espera activa)
El problema del productor-consumidor
Exclusin mutua sin espera ocupada
Planificacin de procesos (Scheduling o calendarizacin)
Cuando calendarizar (criterios de planificacin)
Tipos de algoritmos de calendarizacin
Categoras de algoritmos de calendarizacin
Metas de los algoritmos de calendarizacin
Algoritmos de calendarizacin en sistemas por lotes
Algoritmos de calendarizacin en sistemas interactivos
Bloqueos irreversibles (interbloqueos)
Recursos
Condiciones para un bloqueo irreversible
Modelado de bloqueos irreversibles
Estrategias para enfrentar los bloqueos irreversibles
Deteccin y recuperacin
Prevencin de bloqueos irreversibles
Inanicin
Unidad N4 Administracin de memoria

Unidad N3 Administracin de procesos


Estados
Modelo de dos estados
Creacin de procesos y terminacin de procesos

Estrategias de administracin
Monoprogramacin sin intercambio ni paginacin
Multiprogramacin con particiones fijas
Reubicacin y proteccin

Administracin de memoria
Intercambio (swapping)
Particiones variables
Administracin de memoria con mapa de bits
Administracin de memoria con listas enlazadas
Memoria virtual
Paginacin
Tablas de pgina
Memoria asociativa (bferes de consulta para traduccin)
Algoritmos para el reemplazo de pginas
Modelo del conjunto de trabajo (algoritmo de reemplazo de
pginas de conjunto de trabajo
Aspectos de diseo de los sistemas con paginacin
Polticas de asignacin locales vs. globales
Tamao de pgina
Aspectos de implementacin
Segmentacin
Paginacin vs. Segmentacin
Unidad N5 Entrada / Salida
Interrupciones
Clases de interrupciones
Las interrupciones y el ciclo de instruccin
Tratamiento de las interrupciones
Interrupciones mltiples
Multiprogramacin
Dispositivos de Entrada/Salida
Tipos de dispositivos
Controlador de dispositivos (Drivers)
Funcionamiento
Organizacin del sistema de la E/S
Tcnicas de comunicacin de la E/S
E/S programada
E/S dirigida por interrupciones
DMA (acceso directo a memoria)
Evolucin de las funciones de E/S
Aspectos de diseo en los sistemas operativos
Objetivos del diseo
Estructura lgica de las funciones de E/S
Almacenamiento intermedio de la E/S (Buffering)
Memoria intermedia sencilla
Memoria intermedia doble
Memoria intermedia circular
Planificacin de discos
Parmetros de rendimiento del disco
Polticas de planificacin de discos
RAID
Caractersticas
Niveles
RAID 0 (sin redundancia)
RAID 1 (mirroring)
RAID 2
RAID 3 (paridad por intercalacin de bits)
RAID 4
RAID 5 (paridad por intercalacin distribuida de bloques)
RAID 6 (paridad doble por intercalacin distribuida de bloque)
Cach de disco
Consideraciones sobre el diseo

Unidad N6 Seguridad
Amenazas a la seguridad
Tipos de amenazas
Componentes de un sistema informtico
Proteccin
Proteccin de la memoria
Control de acceso orientado al usuario (autenticacin)
Control de acceso orientado a los datos (autorizacin)
Intrusos
Tipos de intrusos
Tcnicas de intrusin
Tcnicas de obtencin de contraseas
Proteccin de contraseas
Vulnerabilidad de las contraseas
Estrategias de eleccin de contraseas
Deteccin de intrusos
Software malicioso
Programas malignos
Fases de un virus
Tipos de virus
Virus de macros
Unidad N7 Procesamiento distribuido
Introduccin
Proceso cliente/servidor
Aplicaciones cliente/servidor
Aplicaciones de bases de datos
Clases de aplicaciones cliente/servidor
Arquitectura cliente/servidor de tres capas
Consistencia de la cach de archivos
Middleware
Arquitectura middleware
Paso distribuido de mensajes
Servicio fiable vs. servicio no fiable
Bloqueante vs no bloqueante
Llamadas a procedimiento remoto (RPC)
Paso de parmetros
Enlace cliente/servidor
Sincronismo vs asincronismo
Agrupaciones (Clusters)
Configuraciones de clusters
Conceptos de diseo de los sistemas operativos
Gestin de fallos
Equilibrio de carga
Proceso paralelo

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N1 Introduccin a los Sistemas Operativos


Sistema operativo (SO): es un programa que controla la ejecucin de los programas de aplicacin y que acta como
interfaz entre las aplicaciones del usuario y el hardware de una computadora.

Funciones y objetivos de los sistemas operativos


Un SO tiene tres objetivos:

Comodidad: hacer que una computadora sea ms cmoda y fcil de utilizar.


Eficiencia: permite que los recursos de un sistema informtico se aprovechen eficientemente.
Capacidad de evolucin: deben construirse de modo que permitan el desarrollo efectivo, la verificacin y la
introduccin de nuevas funciones al sistema, y a la vez, no interferir en los servicios que brinda.

El sistema operativo como interfaz usuario/computadora


Los usuarios finales utilizan programas de aplicacin, y no tienen que
preocuparse de la arquitectura de la computadora.
Las aplicaciones se construyen con un lenguaje de programacin y son
desarrolladas por programadores.
Algunos programas se denominan utilidades, que implementan
funciones muy utilizadas que ayudan a la creacin de programas, la
gestin de archivos y el control de dispositivos de E/S.
El SO oculta al programador los detalles de hardware y le proporciona
una interfaz cmoda para utilizar el sistema. Acta como mediador,
facilitndole al programador y a los programas de aplicacin el acceso
y uso de todas esas caractersticas y servicios.
Un SO ofrece servicios en las siguientes reas:

Creacin de programas: el SO ofrece mltiples funcionalidades y servicios para ayudar al programador en la


creacin de programas. Estos servicios estn en forma de programas de utilidades.
Ejecucin de programas: el SO administra todas las tareas necesarias para la ejecucin de un programa.
Acceso a los dispositivos de E/S: el SO brinda una interfaz uniforme que oculta los detalles de funcionamiento de
los dispositivos de E/S, de modo que el programador pueda acceder a los dispositivos utilizando lecturas y escrituras
simples.
Acceso controlado a los archivos: el SO proporciona mecanismos de proteccin para controlar el acceso a los
archivos.
Acceso al sistema: en un sistema compartido o pblico, el SO controla el acceso al sistema como un todo y a los
recursos especficos del sistema.
Deteccin y respuesta a errores: el SO debe dar respuestas que elimine las condiciones de errores que se
produzcan con el menor impacto posible sobre las aplicaciones que estn ejecucin.
Contabilidad: el SO debe recoger estadsticas de los recursos y supervisar parmetros de rendimiento. Es muy til
para anticiparse a la necesidad de mejoras futuras y para ajustar el sistema y as mejorar su rendimiento.

El sistema operativo como administrador de recursos


Una computadora es un conjunto de recursos para el movimiento, almacenamiento y proceso de datos y para el control de
estas funciones. El SO es el responsable de la gestin de estos recursos.
El SO es nada ms que un conjunto de programas, que como otros programas, proporciona instrucciones al procesador.

1/8

Resumen SOP Rodrigo Carrin

UTN FRC

El SO dirige al procesador en el empleo de otros recursos del sistema y en el control del tiempo de la ejecucin de otros
programas. Pero para que el procesador pueda hacer estas cosas, debe cesar la ejecucin del programa del SO y ejecutar
otros programas. El SO cede el control del procesador, para realizar algn trabajo y luego lo recupera durante el tiempo
suficiente para preparar al procesador para llevar a cabo la siguiente parte del trabajo.
Una parte del SO est en la memoria principal. En esta parte est el ncleo (kernel), que incluye las funciones ms utilizadas
frecuentemente del SO. El resto de la memoria principal contiene datos y otros programas de usuario. La asignacin de la
memoria principal es controlada conjuntamente por el SO y por el hardware de gestin de memoria del procesador. El SO
decide cundo un programa en ejecucin puede utilizar un dispositivo de E/S y controla el acceso y la utilizacin de los
archivos. El procesador es un recurso y es el SO el que debe determinar cunto tiempo del procesador debe dedicarse a la
ejecucin de un programa de usuario en particular.

Facilidad de evolucin de un sistema operativo


Un SO evoluciona en el tiempo por las siguientes razones:

Actualizaciones de hardware y nuevos tipos de hardware.


Nuevos servicios, como respuesta a las demandas de los usuarios o necesidades de administradores de sistemas.
Correcciones de fallos que se descubren con el tiempo.

La necesidad de hacer cambios en forma regular, introduce ciertos requisitos de diseo. El sistema debe tener una
construccin modular, con interfaces bien definidas entre los mdulos y debe estar bien documentado.

Evolucin histrica de los sistemas operativos

Procesos en serie.
Sistemas sencillos de proceso por lotes.
Sistemas por lotes con multiprogramacin.
Sistemas de tiempo compartido.

Proceso en serie
En las primeras computadoras los programadores interactuaban directamente con el hardware de los mismos, no haba
sistema operativo. Se operaba desde una consola consistente en unos indicadores luminosos, unos conmutadores, algn
tipo de dispositivo de entrada y alguna impresora.
Los programas en cdigo mquina se cargaban con un dispositivo de entrada (lector de tarjetas). Se ejecutaban hasta su
culminacin donde la impresora mostraba el resultado, si se produca un error se mostraba con los indicadores luminosos.
Presentaban dos problemas principales:

Planificacin: la mayora de las instalaciones empleaban un formulario de reserva de tiempo de mquina. Si un


usuario reservaba una hora y terminaba a los 45 minutos se desperdiciaba tiempo del computador; por el contrario,
si el usuario tena dificultades, no terminaba en el tiempo asignado y tena que parar sin resolver el problema.
Tiempo de preparacin: si se produca un error, el usuario tena que volver a realizar el proceso de preparacin
perdiendo tiempo considerable. El proceso de preparacin consista en cargar compilador y programa en alto nivel
en memoria, salvar el programa objeto (compilado) y luego cargarlo y montarlo junto con las funciones comunes.

Se llamaba proceso en serie porque los usuarios accedan al computador en serie.

Sistemas sencillos de proceso por lotes


El primer sistema operativo por lotes (y el primer sistema operativo de todos) se desarroll a mediados de los 50 por General
Motors.
La idea central es el uso de un elemento de software conocido como el monitor. Aqu, los usuarios no tenan acceso directo
a la mquina. En su lugar, el usuario deba entregar los trabajos en tarjetas o en cintas al operador de la computadora, quien
agrupaba secuencialmente los trabajos por lotes y ubicaba los lotes enteros en un dispositivo de entrada para su empleo
por parte del monitor. Cada programa se construa de modo que al terminar su ejecucin, el monitor cargaba
automticamente el siguiente programa.
2/8

Resumen SOP Rodrigo Carrin

UTN FRC

El monitor es quien gestiona el problema de la planificacin. Se pone en cola un lote de trabajos y stos son ejecutados tan
rpidamente como sea posible, evitando tiempos de inactividad. El monitor tambin organiza mejor el tiempo de organizacin
del trabajo utilizando un lenguaje de control de trabajos, que es un lenguaje para dar instrucciones al monitor.
Este tipo de sistemas necesitaban nuevas caractersticas como:

Proteccin de memoria: mientras se ejecuta un programa de usuario no debe modificar la zona de memoria donde
est el monitor.
Temporizador: se utiliza para evitar que un solo trabajo monopolice el sistema.
Instrucciones privilegiadas: algunas instrucciones mquina solo las puede ejecutar el monitor.
Interrupciones: le flexibilidad al sistema operativo para ceder y retomar el control de los programas de usuario.

Sistemas por lotes con multiprogramacin


An con el secuenciamiento automtico de trabajos ofrecido por un sistema operativo sencillo por lotes, el procesador est
desocupado con frecuencia, ya que los dispositivos de E/S son lentos comparados al microprocesador.
Consiste en tener varios programas de usuario en la memoria, y cuando el programa que est en ejecucin va esperar por
E/S, el procesador cambia a otro trabajo que no est esperando por E/S. Este proceso es conocido como
multiprogramacin o multitarea.
Estos sistemas mantienen varios trabajos listos para ejecutarse en memoria principal, por lo que requieren alguna forma de
gestin de memoria, adems debe decidir cul ejecutar, haciendo uso de un algoritmo de planificacin.

Sistemas de tiempo compartido


La tcnica de tiempo compartido consiste en que el tiempo del procesador se comparte entre diversos usuarios. Mltiples
usuarios acceden simultneamente al sistema por medio de terminales, donde el sistema operativo intercala la ejecucin de
cada programa de usuario en rfagas cortas o cuantos (quantum) de computacin. El tiempo de respuesta de un sistema
correctamente disead debera ser comparable al de un computador dedicado.

Caractersticas de los sistemas operativos modernos

Arquitectura microncleo.
Multihilos.
Multiproceso simtrico.
Sistemas operativos distribuidos.
Diseo orientado a objetos.

Arquitectura microncleo
La arquitectura microncleo asigna solamente unas pocas funciones esenciales al ncleo. Otros servicios del sistema
operativo los proporcionan procesos que se ejecutan en modo usuario y que el microncleo trata como cualquier otra
aplicacin.
Este enfoque simplifica la implementacin, proporciona flexibilidad, y se adapta bien para entornos distribuidos.

Multihilos
Los multihilos son una tcnica por lo cual un proceso, ejecutando una aplicacin, se divide en hilos que pueden ejecutarse
concurrentemente.

Hilo: unidad de trabajo que se puede expedir para su ejecucin. Conjunto de instrucciones que pertenecen a un
proceso. Se les suele llamar procesos ligeros o contextos de ejecucin. Se ejecuta secuencialmente y es
interrumpible para que el procesador puede ceder el turno a otro hilo.
Proceso: un conjunto de uno o ms hilos y los recursos del sistema asociados (cdigo, datos, archivos abiertos y
dispositivos). Al dividir una aplicacin en mltiples hilos, el programador tiene un gran control sobre la modularidad
de la aplicacin y la coordinacin de los sucesos relativos al sistema.

3/8

Resumen SOP Rodrigo Carrin

UTN FRC

Los multihilos son muy tiles para las aplicaciones que ejecutan un nmero de tareas esencialmente independientes que no
necesitan ser consecutivas.

Multiproceso simtrico
Es un trmino que se refiere a una arquitectura hardware y al comportamiento de la misma. Un multiprocesador simtrico
puede definirse como un sistema de computadores de un solo usuario con las siguientes caractersticas:

Existencia de mltiples procesadores.


Estos procesadores comparten la misma memoria principal y dispositivos de E/S.
Todos los procesadores pueden ejecutar las mismas funciones (simtrico).

Ventajas:

Rendimiento: se puede ejecutar ms de un proceso simultneamente, cada uno en un procesador diferente.


Disponibilidad: el fallo de un procesador no detiene la mquina, el sistema contina funcionando con un
rendimiento reducido.
Crecimiento incremental: se incrementa el rendimiento del sistema agregando un procesador adicional.
Escalabilidad: variedad de productos con diferentes precios y caractersticas de rendimiento basados en el nmero
de procesadores del sistema.

La existencia de mltiples microprocesadores es transparente al usuario.

Sistema operativo distribuido


Un sistema operativo distribuido proporciona la ilusin de un nico espacio de memoria principal y un nico espacio de
memoria secundaria, adems de otros mecanismos de acceso unificados.

Diseo orientado a objetos


Posibilita aadir extensiones modulares a un pequeo ncleo. Permite a los programadores personalizar el SO sin romper
la integridad del mismo, y tambin facilita el desarrollo de herramientas distribuidas y sistemas operativos distribuidos
abiertos.

Microsoft Windows
Resea histrica

MS DOS 1.0 (1981). Sistema operativo de Microsoft para la primera computadora personal de IBM. Se ejecutaba
en 8K de memoria utilizando el microprocesador Intel 8086.

MS DOS 2.0 (1983). Para el PC XT de IBM. Aadi soporte para discos duros y ofreca directorios jerrquicos
(directorios con subdirectorios y archivos). Se aadieron tambin caractersticas de UNIX como el
redireccionamiento de E/S (capacidad de cambiar la identidad de la entrada o salida de una aplicacin) y la impresin
subordinada (background). La memoria creci hasta 24 Kb.

MS DOS 3.0 (1984). Para el PC AT de IBM con micro Intel 80286 que aadi direccionamiento extendido y recursos
de proteccin de memoria, pero DOS no los utiliz. Uso el 80286 como un 8086 rpido para mantener
compatibilidad. Los requisitos de memoria crecieron hasta 36 KB.
1. MS DOS 3.1 (1984). Aade soporte para redes de PC.
2. MS DOS 3.3 (1987). Soporte para PS/2. El sistema pas a utilizar 46 KB.

Windows 3.0 (1990). El DOS estaba siendo utilizado en un entorno que iba ms all de sus capacidades. Microsoft
comienza el desarrollo de una Interfaz Grfica de Usuario (GUI) que podra ejecutarse entre el usuario y el DOS. En
1990, Microsoft presenta una versin de la GUI, el Windows 3.0, la cual segua maniatada por la necesidad de
ejecutarse sobre DOS.

4/8

Resumen SOP Rodrigo Carrin

UTN FRC

Windows NT (1993). Luego de una tentativa fallida por Microsoft de desarrollar junto a IBM un SO de nueva
generacin que aprovechara las caractersticas de los actuales microprocesadores, IBM desarrolla OS/2 y Microsoft
lanza Windows NT. Ofrece multitarea en entornos monousuarios y multiusuarios.

Windows NT 4.0. Despus de varias versiones NT 3.X, Microsoft desarrolla la versin 4.0, que proporciona la misma
interfaz de Windows 98. El mayor cambio consiste en que varios de los componentes grficos que se ejecutaban
tanto en modo usuario como formando parte del subsistema Win 32 en 3.X, han sido trasladados al ejecutor de
Windows NT, que ejecuta en modo ncleo, lo que implica una aceleracin en tales ejecuciones. El inconveniente es
que servicios del sistema tienen acceso a funciones graficas de bajo nivel, pudiendo impactar con la fiabilidad del
SO.

Windows 2000 (2000). Nuevamente el ejecutor y la arquitectura microncleo son fundamentalmente los mismos que
en NT 4.0. Se han aadido nuevas caractersticas, como el soporte al procesamiento distribuido. El directorio activo
es un servicio del directorio distribuido capaz de traducir los nombres de objetos arbitrarios a cualquier tipo de
informacin acerca de los mismos. Una consideracin final sobre Windows 2000 es la distribucin entre Windows
2000 Server y Professional, en donde la versin Server incluye servicios para su uso como servidor de red.

Windows XP (2001).

Windows Server 2003 (2003).

Windows Vista (2007).

Windows Server 2008 (2008).

Windows 7 (2009).

Windows 8 (2011).
1. Windows 8.1 (2012).

Windows Server 2012 (2012).

Arquitectura

Como en casi todos los sistemas operativos, se separa el software orientado a las aplicaciones del software del sistema
operativo.
El software del modo ncleo tiene acceso a los datos del sistema y al hardware. El software restante, que se encuentra en
modo usuario, tiene acceso limitado a los datos del sistema.
5/8

Resumen SOP Rodrigo Carrin

UTN FRC

Organizacin del sistema operativo


Windows no tiene una arquitectura microncleo pura, sino una modificacin de la misma.
Windows es altamente modular. Cualquier modulo puede ser eliminado, actualizado o reemplazado sin volver a escribir el
sistema completo o sus Interfaces de Programas de Aplicacin (API). Sin embargo, a diferencia de in sistema microncleo,
Windows est configurado para que la mayora de las funciones externas al microncleo se ejecuten en modo ncleo, todo
por una razn de rendimiento.
Uno de los objetivos de diseo de Windows es la compatibilidad, que sea capaz de ejecutar sobre distintas plataformas de
hardware, por eso utiliza la siguiente estructura por niveles:

Capa de abstraccin del hardware (HAL): asla el sistema operativo de las diferencias de hardware especficas
de cada plataforma. El SO da rdenes que pasan por la HAL y sta las transforma para que el hardware especfico
las entienda; y al revs, el hardware da rdenes a al SO a travs de la HAL para que el SO las entienda. As no hay
dependencia entre el SO y el hardware.
Microncleo (kernel): formado por los componentes ms usados y fundamentales del sistema operativo
(planificacin de hilos, cambios de contexto, gestin de excepciones e interrupciones y sincronizacin de
microprocesadores).
Controladores de dispositivos: incluye los drivers de dispositivos que traducen las llamadas a funciones de E/S
del usuario a peticiones a dispositivos hardware de E/S especficos.

Mdulos del Ejecutor


El Ejecutor de Windows incluye mdulos para las funciones especficas del sistema y proporciona una API para el software
en modo usuario.

Administrador de E/S: distribuye los controladores de dispositivos (drivers) entre los distintos procesos.
Administrador de objetos: crea, gestiona y elimina los objetos del Ejecutor de Windows.
Monitor de seguridad: impone la validacin de acceso y la generacin de reglas de auditora para los objetos
protegidos.
Administrador de procesos/hilos: crea y elimina objetos y sigue la pista de los objetos proceso e hilo.
Servicios de llamadas a procedimiento local (LPC): impone las relaciones cliente/servidor entre las aplicaciones
y los subsistemas del Ejecutor dentro de un mismo sistema, de forma similar al servicio de llamadas a procedimiento
remoto (RPC) utilizadas en el procesamiento distribuido.
Administrador de memoria virtual: traduce direcciones virtuales en el espacio de direcciones del proceso a
pginas fsicas en la memoria de la computadora.
Administrador de cach: mejora el rendimiento de las E/S sobre archivos.
Mdulos para grficos/ventanas: crea las interfaces de pantalla (ventanas) y gestiona los dispositivos grficos.

Procesos de usuario

Procesos de soporte de sistemas especiales: proceso de inicio de sesin y la gestin de sesin.


Procesos de servicio: otros servicios como el registro de sucesos.
Subsistemas de entorno: ofrecen servicios nativos de Windows a las aplicaciones de usuario y de este modo
proporcionan un entorno de SO. Cada subsistema incluye DLLs (bibliotecas de enlace dinmico) que convierten las
llamadas de las aplicaciones de usuario en llamadas que interprete Windows.
Aplicaciones de usuario: programas que se ejecutan sobre el SO. Pueden ser Win32, Posix, OS/2, etc.

Modelo cliente/servidor
Cada subsistema del entorno y el subsistema de servicios del Ejecutor se implementan como uno o ms procesos. Cada
proceso espera la solicitud de un cliente para uno de sus servicios. Un cliente (un programa de aplicacin u otro mdulo del
SO) solicita un servicio enviando un mensaje. El mensaje es encaminado a travs del Ejecutor hasta el servidor apropiado.
El servidor lleva a cabo la operacin solicitada y devuelve el resultado o la informacin de estado por medio de otro mensaje,
que se encamina a travs del Ejecutor hasta el cliente.

6/8

Resumen SOP Rodrigo Carrin

UTN FRC

Ventajas

Simplifica el Ejecutor. Se pueden aadir fcilmente nuevas API.


Mejora la fiabilidad. Cada mdulo de servicio del Ejecutor se ejecuta en un proceso independiente, con su propia
particin de memoria, protegido de otros mdulos. Un cliente puede fallar sin corromper el resto del SO.
Proporciona una base para el procesamiento distribuido.

UNIX
Historia

Se desarroll en los Laboratorios Bell operando en una PDP-7 en 1970.


Se reescribi en lenguaje de programacin C, demostrando las ventajas de usar un lenguaje de alto nivel.

Descripcin
El hardware bsico est rodeado por el software del SO (el kernel). UNIX cuenta con varios servicios e interfaces de usuario
que se consideran parte del sistema (interprete de rdenes, conocido como shell, o un software de interfaz grfica). El nivel
exterior est formado por las aplicaciones de los usuarios y la interfaz de usuario del compilador C. Los programas de
usuario pueden invocar servicios del SO directamente o a travs de programas de biblioteca (libreras).

Linux
Historia

Linux aparece como variante de UNIX para la arquitectura del IBM PC.
La versin inicial fue escrita por Linus Torvals.
Torvals distribuy una primera versin de Linux en Internet en 1991. Desde entonces un gran nmero de personas
han contribuido al desarrollo de Linux.
Linux es libre y est disponible su cdigo fuente.
Linux es altamente modular y fcilmente configurable. Esto hace que sea fcil de obtener el rendimiento ptimo para
mltiples plataformas de hardware.

Estructura modular
Linux est organizado como un conjunto de bloques independientes denominados mdulos cargables, que tienen dos
caractersticas importantes:

Enlace dinmico: un mdulo del ncleo puede cargarse y enlazarse dentro del ncleo. Tambin, un mdulo puede
ser desenlazado y borrado de la memoria en cualquier momento. Esto facilita la tarea de configuracin y protege la
memoria del ncleo. En Linux, un programa de usuario o un usuario puede cargar y descargar explcitamente
mdulos del ncleo usando las rdenes insmod y rmmod.

7/8

Resumen SOP Rodrigo Carrin

UTN FRC

Mdulos apilables: los mdulos se organizan jerrquicamente, pudiendo definir dependencias entre mdulos. Esto
tiene dos ventajas:
1. El cdigo comn de un conjunto de mdulos similares puede ser trasladado a un nico mdulo, reduciendo
la duplicacin.
2. El ncleo puede asegurar que los mdulos necesarios estn presentes, despreocupndose de descargar
un mdulo del que dependen otros mdulos en ejecucin y cargando cualquier mdulo adicional necesario
cuando se cargue un mdulo nuevo.

8/8

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N2 Administracin y gestin de archivos


Archivos
Archivo: son un mecanismo de abstraccin que permite almacenar informacin en el disco y leerla despus. Esto se realiza de
forma que el usuario no tenga que saber los detalles de cmo y dnde est almacenada la informacin, y de cmo funcionan
los discos.

Nombre
Cuando un proceso crea un archivo, le asigna nombre. Cuando el proceso termina, el archivo sigue existiendo y otros
procesos pueden tener acceso a l mediante su nombre.
Las reglas exactas para nombrar archivos varan segn el sistema. Algunos sistemas de archivos distinguen entre
maysculas y minsculas (UNIX), pero otros no (MS-DOS).
Muchos sistemas de archivos manejan nombres de archivos en dos partes, separadas con un punto. La parte que sigue al
punto se denomina extensin de archivo, y por lo general indica algo acerca del archivo. En algunos sistemas (como UNIX)
las extensiones de archivo son slo convenciones y el SO no vigila que se usen de alguna forma especfica. El nombre sirve
de recordatorio para el usuario en vez de servirle informacin a la computadora. En cambio, Windows tiene conocimiento
de las extensiones y les asigna un significado. A cada extensin se le asigna un programa dueo, haciendo que cuando
un usuario haga doble clic sobre el archivo, se abra el programa asociado a la extensin con el nombre de archivo como
parmetro (si haces doble clic en documento.doc se abre documento.doc en Word).

Estructuras de archivos
1. Sucesin no estructurada de bytes: el SO no sabe que contiene el archivo, ni le interesa; lo nico que ve son
bytes. Utilizado por UNIX y Windows. Ofrece mayor flexibilidad.
2. Sucesin de registros de longitud fija: cada registro tiene una estructura interna. La operacin de lectura devuelve
un registro y la operacin de escritura sobrescribe o anexa un registro.
3. rbol de registros: los registros pueden ser de diferente longitud. Cada registro posee un campo clave en una
posicin fija del registro. El rbol se ordena segn el campo clave con el objetivo de encontrar con rapidez una clave
en particular.

Tipos de archivos
1. Archivos normales: contienen informacin del usuario. Pueden ser de texto (ASCII) o binarios.
a. ASCII: consisten en lneas de texto. Pueden exhibirse e imprimirse tal cual, y pueden editarse con cualquier
editor de textos. Facilitan la conexin de la salida de un programa con la entrada de otro.
b. Binarios: poseen una estructura interna conocida por los programas que los usan. Solo pueden ser
visualizados por la aplicacin que los cre.
2. Directorios: archivos del sistema que sirven para mantener la estructura del sistema de archivos (contiene otros
archivos y directorios).
3. Archivos especiales de caracteres: tienen que ver con E/S y sirven para modelar dispositivos de E/S en serie
(flujos de caracteres, por ejemplo la impresora).
4. Archivos especiales de bloques: sirven para modelar discos (se leen y escriben bloques).

Mtodos de acceso

Acceso secuencial: el archivo se lee desde el principio hasta el final, no pudiendo realizar saltos o leerlos en otro
orden. El tiempo de acceso es lento (excepto si el archivo se encuentra en el principio). Usado en cintas magnticas.
Acceso aleatorio: los archivos pueden leerse en cualquier orden. Se puede acceder a ellos a travs de una clave
o ndice independientemente de su posicin, sin tener que pasar por los datos anteriores. Usado en discos.

1/9

Resumen SOP Rodrigo Carrin

UTN FRC

Atributos de un archivo
Atributo: informacin adicional de un archivo que agrega el SO, como la fecha y la hora de creacin, tamao, etc. Los
atributos varan segn el SO.

Proteccin: quien puede tener acceso al archivo y


cmo.
Contrasea: clave necesaria para poder acceder al
archivo.
Creador: ID del creador del archivo.
Propietario: propietario actual.
Indicador de slo lectura: 0 para leer/escribir; 1 slo
lectura.
Indicador de oculto: 0 normal; 1 para no mostrar.
Indicador de sistema: 0 normal; 1 archivo de sistema.
Indicador de archivado: 0 ya respaldado; 1 debe
respaldarse.
Indicador de ASCII/Binario: 0 ASCII; 1 binario.
Indicador de acceso aleatorio: 0 acceso secuencial; 1
acceso aleatorio.

Indicador temporal: 0 normal; 1 borrarlo al terminar


el proceso.
Indicador de bloqueo: 0 sin bloqueo; 1 bloqueado.
Longitud de registro: bytes en un registro.
Posicin de clave: distancia a la clave dentro de cada
registro.
Longitud de clave: bytes en el campo clave.
Hora de creacin: fecha y hora de creacin.
Hora de ltimo acceso: fecha y hora en se tuvo
acceso por ltima vez al archivo.
Hora de ltimo cambio: fecha y hora en se modific
por ltima vez el archivo.
Tamao actual: bytes en el archivo.
Tamao mximo: bytes que puede alcanzar el
archivo.

Operaciones con archivos


Los SO ofrecen diferentes operaciones para almacenar y recuperar la informacin. Las ms comunes son:
1. CREATE (crear): se crea el archivo sin datos. Se reserva espacio en el disco y se establecen algunos atributos.
2. DELETE (borrar): borrar un archivo para liberar espacio en disco.
3. OPEN (abrir): hace que el sistema obtenga los atributos y la lista de direcciones de disco y los coloque en la memoria
principal para despus accederlos
4. CLOSE (cerrar): cierra el archivo cuando han acabado todos los accesos, ya que no son necesarios los atributos y
direcciones en disco.
5. READ (leer): se leen datos del archivo. Se lee desde la posicin actual, y debe especificarse cuantos datos se
necesita y el bfer donde deben colocarse.
6. WRITE (escribir): lee los datos de un archivo, generalmente, en la posicin actual. Si la posicin actual es el fin del
archivo, aumenta el tamao; si la posicin actual es un punto intermedio, se sobrescriben los datos.
7. APPEND (aadir): forma restringida de WRITE; solo se pueden aadir datos al final del archivo.
8. SEEK (buscar): para los archivos de acceso aleatorio, especifica el punto a partir del cual se tomaran los datos
(escribir o leer).
9. GET ATTRIBUTES: se leen los atributos de un archivo para que un proceso los utilice.
10. SET ATTRIBUTES: el usuario puede establecer algunos atributos o modificarlos despus de la creacin del archivo.
11. RENAME (renombrar): cambiar el nombre de un archivo existente.

Directorios
Directorio: son archivos que contienen a otros archivos o directorios. Son carpetas.

Jerarqua de directorios

Directorios de un solo nivel: un directorio (directorio raz) contiene todos los


archivos. Las ventajas son la sencillez y la rapidez para buscar archivos. Este
sistema es problemtico en sistemas multiusuario (ejemplo, dos usuarios crean un
archivo con el mismo nombre sobrescribiendo al anterior).

Directorios de dos niveles: un directorio raz que contiene a su vez un


directorio para cada usuario, eliminando los conflictos presentes en el
sistema de directorios de un nivel. No satisface a los usuarios que tienen una
gran cantidad de archivos.

2/9

Resumen SOP Rodrigo Carrin

UTN FRC

Directorios jerrquicos: consiste en una jerarqua general, un rbol de directorios.


Posibilita crear un nmero arbitrario de subdirectorios ofreciendo a los usuarios una
herramienta potente para organizar sus archivos.

Nombres de ruta
Ruta: son mecanismos para especificar nombres de archivos en un rbol de directorios.

Ruta absoluta: consiste en el camino que hay que seguir para llegar desde el directorio raz hasta el archivo.
Ruta relativa: consiste en el camino que hay que seguir desde el directorio de trabajo (directorio actual) hasta el
archivo.

Operaciones con directorios


Ejemplos de operaciones de UNIX:
1. CREATE (crear): crea un directorio vaco, excepto por punto y punto-punto que se crean automticamente por el
sistema.
2. DELETE (borrar): elimina un directorio, siempre y cuando est vaco (no se considera punto ni punto-punto).
3. OPENDIR (abrir): abre un directorio para poder leerlo luego.
4. CLOSEDIR (cerrar): cierra un directorio para desocupar espacio en las tablas internas.
5. READDIR (leer): devuelve la siguiente entrada en un directorio abierto. Siempre devuelve una entrada en formato
estndar, sin importar la estructura de directorio.
6. REANAME (renombrar): cambiar el nombre del directorio.
7. LINK (enlazar): permite que un archivo aparezca en ms de un directorio.
8. UNLINK (desenlazar): se elimina una entrada de directorio. Si el archivo que se quiere eliminar aparece solo en un
directorio (caso normal), se elimina del sistema de archivos. Si est presente en varios directorios, solo se elimina
la ruta de acceso especificada, los dems permanecen.

Implementacin de sistemas de archivos


Organizacin del sistema de archivos
Los sistemas de archivos se almacenan en discos. Los discos pueden dividirse en particiones, con sistemas de archivos
independientes en cada particin. El sector 0 del disco se llama registro maestro de arranque (MBR, Master Boot Record) y
sirve para arrancar la computadora. Al final del MBR est la tabla de particiones, que contiene las direcciones inicial y final
de cada particin. Una particin estar marcada como activa. Cuando se enciende la computadora, el BIOS lee el MBR del
disco y lo ejecuta. Lo primero que hace el programa del MBR es localizar la particin activa, leer su primer bloque, llamado
bloque de arranque, y ejecutarlo. El programa del bloque de arranque carga el SO en esa particin.
La organizacin de una particin vara
segn el sistema de archivos. El primer
elemento es el superbloque que contiene
todos los parmetros clave acerca del
sistema de archivos y se transfiere del disco
a la memoria cuando se arranca la
computadora. A continuacin podra haber
informacin acerca de bloques libres, luego
podran estar los nodos-i. Despus podra
venir el directorio raz, y por ltimo el resto
del disco suele contener los dems
directorios y archivos.

3/9

Resumen SOP Rodrigo Carrin

UTN FRC

Implementacin de archivos

Asignacin continua: es el esquema de asignacin ms simple que consiste en almacenar cada archivo en una
serie contigua de bloques de disco. Usado en los CD y DVD.
Ventajas:
-

Fcil implementacin: para localizar los bloques de un archivo solo se necesitan dos nmeros, la direccin
del primer bloque y el nmero de bloques del archivo.
Buen desempeo en lectura: puede leerse todo el archivo del disco en una sola operacin. Slo necesita
un solo desplazamiento del brazo del disco (para el primer bloque).

Desventajas:
-

Fragmentacin del disco: cuando se elimina un archivo, sus bloques se liberan, dejando una serie de
bloques libres en el disco, resultado que el disco se componga de archivos y huecos.
Cuando se va a crear un archivo nuevo se hace necesario conocer su tamao final para recoger un hueco
del tamao correcto en el cual colocarlo. Este diseo es molesto para el usuario que no sabe cul va a ser
el tamao del archivo.

Asignacin por lista enlazada: consiste en mantener cada archivo como una lista enlazada de bloques de disco.
La primera palabra de cada bloque se usa como puntero al siguiente bloque, el resto del bloque es para datos.
Ventajas:
-

Pueden usarse todos los bloques del disco. No se pierde espacio por fragmentacin del disco.
Slo es necesario conocer la direccin del primer bloque.

Desventajas:
-

Acceso aleatorio lento. Para llegar al bloque n, el SO tiene que comenzar por el principio y leer los n-1
bloques que lo preceden, uno por uno.
La cantidad de datos almacenados en un bloque no es potencia de 2 porque el puntero ocupo unos cuantos
bytes. Influye en la eficiencia de programas que leen y escriben en bloques de tamao de potencia de 2.

Asignacin por lista enlazada utilizando una tabla en la memoria: se eliminan las desventajas de la asignacin
por lista enlazada ya que se saca el apuntador de cada bloque de disco y se lo coloca en una tabla en la memoria
denominada tabla de asignacin de archivo (FAT, file allocation table).
Ventajas:
-

Todo el bloque se utiliza para datos.


Acceso aleatorio mucho ms fcil.
La cadena est cargada en memoria, pudindose seguir sin tener que leer el disco.
Se necesita la direccin del primer bloque para localizar todos los dems.

Desventajas:

Toda la tabla debe estar en memoria todo el tiempo.

Nodos-i: asocia a cada archivo una estructura de datos llamada nodo-i (nodo ndice) que contiene los atributos y
direcciones en disco de los bloques del archivo. Dado el nodo-i, es posible hallar todos los bloques del archivo. Es
usado en Linux.
Ventaja:
-

El nodo-i slo est en memoria cuando el archivo correspondiente est abierto.

4/9

Resumen SOP Rodrigo Carrin

UTN FRC

Desventaja:
-

Cada nodo-i tiene espacio para un nmero fijo de direccin de disco, haciendo que se llene cuando el archivo
crece. Para solucionar esto se reserva la ltima direccin de disco no para un bloque de datos, sino para
direccin de un bloque que contenga ms direcciones de bloques de disco. Para archivos ms grandes, una
de las direcciones en el nodo i es la direccin de un bloque en el disco llamado bloque simplemente
indirecto, el cual contiene direcciones en disco adicionales. Si con esto no es suficiente, otra direccin del
nodo i, el bloque doblemente indirecto contiene la direccin de un bloque que tiene una lista de bloques
simplemente indirectos, donde cada uno de estos apunta a unos centenares de bloques de datos. Si an
esto no basta, se puede utilizar un bloque triplemente indirecto.

Implementacin de directorios
Para poder leer un archivo, es preciso abrirlo primero. Cuando se abre un archivo, el SO utiliza el nombre de ruta
proporcionado por el usuario para localizar la entrada de directorio. sta proporciona la informacin necesaria para hallar
los bloques de disco. Dependiendo del sistema, esta informacin puede ser la direccin de disco de todo el archivo (con
asignacin contigua), el nmero del primer bloque (ambos esquemas de lista enlazada) o el nmero del nodo-i. En todos los
casos, la funcin principal del sistema de directorios es establecer una correspondencia entre el nombre de archivo ASCII y
la informacin necesaria para localizar datos. Todo sistema de archivos mantiene atributos de los archivos.
Una posibilidad obvia es guardarlos directamente en la entrada de directorio. Muchos sistemas hacen precisamente esto.
En un diseo sencillo, un directorio es una lista de entradas de tamao fijo, una por archivo, que contiene un nombre de
archivo (de longitud fija), una estructura con los atributos del archivo y una o ms direcciones de disco que indiquen donde
estn los bloques de disco.
En los sistemas que usan Nodos-i, otra posibilidad es almacenar los atributos en los nodos-i, en lugar de en las entradas de
directorio (la entrada de directorio es ms corta: solo guarda nombre y nodo-i). Hasta ahora hemos supuesto que los archivos
tienen nombre cortos de longitud fija. Sin embargo, casi todos los SO actuales reconocen nombres de archivos ms largos,
de longitud de variable. Una alternativa para esto, es abandonar la idea de que todas las entradas de directorio tienen el
mismo tamao. Con este mtodo, cada entrada contiene una porcin fija, que por lo regular principia con la longitud de la
entrada y seguida de los atributos. Este encabezado de longitud fija va seguido del nombre de archivo en s, que puede
tener cualquier longitud. Una desventaja de este mtodo es que cuando se elimina un archivo queda en el directorio un
hueco de tamao variable (mismo caso de la asignacin continua), aunque es factible compactar el directorio porque est
por completo en memoria. Otro problema es que una sola entrada de directorio podra cruzar fronteras de pgina, por lo que
podra presentarse un fallo de pgina durante la lectura de un nombre de archivo.
Otra forma de manejar los nombres variables es hacer que todas las entradas de directorio sean de longitud fija y mantener
los nombres de archivo juntos en un heap al final del directorio. Tiene la ventaja de que si se elimina una entrada siempre
cabr ah el siguiente archivo creado.
Una forma de acelerar la bsqueda es utilizar una tabla de hash en cada directorio. Se examina la entrada de tabla
correspondiente al cdigo de hash calculado a partir del nombre del archivo especificado. Si est desocupada, se coloca en
ella un apuntador a la entrada del archivo. Si ya est en uso esa ranura, se construye una lista enlazada, encabezada por
esa entrada de tabla, que encadena todas las entradas que tienen el mismo valor de hash. Aunque la bsqueda es ms
rpida, la administracin de este mtodo es ms compleja.

Directorios en CP/M: slo hay un directorio, lo nico que el sistema de archivos tiene que hacer para consultar un
nombre de archivo es buscarlo en el directorio. Una vez que encuentra la entrada, tambin tiene de inmediato los
nmeros de bloque en el disco, ya que estn almacenados ah mismo en la entrada, al igual que todos los atributos.

5/9

Resumen SOP Rodrigo Carrin

UTN FRC

Directorios en MS-DOS: los directorios tienen tamao variable, sus entradas son de 32 bytes de longitud fija y
contiene el nombre de archivo, los atributos y el nmero del primer bloque de disco, que se usa como ndice de una
tabla contenida en memoria (asignacin por lista enlazada con una tabla en memoria). Siguiendo la cadena, se
pueden encontrar todos los bloques.

Directorios en Windows 98: nombres de archivo ms largos y se introdujo FAT-32. Se adicionan cinco campos
nuevos donde estaban los 10 bytes desocupados. El campo NT sirve para asegurar la compatibilidad con Windows
NT. Los archivos posean dos nombres, uno largo para Windows NT y un nombre de 8 + 3 por compatibilidad. Se
puede acceder desde los dos nombres.

Directorios en UNIX: cada entrada de directorio contiene slo un nombre de archivo y su nmero de nodo-i. Toda
la informacin acerca del tipo, tamao, tiempos, propietario y bloques de disco est contenida en el nodo-i. Cuando
se abre un archivo, el sistema de archivos debe tomar el nombre que se le proporciona y localizar sus bloques de
disco. Lo primero que hace el sistema de archivos es localizar directorio raz. En UNIX su nodo-i est situado en un
lugar fijo del disco. La localizacin de un nodo-i una vez que se tiene su nmero es directa, ya que cada uno tiene
una posicin fija en el disco.

6/9

Resumen SOP Rodrigo Carrin

UTN FRC

Archivos compartidos
Un archivo compartido es aquel que aparece al mismo tiempo en diferentes directorios que pertenecen a usuarios distintos.
Si un archivo de un usuario A aparece en algn directorio de un usuario B, el archivo compartido se llama enlace (link). El
sistema de archivos deja de ser un rbol, es una grfica acclica dirigida.
Hay dos formas de enlazar archivos:

Enlace duro: los directorios que comparten un archivo, no poseen los bloques de disco, sino que apuntan al mismo
nodo-i que corresponde al archivo. Este es el esquema de UNIX.
Desventaja: si el propietario elimina el archivo y se limpia el nodo-i, algn directorio con un enlace a ese archivo,
apuntara a un nodo-i no vlido. Si el nodo-i se reasignara a otro archivo, el enlace apuntar a un archivo incorrecto.
Una solucin es eliminar el archivo original, pero mantener el nodo-i para el enlace, manteniendo la cuenta en 1.

Enlace simblico (accesos directos): el enlace se genera creando un archivo de tipo LINK en el directorio que
quiere crear el enlace. Este archivo slo contiene el nombre de ruta del archivo con el cual est enlazado, que es
utilizado para buscar el archivo original cuando se lo quiere leer.
Desventajas:
-

Cuando el dueo elimina el archivo original, este se destruye, quedando los archivos de enlace obsoletos,
ya que el sistema no lo va a poder localizar. Pasa algo similar cuando se mueve el archivo.
Necesitan un procesamiento adicional: leer la ruta, analizarla, seguirla, componente por componente hasta
llegar al nodo-i. Puede requerir muchos accesos a disco.
Se necesita un nodo-i adicional por cada enlace, y si el nombre de ruta es largo, se necesita otro bloque
adicional para almacenarla.

Ventaja: pueden servir para enlazar archivos por red, especificando la direccin de red de la mquina en la que est
el archivo.

Administracin del espacio en disco


Hay dos estrategias generales para almacenar un archivo: asignar n bytes consecutivos de espacio en disco, o dividir el
archivo en varios bloques contiguos o no. El almacenamiento de un archivo como secuencia contigua de bytes tiene el
problema de que, si el archivo crece, probablemente tendr que pasarse a otro lugar del disco. Por esta razn, casi todos
los sistemas de archivos dividen los archivos en bloques de tamao fijo que no necesitan estar adyacentes.

Tamao de bloque
Una vez que se ha decidido almacenar archivos en bloques de tamao fijo, se debe decidir qu tamao deben tener los
bloques. Dada la forma como estn organizados los discos, el sector, la pista y el cilindro son candidatos para utilizarse
como unidad de asignacin. Tener una unidad de asignacin grande, como un cilindro, implica que cada archivo, incluso un
archivo de un byte, ocupar todo un cilindro, desperdiciando espacio. Por otro lado, el empleo de una unidad de asignacin
pequea implica que cada archivo consistir en muchos bloques. La lectura de cada bloque normalmente requiere una
bsqueda y un retardo rotacional, as que la lectura de un archivo que consta de muchos bloques pequeos ser lenta. El
tiempo en milisegundos requerido para leer un bloque de k bytes es la suma de los tiempos de bsqueda, retardo rotacional
y transferencia.
En resumen, un tamao de bloque grande tiene mejor tasa de transferencia pero desperdicia espacio; un tamao de bloque
pequeo aprovecha el espacio del almacenamiento, pero disminuye el desempeo.

Control de bloques libres


Una vez que se ha escogido el tamao de bloque, se debe decidir cmo administrar a los bloques libres. Se usan dos
tcnicas para este control:

Lista enlazada de bloques de disco: en la que cada bloque guarda tantos nmeros de bloques de disco como
quepan en l. Con bloques de 1 KB y nmeros de bloque de 32 bits, cada bloque de la lista libre contendr los
nmeros de 255 bloques libres (se necesita una ranura para el puntero al siguiente bloque).
7/9

Resumen SOP Rodrigo Carrin

UTN FRC

Slo es preciso mantener un bloque de punteros en la memoria principal. Cuando se crea un archivo tomas los
bloques que necesita del bloque de punteros. Cuando el bloque se agota, se lee del disco un nuevo bloque de
punteros. Cuando se borra un archivo, sus bloques se liberan y se aaden al bloque de punteros en memoria. Si
este bloque se llena, se escribe en el disco. Esto puede generar una cantidad innecesaria de operaciones de E/S
de disco (sobre todo los archivos temporales). Para evitar esto, se divide el bloque de punteros lleno.

Mapa de bits: un disco con n bloques requiere un mapa de bits con n bits. Los bloques libres se representan con
unos en el mapa y los bloques asignados con ceros (o viceversa).

El mapa de bits requiere menos espacio, ya que utiliza 1 bit por bloque y no 32 bits como la lista enlazada.
Slo si el disco est casi lleno el mtodo de la lista enlazada requerir menos bloques que el mapa de bits. Si hay suficiente
memoria principal para contener el mapa de bits, este mtodo es preferible. En cambio, si slo se puede dedicar un bloque
de memoria para seguir la pista a los bloques libres, y el disco est casi lleno, la lista enlazada puede ser mejor.

Administracin de cuotas de disco


Los SO multiusuario tienen un mecanismo para evitar que las personas acaparen demasiado espacio de disco. El
administrador del sistema asigna a cada usuario una porcin mxima (lmites) de archivos y bloques y el SO cuida que los
usuarios no excedan su cuota.
Cuando se abre un archivo, sus atributos y direcciones de disco se colocan en una tabla de archivos abiertos en la memoria
principal. Cada archivo tiene una entrada que indica quien es el dueo del archivo, por lo que cualquier aumento en el
tamao del archivo se carga automticamente a la cuota del dueo. Una segunda tabla contiene los registros de cuota de
los usuarios que tiene algn archivo abierto en ese momento, para poder localizar los distintos lmites. Cada vez que se
aade un bloque a un archivo, se incrementa el total de bloques cargados al usuario y se verifica este valor contra los lmites
estricto y flexible. Se puede exceder el lmite flexible, pero no el estricto. Cuando un usuario desea iniciar su sesin, el SO
verifica el archivo de cuotas para ver si este se ha excedido su lmite flexible (ya sea en nmero de archivos o bloques). Si
se ha excedido, se le advierte (mediante un mensaje) y el contador de advertencias se reduce en uno. Si este llega a cero,
no se le permite iniciar sesin nuevamente.

NTFS (Windows 2000)


NTFS es un sistema de archivos grande y complejo. Se dise desde cero, en vez de intentar mejorar el antiguo sistema de
archivos de MS-DOS. Se usa desde Windows 2000 en adelante.
Cada volumen NTFS (por ej., particin de disco) contiene archivos, directorios, mapa de bits u otras estructuras de datos.
Cada volumen est organizado como una sucesin lineal de bloques (clsteres) de tamao fijo que pueden variar entre 512
bytes y 64 KB, dependiendo del tamao del volumen. El trmino medio entre bloques grandes y pequeos es de 4 KB. Cada
volumen contiene una estructura llamada tabla maestra de archivos (MFT: Master File Table) que es una sucesin lineal
de registros de tamao fijo (1KB). Cada registro de MFT describe un archivo o directorio, o sea, contiene atributos y lista de
direcciones de disco donde estn sus bloques (todas las direcciones, no solo la primera). Si el archivo es muy grande se
usan dos o ms registros MFT, donde el primero (registro base) apunta a los dems. Un mapa de bits controla las entradas
libres de la MFT. La MFT es en s un archivo, por lo que puede colocarse en cualquier lugar del volumen. Cada registro es
una secuencia de pares (atributo, valor). Cada atributo principia con un encabezado que indica de qu atributo se trata y
qu longitud tiene, ya que algunos son variables, como el nombre del archivo y los datos. Si el nombre es corto se coloca
en la MFT, sino se coloca en otro lugar del disco y un puntero al mismo en la MFT. Los primeros 16 registros de la MFT
estn reservados para metadatos de NTFS. El nombre de cada uno de estos archivos comienza con un signo dlar, lo que
indica que es un archivo de metadatos.
Reg.

Descripcin

Reg.

Descripcin

Archivo MFT mismo

Lista de bloques defectuosos

Copia espejo

Informacin de seguridad

Archivo de registro para recuperacin

10

Tabla de conversin de maysculas a minsculas

Informacin del volumen

11

Extensiones

8/9

Resumen SOP Rodrigo Carrin

UTN FRC

Definicin de atributos

12

Reservado para uso futuro

Directorio raz

13

Reservado para uso futuro

Mapa de bits de bloques usados

14

Reservado para uso futuro

Cargador de autoarranque

15

Reservado para uso futuro

Registro 1: copia espejo por si uno de los primeros bloques se arruina alguna vez.
Registro 2: ac se asienta la informacin antes de realizar un cambio estructural, como agregar o eliminar un
directorio, en caso de que falle.
Registro 8: contiene una lista de bloques defectuosos para asegurarse de que nunca formen parte de un
archivo.
Registro 11: archivos diversos, como cuotas de disco, identificadores de objetos, ptos. de reanlisis, etc.

Cada registro de MFT consiste en un encabezado de registro seguido de una secuencia de pares (encabezado de atributo,
valor). El encabezado de registro contiene varios datos referidos al registro (nmero de validez, contador de referencias al
archivo, nmero real de bytes ocupados por el archivo, etc.). Despus del encabezado de registro viene el encabezado del
primer atributo seguido del valor del mismo, luego el encabezado del segundo seguido del valor del mismo, y as
sucesivamente. NTFS define 13 atributos que pueden estar en un registro MFT. Si un atributo es demasiado largo y no cabe
en el registro MFT, se lo coloca en otra parte del disco. A este tipo de atributo se le llama atributo no residente.
La informacin estndar contiene bits indicadores, marcas de hora, dueo del archivo, informacin de seguridad. El nombre
de archivo est en Unicode y es de longitud variable. El descriptor de seguridad es obsoleto. Esta informacin se coloca en
un archivo que es compartido por varios otros. La lista de atributos se usa en caso de que los atributos no entren en el
registro actual. El identificador de objeto da un nombre nico al archivo (para mantenimiento interno). El punto de reanlisis
sirve para montajes y enlaces simblicos. El nombre del volumen indica el nombre de este volumen. Informacin del volumen
indica la informacin de este volumen. La raz ndice se usa para directorios. La asignacin de ndice y el mapa de bits se
usan para directorios muy grandes. El flujo utilitario de registro se usa en el sistema de archivos cifrador ($LogFile).
Sin duda el atributo datos es el ms importante. Despus del encabezado viene una lista de direcciones de disco que indica
los bloques contenidos en el archivo, o en el caso de archivos, unos cuantos cientos de bytes. Para controlar los bloques de
disco, siempre que sea posible se asignan series de bloques consecutivos. Por ejemplo si el primer bloque lgico se coloca
en el bloque 20 del disco, el sistema tratara de colocar el segundo bloque lgico en el bloque 21 del disco, y as
sucesivamente.
Los bloques de un archivo se describen mediante una secuencia de registros, los cuales describen una serie de bloques
lgicamente contiguos. En un archivo sin huecos habr uno solo de estos registros. Cada registro se encabeza con el
desplazamiento del primer bloque dentro del archivo. Cada encabezado de registro va seguido de uno o ms pares (direccin
de disco, longitud). La direccin en disco es el desplazamiento del bloque de disco a partir del principio de su particin y la
longitud es el nmero de bloques que hay en la serie. Se pueden tener tantos pares como sea necesario.
En el caso de un archivo de n bloques, el nmero de series puede variar de 1 a n incluyendo a este ltimo. No existe un
lmite superior para el tamao de los archivos que pueden representase de esta manera. Si el archivo es demasiado grande
o est demasiado fragmentado y no cabe en un registro MFT, se usan dos o ms registros MFT. Si la cantidad de registros
MFT para un archivo es inmensamente grande de manera que todos sus ndices no caben en el registro base, la lista de
registros MFT de extensin se hace no residente (se almacena en disco y no en el registro). As podr crecer hasta el tamao
necesario.

9/9

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N3 Administracin de procesos


Proceso: es un programa ejecutndose, el programa est en la memoria principal al ejecutarlo, sino est en el disco. Es
una unidad de actividad que se caracteriza por la ejecucin de una secuencia de instrucciones, un estado actual, y un
conjunto de recursos del sistema asociados.

Estados
La principal responsabilidad del SO es controlar la ejecucin de los procesos, para lo cual hay que describir el
comportamiento que se querr que tengan los procesos.

Modelo de dos estados


Es el modelo ms sencillo, teniendo en cuenta que el proceso puede estar ejecutndose en el procesador o no; un proceso
puede estar en dos estados: en Ejecucin o No Ejecucin. Aquellos procesos que no estn en ejecucin tienen que
guardarse en algn tipo de cola, para que esperen su turno de ejecucin.

Creacin de procesos y terminacin de procesos


Cuando se aade un proceso a los que ya est administrando el SO, hay que construir las estructuras de datos que se
utilizan para esta administracin y asignar el espacio de direcciones en la memoria principal para el proceso. Estas acciones
constituyen la creacin de un proceso.
Cuatro sucesos comunes conducen a la creacin de un proceso:
1.
2.
3.
4.

Un proceso se crea como respuesta a una emisin de trabajo (nuevo trabajo por lotes).
Un proceso se crea cuando un nuevo usuario intenta conectarse (en entorno interactivo).
Un proceso se crea como parte de una aplicacin (por el SO).
Un proceso se crea tras la solicitud explcita de otro (por otro proceso, generacin de procesos. El proceso
generados se lo denomina proceso padre, y al generado proceso hijo).

Las causas tpicas para la terminacin de los procesos son:


1.
2.
3.
4.

En un trabajo por lotes se incluye la instruccin de detencin o se hace una llamada al SO.
En una aplicacin interactiva, es la accin del usuario la que indica cuando termina el proceso.
Un proceso puede ser eliminado por un proceso padre o cuando ste termine.
Tambin se puede terminar por una serie de fallos o errores.

Modelo de cinco estados


El modelo de dos estados no es adecuado, ya que algunos procesos en el estado de No Ejecucin estn listos para
ejecutarse, mientras que otros estn bloqueados esperando a que termina una operacin de E/S.
La forma ms comn de solventar esto es dividir el estado de No Ejecucin en dos estados: Listo y Bloqueado. Luego se
incorporan dos estados ms por una cuestin de utilidad, quedando cinco estados:

Ejecucin: proceso actualmente en ejecucin.


Listo: proceso preparado listo para ejecutarse.
Bloqueado: procesos que no se va a ejecutar hasta que se produzca cierto suceso (como una operacin de E/S).
Nuevo: proceso que se acaba de crear, pero que no ha sido admitido por el SO en el grupo de procesos ejecutables.
Normalmente permanece almacenado en disco.
Terminado: el proceso ha sido excluido del grupo de ejecutables, porque se detuvo o porque fue abandonado por
alguna razn. El SO conserva temporalmente las tablas y otra informacin asociado al proceso terminado para que
le d tiempo a otros programas para extraer informacin necesaria de l, luego se borran del sistema.

1 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Ahora hay dos colas, una de Listos y una de Bloqueados. A medida que se admiten procesos en el sistema, se sitan en la
cola de Listos. Cuando llega la hora de que el SO escoja otro proceso para ejecutar, selecciona uno de la cola de Listos
(cola FIFO). Cuando se produce un suceso, todos los procesos de la cola Bloqueados que estn esperando a dicho suceso
se pasan a la cola de Listos. El SO debe recorrer toda la cola de Bloqueados, buscando aquellos procesos que esperan el
suceso, pudiendo haber cientos o incluso miles de procesos en dicha cola. Sera ms eficiente tener una cola para cada
suceso.
Si la expedicin de procesos est dictada por un esquema de prioridades, entonces es conveniente tener un cierto nmero
de colas de Listos, una para cada nivel de prioridad. El SO podr determinar fcilmente cul es el proceso de prioridad ms
alta que lleva ms tiempo esperando.

Transiciones

Nulo Nuevo: se crea un nuevo proceso para ejecutar un programa.


Nuevo Listo: el SO est preparado para aceptar un proceso ms.
Listo Ejecucin: momento de seleccionar un nuevo proceso para ejecutar, el SO elige uno de los procesos del
estado Listo.
Ejecucin Terminado: el proceso en ejecucin es finalizado por el SO.
Ejecucin Listo: la razn ms comn es que el proceso en ejecucin ha alcanzado el tiempo mximo permitido
de ejecucin ininterrumpida. Hay otras causas, como los niveles de prioridad o que un proceso ceda voluntariamente
el control del procesador.
Ejecucin Bloqueado: un proceso solicita por algo por lo que debe esperar.
Bloqueado Listo: se produce el suceso que el proceso estaba esperando.
Listo Terminado: por ejemplo, un padre termina con un proceso hijo, o el mismo padre termina, terminando con
l todos sus hijos.
Bloqueado Terminado: mismo caso de Listo Terminado.

Procesos suspendidos
Hay una buena justificacin para agregar ms estados al modelo. Las actividades de E/S son mucho ms lentas que las de
clculo y, por lo tanto, el procesador en un sistema de monoprogramacin est la mayor parte del tiempo desocupado. El
procesador es tan rpido comparado con la E/S que suele ser habitual que todos los procesos de memoria estn esperando
por E/S. Incluso con multiprogramacin, el procesador podra estar desocupado la mayor parte del tiempo.
Una solucin es el intercambio, o sea, mover una parte del proceso o todo el proceso de la memoria principal al disco.
Cuando ninguno de los procesos en la memoria principal est en estado Listo, el SO pasa al disco uno de los procesos en
Bloqueado y lo lleva a una cola de Suspendidos. El SO trae entonces otro proceso de la cola de Suspendidos o acepta la
solicitud de creacin de un nuevo proceso. La ejecucin contina con el proceso recin llegado.
No obstante, el intercambio es una operacin de E/S, pero como la E/S con el disco es la E/S ms rpida de un sistema
(comparado con una impresora o una cinta) suele mejorar el rendimiento.

2 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Modelo de siete estados


Al emplear el intercambio, se debe aadir un nuevo estado al modelo del comportamiento de los procesos, el estado
Suspendido. A su vez, un proceso en estado Suspendido puede estar Bloqueado o Listo, por eso se necesitan cuatro
estados:

Listo: proceso en memoria principal y listo para la ejecucin.


Bloqueado: proceso en memoria principal, esperando un suceso.
Bloqueado y suspendido: proceso en memoria secundaria esperando un suceso.
Listo y suspendido: proceso en memoria secundaria disponible para la ejecucin en cuanto se cargue en la
memoria principal.

Transiciones

Bloqueado Bloqueado y suspendido: si no hay procesos Listos, entonces al menos un proceso Bloqueado se
expulsa para dar cabida a otro proceso que no est Bloqueado.
Bloqueado y suspendido Listo y suspendido: se produce un suceso que estaba esperando en memoria
secundaria.
Listo y suspendido Listo: cuando no hay procesos Listos en memoria principal, el SO tendr que traer uno para
continuar la ejecucin.
Listo Listo y suspendido: puede ser necesario suspender un proceso Listo si sta es la nica forma de liberar
espacio en memoria principal. El SO puede suspender un proceso Listo de ms baja prioridad en lugar de uno
Bloqueado que sea de prioridad ms alta, si cree que el proceso Bloqueado pronto estar Listo.
Nuevo Listo y suspendido, Nuevo Listo: cuando se crea un nuevo proceso, se lo puede aadir a la cola de
Listos o a la de Listos y suspendidos. En el segundo caso puede deberse a poco espacio en memoria principal.
Bloqueado y suspendido Bloqueado: un proceso termina y se libera memoria; hay un proceso en Bloqueados
y suspendidos que tiene una prioridad mayor a la de cualquier proceso de Listos y suspendidos, as que el SO
supone que ocurrir el suceso que espera pronto.
Ejecucin Listo y suspendido: hay un proceso en Bloqueados y suspendidos de prioridad alta que se acaba
de desbloquear, para ello expulsa al proceso en ejecucin y lo suspende.
Varios Terminado: un proceso en cualquier estado puede pasar al estado Terminado.

Descripcin de procesos
Estructuras de control del sistema operativo
Si el SO va a administrar los procesos y los recursos, entonces tiene que disponer de informacin sobre el estado actual de
cada proceso y de cada recurso; para ello, el SO construye y mantiene tablas de informacin sobre cada entidad que est
administrando. Los SO organizan la informacin principalmente en cuatro categoras:

Tablas de memoria: se utiliza para seguir la pista de la memoria principal (real) y secundaria (virtual). Parte de la
memoria principal est reservada para uso del SO, el resto es para los procesos. Incluyen informacin como
asignacin de memoria principal y secundaria a los procesos, informacin de proteccin de regiones compartidas
(por los procesos) de memoria.
Tablas de E/S: utilizadas por los SO para administrar los dispositivos y canales de E/S, los cuales pueden estar
disponibles o asignados a un proceso en particular.
Tablas de archivos: ofrecen informacin sobre la existencia de los archivos, su posicin en la memoria secundaria,
su estado actual y otros atributos.
Tablas de procesos: sirve para administrar los procesos. Se genera un nmero para cada proceso, para poder
identificarlo. Estas tablas estn enlazadas o relacionadas, disponen de referencias cruzadas. La memoria, la E/S y
los archivos son administrados en nombre de los procesos, por lo que debe haber alguna referencia directa o
indirecta a estos recursos en las tablas de procesos.

Estructuras de control de procesos


Lo que un SO debe saber para administrar y controlar los procesos es: dnde est el proceso y conocer los atributos de
ste.
3 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Bloque de control de proceso e Imagen de proceso


Un proceso constar, al menos, de la memoria suficiente para albergar los programas y los datos del proceso. Adems de
esto, en la ejecucin de un programa entra en juego normalmente una pila, que se utiliza para llevar la cuenta de las llamadas
a procedimientos y de los parmetros que se pasan entre los procedimientos. Por ltimo, asociado a cada proceso hay una
serie de atributos utilizados por el SO para su control. Estos atributos se conocen como bloque de control del proceso
(BCP). Esta coleccin de programas, datos, pila y atributos se conoce como imagen del proceso.
En el caso ms simple, la imagen del proceso se guarda como un bloque contiguo, o continuo de memoria. Este bloque se
mantiene en memoria secundaria. Para que el SO pueda administrar el proceso, al menos una pequea parte de su imagen,
que contiene la informacin a usar por el SO, debe mantenerse en memoria principal. Para ejecutar el proceso, la imagen
completa debe cargarse a la memoria principal, o al menos a la memoria virtual. Por lo tanto, las tablas mantenidas por el
SO, deben mostrar la ubicacin de cada segmento o pgina (dependiendo el esquema que se use) de cada imagen de
proceso.
Los SO modernos utilizan un esquema de gestin de memoria en donde la imagen de un proceso consiste en un conjunto
de bloques que no tienen por qu estar almacenados consecutivamente. Esto permite al SO tener que traer solo una parte
de un proceso en particular. De este modo, en un momento dado, una parte de la imagen de un proceso puede estar en la
memoria principal y el resto en la memoria secundaria. Las tablas de procesos mantenidas por el SO, deben mostrar la
ubicacin de cada segmento o pgina de cada imagen de proceso.

Atributos de los procesos


La informacin de los BCP se puede agrupar en tres categoras:

Identificacin del proceso: cada proceso tiene un identificador (PID).


Informacin del estado del procesador: formada por el contenido de los registros del procesador.
Informacin de control de proceso: informacin adicional para que el SO controle y coordine los procesos activos.

La importancia del BCP


El BCP es la estructura de datos ms importante de un SO. Cada BCP contiene toda la informacin de un proceso necesaria
para el SO. Puede decirse que el conjunto de los BCP define el estado del SO.

Control de procesos
Modos de ejecucin

Modo de usuario: es el modo menos privilegiado y consiste en los programas de usuario.


Modo del ncleo, modo del sistema, modo de control: es el modo ms privilegiado. Aqu el software tiene control
completo sobre el procesador y de todas sus instrucciones, registros y memoria.

La razn de usar dos modos, es porque es necesario proteger al SO y a las tablas importantes del mismo. Existe un bit en
la palabra del estado del programa (PSW) que indica al procesador el modo de ejecucin. Para cambiar el modo de ejecucin
se cambia el bit.

Funciones del ncleo de un SO

Gestin de procesos: creacin y terminacin, planificacin y expedicin de procesos, cambio de procesos, gestin
de BCP, sincronizacin de procesos, y soporte para la comunicacin entre ellos.
Gestin de memoria: asignacin de espacios de direcciones a los procesos, intercambio, gestin de pginas, etc.
Gestin de E/S: gestin de buffers, asignacin de canales de E/S y dispositivos a los procesos.
Funciones de soporte: tratamiento de interrupciones, contabilidad, supervisin.

Creacin de procesos
La creacin de un proceso incluye los siguientes pasos:
1. Asignar un nico identificador al nuevo proceso: se aade una nueva entrada a la tabla principal de procesos.

4 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

2. Asignar espacio para el proceso: incluye todos los elementos de la imagen del proceso. Se debe asignar espacio
para el BCP.
3. Iniciar el BCP: la informacin del estado del procesador se inicia generalmente con todas las entradas en cero
excepto por el contador de programa y los punteros de pila del programa. La informacin de control del procesador
se inicia a partir de los valores estndares por omisin y los atributos que se han solicitado para el proceso.
4. Establecer los enlaces apropiados: por ejemplo, poner el nuevo proceso en la cola de Listos o Listos y
suspendidos.
5. Crear o ampliar otras estructuras de datos: por ejemplo, algn tipo de archivo de contabilidad para futuros
informes de rendimiento.

Cambio de proceso
Un cambio de proceso puede producirse en cualquier momento en que el SO haya tomado el control a partir del proceso
que est actualmente ejecutndose. Los posibles sucesos que pueden dar el control al SO son:

Interrupcin: originada por un suceso externo e independiente del proceso en ejecucin. El control se transfiere a
un gestor de interrupciones quien se encarga del tipo de interrupcin ocurrida:
o Interrupcin de reloj: el SO determina si el proceso ha consumido el tiempo mximo permitido. Si esto pasa,
el proceso que se est ejecutando pasa a Listo y se debe expedir otro proceso.
o Interrupcin de E/S: el SO determina que accin de E/S se ha producido. Si es un suceso que muchos
procesos estaban esperando, se los pasa a Listo, luego el SO debe decidir si reanudar la ejecucin o
ejecutar uno de los procesos Listos de mayor prioridad.
o Fallo de memoria: referencias a memoria virtual de una palabra que no est en memoria principal. El proceso
que cometi el fallo pasa a estar Bloqueado hasta que se cargue el bloque en memoria, donde cambia a
Listo.
Cepo: condicin de error o excepcin generada dentro del proceso en ejecucin. Si es un error fatal, el proceso
pasa a Terminado. Si no es fatal, depende del error y del SO, puede intentar una recuperacin o informar al usuario.
Llamada al supervisor: el uso de una llamada al sistema hace que el proceso de usuario pase al estado Bloqueado
y el control pase al SO.

Procesos e hilos
Hilo: conjunto de instrucciones que pertenecen a un proceso. Es la unidad de procesamiento ms pequea que puede ser
planificada por un SO.
Proceso: conjunto de uno o ms hilos y los recursos del sistema asociados (memoria, datos, archivos abiertos y
dispositivos). Es un programa en ejecucin, una tarea, controlado y ejecutado por el procesador.

Entornos monohilo y multihilo

Entorno monohilo: un solo hilo de ejecucin por


proceso. No existe el concepto de hilo. MS-DOS
soporta un solo proceso y un solo hilo. UNIX soporta
mltiples procesos con un hilo cada uno.
Entorno multihilo: varios hilos de ejecucin dentro
de un proceso. En un entorno multihilo contina
existiendo un solo BCP y un espacio de direccin de
usuario asociado al proceso, pero ahora hay pilas
separadas por cada hilo, as como diferentes BCP
para cada hilo. Todos los hilos de un proceso
comparten el estado y los recursos del proceso y
tienen el mismo acceso a los datos.

Elementos de un proceso

Un espacio de direcciones virtuales que contiene la imagen del proceso.


Acceso protegido a los procesadores, otros procesos, archivos y recursos de E/S.
5 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Elementos de los hilos de un proceso

El estado de ejecucin del hilo (Ejecucin, Listo, etc.).


El contexto del procesador (contador de programa independiente).
Una pila de ejecucin.
Almacenamiento esttico para las variables locales.
Acceso a memoria y a los recursos del proceso, compartidos con todos los otros del mismo proceso.

Modelos de proceso monohilo y multihilo


En un modelo de proceso monohilo, la representacin de un
proceso incluye su BCP y un espacio de direcciones de usuario, as
como las pilas de usuario y un ncleo para gestionar la secuencia
de llamadas/retornos durante la ejecucin del proceso.
En un entorno multihilo, continua existiendo un solo BCP y un
espacio de direcciones de usuario asociados al proceso, pero ahora
hay pilas separadas, as como distintos bloques de control para
cada hilo, que contienen los valores de los registros, prioridad y otra
informacin.
As pues, todos los hilos de un proceso comparten el estado y los recursos del proceso, residen en el mismo espacio de
direcciones y tienen acceso a los mismos datos.

Ventajas de la implementacin de hilos


Los beneficios claves estn relacionados con el rendimiento.

Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que crear un nuevo proceso.
Se tarda mucho menos tiempo en terminar un hilo que un proceso.
Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.
Aumenta la eficiencia de la comunicacin entre programas en ejecucin. Los hilos de un mismo proceso comparten
memoria y archivos, pueden comunicarse entre s sin invocar al ncleo.
Es ms eficiente relacionar un conjunto de hilos que un conjunto de procesos.
Ejemplo: servidor de archivos, se crea un nuevo hilo por cada solicitud.
tiles en monoprocesadores para simplificar programas que llevan a cabo diferentes funciones.

Estados de un hilo
Los principales estados de un hilo son: Ejecucin, Listo y Bloqueado. No hay estado de Suspensin ya que esos estados
pertenecen al concepto de procesos. Hay cuatro operaciones bsicas relacionadas con el cambio de estado de hilos.

Creacin: cuando se crea un nuevo proceso, se crea un hilo para ese proceso. Luego, un hilo de un proceso puede
crear otros hilos dentro del mismo proceso.
Bloqueo: un hilo espera por un suceso.
Desbloqueo: se produce el suceso por el que un hilo se bloque.
Terminacin: cuando un hilo finaliza, se liberan su contexto y sus pilas.

Implementacin de hilos

Hilos a nivel de usuario (ULT, User Level Thread): todo el trabajo de gestin de hilos lo realiza la aplicacin y el
ncleo no es consciente de la existencia de hilos. Es posible programar cualquier aplicacin como multihilo mediante
una biblioteca de hilos, la cual contiene el cdigo para: crear y destruir hilos, intercambiar mensajes y datos entre
hilos, planificar la ejecucin de hilos y salvar y restaurar el contexto de los hilos.
Todas las operaciones se llevan a cabo en el espacio de usuario y dentro de un mismo proceso.

6 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Ventajas:
-

El intercambio de hilos no necesita los privilegios del modo ncleo. Se evita la sobrecarga de dos cambios de
modo (de usuario a ncleo, y de ncleo a usuario).
Se puede realizar una planificacin especfica para una aplicacin si afectar a la planificacin del SO.
Se pueden ejecutar en cualquier SO.

Desventajas:
-

Cuando se ejecuta una llamada al SO, se bloquea el hilo en ejecucin y todos los hilos del proceso.
No aprovechan las ventajas de los multiprocesadores. El ncleo asigna un proceso a un solo procesador cada
vez, tenindose que ejecutar un hilo de cada proceso en cada instante.

Hilos a nivel de ncleo (KLT, Kernel Level Thread): todo el trabajo de gestin de hilos lo realiza el ncleo.
Ejemplos: Windows 2000, Linux y OS/2.
El ncleo realiza la planificacin en funcin de los hilos.
Ventajas:
-

El ncleo puede planificar simultneamente mltiples hilos del mismo proceso en mltiples procesadores.
Si se bloquea uno de los hilos de un proceso, el ncleo puede planificar otro hilo del mismo proceso.

Desventaja: el paso del control de un hilo a otro dentro del mismo proceso necesita un cambio de modo a modo de
ncleo.

Combinacin: este enfoque puede combinar las ventajas de ULT y KLT. Ejemplo: Solaris.

Multiproceso simtrico (SMP)


SMP: ofrece paralelismo mediante la duplicacin de procesadores.

Arquitecturas SMP
Para la arquitectura de SMP hay cuatro categoras:

Flujo de instruccin simple/dato simple (SISD): un nico procesador ejecuta un nico flujo de instrucciones con
datos en una nica memoria.
Flujo de instruccin simple/datos mltiples (SIMD): una nica instruccin que se ejecute sobre un conjunto de
datos diferentes por medio de distintos procesadores.
Flujo de instrucciones mltiples/datos simples (MISD): se transmite una secuencia de datos a un conjunto de
procesadores, donde cada uno ejecuta una instruccin de la secuencia. No se ha implementado nunca.

7 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Flujo de instrucciones mltiples/datos mltiples (MIMD): un conjunto de procesadores ejecuta simultneamente


varias secuencias de instrucciones sobre distintos conjuntos de datos.

Los MIMD se clasifican en:

Agrupacin (multicomputador): cada procesador tiene


una memoria dedicada, cada elemento del proceso es un
autocomputador. Se comunican a travs de alguna red o
lneas dedicadas.
Multiprocesadores con memoria compartida: los
procesadores comparten una memoria comn y se
comunican entre s por esa memoria. Se pueden clasificar
segn la forma en que se asignan los procesos:
o Maestro/esclavo: el ncleo del SO siempre se ejecuta un procesador determinado, el resto pueden ejecutar
programas de usuario y utilidades del SO. Las desventajas son que: un fallo en el maestro puede hacer caer
todo el sistema; el maestro puede ser un cuello de botella.
o Multiprocesador simtrico: el ncleo se ejecuta en cualquier procesador, y cada procesador se
autoplanifica a partir de una cola de procesos o hilos libres. El SO es ms complejo, ya que debe asegurase
de que dos procesadores no elijan el mismo proceso y que los procesos no se pierdan.

Microncleo
Microncleo: es un ncleo pequeo del SO que proporciona las bases para ampliaciones modulares.

Antecesores de la arquitectura microncleo

SO monolticos: cualquier procedimiento poda llamar a cualquier otro. Esta falta de estructura se volva
insostenible cuando el SO alcanz proporciones considerables.
SO por capas: las funciones se organizaban jerrquicamente y slo se produce interaccin entre capas adyacentes.
El problema es que realizar grandes modificaciones en una capa puede tener numerosos efectos en el cdigo de
las capas adyacentes (por encima y por debajo).

Arquitectura microncleo
La filosofa en la que se basa el microncleo es que slo las funciones esenciales del ncleo del SO deben permanecer en
el ncleo. Las aplicaciones y los servicios menos esenciales se construyen sobre el microncleo y se ejecutan en modo
usuario. Muchos servicios que antes formaban parte del SO, ahora son subsistemas externos que interactan con el ncleo
y con otros subsistemas (controladores, gestores de memoria virtual, sistemas de archivos, sistemas de ventanas,
seguridad, etc.)
Los componentes externos al microncleo se implementan como procesos servidores; estos interactan uno con otro sobre
una base comn, a travs de mensajes distribuidos a travs del microncleo. Entonces, el microncleo funciona como
distribuidor de mensajes, validndolos, pasndolos entre componentes, y otorgando el acceso al hardware. Tambin acta
como protector de mensajes, evitando el intercambio de mensajes cuando no est permitido.

Ventajas de la implementacin microncleo


1.
2.
3.
4.
5.
6.

Uniformidad de interfaces: todos los servicios se utilizan mediante el paso de mensajes.


Extensibilidad: facilidad para aadir nuevos servicios.
Flexibilidad: se adapta a las necesidades de los usuarios (aadir o quitar caractersticas para eficiencia).
Portabilidad
Fiabilidad: un microncleo puede probarse de forma rigurosa. Se utilizan APIs.
Soporte a sistemas distribuidos: un proceso puede enviar un mensaje sin saber en qu mquina reside el
destinatario.
7. Soporte para SO orientados a objetos (SOOO): los componentes son objetos con interfaces bien definidas,
entonces, la interaccin entre componentes utilizan esa interfaz.

8 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Diseo de microncleo
Un microncleo de incluir aquellas funciones que dependen directamente del hardware y cuya funcionalidad es necesaria
para dar soporte a las aplicaciones y servidores que ejecutan en modo ncleo. Se engloban en tres categoras: gestin de
memoria a bajo nivel, comunicacin entre procesos, y gestin de interrupciones y E/S.

Hilos y procesos en Linux


Estados de un proceso en Linux

Ejecucin: abarca dos estados, ejecutando y listo.


Interrumpible: estado de bloqueo, el proceso espera un suceso.
No interrumpible: otro estado de bloqueo, a diferencia del anterior, no acepta seales, espera directamente una
condicin de hardware.
Parado: proceso detenido y slo puede reanudarse por otro proceso.
Zombie: proceso terminado, pero permanece en la tabla de procesos.

Hilos en Linux
Cuando dos procesos comparten la misma memoria virtual, operan como hilos dentro de un nico proceso, pero Linux no
diferencia entre hilo y proceso.

Comunicacin entre procesos


Condiciones de competencia: cuando dos o ms procesos leen o escriben datos compartidos y el resultado final depende
de quin se ejecuta y cuando lo hace. Ejemplo: el spooler de impresin.
Regiones crticas: es la parte del programa en que se tiene acceso a la memoria compartida.
Exclusin mutua: dos o ms procesos no pueden leer o escribir datos compartidos al mismo tiempo.
Para evitar las condiciones de competencia hay que cumplir con lo siguiente:
1.
2.
3.
4.

Dos procesos no pueden estar al mismo tiempo dentro de sus regiones crticas.
No pueden hacerse suposiciones sobre las velocidades ni el nmero de las CPUs.
Ningn proceso que se est ejecutando fuera de su regin crtica puede bloquear a otro proceso.
Ningn proceso deber tener que esperar de manera indefinida para entrar en su regin crtica.

Exclusin mutua con espera ocupada (con espera activa)


Mientras un proceso est actualizando la memoria compartida en su regin crtica, ningn otro proceso debe entrar en su
propia regin crtica y causar problemas.

Desactivacin de interrupciones: la solucin ms simple es hacer que cada proceso inhabilite todas las
interrupciones inmediatamente despus de ingresar a su regin crtica y las vuelva a habilitar justo antes de salir de
ella. Con las interrupciones inhabilitadas, no puede haber interrupciones de reloj. Este es un enfoque poco atractivo
porque no es prudente conferir a los procesos de usuario la capacidad de inhabilitar todas las interrupciones.
Variable de cierre (o de bloqueo): una solucin de software es utilizar una sola variable compartida que
inicialmente es cero (desbloqueado). Cuando un proceso quiere entrar en su regin crtica, primero prueba el
bloqueo. Si este es 0, el proceso lo establece a 1 (bloqueado) y entra en la regin critica. Si la variable es 1, el
proceso espera hasta que cambie a 0. La desventaja aqu es que se pueden generar inconsistencias en la lectura
de los datos por interrupciones de reloj en tiempos inoportunos (mismo caso del spooler).
Alternancia estricta: esta solucin usa una variable de cerradura pero permite el acceso a 2 procesos en base a
los valores de las variables, por lo que no hay posibilidad de que entren los 2. Un proceso entra en un ciclo corto en
la espera que el otro que est en la regin crtica salga de la misma y cambie la variable de cerradura para permitirle
el acceso. Aqu se pueden generar inconsistencias por interrupciones de reloj y; adems, como un proceso es el
que llama a otro, si el proceso 0 no entra en la regin critica, el 1 no entrar.
Instruccin TSL: esta solucin requiere un poco de ayuda del hardware. Muchas computadoras, sobre todo las
diseadas pensando en mltiples procesadores, tienen una instruccin TSL RX, BLOQUEO (Test and Set Lock).
9 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Esta lee el contenido de la palabra de memoria bloqueo, la coloca en el registro RX y luego guarda un valor distinto
a cero en la direccin de memoria bloqueo. Se garantiza que las operaciones de leer la palabra y escribir en ella
son indivisibles. La CPU que ejecuta la instruccin TSL cierra el bus de memoria para impedir que otras CPUs
tengan acceso a la memoria antes que termine.
Todas estas alternativas son correctas, pero tienen el defecto de que requieren espera activa. Es decir, cuando un proceso
quiere entrar en su regin critica, verifica si tal ingreso est permitido. Si no lo est, el proceso entra en un ciclo corto para
esperar hasta que lo est. Este enfoque desperdicia CPU y puede tener efectos inesperados.
Otra alternativa para lograr exclusin mutua, es empleando modelos sin espera activa: aqu cuando a un proceso no se le
permite entrar a la regin crtica, en lugar de esperar y perder tiempo en la CPU, se bloquea. Cuando se le habilita la entrada,
se desbloquea. Para lograr esto se debe hacer uso de algunas primitivas de comunicacin entre procesos, unas de las ms
sencillas son el par sleep y wakeup:

sleep: hace que el invocador se bloquee, hasta que otro proceso lo active.
wakeup: desbloquea un proceso. Tiene un parmetro, el proceso a desbloquear.

El problema del productor-consumidor


Este es un modelo que utiliza las dos primitivas nombradas anteriormente. Dos procesos comparten un bfer de tamao fijo.
Uno de ellos, el productor, coloca la informacin all y el otro, el consumidor, la saca. Los problemas de este modelo surgen
cuando el productor quiere colocar un nuevo elemento en el bfer pero este ya est lleno. La solucin es que el productor
se desactive y se vuelva a activar cuando el consumidor haya sacado uno o ms elementos. Asimismo, si el consumidor
quiere sacar un elemento del bfer y ve que est vaco, se desactiva hasta que el productor coloca algo all y lo activa.
Siendo cuenta el nmero de elementos del bfer y N el nmero de elementos mximo que se puede guardar, el cdigo de
este modelo es:
A pesar de que este modelo no posee espera activa, sigue teniendo el problema de las
interrupciones de reloj en momentos inoportunos.
Ejemplo: si cuenta no est restringido. El bfer est vaco
y el consumidor acaba de leer cuenta para ver si es 0.
En ese instante, el calendarizador decide dejar de
ejecutar el consumidor y comienza a ejecutar el
productor. Este inserta un elemento en el bfer,
incrementa la cuenta y ve que el valor es 1. Al estar
cuenta en 1, el productor intuye que consumidor est
dormido y llama a wakeup() para activarlo. Pero el
consumidor todava no est inactivo, entonces la seal
de activar se pierde. Cuando se ejecute el consumidor
usar el valor de cuenta que haba ledo antes, que era
0 y se desactivar. El productor llenar el bfer y se
desactivar y permanecern ambos inactivos para siempre.

Exclusin mutua sin espera ocupada

Semforos: consiste en una variable entera para contar el nmero de llamadas wakeup. Son un tipo de variable a
la que se le aplican dos operaciones, down y up. La operacin down, aplicada a un semforo determina si su valor
es mayor a 0. En tal caso, decrementa el valor y simplemente contina. Si el valor es 0, el proceso se desactiva sin
terminar la operacin down por el momento. La operacin up, incrementa el valor del semforo indicado. Si uno o
ms procesos estn inactivos en espera de un semforo, sin haber podido terminar una operacin down previa, el
sistema escoge uno de ellos y le permite terminar dicha operacin.
Ambas operaciones son atmicas, o sea que se garantiza que una vez iniciada una operacin de semforo, ningn
otro proceso podr tener acceso al semforo antes de que la operacin haya terminado o se haya bloqueado.

10 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Utilizando semforos al modelo productor-consumidor, se tiene:


-

lleno = 0, para contar el nmero


de ranuras ocupadas.
vaco = N, para contar el nmero
de ranuras desocupadas.
mutex = 1, para asegurar que el
productor y consumidor no
tengan acceso al bfer al mismo
tiempo.

Los semforos resuelven el problema del despertar perdido.


Los semforos que solo pueden adoptar dos valores, se denominan semforos binarios o mutex. Las variables lleno
y vaco son semforos de sincronizacin, garantizando que ciertas secuencias de sucesos se presenten o no
(producto deje de producir cuando el bfer est lleno, y el consumido deje de consumir cuando est vaco).

Monitores: un monitor es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un
tipo especial de modulo o paquete. Los procesos pueden invocar a los procedimientos de un monitor cuando lo
deseen, pero no pueden acceder en forma directa a sus estructuras de datos internas desde procedimientos
declarados fuera de dicho monitor. Los monitores tienen una propiedad importante que los hace tiles para lograr
la exclusin mutua: solo un proceso puede estar activo en un monitor a la vez. Son una construccin del lenguaje
de programacin.

Transferencia de mensajes: este mtodo utiliza dos primitivas, send y receive, que son llamadas al sistema, no
construcciones del lenguaje. Especficamente, cada una se estructura:
o send(destino, mensaje): enva un mensaje a un destino dado.
o receive(origen, mensaje): recibe un mensaje de un origen dado.
Si no hay mensajes disponibles, el receptor puede bloquearse hasta que llegue uno, o bien, regresar de inmediato
con un cdigo de error.
Los sistemas de transferencia de
mensajes
presentan
muchos
problemas y cuestiones de diseo
difciles. Cabe la posibilidad de que en
la red se pierdan los mensajes. Para
protegerse contra tal perdida, el
emisor y el receptor pueden convenir
en que tan pronto como el receptor
reciba un mensaje, devolver un mensaje especial de acuse. Si el emisor no recibe tal acuse dentro de cierto plazo,
retransmitir el mensaje. Otro problema, es lo que sucede si el mensaje se recibe de forma correcta, pero el acuse
se pierde. El emisor retransmitir el mensaje y el emisor lo obtendr dos o ms veces. Este problema se resuelve
anexando nmeros de sucesin consecutivos a cada mensaje original. Si el receptor recibe un mensaje con el
mismo nmero de sucesin que el mensaje anterior, sabr que est repetido y puede ignorarlo. Cuando el emisor y
el receptor estn en la misma mquina, el desempeo es importante, en este caso la transferencia de mensajes
entre procesos es ms lenta que una operacin de semforo o entrar en un monitor.
En el problema del productor-consumidor se usan N mensajes (que seran N ranuras en el bfer de memoria
compartida). Lo primero que hace el consumidor es enviar N mensajes vacos al productor. Cada vez que ste tiene
que entregar un mensaje al consumidor, toma un mensaje vaco y devuelve uno lleno.
Si el productor trabaja ms rpido que el consumidor, todos los mensajes se llenarn y estarn esperando al
consumidor, el productor se bloquear, en espera de un mensaje vaco.
Si el consumidor es ms rpido, todos los mensajes estarn vacos en espera de que el productor los llene, el
consumidor se bloquear esperando un mensaje lleno.
11 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Planificacin de procesos (Scheduling o calendarizacin)


Una computadora con multiprogramacin suele tener varios procesos compitiendo por la CPU al mismo tiempo (cuando dos
o ms estados estn en estado Listo). Si slo hay una CPU, es preciso decidir cul proceso se ejecutar a continuacin,
entrando en juego el calendarizador.
Adems de escoger el proceso que ms conviene ejecutar, el calendarizador debe preocuparse por aprovechar con
eficiencia la CPU, porque la conmutacin de procesos es costosa.
Calendarizador: parte del SO que toma la decisin de que proceso ejecutar a continuacin, utilizando un algoritmo de
calendarizacin, y durante cunto tiempo.

Cuando calendarizar (criterios de planificacin)


Hay diversas situaciones en las que es necesario calendarizar:

cuando se crea un proceso, pues hay que decidir si se ejecutara el proceso padre o el hijo.
cuando un proceso termina se deber escoger otro del conjunto de procesos Listos. Si no hay procesos Listos se
ejecuta un proceso inactivo del sistema.
cuando un proceso se bloquea por E/S, un semforo u otro motivo, el motivo del bloqueo puede afectar la decisin.
cuando se presenta una interrupcin de E/S, si vino de un dispositivo que termin su tarea, hay que elegir entre
ejecutar ese proceso o el que se estaba ejecutando cuando se recibi la interrupcin.
si algn reloj de hardware genera interrupciones cada una cierta frecuencia, puede tomarse una decisin de
calendarizacin en cada interrupcin o cada cierta cantidad de interrupciones.

Tipos de algoritmos de calendarizacin

Algoritmo no expropiativo: escoge el proceso que se ejecutar y luego simplemente le permite ejecutarse hasta
que se bloquee o hasta que ceda la CPU de forma voluntaria. Aunque ese proceso se ejecute durante hora, no se
lo suspender por la fuerza. No se toman decisiones de calendarizacin, luego de que la interrupcin sea tratada
siempre se reanuda el proceso que se estaba ejecutando antes.
Algoritmo expropiativo: escoge un proceso y le permite ejecutarse durante un tiempo establecido. Si al trmino
de este tiempo el proceso contina en ejecucin, se le suspende y el calendarizador escoge otro proceso para que
se ejecute (si hay disponible). Este tipo de calendarizacin requiere que haya una interrupcin de reloj al trmino
del intervalo de tiempo para que el calendarizador pueda recuperar el control de la CPU.

Categoras de algoritmos de calendarizacin


Lo que el calendarizador debe optimizar en un sistema, no es lo mismo para todos. Por lo tanto, se diferencian tres entornos
que vale la pena distinguir:

Por lotes: suelen ser aceptables los algoritmos no expropiativos, o los expropiativos con intervalos de tiempo largos
para cada proceso (no hay usuarios impacientes esperando que el sistema responda con rapidez). Este enfoque
reduce la conmutacin de procesos y, por lo tanto, mejora el desempeo.
Interactivo: la expropiacin es indispensable para evitar que un proceso acapare la CPU y niegue servicio a otros.
Tiempo real: a veces no es necesaria la expropiacin, porque los procesos saben que tal vez no se ejecuten durante
mucho tiempo y, por lo general, realizan su trabajo y se bloquean rpido. A diferencia de los sistemas interactivos,
ejecutan programas cuyo fin es apoyar a la aplicacin actual.

Metas de los algoritmos de calendarizacin


Algunos objetivos dependen del entorno, pero otros son deseables en todos los casos.

Todos los sistemas:


o Equidad: dar a cada proceso una porcin equitativa del tiempo de CPU.
o Cumplimiento de polticas: cuidar que se ponga en prctica la poltica establecida.
o Equilibrio: mantener ocupadas todas las partes del sistema.
Sistemas por lotes:
o Rendimiento: procesar el mximo de trabajos por hora.
12 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

o Tiempo de retorno: reducir al mnimo el lapso entre la presentacin y la terminacin de un trabajo.


o Utilizacin de CPU: mantener ocupada todo el tiempo a la CPU.
Sistemas interactivos:
o Tiempo de respuesta: responder rpido a las solicitudes.
o Proporcionalidad: satisfaces las expectativas de los usuarios.
Sistemas en tiempo real:
o Cumplir los plazos: evitar la prdida de datos.
o Predecibilidad: evitar la degradacin de la calidad en sistemas multimedia.

Algoritmos de calendarizacin en sistemas por lotes

Primero en llegar, primero en ser atendido (FCFS, First Come, First Served o FIFO): este algoritmo es el ms
sencillo de todos y es no expropiativo. Aqu, la CPU se asigna a los procesos en el orden que la solicitan. De manera
bsica, hay una sola cola de procesos listos. Cuando el primer trabajo entra al sistema, se le inicia de inmediato y
se le permite ejecutar todo el tiempo que desee. A medida que llegan otros trabajos, se les coloca al final de la cola.
Cuando se bloquea el proceso en ejecucin, se ejecuta el primer proceso de la cola. Si un proceso bloqueado vuelve
a estar listo, se le coloca al final de la cola como si fuera un trabajo recin llegado. La gran ventaja de este algoritmo
es que es muy fcil de entender y de programar. La desventaja es que puede hacer uso ineficiente de la CPU.
Trabajo ms corto primero (SJF, Simple Job First): es un algoritmo no expropiativo. Su funcionamiento es similar
al FCFS, pero la diferencia es que si hay varios trabajos de la misma importancia en la cola de entrada, el
calendarizador escoge al trabajo ms corto primero. Vale la pena sealar que esta estrategia de trabajo ms corto
primero slo es ptima si todos los trabajos estn disponibles en forma simultnea.
Tiempo restante ms corto a continuacin (SRTF, Short Remaining Time First): esta es una versin
expropiativa de la estrategia anterior. Siempre se escoge el proceso en base al tiempo que falta para que termine
de ejecutarse. Cuando llega un trabajo nuevo, su tiempo total se comprara con el tiempo que resta para que el
proceso actual termine de ejecutarse. Si es menor, el proceso actual se suspende y se pone en marcha el trabajo
recin llegado. La ventaja de este esquema es que permite que trabajos cortos nuevos obtengan un buen servicio.
Tambin necesita conocer con antelacin los tiempos de ejecucin.

Algoritmos de calendarizacin en sistemas interactivos

Por turno circular (Round Robin): es uno de los mtodos ms antiguos, sencillos y equitativos muy utilizado. A
cada proceso se le asigna un intervalo de tiempo, llamado cuanto (quantum), durante el que se le permitir
ejecutarse. Si al termino del cuanto el proceso se sigue ejecutando, se le expropia la CPU asignndosela a otro
proceso. Claro que si el proceso se bloquea o termina antes de expirar el cuanto, la conmutacin de la CPU se
efecta en ese momento. Lo nico que necesita hacer el calendarizador es mantener una lista de procesos
ejecutables. Cuando un proceso consume su cuanto, se le coloca al final de la lista. Un aspecto importante es la
magnitud del cuanto: un cuanto demasiado corto causa demasiadas conmutaciones de procesos y reduce la
eficiencia de la CPU, pero uno demasiado largo puede reducir la rapidez de respuesta a solicitudes interactivas
cortas. Aun cuando de alrededor de 20-50 ms suele ser un trmino medio razonable.
Por prioridades: a cada proceso se le asigna una prioridad, y el proceso listo
que tenga mayor prioridad es el que se ejecuta. Para evitar que los procesos
con prioridades altas se ejecuten de manera indefinida, el calendarizador
podra disminuir la prioridad del proceso que se est ejecutando. Otra
alternativa, es asignar a cada proceso un cuanto de tiempo mximo en el cual
pueda ejecutarse, y una vez cumplido el tiempo, se ejecutar el proceso con la siguiente prioridad ms alta. Las
prioridades pueden asignarse estticamente (por el usuario) o dinmicamente (por el SO). En muchos casos en
conveniente agrupar los procesos en clases de prioridad y utilizar calendarizacin por prioridades entre las clases,
pero Round Robin dentro de cada clase.
Colas mltiples: se establecen clases de prioridad. Los procesos de la clase ms alta se ejecutan durante un
cuanto. Los procesos de la siguiente clase ms alta se ejecutaban en dos cuantos. Los procesos de la siguiente
clase se ejecutaban durante cuatro cuantos, y as sucesivamente. Cada vez que un proceso se gastaba todos los
cuantos asignados, se le bajaba a la clase inmediata inferior.
Calendarizacin garantizada: consiste en hacer promesas reales en cuanto al desempeo y luego cumplirlas. Si
hay n usuarios, cada uno recibe 1/n de la capacidad de la CPU, lo mismo pasa con procesos en un sistema
13 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

monousuario. Para cumplir estar promesas, el sistema necesita llevar la cuenta de cuanto tiempo de CPU ha recibido
cada proceso desde su creacin. Luego se calcula el tiempo de CPU al que cada uno tiene derecho, que sera el
tiempo desde la creacin dividido n procesos existentes. Entonces se puede calcular el cociente entre el tiempo de
CPU de consumido entre el tiempo al que el proceso tiene derecho. El algoritmo consiste entonces en ejecutar el
proceso cuyo cociente es ms bajo. Un cociente de 0.5 significa que utiliz la mitad del tiempo prometido, y uno de
2.0 significa que utiliz el doble.
Planificacin de dos niveles: los esquemas analizados hasta ahora suponen que todos los procesos ejecutables
estn en la memoria principal. Si la memoria principal es insuficiente, ocurrir lo siguiente:
- Habr procesos ejecutables que se mantengan en disco.
- Habr importantes implicaciones para la planificacin, tales como las siguientes:
Traer un proceso del disco demanda mucho tiempo.
Es ms eficiente el intercambio de los procesos con un planificador de dos niveles.
El esquema operativo de un planificador de dos niveles es como sigue:
1. Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
2. El planificador se restringe a ellos durante cierto tiempo.
3. Peridicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas:
- Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente.
- Cargar a memoria los procesos que hayan estado en disco demasiado tiempo.
4. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en la
memoria.
5. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa.
Los criterios que podra utilizar el planificador de nivel superior para tomar sus decisiones son los que se indican a
continuacin:
-

Tiempo que un proceso estuvo en disco.


Tiempo de CPU utilizado por el proceso.
Tamao del proceso.
Prioridad del proceso.

Bloqueos irreversibles (interbloqueos)


Bloqueo irreversible: un conjunto de procesos cae en un bloqueo irreversible si cada proceso del conjunto est esperando
un suceso que solo otro proceso del conjunto puede causar. Puesto que todos ellos estn esperando, ninguno causara
jams ninguno de los eventos que podran despertar a algn otro miembro del conjunto, y todos seguirn esperando de
manera indefinida. Pueden ocurrir cuando se ha otorgado a los procesos acceso exclusivo a recursos.

Recursos
Recurso: es cualquier cosa que un solo proceso puede usar en un instante dado. Puede ser un dispositivo de hardware o
de informacin (registros de una base de datos por ejemplo).
Hay dos tipos de recursos:

Recurso expropiable: recurso que se le quita al proceso que lo tiene sin causar daos. Ejemplo: el uso de la
memoria.
Recurso no expropiable: recurso que no se lo puede quitar del proceso que lo tiene sin hacer que el cmputo falle.
Ejemplo: la grabacin de un CD. Generalmente, es donde intervienen los bloqueos irreversibles.

Condiciones para un bloqueo irreversible


Deben cumplirse cuatro condiciones para que haya un bloqueo irreversible:
1. Exclusin mutua: cada recurso est asignado a exactamente un proceso, o est disponible.
2. Retencin y espera: los procesos que tienen recursos previamente otorgados pueden solicitar otros recursos.

14 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

3. No expropiacin: los recursos ya otorgados no pueden arrebatarse al proceso que los tiene; ste debe liberarlo de
forma limpia y explcita.
4. Espera circular: debe haber una cadena circular de dos o ms procesos, cada uno de los cuales est esperando
un recurso que est en manos del siguiente miembro de la cadena.
Deben existir estas cuatro condiciones para que ocurra un bloqueo irreversible. Si falta alguna de ellas, no podr ocurrir.

Modelado de bloqueos irreversibles


Se emplean grafos dirigidos. Hay dos nodos, los crculos son procesos,
y los cuadrados son recursos. Un arco desde un recurso a un proceso
quiere decir que el recurso fue solicitado primero por ese proceso y se
lo concedi. Un arco desde un proceso hasta un recurso, significa que
el proceso est bloqueado esperando ese recurso.
Los grafos de recursos son una herramienta que nos permite ver si una sucesin dada de solicitudes/liberaciones conduce
a un bloqueo irreversible.

Estrategias para enfrentar los bloqueos irreversibles

Ignorar el problema: conocido como algoritmo del avestruz. Usado por UNIX y Windows.
Deteccin y recuperacin: se detectan los bloqueos irreversibles y se toman medidas para recuperarse.
Evitacin dinmica: tratan de evitarse asignando cuidadosamente los recursos.
Prevencin: se anula una de las cuatro condiciones necesarias para que haya un bloqueo irreversible.

Deteccin y recuperacin
Algoritmos de deteccin de bloqueos irreversibles:

Con un solo recurso de cada tipo: solo hay un recurso de cada tipo (una impresora, una grabadora, un disco,
etc.). Se construye un grafo de recursos, si contiene uno o ms ciclos, quiere decir que hay un bloque irreversible.
Con mltiples recursos de cada tipo: utiliza matrices y comparacin entre vectores para detectar bloqueos
irreversibles. A medida que algoritmo avanza, se van marcando los procesos para indicar que pueden terminar y,
por lo tanto, que no han cado en un bloqueo irreversible. Cuando el algoritmo finaliza, todos los procesos que no
estn marcados habrn cado en un bloqueo irreversible.

Tcnicas de recuperacin:

Recuperacin mediante expropiacin: arrebatarle de manera temporal un recurso a su actual poseedor y drselo
a otro proceso. Es difcil o imposible.
Recuperacin mediante reversin (Rollback): los procesos pasan por puntos de verificacin peridicamente. En
estos puntos, el estado de un proceso (la imagen de memoria y el estado de los recursos, es decir, si estn
asignados o no a dicho proceso) se graban en un archivo. Cuando se detecta un bloqueo irreversible, un proceso
que tiene un recurso solicitado se revierte hasta un momento anterior a la adquisicin del recurso, iniciando uno de
sus puntos de verificacin previos.
Recuperacin por eliminacin de procesos: es la forma ms burda, pero eficaz. Consiste en eliminar uno o ms
procesos. Se elimina un proceso del ciclo, y si esto no ayuda, se repite hasta romper el ciclo. Una alternativa, podra
eliminarse un proceso fuera del ciclo para liberar sus recursos. El proceso a eliminar se escoge con mucho cuidado
porque est reteniendo recursos que algn proceso del ciclo necesita.

Prevencin de bloqueos irreversibles


Garantizar que no se cumpla al menos una de las condiciones de bloqueos irreversibles.

Atacar la condicin de exclusin mutua: hacer que los recursos no sean exclusivos. Una opcin es hacer spooling
(como la impresora, donde el demonio de impresin es el nico proceso que puede acceder a la impresora y nunca
solicita otros recursos), pero no todos los dispositivos se pueden manejar con esta tcnica. Pero, da la idea de evitar
asignar recursos si no es necesario, y tratar de asegurarse que el nmero de procesos que van a solicitar un recurso
sea el mnimo posible.
15 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Atacar la condicin de retener y esperar: evitar que los procesos que tiene recursos esperen cuando traten de
adquirir ms recursos. Para ello, se exige que todos los procesos soliciten todos sus recursos antes de comenzar a
trabajar. Si todo est disponible, se le asignar los recursos que necesite hasta terminar. Si uno o ms recursos
estn ocupados, no se asignar ningn recurso y el proceso tendr que esperar. Ineficiente, porque muchos
procesos no saben cuntos recursos necesitarn, adems no se har uso ptimo de los recursos.
Atacar la condicin de no expropiacin: expropiarle un recurso a un proceso, muchas veces es muy poco
prometedor. Es difcil o imposible.
Atacar la condicin de espera circular: hay varias formas: una forma sera simplemente tener una regla de que
cualquier proceso tiene derecho tan slo a un recurso en todo momento. Si necesita un segundo recurso, tendr
que liberar el primero (es imposible para un proceso que copia un archivo grande de una cinta a una impresora). La
otra forma es con una numeracin global de todos los recursos. Los recursos pueden solicitar los recursos que
quieran pero siempre en orden numrico (no puede pedir el recurso 3, y luego el 1). La desventaja es que es casi
imposible encontrar un ordenamiento que satisfaga a todos.

Inanicin
Es un problema relacionado con los sistemas multitarea, donde a un proceso o un hilo de ejecucin se le deniega siempre
el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.
La inanicin es una situacin similar al interbloqueo, pero las causas son diferentes. En el interbloqueo, dos procesos o dos
hilos de ejecucin llegan a un punto muerto cuando cada uno de ellos necesita un recurso que es ocupado por el otro. En
cambio, en este caso, uno o ms procesos estn esperando recursos ocupados por otros procesos que no se encuentran
necesariamente en ningn punto muerto.
La utilizacin de prioridades en muchos SO multitarea podra causar que procesos de alta prioridad estuvieran ejecutndose
siempre y no permitieran la ejecucin de procesos de baja prioridad, causando inanicin en estos.

16 / 16

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N4 Administracin de memoria


Administrador de memoria: parte del SO que administra todo lo referido a la memoria. Su obligacin es mantenerse al
tanto de que partes de la memoria estn uso y cuales ocupadas, asignar memoria a procesos cuando la necesiten y liberar
la misma cuando estos terminen, y administrar el intercambio entre la memoria principal y el disco duro cuando la primera
es muy pequea para contener todos los procesos.

Estrategias de administracin
Monoprogramacin sin intercambio ni paginacin
Este es el esquema de administracin de memoria ms sencillo. Consiste en ejecutar solo un programa a la vez, repartiendo
la memoria entre ese programa y el SO. Se ejecuta un solo proceso a la vez.

Multiprogramacin con particiones fijas


La multiprogramacin aumenta el aprovechamiento de la CPU. Existen varias formas de lograr multiprogramacin. La forma
ms fcil es dividir la memoria en n particiones (desiguales o no), cada una con una cola de entrada. Cuando llega un trabajo,
se lo pone en la cola de la particin ms pequea en la que cabe.
Desventaja: cuando la cola de una particin grande est vaca pero
la de una particin pequea est llena, los trabajos pequeos tienen
que esperar para entrar en memoria, aunque haya mucha memoria
desocupada.
Una alternativa, sera mantener una sola cola. Cada vez que se
desocupe una particin, el trabajo ms cercano al frente, y que quepa
en esa particin, se cargar y ejecutar. La nica desventaja seria
desperdiciar una particin grande en un trabajo pequeo. Para
eliminar la desventaja anterior, una estrategia distinta seria examinar
toda la cola cada vez que se desocupe una particin y elegir el trabajo
ms grande que entre en ella. Este enfoque discrimina los trabajos
pequeos.
Una solucin a lo anterior seria tener por lo menos una particin pequea, para ejecutar trabajos pequeos.
Otra estrategia se basa en la regla de que un trabajo elegible para ejecutarse no puede pasarse por alto ms de k veces.
Cada vez que se lo saltea, se le suma un punto. Cuando tiene k puntos, no se le puede ignorar.

Reubicacin y proteccin
La multiprogramacin introduce dos problemas: reubicacin y proteccin. Distintos trabajos se ejecutan en distintas
direcciones. Cuando se enlaza un programa, el enlazador necesita saber en qu direccin de memoria arrancar el
programa. Esto es el problema de la reubicacin.
Ejemplo (ver imagen): suponiendo que la primera instruccin llama a un procedimiento en la direccin absoluta 100, si se carga en la
particin 1, esa instruccin saltar a la direccin absoluta 100, que est dentro del SO. Lo que se necesita es una llamada a 100K + 100.

Una posible solucin es modificar la instruccin en el momento en que el programa se carga en la memoria. Si se carga en la
particin 1, se suman 100K a cada una de las direcciones, se carga en la particin 2, se suman 200K, y as sucesivamente.

La reubicacin sobre la carga no resuelve el problema de la proteccin. En los SO multiusuario es indeseable dejar que los
procesos lean y escriban en la memoria perteneciente a otros usuarios.
Una solucin a los dos problemas, consiste en equipar a la mquina con dos registros especiales de hardware, llamados
base y lmite. Cuando se calendariza un proceso, el registro base se carga con la direccin donde comienza su particin, y
el registro lmite se carga con la longitud de la particin. Cuando se genera una direccin de memoria, se suma
automticamente el registro base, y con el registro lmite se cuida de no acceder a memoria fuera de la particin actual.

1/7

Resumen SOP Rodrigo Carrin

UTN FRC

La desventaja es tener que hacer una suma y una comparacin cada vez que se referencia la memoria.

Administracin de memoria
A veces no hay espacio suficiente en memoria principal para contener todos los procesos activos, as que los procesos
excedentes se mantienen en disco y traerlos a la memoria en forma dinmica para que se ejecuten.
Pueden usarse dos enfoques para la administracin de memoria:

Intercambio (swapping): consiste en traer a la memoria un proceso entero, ejecutarlo durante un rato y volver a
guardarlo en el disco.
Memoria virtual: permite que los programas se ejecuten aunque slo una parte de ellos est en memoria.

Intercambio (swapping)
Particiones variables.
Administracin de memoria con mapa de bits.
Administracin de memoria con listas enlazadas.

Particiones variables
A diferencia de las particiones fijas, el nmero, ubicacin y tamao de las particiones varan en forma dinmica conforme
los procesos llegan y se van. Las particiones se adaptan al tamao de los procesos. Esto mejora el aprovechamiento de la
memoria pero complica la asignacin y liberacin, y su control.
Cuando el intercambio crea muchos huecos en memoria, es posible combinarlos en uno ms grande, a esto se lo denomina
compactacin de memoria. Lo malo es que requiere mucho CPU.
La asignacin de memoria a un proceso es sencilla cuando los procesos se crean con un tamao fijo. Si los procesos pueden
crecer se presentan problemas. Si hay un hueco adyacente al proceso, se le podr asignar y el proceso podr crecer all. Si
est adyacente a otro proceso, el proceso que crece tendr que pasarse a otro hueco de la memoria donde pueda crecer o
realizar un intercambio a disco de otros procesos para hacerle lugar en memoria.
Desventajas:
-

Complejidad en la asignacin y en la liberacin.


Se debe llevar un registro de la memoria.
Necesidad de realizar compactacin.
Cunta memoria asignar a un proceso?

Administracin de memoria con mapa de bits


Con un mapa de bits, la memoria se divide en unidades de asignacin, que pueden ser desde unas cuantas palabras hasta
varios kilobytes. A cada unidad de asignacin corresponde un bit del mapa de bits. El bit es 0 si la unidad est desocupada
y 1 si est ocupada (o viceversa).
El tamao de la unidad de asignacin es muy importante. Ms pequea la unidad, mayor tamao del mapa de bits. A mayor
unidad de asignacin, menor tamao de mapa de bits, pero desperdicia una cantidad de memoria considerable en la ltima
unidad del proceso si su tamao no es mltiplo exacto de la unidad de asignacin.
El tamao del mapa de bits depende del tamao de la unidad de asignacin y de la cantidad de memoria.
Desventaja: una vez que se ha decidido traer a la memoria un proceso de k unidades, el administrador de memoria deber
examinar el mapa de bits en busca de una serie de k bits consecutivos en 0 (operacin lenta).

Administracin de memoria con listas enlazadas


Consiste en una lista enlazada de segmentos de memoria asignados y libres, donde
un segmento es un proceso, o bien, un hueco entre dos procesos. Cada entrada de la
lista especifica un hueco (H) o un proceso (P), la direccin donde comienza, la longitud y un apuntador a la siguiente entrada.

2/7

Resumen SOP Rodrigo Carrin

UTN FRC

Pueden usarse varios algoritmos para la asignacin de memoria, dando por hecho que el administrador sabe cuanta
memoria debe asignar:

Primer ajuste: es el mtodo ms simple. El administrador de memoria explora la lista de segmentos hasta hallar un
hueco lo bastante grande. Luego el hueco se divide en dos partes, una para el proceso y una para la memoria
desocupada (excepto que sea exacto). Este algoritmo es rpido porque la bsqueda es lo ms corta posible.
Siguiente ajuste: funcionamiento similar al del primer ajuste, slo que el algoritmo recuerda en qu punto de la lista
se qued la ltima vez que encontr un hueco apropiado. La siguiente vez que tenga que buscar un hueco, inicia
desde ese punto y no desde el principio. Es ms lento que el del primer ajuste.
Mejor ajuste: se explora toda la lista y se escoge el hueco ms pequeo que alcance. Es ms lento que el del
primer ajuste porque recorre toda la lista y desperdicia ms memoria que el primer ajuste y el siguiente ajuste porque
satura la memoria de pequeos huecos que no sirven para nada.
Peor ajuste: asegura de escoger el hueco ms grande disponible, de modo que el hueco restante sea lo bastante
grande como para ser til. Las simulaciones demuestran que no es muy buena idea.
Ajuste rpido: mantiene listas individuales para algunos de los tamaos que se solicitan en forma ms comn. Por
ejemplo, podra mantenerse una tabla de n elementos, donde el primero es un apuntador a la cabeza de una lista
de huecos 4 KB, el segundo un apuntador a una lista de huecos de 8 KB, etc. Los de 21KB se podran meter con
los de 20 KB o una lista con tamaos irregulares. Con este algoritmo, la localizacin de un hueco del tamao
requerido es extremadamente rpida.

Los cuatro primeros algoritmos pueden acelerarse manteniendo listas distintas para los procesos y para los huecos,
enfocndose entonces en inspeccionar huecos y no procesos. La desventaja es que la asignacin es ms compleja y la
liberacin de memoria es ms lenta (quitar de la lista de procesos e insertar en la lista de huecos).

Memoria virtual
La idea bsica de este esquema es que el tamao combinado del programa, sus datos y su pila podran exceder la cantidad
de memoria fsica que se le puede asignar. El sistema mantiene en la memoria principal las partes del programa que se
estn usando en ese momento, y el resto en el disco. Mientras un programa espera que traiga del disco una parte de s
mismo, est esperando E/S y no puede ejecutarse, as que la CPU puede ejecutar otro proceso. Hay dos tcnicas:
Paginacin.
Segmentacin.

Paginacin
La mayora de los sistemas con memoria virtual utilizan una tcnica llamada paginacin. En cualquier computadora existe
un conjunto de direcciones de memoria que los programas pueden producir.
Estas direcciones generadas por el programa se denominan direcciones virtuales y constituyen el espacio de direcciones
virtual. En computadoras sin memoria virtual, la direccin virtual se coloca en forma directa en el bus de memoria y esto
hace que se lea o escriba la palabra fsica de memoria que tiene esa direccin. Cuando se utiliza memoria virtual, las
direcciones virtuales no se envan de manera directa al bus de memoria, sino a una Unidad de Administracin de Memoria
(MMU, Memory Managment Unit) que establece una correspondencia entre las direcciones virtuales y fsicas de la memoria.
El espacio de direcciones virtuales se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria
fsica se denominan marcos de pgina. Estas dos estructuras siempre tienen el mismo tamao.
En el caso de que un programa trate de usar una pgina que no tiene correspondencia, la MMU se da cuenta de esto y hace
que la CPU salte al sistema operativo. Esta interrupcin de sistema se denomina fallo de pgina. El sistema operativo
escoge un marco de pgina que no est usando mucho y vuelve a escribir su contenido en el disco, despus de lo cual trae
la pgina a la que se acaba de hacer referencia y la coloca en el marco recin desocupado (es un intercambio), modifica el
mapa y reinicia la instruccin interrumpida.
La MMU interpreta por ejemplo una direccin virtual de 16 bits de la siguiente manera:

Los primero 4 bits indican un nmero de pgina. Este se utiliza como ndice para consultar la tabla de pgina y as
obtener el nmero de marco de pgina correspondiente.
3/7

Resumen SOP Rodrigo Carrin

UTN FRC

Los siguientes 12 bits indican un desplazamiento u offset, por lo que si se tienen marcos de pgina de 4 KB, estos
12 bits se utilizan para direccionar los 4096 bytes de cada marco.

Tablas de pgina
El propsito de la tabla de pginas es establecer una correspondencia entre las pginas virtuales y los marcos de pgina.
En trminos matemticos, la tabla de pginas es una funcin, el nmero de pgina virtual es su argumento y el nmero de
marco de pgina es el resultado.
Diseos para la implementacin de tablas de pginas:

El diseo ms sencillo consiste en tener una sola tabla de pginas conformada por un arreglo de registros rpidos
de hardware. Cuando se inicia un proceso, el SO carga los registros con la tabla de pginas del proceso, tomada
de una copia que se guarda en memoria principal. Durante la ejecucin, no se necesitan ms referencias a la
memoria para la tabla de pginas ni para la transformacin de direcciones. Una desventaja es que puede ser costoso
(si la tabla de pginas es grande); adems, tener que cargar toda la tabla en cada conmutacin de contexto perjudica
el desempeo.
En el otro extremo, la tabla de pginas podra estar en su totalidad en la memoria principal. Por lo tanto, lo nico
que se necesita del hardware es un solo registro que apunte al principio de la tabla de pginas. Este diseo permite
cambiar el mapa de memoria con solo cargar un registro cuando se efecta una conmutacin de contexto. La
desventaja es que requiere una o ms referencias a memoria.

Tablas de pginas multinivel: dado que las tablas de pginas pueden ocupar mucha memoria, muchas computadoras
utilizan una tabla de pginas multinivel. En este modelo, no es necesario tener todas las tablas de pginas en memoria todo
el tiempo, las que no se necesitan no debern tenerse en ella.
Cuando se presenta una direccin virtual a la MMU, sta extrae un valor que usa como ndice para consultar la tabla de
pginas de primer nivel. La entrada a la que se llega al consultar la tabla de pginas de primer nivel, contiene la direccin
del nmero de marcos de pgina donde est almacenada una tabla de pginas de segundo nivel (dos niveles).
Estructura de una entrada de tabla de pgina: el tamao de cada entrada vara de una computadora a otra, lo comn es
de 32 bits. Los atributos son:

Nmero de marco de pgina: este es el campo ms importante.


Bit presente/ausente: si este bit es 1, la entrada es vlida y puede usarse; si es 0, la pgina virtual a la que la entrada
corresponde no est en memoria. Tener acceso a una entrada de tabla de pgina que tiene este bit en 0 causa un
fallo de pgina.
Bits de proteccin: indican cuales tipos de accesos estn permitidos. Bit 0 se permite leer y escribir y 1 si no se
permite leer.
Bit solicitado: se enciende cada vez que se hace referencia a una pgina, ya sea para leer o para escribir. Este bit
ayuda al sistema a elegir entre que pgina seleccionar para sacar cuando se presente un fallo de pgina.
Bit cach: este bit permite inhabilitar el uso de cach con la pgina.

Memoria asociativa (bferes de consulta para traduccin)


Puesto que la velocidad de ejecucin por lo general est limitada por la velocidad con que la CPU puede sacar instrucciones
y datos de memoria, tener que hacer dos referencias a la tabla de pgina por cada referencia a la memoria reduce mucho
el desempeo.
La solucin que se hall consiste en equipar las computadoras con un pequeo dispositivo de hardware que traduce
direcciones virtuales a direcciones fsicas, sin pasar por la tabla de pginas. Este dispositivo, llamado bfer de consulta
para traduccin (TLB), tambin conocido como memoria asociativa. Por lo general, esto est dentro de la MMU. Cada
entrada contiene informacin sobre una pgina, incluido el nmero de pgina virtual, un bit que se establece cuando la
pgina se modifica, el cdigo de proteccin (permisos) y el marco de pgina fsico en el que est la pgina. Otro bit indica
si la entrada es vlida.
Cuando se presenta una direccin virtual a la MMU para que la traduzca, el hardware verifica primero si su nmero de pgina
virtual est presente en el TLB o no, comparndolo con todas las entradas simultneamente. Si se encuentra el nmero y
4/7

Resumen SOP Rodrigo Carrin

UTN FRC

el acceso no viola los bits de proteccin, el nmero de marco de pgina se toma directo del TLB, sin recurrir a la tabla de
pginas.
Cuando el nmero de pgina virtual no est en la TLB, la MMU detecta esto y realiza la consulta ordinaria en la tabla de
pginas. Luego desaloja una de las entradas del TLB y la sustituye por la entrada de tabla de pginas que acaba de buscar.

Algoritmos para el reemplazo de pginas


Cuando se presenta un fallo de pgina, el SO tiene que escoger la pgina que desalojar de la memoria para hacer espacio
para colocar la pgina que traer del disco. Si la pgina a desalojar fue modificada mientras estaba en memoria, deber
reescribirse en el disco para actualizar la copia, sino, simplemente se reemplaza. Para ello existen diferentes tipos de
algoritmos:

Algoritmo ptimo de reemplazo de pgina: cada pgina puede rotularse con el nmero de instrucciones que se
ejecutarn antes de que se haga la primera referencia a esa pgina. Este algoritmo simplemente dice que debe
desalojarse la pgina con el rtulo ms grande. El nico problema con este mtodo es que no puede ponerse en
prctica, debido a que en el momento en que se presenta un fallo de pgina, el SO no tiene forma de saber cundo
se volver a hacer referencia a una pgina determinada.
Algoritmo de reemplazo de pginas no usadas recientemente (NRU, Not Recently Used): se asocia a cada
pgina 2 bits de estado, el bit R se enciende cada vez que se hace referencia a la pgina (para leer o escribir). El
bit M se enciende cada vez que se escribe en la pgina (es decir se modifica). Cuando se presenta un fallo de
pgina, el SO examina todas las pginas y las divide en 4 categoras con base en los valores actuales de sus bits
R y M: Clase 0: no solicitada, no modificada; Clase 1: no solicitada, modificada; Clase 2: solicitada, no modificada;
Clase 3: solicitada, modificada. Este algoritmo desaloja al azar una pgina de la clase de nmero ms bajo que no
est vaca.
Algoritmo de reemplazo de pginas de primero en entrar, primero en salir (FIFO): el SO mantiene una lista de
todas las pginas que estn actualmente en la memoria con la ms antigua al principio de la lista, y la ms nueva
la final. Al presentarse un fallo de pgina, se desaloja la pgina que esta al principio de la lista y la nueva se anexa
al final. La desventaja es que puede desalojar una pgina que se usa mucho; se soluciona con el siguiente.
Algoritmo de reemplazo de pginas de segunda oportunidad: es una modificacin del FIFO, se examina el bit
R de la pgina ms antigua. Si es 0, la pgina no se usa mucho, por lo tanto es reemplazada de inmediato. Si es 1,
se apaga, la pgina se coloca al final de la lista de pginas y su tiempo de carga se actualiza como si acabara de
llegar a la memoria. No es tan eficiente porque cambia constantemente las pginas de su lista.
Algoritmo de reemplazo de pginas tipo reloj: mantiene todas las pginas en una lista circular parecida a un reloj,
y una manecilla apunta a la pgina ms antigua. Cuando se presenta un fallo de pgina, se examina la pgina a la
que apunta la manecilla. Si su bit R es 0, dicha se desaloja, la nueva se inserta en su lugar y la manecilla se adelanta
una posicin. Si R es 1, se cambia a 0 y la manecilla se adelanta a la siguiente pgina, repitiendo el proceso hasta
encontrar una pgina con R = 0. Es como el de segunda oportunidad pero diferente implementacin.
Algoritmo de reemplazo de pginas menos recientemente usada (LRU, Least Recently Used): cuando se
presenta un fallo de pgina, se desaloja la pgina que tiene ms tiempo sin usarse.

Modelo del conjunto de trabajo (algoritmo de reemplazo de pginas de conjunto de trabajo)


Primero hay que entender algunas cosas.
Paginacin por demanda: las pginas se traen cuando se necesitan, no por adelantado. Los procesos se inician sin tener
pginas en memoria. Cuando la CPU quiera obtener la primera instruccin habr un fallo de pgina y el SO traer del disco
la pgina con la primera instruccin. Con el tiempo tiene casi todas las pginas y su ejecucin se estabiliza.
Localidad de referencia: durante cualquier fase de su ejecucin, el proceso solo hace referencia a una fraccin
relativamente pequea de sus pginas.
Conjunto de trabajo: es el conjunto de pginas que est usando un proceso en un momento dado. Si la memoria disponible
es demasiado reducida para contener todo el conjunto de trabajo, el proceso causar muchos fallos de pgina y se ejecutar
con lentitud. Se dice que un programa que causa fallos de pginas cada pocas instrucciones est hiperpaginado.

5/7

Resumen SOP Rodrigo Carrin

UTN FRC

La pregunta es qu pasa cuando un proceso se vuelve a traer de la memoria? El proceso causar fallos de pginas hasta
que se haya cargado su conjunto de trabajo. El problema es cuando se producen muchos fallos de pginas, ya que se hace
lenta la ejecucin y desperdicia tiempo de CPU.
Muchos sistemas paginados tratan de mantenerse al tanto de cul es el conjunto de trabajo de cada proceso y se aseguran
de tenerlo en la memoria antes de permitir ejecutar al proceso. Este enfoque se denomina modelo de conjunto de trabajo, y
est diseado para reducir de forma considerable la tasa de fallos de pgina. O sea, que lleva el registro del conjunto de
trabajo de los procesos y garantiza su prepaginacin reduciendo los fallos de pgina.

Aspectos de diseo de los sistemas con paginacin


Polticas de asignacin locales vs. globales
Se refiere a cmo debe repartirse la memoria entre los procesos ejecutables que compiten por ella.

Algoritmos locales: equivalen a asignar una fraccin fija de la memoria a cada proceso, entonces si el proceso
solicita una pgina nueva, deber ser reemplazada por una sus pginas en memoria.
Algoritmos globales: asignan en forma dinmica los marcos de pginas entre los procesos ejecutables. As, el
nmero de marcos asignados a cada proceso vara con el tiempo.

En general, los algoritmos globales funcionan mejor, sobre todo si el tamao del conjunto de trabajo puede variar durante la
vida de los procesos. Si se usa un algoritmo local y el conjunto de trabajo crece, habr hiperpaginacin, aunque haya muchos
marcos de pgina desocupados. Si el conjunto de trabajo se encoge, los algoritmos locales desperdician memoria. Si se
usa un algoritmo global, el sistema debe decidir de manera continua cuantos marcos de pgina asignar a cada proceso.

Tamao de pgina
La determinacin del tamao de pgina ptimo requiere equilibrar varios factores opuestos.

Si la pgina es muy grande un segmento de texto, datos o pila cualquiera no llenar un nmero entero de pginas.
En promedio, la mitad de una pgina se desperdicia. Dicho desperdicio se denomina fragmentacin interna.
Adems, un tamao de pgina grande hace que ms partes no utilizadas del programa estn en memoria
Si las pginas son muy chicas, implica que los programas van a necesitar muchas y, por lo tanto, una tabla de
pginas ms grande. Las transferencias entre la memoria y el disco suelen efectuarse en unidades de pginas, y
casi todo el tiempo que tardan se invierte en el movimiento del brazo y retardo rotacional, por lo que transferir
pginas pequeas requiere casi el mismo tiempo que transferir una grande.

Aspectos de implementacin

Cerradura de pginas en memoria: que no se eliminen de la memoria pginas que estn realizando operaciones
de E/S.
Almacenamiento de respaldo: se reserva un espacio en disco para el intercambio de pginas. Es el rea de
intercambio o Swap.
Demonios de paginacin: proceso que garantiza la existencia de suficientes marcos de pgina libres. Duerme, se
despierta, ejecuta un algoritmo de reemplazo de pginas y se duerme nuevamente. Detecta si la pgina se modific
y establece M=1.

Segmentacin
Consiste en proporcionar a la mquina varios espacios de direcciones independientes por completo, llamados segmentos.
Cada segmento consta de una sucesin lineal de direcciones, desde 0 hasta algn mximo. Los segmentos pueden tener
longitudes distintas, y por lo general las tienen. Adems, las longitudes de segmento pueden variar durante la ejecucin.
Para especificar una direccin en una memoria segmentada, el programa debe proporcionar una direccin de dos partes:
un nmero de segmento y una direccin dentro del segmento. Cabe destacar que un segmento es una entidad lgica de las
cual tiene conocimiento el programador.

Ms fcil compartir y proteger la informacin (un segmento podra ser de slo ejecucin, prohibiendo la lectura y
escritura).
Separa los datos de los programas.
6/7

Resumen SOP Rodrigo Carrin

UTN FRC

Existencia de fragmentacin externa.


Direccionamiento complicado.
Consumo de tiempo para la traduccin de la direccin.
El programador define los segmentos.

Paginacin vs. Segmentacin

7/7

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N5 Entrada / Salida


Interrupciones
Interrupcin: forma que tiene el SO de comunicarse con los dispositivos y viceversa.
Virtualmente todos los computadores proporcionan un mecanismo mediante el cual otros mdulos (E/S, memoria) pueden
interrumpir la ejecucin normal del procesador.
Mejoran la eficiencia del procesamiento, ya que permiten que el procesador ejecute otras instrucciones mientras se realiza
una operacin de E/S.

Clases de interrupciones

De programa: generadas por alguna condicin que se produce como resultado de la ejecucin de una instruccin
(divisin por cero, desbordamiento, etc.).
De reloj: generadas por un reloj interno del procesador.
De E/S: generadas por el controlador de E/S (para indicar que terminaron operaciones de E/S o errores).
Por fallo del hardware: generadas por fallos tales como un corte de energa o un error de paridad en memoria.

Las interrupciones y el ciclo de instruccin


Con las interrupciones, el procesador se puede dedicar a la ejecucin de otras instrucciones mientras una operacin de E/S
est en proceso. Cuando el dispositivo externo est disponible, es decir, cuando est preparado para aceptar ms datos
desde el procesador, el mdulo de E/S de dicho dispositivo enviar una seal de solicitud de interrupcin al procesador.
ste responde suspendiendo la operacin del programa en curso y bifurcndose a un programa que da servicio al dispositivo
de E/S en particular, conocido como rutina de tratamiento de la interrupcin, reanudando la ejecucin original despus de
haber atendido al dispositivo. El procesador y el SO son los responsables de suspender el programa de usuario y reanudarlo
despus en el mismo punto.
Para que sean posibles las interrupciones, se aade un
ciclo de interrupcin al ciclo de instruccin. En el ciclo de
interrupcin, el procesador comprueba si ha ocurrido
alguna interrupcin. Si no hay interrupciones pendientes,
el procesador contina con el ciclo de lectura. Si hay una
interrupcin pendiente, el procesador suspende la
ejecucin del programa en curso y ejecuta una rutina de
tratamiento de la interrupcin. El programa de
tratamiento de la interrupcin generalmente forma parte
del SO. Cuando termina la rutina, el procesador puede
reanudar la ejecucin del programa de usuario en el punto en que sucedi la interrupcin.

Tratamiento de las interrupciones


Una interrupcin desencadena una serie de sucesos, tanto en el hardware del procesador como en el software. Cuando un
dispositivo de E/S completa una operacin de E/S, se produce en el hardware la siguiente secuencia de sucesos:
1. El dispositivo emite una seal de interrupcin al procesador.
2. El procesador finaliza la ejecucin de la instruccin en curso antes de responder a la interrupcin.
3. El procesador enva una seal de reconocimiento al dispositivo que gener la interrupcin. Permite al dispositivo
suprimir la seal de interrupcin.
4. El procesador necesita ahora prepararse para trasferir el control a la rutina de interrupcin. Por lo tanto, es preciso
salvar la informacin necesaria para abandonar la ejecucin del programa en curso. Lo requerido es la palabra de
estado del programa (PSW) y la ubicacin de la prxima instruccin a ejecutar. Graba la informacin del proceso
actual.
5. El procesador transfiere el control a la rutina de tratamiento de interrupcin.
1/8

Resumen SOP Rodrigo Carrin

UTN FRC

6. En este punto, se necesita salvar el contenido de los registros del procesador, ya que estos pueden ser utilizados
por la rutina de tratamiento de la interrupcin.
7. La rutina de tratamiento de interrupcin procesa la interrupcin examinando el estado de la operacin de E/S o al
evento que caus la interrupcin.
8. Cuando se completa el tratamiento de la interrupcin, se recuperan los valores de los registros que se salvaron y se
restauran sobre los registros del procesador.
9. La operacin final es restaurar los valores de la PSW y el contador de programa. Como resultado, la prxima
instruccin a ser ejecutada ser el programa interrumpido previamente (se contina con el programa interrumpido).

Interrupciones mltiples
Hay dos enfoques para tratar las interrupciones mltiples:

Tratamiento secuencial: consiste en inhabilitar las interrupciones mientras se est procesando una. Una
interrupcin inhabilitada quiere decir que el procesador ignorar la seal de interrupcin, que quedar pendiente y
ser comprobada por el procesador despus de que ste habilite las interrupciones. La limitacin de este enfoque
es que no tiene en cuenta las prioridades relativas o necesidades crticas de tiempo.
Definicin de prioridades: consiste en definir prioridades para las interrupciones y permitir que una interrupcin de
una prioridad ms alta puede interrumpir a la rutina de tratamiento de una interrupcin de prioridad ms baja.

Multiprogramacin
An con el uso de interrupciones, puede que un procesador no sea aprovechado eficientemente. Si el tiempo necesario para
completar una operacin de E/S es mucho mayor que el cdigo del usuario entre llamadas de E/S (situacin habitual),
entonces el procesador va a estar desocupado durante una gran parte del tiempo.
Una solucin a este problema es permitir a varios programas de usuario estar activos al mismo tiempo. Cuando el procesador
tiene que tratar con una serie de programas, el orden en que estos se ejecutan depender de su prioridad relativa y de si
estn esperando una E/S. Cuando un programa es interrumpido y se transfiere el control a la rutina de tratamiento, una vez
que sta haya terminado, puede que no se devuelva el control inmediatamente al programa que estaba en ejecucin al
momento de la interrupcin, en cambio, el control puede transferirse a algn otro programa pendiente que tenga mayor
prioridad.

Dispositivos de Entrada/Salida
Tipos de dispositivos
Los dispositivos externos pueden clasificarse en tres categoras:

Dispositivos legibles por los humanos: apropiados para la comunicacin con el usuario. Por ejemplo se pueden
incluir los terminales de video, que constan de un teclado, pantalla, etc. Manejan flujos de caracteres.
Dispositivos legibles por la mquina: adecuados para comunicarse con equipos electrnicos, como discos,
unidades de cinta, entre otros. Manejan bloques de datos.
Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos. Por ejemplo un modem.

Controlador de dispositivos (Drivers)


Una unidad de E/S tiene dos componentes: componente mecnico, es el dispositivo; y un componente electrnico, el controlador.
Un controlador puede manejar varios dispositivos idnticos, pero cada dispositivo puede tener su propio controlador.
El SO accede al dispositivo por medio del controlador. Su funcin es convertir un flujo de bits en serie en un bloque de bytes, almacenado
en su buffer, y luego copiar ese bloque en la memoria principal.

Funcionamiento
1.
2.
3.
4.
5.

El SO escribe comandos en los registros del controlador.


El controlador acepta el comando, lo verifica y ejecuta.
La CPU se libera y deja trabajando al controlador.
Al finalizar el comando, el controlador emite una interrupcin avisando que termin la operacin.
La CPU controla y lee los registros del controlador.
2/8

Resumen SOP Rodrigo Carrin

UTN FRC

Organizacin del sistema de la E/S


Tcnicas de comunicacin de la E/S
E/S programada.
E/S dirigida por interrupciones.
DMA (acceso directo a memoria).

E/S programada
Cuando el procesador est ejecutando un programa y encuentra una instruccin de E/S, ejecuta dicha instruccin, enviando
una orden al mdulo apropiado de E/S. El mdulo llevar a cabo la accin requerida y activar los bits apropiados del registro
de estado de E/S., pero no avisa al procesador, ni lo interrumpe. El procesador es el responsable de comprobar
peridicamente el estado del mdulo de E/S hasta saber que se complet la operacin.
El procesador es el responsable de extraer los datos de la memoria principal (en una salida) o almacenar los datos en la
misma (en una entrada).
El problema de sta tcnica es que el procesador tiene que esperar mucho tiempo a que el mdulo de E/S est listo. El
procesador, mientras espera, interroga repetidamente por el estado del mdulo de E/S, degradando el rendimiento del
sistema.

E/S dirigida por interrupciones


Esta tcnica consiste en que el procesador cuando enva una orden de E/S al mdulo, se dedique a hacer otra cosa, y no
perder tiempo esperando. El mdulo de E/S interrumpir al procesador cuando est lista la operacin. Por ltimo, el
procesador ejecuta la transferencia de los datos y reanuda el procesamiento anterior.
Aunque es ms eficiente que la E/S programada, todava sigue necesitando la intervencin del procesador para la
transferencia de datos.
Desventaja de que el procesador participe en la transferencia de datos en la E/S:

La velocidad de transferencia de E/S est limitada por la velocidad con la que el procesador puede dar servicio a un
dispositivo.
Deben ejecutarse una serie de instrucciones en cada transferencia de E/S.

DMA (acceso directo a memoria)


Es una tcnica de E/S ms eficiente que las anteriores. La funcin de DMA se puede llevar a cabo por un mdulo separado
sobre el bus del sistema o puede estar incorporada dentro de un mdulo de E/S.
Cuando el procesador desea leer o escribir un bloque de datos, emite una orden hacia el mdulo de DMA, envindole la
siguiente informacin:

Si lo que solicita es una lectura o escritura.


La direccin de memoria del dispositivo involucrado.
La direccin inicial de memoria desde la que se va a leer o a escribir.
El nmero de palabras a leer o escribir.

El procesador contina entonces con otro trabajo. Habr delegado la operacin de E/S en el mdulo DMA. El mdulo DMA,
transfiere el bloque entero, una palabra por vez, directamente hacia o desde la memoria, sin pasar por el procesador. Cuando
se completa la transferencia, el mdulo DMA enva una seal de interrupcin al procesador. De esta manera, el procesador
se involucra slo al inicio y al final de la transferencia.
El mdulo DMA necesita tomar el control del bus para transferir los datos con la memoria, y puede ocurrir que el procesador
necesite el bus. En este caso el procesador tiene que esperar por el mdulo DMA (hace una pausa durante un ciclo del bus,
no es una interrupcin).
Es el mtodo utilizado actualmente.

3/8

Resumen SOP Rodrigo Carrin

UTN FRC

Evolucin de las funciones de E/S


1. El procesador controla directamente los dispositivos perifricos.
2. Se aade un controlador o mdulo de E/S. El procesador utiliza E/S programada sin interrupciones, y parece aislarse
de los detalles especficos de las interfaces con dispositivos externos.
3. Igual que el punto anterior pero utilizando interrupciones. Se incrementa la eficiencia, ya que el procesador no tiene
que esperar a que termine la operacin de E/S.
4. Se utiliza la tcnica DMA. El procesador ya no interviene en la transferencia (slo al principio y al final).
5. El mdulo de E/S pasa a ser un procesador separado con un conjunto de instrucciones especializadas para E/S.
6. El mdulo de E/S pasa a tener su propia memoria local, convirtindose en una computadora independiente.
A medida que sigue la evolucin, el procesador se liberando cada vez ms de las tareas relacionadas con la E/S, mejorando
as el rendimiento.

Aspectos de diseo en los sistemas operativos


Objetivos del diseo
Hay dos objetivos primordiales en el diseo del servicio de E/S: eficiencia y generalidad.
La eficiencia es importante porque operaciones de E/S constituyen, a menudo, un cuello en los sistemas informticos. La
mayora de los dispositivos de E/S son extremadamente lentos en comparacin con la memoria principal y el procesador.
Una manera de abordar este problema es el uso de la multiprogramacin, que permite que algunos procesos esperen en
operaciones de E/S mientas otro proceso se est ejecutando.
El segundo gran objetivo es la generalidad. En inters de la simplicidad y la exencin de errores, ser deseable gestionar
todos los dispositivos de una manera uniforme. Debido a la diversidad de caractersticas de los dispositivos, en la prctica
es difcil conseguir una autntica generalidad. Lo que puede hacerse es emplear un enfoque jerrquico y modular para el
diseo las funciones de E/S.

Independencia del dispositivo: manejo de comandos, operaciones que sean comunes para todos o algunos
dispositivos.
Manejo de errores: soluciones a nivel de hardware. Si se produce un error, no se avisa inmediatamente al usuario,
sino que se intenta realizar la operacin de nuevo, si despus de varios intentos el problema persiste, ah se informa
al usuario.
Asignacin de dispositivos:
o Dedicados: una vez asignado un dispositivo a un proceso, no se lo puede quitar (ejemplo: impresora).
o Compartidos: discos.
o Virtuales: transforma los dispositivos dedicados en compartidos (ejemplo: spooling de impresin).

Estructura lgica de las funciones de E/S


La filosofa jerrquica propone que las funciones del SO deben
separarse segn su complejidad, sus rangos caractersticos de
tiempo y su nivel de abstraccin. Con este enfoque, se llega a una
organizacin del SO en un conjunto de niveles (o capas). Cada capa
realiza una parte de un subconjunto de las funciones necesarias del
SO. Cada capa cuenta con la capa inferior para realizar funciones
ms primitivas y para ocultar detalles de estas funciones. Asimismo,
cada capa ofrece servicios a la capa superior. Las capas deben
definirse de forma que los cambios en una capa no provoquen
cambios en otras.

Procesos de usuarios
Software independiente del dispositivo: software comn para todos los dispositivos (proteccin, compartir recursos, manejo de bloques libres,
nombres de los dispositivos, sincronizacin de los manejadores de dispositivos, asignacin y liberacin de dispositivos, informe de errores, etc.)
Manejador de dispositivo: cada manejador controla un tipo de dispositivo.
Manejador de interrupciones: controla las interrupciones de todos los dispositivos.
Hardware

4/8

Resumen SOP Rodrigo Carrin

UTN FRC

Almacenamiento intermedio de la E/S (Buffering)


Buffering: tcnica que soluciona los picos en la demanda de E/S.
Como ya sabemos, la lectura o escritura en dispositivo de E/S es lento, por lo que si un programa de usuario necesita leer
datos de una entrada o escribirlos en una salida y debiera, por ejemplo, leer los datos directamente del dispositivo de entrada,
esto producira que el programa quede colgado esperando que la lenta operacin de lectura termine.
Para evitar este problema lo que se hace es que se lea de los dispositivos de entrada y esos datos ledos se vallan
almacenando en bloques en un almacenamiento intermedio, para que luego el programa de usuario lea los datos de ese
almacenamiento intermedio o buffer.
Este almacenamiento intermedio ofrecido por los sistemas operativos se utiliza para mejorar el rendimiento del sistema.
Para estudiarlo mejor es importante hacer una distincin entre dos tipos de dispositivos: dispositivos orientados a bloque;
son los que almacenan la informacin en bloques, normalmente de tamao fijo, haciendo las transferencias de un bloque
cada vez (discos y cintas). Los dispositivos orientados a flujo transfieren los datos como una serie de bytes. No poseen
estructura de bloques (terminales, impresoras, puertos de comunicacin, mouse, mdem, etc.).

Memoria intermedia sencilla


Cuando un proceso de usuario realiza una solicitud de E/S, el SO le asigna a la operacin un espacio en la parte del sistema
de la memoria principal. Para los dispositivos orientados a bloque, las transferencias de entrada se realizan en el espacio
del sistema (memoria principal). Cuando se ha completado la transferencia, el proceso mueve el bloque al espacio del
usuario y solicita otro bloque inmediatamente. Esta tcnica se llama lectura por adelantado o entrada anticipada. El proceso
de usuario puede procesar un bloque de datos mientras se est leyendo el siguiente, aumentando la velocidad.
Esta tcnica complica al SO ya que debe guardar constancia de las asignaciones
de memorias intermedias del sistema a procesos de usuario. Se pueden aplicar
consideraciones similares a la salida con dispositivos orientados a bloques.
Cuando se transmiten datos a un dispositivo, deben copiarse primero del espacio
de usuario a un espacio del sistema, desde donde sern finalmente escritos.
Para la E/S con dispositivos orientados a flujo, el esquema de memoria intermedia sencilla puede aplicarse por lneas o por
bytes.

Memoria intermedia doble


Se puede realizar una mejora sobre la memoria intermedia sencilla asignando a
la operacin dos almacenes intermedios del sistema. De esta forma, un proceso
puede transferir datos hacia (o desde) una memoria intermedia mientras que el S.O. vaca (o rellena) el otro.

Memoria intermedia circular


Si preocupa el rendimiento de un proceso determinado, sera deseable que las
operaciones de E/S fueran capaces de ir al ritmo del proceso. La memoria
intermedia doble puede ser inapropiada si el proceso lleva a cabo rpidas
rfagas de E/S. En este caso, el problema puede mitigarse usando ms de dos
memorias intermedias. Como se emplean ms de dos, el conjunto de memorias intermedias se conoce como memoria
intermedia circular.

Planificacin de discos
Parmetros de rendimiento del disco

Tiempo de bsqueda: es el tiempo necesario para mover el brazo del disco (y la cabeza) hasta la pista solicitada. Esta cantidad
resulta difcil de concretar. El tiempo de bsqueda consta de dos componentes clave: el tiempo de arranque inicial, y el tiempo
que se tarda en recorrer las pistas. El tiempo de bsqueda medio es de 5 a 10 ms.
Retardo de giro: es el tiempo que tarda en llegar el sector hasta la cabeza del disco.
Tiempo de transferencia: es el tiempo que tarda en realizar la operacin de lectura o escritura. Depende del nmero de bytes
a transferir, el nmero de bytes por pista y la velocidad de rotacin en revoluciones por segundo.

5/8

Resumen SOP Rodrigo Carrin

UTN FRC

Polticas de planificacin de discos


Las polticas de planificacin de discos tratan de reducir el movimiento del brazo del disco. Algunas son:

Aleatoria: se mantiene una cola con las solicitudes de E/S, y se eligen en forma aleatoria, obtenindose el peor
rendimiento posible.
Primero en entrar, primero en salir (FIFO): es la manera ms sencilla de planificacin, lo que significa que los
elementos se procesan de la cola en un orden secuencial. Esta estrategia tiene la ventaja de ser justa porque las
solicitudes son servidas en el orden en que llegaron. El brazo puede desplazarse significativamente.
Prioridad: este enfoque no persigue la optimizacin del uso del disco, sino cumplir con otros objetivos del SO. Los
trabajos por lotes que sean cortos y los trabajos interactivos reciben frecuentemente una prioridad ms alta que
trabajos mayores que realicen largas operaciones. Permite que haga salir rpidamente trabajos cortos y pueda
proporcionar un buen tiempo de respuesta interactiva. Los trabajos mayores pueden tener que esperar
excesivamente. Poco favorable para sistemas de bases de datos.
ltimo en entrar, primero en salir (LIFO): sorprendentemente, esta poltica cuenta con virtudes. En los sistemas
de proceso de transacciones, conceder el dispositivo al ltimo usuario acarrea pocos o nulos movimientos del brazo
al recorrer un archivo secuencial. Sin embargo, si el disco est ocupado con una larga cola de espera, existe una
clara posibilidad de inanicin. Una vez que un trabajo haya lanzado una solicitud de E/S a la cola y haya abandonado
la cabeza de la lnea, no podr volver a ganar la cabeza de la lnea a menos que se vayan todos los que estn por
delante.
Primero el tiempo de servicio ms corto (SSTF, Shortest Service Time First): es elegir la solicitud de E/S de
disco que requiera el menor movimiento posible del brazo del disco desde su posicin actual. De este modo, siempre
es elige procurando el mnimo tiempo de bsqueda.
SCAN: el brazo solo se puede mover en un sentido, resolviendo todas las solicitudes pendientes en su ruta, hasta
que alcance la ltima pista o hasta que no haya ms solicitudes en esa direccin. Luego, comienza a realizar el
rastreo en sentido opuesto., volviendo a recoger todas las solicitudes en orden. Esta poltica favorece a los trabajos
con solicitudes de pistas cercanas a los cilindros ms interiores y exteriores, as como a los ltimos en llegar.
C-SCAN (SCAN circular): igual al SCAN pero restringe el rastreo a una sola direccin. As, cuando se haya visitado
la ltima pista en un sentido, el brazo vuelve al extremo opuesto del disco y comienza a recorrerlo de nuevo, lo que
reduce el retardo mximo sufrido por las nuevas solicitudes.

RAID
La industria ha acordado un esquema estndar para el diseo de base de datos sobre mltiples discos, llamado RAID
(Redundant Array of Independent Disks).

Caractersticas
1.
2.
3.
4.
5.
6.

Conjunto de varios discos fsicos que forman una nica unidad lgica.
Los datos se distribuyen entre los diferentes discos.
Redundancia utilizada para la recuperacin de datos en caso de fallos.
Se reemplaza un disco de gran capacidad por varios discos fsicos.
Mejor rendimiento debido al acceso simultaneo de datos ubicados en discos diferentes.
Existen siete niveles de RAID, de 0 a 6 (arquitecturas de diseo diferentes).

Niveles
RAID 0 (sin redundancia)
Este nivel no es un miembro verdadero de la familia RAID, porque no incluye redundancia para mejorar el
rendimiento.
En RAID 0, los datos del sistema estn distribuidos a lo largo de todo el vector de discos. Esto tiene una
notable ventaja sobre el uso de un solo disco: si hay pendientes dos solicitudes de E/S distintas en dos
bloques de datos diferentes, entonces existe una buena oportunidad para que los bloques solicitados estn
en discos diferentes. De este modo, se pueden realizar en paralelo las dos solicitudes reduciendo el tiempo
en la cola de E/S.

6/8

Resumen SOP Rodrigo Carrin

UTN FRC

El disco lgico de este esquema RAID 0, est dividido en bandas (strip); estas bandas pueden ser bloques fsicos, sectores
o alguna otra unidad. Un conjunto de bandas consecutivas lgicamente que se corresponden exactamente con una banda
de cada miembro del vector (disco fsico), se denomina franja (stripe).
Es ideal para aplicaciones que requieren alto rendimiento para datos no crticos.

RAID 1 (mirroring)
RAID 1 difiere de los niveles RAID 2 hasta el 6 en el modo en que consigue la redundancia. En RAID 1 la redundancia se
consigue por el simple medio de duplicar todos los datos. Los datos se dividen igual que en RAID 0. Pero en este caso, cada
banda lgica se corresponde con dos discos fsicos independientes, por lo que cada disco del vector tiene un disco espejo
que contiene los mismos datos.
Este tipo de organizacin tiene varios aspectos positivos:
-

Una solicitud de lectura le puede servir cualquiera de los dos discos que contienen los datos
solicitados.
Una solicitud de escritura requiere la actualizacin de las bandas correspondientes a ambos discos,
pero esto se puede hacer en paralelo.
La recuperacin de fallos es sencilla. Cuando una unidad falla, los datos estn todava accesibles
desde la segunda unidad.

La principal desventaja de RAID 1 es el coste, requiere dos veces el espacio de disco del disco lgico que soporta.
En un entorno orientado a transacciones, se puede conseguir altas tasas de solicitudes de E/S si el grueso de las solicitudes
es de lectura. Es ideal para archivos del SO o archivos crticos.

RAID 2
Los niveles RAID 2 y 3 utilizan una tcnica de acceso paralelo. En un vector de acceso
paralelo, todos los discos participan en la ejecucin de cada solicitud de E/S.
Normalmente, el eje de las unidades individuales est sincronizado, por lo que cada
cabeza de disco est en la misma posicin de cada disco en un instante dado.
En el caso de RAID 2 y 3 existe tambin la divisin de datos. En este caso, las bandas son muy pequeas, a menudo tan
pequeas como un nico byte o palabra. En RAID 2, se calcula un cdigo de correccin de errores a lo largo de los bits
correspondientes sobre cada disco de datos, y los bits del cdigo se almacenan en las respectivas posiciones de bit sobre
los discos de paridad mltiple. Normalmente, se utiliza cdigo Hamming, que es capaz de corregir errores de un solo bit y
detectar errores de dos bit.
RAID 2 solamente es una buena eleccin en un entorno efectivo en el que se produjeran muchos errores de disco. Dada la
alta fiabilidad de los discos y de las unidades de disco, RAID 2 est superado y ya no se implementa.

RAID 3 (paridad por intercalacin de bits)


Se organiza de una forma similar a RAID 2, diferencindose en que requiere solo un disco
redundante, no importa el tamao del vector de discos. RAID 3 emplea acceso paralelo, con los
datos distribuidos en pequeas bandas. En lugar de un cdigo de correccin de errores, se calcula
un solo bit de paridad para el conjunto de bits en la misma posicin de todos los discos de datos.
Teniendo en cuenta que los datos estn divididos en pequeas bandas, puede alcanzar una taza de transferencia de datos
muy alta. Por otro lado, solo se puede ejecutar en cada instante una sola solicitud de E/S (bajo rendimiento en sistemas de
transacciones).

RAID 4
Los niveles RAID 4 al 6 usan una tcnica de acceso independiente. Cada disco opera de manera
independiente, por lo que se pueden satisfacer en paralelo solicitudes de E/S individuales. Son
ms apropiados para aplicaciones que requieran tasas altas de solicitudes de E/S, y son

7/8

Resumen SOP Rodrigo Carrin

UTN FRC

relativamente menos apropiados para aplicaciones que requieran altas tasas de transferencia de datos.
En el caso de RAID 4 al 6, las bandas son relativamente grandes. Con RAID 4, se calcula una banda de la paridad bit a bit
a lo largo de las bandas correspondientes de cada disco de datos, y los bits de paridad se almacenan en la banda
correspondiente del disco de paridad.
Implica una penalizacin en la escritura de E/S, ya que no solo hay que escribir los datos, sino tambin los bits de paridad
correspondientes. Posee cuello de botella en el disco de paridad. No se usa en la prctica.

RAID 5 (paridad por intercalacin distribuida de bloques)


RAID 5 est organizado de forma similar a RAID 4. La diferencia es que distribuye las bandas de
paridad a travs de todos los discos. Para un vector de n discos, la banda de paridad est sobre
un disco distinto para las n primeras bandas y, despus, se repite el patrn.
La distribucin de las bandas de paridad a travs de todos los disco evita el potencial cuello de botella en la E/S que hay en
RAID 4 que tiene un solo disco de paridad.

RAID 6 (paridad doble por intercalacin distribuida de bloque)


En este esquema se realizan dos clculos distintos de paridad, y se almacenan en
bloques independientes de diferentes discos. As, un vector RAID 6 cuyos datos de
usuario requieran N discos est formado por N + 2 discos.
La ventaja de RAID 6 es que ofrece disponibilidad de datos extremadamente alta.
Deberan fallar tres discos para hacer que los datos no estuvieran disponibles. Por otro lado, sufre una importante
penalizacin de escritura, porque cada escritura afecta a dos bloques de paridad.

Cach de disco
El trmino memoria cach se aplica normalmente a una memoria ms pequea y ms rpida que la memoria principal y que
se sita entre sta y el procesador.
El mismo concepto puede aplicarse a la memoria de disco. Concretamente, una cach de disco es una memoria intermedia
situada en la memoria principal para sectores de disco. La cach contiene una copia de algunos sectores del disco. Cuando
se hace una solicitud de E/S para un sector especfico, se comprueba si el sector est en la cache de disco. Si est, la
solicitud toma los datos de la cach. Si no, se lee el sector solicitado en el disco y se coloca en la cach, quedando disponible
para futuras solicitudes.

Consideraciones sobre el diseo

Solicitud de E/S: la cach de disco debe entregarse al proceso que los solicit:
o Los bloques de datos se trasfieren desde la cach a la memoria asignada al proceso de usuario.
o Usando la capacidad de memoria compartida y pasando un puntero a la entrada apropiada de la cach del
disco
Estrategia de reemplazo: establece que bloque de la cach va a ser reemplazado.
o LRU (usado menos recientemente): bloque sin referencias durante la mayor cantidad de tiempo. Ms usado.
o LFU (usado menos frecuentemente): bloque con menor cantidad de referencias.
Poltica de escritura:
o Por demanda: los sectores se sustituyen slo cuando se necesita una entrada en la tabla.
o Planificada previamente: los sectores se sustituyen cada vez que se libera un conjunto de entradas.

8/8

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N6 Seguridad
Amenazas a la seguridad
La seguridad de computadoras y redes aborda los siguientes cuatro requisitos:

Secreto: exige que la informacin de un sistema sea accesible para lectura solamente por partes autorizadas.
Integridad: exige que los elementos de un sistema puedan ser modificados slo por partes autorizadas.
Disponibilidad: exige que los elementos de un sistema estn disponibles para las partes autorizadas.
Autenticidad: requiere que un sistema sea capaz de verificar la identidad del usuario.

Tipos de amenazas

Interrupcin: se destruye un elemento del sistema o se hace inaccesible


o intil. Es un ataque a la disponibilidad.
Interceptacin: una parte no autorizada consigue acceder a un
elemento. Este es un ataque al secreto.
Modificacin: una parte no autorizada no solo consigue acceder, sino
que falsifica un elemento. Este es un ataque a la integridad.
Invencin: una parte no autorizada inserta objetos falsos en el sistema.
Este es un ataque a la autenticidad.

Componentes de un sistema informtico

Hardware:
o Amenaza a la disponibilidad: comprenden daos accidentales y deliberados a los equipos, as como el hurto.
Hacen falta medidas de seguridad fsicas y administrativas para hacer frente a estas amenazas.
Software:
o Amenaza a la disponibilidad: el software es alterado o daado para inutilizarlo. Se puede combatir con
copias de seguridad (backups).
o Amenaza al secreto: se realizan copias no autorizadas del software. Se combate con licencias, registros.
o Amenaza a la integridad/autenticidad: un programa sigue funcionando pero se comporta de forma diferente
a lo normal (virus, ataques). Se pueden usar antivirus.
Datos:
o Amenaza a la disponibilidad: destruccin de archivos (accidentalmente o mal intencionado).
o Amenaza al secreto: lectura no autorizada de bases de datos y archivos. Un anlisis de datos estadsticos
puede revelar datos ocultos.
o Amenaza a la integridad: modificacin de archivos existentes o invencin de nuevos.
Redes y lneas de comunicaciones:
o Amenazas pasivas: escuchas a escondidas o control de las transmisiones. El objetivo del agresor es obtener
la informacin que se est transmitiendo. Hay dos tipos de amenazas: la revelacin de contenido y el anlisis
de trfico. Las amenazas pasivas son muy difciles de detectar porque no alteran los datos. Se hacen frente
mediante la prevencin y no la deteccin.
o Amenazas activas: suponen alteraciones del flujo de datos o la creacin de un flujo falso. Se pueden dividir
en cuatro categoras:

Suplantacin: una entidad se hace pasar por otra. Un usuario se hace pasar por otro.
Repeticin: incluye la captura previa de un dato nico y la subsiguiente retransmisin para producir un efecto
no autorizado.
Modificacin de mensajes: significa que se modifica una porcin de un mensaje legtimo o que los mensajes
se retrasan o se desordenan para conseguir un efecto no autorizado.
Privacin de servicio: impide o inhibe el uso normal o la gestin de servicios de comunicaciones. Esta agresin
puede tener como objetivo suprimir mensajes a un destinatario en particular o interrumpir toda una red.

El objetivo frente a los ataques activos es detectarlos y recuperarse de cualquier interrupcin o retardo.

1/6

Resumen SOP Rodrigo Carrin

UTN FRC

Proteccin
La introduccin a la multiprogramacin origin la posibilidad de compartir recursos entre los usuarios. La necesidad de
compartir recursos introdujo la necesidad de proteccin. Un sistema operativo puede ofrecer proteccin de las siguientes
maneras:

Ninguna proteccin: apropiada cuando se ejecutan procedimientos delicados en distintos instantes.


Aislamiento: cada proceso opera separadamente de los dems.
Compartir todo o nada: el propietario de un objeto lo declara como pblico o privado.
Compartir por limitacin de acceso: el SO comprueba la licencia de cada acceso de un usuario especfico a un
objeto.
Compartir por capacidades dinmicas: creacin dinmica de derechos de compartimiento para los objetos.
Uso limitado de un objeto: esta forma de proteccin limita no solo el acceso a un objeto, sino tambin el uso a que
se puede dedicar dicho objeto. Por ejemplo, se puede dejar ver un documento delicado a un usuario pero no
imprimirlo.

Proteccin de la memoria
La separacin del espacio de memoria de los diversos procesos se lleva a cabo fcilmente con un esquema de memoria
virtual. La segmentacin, paginacin o la combinacin de ambas proporcionan un medio eficaz de gestin de la memoria
principal.

Aislamiento total: el SO simplemente debe asegurar que cada segmento o pgina es accesible solo para el proceso
al que est asignada. Esto se lleva a cabo fcilmente exigiendo que no haya entradas duplicadas en las tablas de
pginas o segmentos.
Compartimiento: el mismo segmento o pgina puede ser referenciado en ms de una tabla. Este tipo de
compartimiento se consigue mejor en un sistema que soporta segmentacin o combinacin de segmentacin y
paginacin

Control de acceso orientado al usuario (autenticacin)


La tcnica ms habitual de control de acceso al usuario en un sistema de tiempo compartido o en un servidor es la conexin
del usuario, que requiere un identificador de usuario (ID) y una contrasea. Este esquema ID/contrasea es un mtodo
notablemente poco fiable de control de acceso al usuario. Los usuarios pueden olvidar sus contraseas y pueden revelarlas
accidental o deliberadamente. Es una tcnica que est sujeta a los intentos de penetracin.
El control de acceso a usuario en entornos distribuidos puede ser centralizado o descentralizado:

Control de acceso centralizado: la red proporciona un servicio de conexin para determinar a quien se le permite
usar la red y a qu se le permite conectarse.
Control de acceso descentralizado: el procedimiento usual de conexin lo lleva a cabo un servidor de destino.

Control de acceso orientado a los datos (autorizacin)


Despus de una conexin con xito, al usuario se le habr concedido el acceso a uno o ms servidores y aplicaciones.
Asociado con cada usuario, puede haber un perfil de usuario que especifique las operaciones y los accesos a archivos
permisibles.
Un modelo general de control de acceso ejercido por un sistema gestor de archivos o bases de datos es el de una matriz
de acceso. Los elementos bsicos del modelo son los siguientes:

Sujeto: entidad capaz de acceder a un objeto (proceso, usuario,


etc.).
Objeto: cualquier cosa cuyo acceso deba controlarse (archivos,
programas, segmentos de memoria, etc.).
Derecho de acceso: la manera en que un sujeto accede a un
objeto (leer, escribir, ejecutar).

2/6

Resumen SOP Rodrigo Carrin

UTN FRC

Una dimensin de la matriz consta de los sujetos identificados que pueden intentar acceder a los datos (usuarios o grupos
de usuarios). La otra dimensin enumera a los objetos a los que se puede acceder. Cada entrada de la matriz indica los
derechos de acceso de ese sujeto a ese objeto.
La matriz puede descomponerse en columnas para obtener listas de control de acceso. Para cada objeto, una lista de
control de acceso enumera los usuarios y sus derechos de accesos permitidos.
Con la descomposicin por filas se obtienen etiquetas de capacidad de acceso. sta especifica los objetos y las
operaciones autorizadas para un usuario. Cada usuario tiene un nmero de etiquetas y puede estar autorizado o no para
prestarlas o concederlas a otros usuarios.

Intrusos
Una de las dos amenazas ms conocidas a la seguridad (la otra es la de los virus) es el intruso, conocido en general como
pirata informtico, hacker o cracker.

Tipos de intrusos

Suplantador: un individuo que no est autorizado a usar el computador y que penetra en un sistema de control de
acceso para explotar una legtima entrada de usuario. Es un usuario externo.
Abusador: un usuario legtimo que accede a datos, programas o recursos a los que no est autorizado, o que est
autorizado pero hace un mal uso de sus privilegios. Es un usuario interno.
Usuario clandestino: un individuo que est a cargo del control de la supervisin del sistema y utiliza ese control
para evadir la auditora y el control de acceso o para suprimir la recopilacin de datos. Puede ser externo o interno.

Tcnicas de intrusin
El objetivo de los intrusos es obtener acceso a un sistema o aumentar el conjunto de privilegios accesibles en un sistema.
En general, esto requiere que el intruso obtenga informacin que debera estar protegida. En la mayora de los casos, esta
informacin est en forma de contrasea de usuario.
Normalmente, un sistema debe mantener un archivo que asocia una contrasea a cada usuario autorizado. El archivo de
contraseas puede protegerse de dos maneras:

Cifrado unidireccional: el sistema almacena contraseas de los usuarios de forma cifrada solamente. Cuando un
usuario presenta una contrasea, el sistema cifra contrasea y la compara con el valor almacenado.
Control de acceso: el acceso a los archivos de contraseas est limitado a una o muy pocas cuentas.

Tcnicas de obtencin de contraseas


1.
2.
3.
4.
5.
6.

Probar las contraseas por defecto del sistema. Muchos administradores no cambian estos valores.
Probar todas las contraseas cortas (de uno a tres caracteres).
Probar palabras del diccionario del sistema o de una lista de contraseas probables.
Reunir informacin sobre datos personales del usuario (nombre, nombre de familiares, aficiones, etc.).
Probar los nmeros de telfono de los usuarios, DNI, etc.
Intervenir la lnea entre un usuario remoto y el sistema anfitrin.

Si un intruso tiene que verificar sus conjeturas intentando conectarse, esto constituye un medio de ataque tedioso y fcil de
contrarrestar. Por ejemplo, el sistema puede rechazar simplemente cualquier conexin tras intentarse tres contraseas.

Proteccin de contraseas
Las contraseas son la primera lnea de defensa contra los intrusos. La contrasea sirve para autentificar el ID del individuo
que se conecta al sistema. A su vez, el ID introduce una seguridad en los siguientes sentidos:

El ID determina si el usuario est autorizado para obtener acceso al sistema.


El ID determina los privilegios que corresponden al usuario.
El ID se emplea para el control de acceso discrecional (enumerando los ID de los usuarios, un usuario les puede
conceder permisos para leer archivos posedos por l).

3/6

Resumen SOP Rodrigo Carrin

UTN FRC

Vulnerabilidad de las contraseas


Muchos usuarios utilizan contraseas cortas y fcilmente adivinables (su propio nombre, nombre de la calle, etc.).

Estrategias de eleccin de contraseas


El objetivo es eliminar las contraseas adivinables a la vez que se permite a los usuarios elegir una contrasea recordable.
Hay cuatro tcnicas bsicas:

Formacin del usuario: difcil de lograr, sobre todo cuando hay un gran nmero de usuarios. Muchos usuarios
haran caso omiso de las instrucciones.
Contraseas generadas por computador: los usuarios no pueden ser capaces de recordarlas, y pueden caer en
la tentacin de escribirlas. Tienen escasa aceptacin por parte de los usuarios.
Inspeccin reactiva de contraseas: el sistema ejecuta peridicamente su propio averiguador de contraseas
para encontrar contraseas adivinables. El sistema cancela todas las contraseas que se adivinen y se lo notifica
al usuario. La desventaja es que consumen muchos recursos, y adems, cualquier contrasea existente ser
vulnerable hasta que el inspector reactivo de contraseas la encuentre.
Inspeccin proactiva de contraseas: es el enfoque ms prometedor. Al usuario se le permite elegir su propia
contrasea, pero al momento de la seleccin, el sistema comprueba si la contrasea es permisible, y, si no lo es, la
rechaza. Tiene que haber un equilibrio entre la aceptacin del usuario y la fortaleza. Ejemplo: todas las contraseas
deben tener un mnimo de 8 caracteres, tener una mayscula, dgitos numricos, smbolos, etc.

Deteccin de intrusos
La deteccin de intrusos es la segunda lnea de defensa. Se basa en el supuesto de que el comportamiento del intruso se
diferencia del comportamiento de un usuario legtimo en formas que pueden cuantificarse.
El comportamiento de un usuario se puede establecer observando su historial, y se pueden detectar desviaciones
significativas en su patrn.
Las tcnicas para la deteccin de intrusos son:

Deteccin de anomalas estadsticas: supone la recoleccin de datos del comportamiento de los usuarios
legtimos durante un perodo de tiempo. Despus se aplican pruebas estadsticas al comportamiento observado
para determinar, con un alto grado de confianza, si los comportamientos no son de usuarios legtimos.
Es eficaz contra atacantes exteriores. Pueden no ser capaces de hacer frente a usuarios legtimos que intenten
obtener acceso a recursos que requieren mayores privilegios.

Deteccin basada en reglas: supone el intento de definir un conjunto de reglas que pueden emplearse para decidir
si un comportamiento dado es el de un intruso.

Una herramienta fundamental para la deteccin de intrusos es un registro de auditora. Este, consiste en un registro de
actividades en curso por parte de los usuarios. Se utilizan dos planes:

Registros de auditora nativos: casi todos los SO multiusuario ya incorporan un software de contabilidad que rene
informacin sobre la actividad de los usuarios. No necesita ningn software adicional (lo trae el SO). Puede que no
contengan la informacin que se necesite o no se disponga de ella en una forma conveniente.
Registro de auditora especficos para la deteccin: registros de auditora que contiene slo aquella informacin
necesaria para el sistema de deteccin de intrusiones. Puede ser independiente del fabricante, pero tiene un coste
extra por tener dos paquetes de contabilidad ejecutando en una misma mquina.

Cada registro de auditora contiene los campos siguientes:

Sujeto: iniciadores de las acciones.


Accin: operacin realizada por el sujeto con un objeto o sobre un objeto.
Objeto: receptores de las acciones.
Condicin de excepcin: indica las condiciones de excepcin, si se produce alguna.

4/6

Resumen SOP Rodrigo Carrin

UTN FRC

Uso de recursos: una lista de elementos cuantitativos en la que cada elemento dice la cantidad empleada de un
recurso.
Marca de tiempo: fecha y hora que indica cuando tuvo lugar la accin.

Software malicioso
Programas malignos
Pueden dividirse en dos categoras:

Necesitan un programa anfitrin: fragmentos de programa que no tienen existencia independiente de otro
programa.
Independientes: son programas que por s mismos pueden ser planificados y ejecutados por el SO.

Tambin se pueden distinguir las amenazas de software que se reproducen y las que no lo hacen.

No reproducibles: fragmentos de programa que se activan cuando se invoca al programa anfitrin.


Reproducibles: fragmentos de programa o un programa independiente, que cuando se ejecutan pueden hacer una
copia o ms copias de s mismos que se activarn, ms tarde, en el mismo sistema o en algn otro.

Los distintos programas maliciosos son:

Trampillas (puertas secretas): es un punto de entrada secreto a un programa que permite a alguien que la conoce
conseguir acceso sin pasar por procedimientos de seguridad. Estas, han sido utilizadas por programadores para
depurar y probar los programas, y se convierten en amenazas cuando se las utiliza para conseguir acceso no
autorizado. Son difciles de detectar para los SO. Las medidas de seguridad deben centrarse en el desarrollo de
programas y en actualizaciones de software.
Bomba lgica: es un cdigo incrustado en algn programa legtimo que explota cuando se cumplen ciertas
condiciones (presencia o ausencia de archivos, un da concreto de la semana, fecha, usuario en particular que
ejecute la aplicacin, etc.). Pueden borrar o modificar datos, hasta hacer que se detenga la mquina.
Caballos de Troya (troyanos): es un programa aparentemente til que contiene un cdigo oculto que, cuando se
invoca, lleva a cabo alguna funcin daina o no deseada. Se pueden usar para efectuar funciones indirectamente
que un usuario no autorizado no podra efectuar directamente, como cambiar los permisos de un archivo.
Virus: es un programa que puede infectar a otros programas, alterndolos, como incluir una copia del programa de
virus, que puede entonces seguir infectando a otros programas.
Gusanos: una vez activo un gusano, puede comportarse como un virus, un troyano o realizar cualquier accin
destructiva. Utilizan las conexiones de red para extenderse de un sistema a otro (correo electrnico, ejecucin
remota, conexin remota). Contiene las mismas fases que los virus.
Zombie: es un programa que secretamente toma posesin de otra computadora conectada a internet, y se usa para
lanzar ataques que hacen difcil de rastrear. Se utilizan en ataques de denegacin de servicio.

Fases de un virus
1. Fase latente: el virus est inactivo. Se activar luego por algn suceso. No todos los virus pasan por esta fase.
2. Fase de propagacin: el virus hace copias idnticas a l en otros programas o en ciertas reas del disco.
3. Fase de activacin: el virus se activa para llevar a cabo la funcin para la que est pensado. Puede producirse por
mltiples sucesos el sistema.

5/6

Resumen SOP Rodrigo Carrin

UTN FRC

4. Fase de ejecucin: se lleva a cabo la funcin. La funcin puede ser no daina, como dar un mensaje por pantalla,
o daina, como la destruccin de archivos.

Tipos de virus

Virus parsitos: la forma ms tradicional y ms comn. Se engancha a archivos ejecutables y se reproduce al


ejecutar el programa infectado, buscando otros archivos ejecutables para infectar.
Virus residentes en la memoria: se alojan en la memoria principal infectando a todos los programas que se
ejecutan.
Virus del sector de arranque: infecta al sector principal de arranque (MBR) y se propaga cuando el sistema arranca
desde el disco que contiene el virus.
Virus clandestino: una forma de virus diseado explcitamente para esconderse de la deteccin mediante en
software antivirus.
Virus polimorfo: un virus que muta con cada infeccin, haciendo imposible la deteccin por la firma del virus.

Virus de macros

Son independientes de la plataforma.


Infectan documentos, no archivos ejecutables.
Se extiende fcilmente a travs del correo electrnico.

Sacan provecho de caractersticas de Word y Excel llamadas Macro. Una macro consiste en un programa ejecutable
incrustado en un documento de procesador de texto u otro archivo, utilizado para automatizar tareas repetitivas y ahorrar
pulsaciones de teclas.

6/6

Resumen SOP Rodrigo Carrin

UTN FRC

Unidad N7 Procesamiento distribuido


Introduccin
Con el incremento de la disponibilidad de computadoras personales y potentes servidores no muy caros, ha habido una
mayor tendencia hacia el proceso de datos distribuido (DDP, Distributed Data Processing), en el que los procesadores, datos
y otros elementos del sistema de proceso de datos pueden estar distribuidos en una organizacin. Un sistema de
procesamiento distribuido implica la particin de la funcin de computacin y puede, tambin, conllevar una organizacin
distribuida de la base de datos, el control de los dispositivos y el control de las interacciones (redes).
Se ha explorado un espectro de capacidades distribuidas de los sistemas operativos, como son:
-

Arquitectura de comunicaciones: es el software que da soporte a una red de computadoras independientes.


Ofrece soporte para las aplicaciones distribuidas, tales como correo electrnico, transferencia de archivos y acceso
a terminales remotos. Cada computadora tiene su propio SO, y es posible una mezcla heterognea de computadoras
y SO, siempre que todas las mquinas soporten la misma arquitectura de comunicaciones. Por ejemplo, protocolo
TCP/IP.
Sistemas operativos de red: es una configuracin en la que existe una red de mquinas de aplicacin,
generalmente estaciones de trabajo monousuario y uno o ms servidores. Los servidores proporcionan servicios o
aplicaciones a toda la red (como almacenamiento de archivos y gestin de impresoras). Cada computador tiene su
propio SO privado. El usuario es consciente de que existen mltiples computadoras independientes y debe tratar
con ellas explcitamente.
Sistemas operativos distribuidos: un SO comn compartido por una red de computadores. Para los usuarios es
como un SO centralizado aunque les proporciona un acceso transparente a los recursos de numerosas
computadoras. Este SO puede depender de una arquitectura de comunicaciones para las funciones bsicas de
comunicacin.

Proceso cliente/servidor
El entorno cliente/servidor est poblado de clientes y servidores.
-

Clientes: son, en general, PC monousuario o puestos de trabajo que ofrecen una interfaz muy amigable para el
usuario final (poseen interfaz grfica, uso de ventanas y mouse).
Servidor: ofrece servicios que puede compartir con los clientes (servidores de archivos, servidores de bases de
datos, etc.).
Red: conjunto de elementos que permiten interconectar clientes y servidores. Ejemplos: LAN (Local Area Network),
WAN (Wide Area Network) e internet.

Aplicaciones cliente/servidor
La caracterstica central de la arquitectura cliente/servidor es la ubicacin de las tareas del nivel de aplicacin entre clientes
y servidores. Tanto en el cliente como en el servidor, el software bsico es un SO que se ejecuta en la plataforma del
hardware. La plataforma y los SO del cliente y del servidor pueden ser diferentes. En tanto que un cliente particular y un
servidor compartan los mismos protocolos de comunicacin y soporten las mismas aplicaciones, estas diferencias de niveles
inferiores no son relevantes.
El software de comunicaciones es el que permite interoperar a cliente y servidor (ejemplo, protocolo TCP/IP). En el mejor
de los casos, las funciones reales de la aplicacin pueden repartirse entre cliente y servidor de forma que se optimicen los
recursos de la red y de la plataforma.
En mayora de los sistemas cliente/servidor, se hace un gran hincapi en ofrecer una interfaz de usuario (GUI) que sea fcil
de utilizar y fcil de aprender, pero potente y flexible, en la parte del cliente.

1/6

Resumen SOP Rodrigo Carrin

UTN FRC

Aplicaciones de bases de datos


La familia ms comn de aplicaciones cliente/servidor son aquellas que utilizan base de datos relacionales. En este entorno,
el servidor es, bsicamente, un servidor de base de datos. La interaccin entre el cliente y el servidor se hace de forma de
transacciones, donde el cliente realiza una peticin a la base de datos y recibe una respuesta de aquella.
El servidor es responsable de mantener la base de datos, para cuyo objeto se necesitan sistemas de gestores de bases de
datos. En las mquinas cliente se puede guardar una variedad de aplicaciones diferentes que hagan uso de la base de
datos.

Clases de aplicaciones cliente/servidor


Dentro del entorno general cliente/servidor, se dispone de una gama de posibles implementaciones que dividen el trabajo
entre el cliente y el servidor de manera diferente. Algunas de las opciones principales para las aplicaciones de base de datos
son:
-

Procesamiento basado en una mquina central (host): no es realmente un proceso cliente/servidor. Se refiere
ms al entorno tradicional de grandes sistemas en el que todo o casi todo el tratamiento se realiza en una
computadora central (mainframes). La interfaz de usuario consiste a menudo en un terminal tonto.
Procesamiento basado en el servidor (cliente ligero): es el tipo ms bsico de configuracin cliente/servidor.
Consiste en que el cliente es responsable de ofrecer una interfaz de usuario grfica, mientras casi todo el tratamiento
se hace en el servidor.
Procesamiento basado en el cliente (cliente pesado): en el otro extremo, casi todo el proceso de la aplicacin
puede hacerse en el cliente, con la excepcin de las rutinas de validacin de datos y otras funciones lgicas de la
base de datos que se realizan mejor en el servidor. Es posiblemente el mtodo cliente/servidor ms utilizado
actualmente.
Procesamiento cooperativo: el proceso de la aplicacin se lleva a cabo de forma optimizada, aprovechando la
potencia de las mquinas de cliente y servidora y la distribucin de los datos. Es ms compleja de instalar y mantener
pero, a largo plazo, puede ofrecer una mayor ganancia de productividad del usuario y una mayor eficiencia de la
red.

Arquitectura cliente/servidor de tres capas


La arquitectura tradicional cliente/servidor implica dos niveles o capas: una capa cliente y una capa servidor. En los ltimos
aos la arquitectura que ms se ha pasado a utilizar es una de tres capas. En esta arquitectura el software de aplicacin
est distribuido entre tres tipos de mquinas: una mquina usuario, un servidor de capa intermedia y un servidor final
(backend). La mquina de usuario en esta arquitectura, por lo general es un cliente ligero. Las mquinas de capa intermedia
son esencialmente pasarelas entre los clientes delgados y una variedad de servidores finales de base de datos.

Consistencia de la cach de archivos


Cuando se utiliza un servidor de archivos, el rendimiento de E/S referente a los accesos locales a archivos puede degradarse
sensiblemente por causa del retardo introducido por la red. Para reducir esta carga, los sistemas individuales pueden usar
cach de archivos para almacenar los registros a los que se ha accedido hace poco. El uso de una cach local debe reducir
el nmero de accesos a servidores remotos.
Cuando las caches contienen siempre copias exactas de los datos remotos, se dice que las caches son consistentes.
Puede ser posible que lleguen a ser inconsistentes cuando se cambian los datos remotos y no se desechan las copias
obsoletas correspondientes de las caches locales. El problema de mantener actualizadas las copias de las caches locales
se conoce como problema de consistencia de caches.
El mtodo ms simple para la consistencia de caches consiste en emplear tcnicas de bloqueo de archivos para prevenir el
acceso simultneo a un archivo por parte de ms de un cliente (menor rendimiento y flexibilidad).
Un mtodo ms potente es que cualquier nmero de procesos remotos puede abrir un archivo para la lectura y crear su
propia cach del cliente. Pero cuando la solicitud al servidor es de abrir un archivo para escritura y otros procesos tienen el
mismo archivo abierto para lectura, el servidor realizada dos acciones. En primer lugar, notifica al proceso escritor que,
aunque puede mantener una cach, debe reescribir todos los bloques alterados inmediatamente despus de actualizarlos.

2/6

Resumen SOP Rodrigo Carrin

UTN FRC

Puede haber muchos clientes de este tipo. En segundo lugar, el servidor notifica a todos los procesos lectores que tengan
abierto el archivo que sus copias en cach ya no son vlidas.

Middleware
Como gran parte de las ventajas de la filosofa cliente/servidor viene dadas por su modularidad y por la capacidad de
combinar plataformas y aplicaciones para ofrecer soluciones comerciales, debe resolverse este problema de interoperacin.
Para alcanzar las ventajas reales de la filosofa cliente/servidor, los desarrolladores deben disponer de un conjunto de
herramientas que proporcionen una manera uniforme de acceder a los recursos del sistema en todas las plataformas.
La forma ms comn de cumplir con este requisito es utilizar interfaces estndares de programacin y protocolos que se
siten entre la aplicacin y el software de comunicacin y el sistema operativo. Dichas interfaces y protocolos estndares
han venido a llamarse middleware.
Existe una gran variedad de paquetes de middleware, desde los muy simples a los muy complejos. Todos ellos tienen en
comn la capacidad de ocultar las complejidades y diferencias de los diferentes protocolos de red y sistemas operativos.
Middleware: conjunto de controladores, API y software adicional que mejoran la conectividad entre una aplicacin cliente y
un servidor, brindando acceso uniforme a los recursos del sistema a travs de todas las plataformas.
Ventajas:
-

Permite construir aplicaciones que utilicen el mismo mtodo para acceder a los datos, independientemente de su ubicacin.
Facilita la implementacin de la aplicacin en diferentes tipos de servidores y estaciones de trabajo.

Arquitectura middleware
La finalidad bsica del middleware es hacer que una aplicacin
o usuario acceda a una serie de servicios del servidor sin
preocuparse de las diferencias entre servidores.

Aunque hay una amplia variedad de productos middleware, estos


se basan normalmente en uno de dos mecanismos bsicos: el
paso de mensajes o las llamadas a procedimientos remotos.
Desde un punto de vista lgico, el middleware permite el procesamiento distribuido. El sistema distribuido entero puede
verse como un conjunto de aplicaciones y recursos disponibles para los usuarios. Todas las aplicaciones operan sobre una
interfaz uniforme de programacin de aplicaciones (API). El middleware, que atraviesa todas las plataformas clientes y
servidoras, es el responsable de encaminar las peticiones de los clientes al servidor apropiado.

Paso distribuido de mensajes


En los sistemas de proceso distribuido reales se suele dar el caso de que los computadores no compartan una memoria
principal; cada una es un sistema aislado. Por lo tanto, no es posible emplear tcnicas de comunicacin entre procesadores
basadas en memoria compartida, como son los semforos y el uso de un rea de memoria comn. En su lugar, se usan
tcnicas basadas en el paso de mensajes.
Con este mtodo, un proceso cliente solicita un servicio y enva, a un proceso servidor, un mensaje que contiene una peticin
de servicio. El proceso servidor satisface la peticin y enva un mensaje de respuesta. En su forma ms simple, solo se
necesitan dos funciones:
-

Send: la utiliza el proceso que quiere enviar el mensaje. Sus parmetros son el identificador del proceso de destino
y el contenido del mensaje.
Receive: la utiliza el proceso receptor para anunciar su intencin de recibir el mensaje, designado un rea de
almacenamiento intermedio e informando al mdulo de paso de mensajes.

La transferencia de mensajes consiste en:


1. El mdulo de paso de mensajes construye el mensaje (destinatario y datos).
3/6

Resumen SOP Rodrigo Carrin

UTN FRC

2. Se entrega el mensaje por el medio de transmisin.


3. En el destino, el servicio de comunicacin se lo entrega al mdulo de paso de mensajes.
4. Se examina el ID del proceso y se almacena el mensaje en el buffer del proceso.
Los procesos hacen uso de los servicios de un mdulo de pasos de mensajes, el cual sera un middleware.

Servicio fiable vs. servicio no fiable


-

Servicio fiable:
- Garantiza la entrega de los datos.
- Utiliza un protocolo de transporte fiable y llevara a cabo control de errores, acuse de recibo, retransmisin
y reordenacin de mensajes desordenados.
- No se informa si se entreg con xito (puede usar acuse de recibo solamente para saber si el mensaje se
ha entregado).
Servicio no fiable:
- Simplemente se enva el mensaje al destinatario por la red.
- Utiliza un protocolo de transporte no fiable.
- No se informa si se entreg con xito.
- Servicio muy simple y rpido (baja sobrecarga de procesamiento y de comunicaciones del servicio de paso
de mensajes).
- Si se requiere fiabilidad, la aplicacin debera garantizarla.

Bloqueante vs no bloqueante
-

Primitivas no bloqueantes (asncronas):


- Cuando se realiza un send o receive no se suspende el proceso.
- Cuando un proceso emite un send, el SO le devolver el control al proceso cuando ponga en cola el mensaje
de salida.
- Para un receive, se informa mediante una interrupcin o este puede comprobar peridicamente su estado.
- Ofrecen un empleo eficiente y flexible del servicio de paso de mensajes.
- Los programas que usan estas primitivas son difciles de probar y de depurar.
Primitivas bloqueantes (sncronas):
- Cuando se realiza un send no se devuelve el control al proceso emisor hasta que el mensaje se haya
trasmitido o hasta que el mensaje se haya enviado y obtenido un acuse de recibo.
- Cuando se realiza un receive no devuelve el control al proceso hasta que el mensaje se haya ubicado en el
buffer asignado.

Llamadas a procedimiento remoto (RPC)


Es un mtodo comn muy aceptado actualmente para encapsular la comunicacin en un sistema distribuido. Lo fundamental
de la tcnica es permitir que programas de mquinas diferentes interacten mediante la semntica de llamadas/retornos a
simples procedimientos, como si los dos programas estuvieran en la misma mquina.
Las ventajas de este mtodo son:
-

La llamada al procedimiento es una abstraccin muy usada, aceptada y bien comprendida.


Permiten que las interfaces remotas se especifiquen como un conjunto de operaciones.

El mecanismo de las llamas a procedimientos remotos puede considerarse como un refinamiento del paso de mensajes
fiables y bloqueante.
El programa llamador realiza una llamada normal a un procedimiento con los parmetros situados en su mquina. Por
ejemplo: CALL P(X, Y) donde P es el nombre del procedimiento, X son los argumentos pasados e Y son los valores
devueltos.
El espacio de direcciones del llamador debe incluir un procedimiento P de presentacin o tonto, o bien debe enlazarse
dinmicamente en el momento de la llamada. Este procedimiento crea un mensaje que identifica al procedimiento llamado

4/6

Resumen SOP Rodrigo Carrin

UTN FRC

e incorpora los parmetros. Enva el mensaje y queda esperando la respuesta. Cuando se recibe la respuesta, el
procedimiento de presentacin retorna al programa llamador, proporcionndole los valores devueltos.

Paso de parmetros

Por valor: los parmetros simplemente se copian en el mensaje y se envan al sistema remoto.
Por referencia: difcil de implementar. Hace falta un nico puntero para cada objeto.

Enlace cliente/servidor
El enlace especifica la forma en que se establecer la relacin entre un procedimiento remoto y el programa llamador. Un
enlace se forma cuando dos aplicaciones han establecido una conexin lgica y se encuentran preparadas para intercambiar
rdenes y datos.

Enlaces no persistentes: suponen que la conexin lgica se establece entre dos procesos en el momento de la
llamada remota y que la conexin lgica se pierde tan pronto como se devuelven los valores. Como mantener la
conexin consume recursos, con este enfoque se trata de aprovecharlos.
Enlaces persistentes: una conexin establecida para una llamada a un procedimiento remoto se mantiene despus
de que el procedimiento termina. La conexin puede utilizarse para futuras llamadas a procedimiento remoto. Si
transcurre un periodo de tiempo determinado sin actividad en la conexin, la misma finaliza.

Sincronismo vs asincronismo
Conceptos anlogos a los de mensajes bloqueantes y no bloqueantes.

RPC sncronas: el proceso llamante espera hasta que el proceso devuelva el valor.
RPC asncronas: no bloquean al llamante y permiten un mayor grado de paralelismo.

Agrupaciones (Clusters)
Cluster: es un grupo de computadoras interconectadas que trabajan juntas como un recurso de proceso unificado que
puede crear la ilusin de ser una nica mquina. Son una alternativa al SMP como mtodo de proporcionar alto rendimiento
y alta disponibilidad.
Nodo: forma de nombrar a cada computadora de un cluster.
Ventajas:

Escalabilidad total: es posible crear agrupaciones grandes que sobrepasen con creces las mquinas autnomas
ms grandes. Pueden tener docenas o cientos de mquinas multiprocesador.
Escalabilidad incremental: una agrupacin se configura de tal forma que es posible aadir sistemas nuevos a la
agrupacin en pequeos incrementos. Un cluster pequeo se puede expandir sin muchos problemas.
Alta disponibilidad: como cada uno de los nodos de la agrupacin es una computadora autnoma, el fallo de un
nodo no implica la prdida de servicio.
Mejor relacin rendimiento/precio: es posible armar una agrupacin con una potencia de proceso igual o mayor
que una mquina grande, a un precio mucho ms bajo.

Configuraciones de clusters
Clasificacin segn si comparten disco o no:

Sin disco compartido: los nodos se conectan mediante enlaces de alta velocidad (ejemplo: LAN). Si cada
computadora es multiprocesador se mejora el rendimiento y la disponibilidad.
Con disco compartido: existe un subsistema de disco compartido entre los nodos del cluster (tecnologa RAID).

Clasificacin segn la funcionalidad:

5/6

Resumen SOP Rodrigo Carrin

UTN FRC

Mtodo de agrupacin

Descripcin

Ventajas

Limitaciones

Espera pasiva

En caso de fallo en el servidor


primario, el servidor
secundario toma el control.

Sencillo de implementar.

Alto costo porque el servidor


secundario no est accesible
para procesar tareas.

Secundaria activa

El servidor secundario tambin


se utiliza para procesar tareas.

Costo reducido.

Incrementa la complejidad.

Servidores separados

Los servidores contienen sus


propios discos. Los datos se
copian continuamente del
servidor primario al
secundario.

Alta disponibilidad.

Incrementa la sobrecarga en el
servidor y el uso de la red
debido a las operaciones de
copia.

Servidores conectados a
discos

Los servidores estn


conectados a los mismos
discos, pero cada servidor
tiene sus propios discos. Sin
un servidor falla, sus discos
pasan a estar a cargo de otro
servidor.

Reduce la sobrecarga en el
servidor y el uso de la red
debido a la eliminacin de las
operaciones de copia.

Necesita tecnologa RAID o de


discos espejo para compensar
el riego de fallo de disco.

Servidores compartiendo
discos

Varios servidores comparten


acceso simultneo a los
discos.

Baja la sobrecarga en el
servidor y uso de la red.
Reduce el riesgo de cada por
fallo de disco.

Requiere software de gestin


de bloqueos. Se utiliza con
RAID o discos espejo.

Conceptos de diseo de los sistemas operativos


Gestin de fallos
La forma en que se gestionarn los fallos depende del mtodo de agrupacin utilizado. En general, para tratar los fallos se
pueden seguir dos enfoques:

Agrupacin de alta disponibilidad: ofrece una alta probabilidad de que todos los recursos estn siendo utilizados.
Si se produce un fallo, cualquier consulta perdida, si se retoma, ser atendida por un computador diferente de la
agrupacin.
Agrupacin tolerante a fallos: garantiza que los recursos siempre van a estar disponibles. Esto se logra mediante
el uso de discos compartidos redundantes y de mecanismos de respaldo para transacciones sin confirmar y
transacciones completadas y confirmadas.

La funcin de intercambiar una aplicacin y los datos de un sistema fallido por un sistema alternativo en una agrupacin se
denomina resistencia a fallos (failover). Una funcin afn a la anterior es la restauracin de aplicaciones y de datos al
sistema original una vez que se ha reparado; esto se denomina restauracin de fallos (failback).

Equilibrio de carga
Una agrupacin requiere una capacidad eficaz para balancear la carga entre los computadores disponibles. Cuando se
aade una nueva computadora a la agrupacin, la funcin de equilibrio de carga debera incluir automticamente esta
computadora en la planificacin de aplicaciones.

Proceso paralelo

Compilador paralelo: un compilador paralelo determina, en tiempo de compilacin, que partes de la aplicacin se
pueden ejecutar en paralelo. Estas se dividen para asignarlas a distintas computadoras de la agrupacin.
Aplicaciones paralelas: el programador disea la aplicacin desde el principio para ejecutar en una agrupacin y
utiliza el paso de mensajes para mover datos entre los nodos.
Computacin paramtrica: se puede utilizar si el centro de la aplicacin es un algoritmo o programa que debe
ejecutarse muchas veces, cada vez con un conjunto diferente de condiciones o parmetros.

6/6

You might also like