Sistemas Operacionais

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

Download "Sistemas Operacionais"

Transcrição

1 Sistemas Operacionais REVISÃO Prof. Pedro Luís Antonelli Anhanguera Educacional

2 SISTEMA OPERACIONAL Definição (MACHADO/MAIA, 2007) Conjunto de rotinas executadas pelo processador Controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus recursos. Definição (TANANBAUM, 2003) Programa de computador que age como intermediário entre o usuário e o hardware

3 INTERRUPÇÃO E EXCEÇÃO Durante a execução de um programa, alguns eventos inesperados podem ocorrer ocasionando um desvio forçado no seu fluxo de execução. Podem ser classificadas: Interrupção Exceção

4 Interrupção - características Gerada por um evento assíncrono externo ao programa Tornou possível a implementação da concorrência Base da multiprogramação

5 EXCEÇÃO Gerada por um evento síncrono relacionado a instrução do programa corrente. Por exemplo uma exceção pode ser gerada quando ocorrer algumas das situações: Ocorre uma divisão por zero ; um overflow ( ou buffer overflow ); Um underflow.

6 REENTRÂNCIA Capacidade de um código executável ser compartilhado por diversos usuários, através de uma única cópia do programa na memória MACHADO, fig.3.7 pag 48 Reentrância

7 PROTEÇÃO DO SISTEMA O SO deve ser responsável pelo controle da utilização do processador impedindo que algum programa monopolize seu uso. O SO deve implementar mecanismos de proteção que controlem o acesso concorrente dos diversos recurso do sistema

8 Sistema Operacional (S.O.) Aplicativos Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações e ao próprio sistema Utilitários Núcleo do Sistema Operacional Hardware MACHADO, fig.4.1, pag 51 Estrutura do sistema computacional

9 FUNÇÕES DO S.O. Tratamento de interrupções e exceções Criação e eliminação de processos e threads Sincronização e comunicação entre processos e threads Escalonamento e controle dos processos e threads Gerencia de memória Gerência do sistema de arquivos

10 FUNÇÕES DO S.O. Gerencia de dispositivos de E/S Suporte às redes locais e distribuídas Contabilização do uso do sistema Auditoria e segurança do sistema Interface com o usuário.

11 VISÃO DO S.O. Gerenciador de Recursos Fornece Interface aos aplicativos Gerencia usuários no uso de recursos da máquina Aloca processador, memória, dispositivos de E/S

12 Kernel ( núcleo) ESTRUTURA DO S.O. Núcleo do Sistema Operacional System Call ( Chamadas do sistema) Mecanismo de proteção ao núcleo Modos de Acesso Mecanismo de proteção de segurança e violação do sistema

13 Kernel Núcleo do S.O. KERNEL Oferece serviços básicos para todas as outras partes Rotinas que fornece serviços aos usuários e aplicações Interpretador de comandos que desempenha papel de interação com o usuário.

14 SYSTEM CALL Funções das System Calls Gerência de processos e threads Gerência de memória Gerência do sistema de arquivos Gerência de dispositivos System Call Núcleo do Sistema Operacional Aplicação Biblioteca Hardware MACHADO, fig. 4.3, pag 54 Chamada de uma rotina do sistema System call

15 ARQUITETURA MONOLÍTICA Aplicação formada por vários módulos compilados separadamente e depois lincados em um grande e único programa executável onde os módulos podem interagir livremente Exemplo MS-DOS UNIX (primeiros) MACHADO, fig.4.6, pag 59 Arquitetura monolítica

16 ARQUITETURA EM CAMADAS Sistema dividido em níveis sobrepostos Módulos de uma camada podem fazer referência apenas aos módulos das camadas inferiores Isola as funções do S.O. facilitando sua manutenção MACHADO, fig.4.7, pag 59 Arquitetura em camadas do OpenVMS

17 MÁQUINA VIRTUAL Nível intermediário entre o hardware e o SO São independentes do SO Grande segurança para cada Máquina Virtual Desvantagem desempenho Exemplo JVM (Java Virtual Machine) VMWare Microsoft Virtual PC Oracle Virtual Box MACHADO, fig.4.8, pag 60 Máquina virtual

18 ARQUITETURA MICROKERNEL MACHADO, fig.4.9, pag 61 Arquitetura Microkernel

19 ARQUITETURA CLIENTE/SERVIDOR Baseado em Microkernel Tornar o núcleo do S.O. menor e mais simples Implementar a maior parte dos serviços do SO em processos de usuários Usuários não tem acesso direto ao hardware Adaptável para sistemas de processamento paralelo ou distribuído Exemplos MINIX Mach Windows NT

20 Processo Base para a multiprogramação Programa alocar recursos Compartilhar dados Trocar informações Sincronizar sua execução Gerência de Processos é a principal tarefa do SO

21 ESTRUTURA DO PROCESSO Sistema Multiusuário Cada usuário é associado a um processo Processo Programa em execução Ambiente onde um programa é executado Informações sobre a execução Recursos do sistema utilizados Espaço de endereçamento Tempo de processador Área em disco

22 ESTRUTURA DO PROCESSO Processo é formado por MACHADO, fig.5.2, pag 67 Estrutura de um processo

23 ESTRUTURA DO PROCESSO Contexto de Hardware Armazena o conteúdo dos registradores da UCP, registradores de uso específico e registrador de status Contexto de Software Especifica as características e limites dos recursos que podem ser alocados pelo processo Composto por 3 grupos de informações: Identificação Quotas Privilégios

24 ESTRUTURA DO PROCESSO Contexto de Software Identificação PID (Process Identification) Referência aos processos UI (User Identification) Identificação do usuário Quotas Limites de cada recurso do sistema que um processo pode alocar. Exemplo: Número maquina de arquivos abertos

25 ESTRUTURA DO PROCESSO Privilégios Direitos que definem ações que um processo pode fazer em relação a ele mesmo ou a outro processos do SO Exemplo: Conta root ou administrador

26 ESTRUTURA DO PROCESSO Espaço de Endereçamento Área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento. MACHADO, fig.5.4, pag 70 Características da estrutura de um processo

27 ESTRUTURA DO PROCESSO Bloco de Controle do Processo (PCB) Estrutura de dados do SO que implementa um Processo MACHADO, fig.5.5, pag 71 Bloco de controle do processo (PCB)

28 ESTADO DO PROCESSO Um processo pode estar em três estados Execução (Running) Quando está sendo utilizado pela UCP Somente um processo pode ser executado a cada instante Pronto (Ready) Quando aguarda apenas para ser executado Espera / Bloqueado (Wait) Quando aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento

29 MUDANÇAS DE ESTADO DO PROCESSO Pronto -> Execução Quando um processo é criado, o sistema o coloca em uma fila de processos prontos, onde aguardará uma oportunidade para ser executado. Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem em que os processos serão executados (escalonamento).

30 MUDANÇAS DE ESTADO DO PROCESSO Pronto -> Execução (continuação) Esta transição também ocorre quando todos os processos já tiveram o seu tempo de execução (fatia de tempo) e agora é novamente a vez do primeiro processo da fila de prontos ser executado pela CPU. Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

31 MUDANÇAS DE ESTADO DO PROCESSO Execução -> Espera( Bloqueado) - Um processo executando pode passa para o estado bloqueado por meio de eventos gerados pelo próprio processo. Ex: uma operação de E/S. - Um processo, quando em execução, também pode passar para o estado bloqueado por por eventos gerados pelo sistema. Ex: S.O. suspende por um período a execução de um processo.

32 MUDANÇAS DE ESTADO DO PROCESSO Espera ( Bloqueado) -> Pronto - Um processo no estado de bloqueado/espera passa para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido. - Um processo no estado de bloqueado/espera sempre terá que passar pelo estado de pronto antes de poder ser novamente selecionado para execução. - Não existe mudança de estado de bloqueado/espera para o estado de execução diretamente.

