Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC 140 - SISTEMAS OPERACIONAIS I Turmas.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Capitulo 6: Entrada e Saída
Sistema Operacional Introdução
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Prof. Diogo Souza.
Noções de Sistemas Operacionais
Processos no Unix e Linux
Introdução à Informática
Sistemas Operacionais
Problemas com Entrada e Saída
Sistemas Operacionais
Interação Cliente Servidor
SSC SISTEMAS OPERACIONAIS I Aula 1 – Apresentação da disciplina
SSC SISTEMAS OPERACIONAIS I
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Maria Aparecida Castro Livi
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Sistemas Operacionais
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Operacionais
09/03/10 20:13 Claudio de Oliveira – 1/21.
Threads.
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Sistemas Operacionais
HARDWARE do CLP Os controladores lógicos programáveis são equipamentos com uma aplicação muito vasta dentro dos diversos processos de automação. Desta.
Sistemas Operacionais I
Sistemas Operacionais
Discos SCSI Fonte de alimentação Controlador SCSI Disco SAS
Redundant Array of Independent Drives Raid
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Distribuídos
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Conteúdo Processos e threads Partes do processo
Memória virtual Professor Esp. Diego André Sant’Ana
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
Processos.
Sistemas Operacionais
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Subsistema de Entrada e Saída do Kernel
ESTRUTURA DO SISTEMA OPERACIONAL
SISTEMAS OPERACIONAIS MACH EPOS
SISTEMAS OPERACIONAIS
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Elementos de Informática
Tipos de Sistemas Operacionais
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais IV – Gerenciamento de E/S
Administração de Sistemas Operacionais 1 -Windows
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC 140 - SISTEMAS OPERACIONAIS I Turmas A e B Aula 23 – Sistema Operacional para Smartphones Profa. Sarita Mazzini Bruschi

Smartphones “Telefone inteligente” Aparelhos celulares que executam sistemas operacionais com funções completas e apresentam características de um desktop Qualquer pessoa pode desenvolver aplicações que executam nos smartphones

Mercado de Smartphones "Share of Smartphone sales by operating systems in Q2/2009(data does not include Palm WebOS, which was introduced in June, 2009). "Canalys: iPhone outsold all Windows Mobile phones in Q2 2009". AppleInsider. 21 August 2009. http://www.appleinsider.com/articles/09/08/21/canalys_iphone_outsold_all_windows_mobile_phones_in_q2_2009.html. Retrieved 21 September 2009. "Google Android smacks down Windows Mobile in latest Gartner data". Press release. 19 May 2010. http://www.zdnet.com/blog/cell-phones/google-android-smacks-down-windows-mobile-in-latest-gartner-data/3829. Retrieved 28 May 2010.

Sistemas Operacionais para Smartphones

Symbian História Psion (1980 - 1990): fabricante de PDAs EPOC (1996) Série 3, 3c (1996), 3mx (1998) Melhoria no processador e com mais memória EPOC (1996) Sistema Operacional 32 bits, com suporte a touch screen Release 1: orientado a objetos Release 3: Psion série 5 Release 5: Psion série 7

Symbian História 2000: Psion + líderes da indústria de telefonia móvel (Nokia, Ericsson, Motorola e Matsushita) criaram um empreendimento denominado Symbian Desenvolvimento do SO Symbian Surgiu na versão 6, em 2001 (Symbian 6) Versão 7: 2003 Novas funcionalidades de smartphones Núcleo e serviços do sist. operacional foram separados da interface com o usuário Versão 8: 2004 Melhorou desempenho, principalmente de funções de tempo real Versão 9.1: 2005 Adicionou conceitos de segurança Versão 9.2 e 9.3: 2006 Versão 9.4 e 9.5: 2007

Symbian Características Projetado especificamente para smartphones Orientado a objetos Projeto de micronúcleo (microkernel) Utiliza a arquitetura cliente/servidor Possui características de um sistema operacional de desktop Ênfase em comunicação e multimídia

Symbian Problemas no micronúcleo: Custo de comunicação devido a comunicação entre os servidores, os quais estão no espaço do usuário Desempenho das funções cai quando saem do espaço do núcleo e passam para o espaço do usuário Utilização de 2 ou mais espaços de endereçamento devido aos constantes chaveamentos entre espaço do usuário e espaço do núcleo

