Documente Academic
Documente Profesional
Documente Cultură
Extensión Maturín
Ingeniería de Sistemas
SISTEMAS OPERATIVOS II
Docentes: Alumnos:
1.1 Definición………………………………………………………………………………8
2.2.1 CPU…………………………………………………………………………………19
2.2.1.1 Registros…………………………………….…………………………………20
2.2.1.2 Datos……………………………………………………………………………22
2.2.1.3 Instrucciones………………………..…………………………………………22
2.2.2 Memoria…………………………………………………………………………….23
2.2.4 Periféricos………………………………………………………………………….25
2.3 Direccionamiento…………………………………………………………………….26
2.4 Interrupciones………………………………………………………………………28
2.5 PSW…………………………………………………………………………………30
2.6 Manejo de Tiempos en Computadoras……………………………………………31
2.6.1 Relojes……………………………………………………………………………32
2.6.2 Temporizadores…………………………………………………………………32
3.4 Fragmentación…………………………………………………………………….…38
3.6 Relocalización………………………………………………………………………..40
3.10.7 Aging………………………………………………………………………………47
3.11 Overlays……………………………………………………………………………49
3.12 Swapping………………………………….………………………………………49
4.5 Dispatcher……………………………………………………………………………55
4.10.3 Prioridad…………………………………………………………………………61
4.11 Starvation…………………………………………………………………………64
5.2 Canales…………………………………………………………………………...…66
5.6 Spooling………………………………………………………………………………68
5.7 Dispositivos Virtuales……………………………………………………………….69
5.8 Buffers………………………………………………………………………………69
6.1 Archivo…………………………....………………………………………………...71
6.4 Directorios……………………………………………………………………………72
7
1.1 Definición de Sistema Operativo:
8
Figura 1.1 – Fuente: Silberchatz, Fundamentos de los Sistemas Operativos
9
Figura 1.1 – Fuente: Sistemas Operativos, William Stallings
10
informático mediante la realización de las operaciones básicas aritméticas,
lógicas y de entrada/salida del sistema.
El recurso más importante en el sistema de computación es el
procesador central. Sin acceso al CPU los programas no pueden
ejecutarse. La estrategia más simple para asignar este recurso sería
asignarlo a un trabajo de usuario hasta que finalice. Esta estrategia es
usada en muchos computadores. Sin embargo la mayoría de los programas
gastan más de la mitad de su tiempo esperando que terminen operaciones
de Entrada/Salida. Esto nos lleva a tratar de compartir el tiempo del CPU
entre varios usuarios, lo cual implica un mecanismo más complejo que nos
permita utilizar eficientemente el tiempo del procesador y explotar el
paralelismo existente con las operaciones de Entrada/Salida.
11
Periféricos: Se considera periférico al conjunto de dispositivos que sin
pertenecer al núcleo fundamental de la computadora, formado por la unidad
central de procesamiento (CPU) y la memoria central, permitan realizar
operaciones de entrada/salida (E/S) complementarias al proceso de datos
que realiza la CPU.
12
Información: La información es un conjunto organizado de datos
procesados, que constituyen un mensaje que cambia el estado de
conocimiento del sujeto o sistema que recibe dicho mensaje.
El número de usuarios:
13
El número de procesos o tareas:
El número de procesadores:
14
- Sistemas Operativos para dispositivos integrados: también se conocen
como sistemas embebidos o incrustados. Estos dispositivos se encuentran
integrados en televisiones, coches, móviles, etc.
15
- Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus
programas, accediendo a la vez a los recursos de la computadora.
Normalmente estos sistemas operativos utilizan métodos de protección de
datos, de manera que un programa no pueda usar o cambiar los datos de
otro usuario. Es todo lo contrario a monousuario Este tipo de sistemas se
emplean especialmente en redes. En otras palabras consiste en el
fraccionamiento del tiempo (timesharing).
16
UNIDAD II: Arquitectura del Computador
17
2.1 Arquitectura del Computador
18
2.2.1 CPU
De la misma manera, el CPU está formado por distintos registros que permiten el
almacenamiento de instrucciones durante la ejecución para así poder referenciar
espacios en memoria, llevar el conteo de instrucciones y demás. En la siguiente
figura se visualizan varios de los registros que se encuentran dentro de un CPU:
19
2.2.1.1 Registros
20
Estos registros pueden ser en sí mismos de propósito general, o pueden estar
dedicados a una forma, o modo, particular de direccionamiento de memoria. A
continuación, se incluyen algunos ejemplos:
Registro índice. El direccionamiento indexado es un modo común de
direccionamiento que implica sumar un índice a un valor de base para
obtener una dirección efectiva.
Puntero de segmento. Con direccionamiento segmentado, la memoria se
divide en segmentos, que son bloques de palabras1 de longitud variable.
Una referencia de memoria consta de una referencia a un determinado
segmento y un desplazamiento dentro del segmento
Puntero de pila. Si hay direccionamiento de pila visible para el usuario, hay
un registro dedicado que apunta a la cima de la pila. Esto permite el uso de
instrucciones que no contienen campo de dirección, tales como las que
permiten apilar (push) y extraer (pop).
21
Todos los diseños de procesador incluyen también un registro, o conjunto de
registros, conocido usualmente como la palabra de estado del programa (Program
Status Word, PSW), que contiene información de estado. La PSW contiene
normalmente códigos de condición, además de otra información de estado, tales
como un bit para habilitar/inhabilitar las interrupciones y un bit de modo
usuario/supervisor.
2.2.1.2 Datos
Los datos son números y otra información en código binario sobre los que se
realizan operaciones para conseguir los resultados computacionales requeridos.
2.2.1.3 Instrucciones
22
una tiene una interpretación propia. La parte más básica de un código de
instrucción es su parte de operación. El código de operación de una instrucción es
un grupo de bits que define operaciones como sumar, restar, multiplicar, desplazar
y complementar. El número de bits requeridos para el código de operación de una
instrucción depende de la cantidad total de operaciones disponibles en la
computadora.
Formato de Instrucción
2.2.2 Memoria
Como su nombre lo indica, una memoria de sólo lectura (ROM) es una unidad de
memoria que sólo ejecuta la operación de lectura; no tiene la posibilidad de
escritura. Esto implica que la información binaria almacenada en una ROM se
hace permanente durante la producción del hardware de la unidad y no puede
alterarse escribiendo diferentes palabras en ella. En tanto una RAM es un
dispositivo de propósito general cuyo contenido puede alterarse durante el
proceso computacional, una ROM está limitada a leer palabras que están
almacenadas de manera permanente dentro de la unidad.
Una estructura de bus consta de un conjunto de líneas comunes, una para cada
bit de un registro, mediante las cuales se transfiere información binaria una a la
vez. Unas señales de control determinan cuál registro selecciona el bus durante
cada transferencia de registro particular.
24
2.2.4 Periféricos
Existen tres características que son útiles para organizar esta conglomeración
dispar de dispositivos de E/S:
25
Dispositivo Comportamiento Compañero Frecuencia de
Datos (KB/s)
Teclado Entrada Humano 0,01
Ratón Entrada Humano 0,02
Entrada de voz Entrada Humano 0,02
Scanner Entrada Humano 200,00
Salida de voz Salida Humano 0,60
Impresora de línea Salida Humano 1,00
Impresora láser Salida Humano 100,00
Pantalla gráfica Salida Humano 30000,00
(CPU a buffer de Salida Humano 200,00
encuadre
Red-terminal Entrada o Salida Máquina 0,05
Red-LAN Entrada o Salida Máquina 200,00
Disco óptico Almacenamiento Máquina 500,00
Figura 9.11 Ejemplo de dispositivos de E/S
2.3 Direccionamiento
Existen dos convenios diferentes para clasificar los bytes de una palabra. El orden
de bytes, “Little Endian” (Pequeño Endian), coloca el byte cuya dirección es
“x….x00” en la posición menos significativa de la palabra. El orden de bytes “Big
26
Endian (Gran Endian” coloca el byte cuya dirección es “x….x00” en la posición
más significativa de la palabra. En el direccionamiento “Big Endian”, la dirección
de un dato es la dirección del byte más significativo; mientras que en el “Little
Endian”, es la del byte menos significativo. Cuando se opera con una máquina, el
orden de los bytes, con frecuencia, no es importante. Sin embargo, el orden de los
bytes es un problema cuando se intercambian datos entre máquinas con
diferentes ordenaciones.
Modos de direccionamiento
27
Modo de Ejemplo Significado Cuándo se usa
direccionamiento Instrucción
Registro Add R4, R3 R4<=R4+R3 Cuando un valor está en un
registro
Inmediato o literal Add R4, #3 R4<=R4+3 Para constantes.
Desplazamiento Add R4, 100(R1) R4<=R4+M[100=>R1] Acceso a variables locales
Registro Diferido o Add R4, (R1) R4<=R4+M[R1] Acceso utilizando un
Indirecto puntero o una dirección
calculada
Indexado Add R3, (R1+R2) R3<=R3+M[R1+R2] A veces útil en el
direccionamiento de arrays,
R1=base del array;
R2=cantidad de índices
Directo o Absoluto Add R1, (1001) R1<=R1+M[1001] A veces útil para acceder a
datos estáticos; la
constante que específica la
dirección puede necesitar
ser grande
Indirecto o diferido Add R1, @(R3) R1<=R1+M[M[R3]] Si R3 es la dirección de un
de memoria puntero p, entonces el
modo obtiene *p
Auto-incremento Add R1, (R2)+ R1<=R1+M[R2] Útil para recorridos de
R2<=R2+d arrays en un bucle. R2
apunta al principio del
array; cada referencia
incrementa el R2 en el
tamaño de un elemento, d.
Auto-decremento Add, R1, -(R2) R2<=R2-d El mismo uso que
R1<=R2+M[R2] autoincremento.
Autoincremento/decremento
también puede utilizarse
para realizar una pila
mediante introducir y sacar
(push y pop)
Escalado o Índice Add R1, R1<= Usado para acceder arrays
100(R2)[R3] R1M[100+R2+R3*d] por índice. Puede aplicarse
a cualquier modo de
direccionamiento básico en
algunas máquinas
Figura 3.11 Selección de modos de direccionamiento con ejemplos,
significado y uso. ‘<=’ hace referencia a una asignación, M a un array que se
utiliza como nombre de la memoria, donde M[R1] hace referencia al contenido de
la posición de memoria cuya dirección es el contenido de R1.
28
2.4 Interrupciones
29
Presentemos la siguiente situación, el programa de usuario alcanza un punto en el
que hace una llamada al sistema que consiste en una llamada de ESCRITURA. El
programa de E/S que se invoca en este caso consta sólo del código de
preparación y el mandato real de E/S. Después de que se ejecuten estas pocas
instrucciones, se devuelve el control al programa de usuario. Mientras tanto, el
dispositivo externo está ocupado aceptando datos de la memoria del computador
e imprimiéndolos. La operación de E/S se lleva a cabo de forma concurrente con
la ejecución de instrucciones en el programa de usuario.
Cuando el dispositivo externo está listo para ser atendido, es decir, cuando está
preparado para aceptar más datos del procesador, el módulo de E/S de este
dispositivo externo manda una señal de petición de interrupción al procesador. El
procesador responde suspendiendo la ejecución del programa actual, saltando a
la rutina de servicio específica de este dispositivo de E/S, conocida como
manejador de interrupción, y reanudando la ejecución original después de haber
atendido al dispositivo. Los códigos de condición (también llamados indicadores)
son bits cuyo valor lo asigna normalmente el hardware de procesador teniendo en
cuenta el resultado de las operaciones.
30
PCB (Process Control Block) es un registro especial donde el sistema operativo
agrupa toda la información que necesita conocer respecto a un proceso particular.
Cada vez que se crea un proceso el sistema operativo crea el BCP
correspondiente para que sirva como descripción en tiempo de ejecución durante
toda la vida del proceso.
31
computador son manejados por tiempo. Para llevar a cabo estos eventos, se hace
uso de relojes y temporizadores.
2.6.1 Relojes
Se refieren a dispositivos con memoria no volátil para registrar la hora del sistema.
Durante el proceso de arranque del sistema lo utiliza para establecer varios
registros o valores del sistema (hora del sistema, registro de tiempos de eventos
en logs)
32
UNIDAD III: Administración de Memoria
33
3.1 Administración de Memoria
La pregunta sobre cuánta debe ser su capacidad es algo que no tiene límite. Si se
dispone de una determinada capacidad, probablemente se desarrollarán
aplicaciones que la usarán. La cuestión acerca de la velocidad tiene, hasta cierto
tiempo, una respuesta más fácil. Para alcanzar un rendimiento máximo, la
memoria debe ser capaz de mantener el ritmo del procesador. Es decir, según el
procesador va ejecutando instrucciones, no debería haber pausas esperando que
estén disponibles las instrucciones o los operandos. Se debe considerar también
la última pregunta. Para un sistema práctico, el coste de la memoria debe ser
razonable en relación con los otros componentes.
34
Cuanto mayor capacidad, menor velocidad de acceso.
Queda claro el dilema al que se enfrenta el diseñador. A él le gustaría utilizar
tecnologías que proporcionen una memoria de gran capacidad, tanto porque se
necesita esa capacidad como porque su coste por bit es bajo. Sin embargo, para
cumplir con los requisitos de rendimiento, el diseñador necesita utilizar memorias
de capacidad relativamente baja con tiempos de acceso rápidos.
35
La memoria principal, está directamente conectada a la CPU de la computadora.
Debe estar presente para que la CPU efectúe cualquier función. La memoria
principal consta, pues, de la memoria primaria del sistema; contiene los programas
en ejecución y los datos con que operan. Se puede transferir información muy
rápidamente (típicamente en menos de 100 ciclos de reloj) entre un registro del
microprocesador y localizaciones del almacenamiento principal. En las
computadoras modernas se usan memorias de acceso aleatorio basadas en
electrónica del estado sólido, que está directamente conectada a la CPU a través
de buses de direcciones, datos y control.
36
3.2.3 Almacenamiento secundario
37
El almacenamiento fuera de línea: (off-line) es un sistema donde el medio de
almacenamiento puede ser extraído fácilmente del dispositivo de almacenamiento.
Estos medios de almacenamiento suelen usarse para transporte y archivo de
datos. En computadoras modernas son de uso habitual para este propósito
los disquetes, discos ópticos y las memorias flash, incluyendo las unidades USB.
También hay discos duros USB que se pueden conectar rápidamente. Los
dispositivos de almacenamiento fuera de línea usados en el pasado son cintas
magnéticas en muchos tamaños y formatos diferentes, y las baterías extraíbles
de discos Winchester.
3.4 Fragmentación
38
Fragmentación Externa: En la memoria del sistema la fragmentación se produce
cuando los procesos asignados han ocupado posiciones no contiguas de memoria
dejando demasiados bloques libres de pequeño tamaño, en los que no "caben"
nuevos procesos.
39
Sencilla segmentos. Un proceso se fragmentación externa.
carga cargando todos sus interna; mejora la
segmentos en particiones utilización de la
dinámicas no memoria y reduce la
necesariamente contiguas sobrecarga respecto
al particionamiento
dinámico.
Paginación con Exactamente igual que la No existe Sobrecarga por la
memoria virtual paginación sencilla, fragmentación gestión compleja de la
excepto que no es externa; mayor grado memoria
necesario cargar todas las de
páginas de un proceso. Las multiprogramación;
páginas no residente se gran espacio de
traen bajo demanda de direcciones virtuales
forma automática
Segmentación Exactamente igual que la No existe Sobrecarga por la
con memoria segmentación, excepto que fragmentación gestión compleja de la
virtual no es necesario cargar interna; mayor grado memoria
todos los segmentos de un de
proceso. Los segmentos no multiprogramación;
residentes se traen bajo gran espacio de
demanda de forma direcciones virtuales;
automática soporte a protección
y compartición
3.6 Relocalización
En los sistemas con memoria virtual, los programas durante su ejecución pueden
salir por un tiempo de la memoria y luego regresar, de modo que no pueden
colocarse en el lugar que ocupaban previamente. Por ello debe ser posible que
residan en diferentes partes de la memoria en diferentes momentos. Así, la
gestión de memoria en el sistema operativo debe ser capaz de trasladar los
programas en memoria y manejar referencias a la memoria y las direcciones en el
código del programa para que siempre apunten a la ubicación correcta. La unidad
de gestión de memoria virtual también debe hacer frente a la concurrencia.
40
3.7 Memoria Virtual
La memoria virtual combina la RAM del equipo con espacio temporal en el disco
duro. Cuando queda poca RAM, la memoria virtual mueve datos de la RAM a un
espacio llamado archivo de paginación. Al mover datos al archivo de paginación y
desde él, se libera RAM para que el equipo pueda completar la tarea.
La tabla de páginas muestra la ubicación del marco por cada página del proceso.
Dentro del programa, cada dirección lógica está formada por un número de página
y un desplazamiento dentro de la página. A continuación se muestra en esquema
de procesos con sus respectivas tablas de página:
En primer lugar, para que los fallos de página puedan ser tratados correctamente
necesitamos un sistema que sea capaz de reiniciar una instrucción, de esta
manera pasará lo siguiente:
41
3.10 Algoritmos de Reemplazo de Páginas
Para implementar cualquier algoritmo que realice la elección del marco víctima (y
por supuesto de la página que será enviada a memoria secundaria) se tienen
ciertas consideraciones:
42
3.10.1 Algoritmo FIFO: El algoritmo FIFO reemplaza las páginas de la forma que
el primero que entra es el primero que sale. Asocia a cada página el instante en el
que se trajo a la memoria, así cuando se tenga que reemplazar una página, se
elige la más antigua.
43
decidida de tal forma que la página no sea referenciada más o sea referenciada
mucho después. En este caso la página 5 no es referenciada más, por lo que es
reemplazada por la página 2. El algoritmo genera finalmente 7 fallos de página,
versus por ejemplo los 10 fallos que FIFO genera.
44
ser accedido, previo a él está el 2 y previo a él el 1, de esta manera se continua
completando el marco hasta el término del string++.
45
de referencia R y el bit de modificación M como un par ordenado (R, M)
respectivamente. Existen cuatro clases de páginas descritas por este par que se
mencionan a continuación.
Cuando una página se debe reemplazar, se usa la misma lógica que el algoritmo
de reloj, pero en vez de revisar si el bit de referencia de la página es un 1, se
examina la clase a la que pertenece la víctima. Dependiendo de la implementación
la página (aleatoria o la primera que se encuentre) con la clase más pequeña es
reemplazada. Para encontrarla es posible que se deba revisar la cola circular
varias veces antes de encontrar la víctima.
Una duda interesante que surge es cómo puede haber páginas modificadas pero
no usadas (clase 1). Esto sucede cuando páginas de clase 3, luego de una
interrupción de reloj el bit de referencia es puesto en 0 pero los cambios aún
deben ser escritos en disco por lo que el bit de modificación sigue en 1.
47
En el ejemplo de la imagen se presentan dos páginas con sus bits de referencia y
contadores (en formato binario). La página 1 tiene los bits de referencia 1,1,1,0,0,0
que indican una alta frecuencia de uso pero estos no son actuales; la página 2
tiene bits 0,0,0,0,1,1 lo que indica poca frecuencia de uso pero muy actual.
Siguiendo el algoritmo, se toma el contador en binario y se efectúa un corrimiento
de 1 bit a la derecha y se le adjunta el bit de referencia a la izquierda, todo esto
por cada tick de reloj. Finalmente el contador de la página 1 es 0001110, versus el
de la página 2 que es 11000000, reflejando que la página 1 tiene menor
importancia que la página 2 pues esta última es mas reciente, por lo que la página
1 eventualmente debe ser reemplazada.
48
El ejemplo en la imagen presenta los frames y contadores para una cadena de
referencias dada. En caso de que dos o más contadores fueran iguales, se
reemplaza la página que haya llegado primero. En el ejemplo ocurren 10
reemplazos de página considerando llenar frames vacíos y reemplazos efectivos
de página.
3.11 Overlays
En éste los programas y datos se organizan de tal forma que se puede asignar la
misma región de memoria a varios módulos, con un programa principal
responsable para intercambiar los módulos entre disco y memoria según las
necesidades.
3.12 Swapping
Una rutina no se carga hasta que se la invoca; todas las rutinas se mantienen en
disco en un formato de carga reubicable. Según éste método, el programa
principal se carga en la memoria y se ejecuta. Cuando una rutina necesita llamar a
otra rutina, la rutina que realiza la invocación comprueba primero si la otra ya ha
sido cargada, si no es así, se invoca el cargado de montaje reubicable para que
cargue en memoria la rutina deseada y para que actualice las tablas de
49
direcciones del programa con el fin de reflejar éste cambio. Después, se pasa el
control a la rutina recién cargada
50
UNIDAD IV: Planificación del CPU
51
1. CPU: es el hardware dentro de una computadora u otros dispositivos
programables, que interpreta las instrucciones de un programa informático
mediante la realización de las operaciones básicas aritméticas, lógicas y de
entrada/salida del sistema.
Gráfico del CPU y sus relaciones con los módulos de la computadora. Fuente:
Sistemas Operativos, William Stallings.
52
2. ¿Por qué hablamos de la Planificación del CPU?
53
Hay dos procesos más que son considerados en la literatura: los estados
terminado y nuevo.
Admitido
Nuevo
Finaliza Finaliza
quantum
Ejecución
Finaliza
I/O
Operación I/O
Espera
54
4. ¿Qué es el planificador?
Cuando la CPU queda inactiva, el sistema operativo debe seleccionar uno de los
procesos que se encuentran en la cola de procesos preparados para ejecución. El
planificador a corto plazo (o planificador de la CPU) lleva a cabo este proceso. El
planificador elige uno de los procesos que están en memoria preparados para
ejecutarse y asigna la CPU a dicho proceso.
5. Dispatcher
- Cambio de contexto.
- Cambio al modo usuario.
- Salto a la posición correcta dentro del programa de usuario para reiniciar
dicho programa.
6 PSW (PCB)
55
PCB (Process Control Block) es un registro especial donde el sistema operativo
agrupa toda la información que necesita conocer respecto a un proceso particular.
Cada vez que se crea un proceso el sistema operativo crea el BCP
correspondiente para que sirva como descripción en tiempo de ejecución durante
toda la vida del proceso.
56
7. Cambio de Contexto
57
Este ciclo se repite bien cada vez que ocurre un evento de entrada/salida, bien
cuando vence un temporizador programado en el hardware. Dicho temporizador
hace saltar una interrupción cada 150 milisegundos aproximadamente (según
sistema operativo).
8. Planificación Apropiativa
9. Planificación no Apropiativa:
En este caso, una vez que el proceso está en el estado Ejecutando, continúa
ejecutando hasta que (a) termina o (b) se bloquea para esperar E/S o para solicitar
algún servicio al sistema operativo.
58
Cuando un proceso entra en la cola de procesos preparados, su PCB se coloca al
final de la cola. Cuando CPU queda libre, se asigna al proceso que este al
principio de la cola y ese proceso que pasa a ejecutarse se elimina de la cola. El
código del algoritmo de planificación FCFS es simple de escribir y fácil de
comprender.
o No apropiativa.
o Es justa, aunque los procesos largos hacen esperar mucho a los cortos.
o Predecible.
o El tiempo medio de servicio es muy variable en función del número de
procesos y su duración.
Ejemplo:
P1 P2 P3
0 24 27 30
59
consiste en ciclos de ejecución de CPU y ciclos de espera por E/S. El algoritmo
selecciona aquel proceso cuyo próximo ciclo de ejecución de CPU sea menor. El
problema está en conocer dichos valores, pero podemos predecirlos usando la
información de los ciclos anteriores ejecutados.
Este algoritmo puede ser preemptive o no. Cuando un nuevo proceso llega a la
cola de procesos listos mientras otro se está ejecutando, el nuevo proceso puede
tener el ciclo de duración de CPU más corto que lo que falta por ejecutar del
proceso actual. En el caso de un esquema preemptive, el CPU será asignado al
proceso que acaba de llegar a la cola. Este algoritmo se conoce como Shortest
Remaining Time First (SRTF).
Ejemplo:
P1 P2 P4 P1 P3
0 1 5 10 17 26
60
10.3 Prioridad
Ejemplo:
61
P3 2 4
P4 1 5
P5 5 2
Usando la planificación por prioridades, vamos a planificar los procesos de
acuerdo con el siguiente diagrama de Gantt:
P2 P5 P1 P3 P5
0 1 5 16 18 19
Una manera rápida de reducir la penalización que los procesos cortos sufren
con FCFS es usar expropiación basada en un reloj. Una interrupción de reloj es
generada a intervalos periódicos. Cuando ocurre la interrupción, el proceso en
ejecución es colocado en la cola de procesos listos y el próximo trabajo es
seleccionado basado en el esquema FCFS. A cada proceso se le da un trozo de
tiempo.
La principal decisión de diseño que surge con Round Robin es el tamaño del trozo
o quantum. Si el quantum es muy corto, entonces los procesos se moverán a
través del sistema rápidamente. Por otro lado, hay un cierto overhead o
desperdicio de tiempo envuelto con el manejo de la interrupción de reloj y las
funciones de planificación y despacho. Por lo tanto quanta muy pequeños
deberían evitarse. Una alternativa es usar un quantum de tiempo que sea un poco
más grande que el tiempo promedio requerido para una interacción típica.
62
cada proceso tiene su propio procesador corriendo a 1/n la velocidad del
procesador real.
Ejemplo:
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
63
11. Starvation: es un problema relacionado con los sistemas multitarea, donde a
un proceso o un hilo de ejecución se le deniega siempre el acceso a un recurso
compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.
64
UNIDAD V: Administración de Dispositivos
65
Dispositivos de Entrada y Salida
Por una parte, los dispositivos de entrada son aquellos que traducen datos,
señales y programas que los seres humanos pueden comprender, a formatos que
la computadora pueda procesar; es decir, interpreta la información y permite la
comunicación entre las personas y las computadoras. Por otro lado, los de salida
son instrumentos que interpretan y permiten la comunicación entre los seres
humanos y las computadoras. Estos dispositivos convierten los resultados que
produce el procesador y que se encuentran en código de máquina en una forma
comprensible de ser empleada por las personas. Los dispositivos de entrada y
salida son aquellos que son capaces de llevar a cabo ambos tipos de operaciones.
Canales
66
Unidad de Control
67
- Dispositivos compartidos: los se discos suelen compartir por todos los
procesos para almacenar información en ellos de forma simultánea. Esta es
la estrategia adecuada para adminsitrar los dispositivos de almacenamiento
de acceso directo, permitiendo su uso avarios procesos de forma
concurrente.
Aunque este tipo de asignación es muy flexible, si se desea alcanzar la
mayor eficacia posible, puede ser uy difícil llevarlo a la práctica, debiendo
establecer una gestión de la cola de peticiones de entrada/salida sobre el
dispositivo, por ejemplo:
- Ordenando la cola según la prioridad de los procesos.
- Atendiendo las peticiones según la ley del “mínimo esfuerzo” para
conseguir la mayor eficacia posible.
Spooling
El spooling, en esencia, utiliza el disco como un inmenso búfer para leer lo más
anticipadamente posible en los dispositivos de salida y para almacenar los
archivos de salida hasta que los dispositivos de salida estén en disposición de
aceptarlos.
68
intervención de la CPU. La CPU sólo necesita que se le notifique cuando se ha
completado el procesamiento, para poder enviar el siguiente lote de datos.
El spooling solapa la E/S de un trabajo con los cálculos de otros trabajos. Incluso
en un sistema simple, el gestor de spooling puede estar leyendo la entrada de un
trabajo mientras imprime la salida de un trabajo diferente. Durante este tiempo,
pueden tambiér estar ejecutándose otros trabajos, o bien esos trabajos pueen
estar leyendo sus “tarjetas” del disco e “imprimiendo” su línea de salida en el
disco.
Dispositivos Virtuales
Son aquellos dispositivos que son gestionados por medio de Spooling. Por
ejemplo, en caso de que se tenga una impresora que debería dedicarse a un único
proceso, éste se puede transformar en un dispositivo compartido cuando en
realidad no lo es. El spooler tiene asignada la impresora mientras que el resto de
procesos pueden realizar peticiones simultáneas sobre ella, simulando que el
dispositivo está compartido.
Buffering.
69
Un segundo uso del almacenamiento en búfer consiste en realizar la adaptación
entre dispositivos que tengan diferentes tamaños de transferencia de datos.
70
Archivo
Sistemas de Archivos
Los sistemas de archivos organizan y distribuyen los datos en áreas accesibles del
disco duro, para poder trabajar con la información almacenada sin ningún tipo de
problema. Esto es así porque el sistema operativo debe saber en todo momento
donde se encuentra cada archivo. Sus principales funciones son la asignación de
espacio a los archivos, la administración del espacio libre y del acceso a los datos
resguardados. Estructuran la información guardada en un dispositivo de
almacenamiento de datos o unidad de almacenamiento (normalmente un disco
duro de una computadora), que luego será representada ya sea textual o
gráficamente utilizando un gestor de archivos.
Manejo de Datos
71
• Gestión de directorios. En este nivel, los nombres simbólicos de los ficheros
se convierten en identificadores que o bien hacen referencia directamente
al fichero o indirectamente a través de un descriptor de fichero o una tabla
de índices. Este nivel también se ocupa de las operaciones de usuario que
afectan al directorio de ficheros, tales como añadir, borrar y reorganizar.
• Sistema de ficheros. Este nivel trata con la estructura lógica de los ficheros
y con las operaciones que pueden especificar los usuarios, como abrir,
cerrar, leer y escribir. Los derechos de acceso se gestionan también en
este nivel.
• Organización física. De la misma manera que las direcciones de memoria
virtual deben convertirse en direcciones físicas de memoria principal
teniendo en cuenta la estructura de segmentación y paginación, las
referencias lógicas a ficheros y registros se deben convertir en direcciones
físicas del almacenamiento secundario, teniendo en cuenta la estructura de
pistas
Directorios
El directorio puede considerarse como una tabla de símbolos que traduce los
nombres de archivo a sus correspondientes entradas de directorio. Si adoptamos
esta esta visión, es fácil comprender que el propio directorio puede organizarse de
muchas formas. El directorio contiene información sobre los ficheros, incluyendo
atributos, ubicación y propiedad. Gran parte de esta información, especialmente la
que concierne a almacenamiento, la gestiona el sistema operativo. El directorio a
su vez es un fichero, accesible por varias rutinas de gestión de ficheros.
72
poder encontrar todos los archivos cuyos nombres se correspondan con un
patrón concreto.
- Crear un archivo: es necesario poder crear nuevos archivos y añadirlos al
directorio.
- Borrar un archivo: cuando un archivo ya no es necesario, queremos poder
eliminarlo del directorio.
- Listar un directorio: tenemos que poder enumerar los archivos contenidos
en un directorio y el contenido de la entrada de directorio correspondiente a
cada uno de los archivos de la lista
- Renombrar un archivo: puesto que el nombre de un archivo representa su
contenido para los usuarios, debemos poder cambiar el nombre cuando el
contenido o uso del archivo varíen.
- Recorrer el sistema de archivos: puede que queramos acceder a todos
los directorios y a todos los archivos contenidos dentro de una estructura de
directorios. Para conseguir una mayor fiabilidad, resulta conveniente
guardar el contenido y la estructura de todo el sistema de archivos a
intervalos regulares.
Estructura de Directorios
73
indexado por el nombre de usuario o por el número de cuenta y cada una
de sus entradas apunta al UFD de dicho usuario.
- Directorios con estructura de árbol: consiste en ampliar la estructura de
directorios para que sea un árbol de altura arbitraria. Esto permite a los
usuarios crear sus propios subdirectorios y organizar sus archivos
correspondientemente. Los árboles son la estructura de directorio más
común. Cada árbol tiene un directorio raíz y todos los archivos del sistema
tienen un nombre de ruta distintivo.
- Directorios en un grafo acíclico: en este tipo de directorios cada
directorio o archivo compartido existirá en el sistema de archivos en dos (o
más) lugares simultáneamente.
Archivos Simbólicos
74
• Ninguno. El usuario no puede incluso conocer la existencia del fichero, y
por tanto, tampoco puede acceder a él. Para forzar esta restricción, el
usuario no tiene permiso de lectura del directorio en el cual se incluye este
fichero.
• Conocimiento. El usuario puede determinar si el fichero existe y quién es
su propietario. El usuario entonces es capaz de solicitar al propietario
derechos de acceso adicionales.
• Ejecución. El usuario puede cargar y ejecutar un programa pero no
copiarlo. Los programas propietarios utilizan normalmente estas
restricciones.
• Lectura. El usuario puede leer el fichero para cualquier propósito,
incluyendo copia y ejecución. Algunos sistemas son capaces de forzar una
distinción entre ver y copiar. En el primer caso, el usuario puede ver el
contenido del fichero, pero no puede realizar una copia.
• Adición. El usuario puede añadir datos al fichero, frecuentemente sólo al
final, pero no puede modificar o borrar cualquiera de los contenidos del
fichero. Este derecho es útil para recolectar datos de varias fuentes.
• Actualización. El usuario puede modificar, borrar o añadir datos al fichero.
Esto normalmente incluye escribir el fichero al inicio, reescribirlo completa o
parcialmente y borrar todos o una porción de los datos. Algunos sistemas
diferencian entre distintos grados de actualización.
• Cambio de protección. El usuario puede cambiar los derechos de acceso
otorgados a otros usuarios. Normalmente, sólo el propietario del fichero
goza de este derecho. En algunos sistemas, el propietario puede extender
este derecho a otros. Para prevenir del abuso de este mecanismo, el
propietario del fichero normalmente puede especificar qué derechos podría
cambiar un usuario con este tipo de permiso.
• Borrado. El usuario puede borrar el fichero del sistema de ficheros.
75
de acceso listados previamente y puede conceder permisos a otros usuarios. Se
pueden proporcionar diferentes accesos a distintas clases de usuarios:
Organización de Archivos
La Pila:
Dado que no hay estructura en este tipo de fichero, el acceso a los registros se
hace mediante búsqueda exhaustiva. Es decir, si se desea encontrar un registro
que contiene un campo particular con un valor particular, es necesario examinar
cada registro en la pila hasta encontrar el registro deseado o terminar de recorrer
todo el fichero. Si se desea encontrar todos los registros que contienen un campo
particular o contienen dicho campo con un valor particular, entonces se debe
recorrer el fichero entero.
El Fichero Secuencial
76
La forma más común de estructura de fichero es el fichero secuencial. En este tipo
de ficheros, se utiliza un formato fijo para los registros. Todos los registros son de
igual tamaño y están compuestos por el mismo número de campos de longitud fija
en un orden específico. Debido a que la longitud y la posición de cada campo son
conocidas, sólo se necesita almacenar los valores de los campos; el nombre y
longitud de cada campo son atributos de la estructura del fichero.
El fichero indexado:
77
Para lograr esta flexibilidad, se necesita una estructura que emplea múltiples
índices, uno por cada tipo de campo que puede estar sujeto a una búsqueda. En
el fichero indexado general, se abandonan los conceptos de secuencialidad y
clave única. Los registros se acceden sólo a través de sus índices.
Métodos de Acceso
78
ningún orden concreto. El método de acceso directo se basa en un modelo
de archivos que se corresponde con los dispositivos de disco, ya que los
discos permiten el acceso aleatorio a cualquier bloque de un archivo.
Estrategias de Allocation
79