Um Estudo Baseado na Visão de Silberschatz sobre a Complexidade dos Sistemas Operacionais
|
|
- Letícia di Castro de Caminha
- 7 Há anos
- Visualizações:
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 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 maisSistemas 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 maisSistemas 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 maisQuestõ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 maisRedes 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 maisEstruturas 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 maisAula 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 maisWilliam 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 maisSistemas 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 mais6 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 maisENADE 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 maisSistemas 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 maisArquitetura 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 maisSistemas 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 maisSistemas 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 maisProcessos 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 maisCurso: 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 maisARQUITETURA 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 maisIntroduçã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 maisSistemas 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 maisAlgoritmos 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 maisLabSO 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 maisSistemas 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 maisSistemas 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 maisProf. 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 maisGerê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 maisSistemas 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 maisDavidson 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 maisGerê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 maisRedes 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 maisDefiniçã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 maisAula 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 maisSistemas 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 maisHardware: 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 maisProfessor 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 maisSistemas 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 maisSistemas 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 maisSistemas 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 maisLabSO 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 maisGerê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 maisProgramaçã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 maisSistemas 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 maisSISTEMAS 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 maisTé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 maisAULA 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 maisSistemas 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 maisSistemas 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 maisCapí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 maisSSC0640 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 maisProcessos 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 mais14/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 maisThread. 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 maisExercí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 maisSO: 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 maisEstados 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 maisSistemas 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 maisSistemas 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 maisSistemas 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 maisCapí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 maisFundamentos 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 maisSistemas 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 maisSistemas 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 maisSISTEMAS 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 maisFundamentos 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 maisSistemas 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 maisSistemas 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 maisTECNÓ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 maisSistemas 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 maisConceitos 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 mais1 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 maisO 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 mais3 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 maisSistemas 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 maisSistemas 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 maisSistemas 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 maisGerê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 maisSistemas 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 maisDurante 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 maisApresentaçã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 maisProgramaçã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 maisSistemas 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 maisChapter 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 maisFundamentos 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 maisQuestõ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 maisInformá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 maisNotas 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 maisEscalonamento 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 maisGerenciamento 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 maisSistemas 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 maisGerê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 maisSistemas 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 maisSistemas 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 maisSistemas 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 maisSISTEMAS 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 maisGERENCIAMENTO 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 maisSistemas 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 maisProcessos 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 maisFundamentos 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 maisLista 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 maisMaté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