Buscar

Fund-SOP-v8-handout

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais:
Fundamentos de Sistemas Operacionais
Prof. Maur´ıcio Aronne Pillon
Prof. Rafael R. Obelheiro
UDESC/CCT – Departamento de Cieˆncia da Computac¸a˜o
{mauricio.pillon,rafael.obelheiro}@udesc.br
Joinville, julho de 2014
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Suma´rio
1 Introduc¸a˜o
2 Histo´rico dos SOs
3 Conceitos de SO
4 Revisa˜o de hardware
5 Estruturas de SO
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 2/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
O que e´ um sistema operacional?
Camadas de um SO
O que e´ um sistema operacional?
O gerenciamento de um sistema computacional moderno e´ sem
du´vida uma tarefa complexa
O computador moderno exige o controle no uso de um ou mais
processadores, memo´ria, discos, impressoras de maneira correta e
otimizada
Duas viso˜es
1. Uma ma´quina estendida
esconde os detalhes complicados do funcionamento do hardware
oferece uma interface mais amiga´vel para as aplicac¸o˜es
⇒ ma´quina virtual
2. Um gerenciador de recursos
cada programa utiliza o recurso durante um tempo
cada programa ocupa um certo espac¸o no recurso
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 3/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
O que e´ um sistema operacional?
Camadas de um SO
Camadas de um SO
Sistema
bancário
Reserva de
passagens
aéreas
Sistema operacional
Visualizador
Web
Compiladores Editores
Programas de aplicação
Hardware
Programas
do sistema
Interpretador
de comandos
Linguagem de máquina
 Microarquitetura
