III - Processos e Threads

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

Download "III - Processos e Threads"

Transcrição

1 III - Processos e Threads P rocesso é geralmente entendido como um programa em execução porém, na realidade, trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável, todas as informações necessárias (contexto) à execução e ao controle da execução do mesmo, como por exemplo: o contador de programa, pilhas, registradores e área de dados. O programa é uma entidade passiva, que pode ser visto como o conteúdo de um arquivo em disco, enquanto que o processo é uma entidade ativa, possuindo um contador de programa (PC), que especifica a próxima instrução a ser executada, e um conjunto de recursos a ele alocados. Nos sistemas operacionais mais antigos, cada processo possuia um único fluxo de controle, ou seja, as instruções são executadas seqüencialmente, uma de cada vez. Já nos sistemas mais modernos, um processo pode, por sua vez, dar início a um ou mais subprocessos, que são executados em paralelo ou de forma concorrente com o processo pai e, para todos os efeitos, apresentam as mesmas características e particularidades de um processo qualquer, no tocante a contexto e fluxo de controle. Threads, por outro lado, representam uma nova concepção na forma de um processo paralelizar a execução de partes do seu código. Os threads, conceitualmente, se assemelham a subprocessos porém, diferentemente destes, não possuem identidade própria e, portanto, não são independentes. Cada thread possui seu próprio contador de programa, sua pilha e seus registradores porém compartilham todos o mesmo espaço de endereçamento, isto é, como se fossem uma única entidade. Nos sistemas tradicionais, cada processo tem seu próprio contexto e apenas um fluxo de controle - são do tipo single thread. Freqüentemente, no entanto, é desejado ter-se múltiplos fluxos de controle que compartilhem do mesmo espaço de endereçamento e sejam executados de forma paralela (no caso de multiprocessamento) ou de forma concorrente (no caso de monoprocessamento), como se fossem processos separados. Threads satisfazem estes requisitos, pois compartilham do mesmo espaço de endereçamento com o processo pai e com os demais threads, e podem ser executados de forma concorrente ou paralela (fig. VIII.1). O esquema de threads, no entanto, só pode ser utilizado quando for especificamente suportado pelo sistema operacional ou quando da existência de um gerenciador de threads. Os threads não são tão independentes como os processos e os subprocessos, uma vez que compartilham de um mesmo espaço de endereçamento e, por conseguinte, compartilham das mesmas variáveis globais, dos mesmos arquivos, das mesmas tabelas, etc. Uma vez que todo thread pode acessar todo o espaço virtual de endereçamento do processo pai e dos demais threads, ele pode ler e escrever em qualquer local, mesmo na pilha dos outros threads - o que significa que não há qualquer forma de proteção de acesso entre os threads. Os threads compartilham a UCP da mesma forma que os processos o fazem, isto é, podem criar outros threads e podem ficar suspensos aguardando (em block waiting) pelo término de uma

2 Processos e Threads 39 operação qualquer (system call). Comparativamente, o contexto de um thread e de um processo é constituído por: Thread: Processo: Program Counter Program Counter Stack (pilha) Stack Conjunto de registradores Conjunto de registradores Registrador de status Registrador de status Threads filhos - - Espaço próprio de endereço - Variáveis globais - Arquivos abertos - Semáforos - Informações de contabilização - Processos filhos Processo Y P P P Contexto do Sub-Processo A Contexto do Sub-Processo C Contexto do Sub-Processo B PC A B PC C PC Processo X com 3 threads A, B, C Figura VIII.1 - Processo Y com 3 subprocessos e Processo X com 3 Threads Cabe ao sistema operacional a incumbência de prestar todo o suporte, os recursos e a proteção que forem necessários à execução eficiente e eficaz dos processos que forem submetidos. Para isto, o SO precisa: a) ser capaz de alternar a execução dos vários processos submetidos de forma a maximizar o uso da UCP e ao mesmo tempo garantir um tempo de resposta razoável a cada processo;

