You are on page 1of 36

APUNTES DE SISTEMAS OPERATIVOS

APUNTES DE SISTEMAS OPERATIVOS


1. INTRODUCCIN A LOS SISTEMAS OPERATIVOS
1.1. Qu es un Sistema Operativo?
Un sistema operativo (SO) es el software bsico de una computadora
que provee una interfaz entre el resto de programas del computador,
los dispositivos hardware y el usuario.
Las funciones bsicas del Sistema Operativo son: administrar los
recursos de la mquina, coordinar el hardware y organizar archivos y
directorios en dispositivos de almacenamiento.
Los Sistemas Operativos ms utilizados son Windows, Linux, Mac y
Unix.
1.2. Definicin de Sistema Operativo
El sistema operativo es el programa (o software) ms importante de
un computador. Para que funcionen los otros programas, cada
computador de uso general debe tener un sistema operativo. Los
sistemas operativos realizan tareas bsicas, tales como
reconocimiento de la conexin del teclado, enviar la informacin a la
pantalla, no perder de vista archivos y directorios en el disco, y
controlar los dispositivos perifricos tales como impresoras, escner,
etc.
En sistemas grandes, el sistema operativo tiene incluso mayor
responsabilidad y poder, es como un polica de trfico, se asegura de
que los programas y usuarios que estn funcionando al mismo
tiempo no interfieran entre ellos. El sistema operativo tambin es
responsable de la seguridad, asegurndose de que los usuarios no
autorizados no tengan acceso al sistema.
1.3. Clasificacin de los Sistemas Operativos
Los sistemas operativos pueden ser clasificados de la siguiente

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

forma:
Multiusuario: permite que dos o ms usuarios utilicen sus
programas al mismo tiempo. Algunos sistemas operativos
permiten a centenares o millares de usuarios al mismo
tiempo.
Multiprocesador: soporta el abrir un mismo programa en ms
de una CPU o procesador.
Multitarea: permite que varios programas se ejecuten al
mismo tiempo.
Multitramo: permite que diversas partes de un solo programa
funcionen al mismo tiempo.
Tiempo Real: Responde a las entradas inmediatamente.
1.4. Cmo funciona un Sistema Operativo
Los sistemas operativos proporcionan una plataforma de software
encima de la cual otros programas, llamados aplicaciones, puedan
funcionar. Las aplicaciones se programan para que funcionen encima
de un sistema operativo particular, por tanto, la eleccin del sistema
operativo determina en gran medida las aplicaciones que puedes
utilizar.
1.5. Cmo se utiliza un Sistema Operativo
Un usuario normalmente interacta con el sistema operativo a travs
de un sistema de comandos. Por ejemplo, el sistema operativo Linux
contiene comandos como copiar (cp) y renombrar (mv) archivos. Los
comandos son aceptados y ejecutados por el interprete de la lnea de
comandos. Las interfaces grficas (GUI [Graphics User Interfase] o
WYSIWYG [What You See Is What You Get]) permiten que se utilice
los comandos sealando y pinchando en objetos que aparecen en la
pantalla por medio del mouse.
1.6. Ejemplos de Sistema Operativos
A continuacin detallamos algunos ejemplos de sistemas operativos:

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

Familia Windows
Windows 95
Windows 98
Windows ME
Windows NT
Windows 2000
Windows 2000 server
Windows XP
Windows Server 2003
Windows CE
Windows Mobile
Windows XP 64 bits
Windows Vista (Longhorn)
Familia Macintosh
Mac OS 7
Mac OS 8
Mac OS 9
Mac OS X
Familia UNIX
AIX
GNU/Linux
HP-UX
Minix
System V
Solaris
Free-BSD
1.7. Kernel - Ncleo
El ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es un
software que constituye la parte ms importante del sistema

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

operativo.1 Es el principal responsable de facilitar a los distintos


programas acceso seguro al hardware de la computadora o en forma
bsica, es el encargado de gestionar recursos, a travs de servicios de
llamada al sistema. Como hay muchos programas y el acceso al
hardware es limitado, tambin se encarga de decidir qu programa
podr hacer uso de un dispositivo de hardware y durante cunto
tiempo, lo que se conoce como multiplexado. Acceder al hardware
directamente puede ser realmente complejo, por lo que los ncleos
suelen implementar una serie de abstracciones del hardware. Esto
permite esconder la complejidad, y proporciona una interfaz limpia y
uniforme al hardware subyacente, lo que facilita su uso al
programador.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

2. PROCESOS
2.1. Introduccin a los Procesos.
Dentro de las operaciones ms bsicas y la vez ms complejas de
nuestra PC encontramos los procesos. Estos nos permitirn entrar al
mundo que se despert en nuestra computadora. Siempre que le
pidamos a nuestra computadora que haga algo, los procesos asumirn
el trabajo y de esta manera el microprocesador dar ejecucin al plan
que realice el sistema operativo a travs de los procesos.
2.2. Qu es un Proceso
Un proceso es un concepto manejado por el sistema operativo que
consiste en el conjunto formado por:
Las instrucciones de un programa destinadas a ser ejecutadas
por el microprocesador.
Su estado de ejecucin en un momento dado, esto es, los
valores de los registros de la CPU para dicho programa.
La memoria de trabajo, es decir, la memoria que ha reservado
y sus contenidos.
Otra informacin que permite al sistema operativo su
planificacin.
Esta definicin vara ligeramente en el caso de sistemas operativos
multihilo, donde un proceso consta de uno o ms hilos, la memoria
de trabajo (compartida por todos los hilos) y la informacin de
planificacin. Cada hilo consta de instrucciones y estado de
ejecucin.
Los procesos son creados y destruidos por el sistema operativo, as
como tambin ste se debe hacer cargo de la comunicacin entre
procesos, pero lo hace a peticin de otros procesos. El mecanismo
por el cual un proceso crea otro proceso se denomina bifurcacin
(fork). Los nuevos procesos son independientes y no comparten
memoria (es decir, informacin) con el proceso que los ha creado.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

En los sistemas operativos multihilo es posible crear tanto hilos


como procesos. La diferencia estriba en que un proceso solamente
puede crear hilos para s mismo y en que dichos hilos comparten toda
la memoria reservada para el proceso.
2.3. Estados de un Proceso
El principal trabajo del procesador es ejecutar las instrucciones de
mquina que se encuentran en memoria principal. Estas instrucciones
se encuentran en forma de programas. Para que un programa pueda
ser ejecutado, el sistema operativo crea un nuevo proceso, y el
procesador ejecuta una tras otra las instrucciones del mismo.
En un entorno de multiprogramacin, el procesador intercalar la
ejecucin de instrucciones de varios programas que se encuentran en
memoria. El sistema operativo es el responsable de determinar las
pautas de intercalado y asignacin de recursos a cada proceso.
2.4. Modelo de cinco estados
Los cinco estados de este modelo son los siguientes:
Ejecucin: el proceso est actualmente en ejecucin.
Listo: el proceso est listo para ser ejecutado, slo est
esperando que el planificador as lo disponga.
Bloqueado: el proceso no puede ejecutar hasta que no se
produzca cierto suceso, como una operacin de
Entrada/Salida.
Nuevo: El proceso recin fue creado y todava no fue
admitido por el sistema operativo. En general los procesos
que se encuentran en este estado todava no fueron cargados
en la memoria principal.
Terminado: El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque termin o por algn fallo, como un
error de proteccin, aritmtico, etc.
En este modelo los estados Bloqueado y Listo tienen ambos una cola

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

