Sistemas Operativos. Sincronização de threads com objectos kernel no Windows. Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Sistemas Operativos. Sincronização de threads com objectos kernel no Windows. Centro de Cálculo Instituto Superior de Engenharia de Lisboa"

Transcrição

1 Sistemas Operativos Sincronização de threads com objectos kernel no Windows Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca

2 Objectos Kernel Processes Threads Jobs File and console standard input/output/error streams Events Waitable timers Semaphores Mutexes Objectos usados para sincronização de threads Um objecto pode estar sinalizado ou não Uma thread pode-se colocar no estado Wait até que um objecto fique sinalizado As regras de sinalização dos objectos dependem do tipo concreto de objecto: ex, processos e threads sinalizados indicam a sua terminação; uma vez atingido esse estado, não mais sairão Um objecto kernel é partilhável por vários processos 2

3 Funções de espera (Wait) de sinalização de objectos DWORD WaitForSingleObject( HANDLE hobject, DWORD dwmilliseconds); dwmilliseconds = INFINITE = 0xFFFFFFFF (-1) Retorna WAIT_FAILED, WAIT_TIMEOUT, WAIT_OBJECT_0 Esperar por um objecto sinalizado promove o retorno imediato DWORD WaitForMultipleObjects( DWORD dwcount, CONST HANDLE * phobjects, BOOL bwaitall, DWORD dwmilliseconds); bwaitall: true = espera por todos No caso de sucesso, retorna WAIT_OBJECT_0 + N, com N igual a 0 se bwaitall a true com N igual ao valor do índice do objecto sinalizado se bwaitall a false; especial atenção ao objecto sinalizado se pretender-se chamar a função de espera novamente 3

4 Consequências da espera por sinalização de objectos A espera com sucesso por sinalização em alguns objectos promove a alteração de estado nos próprios objectos Um retorno sem sucesso nunca altera o estado do objecto A função WaitForMultipleObjects garante atomicidade na alteração de estado dos objectos pelos quais espera sinalização (no cenário do parâmetro bwaitall vir a true) Quando o objecto kernel não for mais necessário dever-se-á chamar a função BOOL CloseHandle(HANDLE hobject); 4

5 Objecto kernel Event O objecto mais simples de todos Contém um contador de referências (tal como todos os objectos kernel) booleano que indica se o reset ao evento é feito automaticamente ou manualmente quando sinalizado booleano que indica se o estado do evento é sinalizado ou não Utilização adequada na cooperação entre threads: O trabalho a realizar por uma thread depende do trabalho realizado por outra thread Todas as threads na lista de waitables ficam schedulable quando um evento com reset manual é sinalizado Apenas uma thread na lista de waitables fica schedulable quando um evento com reset automático é sinalizado 5

6 Objecto kernel Event Funções relevantes HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, BOOL bmanualreset, BOOL binitialstate, PCTSTR pszname); HANDLE CreateEventEx( PSECURITY_ATTRIBUTES psa, PCTSTR pszname, DWORD dwflags, DWORD dwdesiredaccess); dwflags { CREATE_EVENT_INITIAL_SET, CREATE_EVENT_MANUAL_RESET } library/ms686670(v=vs.85).aspx HANDLE OpenEvent( DWORD dwdesiredaccess, BOOL binherit, PCTSTR pszname); Todos carecem da chamada a CloseHandle quando o objecto não for mais necessário BOOL SetEvent(HANDLE hevent); // coloca o objecto no estado sinalizado BOOL ResetEvent(HANDLE hevent); // coloca o objecto no estado não sinalizado Um evento com reset automático é colocado automaticamente no estado não sinalizado quando uma thread conclui a espera com sucesso BOOL PulseEvent(HANDLE hevent); // O mesmo que SetEvent seguido de ResetEvent Só as threads que estão à espera pelo objecto no momento do Pulse é que ficam schedulable (manual reset); mecanismo de sincronismo pouco usado 6

