Escolar Documentos
Profissional Documentos
Cultura Documentos
2. Objetivo del SO
Tiene tres objetivos fundamentales:
a. Comodidad: hace que un computador sea ms facil de utilizar.
b. Eficiencia: permite que los recursos de un sistema informtico se aprovechen de
manera ms eficiente.
c. Capacidad de evolucin: debe construirse de modo que permita el desarrollo
efectivo, la verificacin y la introduccin de nuevas funciones al sistema.
A continuacin se detallaran estos tres aspectos:
por posicin. Los archivos cuyos bytes o registros pueden leerse en cualquier orden se
denominan archivos de acceso aleatorio.
Se usan dos mtodos para especificar donde debe iniciar la lectura en archivos de acceso
aleatorio. En el primero, cada operacin read da la posicin en el archivo donde debe
comenzarse a leer. En el segundo, se cuenta con una operacin especial, seek, para
establecer la posicin actual. Despus del seek, el archivo podr leerse en forma secuencial
a partir de la posicin que ahora es actual.
Close. Una vez que terminaron todos los accesos, se cierra el archivo para
desocupar espacio en memoria.
Read. Se leen datos de un archivo. Quien efecta la llamada debe especificar
cuantos datos necesita, y el bfer donde deben colocarse.
Write. Se escriben datos en un archivo, por lo regular, en la posicin actual.
Append. Es una forma restringida de write; solo puede agregar datos al final del
archivo.
Seek. Reubica el apuntador de archivo en un lugar especifio del mismo.
Get attributes. Para leer atributos de un archivo.
Set attributes. Para establecer ciertos atributos o modificarlos despus de que se
cre el archivo.
Rename. Es muy comn necesitar cambiar el nombre de un archivo, esta llamada lo
hace posible.
2. Directorios
Para llevar el control de los archivos, los sistemas de archivos suelen tener directorios o
carpetas que, en muchos sistemas, tambin son archivos.
de un archivo basta con recordad dos nmeros: la direccin en disco del primer bloque y el
nmero de bloques del archivo.
La segunda es que el desempeo de lectura es excelente porque puede leerse todo un
archivo del disco en una sola operacin. Solo se necesita un desplazamiento del brazo (al
primer bloque). Despus, no se requieren ms desplazamientos ni retrasos rotacionales.
Por desgracia, la asignacin contigua tambin tiene una importante desventaja: con el
tiempo, el disco se fragmenta.
Asignacin por lista enlazada:
Consiste en mantener cada archivo como una lista enlazada de bloques de disco. La primer
palabra de cada bloque se usa como apuntador al siguiente; el resto del bloque se usa para
datos.
Con este mtodo pueden usarse todos los bloques del disco. No se pierde espacio por
fragmentacin de disco (solo por fragmentacin interna en el ltimo bloque).
Aunque la lectura secuencial de un archivo es directa, el acceso aleatorio es lento en
extremo. 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.
Adems, la cantidad de datos almacenados en un bloque ya no es potencia de 2 porque el
apuntador ocupa unos cuantos bytes. Por este motivo, merma la eficiencia porque muchos
programas leen y escriben bloques cuyo tamao es una potencia de 2. De esta manera, las
lecturas de bloques enteros requieren obtener y concatenar informacin de dos bloques de
disco, lo cual genera un gasto adicional.
Nodos-i
Este mtodo consiste en asociar 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.
La gran ventaja de este enfoque es que el nodo-i solo tiene que estar en memoria cuando el
archivo correspondiente este abierto.
En contraste con una tabla FAT, que aumenta proporcionalmente al tamao de los discos,
este esquema requiere un arreglo en la memoria cuyo tamao sea proporcional al nmero
mximo de archivos que pueden estar abiertos a la vez. No importa el tamao del disco.
Un problema de los nodos-i es que si cada uno tiene un espacio para un nmero fijo de
direcciones de disco, Qu sucede cuando un archivo crece ms all del lmite? Una
solucin es reservar la ltima direccin de disco no para un bloque de datos, sino para la
direccin de un bloque que contenga ms direcciones de bloques de disco. Algo, an ms
avanzado seria tener dos o ms de esos bloques llenos de direcciones de disco o incluso
bloques de disco que apunten a otros bloques de disco llenos de direcciones.
4 Implantacin 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 hallas los bloques de disco. Por lo tanto, 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 mismos. 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
archivos. En los sistemas que usan Nodos-i, otra posibilidad es almacenar los atributos en
los mismos, en lugar de en las entradas de directorio.
Hasta ahora hemos supuesto que los archivos tienen nombre cortos de longitud fija. Sin
embargo, casi todos los OS 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. (Figura 6-17a)
Una desventaja de este mtodo es que cuando se elimina un archivo queda en el directorio
un hueco de tamao variable, 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. (Figura 6-17b)
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 es 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.
5 Archivos compartidos
Cuando varios usuarios colaboran en un proyecto, es comn que necesiten compartir
archivos. La conexin entre el directorio de un usuario y un archivo compartido se llama
enlace (link).
Hay dos formas de crear un enlace. En la primera, los bloques de disco no se listan en los
directorios, sino en una pequea estructura de datos asociada con el archivo mismo. Los
directorios apuntaran entonces solo a la pequea estructura de datos. ste es el mtodo
que se usa en UNIX (donde la pequea estructura es el nodo-i). Este tipo de enlace se
denomina enlace duro.
En la segunda solucin, un directorio se enlaza con otro archivo pidiendo al sistema que
cree un archivo nuevo, de tipo link, y lo introduzca en el directorio. El nuevo archivo solo
contiene el nombre de la ruta del archivo con el cual est enlazando. Este mtodo se llama
enlace simblico.
El problema de los enlaces simblicos es el procesamiento adicional requerido. Es preciso
leer el archivo que contiene la ruta, la cual entonces debe analizarse y seguirse,
componente por componente, hasta llegar al nodo-i o la estructura de datos
correspondiente. A pesar de esto, tienen la ventaja de que pueden enlazarse con archivos
de mquinas que pueden estar en cualquier lugar del mundo.
2. Creacin de procesos
Cuando se aade un proceso, hay que construir las estructuras de datos que se utilizan
para su administracin y asignar el espacio de direcciones en la memoria principal para el
proceso.
Cuatro sucesos comunes conducen a la creacin de un proceso:
En un entorno de trabajo por lotes, un proceso se crea como respuesta a la emisin
de un trabajo.
3. Terminacin de procesos
Cualquier sistema informtico debe ofrecer alguna forma para que un proceso pueda indicar
que ha terminado. Las causas tpicas de terminacin de un proceso pueden ser: terminacin
normal, tiempo lmite excedido, no hay memoria disponible, error de proteccin, instruccin
ilegal, mal uso de los datos, terminacin del padre, solicitud del padre.
5. Procesos suspendidos
Dado que 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. As pues, incluso con
multiprogramacin, el procesador podra estar desocupado la mayor parte del tiempo. Una
solucin sera alojar ms procesos con una mayor cantidad de memoria principal, pero esta
solucin no es factible.
Otra solucin es el intercambio, lo que significa mover una parte o todo el proceso de la
memoria principal al disco. Cuando ninguno de los procesos en memoria principal est en
estado Listo, el SO pasa al disco uno de los procesos que est Bloqueado y lo lleva a una
cola de Suspendidos. El espacio que se libero puede entonces utilizarse entonces para traer
otro proceso, ya sea de la cola de suspendidos o aceptar la creacin de un nuevo proceso.
Al emplear intercambio, se debe aadir un nuevo estado al modelo de cinco estado,
Suspendido.
Pero este razonamiento presenta una dificultad. Todos los procesos que fueron
suspendidos estaban en el estado de Bloqueado. Realmente no hara ningn bien traer de
nuevo a la memoria principal un proceso Bloqueado porque no est todava listo para
ejecutarse. Para resolver esto se necesitan estos cuatro estados:
Listo: el proceso est en la memoria principal y listo para la ejecucin.
Bloqueado: el proceso est en la memoria principal esperando un suceso.
Bloqueado y suspendido: el proceso est en la memoria secundaria esperando un
suceso.
Listo y suspendido: el proceso est en la memoria secundaria pero est disponible
para su ejecucin tan pronto como se cargue en la memoria principal.
operacin y la posicin de memoria principal que se est utilizando como origen o destino
de la transferencia de E/S.
8. Modos de ejecucin
La mayora de los procesadores soportan al menos dos modos de ejecucin. Ciertas
instrucciones solamente se pueden ejecutar en el modo ms privilegiado, como as tambin
el acceso a ciertas regiones de memoria necesitan este modo.
Modo usuario: es as como se conoce al modo menos privilegiado. Los programas
de usuario se ejecutan normalmente en este modo.
Modo ncleo: este el modo ms privilegiado, con el cual el software tiene control
completo del procesador y de todas sus instrucciones, registros y memoria. Este
nivel de control no es necesario y, por seguridad, tampoco conveniente para los
programas de usuario.
Normalmente hay un bit en la palabra de estado de programa (PSW) que indica el modo de
ejecucin. El bit puede cambiar como respuesta a ciertos sucesos.
9. Creacin de procesos
Una vez que el SO decide, por alguna razn, crear un nuevo proceso, ste puede proceder
como sigue:
1. Asignar un identificador nico al nuevo proceso: en este instante se aade una
nueva entrada a la tabla principal de procesos.
2. Asignar espacio para los procesos: esto incluye todos los elementos de la imagen
del proceso.
3. Iniciar el bloque de control del proceso
4. Establecer los enlaces apropiados: por ejemplo, poner el proceso nuevo en la
cola de listos.
5. Crear o ampliar otras estructuras de datos: por ejemplo, algn tipo de archivo de
contabilidad para futuros informes de rendimiento.
11. Hilos
Un proceso incluye dos caractersticas fundamentales:
Unidad de propiedad de los recursos: al proceso se le puede asignar el control o
la propiedad de recursos.
Unidad de expedicin: un proceso tiene un estado (ejecucin, listo, etc.) y una
prioridad; y adems es la unidad expedida y planificada por el sistema operativo.
Para distinguir estas dos caractersticas, la unidad de expedicin se conoce como hilo,
mientras que a la unidad de propiedad de los recursos se la suele llamar proceso o tarea.
Dicho de otra manera, el proceso posee los recursos y los hilos son los motores que los
comparten y los utilizan.
12. Multihilo
Hace referencia a la capacidad de un sistema operativo para mantener varios hilos de
ejecucin dentro de un mismo proceso.
En un entorno multihilo, un proceso se define como la unidad de proteccin y unidad de
asignacin de recursos. A los procesos se les asocian los siguientes elementos:
Un espacio de direcciones virtuales que contiene la imagen del proceso.
Acceso protegido a los procesadores, otros procesos, archivos y recursos.
En un proceso puede haber uno o ms hilos, cada uno con lo siguiente:
El estado de ejecucin del hilo.
El contexto del procesador.
Una pila de ejecucin.
Almacenamiento esttico para las variables locales.
Acceso a la memoria y los recursos del proceso, compartidos por todos los otros
procesos, ya que todos los hilos residen en el mismo espacio de direcciones y tienen
acceso a los mismos datos.
Ventajas:
Se tarda mucho menos en crear un nuevo hilo en un proceso existente que crear un
nuevo proceso.
Se tarda menos tiempo en terminar un hilo que un proceso.
Se tarda menos tiempo en cambiar entre dos hilos de un mismo proceso que entre
dos procesos.
Los hilos de un mismo proceso comparten memoria y archivos, por lo tanto pueden
comunicarse entre s sin invocar al ncleo.
Desventajas:
La suspensin de un proceso implica la descarga del espacio de direcciones fuera de la
memoria principal. Puesto que todos los hilos de un proceso comparten el mismo espacio
de direcciones, todos deben entrar en estado suspendido al mismo tiempo. De manera
similar, la terminacin de un proceso supone terminar con todos los hilos dentro de dicho
proceso.
Desventajas:
Cuanto un ULT ejecuta una llamada al sistema no solo se bloquea ese hilo, sino
todos los hilos del proceso.
En una estrategia ULT pura, una aplicacin multihilo no puede aprovechar las
ventajas de multiprocesadores. El ncleo asigna un proceso a un solo procesador a
la vez.
14.3 Mixto
En un sistema combinado, la creacin de hilos, as como la mayor parte da la planificacin y
sincronizacin de los hilos de una aplicacin se realizan por completo en el espacio de
usuarios. Los mltiples ULT de una sola aplicacin se asocian con varios (el mismo o menor
nmero) KLT.
En un mtodo combinado, los mltiples hilos pueden ejecutarse en paralelo en mltiples
procesadores y las llamadas al sistema bloqueadoras no necesitan bloquear todo el
proceso.
16. Microncleo
Un microncleo es un pequeo ncleo del sistema operativo que proporciona las bases
para ampliaciones modulares.
La filosofa en que se basa el microncleo es que solo las funciones absolutamente
esenciales del sistema operativo deben permanecer en el ncleo. Las aplicaciones y los
servicios menos esenciales se construyen sobre el microncleo y se ejecutan en modo
usuario.
Los componentes del sistema operativo externos al microncleo se implementan como
procesos servidores; estos interactan uno con otro sobre una base comn, normalmente a
travs de mensajes distribuidos a travs del microncleo. De este modo, el microncleo
funciona como un distribuidor de mensajes.
Ventajas:
Extensibilidad: la arquitectura del microncleo permite aadir nuevos servicios al
conjunto de servicios ya existentes en algunas de las reas funcionales.
Flexibilidad: no solo permite aadir nuevas caractersticas al SO, sino que se
pueden reducir las caractersticas actuales para dar lugar a una implementacin ms
pequea y eficiente.
Portabilidad: la mayora del cdigo especfico del procesador est en el
microncleo. De este modo, los cambios necesarios para portar el sistema a un
nuevo procesador son menores y tienden a estar ordenados en agrupaciones
lgicas.
Ocupa menos lugar en la memoria fsica.
Los mensajes se pueden hacer por red a otras computadoras. Entonces el
microkernel facilita el procesamiento distribuido.
Fiabilidad: la arquitectura brinda fiabilidad gracias a su reducido tamao y todas las
dems caractersticas descritas.
Desventaja:
Su principal desventaja es el rendimiento. Consume ms tiempo construir y enviar un
mensaje, o aceptar y codificar la respuesta, a travs del micro ncleo que mediante una
simple llamada al sistema.
posibilidad de que entren los 2. Un proceso entra en un ciclo corto en la espera que
el otro que est en la regin critica 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 entrara.
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.
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
while(true) {
producir();
si (c==n) sleep();
colocar();
c=c+1;
}
while(true) {
si (c==0) sleep
sacar();
si (c==n-1) wakeUp(prod)
consumir();
}
A pesar de que este modelo no posee espera activa, sigue teniendo el problema de las
interrupciones de reloj en momentos inoportunos.
19. Semforos
Otro manera de implementar la comunicacin entre procesos es utilizando semforos. Cabe
aclarar que no es un mtodo de comunicacin, estos son un tipo de variable a la que se le
while(true) {
producir();
down(vacio);
down(mutex);
colocar();
up(mutex);
up(lleno);
}
while(true) {
down(lleno);
down(mutex);
sacar();
up(mutex);
up(vacio);
consumir();
}
20. Monitores
Otra forma de evitar que dos procesos entren en la regin critica es utilizando monitores.
Este 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.
int elem;
mensaje m;
int elem i;
mensaje m;
while(true){
elem = producir();
receive(consumidor, m);
formar_mensaje(m, elem);
send(consumidor, m);
}
22. Inanicin
Este es un problema ntimamente ligado con los bloqueos irreversibles. En un sistema
dinmico, se necesita alguna poltica para decidir quin recibe qu recurso y cundo. Esta
poltica, aunque al parecer es razonable, puede hacer que algunos procesos nunca sean
atendidos, aunque no hayan cado en un bloqueo irreversible. Por ejemplo, un proceso que
no se atiende porque siempre llega uno con ms prioridad.
23. Calendarizacin
Es muy importante en un sistema, decidir cul proceso se ejecutara a continuacin. La parte
solicitudes interactivas cortas. Aun cuando de alrededor de 20-50 ms suele ser un trmino
medio razonable.
MLQF
El que se usa en Linux y Windows. Similar al MLQ, pero los procesos pueden cambiar de
cola. Adems de todo lo del MLQ, hay que definir un mecanismo para que un proceso pase
de una cola a la otra.
Calendarizacin garantizada
Una estrategia es hacer promesas reales en cuanto al desempeo y luego cumplirlas.
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 de 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.
3. Intercambio de memoria
Con los sistemas de tiempo compartido o las computadoras personales, a veces no hay
suficiente memoria principal para contener todos los procesos que estn activos, as los
procesos excedentes deben mantenerse en el disco y traerse a la memoria de forma
dinmica para que se ejecuten. Pueden usarse dos enfoques generales para lograr esto,
dependiendo, en parte, del hardware disponible. La ms sencilla, llamada intercambio
(swaping), consiste en traer a la memoria un proceso entero, ejecutarlo durante un tiempo y
volver a guardarlo en el disco. La otra estrategia, llamada memoria virtual, permite que los
programas se ejecuten aunque slo una parte de ellos est en memoria.
4 Intercambio o swaping
Consiste en traer a la memoria un proceso entero, ejecutarlo durante un tiempo y volver a
guardarlo en el disco.
Al traer y sacar varios procesos, se pueden generar fragmentacin en la memoria, dejando
partes de ella sin utilizar por momentos. Cuando el intercambio genera mltiples huecos, es
posible combinar tales huecos en uno solo ms grande, desplazando todos los procesos
hacia abajo hasta donde sea posible. Esta tcnica se denomina compactacin de
memoria, aunque no es muy comn puesto que demanda mucho tiempo de CPU.
Otro problema que se presenta con este enfoque, es que si por ejemplo un proceso esta
contiguo a otros dos (por arriba y por abajo) este no puede seguir creciendo. Lo ms
conveniente sera asignar un poco de memoria adicional cada vez que se intercambie un
proceso a la memoria o se cambie de lugar, a fin de reducir el gasto extra asociado con el
cambio de lugar de un proceso que quiere crecer. En la siguiente figura se presentan dos
soluciones diferentes para solucionar el problema del crecimiento del proceso.
asignacin corresponde un bit del mapa de bits. El bit es 0 si la unidad est desocupada y 1
si est ocupada (o viceversa).
Un mapa de bits es un mecanismo sencillo para llevar el control de las palabras de memoria
en una cantidad fija de sta, porque su tamao slo depende del tamao de la memoria y
del de la unidad de asignacin. Su principal desventaja es que 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.
El funcionamiento es similar al del primer ajuste, solo que el algoritmo recuerda en que
punto de la lista se qued la ltima vez que encontr un hueco apropiado. Simulaciones
demostraron que es ms lento que el anterior.
8. 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.
8.1 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.
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. En particular,
las que no se necesitan no debern tenerse en ella.
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 esta la pgina.
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 paralelamente. Si se encuentra el nmero y el acceso no viola los
bits de proteccin, el nmero de marco de pgina se toma directo del TLB, sin recurrir a la
traba 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.
11. Segmentacin
La memoria virtual que se trat hasta ahora es unidimensional porque las direcciones
virtuales van desde cero hasta alguna direccin mxima, y son consecutivas.
Consideremos que sucede si un programa tiene un nmero excepcionalmente grande de
variables pero una cantidad normal de todo lo dems. El trozo de espacio de direcciones
asignado a la tabla de smbolos (variables) podra llenarse, pero podra haber espacio de
sobra en las dems tablas.
Una solucin directa y extremadamente general consiste en proporcionar a la mquina
varios espacios de direcciones independientes por completos, llamados segmentos. Cada
segmento consta de una sucesin lineal de direcciones, desde cero 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.
1.4 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 posible 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.
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. 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.
4. Planificacin de discos
4.1 Parmetros de rendimiento del disco
Los detalles reales de las operaciones de E/S con los discos dependen de los sistemas
informticos, el SO y la naturaleza del canal de E/S y el hardware controlador del disco.
Cuando la unidad de disco est operando, el disco gira a una velocidad constante. Pera leer
o escribir, la cabeza debe ponerse en la pista deseada. En un sistema de cabezas mviles,
el tiempo que se tarda en ubicar la cabeza en la pista se llama tiempo de bsqueda. Una
vez que se ha seleccionado la pista, el controlador del disco esperar hasta que el sector
apropiado se alinee con la cabeza en su rotacin. El tiempo que tarda el comienzo del
sector en llegar hasta la cabeza se conoce como retardo de giro. La suma del tiempo de
bsqueda y el retardo de giro es el tiempo de acceso. Una vez que la cabeza est ubicada,
se puede llevar a cabo la operacin de lectura o escritura a medida que el sector se mueve
bajo la cabeza; esta es la parte de transferencia real de datos de la operacin.
Adems, existen algunos retrasos en las colas que normalmente tienen asociadas una
operacin de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe
esperar en una cola a que el dispositivo est disponible. Puede que haya una espera
adicional por el canal de E/S si el dispositivo lo comparte junto con otros.
Por lo tanto, el tiempo total desde la peticin hasta el final de la transferencia est dado por
la sumatoria de:
1. Tiempo de cola de proceso
2. Tiempo de bsqueda
3. Tiempo de establecimiento: tiempo hasta que deja de vibrar por el movimiento
4. Tiempo de rotacin/2: promedio de ubicacin de un sector del disco
5. Tiempo de transferencia del sector: depende de la velocidad del disco y la
densidad de bits.
6. Tiempo de transferencia de interfaz: depende de la norma de la interfaz, si es
SATA, USB, etc.
C-SCAN
La poltica del C-SCAN (SCAN circular) 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.
SCAN de N pasos
Con SSTF, SCAN y C-SCAN, es posible que el brazo no se mueva durante un periodo
considerable. Por ejemplo, si uno o varios procesos tienen mucho acceso a una pista,
pueden monopolizar el dispositivo. Para evitar esta monopolizacin del brazo, la cola de
solicitudes del disco puede dividirse en segmentos, procesndose un segmento por
completo cada vez.
La poltica de SCAN de N pasos divide a la cola de solicitudes del disco en subcolas de
longitud N. Cada subcola se procesa mediante un SCAN.
FSCAN
Mismo concepto que la anterior, pero emplea dos subcolas. Cuando comienza un rastreo,
todas las solicitudes estn en una de las colas y la otra permanece vaca. Durante el
recorrido, todas las solicitudes nuevas se colocan en la cola que inicialmente estaba vaca.
De este modo, el servicio de nuevas solicitudes se retrasar hasta que hayan procesado las
viejas.
5 RAID
La industria a acordado un esquema estndar para el diseo de base de datos sobre
mltiples discos, llamado RAID (Redundant Array of Independent Disks). El esquema RAID
consta de siete niveles, de cero a seis. Estos niveles no implican una relacin jerrquica
pero designan distintas arquitecturas de diseo que comparten tres caractersticas
comunes:
1. RAID es un conjunto de unidades de disco fsico vistas por el SO como una sola
unidad lgica.
2. Los datos estn distribuidos a travs de las unidades fsicas del vector.
3. La capacidad del disco redundante se utiliza para almacenar informacin de paridad,
que garantiza la recuperabilidad de datos en caso de fallo del disco.
6. Cach de disco
El trmino memoria cache se aplica normalmente a una memoria ms pequea y ms
rpida que la memoria principal y que se sita entre esta y el procesador.
El mismo concepto puede aplicarse a la memoria de disco. Concretamente, un cache de
disco es una memoria intermedia situada en la memoria principal para sectores de disco. La
cache 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.
Unidad 6: Seguridad
1. Amenazas a la seguridad
La seguridad de computadoras y redes aborda los siguientes cuatro requisitos:
1. Secreto: exige que la informacin de un sistema de computadoras sea accesible
para lectura solamente por partes autorizadas.
2. Integridad: exige que los elementos de un sistema de computadoras puedan ser
modificadas solo por partes autorizadas.
3. Disponibilidad: exige que los elementos de un sistema de computadoras estn
disponibles para las partes autorizadas.
4. Autenticidad: requiere que un sistema de computadores sea capaz de verificar la
identidad del usuario.
5. Irrefutabilidad: quien genere o modifique informacin luego no puede negar su
accin.
3. 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: este enfoque implica que 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 dinmica: incorpora la 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.
4. 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. Existen tres 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 legitima entrada de
usuario.
Abusador: un usuario legtimo que accede a datos, programas o recursos a los que
no estn autorizado, o que est autorizado pero hace un mal uso de sus privilegios.
Usuario clandestino: un individuo que est a cargo del control de la supervisin del
sistema y utiliza ese control para evadir la auditoria y el control de acceso o para
suprimir la recopilacin de datos.
5 Software maligno
Quizs, los tipos de ataque ms sofisticados a los sistemas informticos son los
presentados por los programas que se aprovechan de los puntos vulnerables de los
mismos.
Caballos de Troya
Un caballo de Troya es un programa o procedimiento til o aparentemente til que contiene
un cdigo oculto que, cuando se invoca, lleva a cabo alguna funcin daina o no deseada.
Los programas con caballos de Troya se pueden usar para efectuar funciones
indirectamente que un usuario no autorizado no podra efectuar directamente. Otra intencin
habitual es la destruccin de datos.
Virus
Un virus es un programa que puede infectar a otros programas, alterndolos; la alteracin
incluye una copia del programa de virus, que puede entonces seguir infectando a otros
programas.
Gusanos
Los programas gusanos de la red empleaban las conexiones de la red para extenderse de
un sistema a otro. Una vez activos en un sistema, un gusano de red puede comportarse
como un virus o bien plantar caballos de Troya o realizar cualquier nmero de acciones
trastornadoras o destructoras.
Para reproducirse un gusano utiliza algn tipo de vehculo de la red. Como por ejemplo,
correo electrnico, capacidad de ejecucin remota y capacidad de conexin remota.
Un gusano muestra las mismas caractersticas o fases que un virus.
Zombies
Un zombie es un programa que secretamente toma posesin de otro computador conectado
a internet y le usa para lanzar ataques que hacen difcil detectar a su creador. Los zombies
se utilizan en ataques de denegacin de servicio, normalmente contras sitios web. El
zombie se instala en cientos de computadores pertenecientes a terceras partes no
sospechosas y, entonces, suele sobrecargar al sitio web objetivo lanzando una excesiva
carga de trfico de red.
1. Proceso cliente/servidor
Como el termino sugiere, el entorno cliente/servidor est poblado de clientes y servidores.
Las mquinas clientes son, en general, PC monousuario o puestos de trabajo que ofrecen
una interfaz muy amigable para el usuario final.
En un entorno cliente/servidor, cada servidor ofrece una serie de servicios de usuario
compartidos a los clientes. Actualmente, el tipo ms comn de servidor es el servidor de
base de datos, que, generalmente, controla una base de datos relacional.
Adems de los clientes y servidores, el tercer ingrediente bsico es la red, ya que el
proceso cliente/servidor es un proceso distribuido.
2. 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 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.
En mayora de los sistemas cliente/servidor, se hace un gran hincapi en ofrecer una
interfaz de usuario que sea fcil de utilizar y fcil de aprender, pero potente y flexible.
3. 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. En otras palabras, el
middleware proporciona una capa de software que permite un acceso uniforme a sistemas
diferentes. 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.
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 y receive.
La primitiva send la utiliza el proceso que quiere enviar el mensaje. Sus parmetros
son el identificador del proceso de destino y el contenido del mensaje.
La primitiva receive la utiliza el proceso receptor para anuncia su intencin de recibir
el mensaje, designado un rea de almacenamiento intermedio e informando al
mdulo de paso de mensajes.
Los procesos hacen uso de los servicios de un mdulo de pasos de mensajes, el cual sera
un middleware.
6. Agrupaciones
Las agrupaciones son una alternativa al SMP como mtodo de proporcionar alto
rendimiento y alta disponibilidad. Una agrupacin se puede definir como un grupo de
computadores completos interconectados que trabajan juntos como un recurso de proceso
unificado que puede crear la ilusin de ser una mquina.
Existen cuatro ventajas tambin consideradas objetivos o requisitos del diseo de
agrupaciones:
Escalabilidad total: es posible crear agrupaciones grandes que sobrepasen con
crecer las mquinas autnomas grandes.
Escalabilidad incremental: una agrupacin se configura de tal forma que es
posible aadir sistemas nuevos a la agrupacin en pequeos incrementos.
Alta disponibilidad: puesto que cada uno de los nodos de la agrupacin es un
computador autnomo, 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.
En una configuracin sin discos compartidos, la nica interconexin se realiza por medio de
un enlace de alta velocidad que se puede utilizar para el intercambio de mensajes y para
coordinar la actividad de la agrupacin.
La otra alternativa es una agrupacin con discos compartidos. En este caso, generalmente
existe un enlace de mensajes entre nodos. Adems, hay un subsistema de disco
directamente enlazado a varios computadores de la agrupacin.
Proceso paralelo
Existen tres enfoque generales para este caso:
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 distintos computadores de la agrupacin.
Aplicaciones paralelas: en este enfoque, el programador disea la aplicacin
desde el principio para ejecutar en una agrupacin.
Computacin paramtrica: este enfoque 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.