Sistemas Operacionais

201
Sistemas Operacionais AIRTON BORDIN JUNIOR

Transcript of Sistemas Operacionais

Page 1: Sistemas Operacionais

Sistemas OperacionaisAIRTON BORDIN JUNIOR

Page 2: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

2Ementa da disciplina

Estruturas de Sistemas operacionais; Sistemas multiprogramáveis; Gerência de processos; Gerência de memória física; Gerência de memória virtual; Gerência de sistemas de arquivos; Gerenciamento de dispositivos; Segurança e proteção; Introdução aos sistemas operacionais distribuídos.

Page 3: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

3Bibliografia básica

Sistemas operacionais: Projeto e implementação. Andrew S. Tanenbaum; Albert S. Woodhull;

Sistemas operacionais: Conceitos e aplicações. Abraham Sílberschatz; Peter Galvin; Greg Gagne;

Arquitetura de sistemas operacionais. Francis B. Machado, Luiz Paulo Maia.

Page 4: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

4Aula 1 – Introdução

O que é um sistema operacional? Um programa de computador (software) que fica entre as

aplicações e o equipamento (hardware); É um software que habilita as aplicações e interage com o

hardware do computador; Qual o objetivo de um sistema operacional?

Gerenciar os componentes de hardware e fornecer aos programas de usuário uma interface com o hardware mais simples;

Utilizar hardware e software de maneira eficiente.

Page 5: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

5Introdução

Sistemas operacionais rodam em diversos tipos de equipamentos: Computadores pessoais; Telefones celulares; Automóveis; Etc.

Exemplos de sistemas operacionais...

Page 6: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

6Introdução

Imagine se o programador tivesse que se preocupar com o hardware...

• Qual o endereço físico da memória da variável x?

• Qual a velocidade máxima de rotação do HD?

• Qual a taxa de atualização do monitor do usuário?

• Etc...

Page 7: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

7Introdução

Cada hardware tem sua particularidade; É responsabilidade do sistema operacional

gerenciar essas particularidades: Um processador de texto não precisa saber como

gravar um arquivo no HD, CD, etc; Um sistema que apresenta um resultado para o

usuário não precisa saber como imprimir um caractere no monitor;

Etc.

Page 8: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

8Introdução

Cabe ao sistema operacional definir as regras para gerenciar o uso dos recursos de hardware pelos aplicativos e resolver possíveis disputas e conflitos por esses recursos: Uso de processador pelas aplicações; Acesso ao disco – Leitura, escrita; Acesso à memória; Etc.

Page 9: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

9Introdução

Programas de sistemas e usuários

Sistema OperacionalHardware

Page 10: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

10Introdução

Page 11: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

11Introdução

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de dispositivos

Gerência de arquivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 12: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

12Introdução

Podemos definir um Sistema Operacional levando em consideração dois pontos de vistas:O S.O. como uma máquina estendida;O S.O. como um gerenciador de recursos.

Page 13: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

13Introdução

O Sistema Operacional como uma máquina estendida: O sistema operacional é a camada de software que

oculta a complexidade do hardware; Facilita a criação de novos sistemas, de forma que o

desenvolvedor ou usuário não necessite saber detalhes de funcionamento dos periféricos.

Page 14: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

14Introdução

O Sistema Operacional como um gerenciador de recursos: O Sistema Operacional é responsável por organizar

e alocar de forma ordenada e eficiente os recursos de hardware do computador;

Definir políticas de uso dos recursos de hardware pelas aplicações e resolver disputas e conflitos que venham a ocorrer.

Page 15: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

15Histórico

A evolução dos sistemas operacionais está intimamente ligado à evolução do hardware;

Aumento da complexidade do hardware demanda uma abstração maior para as camadas “superiores”;

Page 16: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

16Histórico

1ª Geração (1945 – 1955)• Necessário conhecimento

do funcionamento do hardware;

• Programação feita através de linguagem de máquina;

• Computadores utilizavam válvulas;

• Inexistência do conceito de Sistema Operacional.

Page 17: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

17Histórico (1ª Geração)

MARK I

Page 18: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

18Histórico

2ª Geração (1956 – 1965)• Invenção do Transistor – Bell

Laboratories;• Computadores mais rápidos e mais

eficientes;• Cálculos que demoravam segundos

agora eram medidos em milissegundos;

TRADIC TRADIC

Page 19: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

19Histórico (2ª Geração)

IBM 1401

Page 20: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

20Histórico

3ª Geração (1966 – 1970)• Circuitos integrados;• Diminuição no preço dos

computadores;• Diminuição no tamanho dos

computadores;• Principal empresa: IBM –

System/360 rodando OS/360;

System/360Circuitos integrados

OS/360

Page 21: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

21Histórico (3ª Geração)

IBM System/360

Page 22: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

22Histórico

4ª Geração (1980 – 1990)• Computadores pessoais - PC;• Avanço da indústria de hardware

com a introdução de novos circuitos integrados;

• Computação altamente interativa;• Crescimento da indústria de

softwares;• Dois sistemas operacionais

inicialmente dominaram o cenário: MS-DOS (Microsoft) e Unix;

• Redes de computadores.

MD-DOS

Unix

Page 23: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

23Histórico (4ª Geração)

Page 24: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

24Histórico

5ª Geração (1990 – *)• Popularização dos PC’s;• Processadores de alto

desempenho – 1993: Pentium;• Evolução das redes de

computadores;• Interfaces gráficas complexas;• Interação com o usuário;• Internet.

Page 25: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

25Tipos de Sistemas Operacionais

Três PRINCIPAIS tipos (não são os únicos):Sistemas Monotarefa;Sistemas Multitarefa;Sistemas Multiprocessadores.

Page 26: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

26Sistemas Monotarefa

Aloca o Sistema Operacional disponível exclusivamente para um único programa;

O programa em andamento tem disponível todos os dispositivos do computador;

Tipicamente relacionados aos primeiros computadores, na década de 1960;

Provoca grande desperdício de hardware.

Page 27: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

27Sistemas Monotarefa

Page 28: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

28Sistemas Multitarefa

Evolução dos sistemas Monotarefas; Recursos computacionais são compartilhados entre as

aplicações Enquanto um programa aguarda por algum recurso,

outro pode estar utilizando o processador, por exemplo.

O sistema operacional é responsável por gerenciar o acesso concorrente aos recursos de hardware entre as aplicações, de forma ordenada e protegida;

Mais eficiente que sistemas monotarefa, porém sua implementação é mais complexa.

Page 29: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

29Sistemas Multitarefa

Page 30: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

30Sistemas Multitarefa

Os sistemas multitarefa podem ser classificados de acordo com: Número de usuários que acessam o sistema

Sistema Monousuário; Sistema Multiusuário.

