Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele...

17
17/08/2011 1 Estrutura do Sistema Operacional Ademar Alves Trindade Inicialmente... Sistema Operacional: não é composto por uma sequência de início, meio e fim como um aplicativo/programa. Baseado em eventos, de forma assíncrona. Assim, é formado por um conjunto de rotinas (procedimentos, tarefas) que oferece serviços aos usuários e aplicações, denominado núcleo do sistema ou kernel. Inicialmente... Um usuário pode se comunicar com o kernel por intermédio das chamadas rotinas do sistema realizadas por aplicações (usuários), por meio de utilitários (sistema) ou linguagem de comandos.

Transcript of Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele...

Page 1: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

1

Estrutura do Sistema Operacional

Ademar Alves Trindade

Inicialmente...

• Sistema Operacional: não é composto por uma sequência de início, meio e fim como um aplicativo/programa.

• Baseado em eventos, de forma assíncrona.

• Assim, é formado por um conjunto de rotinas(procedimentos, tarefas) que oferece serviços aosusuários e aplicações, denominado núcleo do sistema oukernel.

Inicialmente...

• Um usuário pode se comunicar com o kernelpor intermédio das chamadas rotinas dosistema realizadas por aplicações (usuários),por meio de utilitários (sistema) ou linguagemde comandos.

Page 2: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

2

Inicialmente...

Resumindo...

• O kernel representa a camada de software maispróxima ao hardware. Segundo alguns autores,o kernel é o seu coração, sua mente e seu sistemanervoso.

• Ele é responsável exclusivamente pelo transporte dasinformações de mais baixo nível que tornam todas asoutras tarefas possíveis. Fazendo malabarismos comdiversos processos que ocorrem simultaneamente,gerenciando sua memória de forma que não interfiramuns nos outros, satisfazendo suas solicitações deacesso a um disco e muito mais.

Resumindo...

Page 3: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

3

Funções do Núcleo

• Rotinas executadas concorrentemente, semordem pré-definida, tendo como base eventosassíncronos.

• Muitos desses eventos estão relacionados aohardware e a tarefas internas do próprio SO.

Funções do Núcleo

Tratamento de interrupções e exceções;Criação e eliminação de processos;Sincronização e comunicação entre processos; Escalonamento e controle dos processos.

Funções do Núcleo

Gerência de memória;Gerência do sistema de arquivos;Gerência de dispositivos de E/S;

Page 4: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

4

Funções do Núcleo

Suporte a redes locais e distribuídas;Contabilização do uso do sistema;Auditoria e segurança do sistema.

Resumindo...

• Basicamente o kernel começa a funcionar assimque o computador é ligado, nesse momento eleinicia a detecção de todo o hardware indispensável.O SO é carregado em seguida espera que o usuáriofaça seu login, feito isso o Kernel passa aadministrar as principais funções dentro do SO, issoinclui por exemplo o gerenciamento da memória,dos processos, dos arquivos e de todos osdispositivos.

Resumindo...

• Ele é o responsável por garantir que todos osprogramas terão acesso aos recursos de quenecessitam (memória RAM, por exemplo)simultaneamente, fazendo com que haja umcompartilhamento concorrente.

Page 5: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

5

Resumindo...

• Exemplo: diversos usuários compartilham osmesmos recursos. Isso exige que o SistemaOperacional garanta a confiabilidade na execuçãoconcorrente de todos os programas e nos dadosdos usuários, além da garantia da integridade dopróprio SO.

Modos de Acesso

Muitas das principais implementações desegurança de um sistema operacional itilizam ummecanismo presente no hardware dosprocessadores, conhecido como modo de acesso.Em geral, os processadores possuem dois modosde acesso:

modo usuário e modo kernel

Modos de Acesso

Modo usuário: Uma aplicação só pode executarinstruções conhecidas como não privilegiadas,tendo acesso a um número reduzido de instruções.

Modo kernel: Uma aplicação pode ter acesso aoconjunto de instruções do processador.

Page 6: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

6

Modos de Acesso

• Instruções privilegiadas: têm o poder decomprometer o sistema.

• O modo de acesso é um mecanismo paraimpedir problemas de segurança e até mesmoviolação do sistema.

Modos de Acesso

Apenas o SO tem acesso as instruções privilegiadas.

• Exemplo:Uma aplicação necessita de um serviçoque pode colocar o sistema em risco.

Modos de Acesso

1) Solicitação é realizada através de uma system call(Chamada do Sistema).

