Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

01-SistemasOperacionais-Conceitos

No description
by

Armando Kusano

on 21 July 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 01-SistemasOperacionais-Conceitos

Sistemas Operacionais
Camada de software que opera entre o hardware e os demais softwares voltados para os usuários.
Incorpora aspectos de baixo nível (gerenciamento de hardware e memoria física) e de alto nível (softwares utilitários e interface gráfica).

Sistemas Operacionais
Abstração de recursos de hardware:
Prover interfaces de acesso aos dispositivos, mais simples de usar que as interfaces de baixo nível, para simplificar a construção de programas aplicativos.
Aplicativos independentes do hardware, desacoplando o hardware dos aplicativos.
Acesso homogêneo para dispositivos de tecnologia diferentes.
Sistemas Operacionais
Responsável pelo gerenciamento do hardware, controle dos softwares existentes no computador e pela interface com o usuário, é ele que estabelece a plataforma sobre a qual os programas são executados.
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Gerenciamento de recursos de hardware:
Definir políticas de uso de hardware para os aplicativos.
Gerenciar conflitos/disputas.
Ex: Fila de impressora, gereciamento de tempo de processador para tarefas, uso de memória.
Sistemas Operacionais
Tipos
Batch (lotes):
trabalhavam por lote, onde os aplicativos eram executados em filas, sem interação com usuário.

De rede:
oferece suporte a aplicações em rede, permitindo acessar recursos localizados em outros computadores.

Distribuído:
os recursos de vários computadores fica disponível de modo global, de forma transparente, onde o usuário não sabe qual servidor está processando e/ou armazenando suas informações.

Multi-usuário:
Permite a identificação do dono de cada recurso dentro do sistema (processos, arquivos, área de memória) e impor regras de controle de acesso. Essencial para sistemas de rede e distribuídos.

Desktop:
voltado para usuários domésticos e corporativos para atividades como editor de textos, navegação, etc. Ex: Microsoft Windows, Mac OS, Linux.
Podem ser classificados por tamanho, velocidade, suporte a recursos, etc.
Os mais comuns são:
Servidor:
permite a gestão eficiente de grandes recursos de hardware e funcionalidades mais específicas, como compartilhamento de arquivos, impressoras, controle de usuários, etc. Ex: Microsoft Windows Server, Mac OS X Server, Linux, etc.

Embarcado:

Construído para operar em dispositivos com recursos limitados, como aparelhos de DVD, microondas, TV's, etc.

Tempo real:

sua característica essencial é ter um comportamento temporal previsível, onde seu tempo de resposta deve ser conhecido no pior e no melhor caso de operação, onde deve ser construído de maneira que minimize tempo de espera imprevisíveis aos recursos de hardware. Podem ser divididos em
soft real-time
, onde o atraso não acarreta problemas graves ou
hard real-time
, onde o atraso/falha pode ter consequências graves, como consequências ambientais, financeiras ou humanas.


Breve histórico dos Sistemas Operacionais - Infográfico
Referências bibliográficas
MAZIERO, Carlos. Sistemas Operacionais: Conceitos e Mecanismos. Curitiba. UFPR. 2014. Disponível em <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.php/so:so-livro.pdf>. Acessado em: 12/08/2014.

JORDÃO, Fábio. A história dos sistemas operacionais [infográfico]. Tecmundo. Disponível em: <http://www.tecmundo.com.br/sistema-operacional/2031-a-historia-dos-sistemas-operacionais-ilustracao-.htm>. Acessado em: 12/08/2014.

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª ed. São Paulo: Pearson Prentice Hall, 2010.

Sistemas Operacionais
Funcionalidades Básicas
Gerência do Processador
Também conhecida como gerência de processos ou de atividades.
Visa distribuir a capacidade de processamento de forma justa entre as aplicações, evitando que uma aplicação monopolize esse recurso e respeitando as prioridades dos usuários.
O SO provê a ilusão de que existe um processador independente para cada tarefa, o que facilita o trabalho dos programadores de aplicações e permite a construção de sistemas mais interativos.
Fornecer abstrações para sincronizar atividades inter-dependentes e prover formas de comunicação entre elas.