Forma de gerenciamento das aplicações Sistemas Batch ou Lote; Sistemas de tempo compartilhado; Sistemas de tempo real.

Page 31: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

31Sistemas Multitarefa

Sistema Multitarefa

Monousuário Multiusuário

Page 32: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

32Sistemas Multitarefa - Monousuário

Apenas um usuário interage com o sistema;

Por ser um sistema multitarefa, pode processar mais de uma aplicação ao mesmo tempoEditor de texto e browser, por

exemplo.

Page 33: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

33Sistemas Multitarefa - Multiusuário

Possibilita vários usuários simultâneos com acesso ao sistema operacional;

Tem uma implementação mais complexa, uma vez que deve permitir a identificação de cada recurso, como arquivos e processos, e impor regras de controles de acesso.

Page 34: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

34Sistemas Multitarefa

Sistemas Multitarefas

Batch (lote) Tempo compartilhado Tempo real

Page 35: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

35Sistemas Multitarefa - Batch

Todos os programas são colocados em uma fila para execução do processador;

Programas são processados em sequência; Atualmente, BATCH é utilizado para definir um

conjunto de comandos que rodam sem interferência do usuário;

Sistemas BATCH, se bem projetados, podem ser bastante eficientes em alguns casos específicos;

Problemas: vazão, tempo de resposta – Exemplo.

Page 36: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

36Sistemas Multitarefa - Batch

Page 37: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

37Sistemas Multitarefa – Tempo Compartilhado (Time Sharing)

Permitem que diversos programas sejam executados a partir da divisão do processador em pequenos intervalos (time slice) Caso o tempo não seja suficiente para completar o

processamento, é interrompido e substituido por outro, enquanto aguarda novo intervalo de tempo.

Há a impressão de que a máquina está dedicada ao programa/usuário, como se ele fosse o único utilizador dos recursos;

Permitem INTERAÇÃO COM O USUÁRIO – I/O – Teclado, mouse, monitor, etc;

Page 38: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

38Sistemas Multitarefa – Tempo Compartilhado (Time Sharing)

O sistema operacional gerencia a utilização dos recursos pelos programas e usuários Escalonamento.

Gerenciamento complexo dos processos, dependendo da utilização do Sistema Operacional Prioridades; Tamanho do time slice; Guardar estado atual; Etc.

Page 39: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

39Sistemas Multitarefa – Tempo Compartilhado (Time Sharing) - Escalonamento

Page 40: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

40Sistemas Multitarefa – Tempo Real

Semelhante aos sistemas de tempo compartilhado; Diferença está no tempo exigido para o processamento das

aplicações; Tempo de processamento deve estar entre limites rígidos,

definidos no projeto; Um programa utiliza o processador pelo tempo que for

necessário, até que apareça uma aplicação com uma PRIORIDADE maior Prioridade é definida pela aplicação e não pelo S.O.

Utilização – Sistemas embarcados, aviões, etc Exemplo: Avião – prioridade: pouso ou sistema de som?

Page 41: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

41Sistemas Multiprocessadores

Possuem uma ou mais CPUs interligadas e trabalhando em conjunto;

Vários programas são REALMENTE executados ao mesmo tempo;

Vantagens específicas: Escalabilidade; Disponibilidade; Balanceamento de carga.

Page 42: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

42Sistemas Multiprocessadores

Escalabilidade (?);Disponibilidade (?);Balanceamento de carga (?).

Page 43: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

43Sistemas Multiprocessadores

Podem ser classificados em:Fortemente acoplados

Apenas uma memória compartilhada.Fracamente acoplados

Cada sistema tem sua própria memória.

Page 44: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

44Funcionalidades

Para cumprir os objetivos de abstração e gerência, o S.O. atua em várias frentes;

Cada recurso possui suas particularidades, o que demanda exigências específicas para gerenciá-los e abstraí-los;

Principais funcionalidades implementadas por um S.O. típico: Gerência do processador; Gerência de memória; Gerência de dispositivos; Gerência de arquivos; Gerência de proteção; Interface gráfica; Suporte de rede.

Page 45: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

45Gerência do processador

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de dispositivos

Gerência de arquivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 46: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

46Gerência de processador

Primeiros sistemas operacionais eram caracterizados por apenas um programa sendo executado por vez;

Computadores modernos = vários tarefas ao mesmo tempo; Processador é alternado entre um programa e outro

Falsa impressão de que vários programas estão rodando ao mesmo tempo;

Pseudoparalelismo. Para que isso seja possível, é necessário um monitoramento

complexo de todas as atividades; Foi desenvolvido um modelo que tornou o “paralelismo” mais

fácil de manipular: modelo de PROCESSOS.

Page 47: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

47Processos

Processo é um programa em execução e que tem suas informações mantidas pelo sistema operacional;

Um processo é um programa em execução. É uma unidade de trabalho dentro do sistema. Programa é uma entidade passiva, processo é uma entidade ativa;

Pode ser definido também como o ambiente onde o programa é executado, e além das informações sobre a execução, possui: Recursos que o sistema pode utilizar; Espaço de endereçamento; Arquivos e outras Entradas/Saídas; Etc.

Page 48: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

48Processos

O sistema operacional deve ser capaz de:Criar um processo;Reservar memória para um processo;Organizar os processos para a espera

do uso da CPU.

Page 49: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

49Processos

Os vários processos criados pelo sistema operacional competem entre si pela atenção do processador;

O gerenciador de processamento do sistema operacional é responsável por estabelecer a ordem de execução;

Os processos podem estar em 3 estados: Executando; Pronto; Bloqueado.

Page 50: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

50Processos

Executando: Quando o processo está, de fato, sendo processado pela CPU do

computador Pronto:

Quando o processo possui todas as condições necessárias para sua execução, porém, não está de posse da CPU do computador;

Em geral, existem vários processos nesta fase, e o sistema operacional é responsável por selecionar o próximo processo a usar a CPU.

Bloqueado: Quando o processo aguarda por algum evento externo ou por algum

recurso do sistema indisponível no momento, por exemplo: informação de algum dispositivo de I/O, etc.

Page 51: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

51Processos

Page 52: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

52Processo

Transições Transição 1 – Executando para bloqueado:

Um processo que estava utilizando o processador precisou de algum evento externo e não pode continuar.

Transição 2 – Bloqueado para pronto: O evento externo que o processo bloqueado aguardava acontece. Nesse

caso, o processo volta para a fila de pronto para usar a CPU. Transição 3 e 4 – Pronto para executando e Executando para pronto:

Realizados pelo escalonador de processos, que escolhe qual o próximo processo será executado;

Diversas políticas e escalonadores – Exemplo: PRIORIDADE.

Page 53: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

53Processos

Analisando processos na prática no sistema operacional:GNU/Linux: comando nice e renice modifica

