RTAI - Uma implementação de Tempo Real Crítico em Linux
|
|
- Luciano Terra
- 5 Há anos
- Visualizações:
Transcrição
1 RTAI - Uma implementação de Tempo Real Crítico em Linux Sistemas Operacionais - INE5355 Professor Antônio Augusto Fröhlich Alunos Andreu Carminati Pedro H. R. Ribeiro Novembro de
2 1 Sistemas de Tempo Real Crítico Como no caso de sistemas de controle com múltiplas entradas e múltiplas saídas, sistemas de Tempo Real Crítico não podem perder seus prazos e necessitam ter latências limitadas. Normalmente os requisitos de aplicações de Tempo Real Critico são preenchidos pela utilização CPUs dedicadas, como processadores de sinal digital (DSPs) e microcontroladores. Estes oferecem uma garantia de latência de interrupção no intervalo de alguns poucos ciclos de execução. Já os processadores de uso geral (General Purpuse CPUs (GPCPU)), como os utilizados nos computadores pessoais, são em princípio não utilizáveis para aplicações de tempo real. A utilização de memória virtual, de uma unidade de gerenciamento de memória (MMU), a alta dependência das caches multi-nível para performance, a possibilidade de arbitragem nos barramentos por dispositivos de I/O, a execução em pipelines profundos e utilização de especulação, tudo isto sujeita o sistema a latências e variações não determinísticas no tempo de execução. No entanto se olharmos o problema de execução em tempo real do ponto de vista da tarefa a ser realizada, podemos assumir que o conceito de Tempo Real Crítico é relativo à tarefa em questão. Se o sistema controlado possui uma vazão baixa e o número de amostragens que o sistema de controle consegue garantir por intervalo de tempo é grande o suficiente então para este caso podemos afirmar que o sistema de controle é de tempo real crítico. Como um exemplo, se o dispositivo controlado possui uma vazão de 1KHz e o sistema de controle realiza amostragens em uma frequência próxima de 10KHz, então as variações no período de amostragens causarão atrasos de leitura em um nível aceitável. Aplicações de tempo real geralmente não exercem somente controle mas frequentemente necessitam também se comunicar via links rápidos, receber comandos, supervisionar sua operação, fazer logs em um discos e oferecer visualização complexa de dados. Isto faz com que a possibilidade de utilizar uma infraestrutura conhecida e flexível seja algo a se desejar. A possibilidade de utilizar um SO conhecido e com um conjunto grande de ferramentas como o Linux para o desenvolvimento de sistemas de tempo real crítico sobre um computador pessoal é atrativa. Este é o objetivo do projeto RTAI. Para atingir este objetivo o RTAI [2] utiliza a estratégia de isolar o ambiente de execução de aplicações de tempo real crítico do ambiente de execução das demais aplicações. Ele é um componente que trabalha juntamente com o Linux, lidando com o escalonamento das tarefas de tempo real e permitindo que o Linux provenha todas as demais funcionalidade. Para poder cooperar com o Linux é necessário que o hardware seja compartilhado entre o Linux e o RTAI. Isto é feito pela utilização de um nanokernel, o Adeos. O Adeos assume o controle do hardware e, em particular, repassa as interrupções para os outros componentes. Na denominação utilizada no projeto Adeos, o Linux e o RTAI representam diferentes domínios. 2 Adeos O Adeos[3] (Adaptative Domain Environment for Operating Systems), liberado sob uma licença livre em junho de 2002, provê uma interface entre o kernel do linux e o hardware que permite a execução de múltiplos sistemas operacionais 2
3 sobre a mesma máquina. Diferente de das soluções de simulação preexistentes, como VMWare, Plex86, VirtualPC e SimOS; o ADEOS oferece ao usuário também um controle do SO base. Baseado no projeto SPACE, cada SO sendo executado sobre o Adeos é encapsulado em um domínio sobre o qual possui controle total. Figura 1: Arquitetura de comunicação do Adeos. Replica de figura em [3] No ambiente que o Adeos provê existem quatro categorias de métodos de comunicação. Na categoria A estão os acessos gerais dos domínios a memória e hardware. Como em caso de sucesso esses acessos não geram falta, cada domínio opera como se o Adeos não estivesse presente. Na categoria B o Adeos é envolvido recebendo o controle do hardware devido a uma interrupção de hardware ou software (a maneira como o Adeos gerencia interrupções está descrita a seguir). A categoria C consiste em invocar o tratador de interrupções de um SO provendo a ele as informações sobre a interrupção gerada. E a categoria D envolve comunicação mútua entre um domínio e o Adeos, permitindo que o SO peça ao Adeos o acesso a recursos de outros domínios ou maior prioridade no tratamento de interrupções. Figura 2: Linha de interrupções do Adeos. Replica de imagem em [1]. O Adeos utiliza uma linha de interrupções para propagar as interrupções pelos diferentes domínios sendo executados. Caso um domínio deseje pode requisitar ser o primeiro na linha de interrupções. O Adeos foi implementado como um módulo carregável do Linux. Este módulo quando carregado assume o controle do hardware. Para isto ele utiliza dos níveis de prioridade disponíveis na arquitetura ix86. Por padrão o Linux executa no nível 0, comummente denominado ring-zero. O que o Adeos faz 3
4 é transportar o Linux do ring-zero para o ring-one. Desta maneira todas as instruções privilegiadas, como cli e sti não são mais permitidas e sua execução passa a gerar faltas pelo processador. Essas faltas são tratadas pelo Adeos que as trata de maneira semelhante a como os sistemas de virtualização o fazem. O próprio Adeus necessita ser executado no ring-zero. A maneira como ele realiza sua mudança para o ring-zero e a mudança do Linux para o ring-one é modificando a GDT e alterando os privilégios dos códigos. O registrador IDT (Interrupt Descriptor Table também é modificado para apontar para as tabelas do próprio Adeos. A IDT original é mantida pelo Adeos para que possa invocar a entrada correta quando uma interrupção necessitar ser repassada para o Linux. 3 RTAI Figura 3: Camadas no RTAI. Replica de figura em [1]. O projeto RTAI [] teve inicio no Dipartimento di Ingegneria Aerospaziale del Politecnico di Milano (DIAPM) em 1996/1997. Seu objetivo era tornar disponível uma ferramenta que permitisse o desenvolvimento de atividades de pesquisa relacionadas a controle ativo de atuadores aerodinâmicos, e que isto fosse possível de ser realizado em computadores pessoais 32 bits, placas de aquisição de dados comuns e através da utilização de linguagens de alto nível para permitir fácil uso por estudantes de graduação. Inicialmente o RTAI foi desenvolvido como um conjunto de patches para o Linux. Com o surgimento do Adeos o RTAI passou a utilizá-lo assumindo uma maneira mais estruturada e flexível de suporte a Tempo Real no Linux. Para obter determinismo de Hard Real Time, o RTAI é o domínio de mais alta prioridade na linha de propagação de interrupções do Adeos, sempre processando as interrupções antes do domínio Linux. Desta maneira a aplicação hard real time no RTAI é servida primeiramente ainda que seja necessário fazer preempt de qualquer outro processo não hard real time. 4
5 Além da garantia de determinismo no tratamento de exceções oferecida pelo Adeos, o RTAI provê serviços de escalonamento de tarefas a serem executados em tempo real juntamente com maneiras de permitir interações com as tarefas sendo escalonadas no Linux padrão. Os escalonadores do RTAI são totalmente preemptíveis e podem ser escalonados diretamente dos tratadores de interrupções para que o Linux não tenha de atrasar qualquer atividade de tempo real do RTAI. Tarefas desenvolvidas para executar sobre o RTAI podem ser executadas tanto no espaço de usuário como no espaço do kernel. Para tal o RTAI mantém uma API única para os dois casos. Isto facilita o desenvolvimento de tarefas de controle dentro do kernel, o que permite menor latência de execução evitando a troca de contexto pelas MMUs existentes em processadores de uso geral. Esta funcionalidade adiciona o grande beneficio se poder iniciar um desenvolvimento de maneira segura em espaço de usuário e posteriormente, quando for necessário para obter maior performance, migrar para dentro do kernel. O RTAI dispõe de três diferentes escalonadores: o Uniprocessor (UP), é otimizado para maquinas uniprocessadas; o Symetric Multi Processors (SMP) permite executar qualquer tarefa pronta em qualquer CPU, enquanto permite definir a seleção de uma CPU específica para uma tarefa; o escalonador Multi uniprocessor, diferentemente, impõe que toda tarefa é amarrada a uma CPU especifica desde o momento de sua criação, permitindo a obtenção de melhores performances pela exploração mais eficiente das caches. Também estão disponíveis as seguintes politicas de escalonamento: First in Fisrt Out (FIFO) totalmente preemptível, para escalonamento cooperativo voluntário. Uma tarefa segura a CPU até que a libere ou até que uma tarefa de maior prioridade preempte sua execução. Sob esta politica de escalonamento há uma função de suporte para auxiliar o cumprimento dos prazos de execução utilizando prioridades atribuídas estaticamente de acordo com o conceito de Taxa Monotônica. Round Robin (RR), como o FIFO mas com um limite de tempo por tarefa, depois da qual a CPU pode ser repassada a qualquer outra tarefa de mesma prioridade esperando na fila para execução. Early Deadline First (EDF), para atribuir prioridades dinamicamente de maneira a cumprir o prazo final para término de execução das tarefas. Requer do usuário atribuir estimativas razoavelmente boas para o tempo de execução requerido por cada tarefa periódica. Resumidamente o RTAI oferece os seguintes serviços: Gerenciamento básico de tarefas. Gerenciamento de memória. Memória compartilhada inter-tarefas, espaço de dados compartilhado entre espaços de usuário e kernel. Semáforos. Mecanismos de comunicações inter-processos. Incluindo RPC. Tratamento de interrupções em espaço de usuário. Monitores Watchdog. 5
6 4 Exemplos de aplicações sobre RTAI 4.1 Aplicação em espaço de usuário 6
7 #include <stdio.h> #include <errno.h> #include <fcntl.h> #include <sched.h> #include <signal.h> #include <sys/mman.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <rtai_lxrt.h> #include <rtai_sem.h> #include <rtai_usi.h> #include <sys/io.h> #define PARPORT_IRQ 7 #define BASEPORT 0x378 static SEM *intsem, *dspsem; static volatile int end = 1; static volatile int ovr, intcnt, retval, maxcnt; static void *timer_handler(void *args) { RT_TASK *handler; if (!(handler = rt_task_init_schmod(nam2num("handlr"), 0, 0, 0, SCHED_FIFO, 0xF))) { printf("cannot INIT HANDLER TASK > HANDLR <\n"); exit(1); rt_allow_nonroot_hrt(); mlockall(mcl_current MCL_FUTURE); rt_make_hard_real_time(); end = 0; while (!end) { do { ovr = rt_wait_intr(intsem, (void *)&retval); hard_sti(); if (end) break; // overrun processing, if any, goes here if (ovr > 0) { rt_sem_signal(dspsem); /* normal processing goes here */ intcnt++; rt_sem_signal(dspsem); // notify main() rt_ack_irq(parport_irq); while (ovr > 0); rt_pend_linux_irq(parport_irq); 7
8 rt_make_soft_real_time(); rt_task_delete(handler); intcnt = maxcnt; return 0; static pthread_t thread; int main(void) { RT_TASK *maint; printf("give THE NUMBER OF INTERRUPTS YOU WANT TO COUNT: "); scanf("%d", &maxcnt); if (!(maint = rt_task_init(nam2num("main"), 1, 0, 0))) { printf("cannot INIT MAIN TASK > MAIN <\n"); exit(1); // Create semaphore for notification when interrupt occurs // In the thread we wait with rt_wait_intr until an interrupt occurs if (!(intsem = rt_sem_init(nam2num("irqsem"), 0))) { printf("cannot INIT SEMAPHORE > IRQSEM <\n"); exit(1); // create semaphore to notify main() when interrupt occurs if (!(dspsem = rt_sem_init(nam2num("dspsem"), 0))) { printf("cannot INIT SEMAPHORE > DSPSEM <\n"); exit(1); if (iopl(3)) { // ask for permission to access the parallel port from user-space printf("iopl err\n"); rt_task_delete(maint); rt_sem_delete(intsem); rt_sem_delete(dspsem); exit(1); outb_p(0x10, BASEPORT + 2); //set port to interrupt mode; pins are output // create thread pthread_create(&thread, NULL, timer_handler, NULL); // wait until thread went to hard real time while (end) { usleep(100000); // request the interrupt and bind it to semaphore rt_request_global_irq(parport_irq, intsem, USI_SEM); rt_startup_irq(parport_irq); 8
9 rt_enable_irq(parport_irq); while (intcnt < maxcnt) { rt_sem_wait(dspsem); printf("retval %d, OVERRUNS %d, INTERRUPT COUNT %d\n", retval, ovr, intcnt); end = 1; printf("test ENDS\n"); outb_p(0, BASEPORT); outb_p(255, BASEPORT); // generate final interrupt to unblock rt_wait_intr outb_p(0, BASEPORT); pthread_join(thread, NULL); rt_free_global_irq(parport_irq); rt_task_delete(maint); rt_sem_delete(intsem); rt_sem_delete(dspsem); return 0; 9
10 4.2 Aplicação em espaço de kernel 10
11 #include <linux/kernel.h>/* decls needed for kernel modules */ #include <linux/module.h>/* decls needed for kernel modules */ #include <linux/version.h>/* LINUX_VERSION_CODE, KERNEL_VERSION() */ #include "rtai.h" /* RTAI configuration switches */ #include "rtai_sched.h" /* rt_set_periodic_mode(), start_rt_timer(), nano2count(), RT_LOWEST_PRIORITY, rt_task_init(), rt_task_make_periodic() */ #if! defined(rt_lowest_priority) #if defined(rt_sched_lowest_priority) #define RT_LOWEST_PRIORITY RT_SCHED_LOWEST_PRIORITY #else #error RT_SCHED_LOWEST_PRIORITY not defined #endif #endif #include <linux/errno.h>/* EINVAL, ENOMEM */ #include <asm/io.h>/* may be <sys/io.h> on some systems */ #if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,0) MODULE_LICENSE("GPL"); #endif static RT_TASK hello_task; /* we ll fill this in with our task */ static RTIME hello_period_ns = ; /* timer period, in nanoseconds */ void hello_function(int arg) { while (1) { printk("hello world"); rt_task_wait_period(); return; int init_module(void) { RTIME hello_period_count; /* requested timer period, in counts */ RTIME timer_period_count; /* actual timer period, in counts */ int retval; /* we look at our return values */ rt_set_periodic_mode(); hello_period_count = nano2count(hellp_period_ns); 11
12 timer_period_count = start_rt_timer(hello_period_count); printk("periodic_task: requested %d counts, got %d counts\n", (int) hello_period_count, (int) timer_period_count); rt_task_init(&hello_task,/* pointer to our task structure */ hello_function, /* the actual timer function */ 0,/* initial task parameter; we ignore */ 1024,/* 1-K stack is enough for us */ RT_LOWEST_PRIORITY, /* lowest is fine for our 1 task */ 0,/* uses floating point; we don t */ 0); /* signal handler; we don t use signals */ rt_task_make_periodic(&hello_task, /* pointer to our task structure */ /* start one cycle from now */ rt_get_time() + hello_period_count, hello_period_count); /* recurring period */ return 0; void cleanup_module(void) { rt_task_delete(&hello_task); return; 12
13 Referências [1] A. Barbalace, A. Luchetta, G. Manduchi, M. Moro, A. Soppelsa, and C. Taliercio. Performance comparison of vxworks, linux, rtai, and xenomai in a hard real-time application. Nuclear Science, IEEE Transactions on, 55(1): , Feb [2] Mantegazza P. Dozio L. Linux real time application interface (rtai) in low cost high performance motion control [3] Karim Yaghmour. Adaptive domain environment for operating systems
Real Time Application Interface
Real Time Application Interface RTAI-3.x Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo
Leia maisReal Time Application Interface
Real Time Application Interface RTAI-3.x Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação
Leia maisSistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia
Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente
Leia maisSistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal
Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados
Leia maisSistemas Operacionais de Tempo Real. Sérgio Campos
Sistemas Operacionais de Tempo Real Sérgio Campos 1 / 21 Sistemas Operacionais de Tempo Real Escalonador, Threads, Tasks Tarefas periódicas Tarefas aperiódicas Microkernel Interrupções Relógios e temporização
Leia maisSistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto (pfs@fe.up.pt) March 8, 2012 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Leia maisTécnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Leia mais1 System Calls no Linux
Sistemas Operacionais Laboratorio - System Calls Adaptação do Laboratório 1 - Prof. Eduardo Zambon 1 System Calls no Linux Vamos mencionar aqui alguns pontos já discutidos em aula e introduzir novos conceitos
Leia maisThreads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012
1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 2ª Aula Conceitos Básicos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos
Aula 2 Gerência de Processos Gerência de Processos O que são Processos e Threads? Porque são necessários? Como são implementados? Como são controlados? Escalonamento Referências: Capítulo 4: 4.1 a 4.5
Leia maisExclusão Mútua (mutex)
2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)
Leia maisSistemas Operacionais
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Multithreading Aula 04 Necessidade de executar atividades concorrentes, porém cooperantes ou que compartilhem dados endereçamento
Leia maisSistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva
Sistemas Operacionais de Tempo Real Prof. Andre Luis Meneses Silva andreluis.ms@gmail.com O que é um Sistema Operacional? Provê um ambiente para execução de programas. Abstração de processos para multitarefa/
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas
Leia maisSistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto (pfs@fe.up.pt) March 4, 2014 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Leia maisMétodos de Sincronização
Métodos de Sincronização Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 31 Sumário 1 Sistemas multiprogramáveis 2 Mecanismos de sincronização
Leia maisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Leia maisSistemas Operacionais
Brainstormig Sistemas Operacionais Processos e multiprogramação Aula 2 Quais são os componentes de um programa? Como podemos representar um programa em execução? Onde ele inicia a executar? Como se mapeia
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisEstrutura do Sistema Operacional
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional
Leia maisNa Aula Anterior... O Conceito de Threads
GSI018 Sistemas Operacionais 12/09/2016 Na Aula Anterior... Nesta Aula Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Comunicação entre Processos Pipes;
Leia maisSistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura
Leia maisSistemas Operacionais. Gerência de Processador
Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento
Leia maisUnidade III Gerência de Processos
Sistemas Operacionais Unidade III Gerência de Processos http://www.lncc.br/~lrodrigo Professor: Luis Rodrigo lrodrigo@lncc.br Página: 1 de 34 Unidade III: Gerência de Processos Conceito de Processo Materialização
Leia maisAspectos Construtivos dos Sistemas Operacionais de Tempo Real
Aspectos Construtivos dos Sistemas Operacionais de Tempo Real Rômulo Silva de Oliveira Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-UFSC Caracterização Sistemas computacionais
Leia mais6 ESCALONAMENTO DE CPU
6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador
Leia maisSumário. Sistemas Operativos 1
Sumário Requisitos mínimos do hardware para suportar um SO protegido (ex: Windows/Linux) Mecanismos hardware de suporte nas arquitecturas x86/x64 Sequência de chamada de serviços sistema no Windows a 32
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo Abstração usada pelo S.O. para designar a execução de um programa. (1) É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisSistemas de Computação. Processos e escalonamento
Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas
Leia maisSistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade II - Processos 24/04/2014 Prof. Valeria M. Bastos 1 Organização da Unidade Processos Conceituação Estruturas de Controle Modos de execução do S.O. Estados
Leia maisXenomai Short Intro. Paulo Pedreiras pbrp@ua.pt DETI/University of Aveiro. Sistemas Tempo-Real Out/2013 (Rev. 1 - Out/2015)
Xenomai Short Intro Paulo Pedreiras pbrp@ua.pt DETI/University of Aveiro Sistemas Tempo-Real Out/2013 (Rev. 1 - Out/2015) Agenda Adeos Xenomai Introdução Estrutura de domínios Interrupções Threads em modo
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisCapítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006
Capítulo 13: Sistemas de E/S Capítulo 13: Sistemas de E/S Hardware de E/S Interface de E/S da aplicação Subsistema de E/S do kernel Transformando requisições de E/S em operações de hardware Fluxos Desempenho
Leia maisMultiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo
Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções;
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Leia maisNotas da Aula 11 - Fundamentos de Sistemas Operacionais
Notas da Aula 11 - Fundamentos de Sistemas Operacionais 1. Escalonamento de Tempo Real Em sistemas de tempo real, o objetivo principal do escalonador é garantir que todos os processos sejam executados
Leia maisUNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação Profa: Simone Martins Gabarito - Lista 2 1 Considere um protótipo de uma máquina, utilizado
Leia maisProcessos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisSistemas Operacionais. Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@fgp.com.br. www.fgp.com.br
Sistemas Operacionais Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@fgp.com.br Tipos de Sistemas Operacionais De Sistemas Embarcados (PalmOS,WinCE,WinXPEmbbeded,Linux) Hardware simples, especifico
Leia maisEscalonamento no Unix. Sistemas Operacionais
Escalonamento no Unix Projeto do Escalonador O projeto de um escalonador deve focar em dois aspectos: Política de escalonamento estabelece as regras usadas para decidir para qual processo ceder a CPU e
Leia maisExemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes
Exemplos de Programas em C para o 8051 para o compilador crossware EEL7030 - Prof. Raimes Moraes /* HELLO.C Programa Exemplo No 1 - Ilustra programa para a escrita de dados na porta serial #include
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,
Leia maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisSistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade II - 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 Conceituação Estruturas de Controle Modos de execução do S.O. Estados de um
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMANDO
Leia maisSistemas Operacionais
Apresentação Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof. Sérgio CECHIN (cechin at inf.ufrgs.br)
Leia maisIntrodução aos Sistemas Operacionais. Threads
Introdução aos Sistemas Operacionais Threads Eleri Cardozo FEEC/Unicamp O que é uma Thread? Uma thread (linha de controle) é uma unidade de execução e de controle, alocação e compartilhamento de recursos
Leia maisRedes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;
Leia mais1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?
1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 2 O que é ambiente de execução? 3 Qual a finalidade da PCB? 4 Quais os componentes básicos da PCB? 5 Quais os 3 grupos de elemento
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 5 Gerenciamento de Processos Prof. Belarmino Execução de Processos Já vimos que o processador executa os processos entregando uma fatia de tempo (time slice) para
Leia maisSOP - TADS Processos. Revisão Ultima aula
SOP - TADS Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Revisão de hardware Processador
Leia maisInfra-Estrutura de Software. Escalonamento
Infra-Estrutura de Software Escalonamento Processos Concorrentes O Modelo de Multiprogramação Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um
Leia maisSistemas Operativos: Escalonamento de Processos
Sistemas Operativos: Escalonamento de Processos Pedro F. Souto (pfs@fe.up.pt) March 29, 2011 Sumário Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Padrão
Leia maisSistemas de Tempo Real
Sistemas de Tempo Real Msc.Marcelo de Paiva Guimarães Doutorando da Universidade de São Paulo Laboratório de Sistemas Integráveis Escola Politécnica da Universidade de São Paulo {paiva@lsi.usp.br} Fonte:
Leia maisSistemas Operacionais. Processos e Threads
Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
Leia maisSistemas Operacionais
Apresentação Inst tit ormátic ca - UF FRGS i Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof.
Leia maisSistemas Operacionais. Escalonamento de processos
Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas
Leia maisDISCIPLINA: ELE213 Programação de Sistemas de Tempo Real. Créditos: 4. Caráter: Eletiva. Professor Regente: Prof. Walter Fetter Lages
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA PLANO DE ENSINO PERÍODO LETIVO 201/1 DISCIPLINA: ELE213
Leia mais6. Mostre os principais modelos de organização interna de um sistema operacional.
Trabalho 1 Sistemas Operacionais Embarcados Engenharia Elétrica Prof. Carlos Marcelo Pedroso 1 Problemas 1. O IBM 360 modelo 75 é cerca de 50 vezes mais rápida do que o IBM 360 modelo 30. Todavia, o tempo
Leia maisSistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 04 - desenvolvimento multithread Mais e mais ferramentas! 2 Processos e Threads: desenvolvimento
Leia maisConceitos básicos e serviços dos Sistemas Operacionais
Conceitos básicos e serviços dos Sistemas Operacionais Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF Tipos de serviços do S.O. Um
Leia maisSistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é
Leia maisRedes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4
Leia maisSistemas Operacionais. Sistema de entrada e Saída
Sistemas Operacionais Sistema de entrada e Saída Sistema de Entrada e Saída I/O É uma das principais tarefas de um sistema computacional Como máquina abstrata o S.O. deve oferecer uma visão padronizada
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Leia maisENADE 2011 SISTEMAS OPERACIONAIS
ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas
Leia maisDEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 11: Escalonadores: Estudos de Caso Diego Passos Últimas Aulas Escalonadores Escalonadores não-preemptivos: FIFO. SJF (com e sem previsão). Escalonadores preemptivos:
Leia maisIntrodução a Arquitetura de Sistemas Operacionais. Parte 01
Introdução a Arquitetura de Sistemas Operacionais Parte 01 Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Julho / 2017 1/44 Nota Com exceção das figuras
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Leia maisSistemas Operacionais. Introdução a Sistemas Operacionais
Introdução a arliones.hoeller@ifsc.edu.br baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto 1 Sistemas de computação Hardware CPU + memória + dispositivos de E/S Aplicações Objetivo
Leia maisCapítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
Leia maisBreve introdução ao Real Time Application Interface (RTAI)
Breve introdução ao Real Time Application Interface (RTAI) Sistemas de Tempo-Real DETI/UA Paulo Pedreiras DETI/UA Set/2012 DETI/UA STR 12/13 1 Conteúdo Requisitos Kernel Linux O RTAI Como carregar uma
Leia maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5
Leia maisEPOS: Um Sistema Operacional Portável para Sistemas Profundamente Embarcados
EPOS: Um Sistema Operacional Portável para Sistemas Profundamente Embarcados Hugo Marcondes Arliones S. Hoeller Junior, Lucas F. Wanner, Rafael L. Cancian, Danillo Santos, Antônio Augusto M. Fröhlich hugom@lisha.ufsc.br
Leia maisIntrodução aos Sistemas Operacionais
Introdução aos Sistemas Operacionais Eleri Cardozo FEEC/Unicamp 1 Definição de Sistema Operacional Um sistema operacional é um gerenciador de recursos de hardware ou uma máquina virtual que oferece uma
Leia maisLABORATÓRIO SISTEMAS OPERACIONAIS
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS:
Leia maisSistemas Operacionais Aula 7
Sistemas Operacionais Aula 7 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisArquitetura de Computadores Sistemas Operacionais II
Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa
Leia maisEntrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -
Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função
Leia maisSincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Tópicos Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos
Leia maisSistemas Operacionais. Escalonamento de Processos
Escalonamento de Processos arliones.hoeller@ifsc.edu.br de fevereiro de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto Gerenciamento de processos Processo É uma instância de um
Leia maisEntrada e Saída. Walter Fetter Lages.
Entrada e Saída Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright (c) Walter
Leia maisGerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento
Leia maisUma proposta para migração de páginas no Linux
Uma proposta para migração de páginas no Linux Guilherme A. A. Tesser (HP/PUCRS) Avelino F. Zorzo (PUCRS) PUCRS/HP Porto Alegre - Brazil Sumário Introdução Escalonador do Linux Balanceamento de carga em
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Escalonamento CPU Um vez escalonado, o processo utiliza o processador, de modo: Não preemptivo (FIFO, SJF, Cooperativo) Término
Leia maisInfra-Estrutura de Software. Sistemas Operacionais Revisão
Infra-Estrutura de Software Sistemas Operacionais Revisão Sistema Computacional em Camadas Não pode executar instruções que afetam o controle da máquina ou fazem E/S GUI ou shell Acesso completo a todo
Leia maisInfra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar
Escalonamento Decidindo qual processo vai executar Escalonamento de processos Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado
Leia maisSistemas de Tempo Real: Sistemas Operacionais
Escola de Computação 2000 - IME-USP Sistemas de Tempo Real: Sistemas Operacionais Jean-Marie Farines Joni da Silva Fraga Rômulo Silva de Oliveira LCMI - Laboratório de Controle e Microinformática DAS -
Leia maisSistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Leia maisSistemas Operativos: Introdução. February 17, 2016
Sistemas Operativos: Introdução February 17, 2016 Sumário Introdução aos Sistemas Operativos Organização de Computadores Sistema Operativo Abstracções Oferecidas por um SO Componentes dum Computador Pessoal
Leia mais