33 MUDANÇAS DE ESTADO DO PROCESSO Execução -> Pronto Um processo em execução pode passa para o estado de pronto quando ocorrer o término da sua fatia de tempo, por exemplo. Nesse caso, o processo volta para a fila de processos prontos, onde aguarda uma nova fatia de tempo; Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

34 MUDANÇAS DE ESTADO DO PROCESSO - RESUMO

35 MUDANÇAS DE ESTADO DO PROCESSO Atenção: - Um processo em estado Pronto ou Espera pode não se encontrar na memória principal! - Isto ocorre quando não existe espaço suficiente para todos os processo na RAM e parte do contexto do processo é levada para o HD. - Uma técnica conhecida como swapping retira processos da RAM e os traz de volta seguindo critérios de cada SO. Neste caso, os processos em estado bloqueado/espera e pronto podem estar residentes ou não residentes na RAM.

36 MUDANÇAS DE ESTADO DO PROCESSO COM Swapping

37 CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS - Processos são criados e eliminados por vários motivos; - Um processo é criado quando o SO adiciona um novo PCB ( Bloco de Controle de Processo) à sua estrutura. A partir do PCB o SO já pode gerenciar o processo; - Quando um processo é eliminado seus recursos associados são desalocados e o SO elimina o PCB. - A criação de um processo não o coloca na lista de processo no estado de pronto.

38 CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS Além dos 3 estados de um processo, a maioria dos SO têm mais 2 estados (um para criação e outro para eliminação). - Criação (New) : O SO criou um novo PCB, porém o processo não está na lista de prontos; - Terminado (Exit): Não pode ser mais executado, porém o SO ainda mantém seu PCB e o SO usa o PCB para contabilizar os recursos usados. Após isto, o processo pode deixar de existir.

39 CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS

40 CONCORRÊNCIA DENTRO DE UMA MESMA APLICAÇÃO Existem maneiras diferentes de implementar concorrência dentro de uma aplicação. Uma delas é subdividir o código em partes para trabalharem de forma cooperativa. Essa divisão pode ser de 3 formas: - Processos Independentes; - Subprocessos; - Threads.

41 PROCESSOS INDEPENDENTES O uso de processo independentes é a forma mais simples de implementar a concorrência em sistemas multiprogramáveis; Neste caso não existe vínculo do processo criado com o seu criador; A criação de um processo independente exige a alocação de um PCB.

42 SUBPROCESSOS São processos criados dentro de uma estrutura hierárquica: - Processo criador = processo pai; - Novo processo = subprocesso ou processo filho. Um subprocesso pode criar outros subprocessos. Existe a dependência entre o processo pai e filho, ou seja, se o processo pai morre, o filho morre automaticamente. Os subprocessos também possuem seu próprio PCB. Os subprocessos podem compartilhar quotas com seu pai.

43 PROCESSOS x SUBPROCESSOS

44 PROCESSOS x SUBPROCESSOS A criação e eliminação de processos independentes e subprocessos demanda recursos do sistema (CPU, RAM,...). Além disso, como cada processo tem seu espaço de endereçamento, a comunicação e sincronização entre processos é pouco eficiente.

45 THREADS O mecanismo de Threads foi introduzido para reduzir o tempo gasto na criação, eliminação e troca de contexto de processos. Em um ambiente multithread um processo suporta múltiplos threads (um para cada parte do código da aplicação). Neste caso não há a necessidade de vários processos para a implementação da concorrência economizando recursos do sistema. Threads compartilham a CPU da mesma forma que um processo, ou seja, enquanto um thread espera por E/S, outro pode ser executado.

46 THREADS Cada thread possui seu próprio contexto de Hardware, porém divide o mesmo contexto de Software e espaço de endereçamento com os demais threads do processo.

47 PROCESSOS dos tipos FOREGROUND e BACKGROUND Um processo possui sempre dois canais de comunicação associados a ele: Um canal de entrada de dados (Input) Um canal de saída de dados (Output) Dependendo de do tipo desses canais os processos podem ser classificados como Foreground ou Background.

48 PROCESSOS do tipo FOREGROUND Permite a comunicação direta do usuário com o processo durante o seu processamento. Tem como base processamento interativo (teclado, mouse e monitor, etc)

49 PROCESSOS do tipo BACKGROUND Não permite a comunicação com o usuário durante o processamento. Tem como base processamento tipo batch (arquivos de E/S)

50 PROCESSOS do tipo CPU-BOUND E I/O-BOUND CPU-Bound ( limitado pelo processamento) Ligado a CPU passa a maior parte do tempo usando o processador ( estado de execução) e pouco utiliza as operação de E/S. Exemplo: Programas de cálculo ou análise, próprias de programas científicos. I/O-Bound ( limitado pelas entradas/saídas) Esse tipo de processamento usa pouco a CPU e passa a maior parte do seu tempo no estado de bloqueado (ou espera), pois realiza muita operações de E/S. Exemplos: - Aplicações comerciais (leitura X gravação); - Processos interativos ( logon e entrada de dados); - Manipulação de Banco de Dados.

51 PROCESSOS do tipo CPU-BOUND E I/O-BOUND

52 SINAIS É um mecanismo que permite notificar processos de eventos gerados pelo SO ou por outros processos. O uso de sinais é fundamental para gerência de processos. Exemplo: O uso do Ctrl+C para interromper um programa: - Neste caso o SO gera um sinal informando ao processo o evento; - No momento que o processo identifica a chegada do sinal, uma rotina específica de tratamento é executada. MACHADO, fig.5.17, pag 82 Uso de sinais

53 SINAIS A maioria dos sinais são gerados pelo SO ou pelo Hardware, como a ocorrência de exceções, interrupções de terminais, quotas excedidas e alarmes de tempo. Em outras situações, os eventos são gerados a partir de outros processos com o propósito de sincronizar suas exceções. Um processo não responde instantaneamente a um sinal e os sinais ficam pendentes até que o processo seja escalonado.

54 SINAIS O tratamento de um sinal é semelhante ao de interrupção. Quando um sinal é tratado, o contexto do processo é salvo e a execução desviada para um código de tratamento de sinal. Depois disso o programa volta a ser processado do ponto que parou. O mecanismo de sinais está para o processo assim como as interrupções e exceções estão para o SO.

55 PROCESSOS DO SISTEMA OPERACIONAL Serviços do SO realizados através de processos: Auditoria e segurança; Serviços de rede; Contabilização do uso de recursos; Contabilização de erros; Gerencia de impressão; Gerencia de jobs batch; Temporização; Comunicação de eventos; Interface de comandos Shell.

56 THREAD O que é um thread? Definição: um thread é um fluxo único de controle sequencial dentro de um programa.

57 INTRODUÇÃO Um thread não é um programa, mas é executado em um programa.

58 Programa? THREAD Sequência de instruções, composta por desvios, repetições e chamadas a procedimentos e funções; Um processo suporta apenas um programa em seu espaço de endereçamento; Para programas "normais" (single thread), tem um único ponto de execução dentro do programa num momento particular.

59 THREAD Um thread é semelhante a um programa normal, tem um início, uma sequência e um fim. Um thread parece ser um processo mas compartilha o mesmo "espaço de endereçamento do processo principal e tem um único ponto de execução num certo momento.

60 PROCESSO x THREAD

61 AMBIENTE MONOTHREAD Em aplicações MonoThreads para se conseguir concorrência temos: Múltiplos processos independentes ou subprocessos; Processos concorrentes demandam consumo de recursos do sistema; Problemas no compartilhamento do espaço de endereçamento.