prioridade. Comando ps aux mostra processos;

Windows: gerenciador de tarefas;Android: Dev Tools;Etc.

Page 54: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

54Escalonador de processos

Determina qual processo utilizará a CPU quando estiver disponível;

Age sempre sobre os processos em estado de PRONTO;

Segue uma política de escolha – Algoritmo de escalonamento;

Rotina é executada normalmente várias vezes por segundo.

Page 55: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

55Escalonador de processos

Objetivos das políticas de escalonamento: Maximizar a utilização da CPU; Maximizar o throughput (vazão); Minimizar o turnaround (tempo para finalização do processo); Minimizar o tempo de espera; Minimizar o tempo de resposta; Ser justa; Maximizar o número de usuários interativos; Ser previsível; Minimizar e balancear o uso de recursos; Etc.

Page 56: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

56Escalonador de processos

Para evitar que um processo monopolize a CPU (de propósito ou por acidente), uma interrupção por tempo é utilizada: QUANTUM ou TIME-SLICE;

Um processo interrompido por término do seu QUANTUM volta à fila em estado de PRONTO;

Um processo utiliza a CPU até: Voluntariamente liberá-la; QUANTUM expirado; Outro processo exija a atenção da CPU (interrupção/prioridade); Erro de execução.

Page 57: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

57Escalonador de processos - Prioridades

Prioridades:Podem ser fixas durante a vida do

processo ou modificáveis;Podem ser associadas externamente

ou de forma automatizada;Podem ser calculadas e associadas de

forma racional ou arbitrária.

Page 58: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

58Escalonador de processos - Preempção

Não-preemptivo Quando um processo não pode ser interrompido por um fator externo

quando está executando; Deixa a CPU ou por vontade própria ou porque terminou o trabalho; Windows 3.1, etc.

Preemptivo Pode interromper a execução de um processo para executar um

outro; Sistemas operacionais modernos utilizam algoritmos de

escalonamento preemptivos; Sistemas operacionais modernos – Windows 95+, GNU/Linux, MacOS,

etc.

Page 59: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

59Escalonador de processos

Algoritmos de escalonamento: FIFO; SJF (Short Job First); Round-Robin; SRT (Shortest Remaining Time); Prioridade; Múltiplas filas; Múltiplas filas com realimentação; Escalonamento para vários processadores; Escalonamento de tempo real.

Page 60: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

60FIFO – First In, First Out

Algoritmo não preemptivo (quando entra em execução, vai até o término);

O processo que chega primeiro (First In) é o primeiro a ser escolhido para usar a CPU (First Out);

Fila de processos; Criado originalmente para sistemas batch; Injusto para processos (Jobs) curtos; Ineficiente para sistemas de tempo

compartilhado.

Page 61: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

61FIFO – First In, First Out

11ms

P4

6ms

P3

9ms

P2

20ms

P1

Tempo total de execução: 46ms

20ms29ms35ms46ms

Page 62: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

62FIFO – First In, First Out

Page 63: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

63SJF – Shortest Job First

Não preemptivo; Processo com menor tempo para ser completado é

escolhido; Se informação sobre tempo de execução não

estiver disponível: Estimativa. Desempate pode ser feito por FIFO.

Algoritmo reduz o tempo de espera, com o mínimo para um conjunto de processos;

Problemas: grande variância no tempo de espera, necessidade de “prever o futuro”.

Page 64: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

64SJF – Shortest Job First

Page 65: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

65Round-Robin

Definido um QUANTUM ou TIME-SLICE (geralmente de 10 a 100ms): tempo limite para o processo usar a CPU;

Após o tempo de QUANTUM, processo sofre PREEMPÇÃO e é colocado na fila com o status de PRONTO;

A fila de PRONTO é tratada como uma fila circular (FIFO – First In, First Out);

Escalonador seleciona primeiro processo da fila de PRONTO para ser executado e define 1 QUANTUM de tempo para o processamento;

Se o tempo necessário para o processo finalizar for maior que 1 QUANTUM, então é feito o CHAVEAMENTO DE CONTEXTO (salva o estado, vai para o status de PRONTO, seleciona novo processo).

Page 66: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

66Round-Robin

Algoritmo preemptivo; Tempo médio de espera alto; Desempenho depende diretamente do

tamanho definido para o QUANTUM: Se QUANTUM for muito grande, assemelha-se ao

algoritmo de escalonamento FIFO (não preemptivo); Se QUANTUM for muito pequeno, o overhead com o

CHAVEAMENTO DE CONTEXTO torna-se alto demais, prejudicando o desempenho.

Page 67: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

67Round-Robin

Page 68: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

68SRT – Shortest Remaining Time

“SJF Preemptivo”;É escolhido o processo com menor

tempo para ser completado;Um processo em execução é

interrompido quando um novo processo com menor tempo para ser completado aparece na fila com o status de PRONTO;

Page 69: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

69SRT – Shortest Remaining Time

Page 70: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

70Escalonamento por Prioridade

Cada processo tem uma prioridade associada; CPU é alocada para processo de maior prioridade; SJF pode ser considerado um caso de escalonamento por prioridade,

onde considera-se o tempo como priorização; Geralmente a prioridade é representada por um número – não há

convenção em relação a quais números utilizar; Prioridade definida:

Internamente ou externamente. Problema: Starvation – Processos de baixa prioridade podem ficar

indefinidamente em estado de PRONTO; Solução: aumentar progressivamente a prioridade dos processos em estado

de PRONTO aguardando a vez de usar a CPU.

Page 71: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

71Escalonamento por PrioridadeStarvation:

Quando os responsáveis foram desligar o IBM 7094 no MIT em 1973, descobriram um processo com baixa prioridade que estava em estado de PRONTO desde 1967 e ainda não havia sido processado.

Page 72: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

72Múltiplas filas

Processos são previamente divididos em grupos Em função do tipo de processamento realizado

Sistema; Interativo (foreground); Batch (background).

Cada um dos grupos tem um mecanismo de escalonamento Interativo – Round Robin; Batch – FIFO;

Page 73: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

73Múltiplas filas

Page 74: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

74Múltiplas filas com realimentação

Os processos NÃO permanecem em uma mesma fila até terminar o processamento;

O Sistema Operacional faz um ajuste dinâmico para ajustar os processos em função do comportamento do sistema;

Os processos não são previamente associados às filas, mas direcionados pelo sistema entre as diversas filas com base no seu comportamento;

Parâmetros para escalonamento: Número de filas; Algoritmo de escalonamento para cada fila; Método para mudar o processo da fila; Método para determinar em que fila um processo entra.

Método mais complexo.

Page 75: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

75Múltiplas filas com realimentação

Page 76: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

76Escalonamento para vários processadores

Escalonamento mais complexo; Processadores idênticos

