Aula 5a - Sistemas Operacionais

50
Noções de computação – Noções de computação – Sistemas Operacionais Sistemas Operacionais Profª Jocelma Rios Set/2012 Em 2008... e agora, como estão?

description

Aula 5a da disciplina Computação Aplicada, Unijorge, 2012.2

Transcript of Aula 5a - Sistemas Operacionais

Page 1: Aula 5a - Sistemas Operacionais

Noções de computação – Noções de computação – Sistemas OperacionaisSistemas Operacionais

Profª Jocelma RiosSet/2012

Em 2008... e agora,

como estão?

Page 2: Aula 5a - Sistemas Operacionais

O que pretendemos:O que pretendemos:

● Apresentar os conceitos básicos de SO● Descrever as principais funções dos SO, explicitando as ações, regras e particularidades de cada uma

● Refletir sobre a importância dos sistemas operacionais para o desempenho dos sistemas computacionais

Page 3: Aula 5a - Sistemas Operacionais

Sistemas OperacionaisSistemas Operacionais● É um software ou um conjunto deles que tem como função gerenciar os recursos do sistema computacional, fornecendo uma interface entre o usuário e a máquina.

● A maioria dos computadores pessoais o executa através de outro programa armazenado numa memória ROM chamado BIOS num processo chamado "bootstrapping", ou simplesmente BOOT.

● Após executar testes e iniciar os componentes da máquina (monitor, memória discos etc.), o BIOS procura pelo SO em alguma unidade de armazenamento, geralmente o Disco Rígido, e a partir daí, assume o controle da máquina.

Page 4: Aula 5a - Sistemas Operacionais

Sistemas OperacionaisSistemas Operacionais● É o mais importante pacote de software de uma máquina → qualquer outro sistema opera sobre ele

– Ex.: Windows 9x, Windows NT, OS/2, Unix, Linux, MAC OS, Android, etc.

● Funcionalidades:– Interface com o usuário– Gerenciamento de processos– Gerenciamento de memória– Gerenciamento de arquivos– Gerenciamento de dispositivos– Gerenciamento de proteção e segurança

Page 5: Aula 5a - Sistemas Operacionais

Market Share dos SO Market Share dos SO (Ago/2012)(Ago/2012)

Estimativa do uso de sistemas operacionais segundo uma amostra de computadores com acesso a Internet (sempre verificar atualização na fonte) (Fonte: W3counter).

Page 6: Aula 5a - Sistemas Operacionais

Visões possíveis sobre o SOVisões possíveis sobre o SO

Page 7: Aula 5a - Sistemas Operacionais

Gerenciamento de memóriaGerenciamento de memória

● Por que gerenciar memória?

R: A memória principal é um recurso caro e escasso

RAM: R$ 30 / Gb Disco: R$ 0,154 / Gb

Page 8: Aula 5a - Sistemas Operacionais

Por que gerenciar a memória?Por que gerenciar a memória?

● É necessário maximizar o número de usuários e aplicações (processos) que utilizem de forma eficiente o espaço de memória física disponível

● É preciso evitar que um processo use/invada o espaço de memória de outro causando paralisação do sistema

● É preciso possibilitar ao usuário alternar entre uma aplicação e outra

Page 9: Aula 5a - Sistemas Operacionais

Gerenciamento de memória: Gerenciamento de memória: funções básicasfunções básicas

● Transferir programas da memória secundária para a memória principal

● Reduzir o número de operações de E/S nessa transferência (pois a memória secundária é lenta)

● Manter na memória o maior número possível de processos residentes, maximizando a utilização de recursos

Page 10: Aula 5a - Sistemas Operacionais

Gerenciamento de memória: Gerenciamento de memória: funções básicasfunções básicas

● Permitir que novos programas sejam aceitos mesmo que não exista espaço livre de memória

● Permitir a execução de programas maiores do que a memória física

● Proteger as áreas de memória ocupadas por cada processo

● Oferecer mecanismos de compartilhamento de dados e informações

Page 11: Aula 5a - Sistemas Operacionais

MemóriaMemória

A memória pode ser vista como um array

(vetor) de células de armazenamento

(palavras ou bytes), cada partição com seu

endereço

Conteúdo

Endereço

Page 12: Aula 5a - Sistemas Operacionais