7 Waitable timer kernel objects HANDLE CreateWaitableTimer( PSECURITY_ATTRIBUTES psa, BOOL bmanualreset, PCTSTR pszname); HANDLE OpenWaitableTime( DWORD dwdesiredaccess, BOOL binherithandle, PCTSTR pszname); BOOL SetWaitableTimer( HANDLE htimer, const LARGE_INTEGER *pduetime, LONG lperiod, PTIMEAPCROUTINE pfncompletionroutine, PVOID pvargtocompletionroutine, BOOL bresume); Normalmente a false BOOL CancelWaitableTimer(HANDLE htimer); >= 0, data absoluta < 0, tempo relativo à chamada da função Asynchronous Procedure Call Normalmente a NULL 7

8 Objecto kernel Semaphore Adequado para contador de recursos Para além dos atributos comuns de um objecto kernel, contém 2 valores a 32 bits com sinal contador com o número máximo de recursos que o semáforo pode controlar contador com o número corrente de recursos disponíveis Regras de sinalização contador corrente de recursos maior que zero, o semáforo está sinalizado contador corrente de recursos igual a zero, o semáforo não está sinalizado o sistema nunca permite que o contador corrente de recursos seja negativo o valor do contador corrente de recursos não pode ser nunca maior do que o valor do contador com o número máximo de recursos 8

9 Objecto kernel Semaphore Funções relevantes HANDLE CreateSemaphore( PSECURITY_ATTRIBUTES psa, LONG linitialcount, LONG lmaximumcount, PCTSTR pszname); HANDLE CreateSemaphoreEx( PSECURITY_ATTRIBUTES psa, LONG linitialcount, LONG lmaximumcount, PCTSTR pszname, DWORD dwflags, DWORD dwdesiredaccess); HANDLE OpenSemaphore( DWORD dwdesiredaccess, BOOL binherit, PCTSTR pszname); Uma thread que solicite um recurso com o contador de recursos corrente a zero é colocada no estado Wait O teste e decremento do contador corrente de recursos é feito de forma atómica BOOL ReleaseSemaphore( HANDLE hsemaphore, LONG lreleasecount, PLONG plpreviouscount); Aceita o argumento NULL Indica quantos recursos estão disponíveis inicialmente Reservado, deverá ser 0 9

10 Objecto kernel Mutex Garante exclusão no acesso a um recurso Para além dos atributos comuns de um objecto kernel, contém identificador da thread que detém o mutex um contador de recursões Regras de sinalização Se o identificador da thread for 0, o mutex não é detido por nenhuma thread e, portanto, está sinalizado Se o identificador da thread for diferente de 0, o mutex é detido por uma thread e, portanto, não está sinalizado Mesmo sem estar sinalizado, o acesso a recursos guardados pelo mutex pode ser concedido num caso especial: a thread que solicita o recurso é a mesma que já o detém 10

11 Objecto kernel Mutex Funções relevantes 0 false CREATE_MUTEX_INITIAL_OWNER true HANDLE CreateMutex( PSECURITY_ATTRIBUTES psa, BOOL binitialowner, PCTSTR pszname); HANDLE CreateMutexEx( PSECURITY_ATTRIBUTES psa, PCTSTR pszname, DWORD dwflags, DWORD dwdesiredaccess); HANDLE OpenMutex( DWORD dwdesiredaccess, BOOL binheritowner, PCTSTR pszname); Uma thread é colocada no estado Wait quando solicita o recurso guardado pelo mutex se o identificador da thread for diferente de 0 e diferente da thread que solicita o recurso O teste do identificador e incremento do contador de recursões é feito de forma atómica BOOL ReleaseMutex(HANDLE hmutex); Decrementa o contador de recursões se o identificador da thread for igual à thread correntte O mutex fica sinalizado se o contador de recursões atingir o valor 0 Uma função de espera retorna o valor especial WAIT_ABANDONED caso a thread que detém o mutex termine sem o libertar (o SO detecta-o colocando o identificador da thread e o contador de recursões a 0) 11