3 40 Antonio G. Thomé Cap. VIII b) distribuir os recursos VIII.2 - Contexto de um Processo O ambiente necessário a execução de um processo é formado pelos contextos de hardware e de software. O contexto de hardware é fundamental para que os processos possam se revezar no controle (utilização) da UCP, podendo ser interrompidos pelo SO e, posteriormente, reinicializados do ponto onde haviam parado sem qualquer solução de continuidade, isto é, como se nada tivesse ocorrido. A operação que possibilita tal revezamento é chamada de troca de contexto (context switch) e consiste basicamente em salvar o conteúdo dos registradores e carregá-los com os valores referentes ao processo que esteja ganhando o controle da UCP. O contexto de software especifica características do processo que influem na execução do mesmo, tais como: o número máximo de arquivos abertos, o tamanho do buffer para operações de E/S, etc. O Sistema Operacional cria para cada processo uma estrutura chamada PCB - Process Control Block, onde ele mantém todas as informações de contexto (hardware e software) do processo. O conteúdo e a estrutura do PCB variam de sistema para sistema, sendo que no exemplo mostrado na figura VIII.2 a seguir, ele consiste do estado do processo, da sua identificação, do registrador PC, dos demais registradores da UCP, de informações de escalonamento, de informações de memória, de informações de contabilização e de informações de entrada e saída. Ponteiro estado do processo identificação do processo registrador PC registradores da UCP informações de escalonamento limites de memória informações de contabilização relação de arquivos abertos Figura VIII.2 - Exemplo de PCB - Process Control Block VIII.3 - Estados de um Processo O procedimento de execução de um processo tem início com a criação do mesmo, carga do mesmo em memória, para que de lá possa ser escalado para tomar o controle da UCP e realizar seu processamento e, finalmente, terminado, quando da sua conclusão. Quando em memória, o processo pode estar num dos três estados seguintes: em execução, em espera pela ocorrência de um evento previamente solicitado por ele mesmo ou, no estado de pronto para execução. Estados estes representados na figura VIII.3.

4 Processos e Threads 41 Um processo para poder ser escalado para execução precisa estar no estado de pronto (ready). Um processo em execução pode perder o controle da UCP de forma voluntária (quando ele próprio realiza uma operação de E/S) ou de forma involuntária (quando por algum critério gerencial o próprio sistema operacional retoma o controle da UCP). Um processo em estado de espera fica nesta situação até que sua pendência seja satisfeita e de lá passa para o estado de pronto. novo interrompido admitido pronto concluído terminado execução suspenso escalado espera atendido Figura VIII.3 - Estados de um Processo Quando um processo em execução solicita um recurso que não está disponível no momento (como por exemplo a alocação de um arquivo ou de um periférico) ou cuja obtenção seja operacionalizada fora da UCP (como por exemplo leitura de registros em disco - DMA), ele automáticamente perde o controle da UCP e passa do estado de execução para o de espera. O processo estando no estado de espera passa para o estado de pronto para execução assim que tiver sua solicitação de recurso atendida pelo sistema. No estado de pronto ele está em condições de reiniciar sua execução e fica aguardando apenas chegar sua vez de retomar o controle da UCP. Nos sistemas preemptivos, isto é, que admitem interromper a execução de um processo toda vez que seu tempo (quantum) permitido para alocação da UCP expirar, pode ocorrer que um processo saia da UCP não para o estado de espera mas direto para o estado de pronto. Vê-se assim que um processo pode mudar de estado face um evento originado por ele próprio (eventos voluntários) ou pelo sistema (eventos involuntários). VIII Estados de Execução de um Processo Dentro do estado de execução, para fins de proteção do sistema como um todo, são adotados níveis de prioridade que definem o que o processo está ou não autorizado a fazer. É a forma utilizada para evitar que processos dos usuários venham a danificar áreas do sistema operacional ou mesmo áreas reservadas a outros processos. Diversas são as estratégias de definição destes níveis de prioridade. A estratégia básica consiste na definição de dois estados, um supervisor e outro usuário. Sistemas mais complexos como o OS/2 por exemplo, adotam 4 níveis: 0 - kernel (supervisor), 1 - sistema de arquivos, comunicação entre processos e acionadores de dispositivos de E/S, 2 - subsistema de E/S e 3 - usuário. Um processo somente passa de um nível superior para um inferior com autorização do sistema operacional, que assim garante a integridade operacional.

