Sistemas Operativos: Threads

Tamanho: px
Começar a partir da página:

Download "Sistemas Operativos: Threads"

Transcrição

1 Sistemas Operativos: Threads Pedro F. Souto March 22, 2011

2 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

3 Processos em Unix Em Unix e SOs dele derivados, como Linux, um processo dispõe essencialmente dum computador virtual: a maioria dos recursos usados por um processo é reservado para seu uso exclusivo; cada processo usa a sua própria memória, a qual, por omissão, não é partilhada com outros processos. Um processo pode ser visto como: Uma máquina virtual para execução de programas em vez de Um programa em execução

4 Comunicação entre Processos em Unix A comunicação entre processos em Unix não é fácil: o processo pai pode passar alguma informação antes de criar o processo filho, mas depois... o processo filho só pode retornar informação (e muito limitada) ao processo pai quando termina; sincronização entre processos só entre o pai e os seus filhos. Suporte de memória partilhada entre processos pelo SO: + facilita a cooperação entre processos; não é muito conveniente de usar; é relativamente ineficiente, já que requer a intervenção do SO para sincronização.

5 Threads Threads abstraiem a execução duma sequência de instruções. Grosso modo, enquanto que um processo corresponde à execução dum programa, um thread corresponde à execução duma função. Em SOs mais recentes, um processo pode incluir mais do que um thread. Text Text Data Data

6 Processador de Texto Multithreaded A ideia é usar um thread por tarefa. Four score and seven nation, or any nation lives that this nation who struggled here here to the unfinished they gave the last full years ago, our fathers so conceived and so might live. It is have consecrated it, far work which they who measure of devotion, brought forth upon this dedicated, can long altogether fitting and above our poor power fought here have thus that we here highly continent a new nation: endure. We are met on proper that we should to add or detract. The far so nobly advanced. resolve that these dead conceived in liberty, a great battlefield of do this. world will little note, It is rather for us to be shall not have died in and dedicated to the that war. But, in a larger sense, nor long remember, here dedicated to the vain that this nation, proposition that all We have come to we cannot dedicate, we what we say here, but great task remaining under God, shall have men are created equal. dedicate a portion of cannot consecrate we it can never forget before us, that from a new birth of freedom Now we are engaged that field as a final cannot hallow this what they did here. these honored dead we and that government of in a great civil war resting place for those ground. The brave It is for us the living, take increased devotion the people by the testing whether that who here gave their men, living and dead, rather, to be dedicated to that cause for which people, for the people Keyboard Kernel Disk 1. Um thread para interagir com o utilizador (teclado e rato); 2. Um thread para formatar o texto (em background); 3. Um thread para guardar o ficheiro periodicamente no disco.

7 Partilha de recursos com Threads Threads dum mesmo processo podem partilhar a maior parte dos recursos, com excepção da stack e do estado do processador: Thread 2 Thread 1 Thread 3 Process Thread 1's stack Thread 3's stack Kernel

8 Estado dum Thread Tal como um processo, um thread pode estar num de 3 estados: running 1 ready 2 3 waiting A informação específica a manter por cada thread é relativamente reduzida: o seu estado (pode estar bloqueado à espera dum evento); o estado do processador (incluindo o SP e PC); a stack. 4

9 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

10 Uso de Threads Threads dum mesmo processo podem partilhar muitos recursos, incluindo o espaço de endereçamento: são particularmente apropriados para aplicações consistindo em actividades concorrentes. P.ex. servidor da Web: Recebe e processa pedidos de páginas da Web. As páginas da Web são ficheiros guardados em disco. Mantém as páginas acedidas mais recentemente em memória, cache. Se a página pedida não estiver na cache, o servidor tem que ir ao disco.

11 Servidor da Web com um Único Thread while( TRUE ) { get_next_request(&buf); lookup_page_in_cache(buf, &page); if( page == NULL ) read_page_from_disk(buf, &page); send_page(page); } Se a página pedida não estiver na cache, o servidor tem que ir ao disco, bloqueando. Enquanto a página não fôr trazida para memória, o servidor não pode processar outros pedidos. O número de pedidos que este servidor pode processar por unidade de tempo é muito baixo.

