Conceitos de Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais - Aula 6
Sistemas Operacionais
Sistemas Distribuídos
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Introdução
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Noções de Sistemas Operacionais
Sistemas operacionais
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Sistemas Operacionais
ARQUITETURAS DE COMPUTADORES II
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
História do Windows XP Significa Windows “eXperience”.
Sistemas Operacionais
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Sistemas Operacionais
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Threads.
Sistemas Operacionais I
Sistemas Operacionais
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Processos
GESTÃO DE SISTEMAS OPERACIONAIS II
Sistemas Operacionais
Introdução aos Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas operacionais
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Processos.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Módulos de um sistema operativo
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Subsistema de Entrada e Saída do Kernel
FUNDAMENTOS DE COMPUTAÇÃO
SISTEMAS OPERACIONAIS
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Gerenciamento de Arquivos
Gerenciamento de Memória Sistemas Recentes
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin.
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais IV – Gerenciamento de E/S
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Operacionais
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Introdução aos Sistemas Operacionais
Transcrição da apresentação:

Conceitos de Sistemas Operacionais Prof. Alexandre Las Casas

Sistema operacional Sistema operacional Camada de software entre o hardware e as aplicações dos usuários usuários Aplicação Aplicação Aplicação Sistema operacional Hardware

Funções do sistema operacional A partir da máquina real (hardware), criar uma máquina abstrata. Gerenciar os recursos de hardware disponíveis às aplicações.

O SO como máquina abstrata Ocultar a complexidade do hardware. Oferecer interfaces padronizadas de acesso ao hardware. Permitir uma visão homogênea de dispositivos distintos.

O SO como máquina abstrata Clicar em um arquivo Assign(file, “D:\README.TXT”); open(file); read(file, ch); … close(file); aplicação Sistema operacional Move head to sector 123 in FAT read 256 bytes to mem 36234H move head to sector 4684753 read 1024 bytes to mem 578567 ...

O SO como gerente de recursos Recursos da máquina processadores espaço em memória arquivos conexões de rede dispositivos externos Controle de acesso equilibrar uso evitar conflitos

O SO como gerente de recursos source app source app source app sdgf jhgsdfj dsjhf khj khj HKjhkjghj hg jhgj jgh jhg jhg jhg jhg kjhg jhgj hg jhg kjhkjhgjhg jhg jhg jhg jh kjhjkhgjhgjh kgjhgjhgjhgj aplicação aplicação aplicação Sistema operacional

Componentes de um SO arquivos usuários memória processos kernel entradas e saídas segurança interface gráfica contabi-lidade erros rede

O kernel Concentra o acesso ao hardware Provê funções básicas drivers de dispositivo gerência de acesso Provê funções básicas operações de acesso ao hardware noção básica de processos comunicação entre processos (IPC) É executado em modo privilegiado

Programas e processos Programa: Processo: noção estática conjunto de instruções não possui um estado interno Processo: noção dinâmica programa em execução possui um estado interno

Estados dos processos novo terminado pronto rodando suspenso programa carga terminado alocação da CPU admissão fim de execução pronto rodando fim do quantum espera de condição condição satisfeita suspenso

Compartilhamento de tempo Processos prontos compartilham CPU Ilusão de uma CPU por processo Cada processo recebe uma pequena fatia de tempo (< 20 mS) P1 P2 P3 P1 P4 P3 P2 P1 t

Processo = contexto + atividade estruturas de dados (variáveis em memória) descritores de arquivos e sockets outros recursos exclusivos Atividade: fluxo de execução registradores, pilha de execução Alternar processos = trocar contextos

A troca de contexto A troca de contexto é uma operação cara (+/- 10% do tempo de CPU) Para trocar de atividade, precisamos sempre trocar de contexto ? Aplicações com concorrência interna Solução = threads: múltiplas atividades em um mesmo contexto

Threads Permitem separar contexto de tarefa Processo: unidade de contexto Thread: unidade de atividade memória thread arquivos abertos thread thread thread thread thread conexões

Vantagens das threads Menor custo para alternar atividades Trocar de thread é muito mais rápido que trocar de processo Permite trocas mais freqüentes melhor tempo de resposta das aplicações Maior facilidade para construir aplicações com múltiplas atividades Mais adequado para implementar diversas atividades que compartilham recursos comuns

Desvantagens das threads Nem todos os sistemas as suportam Falta de padronização Exigem maior controle de concorrência no acesso aos recursos comuns Risco de dados inconsistentes Aplicações menos robustas se uma thread travar, a aplicação pode travar

Implementação de threads No kernel: o núcleo do SO oferece os recursos para criar e gerenciar múltiplas threads por processo Em sistemas modernos (NT, Solaris, Linux) Por bibliotecas: o núcleo do SO somente conhece processos trocas de contexto explícitas (programadas) Presente em SOs antigos (Posix, Netware)

Gerência de memória Proteger contexto dos processos Cada processo tem sua área de memória evitar interferências entre processos evitar acessos de memória indevidos Flexibilizar o uso da RAM aplicações usam muita memória gerenciar memórias virtuais (discos) compartilhar memória entre processos

