A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conteúdo Estrutura do sistema operacional Funções do Kernel

Apresentações semelhantes


Apresentação em tema: "Conteúdo Estrutura do sistema operacional Funções do Kernel"— Transcrição da apresentação:

1 Conteúdo Estrutura do sistema operacional Funções do Kernel
Bibliotecas Chamadas do sistema Rotinas do SO e System Calls Modos de acesso Linguagem de Comandos Tipos de arquiteturas de kernel Monolítico Camadas Máquina Virtual Microkernel

2 Estrutura do SO O sistema operacional é formado por um conjunto de rotinas que oferecem serviços essenciais aos usuários, às suas aplicações, e também ao próprio sistema. A esse conjunto de rotinas dá-se o nome de núcleo do sistema ou kernel. É fundamental não se confundir o núcleo do sistema com aplicações, utilitários ou o interpretador de comandos, que acompanham o sistema operacional. As aplicações são utilizadas pelos usuários de maneira transparente, escondendo todos os detalhes da interação com o sistema. 2/1

3 Estrutura do SO Os utilitários, como os compiladores, editores de texto e interpretadores de comandos permitem aos usuários, desenvolvedores e administradores de sistema uma interação amigável com o sistema. 2/1

4 Estrutura do SO Os usuários podem se comunicar com o Kernel de 3 formas: Rotinas de sistemas – realizadas pelas aplicações; Utilitários – compilador, editor de texto; Linguagem de comandos – particular de cada SO com sua estrutura e sintaxe; A estrutura (organização e inter-relacionamento dos diversos componentes) do núcleo do SO – Kernel - pode variar em função da concepção do projetista do SO. Serão apresentadas: as funções do núcleo; Conceitos de segurança; Proteção de sistema; Modos de acesso; Rotinas do sistema; System calls; Linguagem de comandos; Ativação e desativação do sistema 2/1

5 Funções do núcleo do SO Existe uma grande dificuldade em compreender a estrutura e o funcionamento do sistema operacional, pois ele não é executado como uma aplicação tipicamente seqüencial, com início, meio e fim. Os procedimentos do sistema são executados concorrentemente sem uma ordem específica ou predefinida, com base em eventos dissociados do tempo (Eventos assíncronos). Muitos desses eventos estão relacionados ao hardware e a tarefas internas do próprio sistema operacional. 2/1

6 Funções do núcleo do SO Aplicações Utilitários Linguagem de Comandos
Compiladores Editores Kernel - Rotinas do SO 2/1

7 Funções do núcleo do SO Tratamento de interrupções e exceções;
 Criação e eliminação de processos e threads; Sincronização e comunicação entre processos e threads;  Escalonamento e controle de processos e threads; Gerência de memória  Gerência de sistemas de arquivos  Gerência de dispositivos de E/S:   Suporte a redes locais, teleprocessamento e redes distribuídas Contabilização de uso do sistema Auditoria e segurança do sistema 2/1

8 Funções do núcleo do SO Tratamento de interrupções e exceções: já explicados anteriormente, em detalhes; Criação e eliminação de processos: função responsável por alocar em memória todos os recursos necessários à execução do processo. É esta função que aloca em memória, além do executável, o contexto do processo, o buffer de leitura/gravação (se necessário), além de listas e estruturas de controle utilizadas pelo sistema operacional. Nesta função também são estabelecidos vínculos físicos a arquivos em disco, fitas e outros periféricos que serão usados no processamento. Quando do fim da execução do programa, é esta função que desaloca todos os espaços em memória ocupados pelo processo, liberando-os para futuras alocações a outros processos; 2/1

9 Funções do núcleo do SO Sincronização e comunicação de processos: Inter-Process Communication (IPC), é o grupo de mecanismos que permite aos processos transferirem informação entre si. A sincronização entre processos permite gerir o acesso concorrente a recursos do SO de forma controlada por parte dos processos, de maneira que um recurso não seja modificado simultaneamente, ou que os processos não fiquem em espera até um recurso ser libertado. Escalonamento e controle de processos: função responsável por organizar a fila de acesso ao processador. Utiliza parâmetros do sistema e do perfil do usuário para estabelecer a ordem em que os processos permanecerão à espera pela liberação da CPU, para então entrarem em execução; 2/1

10 Funções do núcleo do SO Gerência de memória: função responsável por fornecer à função de criação/eliminação de processos os endereços em memória disponíveis para alocação; Gerência de sistemas de arquivos: responsável pelo gerenciamento dos arquivos, bem como seu compartilhamento pelos diversos usuários, implementando mecanismos de controle da segurança e direitos de acesso às áreas utilizadas pelos usuários nos diversos dispositivos; Gerência de dispositivos de E/S: responsável por gerenciar os dispositivos, prestando auxílio à criação/eliminação de processos e à gerência de sistemas de arquivos no que diz respeito ao endereçamento e associação de arquivos em periféricos; 2/1