de espera. Cuando un nuevo proceso es admitido por el sistema


operativo, se sita en la cola de listos. A falta de un esquema de
prioridades sta puede ser una cola FIFO. Los procesos suspendidos
son mantenidos en una cola de bloqueados. Cuando se da un suceso
se pasan a la cola de listos los procesos que esperaban por ese suceso.
Si existe un esquema con diferentes niveles de prioridad de procesos
es conveniente mantener varias colas de procesos listos, una para
cada nivel de prioridad, lo que ayuda a determinar cul es el proceso
que ms conviene ejecutar a continuacin.
2.5. Problema de la Cena de los Filsofos
El problema de los filsofos cenando es un problema clsico de las
ciencias de la computacin propuesto por Edsger Dijkstra 1 en 1965
para representar el problema de la sincronizacin de procesos en un
sistema operativo. Cabe aclarar que la interpretacin est basada en
pensadores chinos, quienes coman con dos palillos, donde es ms
lgico que se necesite el del comensal que se siente al lado para
poder comer.
Enunciado del problema
Cinco filsofos se sientan alrededor de una mesa y pasan su vida
cenando y pensando. Cada filsofo tiene un plato de fideos y un
tenedor a la izquierda de su plato. Para comer los fideos son
necesarios dos tenedores y cada filsofo slo puede tomar los que
estn a su izquierda y derecha. Si cualquier filsofo toma un tenedor
y el otro est ocupado, se quedar esperando, con el tenedor en la
mano, hasta que pueda tomar el otro tenedor, para luego empezar a
comer.
Si dos filsofos adyacentes intentan tomar el mismo tenedor a una
1 Edsger Wybe Dijkstra (11 de mayo, 1930 - 6 de agosto, 2002) fue un
cientfico de la computacin de origen neerlands. Entre sus contribuciones a la
informtica est el algoritmo de caminos mnimos (Algoritmo de Dijkstra).
Recibi el Premio Turing en 1972.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

vez, se produce una condicin de carrera: ambos compiten por tomar


el mismo tenedor, y uno de ellos se queda sin comer.
Si todos los filsofos toman el tenedor que est a su derecha al
mismo tiempo, entonces todos se quedarn esperando eternamente,
porque alguien debe liberar el tenedor que les falta. Nadie lo har
porque todos se encuentran en la misma situacin (esperando que
alguno deje sus tenedores). Entonces los filsofos se morirn de
hambre. Este bloqueo mutuo se denomina interbloqueo o deadlock.
El problema consiste en encontrar un algoritmo que permita que los
filsofos nunca se mueran de hambre.
Algunas posibles soluciones
Por turno cclico
Se empieza por un filsofo, que si quiere puede comer y despus
pasa su turno al de la derecha. Cada filsofo slo puede comer en su
turno. Problema: si el nmero de filsofos es muy alto, uno puede
morir de hambre antes de su turno.
Varios turnos
Se establecen varios turnos. Para hacerlo ms claro supongamos que
cada filsofo que puede comer (es su turno) tiene una ficha que
despus pasa a la derecha. Si por ejemplo hay 7 comensales podemos
poner 3 fichas en posiciones alternas (entre dos de las fichas
quedaran dos filsofos).
Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos se
pasan las fichas (y los turnos) a la derecha.
En base al tiempo que suelen tardar los filsofos en comer y en
volver a tener hambre, el tiempo de turno establecido puede hacer
que sea peor solucin que la anterior. Si el tiempo de turno se
aproxima al tiempo medio que tarda un filsofo en comer esta
variante da muy buenos resultados. Si adems el tiempo medio de
comer es similar al tiempo medio en volver a tener hambre la
solucin se aproxima al ptimo.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

Colas de tenedores
Cuando un filsofo quiere comer se pone en la cola de los dos
tenedores que necesita. Cuando un tenedor est libre lo toma. Cuando
toma los dos tenedores, come y deja libre los tenedores.
Visto desde el otro lado, cada tenedor slo puede tener dos filsofos
en cola, siempre los mismos.
Esto crea el problema comentado de que si todos quieren comer a la
vez y todos empiezan tomando el tenedor de su derecha se bloquea el
sistema (deadlock).
Resolucin de conflictos en colas de tenedores
Cada vez que un filsofo tiene un tenedor espera un tiempo aleatorio
para conseguir el segundo tenedor. Si en ese tiempo no queda libre el
segundo tenedor, suelta el que tiene y vuelve a ponerse en cola para
sus dos tenedores.
Si un filsofo A suelta un tenedor (porque ha comido o porque ha
esperado demasiado tiempo con el tenedor en la mano) pero todava
desea comer, vuelve a ponerse en cola para ese tenedor. Si el filsofo
adyacente B est ya en esa cola de tenedor (tiene hambre) lo toma y
si no vuelve a cogerlo A.
Es importante que el tiempo de espera sea aleatorio o se mantendr el
bloqueo del sistema.
El portero del comedor
Se indica a los filsofos que abandonen la mesa cuando no tengan
hambre y que no regresen a ella hasta que vuelvan a estar
hambrientos (cada filsofo siempre se sienta en la misma silla). La
misin del portero es controlar el nmero de filsofos en la sala,
limitando su nmero a n-1, pues si hay n-1 comensales seguro que al
menos uno puede comer con los dos tenedores.
2.6. Problema del Barbero Durmiente
En ciencias de la computacin, el problema del barbero durmiente es
un problema de sincronizacin. El problema consiste en una barbera

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

10

en la que trabaja un barbero que tiene un nico silln de barbero y