Gerência de memória Computadores têm memória limitada Desktops atuais: ~ 4 Gb de RAM Grandes sistemas e aplicações Windows VISTA: ~ 4 Gb de RAM Outlook : ~ 30 Mbytes RAM Em suma: Memória é um recurso escasso Seu uso deve ser otimizado

Memória real X virtual Memória real: Memória virtual: quantidade de RAM no computador acesso direto só permitido ao kernel dividida em “quadros” com ~ 4 Kbytes Memória virtual: imagem da memória vista pelos processos maior que a RAM (CPUs 32 bits: 4 Gbytes) estruturada em “páginas” com ~ 4 Kbytes

Memória paginada P2 P1 P4 P3 RAM Páginas da memória virtual Quadros da memória real

Memória paginada Relação entre páginas e quadros tabelas mantidas pelo kernel mapeamento pode ser trabalhoso é necessário o auxílio do hardware Uso da RAM torna-se muito flexível Toda a RAM é aproveitável (não há “buracos”) Processos vêem os mesmos endereços Possibilidade de swapping em disco Quadros de RAM podem ser compartilhados

Swapping em disco P1 RAM Tabela de páginas da memória virtual Área de swapping em disco Quadros da memória real

Passos do swapping P1 RAM 1 6 5 2 4 3 Tabela de páginas da memória virtual 3 Área de swapping em disco Quadros da memória real

Passos do swapping 1: O processo tenta acessar uma área de memória não mapeada em RAM, gerando um “page fault”. 2: O kernel escolhe um frame de RAM a ser liberado, e envia sua página para a área de swap. 3: A tabela de páginas do processo “vítima” é atualizada (página enviada para o swap). 4: A página solicitada é carregada no quadro livre. 5: A tabela de página do processo é atualizada. 6: O processo acessa o endereço desejado.

Compartilhamento de memória Processos podem compartilhar páginas vários processos com o mesmo código processos que precisam compartilhar dados Manipulação das tabelas de páginas mesma posição da RAM (mesmo quadro) endereço distinto (página) em cada processo

Compartilhamento de RAM Código comum P1 P2 Dados compartilhados

Sistema de arquivos Dispositivos com tecnologias variadas DVD, CD-ROM, DAT, HD, Floppy, ZIP SCSI, IDE, ATAPI, ... sistemas de arquivos em rede Interfaces de acesso uniforme visão homogênea dos dispositivos transparência para as aplicações

Arquit. da gerência de arquivos aplicação aplicação API de acesso a arquivos Sistema de arquivos lógicos Organização de arquivos Sistema de arquivos básico Controle de entrada/saída Dispositivos físicos Application Programming Interface (ou Interface de Programação de Aplicativos)

Dispositivos e drivers Dispositivo físico: armazenamento dos dados estruturados em blocos de bytes (~ 512 bytes) CD-ROM, hard disk, floppy, fitas Driver de dispositivo: acesso em baixo nível aos dispositivos gerencia interrupções e DMA - "Direct Memory Access" mapeia acessos a trilhas/setores/cabeças em operações sobre portas de E/S do dispositivo

Visão dos dispositivos Visão física: cabeças, trilhas, setores Visão lógica: vetor de blocos idênticos Função do sistema de arquivos básico 1 2 3 4 5 6 7 Visão física Visão lógica

Sistema de arquivos básico Aciona comandos de leitura/escrita nos drivers de dispositivos. Mostra o dispositivo como um vetor de blocos de mesmo tamanho. Blocos lógicos entre 512 bytes e 8 Kbytes Pode efetuar buffering e caching: Buffering: otimizar acessos reais em escrita. Caching: otimizar acessos reais em leitura.

Buffering & caching processo processo Buffer – escrita Cache - leitura kernel disco disco buffering caching

Escalonamento de disco Acesso ao disco por vários processos processos acessam áreas distintas o disco é um dispositivo LENTO desempenho de I/O pode ser péssimo Acesso ao disco deve ser escalonado escolher ordem de atendimento dos pedidos de acesso aos discos buscar o melhor desempenho

Exemplos de escalonamento ruim bom

Organização de arquivos Problema: Como armazenar diversos arquivos dentro de um único vetor de blocos lógicos ? Cada arquivo também deve ser visto como uma seqüência de blocos lógicos. Restrições: flexibilidade de alocação rapidez de acesso (seqüencial e aleatório) eficiência no uso do espaço real em disco

Organização de arquivos readme.txt 1 2 prova.doc 1 2 3 4 5 6 7 aula.pdf 1 2 3 4 Arquivos ? 1 2 3 4 5 6 7 Vetor de blocos lógicos Dispositivo físico

Interfaces Tipos de interface Texto Gráfica Linha de comando Dispositivos compactos (celulares) Gráfica Orientada a eventos Orientada a objetos Interface com processos físicos ou sistemas controlados

Interfaces gráficas

Classificação dos SO Executar tarefas simultâneas mono-tarefa, multi-tarefas Suporte a várias CPUs mono ou multi-processados (SMP) Usuários simultâneos mono-usuário, multi-usuários Tempo de resposta batch, interativos, de tempo real

Tarefas de um servidor Esperar e atender requisições dos clientes. Suportar requisições simultâneas. Oferecer níveis de prioridade de serviço. Executar tarefas de gerenciamento local. Ser robusto e confiável. Ser modular e escalável. >>> O sistema operacional deve contribuir.