Vous êtes sur la page 1sur 38

Plano da Disciplina PCS-2453 Sistemas Operacionais Prof.

Joo Jos Neto Aula 1


Mdulo I Generalidades
1. Introduo. Histria. Terminologia. Conceitos bsicos de sistemas
operacionais
2. Administrao de recursos, Mquina estendida, Interface com o usurio,
Controle de transies de estados de processos
Mdulo II O Processador e seus Perifricos
3. Entrada e sada. Espera ocupada. Interrupo. Rotinas de tratamento de
interrupo. Tipos de interrupo. Tcnica de buffering
4. Acesso direto memria. Canais seletores. Canais multiplexadores. Canais
multiplexadores de blocos. Programas de canal.
Mdulo III Memria e sua Virtualizao
5. Administrao de memria. Memria real e virtual. Alocao contgua.
Overlays. Multiprogramao.
6. Parties. Proteo de parties de memria. Alocao particionada
simples e relocvel.
7. Pginas. Alocao paginada simples. Virtualizao de memria paginada.
Proteo de pginas. Algoritmos de substituio de pginas.
8. Segmentos. Alocao segmentada simples. Virtualizao de memria
segmentada sem e com paginao. Proteo de segmentos.
Compartilhamento de segmentos.
Mdulo IV Processos, Sincronizao e Comunicao
9. Administrao de processos. Job scheduling mono e multiprogramado, com
e sem entrada e sada. Sistemas distribudos.
10. Process scheduling. Comunicao de processos. Sees crticas. Excluso
mtua. Mensagens.
11. Polticas de scheduling. Competies. Deadlock.
Mdulo V Dispositivos e sua Virtualizao
12. Administrao de dispositivos. Dispositivos de entrada e sada. Dispositivos
de armazenamento.
13. Dispositivos de acesso serial e aleatrio. Dispositivos de cabeote fixo e
mvel. Blocagem.
14. Virtualizao de dispositivos. Spooling.
Mdulo VI Arquivos, Proteo e Controle
15. Sistemas de arquivos. Hierarquia. Diretrios. Mtodos de acesso. Proteo
de acesso. Compartilhamento de arquivos. Interao com o job scheduler.
16. Controle do sistema operacional. Linguagens de controle. Interfaces com o
usurio e com os programas. Interao com os programas de sistema e do
usurio.

Critrio de Avaliao: A= (P1+2*P2+E)/4, onde P1, P2 so as duas provas e E o conceito


relativo ao desempenho em atividades prticas, incluindo o projeto e os trabalhos em classe.
Lembrar que a aceitao do projeto, e portanto sua avaliao, s ser feita se todas as
suas partes forem entregues completas, compreendendo, cada uma delas:
(a) uma documentao da estrutura do software, da lgica dos algoritmos empregados
e das estruturas de dados utilizadas;
(b) sadas do computador, comprovando que o programa tenha sido convenientemente
depurado e testado nos vrios casos de interesse;
(c) programas, nos formatos fonte e executvel, em disquete ou CD, incluindo arquivos
com os casos de teste .
Para haver aprovao necessrio que o projeto esteja completamente desenvolvido,
documentado e operante, e o aluno dever ter mdia mnima de 5.0 nas provas.
Normas de Recuperao: Para os alunos que tenham sido reprovados por no terem o
projeto aceito, a recuperao consiste em efetuar essa entrega na data da prova de
recuperao, com eventuais especificaes adicionais, determinadas pelo professor na poca
da publicao das notas.
Para os que tenham sido reprovados pelas notas das provas, haver uma prova de
recuperao abrangendo toda a matria, incluindo assuntos ligados ao projeto.
Freqncia: A freqncia s aulas obrigatria, segundo os regulamentos em vigor.
Enquanto compete ao professor apurar a freqncia dos alunos s aulas, a estes cabe
participar das mesmas e assinar as listas de presena.
No haver abono de faltas por parte do professor. Assim, cabe exclusivamente ao aluno, em
sala de aula, registrar sua presena a todas as aulas freqentadas.
Notar que, segundo o regulamento, para que possa haver aprovao por nota, exigido do
aluno a presena mnima regimental, caso contrrio haver reprovao por faltas,
independentemente das suas notas.
Por essa razo, recomenda-se ao aluno participao ativa nas aulas e a assinatura das listas
de presena, para erradicar as desnecessrias e to evitveis reprovaes por faltas.
Bibliografia:
* Tanenbaum Sistemas Operacionais Modernos 2a. edio Pearson 2005 (livro-texto)
Deitel, Deitel e Choffnes Sistemas Operacionais 3a. edio Pearson 2005
Flynn e McHoes Introduo aos Sistemas Operacionais Thomson 2002
Prez, Carballeira, Anasagasti e Costoya Sistemas Operativos Uma visin aplicada
McGraw-Hill Interamericana de Espaa 2002
* Silberschatz, Galvin e Gagne Sist.Operacionais Conceitos e Aplicaes Campus, 2001
OGorman Operating Systems with Linux Palgrave 2001
Tanenbaum Distributed Operating Systems Prentice Hall, 1995
* Stallings Operating Systems Maxwell/ MacMillan, 1992
Tanenbaum Operating Systems, Design and Implementation Prentice Hall, 1987
Turner Operating Systems, Design and Implementations MacMillan, 1986
Madnick e Donovan Operating Systems McGraw Hill, 1975
* os ttulos marcados com asterisco so os mais utilizados nesta disciplina

PCS-2453 SISTEMAS OPERACIONAIS Professor Joo Jos Neto Aula 02


Assunto: Levantamento Histrico de Conceitos e Tecnologias Desde os Sistemas Bsicos de Programao at os Sistemas Operacionais
Terminologia bsica:
Sistemas de programao
Linguagem de mquina
Linguagens simblicas
Montadores (assemblers)
Linguagens de montagem
Macro montadores
Macros para ling. simblica
Linguagens de alto nvel imperativas:
Fortran, Cobol
Linguagens funcionais: Lisp
Linguagens voltadas a metodologias:
Modula, CLU
Expansores gerais de macro
Linguagens estruturadas: Algol, Pascal, C

Linguagens com orientao a objetos:Smalltalk,


Java
Linguagens multi-paradigma: C++
Linguagens visuais: Visual Basic, Visual C,...
Linguagens para web: Java, Perl,...
Linguagens de hipertexto: HTML, XML,...
Linguagens extensveis
Linguagens de formatao:Tex, LaTex
Arquiteturas de computadores
Mquinas de Van Neumann
Mquinas de somar mecnicas
Mquinas a rels
Mquinas eletromecnicas
Mquinas a vlvulas

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

System Software An Introduction to Systems Programming


Fundamental concepts of programming systems
Addison Wesley, 1985
Addison Wesley, 1976
Calingaert
Wegner

Assemblers, compilers and program translation


Programming Languages, Information Structures and Machine Organization
Computer Science Press, 1979
McGraw-Hill, 1968

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

Structured System Programming


Microprocessor Programming and Software Development
Prentice Hall, 1980
Prentice Hall, 1979
Sites da Internet sobre histria dos principais sistemas operacionais:
Em geral:
http://www.oshistory.net/metadot/index.pl
UNIX:
http://www.levenez.com/unix/
Windows:
http://www.levenez.com/windows/

PCS-2453 SISTEMAS OPERACIONAIS Aula 03 Prof. Joo Jos Neto

Assunto: Conceitos bsicos de sistemas operacionais