5 42 Antonio G. Thomé Cap. VIII VIII.4 - Sincronização de Processos O compartilhamento de recursos entre processos pode gerar situações indesejáveis de inconsistência no acesso aos dados e de indisponibilidade no acesso aos recursos, a ponto de comprometer o sistema como um todo. A solução para estes casos é garantir a exclusão mútua, isto é, apenas um processo tem autorização para acessar o recurso de cada vez. O trecho do programa onde é feito o acesso ao recurso compartilhado é denominado região crítica e os mecanismos que implementam a exclusão mútua utilizam um protocolo de acesso à região crítica. Toda vez que um processo for executar sua região crítica, ele é obrigado a passar por um controle de entrada e outro de saída. VIII Problemas de Sincronização Surgem a partir das tentativas de implementar a exclusão mútua. a) velocidade de execução dos processos A velocidade de execução dos processos pode interferir na operacionalização da exclusão mútua. No caso de um chaveamento simples entre dois processos, digamos A e B, sendo que o processo A consome um tempo de processamento bem mais longo que o processo B, pode levar a situação em que B se veja impossibilitado de entrar em sua região crítica por estar bloqueado pela execução do processo A fora da sua região crítica (fig. VIII.4). Prog A Prog B vez = A vez = B região crítica vez = B região crítica vez = A Processamento longo Processamento curto Figura VIII.4 - Prog B impedido de acessar sua região crítica porque Prog A detém o controle da UCP em longo processamento fora da sua região crítica. Observe na figura que o programa "B" passa pela sua região crítica e em seguida libera o acesso ao programa "A". Caso o programa "B" retorne ao ponto de entrada de sua região crítica antes que o programa "A" passe por sua região crítica e libere o acesso ao programa "B", este ficará bloqueado embora o programa "A" não esteja usando sua região crítica. b) Starvation

6 Processos e Threads 43 É a situação onde um processo nunca consegue executar sua região crítica e, em conseqüência, nunca consegue acessar o recurso compartilhado. Este problema ocorre quando 2 ou mais processos estão na lista de espera por um recurso compartilhado. No momento em que o recurso é liberado, o sistema precisa determinar qual dos processos em espera deve ganhar acesso ao recurso. Esta escolha pode ser: aleatória - um processo pode nunca ser escolhido e sofrer starvation; por prioridade - um processo pode novamente permanecer indefinidamente na fila de espera face a constante chegada de processos de maior prioridade; fila tipo FIFO - evita starvation porém pode prejudicar o desempenho de programas com maior prioridade de execução. c) Sincronização Condicional É quando um recurso compartilhado não se encontra pronto para ser utilizado e, nesse caso, o processo precisa ser mantido em estado de espera até o recurso ficar pronto. Este tipo de sincronização aparece em qualquer operação onde existam processos gerando serviços e processos consumindo estes mesmos serviços. Um exemplo clássico deste tipo de sincronização é o da gravação de um buffer por um processo e leitura por outro. Ambos os processos envolvidos devem ser sincronizados de forma a não tentarem gravar um buffer cheio ou ler um buffer vazio. VIII Soluções de Hardware a) desabilitação de interrupções Como a mudança de contexto só pode ser realizada através do uso de interrupção, se um processo desabilitar suas interrupções internas ao entrar na sua região crítica, ele garantirá a exclusão mútua porque não poderá ser interrompido pelo sistema. Este mecanismo no entanto, não é dos mais convenientes por vários motivos, sendo que os principais são: o processo não tornar a habilitar suas interrupções ao sair da região crítica, permanecerá com o controle da UCP até que ele a deixe por um evento voluntário. o processo entrar em loop dentro da região crítica e, novamente, ninguém o interromperá. Desabilitar interrupções é uma solução interessante porém face ao potencial de efeitos colaterais que possam surgir, é normalmente adotado apenas pelas rotinas do sistema operacional. b) instrução test-and-set É uma instrução atômica - indivisível e que não pode ser interropida pela UCP - que testa e seta uma variável global que serve de senha de acesso a uma região crítica. test-and-set(x,y)

7 44 Antonio G. Thomé Cap. VIII ex. de utilização: end X Y Y TRUE repeat pode_a:= True; while (pode_a) do test-and-set(pode_a,bloqueio); : região crítica : bloqueio:= False; until (pode_a) VIII Soluções de Software Três fatores fundamentais para a solução dos problemas de sincronização devem ser considerados: 1. o número de processos concorrentes e o tempo de execução dos mesmos devem ser irrelevante; 2. um processo fora de sua região crítica não deve impedir que outros processos entrem em suas próprias regiões críticas; 3. um processo não pode permanecer indefinidamente esperando para entrar na sua região crítica (starvation); As soluções inicialmente implementadas para resolver o problema de exclusão mútua sofriam da síndrome do busy waiting, ou seja, o processo permanecia em loop checando a liberação do acesso à região crítica e, portanto consumindo cilcos de UCP. As soluções mais atuais adotam primitivas que permitem que um processo seja colocado em estado de espera e reativado apenas quando o recurso estiver disponível. Nesta linha foram introduzidos os semáforos e os monitores. a) Semáforo Consiste em uma variável inteira, não negativa, que só pode ser manipulada por duas instruções atômicas: down e up. Cada semáforo é associado a um único recurso compartilhado e seu significado é: 0 inexistência de recurso disponível; >0 dispolibilidade de recurso. Um processo para entrar em sua região crítica precisa antes decrementar o conteúdo do semáforo (down), que só é permitido se ele for >0 e ao sair incrementa-o (up), liberando o recurso para os demais processos. Up e Down são atômicas e geralmente implementadas como system calls. Quando o processo executa um down em um semáforo vazio, ele automaticamente é colocado em estado de espera (sleeping) e é automaticamente reativado quando algum outro processo liberar (up) aquele recurso.

