Sistemas operacionais
Por: stefaaani • 21/10/2015 • Projeto de pesquisa • 4.676 Palavras (19 Páginas) • 218 Visualizações
Projeto de Sistemas Operacionais e Gerência de tratamento de interrupções
São José
Novembro - 2014
SUMÁRIO
1 Introdução.......................................................................................................................3
2 Projeto de sistemas operacionais...................................................................................3
2.1 Problemas de projeto........................................................................................4
2.1.1 Objetivos........................................................................................................4
2.1.2 Dificuldades em projetar um sistema operacional.........................................5
2.2 Projeto de Interface...........................................................................................6
2.3 Implementação.................................................................................................7
2.3.1 Estrutura do Sistema.....................................................................................7
2.3.2 Mecanismo x Política.....................................................................................8
2.3.3 Ortogonalidade..............................................................................................8
2.3.4 Estruturas estáticas x dinâmicas...................................................................8
2.3.5 Nomeação......................................................................................................8
2.3.6 Implementação de cima para baixo e de baixo para cima........................................................................................................................8
2.4 Desempenho.....................................................................................................9
2.5 Gerenciamento de projeto..............................................................................10
3 Interrupções e Exceções..............................................................................................10
3.1 Mecanismos de interrupção............................................................................11
3.2 O que é uma interrupção................................................................................11
3.2.1 Daisy Chain..................................................................................................11
3.2.2 Circuitos de prioridade.................................................................................12
3.2.3 Fontes de interrupção..................................................................................12
3.3 O que é uma exceção.....................................................................................12
3.3.1 Fontes de exceção.......................................................................................13
3.4 Diagrama do tratamento de Interrupção e Exceção.......................................13
3.5 Código programa calculadora.........................................................................14
3.6 Diagrama programa calculadora.....................................................................16
4 Conclusão.....................................................................................................................17
5 Referências..................................................................................................................17
1 Introdução
O sistema operacional é o principal meio de acesso entre o usuário e o hardware do computador. Ele é o responsável para realizar o gerenciamento do computador a fim de executar rotinas pré-programadas para o controle de memória, processador, dispositivos de entradas e saídas, etc., além de gerenciar o tratamento de interrupções e exceções, que são rotinas feitas exclusivamente para tratar os travamentos causados pelo hardware e software, respectivamente. Após o sistema operacional terminar o tratamento da interrupção de um determinado processo que havia sido interrompido, o programa retorna exatamente ao estado que estava antes que ocorreu o travamento (interrupção). Acontece também de o sistema gerar mais que uma interrupção ao mesmo tempo, neste caso é definido um controle de prioridade para saber qual será tratada primeiro. Cada sistema operacional tem a sua forma de gerenciar este tratamento, porém a maioria acontece da mesma forma. O tratamento de interrupções e exceções em um sistema operacional será detalhado neste trabalho, bem como as gerências que se comunicam com esta, um exemplo prático de uma exceção (divisão por 0) e outros itens.
2 Projeto de Sistemas Operacionais
Um computador sem software é basicamente inútil, já com software ele pode armazenar, processar e recuperar informações, exibir documentos de multimídia, pesquisar na internet e envolver-se em muitas outras atividades. De uma maneira mais grosseira o software de um computador pode ser dividido em duas espécies: programas de sistema, que gerenciam a operação do computador em si, e programas aplicativos, que executam o trabalho que o usuário realmente deseja. O programa de sistema mais fundamental é o sistema operacional, que controla todos os recursos do computador e fornece a base sobre a qual os programas aplicativos podem ser escritos. E para termos um bom sistema operacional, é preciso primeiramente fazer o projeto do sistema.
2.1 Problemas de projeto
O projeto de um sistema operacional tem início com a determinação daquilo que ele deve fazer. É muito difícil de estabelecer objetivos e atingi-los.
2.1.1 Objetivos
Primeiramente para se projetar um sistema operacional bem sucedido deve-se deixar bem definido os objetivos do projeto. Sem os objetivos bem definidos tem se uma grande dificuldade na hora de tomar decisões no projeto. Um exemplo é a dificuldade na escolha da linguagem de programação para ser utilizada no projeto. Em um sistema operacional para propósitos gerais, quatro itens devem ser considerados para o projeto:
- Definir abstrações – De processos, espaços de endereçamento, arquivos e threads. Abstrações relacionadas à sincronização sinais, modelo de memória, modelagem de entrada e saída entre outras áreas.
- Fornecer operações primitivas – Cada uma das abstrações pode ser instanciada na forma de estrutura de dados concretos. Os usuários podem criar processos, arquivos, semáforos etc. As operações primitivas manipulam essas estruturas de dados.
- Garantir isolamento – Já que múltiplos usuários podem usar um computador ao mesmo tempo, o sistema operacional precisa fornecer mecanismos para mantê-los separados. Um usuário não pode interferir no outro. A garantia de que cada usuário possa executar somente operações autorizadas sobre dados autorizados é um objetivo essencial de um projeto de sistemas. Os usuários também querem compartilhar dados e recursos de modo que o isolamento deve ser seletivo sob o controle do usuário. E em relação ao usuário esta a necessidade de isolar falhas. Por exemplo, se alguma parte do sistema falha, muito provavelmente um processo do usuário, a falha não deve ser capaz de arrastar o resto do sistema junto com ela. Assim partes do sistema operacional devem ser isoladas umas das outras para permitir falhas independentes.
- Gerenciar o hardware – Por fim o sistema operacional tem de gerenciar o hardware. Em particular, ele deve cuidar de todos os circuitos de baixo nível, como controladores de interrupção e de barramento. Ele também precisa fornecer um modelo que permita que os drivers de dispositivos gerenciem os maiores dispositivos de entrada e saída, como discos, impressoras e monitores.
2.1.2 Dificuldades em projetar um sistema operacional
A lei de Moore diz que o hardware de um computador é melhorado por um fator de 100 a cada década. Mas não existe nenhuma lei que diga que o sistema operacional é melhorado por um fator de 100 a cada década, ou mesmo que tenha alguma melhora. Às vezes alguns sistemas podem ser até piores em certas questões. Isso se deve normalmente a inércia, o desejo de compatibilidade com sistemas mais antigos, ou a falta em aderir aos bons princípios de um projeto. As principais dificuldades em um projeto de sistemas operacionais são:
...