Terminologia bsica (em ordem alfabtica):
61. Sistema de time-sharing
51. Realidade virtual
41. Multiprogramao
31. Interface vocal
21. Estado usurio
11. Dispositivo
1. Administrao de recursos
52. Recuperao de dispositivos 62. Sistema operacional
42. Multitarefa
32. Interrupo
12. Dispositivos compartilhados 22. Estruturao de programas
2. Alocao de dispositivos
63. Sistemas distribudos
53. Recuperao de memria
43. Ncleo (kernel)
33. Job
23. Eventos assncronos
13. Dispositivos dedicados
3. Alocao de memria
54. Recuperao de processador 64. SPOOLing
44. Prioridade
34. Ling. de comandos textual
24. Executivos
14. Dispositivos virtuais
4. Alocao de processador
Mainframe
memory
access)
65. Tarefa
55. Recurso
45. Procedimento
35.
25. Hierarquia
15. DMA (direct
5. Canal
66. Time slice
56. Redes de computadores
46. Processador
36. Mquina estendida
16. Escalador de entrada e sada 26. cones
6. Chamada de supervisor
67. Transio de estados
57. Shell
47. Processador perifrico
37. Mquina hierrquica
27. Informao
17. Escalador de jobs
7. Controlador de trfego
68. Unidade de controle
58. Simulao de perifricos
48. Processamento em lotes
38. Memria
28. Instruo privilegiada
8. Controlador de trfego de E/S 18. Escalador de tarefas
69. Usurio
59. Sistema de arquivos
49. Processo
39. Monitor
29. Interface grfica
19. Espao de endereamento
9. Controle de acesso
60. Sistema de Tempo Real
50. Proteo de informao
40. Multiprocessamento
30. Interface homem-mquina
20. Estado supervisor
10. Despachante
Questes para estudo e discusso:
Usando o conjunto de termos tcnicos acima, procurar definir, com a ajuda do questionrio abaixo, cada um deles e estabelecer relaes entre eles, explorando principalmente suas similaridades e diferenas, quando for o caso.
24. Como opera uma mquina hierrquica estendida? Explique cuidadosamente seu funcionamento, e justifique as opes
1. Defina sistemas operacionais. Cite algumas razes para estud-los.
adotadas em sua estratificao.
2. Qual a importncia dos sistemas operacionais nos computadores?
25. Discuta ao menos duas alternativas de estruturao de um sistema operacional em camadas hierrquicas, apontando
3. Relate, qualitativamente, a evoluo histrica dos conceitos incorporados nos sistemas operacionais.
vantagens e desvantagens em cada caso.
4. De que maneira o sistema operacional funciona como um elo de ligao, integrador do software ao hardware de um
26. Quais so as semelhanas e diferenas entre os administradores dos diversos recursos de um sistema operacional?
sistema computacional?
5. Qual o conceito, que as mquinas computacionais implementam, que exerce o papel mais fundamental no 27. Em computadores antigos, explique a repercusso, sobre a multiprogramao, do fato de o hardware da poca no
funcionamento do sistema operacional, disparando, sob o comando do hardware, a operao das suas diversas
possuir mecanismos de interrupo nem de acesso direto memria (DMA direct memory access). Proponha
partes? Explique em detalhes o funcionamento desse importante mecanismo acionador e exemplifique.
alguma soluo atravs da qual se pudesse contornar esse problema. Quais seriam as limitaes de tal proposta?
6. Quais as funes bsicas executadas pelos sistemas operacionais? De que maneira tais funes poderiam ter sido 28. Ainda nos computadores antigos, ditos de segunda gerao, por quais razes os sistemas multi-usurios de timeexecutadas nos computadores antigos, antes do advento dos sistemas operacionais?
sharing no puderam ser empregados de forma extensiva?
7. Quais os principais recursos computacionais administrados pelos sistemas operacionais?
29. Defina e compare os conceitos de processador, processamento, processo, procedimento, programa, programao,
8. Explique a funo desempenhada no ambiente computacional pelos diversos componentes fsicos do computador, que
multiprogramao, multiprocessamento.
so geralmente administrados pelos sistemas operacionais.
30. Compare os conceitos de programao estruturada e programao hierrquica.
9. Inseridos em um ambiente computacional controlado por um sistema operacional, os programas passam por diversos 31. Compare os conceitos de dispositivos dedicados, compartilhados e virtuais. At que ponto cada um dos trs tipos de
estados (ou situaes) de processamento. Quais so esses estados e o que representa cada um deles?
dispositivos se mostra adequado para uso em mainframes e/ou em computadores pessoais?
10. Esboce graficamente o fluxo dos estados pelos quais os programas passam e explique em que condies e em 32. Desenhe um diagrama de estados detalhado que modele o comportamento dos programas executados em um sistema
resposta a qual estmulo se d cada uma das transies entre esses estados. Exemplifique.
operacional sem multiprogramao. O que ocorre em cada uma das transies, e como so disparadas?
11. Identifique as principais diferenas estruturais e conceituais existentes entre computadores pessoais e mainframes.
33. Compare as semelhanas e as diferenas nos conceitos de sistemas que operam em lotes (batch), time-sharing e
12. Descreva a viso que se pode ter dos sistemas operacionais, enquanto extenses das mquinas em que operam.
tempo real, em ambientes com um ou com mais processadores.
13. Apresente uma possvel organizao estrutural para os diversos mdulos de um sistema operacional, de forma que 34. Compare os conceitos de sistemas paralelos, distribudos e redes de computadores.
fique mais simples sua estrutura e mais intuitiva a sua manuteno.
35. Compare as vises do sistema operacional como: gestor de recursos, coordenador de estados/transies, mquina
14. Explique e discuta no mnimo trs dos diversos pontos de vista segundo os quais os sistemas operacionais podem ser
estendida, ou elemento de comunicao programa/mquina/operador.
considerados, para efeito de estudo.
36. Compare, do ponto de vista do usurio e do projetista, prs e contras dos sistemas operacionais com linguagem de
15. Que so recursos? Quais so os principais recursos fsicos e lgicos que podem ser identificados em um sistema
controle textual e daqueles com interface homem-mquina grfica, visual.
computacional? Quais so e como operam as partes do sistema operacional tipicamente responsveis pela 37. Compare o mecanismo de acionamento das funes do sistema operacional, por parte do operador, por parte dos
administrao de cada um desses recursos?
programas e por parte do hardware, nos casos de ambientes textuais e visuais.
16. Em que consistem as polticas de alocao empregadas pelos mdulos administradores de recursos em um sistema 38. Proponha uma forma de executar multiprogramao em um sistema desprovido de relgio de tempo real. Discuta a
operacional? Exemplifique.
soluo apresentada, aponte limitaes e sugira outras possibilidades de soluo.
17. Compare os conceitos de mecanismo e de poltica de administrao de recursos. Exemplifique. Proponha um esquema 39. Em que circunstncias, caso existam, o modelo cliente-servidor, que bastante usado em sistemas distribudos,
em que convivam diversas polticas em um mesmo mecanismo de administrao de recursos.
poderia ser empregado em ambientes com um nico computador?
18. Em que situaes, normais ou anormais de operao, um programa em execuo pode perder o controle do 40. Considere uma empresa, com estrutura hierrquica habitual: um gerente, uma equipe administrativa, n coordenadores
processador? Procure detalhar o que ocorre em cada caso, dos pontos de vista do programa, do operador e do
de projetos, m funcionrios para cada coordenador, um equipamento de computao para cada elemento da empresa.
sistema operacional.
Esboce um diagrama de estados que represente o funcionamento da empresa na execuo de um projeto. Compare
19. O que a tcnica de virtualizao de recursos em um sistema computacional? Quais so as vantagens do seu
com as atividades correlatas dos sistemas operacionais. Pergunta-se:
emprego? Cite alguns casos de virtualizao que voc pode identificar em um sistema operacional.
a) Que paralelo existe entre as interrupes do computador e os eventos associados, nessa empresa?
20. Em que consiste e que maneira efetuado o controle de acesso a arquivos, por parte de um sistema operacional?
b) Quais eventos promovem mudanas de estado na empresa? E no sistema operacional?
Faa um paralelo com o controle restritivo que o sistema deve impor aos usurios que requisitam acesso ao sistema
c) Como interpretar, na empresa, a multiprogramao?
para utilizarem o computador. Cite outras situaes que voc conhece, em que o sistema impe ao usurio ou aos
d) Quais fenmenos na empresa podem ser comparados ao multiprocessamento?
seus programas restries controladas de acesso a algum outro recurso da mquina.
e) O que ocorre quando um alto grau de multiprogramao acontece em um computador? A que corresponde isso na
21. Que significa estar o sistema em modo supervisor? Em que situaes ocorre? Por que razo? Quais atividades
empresa? Identifique as principais conseqncias em cada caso.
computacionais que so exclusivas deste modo de operao do computador? Justifique a razo dessa exclusividade.
f) A que correspondem na empresa, as linguagens textuais de comandos do sistema operacional? Como identificar
22. O que o ncleo (kernel) do sistema operacional? O que um shell? Por que este nem sempre faz parte do ncleo?
nela o correspondente a uma interface homem-mquina visual?
23. Construa um diagrama de estados que represente o andamento de um programa no sistema operacional, e explicite as
relaes de causa e efeito nas diversas possveis transies de estados pelas quais tal programa passa, em seu
processamento sob o controle de um sistema operacional.
Peterson e Silberschatz Operating System Concepts Addison Wesley
Bibliografia complementar:
Davis Operating Systems Addison Wesley
Per Brinch Hansen Operating Systems Prentice Hall
Tanenbaum Operating Systems Design and Implementation Prentice Hall
Madnick e Donovan Operating Systems McGraw Hill
Flynn e McHoes Introduo aos Sistemas Operacionais Thomson
Deitel An Introduction to Operating Systems Addison Wesley

PCS-2453 Sistemas Operacionais Aula 04 Prof. Joo Jos Neto


/
'

*#

#
*#

"

'

"