8 Processos e Threads 45 exemplo, semáforo para o caso do produtor-consumidor #define N 100 /* define o tamanho do buffer */ typedef int semaphore; /* semáforos serão um tipo especial de inteiros */ semaphore mutex = 1; /* controla o acesso a região crítica */ semaphore empty = N; /* controla a quantidade de buffer disponível */ semaphore full = 0; /* controla a quantidade de buffer em uso */ void produtor(void) { int item; } while (TRUE) { /* loop infinito */ produce_item(&item); /* produz alguma coisa para colocar no buffer */ down(&empty); /* verifica se há buffer disponível */ down(mutex); /* testa entrada na região crítica */ enter_item(item); /* coloca dado no buffer */ up(&mutex); /* libera o recurso */ up(&full); /* indica colocação de dado no buffer */ } void consumidor (void) { int item; } while (TRUE) { down(&full); /* verifica existência de dado no buffer */ down(&mutex); /* testa entrada na região crítica */ remove_item(&item); /* pega dado do buffer */ up(&mutex); /* libera o recurso */ up(&empty); /* acusa retirada de um dado do buffer */ consume_item(item); /* consome o dado */ } b) Monitor O uso de semáforos exige muito cuidado do programador pois qualquer engano pode levar a problemas de sincronização imprevisíveis e difíceis de reproduzir, face à execução concorrente dos processos. Monitores são mecanismos de alto nível implementados pelo próprio compilador. Para isto basta especificar todas as regiões críticas em forma de procedimentos do monitor, e o compilador se encarregará de implementar a exclusão mútua.

9 46 Antonio G. Thomé Cap. VIII VIII Deadlock É conseqüência do compartilhamento exclusivo e ocorre sempre que um ou mais processos estiverem esperando por um evento (recurso) que jamais ocorrerá. Caracteriza-se por uma espera circular onde dois ou mais processos aguardam pela liberação de recursos para que possam continuar suas tarefas. Exemplo, o processo "A", da figura VIII.5, detém o recurso X e espera pelo recurso Y, por outro lado, o processo "B" detém o recurso Y e espera pelo X. Proc. A Proc. B Recurso X Recurso Y a) condições para ocorrência de deadlock Figura VIII.6 - Esquema representativo de um Deadlock cada recurso só pode estar alocado a um único processo em um determinado instante (exclusão mútua); um processo, além dos recursos já alocados, pode ficar na espera por outros; um recurso não pode ser retirado de um processo porque outros processos o estão desejando (não-preempção); um processo pode aguardar por um recurso que esteja alocado a outro processo e viceversa (espera circular). Dois procedimentos podem ser implementados para tratamento de deadlocks: previnir sua ocorrência ou, detetar sua ocorrência. a.1) prevenção de deadlocks Constitui-se de ações a serem tomadas com o objetivo de previnir a ocorrência de uma ou mais situações que possam levar ao surgimento de um de deadlock. Algumas possibilidades são: estabelecer o critério de que todos os recursos sejam previamente alocados, antes do processo ganhar acesso à UCP; admitir a prática da preempção, isto é, o sistema ter a possibilidade de retirar um recurso alocado para um processo e dar para outro processo; forçar que um processo não aloque mais do que um recurso de cada vez. Qualquer que seja a estratégia de prevenção adotada, ela é sempre muito onerosa, uma vez que precisa ser executada a todo instante. A estratégia mais comum e menos onerosa é detectar a ocorrência de um deadlock e, uma vez detectado, executar rotinas de resolução do problema. a.2) Detecção de Deadlocks

