Um Estudo Baseado na Visão de Silberschatz sobre a Complexidade dos Sistemas Operacionais

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

Download "Um Estudo Baseado na Visão de Silberschatz sobre a Complexidade dos Sistemas Operacionais"

Transcrição

1 Um Estudo Baseado na Visão de Silberschatz sobre a Complexidade dos Sistemas Operacionais Jonathan Luís Hackenhaar Faculdade Cenecista de Osório (FACOS) Rua 24 de maio, Osório RS Brasil jonathanhackenhaar@yahoo.com.br Resumo. O presente artigo tem como objetivo falar sobre o funcionamento dos Sistemas Operacionais modernos, descrevendo a forma como esse software atua fazendo a ligação entre o hardware e o usuário que o utiliza, partindo dos pressupostos desenvolvidos por Abraham Silberschatz que introduz aos Sistemas Operacionais uma abordagem didática para melhor entendimento de sua complexidade. Palavras-chave: Sistemas operacionais, Abraham Silberchatz, Abordagem didática 1. Introdução Os sistemas operacionais foram desenvolvidos inicialmente para tentar escalonar as atividades do sistema de computação, garantindo o bom funcionamento deste e em segundo lugar para fazer uma interação entre usuário e o ambiente computacional sendo possível realizar a execução de programas. No inicio os sistemas operacionais eram usados como console principal, com o passar do tempo ele foi sendo incrementado por outros programas que melhoraram a conveniência de programação do sistema, porém em contra ponto exigiam determinado tempo em sua configuração. A fim de melhorar e aperfeiçoar esse tempo desperdiçado, o sistema operacional recebeu lots com jobs semelhantes. O Sistema Operacional é um programa que funciona como ponte entre o hardware e o usuário do computador. O seu funcionamento facilita a vida do usuário em função da interface que ele disponibiliza dando conveniência à utilização dos programas e gerenciamento da máquina com o objetivo de usar o hardware de forma eficiente. Eles podem ser divididos em hardware, CPU, memória, e dispositivos de entrada e saída (I/O). Ele fica responsável por gerenciar o funcionamento de todos esses componentes, dessa forma podemos destacar como um dos objetivos desse sistema coordenar o uso do hardware entre os usuários e os aplicativos que são executados. Também compõe parte dessa estrutura que envolve o Sistema Operacional os programas (aplicativos) e os usuários, que podem ser pessoas e outras máquinas. Os sistemas de computadores pessoais, que foram adaptados dando prioridade ao uso e conveniência, que se beneficiaram da forma de desenvolvimento dos sistemas operacionais de mainframes, exemplo Windows e Linux. Os sistemas paralelos que utilizam multiprocessadores, compartilhando o barramento têm como vantagem uma maior produção (thoughput). Nos sistemas em rede, que fornecem recursos como o Revista itec Vol. 4, Nº 4, Jul Página 32

2 compartilhamento de arquivos e uma metodologia diferenciada, que permite a troca de mensagem e processos em computadores diferentes, e os sistemas operacionais distribuídos que são aqueles em que cada processador tem a sua memória local e se comunicam por barramentos ou linhas telefônicas. Os sistemas operacionais existem porque é uma forma razoável de resolver o problema de criar um sistema de computação que possa ser usado. O objetivo primordial dos sistemas de computação é executar programas de usuário e tornar fácil a resolução dos problemas de usuário. Para atingir essa meta, o hardware é construído. Como o hardware por si só não é particularmente fácil de usar, programas aplicativos são desenvolvidos. Esses vários programas exigem certas operações comuns, como aquelas que controlam os dispositivos de I/O. As funções comuns de controle e alocação de recursos são então reunidas em um único software: o sistema operacional. O artigo está estruturado da seguinte forma: na seção dois o tema de discussão é sobre as estruturas de sistemas operacionais, já na seção três a temática é processos, na seção quatro o assunto exposto é sobre as threads, o escalonamento de CPU é o tema da seção cinco, na seção seis a sincronização de processos será agregado ao estudo do artigo, já na seção sete o assunto abordado é sobre deadlocks, a seção oito é responsável pela gerência de memória, a memória virtual é o assunto da seção nove e a seção dez fala sobre o sistema de arquivos encerrando com as conclusões. 2. Estruturas de Sistemas Operacionais O sistema operacional tem como objetivo oferecer um conjunto de funções que são úteis ao usuário, que a interface com o usuário, a execução de programas, operações de entrada e saída, manipulação de sistema de arquivos, comunicação entre os componentes, detecção de erros, depuração (para aumentar a eficiência) alocação de recursos, contabilização, proteção e segurança de todos os seus componentes. Um dos recursos mais visíveis e utilizados em sistema operacional é a interface com o usuário, dessa forma as tarefas começam a serem feitas com a interação do mesmo, que, por exemplo, pode ser feita por linha de comando. Essa interface pode ser gráfica, amigável ou ambas simultaneamente (GUI e CLI). O sistema operacional se comunica através de chamadas de sistema, que geralmente são escritas em linguagens de alto nível, como C++, por exemplo. Essas chamadas são usadas para que as tarefas solicitadas ao sistema operacional pelo usuário e softwares possam ser feitas. A implementação das chamadas de sistema acontece quando a sua interface evoca ao kernel do sistema e retorna o status e os valores de retorno, as chamadas de sistemas podem ser de vários tipos, tais como: controle de processos, gerenciamento de arquivos e dispositivos, manutenção de informações, comunicação e proteção. Dentro dessa estrutura temos alguns programas (as interfaces de usuário) que propiciam um ambiente conveniente para a execução de programas que acabam por compor a visão do usuário do sistema operacional. Esses programas permitem o gerenciamento de arquivos, modificação, suporta linguagem de programação, permite comunicação tornando o sistema operacional útil ao usuário. O projeto de implementação de um sistema operacional deve estar em equilíbrio com os objetivos do usuário e os objetivos do próprio sistema, ele deve ser fácil de Revista itec Vol. 4, Nº 4, Jul Página 33