(
%

&
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

PCS-2453 SISTEMAS OPERACIONAIS Aula 05 Prof. Joo Jos Neto


Assunto: O processador e seus perifricos (primeira parte):
Entrada e sada. Espera ocupada. Interrupo. Rotinas de tratamento de interrupo. Tipos de interrupo. Tcnica de buffering.
Conceitos (em ordem alfabtica):
Acesso direto memria (DMA)
Bloco de dados
Buffer de entrada/sada
Canal (de entrada/sada)
Computadores antigos:
organizados em torno do processador
Computadores recentes:
organizados em torno da memria
Controladores de dispositivos
Dispositivo de armazenamento

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

1. Faa uma comparao tcnica das caractersticas das arquiteturas de


computadores ao longo de sua evoluo histrica. Quais inovaes foram
introduzidas em cada etapa dessa evoluo? Comente a importncia de
cada uma delas.
2. Estabelea parmetros de comparao e, usando critrios baseados em
tais parmetros, compare entre si as seguintes tcnicas de entrada/sada:
por roubo de ciclo, por interrupo, por acesso direto memria e por
meio de um canal de entrada/sada.
3. Construa esboos detalhados (em portugus) da lgica de rotinas de
acionamento (drivers) de algum dispositivo de entrada/sada de seu
interesse, cujos dados tcnicos estejam disponveis, exercitando atravs
delas a aplicao de cada uma das quatro tcnicas mencionadas na
questo anterior. Tenha o cuidado de detalhar, ao nvel das instrues de
mquina, todas as operaes a serem realizadas. Lembre-se que esse
tipo de programao obrigatoriamente de nvel de abstrao muito
baixo, muito prximo dos detalhes do hardware da mquina especfica
com que se est trabalhando, e, portanto, podem diferir muito de uma
mquina para outra.
4. Compare os vrios tipos de dispositivos que voc conhece quanto
natureza da transferncia que realizam, quanto ao seu tempo de acesso,
sua unidade bsica de transferncia de dados (quantidade de dados
transferidos por vez), etc.
5. Quando se fala em operaes de transferncia de dados, efetuadas pelos
programas executados sob o controle de um sistema operacional, o que
significa a expresso independncia de dispositivo? De que maneira
pode essa independncia ser obtida? O que ganha com isso o

Interfaces entre processador e perifrico


Interrupo
Interrupes do relgio de tempo real
Palavra de controle (instruo) de canal
Programa de canal
Registro fsico
Registro lgico
Rotina de tratamento de interrupo
Roubo de ciclo
Taxa de transferncia de dados

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

programador em relao ao uso da tcnica da transferncia dependente


do dispositivo?
6. Quatro camadas estruturais hierrquicas podem ser identificadas na
gerncia de entrada/sada efetuada pelos sistemas operacionais
modernos: o software do usurio (aplicativos), o software do sistema
operacional responsvel pela entrada/sada independente de
dispositivos, os acionadores (drivers) e os programas de atendimento
de interrupo. Explique o papel de cada uma dessas camadas e cite
algumas das tarefas que cada uma delas realiza.
7. Que tipos de terminais voc conhece? Explique conceitualmente as
diferenas existentes entre eles e o impacto dessa diferena sobre os
programas que os acionam.
8. Quais so os tempos envolvidos numa operao tpica de entrada/sada?
Quais deles esto diretamente atrelados ao dispositivo fsico e quais
dependem mais da forma como o sistema operacional trata o acionamento
do dispositivo e a transferncia de dados propriamente dita?
9. Descreva detalhadamente, passo a passo, cada atividade (tanto do
dispositivo como do processador e do sistema operacional) que ocorre
enquanto uma operao de entrada/sada efetuada atravs da tcnica
de interrupo. Considere o caso em que no h outras transferncias de
dados em curso, e depois estude o impacto da presena concorrente de
outras operaes de entrada/sada.
10. Conceitue: bloco de dados, buffer, unidade de transferncia de um
dispositivo, registro fsico e lgico, acesso direto memria.

PCS-2453 SISTEMAS OPERACIONAIS Aula 06 Prof. Joo Jos Neto


Assunto: O Processador e seus perifricos - (segunda parte)
Conceitos:

dispositivos de armazenamento de acesso serial


dispositivos de armazenamento de acesso aleatrio
dispositivos sncronos e assncronos
trilhas e setores de dados
trilhas de sincronizao
fitas, discos, disquetes e tambores magnticos
dispositivos de cabeotes fixos e mveis
movimentos de seek e search
registros fsicos e registros lgicos

blocagem de dados; fator de blocagem


canais multiplexadores e seletores
canais multiplexadores de blocos
rotinas de entrada/sada com interrupo:
iniciao, tratamento, finalizao
entrada/sada com buffers
old/new PSW (program status word)
channel control word, channel status word
programao independente de dispositivo

Questes:

1. Classifique os dispositivos indicados na tabela a seguir


(dispositivos tpicos) de acordo com seu tipo e sua velocidade, e
discuta a melhor forma de conect-los a um computador que
dispe de um banco de memria com tempo de acesso de 70ns.
Utilize para isso canais de tipos adequados aos dispositivos, e
dimensione o maior nmero possvel de dispositivos do mesmo
tipo que podero ser conectados ao mesmo tempo a cada canal,
de forma que no haja sobrecarga.
Dispositivo
teclado
mouse
entrada vocal
scanner
sada vocal
impr. matricial
impressora laser
monitor grfico
cpu - buffer
rede - terminal
rede - rede local
disco ptico
fita magntica
disco magntico

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

Referncia: Ron White Como funciona o computador Quark Editora, 1997

Comunica-se c/
homem
homem
homem
homem
homem
homem
homem
homem
homem
mquina
mquina
mquina
mquina
mquina

2. Quais so as classes de interrupo que voc conhece? Mostre a


arquitetura de um ncleo de sistema operacional, responsvel por
efetuar sua identificao, e o acionamento das correspondentes
rotinas de tratamento. Identifique e explique, com detalhes, as
atividades executadas pelo hardware e pelo software para essa
finalidade.

software de tratamento uniforme de nomes


interrupes: entrada/sada, programa,
chamada de supervisor, externas, mquina
outros discos: CD, DVD, zip, jaz, pen-drive
portas paralela, serial, USB, VESA, ISA, SCSI
outros dispositivos: scanners, modems, joy-stick,
mouse, canetas, telas sensiveis ao toque, tablet,
monitor, placa de som, dispositivos de realidade
virtual, etc.

3. As rotinas de tratamento de interrupo so todas muito similares


em estrutura. Rotinas de tratamento das interrupes de relgio
de tempo real no so exceo. Calcule o overhead, ou seja, a
parcela do tempo do processador que gasto com o tratamento
de tal tipo de interrupo, em uma mquina na qual cada
interrupo de relgio gasta um tempo t, e se repete a cada T.
4. Como feita a operao de scroll em terminais do tipo bit map?
5. De que maneira um terminal RS-232 podem executar,
internamente ao terminal, a operao de remover da tela uma
determinada linha de texto?
6. Pesquise o funcionamento fsico dos dispositivos modernos de
armazenamento: CD-rom, CD-r/w, DVD-rom, DVD-r/w, minidiscos rgidos, zip-disk, jaz-disk. Como so feitas fisicamente as
gravaes e leituras nesses dispositivos?
7. Como opera uma porta USB? Pesquise o funcionamento de um
pen-drive. Como possvel a um dado dispositivo operar em
modo plug-and-play? Explique a lgica desse tipo de operao.
8. Pesquise a maneira como uma cmara fotogrfica digital pode ser
conectada para transferncia de fotos para o computador .
9. Voc poderia usar a memria de sua cmara digital como pendrive? Explique de que maneira isso seria possvel.
10.Pesquise o funcionamento de outros perifricos e seus
adaptadores: impressora, scanner, joy-stick, mouse, placa de
som, web-cam, dispositivos de realidade virtual, modem, teclado,
caneta eletrnica, touch-screen, tablet, monitor de video, portas
paralela, serial, SCSI, USB, etc.

PCS-2453 Sistemas Operacionais Aula 07 Prof. Joo Jos Neto


Assunto: Administrao de Memria I: Introduo Administrao de Memria Fsica Alocao contgua. Swapping. Overlays.
Conceitos:
1. Administrador de memria
2. Alocao contgua simples
3. Alocao esttica de memria
4. Alocao dinmica de memria

5.
6.
7.
8.

Espao fsico de endereamento


Espao lgico de endereamento
Espao de endereamento linear
Estrutura Hierrquica de Memria

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

9. Memrias Cache / Backing


10.Overlay
11.Proteo de memria
12.Relocabilidade esttica

13.Relocabilidade dinmica
14.Supervisor de overlay
15.Swapping

de time-sharing para disponibilizar a linguagem do interpretador aos


16 terminais em regime de swapping. Explicar detalhadamente o
funcionamento desse programa.
15.Em sistemas modernos, h muitas tcnicas tradicionais que ainda so
muito utilizadas, talvez de maneira pouco explcita. Em relao
administrao de memria fsica, como se manifestam as tcnicas de
swapping e de overlaying nas mquinas atuais?
16.Discuta, para cada forma de alocao de memria, a influncia do
hardware disponvel, o desempenho, a eficcia da alocao de
memria, a necessidade de converso de endereos lgicos em
fsicos, a possibilidade de compartilhamento ou no de memria, a
possibilidade ou no da realizao de esquemas de proteo, a
incorporao de mecanismos de swapping, etc.
17.Em sistemas com administrao de memria relocvel, surgem
problemas de desperdcio de espao devido ao fenmeno da
fragmentao. Descreva esse problema e indique como contorn-lo.
18.Descreva detalhadamente como mapear endereos lgicos em fsicos
em sistemas com endereamento relocvel de memria.
19.Que significa compartilhamento de memria? Quais problemas
acarreta? Como tais problemas costumam ser resolvidos?
20.Para o sistema operacional que voc costuma utilizar, pesquise de
que maneira efetuada a gerncia da memria fsica. Descubra as
solues que foram dadas para os diversos problemas, e procure
informar-se acerca das razes pelas quais tais tcnicas foram
adotadas. Juntamente com os resultados colhidos pelos colegas,
procure montar um bom conjunto de informaes tcnicas acerca dos
principais sistemas operacionais em uso.

PCS-2453 SISTEMAS OPERACIONAIS Aula 08 Prof. Joo Jos Neto

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

7. Proteo de memria: registradores de limites


8. Alocao particionada simples
9. Fragmentao de memria
10. Compactao de memria: garbage collection
11. Endereos relativos ao Registrador de base
12. Proteo e relocao dinmica: reg. base e limite

13. Relocabilidade dinmica


14. Alocao particionada relocvel
15. Alocao de mltiplas parties para o mesmo job
16. Polticas de alocao First-fit, Best-fit, Worst-fit
17. Parties de tamanho padro e de tamanho varivel

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.

PCS-2453 SISTEMAS OPERACIONAIS Aula 09 Prof. Joo Jos Neto

Assunto: Administrao de Memria 3 - Memria Fsica Paginada. Conceito de Paginao. Alocao Paginada Simples. Proteo de Pginas.
Conceitos:

Memria fsica e memria lgica


Compartilhamento de recursos
Memria compartilhada
Bloco
Pgina
Paginao da memria fsica

Questes:

Alocao paginada simples


Mapeamento de memria paginada
Page map
Page map table
Memory block table
Memria associativa

Fragmentao interna
File map table
Translation lookaside buffer
Unallocated area table
Recuperao de memria para o sistema
Esquema de Key/Lock

1. Conceitue e descreva detalhadamente o funcionamento de um mecanismo de


administrao paginada simples da memria fsica em um sistema operacional.
2. Qual a funo e como realizado o mapeamento de endereos lgicos em
endereos fsicos na administrao de memria com alocao paginada simples?
3. Qual o papel do hardware em cada passo da execuo das instrues de
referncia memria em sistemas com administrao paginada de memria?
4. Explique cuidadosamente o mecanismo de mapeamento de endereos lgicos em
endereos fsicos, utilizado em ambientes com memria paginada. Exemplifique
um caso extremo, mostrando passo a passo a evoluo do contedo dos diversos
registradores da mquina conforme evolui a execuo de uma instruo de
referncia memria cujo cdigo ocupe dois words, estando o primeiro word em
uma pgina e o segundo, na pgina seguinte, o mesmo ocorrendo com o seu
operando, tambm de dois words, e ocupando posies limtrofes entre duas
pginas.
5. Quais as estruturas de dados utilizadas pelo software de administrao de
memria para controlar a alocao paginada? Explique.
6. Qual o suporte de hardware necessrio para viabilizar a paginao de memria
em um sistema computacional?
7. Quais as vantagens e desvantagens do emprego da alocao paginada simples
de memria em relao ao uso de outros mtodos?
8. Faa uma anlise comparativa entre a paginao simples e os outros mtodos de
alocao de memria fsica que voc conhece.
9. Quais as vantagens e desvantagens do emprego da paginao de memria em
um computador?
10. Dada a necessidade de mapeamento de endereos lgicos em fsicos a cada
referncia feita memria, qual o impacto da paginao sobre o tempo de
execuo dos programas?
11. Qual o impacto do tamanho do bloco de memria (e portanto das pginas) sobre
o mecanismo de mapeamento em ambientes com memria paginada? O que
acontece se as pginas forem muito grandes? E se forem muito pequenas? Como
decidir o melhor tamanho para as pginas em um dado computador?
12. possvel ao programador escrever programas de uma forma tal que se possa
garantir que apresentem um bom desempenho em quaisquer ambientes

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.

PCS-2453 SISTEMAS OPERACIONAIS Aula 10 Prof. Joo Jos Neto

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?

PCS-2453 SISTEMAS OPERACIONAIS Aula 11 Prof. Joo Jos Neto


Assunto: Alocao Segmentada Simples e com Virtualizao. Proteo e Compartilhamento de Segmentos.
Conceitos (em ordem alfabtica):
Segmento
Espao de Endereamento bidimensional
Segmentao simples
Procedimento puro
Procedimento recursivo
Procedimento reentrante
Segmentos no-modificveis
Segment map table

Segment name table


Active segment table
Proteo de segmentos
Bit de falta de ligao
Interrupo de falta de ligao
Interrupo de falta de segmento
Ligao dinmica dos segmentos

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?

Memria Virtual segmentada


Segmentos compartilhados
Segmentos de ligao
Segmentos executveis
Efeito colateral
Procedimento puro

8. Quais as funes executadas no sistema operacional pelo


gerenciador de memria
quando se adota o esquema de
alocao segmentada?
9. Como se obtm o efeito de virtualizao da memria atravs da
segmentao?
10.Descrever o funcionamento das partes do hardware responsveis
pela implementao de memria virtual atravs da tcnica de
segmentao.
11.Conceitue e explique a utilidade da ligao dinmica em
esquemas de segmentao.
12.Conceitue e justifique a existncia e a finalidade dos segmentos
de ligao.
13.Quais as vantagens de se ter segmentos compartilhveis em
um sistema?
14.Que significa efeito colateral em um programa? Como se
manifesta nas linguagens de programao?
15.Conceitue e descreva a finalidade de procedimentos puros, em
um programa e no sistema operacional.

PCS-2453 SISTEMAS OPERACIONAIS Aula 12 Prof. Joo Jos Neto

Assunto: Memria Virtual Segmentada com Paginao.


Conceitos:
Active segment table
Bit de falta de ligao
Espao de Endere. bidimensional
Espao lgico de endereamento
Interrupo de falta de ligao
Interrupo de falta de segmento

Ligao dinmica dos segmentos


Memria Virtual segmentada
Procedimento puro
Procedimento recursivo
Procedimento reentrante
Proteo de segmentos

Segment map table


Segment name table
Segmentao simples
Segmentao com paginao requisitada
Segmento
Segmentos compartilhados

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

Detalhe esquematicamente, com um certo rigor, o hardware necessrio


implementao de segmentao de memria com paginao
requisitada.
Quais as vantagens e desvantagens de implementar, em uma mesma
mquina, as tcnicas de segmentao e de paginao de memria?
Qual o maior nmero possvel de interrupes que uma mesma
referncia memria pode causar em um ambiente com memria virtual
paginada e segmentada?
Descreva detalhadamente as rotinas de atendimento das interrupes
ligadas administrao da memria virtual com segmentao
paginada.
Compare conceitualmente as tcnicas de virtualizao de memria
baseada: a) na paginao; b) na segmentao; c) na segmentao
paginada.
Do ponto de vista do espao de endereamento, como que se
apresenta ao usurio a memria em um sistema operacional com
esquema de gerenciamento de memria segmentada?
Compare entre si os funcionamentos dos administradores de memria
baseados na segmentao, no particionamento, nos overlays e no
swapping.
Como so as estruturas de dados, os algoritmos, as rotinas de
tratamento de interrupo e a dinmica de operao dos sistemas de
gerenciamento de memria virtual segmentada com paginao?
Quais so os impactos da presena de gerenciamentos de memria
virtual segmentada com paginao sobre o desempenho do sistema
operacional? e dos programas? Justifique.

