Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um...
Transcript of Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um...
![Page 1: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/1.jpg)
Sistemas Operacionais
Conceitos de um Sistema Operacional
![Page 2: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/2.jpg)
Modo usuário e Modo Kernel
● Como já vimos são ambientes de execuçãodiferentes no processador
● Há um conjunto de funções privilegiadasacessadas apenas em modo Kernel
● Um programa de usuário pode usar destasfunções apenas indiretamente através dechamadas de sistema(system call)
● Uma chamada sistema é normalmenteexecutada através de uma biblioteca do S.O.
![Page 3: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/3.jpg)
Processo
● Um dos conceitos chave dos Sistemas Operacionais
● Um processo é um programa em execução
● Associado ao processo está um conjunto de informações sobreos recursos que este tem direito● Espaço de endereços de memória● Arquivos Abertos● Contador de Programa● Registradores● Etc
● Uma definição mais abangente seria: Um processo é umconteiner que armazena todos os dados informação sobre umprograma ativo
![Page 4: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/4.jpg)
Processos
● Todo SO tem seus processos internos eprocessos de usuários
● Todo processo tem um número identificadorchamado PID(Process IDentification)
● Os processos internos são executados pelokernel do SO
● O mecanismo mais comum para criarprocessos em um SO multitarefa é:● Um processo existente crie um novo processos
chamado processo-filho
![Page 5: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/5.jpg)
Espaço de endereços
● O espaço de endereçamento de umcomputador é o conjunto de endereços dememória que este computador é capaz deacessar
● Comumente o espaço de endereçamento émaior que a quantidade de memória real dearmazenamento
● Há técnicas para resolver esta questão.● Paginação e suas variações● Memória virtual
![Page 6: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/6.jpg)
Sistemas de Arquivos
● O usuário está acostumado ao uso de arquivos no dia-a-dia
● Esta abstração é muito útil para o usuário final como tambémpara os processos do sistema
● Dispositivos de armazenamento são complexos e diferentesem seus tempos de acesso e métodos de acesso
● Um sistema de arquivos permite abstrair todos esses detalhes
● Acesso a arquivos no S.O. é comumente realizado através dechamadas de sistema(system call)
● Exemplos de chamadas de sistema são:● read(), open(), write()
![Page 7: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/7.jpg)
Sistemas de arquivos
![Page 8: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/8.jpg)
Sistemas de Arquivos
● São comumente organizados em umahierarquia
● Pastas contendo arquivos e outras pastas
● Há uma preocupação com permissões deacesso e acesso simultâneo de arquivos
● Arquivos comumente tem um caminho (path)de onde estão armazenados● Ex.:/home/tadeu/arquivos/prova.txt
![Page 9: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/9.jpg)
Sistemas de Arquivos
● Em sistemas baseados em UNIX e em vários outros sistemashá alguns tipos especiais de arquivos:● Arquivo de blocos● Arquivo de caracter● pipes
● Apesar da abstração de arquivos, internamente o modo comoos arquivos são efetivamente armazenados pode ser muitodiferente
● Essas diferenças nos tipos de sistemas de arquivos temrelação com o objetivo de cada sistema de arquivo:● Otimizado para leitura, escrita, arquivos grandes, arquivos pequenos● Otimizados para um tipo de armazenamento: flash, HD, RAM, etc.
![Page 10: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/10.jpg)
Sistemas de Arquivos
● NTFS – Sistema de arquivos do Windows
● EXT4 – Sistema de arquivos padrão no Linux
● ReFS – Novo sistema de arquivos do windows
● YAFFS – Yet Another Flash File System
● HFS – Sistemas de arquivos do OSX
![Page 11: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/11.jpg)
Entrada e Saída
● Grande parte do que o computador faz é ler dadosde entrada e escrever dados em uma saída
● Essas atividades são gerenciadas pelo S.O. usandoas bibliotecas de E/S I/O(input/output)
● Há muitas questões que precisam ser tratadas pelosistema de I/O● Velocidades dos dispositivos● Métodos de acesso● Concorrência de acesso● Proteção do hardware
![Page 12: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/12.jpg)
A interface
● Hoje a maioria dos sistemas operacionais deusuário final inclui uma interface com o usuário
● Essa interface pode ser gráfica Graphic UserInterface (GUI), ou pode ser em modo textoCommand Line Interface(CLI)
![Page 13: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/13.jpg)
A interface
● Há outras maneiras de interagir com umsistema operacional
● Um exemplo são as interrupções de hardware
● Sistemas Operacionais que cuidam desistemas robóticos podem ter interfacesapenas com os sensores instalados noequipamento
![Page 14: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/14.jpg)
System Call
● São funções do S.O. acessíveis pelosprocessos de usuário
● Funcionam como chamada a funções comunsde qualquer biblioteca
● Porém são executadas pelo Kernel do S.O. enormalmente exigem estar em modo Kernelpara tal
![Page 15: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/15.jpg)
Exemplos de System Call
● fork() - Cria um novo processo● open() - Abre um arquivo● write() - Escreve em um arquivo● mkdir() - Cria uma pasta no FS● read() - Lê de um arquivo
![Page 16: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/16.jpg)
Estrutura de um S.O.
● Há várias maneiras de se organizar umSistema Operacional
● Cada modelo tem um conjunto de vantagens edesvantagens é preciso compreender estasdiferenças
● Esta é uma decisão de projeto do S.O. masque influenciará na maneira como processos erecursos são tratados
![Page 17: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/17.jpg)
Estrutura de um S.O.
● S.O. monolítico
● S.O. multi camadas
● Microkernels
● Cliente-Servidor
● Máquinas Virtuais● JVM
● Exokernels
![Page 18: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/18.jpg)
S.O. monolítico
● O modelo mais comum para a construção deum kernel
● Todo o código de kernel é executado como umúnico programa
● Essa organização pode tornar o código queexecuta em modo kernel muito longo e passívelde mais erros
● Como tem menos camadas este tipo pode sermais eficiente
![Page 19: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/19.jpg)
S.O. multi camadas
● Uma generalização do S.O. monolítico
● A ideia é separar as funções do S.O. em váriascamadas
● Usado no sistema THE de 1968
● Permite uma separação/segurança maior
![Page 20: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/20.jpg)
Microkernels
● É uma estratégia inversa do kernel monolítico
● O objetivo aqui é ter o mínimo de softwareexecutando em modo kernel
● Retirando a maioria dos serviços do kernel ecolocando-os como aplicações
● O principal problema desta abordagem é aquantidade de chamadas de sistema e trocasde contexto necessárias para executaralgumas tarefas
● Exemplos: Symbian, Minix, QNX
![Page 21: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/21.jpg)
Cliente-Servidor
● É uma variação do modelo Microkernel
● Cada processo é um servidor ou um cliente
● A comunicação entre processos é feita atravésde mensagens
● É uma boa estratégia para computaçãodistribuída como em clusters
![Page 22: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/22.jpg)
Máquinas Virtuais
● O conceito de máquina virtual existe há muitas décadaso OS/370 da IBM implementava este conceito
● A ideia é que há um monitor de máquinas virtuais e cadaprocesso receberá uma máquina virtual com recursoslimitados pelo monitor
● A ideia de virtualização hoje mudou no sentido de que asmáquinas virtuais executam cada uma o seu próprio S.O.compartilhando recursos
● Surge o conceito de hypervisor um software responsávelpela gerência das VMs
![Page 23: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/23.jpg)
Máquinas Virtuais
● Há várias maneiras de seimplementar um hypervisor
● Falaremos delas mais àfrente
● Este modo é muito comumem datacenters
● Esta tecnologia é a basepara os sistema decomputação elástica comoo AWS e AZURE
![Page 24: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/24.jpg)
Máquinas Virtuais
● A JVM Java virtual machine
● Estratégia criada pela SUN para que sua novalinguagem de programação pudesse executarem qualquer sistema
● É uma máquina capaz de interpretar um códigointermediário e executá-lo em um sistema hostqualquer
● Permite ainda que se isole aplicações JAVA deoutros processos em execução.
![Page 25: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/25.jpg)
Exokernels
● Uma outra estratégia para a separação de recursos dosistema são os exokernels
● Ao invés de solicitar que um hypervisor traduza todasas chamadas de S.O. para os S.O. convidados
● Os exokernels apenas dividem o sistema em partiçõese os sistemas operacionais acima que cuidam doacesso a estes dispositivos físicos
● O principal papel do exokernel é garantir que osprocessos não acessem recursos que não lhepertencem
![Page 26: Conceitos de um Sistema Operacional · sistema são os exokernels Ao invés de solicitar que um hypervisor traduza todas as chamadas de S.O. para os S.O. convidados Os exokernels](https://reader034.fdocuments.net/reader034/viewer/2022050514/5f9e628ec936324357335f05/html5/thumbnails/26.jpg)
Atividade
● Descreva a diferença entre kernel Monolítico,Microkernel e Exokernel.
● Trocar o sistema de arquivos de um S.O. podeimpactar sua performance? Por que?
● Defina processo.
● O que são system calls?Por que os processosdevem usá-las para acessar o hardware?
Endereço de entrega:
https://goo.gl/P3c7FJ