You are on page 1of 27

DESCRICIN DOS SISTEMAS OPERATIVOS

O Sistema Operativo o software (que pode estar formado por mltiples programas) mis
relevante dunha computadora, xa que quen acta de intermediario entre as aplicacins de usuario
e o hardware, posibilitando o manexo dos dispositivos fsicos va programas.
Nas primeiras computadoras non exista un sistema operativo per se, xa que eran mquinas de
propsito especfico que funcionaban de xeito determinista partindo dunha programacin que,
moitas veces, era realizada directamente no nivel fsico. Co tempo, comezando nos anos 1960, a
complexidade das tarefas chegara a facer precisa a emprega de softwares de apoio, que asumiran
as tarefas mis pesadas e rutinarias, liberando aos programas de usuario (ou aos propios
usuarios/programadores) das mesmas. Para o remate da devandita dcada, especialmente coa
aparicin da linguaxe C, o sistema operativo convrtese nunha peza central e inalienable das
computadoras.
En base ao citado anteriormente podemos destacar coma obxectivo fundamental dos sistemas
operativos a xestin e administracin eficiente dos recursos hardware, incluso posibilitando o acceso
concorrente aos mesmos (no caso dos sistemas operativos actuais), de xeito que non haxa conflictos
ou, no caso de se dar, que estes sexan convenientemente manexados.

Servizos Bsicos Ofrecidos polos S.O.


Un sistema operativo moderno tpico pose un ncleo ou kernel que se encarga de presta-los
seus servizos fundamentais, coma son:

Administra e posibilita a comparticin dos recursos bsicos, onde se incle: memoria,


almaceamento secundario (sistemas de ficheiros), redes, hardware, etc.

Administra a execucin dos procesos de usuario.

Acta coma canle interactiva entre os procesos e o usuario.

XESTIN DA MEMORIA PRINCIPAL


A memoria principal un dos principais recursos dunha computadora, polo que a sa
administracin delicada e ten que se realizar de xeito moi coidadoso.
A pesares do crecemento do espazo dispoible nas ltimas dcadas, a memoria principal segue
a ser un recurso caro e escaso (o consumo de memoria medrou par que esta), polo que os
mecanismos de xestin empregados polos sistemas operativos non deixan de evolucionar e de se
adaptar s novas necesidades.
Os primeiros sistemas operativos non dispuan de mecanismos de memoria compartida que
posibilitaran a emprega paralela nin pseudoparalela desta por parte dos procesos de usuario, polo
que centraremos a nosa atencin en aqueles que si son quen de realizar esas accins.

Conceptos Relacionados coa Memoria Principal


A continuacin citaremos algns dos conceptos mis relevantes cando se fala de tratamento de
memoria en computacin:

Espazo de Enderezos: denomnase as ao conxunto de enderezos que identifican a cada


posicin de memoria. Diferncianse tres tipos:
o

Enderezos fsicos: correspondentes co nmero de cela de cada tarxeta RAM


(polo xeral en formato hexadecimal).

Enderezos lxicos: os empregados polos procesos, que son traducidos por unha
compoente do procesador chamada MMU1 (Unidade de Administracin de
Memoria) para obter os seus equivalentes fsicos, e viceversa.

Enderezos Lineares: variantes dos enderezos lxicos dependentes da


arquitectura que se fan precisos nalgns tipos de sistemas.

Memoria Principal: a propia memoria RAM, onde son almaceados os procesos en


execucin (as sas instrucins e datos).

Memoria Virtual: mecanismo auxiliar empregado cando o espazo de memoria principal


non abondo, para o que se aproveita o espazo dispoible en algn dispositivo de
almaceamento secundario (polo xeral un disco duro). Con este fin, o sistema operativo
ten que dispoer dunha ferramenta que realice a conversin entre enderezos de

Memory Management Unit.

memoria principal e os seus correspondentes na memoria virtual. Por exemplo: as


contornas Windows empregan o espazo libre dunha particin para estes fins,
namentres cas contornas GNU/Linux empregan particins especficas chamadas
espazo swap, anda que tamn son quen de realiza-la tarefa de xeito anlogo aos
Windows.

MMU: xa mencionada anteriormente, manexada grazas ao mdulo de xestin de


memoria do sistema operativo.

Estrutura da Memoria Principal


Polo xeral, a memoria particionada polo sistema operativo, de xeito que fica dividida en
zonas segundo a emprega que se vaia facer da mesma ou, mellor dito, segundo de que tipo vaia ser o
proceso almaceado nela.
A maiora de sistemas operativos actuais, coma GNU/Linux, distriben o espazo de memoria en
das zonas:

Zona de Sistema ou de Kernel: onde se executan e almacean a maiora dos procesos do


sistema operativo ou, cando menos, os mis crticos.

Zona de Usuario: onde se executan o resto de procesos, includas as aplicacins de


usuario e outras rutinas do sistema operativo de carcter non tan crtico.

Algns sistemas operativos consideran unha zona compartida ou estendida, na cal si pode
haber procesos de usuario e de sistema, deixando a zona de usuario en exclusiva para os primeiros.