10 Processos e Threads 47 Geralmente os algoritmos que implementam este mecanismo verificam a existência de uma espera circular, percorrendo toda a estrutura de alocação sempre que um processo não pode ser imediatamente atendido. Após o deadlock ser detectado, as ações de correção mais comuns são: eliminar um ou mais processos envolvidos; liberar acumulativamente alguns dos recursos já alocados pelos processos envolvidos até que a espera circular se desfaça. VIII.5 Escalonamento de Processos Os principais objetivos do escalonamento (scheduling) de processos são: manter a UCP ocupada a maior parte do tempo; balancear a utilização do processador pelos processos em execução; maximizar o throughput (capacidade de atendimento a processos) do sistema; e garantir tempos de resposta razoáveis aos usuários interativos. Para atender tais objetivos, muitas vezes conflitantes, os SOs precisam levar em consideração: as características dos processos em execução (batch, interativo, tempo-real, CPUbounded, IO_bounded); a disponibilidade de recursos; as características da instalação. O escalonamento dos processos é realizado por um módulo do sistema operacional conhecido como dispatcher (scheduler). Existem diversos algoritmos utilizados para tal finalidade e cada um apresenta características próprias favorecendo um ou outro critério para a escolha do próximo processo a receber o controle da UCP. Os critérios geralmente considerados incluem os seguintes parâmetros ou medidas de eficiência: utilização da UCP - o desejado é manter a UCP p mais ocupada possível. O grau de utilização da UCP varia de 0 (idle) a 100%. Geralmente a ocupação da UCP gira no entorno dos 40% para sistemas com carga moderada e aproximadamente 90% para os com carga pesada. throughput - medida que representa o número de processos concluídos por unidade de tempo (ex. 10 processos/segundo). turnaround time - mede o tempo total gasto na execução de um processo, desde o momento em que ele é submetido até o instante em que é concluído. waiting time - mede apenas o tempo em que o processo fica aguardando por execução na fila de processos prontos (ready queue). response time - mede o tempo decorrido entre a submissão do processo e o instante em que o mesmo gera a primeira resposta ao usuário. Existem basicamente dois tipos de algoritmos para escalonamento de processos: os do tipo preemptivo e os do tipo não-preemptivo.

11 48 Antonio G. Thomé Cap. VIII VIII Algoritmos Não-Preemptivos Nesse tipo de escalonamento, quando um processo ganha o direito de utilizar a UCP, nenhum outro processo ou mesmo o próprio SO pode lhe tirar esse recurso. Ele manterá o uso da UCP até que, voluntariamente, a deixe. Dentro do contexto dos algoritmos não-preemptivos, diferentes estratégias podem ser implementadas, tais como: o escalonamento FIFO e o shortest_job_first. a) Escalonamento FIFO É de implementação e operação bastante simples, necessitando apenas da manutenção de um fila, onde os processos que passam para o estado de pronto entram no final da mesma e são escalados para execução quando atingem o seu topo. As maiores restrições relativas a esta estratégia são: incapacidade de prever o instante inicial de execução de um processo; possibilidade de ocorrência de processos CPU_bound de menor importância prejudicarem o processamento de processos IO_bound mais prioritários; Esta estratégia não é eficiente para sistemas de tempo compartilhado e muito menos para sistemas em tempo real. b) Escalonamento Shortest_Job_First Associa a cada processo uma estimativa do seu tempo de execução e favorece aqueles de menor tempo, escalando-os prioritariamente. A restrição maior deste algoritmo está na determinação da estimativa do tempo necessário para execução de um determinado processo. Tarefa fácil para processos (sistemas) já em regime de produção mas extremamente difícil para aqueles ainda em fase de desenvolvimento. VIII Algoritmos Preemptivos Um algoritmo de escalonamento é considerado preemptivo quando pode interromper um processo em execução, tirar-lhe o controle da UCP e repassála para outro processo que estiver na fila de espera. A estratégia preemptiva permite que o sistema dê atenção imediata a processos mais prioritários, bem como o compartilhamento do processador de forma mais uniforme. É importante lembrar que a troca de um processo na UCP implica, necessariamente, na troca de contexto (context switching), o que representa um overhead introduzido pelos algoritmos pre-