11 Funções do núcleo do SO Suporte a redes e teleprocessamento: é esta função que executa todos os serviços de rede, fazendo o empacotamento das mensagens vindas dos terminais para a CPU central e vice-versa, além de controlar e confirmar o envio e recebimento de todas as mensagens que trafegam pela rede; Contabilização de uso do sistema: responsável por contabilizar o uso de todos os recursos do sistema consumidos pelos usuários e suas aplicações. São registrados: tempo de CPU, tempo corrido, quantidade de área alocada em memória, em disco, linhas impressas, páginas de papel, entre outros. Isto se faz necessário para servir de subsídio para análise de performance, estatísticas de gastos com material de consumo e também para definição de custos de processamento.; 2/1

12 Funções do núcleo do SO Auditoria e segurança do sistema: função extremamente importante, pois detecta e registra (num arquivo especial de LOG) todas as ocorrências de erro e violação de direitos de acesso ao sistema, aos arquivos, à memória e a todos os recursos do sistema. O arquivo de LOG é usado pela gerência de sistemas, com o intuito de verificar e aperfeiçoar os mecanismos de segurança e proteção ao sistema. Não esquecer: A estrutura do sistema, a maneira como ele é organizado e o inter-relacionamento entre seus diversos componentes pode variar conforme a concepção do projeto do sistema. 2/1

13 Modos de Acesso Existem certas instruções que não podem ser colocadas diretamente à disposição das aplicações, pois a sua utilização indevida poderia ocasionar sérios problemas à integridade do sistema. Imagine que uma aplicação atualize um arquivo em disco. O programa, por si só, não pode especificar diretamente as instruções que acessam seus dados no disco pois, como o disco é um recurso compartilhado, sua utilização deve ser gerenciada unicamente pelo sistema operacional. Tal procedimento evita que a aplicação possa ter acesso a qualquer área do disco indiscriminadamente, o que poderia comprometer a segurança e a integridade do sistema de arquivos. 2/1

14 Modos de Acesso Assim, fica claro que existem certas instruções que só podem ser executadas pelo sistema operacional ou sob sua supervisão. As instruções que têm o poder de comprometer o sistema são chamadas de instruções privilegiadas, enquanto as instruções que não comprometem o funcionamento do sistema chamam-se instruções não-privilegiadas. Para que uma aplicação possa executar uma instrução privilegiada, é preciso que haja um mecanismo de proteção no processador, chamado modos de acesso. Existem basicamente dois modos de acesso ao processador: modo usuário e modo kernel. 2/1

15 Modos de Acesso Quando o processador trabalha no modo usuário, somente instruções não-privilegiadas podem ser executadas, tendo assim acesso a um número limitado de instruções do processador. Já no modo kernel (ou supervisor), a aplicação pode ter acesso ao conjunto total de instruções do processador. A melhor maneira de controlar o acesso às instruções privilegiadas é permitir que apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicação necessita executar uma instrução privilegiada, a solicitação deve ser feita através de uma system call, que altera o modo de acesso ao processador do modo usuário para o modo kernel. Ao término da execução da rotina do sistema, o modo de acesso retorna para o modo usuário. 2/1

16 Rotinas do SO e System Calls
Uma grande preocupação no projeto de sistemas operacionais se refere à implementação de mecanismos de proteção ao núcleo do sistema e também o controle de acesso aos serviços oferecidos pelo sistema. Caso uma aplicação que tenha acesso ao núcleo realize alguma operação que altere sua integridade, todo o sistema poderá ficar comprometido e inoperante. As Rotinas do SO compõem o núcleo do SO, oferecendo serviços aos usuários e aplicações. As instruções privilegiadas são executadas em modo kernel; 2/1

17 Rotinas do SO e System Calls
As system calls podem ser entendidas como uma porta de entrada para acesso ao núcleo do sistema e aos seus serviços. Sempre que um usuário ou uma aplicação necessita de algum serviço do sistema, é realizada uma chamada a uma de suas rotinas através de uma system call. Através dos parâmetros fornecidos na system call, a solicitação é processada e uma resposta é enviada à aplicação juntamente com um estado de conclusão indicando o sucesso ou não da operação. Para cada serviço disponível existe uma system call associada, e cada SO possui seu próprio conjunto de chamadas, com nomes, parâmetros e formas de ativação específicos. 2/1