Mecanismos de Xestin de Memoria Tpicos


Os mecanismos de xestin de memoria clasifcanse, polo xeral, dependendo do xeito en que se
asigna a memoria dispoible aos procesos no intre de solicitala, as atopamos:

Asignacin Contigua: se os procesos reciben o espazo de memoria en celas contiguas.

Asignacin Particionada ou Asignacin de Mltiples Particiones: estas tcnicas


consisten na divisin da memoria en unidades, de xeito que sexan estas (e non
obrigadamente bloques continuos de celas) as que se asignen aos procesos para a sa
emprega. Dentro deste tipo ns tratarmo-los mecanismos de paxinacin
segmentacin e segmentacin paxinada.

A continuacin veremos cada unha das tcnicas de asignacin mencionadas en detalle.


3

Asignacin Contigua
Os procesos reciben espazo de memoria contiguo (coma moito empregando zonas separadas
para procesos de kernel e procesos de usuario). De xeito que, cada vez que un proceso abandoa a
memoria queda un oco que pode, ou non, ser aproveitable; dicir, este plantexamente adoece de
fragmentacin externa.
Na seguinte ilustracin vemos un exemplo dun sistema de asignacin de memoria continua que
dispn de 8 KB distribudos en celas de 1 KB cada unha (sen zonas separadas para kernel e usuario).

A nica solucin posible pasa por empregar mecanismos de compactacin que desfragmenten
a memoria en caso de ser imposible a asignacin.
No caso de que o espazo ocupado por un proceso non sexa un mltiplo exacto do tamao de
cada cela de memoria tamn produce fragmentacin interna xa que, neste plantexamento,
imposible que varios procesos compartan a emprega dunha mesma cela. Na seguinte ilustracin
podemos ver un exemplo deste caso sobre un sistema anlogo ao anterior.

Paxinacin
Consistente na divisin dos procesos en unidades de tamao fixo (todas iguais entre si)
chamadas pxinas, e na divisin tamn do espazo de memoria en unidades do mesmo tamao cas
pxinas, chamadas marcos de pxina. As, para cada proceso almacase unha tboa de pxinas na
cal figuran os enderezos de tdolos marcos ocupados polas sas pxinas.
A paxinacin resolve totalmente o problema da fragmentacin externa e reduce notablemente
o problema da fragmentacin interna cuxa intensidade pasar a depender do tamao das pxinas:
ser pois decisin do programador chegar a un compromiso entre tamao das pxinas e nmero das
mesmas (cantas mis pxinas tea que manexar o sistema operativo, menos eficiente ser a xestin
de memoria).

Segmentacin
Esta tcnica consiste en asigna-la memoria aos procesos empregando fragmentos de lonxitude
variable chamados segmentos os cales, polo xeral, faranse coincidir cos distintos mdulos e libraras
empregados polos programas.
Para cada proceso grdase unha tboa de segmentos onde se indica, para cada un dos seus
segmentos a posicin de comezo e o desprazamento (a lonxitude).
A segmentacin resolve o problema da fragmentacin interna pero, polo xeito en que se ten
que segmentar un proceso (en atencin sa estrutura interna, e non de calquera xeito) pode
producir fragmentacin externa. Do mesmo xeito que ocorra no caso da paxinacin, isto pdese
paliar empregando tamaos de segmento o mis pequenos posible, pero iso aumentar o nmero
total de segmentos a xestionar, facendo a administracin de memoria mis pesada.

