Notas da Aula 4 - Fundamentos de Sistemas Operacionais

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

Download "Notas da Aula 4 - Fundamentos de Sistemas Operacionais"

Transcrição

1 Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta linha de execução determina qual a sequência de instruções executadas pelo processo. No entanto, um processo pode requisitar ao SO a criação de outras threads. Ao requisitar a criação de uma nova thread, o processo informa qual rotina será executada pela thread. Por exemplo: int main() { x = x+1; create_thread(funcao_1); y = x + 5; return(0); void funcao_1() { k = l + 1;... Nos trechos de código acima, o processo inicialmente criado tem uma única thread que executa a sequência de instruções da função main(). Em um dado ponto desta execução, o processo faz uma chamada de sistema (neste exemplo, denominada create_thread()) que requisita ao SO a criação de uma nova thread. A nova thread, por sua vez, deve executar a função denominada funcao_1(). A partir deste momento, o processo passa a contar com duas threads simultâneas. Ou seja, uma linha de execução que continua executando as instruções da função main() e outra que passa a executar a sequência de instruções da função funcao_1(). Um efeito similar pode ser alcançado com o uso da função fork() discutida nas aulas anteriores. Neste caso, o código ficaria: int main() { x = x+1;

2 pid = fork(); if (pid == 0) funcao_1(); y = x + 5; return(0); void funcao_1() { k = l + 1;... Após a chamada da função fork(), o SO cria uma cópia exata do processo original. Ambas prosseguem suas execuções a partir do comando if. No entanto, para o processo recémcriado, pid terá valor 0. Este novo processo terá então sua execução desviada para a função funcao_1(), enquanto o processo original continuará a execução da função main(). Qual, então, é a diferença entre threads e processos? Quando uma nova thread é criada, o SO não precisa criar uma duplicata do espaço de endereçamento do processo. Ao invés disso, a nova thread utiliza o mesmo espaço de endereçamento original. Por outro lado, ao chamar a função fork(), o processo é completamente duplicado: uma nova área na memória física é criada para acomodar o novo processo e toda uma rotina de cópia do estado do processo original é executada. Ao contrário do que acontece com processos diferentes, para os quais um grande número de informações sobre o estado do processo atual precisam ser salvas, no chaveamento entre threads de um mesmo processo apenas alguns poucos registradores precisam ser guardados. Por estas características, as threads são chamadas às vezes de processos leves. Em resumo, uma thread é apenas uma linha de execução de um processo, representada pelo valor de alguns registradores. Uma thread pertence a um processo, enquanto um processo pode ter mais de uma thread. Também é importante notar que todo processo tem ao menos uma thread. Embora threads e processos sejam conceitos bem diferentes, ambos são, muitas vezes, citados como dois mecanismos similares de programação. De fato, do ponto de vista de um programador, a grande diferença entre threads e processos é o fato de que threads de um mesmo processo compartilham memória, enquanto processos distintos têm espaços de endereçamento separados. O compartilhamento de memória entre threads geralmente é visto como uma vantagem, já que simplifica a troca de informação. Para que dois processos distintos se comuniquem, é necessária a adoção de alguma outra solução mais complexa. Por outro lado, o compartilhamento de memória pode tornar a depuração de um programa mais difícil. Isso porque o erro em uma thread, que faz com que ela escreva valores inválidos na

3 memória, pode se manifestar como um sintoma em outra thread, que simplesmente lê valores da memória e efetua algum processamento. 2. Programação Concorrente Dizemos que um programa é concorrente quando ele utiliza diversas linhas de execução simultaneamente. Em outras palavras, um programa concorrente é aquele que utiliza várias threads ou processos para executar a tarefa a qual se propõe. Programas concorrentes podem, inclusive, misturar o uso de threads com processos. Ou seja, o programa pode criar um conjunto de processos os quais, por sua vez, podem disparar várias threads de execução. É tarefa do programador determinar qual combinação de threads e processos faz mais sentido para o programa em questão. Há inúmeros exemplos de programas concorrentes usados comumente. Um exemplo bastante claro é um servidor web. Quando iniciado, o servidor tem, inicialmente, um único processo ou uma única thread que aguarda por conexões. Ao receber uma conexão, o servidor pode criar um novo processo (ou thread) para cuidar do atendimento desta conexão. O processo ou thread principal volta ao estado inicial para esperar por novas conexões. Programas concorrentes também são muitas vezes chamados de programas paralelos, pois eles utilizam várias linhas de execução paralelas no tempo. Programas que utilizam uma única thread ou processo são conhecidos como programas sequenciais. Há algumas razões para a utilização da programação concorrente. Uma delas é o fato de que algumas tarefas são intrinsecamente paralelas. Considere o exemplo do servidor web. Espera-se que um servidor seja capaz de atender a várias requisições simultâneas. Embora seja possível implementar isso em um programa sequencial, é mais intuitivo escrever este programa de maneira paralela. Além disso, programas paralelos podem ser mais eficientes que os sequenciais. Isso ocorre por duas razões: 1. Existência de sistemas multiprocessados: com vários processadores, é possível executar duas ou mais threads ao mesmo tempo. Programas sequenciais, por outro lado, não conseguem tirar proveito disso. 2. Sobreposição de operações de E/S: mesmo em sistemas monoprocessados, quando um processo ou thread de um programa concorrente requisita uma operação de E/S, o tempo ocioso pode ser utilizado por outro processo ou thread do programa. Em um programa sequencial, toda a execução é bloqueada pelo pedido de E/S. Existem, entretanto, desvantagens na programação concorrente. Em primeiro lugar, é preciso haver uma coordenação entre as threads ou processos, o que nem sempre é trivial. Além disso, erros em programas concorrentes são mais difíceis de se depurar, pois é preciso identificar qual thread ou processo causou o problema. Programas concorrentes são também menos intuitivos, pois os programadores em geral tem uma linha de raciocínio linear (sequencial). Isso faz com que o programador faça algumas suposições inválidas, como por exemplo sobre a velocidade de execução dos processos. Por último, a ordem de execução dos

4 processos ou threads de um programa concorrente costuma ser aleatória. Isso dificulta ainda mais a depuração dos programas, pois erros muitas vezes são dependentes da ordem em que os processos são executados. Existem dois tipos diferentes de paralelismo, ligados ao tipo de hardware no qual um programa concorrente é executado. Se um programa concorrente é executado em máquinas multiprocessadas, diz-se que o paralelismo é real. Caso o programa seja executado em uma máquina monoprocessada, diz-se que o paralelismo é aparente. 3. Especificação do Paralelismo As chamadas exatas para criação e manipulação de threads e processos variam de SO para SO. No entanto, existem alguns tipos gerais de representação para programas concorrrentes. Embora os nomes das funções possam ser diferentes em um dado sistema, a estrutura do programa será sempre similar a uma destas representações. No paralelismo explícito, o programador define (explicitamente) em que ponto da execução cada thread ou processo será criado e que tarefa cada um executará. O programador é responsável pela criação, comunicação, sincronização e encerramento de todas as threads e processos. Para isso, são utilizadas três funcionalidades básica: 1. Função create_process(): cria um novo processo (ou thread). 2. Função exit(): encerra um processo ou uma thread. 3. Função wait_process(): o processo que chama esta função, espera que o processo (ou thread) especificado como argumento seja encerrado. No paralelismo implícito, o programador não se preocupa com como criar e gerenciar as threads ou processos. Ao invés disso, ele simplesmente indica no código pontos que devem ser paralelizados. O compilador da linguagem na qual o programa está sendo escrito é responsável por seguir as indicações do programador e criar as threads ou processos necessários. Neste tipo de representação, são utilizados dois comandos básicos: o parbegin e o parend. O parbegin indica o início de um bloco que deve ser paralelizado pelo compilador. O parend indica o final deste bloco. Cada instrução dentro do bloco deve ser executada por uma thread ou processo diferente. Geralmente, os Sistemas Operacionais fornecem suporte apenas à versão explícita de paralelismo, provendo funções similares às três apresentadas. Por este motivo, o paralelismo explícito é mais comum. Algumas linguagens, no entanto, dão suporte ao paralelismo implícito. Um exemplo é a biblioteca OpenMP, disponível para C e C++. Comparativamente, o paralelismo implícito é mais simples, do ponto de vista do programador. Ele não precisa se preocupar com tantos detalhes de gerenciamento de threads e processos. Por outro lado, o paralelismo explícito é mais flexível, dando mais liberdade para o programador gerenciar como achar melhor suas threads e processos.

5 Há ainda uma terceira maneira de representar programas concorrentes. São os chamados grafos de precedência. Nestes grafos, cada vértice representa uma determinada tarefa a ser executada no programa. Um arco saindo de uma tarefa A para outra tarefa B indica que a tarefa B só pode ser iniciada depois que a tarefa A tiver sido concluída. Desta forma, é possível representar facilmente relações de dependência entre tarefas. Algumas plataformas recebem um programa especificado através de um grafo de precedência e ordenam a execução de processos ou threads relativos a cada tarefa de modo a otimizar a execução (e.g., reduzir o tempo total de execução do programa). 4. Compartilhamento de Recursos Geralmente, processos ou threads de um programa concorrente compartilham recursos. Há vários tipos de recursos que podem ser compartilhados. Alguns exemplos são: variáveis, sockets e arquivos. Muitas vezes, estes recursos são usados como um meio de comunicação entre os processos ou threads do programa concorrente. O recurso compartilhado mais comum é, possivelmente, a memória. Threads de um mesmo processo compartilham todo o espaço de endereçamento, então qualquer variável de um programa concorrente acessada por várias threads é compartilhada. Mesmo processos separados podem compartilhar memória, através de chamadas de sistema. Tais chamadas pedem ao SO que aloque uma área de memória física que pode ser acessada por um conjunto de processos. Ter uma variável compartilhada pode servir como um mecanismo de comunicação entre processos ou threads. Por exemplo, duas threads podem compartilhar uma variável inicio_thread_1, inicialmente com valor 0. Quando a thread 1 começa sua execução, ela pode alterar o valor da variável para 1. Desta forma, com um simples teste do valor da variável inicio_thread_1, a thread 2 sabe se a outra thread foi iniciada ou não. Um exemplo clássico de aplicação de programação concorrente com compartilhamento de memória é o problema do Produtor-Consumidor. Neste tipo de aplicação, existem vários processos (ou threads) que atuam como produtores de dados. Por exemplo, as threads produtoras podem realizar um determinado cálculo que resulta em um dado a ser impresso. Há também um ou mais processos (ou threads) que atuam como consumidores. Ou seja, eles recebem os dados produzidos e realizam algum tipo de operação sobre eles (por exemplo, imprimi-los na tela). Os produtores e os consumidores compartilham uma área de memória na qual os dados são colocados e posteriormente retirados. Um sistema comum que funciona desta forma são os servidores de impressão. Vários programas podem requisitar que determinados dados (arquivos) sejam impressos. Estes processos são os produtores. Ao invés de cada processo tentar enviar diretamente seus dados para a impressora, eles colocam os dados em uma área de memória compartilhada, chamada de spool de impressão. Um processo especializado lê os dados do spool e faz a comunicação com a impressora para realizar a impressão propriamente dita.

6 Em geral, a área de memória compartilhada é um buffer circular. Este buffer tem posições de memória para acomodar os dados produzidos, além de dois ponteiros. Um deles aponta para a primeira posição ocupada do buffer, enquanto o outro aponta para a primeira posição livre. Ao adicionar um novo elemento ao buffer, o produtor insere seu dado na primeira posição livre e avança o ponteiro. Ao remover um dado do buffer, o consumidor lê a primeira posição ocupada e avança o ponteiro. Obviamente, cuidados têm que ser tomados para que não haja overflow ou underflow do buffer. Ou seja, para que produtores não insiram novos dados se não há posições livres e para que os consumidores não tentem ler dados se não houver dados a serem lidos. 5. Região Crítica Uma região (ou seção) crítica é um trecho de programa no qual ocorre a manipulação de algum recurso compartilhado. É importante notar que um mesmo programa pode ter várias regiões críticas. A relevância das seções críticas está no fato de que a manipulação simultânea de recursos compartilhados entre dois ou mais processos pode resultar em erros em um programa concorrente. Para exemplificar este tipo de erro, suponha que duas threads compartilham uma variável x, inicialmente com o valor 0. Suponha ainda que, em determinado momento, ambas as threads tentam incrementar x. O resultado esperado da execução das duas threads é que x tenha o valor 2. Entretanto, dependendo da ordem de execução das threads isso pode não ser verdade. O problema acontece porque o incremento de uma variável geralmente é traduzido para um conjunto de instruções de máquina. Por exemplo: MOV acc, x ; Move o valor da variável x para o acumulador INC acc ; Incrementa o valor do acumulador. MOV x, acc ; Move o valor do acumulador para x Suponha que a primeira thread execute a primeira instrução e seja interrompida (por exemplo, pelo fim do seu slice de tempo atual). Neste instante, a segunda thread começa a ser executada e executa todas as três instruções. O valor da variável x, portanto, passa a ser 1. Quando a primeira thread volta à execução, o valor do registrador acumulador está em 0, pois este foi o resultado da execução da primeira instrução (executada antes da segunda thread alterar o valor de x). A primeira thread executa as duas últimas instruções, fazendo com que x continue com o valor 1. Os trechos de código nos quais as duas threads fazem suas manipulações da variável x são as regiões críticas do código (em relação a x; podem existir outras, relacionadas a outros recursos). A ordem em que as threads são colocadas ou retiradas do processador durante o processamento da região crítica pode afetar o resultado da computação.

7 O problema do Produtor-Consumidor também contém uma região crítica. Como o buffer circular (junto com seus ponteiros) é um recurso compartilhado, a ordem de execução dos processos no momento de inserção ou remoção de elementos do buffer pode causar erros. Suponha, por exemplo, que um produtor P1 insira um dado D1 na próxima posição livre do buffer. No entanto, imediatamente antes de atualizar o ponteiro da próxima posição livre, P1 é interrompido e P2 entra em seu lugar. Suponha ainda que P2 decida inserir um dado D2 no buffer. Como o ponteiro não foi ainda atualizado por P1, P2 irá sobrescrever o dado D1. Esta situação, em que a ordem de execução dos processos ou threads na região crítica pode causar erros na computação, é chamada de Condição de Corrida. Programas sujeitos a condições de corrida podem ter resultados inesperados e variáveis, e sua depuração é, em geral, muito complicada. Existem duas maneiras de solucionar o problema da condição de corrida. A primeira é chamada de Exclusão Mútua e consiste em impedir que mais de um processo acesse a região crítica simultaneamente. Neste caso, a condição de corrida não ocorrerá, pois o estado do recurso compartilhado não poderá mudar ao longo da execução da região crítica por um processo (ou thread). Outra possível solução é chamada de Operação Atômica e consiste em tornar atômico o processamento realizado na região crítica. Uma operação atômica é aquela que não pode ser divisível no tempo, ou seja, não pode sofrer interrupções. Logo, dada esta condição, condições de corrida também são impossíveis.

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

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

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou um conjunto de informações, que deve ser exclusivamente usado. A impressora é um recurso, pois é um dispositivo dedicado, devido ao fato

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Sincronização entre Processos Andreza Leite andreza.leite@univasf.edu.br Sincronização Freqüentemente, os processos precisam se comunicar com outros processos. Isto ocorre quando

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br Programação Concorrente [Parte 2] Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Alexandre Veloso alexandre.matos@udesc.br Condição de Corrida Uma forma de um processo comunicar-se

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

28/9/2010. Unidade de Controle Funcionamento e Implementação

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

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

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

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Tipos de sistemas operacionais

Tipos de sistemas operacionais Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

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

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

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

Leia mais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas

Leia mais

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim Conceitos de Sistemas Operacionais: Chamadas de Sistema Prof Rafael J. Sandim Conceitos de Sistema Operacional Interface entre o SO e os Programas de usuário é definida pelo conjunto de instruções estendidas

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

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

Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais Sincronização e Comunicação entre Processos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Sincronização e Comunicação entre Processos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Processos. Adão de Melo Neto

Processos. Adão de Melo Neto Processos Adão de Melo Neto 1 EXECUTE O SEGUINTE Baixa a aula dos dias 20 MAR 15 e 08 MAI 15 e salve no computador. Feche o browser Inicialize o vmware player e inicialize a máquina virtual ubuntu Inicialize

Leia mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software 2 Introdução Este manual foi elaborado para administradores, para entendimento do funcionamento do produto e administração

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Computadores XXI: Busca e execução Final

Computadores XXI: Busca e execução Final Computadores XXI: Busca e execução Final A6 Texto 6 http://www.bpiropo.com.br/fpc20060123.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 23/01/2006 Autor: B.Piropo Na coluna anterior, < http://www.forumpcs.com.br/viewtopic.php?t=146019

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

Leia mais

MODELO CLIENTE SERVIDOR

MODELO CLIENTE SERVIDOR SISTEMAS DISTRIBUÍDOS Modelo Cliente Servidor Modelo que estrutura um S.O. como um grupo de processos cooperantes, chamados servidores, que oferecem serviços a processos usuários, denominados clientes;

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

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

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Programação Concorrente Introdução

Programação Concorrente Introdução Introdução Prof. Eduardo Alchieri (definição) Programação Concorrente Do inglês Concurrent Programming, onde Concurrent signifca "acontecendo ao mesmo tempo" Programação Concorrente é diferente de programação

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

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova; Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco AULA 04 - Estruturas Sistemas Computacionais Nosso objetivo é apenas revisar conceitos relacionados a estrutura geral um sistema computacional para pois explicarmos os talhes operação do sistema e como

Leia mais

Tipos de Servidores. Servidores com estado

Tipos de Servidores. Servidores com estado Tipos de Servidores Com Estado X Sem Estado Sequenciais X Concorrentes Com Conexão X Sem Conexão Servidores com estado Servidores com estado armazenam informação sobre cada cliente. Operações podem ser

Leia mais

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com Sumário Condições para Ocorrência de Modelagem de Evitando deadlock Algoritmo do banqueiro M. Sc. Luiz Alberto lasf.bel@gmail.com Aula - SO 1 Definição Um conjunto de N processos está em deadlock quando

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

COMPILADORES E INTERPRETADORES

COMPILADORES E INTERPRETADORES Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Princípios de funcionamento dos computadores

Princípios de funcionamento dos computadores Princípios de funcionamento dos computadores Objetivos da aula: - Entender o princípio de funcionamento dos computadores - Entender o conceito de programa e sua dinâmica de execução Tópicos da aula: -

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação Ricardo Argenton Ramos Engenharia de Software II 2013.1 Diagrama de Estado Um diagrama de estados (statechart), também conhecido por

Leia mais

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO E/S PROGRAMADA QUANDO A CPU FAZ TODO O TRABALHO RELACIONADO A UMA OPERAÇÃO DE E/S, NO CASO DO PROCESSO QUERER IMPRIMIR (NA IMPRESSORA) ABCDEFGH : ESTES CARACTERES SÃO COLOCADOS EM UMA ÁREA DE MEMÓRIA DO

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Organização do MIPS: pipeline Visão geral do pipeline Analogia com uma Lavanderia doméstica 1

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) (I/O - Input/Output) n Inserção dos dados (programa)

Leia mais