Sie sind auf Seite 1von 107

Sistemas Operativos

Capítulo 9 de:
Introducción a la Informática, 3ª Edc.
A.Prieto; A.Lloris, J.C.Torres
McGraw-Hill, 2002
Contenidos

9.1 Software de un computador


9.2 Definición de sistema operativo
9.3 El nivel de máquina operativa
9.4 Evolución de los sistemas operativos
9.5 Gestión del procesador
9.6 Gestión de la memoria principal
9.7 Gestión de entradas/salidas
9.8 Gestión de archivos

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 2


(c) McGraw-Hill / Interamericana
9.1 Software de un computador

Soporte lógico o software de un computador


es el conjunto de programas asociados a dicho
computador. Dentro de estos programas se incluyen
los suministrados por el constructor, los adquiridos
en empresas especializadas, y los redactados por los
propios usuarios de la computadora.

Software de control
Utilidades
Software de aplicaciones

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 3


(c) McGraw-Hill / Interamericana
9.1 Software de un computador

Software de control
Módulos que controlan el funcionamiento de los
programas que se ejecutan, y administran los
recursos hardware, facilitando el uso de la
computadora de la forma más eficiente posible.
Dentro de este apartado se incluye:
El sistema operativo
Interprete de órdenes
Programas de diagnóstico y mantenimiento

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 4


(c) McGraw-Hill / Interamericana
9.1 Software de un computador

El software de diagnóstico y mantenimiento,


está Integrado por:
Programas de test de arranque.
Programas a utilizar por los responsables del
mantenimiento y puesta al día del hardware y
del software del computador. Con estos
programas se pretende, por ejemplo, localizar
automáticamente las averías de un determinado
dispositivo o circuito, o las causas de un mal
funcionamiento de algún módulo del sistema
operativo.
Software de instalación y mantenimiento del
sistema operativo.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 5


(c) McGraw-Hill / Interamericana
9.1 Software de un computador: resumen

ESTRUCTURA DEL SOFTWARE DE UN COMPUTADOR

Software de control
• sistema operativo:
o núcleo
o planificadores (a corto, a medio, y a largo plazo)
o módulos de gestión de memoria
o módulos de gestión de periféricos
o sistema de archivos
• interprete del lenguaje de control o concha
• programas de diagnóstico y mantenimiento

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 6


(c) McGraw-Hill / Interamericana
9.1 Software de un computador

Utilidades

Incluyen los programas que facilitan la


construcción de las aplicaciones de los usuarios,
sea cual sea la naturaleza de estas (intérpretes,
compiladores, editores de textos, gestores de
datos, etc.).

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 7


(c) McGraw-Hill / Interamericana
9.1 Software de un computador: resumen

ESTRUCTURA DEL SOFTWARE DE UN COMPUTADOR

Utilidades
• traductores (ensambladores, macroensambladores,
compiladores e intérpretes)
• cargadores/montadores de programas
• editores de textos
• rastreadores/depuradores
• respaldo de seguridad
• compactación de discos
• recuperación de archivos
• antivirus
• compresión de datos
• administrador de bibliotecas de programas, etc.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 8


(c) McGraw-Hill / Interamericana
9.1 Software de un computador

Software de aplicaciones

incluye programas relacionados con


aplicaciones específicas (procesadores de
textos, bibliotecas de programas para
problemas estadísticos, de cálculo numérico,
comerciales, etc)., tanto adquiridos como
realizados por los propios usuarios.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 9


(c) McGraw-Hill / Interamericana
9.1 Software de un computador: resumen

ESTRUCTURA DEL SOFTWARE DE UN COMPUTADOR

Software de aplicaciones
• bibliotecas de programas matemáticos y estadísticos
• procesadores de textos
• programas de presentaciones
• programas de hojas electrónicas
• sistemas de administración de archivos y de bases de datos
• programas para gestión de comunicaciones (correo electrónico, etc.)
• visualizadores y navegadores de web
• programas de aplicaciones gráficas
• programas CAD/CAM
• videojuegos, etc
• PROGRAMAS DE LOS USUARIOS

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 10


(c) McGraw-Hill / Interamericana
9.2 Definición de sistema operativo

Un sistema operativo es un programa (o


conjunto de programas) de control que
tiene por objeto facilitar el uso de la
computadora y conseguir que esta se
utilice eficientemente.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 11


(c) McGraw-Hill / Interamericana
9.2 Definición de sistema operativo

El S.O. es un programa de control ya que:


Contabiliza el tiempo de utilización por los usuarios de
los recursos hardware.
Controla el acceso de los usuarios
Se encarga de gestionar y asignar a los usuarios
(programas) los recursos hardware (procesador,
memoria principal y periféricos).
Obviamente si en un computador se están
ejecutando “simultáneamente” varios programas,
debe haber algo o alguien que asigne los recursos y
evite los conflictos que puedan surgir cuando dos
programas requieran los mismos elementos (la
misma unidad de disco o impresora, por ejemplo).
Ese “algo” es el S.O.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 12


(c) McGraw-Hill / Interamericana
9.2 Definición de sistema operativo

El sistema operativo facilita el uso del


computador.
EJEMPLO: Cada dispositivo de E/S, para ser utilizado,
requiere varias instrucciones máquina que establezcan un
"dialogo" entre el procesador y los puertos del periférico.
Estas instrucciones dependen de las características
concretas del periférico (Con un disco, habría que
considerar el tamaño del buffer, capacidad de sector,
densidad de grabación, código de detección de errores,
etc.) Por otra parte para un dispositivo dado, estas
instrucciones u operaciones son comunes para todos los
programas que lo utilicen. El sistema operativo, con objeto
de facilitar el trabajo de los programadores, contiene
rutinas o módulos de gestión de entradas/salidas, que
hacen "transparente" al usuario las características hardware
concretas de los dispositivos.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 13


(c) McGraw-Hill / Interamericana
9.2 Definición de sistema operativo

El sistema operativo hace que el computador se utilice