3 projetar, flexível, confiável e eficiente levando em conta a política e o mecanismo envolvidos nesse processo. O sistema operacional se divide em duas estruturas: Estruturas simples nesse tipo de estrutura relação de custo-benefício baseado em menor espaço é priorizada, como por exemplo, nos sistemas monolíticos, sua estrutura, interface e níveis de funcionalidade não são bem separados (exemplo MS-DOS). Estrutura em camadas nesse contexto o sistema operacional é dividido em camadas (níveis), onde cada uma é constituída respeitando a hierarquia das camadas, a camada inferior é o hardware e a camada mais alta é a interface com o usuário, é projetado para que cada uma use as funções e serviços somente das camadas de baixo nível, como mostrado na Figura 1, que exemplifica a estrutura em questão. Figura 1. Modelo de Estrutura em Camadas (MS-DOS) Fonte: Temos também a Estrutura Microkernel move o kernel para o espaço do usuário e a comunicação ocorre entre módulos em nível de usuário usando a troca de mensagens. Possui vantagens tais como se adaptar em novas arquiteturas e é mais seguro, porém sobrecarrega em função da comunicação entre o modo usuário e o modo kernel. E finalizando com a estrutura em Módulos cada módulo (no kernel) é responsável se comunica através de interfaces e o módulo é carregado no kernel quando necessário. As máquinas virtuais nos levam a abordagem de sistemas em camadas ao extremo, tratando o hardware e o kernel como se ambos fossem hardware. Elas fornecem uma interface idêntica a do puro hardware, criando a ilusão de múltiplos processos cada um executando em seu próprio processador com sua própria memória (virtual). Elas são boas para testes, desenvolvimento e não ocupam espaço demasiado, em alguns casos permitem o compartilhamento de arquivos (controlados), mas que facilitam muito a vida de quem as utiliza. O sistema operacional também conta com a depuração, que é responsável por encontrar e corrigir erros, gerando logs que contém informações desses erros, por exemplo, a falha de um programa pode capturar a memória do processo e falhas no Revista itec Vol. 4, Nº 4, Jul Página 34

4 sistema operacional que podem consumir memória do kernel, além de travamentos. Depurar é algo duas vezes mais difícil que escrever códigos pela primeira vez, entretanto, se tu escreves o código tão inteligente quanto possível, tu não és, por definição, inteligente suficiente para depurá-lo. Os sistemas operacionais são projetados para executar em qualquer máquina de uma determinada classe. O sistema operacional conta com alguns programas que o ajudam em algumas tarefas, tais como: SYSGEM obtém informações a respeito da configuração específica do hardware. BOOTING inicia o computador carregando o kernel. BOOTSTRAP program código armazenado em memória ROM que localiza o kernel e carrega-o na memória para iniciar a sua execução. Dessa forma o sistema operacional é carregado e começa o seu funcionamento, através do boot. 3. Processos Um processo é uma fatia de programa que está executando, ele executa uma variedade de programas, como os sistemas batch e os sistemas de time sharing. O processo progride em sua execução de maneira sequencial, incluindo um contador, uma pilha e uma seção de dados. Durante a sua execução sofre alterações de seu estado, que pode ser: Novo quando o processo está sendo criado. Executando quando ele está executando as suas instruções. Esperando quando está a espera de algum evento acontecer. Pronto quando o processo está esperando ser associado a algum processador e Terminado quando o processo termina sua execução, como mostra a Figura 2 abaixo. Figura 2. Diagrama de Estados do Processo Fonte: A Figura 3 encarrega-se de expor os dados que são armazenados pelo PCB Process Control Block, que carrega as informações associadas com cada processo, como o seu estado, contador de programa, número ID, registradores de CPU, informações de escalonamento da CPU, informações do gerenciamento de memória, contabilidade e o status de E/S. Revista itec Vol. 4, Nº 4, Jul Página 35

5 Figura 3. PCB Process Control Block Fonte: Como são muitos os processos que sempre estão querendo executar e assim dar continuidade as suas instruções, surgiu a necessidade de ter o escalonamento de processos. O escalonamento de processos pode ser em fila de jobs, que é o conjunto de todos os processos do sistema, fila de processos prontos, que é o conjunto de todos os processos residentes na memória principal prontos e esperando para executar e a fila de dispositivos, quando há um conjunto de processos esperando por um dispositivo de E/S, ressalvando que devido ao seu estado, o processo pode migrar entre as várias filas de execução. Quando temos qualquer tipo de escalonamento, esse deve ser gerenciado pelo escalonador, no caso dos processos podemos contar com dois escalonadores: o de longo prazo (ou escalonador de jobs) que seleciona qual processo deve ser executado e aloca a CPU para ele. A CPU, quando alterna para o outro processo, faz com que o sistema salve o estado do processo anteriormente salvo do processo novo via troca de contexto, que é representado na PCB. Um processo pode criar outro processo (pai-filho), formando uma árvore de processos. Na relação pai-filho todos os recursos são compartilhados, porém, o filho compartilha um subconjunto dos recursos do pai, na execução os dois (pai e filho) executam concorrentemente e o pai espera até o filho terminar. Os processos em um sistema podem ser independentes ou cooperantes. Os que são independentes não podem afetar ou serem afetados pela execução de outro processo, já os cooperantes podem ser afetados pela execução de outro processo, a cooperação entre processos tem como razões: o compartilhamento de informações, aumento na velocidade da computação, modularidade e conveniência. Os processos cooperantes precisam da comunicação entre processos (IPC interprocess communication) que pode ser memória compartilhada e troca de mensagens. A troca de mensagens é o mecanismo mais usado para os processos se comunicarem e sincronizarem suas ações funciona tendo um send que é quem está mandando a mensagem e o receive que é quem recebe o que está sendo enviado, através de um link de Revista itec Vol. 4, Nº 4, Jul Página 36