12 Servidor da Web com E/S Sem Bloqueio Alguns SOs suportam chamadas ao sistema de E/S que não bloqueiam o processo que as invoca. Posteriormente: o processo pode interrogar o kernel sobre a conclusão da operação (non-blocking I/O); alternativamente, o kernel pode notificar o processo da conclusão da operação (asynchronous I/O). Se a página pedida não estiver na cache, o servidor pode executar uma operação de E/S sem-bloqueio/assíncrona. Depois, pode receber e processar a mensagem seguinte. O servidor tem que manter informação sobre o estado de processamento de cada pedido pendente. Este tipo de solução diz-se event driven, ou baseada numa finite-state machine.

13 Servidor da Web com Múltiplos Threads Um thread, o dispatcher, recebe os pedidos e passa-os a outros threads, os worker. Cada worker thread processa um pedido de cada vez: pode usar operações de E/S que bloqueiem. Web server process Dispatcher thread Worker thread User space Web page cache Kernel Kernel space Network connection

14 Servidor da Web com Múltiplos Threads Código do dispatcher thread: while( TRUE ) { get_next_request(&buf); handoff_work(buf); } Código dos worker threads: while( TRUE ) { wait_for_work(&buf); lookup_page_in_cache(buf, &page); if( page == NULL ) read_page_from_disk(buf, &page); send_page(page); }

15 Servidor da Web: Comparação Modêlo Paralelismo Programação Thread único Não Fácil. Event-driven Sim Trabalhosa. Multi-threaded Sim Nem sempre fácil.

16 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

17 Implementação de threads Threads podem ser implementados: 1. directamente pelo SO (kernel-level threads); 2. por código que executa em user-level, i.e. acima do SO, (user-level threads).

18 Kernel-level Threads O kernel suporta processos com múltiplos threads: os threads são as entidades que disputam o CPU. O SO mantém uma tabela de threads com a informação específica a cada thread. O PCB dum processo aponta para a sua tabela de threads. Todas as operações de gestão de threads, p.ex. criar um thread, requerem a execução de chamadas ao sistema.

19 User-level Threads O kernel não sabe da existência dos threads: são implementados inteiramente por uma biblioteca em user-space; podem ser implementados num SO que não suporta threads.

20 Implementação de User-level Threads A biblioteca de threads oferece funções que permitem: criar/terminar threads; sincronizar entre threads; ceder o CPU a outros threads (yield); A biblioteca executa a comutação entre threads e mantém uma tabela de threads. Funções que encapsulam chamadas ao sistema que podem bloquear têm que ser alteradas: para evitar que todos os threads bloqueiem. Algumas dificuldades: como executar chamadas ao sistema sem bloquear? e page-faults? como evitar que um thread monopolize o CPU?

21 User-level vs. Kernel-level Threads + O SO não precisa suportar threads. + Evita a intervenção do kernel em muitas operações, p.ex. criação/terminação de threads e comutação de threads. Page-fault por um thread bloqueia os restantes threads do processo. Incapazes de explorar paralelismo em arquitecturas multiprocessador.

22 Implementação Híbrida A ideia é multiplexar user-level threads sobre kernel-level threads Multiple user threads on a kernel thread User space Kernel Kernel thread Kernel space O kernel não está a par dos user-level threads. A biblioteca de user-level threads atribui estes aos kernel-level threads.

23 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

24 libpthread (pthreads) Biblioteca de threads especificada em POSIX: A sua utilização promove portabilidade do código. Esta biblioteca pode ser implementada usando: kernel-level threads, p.ex. a biblioteca distribuída com Linux; user-level threads, p.ex. algumas bibliotecas disponíveis para Linux; usando ambos tipos de threads, p.ex. a biblioteca distribuída com Solaris.

25 Funções básicas de gestão de threads int pthread_create(pthread_t *id,...) cria um thread que executa a função especificada no seu argumento: Function invocation vs thread creation fun() fun() fun() pthread_create() void pthread_exit(void *value_ptr) termina o thread; int pthread_join(pthread_t thread, void **value_ptr) espera que o thread especificado no argumento thread termine.

