Buscar

Sistemas Operacionais - Prof. Leandro Dionízio - 11

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 24 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 24 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 24 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
Leandro Dionízio Ramos
1
Projeto de Sistemas Operacionais
• Para projetar um sistema operacional os projetistas 
precisam ter uma ideia clara do que querem.
• A falta de um objetivo torna muito mais difícil tomar 
decisões.
2
Projeto de Sistemas Operacionais
• Com relação a projetos de um SO, podemos citar duas 
linguagens de programação: PL/I e C.
• PL/I foi projetada pela IBM na década de 1960. Ela tinha 
um pouco de FORTRAN, COBOL e ALGOL.
• Fracassou porque não tinha um visão unificada, era 
simplesmente uma coleção de caraterísticas em situação 
de disputa uma com as outras e muito sobrecarregada 
para que fosse compilada e inicializada eficientemente.
3
Projeto de Sistemas Operacionais
• A linguagem C, criada em 1972 por Dennis Ritchie) com o 
propósito de criar novos SOs.
• Ela ainda é amplamente usada, mesmo décadas após sua 
aparição.
• A linguagem foi chamada "C", porque suas características 
foram obtidas a partir de uma linguagem anteriormente 
chamado de " B", que de acordo com a Ken 
Thompson era versão reduzida da linguagem de 
programação BCPL.
4
Projeto de Sistemas Operacionais
• Para um bom projeto de SO, quatro itens principais 
devem ser considerados.
– Definir abstrações
– Fornecer operações primitivas
– Garantir isolamento
– Gerenciar o hardware
5
Projeto de Sistemas Operacionais
• Definir abstrações:
– Processos 
– Espaços de endereçamento e arquivos 
– Threads e multithreads
– Sincronização entre dispositivos e periféricos
– Modelo de memória
– Modelagem de entrada e saída, etc.
6
Projeto de Sistemas Operacionais
• Operações primitivas:
– Cada abstração pode ser instanciada na forma de 
estruturas de dados. Os usuários podem criar 
processos, arquivos, etc.
– As operações primitivas manipulam essas estruturas 
de dados.
– Os usuários podem por exemplo, ler e escrever em 
arquivos através de chamadas de sistemas (Systems 
Calls).
7
Projeto de Sistemas Operacionais
• Garantir isolamento
– Múltiplos usuários podem usar um computador ao mesmo 
tempo, o SO precisa fornecer mecanismos para mantê-los 
separados.
– Manter a garantia que cada usuário possa executar 
somente operações autorizadas sobre dados autorizados.
– Ao mesmo tempo, os usuários também querem 
compartilhar dados e recursos, de modo que o isolamento 
deve ser seletivo.
– Isolar falhas, se alguma parte do sistema falhar, esta não 
deve ser capaz de comprometer o resto do SO.
8
Projeto de Sistemas Operacionais
• Gerenciar o Hardware
– Cuidar de todos os circuitos de baixo nível, como 
controladores de interrupção e de barramento. 
– Fornecer modelo que permita que os drivers de 
dispositivos gerenciem dispositivos E/S, como discos, 
impressoras, monitores, etc.
9
Dificuldades Projeto de Sistemas 
Operacionais
• Gordon Earle Moore, co-fundador da Intel Corporation, 
formado em engenharia no Instituto de Tecnologia pela 
Universidade da Califórnia em Berkeley.
• Moore afirmava que o hardware de um computador é 
melhorado por um fator de 100 a cada década. 
• Isso deu origem a lei de Moore.
• Mais não existe nenhuma lei que diga algo parecido com 
relação aos SO.
10
Dificuldades Projeto de Sistemas 
Operacionais
• Os SOs têm se tornado programas extremamente 
extensos. É difícil uma pessoa sentar-se diante de um PC 
e dominar o SO em poucos meses.
• As últimas versões do UNIX excedem 3 milhões de linhas 
de códigos; o Windows Vista possui mais de 5 milhões de 
linhas de código no modo núcleo e mais de 70 milhões 
de linhas no total.
11
Dificuldades Projeto de Sistemas 
Operacionais
• Como compreender 3, 5 milhões de linhas de códigos ?
• Como assegurar que um produto de tal grandeza estará 
próximo da solução ótima, para o qual foi projetado?
12
Dificuldades Projeto de Sistemas 
Operacionais
• Não podemos dizer que os SOs são os sistemas mais 
complexos. 
• As aeronaves, por exemplo, possuem sistemas 
complicados e muito complexos. Ao mesmo tempos 
esses sistemas se dividem formando subsistemas 
isolados.
13
Dificuldades Projeto de Sistemas 
Operacionais
• Os SOs têm que lidar com a concorrência. Existem 
múltiplos usuário e dispositivos de E/S, todos ativos de 
uma só vez.
• O gerenciamento da concorrência é inerentemente 
muito mais difícil do que o gerenciamento de uma única 
atividade sequencial.
14
Dificuldades Projeto de Sistemas 
Operacionais
• Os SOs lidam com usuários potencialmente hostis, 
usuários que querem interferir no funcionamento do 
sistema ou fazer coisas proibidas, como roubar arquivos 
dos outros usuários.
• O sistema operacional precisa tomar medidas para evitar 
que esses usuários se comportem inadequadamente.
15
Dificuldades Projeto de Sistemas 
Operacionais
• Os SOs vivem por um longo tempo. O UNIX vem sendo 
usado desde de 1969, o Windows existe há anos, desde 
de 1981 e não mostra sinais que irá desaparecer.
• Consequentemente, os projetistas devem pensar como o 
hardware e as aplicações podem mudar no futuro 
distante e como eles devem se preparar para isso.
16
Dificuldades Projeto de Sistemas 
Operacionais
• Os projetistas de SOs realmente não têm uma boa ideia 
de como seus sistemas serão usados, de modo que eles 
precisam desenvolvê-los visando uma considerável 
generalidade.
• Ninguém diz a um projetista de navio para construir um 
navio sem especificar se o que se quer é um pesqueiro, 
cruzeiro ou um encouraçado.
17
Dificuldades Projeto de Sistemas 
Operacionais
• Os SOs modernos são projetados para executar em 
múltiplas plataformas de hardware. Eles também devem 
funcionar com milhares de dispositivos de E/S, e todos 
são projetados independentemente.
• Ex: No MS-DOS quando um usuário tentava instalar uma 
placa de som e um modem que usavam as mesmas 
portas de E/S ou linhas de requisição de interrupção.
18
Sistemas Operacionais em Camadas
• Em SOs modernos, o desenvolvimento em camadas é um 
ponto chave para o bom funcionamento dos sistemas.
• A primeira camada inferior sempre deve tentar esconder 
as características mais específicas do hardware.
19
Sistemas Operacionais em Camadas
• A segunda camada faz o tratamento das interrupções, 
trocas de contexto e a MMU (unidade de gerenciamento 
de memoria).
• A terceira camada, utilizada para o gerenciamento de 
threads, incluindo escalonamento e sincronização, de 
acordo com algum mecanismo e/ou algoritmo. 
20
Sistemas Operacionais em Camadas
• Na camada 4 podemos encontrar os drivers dos 
dispositivos, cada um executando como um thread 
separado, com seu próprio estado, contador de 
programa, registradores, etc.
• Essa camada pode simplificar bastante a estrutura de 
E/S, pois quando ocorre uma interrupção, ela pode ser 
tratada isoladamente. 
21
Sistemas Operacionais em Camadas
• Na camada 5, podemos encontrar a memória virtual, 
possibilitando então a paginação em disco da cache de 
blocos.
• Desta forma o gerenciador de memória virtual determina 
dinamicamente como a memória real deve ser divida 
entre as paginas do usuário e as paginas do núcleo.
• Método adotado a partir do Windows Vista.
22
Sistemas Operacionais em Camadas
23
• Duvidas???
24

Outros materiais