Dispositivos físicos
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 4/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Suma´rio
1 Introduc¸a˜o
2 Histo´rico dos SOs
3 Conceitos de SO
4 Revisa˜o de hardware
5 Estruturas de SO
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 5/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Histo´ria dos Sistemas Operacionais
1. Primeira gerac¸a˜o (1945–1955)
va´lvulas, paine´is de programac¸a˜o
2. Segunda gerac¸a˜o (1955–1965)
transistores, sistemas em lote
3. Terceira gerac¸a˜o (1965–1980)
Cls e multiprogramac¸a˜o
4. Quarta gerac¸a˜o (1980–dias de hoje)
computadores pessoais
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 6/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Howard Aiken (Harvard), John von Neumann (Princeton),
J. Presper Eckert e William Mauchley (Pensilvaˆnia) e Konrad Zuse
(Alemanha) construiram ma´quinas de calcular
Sistema totalmente mecaˆnico (rele´s lentos), com ciclos medidos em
segundos
Primeira evoluc¸a˜o: substituic¸a˜o dos rele´s por va´lvulas
O mesmo grupo de pessoas projetava, constru´ıa, programava,
operava e realizava a manutenc¸a˜o de cada ma´quina
Programac¸a˜o feita com co´digo absoluto e muitas vezes conectando
plugs em paine´is
Os sistemas operacionais ainda na˜o tinham sido inventados
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 7/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
ENIAC
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 8/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Quadro de plugues do IBM 402
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 9/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Segunda gerac¸a˜o (1955–1965)
Introduc¸a˜o do transistor (substituindo as va´lvulas)
Computadores mais confia´veis
Passaram a ser fabricados e comercializados com uma expectativa de
“vida u´til” mais longa
Estabeleceu-se uma separac¸a˜o clara entre as func¸o˜es: projetista,
fabricantes, programadores e te´cnicos de manutenc¸a˜o
Estas ma´quinas passaram a ser denominadas de computadores de
grande porte (mainframes)
Devido ao alto custo do equipamento, buscou-se uma maneira de
reduzir o desperd´ıcio, adotando-se o chamado sistema em lote
(batch)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 10/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Sistema em lote (batch)
(a) os programadores levavam os carto˜es para o 1401
(b) o 1401 gravava o lote de jobs em fita
(c) o operador levava a fita de entrada para o 7094
(d) o 7094 executava o processamento
(e) o 1401 imprimia as sa´ıdas
1401 7094 1401
(a) (b) (c) (d) (e) (f)
Leitora de
cartões
Unidade
de fita
magnética Fita de
entrada Fita de
saída
Fita do
sistema
Impressora
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 11/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Estrutura de um job t´ıpico
$JOB, 10,6610802, MARVIN TANENBAUM
$FORTRAN
$LOAD
$RUN
$END
Programa FORTRAN
Dados para o programa
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 12/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Carta˜o Fortran
Z(1) = Y + W(1)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 13/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
3a gerac¸a˜o: fam´ılias de computadores
Os computadores de 2a gerac¸a˜o eram radicalmente diferentes entre
si, tornando-os incompat´ıveis:
IBM 7094: ca´lculo intensivo, orientado a palavra
IBM 1401: processamento comercial, orientado a caracter
As diferenc¸as representavam:custos significativos para o fabricante
custos e inconvenieˆncias para os usua´rios que precisavam migrar de
plataforma
A IBM introduziu a fam´ılia 360
primeiros computadores que usavam CIs (Circuitos Integrados)
compatibilidade de software e hardware
Os requisitos e caracter´ısticas diferentes se tornaram um pesadelo
para a equipe de desenvolvimento do OS/360
milho˜es de linhas de Assembly, milhares de programadores
quando bugs eram corrigidos, outros eram introduzidos
The Mythical Man-Month (Fred Brooks)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 14/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Sistema multiprogramado (3a gerac¸a˜o)
No 7094, quando um job parava para aguardar uma E/S, a CPU
simplesmente permanecia ociosa
Em processamento comercial (I/O Bound), o tempo de espera por
E/S chegava a 80 a 90%
3 jobs na memo´ria
Job 3
Job 2
Job 1
Sistema
operacional
Partições
de memória
Deu origem a sistemas de tempo compartilhado (time sharing)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 15/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
MULTICS
MULTiplexed Information and Computing Service
Um “computador utilita´rio”, capaz de atender a centenas de
usua´rios simultaˆneos
CPU equivalente a um 386, maior capacidade de E/S
O projeto foi um fracasso comercial (menos de 100 instalac¸o˜es), mas
teve usua´rios fie´is (ate´ de´cada de 90)
Extremamente influente do ponto de vista te´cnico
lanc¸ou diversas ide´ias usadas ate´ hoje
em alguns aspectos ainda superior
Diversos nomes importantes da computac¸a˜o nos u´ltimos 40 anos
fizeram parte do projeto
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 16/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
UNIX
Ken Thompson (Bell Labs) e o PDP-7 (origem do UNIX)
Crescimento comercial dos minicomputadores, culminando no
PDP-11, sucesso comercial
BSD: memo´ria virtual e TCP/IP
Problemas de incompatibilidade sobre as verso˜es UNIX levou o IEEE
a lanc¸ar um padra˜o de desenvolvimento, POSIX (Portable Operating
System-IX )
Sistema feito por programadores, para programadores
Caracter´ısticas principais:
ferramentas de desenvolvimento cooperativo
interfaces simples, elegantes, consistentes e sem “frescuras”
conceito de ferramentas de software: pequenos programas que
desempenham func¸o˜es espec´ıficas e que podem ser combinados
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 17/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Thompson, Ritchie e um PDP-11 (ca. 1972)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 18/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Computadores Pessoais (microcomputadores)
Os microcomputadores na˜o eram muito diferentes do PDP-11,
pore´m eram muito mais baratos
Desenvolvimento de CIs em larga escala (large scale integration –
LSI), que sa˜o chips contendo milhares de transistores em um
cent´ımetro quadrado de sil´ıcio
Em 1974, a Intel lanc¸ou o 8080, primeira CPU de 8 bits de propo´sito
geral
Em 1977, a Digital Research (Gary Kildall) reescreveu o CP/M
(Control Program for Microcomputers) para rodar em outras CPUs
ale´m do 8080
Nos anos 80, a IBM solicitou a um desconhecido desenvolvedor de
interpretador Basic, Bill Gates, o contato de uma empresa que
pudesse desenvolver um SO para o IBM PC
Bill Gates comprou o DOS (Disk Operating System) e vendeu a` IBM
o DOS/Basic. A Microsoft ainda contratou o desenvolvedor do
DOS, Tim Paterson, lanc¸ando o conhecido MS-DOS
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 19/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Computadores Pessoais (microcomputadores)
CP/M e MS-DOS, entre outros, eram todos baseados na digitac¸a˜o
de comandos
Doug Engelbart (Stanford) inventou uma interface gra´fica voltada
para o usua´rio (GUI – Graphical User Interface)
O Apple Macintosh foi o primeiro SO a incorporar esta ide´ia
Devido ao sucesso comercial da Apple, a Microsoft tambe´m resolveu
incorporar esta ide´ia
Os computadores tornaram-se cada vez mais poderosos
em vez das pessoas esperarem pelo computador, o computador e´ que
espera por elas
necessidade de SOs mais sofisticados
Surgimento de redes de computadores, com sistemas operacionais de
rede e sistemas operacionais distribu´ıdos
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 20/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Histo´ria dos sistemas operacionais
Primeira gerac¸a˜o (1945–1955)
Segunda gerac¸a˜o (1955–1965)
Terceira gerac¸a˜o (1965–1980)
Quarta gerac¸a˜o (1980–HOJE)
Tipos de sistemas operacionais
Tipos de sistemas operacionais
SOs para mainframes
SOs para servidores
SOs para multiprocessadores
SOs para computadores pessoais
SOs de tempo real
SOs embarcados
SOs para smartcards
SOs distribu´ıdos
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 21/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Suma´rio
1 Introduc¸a˜o
2 Histo´rico dos SOs
3 Conceitos de SO
4 Revisa˜o de hardware
5 Estruturas de SO
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 22/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Processos
Um processo e´ basicamente um programa em execuc¸a˜o
Cada processo possui um espac¸o de enderec¸amento
faixa de enderec¸os de memo´ria onde ele pode ler e escrever
Cada entrada na tabela de processos possui informac¸o˜es sobre o
estado corrente do processo
Processos podem se comunicar → comunicac¸a˜o interprocessos (IPC)
A´rvores de processos
A
B
D E F
C
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 23/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Deadlocks
Situac¸o˜es que surgem na interac¸a˜o entre processos e onde o
progresso e´ imposs´ıvel:
(a) deadlock potencial
(b) deadlock real
(a) (b)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro24/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Gereˆncia de memo´ria
Define como a memo´ria principal e´ alocada para os processos
Implementa mecanismos de protec¸a˜o
Lida com espac¸os de enderec¸amento maiores do que a memo´ria
dispon´ıvel → memo´ria virtual
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 25/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Gereˆncia de arquivos
Define uma interface mais refinada para armazenamento persistente
de informac¸o˜es
A maior parte dos sistemas usa o conceito de arquivos organizados
em hierarquias de direto´rios
Diretório-raiz
Estudantes Professores
Leo Prof. Brown
Arquivos
Cursos
CS101 CS105
Artigos
SOSP COST-11
Comissões
Prof. Green Prof. WhiteMattyRobert
Bolsas de
estudo
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 26/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Chamadas de sistema
As chamadas de sistema compo˜em a interface que o SO oferece a`s
aplicac¸o˜es
Executam no contexto do SO, usando o modo privilegiado do
processador
Tipos de chamada de sistema
processos: criar, sincronizar, terminar
memo´ria: alocar, desalocar
arquivos e direto´rios: criar, ler, escrever, remover, definir permisso˜es
. . .
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 27/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Exemplo de chamada de sistema: read()
Retorne para quem chamou
4
10
6
0
9
7 8
3
1
11
Despache
Tratador da
chamada
ao sistema
Endereço
0xFFFFFFFF
Espaço do usuário
Espaço do núcleo
(Sistema operacional)
Procedimento
read da
biblioteca
Programa do
usuário
chamando
read
úcleo
Coloque o código para read
no registrador
Incremente SP (apontador da pilha)or d
Chame read
Armazene fd na pilha
Armazene nbytes na pilha
5
read(fd, &buffer, nbytes)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 28/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Exemplo de chamadas de sistema POSIX
Gerenciamento de processos
Chamada Descrição
pid = fork( ) Crie um processo filho idêntico ao processo pai
pid = waitpid(pid, &statloc, options) Aguarde um processo filho terminar
s = execve(name, argv, environp) Substitua o espaço de endereçamento do processo
exit(status) Termine a execução do processo e retorne o estado
Gerenciamento de arquivos
Chamada Descrição
fd = open(file,how, ...) Abra um arquivo para leitura, escrita ou ambas
s = close(fd) Feche um arquivo aberto
n = read(fd, buffer, nbytes) Leia dados de um arquivo para um buffer
n = write(fd, buffer, nbytes) Escreva dados de um buffer para um arquivo
position = lseek(fd, offset, whence) Mova o ponteiro de posição do arquivo
s = stat(name, &buf) Obtenha a informação de estado do arquivo
Gerenciamento do sistema de diretório e arquivo
Chamada Descrição
s = mkdir(name,mode) Crie um novo diretório
s = rmdir(name) Remova um diretório vazio
s = link(name1, name2) Crie uma nova entrada, name2, apontando para name1
s = unlink(name) Remova uma entrada de diretório
s = mount(special,name, flag) Monte um sistema de arquivo
s = umount(special) Desmonte um sistema de arquivo
Diversas
Chamada Descrição
s = chdir(dirname) Altere o diretório de trabalho
s = chmod(name, mode) Altere os bits de proteção do arquivo
s = kill(pid, signal) Envie um sinal a um processo
seconds = time(&seconds) Obtenha o tempo decorrido desde 1º de janeiro de 1970
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 29/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processos
Deadlocks
Gereˆncia de memo´ria
Gereˆncia de arquivos
Chamadas de sistema
Exemplo de chamadas de sistema da API Win32
Unix Win32 Descrição
fork CreateProcess Crie um novo processo
waitpid WaitForSingleObject Pode esperar um processo sair
execve (none) CrieProcesso = fork + execve
exit ExitProcess Termine a execução
open CreateFile Crie um arquivo ou abra um arquivo existente
close CloseHandle Feche um arquivo
read ReadFile Leia dados de um arquivo
write WriteFile Escreva dados para um arquivo
lseek SetFilePointer Mova o ponteiro de posição do arquivo
stat GetFileAttributesEx Obtenha os atributos do arquivo
mkdir CreateDirectory Crie um novo diretório
rmdir RemoveDirectory Remova um diretório vazio
link (none) Win32 não suporta ligações (link)
unlink DeleteFile Destrua um arquivo existente
mount (none) Win32 não suporta mount
umount (none) Win32 não suporta mount
chdir SetCurrentDirectory Altere o diretório de trabalho atual
chmod (none) Win32 não suporta segurança (embora NT suporte)
kill (none) Win32 não suporta sinais
time GetLocalTime Obtenha o horário atual
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 30/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Suma´rio
1 Introduc¸a˜o
2 Histo´rico dos SOs
3 Conceitos de SO
4 Revisa˜o de hardware
5 Estruturas de SO
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 31/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Componentes de um computador
Monitor
Teclado Unidade dedisco flexível
Unidade de
disco rígido
Controlador
de disco
rígido
Controlador
de disco
flexível
Controlador
de teclado
Controlador
de vídeoMemóriaCPU
Barramento
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 32/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Processador: organizac¸a˜o ba´sica
Ciclo busca-decodifica-executa
Registradores
propo´sito geral
contador de programa / ponteiro de instruc¸a˜o
ponteiro de pilha
PSW (program status word) / flags
Unidade
de busca
Unidade
de
busca
Unidade
de busca
Unidade de
decodificação
Unidade
de execução
Unidade
de execução
Buffer de
instruções
(a) (b)
Unidade
de execução
Unidade
de execução
Unidade de
decodificação
Unidade de
decodificação
(a) Um pipeline de treˆs esta´gios (b) Uma CPU superescalar
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 33/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Exemplo de busca-decodificac¸a˜o-execuc¸a˜o
2
PC300
CPU RegistersMemory
Fetch Stage Execute Stage
3 0 01 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
AC
IR1 9 4 0
Step 1
•
•
PC300
CPU RegistersMemory
3 0 11 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
AC
IR1 9 4 0
0 0 0 3
Step 2
•
•
PC300
CPU RegistersMemory
3 0 1
0 0 0 5
0 0 0 5
0 0 0 3
0 0 0 5
1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
AC
IR5 9 4 1
Step 3
•
•
PC300
CPU RegistersMemory
3 0 21 9 4 0
301 5 9 41
302 2 9 4 1
1
940 0 0 0 3
941 0 0 0 2
AC
IR5 9 4 1
Step 4
•
•
PC300
CPU RegistersMemory
3 01 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
AC
IR2 9 4 1
Step 5
•
•
PC300
CPU RegistersMemory
3 0 31 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 5
AC
IR2 9 4 1
Step 6
•
•
3 + 2 = 5
Figure 1.4 Example of Program Execution
(contents of memory and registers in hexadecimal)
Opcodes 1: AC ← mem 2: mem ← AC 5: AC ← AC+mem
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 34/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Registradores na arquitetura IA-32 (x86)
Registradores de propo´sito geral (ou nem tanto)
EAX: acumulador para operandos e resultados
EBX: ponteiro para dados no segmento DS
ECX: contador para lac¸os e operac¸o˜es com strings
EDX: ponteiro de E/S
ESI: ponteiro de origem para operac¸o˜es com strings
EDI: ponteiro de destino para operac¸o˜es com strings
EBP: ponteiro para a base da pilha atual (no segmento SS)
ESP: ponteiro para o topo da pilha atual (no segmento SS)
Registradores de segmento
CS: segmento de co´digo
SS: segmento de pilha
DS, ES, FS, GS: segmentos de dados
Registradores de status e controle
EIP: ponteiro de instruc¸a˜o
EFLAGS: flags indicando o resultado de operac¸o˜es lo´gicas e
aritme´ticas
zero, vai um (carry), overflow, paridade, sinal
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 35/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Registradores de propo´sito geral no x86
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 36/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Busca e execuc¸a˜o no x86
CPU busca instruc¸a˜o apontada por EIP
EIP e´ incrementado automaticamente
instruc¸o˜es x86 teˆm tamanhos diferentes
EIP e´ modificado por desvios (JMP/Jxx) e chamadas de sub-rotinas
(CALL/RET)
na˜o e´ poss´ıvel manipular EIP diretamente
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 37/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Chips multithread e multicore (1)
Durante muitos anos, o desempenho dos processadores foi
melhorado basicamente por
aumento na densidade de transistores → mais portas por chip
aumento na frequeˆncia de operac¸a˜o → clock mais ra´pido
explorac¸a˜o do paralelismo de instruc¸o˜es → pipelining, superescalar
Os ganhos obtidos com essas estrate´gias sa˜o cada vez menores
soluc¸a˜o: aumento do paralelismo arquitetural
Chips multithread: replicam parte da lo´gica de controle,
permitindo chaveamento ra´pido (ordem de ns) entre threads quando
uma delas precisa acessar dados fora da cache
HyperThreading da Intel
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 38/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Chips multithread e multicore (2)
Chips multicore: CPUs independentes
(a) chip quad-core com cache L2 compartilhada (Intel)
(b) chip quad-core com caches L2 separadas (AMD)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 39/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Processador: modos de operac¸a˜o
Modos de operac¸a˜o
modo nu´cleo (kernel ou supervisor)
modo usua´rio
Chaveamento entre os modos
trap: usua´rio → nu´cleo
chamadas de sistema (software)
traps de hardware: excec¸o˜es
instruc¸a˜o: nu´cleo → usua´rio
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 40/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Organizac¸a˜o da memo´ria principal
A memo´ria e´ um vetor de N palavras de B bits
do ponto de vista do programador, um vetor de bytes
A memo´ria armazena dados e instruc¸o˜es
arquitetura de von Neumann
A INTERPRETAC¸A˜O E´ FEITA PELO SOFTWARE
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 41/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Hierarquia de memo´ria
Registradores
Cache
Memória principal
Fita magnética
 1 ns
 2 ns
 10 ns
 10 ms