26 Execução de Programas Multithreaded Num programa multithreaded um thread é criado quando: O programa inicia: main() é executado pelo thread principal. Quando da invocação de pthread_create(): todos os outros threads. Um thread termina se, p.ex.: retorna da função inicial que executou (argumento de pthread_create() ou main()); executa pthread_exit(). Um programa multithreaded termina se, p.ex.: O thread principal terminar (ver acima); Qualquer thread invocar a chamada ao sistema _exit().

27 pthread_create() int pthread_create(pthread_t *id, const pthread_att_t attr, void *(*start_fn)(void *), void *arg) onde: *id será inicializado com a identidade do thread criado; *attr é uma estrutura de dados que configura o modo de funcionamento: pode ser inicializada com valores por omissão usando: int pthread_attr_init(pthread_attr_t *attr) *start_fn uma função com o seguinte protótipo: void *thr_fun(void *) que é a primeira função executada pelo thread a criar. *arg é a estrutura de dados a passar à função thr_fun().

28 pthread_create(): exemplo #include <pthread.h> void *fun(void *arg) { /* Actually the ar- */... /* gument is not used */ }... pthread_attr_t attr; pthread_t tid;... pthread_attr_init(&attr); /* Initialize attr * default values * pthread_create(&tid, &attr, fun, NULL);... No caso geral, o último argumento de pthread_create() é o endereço duma estrutura de dados contendo os argumentos da função fun().

29 void *fun(void *arg) Permite definir praticamente qualquer função. Para evitar avisos (warnings) do gcc o mais fácil é definir um tipo de apontador para uma função. #include <pthread.h> typedef void *(thr_fun_t)(void *arg); int *fun(int *arg) {... }... pthread_attr_t attr; pthread_t tid; int thr_arg;... pthread_attr_init(&attr); /* Initialize attr */ pthread_create(&tid, &attr, (thr_fun_t *) fun, (void *)&thr_arg);...

30 Múltiplos Threads Normalmente applicações multithreaded usam mais do que 2 threads É necessário alocar variáveis diferentes para cada thread. #include <pthread.h> #define T 3 /* number of threads */ typedef void *(thr_fun_t)(void *arg);... pthread_attr_t attr[t]; pthread_t tid[t]; int thr_arg[t];... for( i = 0; i < T; i++ ) { pthread_attr_init(&attr); /* Initialize attr */ pthread_create(&(tid[i]), &(attr[i]), (thr_fun_t *) fun, (void *)&(thr_arg[i])); }...

31 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

32 variáveis globais: Thread 1 Thread 2 Programação com Múltiplos Threads Código escrito para processos com um único thread raramente funciona correctamente com múltiplos threads: Time Access (errno set) Open (errno overwritten) Errno inspected funções não reentrantes; concorrência (race conditions). Esta observação aplica-se também a código das bibliotecas, incluindo a C standard library : Com gcc, deve usar-se a opção -D_REENTRANT

33 Sumário Conceito de Thread Uso de threads Implementação de Threads Libpthreads Problemas da Programação com Threads Leitura Adicional

34 Leitura Adicional Secção 2.2 de Modern Operating Systems, 2nd Ed. Secções 3.5 e de José Alves Marques e outros, Sistemas Operativos, FCA - Editora Informática, 2009 Outra documentação (transparências e enunciados dos TPs):

Sistemas Operativos: Threads

Sistemas Operativos: Threads Sistemas Operativos: Threads Pedro F. Souto (pfs@fe.up.pt) March 8, 2012 Sumário Conceito de Thread Uso de threads Implementação de Threads Escalonamento de Threads Leitura Adicional Processos em Unix

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread

Leia mais

Programação com Posix Threads

Programação com Posix Threads 9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.

Leia mais

1. Discute as vantagens e desvantagens dum sistema de memória paginada, indicando também a importância do sistema dispôr duma memória cache.

1. Discute as vantagens e desvantagens dum sistema de memória paginada, indicando também a importância do sistema dispôr duma memória cache. Frequência II, 3 de Junho de 2011 Grupo A: Gestão de Memória (7 Valores) 1. Discute as vantagens e desvantagens dum sistema de memória paginada, indicando também a importância do sistema dispôr duma memória

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Sistemas Operativos: Introdução. February 22, 2011

