Sistemas Operacionais - 05 - Sistemas Operacionais Microsoft
Sistemas Operacionais
-
Upload
airton-bordin-junior -
Category
Documents
-
view
214 -
download
0
Transcript of Sistemas Operacionais
Sistemas OperacionaisAIRTON BORDIN JUNIOR
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.
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.
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.
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...
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...
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.
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.
Sistemas Operacionais - Airton Bordin Junior
9Introdução
Programas de sistemas e usuários
Sistema OperacionalHardware
Sistemas Operacionais - Airton Bordin Junior
10Introdução
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
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.
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.
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.
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”;
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.
Sistemas Operacionais - Airton Bordin Junior
17Histórico (1ª Geração)
MARK I
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
Sistemas Operacionais - Airton Bordin Junior
19Histórico (2ª Geração)
IBM 1401
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
Sistemas Operacionais - Airton Bordin Junior
21Histórico (3ª Geração)
IBM System/360
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
Sistemas Operacionais - Airton Bordin Junior
23Histórico (4ª Geração)
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
27Sistemas Monotarefa
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.
Sistemas Operacionais - Airton Bordin Junior
29Sistemas Multitarefa
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.
Sistemas Operacionais - Airton Bordin Junior
31Sistemas Multitarefa
Sistema Multitarefa
Monousuário Multiusuário
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.
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.
Sistemas Operacionais - Airton Bordin Junior
34Sistemas Multitarefa
Sistemas Multitarefas
Batch (lote) Tempo compartilhado Tempo real
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.
Sistemas Operacionais - Airton Bordin Junior
36Sistemas Multitarefa - Batch
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;
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.
Sistemas Operacionais - Airton Bordin Junior
39Sistemas Multitarefa – Tempo Compartilhado (Time Sharing) - Escalonamento
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?
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.
Sistemas Operacionais - Airton Bordin Junior
42Sistemas Multiprocessadores
Escalabilidade (?);Disponibilidade (?);Balanceamento de carga (?).
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.
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.
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
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.
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
51Processos
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Sistemas Operacionais - Airton Bordin Junior
62FIFO – First In, First Out
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”.
Sistemas Operacionais - Airton Bordin Junior
64SJF – Shortest Job First
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).
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.
Sistemas Operacionais - Airton Bordin Junior
67Round-Robin
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;
Sistemas Operacionais - Airton Bordin Junior
69SRT – Shortest Remaining Time
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.
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.
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;
Sistemas Operacionais - Airton Bordin Junior
73Múltiplas filas
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.
Sistemas Operacionais - Airton Bordin Junior
75Múltiplas filas com realimentação
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
80Threads
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.
Sistemas Operacionais - Airton Bordin Junior
82Threads
Benefícios:Velocidade de criação das threads;Capacidade de resposta;Compartilhamento de recursos;Economia de recursos;Desempenho.
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
87Comunicação entre processos
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.
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
93Comunicação entre processos
Sistemas Operacionais - Airton Bordin Junior
94Comunicação entre processos
Problemas de sincronização PRODUTOR e CONSUMIDOR
Sistemas Operacionais - Airton Bordin Junior
95Comunicação entre processos
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.
Sistemas Operacionais - Airton Bordin Junior
97Comunicação entre processos
Quais as soluções?Monitores;Semáforos.
Sistemas Operacionais - Airton Bordin Junior
98Problemas conceituais
Produtor/consumidor;Jantar dos filósofos;Barbeiro sonolento;Etc.
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
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.
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.
Sistemas Operacionais - Airton Bordin Junior
102Gerência de memória
Sistemas Operacionais - Airton Bordin Junior
103Gerência de memória
Proporção de tamanho e tempo de acesso
Sistemas Operacionais - Airton Bordin Junior
104Gerência de memória
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.
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.
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.
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
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.
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.
Sistemas Operacionais - Airton Bordin Junior
111Alocação fixa
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
116Alocação com partições variáveis
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
121Mapa de bits
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.
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.
Sistemas Operacionais - Airton Bordin Junior
124Lista encadeada
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.
Sistemas Operacionais - Airton Bordin Junior
126Memória virtual
Sistemas Operacionais - Airton Bordin Junior
127Memória virtual
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
Sistemas Operacionais - Airton Bordin Junior
129Dúvidas última aula
Memória virtual do Windows
Sistemas Operacionais - Airton Bordin Junior
130Dúvidas última aula
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.
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.
Sistemas Operacionais - Airton Bordin Junior
133Paginação
Sistemas Operacionais - Airton Bordin Junior
134Paginação
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
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.
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.
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: (?)
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.
Sistemas Operacionais - Airton Bordin Junior
140Gerência de arquivos
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;
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.
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
146Extensões típicas de arquivos
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.
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)
Sistemas Operacionais - Airton Bordin Junior
149Gerência de arquivos - diretórios
Sistema de diretório em 1 nível
Sistemas Operacionais - Airton Bordin Junior
150Gerência de arquivos - diretórios
Sistema de diretório em 2 níveis
Sistemas Operacionais - Airton Bordin Junior
151Gerência de arquivos - diretórios
Sistema de diretórios hierárquicos
Sistemas Operacionais - Airton Bordin Junior
152Caminho de um arquivo
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.
Sistemas Operacionais - Airton Bordin Junior
154Tabela ASCII
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.
Sistemas Operacionais - Airton Bordin Junior
156Arquivos de texto – Exemplo
Em UNIX:
Em DOS/Windows:
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.
Sistemas Operacionais - Airton Bordin Junior
158Arquivos executáveis
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.
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).
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.
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
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.
Sistemas Operacionais - Airton Bordin Junior
164
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.
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
Sistemas Operacionais - Airton Bordin Junior
167
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
171
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
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.
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.
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.
Sistemas Operacionais - Airton Bordin Junior
176
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.
Sistemas Operacionais - Airton Bordin Junior
178Device Drivers
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.
Sistemas Operacionais - Airton Bordin Junior
180Device Drivers
Sistemas Operacionais - Airton Bordin Junior
181Device Drivers
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.
Sistemas Operacionais - Airton Bordin Junior
183Device Drivers
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.
Sistemas Operacionais - Airton Bordin Junior
185Controladores
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.
Sistemas Operacionais - Airton Bordin Junior
187Direct Memory Access
Sistemas Operacionais - Airton Bordin Junior
188Direct Memory Access
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.
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.
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.
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.
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;
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.
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
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
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
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
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
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
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.