62 AMBIENTE MONOTHREAD Para resolver o problema de compartilhamento do espaço de endereçamento podemos utilizar algumas técnicas: - Pipes; - Sinais; - Semáforos; - Memória compartilhada; - Troca de mensagens.

63 AMBIENTE MULTITHREAD Não existe programas associados a processos, existem Threads. Cada processo tem pelo menos um Thread. A Thread compartilha seu espaço de endereçamento com o processo principal.

64 AMBIENTE MULTITHREAD MACHADO, fig.6.3, pag 90 Ambiente multithread

65 Vantagens: AMBIENTE MULTITHREAD Possibilidade de minimizar a alocação de recursos do sistema; Diminuir o overhead na criação, troca e eliminação de processos; O tempo para a troca de execução de um Thread é menor do que um processo.

66 AMBIENTE MULTITHREAD Desvantagem: - Quando várias threads acessam o mesmo recurso, como campos estáticos, temos que tomar cuidado para que garantir que duas ou mais threads não acessem ao mesmo tempo determinado recurso, corrompendo os dados; - O responsabilidade do programador aumenta com o aumento das Threads.

67

68 sistemas multiprogramáveis Os sistemas multiprogramáveis surgem na década de 60 passou a ser possível estruturar aplicações de maneira que partes diferentes do código do programa pudessem executar concorrentemente. Este tipo de aplicação, denominada aplicação concorrente, tem como base a execução cooperativa de múltiplos processos ou threads, que trabalham em uma mesma tarefa na busca de um resultado comum.

69 MONOPROGRAMÁVEL X MULTIPROGRAMÁVEL Vários programas podem estar residentes em memória, concorrendo pela utilização do processador MACHADO, fig.3.1, pag 40 Sistema monoprogramável x sistema multiprogramável

70 sistemas multiprogramáveis Em sistemas multiprogramáveis com um único processador, os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo Sistema Operacional, mesmo não havendo paralelismo na execução das instruções, ocorre significativo ganho de desempenho. Em sistemas multiprocessados, as vantagens são ainda maiores graças a possibilidade de paralelismo na execução das instruções.

71 Sistemas Multiprogramáveis É natural que processos de uma aplicação concorrente compartilhem recursos do sistema, como arquivos, registros, dispositivos de E/S e áreas de memória. O compartilhamento de recursos entre os processos pode ocasionar situações indesejáveis, capazes até de comprometer a execução das aplicações.

72 MACHADO, fig.7.1, pag 102 Sincronização e comunicação entre processos Comunicação e Sincronização Muitas vezes, em uma aplicação concorrente, é necessário que processos comuniquem-se entre si, e essa comunicação pode ser implementada de diversos mecanismos, como variáveis compartilhadas na memória principal ou troca de mensagens. Nesta situação, é necessário que os processos tenham sua execução sincronizada pelo sistema operacional.

73 MACHADO, fig.7.1, pag 102 Sincronização e comunicação entre processos Comunicação e Sincronização Por exemplo, podemos ter dois processos concorrentes compartilhando um buffer para trocar informações através de operações de gravação e leitura, onde ambos os processos necessitam aguardar que o buffer esteja pronto para realizar as respectivas operações, quer seja de leitura, quer seja de gravação.

74 MACHADO, fig.7.1, pag 102 Sincronização e comunicação entre processos Comunicação e Sincronização Mas cada um dos processos podem ser executados com velocidades diferentes. Para cooperar, processos precisam se comunicar e se sincronizar.

75 Condições de Corrida Analisando os dois exemplos apresentados, é possível concluir que em qualquer situação, onde dois ou mais processos compartilham um mesmo recurso, devem existir mecanismos de controle para evitar esses tipos de problemas, conhecidos como condições de corrida (race conditions ). Ocorre quando? Quando processos estão lendo ou escrevendo dados compartilhados e o resultado final depende de qual processo executa e quando (em que ordem) este executa.

76 Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento apresentados é impedir que dois ou mais processos acessem um mesmo recurso simultaneamente. Para isso, enquanto um processo estiver acessando determinado recurso, todos os demais processos que queiram acessá-lo deverão esperar pelo término da utilização do recurso. Essa idéia de exclusividade de acesso é chamada de exclusão mútua (mutual exclusion).

77 Regiões Críticas A exclusão mútua deve afetar apenas os processos concorrentes somente quando um deles estiver fazendo acesso ao recurso compartilhado. A parte do código do programa onde é feito o acesso ao recurso compartilhado é denominada região crítica (critical region). Se for possível evitar que dois processos entre em suas regiões críticas ao mesmo tempo, ou seja, se for garantida a execução mutuamente exclusiva das regiões críticas, os problemas decorrentes do compartilhamento serão evitados.

78 Regiões Críticas Os mecanismos que implementam a exclusão mútua utilizam protocolos de acesso à região crítica. Toda vez que um processo desejar executar uma instrução de sua região crítica, deverá obrigatoriamente executar antes um protocolo de entrada nesta região. Da mesma forma, ao sair da região crítica um protocolo de saída deverá ser executado. Estes protocolos garantem a exclusão mútua da região crítica do programa.

79 Espera Indefinida Estas soluções propostas para o acesso sincronizado devem garantir a exclusão mútua e também evitar que duas outras situações indesejadas ocorram. A primeira situação indesejada é conhecida como espera indefinida (starvation) que é a situação em que um processo nunca consegue executar sua região crítica e, consequentemente, acessar o recurso compartilhado. Quando um determinado recurso é liberado, o Sistema Operacional irá selecionar qual será o próximo processo que fará uso do mesmo.

80 Espera Indefinida Este critério de escolha poderá ocasionar uma espera indefinida, quando for utilizado critério baseado em escolha aleatória ou em função da prioridade do processo (processos de baixa prioridade serão prejudicados). A solução é implementar uma fila, através do esquema FIFO, garantindo que todos os processos que necessitem do recurso façam seu uso em algum momento.

81 Mecanismos de Sincronização Semáforos O conceito de semáforos foi proposto por E. W. Dijkstra em 1965, sendo apresentado como um mecanismo de sincronização que permitia implementar, de forma simples, a exclusão mútua e sincronização condicional entre processos. Um semáforo é uma variável inteira, não-negativa, que só pode ser manipulada por duas instruções: DOWN e UP, Estas instruções são indivisíveis, isto é, não pode ser interrompida..

82 Mecanismos de Sincronização Monitores São mecanismos de sincronização de alto nível que tornam mais simples o desenvolvimento de aplicações concorrentes. O conceito de monitores foi proposto, como um mecanismo de sincronização estruturado, ao contrário dos semáforos, que são considerados não-estruturados..

83 Mecanismos de Sincronização Estes mecanismos são alto nível e estruturados em função de serem implementados pelo compilador, possibilitando que o desenvolvimento de programas concorrentes fique mais fácil e com chances menores de erros. O monitor é formado por procedimentos e variáveis encapsulados dentro de um módulo, implementando de forma automática a exclusão mútua entre os procedimentos declarados.

84 Troca de Mensagens Mecanismos de Sincronização Também é um mecanismo de comunicação e sincronização entre processos. O sistema operacional possui um subsistema de mensagens que suporta esse mecanismo sem que haja a necessidade do uso de variáveis compartilhadas. Para que ocorra a comunicação entre os processos, deve existir um canal de comunicação, podendo esse meio ser um buffer ou um link de uma rede de computadores.

85 Mecanismos de Sincronização Os processos cooperativos podem fazer uso de um buffer para trocar mensagens através de duas rotinas: SEND (receptor, mensagem) e RECEIVE (transmissor, mensagem). A rotina SEND permite o envio de uma mensagem para um processo receptor, enquanto a rotina RECEIVE possibilita o recebimento de mensagem enviada por um processo transmissor.