6 comunicação entre eles. Nesse tipo de comunicação temos duas subdivisões em relação ao seu funcionamento: comunicação direta, onde os processos envolvidos enviam mensagens identificando qual mandou e qual irá receber. E a comunicação indireta, que a mensagem cai em um mailbox e se o processo que vai receber também deve estar compartilhando a mesma mailbox. A troca de mensagens pode ser bloqueante ou não bloqueante. Outro tipo de comunicação entre os processos é a comunicação cliente-servidor, que subdivide em sockets, pipes, RPC (chamadas a procedimentos remoto) e a RMI (invocação remota de método). Um socket é definido como um ponto final de comunicação, a concatenação de um endereço IP e porta e a comunicação ocorre entre pares de sockets. As pipes agem como canalizações permitindo a comunicação entre processos, elas permitem a comunicação no estilo produtor-consumidor, as pipes nomeadas são mais poderosas que os pipes comuns, pois não é necessária a relação paifilho entre processos comunicadores. Já a chamada a procedimento remoto (RPC) abstrai chamadas de procedimento entre os processos executando nos sistemas de rede e a invocação remota de método (RMI) é um mecanismo Java similar a RPC. 4. Threads Um pequeno programa que trabalha como um subsistema independente de um programa maior, executando tarefas específicas. Um software dividido em várias threads pode executar mais rápido que um programa monolítico, pois tem várias tarefas. O processo existe para que a thread possa existir, ela funciona em cima dele, existem processos com uma e com múltiplas threads. A Figura 4 mostra a comparação entre os dois modelos de threads (uma e múltiplas). Figura 4. Processos com uma e com múltiplas threads. Fonte: Os benefícios de ter as threads são responsividade e o compartilhamento de Revista itec Vol. 4, Nº 4, Jul Página 37

7 recursos, por exemplo, em um servidor multithread (de um site de notícias, por exemplo) cada uma de suas threads é responsável por cuidar de cada conexão com cada usuário. Podem ser divididas em dois níveis: usuário e kernel. As threads de nível usuário tem menores permissões de acesso e executam funções, como as API s (Posix Pthreads, Win32 threads e as Java threads). Já as threads em nivel kernel são mais poderosas e liberam a CPU para a execução das de nível usuário. O sistema operacional está organizado para ter as threads kernel. O mapeamento das threads usuário e kernel se realiza das seguintes maneiras: Muitos- para-um: quando várias threads são mapeadas por uma única thread kernel. Umpara-um: quando uma thread é mapeada por uma thread kernel. Muitos-para-muitos: quando as threads usuário são mapeadas por várias threads kernel, essa é considerada a melhor política de mapeamento. Modelo de dois níveis: quando dois tipos diferentes de mapeamento são usados simultaneamente. As threads trazem mais funcionalidade e agilidade na execução sendo que a melhora já consolidada pelos processos sofre uma mutação positiva com a melhora advinda da utilização das threads. 5. Escalonamento de CPU Com o surgimento dos processos, threads, a ideia básica de multitarefa e a concorrência, o sistema operacional precisou escalonar a CPU para que suportasse todos esses elementos. Por exemplo, se temos uma CPU para duas mil threads, o sistema operacional tem que gerenciar todas elas, os seus acessos aos recursos limitados, fazendo com que elas executem de forma organizada, isso é o escalonamento, que se baseia em uma heurística (algoritmo), um exemplo de escalonamento são as filas do banco, que antes eram uma fila por cada caixa e hoje é por senha com as filas, no caso podemos apontar duas heurísticas nesse exemplo. No contexto de escalonamento da CPU temos o Dispatcher (despachante) ele é o responsável por escolher quem vai receber a CPU, através da heurística que prioriza no sistema operacional em questão. Para que as heurísticas funcionem, elas precisam de algoritmos para se basearem e no escalonamento de CPU, temos alguns algoritmos que são usados como o FCFS (primeiro a chegar, primeiro a ser servido), usado no time sharing, esse algoritmo faz com que os processos que chegam primeiro sejam executados primeiro, não importando o tempo de cada um. Outro algoritmo que é usado é o SJF (menor job primeiro) que tem como prioridade reduzir o tempo de espera dos processos na fila de execução. O processo com menor tempo é executado antes. O SJF é usado quando nós sabemos o tempo dos processos (através de uma simulação, por exemplo). O próximo algoritmo é o de Prioridades. Cada processo tem um número de prioridade e a CPU aloca o processo com a maior prioridade primeiro, que pode ser preemptivo (que permite interrupções) e não preemptivo (que permite interrupções). Esse algoritmo pode ocasionar um problema conhecido como Starvation (abandono de processo) no caso os processos de baixa prioridade podem nunca executar. A solução para esse problema é o aging (envelhecimento) que ao passar do tempo aumenta a prioridade dos processos fazendo com sejam executados e não ocorra a starvation. Revista itec Vol. 4, Nº 4, Jul Página 38

8 O Round Robin (algoritmo de escalonamento circular) determina o escalonamento através de fatias de tempo de processamento quantum -, quando acaba esse tempo o processo perde a CPU e essa vai para o próximo processo. A combinação dos algoritmos Round Robin e Prioridades compõe o modo de escalonamento dos sistemas operacionais modernos. A alocação com múltiplas filas tem por objetivos criar essas filas com escalonamento e dar prioridades. O escalonador começa de cima para baixo. Somente desce da fila quando está fica completa. O sistema operacional organiza as filas conforme as suas prioridades. A desvantagem é que os processos com maior prioridades ficam sem executar. O último algoritmo apresentado pela Figura 5 que é o de múltiplas filas com realimentação. Nesse algoritmo os processos transitam entre as filas (algoritmo time sharing) os processos vai sendo medidos pela sua prioridade e são executados. Cada fila pode ser gerenciada por um algoritmo diferente. Figura 5. Escalonamento com múltiplas filas Fonte: O escalonamento de threads funciona da seguinte maneira, as threads kernel são escalonadas pela CPU e recebem o tempo, fazendo com que as threads usuário executem as suas instruções. No contexto do escalonamento temos o escalonamento com vários processadores homogêneos que dão mais poder de processamento na fila, a CPU é entregue mais rápido e o escalonamento vai mais ligeiro. E com processadores multicore quando há um processador que suporta vários tipos de execução. 6. Sincronização de Processos O compartilhamento de recursos entre processos pode gerar situações indesejáveis, os mecanismos de sincronização garantem a comunicação entre processos concorrentes. Com o acesso dos dados compartilhados surgiu o problema da região crítica e a sincronização apresenta soluções para esse problema. A sincronização tem como um de seus objetivos manter a consistência de dados, requerendo a utilização de mecanismos para garantir a execução ordenada de processos Revista itec Vol. 4, Nº 4, Jul Página 39