Compartilhamento de carga; Fila por processador; Fila única: compartilhamento de dados.

Abordagens do algoritmo Processamento simétrico: Cada processador faz seu próprio

escalonamento; Mestre-escravo (assimétrico): Um algoritmo é executado em um

processador reservado somente para esse fim, e escalona os outros processos em outros processadores.

Page 77: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

77Escalonamento de tempo real

Sistemas de tempo real Hard Real Time: Requisitos rígidos, tempo é essencial – Uma

tarefa crítica deve ser completada dentro de um tempo GARANTIDO

Avião, sistemas médicos, indústria, etc. Soft Real Time: Requisitos flexíveis – Processo crítico recebe

prioridade sobre os outros com menor importância Realidade aumentada, multimídia, etc.

Sistemas de Real Time rígidos requerem processadores dedicados.

Page 78: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

78Threads

Uma forma de um processo dividir a si mesmo; Threads executam “dentro” de um processo; Conhecidas como “Processos leves”; Possibilidade de associar mais de um fluxo de

execução a um processo Compartilhamento de recursos

Recursos do S.O., seção de dados, seção de código. Comunicação entre as threads facilitada; Chaveamento de contexto total desnecessário.

Page 79: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

79Threads

Ideia básicas Processos x ThreadsProcessos: programa em execução que contém um único fluxo de execução;

Threads: programa em execução com múltiplos fluxos de execução.

Page 80: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

80Threads

Page 81: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

81Threads

Se um processo tem várias threads, elas compartilham quase todos os recursos e memória;

Cada thread tem sua própria pilha de execução e registradores;

Em um processo com múltiplas threads, quando uma thread está bloqueada aguardando, uma segunda thread no mesmo processo pode executar Aplicações que requerem compartilhamento de dados se

beneficiam ao usar threads.

Page 82: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

82Threads

Benefícios:Velocidade de criação das threads;Capacidade de resposta;Compartilhamento de recursos;Economia de recursos;Desempenho.

Page 83: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

83Threads

Principais diferenças entre Processos e Threads Processos são geralmente independentes, enquanto threads são

subconjuntos de um processo; Processos carregam muito mais informações que threads, enquanto

que múltiplas threads compartilham memória e outros recursos; Processos tem espaço de endereçamento separado, enquanto

threads compartilham esses endereços; Processos interagem somente através de mecanismos de

comunicação entre processos fornecidos pelo sistema operacional; Troca de contexto entre threads utiliza o mesmo procedimento que

nos processos, porém é tipicamente mais rápida.

Page 84: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

84Threads

Exemplos:Editor de texto: 1 thread “lê” o teclado, 1

thread imprime na tela, 1 thread faz a verificação de ortografia, etc;

Google Chrome: Cada aba = 1 processo;Mozilla Firefox: Cada aba = 1 thread;Plug-ins: 1 processo.

Page 85: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

85Comunicação entre processos

Processos executam em “cápsulas” autônomas; O hardware oferece proteção de memória, ou seja, um processo

não acessa outro processo.

Page 86: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

86Comunicação entre processos

Processos frequentemente necessitam comunicar-se/interagir;

Essa comunicação é feira utilizando mecanismos de IPC: Inter-Process Communication;

Essa comunicação é realizada através do Sistema Operacional através de canais de comunicação.

Page 87: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

87Comunicação entre processos

Page 88: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

88Comunicação entre processos

Características desejáveis para comunicações inter-processos: Rapidez; Simplicidade na utilização e implementação; Modelo de sincronização bem definido; Versatilidade; Funcionamento igual em ambientes distribuídos; SINCRONIZAÇÃO.

Page 89: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

89Comunicação entre processos

Sincronização é uma das maiores preocupações para comunicação entre os processos Deve permitir que um processo que envia uma

mensagem indique quando o dado foi transmitido; Deve permitir que um processo que recebe uma

mensagem saiba quando um dado está disponível; Deve permitir que ambos saibam o momento exato

em que podem realizar uma nova comunicação.

Page 90: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

90Comunicação entre processos

Fundamentalmente duas abordagens: Espaço de endereçamento cooperativo

Memória compartilhada. Mecanismos do próprio Sistema Operacional para

transportar dados de um processo a outro Pipes; Sinais; Sockets; Etc.

Page 91: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

91Comunicação entre processos

Memória compartilhada: Um mesmo segmento (trecho) de memória encontra-se no

espaço de endereçamento dos processos que estão se comunicando;

O Sistema Operacional oferece chamadas permitindo a criação de uma área de memória compartilhada, mas NÃO SE ENVOLVE DIRETAMENTE COM A COMUNICAÇÃO E SINCRONIZAÇÃO das mensagens;

Quando um processo realiza uma modificação, todos os processos que compartilham aquele segmento podem ver o que foi mudado.

Page 92: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

92Comunicação entre processos

Memória compartilhada Vantagens:

É possível acessar uma parte específica de uma estrutura de dados, e não necessariamente a estrutura completa (Random Access);

A forma mais rápida para que dois processos troquem dados.

Desvantagens: Não há um mecanismo automático de sincronização.

Page 93: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

93Comunicação entre processos

Page 94: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

94Comunicação entre processos

Problemas de sincronização PRODUTOR e CONSUMIDOR

Page 95: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

95Comunicação entre processos

Page 96: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

96Comunicação entre processos

Quais os problemas?Condições de corrida;

Produtor mais rápido que o consumidor;

Consumidor mais rápido que o produtor.

Deadlock.

Page 97: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

97Comunicação entre processos

Quais as soluções?Monitores;Semáforos.

Page 98: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

98Problemas conceituais

Produtor/consumidor;Jantar dos filósofos;Barbeiro sonolento;Etc.

Page 99: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

99Gerência de memória

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de dispositivos

Gerência de arquivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 100: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

100Gerência de memória

Historicamente a memória principal sempre foi vista como um recurso escasso e caro;

Preocupação dos projetistas: desenvolver sistemas operacionais que não ocupassem muito espaço na memória e ao mesmo tempo otimizassem a utilização dos recursos;

Mesmo com o barateamento do hardware, o gerenciamento de memória constitui um dos principais módulos do sistema operacional.

Page 101: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

101Gerência de memória

Principais funções do módulo de gerenciamento de memória:Alocar memória para os processos;Desalocar memória dos processos;Gerenciar troca entre memória

principal e secundária.

Page 102: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

102Gerência de memória

Page 103: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

103Gerência de memória

Proporção de tamanho e tempo de acesso

Page 104: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

104Gerência de memória

Page 105: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

105Gerência de memória

Gerenciamento da memória é a ferramenta utilizada para permitir aos programas em execução utilizarem a memória do computador para armazenarInstruções;Dados que serão manipulados.