Segmentacin Paxinada
un enfoque hbrido dos dous anteriores, consistente en dividi-lo espazo de memoria dun
programa en segmentos de lonxitude variable e estes, ao seu tempo, en pxinas de tamao fixo
(existindo os seus correspondentes marcos de pxina na memoria principal. Dese xeito, anda que se
introduce unha pequena posibilidade de fragmentacin interna (polas pxinas) reslvese
completamente o problema de fragmentacin externa ao permitir dividi-los segmentos e asignarlles
ocos de memoria non contiguos.
Por outra banda, e anda que se empreguen tamaos de pxina grandes, esta tcnica supn
unha dobre divisin dos procesos, e porn a xestin tanto dunha tboa de pxinas coma dunha
tboa de segmentos, con tdolos custes de administracin que iso conleva.
Na ilustracin que figura seguinte continuamos a traballar coa nosa computadora con 8 KB de
memoria con celas de 1 KB de tamao, de xeito que cada unha destas contn 4 marcos de 0,25 KB.

XESTIN DE PROCESOS
A Xestin de Procesos compn unha das tarefas centrais dos sistemas operativos actuais, xa
que a practica totalidade dos mesmos son sistemas multiprogramados. Un sistema multiprogramado
aquel que soporta a execucin concorrente (simultnea) ou pseudoparalela (simulando
concorrencia) de mltiples procesos, dicir, a comparticin dun mesmo procesador que, doutro
xeito, requirira execucin secuencial (monoprogramacin).
O problema xurde cando temos en conta que, en realidade, un procesador nunca pode ser
compartido, dicir, que nunca pode darse a situacin de que dous procesos estean a se executar ao
mesmo tempo. As pois, s quedan das sadas:

Sistemas Multiprocesador: o sistema pose varios procesadores, de xeito que cada


proceso exectase nun procesador separado.

Sistemas Monoprocesador con Pseudoparalelismo: o sistema pose un nico


procesador e os procesos reprtense o seu uso a intervalos de tempo moi curtos,
producindo a ilusin de concorrencia.

Procesos
Denantes continuar introducirmo-los conceptos mis relevantes deste punto, coma son:

Proceso: un programa en execucin, xunta coa informacin que precisa e o seu estado.

Fo: unidade procesual, dicir, un bloque de programa que se executa tomando o


control en exclusiva dun procesador. Polo xeral, ao longo deste punto, traballaremos
con procesos dun nico fo, por motivos de simplicidade.

Refacho: tempo que lle leva a un proceso realizar unha determinada tarefa, as falamos
de:
o

Refachos de CPU: cando o proceso precisa realizar unha operacin no


procesador.

Refachos de E/S2: cando o proceso precisa empregar un dispositivo de E/S.

Coma comentamos, os procesos teen un estado, determinado pola sa situacin con respecto
ao resto de procesos en execucin e ao sistema operativo. As, nun sistema tpico, un proceso/fo
pode pasar polos seguintes estados:
2

Entrada/Sada.

En Execucin: un proceso/fo atpase neste estado cando estea a emprega-lo


procesador.

Listo/En Espera: o proceso/fo espera a que o procesador sexa liberado.

Bloqueado: o proceso/fo espera a rematar unha operacin de E/S ou a algn outro


evento.

Novo: cando un proceso acaba de ser creado pero anda non entrou na lista de
executables.

Rematado: cando acaba de sar da lista de executables.

Suspendido: cando extrado forzosamente da CPU e anda lle queda refacho de CPU
pendente de executar.

As pois, a transicin tpica de estados dun proceso a seguinte: de novo pasa a listo. Unha vez
lle asignado o uso da CPU (procesador) pasa a estar en execucin. Eiqu poden ocorrer varias
cousas:

Se o proceso ten tempo de remata-la sa refacho e ten tarefas pendentes de CPU


pasar a listo.

Se o proceso ten tempo de remata-la sa refacho e ten tarefas pendentes de E/S


pasar a bloqueado.

Se o proceso remata a sa execucin completamente, pasar a rematado.

Se o proceso extrado forzosamente da CPU, pasar a suspendido.

Ao feito de extraer un proceso de CPU e poer outro a se executar no seu lugar denomnaselle
cambio de contexto, e conleva un tempo asociado a ter en conta hora de escoller os mecanismos
de xestin de procesos a aplicar.

Planificacin de CPU
Ao mecanismo mediante o cal o sistema operativo decide coma e en que orde os procesos
toman o control da CPU para se executar denomnaselle Planificacin da CPU. Co gaio de posibilitar a
devandita tarefa, os sistemas operativos dispoen dunha ferramenta denominada planificador que
emprega os datos do Bloque de Control de Proceso (BCP), unha estrutura propia dos sistemas
operativos na cal grdase a informacin relativa aos distintos procesos que estean en curso no
sistema.

10

No BCP figura informacin tal e coma:

Identificador do Proceso (PID): que permite identificar univocamente a un proceso


entre o resto.

Estado do proceso.

Contador de programa: rexistro no cal se garda o prximo enderezo de memoria a


executar.

Rexistros de CPU: garda informacin sobre os rexistros de CPU empregados por un


proceso durante un cambio de contexto.

Espazo de Enderezos de Memoria: lista dos enderezos de memoria ocupados polos


datos do proceso.

Prioridade: no caso de que empreguemos un planificador que precise deste campo.

Recursos asignados: lista de recursos de E/S asignados actualmente ao proceso.

Propietario.

Permisos: de execucin (contexto de execucin).

Sinais: pendentes de ser procesados polo proceso.

Os planificadores de procesos clasifcanse en tres grupos dependendo de cal sexa o obxectivo


da sa asignacin:

Planificadores a Longo Prazo: encrganse de tramita-los intercambios de procesos


entre memoria secundaria e memoria principal. Adoitan ir asociados a mecanismos de
xestin de memoria virtual.

Planificadores a Medio Prazo: encrgase de xestionar a cola de procesos en


suspensin. En moitos sistemas esta tarefa asmea o propio planificador a curto prazo.

Planificadores a Curto Prazo: encrganse de tramita-los intercambios de procesos


entre memoria principal e CPU.

Os planificadores poden clasificarse tamn segundo a sa capacidade para extraer os procesos


forzosamente do procesador, en dous grupos:

Planificadores Non Apropiativos: aqueles que non poden extraer un proceso de CPU
unha vez este toma o control da mesma, de xeito que o proceso executa de xeito
ntegro o seu refacho de CPU sen interrupcins.

Planificadores Apropiativos: aqueles que poden extraer un proceso de CPU e poelo


en estado suspendido, asignando o uso a outro proceso que estivera en estado listo.
Cando un planificador apropiativo o habitual dividi-lo tempo de execucin dun
proceso en intervalos de tempo chamados quanta (en singular quantum).
11

Algoritmos de Planificacin da CPU


Os algoritmos de planificacin establecen en que xeito o planificador a curto prazo reparte a
emprega da CPU entre os distintos procesos en curso. Ao longo deste apartado destacarmo-los
algoritmos de planificacin mis habituais.

FCFS
O algoritmo FCFS3 (primeiro en chegar, primeiro en ser atendido) un algoritmo de tipo FIFO4
(primeiro en entrar, primeiro en sar) baseado na asignacin de CPU de xeito non apropiativo aos
procesos en orde de chegada.
un algoritmo pouco eficiente, xa que os refachos de CPU longos producen longas esperas e,
no caso de se producir un bucle infinito, o sistema enteiro pode ficar bloqueado. Ademais diso, a
secuencia de refachos de CPU e E/S pode producir con frecuencia intervalos de tempo de CPU en
desuso, o que sempre indesexable.

SJF
A planificacin SJF5 (o traballo mis curto primeiro) consiste, coma o seu nome indica en
asignar sempre a emprega da CPU (de xeito non apropiativo) a aquel proceso que posa refachos
mis curtos, independentemente da sa orde de chegada (se hai conflito, polo xeral, ptase por
escoller aquel proceso que leve mis tempo esperando).
Coma desvantaxe mis clara deste procedemento est a posibilidade de incorrer na inanicin
(espera indefinida) daqueles procesos con refachos de CPU mis longos.

Round Robin
Este algoritmo, tamn coecido coma Planificacin Circular de tipo apropiativo, e consiste na
satisfaccin das solicitudes dos procesos seguindo un esquema FIFO, pero con quantum. Dese xeito
redcese a espera dos procesos ante refachos de CPU longos, as coma a frecuencia de aparicin de
intervalos de CPU en desuso.

First Came, First Served.


First In First Out.
5
Shortest Job First.
4

12

A divisin de tempo por quantum s aplicable CPU, xa que as operacins de E/S, polo xeral,
non son divisibles.
Moitos dos algoritmos de planificacin empregados na actualidade son variantes de Round
Robin, melloradas mediante a adicin de prioridades, que permiten establece-la orde de execucin
de procesos segundo a urxencia de execucin dos mesmos.

SRJF
O algoritmo SRJF6 (menor traballo pendente primeiro) un algoritmo de planificacin
apropiativo orientado a conceder a emprega de CPU a aqueles procesos de refacho (ou tempo
restante) mis curto, de xeito que, cada vez que un proceso extrado do procesador, impdeselle
reentrar directamente, non sendo que sexa a nica posibilidade.

Colas Multinivel
Os mecanismos de planificacin por colas multinivel ou colas de prioridade empregan
mltiples colas de espera para os procesos que agardan a entrar en CPU. A xestin das devanditas
colas pdese realizar de moi diversos xeitos, sendo un dos mis populares aquel baseado en Round
Robin que asigna os procesos a distintas colas segunda a sa prioridade, tendo cada unha destas un
quantum asociado dunha lonxitude inversamente proporcional prioridade dos procesos que
forman parte dela. As, habitual que os procesos crticos, como por exemplo os que corresponden a
funcins do kernel do sistema operativo reciban quantums longos, dndolles dese xeito tempo a
rematar de desenvolver as sas tarefas.

Shortest Remaining Job First.

13

XESTIN DO ALMACEAMENTO
Os datos que manexan as computadoras son directamente manipulados a travs da memoria
principal pero esta, coma xa mencionamos con anterioridade, ten dous inconvenientes: adoita ter
unha capacidade moi limitada, e de tipo voltil, dicir, s conserva a informacin namentres tea
alimentacin elctrica.
Polo xeral, e co gaio de dispoer dun almaceamento indefinido (non voltil) e de grande
capacidade (relativa), emprganse discos duros, os cales actan coma memorias secundarias da
computadora. A xestin do almaceamento, e concretamente dos discos duros, porn unha tarefa
fundamental dos sistemas operativos, polo cal tratarmo-la ao longo do presente punto.

Ficheiros
As pois, os ficheiros almacanse en soportes, xeralmente de tipo permanente, e son
manipulados polo sistema de ficheiros mediante unha compoente especfica denominada Xestor de
Ficheiros.
Dende o punto de vista da programacin, un ficheiro ou arquivo non mis que unha
secuencia de bytes sen orde agrupados nunhas estruturas denominadas rexistros. Eses rexistros, non
sendo naturais ao soporte, grdanse nos bloques do dispositivo, unhas estruturas de tamao fixo
(habitualmente 512 bytes ou 1 KB) nas que se divide o espazo de almaceamento do mesmo.

Sistemas de Ficheiros
o Sistema de Ficheiros o encargado da organizacin dos bloques do dispositivo (polo xeral un
disco duro) en ficheiros ou directorios, recollendo tamn informacin sobre aqueles bloques que
permanezan libres. Polo xeral cada sistema operativo adoita ter uns Sistemas de Ficheiros propios ou
nativos.
Un sistema de ficheiros non senn o mecanismo de representacin empregado para escribir e
ler informacin a/dende un disco duro (ou outro dispositivo de almaceamento secundario).
Polo xeral os sistemas de ficheiros clasifcanse en 3 tipos segundo o soporte/sistema para o cal
foron deseados:

14

Sistemas de Ficheiros en Disco: deseados para o almaceamento de informacin en


discos duros, brandos ou pticos. Por exemplo: FAT, EXT3, NTFS, CDFS, etc.

Sistemas de Ficheiros en Rede: empregados para representar informacin a travs


dunha rede, posibilitando o acceso remoto a dispositivos de almaceamento. Por
exemplo: NFS, SAMBA, CODA, etc.

Sistemas de Ficheiros de Propsito Especial: calquera que non entre nas clasificacins
anteriores. Por exemplo: swap, CFS, etc.

Un sistema de ficheiros adoita oferta-los seguintes servizos:

Seguridade e permisos.

Mecanismos para evita-la fragmentacin (se posible).

Capacidade de representacin de enlaces simblicos (brandos e duros).

Integridade dos ficheiros.

Soporte para ficheiros dispersos e/ou distribudos.

Xestin de cuotas de disco.

Escalabilidade do propio sistema de ficheiros.

Caching.

Sistemas de Ficheiros Tpicos


Como xa mencionamos, un Sistema de Ficheiros un conxunto de normas estandarizado que
define o xeito en que se representa a informacin namentres se atopa almaceada nalgn tipo de
soporte.
Ao longo do presente punto repasarmo-los tipos de sistemas de ficheiros mis relevantes, xa
pola sa extensin pasada, presente ou simplemente pola sa relevancia na evolucin do tema.
Entre eles:

Familia FAT.

Familia EXT.

NTFS.

HFS.

Familia ISO9660.

15

Familia FAT
Os sistemas de ficheiros FAT7 naceron asociados linguaxe de programacin BASIC en 1977,
sendo adoptados polo sistema operativo QDOS en 1980, de onde se herdara (coma sistema de
ficheiros nativo) en tdolos sistemas operativos da familia MS-DOS.
At a data existiron 3 variantes principais, dicir, normalizadas:

FAT12 (ou simplemente FAT):


o

Non soportaba mis dun nivel de cartafoles despois do directorio raz.

Manexaba enderezos de bloco de 12 bits (moi limitado).

S soportaba particins e ficheiros de 32 MB de tamao mximo.

FAT16:
o

Aparecido en 1987.

Manexaba enderezos de bloco de 16 bits.

S soportaba particins e ficheiros de 2 GB de tamao mximo.

FAT32:
o

Aparecido en 1996.

Manexaba enderezos de bloco tericos de 32 bits (realmente de 28 bits).

Soporta particins duns 8 TB de tamao mximo.

O tamao mximo dun ficheiro son 4 GB.

Coma podemos ver no esquema anterior, as limitacins de tamao e direccionamento eran


notables o que, sumado ao problema endmico da fragmentacin externa, levou a unha
desaparicin progresiva que marxinou os sistemas FAT retrocompatibilidade e a soportes de baixa
capacidade.

Familia EXT
A familia EXT8 constite o conxunto de sistemas de ficheiros nativos dos sistemas operativos
GNU/Linux, e foi creado a partires dunha ampliacin (de a o seu nome) do sistema de ficheiros
nativo de MINIX.
As sas caractersticas mis salientbeis son as seguintes:

Son sistemas de ficheiros transaccionais, dicir, que permiten levar rexistro das tarefas
desenvolvidas e empregar procedementos de commit/rollback.

7
8

File Allocation Table.


EXTended File system.

16

Ficheiro e cartafol son vistos polo sistema operativo coma o mesmo tipo de obxecto.

Manexan o concepto de i-nodo, un ficheiro lxico real do cal os ficheiros e cartafoles


que manexan as aplicacins de usuario son simplemente instancias.

Neste grupo atopamos 4 variantes principais, a saber:

ext:
o

Aparecido en 1992.

S soportaba 2 GB de tamao mximo de particin e/ou ficheiro.

ext2:
o

2 TB de tamao mximo de ficheiro.

4 TB de tamao mximo de particin na sa primeira revisin (32 TB


finalmente).

ext3:
o

2 TB de tamao mximo de ficheiro.

32 TB de tamao mximo de ficheiro (con blocos de 8 KB).

Retrocompatible con ext2.

Emprega unha rbore binaria balanceada para mellorar a emprega do disco.

ext4:
o

16 TB de tamao mximo de ficheiro.

1 EB de tamao mximo de particin.

Retrocompatible con ext2 e ext3.

Introduce o concepto de extent, un conxunto de blocos de disco continuos


empregados para a representacin de ficheiros grandes (anda que isto elimina
a retrocompatiblidade).

Permite unha profundidade da rbore de directorios de at 32.000 niveis.

Posibilidade de desfragmentar on-line.

NTFS9
o sistema de ficheiros propio dos sistemas operativos Windows da familia NT, onde foi
introducido a travs de Windows 2000. Anda que tecnicamente soporta tamaos de particin de at
16 TB (con blocos de 4 KB), en realidade as limitacins do xeito en que se constren as particins
tradicionalmente limtao a 2 TB.
Coma novidades con respecto aos sistemas FAT, aos cales substituu, inclese:
9

New Technology File System.

17

Traballa con nomes de ficheiro mis longos (en formato UTF-16).

parcialmente transaccional.

Soporta indexado de contidos.

Por desgraza, o problema nativo dos sistemas FAT, a fragmentacin externa, non foi resolto e
anda se precisa empregar de xeito peridico ferramentas que resolvan esta inconveniencia. Nos
sistemas mis actuais, coma Windows 8 e Windows Server 2012, o propio sistema operativo
incorpora rutinas que reducen a fragmentacin das particins en formato NTFS en segundo plano (de
xeito semellante a coma fan os sistemas Linux coas particins ext).

HFS10
o sistema de ficheiros nativo dos sistemas operativos MacOS, que actualmente empregan
unha extensin do mesmo chamada HFS+.
Introducido en 1985 co gaio de substitur a MFS, o vello formato de ficheiros dos sistemas
Apple, emprega, a semellanza dos sistemas ext, unha rbore B+ para representar a estrutura de
directorios, o que alixeira notablemente os percorridos pola mesma.
Soportaba tamaos mximos de ficheiro de 2 GB (8 EB en HFS+) e, nas particins, de 2 TB (8 EB
en HFS+), con nomes de ficheiro codificados en UTF-16, coma no caso de NTFS.

Familia ISO9660
Esta familia de sistemas de ficheiros, estandarizada a travs da norma homnima, est
orientada a ser empregada en soportes pticos, polo que se atopan numerosas variantes, das cales
destacamos:

Joliet: variante de FAT creada para sistemas Windows, soporta nomes de ficheiro de
at 64 carcteres.

Romeo: variante do anterior que soporta lonxitudes de nome de at 128 carcteres.

Rock Ridge: deseado para sistemas UNIX, soporta definicin de permisos de


execucin e enlaces simblicos.

UDF: sistema de ficheiros propio dos DVD. Soporta 256 carcteres por nome en ASCII e
128 en Unicode.

10

Hierarchical File System.

18

Organizacin e Estrutura Xeral do Almaceamento


Dado que na actualidade a meirande parte dos sistemas de ficheiros existentes empregan
esquemas de organizacin en rbore, neste punto centrarmonos en definir as caractersticas ms
habituais deste tipo de estruturas.
Coma xa sabemos tamn, nos sistemas de ficheiros habituais, emprganse dous tipos de
estruturas para almacear informacin:

Ficheiros: os almacns ltimos de informacin. Actan de nodos-folla na rbore de


directorios.

Cartafoles: almacns de almacns, dicir, poden conter tanto ficheiros coma cartafoles
(anda que en ocasins, se estn baleiros, tamn poden actuar coma nodos-folla).

rbore de Directorios
A estrutura tpica de directorios recibe este nome xa que imita a forma dunha rbore invertida,
de xeito que dispoemos dun directorio especial que acta coma raz (no caso de Windows o
Escritorio, no caso de Linux, o directorio / ), no cal albrganse ficheiros e directorios que, ao seu
tempo, poden albergar outros directorios e ficheiros... e as recursivamente.
A limitacin bsica aquela que establece que ningn directorio pode conterse a si mesmo,
directa ou indirectamente, anda que existen outras, bastante estendidas, coma a que establece que
nun mesmo directorio non poden existir dous directorios ou dous ficheiros que se chamen igual
(anda que na maiora de sistemas operativos si se admite que haxa un directorio e un ficheiro co
mesmo nome).
As, se nos atopamos coa seguinte ruta:
/home/usuario/documentos/ficheiro.txt
Estaremos a recibi-la ruta absoluta do ficheiro ficheiro.txt; e dicimos absoluta, porque
comeza no directorio raz sendo, porn, vlida para todo o sistema. Iso implica que o directorio /
contn ao directorio home, que contn ao directorio usuario, o cal, ao seu tempo, contn ao
directorio documentos, dentro do cal se atopa o ficheiro ficheiro.txt.
Pola contra, tamn poderiamos ter recibido unha ruta relativa, por exemplo, con respecto ao
directorio usuario:
documentos/ficheiro.txt
19

Do mesmo xeito, podemos definir unha ruta relativa dende un directorio que non pertenza
ruta absoluta que vimos no primeiro caso; por exemplo, supoamos que o directorio home ademais
de conter a usuario contn outro directorio chamado todos. Dese xeito, se estiveramos situados
dentro dese directorio, a ruta do ficheiro ficheiro.txt para ns sera:
../usuario/documentos/ficheiro.txt
Onde .. representa ao directorio pai do directorio no cal nos atopamos.

Enlaces Simblicos
Os sistemas operativos actuais, en moitos casos, son quen de representar enlaces tanto a
ficheiros e cartafoles, de xeito que sexan accesibles dende situacins distintas a onde se atopan
realmente.
No caso de Windows, existe unha nica posibilidade de representacin de enlaces: os shortcuts
ou accesos directos. Un acceso directo de Windows non senn un ficheiro (de extensin LNK) que
alberga a ruta (absoluta e/ou relativa) doutro ficheiro ou carpeta de xeito que, ao tentar abrilo, o
sistema operativo redirxenos de xeito automtico ao obxecto real enlazado.
No caso de Linux, grazas estrutura do i-nodo propia dos sistemas de ficheiros EXT vistos
anteriormente, existen dous tipos de enlaces:

Enlaces Brandos ou Softlinks: semellantes aos accesos directos de Windows, son


ficheiros independentes que almacean a ruta (absoluta e/ou relativa) do ficheiro ou
cartafol apuntado.

Enlaces Duros ou Hardlinks: non son enlaces en si, senn que son instancias dun
ficheiro, totalmente funcionais. Dese xeito, cando ns accedemos a un ficheiro a travs
de calquera dos seus hardlinks, estaremos accedendo ao seu i-nodo, polo tanto,
estaremos (con independencia de o lugar dende onde accedamos) modificando o
mesmo obxecto. O plantexamento non aplicable a directorios.

Mecanismos de Xestin do Espazo Ocupado


Ao longo da historia dos sistemas de ficheiros foron xurdindo enfoques diversos sobre coma
xestionar os bloques ocupados polos ficheiros e directorios nos dispositivos, as vermo-los enfoques
mis habituais.

20

Asignacin Contigua
Se cadra o mecanismo mis simple e doado de implementar sexa a Asignacin Contigua ou
Asignacin Adxacente consistente, coma o seu nome indica, en asignar os bloques de disco a un
ficheiro de xeito contiguo. un mtodo que produce un bo rendemento namentres a fragmentacin
externa non acade cotas altas.
Por outra banda, a imposibilidade de asignar bloques de xeito libre fai que exista a posibilidade
de que un ficheiro non poda medrar por falta de espazo contiguo existindo bloques libres no disco.
Tanto o problema da fragmentacin externa coma o do lmite de crecemento pdense resolver
executando tarefas peridicas de compactacin, iso si, cun alto custe en tempo de proceso e carga
ao disco.

Asignacin con Lista Enlazada


Este tipo de xestin de bloques ocupados emprega unha lista enlazada de xeito que cada
bloque do ficheiro emprega unha parte do seu espazo para gardar o enderezo do seguinte bloque,
posibilitando as a particin do ficheiro.

21

Este mecanismo soluciona o problema da fragmentacin interna pero, dado que non existe o
acceso aleatorio (calquera acceso implica percorre-los bloques do ficheiro dende o comezo)
emperanse notablemente as operacins de escritura e lectura.
Unha variante que mellora este mtodo son os sistemas FAT que gardan en memoria unha
tboa que garda os enderezos dos bloques dun ficheiro, reducindo o nmero de accesos a disco,
substitundo isto por carga de memoria principal.

22

Asignacin Indexada
o mecanismo empregado polos sistemas de ficheiros EXT de GNU/Linux, e a sa peculiar
estrutura a que posibilita a existencia dos i-nodos.
O i-nodo de cada ficheiro (ou directorio) correspndese co primeiro bloque do ficheiro e nel
almacanse, directa ou indirectamente, os enderezos do resto de bloques ocupados polo ficheiro. Ao
igual ca no enfoque anterior existe unha pequena perda de espazo por representacin de enderezos.
O acceso directo, anda que non realmente posible, pode ser emulado de xeito bastante
eficiente a travs de accesos dende o i-nodo (empregando mecanismos semellantes procura
binaria).
A diferenza do que ocorra os sistemas de tipo FAT, s sern mantidos na memoria os i-nodos
daqueles ficheiros e directorios que estean a ser empregados no propio intre.
Prodcese fragmentacin externa, pero dado que as asignacins non se realizan de xeito
contiguo, isto non produce problemas de relevancia.

Mecanismos de Xestin do Espazo Libre


Coma xa mencionamos con anterioridade, o sistema de ficheiros ten que ser quen de manexar
os bloques libres, sabendo en todo intre cantos hai e onde estn, para poder asignalos aos ficheiros e

23

directorios cando as se precise, do mesmo xeito que debe poder manexar os bloques cando deixen
de ser empregados e pasen a formar parte do espazo libre.
A continuacin veremos os mecanismos mis habituais empregados para facilitar a devandita
tarefa.

Mapa de Bits
Emprgase unha estrutura auxiliar para representar os bloques libres, almacendoa en
memoria ou en disco (empregando os bloques necesarios para tal fin). A estrutura consiste
normalmente nunha tira de bits (un por bloque) de xeito que un bit estar a 1 se o bloque est
ocupado, e a 0 en caso contrario.
Este mtodo fai moi doado atopar bloques libres, e non adoita empregar demasiado espazo
extra para a representacin.

Lista Enlazada de Bloques


Cada bloque libre garda o enderezo do seguinte bloque libre. un mecanismo bastante
eficiente porque, a diferenza do que ocorra no caso da asignacin de bloques en uso, eiqu nunca se
vai precisar realizar un acceso libre aos mesmos (calquera bloque libre vlenos).
A perda de espazo producida pola reserva do seguinte enderezo libre en cada bloque reslvese
mediante a emprega de seccins libres encadeadas, nas que s o derradeiro bloque libre de cada
conxunto contiguo dos mesmos apunta ao primeiro bloque da seguinte seccin libre.

Indexacin
Grdase un ndice en memoria (ou nun ou mis bloques do propio disco) no cal se almacean os
enderezos dos bloques libres.
Este procedemento tamn pode ser mellorado enlazando s o primeiro bloque de cada seccin
libre.

Planificacin de Discos Duros


Non s o xeito en que o sistema de ficheiros manexa a representacin conceptual do ficheiro
sobre o disco infle no rendemento do sistema global, senn tamn o xeito en que esa informacin

24

se escribe no propio disco duro, en grande parte infludo polas peculiaridades da arquitectura deste
tipo de dispositivos.

Orixinalmente a escritura dos discos duros facase de xeito secuencial, simplemente por
influencia dos dispositivos que se vian empregando at o de entn, principalmente fitas
magnticas. Pero esa aproximacin desprezaba directamente a principal vantaxe dos discos duros
sobre ese tipo de dispositivos, a sa direccionalidade, dicir, os discos duros soportan acceso directo
e con ese fin foron creados.
Dado que, cando o sistema operativo solicita bloques ao disco duro estes poden estar situados
en lugares moi afastados os uns dos outros, faise preciso reducir o tempo necesario para acadalos, o
cal ven determinado por tres factores:

Tempo de Latencia: tempo que tarda o cabezal de lectura/escritura en se situar enriba


do sector desexado.

Tempo de Procura: tempo que tarda o cabezal de lectura/escritura en se situar enriba


da pista desexada.

Tempo de Acceso: tempo que tarda en se ler/escribir informacin de/dende o disco.

Trataremos, de seguido, os mecanismos de planificacin mis habituais e coecidos.

FIFO
As peticins son atendidas en orde de chegada, dende a mis antiga mis recente, sen ter en
conta a sa localizacin no disco. Este mecanismo evidente moi ineficiente, xa que dispara os
tempos de latencia e procura.

25

LIFO
No mecanismo LIFO11 (ltimo en Chegar, Primeiro en Sar) Atndese s peticins en orde
inverso de chegada, dende a mis recente mis antiga, tamn sen ter en conta a sa localizacin no
disco. Este mecanismo tampouco moi eficiente, xa pola mesma razn co anterior, coma polo feito
de que pode levar inanicin das peticins mis vellas.

SSTF
No caso de SSTF12 (Menor Tempo de Procura Primeiro) atende as peticins, coma o seu nome
indica, en atencin ao tempo que lle leve ao cabezal de lectura/escritura o atopa-lo bloque
correspondente.
O problema deste mecanismo que pode producir inanicin daquelas peticins ms afastadas
das actuais, especialmente no caso de bloques almaceados nas rexins perifricas do disco.

SCAN
Tamn coecido coma Algoritmo do Elevador, nel mantense o cabezal de lectura/escritura
movndose dende o eixo at o bordo exterior do disco e volta de xeito permanente, aproveitando
para atender aquelas peticins polas que cadre pasar no intre axeitado.
un procedemento que, a pesares de incrementar lixeiramente os tempos de espera medios,
iguala notablemente a emprega do disco duro, crendose s leves diferenzas de atencin entre as
pistas mis externas e o resto.

C-SCAN
unha variante do anterior no cal o cabezal segue a se mover en ambas direccins, pero s
atende peticins nunha delas. Dese xeito a variabilidade de atencin anda menor.

LOOK
unha variante de SCAN que fai tamn varridos en das direccins, pero que s chegan dende
a peticin mis interna mis externa en cada pasada, evitando innecesarios movementos do
cabezal de lectura/escritura.
11
12

Last In First Out.


Shortest Seek Time First.

26

C-LOOK
unha variante do anterior anloga ao que C-SCAN era a SCAN.

SCAN de N-Pasos
Emprega varias colas de peticins de tamao N, no canto dunha nica de tamao indefinido.
Dese xeito a cada pasada correspndelle unha nica cola e, cando se chega ao lmite do seu tamao,
as peticins insrense noutra cola que non ser atendida at mis adiante. Existen variantes anlogas
sobre C-SCAN, LOOK e C-LOOK.
Este algoritmo resolve certo problema deste tipo de algoritmos, consistente en que o cabezal
pode chegar a pararse nunha determinada zona do disco cando se acumulan as peticins na
mesma.

Algoritmos con Prioridades


Calquera dos mecanismos mencionados anteriormente pode ser mellorado mediante a adicin
de prioridades s peticins, en relacin prioridade do proceso que realizara cada unha delas. Isto
permite, principalmente, atender de xeito anticipado as peticins do sistema operativo as cales, polo
xeral, van ser de carcter mis crtico cas dos procesos de usuario.

27

You might also like