9 cooperantes. Algumas soluções para o problema da região crítica são a exclusão mútua, progresso e a espera limitada. A exclusão mútua acontece quando um processo está executando sua região critica e outro processo pode estar querendo executar a sua região crítica. O progresso é quando nenhum processo está executando uma região crítica e existem processos que desejam entrar nas regiões críticas deles, então a escolha do próximo processo que irá entrar na região crítica ao pode ser adiada indefinidamente. A espera limitada acontece quando existe um limite para o número de vezes que os outros processos são selecionados para entrar nas regiões criticas deles, depois que um processo fez uma requisição para entrar em sua região crítica e antes que essa requisição seja atendida. Muitos sistemas fornecem suporte de hardware para código de seção crítica como os sistemas monoprocessados, que podem desabilitar interrupção, o código em execução pode executar sem preempção, geralmente muito ineficiente em sistemas multiprocessados, os sistemas operacionais que usam isso não escalam. As arquiteturas modernas fornecem instruções atômicas especiais de hardware como testar uma posição de memória e setar um valor ou trocar conteúdos de duas posições na memória. Dentre as soluções também podemos contar com o uso de Lock (bloqueios), Instruções test and set, Swap, Semáforo e Monitores. O Semáforo é a solução mais geral e simples de ser implementada, variável inteira que só pode ser manipulada por duas instruções wait e signal, na exclusão mútua essas instruções funcionam como protocolos de entrada e saída, valor maior a zero, recurso liberado, valor igual à zero, processo impedido de acesso. A solução trazida pelos semáforos é aplicada ao problema de sincronização condicional, em geral se existe um processo que deve ser notificado sobre a ocorrência, pode-se utilizar um semáforo associado ao evento esperado para sincronizar ambos os recursos ao mesmo tempo. Existe o Semáforo Circular que permite somente valores inteiros e o Semáforo Binário com valores em zero e um. O problema do Semáforo é que é difícil para programar, identificando as regiões críticas colocando um wait e signal, caso aconteça o esquecimento de uma só pode gerar vários problemas. Os monitores, mostrado pela Figura 6, são abstrações de alto nível que fornecem um mecanismo conveniente de sincronização de processos, somente um processo pode estar ativo dentro do monitor, é como se fosse uma classe, os processos chamam os procedimentos e após liberar o outro processo entra. Cada linguagem tem sua sintaxe para ter os monitores. Revista itec Vol. 4, Nº 4, Jul Página 40

10 Figura 6. Funcionamento de um Monitor Fonte: 7. Deadlocks Um estado de deadlock ocorre quando dois ou mais processos estão esperando indefinidamente por um evento que só pode ser causado por um dos processos em espera. Em princípio existem três métodos para tratar deadlocks: Usar algum protocolo para garantir que o sistema nunca entre em estado de deadlock; Permitir que o sistema entre em estado de deadlock e depois se recupere; Ignorar o problema e fingir que os deadlocks nunca ocorrem no sistema. A terceira solução é usada pela maioria dos sistemas operacionais, incluindo o UNIX e a JVM. Uma situação de deadlock poderá ocorrer se e somente quatro condições necessárias forem válidas ao mesmo tempo no sistema: exclusão mútua, posse e espera, não-preempção e espera circular. Para prevenir deadlocks, é preciso garantir que ao menos uma das condições necessárias nunca seja válida. Outro método para evitar deadlocks, menos estrito do que os algoritmos de prevenção é ter informações, primeiramente, sobre como cada processo estará utilizando o recurso. Usando essas informações, é possível definir um algoritmo que poderá impedir os deadlocks. Se um sistema não utilizar protocolo para garantir que os deadlocks nunca ocorrerão, um esquema de detecção e recuperação deverá ser empregado. Um algoritmo de detecção de deadlocks deverá ser acionado para verificar se este ocorreu ou não, caso seja verificado e tenha ocorrido, o sistema deverá se recuperar terminado alguns dos processos em deadlock ou efetuando a preempção de recursos a partir de alguns dos processos em deadlock. Em um sistema que seleciona as vitimas para o rollback (exclusão, preempção) principalmente com base nos fatores de custo, poderá ocorrer uma paralisação. Como resultado, o processo selecionado nunca concluirá a tarefa que lhe foi designada. Segundo Silberschatz (2004, p.174) os pesquisadores vêm discutindo o fato de que Revista itec Vol. 4, Nº 4, Jul Página 41