12 Resumo bib: Windows via C/C++, Richter, 5 edition, Tab. 9-3 Object When nonsignaled When signaled Process When still alive When terminates (ExitProcess, TerminateProcess) Thread When still alive When terminates (ExitProcess, TerminateProcess) Job File When time s job has not expired When I/O request is pending When time job expires When I/O request completes Console input No input exists When input is available File change notifications No file have changed When fyle system detects changes Successful Wait Side Effect Reset notification 12

13 Resumo (continuação) Object When nonsignaled When signaled Successful Wait Side Effect Auto-reset event Manual-reset event Auto-reset waitable timer Manual-reset waitable timer ResetEvent, PulseEvent or successful wait ResetEvent or PulseEvent CancelWaitableTimer or successful wait CancelWaitableTimer When SetEvent or PulseEvent is called When SetEvent or PulseEvent is called When time comes due (SetWaitableTimer) When time comes due (SetWaitableTimer) Semaphore Successful wait When count > 0 (ReleaseSemaphore) Mutex Successful wait When unowned by a thread (ReleaseMutex) Reset event Reset timer Decrement count by 1 Give ownership to a thread 13

14 Resumo (continuação) Object When nonsignaled When signaled Successful Wait Side Effect CriticalSection (user-mode) Successful wait ((Try)Enter- Critical-Section) When unowned by a thread (LeaveCriticalSecti on) Give onweship to a thread SWRLock (usermode) Successful wait (AquireSRWLock( Exclusive))) When unowned by a thread (ReleaseSRWLoc k(exclusive)) Gives onweship to a thread Condition variable (user-mode) Successful wait (SleepConditionVa riable) When woken up (Wake(All)Conditio nvariable) 14

15 Bibliografia Windows via C/C++, Richter e Nasarre, cap. 9, 5ª edição MSDN windows development 15

Sistemas Operativos. Sincronização de threads com objectos kernel no Windows. Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Sistemas Operativos. Sincronização de threads com objectos kernel no Windows. Centro de Cálculo Instituto Superior de Engenharia de Lisboa Sistemas Operativos Sincronização de threads com objectos kernel no Windows Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt) Objectos Kernel Processes

Leia mais

Mecanismos de Sincronismo da Win32

Mecanismos de Sincronismo da Win32 Mecanismos de Sincronismo da Win32 Jeffrey Richter, Christophe Nasarre, Windows via C/C++, Fifth Edition, Microsoft Press, 2008 [cap. 8 e 9] Microsoft, Microsoft Developer s Network (MSDN) Mecanismos de

Leia mais

Universidade Federal de São Carlos Departamento de Computação. Sistemas Operacionais. Sincronização de Threads no Windows

Universidade Federal de São Carlos Departamento de Computação. Sistemas Operacionais. Sincronização de Threads no Windows Universidade Federal de São Carlos Departamento de Computação Sistemas Operacionais Sincronização de Threads no Windows Padrões de Projeto com Thread Vantagens do uso de padrões no projeto com threads:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 02 Processos e Threads Edirlei Soares de Lima Programas e Processos Programa: Entidade estática e permanente; Composto por sequencias de instruções; Processo:

Leia mais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ISABELLE NEDILHA OKUMA LUIZ RODOLFO MACHADO MECANISMOS DE MANIPULAÇÃO DE PROCESSSOS EM WINDOWS

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Sistemas Operativos. Processos e threads no Windows. Jorge Martins baseado parcialmente em slides do Eng.

Sistemas Operativos. Processos e threads no Windows. Jorge Martins baseado parcialmente em slides do Eng. Sistemas Operativos Processos e threads no Windows Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado parcialmente em slides do Eng. João Patriarca Handles

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos Semáforos Semáforos Mecanismo de sincronização que não requer espera ocupada Dijkstra propôs usar uma variável inteira para contar o n o de WAKEUPs para uso futuro Menos