100 s
<1 KB
 1 MB
 64–512 MB
 5–50 GB
 20–100 GB
Capacidade típicaTempo de acesso típico
nu´meros mostrados sa˜o apenas aproximac¸o˜es
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 42/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Hierarquia de caches
Sistemas atuais teˆm geralmente 2 ou 3 n´ıveis de cache
n´ıveis sucessivos teˆm maior capacidade e maior lateˆncia
L1: 8–64 KB
tipicamente separados para instruc¸o˜es e dados
L2: 256 KB–8 MB
em chips multicore, pode ser compartilhado ou local
cache compartilhado: complica controlador, simplifica coereˆncia
cache local: simplifica controlador, complica coereˆncia
L3: ate´ 16 MB
geralmente compartilhado
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 43/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Estrutura de uma unidade de disco
Superfície 2
Superfície 1
Superfície 0
Cabeça de leitura/escrita (uma por superfície)
Direção do movimento do braço 
Superfície 3
Superfície 5
Superfície 4
Superfície 7
Superfície 6
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 44/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Dispositivos de E/S (1/2)
Controladores vs dispositivos
registradores de dados, controle, status
Drivers de dispositivo
geralmente fornecidos pelo fabricante
executam em modo nu´cleo para ter acesso ao dispositivo
Modos de operac¸a˜o
E/S programada
interrupc¸o˜es
DMA (Direct Memory Access)
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 45/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Dispositivos de E/S (2/2)
CPU Controlador
de interrupção
Controlador
de disco
Unidade de disco
Instrução atual
Próxima instrução
1. Interromper
3. Retornar
2. Despachar �
para tratador �
de interrupção
Tratador de interrupção
(b)(a)
1
3
4 2
(a) os passos para iniciar um dispositivo de E/S e obter uma interrupc¸a˜o
(b) o processamento de uma interrupc¸a˜o
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 46/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Processador
Memo´ria
Dispositivos de E/S
Barramentos
Estrutura de um sistema Pentium
Ponte
ISA
Modem
Mouse
Ponte
PCICPU
Memória
principal
SCSI USB
Barramento local
Placa
de som Impressora
Conector ISA
disponível
Barramento ISA
Disco
IDE
Conector PCI
disponível
Teclado
Monitor
Adaptador
gráfico
Cache de
nível 2
Barramento de cache Barramento de memóriaBarramento PCI
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 47/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Suma´rio
1 Introduc¸a˜o
2 Histo´rico dos SOs
3 Conceitos de SO
4 Revisa˜o de hardware
5 Estruturas de SO
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 48/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Estruturas de SO
Como o SO e´ organizado internamente
Estruturas cla´ssicas
monol´ıtico
em camadas
micronu´cleo
cliente-servidor
ma´quinas virtuais
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 49/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Sistemas monol´ıticos
Procedimento
principal
Procedimentos
de serviços
Procedimentos
 utilitários