12 Processos e Threads 49 emptivos não existente na estratégia não-preemptiva. Para que isto não se torne um problema crítico, os parâmetros de quantum ou time slice adotados para os processos em execução precisam ser cuidadosamente estabelecidos. Os principais algoritmos deste genero incluem: o round_robin, o por prioridade, o por múltiplas filas e o por múltiplas filas com realimentação. a) Escalonamento Round_Robin É um escalonamento circular, bastante similar ao FIFO, porém com a adoção de um limite de tempo (quantum ou time_slice) permitido aos processos para uso contínuo da UCP. A definição deste quantum é um parâmetro de gerência da operação, sendo que se deve levar em consideração a disponibilidade de recursos (MP e processador), o tipo e o número de processos em execução. Um tamanho razoável para este quantum pode oscilar, por exemplo, entre 100 e 300ms. b) Escalonamento Baseado em Prioridade O escalonamento leva em consideração o nível de prioridade estabelecido para os processos. É importante observar que contrariamente ao que possa ser inicialmente imaginado, os processos do tipo IO_bound devem, em princípio, receber uma prioridade mais alta, a fim de compensar o excessivo tempo gasto no estado de espera. O nível de prioridade é uma característica do processo e pode ser dos tipos estática ou dinâmica. Na prioridade dinâmica, ela pode ser constantemente ajustada em função do tipo de processo e da carga corrente do sistema. c) Escalonamento por Múltiplas Filas Como os diversos processos em execução geralmente possuem características de processamento distintas, é difícil imaginar que um único mecanismo de escalonamento seja igualmente adequado a todos. Uma boa política seria a de classificar os processos em função do tipo de processamento realizado, e aplicar a cada grupo um mecanismo distinto de escalonamento. O escalonamento por múltiplas filas implementa diversas filas de processos no estado de pronto (ready), e a cada fila pode ser estabelecido um mecanismo de escalonamento diferente. Cada fila possui uma prioridade associada, que estabelece uma relação de prioridade entre elas e o sistema, a partir disto, somente escala processos de uma fila quando todas as outras de maior prioridade estiverem vazias. d) Escalonamento por Múltiplas Filas com Realimentação Estratégia que visa reduzir a penalidade imposta pelo método anterior aos processos classificados em filas de mais baixa prioridade. Visa também atenuar injustiças que podem se materializar no método por múltiplas filas pelo fato de um processo alterar seu comportamento no decorrer do seu processamento.

13 50 Antonio G. Thomé Cap. VIII Nesta estratégia de escalonamento, o sistema tenta identificar dinamicamente o comportamento de cada processo durante seu período de execução, e ajustar também dinamicamente, a prioridade e o mecanismo de escalonamento associado a cada um. A figura abaixo mostra um esquema com m filas e diferentes estratégias. Um processo ao ser inicializado (startado) é colocado no final da fila correspondente ao seu nível de prioridade. Sua progressão dentro da fila segue a estratégia de escalonamento ali adotada e, após ter sido escalado e concluído sua etapa de processamento, ele volta para o fianl da fila imediatamente inferior, caso sua perda da UCP tenha ocorrido por preempção ou no final da fila imediatamente superior, caso a perda da UCP tenha ocorrido voluntariamente para espera da ocorrência de algum evento externo. Maior Priori- FILA #1 - (Por Prioridade) Saída por FILA #2 - (Por Prioridade) Menor Quan- Saída por FILA #3 - (Por Prioridade) Menor Priori- Saída por FILA #m - (Round Robin) Maior Quan- Figura VIII.7 - Esquema de Escalonamento por Múltiplas Filas com Realimentação VIII.6 Exercícios 1) Das afirmativas abaixo, aquela que contraria o conceito de interrupção é: a. o controle da UCP interrompe o programa em execução e vai para a instrução seguinte da rotina de tratamento específica da interrupção em questão. b. o estado corrente da UCP precisa ser previamente salvo, para que seja dado início ao tratamento da interrupção. c. o endereço inicial da rotina de tratamento da interrupção é determinado pelo Hardware. d. um sinal de Hardware interno ou externo à UCP pode dar início a uma interrupção. e. uma rotina de tratamento de interrupção também pode ser interrompida e dar lugar a execução de uma outra rotina de tratamento.

