UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA

Documentos relacionados
Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais Aula 7

Sistemas Operacionais Gerenciamento de Processos

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Infra-Estrutura de Software. Escalonamento

Sistemas Operacionais

6 ESCALONAMENTO DE CPU

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Escalonamento de Processos Estratégias de Escalonamento de Processos

Estratégias de Escalonamento de Processos

Gerência de Recursos. Gerência do Processador

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Sistemas Operacionais. Escalonamento de processos

Sistemas de Informação. Sistemas Operacionais

Processos. Escalonamento de Processos

Sistemas Operacionais

Escalonamento de Processos Uniprocessador

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Processos. Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

Sistemas Operacionais

Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Fundamentos de Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 09. Escalonadores. Conceito, escalonamento, filas de escalonamento e tipos de escalonadores.

Gerência do Processador. Adão de Melo Neto

Programação de Sistemas em Tempo Real

Sistemas Operacionais

SOP - TADS Escalonamento de Processos

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Questões de Provas de Períodos Anteriores

Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos

Escalonamento de Processos

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Gerência do Processador. Adão de Melo Neto

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Algoritmos de escalonamento

Sistemas Operacionais (SO)

Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Sistemas Operacionais: Escalonamento de processos

Sistemas de Computação. Processos e escalonamento

Questões de Múltipla escolha

Técnicas Avançadas de Programação

Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Escalonamento de processos

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de Processos

Escalonamento no Unix. Sistemas Operacionais

Escalonamento da CPU

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Escalonamento de Processos

Fundamentos de Sistemas Operacionais

Resumo: Sistemas Operacionais Abertos

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Sistemas Operativos: Implementação de Processos

Sistemas Operacionais

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Introdução à Sistemas Operacionais

Davidson Rodrigo Boccardo

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais de Tempo Real. Sérgio Campos

Escalonamento da CPU

NÚCLEO DE TECNOLOGIA DEPARTAMENTO ACADÊMCIO DE CIÊNCIA DA COMPUTAÇÃO. I - Objetivo Geral: Introduzir os conceitos gerais de sistemas operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Montagem e Manutenção

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Operativos: Implementação de Processos

Gerência de Recursos. Gerência do Processador

Processos. Estruturas de Controle

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Agendador. Agendador de Processos (Escalonador de Processos) Critérios de Agendamento. Agendador

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Sistemas Operativos: Escalonamento de Processos

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 8 Ge r ê n cia a do o Pr oce ssa dor

Transcrição:

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA MECANISMO DE ESCALONAMENTO DE APLICAÇÕES NO ios PONTA GROSSA 2016

GABRIEL BOJKO LUIZ OTÁVIO OYAMA MECANISMO DE ESCALONAMENTO DE APLICAÇÕES NO ios Pesquisa apresentada para obtenção de nota parcial na Universidade Estadual de Ponta Grossa, na disciplina de Sistemas Operacionais. Professor: Dierone César Foltran Júnior. PONTA GROSSA 2016

1. INTRODUÇÃO Não podemos falar de ios sem lembrar do seu principal idealizador: Steve Paul Jobs, nome pelo qual deve perdurar por tempos no cenário da Tecnologia da Informação. Grande parte do globo já pode ter utilizado algumas de suas criações, principalmente as provenientes da Apple. Vale citar aqui o Macintosh (Mac), iphone, ipad, onde estes dois últimos fazem uso do Sistema Operacional ios, abordado neste trabalho. Famoso por sua segurança, estabilidade e confiança, o ios é conhecido como um dos melhores Sistemas Operacionais do mundo. Juntamente com o primeiro iphone, foi originalmente lançado em 2007 e seu nome até a versão 4.0 era iphone OS. Em 2010 passou a ser o sistema embarcado utilizado nos ipads, também da Apple. Antes de expressar detalhes a respeito do Escalonamento de Processos no ios, é importante definir alguns termos, como processo, multiprogramação e escalonador de processos. Entrando no mérito de Sistemas Operacionais, um processo é uma abstração de um programa em execução (NOVATO, Douglas 2014). Ele mantém a capacidade de operações pseudoconcorrentes, mesmo quando existe apenas uma CPU disponível, CPU esta que só executa um processo a cada instante, porém, no decorrer de um segundo ela pode trabalhar sobre vários processos dando a ilusão de paralelismo. O mecanismo de trocas rápidas da CPU é chamado de multiprogramação. Quando diversos processos competem pela Unidade Central de Processamento cabe ao Sistema Operacional decidir o momento em que cada processo terá o seu acesso. Já o escalonador de processos fica responsável por decidir o momento em que cada processo obterá a CPU. São usados, aqui, algoritmos de escalonamento que estabelecem a lógica de decisão.