PCS-2453 SISTEMAS OPERACIONAIS Aula 13 Prof. Joo Jos Neto


Assunto: Gerenciamento de Processos 1 Conceitos gerais
Conceitos:
Processador
Processo
Job Scheduler
Process Scheduler
Traffic Controller
SPOOLing
Turnaround time

Turnaround time ponderado


Time slice
CPU headway
Throughput
Prioridades
Dispatching
Process control block

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

Questes para fixao dos conceitos:


1. Qual o papel da administrao de processos, no escopo do sistema
operacional? Quais funes do sistema operacional se referem diretamente aos
processos?
2. Desenhe um diagrama de estados que modele a vida de um programa no
sistema, interpretando o papel dos vrios estados e indicando o mdulo do
sistema operacional responsvel pela execuo das aes associadas a cada
uma das transies.
3. Relacione os elementos do diagrama da questo 2 com o elemento
correspondente do simulador guiado por eventos do projeto que voc est
desenvolvendo nesta disciplina.
4. Quais so os mdulos que compem tipicamente um administrador de
processos e quais as atribuies principais de cada um deles no contexto do
sistema operacional?
5. Conceitue job scheduler. Quais so as metas tpicas que geralmente esse
mdulo procura atingir?
6. Quais so as polticas de job scheduling que voc conhece, que tenham como
finalidade principal reduzir o turnaround time mdio dos programas
executados?
7. Que process scheduling? De que maneira o mdulo process scheduler do
sistema operacional pode ser implementado?
8. Qual o papel do dispatcher na administrao de processos?
9. Esboce a lgica de um hardware cuja funo seja a de realizar
automaticamente o chaveamento do uso de um processador pelos processos
em um ambiente multiprogramado.
10. Que um traffic controller no sistema operacional? Quais so as estruturas de
dados nas quais se baseia a sua implementao? Explique detalhadamente
seu funcionamento.
11. Sugira uma forma como podem sincronizar-se processos executados
paralelamente, que compartilham reas de dados na memria principal.
12. Qual o papel da ready list no sistema operacional?

13.Explique o funcionamento da poltica round robin para o gerenciamento da


ready list em um sistema operacional multiprogramado.
14.Quais as metas usualmente estabelecidas para o traffic controller em um
sistema operacional multiprogramado?
15.Quais os esquemas de gerenciamento usualmente empregados para obter um
balanceamento da carga do sistema? Argumente acerca da convenincia
dessas polticas de balanceamento em sistemas nos quais estejam
simultaneamente presentes jobs CPU-bound e I/O-bound.
16.Explique o funcionamento da poltica de prioridades no gerenciamento de
processos. Como se pode evitar o bloqueio sistemtico de processos de baixa
prioridade devido preferncia dada aos de alta prioridade?
17.De que maneira pode ser feita a atribuio dinmica (varivel, portanto) de
prioridades aos processos durante sua execuo, em funo do seu
comportamento quanto ao uso do processador?
18.Comente o papel de uma poltica de dispatching que privilegie processos
interativos, priorizando-os em relao aos demais quanto alocao do
processador, para reduzir o tempo de resposta do sistema ao usurio.
19.Quais so as arquiteturas mais freqentemente utilizadas para conectar
processadores? Esboce-as, e compare-as quanto ao seu funcionamento.
20.Qual a justificativa para a incluso, em um sistema operacional, de recursos
para a sincronizao de processos?
21.Como podem ser resolvidos os casos de competio dos processos pela posse
e uso de recursos em um ambiente operacional multiprogramado?
22.Qual a influncia do tamanho do quantum (ou time slice) no comportamento
de um sistema operacional multiprogramado?
23.Que significa SPOOLing? Qual a sua relao com a administrao de
processos?

PCS-2453 SISTEMAS OPERACIONAIS Aula 14 Prof. Joo Jos Neto

Assunto: Gerenciamento de Processador parte 2: comunicao e sincronizao; deadlocks.


Conceitos:
Deadlock
Wait/Signal
Pr-alocao de recursos
Deteco e recuperao de deadlock
Lock bit
Primitivas P e V de Dijkstra
Alocao restringida
Bloqueio
Test and set
Semforo contador
Alocao controlada
Espera ocupada
Semforo
Primitivas Send/Receive
Alocao padronizada
Corridas
Lock/Unlock
Mensagem
Cooperao entre processos
Recursos [non-]Preemptable
Questes para fixao dos conceitos:
1. Como surge, em um sistema operacional, a necessidade da 13. Explique, com detalhes, os procedimentos que podem ser adotados
por um sistema operacional quando da deteco da ocorrncia de um
sincronizao de processos?
deadlock nele instalado.
2. Como aparecem e como podem ser resolvidos os casos de
competio entre os processos pela posse dos recursos 14. Em que consiste a tcnica da pr-alocao de recursos? Como
opera?
compartilhados disponveis no sistema?
3. Se, em um sistema operacional, no lugar da poltica de round-robin, 15. Qual o significado da tcnica da alocao restringida? Quais as
estiver implementado um mecanismo de process scheduling baseado
modalidades que voc conhece? Para que servem? Como
funcionam?
exclusivamente em uma poltica de prioridade dos processos, o que
pode acontecer caso um processo de alta prioridade vier a executar um 16. Na tcnica da alocao padronizada, os recursos devem ser
ciclo infinito (ou seja, entrar em loop)?
alocados sempre em uma ordem pr-estabelecida. Por que razo esta
forma de alocao impede o aparecimento de deadlock?
4. Quais os mecanismos de sincronizao de processos que voc
17. Em que mdulos pode ser dividido o gerenciador de processos na
conhece? Descreva o funcionamento de cada um deles.
implementao de um sistema operacional, de modo que fique
5. Explique a diferena entre a tcnica de espera ocupada e o
preservada a hierarquia dos seus componentes?
mecanismo de bloqueio de processos, utilizado pelos sistemas
18. Que significa um recurso [no-]preemptable?
operacionais.
19. Pesquise na literatura e explique as quatro condies necessrias e
6. O que so regies crticas? Que excluso mtua de processos?
suficientes para a ocorrncia de um deadlock: condio de excluso
7. Explique os papis complementares das instrues do tipo test and set
mtua;
condio de entrar em estado de espera; condio de noe das primitivas de sincronizao.
preemption;
condio de espera circular.
8. O que so e como so implementados os semforos?
20.
Pesquise
na
literatura e estude o funcionamento dos algoritmos
9. Esboce a lgica de um par de processos que, respectivamente, fazem
clssicos de deteco e recuperao de deadlocks utilizados em
o papel de produtor e consumidor, utilizando um buffer comum, e
sistemas operacional.
sincronizados por semforos contadores.
10.Pesquise na literatura outros problemas envolvendo mtodos de 21. De que maneira possvel utilizar trocas de mensagens como
sincronizao de processos concorrentes, tais como, por exemplo, o
mecanismo ao mesmo tempo de comunicao e de sincronizao
problema do jantar dos filsofos, ou o do barbeiro sonolento.
de processos?
11.Que so deadlocks e como so originados? Quais so os efeitos do 22. Que so threads? Como so utilizados no sistema operacional?
aparecimento de deadlocks em um sistema operacional?
12.Como pode ser evitado o aparecimento de deadlocks em um sistema
operacional?

PCS-2453 SISTEMAS OPERACIONAIS Aula 15 Prof. Joo Jos Neto


Assunto: Gerenciamento de dispositivos Parte 1: Conceitos
Conceitos:
dispositivo
alocao de dispositivos
poltica de alocao
spooling
virtualizao de dispositivos

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

Questes para fixao dos conceitos:


1. Que dispositivo de entrada/sada? Qual o seu papel em um sistema de
computao?
2. Quais as funes do administrador de dispositivos no sistema operacional?
3. Quais os mdulos de que se compe um administrador de dispositivos? Qual a
funo de cada um?
4. Quais as polticas clssicas de alocao de dispositivos de entrada/sada que
voc conhece? Explique-as.
5. Quais as polticas clssicas de recuperao de dispositivos de entrada/sada?
6. Que spooling? Em que casos se aplica? Em que casos no se aplica?
7. Quais as metas usualmente perseguidas nas polticas de alocao
compartilhada?
8. Quanto ao tipo de utilizao, h duas classes de dispositivos de entrada/sada.
Quais so e como se caracterizam?
9. Como se classificam os dispositivos de armazenamento quanto ao acesso?
10. O que determina o tempo de acesso em um dispositivo de acesso serial?
11. Como so organizados os dados nos meios de armazenamento serial?
12. Quais as funes que devem ser executadas por uma unidade de
armazenamento serial?
13. Como so implementados os registros de comprimento varivel em unidades
de armazenamento serial?
14. Para que servem os inter-record gaps nos dispositivos de armazenamento de
acesso serial?
15. Que blocagem? Quais as suas vantagens? Quais as suas desvantagens?
16. Que so dispositivos de acesso completamente direto? O que os caracteriza?
17. Que so e como se caracterizam os dispositivos de acesso direto?
18. Quais os mecanismos fsicos de acesso informao em dispositivos de
acesso direto?
19. Qual a utilidade dos gaps em dispositivos de entrada/sada de acesso direto?
20. Que so canais de entrada/sada? Que so programas de canal? Quais as
vantagens do uso de canais? Quais so as alternativas ao uso de canais?
21. Que so unidades de controle de entrada/sada? Qual a sua funo na
execuo de entrada/sada?

buffering
I/O traffic controller
I/O device handler (driver)
DMA
operao de dispositivos offline

22. Qual o papel do gerenciador de dispositivos, relativo aos canais e aos


controladores?
23. Quais as tcnicas de hardware utilizadas para eliminar o gargalo decorrente da
escassez de canais e de controladores frente ao grande nmero de
dispositivos? Como funcionam?
24. Quais tipos de interrupo so necessrias para manter dispositivos em
operao independente?
25. Que multiplexao de blocos? Como opera? Quando se aplica?
26. Onde feito o buffering de entrada/sada? Como funciona? Para que serve?
27. Quais as tcnicas que voc conhece para aumentar a disponibilidade dos
equipamentos em um sistema operacional?
28. Quais as funes do I/O traffic controller? Como opera?
29. Quais as bases de dados utilizados pelo I/O traffic controller? Quais as
informaes nelas contidas?
30. Quais as tcnicas utilizadas nos I/O device handlers para o tempo de acesso
mdio aos dispositivos de acesso direto? Qual o apoio oferecido pelo hardware
com esta finalidade?
31. Que tipo de overhead introduzido pelos mtodos de reduo de tempo de
acesso aos dispositivos de entrada/sada de acesso direto, empregados pelo
software do sistema operacional?
32. Quais caractersticas dos dispositivos de entrada/sada motivam a sua
virtualizao? Por qu?
33. Quais tipos de associao entre processadores, perifricos e canais tm sido
utilizados ao longo da histria dos sistemas de computao?
34. Que operao off-line de dispositivos de entrada/sada? Quais os seus
problemas? Quais as suas aplicaes?
35. Quais os conflitos que surgem quando se liga mais de um processador a um
mesmo disco? Como tais conflitos so resolvidos?
36. Que so sistemas virtuais de entrada/sada? Detalhe a estrutura de um sistema
virtual completo. Explique seu funcionamento.