18 System Calls Unix System Calls
As System Calls são as portas de entrada para se ter acesso ao núcleo do sistema operacional. Para cada serviço existe uma System Call associada e cada sistema operacional tem o seu próprio conjunto de de chamadas (Biblioteca), com nomes, parâmetros e formas de ativação específicos. Unix System Calls load () Execute () create process - fork() terminate process () get/set process () wait () for time wait event () signal () event Allocate() Free() memory - garbage 2/1

19 Estrutura do Sistema Operacional
System Call Arquitetura de Sistemas Operacionais – Machado/Maia 4/2

20 Rotinas do SO e System Calls
Isto explica por que uma aplicação desenvolvida utilizando serviços de um determinado SO não pode ser diretamente portada para um outro sistema. O SO verifica quem tem privilégio para executar a rotina desejada, se não tiver privilégio para executar o SO impede o desvio para a rotina do sistema e avisa que não tem permissão para executar – este mecanismo é chamado de proteção por SW. Só executa quem realmente tem permissão e prioridade; Uma aplicação sempre tem que executar em modo usuário – Caso esta aplicação tente executar uma instrução privilegiada sem ser por intermédio de uma chama à rotina de sistema, um mecanismo chamado de proteção por HW garantirá a segurança do sistema . Se uma aplicação executa uma instrução privilegiada, em modo usuário, sem a supervisão do SO – O HW sinalizará um erro. 2/1

21 Rotinas do SO e System Calls
Aplicação Salva contexto dos registradores _______ Rotina do SO _______ Altera modo do processador para kernel Altera modo do processador para usuário Restaura o contexto dos registradores Modo usuário Modo Kernel 2/1

22 Chamada a rotina do SO As system calls podem ser entendidas como uma porta de entrada para acesso ao núcleo do sistema e aos seus serviços. Sempre que um usuário ou uma aplicação necessita de algum serviço do sistema, é realizada uma chamada a uma de suas rotinas através de uma system call. Através dos parâmetros fornecidos na system call, a solicitação é processada e uma resposta é enviada à aplicação juntamente com um estado de conclusão indicando o sucesso ou não da operação. Para cada serviço disponível existe uma system call associada, e cada sistema operacional possui seu próprio conjunto de chamadas, com nomes, parâmetros e formas de ativação específicos. Isto explica por que uma aplicação desenvolvida utilizando serviços de um determinado sistema operacional não pode ser diretamente portada para um outro sistema. 2/1

23 Chamada a rotina do SO O termo system call é tipicamente usado em sistemas Unix; System services – no OpenVMS; API (Application Program Interface) – no MS Windows; Exemplo de API usando Delphi: GetSystemTime (SystemTime); DataHoraT := SystemTimeToDateTime (SystemTime); DataHoras := DateTimeToStr (DataHoraT); RichEdidt1.Lines.Add (DataHoras); Cada SO tem seu próprio conjunto de rotinas, com nomes, parâmetros e formas de ativação específicos; Uma aplicação desenvolvida utilizando serviços de um SO não pode ser portada diretamente para outro SO; 2/1

24 Chamada a rotina do SO O IEEE e ISO tentaram padronizar uma biblioteca de chamadas POSIX (Portable Operating System Interface for Unix) Gerência de Processos/Threads – Tratamento de interrupções e exceções;  Criação e eliminação de processos e threads; Sincronização e comunicação entre processos e threads;  Escalonamento e controle de processos e threads; Gerência de Memória Alocação e desalocação de memória Gerência de sistemas de arquivos Criação, eliminação e alteração de diretórios Abrir e fechar arquivos; Leitura e gravação;  Gerência de dispositivos de E/S:   Alocação e desalocação de dispositivos Operações de E/S 2/1

25 Estrutura do Sistema Operacional
Chamada a uma Rotina do Sistema Arquitetura de Sistemas Operacionais – Machado/Maia 4/3

26 Linguagem de Comandos Ou linguagem de controle;
Permite ao usuário se comunicar de forma simples com o SO; Executar tarefas de criar, ler, eliminar arquivos; Consultar diretórios; Ver data e hora do sistema; DCL (Digital Command Language) – OpenVMS JCL (Job Control Language) – MVS IBM Shell script – Unix Prompt comando – MS DOS Comandos DOS: DIR – lista conteúdo do diretório CD – altera diretório TYPE – exibe conteúdo arquivo DEL – elimina arquivo MD – cria um diretório VER – mostra versão do windows Os comandos são interpretados pelo shell – interpretador de comandos 2/1

27 Ativacao/ desativacao do SO
O boot inicia com o programa “boot loader” fixo na ROM Este chama outro programa “POST” – power-on self test; Verifica se existe SO residente no HD; Setor de boot na memória; Desativação / shutdown; 2/1

28 Conceitos de Software Ativação do Sistema
Arquitetura de Sistemas Operacionais – Machado/Maia 2/10