2. ios E O SEU SISTEMA Assumindo a ideia de que o kernel do ios é muito semelhante ao kernel Mach no MacOS, pode-se concluir que seus mecanismos de escalonamento são os mesmos usados nesse sistema. O MacOS é um Sistema Operacional baseado no kernel UNIX (XNU), sendo uma combinação do Darwin (um núcleo derivado do micronúcleo Mach) com a interface gráfica de usuário Aqua. O MacOS 9 utiliza o escalonamento cooperativo para as Threads, onde um processo pode controlar várias destas Threads fornecendo um escalonamento preemptivo para multitarefas. O kernel escalona multitarefas utilizando um algoritmo de escalonamento preemptivo. Todos os processos do Gerenciador de Processos são executados em uma tarefa especial, chama de blue-task (tarefa-azul). Usando um algoritmo de escalonamento round-robin (escalonamento circular), esses processos são programados cooperativamente. Um processo gera controle do processador para outro processo chamando uma função de bloqueio como WaitNextEvent. Cada processo tem sua própria cópia do Gerenciador de Threads que escalona as threads desse processo de forma cooperativa. Uma thread gera controle do processador para outra threads chamando YieldToAnyThread ou YieldToThread. O MacOS usa uma fila de vários níveis até chegar ao hardware, onde as threads são agendadas de forma preventiva. Esse sistema também suporta threads agendadas cooperativamente em sua implementação do Gerenciador de Threads. Basicamente, a estrutura é composta por quatro camadas, como pode ser visto na Figura 1. O Sistema obedece a uma hierarquia, de modo que quanto mais abaixo na camada, maior deve ser a dificuldade no desenvolvimento e na compreensão.

Figura 1 Gerenciamento de Processos ios 3. TIPOS DE ESCALONAMENTOS DE PROCESSOS CITADOS 3.1. ESCALONAMENTO PREEMPTIVO Neste tipo de escalonamento o Sistema Operacional pode interromper um processo em execução para que outro processo utilize o processador, permitindo que o sistema dê atenção imediata a processos mais prioritários, como no caso de sistemas em tempo real. Ele também proporciona melhores tempos de resposta em sistemas de tempo compartilhado. O compartilhamento do processador ocorre mais uniformemente entre os processos, sendo que a troca de um processo pelo outro na Unidade Central de Processamento (CPU) gera um overhead (processamento ou armazenamento em excesso) no sistema. Os critérios de preempção devem ser bem definidos para o overhead não se tornar crítico.

POR TEMPO 3.2. ESCALONAMENTO CIRCULAR (ROUND-ROBIN) OU PREEMPÇÃO O Escalonamento de Preempção por tempo é implementado em um algoritmo semelhante ao Escalonamento FIFO (First-in-First-out), mas quando um processo passa para o estado de execução ele adquire um tempo limite para sua utilização de forma continua. Esse tempo limite é chamado de quantum ou timeslice, que no geral tem seu valor entre 100ms e 300 ms. Se o processo não terminar a execução ele volta ao estado de pronto. Dentro desse método, nenhum processo poderá monopolizar a CPU, tornando o algoritmo bastante usual e adequado para sistemas multiusuários de tempo compartilhado. No caso, o processo CPU-bound (quando o tempo de processamento depende mais do processador do que das entradas e saídas) tem mais chances de ser executado que o processo IO-bound (quando o sistema faz um uso intensivo de processos de entrada e saída). 4 MACH OS O SISTEMA O Mach é capaz de gerenciar recursos de processador como o uso da CPU e memória, manipula escalonamentos, fornece proteção de memória e uma infraestrutura centrada em mensagens para o restante das camadas do sistema operacional. O Mach contém um avançado escalonador baseado no CMU Mach 3. O escalonamento realizado por ele é baseado em um sistema de filas de execução em várias propriedades e que são tratas de formas diferentes. São 4 níveis de propriedades como mostra a Tabela 1:

Tabela 1: Os níveis de prioridades e suas características Por várias razões as threads podem migrar entre os níveis de prioridade, sendo a maior parte como um artefato do algoritmo de compartilhamento de tempo usado. As threads marcadas como sendo prioridade em tempo real são também especiais aos olhos do escalonador. Uma thread em tempo real informa ao escalonador que algo precisa executar A ciclos fora dos próximos B ciclos. Exemplificando melhor, pode ser necessário executar para 3000 fora dos próximos 7000 ciclos de clock na ordem para manter em ordem. Ele também é capaz de informar o escalonador se esses ciclos devem ser próximos. O uso longo e bem agrupado de quanta (plural de quantum, menor valor que certas grandezas físicas podem apresentar), geralmente é desaprovado, mas ocasionalmente são necessários para aplicações especializadas em tempo real. O kernel fará todos os esforços para honrar o pedido, mas uma vez que este é suave em tempo real, não pode ser garantido. Em particular, se a thread em tempo real pede algo relativamente razoável, sua prioridade permanecerá na banda em tempo real, mas se ela estiver descaradamente relacionada às suas necessidades e se comportar de uma forma computacional, ela pode ser rebaixada para a prioridade de um segmento normal.

5. CONCLUSÃO Basicamente, o sistema de escalonamento é a parte do SO encarregada de decidir entre os processos prontos, qual será colocado em execução. Sendo assim, um bom algoritmo de escalonamento de processos é essencial para que cada processo tenha uma parte de tempo justa na CPU e para garantir a eficiência da mesma. O sistema para dispositivos móveis da Apple (ios) possui kernel semelhante ao sistema MacOS. Sendo assim, conclui-se que o sistema de escalonamento de processos será semelhante. Infelizmente, informações deste tipo são de difícil acesso quando relacionados aos dispositivos da Apple, realidade totalmente diferente dos códigos abertos do Linux.

6. REFERÊNCIAS COLETTA, Alex. Escalonamento de Processos. Disponível em: <http://alexcoletta.eng.br/artigos/escalonamento-de-processos/>. Acesso em: 18 abr. 2017. MACH Scheduling and Thread Interfaces. Disponível em: <https://developer.apple.com/library/content/documentation/darwin/conceptual/kern elprogramming/scheduler/scheduler.html#//apple_ref/doc/uid/tp30000905-ch211- BEHJDFCA>. Acesso em: 17 abr. 2017. KERNEL Architecture Overview. Disponível em: < https://developer.apple.com/library/content/documentation/darwin/conceptual/kernel Programming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g- CACDAEDC>. Acesso em: 17 abr. 2017. MEYER, Maximiliano. A História do ios. Disponível em: < https://www.oficinadanet.com.br/post/17950-a-historia-do-ios>. Acesso em: 16 abr. 2017. NOVATO, Douglas. Sistemas Operacionais- O que é Escalonamento de Processos. Disponível em: < https://www.oficinadanet.com.br/post/12781-sistemasoperacionais-o-que-e-escalonamento-de-processos>. Acesso em: 16. Abr. 2017. COSTA, C. E. C.; SILVA, F. A.; BRAGA, J. C. M.; CARVALHO, J. P. F. Sistema Operacional ios. Disponível em: <http://www.midiacom.uff.br/~natalia/2012-1- sisop/tgrupo7.pdf>. Acesso em: 17 abr. 2017. RIBEIRO, J.; SARAIVA, R.; NASCIMENTO, T. Sistemas Operacionais Escalonamento de Processos. Disponível em: <https://pt.slideshare.net/tallesnascimentorodrigues/sistemas-operacionaisescalonamento-de-processos>. Acesso em: 17 abr. 2017. ABOUT This Document. Disponível em: <https://developer.apple.com/library/content/documentation/darwin/conceptual/kern elprogramming/about/about.html>. Acesso em: 17 abr. 2017. HOW Does The Process Scheduler in iphone OS Really Work Internally. Disponível em: <http://stackoverflow.com/questions/1600562/how-does-the-processscheduler-in-iphone-os-really-work-internally>. Acesso em: 17 abr. 2017. ios Experts: What Scheduling Algorithm Does ios Use. Disponível em: <http://iphonedevsdk.com/forum/iphone-sdk-development/112821-ios-experts-whatscheduling-algorithm-does-ios-use.html>. Acesso em: 17 abr. 2017. GERENCIAMENTO de Processos - ios. Disponível em: <https://bsi.github.io/ios/?full#5>. Acesso em: 17 abr. 2017.