Gerência de Memória
Fornece a cada aplicação uma área de memória própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema. O isolamento melhora a estabilidade e segurança do sistema como um todo, pois impede aplicações com erros (ou aplicações maliciosas) de interferir no funcionamento das demais aplicações.
Além disso, caso a memória RAM existente seja insuficiente para as aplicações, o SO pode aumentá-la de forma transparente às aplicações, usando o espaço disponível em um meio de armazenamento secundário (como um HD). Uma importante abstração construída pela gerência de memória é a noção de memória virtual, que desvincula os endereços de memória vistos por cada aplicação dos endereços acessados pelo processador na memória RAM.
Gerência de Dispostivos
A função da gerência de dispositivos (também conhecida como gerência de entrada/saída) é implementar a interação com cada dispositivo por meio de drivers e criar modelos abstratos que permitam agrupar vários dispositivos distintos sob a mesma interface de acesso.
Cada dispositivo apresenta peculariedades, como procedimentos de interação entre uma placa de rede é diferente de um dispositivo SCSI.
Problemas com abordagem em comum para a acesso a dispositivos diferentes, mas com o mesmo fim, como por exemplo, a criação de abstração única para dispositivos de armazenamento diferentes (pendrives, discos SATA/SAS/iSCSI, etc)
Gerência de Arquivos

Visa criar arquivos e diretórios, definindo sua interface de acesso e as regras para seu uso. É importante observar que os conceitos abstratos de arquivo e diretório são tão importantes e difundidos que muitos sistemas operacionais os usam para permitir o acesso a recursos que nada tem a ver com armazenamento.
Exemplos disso são as conexões de rede (nos sistemas UNIX e Windows, cada socket TCP é visto como um descritor de arquivo no qual pode-se ler ou escrever dados) e as informações do núcleo do sistema (como o diretório /proc do UNIX). No sistema operacional experimental Plan 9 [Pike et al., 1993], todos os recursos do sistema operacional são vistos como arquivos.
Gerência de Proteção
Visa definir claramente:
Recursos que cada usuário pode acessar
Formas de acesso permitidos (leitura/escrita, etc)
Garantir seu cumprimento.

Para proteger os recursos do sistema contra acessos
indevidos, é necessário:
a) definir usuários e grupos de usuários;
b) identificar os usuários que se conectam ao sistema, através de procedimentos de autenticação;
c) definir e aplicar regras de controle de acesso aos recursos, relacionando todos os usuários, recursos e formas de acesso e aplicando essas regras através de
procedimentos de autorização; e finalmente
d) registrar o uso dos recursos pelos usuários, para fins de auditoria e contabilização.
Sistemas modernos possuem outras gerências complementares, como:
Interface Gráfica
Suporte a rede
Gerencia de energia, etc

Geralmente as "gerências" são inter-dependentes.



Estrutura de um SO, onde o núcleo central implementa o acesso de baixo nível ao hardware, enquanto os módulos externos representam as várias funcionalidades do sistema.
Política vs Mecanismo
Regra importante para construção de um SO:

Política
Aspectos de decisão mais abstratos, que podem ser resolvidos por algoritmos de alto nível. Ex: decisão da quantidade de memória para cada aplicação ativa

Mecanismo
Procedimentos de baixo nível usado para implementar as políticas. Ex: atribuir/retirar memória de uma aplicação ativa.
Deve ser suficientemente genéricos para suportar mudança de políticas sem necessidade de alterações.

Essa separação entre política/mecanismo agrega flexibilidade ao SO, permitindo alterar sua personalidade sem alterar o código que interage diretamente com o hardware.

Sistemas Operacionais
Estrutura
Composto de diversos componentes com objetivos e funcionalidades complementares. Os mais relevantes de um SO típico são:


Núcleo
: é o coração do sistema operacional, responsável pela gerência dos recursos do hardware usados pelas aplicações. Ele também implementa as principais abstrações utilizadas pelos programas aplicativos.
Drivers
: módulos de código específicos para acessar os dispositivos físicos. Existe um driver para cada tipo de dispositivo, como discos rígidos IDE, SCSI, portas USB, placas de vídeo, etc. Muitas vezes o driver é construído pelo próprio fabricante do hardware e fornecido em forma compilada (em linguagem de máquina) para ser acoplado ao restante do sistema operacional.

Código de inicialização
: a inicialização do hardware requer uma série de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configurá-los adequadamente para seu uso posterior. Outra tarefa importante é carregar o núcleo do sistema operacional em memória e iniciar sua execução.
Programas utilitários
: são programas que facilitam o uso do sistema computacional, fornecendo funcionalidades complementares ao núcleo, como formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerência de janelas, etc.
Sistemas Operacionais
Um SO típico é constituído de:

um ou mais processadores, responsáveis pela execução das instruções das aplicações.
uma área de memória que armazena as aplicações em execução (seus códigos e dados) e
dispositivos periféricos que permitem o armazenamento de dados e a comunicação com o mundo exterior, como discos rígidos, terminais e teclados.
Conceitos de Hardware
Maioria dos computadores mono-processados atuais segue a arquitetura básica desenvolvida por Von Neumann na década de 40.

Chamada de "arquitetura de Von Neumman", sua característica principal é o conceito de "programa armazenado", onde o programa executado reside na memória, junto com os dados.

Os principais elementos constituintes do computador estão interligados por um ou mais barramentos (para a transferência de dados, endereços e sinais de controle).
O processador:
É o núcleo do sistema de computação
É responsável por continuamente ler instruções e dados da memória ou de periféricos, processá-los e enviar os resultados de volta à memória ou a outros periféricos

Um processador convencional é normalmente constituído de:
uma unidade lógica e aritmética (ULA), que realiza os cálculos e operações lógicas,
um conjunto de registradores para armazenar dados de trabalho
e alguns registradores para funções especiais (contador de programa, ponteiro de pilha, flags de status, etc.).

Todas as transferências de dados entre processador, memória e periféricos são feitas através dos barramentos:
o
barramento de endereços
indica a posição de memória (ou o dispositivo) a acessar,
o
barramento de controle
indica a operação a efetuar (leitura ou escrita)
e o
barramento de dados
transporta a informação indicada entre o processador e a memória ou um controlador de dispositivo.

O acesso à memória é geralmente mediado por um controlador específico (que pode estar fisicamente dentro do próprio processador): a
Unidade de Gerência de Memória
(MMU -
Memory Management Unit
).

Ela é responsável por:
analisar cada endereço solicitado pelo processador,
validá-los,
efetuar as conversões de endereçamento necessárias e
executar a operação solicitada pelo processador (leitura ou escrita de uma posição de memória).


Os periféricos do computador (discos, teclado, monitor, etc.) são acessados através de circuitos específicos genericamente denominados controladores: a placa de vídeo permite o acesso ao monitor, a placa ethernet dá acesso à rede, o controlador USB permite acesso ao mouse, teclado e outros dispositivos USB externos.

Para o processador, cada dispositivo é representado por seu respectivo controlador. Os controladores podem ser acessados através de portas de entrada/saída endereçáveis: a cada controlador é atribuída uma faixa de endereços de portas de entrada/saída.
Controladora integrada
Sem controladora integrada
Interrupções
Quando um controlador de periférico tem uma informação importante a fornecer ao processador, ele tem duas alternativas de comunicação:
Aguardar até que o processador o consulte, o que poderá ser demorado caso o processador esteja ocupado com outras tarefas (o que geralmente ocorre);
Notificar o processador através do barramento de controle, enviando a ele uma requisição de interrupção (IRQ –
Interrupt ReQuest
).

Ao receber a requisição de interrupção, os circuitos do processador suspendem seu fluxo de execução corrente e desviam para um endereço pré-definido, onde se encontra uma rotina de tratamento de interrupção (interrupt handler). Essa rotina é responsável por tratar a interrupção, ou seja, executar as ações necessárias para atender o dispositivo que a gerou. Ao final da rotina de tratamento da interrupção, o processador retoma o código que estava executando quando recebeu a requisição.
1. O processador está executando um programa qualquer (em outras palavras, um fluxo de execução);
2. Um pacote vindo da rede é recebido pela placa Ethernet;
3. A placa envia uma solicitação de interrupção (IRQ) ao processador;
4. Oprocessamento é desviado do programa em execução para a rotina de tratamento
da interrupção;
5. A rotina de tratamento é executada para receber as informações da placa de rede
(via barramentos de dados e de endereços) e atualizar as estruturas de dados do
sistema operacional;
6. A rotina de tratamento da interrupção é finalizada e o processador retorna à
execução do programa que havia sido interrompido.
Proteção de Núcleo
O SO deve gerenciar os recursos de hardware, fornecendo-as conforme for necessário às aplicações. Para garantir essa gerência, o SO deve garantir que as aplicações não acessem o hardware diretamente, mas através de requisições através do SO, onde serão avaliados e intermediados.

Núcleo e drivers: acesso direto ao hardware
Utilitários e aplicativos: acesso restrito