Memória – hardware básicoMemória – hardware básico

A memória principal e os registradores A memória principal e os registradores embutidos no próprio processador são os embutidos no próprio processador são os únicos tipos de armazenamento acessíveis únicos tipos de armazenamento acessíveis

diretamente pela CPUdiretamente pela CPU.Portanto, quaisquer instruções em execução (e os dados relacionados) precisam estar em um

desses dispositivos de armazenamento com acesso direto.

Se os dados não estiverem na memória, eles deverão ser movidos para lá antes que a CPU possa fazer qualquer operação sobre eles.

Page 13: Aula 5a - Sistemas Operacionais

Memória Memória vs.vs. registradores registradores● O acesso à memória principal pela CPU é mais lento que no caso dos registradores porque os dados precisam passar pelo barramento de memória

● Existe um delay (espera) muito grande entre a velocidade de processamento da CPU e a leitura na memória principal

– Solução: memória cache – fica entre os registradores e a memória RAM

● Proteção da memória exigida para garantir a operação correta

Page 14: Aula 5a - Sistemas Operacionais

MemóriaMemória

Page 15: Aula 5a - Sistemas Operacionais

Gerenciamento de memóriaGerenciamento de memória

● O sistema operacional tem acesso completo à memória e deve permitir que os processos dos usuários tenham acesso seguro a ela quando o requisitam.

● Vários SO usam memória virtual, que possui 3 funções básicas:

– assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação

– prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença

– possibilitar que uma aplicação utilize mais memória do que a fisicamente existente

Page 16: Aula 5a - Sistemas Operacionais

Memórias física e virtualMemórias física e virtual

● Memória física – É a memória implementada pelo hardware

(RAM, ROM, Disco)– Memória lógica de um processo– É a memória endereçada pelas instruções de

máquina do processo● Memória Virtual

– É implementada pelo SO, com o auxílio da memória secundária (através de paginação ou segmentação)

– Normalmente, é maior que a memória física

Page 17: Aula 5a - Sistemas Operacionais

Gerenciamento de memória - Gerenciamento de memória - SwappingSwapping

● Ocorre quando não existir memória suficiente para alocar um dado processo, já que nem sempre é possível manter todos os processos em memória

– Para isso, a gerência de memória reserva uma área do disco para o seu uso em determinadas situações, e um ou mais arquivos são copiado da memória para o disco

– Com isso, o SO consegue executar mais processos do que caberia em um mesmo instante na memória

Page 18: Aula 5a - Sistemas Operacionais

Gerenciamento de memória - Gerenciamento de memória - SwappingSwapping

● Swapping impõe aos programas um grande custo em termos de tempo de execução, pois é necessário copiar arquivos para o disco e mais tarde copiar novamente para a memória.

● Em sistemas onde o usuário interage com o programa durante sua execução, o mecanismo de swapping é utilizado em último caso, quando não se é possível manter todos os processos na memória, visto que a queda no desempenho do sistema é imediatamente sentida pelo usuário.

Page 19: Aula 5a - Sistemas Operacionais

Gerenciamento de arquivosGerenciamento de arquivos

● Arquivos– Criação, alteração e remoção– Mapeamento em armazenamento secundário– Suporte a primitivas para manipulação

● Diretórios– Criação, alteração e remoção

● Segurança– Backup– Mecanismos de proteção

Page 20: Aula 5a - Sistemas Operacionais

● É um utilitário do SO que gerencia discos rígidos, volumes ou partições nele contidos

● Permite inicializar discos, criar volumes, formatar volumes com sistemas de arquivos FAT (12…16), FAT32 ou NTFS e criar sistemas de disco tolerantes a falhas

● Permite executar a maioria das tarefas relacionadas a discos sem reiniciar o sistema ou interromper os usuários

Gerenciamento de arquivosGerenciamento de arquivos

O uso de arquivos em disco é necessário pela limitação de espaço da

memória

Page 21: Aula 5a - Sistemas Operacionais

