• Nenhum resultado encontrado

Fundamentos de Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2021

Share "Fundamentos de Sistemas Operacionais"

Copied!
29
0
0

Texto

(1)

Fundamentos de Sistemas

Operacionais

Aula 1: Introdução e Conceitos

(2)

Informações Básicas

Horário: terças e quintas, 16h. Salas: 442/235

Contato:

Por e-mail: [email protected]

Pela 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.

(3)

Calendário

29/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 Deadlock 19/04 Implementação de Processos e Threads 21/04 Feriado (Tiradentes) 26/04 Escalonamento 28/04 Escalonadores Não-Preemptivos 03/05 Escalonadores Preemptivos

05/05 Escalonamento: Estudo de Casos 10/05 Revisão para P1

12/05 P1

17/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: Software

26/05 Entrada e Saída: Estudo de Caso 31/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

(4)

---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.

(5)
(6)

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.

(7)

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.

(8)

Exemplos de Sistemas Operacionais

DOS.

Windows (a partir do Windows 95). Unix. BSD (e variantes). Linux. GNU Hurd. Symbian. MacOS. IOS. Android. TinyOS. RTOS. ...

(9)

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.

(10)

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.

(11)

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).

(12)

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.

(13)

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.

(14)
(15)

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.

(16)

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.

(17)

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.

(18)

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.

(19)

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.

(20)

Tipos de Sistemas

(Operacionais)

(21)

Multitarefa vs. Monotarefa

Sistemas multitarefa podem ter mais de um processo em memória (pronto para execução) por vez.

(22)

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.

(23)

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.

(24)

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.

(25)

Paralelo vs. Monoprocessado

Há 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.

(26)

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.

(27)

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.

(28)
(29)

Para Lembrar

Definição de sistema operacional.

Kernel monolítico vs. Micro-kernel.

Sistemas batch. Monitor residente. Multiprogramação. Timesharing

Referências

Documentos relacionados

Atualmente vemos um cenário de grande competitividade entre as empresas nos mais diversos segmentos e para que possam obter êxito nessa acirrada disputa em busca de

Planilhas de Verificação Gráfico de Pareto Diagrama Causa e Efeito Estratificação Histograma Diagrama de Dispersão Cartas de Controle Identificação do Problema Análise

A utilização de FBNM em populações com características particulares (pediatria, doente idoso, obesos, insuficientes renais ou hepáticos, doença neuromuscular e outros) está

No caso do esporte, consideramos que o corpo (entendido aqui como o.. próprio homem) é a matéria que torna possível a criação de gestos técnicos específicos de

 A disciplina visa familiarizar o aluno com os principais subsistemas de gerência de recursos que compõem um sistema operacional..  Compreender os conceitos de

● Quando um novo processo é criado, SO procura por um bloco de memória física livre grande o suficiente para acomodar o novo processo.. ○ O início do bloco é alocado

Ellen Semple, discípu l a de Ratzel, discorre sobre as influências das condições geográficas (configuração da costa, padrão dos rios, cadeias de mon - tanhas,

No ´ ultimo cap´ıtulo, o Cap´ıtulo 4, apresentamos duas aplica¸c˜ oes dos produtos tensoriais entre espa¸cos de Banach: a primeira aplica¸c˜ ao relaciona o produto tensorial ao