De um modo simples, os processadores modernos contam com 2 ou mais níveis de privilégios de execução: núcleo e usuário

Nível núcleo:
também denominado nível
supervisor, sistema, monitor
ou ainda
kernel space
. Para um código executando nesse nível, todo o processador está acessível: todos os recursos internos do processador (registradores e portas de entrada/saída) e áreas de memória podem ser acessados. Além disso, todas as instruções do processador podem ser executadas. Ao ser ligado, o processador entra em operação neste nível.

Nível usuário (ou userspace):
neste nível, somente um sub-conjunto das instruções do processador, registradores e portas de entrada/saída estão disponíveis.
Instruções “perigosas” como
HALT
(parar o processador) e
RESET
(reiniciar o processador) são proibidas
Restringe o uso da memória, permitindo o acesso somente a áreas previamente definidas. Caso o código em execução tente executar uma instrução proibida ou acessar uma área de memória inacessível, o hardware irá gerar uma exceção, desviando a execução para uma rotina de tratamento dentro do núcleo, que provavelmente irá abortar o programa em execução (e também gerar a famosa frase “este programa executou uma instrução ilegal e será finalizado”, no caso do Windows).
Chamadas de Sistema
System Calls ou SysCalls
Geralmente as chamadas de sistema são oferecidas para as aplicações em modo usuário através de uma biblioteca do sistema (system library), que prepara os parâmetros, invoca a interrupção de software e retorna à aplicação os resultados obtidos.
Processadores modernos oferecem instruções específicas para entrar/sair do modo privilegiado, como SYSCALL e SYSRET (nos processadores Intel 64 bits) e também um conjunto de registradores específicos para essa operação, o que permite a transferência rápida do controle para o núcleo, com custo menor que o tratamento de uma interrupção.
Ao ser executada, essa instrução comuta o processador para o nível privilegiado e procede de forma similar ao tratamento de uma interrupção. Por essa razão, esse mecanismo é denominado
interrupção de software
, ou
trap
.
Usado para casos em aplicações precisam ter acesso a recursos de hardware, como por exemplo: um aplicativo que precisa enviar dados através de uma interface de rede ou gravar dados em um arquivo armazendo em um disco rígido.
Plano de Ensino
Disciplina: Sistemas Operacionais
Carga Horária: 80 horas.
Ementa:
O histórico, o conceito e os tipos de sistemas operacionais. A estrutura de sistemas operacionais. Gerenciamento de memória. Memória Biblioteca Virtual. Conceito de processo. Gerência de processador: escalonamento de processos. Alocação de recursos e deadlocks. Gerenciamento de arquivos. Gerenciamento de dispositivos de entrada/saída.
Bibliografia Básica

DEITEL, H. M. Sistemas Operacionais. 3ª ed. São Paulo: Pearson, 2005.

MACHADO, Francis Berenger. MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 4ª ed. Rio de Janeiro: LTC, 2007.

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª ed. São Paulo: Pearson Prentice Hall, 2010.

Bibliografia Complementar

FERREIRA, Rubem E. Linux – Guia do Administrador do Sistema. 2ª ed. São Paulo: Novatec: 2008.

SILBERSCHATZ, Abraham, GAGNE, Greg. GALVIN, Peter Baer. Fundamentos de Sistemas Operacionais. 8ª ed. Rio de Janeiro : LTC , 2012.

SILBERSCHATZ, Abraham, GAGNE, Greg. GALVIN, Peter Baer. Operating System Concepts with Java. 6a. EUA John Wiley e Sons. Inc, 2004.

THOMPSON, Marco Aurélio. Microsoft Windows Server 2008 R2: Fundamentos. São Paulo: Érica, 2010.

NEMETH, Evi. Et al. Manual Completo do Linux. São Paulo : Pearson Prentice Hall, 2007. (Biblioteca Virtual)
Método de Avaliação
1º Bimestre = ((Avaliação B1 x 0,7) + (Atividades x 0,3))

2º Bimestre = ((Avaliação B2 x 0,7) + (Atividades x 0,3))

*Atividades = Atividades práticas/teóricas, em sala de aula, participação ou a critério do professor.

MÉDIA FINAL = ((1º BIMESTRE X 0,4) + (2º BIMESTRE X 0,4) + (INTERDISCIPLINAR X 0,2)) ≥ 7.0 PONTOS
Full transcript