Sistemas Operativos: Introdução. February 22, 2011 Sistemas Operativos: Introdução February 22, 2011 Sumário Introdução aos Sistemas Operativos Organização de Computadores Sistema Operativo Abstracções Oferecidas por um SO Serviços dum SO Interfaces dum

Leia mais

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux System API Máquinas virtuais System ISA (Instruction Set Architecture) Aplicações Chamadas ao sistema Sistema de Operação Hardware User ISA (Instruction Set Architecture) Uma máquina virtual executa software

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

(Aula 15) Threads e Threads em Java

(Aula 15) Threads e Threads em Java (Aula 15) Threads e Threads em Java Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica:

Leia mais

Sistemas Operativos: Deadlocks

Sistemas Operativos: Deadlocks Sistemas Operativos: Deadlocks Pedro F. Souto (pfs@fe.up.pt) March 30, 2012 Deadlocks Um deadlock é uma situação em que 2 ou mais processos ficam bloqueados indefinidamente pode ser uma race condition

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Programação Sistemas

Programação Sistemas Programação Sistemas Fios de Execução Programação de Sistemas Threads : 1/28 Porquê o paralelismo? (1) 1. Crescentes necessidades de computação têm sido satisfeitas com aumento do número de transístores

Leia mais

Um cliente de cada vez:

Um cliente de cada vez: Um cliente de cada vez: envia-recebe resposta pedido recebe trata envia o cliente bloqueia-se até que: o servidor receba a mensagem, a trate e lhe responda outros clientes aguardam pela vez Clientes: enviam

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Segurança: Controlo de Acesso

Segurança: Controlo de Acesso Segurança: Controlo de Acesso November 27, 2009 Sumário Modelo de Controlo de Acesso Matriz de Controlo de Acesso Listas de Controlo de Acesso Capabilities Camadas e Controlo de Acesso Controlo de Acesso

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

É a associação de mais de um fluxo de execução em um único processo.

É a associação de mais de um fluxo de execução em um único processo. Profa. Rita Rodorigo Threads Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento descritores de arquivos abertos, quotas, etc. Um processo possui ainda uma área de

Leia mais

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos. Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um

Leia mais

Na Aula Anterior... O Conceito de Threads

Na 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 mais

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO 4 CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO CONCEITOS BÁSICOS MS-DOS MICROSOFT DISK OPERATION SYSTEM INSTALAÇÃO E CONFIGURAÇÃO DE UM SISTEMA OPERATIVO LIGAÇÕES À INTERNET O que é um sistema operativo?

Leia mais

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Sistemas Operativos Threads 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Dos Processos para os Threads O conceito de thread foi introduzido na tentativa de

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

Programação Concorrente Conceitos Multiprogramação Threads

Programação Concorrente Conceitos Multiprogramação Threads Programação Concorrente Conceitos Multiprogramação Threads Prof. Gibson Pasquini Nascimento gibson.pasquini@gmail.com O que é Concorrência? Uma unidade concorrente é um componente de um programa que não

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento.

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento. Processamento com SPOOL Utilização do e periféricos disco Spool de entrada Spool de saída Computador Puramente sequencial Leitor de cartões operador utilizador impressora resultados 28-02-2007 ASC II -

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca pthread que é de acordo

Leia mais

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1 Entrada e Saída Interface entre periféricos, processador e memória Fonte: Minho - Portugal 1 Ligação Processador/Memória - Periférico Processador Memória Controlo Dados Controlador Fonte: Minho - Portugal

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

ARQUITECTURA DO WINDOWS

ARQUITECTURA DO WINDOWS ARQUITECTURA DO WINDOWS MS DOS No sistema operativo MS-DOS, a BIOS (Basic Input Output System), disponibilizava os drivers para o hardware por meio de: Interrupções de software O próprio MS-DOS exportava

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Processos e Threads Andreza Leite andreza.leite@univasf.edu.br Plano de Aula 2 Gerenciamento de Processos Threads Aplicações com múltiplas Threads Concorrência e Compartilhamento

Leia mais

Curso Técnico de Informática de Sistemas

Curso Técnico de Informática de Sistemas Curso Técnico de Informática de Sistemas Módulo: 772 Sistemas Operativos Formador: Henrique Fidalgo Objectivos da UFCD: Instalar e configurar sistemas operativos. Instalar e configurar utilitários sobre