Leia mais

Programação concorrente (processos e threads)

Programação concorrente (processos e threads) Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo

Leia mais

Problema do Produtor -Consumidor. Solução por semáforos

Problema do Produtor -Consumidor. Solução por semáforos Problema do Produtor -Consumidor Solução por semáforos Autoria Autores alunos da disciplina SO II Local Instituto de Informática UFRGS Versão v7 agosto de 2008 por C. Geyer Visão geral do assunto...2 Conceito...3

Leia mais

Sistemas Operativos. Gestão de memória no Windows NT

Sistemas Operativos. Gestão de memória no Windows NT Sistemas Operativos Gestão de memória no Windows NT Windows Internals, Russinovich, cap. 9, Memory Management Windows Via C/C++, Richter, cap. 13, cap. 14. MSDN, http://msdn.microsoft.com/en-us/library/aa366779(v=vs.85).aspx

Leia mais

Sistemas Distribuídos Aula 7

Sistemas Distribuídos Aula 7 Sistemas Distribuídos Aula 7 Aula passada Atomicidade Test-and-set Locks revisitado Semáforos Dois problemas Aula de hoje Limitação dos semáforos Monitores Variáveis de condição Semântica do signal Sincronização

Leia mais

Prof. Silvana Rossetto 9 de julho de DCC/IM/UFRJ

Prof. Silvana Rossetto 9 de julho de DCC/IM/UFRJ Computação Concorrente (MAB117) Gabarito Segunda Prova Prof. Silvana Rossetto 9 de julho de 2015 1 DCC/IM/UFRJ Questão 1 (2,5 pts) O código Java abaixo implementa uma solução para o problema do barbeiro

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 19: Multithreading. Threads: Linhas de processamento. Exemplos usando a API do Windows. Prof. Jean Marcelo SIMÃO Threads Introdução/Revisão Threads

Leia mais

Input/Output. Acesso síncrono e assíncrono. Jorge Martins (jmartins@isel.pt) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Input/Output. Acesso síncrono e assíncrono. Jorge Martins (jmartins@isel.pt) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Input/Output Acesso síncrono e assíncrono Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) Exemplos de dispositivos de Input/Output no Windows Ficheiro normal

Leia mais

INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)

INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5) INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5) 1.1 (Verdade/Falso) Itens próprios de processos são: Espaço de endereçamento,

Leia mais

Windows Thread Scheduling

Windows Thread Scheduling Scheduling and Dispatch Windows Thread Scheduling Baseado em slides do Windows Operating System Internals Curriculum Development Kit, desenvolvido para a microsoft por David A. Solomon, Mark E. Russinovich

Leia mais

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28 Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 28 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência 2 / 28 Multiprogramação

Leia mais

Universidade Federal de São Carlos Departamento de Computação. Sistemas Operacionais. Gerenciamento de Threads no Windows

Universidade Federal de São Carlos Departamento de Computação. Sistemas Operacionais. Gerenciamento de Threads no Windows Universidade Federal de São Carlos Departamento de Computação Sistemas Operacionais Gerenciamento de Threads no Windows Gerenciamento de Processo Um sistema operacional envolve atividades assíncronas e

Leia mais

Linguagem C. Produção de programas em C (Ligação dinâmica) João Pedro Patriarca

Linguagem C. Produção de programas em C (Ligação dinâmica) João Pedro Patriarca Capítulo 7, secções 10-12 Linguagem C Produção de programas em C (Ligação dinâmica) Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt) Ligação estática

Leia mais

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016 GSI018 Sistemas Operacionais 07/09/2016 Sincronização e Comunicação de/entre Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Sistemas Operacionais II Windows Conceitos Básicos Geraldo Braz Junior Departamento de Informática - UFMA 2 Introdução Job Coleção de um ou mais processos gerenciados como uma unidade; Define cotas e limites

Leia mais

