01 introduÇÃoadao/teso.pdf · 1.5 estrutura dos sistemas operacionais ... o sistema operacional...

15
01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações Figura 01 – Kernel de um Sistema Operacional 1.5.1 Linguagem de Comandos As liguagens de comando permitem ao usuário comunicar-se de forma simples com o SO para executar tarefas específicas do sistema operacional. Estas tarefas são as seguintes: criar, ler ou eliminar arquivos, consultar diretório ou verificar a data e a hora armazenada no sistema Cada comando é interpretado pelo Shell (interpretador de comandos) que verifica a sua sintaxe e faz chamadas a rotinas do sistema e apresenta o resultado

Upload: trandung

Post on 09-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

01 INTRODUÇÃO

1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS

O Sistema Operacional é formado por um Conjunto de rotinas (denominado denúcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Figura 01 – Kernel de um Sistema Operacional

1.5.1 Linguagem de Comandos

As liguagens de comando permitem ao usuário comunicar-se de forma simples como SO para executar tarefas específicas do sistema operacional.

Estas tarefas são as seguintes: criar, ler ou eliminar arquivos, consultar diretório ouverificar a data e a hora armazenada no sistema

Cada comando é interpretado pelo Shell (interpretador de comandos) que verifica asua sintaxe e faz chamadas a rotinas do sistema e apresenta o resultado

Page 2: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Figura 02 – As linguagens de comando são interpretadas e as repectivas rotinas do Sistema acionadas

1.5.1.1 Linguagem de Comandos (exemplo no DOS)Dois comandos foram executados: um para listar os arquivos e diretórios e outro

para remover um arquivo.

4

Linguagem de Comandos (windows)

Figura 03 – Comando usando linguagem de comandos do DOS

1.5.1.2 Linguagem de Comandos (exemplo do linux)

Page 3: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Um comando para remoção de um diretório foi executado.

5

Linguagem de Comandos (linux)

Figura 04 - Comando usando linguagem de comandos do Linux

1.5.2 Kernel

As rotinas do sistema são executadas concorrentemente (ao mesmo tempo) semuma ordem pré-definida, com base em eventos (acontecimentos) dissociados do tempo(eventos assíncronos)

1.5.2.1 Funções do Kernel

São funções do Kernel:

• Tratamento de interrupções e exceções;• Criação, eliminação, sicronização,• Escalonamento e controle de processos• Gerência da memória, do sistemas de arquivos, das operações de entrada e

saída;• Suporte a redes locais e distribuídas• Contabilização, auditoria e segurança do sistema

Page 4: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Devido a complexidade de um ambiente multiprogramável podem surgir problemasrelativos à segurança.

Como diversos usuários compartilham os mesmos recursos (memória, processador edispositivos de E/S), o SO deve garantir a confiabilidade na execução concorrente de todosos programas e NOS DADOS DOS USUÁRIOS, além da garantia da integridade dosistema operacional.

No exemplo da figura abaixo o sistema operacional impediu que o arquivo emformato PDF que estava aberto para leitura fosse deletado.

13

Exemplo de função do Kernel(gerência do sistema de arquivos)

Figura 05 – Exemplificação da Função do Kernel

1.5.3 Modos de Acesso

Os sistemas operacionais restringem as operações executadas pelos programas(aplicações), por razões de segurança e estabilidade. Por exemplo o acesso a dispositivos dehardware (disco, memória, etc ...)

Muitas implementações de segurança do núcleo de um SO e de acesso aos seusserviços utilizam o modo de acesso dos processadores.

Page 5: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

O modos de acesso dos processadores é um mecanismo presente no hardware dosprocessadores:

No MODO USUÁRIO uma aplicação só pode executar instruções não privilegiadas,ou seja, instruções que não oferecem riscos ao sistema.

No MODO KERNEL uma aplicação pode executar instruções não privilegiadas eprivilegiadas, ou seja, instrução que oferece risco ao sistema (exemplo: instruções queacessam dados no disco).

A figura abaixo exemplifica o uso do modo de acesso dos processadores

16

Modos de Acesso (exemplo de uso)Para que um programa (aplicação) possa escrever em umaárea de memória onde encontra-se o sistema operacional, oprograma (aplicação) deve estar sendo executado com oprocessador no modo kernel.

Figura 06 – Exemplo do uso dos modos de acesso dos processadores

1.5.4 System Calls (Chamadas de Sistema)

Como as rotinas do sistema possuem em seu código instruções privilegiadas, entãoo processador deve estar em modo kernel para executá-las.

As System Calls são como portas de entrada para se ter acesso as rotinas do SO.Se uma aplicação desejar chamar uma rotina do sistema operacional: mecanismo de

system call verificará se a aplicação possui os privilégios necessários.

Page 6: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Figura 07 – System Call (porta de entrada para rotinas do Sistema Operacional)

A figura abaixo exibe uma system call que obtem a data e hora do sistema

19

System Calls (Chamadas de Sistema)

Figura 08 – Chama de uma System Call

A figura abaixo mostra um comando em linux (utilizando a linguagem decomandos deste sistema) para remover um diretório denominado “diretório”.

Page 7: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

20

Linguagem de Comandos (linux)

Figura 09 – Execução de um comando em Linux usando a linguagem de comandos do Sistema Operacional

A figura exibe um tabela de system calls do linux, onde se destaca a relacionada arotina que executa o comando da figura anterior

Page 8: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

21

Linux System Call Table

Figura 10 – Tabela de System Call do Linux

Podemos constatar pelo figura abaixo que uma system call possui milhares de linhasde código

Page 9: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

22

Figura 11 – Código fonte de uma System Call na linguagem C

Uma aplicação sempre deve executar com o processador no modo usuário. Se umaaplicação desejar chamar uma rotina do sistema operacional: o mecanismo de system callverificará se a aplicação possui os privilégios necessários.

Em caso negativo o SO impedirá o desvio para a rotina do sistema sinalizando aoprograma (aplicação) chamador (a) que a operação não é possível.

A figura abaixo temos um exemplo em que a aplicação não possui os privilégios

necessários.

Page 10: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

24

Em caso negativo ...

Figura 12 -– Aplicação não possui privilégios necessários a execução de uma rotina do Sistema Operacional

Em caso positivo, caso a aplicação possua os privilégios necessário ocorrerá o seguinte:

Figura 13 – Aplicação possui privilégios necessários a execução de uma rotina do Sistema Operacional

Page 11: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Caso tente executar uma instrução privilegiada (rotinas do sistema) sem ser porintermédio de uma system call, um mecanismo de proteção por hardware impedirá aoperação.

As system call possuem diversos nomes dependendo do sistema operacional:

26

System Calls (Chamadas de Sistema)

Unix: system CallOpenVMS: system ServicesMS Windows: Application Program Interface (API)

Figura 14 – Outros nomes para uma System Call

1.5.4.1 Funções das System Calls (Chamadas de Sistema)

A figura abaixo exibe as principais unções desempenhadas por uma system call

Figura 15 – Funções das System Call

Page 12: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Cada Sistema Operacional possui seu próprio conjunto de rotinas.Uma aplicação desenvolvida utilizando rotinas de um determinado Sistema

Operacional não pode ser portada diretamente para outro SO, exigindo a correção docódigo-fonte.

1.5.5 Arquiteturas do Kernel

O projeto de um sistema operacional depende muito do hardware a ser utilizado edo tipo de Sistema Operacional que se deseja construir (tempo compartilhado, tempo real,monousuário, multiusuário,etc...)

Os primeiros sistemas operacionais foram desenvolvidos em linguagem assembly(IBM OS/360)

Nos sistemas operacionais atuais forma em grande parte escritos na linguagemC/C++ (MS Windows).

O uso de linguagem de alto nível na construção de sistemas operacionais possuivantagens e desvantagens:

Vantagem: O Sistema Operacional pode ser facilmente alterado em outra arquiteturade hardware (portabilidade do código)

Desvantagem: perca do desempenho

A arquitetura do kernel define a maneira como o código do sistema é organizado e ointer-relacionamento entre os seus diversos componentes pode variar conforme a concepçãodo projeto.

As principais arquiteturas dos Sistema Operacionais são:• Arquitetura monolítica• Arquitetura em camadas• Máquina virtual• Arquitetura microkernel

As figuras abaixo descrevem as principais arquiteturas:

Page 13: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

32

Arquitetura MonolíticaCompara-se a uma aplicação formada por vários módulos quesão compilados separadamente e depois linkados formando umúnico programa executável onde os módulos podem interagirlivremente.Desvantagem:– desenvolvimento e manutenção bastante difíceis

Vantagem:– simplicidade e bom desempenho

MS-DOS e primeiros sistemas UNIX

Figura 16 – Arquiteura Monolítica

33

Sistema em CamadasCom o aumento da complexidade e do tamanho do código dosSO, técnicas de programação estruturada e modular foramincorporadas ao projetoO sistema é dividido em níveis sobrepostosCada camada oferece um conjunto de funções que podem serutilizadas apenas pelas camadas superiores.As camadas mais internas são mais privilegiadas que asexternas.Vantagem:– Facilita a manutenção e depuração– Cria uma hierarquia de níveis de modos de acesso

Desvantagem:– Desempenho

Maioria das versões do UNIX e do Windows

Figura 17 – Sistema em Camadas

Page 14: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

Figura 18 - 21 - Máquina Virtual

37

Máquina VirtualEste modelo cria um isolamento total entre cada VM,oferecendo grande segurança para cada VM.Desvantagem:Estrutura bastante complexa devido a necessidadede compartilhar e gerenciar recursos do hardwareentre as diversas VM

Figura 19 -21 - Máquina Virtual

Page 15: 01 INTRODUÇÃOadao/teso.pdf · 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS ... O Sistema Operacional pode ser facilmente alterado em outra arquitetura de hardware ... Slide 1 Author:

39

Arquitetura MicrokernelIdéia: tornar o núcleo do SO o mais simples possível.Os serviços do sistema são disponibilizados através deprocessos, responsáveis por oferecer um conjunto específicode funções (gerência de arquivos, processos, de memória eescalonamento)Sempre que uma aplicação deseja

algum serviço, deve solicitar ao processo responsável.

Figura 20 - 21 - Arquitetura Microkernel

40

Arquitetura MicrokernelA aplicação que solicita serviço é chamada de cliente e oprocesso que responde é denominado de servidor.A principal função do núcleo é realizar a troca de mensagensentre cliente e o servidorServidores: modo usuário e Núcleo: modo Kernel.Vantagem:Manutebilidade, flexibilidade eportabilidade

Desvantagem:– Difícil implementação

Maioria das iniciativas ligadas ao desenvolvimento de SO distribuídos

Figura 21 - Arquitetura Microkernel