●As trilhastrilhas são círculos concêntricos, que começam no final do disco e vão se tornando menores conforme se aproximam do centro. ●Cada trilha recebe um número de endereçamento, que permite sua localização. A trilha mais externa recebe o número 0 e as seguintes recebem os números 1, 2, 3, e assim por diante. ●As trilhas se dividem em setores, que são pequenos trechos onde são armazenados os dados, sendo que cada setor guarda 512 bytes de informações. ●Um disco rígido atual possui até 900 setores em cada trilha (o número varia de acordo com a marca e modelo), possuindo sempre mais de 3000 trilhas.

Disco rígidoDisco rígido

Page 22: Aula 5a - Sistemas Operacionais

●Um HD é formado internamente por vários discos empilhados, sendo o mais comum o uso de 2 ou 3 discos, podendo fazer gravação nas duas faces.●Apesar de haver várias cabeças de leitura, elas não se movimentam independentemente, pois são todas presas à mesma peça metálica, chamada braço de leitura (peça triangular, que pode se mover horizontalmente). Assim, passa-se a considerar o conjunto de trilhas como um cilindro.

● Por exemplo, o cilindro 1 é formado pela trilha 1 de cada face de disco, o cilindro 2 é formado pela trilha 2 de cada face, e assim por diante.

Disco rígidoDisco rígido

Page 23: Aula 5a - Sistemas Operacionais

Saiba mais: www.hardware.com.br/livros/hardware-manual/trilhas-setores-cilindros.html

Disco rígidoDisco rígido

Page 24: Aula 5a - Sistemas Operacionais

Gerenciamento de processosGerenciamento de processos● É utilizada para investigar e depurar processos irregulares, parar e reinicializar processos e mostrar os processos que estão sendo executados

– O escalonamento é feito com base em time-sharing

● Atribui o processador para um processo da fila de aptos para processar

– Prioriza I/O bound– Modo usuário tem menor prioridade que o modo

kernel– Utiliza semáforos e monitores como mecanismos

para garantir o escalonamento adequado

Page 25: Aula 5a - Sistemas Operacionais

Processo - DefiniçãoProcesso - Definição

● Um processo é a unidade de trabalho em um sistema moderno de tempo compartilhado

● Os termos tarefa, job ou processo são equivalentes

● É o ambiente onde se executa um software● O processo é quem define o ambiente, os recursos, e os buffers disponíveis a este. Nenhum programa é executado diretamente na memória e sim em forma processo

Page 26: Aula 5a - Sistemas Operacionais

Processo - DefiniçãoProcesso - Definição

● Diferenciação entre software e sua execução (processo)

– Software: entidade estática e permanente● Sequência de instruções● Passivo sob o ponto de vista do SO

– Processo● Entidade dinâmica e efêmera● Altera seu estado à medida em que avança

sua execução● Composto por código, dados e contexto

(valores)● Identificado por um número único (PID)

Page 27: Aula 5a - Sistemas Operacionais

Hierarquia entre processosHierarquia entre processos

● Um processo (pai) pode criar outros processos (filhos) e que podem, por sua vez, criarem também outros processos de maneira hierárquica (subprocesso)

● Quando um processo 'pai' morre, todos os filhos 'morrem'

● Depois de um certo número de subprocessos, a situação pode se tornar crítica gerando erros no sistema

Processos independentes: não apresentam

relacionamento com outros processos

Page 28: Aula 5a - Sistemas Operacionais

Criação de processosCriação de processos● Inicialização de um software● Logon de usuários● Processo criado para execução de um determinado serviço (daemons)

● Processo criado a partir de um processo já existente (spawn)

Page 29: Aula 5a - Sistemas Operacionais

Término de processosTérmino de processos● Final de execução (normal)● Situações “anormais”

– Exceder tempo limite– Falta de memória– Erros de proteção

● Ex: tentativa de escrita em arquivo read-only; acesso à área de memória não autorizadas

– Erros aritméticos ● Ex: divisão por zero, overflow

– Erro em periféricos– Execução de instruções inválidas (ex: privilegiadas)– Deadlocks

Page 30: Aula 5a - Sistemas Operacionais

Estados de um processoEstados de um processo

Execução (Running): → Quando um processo está sendo processado pela CPU. Tais processos se revezam na execução.

Pronto (Ready): → Quando um processo aguarda que o sistema operacional aloque a CPU para sua execução.

Espera (Wait): → Quando um processo está aguardando algum evento externo para prosseguir com o processamento