11 nenhuma dessas abordagens por si só é apropriada para todo o espectro de problemas de alocação de recursos nos sistemas operacionais. As abordagens básicas podem ser combinadas, permitindo a seleção separada de uma solução ótima para cada classe de recursos em um sistema. 8. Gerência de Memória O gerenciador de memória controla quais partes da memória estão sendo utilizadas e quais não estão. Além disso, ele é responsável por alocar espaço em memória aos processos que serão executados e liberar as posições de memória ocupadas quando os processos são finalizados. Outra funcionalidade do gerenciador de memória é controlar o swapping de informação, constante na execução das aplicações. Para iniciar a discussão sobre o tema da aula vamos entender, primeiramente, a função da MMU. A MMU é um módulo de hardware que faz o mapeamento entre os endereços lógicos (end. da memória virtual) e os endereços físicos da memória (RAM), ou seja, é um dispositivo que transforma endereços virtuais em endereços físicos. Para isso, a MMU normalmente traduz número de páginas virtuais para número de páginas físicas utilizando uma cache chamada Translation Lookside Buffer (TLB). Na figura abaixo temos ilustrado o mecanismo de tradução dos endereços. Podemos classificar os gerenciadores de memória em dois tipos: os que permitem as trocas de processos entre a memória principal e o disco (troca de processos e paginação, mais complexos) e os que não permitem (muito mais simplificados e limitados). A necessidade da troca de processos e paginação acontece devido a quantidade insuficiente de memória principal para armazenar vários programas ao mesmo tempo. Hoje em dia, as máquinas adotam um modelo denominado multiprogramação e, portanto, os algoritmos necessitam gerenciar várias aplicações que concorrem ao uso das unidades de processamento e armazenamento de dados. 9. Memória Virtual A memória virtual é uma técnica que permite o mapeamento de um espaço de endereçamento lógico grande em uma memória física menor. A memória virtual permite que processos extremamente grandes sejam executados, e que o grau de multiprogramação seja elevado, melhorando o desempenho da CPU. Além disso, ela libera os programadores de aplicações de preocupação de pensar na disponibilidade da memória, como mostra a figura abaixo, onde a memória virtual mapeia os endereços para dar sequência à execução das instruções selecionadas. Revista itec Vol. 4, Nº 4, Jul Página 42

12 Figura 7. Funcionamento da paginação Fonte: Uma das estratégias de implementação dessa técnica é a paginação, como mostra a Figura 7, que nunca leva uma sequência de páginas para a memória até que esta seja referenciada. A primeira referência causa uma falta de páginas para o monitor residente do sistema operacional que consulta uma tabela interna de páginas para determinar onde a página está localizada no armazenamento auxiliar. A tabela de páginas é atualizada para refletir essa mudança, e a instrução que causou a falta de página é reiniciada. Essa abordagem permite que um processo execute mesmo que sua imagem de memória completa não esteja na memória principal de uma vez. Desde que a taxa de falta de página seja razoavelmente baixa, o desempenho será aceitável. A paginação pode ser usada para reduzir o número de quadros alocados a um processo. Esse arranjo pode aumentar o grau de multiprogramação (permitindo a execução de vários processos disponíveis para execução ao mesmo tempo) e, ao menos em teoria, aumenta a utilização da CPU do sistema. Permitindo assim que os processos sejam executados mesmo que suas exigências de memória superem a memória física total disponível, pois estes executam na memória virtual. Se os requisitos de memória total excederem a memória física, pode ser necessário substituir as páginas da memória para liberar quadros para novas páginas. Vários algoritmos de são utilizados com este intuito. A substituição de página FIFO é fácil de programar, já a substituição de página ótima requer conhecimento futuro. A substituição LRU é uma aproximação da substituição ótima, mas mesmo ela pode ser difícil de implementar. A maioria dos algoritmos de substituição de página, tais como o de segunda chance, são aproximações da substituição LRU. Além de um algoritmo de substituição de página, é necessária uma política de alocação de quadros. A alocação pode ser fixa, sugerindo a substituição de página local, ou dinâmica, sugerindo a substituição global. O modelo de conjunto de trabalho assume que os processos executam em localidades. O conjunto de trabalho é o conjunto de páginas na localidade atual. Da mesma forma, cada processo deve receber um número de quadros suficientes para seu conjunto de trabalho atual. Revista itec Vol. 4, Nº 4, Jul Página 43

13 Se um processo não tiver memória suficiente para seu conjunto de trabalho, ele entrará em thrashing. Fornecer quadros suficientes para cada processo a fim de evitar o thrashing pode exigir swapping e o escalonamento de processos. Além de exigir a resolução dos principais problemas de substituição de página e alocação de quadros, o projeto adequado de um sistema de paginação requer que consideremos o tamanho de página, I/O, travamento, pré-paginação, estrutura dos programas e outros tópicos. A memória virtual pode ser considerada um nível de uma hierarquia de níveis de armazenamento em um sistema de computação. Cada nível tem seu próprio tempo de acesso, tamanho e parâmetros de custo. 10. Sistema de Arquivos Um arquivo é um tipo abstrato de dados definido e implementado pelo sistema operacional. É uma sequência de registros lógicos. Um registro lógico pode ser um byte, uma linha (de tamanho fixo ou variável) ou um item de dados mais complexo. O sistema operacional pode suportar especificamente vários tipos de registro ou pode deixar o suporte ao programa aplicativo. A principal tarefa do sistema operacional é mapear o conceito de arquivo lógico em dispositivos de armazenamento físico tais como fita ou disco magnético. Como o tamanho do registro físico do dispositivo talvez não seja igual ao tamanho do registro lógico, pode ser necessário encaixar registros lógicos em registros físicos. Mais uma vez, essa tarefa pode ser suportada pelo sistema operacional ou deixada para o programa aplicativo. Os sistemas de arquivos baseados em fita são limitados; a maioria dos sistemas de arquivos são baseados em disco. As fitas são comumente usadas para transporte de dados entre máquinas, ou para armazenamento de backup ou arquivamento. Cada dispositivo em um sistema de arquivos mantêm um índice de volume ou diretório de dispositivo listando a posição dos arquivos no dispositivo. Além disso, é útil criar diretórios para permitir a organização dos arquivos. Um diretório de nível único em um sistema multiusuário causa problemas de nomeação, já que cada arquivo deve ter um nome exclusivo. Um diretório de dois níveis resolve esse problema criando um diretório separado para cada usuário. Cada usuário tem seu próprio diretório, que contém seus próprios arquivos. O diretório lista os arquivos por nome, e inclui informações como a posição do arquivo no disco, seu tamanho, tipo, proprietário, hora da criação, hora da última utilização etc. A generalização natural de um diretório de dois níveis é um diretório estruturado em árvore. Um diretório em árvore permite que o usuário crie subdiretórios para organizar seus arquivos. Estruturas de diretórios de grafos acíclicos permitem o compartilhamento de arquivos e diretórios, mas complicam a pesquisa e exclusão. Uma estrutura de grafo genérico permite flexibilidade total no compartilhamento de arquivos e diretórios, mas às vezes requer o uso da coleta de lixo para recuperar espaço em disco não utilizado. Como os arquivos são o principal mecanismo de armazenamento de informações na maioria dos sistemas de computação, a proteção de arquivo é necessária. O acesso aos arquivos pode ser controlado de forma separada para cada tipo de acesso: ler, gravar, executar, anexar, listar diretório e assim por diante. A proteção de arquivo pode ser fornecida por senhas, listas de acesso, ou por técnicas Revista itec Vol. 4, Nº 4, Jul Página 44