PCS-2453 SISTEMAS OPERACIONAIS Aula 16 Prof. Joo Jos Neto


Assunto: Administrao de dispositivos Parte 2: Tcnicas
Conceitos:
1.
2.
3.
4.
5.

Unit Control Block


Spooling
Tempo de acesso
Registro (record)
Tape mark

6. Inter-record gap
7. Dispositivos de cabea fixa
8. Dispositivos de cabea mvel
9. Trilha (track) ou cilindro
10. Setor (sector, record)

11. Endereamento em dispositivos


12. Seek/Search
13. Canal
14. Programa de canal
15. Channel control word (CCW)

16. Unidade de controle


17. Confiabilidade
18. Disponibilidade
19. Channel control block
20. Control unit control block

21. Acoplamento direto


22. Processador de suporte
23. Simulao

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

PCS-2453 Sistemas Operacionais Aula 17 Prof. Joo Jos Neto


Assunto: Segunda parte do projeto simulao dirigida por eventos
Na primeira parte deste projeto pediu-se que fosse implementado um simulador inspirado na referncia
McDougall, M. H.
Computer System Simulation - an Introduction
ACM Computing Surveys, vol. 2 n. 3, setembro de 1970, p. 191-209
Trata-se de um simulador dirigido por eventos, do tipo estocstico, com granularidade no nvel de sistema,
ou seja, um simulador no qual o modelo adotado para representar os fenmenos simulados no leva em
considerao detalhes individuais dos fenmenos e sim seu efeito coletivo apenas.

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

Processamento interno em Si apenas, durante todo o time-slice. Neste caso, apenas


controlar o transcurso do tempo de processamento do job.

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)

Os gerenciadores de recursos devero operar de acordo com os seguintes requisitos:


Gerenciador de memria: memria virtual segmentada, sem paginao

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

Pode-se considerar, entre outras, as seguintes premissas de trabalho:

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.

No obrigatrio compactar a memria. Em caso de fragmentao, bloquear o aumento do nmero


de processos ativos at que seja liberada memria suficiente. No entanto, se isso for considerado
conveniente, h liberdade para incluir uma rotina de Garbage collection..

A modelagem do sistema de arquivos poder ser feita aplicando-se rea em disco os mesmos
algoritmos aplicados s parties de memria.

No simulador final devero estar presentes, portanto, os seguintes elementos:


Tabela de jobs, uma para todo o sistema. As linhas desta tabela contm informaes sobre os

diversos programas em atividade:


o
o
o
o

quanto tempo de processamento falta para o programa terminar


lista dos pontos no processamento em que h requisies de entrada/sada
ponteiro para a rvore de segmentos que descreve a estrutura do programa
conjunto de arquivos a serem referenciados pelo programa

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

Tabela de parties ocupadas no disco (nica), correspondente ao conjunto de arquivos que


formam o sistema de arquivos implementado. Cada linha desta tabela indica o nome, o possuidor, o
tamanho e as caractersticas do arquivo a que se refere.

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).

PCS-2453 Sistemas Operacionais Aula 18 Prof. Joo Jos Neto

Assunto: Gerenciamento de Informaes I conceitos bsicos


Palavras-chave:
Administrador de Informaes
Arquivos
Atributos de arquivos (ver lista abaixo)
Arquivos seqenciais
Arquivos de acesso aleatrio
Arquivos de programas
Arquivos de dados
Arquivos de diretrio

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

Alguns atributos de arquivos:


acesso aleatrio ou seqencial
arquivo ASCII ou binrio
arquivo de sistema ou do usurio
comprimento corrente do arquivo
comprimento da chave de acesso

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

arquivo invisvel no diretrio


localizao da chave de acesso
necessidade ou no de backup
password
permisses de acesso

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

13.Que sistema de gerenciamento de dados? Em que difere de um sistema


de arquivos usual?
14.Que um sistema de bancos de dados? Em que difere de um sistema de
gerenciamento de dados ou de um sistema de arquivos?
15.Enumere e descreva os passos efetuados pelo sistema operacional na
execuo de comandos READ / WRITE de uma linguagem de alto nvel.
16.Que um sistema hierrquico de arquivos? Esboce sua estrutura e
descreva de modo geral o seu funcionamento.
17.Descreva a arquitetura e os mdulos componentes de um sistema tpico
de arquivos com estrutura de funcionamento hierrquica.
18.Defina e escreva o funcionamento das operaes OPEN e CLOSE.
19.Como se costuma proceder para que seja reduzido o tempo de acesso
(consulta) a diretrios muito grandes em um sistema operacional?
20.Esboce um algoritmo para a implementao da proteo de acesso aos
arquivos, em um sistema de arquivos hierrquico.
21.Proteo de acesso a arquivos e proteo do sistema operacional contra
entrada de usurios no-autorizados so servios que tm muito em
comum. Sugira uma forma de implementao desse tipo de proteo que
possa ser aplicada em ambos os casos. Exemplifique.
22. Sugira uma forma de classificao de arquivos baseada na identificao
do usurio que criou cada um deles.

PCS-2453 Sistemas Operacionais Aula 19 Prof. Joo Jos Neto


Assunto: Sistemas de arquivos - aspectos da implementao
Palavras-chave (em minsculas) e operadores (em maisculas):
arquivo
arquivos executveis
CLOSE
arquivos ASCII
arquivos fonte
CREATE
arquivos binrios
arquivos relocveis
DELETE
arquivos de acesso aleatrio
arquivos seqenciais
GET ATTRIBUTES
arquivos de dados
rvore de nomes
SET ATTRIBUTES
arquivos de texto
nomes dos arquivos
OPEN
arquivos do usurio
APPEND
READ

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

lista ligada com ndice


lista ligada de blocos livres
MAP/UNMAP
quotas de disco
single, double, triple, ... indirect block
segurana de acesso
tamanho do bloco

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.

PCS-2453 Sistemas Operacionais Aula 20 Prof. Joo Jos Neto


Assunto: Sistemas de arquivos - aspectos da implementao II
Palavras-chave:
1. alocao contgua
2. alocao em lista ligada
3. arquivos compartilhados
4. bit map de blocos
5. blocos livres

6. data block
7. diretrios CP/M (precursor do DOS)
8. diretrios MS-DOS
9. diretrios UNIX
10.i-nodes (index nodes)

11. lista de blocos vazios


12. lista ligada com ndice
13. lista ligada de blocos livres
14. MAP/UNMAP
15. quotas de disco

Questionrio:

1. Descreva o mecanismo de alocao contgua de rea em disco para


arquivos. Quais so suas vantagens e desvantagens? Esboce as estruturas
de dados envolvidas. Compare-o com o mecanismo correspondente utilizado
em administrao de memria.

2. 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.
3. Descreva ao menos duas alternativas para controlar a ocupao, por parte
dos arquivos, dos blocos (registros fsicos) do disco.
4. Explique o funcionamento dos bit maps das reas em disco, e descreva o
algoritmo de controle de alocao correspondente que usa essa estrutura.

16.single, double, triple, ... indirect block


17.segurana de acesso
18.tamanho do bloco

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 por sua vez conter outros 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.

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

PCS-2453 Sistemas Operacionais Aula 21 Prof. Joo Jos Neto


Assunto: 1o. Estudo de Caso: MS-DOS

O MS-DOS v3.0 - (1984, 40.000 linhas)

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

=' ? < >


+ - @, ! /
+ - @, ! - =
& '
$
6
/

.
;

2+

"
./ +

'
&
B0+

&
@

;
"

$ %

&

)-*

"

& #

&

" !"
$

2+

@
@

"F
G

! -*

;
!

7
=

O MS-DOS v4.0 - (1988)

( ) *+

"

A
!
!
!

$ &<

O MS-DOS v5.0 - (1991)

O MS-DOS v2.0 - (1983, 20.000 linhas)

;=

"1

;=
"@

$
$

*4

;=

? + - @, ! = @

.
&

Memria

&

O MS-DOS v1.0 - (1981, 4000 linhas em assembly)