varias sillas para esperar. Cuando no hay clientes, el barbero se sienta
en una silla y se duerme. Cuando llega un nuevo cliente, ste o bien
despierta al barbero o si el barbero est afeitando a otro cliente
se sienta en una silla o se va si todas las sillas estn ocupadas por
clientes esperando. El problema consiste en realizar la actividad del
barbero sin que ocurran condiciones de carrera. La solucin implica
el uso de semforos y objetos de exclusin mutua para proteger la
seccin crtica.
Un semforo es una variable protegida (o tipo abstracto de datos) que
constituye el mtodo clsico para restringir o permitir el acceso a
recursos compartidos (por ejemplo, un recurso de almacenamiento)
en un entorno de multiprocesamiento. Fueron inventados por Edsger
Dijkstra y se usaron por primera vez en el sistema operativo
THEOS2.
En electrnica y en programacin concurrente, se conoce como
condicin de carrera al error que se produce en programas o circuitos
lgicos que no se han construido adecuadamente para su ejecucin
simultnea con otros procesos.
2.7. Semforo
Un semforo es una variable especial (o tipo abstracto de datos) que
constituye el mtodo clsico para restringir o permitir el acceso a
recursos compartidos (por ejemplo, un recurso de almacenamiento
del sistema o variables del cdigo fuente) en un entorno de
multiprocesamiento (en el que se ejecutarn varios procesos
concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y
se usaron por primera vez en el sistema operativo THEOS.
2.8. Exclusin Mutua
Los algoritmos de exclusin mutua (comnmente abreviada como
2 Sistema Operativo que comenz como OASIS, para microprocesadores basados
en el procesador Z80. Desarrollado a finales de 1970 por Timothy S. Williams

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

11

mutex por mutual exclusion) se usan en programacin concurrente


para evitar el ingreso a sus secciones crticas por mas de un proceso a
la vez. La seccin crtica es el fragmento de cdigo donde puede
modificarse un recurso compartido.
La mayor parte de estos recursos son las seales, contadores, colas y
otros datos que se emplean en la comunicacin entre el cdigo que se
ejecuta cuando se da servicio a una interrupcin y el cdigo que se
ejecuta el resto del tiempo. Se trata de un problema de vital
importancia porque, si no se toman las precauciones debidas, una
interrupcin puede ocurrir entre dos instrucciones cualesquiera del
cdigo normal y esto puede provocar graves fallos.
La tcnica que se emplea por lo comn para conseguir la exclusin
mutua es inhabilitar las interrupciones durante el conjunto de
instrucciones ms pequeo que impedir la corrupcin de la
estructura compartida (la seccin crtica). Esto impide que el cdigo
de la interrupcin se ejecute en mitad de la seccin crtica.
En un sistema multiprocesador de memoria compartida, se usa la
operacin indivisible test-and-set sobre una bandera, para esperar
hasta que el otro procesador la despeje. La operacin test-and-set
realiza ambas operaciones sin liberar el bus de memoria a otro
procesador. As, cuando el cdigo deja la seccin crtica, se despeja
la bandera. Esto se conoce como spin lock o espera activa.
Algunos sistemas tienen instrucciones multioperacin indivisibles
similares a las anteriormente descritas para manipular las listas
enlazadas que se utilizan para las colas de eventos y otras estructuras
de datos que los sistemas operativos usan comnmente.
La mayora de los mtodos de exclusin mutua clsicos intentan
reducir la latencia y espera activa mediante las colas y cambios de
contexto. Algunos investigadores afirman que las pruebas indican
que estos algoritmos especiales pierden ms tiempo del que ahorran.
A pesar de todo lo dicho, muchas tcnicas de exclusin mutua tienen

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

12

efectos colaterales. Por ejemplo, los semforos permiten


interbloqueos (deadlocks) en los que un proceso obtiene un
semforo, otro proceso obtiene el semforo y ambos se quedan a la
espera de que el otro proceso libere el semforo. Otros efectos
comunes incluyen la Inanicin, en el cual un proceso esencial no se
ejecuta durante el tiempo deseado, y la inversin de prioridades, en el
que una tarea de prioridad elevada espera por otra tarea de menor
prioridad, as como la latencia alta en la que la respuesta a las
interrupciones no es inmediata.
La mayor parte de la investigacin actual en este campo, pretende
eliminar los efectos anteriormente descritos. Si bien no hay un
esquema perfecto conocido, hay un interesante esquema no clsico
de envo de mensajes entre fragmentos de cdigo que, aunque
permite inversiones de prioridad y produce una mayor latencia,
impide los interbloqueos.
2.9. Seccin Crtica
Se denomina seccin crtica, en programacin concurrente, a la
porcin de cdigo de un programa de computador en la cual se
accede a un recurso compartido (estructura de datos o dispositivo)
que no debe ser accedido por ms de un proceso o hilo en ejecucin.
La seccin crtica por lo general termina en un tiempo determinado y
el hilo, proceso o tarea slo tendr que esperar un perodo
determinado de tiempo para entrar. Se necesita un mecanismo de
sincronizacin en la entrada y salida de la seccin crtica para
asegurar la utilizacin en exclusiva del recurso, por ejemplo un
semforo.
El acceso concurrente se controla teniendo cuidado de las variables
que se modifican dentro y fuera de la seccin crtica. La seccin
crtica se utiliza por lo general cuando un programa multihilo
actualiza mltiples variables sin un hilo de ejecucin separado que
lleve los cambios conflictivos a esos datos. Una situacin similar, la

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

13

seccin crtica puede ser utilizada para asegurarse de que un recurso


compartido, por ejemplo, una impresora, puede ser accedida por un
solo proceso a la vez.
La manera en cmo se implementan las secciones puede variar
dependiendo de los diversos sistemas operativos.
Slo un proceso puede estar en una seccin crtica a la vez.
2.10. Hilo de Ejecucin
En sistemas operativos, un hilo de ejecucin, hebra o subproceso es
la unidad de procesamiento ms pequea que puede ser planificada
por un sistema operativo.
La creacin de un nuevo hilo es una caracterstica que permite a una
aplicacin realizar varias tareas a la vez (concurrentemente). Los
distintos hilos de ejecucin comparten una serie de recursos tales
como el espacio de memoria, los archivos abiertos, situacin de
autenticacin, etc. Esta tcnica permite simplificar el diseo de una
aplicacin que debe llevar a cabo distintas funciones
simultneamente.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo
tiempo con otra tarea.
Los hilos de ejecucin que comparten los mismos recursos, sumados
a estos recursos, son en conjunto conocidos como un proceso. El
hecho de que los hilos de ejecucin de un mismo proceso compartan
los recursos hace que cualquiera de estos hilos pueda modificar stos.
Cuando un hilo modifica un dato en la memoria, los otros hilos
acceden a ese dato modificado inmediatamente.
Lo que es propio de cada hilo es el contador de programa, la pila de
ejecucin y el estado de la CPU (incluyendo el valor de los
registros).
El proceso sigue en ejecucin mientras al menos uno de sus hilos de
ejecucin siga activo. Cuando el proceso finaliza, todos sus hilos de
ejecucin tambin han terminado. Asimismo en el momento en el

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

14

que todos los hilos de ejecucin finalizan, el proceso no existe ms y


todos sus recursos son liberados.
Algunos lenguajes de programacin tienen caractersticas de diseo
expresamente creadas para permitir a los programadores lidiar con
hilos de ejecucin (como Java, Delphi, etc.). Otros (la mayora)
desconocen la existencia de hilos de ejecucin y stos deben ser
creados mediante llamadas de biblioteca especiales que dependen del
sistema operativo en el que estos lenguajes estn siendo utilizados
(como es el caso del C, C++ y Python).
Un ejemplo de la utilizacin de hilos es tener un hilo atento a la
interfaz grfica (iconos, botones, ventanas), mientras otro hilo hace
una larga operacin internamente. De esta manera el programa
responde de manera ms gil a la interaccin con el usuario. Tambin
pueden ser utilizados por una aplicacin servidora para dar servicio a
mltiples clientes.
Diferencias Entre Hilos y Procesos
Los hilos se distinguen de los tradicionales procesos en que los
procesos son generalmente independientes, llevan bastante
informacin de estados, e interactan slo a travs de mecanismos de
comunicacin dados por el sistema. Por otra parte, muchos hilos
generalmente comparten otros recursos de forma directa. En muchos
de los sistemas operativos que dan facilidades a los hilos, es ms
rpido cambiar de un hilo a otro dentro del mismo proceso, que
cambiar de un proceso a otro. Este fenmeno se debe a que los hilos
comparten datos y espacios de direcciones, mientras que los
procesos, al ser independientes, no lo hacen. Al cambiar de un
proceso a otro el sistema operativo (mediante el dispatcher) genera lo
que se conoce como overhead, que es tiempo desperdiciado por el
procesador para realizar un cambio de contexto (context switch), en
este caso pasar del estado de ejecucin (running) al estado de espera
(waiting) y colocar el nuevo proceso en ejecucin. En los hilos, como

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

15

pertenecen a un mismo proceso, al realizar un cambio de hilo el


tiempo perdido es casi despreciable.
Funcionalidad de los Hilos
Al igual que los procesos, los hilos poseen un estado de ejecucin y
pueden sincronizarse entre ellos para evitar problemas de
compartimiento de recursos. Generalmente, cada hilo tiene una tarea
especifica y determinada, como forma de aumentar la eficiencia del
uso del procesador.
Estados de un Hilo
Los principales estados de los hilos son: Ejecucin, Listo y
Bloqueado. No tiene sentido asociar estados de suspensin de hilos
ya que es un concepto de proceso. En todo caso, si un proceso est
expulsado de la memoria principal (RAM), todos sus hilos debern
estarlo ya que todos comparten el espacio de direcciones del proceso.
2.11. Planificacin Round-Robin
Round robin es un mtodo para seleccionar todos los elementos en
un grupo de manera equitativa y en un orden racional, normalmente
comenzando por el primer elemento de la lista hasta llegar al ltimo
y empezando de nuevo desde el primer elemento. El nombre del
algoritmo viene del principio de Round-Robin conocido de otros
campos, donde cada persona toma una parte de un algo compartido
en cantidades parejas.
Una forma sencilla de entender el Round-Robin es imaginar una
secuencia para "tomar turnos". En operaciones computacionales, un
mtodo para ejecutar diferentes procesos de manera concurrente,
para la utilizacin equitativa de los recursos del equipo, es limitando
cada proceso a un pequeo perodo (quantum), y luego suspendiendo
este proceso para dar oportunidad a otro proceso y as sucesivamente.
A esto se le denomina comnmente como Planificacin RoundRobin.
Round-Robin es un algoritmo de planificacin de procesos simple de

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

16

implementar, dentro de un sistema operativo se asigna a cada proceso


una porcin de tiempo equitativa y ordenada, tratando a todos los
procesos con la misma prioridad. En Sistemas operativos, la
planificacin Round-Robin da un tiempo mximo de uso de CPU a
cada proceso, pasado el cual es desalojado y retornado al estado de
listo, la lista de procesos se planifica por FIFO, primero llegado,
primero atendido.
2.12. Gestin de Memoria
Se denomina gestin de memoria al acto de gestionar la memoria de
un dispositivo informtico. De forma simplificada se trata de proveer
mecanismos para asignar secciones de memoria a los programas que
las solicitan, y a la vez, liberar las secciones de memoria que ya no se
utilizan para que estn disponibles para otros programas. La gestin
de la memoria principal de un ordenador es una tarea de suma
importancia para el funcionamiento del mismo.
Los sistemas de memoria virtual separan las direcciones de memoria
utilizadas por un proceso de las direcciones fsicas reales,
permitiendo la separacin de procesos e incrementando la cantidad
efectiva de memoria de acceso aleatorio utilizando la paginacin. La
calidad de la gestin de la memoria es crucial para las prestaciones
del sistema.
El recolector de basura es la asignacin y liberacin automtica de
los recursos de memoria para un programa. La implementacin suele
ser a nivel del lenguaje de programacin en contraposicin a la
gestin manual de memoria, que asigna y libera los recursos de
memoria de un ordenador de forma explcita.
2.13. Asignacin de Memoria
La asignacin de memoria consiste en el proceso de asignar memoria
para propsitos espcificos, ya sea en tiempo de compilacin o de
ejecucin. Si es en tiempo de compilacin es esttica, si es en tiempo
de ejecucin es dinmica y si son variables locales a un grupo de

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

17

sentencias se denomina automtica.


Asignacin dinmica de memoria
Es la asignacin de almacenamiento de memoria para utilizacin por
parte de un programa de computador durante el tiempo de ejecucin
de ese programa. Es una manera de distribuir la propiedad de
recursos de memoria limitada entre muchas piezas de cdigo y datos.
Un objeto asignado dinmicamente permanece asignado hasta que es
desasignado explcitamente, o por el programador o por un recolector
de basura; esto es notablemente diferente de la asignacin automtica
de memoria y de la asignacin esttica de memoria (la de las
variables estticas).
Paginacin de memoria
En sistemas operativos de computadoras, los sistemas de paginacin
de memoria dividen los programas en pequeas partes o pginas. Del
mismo modo, la memoria es dividida en trozos del mismo tamao
que las pginas llamados marcos de pgina.
En un momento cualquiera, la memoria se encuentra ocupada con
pginas de diferentes proceso, mientras que algunos marcos estn
disponibles para su uso. El sistema operativo mantiene una lista de
estos ltimos marcos, y una tabla por cada proceso, donde consta en
qu marco se encuentra cada pgina del proceso. De esta forma, las
pginas de un proceso pueden no estar contiguamente ubicadas en
memoria, y pueden intercalarse con las pginas de otros procesos.
2.14. Memoria Virtual
La memoria virtual permite simular una RAM de mayor tamao que
la que se tiene instalada en la PC.
Pero, cmo se ejecuta un programa? Las aplicaciones y sus datos,
para poder ser usados por el procesador, tienen que pasar del disco
duro que es donde se encuentra almacenado todo cuando se apaga el
equipo a la memoria RAM que puede ser accedida de forma directa
por el microprocesador. Surge, por tanto la necesidad de tener la

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

18

mayor cantidad de esta, para poder hacer funcionar de forma correcta


el sistema.
La memoria RAM de una computadora, hace unos aos, era un
elemento muy caro. Si a esto unimos, que no todas las aplicaciones
que se estn ejecutando se usan a la vez, parece necesario un sistema
que controle el uso de la memoria.
Aunque la RAM era cara, los discos duros no lo eran tanto. Se poda
entonces usar el disco duro para simular que tenemos ms memoria.
El procedimiento era sencillo, se pasaba al disco las porciones de
RAM que no se usaban en un determinado momento.
Esta tcnica consigue simular, por tanto, ms memoria, y las
aplicaciones ni se dan cuenta de todo lo que esta ocurriendo por
debajo. En un sistema operativo normal, se llega a simular tener el
doble que sin usarla. Como contrapartida el sistema puede
comportase de manera ms lenta en algunas situaciones.
Esto es debido a que la velocidad de acceso de los datos al disco duro
es miles de veces ms lenta que a la memoria RAM. Si una porcin
de memoria no se encuentra en esta, el sistema necesita tiempo para
leerla y devolverla a la memoria principal ya que este es el nico
lugar donde el procesador puede ejecutarlo.
Como ves la memoria se organiza en niveles. Primero las caches del
microprocesador que se encargan de tener los datos que ms usas
cerca del procesador, despus la memoria RAM, quedando como
ltimo recurso el disco duro. A mayor proximidad al micro, mayor
velocidad, pero la memoria es mucho ms cara.
Por qu es tan importante?
Si nos quedamos sin memoria no podremos ejecutar ms programas
y los que estamos ejecutando tendrn problemas para trabajar con
ms datos. Adems, el uso de memoria virtual puede hacer que tu
equipo funcione ms lento si es necesario ir por datos al disco duro.
Es siempre un compromiso entre la velocidad y la cantidad de datos

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

que el sistema es capaz de procesar.

ING. FERNANDO PAREDES MARCHENA MSC

19

APUNTES DE SISTEMAS OPERATIVOS

20

3. ADMINISTRADOR DE ARCHIVOS
3.1. Sistema de Archivos
Los sistemas de archivos o ficheros (filesystem en ingls), estructuran
la informacin guardada en una unidad de almacenamiento
(normalmente un disco duro de una computadora), que luego ser
representada ya sea textual o grficamente utilizando un gestor de
archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que
permiten el acceso a los datos como una cadena de bloques de un
mismo tamao, a veces llamados sectores, usualmente de 512 bytes
de longitud. El software del sistema de archivos es responsable de la
organizacin de estos sectores en archivos y directorios y mantiene
un registro de qu sectores pertenecen a qu archivos y cules no han
sido utilizados. En la prctica, un sistema de archivos tambin puede
ser utilizado para acceder a datos generados dinmicamente, como
los recibidos a travs de una conexin de red (sin la intervencin de
un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen mtodos para crear,
mover, renombrar y eliminar tanto archivos como directorios, pero
carecen de mtodos para crear, por ejemplo, enlaces adicionales a un
directorio o archivo (enlace duro en Unix) o renombrar enlaces
padres (".." en Unix).
3.2. Organizacin de Directorios
Asociado con cualquier sistema de gestin de archivos o cualquier
conjunto de archivos suele haber un directorio de archivos. El
directorio contiene informacin sobre los archivos, incluyendo
atributos, ubicacin y propietario. El directorio es propiamente un
archivo posedo por el sistema operativo y accesible a travs de
diversas rutinas de gestin de archivos. Aunque parte de la
informacin de los directorios est disponible para los usuarios y
aplicaciones, sta la proporcionan, generalmente de un modo

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

21

indirecto, las rutinas del sistema.


Los usuarios no pueden acceder directamente al directorio, incluso en
modo de slo lectura.
Desde punto de vista del usuario, el directorio ofrece una traduccin
entre los nombres de archivo conocidos por usuarios y por
aplicaciones y los archivos propiamente dichos. Cada entrada incluye
el nombre del archivo. Casi todos los sistemas trabajan con clases
diferentes de archivos y diferentes organizaciones de archivos, por lo
que tambin se incluye esta informacin. Un tipo de informacin
importante sobre cada archivo es aquella relativa a su
almacenamiento, incluyendo su ubicacin y tamao. En los sistemas
compartidos, tambin es importante ofrecer informacin para
controlar el acceso del archivo.
Un usuario ser el propietario del archivo y podr otorgar ciertos
privilegios de acceso a otros usuarios, luego se necesita informacin
para gestionar la utilizacin actual del archivo y guardar un historial
sobre su uso.
Elementos de informacin que se almacena normalmente en el
directorio para cada archivo del sistema:
Informacin bsica
Nombre del archivo: nombre elegido por el creador ( usuario o
programa). Debe ser nico en un directorio especfico.
Tipo de archivo: por ejemplo: texto, binario, mdulo de carga, etc.
Organizacin de archivo: para sistemas que soportan varias
organizaciones.
Informacin de direccin
Volumen: indica el dispositivo donde se almacena el archivo.
Direccin de comienzo: direccin fsica de inicio de la memoria
secundaria (cilindro, pista y nmero de bloque en disco).
Tamao usado: tamao actual del archivo en bytes, palabras o
bloques.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

22

Tamao asignado: tamao mximo del archivo.


Informacin de control de acceso
Propietario: usuario con control sobre el archivo. El propietario
puede otorgar o denegar acceso a otros usuarios y cambiar estos
privilegios.
Informacin de acceso: una versin simple de este elemento incluye
el nombre del usuario y la contrasea para cada usuario autorizado.
Acciones permitidas: controla la lectura, escritura, ejecucin y
transmisin por una red.
Informacin de uso
Fecha de creacin: cundo se aadi el archivo al directorio.
Identidad del creador: normalmente, pero no siempre, el propietario.
Fecha de ltima lectura: fecha de la ltima vez que se ley un
registro.
Identidad del ltimo lector: usuario que hizo la lectura.
Fecha de ltima modificacin: fecha de la ltima actualizacin,
insercin o borrado.
Identidad del ltimo modificador: usuario que hizo la modificacin.
Fecha de la ltima copia de reserva: fecha de la ltima vez que el
archivo fue copiado en otro medio de almacenamiento.
Utilizacin actual: informacin sobre la actividad actual del archivo,
como el (los) proceso(s) que tiene abierto el archivo, si est
bloqueado por un proceso y si el archivo ha sido actualizado en la
memoria principal, pero an no en el disco.
3.3. Estructura
La forma ms simple de estructuracin de un directorio es una lista
de entradas, una para cada archivo, puede representarse con un
simple archivo secuencial, con el nombre del archivo haciendo las
veces de clave, no es adecuada cuando mltiples usuarios comparten
el sistema e incluso para un solo usuario con muchos archivos.
Operaciones que pueden realizarse con un directorio:

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

23

Buscar: cuando un usuario o aplicacin hace referencia a un archivo,


debe buscarse en el directorio la entrada correspondiente al archivo.
Crear archivo: al crear un nuevo archivo, debe aadirse una entrada
al directorio.
Borrar archivo: al borrar un archivo, debe eliminarse una entrada del
directorio.
Enumerar directorio: puede solicitarse todo el directorio o una parte.
Generalmente, esta peticin la hace un usuario y el resultado es una
lista de todos los archivos posedos por dicho usuario, junto a
algunos de los atributos de cada archivo(tipo, informacin de control
de acceso; informacin de uso).
Actualizar directorio: cuando algunos atributos del archivo se
almacenan en el directorio, un cambio en alguno de estos atributos
requiere un cambio en la entrada del directorio correspondiente.
El usuario puede tener muchos tipos de archivos, incluyendo
documentos de texto, archivos grficos, hojas de clculo, etc. El
usuario puede querer tenerlos organizados por proyecto, tipo o de
otra manera conveniente. Si el directorio es una simple lista
secuencial, no ofrecer ayuda alguna en la organizacin de los
archivos y obligar al usuario a tener cuidado de no usar el mismo
nombre para dos tipos diferentes de archivo.
Un mtodo ms potente y flexible, adoptado casi universalmente, es
el directorio jerrquico o estructurado en rbol, eso quiere decir que
existe un directorio maestro que contiene un nmero determinado de
directorios de usuario, cada uno de estos directorios puede tener a su
vez subdirectorios y archivos como entradas. Esto se cumple en
cualquier nivel, es decir en cualquier nivel un directorio puede
constar de entradas para subdirectorios o entradas para archivos.
Designacin
Cada archivo del sistema debe tener un nombre nico para que las
referencias al archivo no sean ambiguas. Por otra parte, proporcionar

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

24

nombres nicos es una carga inaceptable para los usuarios,


especialmente en un sistema compartido.
3.4. Compartimiento de Archivos
En un sistema multiusuario, casi siempre existe la necesidad de
permitir a los usuarios compartir archivos. Se presentan entonces dos
cuestiones: los derechos de acceso y la gestin a los accesos
simultneos.
Derechos de acceso
El sistema de archivos debe ofrecer una herramienta flexible que
permita el compartimento general de archivos entre los usuarios, as
como un conjunto de opciones para poder controlar el acceso a cada
archivo en particular. Generalmente, los usuarios o grupos de
usuarios obtienen ciertos derechos de acceso a cada archivo.
La lista que se presenta a continuacin representa los derechos de
acceso que pueden asignarse a un usuario particular para un archivo
especfico.
Ninguno: el usuario no puede conocer la existencia del
archivo ni acceder al mismo. Para aplicar esta restriccin, no
se permite al usuario leer el directorio de usuario que incluya
al archivo.
Conocimiento: el usuario puede determinar que el archivo
existe y quin es su propietario. El usuario puede solicitar
derechos de acceso adicionales al propietario.
Ejecucin: el usuario puede cargar y ejecutar un programa
pero no puede copiarlo.
Lectura: el usuario puede leer el archivo para cualquier
propsito, incluyendo copia y ejecucin. Hay sistemas que
distinguen entre visualizar y copiar. En el primero, el
contenido del archivo puede mostrarse al usuario, pero no se
lo puede copiar.
Adicin: el usuario puede aadir datos al archivo pero no

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

25

puede modificar o borrar el contenido del mismo.


Actualizacin: el usuario puede modificar, borrar y aadir
datos al archivo. Incluye la escritura del archivo al principio,
la reestructuracin por completo o en parte y la eliminacin
de todos los datos o parte de ellos.
Cambio de proteccin: el usuario puede cambiar los derechos
de acceso otorgados a otros usuarios. En algunos sistemas el
propietario puede otorgar este derecho a los usuarios. Para
frenar el abuso de este mecanismo, el propietario del archivo
especfica que derechos pueden ser cambiados.
Borrado: el usuario puede borrar el archivo del sistema de
archivos.
Estos derechos constituyen una jerarqua, es decir, si un usuario
particular adquiere el derecho de actualizacin para un archivo
determinado, tambin habr adquirido los derechos de:
conocimiento, ejecucin, lectura y adicin.
Un usuario es designado como propietario de un archivo dado,
generalmente es la persona que crea el archivo al principio. El
propietario cuenta con todos los derechos de acceso citados
anteriormente y puede otorgar derechos a los otros.
El propietario puede ofrecer acceso a las siguientes clases de
usuarios:
Usuario especfico: usuarios individuales designados por su
ID de usuario.
Grupos de usuarios: no definidos individualmente. El sistema
debe disponer de algn medio para constatar la militancia de
estos grupos.
Todos: todos los usuarios que tengan acceso al sistema. Estos
sern archivos pblicos.
3.5. Accesos Simultneos
Al otorgar acceso para aadir o actualizar un archivo a ms de un

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

26

usuario, el sistema operativo o el sistema de gestin de archivo debe


hacer cumplir una disciplina. Un mtodo consiste en permitir a los
usuarios bloquear el archivo entero cuando lo actualicen. Un mejor
control es bloquear los registros individuales durante la
actualizacin. Al disear la posibilidad de accesos compartidos ,se
deben abordar aspectos de exclusin mutua e interbloqueo.
3.6. Gestin de Almacenamiento Secundario
La Memoria es el lugar donde se almacenan todos los datos como las
instrucciones, existen dos tipos bsicos de memoria, diferenciados
principalmente por su velocidad:
La Memoria Principal, interna o central: es la que acta con mayor
velocidad y esta ligada directamente a las unidades mas rpidas de la
computadora (unidad de control y unidad aritmetico_logica).
Para que un programa se ejecute debe estar almacenado en la
Memoria Principal; esta se divide en dos zonas: en la de solo lectura
(Memoria RAM) la cual es permanente, y otra en donde se puede
leer y escribir (Memoria ROM) la que es voltil.
A diferencia de la Memoria Principal la Memoria Secundaria,
auxiliar, masiva, externa no es tan veloz pero tiene gran capacidad
para almacenar informacin en dispositivos tales como discos, cintas
magnticas, discos pticos. Frecuentemente los datos y programas se
graban en la Memoria Secundaria, de esta forma, cuando se ejecuta
varias veces un programa o se utilicen repetidamente unos datos, no
es necesario darlos de nuevo a travs del dispositivo de entrada.
En la asignacin de archivos surge la cuestin de qu tipo de
estructura de datos o tabla se usar para guardar constancia de las
secciones asignadas a un archivo?. Esta tabla se conoce como tabla
de asignacin de archivos (FAT File Allocation Table).
3.7. Fragmentacin de la Memoria Secundaria
Con secciones de tamao variable, hay que preocuparse por la
fragmentacin del espacio libre, se pueden utilizar las siguientes

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

27

estrategias:
Primer ajuste (first fit): elegir el primer grupo de bloques sin
usar de tamao suficiente.
Mejor ajuste (best fit): elegir el grupo mas pequeo sin usar
que tenga de tamao suficiente.
Ajuste mas cercano (nearest fit): elegir el grupo sin usar de
tamao suficiente que esta mas cerca al asignado previamente
al archivo para aumentar la cercana.
3.8. Mtodos de asignacin de archivos
Existen tres mtodos de asignacin: el contiguo, encadenado e
indexado.
El contiguo: cuando se crea un archivo se le asigna un nico
conjunto contiguo de bloques, esta es un estrategia de
asignacin previa que emplea secciones de tamao variable.
La tabla de asignacin de archivos necesita solo una entrada
por cada archivo y que muestre el bloque de comienzo y la
longitud del archivo. La asignacin contigua es la mejor para
un archivo secuencial.
La asignacin contigua presenta algunos problemas, como la
fragmentacin externa. Lo que hace difcil encontrar bloques
contiguos de espacio de tamao suficiente, lo que lleva a
ejecutar un algoritmo de compactacin para libera el espacio
adicional en el disco.
La asignacin encadenada: la asignacin se hace con bloques
individuales, cada bloque contendr un puntero al siguiente
bloque de la cadena. La tabla de asignacin de archivos
necesita una sola entrada por cada archivo que muestre el
bloque de comienzo y la longitud del mismo, cualquier
bloque puede aadirse a la cadena. No hay que preocuparse
por la fragmentacin externa porque solo se necesita un
bloque cada vez.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

28

3.9. Gestin del Espacio Libre


Se debe gestionar el espacio que no est asignado a ningn archivo.
Para esto es necesario saber qu bloques estn disponibles, entonces
hace falta una tabla de asignacin e discos. Se utilizan tres tcnicas
de uso comn: las tablas de asignacin de bits, las secciones libres
encadenadas y la indexacin.
Tablas de bits:
Utiliza un vector que contiene un bit por cada bloque del disco. Cada
entrada igual a 0 es un bloque libre, si es un 1 corresponde a un
bloque en uso. Tienen la ventaja de que es fcil encontrar un bloque
libre o un grupo de bloques libres.
La cantidad de memoria requerida para un mapa de bits en bloques
se puede calcular:
3.10. Gestin de archivos en Unix / Linux
Para un kernel Unix todos los archivos son flujos de bytes, cualquier
estructura lgica interna ser especificada por la aplicacin, pero s
est contemplada estructura fsica de los archivos.
Tipos de archivos
Ordinarios: contienen informacin creada por usuarios,
aplicaciones o el sistema operativo.
Directorios: son listas de nombres de archivo y punteros a
nodos-i asociados. Estn organizados jerrquicamente. Son
realmente archivos ordinarios con privilegio especial de
proteccin para que solo el sistema de archivos pueda escribir
en ellos (programas de usuario tienen permiso de lectura).
Especiales: se usan para acceder a dispositivos perifricos
como impresoras, cada dispositivo de E/S tiene asociado un
archivo especial.
Nombrados: pipes (tuberas) con nombre.
Nodos-i
Todos los tipos de archivos son administrados por Unix por medio de

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

29

nodos-i. ste es una estructura de control que contiene informacin


(permisos, atributos, informacin de control, etc.), de un archivo
necesaria para el sistema operativo.
Puede asociarse varios nombres de archivo a un mismo nodo-i, pero
un nodo-i activo se puede asociar con un nico archivo (cada uno es
controlado por un solo nodo-i).
3.11. Nodo-i
Un Nodo-i o INODO es una estructura de datos, o una tabla, que
contiene informacin sobre un archivo.
Cada archivo se identifica por un nmero de inodo. Este nmero es
nico dentro de todo el sistema de archivos.
Dentro de cada inodo existe la siguiente informacin:
Nmero de inodo
Tipo de fichero
Propietario de dicho fichero
Permisos del fichero
Fecha de creacin del mismo
Se puede ver toda esta informacin si se ejecuta un ls -l en cualquier
directorio del sistema.
La tabla con todos los inodos se crea en el arranque del sistema.
El comando find utiliza esta tabla para hacer sus bsquedas.
Ventajas de los nodos-i
Son de tamao fijo y pequeos por lo que pueden permanecer en
memoria principal largos perodos.
Se accede a archivos pequeos de modo directo o indirecto
reduciendo el tiempo de acceso al disco.
El tamao mximo terico de un archivo satisface los requerimientos
de la mayora de las aplicaciones.
3.12. Sistema de Archivos Windows NTFS y FAT
Un sistema de archivos es la estructura subyacente que un equipo usa

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

30

para organizar los datos de un disco duro. Si est instalando un disco


duro nuevo, tiene que realizar las particiones y formatearlo
empleando un sistema de archivos para poder comenzar a almacenar
datos o programas. En Windows, las tres opciones del sistema de
archivos que tiene para elegir son NTFS, FAT32 y la anterior y poco
usada FAT (tambin conocida como FAT16).
NTFS
NTFS es el sistema de archivos preferido para esta versin de
Windows. Tiene muchos beneficios respecto al sistema de archivos
FAT32, entre los que se incluye:
La capacidad de recuperarse a partir de algunos errores relacionados
con el disco automticamente, lo que FAT32 no puede hacer.
Compatibilidad mejorada para discos duros ms grandes.
Mejor seguridad porque puede utilizar permisos y cifrado para
restringir el acceso a archivos especficos para usuarios aprobados.
FAT32
FAT32, y el menos usado FAT, se usan en versiones anteriores de
sistemas operativos de Windows, incluyendo Windows 95, Windows
98 y Windows Millennium Edition. FAT32 no tiene la seguridad que
NTFS proporciona, por lo que si tiene una particin FAT32 o
volumen en el equipo, cualquier usuario que tenga acceso al equipo
puede leer el archivo incluido. FAT32 tambin tiene limitaciones de
tamao. No puede crear una particin FAT32 mayor que 32GB en
esta versin de Windows y no puede almacenan un archivo mayor
que 4GB en una particin FAT32.
La razn principal de utilizar FAT32 es que tiene un equipo que a
veces ejecutar Windows 95, Windows 98 o Windows Millennium
Edition y en otras ocasiones ejecutar esta versin de Windows,
conocida como configuracin de arranque mltiple. Si ste es el caso,
tendr que instalar el sistema operativo anterior en una particin
FAT32 o FAT y asegurarse de que es una particin primaria (una que

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

31

puede alojar un sistema operativo). Las particiones adicionales a las


que tendr acceso cuando use estas versiones anteriores de Windows
tambin estarn formateadas con FAT32. Estas versiones anteriores
de Windows pueden tener acceso a volmenes o particiones NTFS en
una red pero no en el equipo.
3.13. Sistema de Archivos Linux
EXT2
Second extended filesystem o "segundo sistema de archivos
extendido" es un sistema de archivos para el kernel Linux. Fue
diseado originalmente por Rmy Card. La principal desventaja de
ext2 es que no implementa el registro por diario (en ingls
Journaling) que s poseen sus posteriores versiones ext3 y ext4.
Ext2 fue el sistema de ficheros por defecto de las distribuciones de
Linux Red Hat Linux, Fedora Core y Debian. Los lanzamientos de
las nuevas versiones estables, ext3 y ext4, han dezplazado
considerablemente su uso.
El sistema de ficheros tiene una tabla donde se almacenan los inodos. Un i-nodo almacena informacin del archivo (ruta o path,
tamao, ubicacin fsica). En cuanto a la ubicacin, es una referencia
a un sector del disco donde estn todas y cada una de las referencias
a los bloques del archivo fragmentado. Estos bloques son de tamao
especificable cuando se crea el sistema de archivos, desde los 512
bytes hasta los 4 KB, lo cual asegura un buen aprovechamiento del
espacio libre con archivos pequeos.
Los lmites son un mximo de 2 terabytes de archivo, y de 4 para la
particin.
EXT3
Third extended filesystem o "tercer sistema de archivos extendido" es
un sistema de archivos con registro por diario (journaling). Es el
sistema de archivo ms usado en distribuciones Linux, aunque en la
actualidad est siendo remplazado por su sucesor, ext4.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

32

La principal diferencia con ext2 es el registro por diario. Un sistema


de archivos ext3 puede ser montado y usado como un sistema de
archivos ext2. Otra diferencia importante es que ext3 utiliza un rbol
binario balanceado (rbol AVL) e incorpora el asignador de bloques
de disco Orlov3.
EXT4
Fourth extended filesystem o cuarto sistema de archivos
extendido) es un sistema de archivos transaccional (en ingls
journaling), anunciado como una mejora compatible de ext3.
Las principales mejoras son:
Soporte de volmenes de hasta 1024 PB4.
Soporte aadido de extent5.
Menor uso del CPU.
Mejoras en la velocidad de lectura y escritura.
Journaling o registro por diario
Es un mecanismo por el cual un sistema informtico puede
implementar transacciones. Se basa en llevar un journal o registro de
diario en el que se almacena la informacin necesaria para
restablecer los datos afectados por la transaccin en caso de que sta
falle.
El procedimiento es bsicamente el siguiente:
Se bloquean las estructuras de datos afectadas por la
transaccin para que ningn otro proceso pueda modificarlas
mientras dura la transaccin.
Se reserva un recurso para almacenar el journal. Por lo
3 Orlov es un asignador de bloques de disco originario de BSD y que se incluye
en los sistemas de archivos nativos de Linux ext3 y ext4 pues mejora el
rendimento respecto al anterior gestor.
4 Un PetaByte PB es igual a 2 elevado a la 60 (Bytes)
5 An extent is a range of contiguous physical blocks, improving large file
performance and reducing fragmentation.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

33

general suelen ser unos bloques de disco, de modo que si el


sistema se para de forma abrupta (corte elctrico, avera, fallo
del sistema operativo, etc.) el journal siga disponible una vez
reiniciado el sistema.
Se efectan una a una las modificaciones en la estructura de
datos. Para cada una:
Se apunta en el journal como deshacer la modificacin y
se asegura de que esta informacin se escribe fsicamente
en el disco.
Se realiza la modificacin.
Si en cualquier momento se quiere cancelar la transaccin se
deshacen los cambios uno a uno leyndolos y borrndolos del
journal.
Si todo ha ido bien, se borra el journal y se desbloquean las
estructuras de datos afectadas.

3.14. Samba
Samba es una suite de aplicaciones Unix que usa el protocolo SMB
(Server Message Block). Los sistemas operativos Microsoft
Windows y OS/2 utilizan SMB para compartir por red archivos e
impresoras y para realizar tareas asociadas. Gracias al soporte de este
protocolo, Samba permite a las mquinas Unix entrar en el juego,
comunicndose con el mismo protocolo de red que Microsoft
Windows y aparecer como otro sistema Windows en la red (desde la
perspectiva de un cliente Windows). El servidor Samba ofrece los
siguientes servicios:
Compartir uno o varios sistemas de archivos
Compartir uno o varios sistemas de archivos distribuidos
Compartir impresoras instaladas en el servidor entre los
clientes Windows de la red
Ayudar a los clientes permitindoles navegar por la red

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

34

Autentificar a los clientes que ingresan en un dominio


Windows
Proveer o ayudar con un servidor de resolucin de nombres
Windows.
La suite Samba tambin incluye herramientas para los clientes, que
permiten a los usuarios de un sistema Unix acceder a los directorios e
impresoras que los sistemas Windows y servidores Samba comparten
en la red.
Samba es la idea de Andrew Tridgell, quien lidera el equipo de
desarrollo de Samba en 1991. El protocolo desarrollado pas a
llamarse SMB. Unos aos ms tarde, lo liber como su servidor
SMB particular y lo comenz a distribuir por Internet bajo el nombre
de SMB Server. Sin embargo, Andrew no pudo mantener ese
nombre -ste perteneca a un producto de otra compaa-, as que le
renombr Samba.
Samba gira alrededor de un par de demonios Unix que permiten la
comparticin de recursos entre los clientes SMB de una red. Estos
demonios son:
smbd : emonio que permite la comparticin de archivos e impresoras
sobre una red SMB y proporciona autentificacin y autorizacin de
acceso para clientes SMB.
nmbd : Demonio que soporta el servicio de nombres NetBIOS y
WINS, que es una implementacin de Microsoft del servicio de
nombres NetBIOS (NBNS). Este demonio tambin ayuda aadiendo
la posibilidad de navegar por la red.

3.15. Active Directory


El Directorio Activo (Active Directory o AD) es la pieza clave del
sistema operativo "Windows 2003 Server"; sin l muchas de las
funcionalidades finales de este sistema operativo servidor (las
directivas de grupo, las jerarquas de dominio, la instalacin
centralizada de aplicaciones, etc.), no funcionaran.

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

35

Active Directory es el servicio de directorio de una red Windows


2003. Este servicio de directorio es un servicio de red que almacena
informacin acerca de los recursos de la red y permite el acceso de
los usuarios y las aplicaciones a dichos recursos, de forma que se
convierte en un medio de organizar, controlar y administrar
centralizadamente el acceso a los recursos de la red.
El servicio Active Directory proporciona la capacidad de establecer
un nico inicio de sesin y un repositorio central de informacin para
toda su infraestructura.
Una de las ventajas fundamentales de AD es que separa la estructura
lgica de la organizacin (dominios) de la estructura fsica (topologa
de la red). Ello permite independizar la estructuracin de dominios
de la organizacin, de la topologa de la red que interconecta los
sistemas.
3.16. Ethical Hacking
Las computadoras en todo el mundo son susceptibles de ser atacadas
por crackers o hackers capaces de comprometer los sistemas
informticos y robar informacin valiosa, o bien borrar una gran
parte de ella. Esta situacin hace imprescindible conocer si estos
sistemas y redes de datos estn protegidos de cualquier tipo de
intrusiones.
Por tanto el objetivo fundamental del Ethical Hacking (hackeo tico)
es explotar las vulnerabilidades existentes en el sistema de "inters"
valindose de test de intrusin, que verifican y evalan la seguridad
fsica y lgica de los sistemas de informacin, redes de
computadoras, aplicaciones web, bases de datos, servidores, etc. Con
la intencin de ganar acceso y "demostrar" que un sistema es
vulnerable, esta informacin es de gran ayuda a las organizaciones al
momento de tomar las medidas preventivas en contra de posibles
ataques malintencionados.
Dicho lo anterior, el servicio de Ethical Hacking consiste en la

ING. FERNANDO PAREDES MARCHENA MSC

APUNTES DE SISTEMAS OPERATIVOS

36

simulacin de posibles escenarios donde se reproducen ataques de


manera controlada, as como actividades propias de los delincuentes
cibernticos, esta forma de actuar tiene su justificacin en la idea de
que:
"Para atrapar a un intruso, primero debes pensar como intruso"
Para garantizar la seguridad informtica se requiere de un conjunto
de sistemas, mtodos y herramientas destinados a proteger la
informacin, es aqu donde entran los servicios del Ethical Hacking,
la cual es una disciplina de la seguridad informtica que hecha mano
de una gran variedad de mtodos para realizar sus pruebas, estos
mtodos incluyen tcticas de ingeniera social, uso de herramientas
de hacking, uso de Metasploits6 que explotan vulnerabilidades
conocidas, en fin son vlidas todas las tcticas que conlleven a
vulnerar la seguridad y entrar a las reas crticas de las
organizaciones.

6 Metasploit Es un proyecto open source de seguridad informtica que


proporciona informacin acerca de vulnerabilidades de seguridad y ayuda en
evaluaciones de penetracin y en el desarrollo de firmas para sistemas de
deteccin de intrusos.

ING. FERNANDO PAREDES MARCHENA MSC

You might also like