Mquinas transistorizadas
Mquinas com memria
Mquinas com programa
armazenado
Montagem
Compilao
Interpretao
Bibliotecas do sistema
Carregador
Ligador
Editor de ligaes
Alocador de memria
Ambientes de desenvolvimento
Ambientes de execuo
Ambientes multi-paradigma
Programa-fonte
Programa-objeto
Programa executvel
Programa absoluto
Programa relocvel
Relocador
Linguagens de comando
Batch scripts
Interpretadores de comandos
Compiladores de comandos
Interface com o usurio
Interface textual
Interface grfica
Interface vocal
Interpretador de voz
Programas de sistema
Programas utilitrios
Sistema Operacional
Atividade Recomendada (recorrer bibliografia para saber mais acerca dos conceitos apresentados, caso no tenha familiaridade com eles):
1. Usando o conjunto de termos tcnicos acima, procurar definir cada um deles e estabelecer 3. Faa uma representao grfica, mostrando um sistema de programao completo, com todos
relaes entre eles, explorando principalmente suas similaridades e diferenas, quando for o caso.
os programas que dele fazem parte, representados por blocos, e mostrando atravs de setas as
2. Usando alguma fonte como as da bibliografia a seguir, procure informaes sobre a anatomia
dependncias existentes entre eles, ou seja, de onde provm o seu cdigo, de onde provm os
dos programas de sistema, com a finalidade de complementar seus conhecimentos sobre sua
seus dados, quais so e de onde provm suas entradas, quais so e para onde so emitidas as
funcionalidade, sobre a forma como operam e sobre sua estrutura e lgica interna.
suas sadas, em que seqncia so acionados os programas, como so controladas suas
execues, etc.
Bibliografia sobre histrico e sobre sistemas de programao:
Beck
Ullman
Barron
Cole
Assemblers and loaders
Macro Processors
McDonald/Elsevier, 1969
Cambridge University Press, 1976
Maginnis
Kernighan e Plauger
Elements of compiler construction
Software Tools
Appleton Century Crofts, 1972
Addison Wesley, 1976
Donovan
Tseng (ed.)
Systems programming
Microprocessor development and development systems
McGraw-Hill, 1972
McGraw-Hill, 1982
Welsh e McKeag
Duncan
*#
#
*#
"
'
"
(
%
&
7
&
*#
'
8
(
&
*#
"
& &
*#
*#
+
"
*#
'!
#
&
*#
#
"
7
*#
,/
*-
(
) %+ %
-.
-
) *
,
,) ,
"
/
,/
/
#
3#
!
*-
"
"
# $%
(
*#
3#
#
1
*# 2
2
( "
&
!
"
8 7
8 7
8 7
1
8
&
*#
8
8
8
&
*#
"
&
*#
'!
9
'
#
:
!
%
7
7
7
7
7
*#
*#
*-
*#
8 7
7
&
&
& *#
"
"
%
6
&
% 2 3 2 (0 5 3
'
*#
"
*-
2345
6
( /
%0 %1
&
"
*#
(
&
*-
#
3#
*#
*#
&
#
!
"
<
4
:
"
(
&
8
Atividades:
Dispositivo ativo/passivo
Dispositivo de comunicao
Dispositivo de entrada
Dispositivo de entrada e sada
Dispositivo inteligente (c/ processamento local)
Dispositivo sncrono/assncrono
Dispositivo de sada
Dispositivo de transferncia de dados
Entrada/sada independente de dispositivo
Espera ocupada
Tempo de acesso
Tendncia moderna:
organizao distribuda
Terminais RS-232
Terminais mapeados na memria
Unidade de transferncia
Via de controle e de dados (bus)
Via em anel
Via unidirecional e bidirecional
Questes:
Tipo
entrada
entrada
entrada
entrada
sada
sada
sada
sada
sada
entrada/sada
entrada/sada
armazenamento
armazenamento
armazenamento
Veloc. (kb/s)
0.01
0.02
0.02
200
0.6
1
100
30000
200
0.05
200
500
2000
2000
Comunica-se c/
homem
homem
homem
homem
homem
homem
homem
homem
homem
mquina
mquina
mquina
mquina
mquina
5.
6.
7.
8.
Questes:
1. Quais as funes tpicas de um administrador de memria no S.O.?
2. Que alocao contgua simples de memria? Quais as suas
vantagens e desvantagens? Em que situaes indicada?
3. Que tempo de retorno de um job (turnaround time)?
4. Que tempo de espera da transferncia de dados entre programas e
perifricos?
5. Que tempo relativo de espera de entrada/sada de um programa?
6. Que um mecanismo de swapping? Quando se aplica?
7. Que so overlays? Quando so convenientes? Em que casos so
desaconselhados?
8. Descreva o hardware necessrio para a implementao de swapping.
9. Especifique o hardware necessrio para se implementar overlays.
10.Qual o hardware necessrio realizao de sistemas cache-backing?
11.Qual o efeito, para o sistema operacional e para o usurio, da
utilizao de memrias hierrquicas?
12.Qual a diferena entre endereamento fsico e endereamento
lgico? E entre endereamentos fsico e virtual?
13.Considere um computador, com disco e com 256K bytes de memria
fsica, e um programa formado de quatro partes, com tamanhos de
200K, 130K, 140K e 250K, respectivamente, as quais so executadas
em momentos diferentes, de forma relativamente independente.
Deseja-se implementar esse programa usando para isso um esquema
de overlays de execuo na mquina disponvel. Explicar
detalhadamente o mecanismo de operao.
14. Dispe-se de um computador antigo com 256K bytes de memria
fsica, de um disco grande e rpido, e de um canal multiplexador ao
qual esto acoplados 16 terminais sem processador, apenas com
teclado e monitor. Dispe-se, para essa mquina, do interpretador de
uma linguagem de programao e do software necessrio para
efetuar a comunicao com os terminais. Pede-se projetar um sistema
13.Relocabilidade dinmica
14.Supervisor de overlay
15.Swapping
Assunto: Administrao de Memria II: Administrao de Memria Fsica Multiprogramao. Alocao Particionada Simples e Relocvel.
Conceitos:
1.
2.
3.
4.
5.
6.
Multiprogramao
Particionamento de memria
Partiicionamento esttico e dinmico
Endereos absolutos
Endereos relativos ao Program Counter
Relocabilidade esttica
Taxa de espera de um job isolado: w=(tempo total de espera de entrada/sada)/(tempo total de processamento + tempo total de espera de entrada/sada)
Taxa de espera de um job em multiprogramao: w= (w/(1-w))^n / (n! * (i=0..n) ( (w/(1-w) )^i / i! )) (demonstrado em Madnick/Donovan Operating Systems)
Valores de w para w=65%: n=2, w=37,6%; n=3, w=18,9%; n=4, w=8,1%; n=5, w=2,9%; n=6, w=0,9%; n=7, w=0,2%; n=8, w=0,1%.
Questes:
1. Que multiprogramao? Em que difere do multiprocessamento? Quais os 11.Que vem a ser Relocabilidade Esttica? Descreva esta operao, bem como
o funcionamento interno do programa Relocador pertencente ao sistema de
seus objetivos? Qual o seu impacto sobre a administrao de memria?
programao que opera no ambiente do sistema operacional disponvel.
2. Qual a estimativa de ocupao do processador para um conjunto de quatro
programas simultaneamente na memria, sendo que cada um isoladamente 12.Como funciona a proteo de memria proporcionada pelo uso de
registradores de limites para as parties?
gastaria em mdia a metade do tempo total de permanncia no computador
13.Descreva detalhadamente o esquema de Alocao Particionada Simples
esperando o final de suas operaes de entrada/sada?
(sem relocao), e compare com a Alocao Contgua Simples.
3. Para um conjunto de jobs que, individualmente, gastariam dois teros do seu
tempo total de permanncia aguardando entrada/sada, qual o impacto 14.O que e quando ocorre o fenmeno da fragmentao de memria? Quais as
suas implicaes? Como costuma ser tratado pelo sistema operacional?
esperado da multiprogramao? Estimar o tempo ocioso do processador para
15.Descreva um algoritmo que realize a operao de compactao de memria
o grau mximo de multiprogramao variando entre 2 e 6.
(garbage collection). Em que condies costuma ser utilizada?
4. Que tempo de retorno de um job (turnaround time)? Qual pode ser o
impacto do grau de multiprogramao sobre o tempo de retorno dos jobs em 16.Como operam as instrues de mquina que apresentam endereos relativos
ao Registrador de Base? Que relao tm com a relocao dinmica? Como
um sistema operacional multiprogramado?
podem ser exploradas em um esquema de Memria Particionada Relocvel?
5. Qual a diferena entre endereamento fsico e endereamento lgico? E
17.Como funciona a proteo de memria e a relocao dinmica em um
entre endereamentos fsico e virtual?
computador em que se dispe de um registrador de base e outro de limite?
6. Por que a presena de alocao dinmica em um sistema no implica
18.Descreva o funcionamento da Relocabilidade Dinmica em um computador.
obrigatoriamente que este sistema implementa memria virtual?
Aponte prs e contras do uso deste conceito.
7. Que significa particionamento de memria? Lembrando que o sistema
operacional tambm um programa, como se pode ver, do ponto de vista do 19.Descreva a Alocao Particionada Relocvel de memria em um sistema
operacional. Compare-a tecnicamente em detalhes com o esquema de
particionamento de memria, o esquema de alocao contgua simples com
Alocao Particionada Simples. Quais so os prs e contras de cada um?
uma rea protegida privativa para o sistema operacional?
8. Quais so as diferenas conceituais e de implementao da administrao de 20.A alocao de mltiplas parties para um mesmo job altera o
comportamento de um sistema operacional com administrao de Memria
memria apoiada nos esquemas de particionamentos esttico e dinmico?
Particionada. Descreva o impacto dessa opo sobre as necessidades de
9. O que deve fazer o sistema operacional para que um programa, contendo
hardware e sobre a eficcia dessa tcnica de administrao de memria.
apenas instrues com endereos absolutos, possa ser executado em
parties diferentes, de acordo com a deciso de um administrador de 21.Descreva as polticas de alocao de memria baseadas nos algoritmos Firstmemria particionada?
fit, Best-fit, Worst-fit. Projete e teste os trs algoritmos para alguns conjuntos
10.Propor uma disciplina de programao ou de gerao de cdigo para
de jobs, e procure compar-los quanto s condies mais favorveis e mais
programas a serem executados em mquinas que dispem de instrues com
desfavorveis para a aplicao de cada um.
endereos relativos ao Program Counter, de tal maneira que no haja
necessidade de realizar operaes de acertos de endereo devidas
mudana de endereo fsico do programa.
Assunto: Administrao de Memria 3 - Memria Fsica Paginada. Conceito de Paginao. Alocao Paginada Simples. Proteo de Pginas.
Conceitos:
Questes:
Fragmentao interna
File map table
Translation lookaside buffer
Unallocated area table
Recuperao de memria para o sistema
Esquema de Key/Lock
Prioridades de alocao
Tag
Taxa de espera relativa de entrada/sada
Tempo efetivo de processador
Overhead de mapeamento de endereos
paginados em que forem executados? Por qu? A quais fatores esse aspecto do
desempenho mais sensvel?
13.Considerando que um programa pode, por exemplo, apresentar construes
sintticas iterativas curtas, mas que ocorram no final de uma pgina e terminem
no incio de uma outra, estime o impacto do uso de um sistema com alocao de
memria paginada sobre as necessidades de memria fsica de programas com
esse perfil.
14.Mostre, usando um exemplo particular sua escolha, de que forma pode um
programa qualquer ser posto em execuo em um ambiente computacional com
alocao paginada de memria fsica.
15.Qual o efeito da disperso de pginas pela memria fsica sobre o desempenho
do programa?
16.Comente o impacto da adoo do esquema de paginao de memria sobre o
fenmeno da fragmentao, que se faz muito presente nos sistemas com memria
particionada.
17.Qual seria a utilidade de um programa de compactao de memria em um
ambiente computacional com memria paginada?
18.Conceitue fragmentao interna. Em uma situao de pior caso, qual pode ser o
maior impacto possvel desse tipo de fragmentao sobre a porcentagem de
ocupao de memria em um ambiente de memria paginada? Exemplifique.
19.No esquema de alocao particionada, foi proposto um par de registradores para
delimitarem na memria fsica o espao de endereamento do programa. Na
alocao paginada, em que o programa fica aleatoriamente disperso pela
memria, que soluo voc pode propor para proteger a memria de forma similar
utilizada no esquema particionado?
20.Proponha uma forma de implementar, para programas executados em ambiente
de memria paginada, um esquema de proteo de acesso um pouco mais
sofisticado, em que partes do programa podem ser apenas executadas, mas no
lidas nem modificadas, outras podem ser lidas mas no modificadas nem
executadas, e outras ainda podem ser lidas e modificadas, mas no executadas.
Como se trata de uma forma mais complexa de proteo, torna-se necessrio
modificar o hardware para isso. Esquematize detalhadamente a sua proposta, e
avalie sua viabilidade tcnica e econmica.
Assunto: Administrao de Memria 4 - Memria Paginada com virtualizao de memria. Algoritmos de Substituio de Pginas.
Conceitos:
Reference bit / Change bit
Algoritmo LRU (least recently used)
Interrupo de falta de pgina
Compartilhamento de recursos
Tag
Algoritmo NFU (not frequently used)
Paginao requisitada
Memria compartilhada
Translation lookaside buffer
File map table
Tempo de espera relativa de entrada/sada
Algoritmo NRU (not recently used)
Unallocated area table
Princpio da localidade
Tempo efetivo de processador
Algoritmos de remoo de pginas
Working set
Page swapping
Bloco em trnsito
Anomalia FIFO (anomalia de Belady)
Algoritmo de substituio tima
Memria virtual
Thrashing
Aproximao do algoritmo LRU
Algoritmo FIFO (first in, first out)
Memria virtual paginada
Esquema de Key/Lock
Recuperao de memria para o sistema
Questes:
14.Colete em uma pesquisa bibliogrfica descries de algoritmos de substituio
1. Que alocao de memria por requisio dinmica de pginas? Explique
detalhadamente o funcionamento de tal esquema de administrao de memria.
de pginas, e suas aplicaes. Estude a lgica dos algoritmos coletados.
2. Conceitue memria virtual. O que necessrio para que um esquema de
15.Quais os algoritmos de substituio de pginas que voc conhece, e qual a
funo deles? Qual o impacto de sua eliminao sobre o comportamento dos
alocao de memria implemente memria virtual? Quais so suas aplicaes?
sistemas operacionais que deles se utilizam?
3. A virtualizao da memria a nica forma de permitir a execuo de programas
que no cabem inteiros na memria fsica? Justifique sua resposta afirmativa, ou
16.Que working set? Como esse conceito se aplica avaliao do desempenho
fornea contra-exemplos no caso de resposta negativa.
de um sistema operacional?
4. Quais as vantagens e desvantagens do emprego da virtualizao de memria em
17.Conceitue o princpio da localidade. Descreva um experimento atravs do qual se
um computador?
poderia constat-lo na prtica.
5. Sabe-se que a virtualizao de memria permite a execuo direta de programas
18.Dada a necessidade da execuo de operaes de entrada/sada em resposta a
que foram escritos sem que haja obrigatoriamente cincia prvia de que a
cada falta de pgina durante a execuo de um programa, qual o impacto da
memria do ambiente em que seriam executados gerenciada como memria
virtualizao de memria sobre o tempo de execuo dos programas?
virtual. Como implementada essa transparncia, e qual o correspondente nus
19.Qual o impacto do tamanho do bloco de memria (e portanto das pginas) sobre
no custo de implementao do hardware e do software?
o nmero total de interrupes de falta de pgina que ocorre em um ambiente de
6. Conceitue paginao requisitada. Mostre detalhadamente como se comporta o
memria virtual paginada?
hardware em ambientes com memria virtual paginada. Ilustre esse
20. possvel ao programador escrever programas de uma forma tal que se possa
funcionamento mostrando passo a passo a evoluo do contedo dos
garantir que apresentem um bom desempenho em quaisquer ambientes
registradores da mquina ao longo da execuo de uma instruo de referncia
paginados em que forem executados? Por qu?
memria de pior caso, ou seja, que apresente comportamentos limtrofes quanto
21.Considerando, por exemplo, que um programa pode, por exemplo, apresentar
sua posio na memria, e tambm quanto posio ocupada por seu operando.
construes iterativas que se iniciem no final de uma pgina e terminem no incio
Comente suas observaes.
de uma outra, estime o impacto do uso de um sistema com alocao de memria
7. Quais as vantagens e desvantagens da utilizao da tcnica de paginao
paginada sobre as necessidades de memria fsica de um programa.
requisitada de memria em relao paginao simples?
22.Comente eventuais impactos devidos virtualizao da memria, no desempenho
dos programas: (a) do tamanho do disco, (b) de sua porcentagem de ocupao,
8. Conceitue thrashing. Quais so as sua causas? E suas conseqncias?
(c) de sua velocidade de transferncia, (d) do seu tempo de acesso, (e) de sua
9. Quais as estruturas de dados utilizadas pelo administrador de memria
fragmentao, (f) do seu compartilhamento entre diversos programas.
virtualizada por paginao requisitada? Explique seu funcionamento.
23.Discuta a validade ou no da seguinte afirmao: Quanto maior o nmero de
10. Quando e como so feitas a alocao e a recuperao, para o sistema, de reas
pginas do programa simultaneamente presentes na memria, menor ser a
de memria em um esquema de memria virtual com paginao requisitada?
freqncia de pedidos de interrupo por requisio de pginas faltantes.
11. Que recursos deve exibir o hardware que empregado na realizao de sistemas
24.Discuta a validade ou no da seguinte afirmao: A iluso de ter disponvel uma
de memria virtual por paginao requisitada?
quantidade ilimitada de memria pode levar o programador a criar seus
12. Conceitue blocos em trnsito e justifique a sua existncia em sistemas com
programas sem os mnimos cuidados com o gasto excessivo de espao.
paginao requisitada de memria virtual.
25.Discuta o impacto da memria virtual sobre o tamanho dos programas modernos.
13. Que paralelo existe entre os conceitos de localidade e de working set?
Questes:
1. Que alocao de memria segmentada?
2. De que formas pode ser implementada a alocao segmentada de
memria?
3. Explicar o princpio de funcionamento do esquema de
segmentao no gerenciamento da memria fsica. Em que
diferem? Qual a vantagem de seu uso em lugar da alocao
particionada?
4. Como feito o tratamento da fragmentao da memria fsica em
ambientes
com
E
com
segmentao
simples?
particionamento? Como tratado o problema do acerto dos
endereos relativos aps uma compactao de memria?
5. Definir o conceito de segmento. H vrios tipos de segmentos,
segundo sua funo. Quais so esses tipos? Quais so as
caractersticas de cada um deles?
6. Explicar detalhadamente como feito fisicamente, no hardware, o
acesso a um endereo lgico de memria, pertencente a um
segmento especfico?
7. Quais as vantagens e desvantagens do uso da segmentao
sobre o de outros esquemas de gerenciamento de memria?
Questes:
1. Trace um paralelo entre as tcnicas de gerenciamento de memria com
segmentao e com particionamento.
2. Explique em que situao o gerenciamento de memria segmentada se
reduz a um simples particionamento. Mostre os detalhes do
funcionamento de um programa quando sob sistemas operacionais que
adotem cada um dos esquemas de administrao de memria.
3. Em que consiste a segmentao de memria com paginao
requisitada?
4. Conceitue cada um dos elementos seguintes que, devidamente
combinados, originam os mais variados tipos de gerenciamento de
memria: alocao contgua, particionada, paginada, segmentada;
memria virtual, swapping, overlay; espao de endereamento: linear e
bidimensional; fsico e lgico; contguo, paginado, particionado ou
segmentado; requisio dinmica de: pgina, segmento, etc.
5. Indique quais combinaes dos conceitos da questo anterior permitem
que: a) a memria seja virtualizada; b) um programa seja executado
sem que esteja completamente presente na memria; c) o programa
ocupe um espao fsico no-contguo de memria; d) o espao lgico
de endereamento do programa seja controladamente compartilhado;
6. Explique conceitualmente por que swapping e overlay no
implementam obrigatoriamente a virtualizao de memria.
7. Qual o hardware necessrio implementao de cada um dos tipos de
gerenciamento de memria mencionados na questo 5?
8. Quais so os elementos necessrios no hardware de um computador no
qual se deseja instalar ambientes de: a) memria virtual; b) paginao;
c) segmentao; d) todos simultaneamente?
9.
10.
11.
12.
13.
14.
15.
16.
17.
Segmentos de ligao
Segmentos executveis
Segmentos no-modificveis
Ready-list
Round-robin
Quantum
Inverso do resto do quantum
Balanceamento
Prioridade dinmica
Job scheduling coordenado
Master/Slave scheduling
Scheduling homogneo
Sincronizao
Compartilhamento de recursos
Condies de competio
alocao dedicada
alocao compartilhada
alocao virtual
dispositivo de acesso serial
dispositivo de acesso direto
canal
unidade de controle
canal seletor
canal concentrador
canal multiplexador de blocos
buffering
I/O traffic controller
I/O device handler (driver)
DMA
operao de dispositivos offline
6. Inter-record gap
7. Dispositivos de cabea fixa
8. Dispositivos de cabea mvel
9. Trilha (track) ou cilindro
10. Setor (sector, record)
Questionrio:
1. A tcnica de spooling permite o uso de simulao (= virtualizao) para
dispositivos de acesso direto quanto a sua eficincia para a transferncia
aumentar a versatilidade e a eficincia de operaes de entrada e sada
de dados com a memria do computador. Avalie-os comparativamente
em dispositivos dedicados, convertendo-as em entradas e sadas em
quanto ao tempo necessrio para que uma transferncia completa seja
dispositivos compartilhados. Relacione os ganhos que podem ser obtidos
executada.
aplicando-se essa prtica.
8. Entre as principais tcnicas de uso de dispositivos, implementadas pelos
2. Explique as diferenas fsicas e conceituais entre dispositivos de entrada
I/O device handlers destacam-se: (a) slotting, que a reordenao
e sada e dispositivos de armazenamento, e justifique a escolha de um
cclica dos acessos ao disco para minimizar o tempo de search entre
deles como hospedeiro para a virtualizao do outro.
acessos a diferentes setores da mesma trilha; (b) a ordenao do seek,
3. Compare os dispositivos de armazenamento de acesso serial com os de
para minimizar o tempo de deslocamento do cabeote entre trilhas
acesso direto quanto a suas propriedades e quanto sua adequao
prximas ou no; (c) o uso da tcnica de folding (gravao repetida de
para servir como hospedeiro para criar um sistema de spooling.
dados no dispositivo, para reduzir o tempo mdio de acesso em
4. Compare o conceito de registro em perifricos de acesso serial e em
aplicaes crticas). Projete algoritmos que implementem essas tcnicas,
perifricos de acesso direto. Investigue de que forma cada tipo de
admitindo a existncia de comandos de entrada/sada que determinem,
dispositivo materializa o seu prprio conceito de registro.
em cada momento, a posio exata do disco em sua rotao e dos
5. Em que situaes uma fita magntica se mostra bastante adequada para
cabeotes em sua movimentao. Indique como incorporar tais
a virtualizao de outros perifricos? Detalhe esse uso para o caso de
algoritmos em um I/O device handler (driver).
sistemas de aquisio de dados operando em locais no atendidos.
9. Os sistemas computacionais antigos faziam suas transferncias de
6. Pesquise na internet caractersticas (velocidade, densidade de gravao,
dados (a) sem nenhum auxlio (operao offline dos dispositivos); (b)
de diversos modelos de fitas magnticas tpicas para armazenamento de
com a ajuda de processadores auxiliares (processador principal e
dados em computadores. Avalie-as comparativamente, e determine uma
processador perifrico diretamente acoplados atravs de discos; (c)
relao aceitvel entre o tamanho de um inter-record gap e a
interligados por vias de dados de alta velocidade); (d) com a ajuda dos
quantidade de fita realmente ocupada por dados em uma operao
canais (virtualizao por tcnica de spooling). Comparar essas tcnicas e
usual. Supondo que cada gravao lgica envolva a transferncia de um
explicar detalhadamente o funcionamento de cada um desses
esquemas.
certo volume v de dados, determine um fator de blocagem apropriado
para que seja ocupada no mnimo uma porcentagem da fita (p%) 10.Usualmente, o spooling interage com outros mdulos do sistema, como
o gerenciador de processos e o gerenciador de informao, atravs de
considerada aceitvel.
tabelas que descrevem as operaes em andamento no sistema
7. Faa um levantamento de caractersticas (capacidade, nmero de
operacional. Descreva como opera um sistema de spooling moderno.
cabeotes de leitura e gravao, tipo de cabeote fixo ou mvel,
tamanho e nmero de trilhas e de setores, velocidade de rotao, tempo
de acesso, de seek e de search, etc) e compare entre si alguns tipos de
Para ilustrar, pode-se observar que no h qualquer preocupao da modelagem quanto relao entre
um programa e uma operao envolvendo seus particulares acessos ao disco, e sim sobre a carga
coletivamente imposta ao disco pelo conjunto dos programas ativos. H diversos outros casos similares
identificveis no artigo.
Nesta segunda parte, o simulador desenvolvido dever ser enriquecido com mais detalhes de modelagem,
de forma que, alm das medidas no nvel do sistema, possam ser efetuadas algumas medidas individuais
tambm.
O intervalo entre dois pedidos sucessivos de entrada/sada e outro pode ser feito constante, e
determinado a partir do nmero de entradas/sadas previstas para o job (representando um tempo
mdio de execuo do programa entre duas operaes de entrada/sada)
Como alternativa, na ocasio da chegada do job ao sistema, o tratamento desse evento pode consistir
em estabelecer, aleatoriamente, com distribuio uniforme, as ocasies em que o programa far
pedidos de entrada/sada ao sistema (isso mais realista, e esses momentos devero nesse caso ser
registrados em uma lista para uso pelo simulador ao longo do processamento).
Os instantes de ocorrncia de referncias aos segmentos de memria podem ser estimados
determinando-se, no momento do recebimento da CPU, se no time-slice corrente haver ou no
referncia a algum outro segmento. possvel tratar as referncias memria de forma anloga
das entradas/sadas. Se estiver sendo executado um segmento Si que tem como segmentos
possivelmente referenciados Sk ,,, Sm , ao receber a CPU, o processamento possvel ser:
o
Referncia a algum dos Sk ,,, Sm antes do trmino do time-slice. Neste caso, contabilizar a
parcela j transcorrida do time-slice, e iniciar a execuo do segmento referenciado (caso
esteja presente na memria, o programa no perde a CPU, mas prossegue no segmento
referenciado, caso contrrio, inclui-se, no incio da lista de eventos, no momento corrente de
simulao, um evento de referncia a um segmento que no est presente na memria
correspondente a uma interrupo de falta de segmento)
Cada recurso gerenciado pelo sistema deve ter sua correspondente fila de espera:
o
Memria
Multiprogramao (com limite pr-fixado de programas simultaneamente ativos no
o
sistema)
o
CPU (lista de processos prontos para serem executados)
Entrada e Sada: uma fila para cada dispositivo
o
Disco: Uma fila nica para o disco fsico
o
o
Arquivos: Uma fila para controlar o acesso a cada arquivo
Descrio do job:
Instante de chegada,
o
Estrutura do job (rvore dos segmentos que o constituem)
o
o
Nmero total previsto de entradas, sadas e acessos a arquivos
Identificao dos arquivos a serem acessados pelo job
o
Tempo mximo de CPU
o
Gerenciador de processos:
o
multiprogramao por time-slice
grau limitado (ajustvel) de multiprogramao;
o
fila cclica de processos prontos para a execuo na CPU (ready list);
o
fila de CPU em regime cclico (round robin)
o
Gerenciador de informaes:
Sistema simples de arquivos linear nico, visvel por todos os programas do sistema.
o
Um esquema de proteo de acesso aos arquivos:
o
Arquivos pblicos/particulares
Identificao do programa possuidor do arquivo
Nome e tamanho do arquivo
Durante a execuo do programa, igualmente provvel que um segmento referencie qualquer dos
segmentos de que depende, ou seja, que esto abaixo dele na rvore de dependncias.
A modelagem da memria segmentada pode ser feita nos mesmos moldes da memria
particionada, com parties de tamanho arbitrrio.
A modelagem do sistema de arquivos poder ser feita aplicando-se rea em disco os mesmos
algoritmos aplicados s parties de memria.
Tabelas de parties livres da memria fsica e de parties livres do disco, com posio e
comprimento.
Tabela de parties ocupadas da memria (uma para cada programa), correspondente segment
map table do programa tabela cujo contedo varia durante o processamento, em funo de quais
segmentos esto presentes na memria fsica
Eventos independentes: chegada dos jobs (identificao, instante de chegada, recursos utilizados:
tempo de CPU, nmero de operaes de entrada/sada, quantidade de memria ocupada pelos
diversos segmentos).
Arquivos do sistema
Arquivos especiais de E/S e de blocagem
Acesso por chaves simples
Acesso por chaves mltiplas
Sistema de Arquivos
Diretrios
VTOC - Volume Table of Contents
Bancos de dados
comprimento do registro
comprimento mximo permitido
data e hora da criao
data e hora da ltima alterao
data e hora do ltimo acesso
Questionrio
1. Que se entende por informao no contexto do presente estudo?
2. Qual o principal papel do administrador de informaes em um sistema
operacional? Descreva macroscopicamente suas funes.
3. Quais as funes bsicas de um administrador de informao?
4. Considerando que a informao um recurso abstrato, sua administrao
pelo sistema operacional difere da administrao dos recursos concretos,
tais como memria e dispositivos de entrada/sada. Comente essa
afirmao e apie seus comentrios com justificativas tcnicas.
5. Em que aspectos o administrador de informaes se assemelha e em
quais outros ele difere dos demais administradores de recursos do sistema
operacional? Quais so as implicaes desses fatos?
6. Que so arquivos? Que tipos de arquivos voc conhece? Quais so as
caractersticas de cada um?
7. Que so arquivos temporrios? Como e em que situaes so utilizados?
8. Descreva o uso dos arquivos destinados blocagem de entrada/sada.
9. Que um sistema de arquivos? Descreva sua estrutura e funcionamento.
10.Que so diretrios (VTOC)? Como costumam ser organizados?
11.Quais so as principais polticas implementadas pelos gerenciadores de
informaes? Quais os objetivos de cada uma? Como so alcanados?
12.Como podem ser implementadas bibliotecas particulares e pblicas de
arquivos, em um sistema de arquivos?
Bibliotecas
Compartilhamento de informao
Compartilhamento controlado
Direito de acesso informao
Estruturao de dados
Gerenciamento de dados
Informao
Informao permanente
Informao temporria
Proteo de informao
Controle de Acesso
Lista de Controle de Acesso
Matriz de Controle de Acesso
Criptografia
Registros de comprimento fixo
Registros de comprimento varivel
proteo contra alterao
read only
temporrio ou permanente
usurio corrente do arquivo
usurio que criou o arquivo
RENAME
SEEK
WRITE
alocao contgua
alocao em lista ligada
arquivos compartilhados
bit map de blocos
Questionrio
1.
Conceitue arquivos. Faa um levantamento dos vrios aspectos dos arquivos que so mais importantes,
do ponto de vista do usurio e do sistema.
2.
Compare, quanto estrutura e quanto utilizao, arquivos cuja organizao seja na forma de:
(a) seqncias de bytes; (b) seqncias de registros; (c) rvore de registros, com chave de busca e
ordenao
3.
Compare estruturalmente arquivos de diversos tipos:
(a) arquivos do usurio; (b) diretrios; (c) arquivos especiais de entrada/sada, usados para simular
terminais, impressoras, etc.; (d) arquivos especiais blocados, usados para modelar discos;
(e) arquivos temporrios de rascunho; (f) arquivos do sistema
4.
Descreva a estrutura e a funo de alguns tipos mais utilizados de arquivos do usurio:
(a) arquivos de dados binrios; (b) arquivos de texto ASCII; (c) arquivos de programas-fonte em
linguagens de programao; (d) arquivos de programas-objeto relocveis; (e) arquivos de programasobjeto executveis; (f) texto de entrada para editorao de texto
5.
Descreva a funo dos seguintes operadores de arquivos, e projete a lgica das rotinas do sistema
operacional que implementam o seu funcionamento:
6.
(a) CREATE; (b) DELETE; (c) OPEN; (d) CLOSE; (e) READ; (f) WRITE; (g) APPEND; (h) SEEK; (i) GET
ATTRIBUTES; (j) SET ATTRIBUTES; (k) RENAME
7.
Esboce a lgica de gerenciamento dos nomes dos arquivos em um sistema de arquivos em que existe
hierarquia similar utilizada em sistemas operacionais como o Windows ou o Linux.
8.
Sugira como implementar, em sistemas de arquivos como os do exerccio anterior, a excluso mtua
entre os espaos de nomes dos arquivos pertencentes a diferentes usurios.
9.
Sugira uma estratgia para que um dado usurio, no sistema de arquivos em questo, possa tornar
visvel, a outro usurio, um arquivo de sua propriedade.
10. Rotinas pertencentes a bibliotecas relocveis costumam referenciar-se umas s outras. Proponha um
esquema de organizao para o sistema de arquivos do sistema operacional, em que fique simples para o
ligador (link-editor) localizar as rotinas relocveis que so do interesse de um dado programa, sem que se
faa necessrio pesquisar todo o contedo dos arquivos que as contm.
11. Proponha um esquema, similar ao do exerccio anterior, para a implementao de hipertextos, ou seja,
arquivos de texto contendo links [apontadores] para informaes contidas em outra parte do mesmo
arquivo, em outros arquivos presentes no sistema, e at mesmo em arquivos residentes em outras
mquinas [neste ltimo caso, a referncia a eles costuma ser feita acrescentando-se, referncia usual,
uma identificao do computador hospedeiro].
12. Descreva o mecanismo de alocao contgua de rea em disco para arquivos. Quais so suas vantagens
e desvantagens? Esboce as estruturas de dados envolvidas em sua modelagem. Compare-o com o
mecanismo correspondente utilizado na administrao de memria.
13. Descreva o mecanismo de alocao de rea em disco para arquivos, atravs do uso de uma lista ligada
de blocos para cada arquivo. Esboce as estruturas de dados envolvidas. Compare-o com o mecanismo
correspondente utilizado em administrao de memria paginada.
14. Descreva formas de controlar a ocupao dos blocos do disco, por parte dos arquivos.
15. Explique o funcionamento dos bit maps das reas em disco, e descreva o algoritmo de controle de
alocao correspondente usando essa estrutura.
16. Repita a questo anterior aplicando-a a outras tcnicas de controle de alocao, tais como: (a) lista de
blocos vazios, (b) listas ligadas de blocos livres e (c) listas ligadas com ndice.
17. Que so i-nodes em sistemas baseados em Unix? De que maneira so utilizados para descrever a
estrutura dos arquivos e mapear os blocos dos arquivos em seus endereos fsicos no disco?
18.
19.
20.
21.
22.
blocos livres
data block
diretrios CP/M (precursor do DOS)
diretrios MS-DOS
diretrios UNIX
i-nodes (index nodes)
lista de blocos vazios
Pesquise, na Internet e na literatura da rea disponvel na biblioteca (no deixe, em funo da facilidade
proporcionada pela internet, de consultar bons livros!), alguns detalhes sobre o formato dos diretrios em
alguns dos mais utilizados sistemas operacionais, especialmente os populares Unix (Linux), MS-DOS e
MS-Windows.
Conceitue compartilhamento de arquivos entre dois ou mais usurios. Como funciona? De que forma
implementado esse recurso?
No sistema CP/M, precursor do MS-DOS, h um s diretrio para todos os arquivos. Para cada arquivo,
tem-se um byte para identificar o usurio a que pertence o arquivo, oito para o nome do arquivo, trs para a
extenso, um para indicar o nmero de blocos e dezesseis para indicar os nmeros dos blocos que
compem o arquivo. No MS-DOS, diretrios so hierrquicos, podendo pois conter diretrios. Para cada
arquivo, tem-se oito bytes para o nome, trs para extenso, um para atributos, dois para data, dois para
hora da criao do arquivo, dois para o nmero do primeiro bloco, e quatro para o tamanho do arquivo. No
Unix, tem-se tambm uma estrutura hierrquica. Cada arquivo tem um nome com quatorze bytes e dois
bytes identificam o nmero do i-node associado ao arquivo. Cada i-node tem um endereo fixo no disco, e
contm os atributos do arquivo ou diretrio e um conjunto de nmeros dos blocos do disco que compem o
arquivo ou diretrio. A partir desses dados, e de outras informaes que voc puder coletar, faa uma
avaliao comparativa da estrutura e do funcionamento dos diretrios desses trs sistemas de arquivos.
Pesquise o mecanismo usado para controlar o uso de arquivos compartilhados nos trs sistemas
estudados no exerccio anterior.
Identifique os principais elementos causadores de problemas de segurana no acesso aos arquivos em
um sistema operacional.
Gerenciamento de Informaes - Uma implementao hierrquica
(Conforme Madnick & Donovan, Operating Systems, McGraw-Hill, 1974)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Que Symbolic File System? Como funciona? Quais as estruturas de dados em que se baseia?
Como efetuada a remoo de um arquivo em um sistema que permite compartilhamento, sinnimos e
repetio de nomes de arquivos?
Quais as vantagens e as implicaes do compartilhamento de arquivos?
Quais as atribuies do Access Control Verification Module? Como funciona?
Quais as tcnicas que voc conhece para controlar o acesso aos arquivos? Como operam? Quais as
vantagens e desvantagens de cada uma?
Quais os tipos de acesso aos registros que os sistemas operacionais oferecem para o usurio de
arquivos?
Que so Overflow Areas? Onde se aplicam? Quais as vantagens e desvantagens de sua utilizao?
Quais as funes do Physical File System? Como so implementadas? Quais as tcnicas utilizadas para
isso?
Que File Buffering? Quais as suas vantagens e desvantagens? Quais as tcnicas empregadas em sua
aplicao?
O que , e onde se aplica a configurao dinmica dos dispositivos de memria de massa de acesso
direto? Quais as suas vantagens e desvantagens?
Que so File Maps? Onde se empregam? Qual a sua aplicao?
Quais as atribuies do Allocation Strategy Module? Quais so as tcnicas que utiliza?
Qual o papel do Device Strategy Module na administrao de informaes?
Proponha outro tipo de arquitetura para a implementao do software de um sistema de administrao de
informao com a mesma funcionalidade do que foi estudado.
Identifique e descreva alguns mecanismos de proteo usados contra acessos no autorizados a arquivos,
em um sistema operacional.
6. data block
7. diretrios CP/M (precursor do DOS)
8. diretrios MS-DOS
9. diretrios UNIX
10.i-nodes (index nodes)
Questionrio:
5. Repita a questo anterior para: (a) lista de blocos vazios, (b) listas ligadas
10. Pesquise o mecanismo usado para controlar o uso de arquivos
de blocos livres e (c) listas ligadas com ndice.
compartilhados nos trs sistemas estudados no exerccio anterior.
6. Que so i-nodes em sistemas baseados em Unix? De que maneira so
11.Identifique os principais elementos causadores de problemas de segurana
utilizados para descrever a estrutura dos arquivos e mapear os blocos dos
no acesso aos arquivos em um sistema operacional.
arquivos em seus endereos fsicos no disco?
12.Identifique e descreva alguns mecanismos de proteo usados contra
7. Pesquise, na Internet e na literatura disponvel na biblioteca, alguns detalhes
acessos no autorizados a arquivos, em um sistema operacional.
sobre o formato dos diretrios em alguns sistemas operacionais reais,
especialmente os populares: Unix (Linux), MS-DOS, MS-Windows.
13.Sugira algumas formas de proteger um sistema de arquivos contra a
invaso por parte de usurios no-autorizados.
8. Conceitue compartilhamento de arquivos entre dois ou mais usurios.
Como funciona? De que forma implementado esse recurso?
14.De que maneira as protees sugeridas poderiam ser utilizadas em outras
partes do sistema operacional, como por exemplo no momento do login, ou
9. No sistema CP/M, precursor do MS-DOS, h um s diretrio para todos os
nas ocasies de acesso a outras mquinas ou por parte de outras mquina.
arquivos. Para cada arquivo, tem-se um byte para identificar o usurio a que
Histrico:
"
%
'
! ,! .
0
1.
&
( ) *+
/
2+
"
$
$
( ) *+ &
&3 3 + 4 /
$
5'
"6
7 $
"
7
8
1"
)(
&
& !
( ) $1 , "
) ( *0 5
:
6
+ - @, ! - $ & 2
$
$
.
!
7 ;=
)
$ &<
7
"
$ &
$
"3
<D 3
;
2+
"6
<DD< +
92
;
)(
<+ 2 &
=
)(
>
2+
"
.
1
;=
( ) *+
$
$ ;
$
=
#
#
!
#
&
:
@
;
6 @7 $
$
$
.
$ ( ) *+ ,
%( ) *+
$
7
( ) *+
&
;
)( C &
+ - @, ! -
+ - @, ! )-)
5-B
$ $
* '
$ &
@ $
$ &
&
"
5 6
"6
"
;
$ /
"
$
:
7
.
=
" #
8
6 !
*4
= 6
@
!
6
: '
2
7
=
"
&
;
: '
1$
!
#<
= ( (
"
6 A
#
: 7
! ;
9&
( (
:;>
7
;
"
&
/
&9
;=
H 7
6
Processos
)-)
=
.
$6
7
.
;
2+
"
./ +
'
&
B0+
&
@
;
"
$ %
&
)-*
"
& #
&
" !"
$
2+
@
@
"F
G
! -*
;
!
7
=
( ) *+
"
A
!
!
!
$ &<
;=
"1
;=
"@
$
$
*4
;=
? + - @, ! = @
.
&
Memria
&
( $
"
$
"
E 0
'0
>
"6
&
, $
2+ )(
"
;
@
'
&
!
0 .
&
#
6
3
5
#
0I 2I (I ,I
.
7
"
04 0J 24 2J (4 (J ,4 ,J
&
#
K
#
,
#
'
2)
'
-) L
7
7
K
7
(7
,M
7
-#
7
- L
$
.
/
#
;
< "
;
;
#< & (
7
7
<
7
$ "
.
;
;
7
< "F
17
& !
N
7
=
/
;=
O
$
7
&
4 + 0 ' -'
<
@
9 "F
# <
<
.
=
7
< &"
+
;
< @
;
<+ "F
=
$
7
,! - :
P+ 0
<
@
9 "F
9 <+
$
F @ 6
.
7
7
#
$ /
7 =
:
+ - ;
< F
@ 6
" M >
7
$
"
:
$6
>
7
.
1
#
;
;
"
$
"
: &
@
#
F
1
' @
#
F
"
:
+ - @, ! - 0 A
:
>
"8
<
Sistema de Arquivos
+ - @, ! - < &
Gerenciamento de memria
. $
$6
+ - @, ! PQ I
/
PQ I
. $
1 .
. $
"
( ) *+
PQ I
+ - @, ! :
:
"
$
$ R
&
&&
$
A
,! - S
N
;=
4K
PQ I <
* T
%
7
. $
,! -A B K
"
"
"
Memria
:
:
"
67
=
1
FL 0 K
=
$ L -K F
Entrada e sada
1
$
"
"
. $
"
7 $
"
:
:
:
Chamadas de supervisor
PQ I
,! -
Gerenciamento de Processos
#
7
F
#
#
:
;=
;=
7 $
.
7
:
:
#
)-)
7
,! - =
7
;=
,! -A
"F
#
7
& #
& # @
1$
;
! )-)
;
P
7
)-)
7
()P 6
A
#
.
5-B 6
,
# ;=
5-B
7
.
$
#
1
" ;
1
7
7 /
< "F
6
$ /
7
$
1
>
"
&
:
B0+
M
7 ;= & !
&
. $
$1
:
&
:
Sistema de Arquivos
. $
. $
. $
Processos
. $
"
"6
" ;
1$ .
6 "
"
,! *
. $
. $
. $
"
7
$
,! -
17
#
. $
"
)-)
7
Entrada e sada
"
;=
Gerenciamento de arquivos
1 .
"
*-
&
"
( ) *+
U&
E #
"
6 #
;
@
;
;=
<
A
;= A 0 5
$
05
"
6
;=
"
;
05
05
"
$
"
:
$
"
<
"
05A
05
"
"
"
$
@
:
#
7
"6
=
$ *
$
=
. $
F *$
05
. $
05
05
@
" * F
"
. $
Entrada/Sada
6
$
$6
7
$
: 7
>
. $
/1@
;=
$
7
1
"
;=
$
*
;=
Histrico:
Objetivos
posicionar para i/o: seek(fd, posio, tipo) onde tipo: multitasking pode ser especificado usando um &
aps
o
comando
que
se
deseja
rodar
relativo/absoluto, nmero de bytes por transferncia
concorrentemente: (a;b;c)& indica que a seqncia a,
Sistema de arquivos
depois b, depois c vai ser executada em background,
os arquivos contm qualquer tipo de dados que o
concorrentemente com outras anteriormente ativadas
usurio neles depositar
o
os registros dos arquivos no tm estrutura imposta 3 Estudo de Caso LINUX
pelo sistema
(Silberschatz, Galvin e Gagne - Applied Operating
Systems Concepts - Wiley,2000)
sistema de arquivos em disco; blocos de 512 bytes
o disco dividido em 4 regies: rea de boot; rea Histrico
contendo o tamanho do disco e os limites das demais Linux um dos vrios S.O. compatveis com o Unix
regies; rea do i-list, com a lista dos i-nodes, cada Este sistema tem evoludo continuamente, e de
qual descrevendo um arquivo; rea para os arquivos
forma muito rpida.
i-node contm: identificao do dono do arquivo; Este resumo est baseado na verso 2.0, de 1996
identificao do projeto; bits de proteo; endereos Seu desenvolvimento comeou em 1991
dos contedos do arquivo; tamanho do arquivo; hora Linus Torvalds, finlands, desenvolveu o primeiro
da criao; hora do ltimo acesso; hora da ltima
Linux para o processador 80386 da Intel, de 32 bits.
alterao; nmero de links para esse arquivo; tipo de A partir de um kernel inicial e com o apoio de uma
arquivo: diretrio, arquivo comum, arquivo especial
comunidade da Internet, cresceu at realizar boa
diretrio hierrquico: caminho x/y/z - raiz x, sub-raiz
parte dos servios do Unix.
y , folha z
Inicialmente, o trabalho girou em torno do kernel. O
Kernel um mdulo original. O sistema como o
Shell
conhecemos
hoje agregou muitos mdulos adicionais,
fornece linguagem de controle para o usurio
alguns
originais,
outros adaptados.
cada comando tem um nome e uma lista de
O ambiente Linux padronizado, mas no padroniza
argumentos especficos, separados por brancos
o uso dos aplicativos
arquivos precedidos de < fornecem entradas para
Uma distribuio Linux incorpora o Linux bsico, e
um comando
um
conjunto de ferramentas de instalao e
arquivos precedidos de > recebem as sadas do
atualizao
comando
arquivos de sada precedidos de >> acrescentam Implementao monoltica p/ melhor desempenho
Projeto modular
dados (append) em vez de sobrescrever
Permite carregamento e descarregamento de drivers
um
sistema
multiusurio,
com proteo entre
interrogao ? denota qualquer caractere
processos
pipes so arquivos abertos conectando dois
Usa um scheduler para partilhar o tempo de cpu
processos: a | b
entre os processos ativos
as sadas de um programa se tornam as entradas do
Novos
processos compartilham partes seletivas do
seguinte
ambiente
ancestral
sincronizao, scheduling, buffering so feitos
Isso permite trabalhar em multi-threading
automaticamente pelo sistema
Os processos se comunicam atravs de um sistema
pipeline uma fila linear de pipes: a | b | c | d
de comunicao herdado do System V (filas de
processos podem encadear-se de forma mais geral.
mensagens,
semforos, memria compartilhada) e
filtros processam um fluxo de entrada, produzindo
pela
interface
do BSD
um fluxo de sada
Projeto
Exerccios
Componentes:
HAL (hardware abstraction layer)
Interage com o hardware, aciona os dispositivos da placa-me
Cria abstraes particulares de hardware na mesma arquitetura
Microkernel
Implementa os mecanismos bsicos do sistema operacional
Scheduling para os threads, gerenciamento das interrupes, etc
Drivers para os dispositivos de entrada/sada
Controle dos dispositivos perifricos
Executivo
Administra os principais subsistemas do SO: sistema de arquivos,
subsistema de E/S, e memria
API nativa (Application Programming Interface)
Subsistemas de ambiente: disponibiliza um ambiente especfico para
processos em modo usurio. Exemplos: Win32, SFU, WOW64
DLLs (Dynamically Linked Library)
Mdulos do usurio que podem sofrer ligao dinmica
Funes que do acesso a recursos menos usuais do sistema.
System services
Daemons: sempre executados em background Ex: Task Manager,
Computer Browser, etc.
Mecanismos de gerenciamento do sistema
ambiente no qual so executados os componentes do Win-XP
armazenamento e recuperao dos dados (registros):
dados do usurio / sistema / hardware / aplicaes
organizado em rvore de chaves
administrado pelo configuration manager
objetos (recursos lgicos ou fsicos)
gerenciados pelo object manager
estrutura de dados em memria
em cada instncia: atributos e funes do objeto
Ex: processos, threads, pipes, arquivos, dispositivos...
pointers (s usados pelo kernel mode threads)
handles (user-mode processes / kernel components)
controla a ao dos threads sobre o objeto
pode ser duplicado e passado entre os processos
nomes opcionais para os objetos
permite apagar objetos eliminando-os da memria
prioridade de interrupo
IRQL (interrupt request levels) - prioridades
o processador executado em alguma IRQL
mascara as interrupes com o IRQL corrente
IRQLs (em ordem crescente de prioridade):
passivo (nenhum)
APC asynchronous procedure calls (software)
DPC dsipatch deferred proc. calls, thread scheduling
(software)
device IRQL device interrupts
critical system interrupts: debugger, clock, interprocessor
request, power, high.
Assunto 6o estudo de caso Mach (Tanenbaum, Distributed Operating Systems, cap.8, Prentice Hall, 1995)
Histrico
Origens no sistema RIG (Rochester Intelligent Gateway), Universidade de Rochester, 1975
A 1a. verso do sistema foi lanada em 1986 p/ VAX 11/784, multiprocessador com 4 processadores
Logo em seguida foi portado para IBM PC/RT e Sun 3
Em 1987 estava implantado em outros multiprocessadores: Encore e Sequent
Nesta poca estava concebido para ser usado em um nico computador
A Open Software Foundation usou como base o Mach 2.5 para seu primeiro sistema operacional:
OSF/1
Em 1988, o Mach 2.5 apresentava um kernel monoltico e grande.
Em 1989, a Carnegie Mellon University reduziu o volume do kernel, transferindo boa parte para a rea
do usurio, restando somente o microkernel do Mach.3.0
neste resumo discute-se a v.3.0, base de todas as verses geradas pela Open Software Foundation.
Objetivos
pesquisar organizaes do S.O. que proporcionassem suporte eficiente p/ passagem de mensagens.
suportar comunidades de processos em ambientes multiprocessados cuja nica forma de
comunicao seja a mensagem.
servir de base para a construo de outros sistemas operacionais.
dar suporte a espaos de endereamento grandes e esparsos.
proporcionar acesso transparente a recursos de rede.
explorar o paralelismo do sistema e dos aplicativos.
tornar o Mach o mais porttil possvel para grande nmero de mquinas.
pesquisa e desenvolvimento: sistemas distribudos e multiprocessados, e emulao de sistemas
reais como UNIX, MS-DOS, Macintosh Operating System.
At os dias de hoje, o Mach dos poucos sistemas multiprocessados independentes de mquina.
Microkernel
construdo de forma que possa emular vrios S.O., como UNIX, MS-DOS, e outros.
administra: processos, memria, comunicaes, servios de Entrada e Sada.
arquivos, sistemas de arquivos, diretrios, etc so tratados na rea do usurio.
permite que o sistema opere, mas deixa as polticas para o nvel do usurio.
Oferece cinco abstraes bsicas: processos, threads, objetos de memria, ports, mensagens.
Outras abstraes so tambm gerenciadas, tanto relacionadas a essas ou externas ao modelo.
Processos: ambientes bsicos em que a execuo ocorre. so unidades bsicas de alocao de
recursos.
Threads em Mach so entidades executveis, e formam parte de um nico processo (processos com
apenas um thread coincidem com processos clssicos).
Objetos de memria caracterizam o S.O. Mach, e so estruturas de dados que podem ser mapeadas
para alguma parte do espao de endereamento de processo.
Podem ocupar uma ou mais pginas. So a base do sistema de memria virtual.
As interrupes ocorrem quando da referncia a objeto de memria no presente na memria fsica
O microkernel captura a interrupo, mas o tratamento desviado para um programa na rea do usurio
por meio de uma mensagem enviada pelo sistema.
Passagem de mensagens
A comunicao baseada na passagem de mensagens entre processos.
Port uma caixa de correio protegida, fica no microkernel, e guarda uma lista ordenada de
mensagens.
As filas no tm tamanho fixo, mas bloqueiam o remetente se tiverem atingido um determinado
comprimento (que pode ser escolhido caso a caso).
Direitos de acesso (capabilities) ao port podem ser passados a outros processos.
Os processos com direito de acesso enviam mensagens ao port, que ento pode ser lido pelo
proprietrio.
Toda a comunicao do Mach se baseia nesse mecanismo.
Assunto: 7 Estudo de Caso Amoeba (Tanenbaum, Modern O. S., cap. 14, Prentice Hall, 1992)
Histrico
Origem na Vrije Universiteit, Amsterdam, Holanda
1981 - projeto de pesquisa em sistemas distribudos e paralelos (Tanenbaum mais 3 alunos de doutorado)
1983 - prottipo inicial em operao (Amoeba 1.0)
1984 - o grupo original se dividiu
Nos anos seguintes, o projeto estendeu-se Noruega e Inglaterra (patrocnio da Comunidade Europia)
Amoeba 3.0 usava RPC, diferentemente das verses iniciais.
Evoluiu por vrios anos: emulao parcial do UNIX, comunicao de grupos, protocolo de baixo nvel indito.
Arquitetura
O nmero de processadores disponveis muito elevado, e cada processador tem dezenas de Megabytes
A fora do sistema que ele integra de forma trivial um conjunto muito grande de processadores.
Amoeba v conjuntos de X-terminals, de servidores e um pool de processadores
O pool de processadores se forma de computadores c/ diferentes arquiteturas: 68030, 386, VAX, SPARC
Amoeba foi projetado para sistemas heterogneos, mesmo para processos de um mesmo programa.
Prefere-se alocar novos processadores. Na escassez de processadores, usa-se multiprogramao.
A hiptese da presena de muita memria nos processadores influenciou o projeto do Amoeba.
Um terminal tpico tem X-terminal, tela grande bit-mapped, mouse, ou ento, computador com X-Windows
Processadores do pool so baratos porque s tm uma placa do hardware, com conexo para a rede.
Os processadores do pool podem ser computadores pessoais ou estaes de trabalho.
O pool pode no estar fisicamente confinado em um nico local fsico.
Servidores especializados so essenciais no Amoeba, e rodam continuamente, por opo do administrador
Exemplo: um ou mais servidores de diretrios, para otimizar o manuseio dos diretrios dos processadores.
Servidores produzem servios. Podem ser compostos de vrios processadores.
O Microkernel Amoeba
Amoeba tem duas partes: o microkernel residente em todos os processadores e um conjunto de servidores
Segue o modelo de cliente-servidor: servidores realizam a funcionalidade dos sistemas operacionais usuais.
O mesmo microkernel roda no pool de processadores, nos terminais, nos servidores.
4 funes gerenciais: processos e threads / bsico de memria/ comunicao / E/S de baixo nvel
Threads (cada thread tem seus prprios registradores, contador de instrues e pilha.
Conj. de threads de um processo: similar a proc. independentes UNIX, mas compartilham o endereamento.
Uso tpico de multithreads: servidor de arquivos cada solicitao abre um thread seqencial separado.
Memria segmentada. Read, Write, Mapeamento no espao de endereamento do thread chamador
Um processo pode ter diversos segmentos: de texto, de dados, de pilha, etc., totalmente a critrio do usurio
Comunicao de processos: ponto a ponto (cliente-servidor, com espera) e de grupo (por mensagens).
Entrada/Sada drivers (no dinmicos) para os dispositivos. Comunicam-se por mensagens.
Protocolo FLIP especializado para computao distribuda.
Amoeba Servers
Realizam tudo o que o microkernel no faz, minimizando o kernel, e tornando-o gil e flexvel.
Clientes so escritos pelo usurio. Servidores so criados por programadores de sistema, ou pelo usurio
Objeto como um tipo de dados abstrato (dados encapsulados, mais conjunto de operaes associadas)
Para todo objeto, um servidor de objetos fornece um cdigo de acesso para o seu usurio (capability)
Cada servidor tem seus stubs disponveis na biblioteca. O usurio chama os stubs para requisitar servios
Bullet server o servidor de arquivos. Cria arquivos que no podem ser modificados, apenas apagados.
Directory server ou soap server gerencia nomes de arquivos, caminhos na rvore e capabilities.
A diviso do sistema de arquivos nesses dois servidores simplifica e flexibiliza sua operao
Outros servidores copiam objetos, iniciam processos, monitoram falhas no servidor, comunicam c/o exterior
Objeto (tipo abstrato de dados, passivo) o conceito unificador usado nos servidores e servios do Amoeba.
Os objetos so criados e manipulados via RPC (remote procedure call) a um servidor de objetos.
Este executa o pedido e retorna o resultado, sincronamente. Ao criar o objeto, recebe-se sua capability.
Ao cliente irrelevante onde ficam os objetos, bem como qual servidor o atende.
Capabilities (cdigos criptografados nicos, transparentes quanto ao local, e prprios de cada objeto)
Nomeiam e protegem objetos de maneira uniforme. So associados aos objetos quando estes so criados.
Contm: server port (mq. do servidor), object (identifica o objeto), rights (direitos), check (redundncia)
Proteo restringe-se por funo unidirecional o direito de acesso do usurio com a capability do objeto
A criptografia unidirecional impede burlar direitos de acesso. Amoeba no usa listas de controle de acesso.
Operaes: Age (garbage collection), Copy/Destroy (duplica/apaga objeto, fornece capability para a cpia),
Setparams/Getparams (estabelece/obtm parmetros associados ao servidor), Info (obtm informao breve
sobre o objeto), Status (obtm o estado corrente do servidor, Touch (finge que acabou de usar o objeto), Restrict
(solicita novo capability mais restrito).
Processos ( espao de endereamento mais um conjunto de threads associados ao processo) e Threads
Ao criar processos, o processo-pai ganha capability para suspender, reiniciar, destruir processos-filhos
Gerncia: nvel baixo (servidores, threads do kernel); mdio (bibliotecas, interf. p/ usurios), alto (run server)
Segmentos: pilhas c/ stack pointers, texto c/ program counters, dados compartilhados ou privados
Threads: modelo simples. Variveis glocais invisveis a outros threads, mas globais s rotinas do thread.
Scheduling de threads usa um esquema de prioridades. A prioridade mais alta a dos threads do kernel.
Memria (segmentada no paginada; alocao contgua, sem usar a paginao oferecida pelas MMUs)
Cada processo pode ter um nmero arbitrrio de segmentos; operaes: create, destroy, read, write.
Segmentos podem ser mapeados (associados a endereos fsicos) ou desmapeados (eliminados do espao
fsico), no espao de endereamento desejado.
Sumrio
Implementa transparncia: do processador em que roda, de onde o arquivo fica, das cpias de segurana.
Capabilities fornecem mecanismo simples para nomear/proteger objetos (direitos de acesso s operaes)
2 mecanismos de comunicao: comunicao confivel de grupo ou RPC ponto a ponto. Protocolo FLIP.
Arquivos: 3 servidores - bullet server (p/ os arquivos, todos no modificveis), directory server (tolerante a
falhas, converte strings ASCII em capabilities), e replication server (manuseia replicao preguiosa)
Assunto: 8o. Estudo de Caso P-system (Fonte: cap. 9 de L. S. Keller, Operating Systems, Prentice Hall, 1988)
P-system - sistema operacional universal (p = pseudo), porttil, independente do Arquivos eram armazenados em volumes de dados
Um volume se associa com diversos dispositivos
hardware hospedeiro
Os dispositivos podem ser block-structured (discos), interativos (terminais) e writeonly (impressoras)
Histrico e objetivos
Os dispositivos so numerados para efeito de endereamento
1970 - Origem ligada ao desenvolvimento da linguagem Pascal e ao aparecimento dos Cada volume tem um nome de at sete caracteres, seguido de dois-pontos.
microcomputadores
Discos so estruturados como um vetor de blocos de 512 bytes de 8 bits,
UCSD usava um sistema de time-sharing sobrecarregado, decidiu migrar para os
diretamente endereveis.
novos microcomputadores
A estrutura do sistema de arquivos repousa sobre essa estrutura vetorial simples.
1974 - um grupo de estudantes iniciou um projeto que daria origem ao p-system
O sistema de arquivos do p-system no hierrquico
(ambiente completo p/ Pascal)
A estrutura lgica de um disco do p-system inclui: Area 1 (trilha 0, opcional); Area 2
O ambiente compunha-se de: monitor com Sistema Operacional, editor, compilador
(1K - bootstrap ou teste); Diretrio (2K bytes); Restante do disco lgico (arquivos do
e sistema de arquivos.
usurio); Area 3 (parte do disco no usado, opcional)
Deveria atender tanto aos programadores principiantes como aos veteranos
Arquivos so alocados em blocos contguos
UCSD-Pascal foi estendido para atender os requisitos de ensino e de programao A fragmentao resultante se elimina acionando-se manualmente um comando de
de sistemas.
garbage collection
Procurou-se fazer o projeto independente de um hardware especfico, mas apoiado A poltica de alocao utilizada a de worst-fit (aloca sempre na partio vazia de
em uma pseudo-mquina (esta tcnica j havia tido sucesso na produo de
maior tamanho)
compiladores Pascal)
Pode-se mudar a escolha para a partio com metade do tamanho mximo, ou
Usou-se a tcnica da interpretao de uma linguagem intermediria (p-code)
qualquer tamanho desejado
aderente linguagem Pascal
A referncia completa a um arquivo inclui o nome do volume, o nome do arquivo e a
A equipe produziu ento vrias adaptaes do sistema para diversas mquinas
extenso
(PDP-11, LSI-11, Z-80, 8080)
Uso de abreviaturas: asterisco indica o disco lgico do sistema; dois-pontos indica o
As verses iniciais at I.3 tiveram patrocnio governamental. Em1979, a SofTech
disco lgico do usurio; smbolos especiais (coringas, wild cards) podem ser
recebeu licena para explorar.
indicados pelo usurio para designar um ou mais arquivos
Outras companhias tambm receberam licenas e surgiu uma famlia de projetos.
o nmero mximo de arquivos por volume de 77 (nmero mximo de linhas em um
Em uma delas (Western Digital V.III), a mquina-p se tornou hardware real, e Pascal
diretrio de dois blocos). Essa restrio no problema para disquetes, mas sim para
incorporou concorrncia.
discos rgidos maiores
1985 - foram lanadas as Verses IV.2 e IV.21, bem mais eficientes, com mais na verso IV do p-system surgiu uma soluo para isso: o conceito de sub-volume
recursos, e com acesso rede.
Um sub-volume um arquivo com estrutura igual de um disco, que pode ser
montado ou desmontado dinamicamente pelo usurio
Volumes que no so estruturados em blocos no podem ser referenciados
Comandos de controle (menu-driven)
explicitamente pelo usurio
Os p-systems operavam em configuraes de no mnimo 64 k bytes, pelo menos dois
disquetes de 320 k cada um, monitor de video com scroll e cursor posicionvel na tela,
Arquitetura da p-machine
e uma impressora.
Ao incio aparece uma linha com um conjunto hierrquico de comandos, O sistema p foi projetado e desenvolvido em UCSD Pascal, e executado sobre a
mquina virtual para a qual esse compilador gera cdigo
selecionveis pela primeira letra.
Quando h mais comandos, nova linha pode ser pedida como uma das opes do Um programa em UCSD Pascal composto de comandos similares aos das outras
linguagens de programao, mas em tempo de execuo uma pilha resolve a maioria
menu.
das operaes.
Quando o comando usa parmetros, estes so solicitados ao operador.
A execuo de p-code exige um emulador da p-machine na mquina hospedeira.
Sistema de Arquivos
Todas as estruturas estticas de dados do programa so mantidos na pilha
Sistema simples e eficiente: influncia da arquitetura dos microcomputadores sobre os
Componentes do p-system
unit um mdulo compilado de programa escrito em UCSD Pascal
units so tratadas como se fossem segmentos.
bibliotecas arquivo de cdigo cujos segmentos so na maioria units
kernel residente em memria; mantm o pool de cdigo, trata erros, l os
segmentos, aceita comandos, carrega programas, inicia o sistema, reporta erros.
o segmento principal de um programa do usurio mapeado para uma unit
denominada Userprog; constri-se o correspondente ambiente de execuo, e o
sistema chama Userprog como se fosse um de seus mdulos.
Por segurana, a maioria dos mdulos do sistema no pode ser acessada
diretamente pelo usurio.
independncia de dispositivo
na poca do seu projeto (1974), optou-se por fazer um sistema orientado operao
com console e tela, independente do dispositivo particular de hardware (no
trivial).
Isso foi uma deciso to importante quanto a de assegurar ao p-system independncia
do processador utilizado.
Baseia-se na especificao de uma pseudo-tela de monitor, e sua emulao usando o
hardware instalado
p-system em rede
Liaison o nome de uma verso de p-system para uso em rede local, baseado no
modelo cliente-servidor
Liaison abstrai a arquitetura da rede a uma pseudo-arquitetura padro. Drivers de
rede promovem interfaces
Vrios usurios podem ser atendidos simultaneamente, por diversos servidores ou
por um mesmo servidor.
dispe-se de servidores de disco, de semforos, de impresso, assim como de
protocolos de comunicao
A rede de computadores heterogneos, em hardware (chegou-se a criar mquinasp emuladas em micro-cdigo) e em sistema operacional.
Houve implementaes de vrias linguagens baseadas em p-code: Fortran 77, Basic,
Snobol, Prolog, Modula-2
plataforma
disponibilidade
97,44%
99,73%
99,78%
99,90%
99,94%
99,998%
usa paginao (sob requisio) e segmentao: Cada usurio tem acesso virtual a
16MB distribudos em 256 segmentos de igual tamanho (64K). Cada segmento tem 16
pginas de 4K.
O limite terico do espao de endereamento inexiste, mas h a limitao fsica da
memria e dos dispositivos
O mapeamento de endereos lgicos em endereos fsicos intrincado, envolvendo
uma tabela de segmentos, tendo cada segmento uma tabela de pginas. Uma tabela
adicional de pginas externas referencia as pginas no dispositivo de armazenamento
secundrio.
Gerenciamento de Processador
Parte das funes do gerenciamento do processador ficam no mdulo de
gerenciamento de tarefas, outras no gerenciamento de supervisor
Gerenciamento de tarefas manipula as interrupes geradas durante a execuo do
programa
O despachante controla o estado da tarefa: pronta, em execuo ou em espera
Gerenciamento de programas (LINK, LOAD) busca um programa, carrega-o e
transfere controle ao programa, sai de um programa, carrega/apaga um mdulo em
memria virtual.
Gerenciamento de Dispositivos
Aloca e libera espao em DASD (direct acess storage device): ALLOCATE, EXTEND,
SCRATCH
Supervisor de E/S (IOS) controla hierarquia do sistema de E/S: CPU, Canais, Unidades
de controle, Dispositivos.
Drivers IOS fazem interface direta com os IOS executando programas de canal
E/S Virtual (VIO) manipula arquivos temporrios, usando trilhas virtuais, eliminando
overheads desnecessrios.
Gerenciamento de Arquivos
Opera sob a responsabilidade do mdulo de gerenciamento de dados, que coordena o
gerenciamento dos arquivos atravs dos mdulos de gerenciamento de catlogo, de
suporte de E/S e dos mtodos de acesso
catlogo estabelece conexo entre o nome e o endereo fsico dos arquivos
suporte de E/S responsvel pelas funes OPEN e CLOSE, e mais alguns controles
de entrada e sada.
mtodos de acesso
bsico (READ, WRITE) com controle de buffers e de sua utilizao sob a
responsabilidade nica do usurio
por filas (GET, PUT) com controle de buffers sob a responsabilidade do sistema
acesso seqencial, seqencial indexado, direto, por parties, armazenagem
virtual
Gerenciamento de Arquivos
O sist. de arq. Spiralog expande as capacidades do Files-11 e se baseia no LFS
(Berkeley Sprite Log-Structured):
Integrado ao Open MVS e compatvel com Files-11, antigo sistema de arquivos
do Open MVS
Dados permanentemente disponveis mesmo durante operaes de backup
Permite aumentar o volume de armazenagem online sem aumento significativo
de custo de manuteno
Redimensionamento do sistema em caso de ampliao de processamento ou
armazenagem
Melhor desempenho em operaes de gravao intensiva
Facilidade de acesso a dados gravados em diversos tipos de clientes (sistemas
operacionais diversos)
VPI a camada de servios do sistema de arquivos do Open MVS
Nomes de arquivos 256 caracteres unicode; sem restries profundidade de
diretrios
Arquivos com at 255 seqncias, cada uma com endereamento de 64 bits; id
como inteiros de 64 bits
compartilhamento livre de arquivos e diretrios estruturados em rvores
binrias
Servidor LFS mapeia endereos lgicos em fsicos das seqncias de dados que
compe os arquivos
mapeia novas operaes de leitura/escrita em um log aberto; mapeia log aberto
em rea finita de espao em disco; libera espao ocupado por reas
sobrescritas do log (garbage collection)
Interface com o Usurio
Textual, com um help abrangente; comandos relativamente padronizados;
Arquivos de script podem ser criados e executados como se fossem um comando
adicional
possvel efetuar redirecionamento de arquivos
comandos adicionais : Append, copy, sort, merge, search, help
Concluso
Open MVS sempre procurou facilitar a migrao de plataformas mais antigas para
as mais novas;
S na verso 7 os usurios se beneficiam totalmente do endereamento virtual de
64 bits
Essa verso tambm incorpora VLM (Very Large Memory), suporte para VLDB
(Very Large Database), operaes rpidas de E/S, percursos rpidos e multiprocessamento simtrico
Spiralog aumenta a potencialidade Files-11, original do Open MVS
As autoras relatam que estava em desenvolvimento uma integrao do Open MVS
com o Microsoft Windows, incluindo solues de rede e aplicativos
complementares.
Assunto: Estudo de caso Microsoft Windows Vista (Stallings Operating Systems Internals and Design principles, 6a. ed. Pearson, 2009)
do sistema e um cliente, podendo esses estar localizados indiferentemente, em qualquer
Windows Viso geral
Origens: o sistema operacional Windows comeou com o MS-DOS ou PC-DOS, um ponto da rede, envolvendo um ou mais servidores, e um ou mais clientes.
Isso exige conexes rpidas e protocolos confiveis, para que o sistema operacional
produto muito diferente, e sua evoluo durou muitos anos.
possa tanto garantir qualidade nessas transferncias como atender bem o usurio online.
DOS 1.0, 1981 foi criado para os primeiros computadores pessoais IBM.
Os servidores do sistema operacional so multitasking e multiusurios, e permitem
MS-DOS 2.0, 1983, foi desenvolvido para uso no PC-XT com disco rgido.
diversas conexes locais, e tambm compartilhar servios entre vrios usurios da rede.
Limitado: permitia no mximo 64 arquivos, em um nico diretrio.
Assim, como servidor Internet, o Windows permite milhares de conexes simultneas.
MS-DOS 3.0, 1984, foi desenvolvido para uso no PC-AT com Intel 80286.
Vrias melhorias: suporte para rede, diversos perifricos. A verso 3.3, de 1987, dava
suporte ao sistema IBM PS/2, mas no explorava adequadamente suas capacidades. O
DOS estava sendo usado em computadores que
...
MS-Windows NT, 1993, foi lanada a primeira verso (3.1) do Windows NT, como um
sistema operacional de 32 bits que suportava as aplicaes do DOS, das verses
anteriores do Windows e do OS/2. Depois de vrias verses do NT 3.x, foi lanado o NT
4.0, com a mesma arquitetura interna, mas com a mesma aparncia externa do Windows
95, que era um upgrade melhorado do Windows 3.1, em que muitas partes grficas antes
executadas em modo usurio tornaram-se parte do sistema, que assim ficou mais rpido,
porm essa facilidade de acesso a elementos internos do sistema tornou-o mais
vulnervel.
MS-Windows 2000 foi um dos maiores upgrades da Microsoft. As partes centrais
(Executive e Kernel) so essencialmente os mesmos do NT 4.0, mas foi adicionado
suporte para processamento distribudo. Principais recursos: Diretrio Ativo (servio
distribudo que mapeia os nomes de quaisquer objetos em quaisquer tipos de informao
a eles associada), incorporou os recursos plug-and-play e power-management j
presentes no Windows 98 (sucessor do Windows 95)
MS-Windows XP, 2001, atendia aplicaes domsticas e profissionais. Em 2003, o
Windows Server 2003 atendia arquiteturas de 32 e 64 bits, e no seu primeiro upgrade,
passou a aceitar o processador AMD64 tanto em servidores como em desktops.
MS-Windows Vista, 2007, d suporte s arquiteturas Intel x86 e ao AMD x64. As
principais diferenas foram na interface com o usurio e nas tcnicas de segurana.
Emprega o Windows Server 2008.
Caractersticas do Sistema Vista:
A exemplo do UNIX e do MacOS, o Windows se tornou, a partir da verso 2000, um
paradigma de sistema operacional para microcomputadores.
Explora os recursos dos atuais avanadssimos microprocessadores de 32 e 64 bits,
comparveis aos mainframes de alguns anos atrs.
O aumento de velocidade, capacidade de memria, poder computacional do conjunto de
instruo dos processadores e suporte memria virtual e a poderosas interfaces Arquitetura do Windows Vista: A figura acima esboa a arquitetura do Windows ViSTA
grficas, tornou vivel implementar multitasking em computadores pessoais, estaes de
trabalho e servidores, nos quais se exigem aplicaes cada vez mais complexas e
interdependentes, viabilizando o uso simultneo de programas pelo usurio.
A popularizao de programas com arquitetura cliente-servidor, permitindo que
programas desenvolvidos com essa arquitetura sejam executados usando um provedor
*#
#
*#
"
'
"
(
%
&
7
&
*#
'
8
(
&
*#
"
& &
*#
*#
+
"
*#
'!
#
&
*#
#
"
7
*#
,/
*-
(
) %+ %
-.
-
) *
,
,) ,
"
/
,/
/
#
3#
!
*-
"
"
# $%
(
*#
3#
#
1
*# 2
2
( "
&
!
"
8 7
8 7
8 7
1
8
&
*#
8
8
8
&
*#
"
&
*#
'!
9
'
#
:
!
%
7
7
7
7
7
*#
*#
*-
*#
8 7
7
&
&
& *#
"
"
%
6
&
% 2 3 2 (0 5 3
'
*#
"
*-
2345
6
( /
%0 %1
&
"
*#
(
&
*-
#
3#
*#
*#
&
#
!
"
<
4
:
"
(
&
8
Para ilustrar, pode-se observar que no h qualquer preocupao da modelagem quanto relao entre
um programa e uma operao envolvendo seus particulares acessos ao disco, e sim sobre a carga
coletivamente imposta ao disco pelo conjunto dos programas ativos. H diversos outros casos similares
identificveis no artigo.
Nesta segunda parte, o simulador desenvolvido dever ser enriquecido com mais detalhes de modelagem,
de forma que, alm das medidas no nvel do sistema, possam ser efetuadas algumas medidas individuais
tambm.
O intervalo entre dois pedidos sucessivos de entrada/sada e outro pode ser feito constante, e
determinado a partir do nmero de entradas/sadas previstas para o job (representando um tempo
mdio de execuo do programa entre duas operaes de entrada/sada)
Como alternativa, na ocasio da chegada do job ao sistema, o tratamento desse evento pode consistir
em estabelecer, aleatoriamente, com distribuio uniforme, as ocasies em que o programa far
pedidos de entrada/sada ao sistema (isso mais realista, e esses momentos devero nesse caso ser
registrados em uma lista para uso pelo simulador ao longo do processamento).
Os instantes de ocorrncia de referncias aos segmentos de memria podem ser estimados
determinando-se, no momento do recebimento da CPU, se no time-slice corrente haver ou no
referncia a algum outro segmento. possvel tratar as referncias memria de forma anloga
das entradas/sadas. Se estiver sendo executado um segmento Si que tem como segmentos
possivelmente referenciados Sk ,,, Sm , ao receber a CPU, o processamento possvel ser:
o
Referncia a algum dos Sk ,,, Sm antes do trmino do time-slice. Neste caso, contabilizar a
parcela j transcorrida do time-slice, e iniciar a execuo do segmento referenciado (caso
esteja presente na memria, o programa no perde a CPU, mas prossegue no segmento
referenciado, caso contrrio, inclui-se, no incio da lista de eventos, no momento corrente de
simulao, um evento de referncia a um segmento que no est presente na memria
correspondente a uma interrupo de falta de segmento)
Cada recurso gerenciado pelo sistema deve ter sua correspondente fila de espera:
o
Memria
Multiprogramao (com limite pr-fixado de programas simultaneamente ativos no
o
sistema)
o
CPU (lista de processos prontos para serem executados)
Entrada e Sada: uma fila para cada dispositivo
o
Disco: Uma fila nica para o disco fsico
o
o
Arquivos: Uma fila para controlar o acesso a cada arquivo
Descrio do job:
Instante de chegada,
o
Estrutura do job (rvore dos segmentos que o constituem)
o
o
Nmero total previsto de entradas, sadas e acessos a arquivos
Identificao dos arquivos a serem acessados pelo job
o
Tempo mximo de CPU
o
Gerenciador de processos:
o
multiprogramao por time-slice
grau limitado (ajustvel) de multiprogramao;
o
fila cclica de processos prontos para a execuo na CPU (ready list);
o
fila de CPU em regime cclico (round robin)
o
Gerenciador de informaes:
Sistema simples de arquivos linear nico, visvel por todos os programas do sistema.
o
Um esquema de proteo de acesso aos arquivos:
o
Arquivos pblicos/particulares
Identificao do programa possuidor do arquivo
Nome e tamanho do arquivo
Durante a execuo do programa, igualmente provvel que um segmento referencie qualquer dos
segmentos de que depende, ou seja, que esto abaixo dele na rvore de dependncias.
A modelagem da memria segmentada pode ser feita nos mesmos moldes da memria
particionada, com parties de tamanho arbitrrio.
A modelagem do sistema de arquivos poder ser feita aplicando-se rea em disco os mesmos
algoritmos aplicados s parties de memria.
Tabelas de parties livres da memria fsica e de parties livres do disco, com posio e
comprimento.
Tabela de parties ocupadas da memria (uma para cada programa), correspondente segment
map table do programa tabela cujo contedo varia durante o processamento, em funo de quais
segmentos esto presentes na memria fsica
Eventos independentes: chegada dos jobs (identificao, instante de chegada, recursos utilizados:
tempo de CPU, nmero de operaes de entrada/sada, quantidade de memria ocupada pelos
diversos segmentos).