Sistemas Operacionais de Tempo Real. Sérgio Campos

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

Sistemas Operativos. Gestão de memória no Windows NT

Sistemas Operativos. Gestão de memória no Windows NT Sistemas Operativos Gestão de memória no Windows NT Windows Internals, Russinovich, cap. 9, Memory Management Windows Via C/C++, Richter, cap. 13, cap. 14. MSDN, http://msdn.microsoft.com/en-us/library/aa366779(v=vs.85).aspx

Leia mais

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João

Leia mais

Linguagem C (continuação)

Linguagem C (continuação) Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João

Leia mais

Semáforos. Walter Fetter Lages.

Semáforos. Walter Fetter Lages. Semáforos 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 Fetter

Leia mais

1B Conceitos Básicos: Indique Verdade/Falso

1B Conceitos Básicos: Indique Verdade/Falso INE5645 - Programação Paralela e Distribuída - Prova 1B 24/04/2017 Nome 1B Conceitos Básicos: Indique Verdade/Falso a) (Verdade/Falso) Threads distintas em um processo não são tão independentes quanto

Leia mais

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.

Leia mais

Sistemas Operativos Cap. III Gestão de Processos. Prof. José Rogado Universidade Lusófona

Sistemas Operativos Cap. III Gestão de Processos. Prof. José Rogado Universidade Lusófona Sistemas Operativos Cap. III Gestão de Processos Prof. José Rogado jose.rogado@ulusofona.pt Universidade Lusófona Processos Conceito de Processo Escalonamento de Processos Operações em Processos Cooperação

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 C Run-time library. Prof.

Leia mais

Sincronização e Comunicação

Sincronização e Comunicação Sincronização e Comunicação Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 28 Sumário 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens

Leia mais

Instituto Superior de Engenharia de Lisboa Licenciatura em Engenharia Informática e de Computadores

Instituto Superior de Engenharia de Lisboa Licenciatura em Engenharia Informática e de Computadores Instituto Superior de Engenharia de Lisboa Licenciatura em Engenharia Informática e de Computadores Sistemas Operativos, Verão de 2014/2015 Exame de 1ª Época Parte I Duração 1h 15m 1. [2,5] Considere um

Leia mais

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while? Nesta aula... 1 2 3 4 indefinida 5 Valores lógicos: booleanos Tipo do Python para guardar os valores lógicos, verdadeiro e falso: booleano (George Bool, matemático inglês) Valores lógicos podem ter apenas

Leia mais

Semáforo Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Semáforo Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 1 Semáforo Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Semáforo Sumário Semáforo Problema produtor-consumidor

Leia mais

ecos - Gestores de dispositivos

ecos - Gestores de dispositivos ecos - Gestores de dispositivos gestores de dispositivos ( device drivers ) interface aplicacional (API) gestor de linha série raw serial driver tty driver ecos - device driver - user API cyg_io_lookup

Leia mais

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Agenda. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Agenda. Introdução aos Sistemas Operacionais. Sobre esta apresentação aos Sistemas Operacionais Volnys Bernal 1998-2010 1 Volnys Bernal 1998-2010 2 Agenda aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Laboratório de Sistemas

Leia mais

Laboratório de Programação I

Laboratório de Programação I Laboratório de Programação I Estruturas de Controle: Parte 2 Fabricio Breve Select Case ComboBox cbnota Label Label lblconceito Código do evento SelectedIndexChanged do componente ComboBox Public Class

Leia mais

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão

Leia mais

Sistemas Distribuídos Aula 3

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

Sumário. Sistemas Operativos 1

Sumá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 mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Sincronização entre processos Edson Moreno edsonmoreno@pucrsbr http://wwwinfpucrsbr/~emoreno Sumário Conceituação Princípios de concorrência Região crítica

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Programação multithread Prática

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Programação concorrente Capítulo 3 Programa executado por apenas um processo é dito de programa seqüêncial Existe apenas um fluxo de controle