Symbian Solução para os problemas do micronúcleo: Implementação de uma estrutura de nanonúcleo Dentro do núcleo, separa as funções com implementação mais sofisticada, deixando no nanonúcleo as funções mais básicas O nanonúcleo se torna o núcleo do sistema operacional

Symbian

Symbian Nanonúcleo: Funções mais básicas, como operações em threads em modo privilegiado: Escalonamento e operações de sincronização Tratamento de interrupções e objetos de sincronização como semáforos e mutexes Funções preemptáveis e primitivas, tornando-as mais rápidas

Symbian Núcleo Implementação das funções de núcleo mais complicadas, combinadas com as operações mais primitivas do nanonúcleo Threads em modo usuário Escalonamento de processos e mudanças de contexto Memória dinâmica Sincronização complexa Comunicação entre objetos e processos

Symbian Funções de um sistema operacional maior: Processos e Threads: sistema multitarefa e multithread Suporte comum ao sistema de arquivos: compatível com o Windows (FAT32) Rede: TCP/IP Gerenciamento de memória: mapeia a memória em páginas mesmo não usando o mapeamento de memória virtual

Symbian Processos e Threads Threads: unidade central de processamento Nanothreads: threads no nanonúcleo Nanonúcleo suporta threads, fornecendo escalonamento de nanothreads, sincronização (comunicação inter-threads) e serviços de temporização Precisam de uma pilha para armazenar as informações de ambiente de tempo de execução e são executadas em modo privilegiado, não podendo ser executadas em modo usuário Conjunto mínimo de dados para a execução das nanothreads: localização e tamanho da pilha SO controla o restante: código usado por cada thread e armazena o contexto das threads em suas pilhas de execução

Symbian Processos e Threads Nanothreads: estados possíveis, além dos convencionais: Suspenso: uma thread suspende a outra Espera por semáforo rápido: espera pela sinalização de um semáforo rápido (semáforo do nanonúcleo) Espera DFC (delayed function call): espera a chamada atrasada de função, utilizadas para implementação de drivers e representam chamadas ao núcleo que podem ser escalonadas para execução pela camada do núcleo Dormindo: estão adormecidas esperando pela passagem de um período de tempo específico Outro: estado genérico que pode ser utilizado pelos desenvolvedores para implementarem estados extras (expansão das funções do nanonúcleo para novas plataformas)

Symbian Processos e Threads Nanothreads: Essencialmente um processo mais leve Possui um minicontexto que vai se alternando conforme as nanothreads vão passando pelo processador Característica: controle rígido que o núcleo tem sobre elas e a mínima quantidade de informação que compõe o contexto de cada uma

Symbian Processos e Threads Threads: baseadas nas nanothreads O núcleo amplia o suporte que o nanonúcleo oferece As threads definidas no modo usuário são implementadas por threads do Symbian Cada thread do Symbian contém uma nanothread e adiciona sua própria pilha de execução à pilha usada pela nanothread O Symbiam adiciona sete novos estados em que as threads podem estar, focadas em condições bloqueantes especiais que podem ocorrer (suspensão por semáforos normais, variáveis mutex e variáveis condicionais) Esses estados são implementados de acordo com os estados das nanothreads

Symbian Processos e Threads São threads agrupadas sob uma única estrutura de controle de bloco de processos com um único espaço de memória Pode haver uma ou várias threads de execução sob um bloco de controle de processos O escalonamento de um processo é implementado pelo escalonamento de uma thread e da inicialização do bloco de controle de processo adequado Objetos ativos Forma especializadas de thread executada no espaço do usuário, as quais foram implementadas visando diminuir a sobrecarga de se ficar verificando se uma thread que foi bloqueada já está pronta ou não Diferença principal para as threads-padrão está em não perder tempo verificando se já foram desbloqueadas

Symbian Processos e Threads Comunicação Soquete: pipeline de comunicação abstrata entre dois pontos Abstração usada para ocultar o gerenciamento dos dados e do método de transporte Comunicação entre clientes e servidores, threads e dispositivos e entre as threads Forma de comunicação também entre os dispositivos Abstração é importante: soquetes que trabalham sobre TCP/IP podem ser adaptados para trabalhar em um ambiente Bluetooth alterando os parâmetros no tipo do soquete usado Implementa também sincronziação padrão: semáforos e mutexes