86 Deadlock Deadlock ( espera circular )é a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que nunca ocorrerá. Essa situação é consequência, na maioria das vezes, do compartilhamento de recursos, como dispositivos, arquivos e registros, entre processos recorrentes onde a exclusão mútua é exigida.

87 Deadlock

88 Deadlock Para que ocorra a situação de deadlock, 4 condições são necessárias simultaneamente: 1 Exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante; 2 Espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por outros recursos; 3 Não-preempção: um recurso não pode ser liberado de um processo só porque outros processos desejam o mesmo recurso; 4 Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa.

89 Gerenciamento do Processador A gerência do processador pode ser considerada a atividade mais importante de um Sistema Operacional. Geralmente temos 2 ou mais processos aptos a utilizar o processador para serem executados. Nesse instante, o sistema operacional deve decidir qual dos processos aptos, armazenados em uma fila, será escolhido para rodar primeiro.

90 Gerenciamento do Processador Essa tarefa e a tomada de decisão é feita pelo escalonador de processos (parte do sistema operacional) através da implementação de alguns algoritmos de seleção, denominados algoritmos de escalonamento.

91 Escalonador de processos O escalonador é a entidade do sistema operacional responsável por selecionar um processo apto a executar no processador e dividir o tempo do processador de forma justa entre os processos que estão aptos. Em outras palavras, o objetivo dos escalonadores é implementar uma política de escalonamento de processos.

92 Escalonador de processos O sistema operacional possui um módulo responsável por efetuar a troca de contexto entre a execução de processos distintos, chamado de Dispatcher ( expeditor). Já o escalonador está relacionado com a implementação e aplicação das políticas de seleção adotadas.

93 Objetivos do escalonamento 1. Maximizar a utilização do processador ; 2. Privilegiar aplicações que são críticas; 3. Maximizar a produção do sistema,com o maior número de processos executados por unidade de tempo; 4. Minimizar o tempo de execução, ou seja, o tempo que um processo gasta desde a sua criação até seu término;

94 Objetivos do escalonamento 5. Minimizar o tempo de espera, ou seja, o tempo que um processo performance na lista de aptos ; 6. Minimizar o tempo de resposta, ou seja, o tempo decorrido entre uma requisição e a sua realização.

95 Tipos de escalonadores Existem 2 tipos de escalonadores: 1. Não-preemptivo: escalonadores que permitem que os processos rodem até o fim de sua execução sem ser interrompidos por eventos externos; 2. Preemptivo: escalonadores que são capazes de suspender processos que poderiam continuar executando.

96 Tipos de escalonadores Para cada um desses tipos, os processos poderão utilizar o processador até que: - No caso do tipo Não preemptivo: 1. Término de execução do processo; 2. Execução de uma requisição de entrada/saída ou sincronização; 3. Liberação voluntária do processador a outro processo.

97 Tipos de escalonadores - No caso do tipo Preemptivo: 1. Término de execução do processo; 2. Execução de uma requisição de entrada/saída ou sincronização; 3. Liberação voluntária do processador a outro processo; 4. Interrupção de relógio; 5. Processo de mais alta prioridade esteja pronto para executar.

98 Algoritmos de escalonamento Alguns algoritmos de escalonamento: Algoritmos não preemptivos: 1. FIFO 2. SJF (Shortest Job First) - Menor Processo Primeiro 3. Cooperativo Algoritmos preemptivos: 1. Round robin (circular) 2. Múltiplas filas ( e suas variações )

99 Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem executados. É neste momento que programas transformam-se em processos. Como sabemos, os computadores utilizam uma hierarquia de memória em sua organização, combinando memórias voláteis e não-voláteis, tais como: memória cache, memória principal e memória secundária.

100 Memórias - Hierarquia

101 Gerenciamento da Memória As funções básicas de um Gerenciador de Memória são: -Transferir programas da memória; secundária para a memória principal; -Reduzir o número de operações de E/S nesta transferência (pois a memória secundária é lenta); -Manter na memória o maior número possível de processos residentes, maximizando a utilização de recursos;

102 Gerenciamento da Memória -Permitir que novos programas sejam aceitos mesmo que não exista espaço livre de memória; -Permitir a execução de programas maiores do que a memória física; -Proteger as áreas de memória ocupadas por cada processo; -Oferecer mecanismos de compartilhamento de dados e informações.

103 Gerenciamento da Memória Técnicas de Alocação de Memória: - Alocação Contígua Simples; - Alocação Particionada Estática; - Alocação Particionada Estática Absoluta; - Alocação Particionada Estática Relocável; - Alocação Particionada Dinâmica.

104 Técnica de Swapping - Introduzida para contornar o problema de insuficiência de memória principal. - Permite o compartilhamento da memória principal e maior utilização dos recursos do SO. - Técnica aplicada a gerência de memória para programas que esperam por memória livre para serem executados.

105 Técnica de Swapping O sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária (Swap out), geralmente um disco. Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (Swap In) e pode continuar sua execução como se nada tivesse ocorrido

106 Técnica de Swapping Sistema Operacional Memória principal Sistema Operacional programa A programa B Swap Out Swap In programa A programa H programa E programa G B B programa E programa A programa B

107 Técnica de Swapping Problema gerado pelo Swapping: Relocação de processos: - O tempo gasto com relocação é alto; - Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.

108 MEMÓRIA VIRTUAL -INTRODUÇÃO A Memória Virtual (virtual memory) é uma técnica bastante poderosa de gerenciamento de memória, onde as memórias principal e secundária são combinadas, oferecendo ao usuário a impressão de existir uma memória muito maior que a memória principal. O conceito está baseado em desvincular o endereçamento feito pelo processo dos endereços físicos da memória principal. Desta maneira, os processos e suas estruturas de dados deixam de estar limitados ao tamanho da memória física disponível.

109 MEMÓRIA VIRTUAL -INTRODUÇÃO Existe um forte relacionamento entre a gerência da memória virtual e a arquitetura de hardware do sistema computacional. Por motivos de desempenho, é comum que algumas funções da gerência de memória virtual sejam implementadas diretamente no hardware. Além disso, o código do sistema operacional deve levar em consideração várias características específicas da arquitetura, especialmente o esquema de endereçamento do processador.

110 MEMÓRIA VIRTUAL Quando um programa é executado, somente uma parte do seu código fica residente na memória principal, permanecendo o restante na memória secundária até o momento de ser referenciado. Esta condição permite aumentar o compartilhamento da memória principal entre muitos processos.

111 MEMÓRIA VIRTUAL No desenvolvimento de aplicações, a existência dos endereços virtuais é ignorada pelo programador. Os compiladores e linkers se encarregam de gerar o código executável em função do espaço de endereçamento virtual, e o sistema operacional cuida dos detalhes durante sua execução.

112 MEMÓRIA VIRTUAL - MAPEAMENTO O processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real. Portanto, deve existir um mecanismo que transforme os endereços virtuais em endereços reais. Esse mecanismo, conhecido por mapeamento permite traduzir um endereço localizado no espaço virtual para um associado no espaço real.

113 MEMÓRIA VIRTUAL - MAPEAMENTO Nos sistemas modernos, a tarefa de tradução de endereços virtuais é realizada por hardware juntamente com o sistema operacional, de forma a não comprometer seu desempenho e torná-lo transparente a usuários e suas aplicações. O dispositivo de hardware responsável por esta tradução é conhecido como unidade de gerência de memória (Memory Management Unit MMU), sendo acionado sempre que se faz referência a um endereço virtual. Depois de traduzido, o endereço real pode ser utilizado pelo processador para o acesso à memória principal.