Leia mais

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

Componentes de um Sistema de Operação

Componentes de um Sistema de Operação Componentes de um Sistema de Operação Em sistemas modernos é habitual ter-se as seguintes componentes ou módulos: Gestor de processos Gestor da memória principal Gestor da memória secundária Gestor do

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Software em Sistemas Distribuídos Aplicativo ou Sistema Operacional Sincronismo Interação Controles Um sistema operacional moderno provê dois serviços fundamentais para o usuário

Leia mais

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2005/2006 Conceito de processo Operações sobre processos Conceito de processo Conceito de processo

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação? Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A

Leia mais

Visão do Usuário da DSM

Visão do Usuário da DSM Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1 Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações

Leia mais

7 Processos. 7.1 Introdução

7 Processos. 7.1 Introdução 1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Arquitectura dos Sistemas Operativos Programação de Sistemas Arquitectura : 1/25 Introdução (1) Um sistema operativo de uso geral é formado por diversas componentes: Gestor de processos

Leia mais

Ciência de Computadores Sistemas Distribuídos e Móveis

Ciência de Computadores Sistemas Distribuídos e Móveis Ciência de Computadores Sistemas Distribuídos e Móveis Lista de Exercícios Data: 4 de Novembro de 2013 Questões sobre o capítulo 1, Tanenbaum & van Steen: Fundamentos 1) Explique o significado de transparência,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA 26. Considerando o sistema de numeração Hexadecimal, o resultado da operação 2D + 3F é igual a: a) 5F b) 6D c) 98 d) A8 e) 6C 27. O conjunto

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

Máquina de estados UNIX O

Máquina de estados UNIX O Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Gestor de Processos. Gestor de Processos

Gestor de Processos. Gestor de Processos Gestor de Processos Núcleo do Sistema Operativo Gestor de Processos Entidade do núcleo responsável por suportar a execução dos processos Gestão das Interrupções Multiplexagem do Processador Despacho efectua

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Princípios de sistemas operativos Rui Maranhão (rma@fe.up.pt) Agenda objectivos de um computador objectivos de um sistema operativo evolução dos sistemas operativos tipos de sistemas

Leia mais

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta

Leia mais

Threads Aula 04 2 Quadrimestre

Threads Aula 04 2 Quadrimestre BC1518 - Sistemas Operacionais Threads Aula 04 2 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Threads: Visão Geral Benefícios Tipos Modelos de multithread

Leia mais

Sistemas Operacionais

Sistemas 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 mais

Grupo I [4v] executaprograma();

Grupo I [4v] executaprograma(); Número: Nome: LEIC/LERC 2012/13-1º Exame de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m

Leia mais

Hardware e Software. Exemplos de software:

Hardware e Software. Exemplos de software: Hardware e Software O hardware é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. Em complemento ao

Leia mais

Xenomai 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) 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 mais

Programação Concorrente em java - Exercícios Práticos Abril 2004

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Sistemas Operativos I

Sistemas Operativos I Arquitectura de um Computador Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sumário Arquitectura de um Computador Estrutura de I/O Estrutura de Armazenamento Hierarquia de Armazenamento Protecção

Leia mais

7 Processamento Paralelo

7 Processamento Paralelo 7 Processamento Paralelo Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time? (The Matrix) 7.1 Introdução Classificação de Sistemas Paralelos Diversas

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Breve introdução ao Real Time Application Interface (RTAI)

Breve 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 mais

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor

Leia mais

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos Sistemas Operativos - 2º Ano 2012/2013 O Windows Server 2003 surgiu em 2003 e substituiu o Windows Server 2000. O Windows

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação

Leia mais

Sistemas Operativos: Introdução. March 14, 2011

Sistemas Operativos: Introdução. March 14, 2011 Sistemas Operativos: Introdução March 14, 2011 Sumário Chamadas ao Sistema Aula TP 2 Organização dum SO Arranque dum Sistema Operativo Sumário Chamadas ao Sistema Aula TP 2 Organização dum SO Arranque

Leia mais

Ntrip Detalhes de Implementação do Protocolo