( $

"

$
"
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 $

Aspectos de implementao do MS-DOS

.
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

"

;=
$
*
;=

PCS-2453 Sistemas Operacionais Aula 22 Prof. Joo Jos Neto

Assunto: Estudos de caso 2 e 3: UNIX E LINUX


o

2 Estudo de Caso - UNIX

Projetado como sistema p/ desenvolver programas;


Linguagem de comandos simples e poderosa;
Sistema de arquivos independente de dispositivo
H verses UNIX para inmeras mquinas, entre as
quais destacaram-se:
standard UNIX para a famlia DEC PDP-11 para
atender pequenos centros de computao com
cerca de 40 usurios, dispe de um sistema de
arquivos hierrquico, proteo, independncia de
dispositivo,
programas
em
foreground
e
background, pipes, e um conjunto de programas e
bibliotecas de sistema, com programas-fonte e
documentao on-line.
PWB/UNIX Programmers Workbench contendo:
suporte para programao em equipes grandes,
sistema de editorao completo, entrada remota
de jobs (RJE), Source code control system (SCCS)
para controle de verses e documentao de
software
MIN-UNIX verso downsized do standard UNIX,
para plataformas pequenas (at 4 usurios, e 13
processos concorrentes)
UNIX/V7 a verso 7 para PDP 11/45 e 11/70, mais
porttil, linguagem C estendida, edio de texto,
shell mais poderoso, transferncia de arquivos
entre mquinas

Histrico:

O sistema Multics foi criado de 1965 a 1969 em


conjunto pela Bell Labs, GE (Honeywell), e o projeto
MAC do MIT
Originalmente: projetado para execuo em grandes
plataformas GE-645
Multics era um sistema complexo e grande, para
computadores grandes com grande nmero de
usurios. Em 1969 a Bell Labs saiu deste projeto
UNIX comeou como sistema de time-sharing para
minicomputadores
Alguns membros da Bell Labs resolveram criar o
UNIX para ser executado em plataformas simples,

para pesquisa e desenvolvimento de aplicaes,


executada no sistema DEC PDP-7
Inicialmente desenvolvido em assembly para PDP-7,
foi reescrito em linguagem C, tornando-se porttil
O novo cdigo incorporava multiprogramao e
compartilhamento de procedimentos reentrantes,
tornando-se uns 30% maior que o original
Foi disponibilizado para dezenas de entidades sem
fins lucrativos em 1973
A verso 5 foi a primeira disponvel ao pblico, em
1975, em uso at hoje.
Em 1979, a verso 7 se apresentou como uma
verso comercial do produto.

Objetivos

a imagem dos processos ficam na memria durante


a sua execuo
o mapa da memria dividido em 4 segmentos:
segmento de procedimentos reentrantes, segmento
de dados, segmento de pilha, e rea de
crescimento dos dois ltimos
uma tabela de texto (text table) centraliza o controle
das partes no modificveis do cdigo
quando um processo executa um segmento
compartilhado, este trazido do disco se no estiver
presente na memria, e a tabela de texto recebe um
novo elemento, representante desse segmento.
um contador associado ao segmento compartilhado
indica o nmero de processos que usam o segmento
em cada instante. Quando zerado este contador, o
segmento libera a rea de memria.
O segmento de dados compe-se de uma parte
relativa ao sistema e outra, relativa ao programa. Na
parte do sistema, ficam registradas informaes sobre
o contedo dos registradores, os descritores de
arquivos, dados de contabilidade, rascunhos, e uma
pilha para uso do sistema
cada processo tem uma tabela do processo,
acessada pelo ncleo do sistema, contendo os dados
necessrios quando o processo no est ativo: nome
do processo, localizao dos segmentos, informaes
de scheduling.
operaes: criar processo, executar processo,
sincronizao de processo, escalao de processo,
swapping, terminao do processo.

A primeira verso do UNIX foi feita s por 2 pessoas


Os maiores usurios eram os prprios autores
Disso resultou a coerncia do sistema obtido
O principal objetivo foi manter o sistema simples e
com poucos recursos
A sofisticao fica para os programas aplicativos
O segundo objetivo foi a generalidade: um mesmo
procedimento para diversas utilizaes: as mesmas
chamadas de sistema para arquivos, dispositivos, e
comunicao entre processos; sistemas de nomes,
aliasing, protees de acesso para arquivos, diretrios
e dispositivos; o mesmo mecanismo para tratar
interrupes de software ou de hardware
O terceiro objetivo foi o de permitir criar grandes
programas combinando outros menores em lugar
de desenvolver novos programas
Entrada e sada
Apresenta estruturalmente trs formas de acesso
distintas: um shell, uma biblioteca de rotinas de dois componentes:
block (structured) I/O e character (non-structured) I/O
sistema, e um conjunto de chamadas de supervisor
system calls: gtty, stty, stat:
Processos
(get, set, read dados sobre arquivos e terminais)
O ncleo do UNIX (10000 linhas em C e mais 1000 abrir/fechar arquivo:
fd=open(filename, mode) ou close(fd)
em assembly) represeenta 5 a 10% do sistema
A imagem do pseudo computador do usurio read/write:
representa um processo, e contm: imagem da
nbyteslidos = read(fd,buffer,nbytesdesejados)
memria, valores dos registradores, status dos a leitura ou gravao seqencial
arquivos abertos, diretrio em uso, etc

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

asterisco * um wild card que aceita qualquer


dinamicamente,
em tempo de execuo
cadeia de caracteres

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

Vrios protocolos de rede so disponveis ao


mesmo tempo
O sistema de arquivos hierrquico para o usurio,
como no Unix.
outra
camada
propicia
o
Internamente,
gerenciamento simultneo de diferentes sistemas
de arquivos
H um suporte para sistemas de arquivos virtuais
Sistemas de arquivos baseados em dispositivos
acessam o disco atravs de dois caches: os dados
usam o cache de pginas, em comum com a
memria virtual, e os meta-dados usam um cache de
buffers separado, indexado por bloco fsico do disco
O gerenciamento de memria compartilha pginas e
usa mecanismo copy on write para minimizar a
duplicao de dados compartilhados
As pginas so carregadas conforme a necessidade e
paginadas no disco.
Usa-se o mtodo de substituio LFU least
frequently used.

Projeto

essencialmente um Unix sem o seu microkernel


Multiusurio e Multitarefa, compatvel com Unix
Disponvel para muitas plataformas
Executado eficientemente em mquinas com muita
memria e disco, mas opera a partir de 4MB de RAM
Kernels iniciais eram minimalistas, depois foram
ganhando corpo com o barateamento do hardware

Exerccios

1. Estabelecer alguns critrios importantes para a


comparao de dois sistemas operacionais. Orden-los
segundo sua importncia. Justificar a escolha.
2. Usando os critrios estabelecidos, comparar os
sistemas Unix e Linux com base nos dados
apresentados.
3. Fazer o mesmo entre o sistema Unix e o MS-DOS
estudado na aula 21.
4. Pesquizar em livros e na Internet dados similares aos
apresentados nos estudos de casos que temos feito,
para outros sistemas operacionais mais recentes da
linha Microsoft, de amplo uso em microcomputadores,
tais como: Windows 95, Windows 98, Windows NT,
Windows 2000, Windows XP.

PCS-2453 Sistemas Operacionais Aula 23 Prof. Joo Jos Neto

Assunto: Estudo de caso 4 Microsoft Windows NT


Objetivos:
sistema operacional multi-plataforma (intel, digital, mips, etc)
portabilidade
segurana
compatibilidade com DOS e Windows, OS/2 e Posix
extensibilidade
robustez
suporte a multiprocessamento simtrico
conectividade usando vrios protocolos
suporte a diversas lnguas
Caractersticas:
apareceu para uso comercial em 1995
suas motivaes foram comerciais
mesmo assim, utiliza tecnologia avanada
organizado em um microkernel e diversos layers
os layers suportam diversos servidores
Hardware Abstraction Layer implementa a mquina virtual
Atividades dependentes de mquina so implementadas neste
layer, proporcionando portabilidade
Microkernel
fornece implementaes aderentes ao hardware: scheduler,
sincronizao, tratamento de interrupo para os dispatcher objects
e para os control objects (kernel threads e processos)
os threads so os principais elementos participantes do scheduling
esquema de prioridades com 32 nveis
as 16 primeiras prioridades so para threads de tempo real. Estes
tm sempre prioridade sobre threads normais
as demais so para threads em background (normais)
as prioridades dos threads so dinmicas
no h memria virtual no nvel do kernel
Executivo
define a interface usada pelas aplicaes
implementa gerenciador de memria

comunicao entre processos


abstrao de entrada/sada para os servios do gerenciador de
dispositivos do microkernel
abstrao de processos para uso dos programadores
segurana
Memria
paginao dinmica com endereos virtuais de 32 bits (at 4GB)
arquivos mapeados em memria
compartilhamento de parte do espao de endereamento
gerenciamento de pginas compartilhadas copy-on-write
gerenciamento do cache e da memria primria
Arquivos
NTFS (NT file system)
um remote file system
endereos de 64 bits
recuperao de erros proprietrio, e muito rpido
proteo por lista de controle de acesso
Outras caractersticas
suporta multiprocessamento
oferece remote procedure call
Subsistemas:
seguem modelo cliente-servidor
a possibilidade de criar extenses d flexibilidade ao microkernel
aplicativos (por exemplo, Office, Corel Draw)
daemons (segurana, spool de impresso, file servers),
servios (login)
subsistemas especiais (Win32, OS/2, POSIX)
NT proporcionou um grande impacto na tecnologia dos sistemas
operacionais
Evoluiu posteriormente para a plataforma Win 2000

Assunto: Estudo de caso 5 Microsoft Windows XP


Histrico:
1976 - Bill Gates e Paul Allen fundaram a Microsoft
1981 - MS-DOS 1.0: endereos de 16-bits, real mode
1985 - Windows 1.0: primeiro OS GUI; modo protegido
1990 - Windows 3.1 e Windows for Workgroups 3.1
Eliminou o real mode e substituiu-o pelo enhanced mode
Incluiu network support (LANs)
1992 - Windows NT 3.1 (New Technology Operating System)
Segurana e estabilidade
Sistema de arquivos NTFS (New Technology File System)
Eliminou acesso direto memria
Endereos de 32 bits
1996 - Windows NT 4.0: Driver grfico incorporado ao kernel
2000 - Windows 2000
Active Directory
Banco de dados dos usurios, computadores e servios
1995 - Windows 95
Voltado ao consumidor
Endereos de 32 bits
Simula acesso direto ao hardware via API
1998 - Windows 98: Incorpora o Internet Explorer no S.O.
2000 - Windows ME: No inicia mais no modo DOS
2001 - Windows XP: funde bases de cdigo do consumidor/ corporativa
suporte a endereos de 64 bits
Arquitetura do sistema MS-Windows XP

Projeto: microkernel modificado em camadas (Layered)

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.

PCS-2453 Sistemas Operacionais Aula 24 Prof. Joo Jos Neto

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.

Mach BSD UNIX Server


O microkernel emula os outros sistemas como programas do usurio.
O ncleo do sistema operacional emulado compe-se de duas partes: uma responsvel pela parte que
manuseia os recursos do sistema e outra, pelas chamadas de supervisor (inspirado no esquema do
IBM OS-VM/370, em que vrios sistemas podiam conviver).
Esse esquema separa as funes e torna os S.O. mais simples e fceis de manter.
Independncia de mquina para os S.O. confinando as dependncias no microkernel do Mach.
Pode-se assim executar ao mesmo tempo programas em mais de um S.O., permitindo testar um
novo sistema ao mesmo tempo que outro, j testado, usado normalmente.
Ganha-se a possibilidade que o UNIX no permitia, de executar programas de tempo real.
Aumenta a segurana proporcionando intercmbio de arquivos entre programas executados em
verses diferentes de sistemas operacionais.
Gerenciamento de processos em Mach (Processos, threads, scheduling)
processos
processos (espao de endereamento + coleo de threads) so passivos, e coletam recursos para a
execuo dos threads a eles associados.
threads se relacionam com a execuo.
ports: process port (comunicao com kernel), bootstrap port (inicializa processo), exception port
(reporta erros), registered ports (comunica com servidores).
primitivas: create, terminate, suspend, resume, priority, assign, info, threads.
threads
so os elementos ativos em Mach
compartilham os recursos do processo a eles associado
podem ter recursos associados somente ao thread
so gerenciados pelo kernel (criados, destrudos, multiprogramados, bloqueados, etc)
um contador indica se o thread est executvel (contador = 0) ou no (contador >0)
chamadas de supervisor para controle direto dos threads: fork, exit, join, detach (nunca ningum ir
ficar esperando por este thread), yield (libera espontaneamente o processador), self (devolve ao thread
solicitante sua identificao)
sincronizao: usa mutexes e variveis de deciso: lock, trylock, unlock
scheduling
influenciado pelo multiprocessamento.
quando um thread se bloqueia, termina ou esgota seu quantum, h um chaveamento de thread na fila
local do processador. Se estiver vazia, a fila global chaveada aps ser bloqueado o acesso a ela. Em
todos os casos, a prioridade do thread tem influncia.
a sincronizao dos threads cooperativos: a cargo do usurio, que usa as prioridades e as
mensagens.
Gerenciamento de memria
baseado em paginao.
separa a parte do gerenciamento dependente de mquina da independente.
isso torna o gerenciamento de memria mais porttil.
interage fortemente com o mecanismo de comunicao.
cdigo dividido em 3 partes:
(1) pmap(referente ao MMU, no kernel),
(2) parte referente ao gerenciamento de falta de pginas, e
(3) o memory manager ou external pager, referente ao gerenciamento da memria virtual em disco.
o uso de um protocolo bem definido com o kernel facilita criar novos gerenciadores.
memria virtual: 32 bits de endereo paginado, esparso, dividido em regies alocadas ou no alocadas,
permitindo o surgimento de regies vazias entre elas.
memory object cria um mapa de memria, aplicvel a uma regio no ocupada, e pode ser usada para
memria ou para arquivo. Se for usada para arquivo, este poder ser lido ou gravado usando
instrues de acesso memria.
primitivas: allocate, deallocate, map, copy, inherit, read, write.
memory sharing - no mesmo processador, e entre processadores.

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.

Objetivos e caractersticas (A verso aqui estudada a Amoeba 5.0)


A maioria dos sistemas distribudos partiu de um sistema existente como o UNIX
Amoeba comeou do zero, para experimentar novas idias.
Posteriormente, foi adicionada a emulao de UNIX para evitar de reescrever muito cdigo de aplicativos.
Objetivo principal - construir um sistema operacional distribudo genuinamente transparente.
O usurio v um sistema anlogo aos de time-sharing usuais, sem se dar conta do multiprocessamento.
A diferena que em todas as tarefas executadas muitas mquinas (servidores) podem ser envolvidas.
Amoeba no possui o conceito de mquina hospedeira, e as mquinas no tm dono.
O usurio se conecta ao sistema, e no a uma particular mquina.
Uma vez instalado em um processador, outros comandos rodam em geral noutra mquina (a menos usada)
Isso tende a distribuir mais ou menos uniformemente a carga pelas mquinas do sistema.
Os recursos so sempre do sistema como um todo, e so alocados pelo sistema.
No Amoeba, as alocaes dedicadas de recursos em geral perduram por pouco tempo.
A transparncia levada ao limite: por exemplo o comando amake (equivalente ao make do UNIX) dispara todas
as tarefas necessrias, e s o sistema decide qual deve ser executada seqencial ou paralelamente.
Uma meta secundria foi servir de ambiente experimental de programao distribuda e paralela.
Isso permite que enquanto alguns usurios usam Amoeba como se fosse uma mquina por eles dominada,
outros podem querer tirar proveito dos mltiplos processadores disponveis.
Para isso, o paralelismo disponibilizado a quem dele queira fazer uso
Os usurios do Amoeba so na maioria pessoas interessadas em sistemas distribudos e paralelismo.
Uma linguagem (Orca) foi especificamente desenvolvida para isso.
O prprio Amoeba no foi desenvolvido em Orca mas em C.

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.

Amoeba se baseia no modelo cliente-servidor.

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

Servidores do usurio executam diversas tarefas mais especficas dos aplicativos.


Objetos

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

Processos so objetos em Amoeba. So hierarquizados em rvores.

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)