Symbian Gerenciamento de memória Modelo de memória restrito Sem memória virtual com paginação sob demanda Dois tipos de memória: RAM (código do SO quando inicia) e memória flash (memória operacional e armazenamento permanente) Ausência de MV com paginação por demanda não implica ausência de gerenciamento de memória Contém: Paginação Tradução de endereços Abstração de endereços físicos e virtuais Ausência de MV significa que as páginas não podem ser trocadas na memória e enviadas para armazenamento externo As páginas são substituídas, porém as que saem são descartadas ao invés de serem enviadas para disco... Isso significa que apenas as páginas de código podem ser substituídas umas vez que apenas elas estão na memória flash

Symbian Gerenciamento de memória Tarefas do gerenciador de memória: Gerenciamento do tamanho da aplicação: código e dados. Tendência de se utilizar POO pode ser um problema Gerenciamento da heap: uso cuidadoso. Os usuários são forçados a recuperar e reutilizar esse espaço o máximo possível Execução local: memória flash mapeada no espaço de endereçamento virtual e os programas podem ser executados diretamente dela sem serem copiadas para a RAM Carregar DLLs: escolha de quando carregar as DLLs: todas inicialmente ou durante a execução Transferência do gerenciamento de memória para o hardware: MMU

Symbian Gerenciamento de memória Sistema de 32 bits: endereça até 4GB Utiliza endereços virtuais que podem ser mapeados em endereços físicos Divide a memória em páginas virtuais e quadros físicos, normalmente de 4 KB Tabela de página com mais de 1 milhão de entradas... impossível! Solução: tabela de página em dois níveis 1o. Nível: diretório de página mantido na memória principal (12 bits) 2o. Nível: coleção de tabelas de páginas, com 8 bits indicando a página Palavra na página, deslocamento (12 bits)

Symbian Gerenciamento de memória TTBR: registrador base da tabela de tradução (translaction table base register)

Symbian Gerenciamento de memória Modelos de implementação de memória Modelo em movimento: projetado para as primeiras arquiteturas ARM Modelo múltiplo: utilizada a partir da versão 6 da arquitetura ARM Modelo direto: sem MMU – não utilizado em smartphones Modelo emulador: dar suporte ao emulador do Symbian no Windows

Symbian Entrada e Saída Drivers de dispositivos Executados como código privilegiado de núcleo Dois níveis: Driver de dispositivo lógico (LDD – logical device driver): interface com as camadas altas de software Driver de dispositivo físico (PDD – physical device driver): interage diretamente com o hardware Pode haver um LDD para dispositivos da mesma classe e PDDs diferentes para cada dispositivo

Symbian Entrada e Saída Extensões de núcleo Drivers de dispositivos carregados pelo Symbian na inicialização Normalmente não são acompanhadas de PDDs Executam operações essenciais Serviços de DMA Gerenciamento do monitor Controle do barramento para dipositivos periféricos DMA Fornece suporte Problema: Suporte a várias configurações de hardware o que impede de assumir uma configuração única de DMA

Symbian Entrada e Saída Mídia removível Ao ser inserida, é considerada como um dispositivo Precisa de controlador, driver, estrutura de barramento e talvez se comunicar com a CPU através de DMA Como o SO detecta a inserção e remoção e como tratar a ausência do dispositivo? Características: Todos os dispositivos devem ser inseridos e removidos Todas as mídias removíveis podem ser retiradas enquanto estão sendo utilizadas Cada mídia pode reportar suas capacidades Cartões incompatíveis devem ser rejeitados Cada cartão precisa de energia Controladores de software gerenciam cada cartão suportado Soquete para comunicação entre os controladores de software e o dispositivo

Android Sistema operacional para dispositivos móveis, incluindo um middleware e aplicações padrões e uma versão modificada do kernel do Linux Foram alterados 75 arquivos e adicionados 88 no kernel 2.6.25

Android - Camadas

Links interessantes http://cs736-android.pbworks.com/FrontPage Código fonte do Android http://www.netmite.com/android/mydroid/