Page 106: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

106Gerência de memória

Principais objetivos a serem alcançados na gerência de memória Disponibilizar área de armazenamento para processos

executarem; Proteger execução dos processos contra possíveis falhas; Criar ambiente de execução com desempenho satisfatório; Compartilhamento de memória entre processos

(comunicação); Acesso transparente de memória por desenvolvedores.

Page 107: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

107Gerência de memória

Gerenciamento básico de memóriaPrimeiros sistemas operacionais;Monoprogramáveis;ALOCAÇÃO CONTÍGUA;Memória principal dividia entre o

sistema operacional e o programa em execução.

Page 108: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

108Alocação contígua

Memória

Sistema Operacional

Programa do usuário

• Processo tem acesso a toda a memória;• Sistemas

monoprogramáveis

Page 109: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

109Gerência de memória

Maioria dos sistemas operacionais são multiprogramáveis – mais de 1 processo;

Forma mais simples: Divisão da memória principal em partições estáticas; Tamanhos definidos; Tamanhos estabelecidos na inicialização do sistema

operacional; ALOCAÇÃO PARTICIONADA ESTÁTICA ou ALOCAÇÃO

FIXA.

Page 110: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

110Alocação fixa

Processo é colocado em uma fila na entrada de cada partição;

Escolha da partição: menor partição capaz de armazená-lo;

Caso o processo não ocupe o espaço total de sua partição, o restante é inutilizado.

Page 111: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

111Alocação fixa

Page 112: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

112Alocação fixa

Problemas: Filas com grande quantidade de processos

enquanto outras filas vazias ou com poucos processos;

Espaço desperdiçado nas partições. Exemplo: Partição 4 com 3 processos e partição

2 vazia (imagem anterior). Como resolver?

Implementar o método com uma fila única.

Page 113: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

113Alocação fixa com fila única

• Quando determinada partição está livre, o mais próximo do início da fila que melhor se ajusta à essa partição é carregado.

Page 114: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

114Alocação fixa com fila única

ProblemasGrande desperdício de memória;Processo pode ocupar somente um

pequeno pedaço de uma partição;Restante da partição fica inutilizado.

Como resolver?Alocação com partições variáveis.

Page 115: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

115Alocação com partes variáveis

Tamanho das partições ajustado dinamicamente quando os processos chegam na memória;

O processo utilizará um espaço de memória necessário, tornando sua partição;

Não há mais problemas de fragmentação interna na partição, pois serão definidas a partir da quantidade total alocada pelo processo.

Page 116: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

116Alocação com partições variáveis

Page 117: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

117Alocação com partições variáveis

Processos definem o tamanho de sua partição ao chegarem na memória;

Quando não há mais espaço disponível, o processo mais “antigo” na memória é retirado para dar espaço para o próximo.

O processo de retirar um processo de memória, atualizar em disco e colocar outro processo no lugar é chamado de TROCA.

Page 118: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

118Alocação com partições variáveis

A TROCA consiste em trazer um processo inteiro, executá-lo temporariamente e então devolve-lo ao disco;

Isso acontece quando a memória principal disponível é insuficiente para manter todos os processos carregados Todos os processos na memória principal seria a solução

ótima. Outra estratégia que permite que apenas parte do

programa fique em memória principal: Memória virtual.

Page 119: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

119Alocação com partições variáveis

Mais flexível que o método com partição estática; Flexibilidade complica a tarefa de alocar e desalocar a

memória; Complica o monitoramento da memória utilizada;

Os espaços alocados não são mais fixos, por isso não há como saber antecipadamente a quantidade de memória utilizada.

Há 2 formas de monitorar a memória utilizada Mapa de bits; Lista encadeada.

Page 120: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

120Mapa de bits

Memória é dividia em unidades de alocação;

Para cada unidade é associado um bit no mapa;

Valor 0: livre, valor 1: ocupado.

Page 121: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

121Mapa de bits

Page 122: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

122Mapa de bits

Ponto crucial: definição do tamanho da unidade de alocação.

Unidade muito pequena: mapa de bits muito grande;

Unidade muito grande: mapa de bits menor, porém uma quantia de memória poderá ser desperdiçada na última unidade se o tamanho do processo não for um múltiplo exato da unidade de alocação.

Page 123: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

123Lista encadeada

Lista encadeada dos segmentos de memória alocados e livres;

Um segmento pode ser um processo ou uma lacuna entre dois processos;

Cada nó da lista é formado por uma entrada especificando se é um P (processo) ou L (lacuna), o endereço onde se inicia a quantidade de unidades de alocação e um ponteiro para a próxima entrada.

Page 124: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

124Lista encadeada

Page 125: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

125Memória virtual

Estender a memória principal através da memória secundária;

Dá a impressão ao usuário de uma maior quantidade de memória principal disponível;

Também chamado de memória de swap.

Page 126: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

126Memória virtual

Page 127: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

127Memória virtual

Page 128: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

128Dúvidas última aula

Barramento de endereçamento 32 bits 2^32 = 4GB (2^30 = GB; 2^2 = 4)

Barramento de endereçamento 64 bits 2^64 = 16EB (2^60 = EB; 2^4 = 16)

O sistema operacional pode limitar a quantidade de memória alocada Exemplo: Windows 7 (alocação máxima RAM)

Starter: 2GB Home Basic: 8GB Home Premium: 16GB Professional: 192GB Enterprise: 192GB Ultimate: 192GB

Page 129: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

129Dúvidas última aula

Memória virtual do Windows

Page 130: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

130Dúvidas última aula

Page 131: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

131Paginação

Esquema de gerenciamento de memória em que o espaço de endereçamento físico de um processo não é contíguo;

A paginação evita a fragmentação gerada pela alocação dinâmica;

Programas são capazes de gerar endereços virtuais; Conjunto de endereços virtuais formam o espaço de

endereçamento virtual.

Page 132: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

132Paginação

Os endereços virtuais não vão diretamente para o barramento da memória;

Passam antes por uma unidade chamada MMU (Memory Management Unit – Unidade de gerenciamento de memória);

A MMU mapeia um endereço virtual para um endereço lógico;

O endereçamento virtual é dividido em unidades chamadas de páginas.

Page 133: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

133Paginação

Page 134: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

134Paginação

Page 135: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

135Gerência de arquivos

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de arquivos

Gerência de dispositivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 136: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

136Gerência de arquivos

Desde o início da computação, percebeu-se a necessidade de armazenar informações para uso posterior. Exemplo: programas, dados, etc;

Atualmente, uma das principais funcionalidades de um computador é referente ao armazenamento e recuperação de informações, como documentos, fotografias, vídeos, etc;

O próprio S.O. armazena informações para uso posterior. Exemplo: bibliotecas, configurações, etc;