Descritores de processos: Tipo de processador, Capability, descritores de segmentos, conjunto de threads

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.

Sincronizao de threads: signal(interrupo assncorna), mutex (semforo binrio), semforo (contador).

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.

Permite criar sistema de arquivos em memria porque dispe de read/write.

Segmentos podem ser mapeados (associados a endereos fsicos) ou desmapeados (eliminados do espao
fsico), no espao de endereamento desejado.
Sumrio

Amoeba faz um conjunto de computadores independentes parecer um nico sistema multiprogramado

Implementa transparncia: do processador em que roda, de onde o arquivo fica, das cpias de segurana.

D acesso a todos os recursos do multiprocessamento ao usurio que deseje explorar o paralelismo.

Microkernel com gerenciamento de processos e memria em dois nveis, comunicao, entrada/sada.

Sistema de arquivos e demais componentes do SO rodam como processos do usurio.

Capabilities fornecem mecanismo simples para nomear/proteger objetos (direitos de acesso s operaes)

So protegidas por criptografia unidirecional. As capabilities tm checksum para maior segurana

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)

PCS-2453 - Sistemas Operacionais Aula 25 Prof. Joo Jos Neto

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

Estruturas dinmicas so alocadas e mantidas no Heap


sistemas de arquivos

rotinas introduzidas pelas palavras SEGMENT PROCEDURE no so alocadas na


memria principal ao ser chamado o programa, mas permanecem no disco at que
sejam dinamicamente ativados
um programa em p-code constitui, ele prprio, um segmento
Na UCSD p-machine verso IV destacam-se (dos endereos baixos para os altos): o
interpretador de p-code; um conjunto de segmentos globais de dados; um conjunto
correspondente pilhas dos processos, cada qual acompanhada de sua rea de
crescimento; heap, com sua rea de crescimento; code pool (rea onde residem os
segmentos de cdigo); pilha do sistema (stack) com a respectiva rea de
crescimento; SO residente.
No Code Pool os segmentos se interligam, formando uma lista ligada: gerenciamento
poderoso, s vezes lento.
Um gerenciador de erros entra em ao sempre que o sistema operacional detectar
uma interrupo de falta de segmento ou um estouro de pilha, e aciona um tratamento
de tais excees.
Registradores auxiliam a manter a eficincia do sistema na p-machine.
A pilha usada para computao em geral.

Execuo dos programas em p-code


para executar p-code, preciso que esse cdigo possa enderear e manipular seus
dados na pilha
o arquivo de cdigo compe-se de segmentos, cada qual com informao suficiente
para tal acesso pilha
cada segmento tem um conjunto de procedimentos, formados de p-codes dos
algoritmos que representam
Emulador da p-machine (PME)
compe-se de um interpretador do p-code e de um ambiente de execuo (run-time
support package)
parte desse ambiente de execuo foi projetado com a especificao de ser
transportvel para outras mquinas.
para isso, independente de mquina, exceto o BIOS, que varia conforme os
dispositivos usados
tem-se ento: (1) nvel da linguagem: usurio e sistema; (2) nvel do PME
(dispositivos padro console, impressora, disco, remotos e dispositivos definidos
pelo usurio); (3) nvel da BIOS (drivers, primitivas bsicas)
Como o p-system contorna as suas fraquezas e restries
considerado em termos absolutos, o p-code interpretado mais lento que um
hardware dedicado.
no entanto, considerado em termos globais, a diferena no significativa quando
h um pouco mais de E/S.
a quantidade de memria consumida menor no p-code, reduzindo o overhead de
virtualizao de memria

o uso de um SBIOS (simplified BIOS) reduz muito a dificuldade de reescrever a parte


dependente de mquina
tradutores de p-code geram cdigo nativo extenso: podem causar overhead para
salvar/restaurar o ambiente
fraqueza do p-system: seu esquema de endereamento dificulta a execuo de
programas grandes
uso de ram-disk pode melhorar muito o desempenho global do sistema evitando
excesso de acessos ao disco
no entanto, ram-disk voltil, e tem de ser salvo manualmente para o disco ao final
da operao.

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

PCS-2453 Sistemas Operacionais Aula 26 Prof. Joo Jos Neto

Assunto: 9o. Estudo de Caso OS/390


(Fonte: cap. 16 de Flynn, I.M. e McHoes, A.M., Introduo aos Sistemas
Operacionais, Ed. Thomson, 2002)

OS/390 para grandes mquinas mainframes da IBM. Significativamente diferente de


todos os outros SOs
Verso moderna da antiga linhagem de sistemas operacionais para mainframes da
IBM
Voltado para multiprogramao e batch e orientado para ambientes comerciais de
computao
Comrcio eletrnico e grande volume de transaes internet exigem confiabilidade,
segurana e alta capacidade de processamento dos mainframes
Permite interfaces UNIX e Windows 2000, alm do JCL (job control language) para
processamento em batch
Histrico
Os predecessores do OS/390 foram projetados para as linhas /360 e /370 de
mainframes da IBM:
IBM/360 1964 OS/PCP e IBM DOS (processamento seqencial, em batch);
1967 OS/MFT multiprogramao com nmero fixo de tarefas (descende do
PCP; introduziu multiprogramao; particionamento fixo); 1967 DOS-2314
(descendente do IBM DOS); 1968 OS/MVT multiprogramao com nmero de
tarefas varivel (descendente do PCP; introduziu spooling; gerenciamento dinmico
de memria); 1969 OS/MFT-11 (descendente do MFT); 1969 DOS/MP DOS
com multiprogramao (descendente do DOS-2314)
IBM/370 1970 TSO Sistema MVT com time-sharing (incorporado ao sistema
MVT; introduziu tele-processamento e time-sharing); 1972 SVS Single Virtual
Storage System (Incorporado ao MVT; introduziu o conceito de armazenamento
virtual); 1972 OS/VS1 Virtual storage system 1 (descendente do MFT-11;
programas carregados em parties fixas); 1972 OS/VS2 Virtual storage system
2 (descendente do MVT; alocao dinmica de memria); 1973 VM virtual
machine (novo SO; introduz conceito de mquina virtual); 1973 DOS/VS DOS
com armazenamento virtual (descende do DOS/MP); 1974 MVS multiple
virtual storage system (descende do VS2); 1981 MVS/XA Multiple virtual
storage system/extended architecture (verso expandida do MVS); 1983
MVS/ESA (Enterprise systems architecture) (armazenamento expandido
diretamente acessvel pelas aplicaes)
IBM/390 1990 MVS/ESA (Enterprise systems architecture) (nova arquitetura
de E/S, ESCON Enterprise system connection); 1996 OS/390 v.1 ncleo MVS;
gerenciamento e instalao mais simples; sistema aberto); 1997 OS/390 v.2
(capacidade redimensionvel de processamento de transaes; escalonamento de
processos em batch; segurana via firewalls); 1999 OS/390 v.2 rel.8 (comrcio
eletrnico, recursos de segurana aprimorados); 2000 OS/390 v.2 rel.9
(segurana aprimorada)

Iniciou como um aprimoramento do sistema /370 XA: controle de rede, controle de


cache.
Na dcada de 1990 o sistema foi tornado tolerante a falhas; o uso da tecnologia
Parallel Sysplex da IBM permite o uso de diversos sistemas conectados
(dinamicamente) atravs de fibras pticas como se fossem um nico computador.
Dados tambm podem ser compartilhados dinamicamente entre servidores diferentes
atravs de conexes muito rpidas entre grandes bancos de dados
Os tempos de processador desconectado para manuteno foram tremendamente
reduzidos:
tipo
PC
Mini
Mini
Mainframe
Mainframe
Mainframe

plataforma

perodo fora do ar por


servidor por ano
baseada em Windows NT
224,5 horas
baseada em UNIX
23,6 horas
Digital Vax
18,9 horas
IBM/390 (no sysplex)
8,9 horas
IBM AS/400
5,2 horas
IBM/390 (sysplex)
10 minutos

disponibilidade
97,44%
99,73%
99,78%
99,90%
99,94%
99,998%

O IBM/390 um sistema maduro, cujos problemas esto praticamente solucionados,


proporcionando uma plataforma extremamente confivel.

Objetivos do sistema operacional da IBM


Aumento da produtividade da mquina pela alocao dinmica de recursos
Aumento da produtividade humana pela automatizao das operaes do hardware,
do gerenciamento de dados, de recursos e da carga de trabalho
Criado para controlar os mainframes da dcada de 1970 com muita memria e
dispositivos muito rpidos
Concebido para suportar muitos usurios simultneos em batch ou em time-sharing
JCL (Job control language) uma linguagem de comandos para o OS:
Proposies JOB separam e identificam processos
Proposies EXEC identificam programas a serem executados
Proposies DD (data definition) definem caractersticas dos perifricos
requisitados pelos processos
O JCL permite a criao de arquivos de script associveis a programas para evitar
a repetio de comandos
Gerenciamento de Memria
parte do Gerenciamento de supervisor, que compreende: controle de supervisor;
gerenciamento de tarefas; de programas; de armazenagem virtual; de armazenagem
real; de armazenagem auxiliar; supervisor do controle de tempos; gerenciamento dos
recursos de sistema; gerenciamento de trmino das operaes de recuperao.

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