14 especiais ad hoc. O sistema de arquivos reside permanentemente no armazenamento secundário, que tem como exigência principal o fato de poder armazenar grandes quantidades de dados de forma permanente. O meio de armazenamento secundário mais comum é o disco. Os sistemas de arquivos são muitas vezes implementados em uma estrutura em camadas ou modular. Os níveis inferiores tratam das propriedades físicas dos dispositivos de armazenamento. Os níveis superiores lidam com nomes de arquivo simbólicos e as propriedades lógicas dos arquivos. Os níveis intermediários mapeiam os conceitos de arquivo lógico em propriedades de dispositivos físicos. Os vários arquivos podem ser alocados no disco de três formas: através de alocação contígua, encadeada ou indexada. A alocação contígua pode sofrer de fragmentação externa. O acesso direto é muito ineficiente com a alocação encadeada. A alocação indexada pode exigir custo substancial para seu bloco de índice. Existem muitas formas nas quais esses algoritmos podem ser otimizados. O espaço contíguo pode ser ampliado por meio de extensões para aumentar a flexibilidade e diminuir a fragmentação externa. A alocação indexada pode ser feita em clusters de múltiplos blocos para aumentar o throughput e reduzir o número de entradas de índice necessárias. A indexação em clusters grandes é semelhante à alocação contígua com extensões. Os métodos de alocação de espaço livre também influenciam a eficiência de uso do espaço em disco, o desempenho do sistema de arquivos, e a confiabilidade do armazenamento secundário. Os métodos usados incluem vetores de bits e listas encadeadas. As otimizações incluem agrupamento, contadores e a FAT, que coloca a lista encadeada em uma área contígua. As rotinas de gerência de diretórios devem considerar os aspectos de eficiência, desempenho e confiabilidade. Uma tabela de dispersão é o método mais frequentemente usado; é rápido e eficiente. Infelizmente, danos à tabela ou uma falha no sistema podem fazer com que as informações do diretório não correspondam ao conteúdo do disco. Um verificador de consistência - um programa de sistema como o chkdsk no MS-DOS - pode ser usado para reparar o dano. 7. Conclusão Os sistemas operacionais são softwares extremante complexos, que tem como missão manter em equilíbrio a execução de programas e o hardware se comunicando com o usuário, ou seja, interagindo com todos os componentes envolvidos no sistema de computação. Entende-los não é tarefa fácil devida tamanha complexidade e estrutura da qual gerenciam de forma a ter um ótimo custo-benefício para ambas às partes hardware e usuário. A facilidade de interação entre o usuário e máquina é tamanha que não nos damos conta da complexidade desse sistema, é ele quem administra e executa todos os pedidos do usuário. O sistema computacional tem a forma atual devido aos sistemas operacionais que são os responsáveis por fazer essa conexão entre quem utiliza o hardware e o próprio usuário. Todos os usuários, na atualidade usam e não se imaginam em um computador que não tenha um sistema operacional sendo executado. O sistema operacional se tornou Revista itec Vol. 4, Nº 4, Jul Página 45

15 tão importante que para muitos somente ele transmite a ideia de ser o próprio computador. Esse software é de extrema importância, já que atua como mediador entre o hardware e os softwares que estão instalados no computador. Os sistemas operacionais estão sofrendo grandes atualizações e tem versões para vários estilos de usuários com a intenção de tentar se adaptar, fazendo com que o seu usuário ao interagir de forma a tornar-se imperceptível. Referências Silberschatz, A.; Galvin, P.B.; Gagne, G. Fundamentos de Sistemas Operacionais. 6ª ed. Rio de Janeiro: LTC, Revista itec Vol. 4, Nº 4, Jul Página 46

Resumo: Sistemas Operacionais Abertos

Resumo: Sistemas Operacionais Abertos Resumo: Sistemas Operacionais Abertos Prof. Michael A. Pontes Processos Um processo é um programa em execução. Enquanto um processo é executado, ele muda de estado. O estado de um processo é definido pela

Leia mais

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais. Gerência de Processador Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento

Leia mais

Sistemas de Computação. Processos e escalonamento

Sistemas de Computação. Processos e escalonamento Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas

Leia mais

Questões de Múltipla escolha

Questões de Múltipla escolha ATPS Sistemas Operacionais Professor Matheus de Lara Calache Valor total do trabalho: 10 Cada resposta vale 0,34. Questões de Múltipla escolha 1) Processos podem ser organizados em filas como Fila de Prontos

Leia mais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;

Leia mais

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

Leia mais

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos Aula 04 Capítulo 3 Gerência de Processos 3.1 Conceito de Processo 3.2 Escalonamento de Processos 3.3 Opera ões sobre Processos 3.4 Comunica ão entre Processos 3.1 Conceito de Processo Um sistema operacional

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Sistemas Operacionais. Escalonamento de processos

Sistemas Operacionais. Escalonamento de processos Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas

Leia mais

6 ESCALONAMENTO DE CPU

6 ESCALONAMENTO DE CPU 6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador

Leia mais

ENADE 2011 SISTEMAS OPERACIONAIS

ENADE 2011 SISTEMAS OPERACIONAIS ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE III SUMÁRIO 4. GERÊNCIA DO PROCESSADOR: 4.1 Introdução; 4.2 Funções Básicas; 4.3 Critérios de Escalonamento; 4.4 Escalonamentos Não-Preemptivos

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

Arquitetura de Computadores Sistemas Operacionais II Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa

Leia mais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5

Leia mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos

Leia mais