14 Processos e Threads 51 2) Conceitue deadlock e explique as estratégias de prevenção e detecção. 3) Conceitue e diferencie Processo e Thread. 4) Conceitue sincronização de processos e descreva duas técnicas de realização. 5) No diagrama abaixo, que representa os estados possíveis de um processo em execução: Running Ready Wait A transferência de um processo para o estado "ready" ocorre sempre que: a. ele realiza um "page fault" b. atinge seu quantum permitido de UCP c. precisa efetuar uma operação de E/S d. entra em deadlock e. realiza um DMA 6) Em termos de escalonamento de processos, conceitue preempção e quantum ou time-slice. 7) Suponha que um sistema operacional do tipo preemptivo multiprogramável seja carregado com três módulos executáveis identificados por A, B e C. O processo A, inicialmente em estado ready, tem prioridade inicial máxima (10), perde 2 pontos a cada vez que sofre uma interrupção por I/O, possui time-slice de 1seg e sofre 2 interrupções de 1 seg cada após os 2 e 3 segundos de processamento. O processo B, inicialmente em ready, tem prioridade inicial 8, time-slice de 2 segs e não perde prioridade por ser um processo em tempo real. O processo C, inicialmente em wait e sendo processo de menor prioridade, entra em ready 3 segs após sua submissão. Sabendo-se que B solicita um I/O de 3 segs após 4 segs de execução e que A, B e C consomem respectivamente um total de 5, 6 e 5 segs de processamento, calcule o instante em que os processos terminarão sua execução (turnaround time) e o throughput do sistema. 8) Em um determinado sistema multiprogramado 5 jobs, J1, J2, J3, J4 e J5 (conforme tabela abaixo) concorrem pelo controle da UCP. Considerando que todos estão na condição ready e assumindo 3 hipóteses de escalonamento: FCFS, prioridade não-preemptiva e shortest_job_first, responda às seguintes perguntas: Job Tempo de execução Prioridade a) qual o turnaround de cada processo segundo cada um dos métodos de escalonamento?

15 52 Antonio G. Thomé Cap. VIII b) qual o método de escalonamento que apresenta o melhor throughput para o sistema? c) qual o turnaround dos processos admitindo um quantum de 2 unidades de tempo para os métodos de escalonamento por prioridade e round_robin? 9) Considere que um determinado SO não possua memória suficiente e que para fazer task switch (troca de tarefas), precise realizar swapping em disco. Calcule o tempo gasto para efetuar a troca de 2 tarefas de 50KB cada, no caso em que a unidade de disco apresenta as seguintes características: capacidade de 1.28GB, taxa de transferência de 5MBs, seek médio de 10ms e latência rotacional de 50ms. 10) Os mecanismos que garantem a comunicação entre processos e o compartilhamento de recursos do sistema, são chamados de mecanismos de a) sincronização b) concorrência c) paginação d) segmentação e) realimentação VIII.7 Referências Bibliográficas Tanenbaum, Andrew S., Organização Estruturada de Computadores, Ed. Prentice-Hall do Brasil, Tanenbaum, Andrew S., Sistemas Operacionais - Projeto e Implementação, Ed. Prentice-Hall do Brasil, Machado, Francis B. e Maia, Luiz P., Introdução à Arquitetura de Sistemas Operacionais, Ed. LTC, Tanenbaum, Andrew S., Sistemas Operacionais Modernos, Ed. Campus, Davis, William S., Sistemas Operacionais - Uma Visão Sistemática, Ed. Campus, 1990.

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

Leia mais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador A partir do momento em que diversos processos podem

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistemas Operacionais Conteúdo retirado de: SOsim: SIMULADOR PARA O ENSINO DE SISTEMAS OPERACIONAIS Luiz Paulo Maia

Leia mais

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Desenvolvimento web II IMPORTANTE SABER Desenvolvimento web II DEADLOCK (interbloqueio, blocagem, impasse) Situação em

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

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 4.1 Introdução Capítulo 4 Gerência

Leia mais

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos) 4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos) Para implementar o compartilhamento da CPU entre diversos processos, um sistema operacional multiprogramável deve possuir um critério para determinar,

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

Sistemas Operacionais Sistemas Operacionais Gerência de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Multiprogramação Permite a execução de diversos processos concorrentemente Maior

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

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

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

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

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 Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano Sistemas Operacionais Marcos Laureano 1/28 Roteiro Tipos de Tarefas Preempção Escalonamento de processos Tipos de escalonamentos 2/28 Tipos de Tarefas (temporal) Tarefas de tempo real Previsibilidade em

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço

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

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

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

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

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015 Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres Fundamentos de Sistemas Operacionais UNIP/2015 Disciplinas FUNDAMENTOS DE SISTEMAS OPERACIONAIS Horários Quarta-feira Fundamentos de Sistemas

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

Sistemas Operacionais Sistemas Operacionais GERÊNCIA DO PROCESSADOR MACHADO/MAIA: CAPÍTULO 08 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento do Processador A gerência do processador pode ser considerada a atividade

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador mbientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Multiprogramação Torna mais eficiente o aproveitamento dos recursos computacionais

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

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

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 02-002 Processos

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 02-002 Processos Processos Prof. Edwar Saliba Júnior Março de 2007 1 Processos Programa em execução: processos do próprio sistema (SYSTEM no gerenciador de tarefas); processos do usuário; Sistemas multiprogramáveis: muitos

Leia mais

Gerência de processos Requisitos fundamentais