Ntrip Detalhes de Implementação do Protocolo Ntrip Rogério Takeshi Oyama Milton Hirokazu Shimabukuro Presidente Prudente SP, 05/11/2010 Tópicos Visão geral internet Aplicação Cliente Servidor HTTP Ntrip Threads RTCM Código desenvolvido Internet -

Leia mais

Sistemas Operativos Cap. IV Threads. Prof. José Rogado jose.rogado@ulusofona.pt Universidade Lusófona

Sistemas Operativos Cap. IV Threads. Prof. José Rogado jose.rogado@ulusofona.pt Universidade Lusófona Sistemas Operativos Cap. IV Threads Prof. José Rogado jose.rogado@ulusofona.pt Universidade Lusófona Threads Necessidades e Conceito Modelos de Multithreading Problemas de Threading As Pthreads Windows

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 01 Fundamentos de Computadores Sumário : Conceitos básicos: computador,

Leia mais

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos.

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Processes Chapter 3 PROCESSOS O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Essa comunicação acontece entre processos e eles são fundamentais em SDs. O conceito de processos

Leia mais

Entradas/Saídas. Programação por espera activa Programação por interrupções

Entradas/Saídas. Programação por espera activa Programação por interrupções Entradas/Saídas Programação por espera activa Programação por interrupções Programação por espera activa 1. O programa lê o estado do periférico: CPU pede ao controlador (IN) o valor no registo ESTADO

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Acronis Backup & Recovery 10

Acronis Backup & Recovery 10 Acronis Backup & Recovery 10 Server for Linux Manual de introdução rápido Este documento descreve como instalar e começar a utilizar o Acronis Backup & Recovery 10 Server para Linux. 1. Sistemas operativos

Leia mais

GlobalPhone - Central Telefónica. Manual de Configuração do ATA SPA3102 Linksys

GlobalPhone - Central Telefónica. Manual de Configuração do ATA SPA3102 Linksys Manual de Configuração do ATA SPA3102 Linksys Indíce 1 Introdução... 3 2 Upgrade de Firmware... 3 2.1 Verificação da Versão da FW... 3 2.2 Configuração do IP Fixo sem DHCP Server... 4 2.3 Obtenção do IP

Leia mais

Acronis Servidor de Licença. Manual do Utilizador

Acronis Servidor de Licença. Manual do Utilizador Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA

Leia mais

Alta Disponibilidade na IPBRICK

Alta Disponibilidade na IPBRICK Alta Disponibilidade na IPBRICK IPBRICK International 5 de Dezembro de 2012 1 Conteúdo 1 Introdução 3 1.1 Vantagens.................................... 3 2 Requisitos HA 4 3 Configuração HA 4 3.1 Serviço

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Luís Filipe Terra Ferreira, luis.terra@ua.pt Tiago Costa Gonçalves, tiagogoncalves@ua.pt

Luís Filipe Terra Ferreira, luis.terra@ua.pt Tiago Costa Gonçalves, tiagogoncalves@ua.pt Luís Filipe Terra Ferreira, luis.terra@ua.pt Tiago Costa Gonçalves, tiagogoncalves@ua.pt 1 FreeRTOS Esta apresentação tem como objectivo a caracterização, descrição sintética e exemplificação do sistema

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Exemplo: Explorar Templates e Exceções Incrementar com o uso de STL 2 Crie uma função verificarpalindromo()

Leia mais

Cookies. Krishna Tateneni Jost Schenck Tradução: José Pires

Cookies. Krishna Tateneni Jost Schenck Tradução: José Pires Krishna Tateneni Jost Schenck Tradução: José Pires 2 Conteúdo 1 Cookies 4 1.1 Política............................................ 4 1.2 Gestão............................................ 5 3 1 Cookies

Leia mais

Licenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP

Licenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP Trabalho Nº 4 - VoIP 1. Introdução A utilização de tecnologia VoIP como alternativa às redes telefónicas tradicionais está a ganhar cada vez mais a aceitação junto dos utilizadores, e está sobretudo em

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / 2012. Gestor de Processos

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / 2012. Gestor de Processos Gestor de Processos Núcleo do Sistema Operativo Sistemas Operativos 2011 / 2012 Gestor de Processos Entidade do núcleo responsável por suportar a execução dos processos Gestão das Interrupções Multiplexagem

Leia mais