Curso: Redes de Computadores

Curso: Redes de Computadores Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas

Leia mais

Sistemas Operacionais. Conceito de Processos

Sistemas Operacionais. Conceito de Processos Sistemas Operacionais Conceito de Processos Processos Conceito de processo Estado de um processo Troca de contexto e PCB Fila de Processo Escalonador Comunicação entre processos Processo Um sistema operacional

Leia mais

Algoritmos de escalonamento

Algoritmos de escalonamento Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento

Leia mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto? LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar

Leia mais

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal Sistemas Operacionais Aula 15: Sistemas de I/O Ezequiel R. Zorzal ezorzal@unifesp.br www.realidadeaumentada.com.br Objetivos Explorar a estrutura do subsistema de E/S de um sistema operacional Discutir

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

Prof. Kleber R. Rovai

Prof. Kleber R. Rovai Msn: klrovai@hotmail.com E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em

Leia mais

Gerência do Processador. Adão de Melo Neto

Gerência do Processador. Adão de Melo Neto Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO Como

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas

Leia mais

Davidson Rodrigo Boccardo

Davidson Rodrigo Boccardo Fundamentos em Sistemas de Computação Davidson Rodrigo Boccardo flitzdavidson@gmail.com Componentes de um SO Gerenciamento de Processos Sistema de Arquivos Gerenciamento de Entrada/Saída Gerenciamento

Leia mais

Gerência de Recursos. Gerência do Processador

Gerência de Recursos. Gerência do Processador Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento

Leia mais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4

Leia mais

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU Definição? Algoritmo de Escalonamento de CPU 6 Terminado? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU? Executado quando ocorre estouro de Quantum ou interrupção do processo (I/O,

Leia mais

Aula 10: Escalonamento da CPU

Aula 10: Escalonamento da CPU Aula 10: Escalonamento da CPU O escalonamento da CPU é a base dos sistemas operacionais multiprogramados. A partir da redistribuição da CPU entre processos, o sistema operacional pode tornar o computador

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum

Leia mais

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização Hardware: Componentes Básicos Arquitetura dos Computadores Dispositivos de Entrada Processamento Dispositivos de Saída Armazenamento Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Sistema de

Leia mais

Professor Léo Matos TI para Concursos

Professor Léo Matos TI para Concursos Professor Léo Matos TI para Concursos Um sistema computacional é formado basicamente por hardware (física) e software (lógica). O hardware é composto por circuitos eletrônicos (processador, memória, portas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 7,8 Processos Gerência de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: Prof. José Juan Espantoso Sumário Conceito de

Leia mais

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais. Processos IC - UFF Sistemas Operacionais Processos O conceito de processos No capítulo 1, fizemos as seguintes afirmativas quanto aos processos: Mais geral que programa Consiste em um código executável e seus dados associados,

Leia mais

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais. Processos e Threads Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação

Leia mais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada... LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo

Leia mais

Gerência do Processador. Adão de Melo Neto

Gerência do Processador. Adão de Melo Neto Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO São um

Leia mais

Programação de Sistemas em Tempo Real

Programação de Sistemas em Tempo Real BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa

Leia mais

Sistemas Operacionais II

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

Leia mais

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES SISTEMAS OPERACIONAIS TÁSSIO JOSÉ GONÇALVES GOMES www.tassiogoncalves.com.br tassiogoncalvesg@gmail.com CONTEÚDO PROCESSOS Fundamentos O Núcleo do Sistema Operacional Escalonamento de Processos Comunicação

Leia mais

Técnicas Avançadas de Programação

Técnicas Avançadas de Programação Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos

Leia mais

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads AULA Nº 08 SISTEMAS OPERACIONAIS Threads Contextualizando Na aula passada Sincronização de Processos Aula de hoje Threads O Modelo de Processo 1) Utilizado para agrupar recursos 2) Um espaço de endereço

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. Aula 06.

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06. Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é

Leia mais

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

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

Leia mais

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006 Capítulo 13: Sistemas de E/S Capítulo 13: Sistemas de E/S Hardware de E/S Interface de E/S da aplicação Subsistema de E/S do kernel Transformando requisições de E/S em operações de hardware Fluxos Desempenho

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 11ª Aula Threads Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro

Leia mais

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Processos e Threads Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Tópicos Conceito de Processos Escalonamento

Leia mais

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens

Leia mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ   fevereiro, / 41 Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF Exercícios Cap I 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) 1.5 1.7, 1.8 e 1.12 Sistemas Operacionais Visão geral e evolução dos SOs Sistema Operacional? Um programa que controla a execução dos programas

Leia mais

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io)

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io) SO: Escalonamento Sistemas Operacionais 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Aonde Estamos Processos Chapt 3 Threads Chapt 4 Vamos pular o Chapt 5 brevemente Sincronização e comunicação

Leia mais

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos Infra Estruturas Computacionais Professor: André Ferreira andre.ferreira@ifba.edu.br Material baseado: Prof.ª Renata Vilas e outros Estados dos processos novo admissão condição satisfeita pronto carga

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de

Leia mais

Sistemas Operacionais. Aula 1

Sistemas Operacionais. Aula 1 Faculdade Dom Bosco de Porto Alegre Bacharelado em Sistemas de Informação Sistemas Operacionais Aula 1 Prof. Filipo Mór www.filipomor.com 2018/II Capítulo 1 Introdução aos Sistemas Operacionais Esta aula

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA VIRTUAL MACHADO/MAIA: CAPÍTULO 10 Prof. Pedro Luís Antonelli Anhanguera Educacional MEMÓRIA VIRTUAL -INTRODUÇÃO A Memória Virtual (virtual memory) é uma técnica

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo Múltipla escolha 1. Em que consiste um sistema operacional: a. Um conjunto de

Leia mais

Sistemas Operacionais Gerenciamento de Processos

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