Interface com o Usurio


A interface textual baseada na linguagem JCL (job control language)
O OS/390 trabalha muito com um grande nmero programas em batch juntamente com
os usurios time-shared
TSO (Time-sharing option) embora permita o uso do sistema em tempo compartilhado,
reflete a cultura batch
Permite solicitar 6 funes: login; identificao do proprietrio do processo; requisio
de recursos; estabelecimento dos arquivos a serem usados; requisio de espao de
endereamento; execuo do processo.
O operador do sistema tem acesso a comandos adicionais para interveno nos
programas em execuo
O DBA (database administrator) um super-usurio que tem acesso a todos os
comandos
Concluso
O sistema OS/390 e o hardware hospedeiro esto a evoluir
Os mainframes ganharam adeptos, com o advento do comrcio eletrnico, como
hospedeiros Web, processadores de grandes volumes de dados e componentes de
alta capacidade e segurana.
JCL uma linguagem inadequada e antiga, que dificulta ao usurio o uso do sistema
Parte do seu sucesso deve-se a sua portabilidade e ao fato de permitir que grandes
mainframes sejam acessados via plataformas com redes populares baseadas em
Windows e UNIX

PCS-2453 Sistemas Operacionais Aula 27 Prof. Joo Jos Neto

Assunto: 10o. Estudo de Caso Open VMS Alpha


(Fonte: cap. 15 de Flynn, I.M. e McHoes, A.M., Introduo aos Sistemas
Operacionais, Ed. Thomson, 2002)
Open VMS Alpha para mquinas Alpha, com arquiteturas RISC de 64 bits:
longevidade, multiprocessamento, e compatibilidade com processadores MIPS e VAX,
e com diversos sistemas operacionais
Histrico
Histrico do sistema operacional Open VMS est associado ao do hardware
associado (famlia VAX, da Digital)
Um integrante moderno: mquina Alpha, de 64 bits (primeiro chip: DECchip 21064
nico, mais veloz do mundo)
DEC dominou o mercado de minis no incio da dcada de 1970 com o PDP-11
(64K endereveis) multi-usurio
Incio da dcada de 1980 DEC investe em aprimorar suas mquinas para no
perder o mercado
Decidiu gerar o VAX-11, mquina de ltima gerao, que podia ser obtida como
upgrade do PDP-11
Objetivos atingidos: protegeram os investimentos em hardware de seus clientes;
atraram mais usurios com os novos recursos oferecidos; ampliaram as
potenciais aplicaes (usurios finais, ambientes distribudos e OEM).
Resultado: famlia VAX (Virtual Address Extension)
com 32 bits de endereamento para a memria virtual (4 gigabytes, em
contraste com os 64K do PDP-11)
manteve todos os modos de endereamento do PDP-11
acrescentou diversos novos recursos e formatos, para atender aplicaes
comerciais e cientficas
a arquitetura prev as necessidades de um SO de memria virtual (VMS Virtual
Memory System)
Operam em conjunto: o SO MVS, o hardware VAX e o software VMS
Como ganhos principais, foi necessrio melhorar o sistema operacional para tratar
o aumento da memria e do nmero de usurios interativos.
O desempenho varia com o tamanho do sistema: o do VAX8600 4.2 vezes maior
que o do VAX-11/780
Cronologia: 1970 PDP-11 64KB, 2 usurios; 1978 VAX-11/725 3MB, 8
usurios; 1981 VAX-11/750 8MB, 64 usurios; 1984 VAX-11/780 12MB,
100 usurios; 1985 VAX-8600 68MB, vrias centenas de usurios; 1987
VAX-8800 512MB, processador duplo; 1989 VAX-9000 at 4 processadores
e instrues vetoriais; 1990 VAXft-3000 acrescentou tecnologia de tolerncia a
falhas; 1992 VAX-7000 adaptvel para o processador Alpha de 64 bits; 1992
Alpha System introduziu Open VMS, endereamento de 64 bits mltiplos
compiladores e redes; 1993 Alpha System introduziu OSF/1 UNIX para
sistemas Alpha; 1995 Alpha Server 8400 Aceita at 12 processadores 21164 e

14 GB de memria; aceita gerenciamento de grandes bases de dados; 1997


Alpha System, verso 7 Sistema operacional Open VMS Alpha introduzido para
aplicaes consumidoras de grandes volumes de memria.
Objetivos
compatibilidade com DEC PDP-11
extensibilidade do sistema VAX/MVS para garantir compatibilidade entre modelos
VAX
aprimorar a interao entre o hardware e o sistema operacional
aprimorar o desempenho dos programas
compiladores geram cdigo eficiente usando instrues de comprimento
varivel e diversos tipos de dados;
VMS possui ferramentas poderosas para facilitar o desenvolvimento de
programas;
VAX permitem que programas escritos em uma linguagem chamem
procedimentos escritos em outra;
VMS tem sistema sofisticado de gerenciamento de dados para
compartilhamento de arquivos.
A migrao de 32 para 64 bits de endereamento ocorreu em dois estgios
SO trabalhando em um espao de endereamento de 32 bits
SO trabalhando em espao de 64 bits aceitando endereamento virtual de 64
bits
Open VMS Alpha 7.1 expandiu mais ainda a compatibilidade com as aplicaes
VLM (very large memory) e acrescentou novos recursos de gerenciamento de
sistema.
Comandos do usurio so interpretados pelo manipulador de comandos, que faz a
ponte entre o usurio e os mdulos do sistema operacional: gerenciador de
memria, de CPU, de arquivos e de dispositivos.
Gerenciamento de Memria
Espao virtual de 64 bits (cerca de 8 TB de Mem. Virtual privativa), com mltiplos
usurios e multiprogramao.
Em Open MVS a pgina a unidade bsica de relocao e de proteo.
A palavra pgina usada em trs sentidos: divide-se o espao de endereamento
em pginas ou sees de 8KB, do mesmo tamanho dos blocos ou setores do
disco, e tambm do quadro de pgina na memria fsica.
O Gerenciador de Memria mapeia as pginas virtuais e as pginas fsicas, efetua
paginao dos processos ativos e promove a proteo do espao de memria.
A principal preocupao do Gerenciador de Memria a de compatibilizar os
ambientes de 32 e de 64 bits.
Uma tabela de pginas para cada processo ativo (mapeia endereos virtuais em
endereos fsicos)
Paginador encarrega-se do tratamento da falta, na memria, de uma pgina
referenciada

obtm na tabela de pginas o endereo fsico da pgina requisitada


se o nmero de pginas no working set no exceder um mximo permitido,
localiza um quadro de pgina livre e transfere para ela o contedo em disco da
pgina referenciada
atualiza a tabela de pginas e retorna o controle ao processo que provocou a
interrupo.
se o nmero de pginas do working set for excedido, efetua substituio de
pgina, gravando no disco a pgina removida caso tenha seu bit de
modificao ligado.
para otimizar o tempo de E/S as atualizaes do disco no so feitas uma por
vez, mas a cada vez que for acumulado um conjunto predeterminado de
atualizaes.
Considerando que o maior nmero de interrupes acontece na carga inicial do
programa, o Open MVS antecipa a carga de mais pginas na memria ao carregar
a primeira pgina do programa
Conforme a taxa de ocorrncia de interrupes, o tamanho do working set vai
sendo ajustado dinamicamente.
Havendo poucos programas ativos, o working set aumentado evitando novas
interrupes desnecessrias.
O Swapper efetua a substituio de processos inteiros (ou seja, working sets
inteiros) entre memria e disco
usa trs fatores: prioridade, status e quantum do processo.
procura equilibrar programas cpu-bound com io-bound
remove da memria processos que estejam espera de operaes de
entrada/sada
o swapper responsabiliza-se pela manuteno da lista de pginas livres e da
lista de pginas modificadas
opera em sintonia com o gerenciador de CPU: manipula processos que
chegam, saem ou esto em espera
Gerenciamento de Processador
O escalamento de processos preemptivo, dirigido por eventos e controlado por
32 nveis de prioridades: Processos de tempo real so escalados s por
prioridades; Os interativos e de background so escalados por algoritmo de
preempo p/ equilibrar cpu-bound/io-bound
O swapper hiberna at que acontea um dos seguintes eventos: fim de processo e
sua retirada do sistema; lista de pginas livres fica grande ou pequena demais;
unidade de tempo predefinida (time-slice) se esgota; entrada de um novo processo
no sistema; um processo residente entra em espera
Gerenciamento de Dispositivos
Os usurios do Open MVS no interagem diretamente com os dispositivos ou
drivers: nvel mais alto: RMS (Record management services) acessado quando o
processo requisita E/S; nvel seguinte: QIO (queue I/O system service); drivers dos
dispositivos responsveis pelo controle propriamente dito dos dispositivos

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.

PCS-2453 Sistemas Operacionais Aula 27 Prof. Joo Jos Neto

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

PCS-2453 PROJETO PRIMEIRA PARTE Prof. Joo Jos Neto


/
'

*#

#
*#

"

'

"

(
%

&
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

PCS-2453 Sistemas Operacionais Aula 17 Prof. Joo Jos Neto


Assunto: Segunda parte do projeto simulao dirigida por eventos
Na primeira parte deste projeto pediu-se que fosse implementado um simulador inspirado na referncia
McDougall, M. H.
Computer System Simulation - an Introduction
ACM Computing Surveys, vol. 2 n. 3, setembro de 1970, p. 191-209
Trata-se de um simulador dirigido por eventos, do tipo estocstico, com granularidade no nvel de sistema,
ou seja, um simulador no qual o modelo adotado para representar os fenmenos simulados no leva em
considerao detalhes individuais dos fenmenos e sim seu efeito coletivo apenas.

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

Processamento interno em Si apenas, durante todo o time-slice. Neste caso, apenas


controlar o transcurso do tempo de processamento do job.

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)

Os gerenciadores de recursos devero operar de acordo com os seguintes requisitos:


Gerenciador de memria: memria virtual segmentada, sem paginao

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

Pode-se considerar, entre outras, as seguintes premissas de trabalho:

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.

No obrigatrio compactar a memria. Em caso de fragmentao, bloquear o aumento do nmero


de processos ativos at que seja liberada memria suficiente. No entanto, se isso for considerado
conveniente, h liberdade para incluir uma rotina de Garbage collection..

A modelagem do sistema de arquivos poder ser feita aplicando-se rea em disco os mesmos
algoritmos aplicados s parties de memria.

No simulador final devero estar presentes, portanto, os seguintes elementos:


Tabela de jobs, uma para todo o sistema. As linhas desta tabela contm informaes sobre os

diversos programas em atividade:


o
o
o
o

quanto tempo de processamento falta para o programa terminar


lista dos pontos no processamento em que h requisies de entrada/sada
ponteiro para a rvore de segmentos que descreve a estrutura do programa
conjunto de arquivos a serem referenciados pelo programa

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

Tabela de parties ocupadas no disco (nica), correspondente ao conjunto de arquivos que


formam o sistema de arquivos implementado. Cada linha desta tabela indica o nome, o possuidor, o
tamanho e as caractersticas do arquivo a que se refere.

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).