Page 31: Aula 5a - Sistemas Operacionais

ThreadsThreads

● É onde um processo pode efetuar várias operações concorrentemente ou simultaneamente através das chamadas "Linhas de execução"

– Uma linha de execução permite que o usuário de programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações

● Compartilham o mesmo espaço de endereçamento

Page 32: Aula 5a - Sistemas Operacionais

ThreadsThreads

● Thread em modo kernel

Page 33: Aula 5a - Sistemas Operacionais

ThreadsThreads

● Thread em modo usuário

Page 34: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivosGerenciamento de dispositivos● Implementado através de uma estrutura de camadas de software e hardware

● Procura oferecer uma interface simples e confiável para o usuário e as aplicações

● “Esconde” detalhes das camadas inferiores● Dividido em dois grupos:

– 1o: visualiza os dispositivos de um modo único– 2o: é específico para cada dispositivo

● A maior parte da gerência de E/S trabalha independentemente de dispositivo, permitindo a comunicação dos processos com qualquer tipo de periférico, proporcionando maior flexibilidade

Page 35: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos – Subsistema de E/S– Subsistema de E/S

● Independência de dispositivos - o sistema deve se comunicar com qualquer tipo de dispositivo conectado ao computador

● Acesso a dispositivos através bibliotecas ● Linguagens de auto nível permitem portabilidade, como C ou Pascal

● A independência de dispositivos deve ser realizada através de system calls, presentes na camada de mais alto nível implementada pelo sistema operacional

Page 36: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos – Funções do Device Drivers– Funções do Device Drivers

● Implementar todo o mecanismo de proteção de acesso aos dispositivos.

● Mapear o nome do dispositivo com seu respectivo driver, para acesso pelas camadas superiores

● Controlar os dispositivos de E/S de forma segura e confiável obtendo um maior compartilhamento

● Bufferização, permitindo reduzir o número de operações de E/S, utilizando-se de uma área de memória intermediária chamada buffer

● Tratar erros que podem independente de dispositivos (uma parte apenas)

Page 37: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos - Controladoras- Controladoras

● São componentes eletrônicos (hardware) responsáveis por manipular diretamente os dispositivos de E/S

● Serve de comunicação do SO com os Dispositivos● Em geral, possui memória e registradores próprios para executar instruções enviadas pelo device driver

● Em operações de leitura, armazena uma sequência de bits vinda do dispositivo no seu buffer interno e verifica a ocorrência de erros, não havendo erros, o bloco é transmitido para a memória principal (ex: como ocorre no HD)

Page 38: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos - Controladoras- Controladoras

● Na maioria dos dispositivos orientados a bloco, como discos, é implementada a técnica de DMA para transferência de dados entre o controlador e a memória principal:

– O device driver executa as operações de E/S gravando os comandos nos registradores da controladora

– A controladora executa a operação com o dispositivo enquanto a CPU pode realizar outras tarefas.

– O device driver, então, testa os resultados através dos registradores do controlador.

Page 39: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivosGerenciamento de dispositivos

● SCSI (Small Computer Systems Interface)– Padrão popular para conexão de dispositivos

ao computador– Inicialmente utilizado em RISC– Define padrões de hardware e software que

permitem conectar ao computador qualquer tipo de dispositivo, mesmo de fabricantes diferentes

– O Sistema Operacional deve estar configurado com um driver SCSI e o hardware com um controlador SCSI onde os periféricos são conectados

Page 40: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos – Dispositivos de E/S– Dispositivos de E/S

● Responsáveis pela comunicação entre o computador e o mundo externo.

● Podem ser de 3 tipos: Entrada, Saída e Entrada/Saída

● Comunicação efetuada através de blocos de informações ou palavra a palavra, realizando-se a transferência através de controladoras sob supervisão da CPU

Page 41: Aula 5a - Sistemas Operacionais

Gerenciamento de dispositivos Gerenciamento de dispositivos – Dispositivos de E/S– Dispositivos de E/S

● Dispositivos Estruturados:– Armazenam informações em blocos de tamanho fixo, cada

um com um endereço– Blocos pode ser lidos ou gravados de forma

independentes (Ex: discos)– Acesso Direto – blocos de dados pode ser recuperados

