Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas...
Transcript of Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas...
![Page 1: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/1.jpg)
Fundamentos de Sistemas Operacionais
Aula 1: Introdução e Conceitos
Diego Passos
![Page 2: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/2.jpg)
Informações Básicas
Horário: terças e quintas, 16h.Salas: 442/235Contato:
Por e-mail: [email protected] página: http://www.midiacom.uff.br/~diego/sisop/Ou no Laboratório Midiacom (sala 408, bloco E).
Avaliação:Duas provas.Média final m = (P1 + 2 * P2) / 3.
Notas, avisos, etc, enviados por e-mail:Lista.
Listas de exercícios:Ao final de cada aula.Não fazem parte da avaliação.
![Page 3: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/3.jpg)
Calendário29/03 Introdução e Conceitos
31/03 Processos
05/04 Segurança Inter-Processos
07/04 Programação Concorrente
12/04 Exclusão Mútua
14/04 Sistemas Distribuídos e Deadlock19/04 Implementação de Processos e
Threads
21/04 Feriado (Tiradentes)26/04 Escalonamento28/04 Escalonadores Não-Preemptivos03/05 Escalonadores Preemptivos05/05 Escalonamento: Estudo de Casos10/05 Revisão para P112/05 P117/05 Vista de Prova (P1) / Compiladores
e Montadores
19/05 Entrada e Saída: Dispositivos e Tipos de Acesso
24/05 Entrada e Saída: Software26/05 Entrada e Saída: Estudo de Caso31/05 SBRC (Não Haverá Aula)
02/06 SBRC (Não Haverá Aula)
07/06 Gerenciamento de Memória e Tipos de Alocação Primitivos
09/06 Segmentação e Paginação
14/06 Memória Virtual
16/06 Sistemas de Arquivo
21/06 Linux e Windows 2000
23/06 Feriado (Corpus Christi)
28/06 Revisão para P2
30/06 P2
05/07 Vista de Prova (P2)
07/07 VS
12/07 Vista de Prova (VS)
14/07 ---
![Page 4: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/4.jpg)
Bibliografia
"Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi, Simão Toscani. 2a Edição."Operating Systems Concepts". Silberschatz, Gavin, Gagne. Wiley. 6a Edição."Modern Operating Systems". Andrew Tenenbaum. 2a Edição.
![Page 5: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/5.jpg)
Conceitos
![Page 6: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/6.jpg)
O que é um Sistema Operacional?
Duas definições:Software que provê acesso ao hardware às aplicações do usuário.Software que gerencia e divide os recursos da máquina entre as aplicações.
Um SO é um software, um programa.Ele administra o uso da máquina.Ele facilita o uso dos recursos de hardware, através de chamadas de sistema.
![Page 7: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/7.jpg)
O que não é um Sistema Operacional?
Certas aplicações são às vezes confundidas com o SO:Gerenciadores de janela.Utilitários de configuração.Shells (interface de linha de comando).
Estes programas, embora distribuídos juntamente com o SO, não são parte integrande do sistema operacional.
![Page 8: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/8.jpg)
Exemplos de Sistemas Operacionais
DOS.Windows (a partir do Windows 95).Unix.BSD (e variantes).Linux.GNU Hurd.Symbian.MacOS.IOS.Android.TinyOS.RTOS....
![Page 9: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/9.jpg)
Serviços de um SO
Execução de Aplicações.Acesso a dispositivos de E/S:
Discos, interfaces de rede, placas de video, etc.Controle de acesso à arquivos.
Proteção de arquivos contra leitura e escrita por outros usuários.
![Page 10: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/10.jpg)
Kernel vs. SO
Todo SO possui um núcleo ou kernel.O núcleo é responsável pelas funções mais básicas do SO:
Escalonamento.Gerenciamento de memória.Tratamento de interrupções.
Outras funcionalidades podem ser implementadas "fora" do kernel.
Manipulação de periféricos.Manipulação de acesso à disco.
Kernel monolítico vs. Micro-Kernel.
![Page 11: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/11.jpg)
Processo
Uma aplicação é uma tarefa do usuário a ser efetuada.Um programa descreve como tal tarefa deve ser executada.Um processo é uma instância de execução de um programa.Um processo é composto por:
Código do programa.Estado atual da execução (valores de variáveis, registradores, etc).
![Page 12: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/12.jpg)
Espaço de Endereçamento
Nos SOs modernos, cada processo tem seu próprio Espaço de Endereçamento.Um espaço de endereçamento é um conjunto de posições de memória disponíveis para o processo.
Variáveis do processo são guardadas nele.Nos SOs atuais, o endereço utilizado nos programas é apenas lógico:
São mapeados para posições variadas na memória física.Ou seja, o endereço 367 de um processo é diferente do endereço 367 de outro processo.
![Page 13: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/13.jpg)
Escalonador
Componente do SO que aloca o recurso "processador".Em geral, há mais processos que processadores disponíveis.O escalonador escolhe qual processo pode utilizar o processador a cada instante.
Diversos critérios:Tempo de resposta.Vazão.Prioridades.
![Page 14: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/14.jpg)
Histórico
![Page 15: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/15.jpg)
Primeiros Computadores
O Sistema Operacional não existia.O usuário programava a máquina para sua aplicação e iniciava a execução.A máquina ficava bloqueada até o fim da execução.Ao final, usuário recolhia os resultados e um novo usuário recomeçava o ciclo.
![Page 16: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/16.jpg)
Sistema em Lotes (Batch)
Evolução do modelo anterior.Conceito de Job:
Uma aplicação do usuário.Um funcionário recebia os Jobs.
Em cartão perfurado, por exemplo.O funcionário inseria os Jobs, sequencialmente, a medida que os anteriores acabavam.O funcionário atuava como um SO básico, distribuindo os recursos entre os vários Jobs.
![Page 17: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/17.jpg)
Monitores Residentes
O funcionário é substituído por um pequeno programa.O Monitor.
Usuário colocava seu job em uma fila dentro da máquina.O monitor pegava lia o primeiro Job, o carregava em memória e passava o controle total da máquina para ele.Ao final da execução de um Job, o Monitor retornava à execução e selecionava o próximo da fila.Programas defeituosos paravam toda a fila:
Era necessária intervenção manual.
![Page 18: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/18.jpg)
Sistemas Batch Multiprogramado
Problema: operações de E/S são lentas.e.g., leitura de um arquivo.
Enquanto um processo aguarda o fim de uma operação de E/S, o processador fica ocioso.Solução: colocar vários programas em memória.
Quando o processo atualmente em execução fica bloqueado, aguardando E/S, outro processo é colocado para executar.
Fonte: "Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi, Simão Toscani. 2a Edição.
![Page 19: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/19.jpg)
Sistema de timesharing
Sistemas batch não tem bons tempos de resposta.Uma aplicação só é executada após todas as predecessoras.
Seria interessante poder executar todas "ao mesmo tempo".
Mas há mais processos que processadores.Solução: compartilhar o tempo do processador.
Cada processo ganha um quantum (ou slice) de tempo.Durante seu quantum, pode usar o processador.Ao final do quantum, um novo processo ganha a vez.Os quantuns são renovados periodicamente.
Ilusão para o usuário de que a máquina está sempre disponível.Permitiu uso interativo.
![Page 20: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/20.jpg)
Tipos de Sistemas (Operacionais)
![Page 21: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/21.jpg)
Multitarefa vs. Monotarefa
Sistemas multitarefa podem ter mais de um processo em memória (pronto para execução) por vez.Sistemas monotarefa executam apenas uma tarefa por vez.
![Page 22: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/22.jpg)
Monousuário vs. Multiusuário
Sistemas monousuário permitem que um único usuário acesse a máquina por vez.
Exemplos:MS-DOS, Windows ME.
Sistemas multiusuários permitem o acesso de vários usuários simultâneos.
Exemplos: Linux, Windows 2000.
Não confundir:Todo sistema multiusuário é multitarefa.Nem todo sistema monousuário é monotarefa.
![Page 23: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/23.jpg)
Distribuído vs. Centralizado
PCs são sistemas centralizados. Há apenas um "conjunto de hardware".
Um ou mais processadores que acessam a mesma memória.
A maior parte dos SOs são para este tipo de sistema.Existem também os sistemas distribuídos:
Clusters, grades, etc.Conjuntos de máquinas completas conectadas por rede.
Há SOs específicos para eles:Plan9, NetWare, Inferno.
Mas podem ser usados com SOs centralizados.Aplicações se comunicam.
![Page 24: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/24.jpg)
Sistemas Distribuídos (mais)
Têm ganhado importância com: Aplicações Web.Armazenamento remoto.Cloud Computing.
Exemplos:Webmail.Google Docs.Drop Box.Amazon EC2.
![Page 25: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/25.jpg)
Paralelo vs. MonoprocessadoHá computadores com vários processadores.
Ou núcleos.Hoje, comum.
Sistemas com mais de um processador são chamados Paralelos.
Várias tarefas podem ser executadas (realmente) ao mesmo tempo.Maior complexidade de gerenciamento.
Não confundir:Sistema paralelo:
Fortemente acoplado (tightly coupled).Processadores compartilham memória e relógio.
Sistema distribuído:Fracamente acoplado (loosely coupled).Memória e relógio independentes.
![Page 26: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/26.jpg)
Sistemas Paralelos (mais)
Dois tipos:Symmetric Multiprocessing (SMP).
Todos os processadores executam qualquer tipo de tarefa (SO, aplicação, etc).
Asymmetric Multiprocessing.Há processadores para tarefas da aplicação e processadores para tarefas do SO.
![Page 27: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/27.jpg)
Sistemas de Tempo Real
Há aplicações com requisitos fortes de tempo.e.g., sistema de freios em um carro.
Se prazos máximos de execução não forem cumpridos, as consequências são ruins.Dois tipos:
Hard Real Time: prazos não podem ser perdidos sob nenhuma hipótese.Soft Real Time: há um percentual de tolerância na perda de prazos.
Este tipo de aplicação requer SOs com características específicas. Exemplo:
Escalonador ciente dos prazos.Controle de admissão de novas tarefas.
![Page 28: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/28.jpg)
Revisão
![Page 29: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011-04-16 · Listas de exercícios: Ao final de cada aula. Não fazem parte da avaliação. Calendário](https://reader034.fdocumentos.tips/reader034/viewer/2022050119/5f4faf3a42407e25d8544f4f/html5/thumbnails/29.jpg)
Para Lembrar
Definição de sistema operacional.Kernel monolítico vs. Micro-kernel.Sistemas batch.Monitor residente.Multiprogramação.TimesharingSistema Paralelo vs. Sistema Distribuído.