Download Control de Proceso

Document related concepts

Tabla de asignación de archivos wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Sistema operativo wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

BIOS wikipedia , lookup

Transcript
título
¡Unidad 3 software del
sistema operativo!
1
• El sistema operativo desempeña un
papel vital que permite que los
usuarios interactúen con un sistema
computacional, tales como
administrar dispositivos, administrar
memoria, compartir recursos y
controlar los procesos.
2
Las Capas de Software
• Los sistemas de software están
compuestos de múltiples capas.
• En la ciencia de la computación, los
principios subyacentes a dichos
beneficios se conocen como
encapsulación y abstracción.
3
Encapsulación y Abstracción
• La Encapsulación significa que cada
capa necesita una cantidad limitada de
conocimiento para hacer su tarea, y
ninguna otra capa tiene acceso a esa
información.
4
• En el mundo del software, la encapsulación
significa que el programa de procesador de
palabras no necesita saber cómo controlar
las unidades de disco para abrir o guardar
los archivos; hay capas de software por
debajo que manejan esos detalles.
5
• Al existir abstracciones bien definidas en
cada capa, una implementación puede ser
reemplazada por otra sin afectar las capas
superiores e inferiores.
6
Capas de Software
Scripts o Macros del usuario
Interfaz del Usuario
Aplicación
Bibliotecas de Ejecución (Run-time)
Interfaz de Programas de Aplicación
Sistema Operativo
Núcleo (Kernel)
Controladores de los Dispositivos (Drivers)
BIOS
Hardware
Tabla 1 Capas del software
7
El Hardware,
• Es la capa más baja de la computadora:
los componentes físicos que lo
constituyen. En realidad hay varias capas
dentro del hardware, ya que la
computadora está hecha de tableros de
circuitos, los tableros contienen múltiples
chips, los chips están compuestos de
varios circuitos, y los circuitos están
compuestos de transistores
8
El BIOS,
• Basic Input/Output System (Sistema
Básico de Entrada/Salida), es la capa más
fundamental del software. Esta capa
trabaja directamente con las señales que
controlan los componentes del hardware.
La mayor parte de su trabajo se lleva a
cabo cuando se prende la computadora.
9
Controladores de los Dispositivos
• (Drivers) Son los programas que ayudan
al sistema operativo a comunicarse con
los dispositivos de modelos específicos.
Para agregar un dispositivo nuevo al
hardware es necesario que esté instalado
el controlador del dispositivo en el disco
duro
10
• El controlador del dispositivo de un disco
duro, por ejemplo, sabe cuantas pistas
tiene el disco y los comandos que debe
enviar a la unidad de disco para que el
brazo se mueva a una pista específica
para escribir o leer datos..
11
El núcleo
• Es el corazón del sistema operativo y
desempeña las funciones cruciales para
que todo se mantenga operando.
Administra la memoria, programa la
secuencia de las tareas, y maneja los
diferentes tipos de interrupciones que
pueden ocurrir.
12
El núcleo
• El núcleo debe permanecer siempre en la
memoria RAM y debido a su naturaleza,
debe correr sin algunos de los mecanismos
que protegen contra instrucciones
erróneas o accesos ilegales de memoria
13
Sistema operativo
• La capa restante del sistema operativo
es mucho más grande que el núcleo.
Esta capa lleva a cabo todas las demás
funciones que un sistema operativo
debe realizar. Por ejemplo, incluye un
sistema de archivos para administrar las
carpetas (folders) y los archivos en un
14
La Interfaz del Programa
de Aplicación, o API
• Es la capa mediante la cual los programas
del usuario (aplicaciones) se comunican
con el sistema operativo. El sistema
operativo es responsable de estar al tanto
de qué programas están usando qué
partes de memoria en un momento dado.
15
La Interfaz del Programa
de Aplicación, o API
• Para la administración de la memoria, el
sistema operativo define una
abstracción conocida como llamada API.
El diseñador de la aplicación tiene que
saber cual llamada API usar para pedir
memoria adicional
16
Las Bibliotecas de Ejecución
• (Run-time) son colecciones de rutinas de
software de las que dependen los
programas de aplicación. En un
programación C para abrir un archivo y
leer datos, puedes hacer uso de las
funciones integradas fopen y fscanf. Las
funciones son llamadas de una biblioteca
de rutinas de entrada y salida llamadas
stdio.
17
La capa de Interfaz del
Usuario
• La capa de Interfaz del Usuario es
responsable de la comunicación entre la
aplicación y el usuario. Típicamente es una
interfaz de usuario gráfico (GUI)
compuesta de botones y menús
desplegables.
18
scripts o macros
• Muchas aplicaciones permiten a los
usuarios crear scripts o macros. Estas son
rutinas que utilizan el conjunto de
comandos de la aplicación para realizar
una tarea determinada. Los scripts y
macros permiten a los usuarios
automatizar las secuencias de acciones
que llevan a cabo con frecuencia
19
scripts o macros
• Los scripts están localizados en la capa
superior a la de la jerarquía de aplicación
ya que están construidos por comandos
de la capa de la aplicación.
20
Bios
• El sistema BIOS desempeña tres grandes
funciones: inicializa el equipo de
cómputo cuando se prende la
computadora, carga el sistema operativo
y provee el soporte básico para los
dispositivos como el teclado, el ratón y
los puertos seriales
21
Bios
• El sistema BIOS siempre está presente,
pero solo es visible cuando se prende la
computadora. Después del inicio, el
sistema operativo toma el control.
22
• Al prender la computadora no hay sistema
operativo en la memoria. La memoria RAM
está vacía. El sistema BIOS debe residir en
otro tipo de memoria para llevar a cabo su
función. El BIOS reside en un chip del la
memoria ROM (memoria de sólo lectura)
en la tarjeta principal
23
• Al encender la computadora, el
procesador automáticamente ejecuta las
instrucciones del ROM. Lo primero que
hace el BIOS es copiarse del ROM al RAM.
A partir de ese momento, le dice al
procesador que tome todas sus
instrucciones de la RAM.
24
• Otro tipo de memoria que el BIOS utiliza es
la memoria CMOS. El CMOS Semiconductor
de Óxido de Metal Complementario) es una
tecnología de chip que utiliza muy poca
energía. En la tarjeta principal se incluye
una cantidad pequeña de memoria CMOS,
por lo general 64 bytes, para almacenar los
parámetros de configuración de BIOS que
controlan el equipo de cómputo.
25
Ahora puedes ver lo importante que es que
el CMOS consuma poca energía. El mayor
inconveniente de la tecnología CMOS es
que es más lento que el DRAM regular. Sin
embargo, esto no es tan importante si la
memoria CMOS solamente almacena la
configuración de parámetros BIOS, ya que
el contenido sólo se utiliza en el arranque
de la computadora.
26
• Al encender la computadora, el BIOS inicia
su ejecución con el examen POST ("PowerOn Self Test" o Examen de Encendido).
Primero, el BIOS habilita la tarjeta de
video (la pantalla brilla) y se despliega
información básica así como el tipo de
tarjeta de video instalada, el nombre del
fabricante del BIOS y la versión del BIOS.
27
• Después determina la cantidad de DRAM
instalado en el sistema y puede hacer un
examen de memoria. Este examen
depende de un parámetro en la
configuración del BIOS. (En los sistemas
de mucha memoria, se puede desactivar
el examen de memoria para producir un
encendido más rápido.
28
• La configuración de la memoria y los
resultados de los exámenes se
desplegarán en la pantalla. El BIOS verifica
cuales tarjetas de expansión y
adaptadores están presentes y los
inicializa.
29
• Para concluir la secuencia POST, el BIOS
despliega la información de la
configuración del sistema, así como el tipo
de procesador instalado, la información de
la memoria caché, los tipos de unidades de
disco, las direcciones de los puertos
seriales y paralelos y la lista de otras
tarjetas de expansión detectadas.
30
• Una vez que se finaliza la secuencia POST,
el siguiente trabajo del BIOS es cargar el
programa que a su vez cargará al sistema
operativo. Para hacer esto es necesario
que BIOS conozca suficiente sobre las
unidades de disco para poder leer un
grupo de datos llamados Registro de
Inicio Maestro (Master Boot Register), o
MBR.
31
• De manera convencional el MBR se
encuentra en la primera pista del disco. El
programa MBR carga al sistema operativo
y lo empieza a operar
32
• Para encontrar el sistema operativo, el
BIOS sigue un orden de búsqueda.
Empieza buscando en la unidad A, si el
disco no contiene el MBR, busca en la
unidad de disco B. Si no tiene éxito, busca
el MBR en la unidad de disco C, la cual
normalmente es el disco duro principal. Y
así continua hasta encontrarlo.
33
Modificando la
Configuración del BIOS
• Para modificar la configuración del
BIOS, es necesario entrar al programa
de instalación del BIOS durante la
secuencia de inicio. Esto se hace
oprimiendo una tecla o una
combinación de teclas, tal como F2 o
ALT+CTRL+ESC.
34
Modificando la
Configuración del BIOS
• La nueva configuración se almacena en la
memoria CMOS para que esté disponible
la siguiente vez que se prenda la máquina.
Al modificar la configuración del BIOS se
debe hacer con mucho cuidado ya que
una configuración incorrecta puede
causar que la computadora ya no
funcione.
35
Control de Proceso
• Otra tarea del sistema operativo es estar
al tanto de todos los procesos que tratan
de ejecutarse en un momento dado,
asegurando de que cada proceso tenga
oportunidad de ejecutarse
continuamente. Un proceso es una
instancia de un programa que se está
ejecutando.
36
Control de Proceso
• El proceso incluye un conjunto de páginas
de memoria, un conjunto de descriptores
de archivos abiertos (si es el caso de que el
proceso haga entradas/salidas), un
identificador de proceso y algunas cosas
más. El núcleo del sistema operativo
mantiene una lista de cada proceso que se
está ejecutando en el sistema.
37
Control de Proceso
• Esto incluye todos los programas que el
usuario está ejecutando, aparte de
varios programas que implementan
partes del sistema operativo fuera del
núcleo, tal como el soporte a
impresoras y a la red.
38
Control de Proceso
• Cada proceso se puede encontrar en
cualquiera de los siguientes estados:
ejecutando, ejecutable o bloqueado.
Solamente se puede ejecutar un proceso a
la vez; muchos pueden ser ejecutables. Un
proceso bloqueado es un proceso que se
encuentra esperando a que ocurra algún
evento.
39
Control de Proceso
• Por ejemplo, la cola de impresión está
bloqueada la mayor parte del tiempo;
solo se convierte en ejecutable cuando
un usuario selecciona el comando
Imprimir, el cual activa el proceso.
40
Control de Proceso
• En una computadora con sistema
operativo Windows puedes ver la lista de
tareas y procesos que se están ejecutando
al invocar al Administrador de Tareas (Task
Manager). (En Windows, una tarea es una
aplicación que el usuario ejecuta y
aparece en la barra de tareas. Una tarea
se lleva a cabo por medio de uno o más
procesos.).
41
Control de Proceso
• En una computadora con sistema operativo
UNIX, los comandos ps y top despliegan la
información sobre los procesos.
• El núcleo del sistema operativo mantiene
una cola (queue), también conocida como
cola de ejecución, o lista de espera de
procesos ejecutables. Para dar la impresión
de que todos los procesos corren
simultáneamente, utiliza multitarea
prioritaria
42
Control de Proceso
• Las interrupciones del reloj le permiten al
núcleo la oportunidad de revisar la cola y
ver si se le debe dar oportunidad de
ejecutar algún otro proceso. En caso que
sí, el estado del proceso que corría en ese
momento se baja del estado ejecutando a
ejecutable; se anota el progreso de su
ejecución y los contenidos de sus registros
se almacenan para que se pueda
continuar en un futuro.
43
Control de Proceso
• Los procesos bloqueados también generan
este tipo de interrupciones, pero la
respuesta a la pregunta anterior siempre
es un sí. Después, otro proceso de la cola
se selecciona para ejecutarse. Si el núcleo
cambia de procesos con suficiente
frecuencia, ante los ojos del usuario
parece como que todos los procesos se
están ejecutando al mismo tiempo
44
Control de Proceso
• El hecho de cambiar entre un proceso y
otro requiere de un intercambio de
contexto (context switch), el cual toma
tiempo. Para llevar a cabo un intercambio
de contexto, el procesador debe limpiar la
secuencia de instrucciones que está
ejecutando, almacenar sus contenidos,
cargar una nueva tabla de página, etc
45
Control de Proceso
• Los sistemas operativos modernos
ejecutan procesos ligeros, llamados
hilos (threads), que tienen el mismo
espacio para la dirección y comparten
las mismas descripciones de archivos
46
3.2 Administración y Configuración de
Dispositivos
• Otra función del sistema operativo es
administrar los dispositivos de entrada y
salida que están instalados en la
computadora. Para tener control del
equipo de cómputo a este nivel se
requiere de la interacción entre el núcleo
del sistema operativo, los controladores
de los dispositivos y el BIOS
47
Interrupciones
• El manejo de las interrupciones es una de
las tareas más importantes del núcleo
(kernel) del sistema operativo. Una
interrupción le señala al procesador que
un evento ha ocurrido y que requiere de
atención inmediata. A menudo las
interrupciones están asociadas con una
operación de entrada/salida.
48
Interrupciones
• El núcleo identifica lo que causó la
interrupción y responde de manera
apropiada. Debe actuar con rapidez.
Debe administrar cada interrupción en
menos de una milésima de segundo para
evitar la pérdida de información debido a
la siguiente interrupción.
49
• A continuación se explica cómo responde
a una interrupción de teclado; lo cual
ocurre cada vez que oprimes una tecla.
Antes de que oprimas una tecla el
procesador está ocupado ejecutando
algún otro programa.
50
• En ese momento, teclas "http". Al oprimir
la letra "h", el teclado le trasmite un byte
de datos a la interfaz PS/2 del teclado en
la tarjeta principal. La interfaz interrumpe
al procesador para pasarle el byte de
datos al controlador del dispositivo. Esto
se debe hacer rápidamente antes de que
oprimas la letra "t" para que no se pierda
la información de la siguiente letra que se
teclea.
51
• La interfaz del teclado le manda al
procesador una señal llamada IRQ
(interrupt request) o petición de
interrupción. Cuando el procesador recibe
la señal, detiene la ejecución del programa
de aplicación (en nuestro caso un editor de
página de Web), y toma nota de la
dirección de la última instrucción que se
ejecutó.
52
• Enseguida, se va a la dirección del
administrador de interrupciones del
teclado, y comienza la ejecución de las
instrucciones que encuentra allí. Debido a
que el registro del procesador contiene los
datos del programa que el usuario estaba
manipulando antes, el administrador de
las interrupciones debe almacenar los
contenidos de ese registro antes de poder
usarlo.
53
• Una vez que se almacenaron los registros,
está libre para examinar el estado de la
interfaz del teclado y aceptar el byte de
datos de entrada. Coloca el byte en un
área de almacenamiento que el
controlador de teclado revisará en su
siguiente corrida, probablemente en el
siguiente milisegundo
54
• Luego, el administrador de interrupciones
restituye el contenido de los registros
previamente almacenados y le transfiere
el control a la tarea que se estaba
ejecutando anteriormente (en este caso la
aplicación de edición de página de Web), y
continúa su ejecución partiendo del lugar
en el que se quedó al ocurrir la
interrupción.
55
Prioridad de Interrupciones e Interrupciones
Anidadas
• El procesador asigna prioridades a los
diferentes tipos de interrupciones. Los
dispositivos de baja velocidad, como el
teclado, tienen baja prioridad. Los
dispositivos de alta velocidad como el
disco SCSI tienen prioridad alta ya que
para funcionar de manera óptima
requieren de una respuesta rápida.
56
• El administrador de interrupciones solo
permite que una interrupción sea
interrumpida por una de mayor prioridad.
57
Trampas y Fallas
• Una trampa (trap) es un evento similar a
una interrupción. La diferencia es que la
trampa es provocada por la ejecución de
instrucciones del procesador mientras que
la interrupción la provoca una señal
externa.
58
Trampas y Fallas
• Un ejemplo es la división entre cero. Si un
programa de usuario trata de dividir un
número entre cero, los resultados no
tienen sentido y la ejecución no puede
continuar de manera segura. De manera
similar al manejo de la interrupción, el
procesador se "traba”.
59
Trampas y Fallas
• El administrador de trampas puede
imprimir un mensaje de error y terminar
el programa del usuario, o puede
responder de otra manera, tal como forzar
a que el resultado de la instrucción de la
división sea 0 permitiendo que el
programa continúe ejecutándose
60
• Un tercer tipo de evento se conoce como
falla (fault). Una falla ocurre cuando se le
pide al equipo de cómputo que haga algo
que no puede hacer, tal como acceder
una localización de memoria inexistente.
(Los programadores del lenguaje C que
utilizan apuntadores probablemente vean
este tipo de falla de "memoria
inexistente" al depurar su código.).
61
3.2.2 Atributos del Hardware
• Cada dispositivo debe tener su controlador
en el sistema operativo para administrar los
comandos, la transferencia de datos, y las
condiciones de error que ocurren. Cada
sistema operativo especifica la interfaz que
debe utilizar el controlador de un dispositivo.
Esto significa que cada dispositivo particular
debe tener un controlador para el sistema
operativo en el que se va a utilizar, para que
funcione adecuadamente.
• Los controladores pueden estar incluidos
en los archivos de distribución del
sistema operativo o pueden ser incluidos
por el fabricante del dispositivo. Cuando
sale al mercado un sistema operativo
como Windows, se prueban e incluyen
muchos de los dispositivos (impresoras,
módems, escáneres) populares
63
• Es una buena idea consultar en el sitio
de Internet de la compañía para
verificar si existe una versión actualizada
del controlador.
64
Memoria Virtual
• Una de las tareas más importantes
del núcleo (kernel) del sistema
operativo es la administración de la
memoria del sistema.
• Los sistemas operativos modernos,
así como Windows y Linux, manejan
la memoria virtual, la cual aumenta
la flexibilidad de los programas.
65
• En los sistemas operativos antiguos,
todos los programas se ejecutaban en
espacio de direcciones reales, ya que no
había espacio de direcciones virtuales.
• Relocalización de la memoria.
66
Memoria Virtual
• En un sistema de memoria virtual, cada
programa se ejecuta en su propio
espacio de dirección. De ese modo,
cuando un programa se carga en
memoria, no es necesario relocalizar. Un
espacio de dirección virtual puede ser
más grande o más pequeño que la
memoria física del procesador.
67
Memoria Virtual
• Para que funcione este esquema, se
requiere del soporte del equipo de
cómputo para la memoria virtual.
Primero, la memoria se divide en partes
llamadas páginas. Una página es la
unidad más pequeña de memoria que se
le puede asignar a un programa.
68
Memoria Virtual
• En las plataformas de Pentium, una
página es de 4KB. En segundo lugar, el
procesador debe tener la habilidad de
convertir una dirección virtual en una real
69
• Los procesadores que soportan memoria
virtual, tal como Pentium, pueden
ejecutarse en dos diferentes modos. En
modo real, las direcciones hacen
referencia a las posiciones físicas de la
RAM. Solamente el núcleo puede correr
en modo real.
70
• En el modo virtual, cada dirección se
convierte a una posición física de
memoria por medio de una tabla de
páginas. La tabla de páginas le asigna su
dirección real en RAM a cada página en
el espacio de dirección virtual.
71
• Cuando el programa del usuario está en
modo virtual, siempre se hace la
traducción de direcciones. Toda
referencia de memoria se traduce. Esto
sucede muy rápidamente debido a que la
traducción tiene lugar en el chip del
procesador.
72
• Usando el esquema de memoria virtual,
cada programa tiene su tabla de páginas
y el núcleo lo maneja. Además, la
memoria física asignada al programa no
tiene que ser contigua.
73
• Con un poco de ayuda del hardware,
podemos llevar este esquema un paso
más adelante y separar por completo a la
memoria virtual de la RAM. Digamos que
no deseamos cargar el programa entero al
RAM al mismo tiempo, y cargamos solo
unas cuantas páginas.
74
• Los circuitos de traducción revisan la tabla
de página y se encuentran con un
marcador "no está en RAM" y se genera
una falla de página (page fault). Esta es un
tipo de interrupción. El procesador detiene
la ejecución del programa del usuario y le
pasa el control al núcleo del sistema
operativo.
75
• Cada vez que el proceso hace referencia a
una página que se encuentra en disco, la
página se mueve a la memoria RAM.
Cuando el proceso no ha hecho referencia
a una página por algún tiempo, esta se
puede pasar al disco.
76
• Una desventaja de utilizar disco duro para
la memoria virtual, es que mantiene al
disco duro tan ocupado que se puede
retrasar el acceso a otros archivos.
77
Compartir Archivos e Impresoras
• En una red, los archivos también se
pueden compartir entre usuarios.
Algunos archivos deben de ser privados;
sin acceso para los demás usuarios.
• Las impresoras se comparten entre los
programas de aplicación, entre usuarios
y entre computadoras.
78
• Cuando se va a imprimir un archivo, se
manda a la parte del sistema operativo
que mantiene la cola de las peticiones de
impresión llamada servidor de
impresión. El servidor procesa las
peticiones una por una.
79
• Al llegar la petición, se almacena en el
disco. El proceso es conocido como
gestión de la cola de impresión (spooling).
"Spool" por Operación Simultánea de
Periférico en Línea, Simultaneous
Peripheral Operation Online, en inglés.
80
Organización de Archivos
• Uno de los principales usos de las
computadoras es para almacenar y
obtener información. La información
está almacenada en uno o más
"archivos", los cuales a su vez están
organizados en "carpetas".
81
Organización de Archivos
• El sistema de archivos de Microsoft
Windows utiliza cuatro clases de
entidades: archivos, carpetas,
unidades de disco (drives), y accesos
directos (shortcuts).
82
Organización de archivos en el sistema
operativo Windows
83
Archivos
• Cada archivo contiene datos. A un archivo
asociado con una aplicación en particular,
tal como Microsoft Word, Excel o
PowerPoint, se le denomina documento.
Cada archivo tiene un nombre. En
Windows, los nombres de archivos
pueden extenderse hasta 255 caracteres y
pueden contener letras, números y
caracteres especiales incluyendo espacios
84
Archivos
• Aunque Windows permite el uso de letras
mayúsculas y minúsculas en el nombre de
un archivo, la distinción se ignora por el
sistema de documentos. Entonces, si creas
un archivo llamado Amigos, podrás
accederlo como amigos o AMIGOS o
AmIgOs. Otros sistemas operativos, como
Unix/Linux, son sensibles a las letras
mayúsculas.
85
• Cada archivo tiene un conjunto de
propiedades asociadas. el tipo de archivo,
el cual indica a Windows qué aplicación
debe usarse para abrirlo. el tamaño del
archivo, el día y hora en que se creó, y la
fecha y hora de la última modificación.
86
• Puedes ver las propiedades de un archivo
haciendo clic con el botón derecho del
ratón sobre el icono del archivo y
seleccionar Propiedades del menú que
aparece.
87
Carpetas
• Los documentos se almacenan en
carpetas. Las carpetas tienen nombre y
propiedades y se encuentran dentro de
otra carpeta llamada directorio padre.
Esto proporciona al sistema de archivos
una estructura jerárquica, como un árbol
genealógico. De esto proviene el término
"padre”. El más alto en la jerarquía de
carpetas se llama carpeta raíz.
88
Unidades de Disco (Drives)
• Los archivos se encuentran almacenados
en una unidad de disco (drive) de la
computadora. Una computadora puede
tener muchas unidades de disco: unidad
A, unidad C, unidad D, unidad E, etc
89
Rutas de Acceso (Paths)
• Una ruta de acceso contiene el nombre
de una unidad de disco y una secuencia
de nombres de carpetas, separadas por
diagonales inversas seguido por, si nos
referimos a un documento, el nombre del
documento mismo.
C:\Dave\1998\ventas.xls.
90
• La ruta de acceso hacia el
directorio raíz en esta unidad se
escribe como C:\.
91
Accesos Directos (Shortcuts)
• Un acceso directo (shortcut) representa
otra forma de llegar a un archivo. Los
accesos directos tienen nombre y se
ubican dentro de carpetas, igual que los
archivos. Pero un acceso directo no
contiene datos. En lugar de ello, la
característica del acceso directo es que
especifica la ruta de acceso hacia un
documento.
92
• A este archivo se le llama destino
(target) del acceso directo. El destino
puede estar en cualquier parte, aún en
una unidad de disco diferente al acceso
directo. Un acceso directo sólo refiere
hacia el destino; no es una copia de éste.
Así, cuando abres un acceso directo y
editas su contenido, estarás editando el
"archivo destino".
93
Nombres y Tipos de Archivos
.txt
.doc
.htm
.xls
.gif
.jpg
.wav
.exe
.com
.drv
.bat
Archivo de texto
Documento de Microsoft Word
Documento HTML (HyperText Markup Language)
Hoja de cálculo de Microsoft Excel
Imagen GIF (Graphic Interchange Format)
Imagen JPEG (Joint Photographic Experts Group)
Archivo de sonido
Archivo ejecutable (binary machine code)
Archivo de comandos ejecutable de MS-DOS
Controlador (para un dispositivo periférico).
Archivo por lotes (batch) para intérprete de comandos DOS
94
Tabla de Asignación de Archivos
(FAT) y el Sistema de Archivos NT
95
• Los discos están divididos en pistas (tracks)
y sectores.
96
• Los sectores están compuestos por una
cantidad fija de bytes, generalmente
512 bytes. Para almacenar un archivo,
se le asignan uno o más sectores del
disco. Si el archivo solamente tiene una
línea o dos de texto, el archivo cabe en
una fracción del sector. En dicho caso, el
resto del sector se queda sin usar
97
• A la parte del sector que no se utiliza la
llamaremos espacio vacío (slack space).
Un archivo demasiado grande, con
millones de bytes, probablemente no
pueda ser almacenado en una sola pista.
Tal archivo requerirá miles de sectores en
varias pistas (no se requiere que sean
pistas contiguas)
98
• Debido a que por lo general existen
cientos o miles de archivos en un disco y
cada uno de ellos tiene asignado uno o
más sectores, es necesario llevar una
organización de archivos.
99
• Debido a que los sectores son pequeños,
los sistemas computacionales modernos
los agrupan en clusters y hacen lectura y
escritura a un cluster entero a la vez. Un
cluster es la cantidad más pequeña de
espacio que cualquier archivo puede
ocupar en un disco
100
• Un cluster contiene 4, 8, 16, 32 o 64
sectores adyacentes (el número debe ser
una potencia de 2). El tamaño de cluster
depende de la capacidad del disco,
mientras más grande sea el disco, más
grande será el tamaño del cluster.
101
• Se reserva una pequeña parte del disco a
la Tabla de Asignación de Archivos (File
Allocation Table -FAT), la cual contiene un
registro para cada cluster del disco. Por lo
tanto, el FAT es el “mapa” del disco. A
cada cluster que forma parte de un
archivo se le asigna el número del
siguiente cluster de dicho archivo.
102
• Esta asignación se la proporciona la tabla
FAT. De esta manera, todos los clusters
que integran un archivo están
encadenados. Si se conoce la dirección
del primer cluster del archivo, se pueden
encontrar todos los clusters siguientes de
la cadena. La tabla FAT le asigna un
carácter especial al último cluster
indicando que es el último en la cadena.
103
FAT16
• La tabla FAT del sistema operativo MSDOS y de las primeras versiones de
Windows usaba 16 bits para cada
registro, lo cual permitía 2 16 ó 65,536
clusters. Este esquema se conoce como
FAT16.
104
FAT16
• Al crecer la capacidad de los discos
duros, surgió el siguiente problema: la
tabla FAT se hizo muy pequeña como
para acomodar a todos los clusters
disponibles y solo permitía particiones
de máximo 2 GB en disco duro.
105
FAT16
• El siguiente cálculo muestra cómo el
límite de la partición de 2GB se deriva:
512 (29) bytes por sector * 64 (26)
sectores por cluster * 216 clusters en una
FAT 16 partición = 231 bytes = 2GB).
106
FAT16
• Además, se desperdiciaba mucho espacio
en disco con los archivos pequeños que
tienen más espacio vacío.
107
• Para solucionar el problema de los discos
duros con capacidad mayor a 2GB que
utilizan la tabla FAT16 se puede dividir el
disco en unidades de disco lógicos tales
como C, D, y E, cada uno con su propia
tabla FAT.
108
• Esta solución funciona, pero el usuario se
ve forzado a almacenar sus archivos en
diferentes unidades de disco lógicos. Otra
cosa, si una unidad de disco se satura,
ningún archivo de dicha unidad puede
crecer, aún cuando exista espacio libre en
otra partición del disco.
109
FAT32
• Para resolver los problemas mencionados
anteriormente, Windows 9x/2000/XP
utiliza un sistema de archivos FAT32. En
este sistema, se usan 32 bits (4 bytes) por
entrada, pero los primeros 4 bits están
reservados. Por lo tanto, tiene un total de
2(32-4) = 228 = 268435456 clusters.
110
FAT32
• En un sistema de archivos FAT32, se
pueden usar clusters más pequeños que
los usados en los clusters FAT16. Esto
permite una asignación de espacios más
eficiente en el drive FAT32. FAT32 tiene
capacidad para soportar un disco duro de
2 terabytes.
111
Sistema de Archivos NT
• Una mejora a los sistemas de archivo
FAT es el Sistema de Archivos NTFS
(New Technology File System) utilizado
en Windows 2000/NT/XP. En el NTFS, el
tamaño del cluster es variable,
dependiendo del tamaño de los discos
lógicos.
112
Sistema de Archivos NT
• El tamaño del cluster se determina
automáticamente por la utilería de
Formato NTFS, por lo tanto, ofrece cierto
nivel de flexibilidad. Esta flexibilidad no
está disponible en el FAT16 ni en el FAT32.
Estas características permiten una mejor
asignación de espacio en disco.
113
• El NTFS mantiene la consistencia de datos
usando journaling, manteniendo un
registro de cada operación de E/S que
modifique un sistema de archivos dentro
de un disco lógico. Si el sistema falla, la
estructura del directorio de archivos puede
recuperarse, basada en la historia de las
operaciones de E/S desarrolladas en el
sistema de archivos
114
• Otra característica del NTFS sobre
Windows 2000/XP es el Sistema de
Archivos Cifrados (Encrypted Files System
-EFS). El EFS permite que los datos sean
cifrados (encrypted) conforme se vayan
guardando en el disco.
115
• El NTFS también soporta el control de
acceso de datos y privilegios de
propiedad, para restringir el acceso sin
autorización a los datos, en un ambiente
multiusuario.
116
NTFS versus FAT
NTFS
• Windows XP •
• Windows
•
2000
•
Sistema Operativo
• Windows NT •
•
Tamaño Máximo
del Volumen*
Archivos por
Volumen*
Tamaño Máximo
del Archivo*
FAT32
FAT16
Windows XP
• Todas las versiones de
Windows 2000
Microsoft Windows
Windows 98
• DOS
Windows ME
Windows 95 OEM Service
Release 2 (OSR2)
2 TB
32 GB
2 GB
~ 4 billones
~ 4 millones
~ 64,000
2 TB
4 GB
2 GB
117
Now you know EVERYTHING!
118