Leia mais

Sistemas Operativos. Escalonamento e sincronização. Rui Maranhão

Sistemas Operativos. Escalonamento e sincronização. Rui Maranhão Sistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação maximiza o tempo de utilização do CPU utilização do CPU = 1 - p n n é o número de processos

Leia mais

Linguagem C. Produção de programas em C (Ligação estática) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Linguagem C. Produção de programas em C (Ligação estática) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Capítulo 7, secções.1-.9 Capítulo 4, secções.5-.11 Linguagem C Produção de programas em C (Ligação estática) Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt)

Leia mais

TE244 - Sistemas Operacionais Lista Exercícios 1

TE244 - Sistemas Operacionais Lista Exercícios 1 Carlos Marcelo Pedroso 5 de abril de 2017 Exercício 1: O IBM 360 modelo 75 é cerca de 50 vezes mais rápida do que o IBM 360 modelo 30. Todavia, o tempo de ciclo (frequência) apenas cinco vezes mais rápido.

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo

Leia mais

Sincronização de Threads

Sincronização de Threads Sincronização de Threads Sistema justo quando cada threadobtém ace so suficiente a recursoslimitadosa fim de progredir razoavelmente Starvation ocorre quando uma ou maisthreadsestão impedidasde obter ace

Leia mais

Sincronização e memória compartilhada no Linux

Sincronização e memória compartilhada no Linux Sincronização e memória compartilhada no Linux Memória compartilhada Modelo de memória UNIX Processo aloca (allocate) um segmento no qual deseja compartilhar Processos que desejam acessar o segmento alocado,

Leia mais

Processos e Tarefas na Win32

Processos e Tarefas na Win32 Processos e Tarefas na Win32 Processos e Tarefas na Win32 Um processo é uma instância de uma aplicação em execução e é composto por duas partes: Um objecto do kernel que o sistema operativo usa para gerir

Leia mais

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de

Leia mais

Teste de Sistemas de Operação 30 de Maio de 2009

Teste de Sistemas de Operação 30 de Maio de 2009 Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Site: http://oficinaderobotica.ufsc.br/ Canal: Oficina de Robótica UFSC https://www.youtube.com/channel/uc4oojsp2fhfkdrnj0wd7iag

Leia mais

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação Volnys Bernal 1998-2016 1 Volnys Bernal 1998-2016 2 Sumário aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br Laboratório de Sistemas Integráveis http://www.lsi.usp.br/ Objetivos de um Sistema

Leia mais

Programação Concorrente em Java

Programação Concorrente em Java Programação Concorrente em Java Prof. Orlando Loques - IC/UFF versão 17-04-2001 Referências: - Programação Concorrente em Java, Sérgio Teixeira de Carvalho & Leonardo N. M. Reis IC-UFF - Ousterhout, J.:

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

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES P R O C E S S O S A D M I N I S T R A Ç Ã O D E S I S T E M A S 2 0 1 7 / 2 0 1 8 P E D R O B R A N D Ã O 2 REFERÊNCIAS DOS SLIDES O conteúdo destes slides é baseado no livro da disciplina: Unix and Linux

Leia mais

Problema dos Leitores/Escritores

Problema dos Leitores/Escritores Sincronização: Semáforos Problema dos Leitores/Escritores Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina: Sistemas Operacionais