Essas informações devem ser armazenadas em dispositivo NÃO-VOLÁTIL.

Page 137: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

137Gerência de arquivos - Arquivo

ARQUIVO: conjunto de dados armazenados em um dispositivo físico não-volátil, com um nome ou outra referência que permita sua localização posterior;

Do ponto de vista do usuário e das aplicações, o arquivo é a unidade básica de armazenamento de informação em um dispositivo não-volátil;

Arquivos são extremamente versáteis em conteúdo e capacidade. Podem conter: Texto ASCII; Imagem; Vídeo; Etc.

Page 138: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

138Gerência de arquivos

Como um dispositivo de armazenamento pode conter milhões de arquivos, estes são organizados em estruturas hierárquicas chamadas DIRETÓRIOS;

A organização física e lógica dos arquivos e diretórios dentro de um dispositivo de armazenamento é denominada de SISTEMA DE ARQUIVOS;

Um Sistema de Arquivos pode ser visto como uma imensa estrutura de dados armazenada de forma persistente em um dispositivo físico;

Existem vários sistemas de arquivos, como: (?)

Page 139: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

139Gerência de arquivos

Como um dispositivo de armazenamento pode conter milhões de arquivos, estes são organizados em estruturas hierárquicas chamadas DIRETÓRIOS;

A organização física e lógica dos arquivos e diretórios dentro de um dispositivo de armazenamento é denominada de SISTEMA DE ARQUIVOS;

Um Sistema de Arquivos pode ser visto como uma imensa estrutura de dados armazenada de forma persistente em um dispositivo físico;

Existem vários sistemas de arquivos, como: NTFS, Ext2/Ext3/Ext4, HPFS, FFS, FAT, etc.

Page 140: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

140Gerência de arquivos

Page 141: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

141Gerência de arquivos - Atributos

Cada arquivo é caracterizado por um conjunto de atributos, que podem variar com o Sistema de Arquivos utilizado. Os mais comuns são: Nome: string de caracteres que identifica o arquivo para o usuário:

“vídeo2.wmv”, “naoabra.jpg”, “curriculum.pdf”, etc; Tipo: Indicação do formato dos dados contidos no arquivo. Muitos

sistemas operacionais utilizam parte do nome do arquivo para identificar seu tipo, na forma de uma extensão: “.doc”, “.pdf”, .”exe”, etc;

Tamanho: Indicação do tamanho do arquivo em bytes ou registros; Datas: Armazenamento das datas mais importantes – Criação,

modificação, etc;

Page 142: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

142Gerência de arquivos - Atributos

Continuação atributos Proprietário: Em sistemas multi-usuários, cada arquivo possui um

proprietário, que deve ser identificado; Permissões de acesso: Indicam os usuários e as permissões dos mesmos

sobre o arquivo (leitura, escrita, etc); Localização: Indicação do dispositivo físico onde o arquivo se encontra e

da posição do arquivo no mesmo; Outros.

Nem sempre os atributos oferecidos pelo sistema de arquivos são suficientes para exprimir todas as informações a respeito de um arquivo. Nesse caso, o usuário pode “resolver” usando o nome do arquivo para exprimir a informação desejada, como: “texto-vers1.doc”, etc.

Page 143: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

143Gerência de arquivos - Operações

O uso dos arquivos no Sistema Operacional é realizado através de um conjunto de OPERAÇÕES, geralmente implementadas sob a forma de chamadas de sistema e funções. As operações básicas são: Criação; Abertura; Leitura; Escrita; Mudança de atributos; Fechamento; Remoção.

Outras operações relacionadas: truncar, copiar, mover, renomear.

Page 144: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

144Gerência de arquivos - Formatos

Um arquivo, em sua forma mais simples, contém basicamente uma sequência de bytes;

Essa sequência de bytes pode estar estruturada de diversas formas, para representar diferentes tipos de informação;

O formato ou estrutura interna de um arquivo pode ser definido e reconhecido por: Núcleo interno do Sistema Operacional: binários, bibliotecas, etc; Pelas aplicações: doc, pdf, jpg, etc.

Page 145: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

145Gerência de arquivos - Formatos

Os arquivos convencionais são estruturados pelas aplicações para armazenar os diversos tipos de informações: imagens, sons, documentos, etc;

Uma aplicação pode definir um formato próprio ou seguir formatos padronizados: Formatos públicos: JPG, GIF, PDF, PNG, TIFF, etc; Formatos proprietários: PSD, XCF, etc.

Page 146: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

146Extensões típicas de arquivos

Page 147: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

147Extensões

Um arquivo de dados pode ser visto como uma sequência de bytes;

A estratégia de definir a extensão do arquivo no nome foi adotada nos anos 80 pelo Sistema Operacional DOS Arquivos nomeados com a abordagem “8.3”;

Outra abordagem usada em sistemas UNIX é o uso de bytes no início do arquivo para definição de seu tipo: números mágicos.

Page 148: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

148Extensões

Recentemente, a necessidade de transferir arquivos através de páginas WEB e emails, levou à definição de um padrão conhecido como TIPOS MIME (Multipurpose Internet Mail Extensions)

Page 149: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

149Gerência de arquivos - diretórios

Sistema de diretório em 1 nível

Page 150: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

150Gerência de arquivos - diretórios

Sistema de diretório em 2 níveis

Page 151: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

151Gerência de arquivos - diretórios

Sistema de diretórios hierárquicos

Page 152: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

152Caminho de um arquivo

Page 153: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

153Arquivos de texto

Arquivos de texto é um tipo muito frequente no Sistema de Arquivos;

Armazena informações textuais simples: Código-fonte; Páginas HTML; XML; Etc.

É formado por uma sequência de caracteres ASCII de tamanho variável separado por caracteres de controle.

Page 154: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

154Tabela ASCII

Page 155: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

155Arquivos de texto

Nos sistemas UNIX as linhas são separadas por um caractere New Line (ASCII 10 ou “\n”);

Nos sistemas DOS/Windows, as linhas são separadas por dois caracteres: Carriage Return (ASCII 13 ou “\r”) New Line (ASCII 10 ou “\n”)

Essa diferença pode causar problemas em arquivos trocados entre os sistemas, caso não seja feita a devida conversão.

Page 156: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

156Arquivos de texto – Exemplo

Em UNIX:

Em DOS/Windows:

Page 157: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

157Arquivos executáveis

Um arquivo executável é dividido internamente em várias seções, para conter código, tabela de símbolos, variáveis, funções, dependências, etc.

A organização interna de um arquivo executável depende do Sistema Operacional para o qual foi definido.

Os formatos mais populares atualmente: ELF (Executable and Linking Format): usado para programas

executáveis e bibliotecas na maior parte das plataformas UNIX modernas;

PE (Portable Executable): usado para executáveis e bibliotecas na plataforma Windows.