diretamente através de um endereço (Ex: discos)– Acesso sequencial – para acessar um bloco de dados, o

dispositivo deve percorrer sequencialmente o meio de armazenamento à procura do bloco (ex: fita)

● Dispositivos não-Estruturados:– Podem enviar ou receber uma sequência de caracteres

sem estar estruturada no formato de um bloco (Ex: impressoras, interfaces de rede)

Page 42: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e SegurançaProteção e Segurança

Page 43: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e SegurançaProteção e Segurança

● Proteção: refere-se a qualquer mecanismo através do qual seja possível controlar o controlar o acesso de programasacesso de programas, processos e usuários a recursos definidos por um sistema de computação

● Segurança: é um conceito mais abrangente; requer não somente um ambiente adequado de proteção bem como considera o ambiente externoambiente externo no qual o sistema opera

Page 44: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e SegurançaProteção e Segurança

● Mecanismos de proteção, portanto, são ferramentas utilizadas para implementar a política de segurança definida pela organização

● Mecanismos de proteção não é o mesmo que políticas de proteção

– MecanismosMecanismos determinam comocomo algo será feito

– PolíticasPolíticas decidem o quêquê será feito

Page 45: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e Segurança - Proteção e Segurança - Objetivos Objetivos

● A proteção pode melhorar a confiabilidademelhorar a confiabilidade, detectando erros latentes nas interfaces entre subsistemas componentes

● A detecção antecipada de erros da interface pode impedir a contaminação de um subsistemaimpedir a contaminação de um subsistema saudável por um subsistema defeituoso

● Um recurso não-protegido não pode se proteger contra uso (ou mau uso) por um usuário não-autorizado ou leigo

● Um sistema orientado a proteçãosistema orientado a proteção provê meios de distinguir entre o uso autorizado e o não-autorizado

Page 46: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e Segurança - Proteção e Segurança - Objetivos Objetivos

● O papel da proteção em um sistema computacional é prover um mecanismo para a execução das políticas que governam o uso do recurso

– Tais políticas podem ser definidas no projeto do SO ou pelo próprio usuário

– Podem variar com o tempo, por aplicação e com a situação

● Princípio do menor privilégio– O SO implementa seus recursos, programas,

chamadas de sistema e estruturas de dados de modo que a falha ou o comprometimento de um componente realize o mínimo de dano

Page 47: Aula 5a - Sistemas Operacionais

Gerenciamento de Gerenciamento de Proteção e Segurança - DomínioProteção e Segurança - Domínio

● Um computador é uma coleção de processos e objetos

– Objetos de hardware (CPU, memória, mouse)– Objetos de software (arquivos, semáforos)– Os objetos são essencialmente tipos de

dados abstratos● Um processo só deverá ter permissão para acessar os recursos para os quais tem autorização

● Num dado momento, um processo só deve ser capaz de acessar aqueles recursos exigidos para concluir sua tarefa → essa limitação reduz os danos que podem ser causados por acesso indevido

Page 48: Aula 5a - Sistemas Operacionais

Para refletir...Para refletir...

Analisando tecnicamente o Windows sempre perde para

o Unix. Por que então algumas empresas ainda mantém parte de seus

servidores na plataforma Windows?

Page 49: Aula 5a - Sistemas Operacionais

ReferênciasReferências

● SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas operacionais com Java. Tradução de Daniel Vieira. Revisão técnica de Sérgio Guedes de Souza. 7. ed. Revista e ampliada. Rio de Janeiro: Elsevier, 2008. Cap. 22

● TANENBAWN, A. Sistemas operacionais Modernos. Tradução de Nery Machado Filho. Rio de Janeiro: Prentice Hall, 1995. Cap. 1

Page 50: Aula 5a - Sistemas Operacionais

Vídeos sugeridosVídeos sugeridos

● Como funciona um Sistema Operacional – www.youtube.com/watch?v=nt0P8ZAYuUo

● Introdução aos Sistemas Operacionais– www.youtube.com/watch?v=Zl9w2HbUecU

● Entrevista sobre Sistemas Operacionais– Parte I - www.youtube.com/watch?v=5H5nFPPnB4A– Parte II - www.youtube.com/watch?v=cTFIR54UcL8

● História do Linux– www.youtube.com/watch?v=OlQvGjX71cw