Colec¸a˜o de procedimentos
Invocac¸a˜o livre
Confiabilidade
Desempenho
Procedimentos de servic¸o
implementam chamadas de
sistema
Mo´dulos dinaˆmicos
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 50/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Sistemas em camadas
5 O operador
4 Programas do usuário
3 Gerenciamento de entrada/saída
2 Comunicação operador-processo
1 Gerenciamento da memória e do tambor magnético
0 Alocação de processador e multiprogramação
Camada Função
Estrutura do sistema operacional THE
Interfaces bem definidas
Cada camada usa os servic¸os da camada inferior
Nem sempre suportada pelo hardware
Exemplos: THE, MULTICS
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 51/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Micronu´cleo
Arquitetura do MINIX 3
Funcionalidades do nu´cleo particionadas
micronu´cleo (microkernel) em modo supervisor
drivers e servidores em modo usua´rio
Comunicac¸a˜o por troca de mensagens
Algumas func¸o˜es exigem modo nu´cleo
Confiabilidade vs desempenho
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 52/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Cliente-servidor
Máquina 1 Máquina 2 Máquina 3 Máquina 4
Cliente
Núcleo
Servidor de arquivos
Núcleo
Servidor de processos
Núcleo
Servidor de terminais
Núcleo
Mensagem de
cliente para servidor
Rede
Clientes enviam requisic¸o˜es a servidores
comunicac¸a˜o por troca de mensagens
Pode ser usado com sistemas centralizados ou distribu´ıdos
transpareˆncia de falhas e´ diferente
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 53/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Ma´quinas virtuais
Instruções de E /S aqui
Desvio (trap) aqui
Desvio (trap) aqui
Chamadas ao sistema aqui
Cópias virtuais do 370
CMS CMS CMS
Monitor de máquina virtual VM/370
Hardware do 370
Estrutura do VM/370 com o CMS
O MMV/hipervisor fornece uma abstrac¸a˜o do hardware para as MVs
Isolamento entre as MVs
Diferentes sistemas operacionais nas MVs
Desempenho depende do suporte do HW
Consolidac¸a˜o de servidores
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 54/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Hipervisores tipo 1 e tipo 2
(a) Tipo 1: executa direto sobre o HW
Xen, VMware ESX/ESXi, IBM z/VM
(b) Tipo 2: executa em um SO hospedeiro → MMV e´ um processo
VirtualBox, VMware Workstation
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 55/56
Introduc¸a˜o
Histo´rico dos SOs
Conceitos de SO
Revisa˜o de hardware
Estruturas de SO
Introduc¸a˜o
Sistemas monol´ıticos
Sistemas em camadas
Cliente-servidor
Ma´quinas virtuais
Bibliografia Ba´sica
Andrew S. Tanenbaum.
Sistemas Operacionais Modernos, 3 a Edic¸a˜o. Cap´ıtulo 1.
Pearson Prentice Hall, 2009.
William Stallings.
Operating Systems: Internals and Design Principles, 6th Ed.
Cap´ıtulos 1 e 2.
Pearson Prentice Hall, 2009.
Abraham Silberchatz, Greg Gagne e Peter Baer Galvin.
Fundamentos de Sistemas Operacionais, 6 a Edic¸a˜o.
LTC – Livros Te´cnicos e Cient´ıficos Editora, 2004.
Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 56/56

Continue navegando