Page 158: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

158Arquivos executáveis

Page 159: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

159Arquivos especiais

O conceito de arquivo é ao mesmo tempo simples e poderoso; Isso motivou a sua utilização quase de forma universal; Além do armazenamento de código e dados, arquivos também

podem ser usados como: Abstração de dispositivos de baixo nível; Abstração de interfaces de núcleo.

Page 160: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

160Abstração de dispositivos de

baixo nível Os sistemas UNIX costumam mapear as interfaces de acesso de

vários dispositivos físicos em arquivos dentro do diretório /dev (devices) /dev/ttyS0: porta de comunicação serial COM1; /dev/áudio: placa de som; /dev/sda1: primeira partição do primeiro disco SCSI (ou SATA).

Page 161: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

161Abstração de interfaces do núcleo

Em sistemas UNIX, os diretórios /proc e /sys permitem consultar e/ou modificar informações internas do núcleo do Sistema Operacional, processos em execução, drivers, etc; /proc/cpuinfo: informações sobre os processadores disponíveis no

sistema; /proc/3754/maps: disposição das áreas de memória alocadas para o

processo cujo identificador (PID) é 3754; /sys/block/das/queue/scheduler: definição da política de

escalonamento de disco a ser usada no disco /dev/das.

Page 162: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

162Gerência de Dispositivos

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de arquivos

Gerência de dispositivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 163: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

163Gerência de Dispositivos E/S

A gerência de dispositivos de E/S (Entrada e Saída) é uma das principais e mais complexas funções do Sistema Operacional;

Sua implementação é estruturada através de camadas de um modelo semelhante ao apresentado para o Sistema Operacional, utilizando o conceito de máquina de níveis;

As camadas inferiores abstraem características das camadas superiores, provendo uma interface simples e confiável às aplicações e usuários.

Page 164: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

164

Page 165: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

165Gerência de Dispositivos E/S

A diversidade de dispositivos faz com que o Sistema Operacional implemente uma camada: Subsistema de E/S Tem como função isolar a complexidade dos dispositivos da camada de sistemas

de arquivo e da aplicação. Com o subsistema de E/S o Sistema Operacional pode ser flexível,

permitindo a comunicação dos processos com qualquer tipo de periférico; A camada de Device Driver oferece uma interface uniforme entre o

Subsistema E/S e os disposivos, além de tratar aspectos específicos de cada periférico: Velocidade de operação; Tipos de operações; Unidades de transferência; Etc.

Page 166: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

166Dispositivos de E/S

Existem grandes diferenças entre dispositivos de E/S, entre elas: Data rate: Taxa com que os dados são enviados/recebidos pelo ou

para o dispositivo

Page 167: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

167

Page 168: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

168Dispositivos de E/S

Existem grandes diferenças entre dispositivos de E/S, entre elas: Aplicação: A finalidade de cada dispositivo influencia no software e

nas políticas do Sistema Operacional; Complexidade de controle: Por exemplo, uma impressora requer uma

interface de controle relativamente simples, enquanto um disco é mais complexo;

Unidade de transferência: Dados podem ser transferidos em um conjunto de bytes ou caracteres ou em grandes blocos de dados;

Etc.

Page 169: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

169Gerência de Dispositivos E/S

O Sistema possui um conjunto de rotinas que possibilita a comunicação com qualquer dispositivo que possa ser conectado ao computador;

Esse conjunto de rotinas é denominado Rotinas de E/S. Permite ao usuário realizar operações de E/S sem se preocupar com detalhes do dispositivo;

As operações de E/S devem ser realizadas através de System Calls, que por sua vez chamam rotinas de E/S do Kernel do Sistema Operacional.

Page 170: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

170Gerência de Dispositivos E/S

Com o uso das System Calls, é possível escrever um programa que manipule arquivos, estejam eles armazenados em um disquete, hds ou qualquer outro dispositivo, sem a necessidade de alterar o código para cada dispositivo;

O relacionamento entre o comando de uma linguagem de programação e uma System Call é criado na geração do código executável do programa, ou seja, pelo compilador da linguagem;

Um dos objetivos das System Calls é eliminar a necessidade de duplicação de rotinas idênticas nos diversos aplicativos e esconder do programador características específicas de cada dispositivo.

Page 171: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

171

Page 172: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

172Operações de E/S

As operações de E/S podem ser classificadas conforme seu sincronismo:Operações SíncronasOperações Assíncronas

Page 173: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

173Subsistema de E/S

O Subsistema de E/S é responsável por realizar funções comuns a todos os tipos de dispositivos;

Aspectos específicos de cada periférico é de responsabilidade dos Drivers.

Page 174: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

174Subsistema de E/S

Cada dispositivo trabalha com unidades de informação de tamanhos diferentes Caracteres/bytes Blocos

O Subsistema de E/S é responsável por criar uma unidade lógica de transferência independente do dispositivo e repassá-la para os níveis superiores;

Além disso, o Subsistema de E/S é responsável por outras atividades: Bufferização de dados; Mecanismo de proteção de acesso aos dispositivos; Criar uma interface padronizada com os Drivers.

Page 175: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

175Device Drivers

O Device Driver tem como função implementar a comunicação do Subsistema de E/S com os dispositivos, através de controladores;

Enquanto o Subsistema de E/S trabalha com funções ligadas a todos os dispositivos, os Drivers tratam apenas dos seus ASPECTOS PARTICULARES;

Tem como função geral receber comandos sobre acessos aos dispositivos e traduzi-los em comandos específicos daquele dispositivo em questão. Cada Driver manipula somente um tipo de dispositivo ou grupos de dispositivos semelhantes.

Page 176: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

176

Page 177: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

177Device Drivers

O Driver está integrado diretamente às funções do Controlador, sendo o componente do sistema que reconhece as características particulares do funcionamento de cada dispositivo de E/S como: Número de registradores; Funcionamento; Comandos específicos; Etc.

Sua principal função é receber os comandos abstratos do Subsistema de E/S e traduzi-los para comandos que o Controlador possa entender e executar.

Page 178: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

178Device Drivers

Page 179: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

179Device Drivers

Os Drivers fazem parte do núcleo do Sistema Operacional, sendo escritos geralmente em Assembly;

São códigos reentrantes que executam em modo Kernel, portanto qualquer erro de programação pode comprometer o funcionamento do sistema;

Um Driver deve ser cuidadosamente DESENVOLVIDO e TESTADO.

Page 180: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

180Device Drivers

Page 181: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

181Device Drivers

Page 182: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

182Device Drivers

Devido ao alto grau de dependência entre os Drivers e o restante do Kernel do sistema, os fabricantes desenvolvem diferentes Drivers para um mesmo dispositivos, de acordo com a arquitetura (32 ou 64 bits), Sistema Operacional e diferentes versões;