114 MEMÓRIA VIRTUAL - MAPEAMENTO O mecanismo de tradução se encarrega, então, de manter tabelas de mapeamento exclusivas para cada processo, relacionando os endereços virtuais do processo às suas posições na memória real. A tabela de mapeamento é uma estrutura de dados existente para cada processo. Quando um determinado processo está sendo executado, o sistema utiliza a tabela de mapeamento do processo em execução para realizar a tradução de seus endereços virtuais.

115 MEMÓRIA VIRTUAL - PAGINAÇÃO A memória virtual por paginação é a técnica de gerência de memória onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos do mesmo tamanho chamados páginas. As páginas no espaço virtual são denominadas páginas virtuais, enquanto as páginas no espaço real são chamadas de páginas reais ou frames.

116 MEMÓRIA VIRTUAL - PAGINAÇÃO Todo o mapeamento de endereço virtual em real é realizado através de tabelas de páginas. Cada processo possui sua própria tabela de páginas e cada página virtual do processo possui uma entrada na tabela (entrada na tabela de páginas ETP), com informações de mapeamento que permitem ao sistema localizar a página real correspondente.

117 MEMÓRIA VIRTUAL - PAGINAÇÃO Quando um programa é executado, as páginas virtuais são transferidas da memória secundária para a memória principal e colocadas nos frames. Sempre que um programa fizer referência a um endereço virtual, o mecanismo de mapeamento localizará na ETP da tabela do processo o endereço físico do frame no qual se encontra o endereço real correspondente.

118 POLÍTICAS DE BUSCA DE PÁGINAS A política de busca de páginas determina quando uma página deve ser carregada para a memória. Basicamente existem duas estratégias para este propósito: - Paginação por demanda; - Paginação antecipada.

119 PAGINAÇÃO POR DEMANDA Na paginação por demanda (demand paging), as páginas dos processos são transferidas da memória secundária para a principal apenas quando são referenciadas. Este mecanismo é conveniente, na medida em que leva para a memória principal apenas as páginas realmente necessárias à execução do programa. Desse modo, é possível que partes não executadas do programa, como rotinas de tratamento de erros, nunca sejam carregadas para a memória.

120 PAGINAÇÃO ANTECIPADA Na paginação antecipada (anticipatory paging ou prepaging), o sistema carrega para a memória principal, além da página referenciada, outras páginas que podem ou não ser necessárias ao processo ao longo do seu processamento. Se imaginarmos que o programa está armazenado sequencialmente no disco, existe uma grande economia de tempo em levar um conjunto de páginas da memória secundária, ao contrário de carregar uma de cada vez. Por outro lado, caso o processo não precise das páginas carregadas antecipadamente, o sistema terá perdido tempo e ocupado memória principal desnecessariamente.

121 POLÍTICAS DE ALOCAÇÃO DE PÁGINAS A política de alocação de páginas determina quantos frames cada processo pode manter na memória principal. Existem, basicamente, duas alternativas: - Alocação fixa; - Alocação variável.

122 MEMÓRIA VIRTUAL PROBLEMAS! Apesar de suas diversas vantagens, o mecanismo de memória virtual introduz um sério problema. Como cada processo possui na memória principal apenas algumas páginas alocadas, o sistema deve manter um conjunto mínimo de frames buscando uma baixa taxa de paginação. Ao mesmo tempo, o sistema operacional deve impedir que os processos tenham um número excessivo de páginas na memória, de forma a aumentar o grau de compartilhamento da memória principal.

123 CONJUNTO DE TRABALHO ( WORKING SET) O conceito de working set está relacionado ao princípio da localidade. Existem dois tipos de localidades que são observados durante a execução da maioria dos programas: - Localidade espacial; - Localidade temporal.

124 CONCEITO DE LOCALIDADE A localidade espacial é a tendência de que após uma referência a uma posição de memória sejam realizadas novas referências a endereços próximos. A localidade temporal é a tendência de que após a referência a uma posição de memória esta mesma posição seja novamente referenciada em um curto intervalo de tempo.

125 ALGORÍTMOS DE SUBSTITUIÇÃO DE PÁGINAS O maior problema na gerência de memória virtual por paginação não é decidir quais páginas carregar para a memória principal, mas quais liberar. Quando um processo necessita de uma nova página e não existem frames disponíveis, o sistema deverá selecionar, dentre as diversas páginas alocadas na memória, qual deverá ser liberada pelo processo.

126 ALGORÍTMOS DE SUBSTITUIÇÃO DE PÁGINAS Os algoritmos de substituição de páginas têm o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro próximo. A partir do princípio da localidade, a maioria dos algoritmos tenta prever o comportamento futuro das aplicações em função do comportamento passado.

127 SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é uma atividade essencial para qualquer tipo de aplicação. Um processo deve ser capaz de ler e gravar de forma permanente grande volume de dados em dispositivos como fitas e discos, além de poder compartilhá-los com outros processos. A maneira pela qual o sistema operacional estrutura e organiza estas informações é através da implementação de arquivos.

128 ARQUIVOS Os arquivos são gerenciados pelo sistema operacional de maneira a facilitar o acesso dos usuários ao seu conteúdo. A parte do sistema responsável por essa gerência é denominada sistema de arquivos. O sistema de arquivos é a parte mais visível de um sistema operacional, pois a manipulação de arquivos é uma atividade frequentemente realizada pelos usuários, devendo sempre ocorrer de maneira uniforme, independente dos diferentes dispositivos de armazenamento.

129 ARQUIVOS Um arquivo é constituído por informações logicamente relacionadas. Estas informações podem representar instruções ou dados. Um arquivo executável, por exemplo, contém instruções compreendidas pelo processador, enquanto um arquivo de dados pode ser estruturado livremente como um arquivo texto ou de forma mais rígida como um banco de dados relacional.

130 ARQUIVO - CONCEITO Na realidade, um arquivo é um conjunto de registros definidos pelo sistema de arquivos, tornando seu conceito abstrato e generalista. A partir dessa definição, o conteúdo do arquivo pode ser manipulado seguindo conceitos preestabelecidos.

131 ARQUIVOS - ARMAZENAMENTO Os arquivos são armazenados pelo sistema operacional em diferentes dispositivos físicos, como fitas magnéticas, discos magnéticos e discos ópticos. O tipo de dispositivo no qual o arquivo é armazenado deve ser isolado pelo sistema operacional, de forma que exista uma independência entre os arquivos a serem manipulados e o meio de armazenamento

132 ARQUIVOS - IDENTIFICAÇÃO Um arquivo é identificado por um nome, composto por uma sequência de caracteres. Em alguns sistemas de arquivos é feita distinção entre caracteres alfabéticos maiúsculos e minúsculos ( sensível ao caso ). Regras como extensão máxima do nome e quais são os caracteres válidos também podem variar de um sistema de arquivos para outro.

133 ARQUIVOS - ORGANIZAÇÃO A organização de arquivos consiste em como os seus dados estão internamente armazenados. A estrutura dos dados pode variar em função do tipo de informação contida no arquivo. Arquivos texto possuem propósitos completamente distintos de arquivos executáveis, consequentemente, estruturas diferentes podem adequar-se melhor a um tipo do que a outro.

134 ARQUIVOS - ORGANIZAÇÃO Alguns sistemas operacionais possuem diferentes organizações de arquivos. Neste caso, cada arquivo criado deve seguir um modelo suportado pelo sistema de arquivos. As organizações mais conhecidas e implementadas são a sequencial, relativa e indexada.

135 ARQUIVOS - ORGANIZAÇÃO A forma mais simples de organização de arquivos é através de uma sequência não-estruturada de bytes. Neste tipo de organização, o sistema de arquivos não impõe nenhuma estrutura lógica para os dados. A aplicação deve definir toda a organização, estando livre para estabelecer seus próprios critérios.