29 Arquitetura do núcleo do SO
Arquitetura Monolítica Pode ser comparada com uma aplicação formada por vários módulos que são compilados separadamente e depois linkados formando um grande e único programa executável; primeiros SOs usavam este modelo; Difícil desenvolvimento e manutenção; Bom desempenho; Primeiros DOS e UNIX; 2/1

30 Estrutura do Sistema Operacional
Arquitetura Monolítica Arquitetura de Sistemas Operacionais – Machado/Maia 4/4

31 Arquitetura do núcleo do SO
Arquitetura de Camadas Com o aumento do tamanho do código dos sistemas operacionais, técnicas de programação estruturada e modular foram incorporadas em seu projeto. Na arquitetura em camadas, o sistema é dividido em níveis sobrepostos. Cada camada oferece um conjunto de funções que podem ser utilizadas somente pelas camadas superiores. Neste tipo de implementação as camadas mais internas são mais privilegiadas que as camadas mais externas. A vantagem da estruturação em camadas é o isolamento das funções do sistema, facilitando sua manutenção. Uma desvantagem é o desempenho, comprometido devido às várias mudanças de estado do processador provocado pela mudança de camadas. 2/1

32 Estrutura do Sistema Operacional
Arquitetura em Camadas do OpenVMS Arquitetura de Sistemas Operacionais – Machado/Maia 4/5

33 Arquitetura do núcleo do SO
Máquina Virtual Nível intermediário entre o SO e HW Fornece uma cópia virtual do: HW Modos de acesso Interrupções Dispositivos de E/S Isolamento das MV para permitir a convivência de diversos SOs Grande segurança; Complexo para gerenciar recursos de HW 2/1

34 Estrutura do Sistema Operacional
Máquina Virtual Arquitetura de Sistemas Operacionais – Machado/Maia 4/6

35 Estrutura do Sistema Operacional
Máquina Virtual Java 4/7

36 Arquitetura do núcleo do SO
Arquitetura Microkernel Arquitetura microkernel (cliente x servidor): uma tendência nos sistemas operacionais modernos é tornar o núcleo do sistema o menor e o mais simples possível. Para implementar esta idéia, os serviços do sistema são disponibilizados através de processos, onde cada um é responsável por oferecer um conjunto específico de funções, como gerência de arquivos, gerência de processos, gerência de memória e escalonamento. Sempre que uma aplicação deseja algum serviço, é realizada uma solicitação ao processo responsável. Neste caso, a aplicação que está solicitando o serviço é chamada de cliente, enquanto o processo que responde à solicitação é chamado de servidor. 2/1

37 Arquitetura do núcleo do SO
Arquitetura Microkernel Um cliente, que pode ser uma aplicação do usuário ou um outro componente do sistema operacional, solicita um serviço enviando uma mensagem para o servidor. O servidor responde ao cliente através de uma outra mensagem. A principal função do núcleo é realizar a comunicação, ou seja, a troca de mensagens entre o cliente e o servidor. A utilização deste modelo permite que os servidores operem em modo usuário, não tendo acesso direto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa em modo kernel. Como conseqüência, se ocorrer um erro em algum servidor,este poderá parar, mas o sistema não ficará inteiramente comprometido, aumentando assim a sua disponibilidade 2/1

38 Arquitetura do núcleo do SO
Arquitetura Microkernel Como conseqüência, se ocorrer um erro em algum servidor,este poderá parar, mas o sistema não ficará inteiramente comprometido, aumentando assim a sua disponibilidade. Como os servidores se comunicam através de trocas de mensagens, não importa se os clientes e servidores processam em um sistema com um único processador, com vários processadores ou ainda em um ambiente de sistema distribuído. A arquitetura microkernel permite isolar as funções do sistema operacional por diversos servidores pequenos e dedicados a serviços específicos, tornando o núcleo menor, mais fácil de depurar (procurar e solucionar erros) e, com isso, aumentando a sua confiabilidade. Apesar de todas as vantagens deste modelo, sua implementação é muito difícil. A começar pelo desempenho, comprometido devido às várias trocas de modo de acesso a cada troca de mensagens entre cliente e servidor. Outro problema é que certas funções do sistema operacional, como operações de E/S, exigem acesso direto ao hardware. Assim, o núcleo do sistema, além de promover a comunicação entre clientes e servidores, passa a incorpora funções críticas do sistema, como escalonamento, tratamento de interrupções e gerência de dispositivos. 2/1

39 Estrutura do Sistema Operacional
Arquitetura Microkernel 4/8


Carregar ppt "Conteúdo Estrutura do sistema operacional Funções do Kernel"

Apresentações semelhantes


Anúncios Google