2) System Call altera o modo de acesso doprocessador para modo kernel.

3) Se caso um programa tente executar umainstrução privilegiada, sem o processador estarem modo kernel, uma execução é gerada e oprograma é encerrado.

Page 7: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

7

Modos de Acesso

4) Se for permitido ele executa a tarefa solicitada5) O modo de acesso é retornado para o modousuário ao término da rotina do sistema.

Modos de Acesso

• Instruções privilegiadas não devem ser usadasde maneira indiscriminada pelas aplicações.

Exemplo:A aplicação atualize um arquivo em disco.Como o disco é um recurso compartilhado, sua

utilização deverá ser gerenciada unicamente pelosistema operacional.

Modos de Acesso

• Proteção ao núcleo:Caso uma aplicação tenha acesso a áreas de memóriaonde está carregado o sistema operacional, umprogramador mal-intencionado ou Estrutura doSistema Operacional um erro de programaçãopoderia gravar nesta área, violando o sistemacausando-o sérios danos.

Page 8: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

8

Rotinas do Sistema Operacional e System Calls

• As rotinas do sistema operacional compõem onúcleo do sistema.

• Todas as funções do núcleo são implementadas porrotinas do sistema que necessariamente possuemem seu código Estrutura do Sistema Operacionalinstruções privilegiadas.

• Para que estas rotinas possam ser executadas oprocessador deve estar obrigatoriamente em modokernel, o que exige a implementação de mecanismos deproteção para garantir a confiabilidade do sistema.

Rotinas do Sistema Operacional e System Calls

O controle de execução de rotinas do sistemaoperacional é realizado pelo mecanismo conhecidocomo system calls.

Toda vez que uma aplicação desejar chamar uma rotinado SO, o mecanismo de system call é ativado.

Inicialmente, o SO verifica se a aplicação possuiprivilégios necessários para executar a rotina desejada.

Rotinas do Sistema Operacional e System Calls

Em caso negativo...SO impedirá o desvio para a rotina do sistema,

sinalizando ao programa chamador que a operação não épossível.

Este é um mecanismo de proteção por software, no qualo SO garante que as aplicações só poderão executarrotinas previamente autorizadas, que é realizada peloadministrador do sistema.

Page 9: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

9

Rotinas do Sistema Operacional e System Calls

Em caso afirmativo...SO salva o conteúdo corrente nos registradores,

troca o modo de acesso do processador de usuário parakernel e realiza o desvio para a rotina alterando oregistrador PC com o endereço da rotina chamada.

Rotinas do Sistema Operacional e System Calls

Ao término da execução da rotina do sistema, o modode acesso é alterado de kernel para usuário e ocontexto dos registradores restaurados para que aaplicação continue a execução.

Este é um mecanismo de proteção por software.

Rotinas do Sistema Operacional e System Calls

Page 10: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

10

• Caso uma aplicação tente executar diretamente uma

instrução privilegiada sem ser por intermédio de uma

chamada à rotina do sistema, um mecanismo de

proteção por hardware (implementado no hardware doprocessador) garantirá a segurança do sistema,

impedindo a operação, sinalizando uma exceção.

Rotinas do Sistema Operacional e System Calls

Concluindo...Os mecanismos de system call e de proteção por

hardware garantem a segurança e a integridade do sistema.

Eles impedem que aplicações executem instruções privilegiadas sem a autorização e supervisão do sistema operacional.

Rotinas do Sistema Operacional e System Calls

Gerência de processos:• pid = fork()• waitpid(pid, &statloc, options)• execve(name, argv, environp)• exit(status)

Exemplos de chamadas ao sistema

Page 11: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

11

Gerência de arquivos

• open(file, how)• close(fd)• read(fd, buffer, nbytes)• write(fd, buffer, nbytes)• lseek(fd, offset, whence)

Exemplos de chamadas ao sistema

Gerência de arquivos e diretórios

• mkdir(name,mode)• rmdir(name)• link(name1,name2)• mount(special,name,flag)

Exemplos de chamadas ao sistema

Diversas

• chdir(dirname)• chmod(name,mode)• kill(pid,signal)

Exemplos de chamadas ao sistema

Page 12: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

12

Rotinas do Sistema Operacional e System Calls

Chamadas a rotinas do SO As rotinas do sistema e o mecanismo de system call

podem ser entendidas como uma porta de entradapara o núcleo do SO e a seus serviços.