Leia mais

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 2 Unidade 2 DURAÇÃO: 50 MINUTOS

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 2 Unidade 2 DURAÇÃO: 50 MINUTOS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 2 Unidade 2 DURAÇÃO: 50 MINUTOS Aluno: GABARITO Escore: 1 a Questão (40) a) Descreva o quê, no

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

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid Conteúdo Programas e Aula 1-1 Programas e (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 3 Referências

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Processador INTRODUÇÃO Projetado apenas para executar instruções Não é capaz de distinguir qual programa está em execução Processo

Leia mais

Capítulo 5 WIN 32 OBJETOS. Universidade Federal do Rio de Janeiro Núcleo de Computação Eletrônica Divisão de Assistência ao Usuário

Capítulo 5 WIN 32 OBJETOS. Universidade Federal do Rio de Janeiro Núcleo de Computação Eletrônica Divisão de Assistência ao Usuário WIN 32 Capítulo 5 O objetivo deste capítulo é apresentar os principais elementos, operações e características da WIN32 e suas APIs. Neste capítulo encontram-se uma descrição sucinta dos principais objetos,

Leia mais

Monitores. Setembro de 2009. Monitores

Monitores. Setembro de 2009. Monitores Setembro de 2009 mecanismo de sincronização clássico referência influência de conceitos de programação estruturada C. A. R. Hoare, Monitors: an operating system structuring concept, Communications of the

Leia mais

1. Objetivo Injetar seu próprio código em aplicações de terceiros através de uma DLL. Fazendo-a ser carregada pelo programa alvo.

1. Objetivo Injetar seu próprio código em aplicações de terceiros através de uma DLL. Fazendo-a ser carregada pelo programa alvo. Programa: DLL Injector Autor: Wagner Barongello Data: 02/11/2009 Objetivo: Injetar seu próprio código em aplicações de terceiros através de uma DLL. Fazendo-a ser carregada pelo programa alvo. W a g n

Leia mais

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução Sistemas Operativos Objetivo O objetivo deste questionário é levá-lo a rever os conceitos básicos dos sistemas operativos, bem como os algoritmos de scheduling e mecanismos de sincronização estudados.

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução

Leia mais

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

Leia mais

Fundamentos de Sistemas Operacionais

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

Sistemas Operativos. Introdução. Slides adaptados dos slides do professor Jorge Martins. Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Sistemas Operativos. Introdução. Slides adaptados dos slides do professor Jorge Martins. Centro de Cálculo Instituto Superior de Engenharia de Lisboa Sistemas Operativos Introdução Slides adaptados dos slides do professor Jorge Martins Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt) Avaliação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos Exclusão Mútua Mecanismos para se Obter Exclusão MútuaM Mecanismos de Hardware: Inibição de Interrupções Instrução TSL (Test and Set Lock) Mecanismos de Software: Com Espera

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18B: Introdução à Multithreading. Exemplos: Programação OO Multithreading com pthreads. Aluno: Vagner Vengue Threads Orientadas a Objeto Thread Orientada

Leia mais

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Agenda. Introdução aos Sistemas Operacionais. Sobre estes slides

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Agenda. Introdução aos Sistemas Operacionais. Sobre estes slides aos Sistemas Operacionais Volnys Bernal 1998-2005 1 Volnys Bernal 1998-2005 2 Agenda aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Objetivos do Sistema

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade II Concorrência

UFRJ IM - DCC. Sistemas Operacionais I. Unidade II Concorrência UFRJ IM - DCC Sistemas Operacionais I Unidade II 19/2/2007 Prof Antonio Carlos Gay Thomé Prof Aux Simone Markenson Pech 1 Organização da Unidade Processos Threads Princípios da ncia Exclusão o Mútua M

Leia mais

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C Referências Linguagem C Jun Okamoto Jr. Kernighan, Brian W. and Ritchie, Dennis M. The C Programming Language (ANSI C); Prentice Hall; 2ª Edição; 1988 Microchip Technology Inc. MPLAB XC8 C Compiler User

Leia mais

Alexandro Baldassin Programação Concorrente 2sem, 2017

Alexandro Baldassin Programação Concorrente 2sem, 2017 Alexandro Baldassin Programação Concorrente 2sem, 2017 2 Programação concorrente Desempenho Lock global Complexidade 3 Programação concorrente Lock-free Desempenho Locks finos Lock global Complexidade

Leia mais

Problemas Típicos de Sincronização