136 ARQUIVOS MÉTODO DE ACESSO Em função de como o arquivo está organizado, o sistema de arquivos pode recuperar registros de diferentes maneiras. Inicialmente, os primeiros sistemas operacionais só armazenavam arquivos em fitas magnéticas. Com isso, o acesso era restrito a leitura dos registros na ordem em que eram gravados, e a gravação de novos registros só era possível no final do arquivo. Este tipo de acesso, chamado de acesso sequencial, era próprio da fita magnética, que, como meio de armazenamento, possuía esta limitação.

137 ARQUIVOS MÉTODO DE ACESSO Com o advento dos discos magnéticos, foi possível a introdução de métodos de acesso mais eficientes. O primeiro a surgir foi o acesso direto, que permite a leitura / gravação de um registro diretamente na sua posição. Este método é realizado através do número do registro, que é a sua posição relativa ao início do arquivo.

138 OPERAÇÕES DE ACESSO AO ARQUIVO O sistema de arquivos disponibiliza um conjunto de rotinas que permite às aplicações realizarem operações de E/S, como: - tradução de nomes em endereços; - leitura e gravação de dados; - criação/eliminação de arquivos. Na realidade, as rotinas de E/S têm como função disponibilizar uma interface simples e uniforme entre a aplicação e os diversos dispositivos.

139 ARQUIVOS - ATRIBUTOS Cada arquivo possui informações de controle denominadas Atributos. Os atributos variam dependendo do sistema de arquivos, porém alguns, como tamanho do arquivo, proteção, identificação do criador e data de criação estão presentes em quase todos os sistemas. Alguns atributos especificados na criação do arquivo não podem ser modificados em função de sua própria natureza, como organização e data/hora de criação. Outros são alterados pelo próprio sistema operacional, como tamanho e data/hora do último backup realizado.

140 DIRETÓRIOS A estrutura de diretórios é como o sistema organiza logicamente os diversos arquivos contidos em um disco. O diretório é uma estrutura de dados que contém entradas associadas aos arquivos onde cada entrada armazena informações como localização física, nome, organização e demais atributos. Quando um arquivo é aberto, o sistema operacional procura a sua entrada na estrutura de diretórios, armazenando as informações sobre atributos e localização do arquivo em uma tabela mantida na memória principal.

141 DIRETÓRIOS Esta tabela contém todos os arquivos abertos, sendo fundamental para aumentar o desempenho das operações com arquivos. É importante que ao término do uso de arquivos, este seja fechado, ou seja, que se libere o espaço na tabela de arquivos abertos.

142 DIRETÓRIOS A implementação mais simples de uma estrutura de diretórios é chamado de nível único (single-level directory). Neste caso, somente existe um único diretório contendo todos os arquivos do disco. Este modelo é bastante limitado, já que não permite que usuários criem arquivos com o mesmo nome, o que ocasionaria um conflito no acesso a os arquivos.

143 DIRETÓRIOS Como o sistema de nível único é bastante limitado, uma evolução do modelo foi a implementação de uma estrutura onde para cada usuário existiria um diretório particular denominado User File Directory (UFD). Com esta implementação, cada usuário passa a poder criar arquivos com qualquer nome, sem a preocupação de conhecer os demais arquivos do disco. Para que o sistema possa localizar arquivos nessa estrutura, deve haver um nível de diretório adicional para controlar os diretórios individuais dos usuários.

144 DIRETÓRIOS Este nível denominado Master File Directory (MFD), é indexado pelo nome do usuário, onde cada entrada aponta para o diretório pessoal. No exemplo um sistema com dois níveis.

145 DIRETÓRIOS A extensão do modelo de dois níveis para um de múltiplos níveis permitiu que os arquivos fossem logicamente melhor organizados. Este novo modelo, chamado estrutura de diretórios em árvore (tree-structured directory), é adotado pela maioria dos sistemas.

146 DIRETÓRIOS Na estrutura em árvore, cada usuário pode criar diversos níveis de diretórios, também chamados de subdiretórios. Cada diretório pode conter arquivos ou outros diretórios. O número de níveis de uma estrutura em árvore é dependente do sistema de arquivos de cada sistema operacional.

147 DIRETÓRIOS Um arquivo, nesta estrutura em árvore, pode ser especificado unicamente através de um path absoluto, descrevendo todos os diretórios percorridos a partir da raiz (MFD) até o diretório no qual o arquivo está ligado.

148 Gerência de alocação em disco Da mesma forma que o sistema operacional gerencia os espaços livres no disco, a gerência dos espaços alocados aos arquivos é de fundamental importância em um sistema de arquivos. A seguir as principais técnicas são apresentadas: - Alocação Contígua; - Alocação Encadeada; - Alocação Indexada.

149 Alocação Contígua A alocação contígua consiste em armazenar um arquivo em blocos sequencialmente dispostos no disco. Algorítmos utilizados: First-fit primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado; Best-fit menor segmento livre disponível com tamanho suficiente é selecionado Worst-fit maior segmento é selecionado Independente do modelo, existe um problema que é a fragmentação.

150 Alocação Encadeada Na alocação encadeada, um arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco, independente da sua localização física. Cada bloco deve possuir um ponteiro para o bloco seguinte do arquivo e assim sucessivamente.

151 Alocação Indexada A alocação indexada soluciona uma das principais limitações da alocação encadeada, que é a impossibilidade do acesso direto aos blocos dos arquivos. O princípio desta técnica é manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice.

152 Proteção de Acesso Considerando que os meios de armazenamento são compartilhados entre diversos usuários, é de fundamental importância que mecanismos de proteção sejam implementados para garantir a proteção individual de arquivos e diretórios. Qualquer sistema de arquivos deve possuir mecanismos próprios para proteger o acesso às informações gravadas em discos e fitas, além de possibilitar o compartilhamento de arquivos entre usuários, quando desejado. Em geral, o tipo de acesso a arquivos é implementado mediante a concessão ou não dos diferentes acessos que podem ser realizados, como leitura (read), gravação (write),execução (execute) e eliminação (delete).

153 Proteção de Acesso Senha de Acesso A associação de uma senha de acesso a um arquivo é um princípio bastante simples. O controle de acesso se resume ao usuário ter o conhecimento da senha e, consequentemente, ter a liberação do acesso ao arquivo concedida pelo sistema. Como cada arquivo possui apenas uma senha, o acesso é liberado ou não na sua totalidade, isto é, não é possível determinar quais tipos de operação podem ou não ser concedidas. Outra desvantagem deste método é a dificuldade de compartilhamento de arquivos, pois, além do dono do arquivo, todos os demais usuários teriam que conhecer a senha de acesso.

154 Proteção de Acesso Grupos de usuários A proteção baseada em grupos de usuários é implementada por diversos sistemas operacionais. Este tipo de proteção tem como princípio a associação de cada usuário do sistema a um grupo. Os grupos de usuários são organizados logicamente com o objetivo de compartilhar arquivos e diretórios. Esse mecanismo implementa três níveis de proteção ao arquivo: owner (dono), group(grupo) e all (todos).

155 Proteção de Acesso Grupos de usuários Na criação do arquivo, o usuário especifica se o arquivo deve ser acessado somente pelo seu criador, pelos usuários do grupo ao qual ele pertence ou por todos os usuários do sistema. Nessa especificação é necessário associar o tipo de acesso (leitura, escrita, execução e eliminação) aos três níveis de proteção. Em geral, somente o dono ou usuários privilegiados é que podem modificar a proteção dos arquivos.