• Sempre que uma aplicação desejar algum serviço do sistema, deve ser realizada uma chamada a uma de suas rotinas através de uma system call.

Chamadas a rotinas do SO

Page 13: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

13

Chamadas a rotinas do SO

Por intermédio dos parâmetros fornecidos na system call,a solicitação é processada e uma resposta é retornada àaplicação juntamente com um estado de conclusãoindicando se houve erro.

Chamadas a rotinas do SO

O termo System Call é tipicamente utilizado em sistemsUNIX, porém em outros sistemas o mesmo conceito éapresentado com diferentes nomes.

System Services no Open VMS.

Aplication Program Interface (API) no Windows.

Chamadas a rotinas do SO

Cada SO possui seu própio conjunto de rotinas, comnomes, parâmetros e formas de ativação peculiares.

Uma aplicação desenvolvida utilizando serviços de umdeterminado SO não pode ser portada diretamente paraum outro sistema, exigindo algumas correções no código-fonte.

Page 14: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

14

• Exemplo do uso de uma API.• GetSystemTime(SystemTime);• DataHoraT := SystemTimeToDateTime(SystemTime);• DataHoraS := DateTimeToStr(DataHoraT);• RichEdit1.Lines.Add(DataHoraS);

A API GetSystemTime obtem a data e a hora do sistemaWindows. A função SystemTimeToDateTime converte a data ea hora para o formato DataHoraT do Delphi e em seguida,para o formato texto DataTimeStr. A última linha exibe a datae a hora do sistema em uma janela previamente criada.

Chamadas a rotinas do SO

• Resumindo...

A maioria dos progamadores e usuários desconheos detalhes envolvidos, por exemplo, em umsimples comando de leitura de um arquivoutilizando uma linguagem de alto nível.

Chamadas a rotinas do SO

• Resumindo...

O comando da linguagem de alto nível é convertidopelo compilador para uma chamada a uma rotinaespecífica que, quando executada, verifica aocorrência de erros e retorna os dados aoprograma de forma transparente ao usuário. Asrotinas do sistema podem ser divididas por gruposde função.

Chamadas a rotinas do SO

Page 15: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

15

Uma tentativa de padronização pela ISO (InternationalOrganization for Standardization) e IEEE (Institute ofElectrical and Electronics Engineers) resultou em umconjunto conhecido como POSIX (Portable OperatingSystem Interface for Unix).

Alguns SOs modernos oferecem algum suporte ao padrão POSIX como o Windows, IBM-AIX, HP-UX e o SUN-Solaris.

Chamadas a rotinas do SO

Linguagem de Comandos

• Tem a função de permitir que o usuário secomunique de uma forma direta com o SistemaOperacional na execução de tarefas maisespecíficas.

• O interpretador de comandos (shell) não fazparte do núcleo do sistema. Assim, é permitida acriação de novos interpretadores de comandos.

Linguagem de Comandos

• Interpretador tem a função de comunicar com onúcelo para verificar a permissão de execuçãodaquele referifo comando.

• Em alguns sistemas como Windows, sãoutilizadas janelas com mais de uma camada,acima dos comandos, para melhorar a interaçãocom o usuário.

Page 16: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

16

Linguagem de Comandos

• Interpretador tem a função de comunicar com onúcelo para verificar a permissão de execuçãodaquele referifo comando.

• Em alguns sistemas como Windows, sãoutilizadas janelas com mais de uma camada,acima dos comandos, para melhorar a interaçãocom o usuário.

Linguagem de Comandos

• Na maioria dos SOs, as linguagens de comandoevoluíram no sentido de permitir a interação maisamigável com os usuários, utilizando interfacesgráficas como janelas e ícones, a exemploWindows.

Linguagem de Comandos

Page 17: Estrutura do Sistema Operacional - Ada e Babbage · que o computador é ligado, nesse momento ele inicia a detecção de todo o hardware indispensável. ... onde está carregado o

17/08/2011

17

• Cada comando, depois de digitado pelo usuário, é:

interpretado pelo shell ou interpretador de comandos, que: verifica a sintaxe do comando; faz chamadas a rotinas do sistema; apresenta um resultado ou uma mensagem informativa.

Linguagem de Comandos

O bash é um interpretador de comandos, uma espécie detradutor entre o sistema operacional e o usuário,normalmente conhecido como shell. Permite a execução deseqüências de comandos direto no prompt do sistema ouescritas em arquivos de texto, conhecidos como shellscripts.

Linguagem de Comandos

Linguagem de Comandos