eficientemente.
En los sistemas de multiprogramación, el sistema operativo
hace que, cuando un programa esté dedicado a una
operación de entrada o salida, el procesador pase a atender
a otro programa. Así, si por ejemplo, la operación de E/S es
la escritura de una página en una impresora láser,
suponiendo que imprime a una velocidad de 6 pág./minuto,
cada página tarda en imprimirse 60/6=10 segundos. Si el
procesador ejecuta 106 instrucciones/segundo, mientras que
la impresora escribe su página, el procesador puede ejecutar
106x10= =10 millones de instrucciones de otro u otros
programas. En estas situaciones el SO puede hacer que,
mientras se imprime página, el procesador ejecute otros
programas.
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 14
(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

USUARIOS Y PROGRAMAS DE APLICACIONES Programación


de aplicaciones
Nivel de máquina simbólica
(compiladores, editores, interprete del LC)
Programación
de sistemas
Nivel de máquina operativa
(sistema operativo)

Arquitectura
Nivel de máquina convencional
(lenguajes máquina y ensamblador)

Nivel de micromáquina Hardware


(microprogramación)

Nivel de circuito lógico

Tecnología
Nivel de dispositivos y ctos. electrónicos

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 15


(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

El nivel conceptual de máquina convencional (LM y


LE), junto con el SO hacen que el nivel conceptual
superior ( Nivel de máquina simbólica) disponga de:

Lenguaje ensamblador, memoria virtual,


dispositivos de E/S virtuales, multiprogramación,
etc.
Los elementos de este conjunto de facilidades
(primitivas) constituye el nivel de máquina
operativa.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 16


(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

Las distintas facilidades que aporta el SO se utilizan por


el nivel de máquina simbólica mediante llamadas al
sistema (o instrucciones virtuales, que se añaden a
las instrucciones del LE).
A partir del nivel de máquina operativa se construye el
nivel de máquina simbólica, que, utilizando el LE y
llamadas al sistema, contiene compiladores, editores y el
interprete (“concha”) del lenguaje de control del
SO.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 17


(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

Los programas de aplicación y los usuarios “ven” al


computador como una máquina simbólica, que
proporciona:
lenguajes de alto nivel (C, Pascal, FORTRAN,
Visual-BASIC, etc.)
editores
repertorio de órdenes (“comands”) del sistema
operativo
Los usuarios “ven” a (utilizan) los programas de
aplicaciones, a través de un lenguaje de órdenes.
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 18
(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

Gracias al nivel de máquina operativa los usuarios


pueden desconocer las capas inferiores: sólo
necesitan manejar las primitivas proporcionadas por el
nivel de máquina simbólica, así como las órdenes de
los programas de aplicaciones.
Las órdenes del SO son “traducidas” a llamadas al
sistema por el interprete del lenguaje de control.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 19


(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

La interfaz de usuario del interprete del lenguaje de


control (concha), puede estar ser de:
líneas de texto (líneas de órdenes), o
menús, o
iconos,
Ventanas, etc.

Para los usuarios la forma más cómoda de utilizar un


programa (y el SO, en concreto) es mediante una GUI
(Interfaz Gráfica de Usuario) : interfaces Windows

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 20


(c) McGraw-Hill / Interamericana
9.3 El nivel de máquina operativa

USUARIOS Y PROGRAMAS DE APLICACIONES


Sentencias de Instrucciones
Órdenes del SO
LAN edición

Máquina simbólica Interfaz usuario Interfaz usuario Interfaz usuario


(utilidades) Compiladores Editores Interprete
del LC

Llamadas al
sistema

Máquina operativa Sistema operativo

Instrucciones en lenguaje máquina

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 21


(c) McGraw-Hill / Interamericana
9.4 Evolución de los sistemas operativos

1945-1955: No hay sistema operativo.


1956-1963:
Computadores dedicados sólo a entradas/salidas.
Entradas/salidas virtuales. Trabajo por lotes serie
o cola serie . SO que interpreta ordenes de
control (interprete del lenguaje de control),
contabiliza el consumo de los usuarios, etc.
1964-1979
Multiprogramación, lotes paralelo, Memoria
virtual
1980- actualidad:
• SO estandarizados:
Sistemas operativos en red y distribuidos
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 22
(c) McGraw-Hill / Interamericana
9.4 Evolución de los sistemas operativos

Sistemas operativos de mayor difusión:


Microsoft:
MS-DOS → en la actualidad con
interfaces (GUI) Windows
UNIX
Linux (1991)
Sistemas operativos “propietarios”:
MacOS
OS/2
MVS
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 23
(c) McGraw-Hill / Interamericana
9.4 Evolución de los sistemas operativos
MS-DOS 1.0 (1.981, IBM-PC, Intel 8088, 16 bits)

MS-DOS 2.0 (1.983, IBM-PC, Intel 8086)

MS-DOS 3.0 (1.984, Intel 80286)

MS-DOS 5.0 (1.991, Intel 80286)

Windows 3.1 (1.992, GUI, 80486)

Windows NT (1.993, 32 bits, tabla de archivos NTFS)


Windows 3.11 (Grupos de trabajo en red)

Windows 95
(1.995, MS-DOS 7.0, Intel 486, Pentium, 16/32 bits) Windows NT CE
(PDA’s, ‘Agendas Digitales’)
Windows NT Workstation Windows NT Server
Windows 98 (Cliente de red para estaciones de trabajo) (Servidor de red para estaciones de trabajo)
(1.998, MS-DOS 7.1, Internet Explorer)
Windows NT Enterprise
(Enfocado a redes locales en empresas)

Windows 2.000 (2.000)

20-nov-01Windows ME (2.000)
C.9 S.O. "Introducción a los Computadores" A.Prieto 24
Windows 2.000 server Windows 2.000 professional
(c) McGraw-Hill / Interamericana(cliente redes enfocado a estaciones de trabajo)
(servidor redes enfocado a profesionales)
9.4 Evolución de los sistemas operativos
UNIX (1.970, Bell Labs de AT&T, PDP7)
(1974, publicación de Ritchie y Thompson)

UNIX Versión 6 (1.976, AT&T)


UNIX BSD (1.977,
Berkeley, PDP11)
UNIX Versión 7 (1.978, AT&T)

(VAX)
(protocolo de red TCP/iP)
XENIX (1.980, Microsoft, PC)
UNIX System III (1.982, AT&T)
UNIX 4.1cBSD (1.983)
UNIX System V (1.984, AT&T)

SunOS (1.984)

UNIX 4.3BSD (1.986)


XENIX V/386
(1987, Microsoft/AT&T)

Linux 0.02
(1.991, Linus Torvals, PC) Solaris (1.992)

Solaris 2(1.993, UltraSPARC II)

Xwindows
(MIT, 1.997, GUI para UNIX/Linux)

20-nov-01 C.9 S.O.Motif, KDE, Gnome, etc.


"Introducción a los Computadores" A.Prieto 25
(c) McGraw-Hill / Interamericana
9.5 Gestión del procesador: Contenido

Gestión del procesador


Multiprogramación
Conceptos básicos
Asignación del procesador
Algoritmos de planificación
Modos de procesamiento
Intercambio memoria principal / disco
Estados de un proceso

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 26


(c) McGraw-Hill / Interamericana
9.5 Gestión del procesador. Procesos

Un proceso es un programa que ha iniciado su ejecución. El


proceso nace en el momento que se inicia su ejecución y
muere en el momento que finaliza su ejecución o que se
cancela por algún motivo.
El SO gestiona la ejecución de procesos. Hay SO de:
monoprogramación
multiprogramación:
clásica o no apropiativa
apropiativa
Inicialmente los programas a ejecutar se introducían en una
cola (en cinta o disco), y el planificador de trabajos
(planificador a largo plazo) del SO iba seleccionando de ella
programa a programa para ejecutarse: procesamiento por
cola serie o C.9
20-nov-01
“por lotes” (“batch”)
S.O. "Introducción a los Computadores" A.Prieto 27
(c) McGraw-Hill / Interamericana
9.5 Monoprogramación

Memoria principal

MONOPROGRAMACIÓN:
Proceso 1

En la MP se ubica 1 programa
(además del SO)
No se inicia la ejecución de Memoria sin ocupar
otro programa hasta que
finaliza totalmente el que se
encuentra en ejecución SO

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 28


(c) McGraw-Hill / Interamericana
9.5 Monoprogramación

Recursos
impresión
impresora

E/S disquete Lectura en disco Llamada al SO


Inicio Proc.2
disco
Fin Proc.1
Inicio Proc.1
Proceso 2
CPU sin CPU sin
CPU Proceso 1 utilizar utilizar

Sist. Oper.

Llamada al SO Llamada al SO tiempo

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 29


(c) McGraw-Hill / Interamericana
9.5 Monoprogramación

Comentarios importantes:
La memoria casi siempre queda parcialmente ocupada
(cabrían más procesos en ella)
→ se desaprovecha la memoria principal
Siempre que hay una operación de E/S, la CPU no se
utiliza. Estos tiempos suelen ser mucho mayores (3 ó 4
órdenes de magnitud) que los tiempos de la CPU
→ se desaprovecha el procesador
Los periféricos se utilizan uno a uno
→ se desaprovechan los periféricos

Conclusión
→ LA MONOPROGRAMACIÓN NO ES EFICIENTE
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 30
(c) McGraw-Hill / Interamericana
9.5 Monoprogramación

Funciones del SO:


Siempre que un programa tienen una operación de E/S hace una
llamada al SO, encargándose éste de generar las instrucciones
máquina concretas de la E/S.
Cuando finaliza una operación de E/S se genera una interrupción
que provoca una llamada al SO, y continua la ejecución por la CPU
del proceso. Un proceso en ejecución se dice que esta activo.
Mientras se efectúa la operación de E/S el proceso queda
bloqueado, ya que la CPU no puede continuar la ejecución del
proceso hasta que acabe la operación de E/S.
Cuando acaba la ejecución de un proceso, el planificador a largo
plazo del SO, selecciona (de acuerdo con algún criterio de prioridad)
un programa de la cola serie, lo carga en la memoria principal e
inicia su ejecución.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 31


(c) McGraw-Hill / Interamericana
9.5 Multiprogramación

Se puede lograr un mejor aprovechamiento de todos los recursos


hardware con la MULTIPROGRAMACIÓN:
Se cargan en memoria todos los programas de la cola que quepan
El SO puede interrumpir la ejecución de un proceso de acuerdo
con algún criterio preestablecido; por ejemplo:
Cuando llegue a la cola un programa de gran preferencia.
Cuando un proceso quede bloqueado, por estar efectuándose
una operación de E/S (Interrupción de E/S).
Interrupción de reloj. Es normal asignar un periodo de
tiempo (T=20ms, p.e.) a cada proceso, al final del cuál se
interrumpe la ejecución de éste. La interrupción lanza el
modulo planificador a corto plazo (despachador), que
selecciona para ejecutar a uno de los procesos listos (no
bloqueados) residentes en memoria. Etc.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 32


(c) McGraw-Hill / Interamericana
9.5 Multiprogramación

Memoria principal

Proceso 1

Proceso 2

Proceso 3

Proceso 4

Memoria sin ocupar

SO

Se supone que no queda ningún programa en la cola que quepa en la


partición libre de memoria

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 33


(c) McGraw-Hill / Interamericana
9.5 Multiprogramación

Recursos
Peri.1 P2 bloqueado
E/S Peri.2 P1 bloqueado
Peri.3

P.4
P.3
CPU P.2
P.1
SO

T tiempo

Se aprovechan al máximo todos los recursos y se da la sensación de


que todos los procesos avanzan en su ejecución “simultáneamente”.
Se dice que se ejecutan “concurrentemente”
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 34
(c) McGraw-Hill / Interamericana
9.5 Multiprogramación

Para interrumpir (suspender) la ejecución de un proceso, con


objeto de pasar a ejecutar otro, el SO debe efectuar un cambio
de contexto, este consiste en:
Salvar los contenidos de los registros de la CPU,
incluyendo palabra de estado, puntero de pila y
contador de programa.
Restaurar en la CPU los valores anteriores
correspondientes al proceso que va a continuar su
ejecución.
Los 2 proceso
El SO para planificar la ejecución de los procesos, mantiene por
cada uno de ellos en la MP y en disco un bloque de control de
proceso, que contiene información tal como: identificadores (del
proceso y del usuario), contenidos de la CPU, y
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 35
estado/privilegios/prioridad del proceso.
(c) McGraw-Hill / Interamericana
9.5 Multiprogramación

Los SO pueden gestionar los procesos de distinta forma:


Procesos de cola serie (lotes). El planificador selecciona trabajos de
la cola serie, cargandolos en memoria conforme haya sitio en ella, e
inicia su ejecución.
Colas paralelo (o sistemas de lotes multi-acceso). Se generan
diversas colas, según las características o prioridades de los programas.
El planificador carga en memoria programas de las distintas colas
Sistema de tiempo compartido. Gestiona procesos interactivos, a
través de los cuales el usuario interactúa directamente con el
computador casi de forma inmediata, dándole la ilusión de que está
trabajando el sólo con el computador.
Sistema de tiempo real. Necesariamente el tiempo de respuesta
debe ser menor de un valor predeterminado (“airbag” de un coche).
Sistema para proceso de transacciones, sistema de tiempo real
para consulta de bases de datos (reservas de billetes de avión, por
ejemplo -AMADEUS)
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 36
(c) McGraw-Hill / Interamericana
9.5 Concepto de hilo

El SO UNIX introdujo el concepto de “hilo” o “hebra” (theard), que


incluyen los SO modernos:
Un proceso puede descomponerse en tareas (hilos) diferentes e
independientes, que se pueden separar y ejecutar en el tiempo
concurrentemente (en paralelo) con otros procesos, o hebras,
incluso del propio proceso.
EJEMPLOS:
Proceso: interfaz de órdenes del Windows’95. Cada ventana de
carpeta lleva asociado un hilo independiente de ejecución (pueden
estar haciendose concurrentemente 2 copias de ficheros en
ventanas diferentes).
Procesador de texto. Cuando se lanza a ejecución (picando el
icono correspondiente) se genera un proceso que puede
descomponerse en distintos hilos, cada uno de ellos con los
siguientes cometidos: leer las entradas del teclado (1er plano),
visualiza de los menús, ejecutar las órdenes, corrector ortográfico,
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 37
(c) McGraw-Hill / Interamericana
9.5 SO de multiprocesamiento

Sistema de multiprocesamiento: sistemas con 2 o más


CPUs trabajando en paralelo, compartiendo la memoria
principal y otros recursos.
Multiprocesamiento asimétrico: un procesador controla
al resto (alguna versión de UNIX)
Multiprocesamiento simétrico: todos los procesadores
son iguales. (Ejemplo: Windows-NT)

El SO se encarga de ir distribuyendo los procesos o hilos


entre los distintos procesadores
En esta situación los procesos/hilos avanzan en realidad
simultáneamente (no sólo concurrentemente)
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 38
(c) McGraw-Hill / Interamericana
9.5 Intercambio con disco

En un sistema en tiempo compartido (por ejemplo, que


controle los cajeros de usuarios de un banco), hay que
atender necesariamente a todos los que se conecten en
un momento dado.
Puede ser que los procesos de todos los usuarios no
quepan en ese momento en la memoria principal, con lo
que no se pueden ir ejecutando concurrentemente en
multiprogramación.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 39


(c) McGraw-Hill / Interamericana
9.5 Intercambio con disco

SOLUCIÓN: Procesos
suspendidos
Pasar a disco (muy rápidamente,
con el DMA) los procesos
bloqueados o listos (“roll-out”). P5 PE
Cuando un proceso en disco se
desbloquee, o se le vaya a dar
Roll-out Roll-in
turno, rápidamente se le carga en la
memoria principal (“roll-in”). P7

P9

PA
El proceso en disco se dice que esta PB
suspendido P5
P3

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 40


(c) McGraw-Hill / Interamericana
9.5 Algoritmos de planificación del procesador

Hay tres planificadores:


largo plazo (o planificador de trabajos,
selecciona programas de la cola)
medio plazo (selecciona entre trabajos
suspendidos)
corto plazo (o distribuidor, selecciona entre los
trabajos listos)

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 41


(c) McGraw-Hill / Interamericana
9.5 Algoritmos de planificación del procesador

Algoritmos de planificación de corto plazo:


Turno rotatorio: se asignan a los procesos fracciones de
tiempo
1er. plano/2º plano (o en el fondo): El proceso en 1er.
plano (usualmente interactivo, p.e. edición de un texto) tiene
prioridad, y cuando se bloquea pasa a ejecutarse el de 2º
plano (p.e.,imprimir) (MS-DOS).
Primero en llegar, primero en servir. Primero el
proceso más corto. Menor tiempo restante. Mayor
tasa de respuesta. Realimentación (disminución de la
prioridad al que lleva más tiempo ejecutándose). Etc.
Derecho preferencial o modo no apropiativo: siempre se
ejecuta el proceso de mayor prioridad completamente y no se
interrumpe hasta que finalice o llegue otro de mayor prioridad
(Sistemas en tiempo real).
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 42
(c) McGraw-Hill / Interamericana
9.5.4 Estados de un proceso

Bloqueado/suspendido
Disco
Listo/suspendido

Nonato Planificador mp
planificador lp

fin E/S
Listo
distribuidor
Activo Bloqueado
Memoria principal
fin, cancelado o error E/S
Terminado

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 43


(c) McGraw-Hill / Interamericana
9.6 Gestión de la memoria principal

Un programa máquina es un conjunto ordenado de instrucciones en


código máquina, que, en el momento de cargarse en la MP,
encajarán en n palabras de memoria que pueden numerarse
correlativamente de la 0 a la n-1. Las direcciones del programa se
denominan direcciones virtuales o lógicas (dv).

Memoria principal
Los programa se cargan en la MP a partir de una
posición de memoria arbitraría, en función de las Proceso 1
zonas libres de ella. Esa dirección se denomina Proceso 2
dirección basa (DB). Las direcciones reales
donde se carga el programa se denominan Proceso 3
direcciones físicas (df), verificándose: Proceso 4

df = DB + dv, para todo 0 ≤ dv ≤ n-1


SO

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 44


(c) McGraw-Hill / Interamericana
9.6 Gestión de la memoria principal

La transformación entre direcciones virtuales y físicas se suele realizar


con ayuda de un registro base (que se carga previamente con la
dirección base) que se encuentra o en la propia CPU o en unos ctos.
específicos denominados Unidad de Gestión de Memoria (MMU)

direcciones Registro base direcciones


virtuales físicas
32000
000
32000

+
699
32699
724
32724

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 45


(c) McGraw-Hill / Interamericana
9.6 Gestión de la memoria principal (3)

La MMU suele incluirse en la actualidad en el mismo chip


del microprocesador, y realiza transformaciones entre
direcciones virtuales y físicas que antiguamente se
hacían por software
Chip o tarjeta de CPU

CPU
dirección virtual

MMU Memoria Periférico 0

dirección física

Bus del sistema


20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 46
(c) McGraw-Hill / Interamericana
9.6 Gestión de la memoria principal

En los SO de monoprogramación la memoria suele organizarse de


diversas formas. El SO puede ocupar las posiciones bajas o altas
(que puede ser de tipo ROM), o ambas posiciones.

No todo el SO se 00...00
Sistema Sistema
carga en la M. operativo operativo
(RAM) (RAM)
Cuando se genera
una llamada al SO de Programa
una función que no Programa del
del usuario
esta en memoria, Programa usuario
dicha función se del
usuario
carga en la RAM. La
parte del SO que está Controladores
siempre en MP se de dispositivos
BIOS
Sistema
operativo
denomina residente FF...FF
(ROM) (ROM)

del SO.
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 47
(c) McGraw-Hill / Interamericana
9.6 Concepto de segmento

Un segmento es un grupo lógico de información tal


como:
El programa de código máquina (Segmento de Código)
La pila asociada al programa (Segmento de Pila)
Los datos asociados al programa (Segmento de Datos)
Cada una de las subrutinas o funciones de biblioteca
del compilador.
Los módulos de programa, o subrutinas, o grupo de
datos, que considere oportuno el programador.
El tamaño de cada segmento, en consecuencia, no está
establecido a priori.
Un programa ejecutable es una colección de segmentos.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 48


(c) McGraw-Hill / Interamericana
9.6 Gestión de la memoria principal

El SO asigna espacio de memoria a los programas o procesos,


de acuerdo con las zonas libres de memoria existentes en cada
momento. Dependiendo de las posibilidades del SO, la
asignación puede realizarse de las siguientes formas:
Particiones estáticas
Particiones dinámicas
Paginación
Segmentación
Memoria virtual
Los SO con memoria virtual, además posibilita que puedan
ejecutarse programas con una capacidad mayor que la
capacidad real de la memoria principal.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 49


(c) McGraw-Hill / Interamericana
9.6.1 Particiones estáticas

La memoria se divide en Partición


cierto número de SO
000000
0
particiones o zonas, cada
SO 040000
una de las cuales contendrá 1

un proceso. Las direcciones 2 Proceso 3 080000


de base son las direcciones 0C0000
3 Proceso 27
de comienzo de cada
partición. El tamaño de la 4
Proceso 43 100000

partición es determinado 200000


Proceso 5
por el sistema operativo. 5
Proceso 7 300000
EJEMPLO: memoria de 2MB, 6
con particiones de 256KB. Proceso 0 400000
7
Fragmento libre 4FFFFF
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 50
(c) McGraw-Hill / Interamericana
9.6.1 Particiones estáticas

El SO mantiene una tabla en la que cada fila corresponde a una


partición, conteniendo la posición base de la partición, su
tamaño (no todas las particiones tienen por qué ser iguales) y
el estado de la partición (ocupada o no ocupada).
El planificador de trabajos, una vez que una partición está libre,
hace que se introduzca el programa de máxima prioridad que
haya en la cola de espera y que quepa en dicha partición.
Si el espacio de una partición es m palabras y el programa
ocupa n posiciones, se verificará siempre que:

n =< m
Cada partición tendrá unas posiciones no utilizadas si n < m.
Se denomina fragmentación interna o fragmentación de
una partición a: g = m-n

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 51


(c) McGraw-Hill / Interamericana
9.6.2 Particiones dinámicas

Los programas son introducidos por el SO inicialmente


en posiciones consecutivas de memoria, no existiendo
por tanto particiones predefinidas.
Partición
000000
0 SO SO
SO 040000 SO
1
Proceso 3
Proceso 3 080000
2 Proceso 27
3 Proceso 27 0C0000 Proceso 43
Proceso 7
Proceso 43 100000
4 Proceso 5
Proceso 5 200000 Proceso 0
5
Proceso 7 300000
6
Proceso 0 400000
7
4FFFFF
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 52
(c) McGraw-Hill / Interamericana
9.6.2 Particiones dinámicas

El SO puede gestionar el espacio de memoria con una tabla de


procesos, en la que cada línea contiene el identificativo de trabajo ,
el espacio que ocupa, y la dirección base. En otra tabla se especifican
los fragmentos libres. El planificador de trabajos, consultando la tabla,
introduce en la M los programas que quepan en los fragmentos libres.

SO SO SO
SO SO SO
Proceso 3
Proceso 27 Proceso 27 Proceso 27
Proceso 43 Proceso 43 Proceso 43
Proceso 7
Proceso 5 Proceso 5 Proceso 5
Proceso 0 Proceso 0 Proceso 0

Proceso 66 Proceso 66 Proceso 66

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 53


(c) McGraw-Hill / Interamericana
9.6.2 Particiones dinámicas

Al ir acabando de ejecutarse los programas, crece el número de


fragmentos libres crecerá y el espacio de cada uno de ellos disminuirá,
llegando un momento en que el porcentaje de memoria aprovechado es
muy reducido. El problema puede resolverse haciendo una
compactación que agrupa todos los fragmentos, reubicando los
programas en ejecución.
SO SO SO SO
SO SO SO SO
Proceso 3 Proceso 27 Proceso 27
Proceso 27 Proceso 27
Proceso 43 Proceso 43
Proceso 43 Proceso 43 Proceso 5 Proceso 5
Proceso 7 Proceso 0 Proceso 0
Proceso 5 Proceso 5
Proceso 0 Proceso 0 Proceso 66 Proceso 66

Proceso 66 Proceso 66

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 54


(c) McGraw-Hill / Interamericana
9.6.3 Segmentación

Con este sistema, el programa se considera dividido


en sus segmentos. La gestión la realiza el sistema
operativo, como con las particiones dinámicas, sólo
que cada partición, en vez de corresponder a un
programa, corresponde a un segmento.
El S.O. mantiene, por cada proceso, una tabla donde
se especifica la dirección base de cada segmento, y
su capacidad.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 55


(c) McGraw-Hill / Interamericana
9.6.3 Segmentación

La segmentación permite que ciertos procesos


puedan compartir código (rutinas, etc.) o datos
comunes sin necesidad de estar duplicados en
memoria principal.
Así, si seis usuarios están utilizando
interactivamente un procesador de textos
determinado, no sería necesario que estuviesen
cargadas en memoria seis copias idénticas del
código del programa procesador de textos (bastaría
con una). Únicamente estarían repetidos los
segmentos de datos de cada uno de los usuarios
(que contendrían los documentos en edición).

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 56


(c) McGraw-Hill / Interamericana
9.6.3 Segmentación

Registro Tabla de segmentos


Pos. Tabla Segtos. Memoria principal

segmento
B73 A140 0

dirección virtual

A3 7FF
tamaño
base d ire cc ió n f ísic a

+ A 1B FF
desplazamiento si

< desplazamiento

no

EXCEPCIÓN

En este ejemplo, un registro del procesador contiene la dirección de memoria


donde se encuentra el inicio de la tabla de segmentos del proceso

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 57


(c) McGraw-Hill / Interamericana
9.6.4 Paginación

programa
Los programas de los usuarios se dividen en Pág.
zonas consecutivas (páginas). Cada página es 0
1
de tamaño fijo (de 512 Bytes a 64 KB). Cada 2
página, dentro del programa, se identifica con 3
un número correlativo. Si, por ejemplo, la 4
página es de 4KB, y el programa de 64KB, éste memoria M.pág.
estaría formado por 16 páginas (0 a F). 00
01
La memoria principal se estructura en marcos 02
de página de igual longitud que las páginas 03
del programa. Cada marco se identifica con un 04
05
número correlativo. 06
Si el tamaño de la memoria principal fuese 07
08
de 1MB, y el tamaño del marco 4KB, 09
habría 256 marcos de página (del 00 al 0A
FF). 0B
0C
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 58
(c) McGraw-Hill / Interamericana
9.6.4 Paginación

El fundamento de la paginación está en que no es necesario que un


programa se almacene en posiciones consecutivas de memoria. Las
páginas se almacenan en marcos de página libres independientemente
de que estén o no contiguos. M.pág.
memoria
00
Programa P7 01
Pág. 02
0 03
1 04
2 05
3 06
4 07
08
09
0A
0B
0C

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 59


(c) McGraw-Hill / Interamericana
9.6.4 Paginación

Una dirección virtual (esto es, una dirección


del programa) puede considerarse 000
formada por el número de página (bits Página 0 100
099
más significativos, MSB) y un 100
desplazamiento dentro de la página Página 1 100
199
(bits menos significativos, LSB). 200
Página 2
100
Para mejor comprender lo anterior, 299
300
supongamos que estamos en base 10, y
Página 3 100
las páginas son de 100 posiciones. 399
Entonces la dirección 328, corresponderá 400
Página 4
a la página 3, y, dentro de ella tendrá una 100
499
posición relativa (desplazamiento) de 28 500
posiciones. Página 5 100
599
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 60
(c) McGraw-Hill / Interamericana
9.6.4 Paginación

Cada proceso tiene asociado una Tabla de Páginas, que,


sencillamente, indica el marco de página donde se encuentra
almacenada la página correspondiente.
Tabla de páginas P7
M.pág.
memoria 00
00 08
Programa P7 01 05
Pág. 02 01
0C
0 03
1 04
2 05 La MMU hace la correspondencia
3 06 entre dirección virtual y física,
4 07 y puede contener la tabla de
08
09 páginas o un registro
0A indicando la posición de
0B memoria donde se encuentra
0C
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 61
(c) McGraw-Hill / Interamericana
9.6.4 Paginación

La dirección física se obtiene a partir de la dirección


virtual, consultando la tabla de páginas del proceso, y
concatenando el marco de página con el desplazamiento
Tabla de páginas del
Registro proceso
Pos. Tabla pág. 00 00 Memoria principal
Página 01 08
02 05
03 10
04 0C
dirección virtual Página 04

02 7FF

d ire cc ió n f ísic a Página 05

05 7FF 05 7FF
desplazamiento

Página 06

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 62


(c) McGraw-Hill / Interamericana
9.6.4 Paginación

El sistema operativo suele mantener tres tipos de tablas:


Tabla-mapa de páginas. Hay una por proceso, y contiene el
marco de memoria donde se encuentra cada una de sus
páginas. La longitud de cada tabla es variable, dependiendo
de la capacidad (nº de páginas) del proceso.
Tabla de marcos de memoria. Contiene tantas filas como
marcos. Se indica el identificativo del proceso que está en cada
marco, y, en su caso, si está libre.
Tabla de procesos . Cada fila contiene información referente
a cada proceso en ejecución. Se indica su tamaño, dirección de
memoria, dónde se encuentra su tabla de páginas, y el estado
y situación del proceso
Cuando un proceso esta activo, se suele ubica en un registro de la
MMU o de la CPU la dirección de memoria a partir de la que se
encuentra su tabla de páginas.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 63


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

La memoria virtual (MV) permite ejecutar programas de


capacidad superior a la memoria que físicamente tiene el
computador.
Además, la memoria virtual permite aumentar el número de
procesos en la memoria principal, en ejecución concurrente.
En definitiva presenta al usuario una memoria principal
aparente mayor que la memoria física real.
Para implantar la memoria virtual suele utilizarse una de las
siguientes técnicas:
gestión de memoria por páginas,
gestión de memoria segmentada,
gestión de memoria segmentada/paginada

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 64


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

En un sistema de MV se tiene en disco el proceso completo, que se


considera por la CPU troceado en páginas o segmentos, dependiendo
del método. Únicamente se cargan en la memoria principal la página
o páginas (o segmentos, en su caso) que en ese momento
intervengan en el proceso, intercambiando páginas entre disco y
memoria principal cuando sea necesario.
La memoria virtual parte de la idea de que las instrucciones de un
programa que se ejecutan sucesivamente (en un corto intervalo de
tiempo) están en direcciones muy próximas (principio de localidad
temporal), y en que los programas suelen estar redactados con gran
linealidad (es decir, no suelen abundar los saltos entre posiciones de
memoria distantes) (principio de localidad espacial). En otras
palabras los programas se ejecutan secuencialmente y los saltos
(sobre todo a grandes distancias) son poco probables.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 65


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

La gestión de MV segmentada es más compleja que la del tipo de


paginación, ya que los segmentos son de tamaño variable y son más
difíciles de gestionar; las páginas, por el contrario, son de capacidad
constante y preestablecida. Por ello lo habitual es utilizar gestión de
memoria por paginación, o por segmentos paginados.
En el caso de que el control de un programa llegue a una instrucción
(o requiera un dato) de una página que no esté en memoria, se dice
que se produce un fallo de página, y el SO debe cargar en memoria
la página correspondiente.
La MV con paginación combina las técnicas de paginación e
intercambiabilidad. Por lo general se utiliza un método de
intercambiabilidad "perezosa": únicamente se lleva a memoria una
página cuando es necesaria para algún proceso (demanda de
página), de esta forma el número de procesos en ejecución
concurrente puede aumentar.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 66


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

La gestión de la memoria se efectúa de forma muy similar a la


segmentación y paginación. Por ejemplo:
Tabla-mapa de páginas. (una por cada proceso). Cada fila
corresponde a una página del proceso, conteniendo:
dirección de disco a partir de la cual se encuentra la página.
marco de memoria en el que está (en su caso) la página, y
un bit que indica la situación de la página (0 si está en memoria
principal, ó 1 si está sólo en memoria secundaria).

(página) Posición Marco de Ubicación


disco página (0 en memoria)
0 7ABC - 1
1 CA73 7 0
2 4BC9 - 1
3 573C C 0
4 A340 4 1
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 67
(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Tabla de marcos de memoria. Cada fila de esta tabla


corresponde a un marco de página, y contiene, por
ejemplo, lo siguiente:
(proceso, página) que está en el
marco Tabla marcos de página
estado del marco (0: ocupado; marco
Proceso/pág. Estado Cambio
1:libre) página
cambio; es un bit para indicar si, 0 6,03 0 1
1 3,05 0 0
desde que se ha cargado la página 2 4,BC 0 0
desde disco por última vez, se ha 3 6,04 0 0
modificado (1) o no (0) dicha 4 0,A3 0 1
página. 5 0,A4 0 0
Otra información adicional, 6 (libre) 1 0
7 6,0 0 0
dependiente del algoritmo de
reemplazo de página
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 68
(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Obtención de la dirección física (en la MMU) a partir


de la virtual, consultando la tabla de páginas:
Proceso P3 Memoria principal
0000 00000
direcc. virtual desplazamiento 7AB 4 KB
1000 00FFF
01000
2000
2 7AB
Tabla de págs. c 02000
3000 0
1
4000 2 7A3 FE 0 FB000
FE
página virtual 3
Marco de pág.
5000 4 FC000
5
7000 FD000
7FFF
FE000
E direcc. física FE7AB
F FF000

FFFFF

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 69


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Si P6 hace referencia a una instrucción o dato de la página 0. El SO


consulta la tabla de páginas P6 y detecta que no está en MP (bit
ubicación, 1) (fallo de pág). El SO busca en la tabla de marcos de
pág. en el campo estado, y encuentra que el marco 6 está libre.
Entonces con ayuda del DMA se carga rápidamente la pág. solicitada,
que según la tabla de págs. se encuentra en disco a partir de la
posición 7ABC. Después se actualiza las tablas.
Tabla marcos de página
marco
Tabla págs. P6 Proceso/pág. Estado Cambio
página
(página) Posición Marco de Ubicación 0 6,03 0 1
disco página (0 en memoria) 1 3,05 0 0
0 7ABC - 1 2 4,BC 0 0
1 CA73 7 0 3 6,04 0 0
2 4BC9 - 1 4 0,A3 0 1
3 573C C 0 5 0,A4 0 0
4 A340 4 1
6 (libre) 1 0
7 6,0 0 0
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 70
(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Referencia: Proceso P6, página 0 marco


Proceso/pág. Estado Cambio
página
Tabla págs. P6 0 6,03 0 1
1 3,05 0 0
(página) Posición Marco de Ubicación 2 4,BC 0 0
disco página (0 en memoria) 3 6,04 0 0
0 7ABC - 1 2 4 0,A3 0 1
1 CA73 7 0 5 0,A4 0 0
1
2 4BC9 - 1 5 6 6,00 0 0
3 573C C 0 7 6,0 0 0
4 A340 4 1
marco
Página
3 página
7ABC 0 6,03
1 3,05
2 4,BC Memoria
3 6,04
4 4 0,A3
5 0,A4
DMA 6 6.00
20-nov-01 7
C.9 S.O. "Introducción a los Computadores" A.Prieto 6,0 71
(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Supongamos que después se solicita la pág. 2 que tampoco se encuentra


en MP. Ahora no hay ningún marco libre, por lo que el SO (con un
algoritmo de reemplazo de pág.) debe eliminar de la MP una de las
páginas para introducir la solicitada. Supongamos que el algoritmo indica
que debe sustituirse la pág. 6,04, que está en el marco 3.
Tabla marcos de página
marco
Proceso/pág. Estado Cambio
página
Tabla págs. P6 0 6,03 0 1
(página) Posición Marco de Ubicación
1 3,05 0 0
disco página (0 en memoria) 2 4,BC 0 0
0 7ABC 6 0 3 6,04 0 0
1 CA73 7 0 4 0,A3 0 1
2 4BC9 - 1 5 0,A4 0 0
3 573C C 0
4 A340 4 1
6 6,00 0 0
7 6,01 0 0

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 72


(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Referencia a P6/02. Algoritmo de reemplazo: cargar en mp 3


Bit de cambio de marco 3 = 0 ⇒ P6/04 no se ha modificado
(está exactamente igual en disco). El S.O.:
Carga en ese marco la página solicitada P6/02.
Actualiza las tablas
Tabla marcos de página
marco
Tabla págs. P6 Proceso/pág. Estado Cambio
página
(página) Posición Marco de Ubicación 0 6,03 0 1
disco página (0 en memoria)
0 7ABC 6 0
1 3,05 0 0
1 CA73 7 0 2 4,BC 0 0
2 4BC9 - 1 3 6,04 0 0
3 573C C 0 4 0,A3 0 1
4 A340 4 1 5 0,A4 0 0
6 6,00 0 0
7 6,01 0 0
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 73
(c) McGraw-Hill / Interamericana
9.6.5 Memoria virtual

Referencia a P6/02. Algoritmo de reemplazo: cargar en mp 0


Bit de cambio de marco 0 = 1 ⇒ P6/03 se ha modificado (la copia
en disco no está actualizada). El SO:
1. Hace copiar el contenido del mp 0 en la posición 7ABC de disco
2. Hace cargar en el mp 0 la página que está a partir de la
posición 4BC9 de disco
3. Actualiza las tablas.
Tabla marcos de página
marco
Tabla págs. P6 Proceso/pág. Estado Cambio
página
(página) Posición Marco de Ubicación 0 6,03 0 1
disco página (0 en memoria) 1 3,05 0 0
0 7ABC 6 0 2 4,BC 0 0
1 CA73 7 0
2 4BC9 - 1
3 6,04 0 0
3 573C C 0 4 0,A3 0 1
4 A340 4 1 5 0,A4 0 0
6 6,00 0 0
20-nov-01 7
C.9 S.O. "Introducción a los Computadores" 6,01
A.Prieto 0 0
74
(c) McGraw-Hill / Interamericana
9.6 Memoria virtual

Los algoritmos de sustitución de página más conocidos son:


FIFO
LRU
NRU ("No recientemente usado”
ALGORITMO DEL RELOJ

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 75


(c) McGraw-Hill / Interamericana
9.6 Memoria virtual

Los algoritmos de reemplazo de página más conocidos son los siguientes:


FIFO: se sustituye la página que lleve más tiempo en memoria.
Implementación: con un contador, C, asociado a cada marco que se
incrementa cada vez que se efectúe un acceso a memoria. Se pone a 0
cuando se carga una nueva página.
LRU: se sustituye la página que lleve más tiempo sin usar. Se basa en
el principio de localidad temporal ya que supone que la página utilizada
hace mayor tiempo, es menos probable que se use próximamente.
Implementación: con un contador, C, asociado a cada marco de
página, que se incrementa cada vez que se efectúe un acceso a
memoria; y se pone a 0 cada vez que se accede a su página.
NRU Se sustituye la página que menos se haya utilizado recientemente.
Implementación: se utiliza una variable R (“referido”) asociada a cada
marco, que se pone a 1 cuando se referencia el marco. De vez en
cuando (20 ms, por ejemplo) se ponen a cero todas las variables R.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 76


(c) McGraw-Hill / Interamericana
9.6 Memoria virtual

Algoritmo del reloj.


Un puntero va recorriendo los distintos marcos de página.
En cada fila de la tabla de marcos se incluye un bit (0 ó 1)
de referido (R).
Cuando se introduce una página, el bit se pone a 0 (R=0).
Si se accede a un marco, se hace R=1, y no se avanza el
puntero
Si se produce un fallo de página: se analiza el R al que
apunta el puntero
Si R=0, se reemplaza la página y se avanza una
posición el puntero
Si R=1, se cambia a R=0, y así sucesivamente se
avanza el puntero hasta encontrar un R=0.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 77


(c) McGraw-Hill / Interamericana
9.6 Memoria virtual

EJEMPLO (algoritmos de reemplazo):

Memoria con 3 marcos de página, e inicialmente


vacía.

Se hacen referencia sucesiva a las siguientes


páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 78


(c) McGraw-Hill / Interamericana
9.6 MV: Algoritmos de reemplazo

2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 5 5 5 5 3 3 3 3
FIFO 3 3 3 3 2 2 2 2 2 5 5
1 1 1 4 4 4 4 4 2
f f f f f f f f f

2 2 2 2 2 2 2 2 3 3 3 3
LRU 3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 4 2 2 2
f f f f f f f

2 0
2 0
2 1
2 1
2 0
2 1
2 1
2 1
2 0
2 1
2 1
2 1

RELOJ 0
3 0
3 0
3 0
5 0
5 0
5 0
5 1
5 0
5 0
5 1
5 1

0 0 0
1 0
1 0
1 0
4 0
4 0
3 0
3 0
3 0
3 0

f f f f f f
1
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 79
(c) McGraw-Hill / Interamericana
9.6.6 Memoria virtual en el Pentium

Admite segmentación pura (compatible con el 80286), paginación y


segmentación paginada
Segmentación. Se carga un selector en un rtro. de segmento (CS,
de código; DS, de datos; SS, de pila; ES, extra). 14 bits del selector
especifican un elemento de una de las 2 tablas de descriptores de
segmentos, que contienen una dirección base (32 bits) y el límite de la
capacidad del segmento (20bits, que indican nº de Bytes o de
páginas). El desciptor se carga en un rtro. de la MMU. A la direcc. base
se le suma el desplazamiento del selector, formandose la dirección
lineal.
En el caso de segmentación pura, la dirección lineal es la dirección
física. Si se usa paginación esa dirección se considera estructurada
en 3 campos.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 80


(c) McGraw-Hill / Interamericana
9.6.6 Memoria virtual en el Pentium

Campos de la dirección lineal en el caso de segmentación


pura:
DIR (10 bits) especifica un elemento del índice de páginas
(1024x32)
PAG (10 bits) especifica un elemento de la tabla de páginas
(1024x32) que contiene (20 bits) el marco de página al que
se accede
Desplazamiento (12 bits), posición relativa dentro del
marco.

La MMU almacena los valores DIR-PAG más recientemente


usados

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 81


(c) McGraw-Hill / Interamericana
9.6 Memoria virtual en el Pentium

dirección lógica
Rtro. XS desplaz. dirección lineal
32
+ DIR PAG DESPL. 12
selector
dirección física
Rtro. en MMU
14
Rtro. CR3 10 c
20

32 10

20

descriptor 32

Tabla de Directorio Tablas de (4GB,


segmentos de páginas páginas 1Mpág.)

Programa Segmentación Paginación Memoria


principal
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 82
(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

El SO administra los periféricos (unidades de disco,


cinta magnética, etc., y dispositivos de
entrada/salida), con los siguientes objetivos básicos:
Posibilitar que los recursos citados puedan ser
compartidos eficientemente por distintos
procesos. Para ello suele utilizarse la técnica de
dispositivos de entrada/salida virtuales, y
Hacer lo más transparente posible al usuario las
características particulares del hardware que
utiliza. Para ello el sistema operativo suele
disponer de módulos de gestión de
entradas/salidas, y de gestión y administración de
archivos

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 83


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Si se utiliza un periférico desde un programa-máquina, las


instrucciones correspondientes tienen que codificarse de acuerdo con
las características concretas del periférico. El SO permite trabajar con
los dispositivos de una forma abstracta (independientemente de las
características de los dispositivos). Ejemplo en C:
numero = read (nombrearchivo , zona , numB) ;
El SO incluye gestores o manejadores de periféricos, que son
rutinas de E/S encargadas de controlar los dispositivos (o tipo de
dispositivos). Estos gestores son los únicos que deberán tener en
cuenta las peculiaridades concretas de los dispositivos.
La rutina de entrada/salida realiza las comprobaciones necesarias
sobre la operación que se va a realizar, y hace la petición de servicio
al gestor del periférico correspondiente, que será el que efectúe la
operación.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 84


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Las operaciones de E/S se entienden mejor utilizando un


modelo conceptual por capas
Programa de usuario
Peticiones de E/S Peticiones satisfechas

Software independiente del dispositivo


Peticiones de E/S Peticiones satisfechas

Organización física
Peticiones de E/S Peticiones satisfechas

Controlador/gestor software del dispositivo


Peticiones de E/S Peticiones satisfechas

Hardware
(Controlador hardware y dispositivo de E/S)

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 85


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Nivel de procesos de aplicaciones. Corresponde a los procesos de


aplicaciones que tienen operaciones de E/S. Se hace una llamada al
SO que lanza a ejecución el gestor del periférico. El SO puede
gestionar un dispositivo de E/S de una de las tres formas siguientes:
Dispositivos asignados. Consiste en asignar ciertos dispositivos (un
teclado, una pantalla o una impresora; por ejemplo) a un usuario o
proceso durante la duración del trabajo.
Dispositivos compartidos. Es como se asignan los dispositivos que
pueden compartirse concurrentemente por varios procesos
(discos), y
Dispositivos virtuales (“spooler”). Se consigue que dispositivos en
principio asignables (impresora, por ejemplo) puedan compartirse,
optimizandose el rendimiento del sistema. Es el caso de una
impresora de alta velocidad, a compartir por distintos usuarios.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 86


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Nivel de software de E/S independiente del dispositivo


En este nivel se incluyen funciones de E/S comunes a todos los
dispositivos (abrir, leer, escribir, cerrar) En UNIX y Windows NT
los dispositivos se utilizar como archivos especiales. Tipos de
cometidos:
A partir de la denominación simbólica del archivo se localizan
las tablas que contienen los atributos del dispositivo
(dirección del controlador, dirección del sector, etc.)
Protección de datos (contraseña de accesos, y derechos de
acceso: leer/leer-escribir, etc.).
Asignación y liberación de dispositivos dedicados
Informes de errores, etc.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 87


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Nivel de organización física


Este nivel tiene en cuenta las características específicas de
cada tipo de periférico.
Funciones de alto nivel del periférico (organización RAID,
etc.).
Almacenamiento intermedio. Ejemplo:
Cache de disco: Una vez localizado el cilindro se puede
leer el cilindro completo a la velocidad de rotación del
disco, y su contenido almacenarlo en la caché de
disco, de forma que si el programa del usuario ordena
la lectura sucesiva de sectores de un mismo cilindro no
se tendrán que consumir tiempos adicionales de
latencia para acceder a los distintos sectores.
Convierte referencias lógicas a archivos y registros en
direcciones físicas

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 88


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Otra técnica, también basada en la idea de reducir al máximo los


accesos físicos al disco, se denomina disco RAM. Sencillamente
consiste en llevar a memoria un conjunto de bloques ("clusters")
del disco, mayor cuanto mayor sea la capacidad de la memoria
principal, y los procesos en lugar de intercambiar la información
con el disco físico lo hacen con su imagen en memoria principal.
Cuando acaban las operaciones con el disco (se cierra el
archivo), se actualiza el disco físico. Este procedimiento se puede
gestionar en forma similar a la memoria virtual. Podemos hablar
aquí también de periférico virtual, en el sentido de que en la
memoria principal tenemos un disco virtual (en realidad sólo
una parte de él).

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 89


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Nivel de gestión software de dispositivo hardware


Planificación y control
Generación de las instrucciones concretas para
interactuar con el hardware
Atención de interrupciones

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 90


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Ejemplo de planificación, gestión de una cola de accesos a pista.


Alternativas:
Algoritmo FCFS: 67 45 69 50 72 42 5 60 10
Algoritmo SSF: 67 69 60 45 42 50 72 10 5
Algoritmo ascensor: 67 69 72 60 50 45 42 10 5
Algoritmo FCFS Algoritmo SSF Algoritmo del
0 0
ascensor 0 0
1 0 0 1
2 0 0 2
3 0 0 3
4 0 0 4
5 1 1 5
6 1 1 6
7 0 0 7
8 0 0 8
9 0 0 9
10 1 1 10
11 1 1 11
12 0 0 12
13 1 1 13
14 0 0 14
15 0 0 15
16 0 0 16
17 0 0 17
18 0 0 18
19 0 0 19
20 0 0 20
21 1 1 21
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 91
(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Ejemplo de generación de las instrucciones concretas


para el controlador físico. En un servidor de archivos
(disco), al presentarse al gestor correspondiente una
operación de leer un sector, el gestor debe
comprobar si el disco está arrancado (y sino
arrancarlo), posicionar el brazo en el cilindro
correspondiente, inicializar el DMA, transmitir el
marco de página de información, etc. En realidad los
gestores de periféricos son los únicos programas que
deben tener en cuenta las peculiaridades concretas
de los dispositivos y generar las instrucciones que
éstos entienden.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 92


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Atención de interrupciones
Cuando un proceso tiene una E/S, se inicia la operación, pasa
al estado de bloqueado, y espera hasta que acabe la
operación de E/S. En la mayoría de los dispositivos de E/S las
operaciones de lectura y escritura se inician y finalizan por
medio de interrupciones. Cuando se produce la interrupción
final, un proceso debe cambiar en la tabla de procesos el
estado del proceso que ha finalizado la operación de E/S de
bloqueado a preparado. Los manipuladores de interrupciones
son pequeños procedimientos que gestionan y lanzan a
ejecución los programas correspondientes del nivel inmediato
superior.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 93


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Nivel de dispositivos hardware


Incluye los elementos físicos (controladores DMA,
procesadores de E/S, tarjetas, chips, etc.) que realmente
realizan las operaciones de E/S. Interactúan con el resto del
computador a través de:
Puertos de control
Puertos de estado
Puertos de entrada
Puertos de salida
Los gestores software dan las órdenes escribiendo en puertos
de control; y detectan la situación del dispositivo leyendo en el
puerto de estado.
Los puertos pueden estar diseñedos de forma combinada
(puerto de estado/control)
20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 94
(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Modelo de E/S del UNIX Concha Programa de usuario

Llamadas al sistema

Sistema de archivos

Cache de bloques

Gestores de dispositivos

Hardware

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 95


(c) McGraw-Hill / Interamericana
9.7 Gestión de entradas/salidas

Programa Programa Programa


Modelo de E/S de POSIX Win32 OS/2
Windows NT
Interfaz del sistema

Servicios del sistema

Cache de
E/S
archivos

Sistema de
archivos

Controladores de dispositivos
Capa de abstracción
del hardware

Hardware

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 96


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

Para almacenar información, físicamente se dispone


de dispositivos a los que se accede por direcciones
físicas. Para acceder a un sector de disco, p.e., es
necesario indicar:

(número de unidad)/(superficie)/(pista)/(sector)

El SO posibilita que el usuario no tenga que utilizar


direcciones físicas, introduciendo los conceptos de
archivo y directorio. Esto posibilita aislar al usuario
de los problemas físicos de almacenamiento.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 97


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

El concepto de archivo posibilita aislar al usuario de los


problemas físicos de almacenamiento. En efecto, cuando el
usuario desee referirse a un conjunto de información del mismo
tipo como una unidad de almacenamiento, no tiene nada más
que crear un archivo dándole el nombre que considere oportuno.
Los archivos se conciben como estructuras con las siguientes
peculiaridades:
Deben ser capaces de contener grandes
cantidades de información
Su información debe permanecer y sobrevivir a
los procesos que la generan o utilizan, y
Distintos procesos deben poder acceder a la
información a la información del archivo
20-nov-01
concurrentemente.
C.9 S.O. "Introducción a los Computadores" A.Prieto 98
(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

Cada archivo usualmente contiene su nombre (dado


arbitrariamente por el usuario siguiendo unas normas
preestablecidas), atributos, y los datos.
Los atributos pueden incluir cuestiones tales como fecha y hora
de creación, fecha y hora de la última actualización, bits de
protección (sólo lectura, o lectura y escritura), contraseña de
acceso, número de bytes por registro, capacidad máxima del
archivo, y capacidad actualmente ocupada.
Los datos se almacenan en el dispositivo de memoria masiva en
forma de bloques.

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 99


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

El dispositivo más usado para almacenamiento de


archivos es el disco. Como la unidad física de
almacenamiento es el bloque, estos pueden grabarse
de diversas formas:

Contigua: se almacenen los bloques unos detrás de


otros. Produce fragmentación
Lista encadenada
Lista de enlaces
Nudos de índices

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 100


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

lista encadenada: los bloques se almacenan en "cluster" no


necesariamente consecutivos, encadenándose un bloque con
otro por medio de un puntero. Se accede al archivo conociendo
la dirección del "cluster" inicial. Con este sistema no hay
fragmentación; pero, sin embargo, presenta el problema de que
para acceder a un bloque concreto es necesario acceder
secuencialmente, desaprovechándose la facilidad de acceso
directo a bloque de los discos.
Bloques físicos:
direcciones física del siguiente bloque lógico
A01E A01B A013 AO1F A012 A017

Bloque Bloque Bloque Bloque Bloque Bloque


lógico lógico lógico lógico lógico lógico
0 1 2 3 4 5

puntero puntero puntero puntero puntero puntero


AO1B AO13 A01F AO12 AO17 A010

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 101


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

lista de enlaces: Cada disco dispone


de una tabla con tantos elementos

Direcciones físicas del siguiente bloque lógico


como bloques físicos, la posición de A010

cada elemento se corresponde A011

biunivocamente con cada bloque, y


A012 A017
A013 A01F
contiene el puntero del lugar donde A014

se encuentra el siguiente bloque del A015

archivo. Cuando se abre un archivo, A016


A017 A01D
el sistema de archivos carga en la A018
memoria principal la lista de enlaces, A019

pudiéndose obtener rápidamente las A01A

direcciones (usualmente 3 bytes) de


A01B A013
A01C
los bloques consecutivos del archivo. A01D
A01E A01B
A01F A012

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 102


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

El MS-DOS utiliza el sistema de lista de enlaces, por medio de


una FAT (Tabla de localización de archivos).
En su versión FAT16 sirve para discos de hasta 2 Gbytes
(bloque -cluster- de 32KB), cada dirección de bloque se da
con 2 bytes. Como cada elemento de la FAT corresponde a
un bloque, se puede grabar en él información alternativa al
puntero; por ejemplo indicar si el bloque está deteriorado
(H'FFF7, en MS-DOS), si está libre (H'0000 y por tanto
disponible para su uso, o si es el último del archivo (H'FFFF).
En la versión FAT32 (última versión de Winds’95 y Wins’98),
sirve para discos de hasta 1TB/2TB, y cluster menores
(2KB/4KB, ⇒mejor aprovechamiento del disco). Cada
elemento de la FAT tiene 32 bits (29 indican el nº de
cluster)

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 103


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

i-nodos: Corresponde a la forma de gestionar los archivos por el sistema


operativo UNIX.
Cada archivo tiene asociado un Posiciones de los bloques físicos

nudo de índices (i-nodo): Atributos


pequeña tabla de tamaño fijo
conteniendo los atributos del
archivo y las direcciones de un nº
determinado de los primeros
bloque del archivo. Los 3 últimos
elementos de la tabla indican las
siguientes direc-ciones de los
bloques del archivo, pero de forma
indi-recta: con simple indirección,
doble indirección y triple indi-
rección, respectivamente

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 104


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

Los directorios son conjuntos de archivos agrupados siguiendo


algún criterio arbitrariamente elegido: directorio del usuario que
lo crea, directorio de cartas, directorio de facturas, etc. La
estructura global del sistema de archivos suele organizarse en
forma de árbol en el que los nodos interiores son directorios o
archivos y los nodos exteriores son archivos. De un directorio
pueden depender archivos u otros directorios (también
denominados subdirectorios).
Un directorio se gestiona con una tabla-índice que contiene un
elemento por cada archivo o directorio dependiente de él. Cada
elemento está formado por el nombre del archivo dado por el
usuario e información adicional. La información adicional sobre
el archivo puede estar constituida por los atributos del archivo y
el bloque donde comienza el archivo, caso del MS-DOS

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 105


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

En MS-DOS la información correspondiente a cada


archivo que contiene el directorio es:

atributo bloque de comienzo

Nombre del fichero extensión No usados Hora Fecha Tamaño


(8 Bytes) (3 Bytes) (10 Bytes) (2 B) (2 B) (2 B) (4 Bytes)

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 106


(c) McGraw-Hill / Interamericana
9.8 Gestión de archivos

En UNIX los elementos del directorio son muy sencillos,


contienen sólo el número de i-nodo (2 bytes) y el nombre del
archivo (14 bytes) ya que los atributos del archivo y direcciones
para acceso a los datos del mismo se encuentran en el i-nodo

Número de i-nodo

Nombre del fichero


(2 B) (14 Bytes)

20-nov-01 C.9 S.O. "Introducción a los Computadores" A.Prieto 107


(c) McGraw-Hill / Interamericana

Das könnte Ihnen auch gefallen