156 Proteção de Acesso Lista de Acesso A Lista de Controle de Acesso (Access Control List ACL) consiste em uma lista associada a cada arquivo, onde são especificados quais os usuários e os tipos de acesso permitidos. Nesse caso, quando um usuário tenta acessar um arquivo, o sistema operacional verifica se a lista de controle autoriza a operação desejada. O tamanho dessa estrutura de dados pode ser bastante extenso se considerarmos que um arquivo pode ter seu acesso compartilhado por diversos usuários.

157 Implementação de Caches O acesso a disco é bastante lento se comparado ao acesso à memória principal, devido à arquitetura dos discos magnéticos ou óticos). Este é o principal motivo das operações de E/S com discos serem um problema para o desempenho do sistema. Com o objetivo de minimizar este problema, a maioria dos sistemas de arquivos implementa uma técnica denominada buffer cache.

158 Implementação de Caches Neste esquema, o sistema operacional reserva uma área da memória para que se tornem disponíveis caches utilizados em operações de acesso ao disco. Quando uma operação é realizada, seja leitura ou gravação, o sistema verifica se a informação desejada se encontra no buffer cache. Em caso positivo, não é necessário o acesso ao disco. Caso o bloco requisitado não se encontre no cache, a operação de E/S é realizada e o cache é atualizado. Como existe uma limitação no tamanho do cache, cada sistema adota políticas para substituição de blocos.

159 GERÊNCIA DE DISPOSITIVOS - INTRODUÇÃO É uma das principais e mais complexas funções do Sistema Operacional. Implementada através de uma estrutura de camadas de software e hardware. Procura oferecer uma interface simples e confiável para o usuário e a aplicação. Esconde das camadas superiores, detalhes das camadas inferiores.

160 GERÊNCIA DE DISPOSITIVOS - INTRODUÇÃO Dividido em dois grupos: 1º - Visualiza os dispositivos de um modo único. 2º é específico para cada dispositivo. A maior parte da gerência de E/S trabalha independentemente de dispositivo, permitindo a comunicação dos processos com qualquer tipo de periférico, proporcionando maior flexibilidade.

161 Arquitetura de Camadas Gerência de Dispositivos

162 Operações de Entrada e Saída O Sub-sistema de entrada / saída é responsável por realizar as funções comuns a todos os tipos de dispositivos; A independência de dispositivos deve ser realizada através de system calls de entrada/saída, presentes na camada de mais alto nível implementada pelo sistema operacional. Permite também ao usuário acessar os dispositivos sem se preocupar com detalhes. O Sub-sistema de entrada / saída é responsável também por criar uma unidade lógica de transferência independente do dispositivo e repassá-la para os níveis superiores, sem o conhecimento do conteúdo da informação.

163 Sub-Sistema de Entrada e Saída

164 Device Drivers A principal função dos Device Drivers é a comunicação com dispositivos de Entrada/Saída em nível de hardware, geralmente através de controladores, especificando características físicas de cada dispositivo. Subsistemas de E/S tratam de funções que afetam todos os dispositivos e os Device Drivers tratam apenas dos seus aspectos particulares. Cada Device Driver controla apenas um tipo de dispositivo ou grupo de dispositivos semelhantes.

165 Device Drivers Tem também a função de receber comandos gerais sobre acessos aos dispositivos, geralmente System Calls, e traduzi-los para comandos específicos para serem executados pelos controladores. Os drivers fazem parte do núcleo do Sistema Operacional, sendo escritos geralmente em assembly. Normalmente são desenvolvidos, para o mesmo dispositivo, diferentes devices drivers para cada sistema operacional, e iisto devido ao fato dos mesmos serem de alto grau de dependência. Quando um novo dispositivo é adicionado, este deve ser acoplado ao núcleo do sistema.

166 Device Drivers

167 Driver de Disco Exemplo de Device Driver

168 Controladores São componentes eletrônicos (hardware) responsáveis por manipular diretamente os dispositivos de Entrada/Saída. Servem de comunicação do Sistema Operacional com os Dispositivos. Em geral, possui memória e registradores próprios para executar instruções enviadas pelo device driver. Em operações de leitura, o controlador armazena uma sequência de bits vinda do dispositivo no seu buffer interno e verifica a ocorrência de erros, não havendo erros, o bloco é transmitido para a memória principal.

169 Controladores Na maioria dos dispositivos orientados a bloco, como discos, é implementada a técnica de DMA para transferência de dados entre o controlador e a memória principal, da seguinte forma: - O device driver executa as operações de Entrada/Saída gravando os comandos nos registradores do controlador; - O controlador executa a operação com o dispositivo enquanto a UCP pode realizar outras tarefas; - O device driver, então, testa os resultados através dos registradores do controlador. Alguns controladores, particularmente os de discos, implementam técnicas de cache para melhorar o desempenho.

170 DMA É uma técnica evita que o processador fique ocupado com a transferência do bloco para a memória. O controlador de DMA é um dispositivo de hardware que pode fazer parte do controlador ou ser um dispositivo independente.

171 Dispositivos de Entrada / Saída Os dispositivos de E/S são utilizados para permitir a comunicação entre o sistema computacional e o mundo externo, como por exemplos o CD-ROM, teclado, mouse, impressoras, etc. Os dispositivos de e/s podem ser classificados em duas categorias: - Dispositivos estruturados; - Dispositivos não- estruturados.

172 Dispositivos de Entrada / Saída Os dispositivos estruturados caracterizam-se por armazenar informações em blocos de tamanho fixo e permitem geralmente o acesso direto e ou sequencial. Os dispositivos não-estruturados são aqueles que enviam ou recebem uma sequência de caracteres sem estar estruturada no formato de um bloco.

173 DESEMPENHO, REDUNDÂNCIA E PROTEÇÃO DE DADOS RAID via HARDWARE - É implementado na forma de controladoras especiais de disco. RAID via SOFTWARE - É implementado como um módulo do kernel que é dividido entre a controladora de disco de baixo nível e o sistema de arquivos acima dele.

174 Multiprocessadores Arquiteturas que possuem duas ou mais CPUs interligadas que funcionam em conjunto na execução de tarefas independentes ou no processamento simultâneo de uma mesma tarefa Implementar Paralelismo em Hardware Surgiram na década de 1960 para acelerar a execução de aplicações que lidavam com um grande volume de cálculos

175 VANTAGENS Desempenho Execução simultânea de tarefas independentes Execução de uma mesma tarefa por vários processadores Escalabilidade Capacidade de adicionar novos processadores Relação custo/desempenho Utilização de CPUs adicionais Tolerância a falhas e disponibilidade Capacidade de manter o sistema em operação em casos de falhas em algum componente Balanceamento de carga Distribuição do processamento entre os diversos componentes da configuração

176 DESVANTAGENS Problemas de comunicação e sincronização Organizar de forma eficiente os processadores Tolerância contra falhas é dependente do SO

177 TRANSPARÊNCIA EM SISTEMAS DISTRIBUÍDOS Tolerância a Falhas Garantir que, em caso de problema em um de seus componentes, as aplicações continuem sendo processadas sem qualquer interrupção ou intervenção do usuário, de forma totalmente transparente Tolerância a falhas de hardware é facilmente oferecida utilizando-se componentes redundantes Tolerância a falhas de software é bem mais complexa de implementar Com a tolerância a falhas, é possível também oferecer alta disponibilidade e confiabilidade

178 BIBLIOGRAFIA MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição, São Paulo, LTC, TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo, editora Prentice Hall, SILBERSCHATZ, A. Sistemas Operacionais Conceitos: São Paulo, editora LTC, 2004.

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

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

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

Capítulo 11 Sistemas de Arquivos