Problemas Típicos de Sincronização Sincronização Parte II Programação Concorrente Sistemas Operativos 2012 / 2013 Problemas Típicos de Sincronização Problema dos Produtores/Consumidores tarefas que produzem informação para um buffer e tarefas

Leia mais

Comunicação entre processos

Comunicação entre processos Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Bacharelado em Sistemas de Informação Comunicação entre processos Macilon Araújo Costa Neto macilon@ufac.br Capítulo 2 do livro do

Leia mais

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

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda

Leia mais

Exceções no Fluxo de Execução: Interrupções e Traps

Exceções no Fluxo de Execução: Interrupções e Traps Exceções no Fluxo de Execução: Interrupções e Traps 1 Fluxo de Controle Fluxo de controle de um programa: a 0 a 1 a 2 a n sequência de endereços I 0 I 1 I 2 I n sequência de instruções O fluxo mais simples

Leia mais

Arquitetura WindowsNT. Sistemas Operacionais. Página 2. 2000-2004 Volnys Bernal. Arquitetura. Arquitetura. Arquitetura. Arquitetura.

Arquitetura WindowsNT. Sistemas Operacionais. Página 2. 2000-2004 Volnys Bernal. Arquitetura. Arquitetura. Arquitetura. Arquitetura. WindowsNT 1 2 Agenda Windows NT Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys! do! Ambiente de Sistema Operacional!! Object! Escalonamento 3 4 Usuário Supervisor I/O Object Microkernel

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais Volnys Bernal 1998-2017 1 Introdução aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br Laboratório de Sistemas Integráveis http://www.lsi.usp.br/ Volnys Bernal 1998-2017 2 Sumário Objetivos

Leia mais

ENADE 2011 SISTEMAS OPERACIONAIS

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

Comunicação entre Processos Memória Compartilhada

Comunicação entre Processos Memória Compartilhada Comunicação entre Processos Memória Compartilhada 3/23/17 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite

Leia mais

Sistemas Operativos: Concorrência

Sistemas Operativos: Concorrência Sistemas Operativos: Concorrência Pedro F. Souto (pfs@fe.up.pt) March 16, 2012 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks

Leia mais

Gestão de memória - Memory Management Unit (MMU)

Gestão de memória - Memory Management Unit (MMU) Gestão de memória - Memory Management Unit (MMU) A distinção entre espaço de edereçamento virtual e espaço de endereçamento físico é fundamental na eficiente gestão do recurso memória física (RAM) por

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado

Leia mais

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON 02/47 O QUE É PYTHON? Python é uma linguagem de propósito geral, de alto nível e interpretada Python será

Leia mais

Controlador Lógico Programável

Controlador Lógico Programável Controlador Lógico Programável Prof. Stefano 1 Definição IEC 1131-3 É um equipamento de controle composto de componentes eletrônicos e memória programável que contém dados e programas com a finalidade

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. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos, Processos Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Introduzir a noção de processo um programa em execução que é a base de toda a computação Descrever as várias

Leia mais

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Sumário de Aula } Conceito de Memória } Variáveis e Tipos de Dados } Constantes 2 Conceito de Memória } A memória de um computador é

Leia mais

7 SINCRONIZAÇÃO DE PROCESSOS

7 SINCRONIZAÇÃO DE PROCESSOS 7 SINCRONIZAÇÃO DE PROCESSOS Quando se trabalha com processos cooperativos, eles podem afetar uns aos outros. Eles compartilham recursos, principalmente posições de memória e arquivos. O acesso a dados

Leia mais

Sumário. Estruturas de suporte à paginação Entrada de tabela de páginas Visão geral da tradução de um endereço virtual

Sumário. Estruturas de suporte à paginação Entrada de tabela de páginas Visão geral da tradução de um endereço virtual Sumário Estruturas de suporte à paginação Entrada de tabela de páginas Visão geral da tradução de um endereço virtual Gestão de memória no csoker Layout do espaço de endereçamento linear Layout da memória

Leia mais