SEMPRE que um novo dispositivo é instalado, o driver do dispositivo deve ser adicionado ao Kernel do sistema;

Nos sistemas antigos, a adição de um novo Driver significava a recompilação do Kernel;

Atualmente, os Sistemas Operacionais permitem a instalação de novos Drivers facilmente, inclusive a instalação física de dispositivos com o computador ligado – HOT SWAP/HOT PLUG/PLUG AND PLAY.

Page 183: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

183Device Drivers

Page 184: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

184Controladores

São componentes de Hardware responsáveis por manipular diretamente os dispositivos de E/S;

O Driver comunica-se com os dispositivos através do Controlador;

Em geral, pode ser uma placa independente conectada a um slot do computador ou implementada diretamente na placa-mãe.

Page 185: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

185Controladores

Page 186: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

186Controladores

O Controlador possui memória e registradores próprios, utilizados na execução de instruções enviadas pelo Driver;

Em operações de leitura, o Controlador deve armazenar em seu buffer interno uma sequência de bits provenientes do dispositivo até formar um bloco;

Após verificar a ocorrência de erros, o bloco pode ser transferido para a memória principal;

A transferência do buffer para a memória principal pode ser realizada pelo processador ou por um controlador de DMA (Direct Memory Access) Usar a técnica de DMA evita que o processador fique ocupado com a

transferência de dados para a memória principal; Controlador DMA é um dispositivo de Hardware e pode fazer parte do

computador ou ser um dispositivo independente.

Page 187: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

187Direct Memory Access

Page 188: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

188Direct Memory Access

Page 189: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

189Dispositivos de E/S

São utilizados para permitir a comunicação entre o sistema computacional e o mundo externo;

Podem ser classificados como: Entrada de dados

CDROM, DVD, etc. Saída de dados

Impressora, monitor, etc. Entrada e Saída de dados

Placas de som, monitores touchscreen, etc.

Page 190: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

190Dispositivos de E/S

A transferência de dados pode ocorrer através de blocos de informação ou caracteres;

Em função da forma com que os dados são armazenados, os dispositivos de E/S podem ser classificados em: Dispositivos estruturados; Dispositivos não-estruturados.

Page 191: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

191Dispositivos de E/S

Dispositivos estruturados Armazenam informações em blocos de tamanho fixo; Cada bloco tem um endereço que pode ser lido ou gravado de forma independente. Podem ser subclassificados em

Dispositivos de acesso direto Um bloco pode ser recuperado diretamente através do seu endereço; Exemplo: HD.

Dispositivos de acesso sequencial Para se acessar um bloco o dispositivo deve percorrer sequencialmente os demais blocos até encontra-

los; Exemplo: Fita magnética.

Dispositivos não-estruturados Enviam ou recebem uma sequência de caracteres sem estar estruturada no formato de

um bloco; Exemplo: Impressoras.

Page 192: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

192Gerência de dispositivos Windows

Windows oferece diversas APIs relacionadas à gerência de E/S;

A maior parte delas é ligada ao subsistema gráfico – Graphics Device Interface (GDI); O GDI é um conjunto de rotinas que permite uma

aplicação manipular dispositivos gráficos como monitores ou impressoras, independente do dispositivo físico;

Oferece funções de gerenciamento de janelas, menus, caixas de diálogo, cores, desenhos, textos, bitmaps, ícones e clipboard.

Page 193: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

193Gerência de dispositivos Windows

Os Drivers no Windows são desenvolvidos a partir de um padrão chamado Windows Driver Model (WDM);

O WDM define diversas características e funções que um Driver deve oferecer para ser homologado pela Microsoft: Plug-and-play, múltiplos processadores, gerência de energia, etc;

Page 194: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

194Gerência de dispositivos no Unix

Foi desenvolvida de forma integrada ao sistema de arquivos;

O acesso aos dispositivos de E/S é feito através de arquivos especiais, localizados em /dev;

Os arquivos especiais podem ser acessados da mesma forma que qualquer outro arquivo, utilizando simplesmente as system calls de leitura e gravação;

As versões mais recentes de Unix e o Linux permitem que os Drivers possam ser acoplados ao núcleo do sistema em funcionamento, sem a necessidade de gerar um novo Kernel e reinicializar o sistema.

Page 195: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

195Gestão da proteção - Segurança

Sistema operacional

Gerência do processador

Gerência de memória

Gerência de arquivos

Gerência de dispositivos

Interface gráfica

Gerência de proteção

Outros suportes

Suporte de rede

Page 196: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

196Gestão da proteção - Segurança

Propriedades fundamentais da segurança de um sistema Confidencialidade Integridade Disponibilidade

Além delas, também são importantes Autenticidade Irretabilidade

Page 197: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

197Gestão da proteção - Segurança

Além de técnicas de Engenharia de Software para a construção de sistemas computacionais seguros, temos uma série de princípios específicos, relacionados com a construção do sistema e a utilização do mesmo pelos usuários Privilégio mínimo Mediação completa Default seguro Economia de mecanismo Separação de privilégios Compartilhamento mínimo Proteção adequada Facilidade de uso Eficiência

Page 198: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

198Ameaças

Qualquer ação que coloque em risco as propriedades de segurança do Sistema OperacionalAmeaças à confidencialidadeAmeaças à integridadeAmeaças à disponibilidade

Page 199: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

199Vulnerabilidades

Defeito ou problema presente na especificação, implementação, configuração ou operação de um software/sistema, que possa ser utilizado para violar a segurança do mesmo. Exemplos: Erro de programação em um serviço de compartilhamento de

arquivos Conta de usuário sem senha, ou com senha padrão Ausência de cotas de utilização de disco

Page 200: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

200Ataque

Ato de utilizar uma vulnerabilidade para violar uma propriedade de segurança do sistemaInterrupçãoInterceptaçãoModificação Fabricação

Page 201: Sistemas Operacionais

Sistemas Operacionais - Airton Bordin Junior

201Referências

Sistemas operacionais: Projeto e implementação. Andrew S. Tanenbaum; Albert S. Woodhull;

Sistemas operacionais: Conceitos e aplicações. Abraham Sílberschatz; Peter Galvin; Greg Gagne;

Desing and Implementation of Operating System. Vivek Sharma, Manish Varshney, Shantanu Sharma;

Arquitetura de sistemas operacionais. Francis B. Machado, Luiz Paulo Maia; Sistemas Operacionais. Erico Meneses Leão. Universidade Aberta do Brasil; Arquitetura de Sistemas Operacionais. Francis B. Machado. Editora LTC; Sistemas Operacionais: conceitos básicos. Carlos Alberto Maziero, 2011; Sistemas Operacionais, Técnico em Informática, Módulo I, 2013.