Capítulo 11 Sistemas de Arquivos Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo Sistemas de s Introdução O armazenamento e a recuperação de informações

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO À TECNOLOGIA DA OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO O Sistema de Arquivos é o modo como as informações são armazenadas nos dispositivos físicos de armazenamento, exemplo

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem

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

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 Operacionais

Sistemas Operacionais ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação

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

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

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Gerência de Memória Virtual Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Sumário Introdução Espaço de Endereçamento Virtual

Leia mais

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior Estrutura dos Sistemas Operacionais Sérgio Portari Júnior - 2016 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional

Leia mais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização de arquivos Operações de E/S Estrutura de diretórios Gerência de espaço livre Gerência de alocação de espaços

Leia mais

Sistemas Operacionais

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

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

Sistemas Operacionais. Capítulo 5 Processos

Sistemas Operacionais. Capítulo 5 Processos Sistemas Operacionais Capítulo 5 Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado Luiz Paulo Maia Cap. 5 Processo 1

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora

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

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado) Capítulo 3 Concorrência Agenda Introdução Interrupções e exceções Operações de Entrada/Saída Buffering

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

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 de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de Alocação de

Leia mais

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

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

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez [email protected] 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

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

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

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

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Gerência de Memória Andreza Leite [email protected] Plano da Aula 2 Introdução Necessidade gerenciador de memória Sistemas gerenciais de memória Alocação contínua n Máquina

Leia mais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Introdução a Sistemas Operacionais. Adão de Melo Neto Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como

Leia mais

Introdução a Arquitetura de Sistemas Operacionais. Parte 02

Introdução a Arquitetura de Sistemas Operacionais. Parte 02 Introdução a Arquitetura de Sistemas Operacionais Parte 02 Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Julho / 2017 1/62 Nota Com exceção das figuras

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: [email protected] fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

Sistemas Operacionais. - Gerência de Memória -

Sistemas Operacionais. - Gerência de Memória - Sistemas Operacionais - Gerência de Memória - Gerenciamento de Memória A organização e a gerência de memória são fatores importantes no projeto de sistemas operacionais Um dos objetivos é desenvolver um

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 [email protected] Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

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

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

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads Threads Prof. Edwar Saliba Júnior Março de 2007 1 Definição Partes de um processo que compartilham mesmo espaço de endereçamento Sub-rotina de um programa executada paralelamente ao programa chamador (execução

Leia mais

Sistemas Opera r cionais Gerência de Memória

Sistemas Opera r cionais Gerência de Memória Sistemas Operacionais Gerência de Memória Gerência de Memória Idealmente, o que todo programador deseja é dispor de uma memória que seja grande rápida não volátil Hierarquia de memórias pequena quantidade

Leia mais

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

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estrutura dos Sistemas Operacionais. Adão de Melo Neto Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado

Leia mais

Sistemas de Arquivos. (Aula 23)

Sistemas de Arquivos. (Aula 23) Sistemas de Arquivos (Aula 23) Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais 2008/1 Necessidade de Armazenamento

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

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização dos arquivos Estrutura de diretório Gerência de espaço livre Gerência de alocação de arquivos em disco Proteção

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA SUMÁRIO 5. GERÊNCIA DE MEMÓRIA: 5.1 Introdução; 5.2 Funções Básicas; 5.3 Alocação Contígua Simples; 5.4 Técnica de Overlay; ; 5.6 Swapping.

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 II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura

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

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

Sincronização e Comunicação entre Processos

Sincronização e Comunicação entre Processos Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.

Leia mais

Sistemas Operacionais. Gerência de Memória

Sistemas Operacionais. Gerência de Memória Sistemas Operacionais Gerência de Memória Sumário 1. Introdução 2. Funções Básicas 3. Alocação Contígua Simples 4. Técnica de Overlay 5. Alocação Particionada 1. Estática 2. Dinâmica 6. Estratégias de

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

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Sistemas Operacionais. Prof. Fabio Augusto Oliveira Sistemas Operacionais Prof. Fabio Augusto Oliveira Threads Um processo representa uma sequência de instruções única, executada paralelamente a outra seqüências de instruções. Um thread é uma maneira de

Leia mais

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça IFPR Instituto Federal do Paraná Curso Técnico em Informática GERÊNCIA DE MEMÓRIA SO Sistemas Operacionais Professora Elaine Augusto Praça MACHADO, Francis B., Arquitetura de Sistemas Operacionais, RJ,

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

Estrutura do Sistema Operacional

Estrutura do Sistema Operacional Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional

Leia mais

Sistemas Operacionais. Interrupção e Exceção

Sistemas Operacionais. Interrupção e Exceção Sistemas Operacionais Interrupção e Exceção Interrupção e Exceção Durante a execução de um programa podem ocorrer alguns eventos inesperados, ocasionando um desvio forçado no seu fluxo de execução. Estes

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 10 Escalonamento Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: Prof. SO José - Prof. Juan Edilberto Espantoso Silva Sumário Introdução

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

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009 1ª Questão : Sobre o conceito de sistema operacional, escreva ao lado a soma dos números dos itens que considera corretos: (01) O conceito da máquina de níveis define o hardware como o nível mais baixo,

Leia mais

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória Gerência de Memória Prof. Edwar Saliba Júnior Março de 2007 1 Memorial... Programas em execução e dados acessados por ele devem estar na memória principal (ou pelo menos parte dele); Porém, a memória principal

Leia mais

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42 SUMÁRIO 1 INTRODUÇÃO 21 1.1 O QUE É O SISTEMA OPERACIONAL? 23 1.1.1 O sistema operacional como uma máquina estendida 23 1.1.2 O sistema operacional como gerenciador de recursos 24 1.2 HISTÓRIA DOS SISTEMAS

Leia mais

Matriz Discursiva do MÓDULO C FASE II 23/11 até 18/12

Matriz Discursiva do MÓDULO C FASE II 23/11 até 18/12 Matriz Discursiva do MÓDULO C FASE II 23/11 até 18/12 Disciplina(s): Sistemas Operacionais Data de início: 17/12/2015 17:29 Prazo máximo entrega: 17/12/2015 18:59 Data de entrega: 17/12/2015 17:43 Questão

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

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

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE II SUMÁRIO 3. THREAD: 3.1 Introdução; 3.2 Ambiente Monothread; 3.3 Ambiente Multithread; 3.4 Arquitetura e Implementação; 3.5 Modelos

Leia mais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estrutura dos Sistemas Operacionais. Adão de Melo Neto Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 9 Gerência de Memória Cap. 5 Gerência de Memória 1 Sumário Introdução Funções básicas Alocação contígua simples Técnica

Leia mais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition Capítulo 8: Memória Principal Silberschatz, Galvin and Gagne 2009 Objetivos Fornecer uma descrição detalhada das várias formas de organizar a memória do computador Discutir várias técnicas de gerenciamento

Leia mais

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7 SISTEMAS OPERACIONAIS Gerência de Memória Apostila 7 1.0 INTRODUÇÃO Historicamente, a memória principal sempre foi vista como um recurso escasso e caro. Uma das maiores preocupações dos projetistas foi

Leia mais

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL O Processo passa a possuir um espaço de endereçamento virtual. Este espaço de endereçamento pode ser maior que a memória física. S.O.

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Visão Geral Referências: Sistemas Operacionais Modernos. Andrew S. Tanenbaum. Editora Pearson. 3ª ed. 2010. Seção: 1.1

Leia mais

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio Sistemas Operacionais Maria de Fátima de Freitas Bueno Marcílio Introdução O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura dos Sistemas

Leia mais

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero

Leia mais

Sincronização e comunicação entre processos

Sincronização e comunicação entre processos Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Sincronização e comunicação entre processos Em um sistema multiprogramável com

Leia mais