Leia mais

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais: Escalonamento de processos Sistemas Operacionais: Escalonamento de processos Escalonamento Critérios de escalonamento Algoritmos de escalonamento Escalonamento em multiprocessadores Escalonamento tempo real Características de processos

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 10: Escalonadores Preemptivos Diego Passos Última Aula Escalonadores Não-Preemptivos Escalonadores não-preemptivos agem: Quando um processo requisita E/S. Quando

Leia mais

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais. Sistema de entrada e Saída Sistemas Operacionais Sistema de entrada e Saída Sistema de Entrada e Saída I/O É uma das principais tarefas de um sistema computacional Como máquina abstrata o S.O. deve oferecer uma visão padronizada

Leia mais

Sistemas Distribuídos Aula 2

Sistemas Distribuídos Aula 2 Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 02: Organização e Arquitetura de Computadores / Lógica Digital (Parte I) O conteúdo deste documento tem por objetivo

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais Apresentação Prof. Bruno de Souza Toledo bruno.toledo@ifmg.edu.br Sistemas Operacionais Carga horária: 80 horas/aula Habilidades e Competências A disciplina

Leia mais

Conceitos básicos e serviços dos Sistemas Operacionais

Conceitos básicos e serviços dos Sistemas Operacionais Conceitos básicos e serviços dos Sistemas Operacionais Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF Tipos de serviços do S.O. Um

Leia mais

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 2 O que é ambiente de execução? 3 Qual a finalidade da PCB? 4 Quais os componentes básicos da PCB? 5 Quais os 3 grupos de elemento

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

3 CONCEITOS DE SISTEMAS OPERACIONAIS

3 CONCEITOS DE SISTEMAS OPERACIONAIS 3 CONCEITOS DE SISTEMAS OPERACIONAIS 3.1 COMPONENTES DO SISTEMA Os Sistemas Operacionais são divididos em algumas partes básicas, conforme ilustrado na Figura 3.1. 1. Gerente de Processos; 2. Gerente de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais 01 Introdução e Conceitos Definição: É um software que atua como intermediário entre o usuário e o hardware do computador e, serve também como intermediário entre os softwares aplicativos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais ESCALONAMENTO DE PROCESSOS Processos e Recursos Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

Leia mais

Gerência de memória III

Gerência de memória III Gerência de memória III Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 45 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Gerência de Processos Componentes do Sistema Um programa não faz nada a não ser que suas instruções sejam executadas

Leia mais

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para UM ESTUDO SOBRE O MECANISMO DE PAGINAÇÃO DE MEMÓRIA E OS ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS FIFO E LRU Fernando Sales Ferreira, fernandobrabat@hotmail.com William Antônio Faria Da Silva, William_8716@hotmail.com

Leia mais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas

Leia mais

Programação concorrente (processos e threads)

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

Leia mais

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados

Leia mais

Chapter 4: Threads. Operating System Concepts 8th Edition

Chapter 4: Threads. Operating System Concepts 8th Edition Chapter 4: Threads Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano

Leia mais

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores Fundamentos de Sistemas Operacionais de Arquitetura Aberta CST em Redes de Computadores Introdução Computadores Computadores são compostos, basicamente, de CPU, memória e dispositivos de entrada e saída

Leia mais

Questões de Provas de Períodos Anteriores

Questões de Provas de Períodos Anteriores Sistemas Operacionais 2010/1 Questões de Provas de Períodos Anteriores 1) Dois importantes conceitos encontrados no sistema operacional Unix são: (i) modo de execução ( execution mode ); e (ii) contexto

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/06/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/06/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/06/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais Notas da Aula 11 - Fundamentos de Sistemas Operacionais 1. Escalonamento de Tempo Real Em sistemas de tempo real, o objetivo principal do escalonador é garantir que todos os processos sejam executados

Leia mais

Escalonamento de Processos

Escalonamento de Processos Escalonamento de Processos Escalonamento de processos Multiprogramação visa maximizar uso da CPU Sempre que processos estão prontos disputam CPU Algoritmo de escalonamento: maneira de escolher o processo

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo A. Moraes Lima 1 int a; p1 ( ) { int b; int *c; a = b +1; c = malloc (sizeof(int));... } int main ( ) {... } Pilha O que é memória? Pilha Dados Texto Endereço Max

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Gerência do processador (Escalonamento) Aula 05 Objetivos de um sistema operacional são: Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso

Leia mais

Gerência de memória II

Gerência de memória II Gerência de memória II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 48 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Escalonamento CPU Um vez escalonado, o processo utiliza o processador, de modo: Não preemptivo (FIFO, SJF, Cooperativo) Término

Leia mais

Sistemas Distribuídos Aula 3

Sistemas Distribuídos Aula 3 Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções

Leia mais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes (soufes@gmail.com) 1ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. Soluções de questões específicas

Leia mais

GERENCIAMENTO DE MEMÓRIA

GERENCIAMENTO DE MEMÓRIA GERENCIAMENTO DE MEMÓRIA Sistemas Operacionais Gerenciamento de memória O que vem em sua cabeça quando pensa em memória? Cache RAM Velocidade Custo Memória Secundária Capacidade 2 Hierarquias de Memórias

Leia mais

Sistemas Operacionais

Sistemas Operacionais Apresentação Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof. Sérgio CECHIN (cechin at inf.ufrgs.br)

Leia mais

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger Processos e Threads Ciclo 2 AT3 Prof. Hermes Senger Nota O presente material foi elaborado com base no material didático do livro Sistemas Operacionais, 3ª edição, de H.M.Deitel, P.J. Deitel, D.R. Choffnes,

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

Lista de Exercícios de INF1019

Lista de Exercícios de INF1019 Lista de Exercícios de INF1019 Versão 2018 Obs: estas questões servem apenas para seu aquecimento na matéria, e para revisão dos conceitos vistos na disciplina. A chance de cairem na prova é de apenas

Leia mais

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto Matéria: Sistema Computacional - SC Prof.: Esp.: Patrícia Dias da Silva Peixoto SISTEMA OPERACIONAL E TIPOS DE SISTEMAS OPERACIONAIS O QUE É UM SISTEMA OPERACIONAL (S.O.). Por mais complexo que possa parecer,

Leia mais