Gerência de processos Requisitos fundamentais Requisitos fundamentais Implementar um modelo de processo. Implementar facilidades para criação e destruição de processos por usuários Alocar recursos a processos Intercalar a execução de um número de

Leia mais

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

Deadlocks. 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 Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos,

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistema Operacional. Prof. Leonardo Barreto Campos 1 Sistema Operacional Prof. Leonardo Barreto Campos 1 Sumário Introdução; Tipos de Sistemas Operacionais; Escalonamento; Gerenciamento de Memória; Bibliografia. Prof. Leonardo Barreto Campos 2/25 Introdução

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Gerência do Processador No gerenciamento dos processos serão definidas as propriedades dos processos em execução, e a maneira

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 08 Processos Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais Funções: máquina virtual

Leia mais

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN SISTEMAS OPERACIONAIS Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN 2.0 - INTRODUÇÃO Os tipos de sistemas operacionais e sua evolução estão intimamente relacionados com a evolução do hardware

Leia mais

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin GERENCIAMENTO DO PROCESSADOR Prof. Maicon A. Sartin Introdução Em sistema multiprogramáveis a UCP é compartilhada entre diversos processos Existem critérios para determinar a ordem de escolha para a execução

Leia mais

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC Prof. Almeida Jr Processos Conceitos Básicos Nomes Tipos Batch: jobs CPU-bound T.Sharing: Tarefas/Processos

Leia mais

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. A multiprogramação tem como objetivo permitir que, a todo instante, haja algum processo

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

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

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

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

9 - Sincronização e Comunicação entre Processos

9 - Sincronização e Comunicação entre Processos 1 9 - Sincronização e Comunicação entre Processos 91 Introdução Em um sistema multitarefa, seja com um único processador ou com mais de um processador ou ainda com vários núcleos por processador, os processos

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

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

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

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na

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

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

Estruturas do Sistema de Computação

Estruturas do Sistema de Computação Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de

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 Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br INTRODUÇÃO O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura

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

Capítulo 4 Gerência de Processador

Capítulo 4 Gerência de Processador DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Capítulo 4 Gerência de Processador Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de

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

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

03 GERÊNCIA DO PROCESSADOR

03 GERÊNCIA DO PROCESSADOR 03 GERÊNCIA DO PROCESSADOR 3.1 Introdução Em sistemas multiprogramáveis múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. Como diversos processos podem estarem estado

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais 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

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

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

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

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

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

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 Gerenciamento de processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Conceitos Básicos Máxima utilização da CPU obtida com

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

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

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Escalonamento de Processo Prof. Dr. Márcio Andrey Teixeira Quando um computador é multiprogramado, ele muitas vezes tem variados processos que competem pela CPU ao mesmo tempo; Essa

Leia mais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Processo cooperativo é aquele que pode afetar outros processos em execução no sistema Ou ser por eles afetado Processos

Leia mais

Monitores. Conceito Sistemas Operacionais II

Monitores. Conceito Sistemas Operacionais II Monitores Conceito Sistemas Operacionais II Monitores Autores Daniel Artur Seelig Fábio Lutz Local Universidade Federal do Rio Grande do Sul Instituto de Informática Sistemas Operacionais II Professor

Leia mais

Arquitetura dos Sistemas Operacionais

Arquitetura dos Sistemas Operacionais Arquitetura dos Sistemas Operacionais Arquitetura de um Sistema Operacional Basicamente dividido em shell é a interface entre o usuário e o sistema operacional é um interpretador de comandos possui embutido

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

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores MemóriaVirtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Gerência de memória convencional Divide um programa em unidades menores Partes

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia 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

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

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

Leia mais

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul QUESTÃO: 29 Além da alternativa a estar correta a alternativa e também pode ser compreendida como correta. Segundo a definição de diversos autores, a gerência de falhas, detecta, isola, notifica e corrige

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

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

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

Gerência de processos Estudos de caso - BSD Unix

Gerência de processos Estudos de caso - BSD Unix Gerência de processos Estudos de caso - BSD Unix Escalonamento preemptivo com prioridades dinâmicas Prioridades entre 0 e 127 0 a 49 kernel 50 a 127 usuário 32 filas de pronto Processos executando em modo

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

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS 1 SISTEMAS OPERACIONAIS Profª Josiane T. Ferri Licenciada em Computação prof.jositf@yahoo.com.br facebook.com/josiferri ESTRUTURA DO SISTEMA OPERACIONAL Embora a definição de níveis de privilégio imponha

Leia mais