Curso Superior de
Sistemas para Internet
Márcia de Oliveira Alves
Cuiabá 2011
Sistemas
Operacionais
GOVERNO FEDERAL
Dilma Rousseff
Presidente do Brasil
Fernando Haddad
Ministro da Educação
Jorge Almeida Guimarães
President...
Sistemas Operacionais 2
Unidade I – Fundamentos de Sistemas Operacionais
Introdução aos Sistemas Operacionais
Estrutura do...
Sistemas Operacionais 3
Fundamentos de Sistemas Operacionais
O que e mais importante o hardware ou o software? Olhe para o...
Sistemas Operacionais 4
Observe a figura abaixo.
Você poderia a partir dessa imagem, formular um conceito para Sistemas
Op...
Sistemas Operacionais 5
Partindo desta visão podemos considerar o computador como uma maquina de
níveis ou camada.
Logicam...
Sistemas Operacionais 6
Escalonamento e controle de processos: função responsável por organizar a
fila de acesso ao proces...
Sistemas Operacionais 7
Evolução dos Sistemas Operacionais:
Bom, diante desse conceito podemos concluir que o Sistema Oper...
Sistemas Operacionais 8
O ENIAC e considerado o primeiro computador digital e
eletrônico, foi desenvolvido por J. Presper ...
Sistemas Operacionais 9
Tipos de Sistema Operacional
Os Sistemas Operacionais Monoprogramaveis/monotarefa eram voltados
ti...
Sistemas Operacionais 10
Tipos de Sistemas Multiprogramáveis/Multitarefa
Os Sistemas Operacionais com Múltiplos Processado...
Sistemas Operacionais 11
Sistemas Fortemente Acoplados
UCP UCP
Memória
Principal
Dispositivos
de E/ S
Dispositivos
de E/ S...
Sistemas Operacionais 12
Sistema Simétrico
NOTA:
Os sistemas Fracamente Acoplados podem ser divididos, quanto a sua
organi...
Sistemas Operacionais 13
distintas: 1ª fase (1645 – 1956), 2ª fase (1956 – 1965), 3ª fase (1966 –
1980), 4ª fase (1981 – 1...
Sistemas Operacionais 14
c)( ) permitem que diversos programas sejam executados a partir da divisão
de tempo do processado...
Sistemas Operacionais 15
Unidade II – Conceitos de Processos
Estado de um processo
Hierarquia entre os processos
Mecanismo...
Sistemas Operacionais 16
Gerência de Processos
O módulo anterior destacou as funcionalidades de um sistema operacional. Ne...
Sistemas Operacionais 17
Acredito que não.
Então tentaremos explicar a figura acima:
Um processador é projetado apenas par...
Sistemas Operacionais 18
contexto de hardware está armazenado nos registradores da CPU. No momento em que o
processo perde...
Sistemas Operacionais 19
Estado de um processo
Num sistema multiprogramável, um processo não deve alocar a CPU com
exclusi...
Sistemas Operacionais 20
Hierarquia entre os processos
Um processo pode criar outros processos e que podem, por sua vez, c...
Sistemas Operacionais 21
Para Refletir:
Subprocessos & Threads
Os Subprocessos possuem cada, um endereçamento
protegido já...
Sistemas Operacionais 22
Tipos de Thread:
Monothread - para ambiente que permita apenas uma thread.
Multithread - usada em...
Sistemas Operacionais 23
Cooperantes: quando interage (troca de informações) com outros processos
presentes no sistema.
Cl...
Sistemas Operacionais 24
Programação Paralela
A possibilidade de o processador executar instruções em paralelo com operaçõ...
Sistemas Operacionais 25
Especificação da concorrência em programas
A especificação da concorrência em programas pode ser ...
Sistemas Operacionais 26
partir dele somente serão executados quando todos os outros já tiverem terminado.
Devido à sua fa...
Sistemas Operacionais 27
O segundo método propõe um acesso mutuamente exclusivo, ou seja, o
impedimento de dois ou mais pr...
Sistemas Operacionais 28
A implementação da exclusão mútua entre produtor e consumidor com a instrução TAS
Solução de Soft...
Sistemas Operacionais 29
Estrutura de um monitor
Nota
Fluxo de um monitor: As variáveis de condição são estruturas do tipo...
Sistemas Operacionais 30
prioridades, pode ser que um processo nunca seja escolhido. Para resolver este problema
utiliza-s...
Sistemas Operacionais 31
Exemplo 02:
Sintese da Unidade:
Processo representa um programa em execução que tem suas informaç...
Sistemas Operacionais 32
Deadlock é conjunto de processos bloqueados cada um utilizando um recurso e
esperando que outro l...
Sistemas Operacionais 33
Unidade III – Gerência do Processador
Gerência do Processador
O bloco descritor de processo
Coord...
Sistemas Operacionais 34
Gerencia do Processador
O módulo anterior destacou a unidade de trabalho de um sistema operaciona...
Sistemas Operacionais 35
Você Sabia?
Diante deste contexto você pode definir qual seria a função da gerência do
processado...
Sistemas Operacionais 36
Importante saber
Bem, sabemos que um processo pode assumir pelo mesmo quatro estados
básicos:
Já ...
Sistemas Operacionais 37
Coordenação do chaveamento de contexto
Esta Coordenação consiste em uma ação realizada pelo siste...
Sistemas Operacionais 38
Agrupamento de recursos (espaço de endereço com texto e dados do programa;
arquivos abertos, proc...
Sistemas Operacionais 39
Tipos de Thread:
Monothread - para ambiente que permita apenas uma thread.
Multithread - usada em...
Sistemas Operacionais 40
Escalonadores
Conforme comentamos, em alguns momentos podemos ter dois ou mais processos
aptos a ...
Sistemas Operacionais 41
Minimizar o tempo de espera
Tempo que um processo permanece na lista de aptos
Minimizar o tempo d...
Sistemas Operacionais 42
Tipos de escalonador: Uma vez escalonado, o processo utiliza o processador até
que:
Não preemptiv...
Sistemas Operacionais 43
Round robin (circular)
Múltiplas filas
Segue a seguir características e funcionamento de cada um ...
Sistemas Operacionais 44
quando se executa primeiro os processos de menor ciclo de processador (I/O bound).
Portanto, os p...
Sistemas Operacionais 45
Quando sua fatia de tempo é esgotada
Escalonadores por prioridades: A cada processo pode ser atri...
Sistemas Operacionais 46
Prioridade dinâmica: Prioridade do processo é ajustada de acordo com o estado
de execução do proc...
Sistemas Operacionais 47
Implementação de escalonador com prioridade dinâmica (Múltiplas filas com
realimentação)
Neste ti...
Sistemas Operacionais 48
Operações de Entrada/Saída :
Você Sabia?
A implementação de um dispositivo chamado controlador ou...
Sistemas Operacionais 49
operações de E/S puderam ser realizadas de uma forma mais eficiente. Em vez de o
sistema periodic...
Sistemas Operacionais 50
envolvido na operação, posição inicial da memória de onde os dados serão lidos ou
gravados e o ta...
Sistemas Operacionais 51
Spooling – A técnica de spooling (simultaneos peripheral operation on-line) foi
introduzida no fi...
Sistemas Operacionais 52
Subsistema de E/S
O sistema operacional deve tornar as operações de e/s o mais simples possível
p...
Sistemas Operacionais 53
Controladores de periféricos
Os controladores são componentes de hardware responsáveis por manipu...
Sistemas Operacionais 54
que a sua utilização for necessária (inclui o envio de comandos de operação, a
transferência de d...
Sistemas Operacionais 55
Os Processos se dividem em dois tipos: Processos do sistema e Processo do
usuário.
As threads pod...
Sistemas Operacionais 56
6. Explique a função dos controladores.
7. Cite os 4 principais objetivos do escalonador de proce...
Sistemas Operacionais 57
Unidade IV – Gerência de Memória
Gerência de Memória
Partições fixas e variáveis
Swapping
Paginaç...
Sistemas Operacionais 58
Gerenciamento de Memória
No módulo anterior vimos como é execução dos processos pelo processador,...
Sistemas Operacionais 59
o Implementar técnicas de Swapping
o Executar de programas maiores que memória disponível
o Imple...
Sistemas Operacionais 60
fragmentação interna (espaço de memória perdido dentro da área alocada ao processo).
Por outro la...
Sistemas Operacionais 61
Bem, Existe uma outra possibilidade consiste em estabelecer uma quantidade
máxima k de vezes que ...
Sistemas Operacionais 62
2. best-fit: utiliza a lacuna que resulta em menor sobra de espaço.
3. worst-fit: utiliza a lacun...
Sistemas Operacionais 63
Para solucionar esse tipo de problema, foi proposta uma técnica denominada
Swapping. Nesse tipo d...
Sistemas Operacionais 64
Paginação
Como uma nova abordagem de gerenciamento da memória, a Paginação consiste
em um espaço ...
Sistemas Operacionais 65
Bom, um Bit Válido – Inválido é anexado a cada entrada na tabela de página:
_ “válido” indica que...
Sistemas Operacionais 66
Nesta técnica um programa é uma coleção de segmentos e um segmento é uma
unidade lógica, tal como...
Sistemas Operacionais 67
Técnica de gerenciamento que combina a memória principal e a secundária dando
ao usuário a idéia ...
Sistemas Operacionais 68
Dessa forma, a memória virtual elimina duas limitações impostas pela memória
física (real): um pr...
Sistemas Operacionais 69
A tabela de páginas do processo é corrigida para indicar que a página lógica
causadora da interru...
Sistemas Operacionais 70
curto intervalo de tempo. Logo, o algoritmo ótimo de substituição é aquele que escolhe
uma página...
Sistemas Operacionais 71
Algoritmo ótimo
Considerando isso, o ideal é manter em memória, para cada processo, um conjunto
ó...
Sistemas Operacionais 72
desperdício de memória, e conseqüentemente, reduzindo o número de processos aptos a
executar.
Out...
Sistemas Operacionais 73
o SO seleciona um ou mais processos para suspender, evitando assim a situação de
thrashing.
Sínte...
Sistemas Operacionais 74
[ Auto-avaliação ]
1. Relacione as funções do módulo de gerenciamento de memória.
2. Qual a difer...
Sistemas Operacionais 75
III - o maior problema na gerência de memória virtual por paginação não é decidir
quais páginas c...
Sistemas Operacionais 76
Unidade V – Sistemas de Arquivos
Sistemas de arquivos
Estrutura dos arquivos
Diferentes sistemas ...
Sistemas Operacionais 77
Sistema de Arquivos
Esta unidade irá apresentar o módulo sistema de arquivos. Esse módulo é a par...
Sistemas Operacionais 78
Os arquivos Possuem:
Nome;
Atributos;
Estrutura interna;
Tipo;
Método de acesso operações.
A atri...
Sistemas Operacionais 79
Estruturação como árvore de registros: Neste caso, o arquivo é uma árvore de
registros de tamanho...
Sistemas Operacionais 80
Acesso seqüencial: Este método de acesso utiliza basicamente as operações de
leitura e escrita. a...
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Upcoming SlideShare
Loading in...5
×

Sistemas operacionais

15,515

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
15,515
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
368
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Sistemas operacionais"

  1. 1. Curso Superior de Sistemas para Internet Márcia de Oliveira Alves Cuiabá 2011 Sistemas Operacionais
  2. 2. GOVERNO FEDERAL Dilma Rousseff Presidente do Brasil Fernando Haddad Ministro da Educação Jorge Almeida Guimarães Presidente da Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) José Carlos Teatini Climaco Diretor de Educação a Distância da Universidade Aberta do Brasil (UAB) na CAPES IFMT - INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO José Bispo Barbosa Reitor Willian Silva de Paula Pró Reitor de Ensino Alexandre José Schumacher Coordenador Geral UAB/IFMT Claudete Galvão de Alencar Pedroso Coordenadora Adjunta UAB/IFMT Alexandro Uguccioni Romão Editoração eletrônica Luisa do Amparo Carvalho Patatas Revisão de português Coordenação da UAB/IFMT Instituto Federal de Educação, Ciência e Tecnologia do Mato Grosso (IFMT) - Campus Bela Vista - AvenidaJulianoCostaMarquesS/N,CEP:78.050-560,BelaVista,Cuiabá/MT-Brasil A produção deste material didático obteve financiamento no âmbito do Programa Universidade AbertadoBrasil,CAPES/FNDE/MEC. Autoriza-se o uso e a reprodução da obra no âmbito do Sistema UAB e o IFMT desde que citada a fonte.Évedadoousodestaobraparafinsdecomercialização. Ficha Catalográfica Alves, Márcia de Oliveira. Márcia de Oliveira Alves. Cuiabá: Publicação do IFMT, 2011. 123p.; 21 x 29,7 cm. Sistemas Operacionais.
  3. 3. Sistemas Operacionais 2 Unidade I – Fundamentos de Sistemas Operacionais Introdução aos Sistemas Operacionais Estrutura do Sistema Operacional Evolução dos Sistemas Operacionais Tipos de Sistema Operacional [Objetivos Específicos da Unidade I] Propomos, nesta UNIDADE, levar você a: • Compreender o papel de um Sistema Operacional no gerenciamento dos dispositivos dos computadores. • Discutir principais conceitos de Sistemas Operacionais
  4. 4. Sistemas Operacionais 3 Fundamentos de Sistemas Operacionais O que e mais importante o hardware ou o software? Olhe para o seu microcomputador, como é possível essa caixa, cheio de componentes, ser capaz de realizar tantas ações. Sem um software básico, isto e, um sistema operacional, essa caixa não funciona, e sem um sistema operacional adequado, todos os recursos disponíveis nesta caixa não serão aproveitados da melhor forma possível. À medida que vamos conhecendo a função e a estrutura interna de um sistema operacional, podemos relacionar esse conhecimento as situações que diariamente vivenciamos ao utilizarmos um microcomputador. Esta unidade trata de assuntos que vão conduzi-lo a um entendimento mais analítico e criterioso sobre o funcionamento de um sistema computacional. O sistema Operacional responsável pelo funcionamento desse sistema e composto de módulos que determinam e classificam sua função. Os tópicos serão apresentados de forma que você apreenda o conceito de sistemas operacionais, sua função e seus módulos. E, para facilitar a sua aprendizagem, serão propostas questões e orientações de estudo ao longo do texto. Objetivamos que você adquira um conhecimento aprofundado da estrutura de um sistema operacional. Para que isso ocorra, é fundamental que você seja capaz de entender lógica de programação, bem como as várias técnicas utilizadas em estruturas de dados. Portanto, sugerimos questões ao longo do texto para apreensão de determinados conceitos e, ao final da unidade, você está convidado a verificar seus conhecimentos por meio da auto-avaliação, que deverá ser enviada ao seu tutor. Então, mãos à obra! Introdução aos Sistemas Operacionais: Este assunto irá contribuir para que você possa entender o que e um sistema operacional qual a sua função e seus principais componentes.
  5. 5. Sistemas Operacionais 4 Observe a figura abaixo. Você poderia a partir dessa imagem, formular um conceito para Sistemas Operacionais? Vamos supor que você tenha respondido que um sistema operacional e o elemento que interliga o hardware e usuário tendo em vista que o usuário não sabe falar a linguagem de maquina. Se foi essa a sua resposta, esta parcialmente certa. Para fazermos jus a um Sistema Operacional podemos conceituá-lo como? Para entendermos esse conceito temos que ter bem definido duas funções básicas de um Sistema Operacional. • Facilidade de acesso aos recursos de um sistema • Compartilhamento de recursos de forma organizada e segura. Um computador normalmente possui diversos componentes, como monitor, impressora, som e scanner. Quando utilizamos um desse dispositivo, não nos preocupamos com a maneira como e realizada esta comunicação, bem como os inúmeros detalhes envolvidos neste processo. Essa e uma das funções do Sistema Operacional. Quando utilizamos o computador de forma compartilhada, disponibilizando recursos com outros usuários, fica também a cargo do Sistema Operacional gerenciar esse compartilhamento de forma segura e organizada. Após esse conceito qual a sua visão de um Sistema Computacional? Um computador visto somente como um gabinete composto de circuitos eletrônicos, cabos e fontes de alimentação, ou seja, visto somente como o hardware, não tem nenhuma utilizada. O sistema Operacional e um elemento vital para o funcionamento do hardware. A imagem abaixo poderia representar a sua visão de um Sistema Computacional? Hardware Sistema Operacional usuários Bem, acredito que sim. Software responsável pela interface entre a máquina e o usuário e entre a maquina e os aplicativos, exercendo funções que permitam o acesso seguro às informações contidas na memória do computador.
  6. 6. Sistemas Operacionais 5 Partindo desta visão podemos considerar o computador como uma maquina de níveis ou camada. Logicamente um computador não possui apenas dois níveis, e sim tantos níveis forem necessários para adequar os usuários as suas diversas aplicações. Uma estrutura padrão dos possíveis níveis de um sistema computacional pode ser representada da seguinte forma: Estrutura do Sistema Operacional Bem, podemos explicar isso através dos conceitos que envolvem a estrutura de um sistema operacional. O Sistema operacional é formado por um conjunto de rotinas que oferecem serviços essenciais aos usuários, às suas aplicações, e também ao próprio sistema. A esse conjunto de rotinas dá-se o nome de núcleo do sistema ou kernel. É importante entender que os procedimentos de um sistema operacional são referentes ao tratamento processos1 que são executados de forma concorrente ou simultaneamente, ou seja, sem uma ordem específica ou predeterminada. As principais funções do núcleo encontradas na maioria dos sistemas comerciais são as seguintes: Tratamento de interrupções e exceções: função responsável por tratar alguns eventos inesperados que podem ocorrer, ocasionando um desvio forçado no seu fluxo normal de execução. Criação e eliminação de processos: função responsável por alocar em memória todos os recursos necessários à execução do processo. 1 É basicamente um programa em execução, sendo constituído de código executável do dado. Utilitários Circuitos Eletrônicos Microprogramação Linguagem de Máquina Sistema Operacional Aplicativos Maquina de níveis Você pode imaginar como são realizadas as operações pelo sistema operacional? Você faz idéia de como o sistema operacional resolve os conflitos de informações que são manipuladas?
  7. 7. Sistemas Operacionais 6 Escalonamento e controle de processos: função responsável por organizar a fila de acesso ao processador. Gerência de memória: função responsável por fornecer à função de criação/eliminação de processos os endereços em memória disponíveis para alocação; Gerência de sistemas de arquivos: responsável pelo gerenciamento dos arquivos, bem como seu compartilhamento pelos diversos usuários, implementando mecanismos de controle da segurança e direitos de acesso às áreas utilizadas pelos usuários nos diversos dispositivos; Gerência de dispositivos de E/S: responsável por gerenciar os dispositivos, prestando auxílio à criação/eliminação de processos e á gerência de sistemas de arquivos no que diz respeito ao endereçamento e associação de arquivos em periféricos; Suporte a redes e teleprocessamento: é esta função que executa todos os serviços de rede, fazendo o empacotamento das mensagens vindas dos terminais para a CPU central e vice-versa, além de controlar e confirmar o envio e recebimento de todas as mensagens que trafegam pela rede; Contabilização de uso do sistema: responsável por contabilizar o uso de todos os recursos do sistema consumidos pelos usuários e suas aplicações. Auditoria e segurança do sistema: função extremamente importante, pois detecta e registra (num arquivo especial de LOG) todas as ocorrências de erro e violação de direitos de acesso ao sistema, aos arquivos, à memória e a todos os recursos do sistema. Você poderia responder por que existe esta preocupação? Se a sua resposta está relacionada com o fato de que uma vez corrompido o sistema poderá não funcionar, então você está correto. “Uma grande preocupação no projeto de sistemas operacionais se refere à implementação de mecanismos de proteção ao núcleo do sistema e também o controle de acesso aos serviços oferecidos pelo sistema.”
  8. 8. Sistemas Operacionais 7 Evolução dos Sistemas Operacionais: Bom, diante desse conceito podemos concluir que o Sistema Operacional é totalmente interligado com o hardware. Sendo assim, como eram os sistemas operacionais dos primeiros computadores? Ou melhor, como seriam os primeiros computadores? “Para cada serviço disponível existe uma system call associada, e cada sistema operacional possui seu próprio conjunto de chamadas.”
  9. 9. Sistemas Operacionais 8 O ENIAC e considerado o primeiro computador digital e eletrônico, foi desenvolvido por J. Presper Eckert e John W. Mauchly, da Universidade da Pensilvânia. Este computador realizou cálculos balísticos e foi utilizado no projeto da bomba de hidrogênio. Possuía 17 mil válvulas, 10 mil capacitores, 70 mil resistores, pesava 30 toneladas, consumia 140 quilowatts e era capaz de executar 5 mil adições por segundo. Seu painel de programação continha 6 mil conectores. Curiosidade? Vocês notaram que o processo de evolução apresenta categoria diferente de software de gerenciamento e manipulação do hardware. Bem isso significa que em cada uma dessas fases surgiu um tipo de Sistema Operacional. Tipos de Sistema Operacional Os Sistemas operacionais podem ser classificados em tres tipos: Ultra-LSI Arquiteturas Paralelas Circuito Integrado 3-D
  10. 10. Sistemas Operacionais 9 Tipos de Sistema Operacional Os Sistemas Operacionais Monoprogramaveis/monotarefa eram voltados tipicamente para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Neste tipo de sistema, o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa. Os Sistemas Operacionais Multiprogramaveis/Multitarefa constituíram de uma evolução dos sistemas monoprogramáveis, neste tipo de sistema os recursos computacionais são compartilhados entre os diversos usuários e aplicações: enquanto um programa espera por um evento, outros programas podem estar processando neste mesmo intervalo de tempo. Curiosidade Memória Principal Dispositivos de E/S UCP programa/ tarefa Modo de execução dos sistemas monotarefa Um dos cientistas da Bell Labs, Ken Thompson, descobriu um pequeno microcomputador que ninguém. Estava usando e começou a escrever uma versão simplificada monousuária que evoluiu para o SO UNIX, que se tornou popular no mundo acadêmico, entre órgãos do governo e entre muitas empresas (Fonte: http://www.geocities.com/geologo_1999/oquee.htm)
  11. 11. Sistemas Operacionais 10 Tipos de Sistemas Multiprogramáveis/Multitarefa Os Sistemas Operacionais com Múltiplos Processadores são caracterizados por possuir duas ou mais CPUs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em várias partes para serem executadas simultaneamente em mais de um processador Tipos de sistemas com múltiplos processadores
  12. 12. Sistemas Operacionais 11 Sistemas Fortemente Acoplados UCP UCP Memória Principal Dispositivos de E/ S Dispositivos de E/ S Sistemas Fracamente Acoplados UCP UCP Memória Principal Memória Principal Dispositivos de E/S link de comunicação Dispositivos de E/ S Os sistemas Fortemente acoplados podem ser divididos, quanto a sua organização em: Assimétricos e Simétricos. Sistema assimétricos Nos sistemas assimétricos somente um processador pode executar os serviços do sistema Operacional. Exemplo: Nos sistemas simétricos todos os processadores executam os serviços do sistema Operacional. Cada sistema tem sua própria memória individual. Possui apenas uma memória a ser compartilhada pelos processadores do conjunto. Se uma solicitação de Entrada é solicitada pelo usuário na UCP Slave (escrava) esse serviço será requisitado a UCP Master (mestre)
  13. 13. Sistemas Operacionais 12 Sistema Simétrico NOTA: Os sistemas Fracamente Acoplados podem ser divididos, quanto a sua organização em: Redes e distribuídos. Em um sistema em rede, existem vários computadores com seu próprio sistema operacional, além de software que possibilitam ter acesso a outros componentes da rede. O que define sistema distribuído é a existência de um relacionamento mais forte entre os seus componentes, em geral os sistemas operacionais são os mesmo. Para o usuário e para suas aplicação é como se não existisse uma rede, mas sim um único sistema centralizado. Sistema Distribuído Síntese da Unidade: Sistemas operacionais consiste em um software responsável pela comunicação entre o hardware com os usuários e os aplicativos. As duas principais funções de um sistema operacional e: facilidade de acesso aos recursos computacionais e gerenciamento desses recursos. Em sua estrutura interna, o sistema operacional possui o núcleo também chamado de Kernel, que por sua vez é protegido pelos System Call. A evolução de um sistema operacional esta diretamente ligada à evolução do hardware. A cronologia de evolução foi estabelecida em cinco fases Sistema de rede Algumas funções de controle ficam a cargo de um único processador, dentre elas o BOOT.
  14. 14. Sistemas Operacionais 13 distintas: 1ª fase (1645 – 1956), 2ª fase (1956 – 1965), 3ª fase (1966 – 1980), 4ª fase (1981 – 1990), 5ª fase (1991 - ). De acordo com a evolução dos sistemas operacionais os mesmos foram divididos em três tipos: Monoprogramáveis/monosuario, multiprogramáveis/multarefa e múltiplos processadores. Os Sistemas multiprogramáveis/multitarefa são subdivididos em Sistemas em batch, sistema de tempo compartilhado e sistemas de tempo real. Os sistemas para múltiplos processadores podem ser classificados em sistemas fortemente acoplados e sistemas fracamente acoplados. Os sistemas fortemente acoplados são classificados em: sistemas assimétricos e sistemas simétricos. Os sistemas fracamente acoplados. São classificados em: sistemas de redes e sistema distribuído. [ Auto-Avaliação ] 1. Como seria utilizar um computador sem um S.O. Quais são as duas principais funções de um S.O? 2. Qual a relação da visão do usuário de um Sistema Computacional e o conceito de uma máquina de níveis ou camadas? 3. Todos os sistemas operacionais possuem uma mesmo System Call? 4. Quais os tipos de S.O. existentes? 5. Assinale a Alternativa correta cujo conceito se caracteriza por: “possuir duas ou mais CPUs interligadas e trabalhando em conjunto”. a) ( ) Sistema monotarefa b) ( ) Sistema Multiprogramaveis c) ( ) Sistema Múltiplos processadores d) ( ) Sistema monousuario 6. Qual a grande diferença entre sistemas mono e multiprogramáveis? 7. Quais as vantagens de sistemas multiprogramáveis? 8. Um sistema monousuário pode ser um sistema multiprogramável? Dê um exemplo. 9. Quais são os tipos de sistemas multiprogramáveis? 10. Assinale a alternativa que corresponda ao conceito de “sistema batch”. a)( ) voltados tipicamente para a execução de um único programa. b)( ) Nesta modalidade, os programas eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, para posterior execução.
  15. 15. Sistemas Operacionais 14 c)( ) permitem que diversos programas sejam executados a partir da divisão de tempo do processador em pequenos intervalos. d)( ) Um programa ocupa o processador o tempo que for necessário ou até que apareça um outro com um nível de prioridade maior. 11. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utilizá-los? 12. Qual a grande diferença entre sistemas de tempo compartilhado e tempo real? Quais aplicações são indicadas para sistemas de tempo real. 13. O que são sistemas com múltiplos processadores e quais as vantagens em utilizá-los? 14. Qual a grande diferença entre sistemas fortemente acoplados e fracamente acoplados? [ Referências Bibliográficas ] MACHADO, Francis Berenger ; MAIA, Luiz Paulo. “Arquitetura de Sistemas Operacionais”, 2ª Edição, Ed. LCT, 1997. SILBERSCHATZ, Abraham; GALVIN, Peter Baer. "Sistemas Operacionais: Conceitos", quinta edição. Pearson Brasil, 2000. TANENBAUM, Andrew S., WOODHULL, Albert S.. "Sistemas Operacionais - Projeto e Implementação", segunda edição. Prentice-Hall, 2000.
  16. 16. Sistemas Operacionais 15 Unidade II – Conceitos de Processos Estado de um processo Hierarquia entre os processos Mecanismos de Interrupções Programação Paralela Especificação da concorrência em programas Comunicação entre processos e seção Crítica Starvation e Deadlock [Objetivos Específicos da Unidade II] Propomos, nesta UNIDADE, levar você a: • Compreender o papel de um Sistema Operacional no gerenciamento dos dispositivos dos computadores. • Discutir principais conceitos de Sistemas Operacionais
  17. 17. Sistemas Operacionais 16 Gerência de Processos O módulo anterior destacou as funcionalidades de um sistema operacional. Neste módulo apresentaremos a unidade de trabalho de um sistema operacional: o processo, ou seja, trataremos das requisições do usuário de do hardware. À medida que vamos conhecendo a estrutura interna de um sistema operacional, podemos relacionar esse conhecimento as situações que diariamente vivenciamos ao utilizarmos um microcomputador. Esta unidade trata de assuntos que vão conduzi-lo a um entendimento mais profundo sobre o funcionamento de um sistema operacional, sobre como o sistema manipula as ações que norteiam o funcionamento de um sistema computacional. Os tópicos serão apresentados de forma que você apreenda o conceito de processo, sua estrutura e as questões que envolvem a sua manipulação. E, para facilitar a sua aprendizagem, serão propostas questões e orientações de estudo ao longo do texto. Objetivamos que você adquira um conhecimento que lhe permita identificar os processos, as formas com que eles se comunicam e os principais problemas encontrados em sua comunicação. Para que isso ocorra, é fundamental que você seja capaz de entender lógica de programação, bem como as várias técnicas utilizadas em estruturas de dados. Portanto, sugerimos questões ao longo do texto para apreensão de determinados conceitos e, ao final da unidade, você está convidado a verificar seus conhecimentos por meio da auto- avaliação, que deverá ser enviada ao seu tutor. Então, mãos à obra! Processos: Este assunto irá contribuir para que você possa entender como um sistema operacional funciona internamente. Você poderia a partir dessa imagem, formular um conceito sobre processo?
  18. 18. Sistemas Operacionais 17 Acredito que não. Então tentaremos explicar a figura acima: Um processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. Um processo representará um programa em execução, que tem suas informações mantidas pelo sistema operacional, informações referentes ao próprio programa, tais como o nome do proprietário do mesmo (contexto de software), informações referentes ao conteúdo dos registradores (contexto de hardware), informações referentes à área de armazenamento (espaço de endereçamento). Dessa forma, a figura acima poderia ser vista da seguinte forma: Vamos agora detalhar melhor cada um desses elementos: Contexto de Software: neste contexto são especificados características e limites dos recursos que podem ser alocados pelo processo, como número máximo de arquivos abertos, prioridade de execução, número máximo de linhas impressas, etc. Muitas destas características são criadas no momento da criação do processo, quando da sua alocação. O contexto de software é composto por três grupos de informações: Contexto de Hardware: armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico. Quando um processo está em execução, o seu
  19. 19. Sistemas Operacionais 18 contexto de hardware está armazenado nos registradores da CPU. No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de hardware do processo. Espaço de endereçamento: é a área de memória pertencente a um processo onde a instrução e os dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais processos. Os contextos de software e de hardware não fazem parte do espaço de endereçamento. Depois desse detalhamento você deve estar se fazendo pelo menos duas perguntas básicas: Como todas esses informações são controlados pelo sistema Operacional? Aonde essas informações são guardadas? Eis a resposta: Bloco de controle do processo (PCB): é a estrutura de dados que compõe o processo, contendo os contextos de software e de hardware e o espaço de endereçamento.
  20. 20. Sistemas Operacionais 19 Estado de um processo Num sistema multiprogramável, um processo não deve alocar a CPU com exclusividade, de forma que possa existir um compartilhamento no uso do processador. Os processos passam por diferentes estados ao longo do processamento, em função de eventos gerados pelo sistema operacional, pelo hardware, ou pelo próprio programa. São estados possíveis de um processo: Mudanças de estado do processo Um processo muda de estado diversas vezes durante sua permanência no sistema, devido aos eventos ocorridos durante sua execução. As possíveis mudanças de um estado são:
  21. 21. Sistemas Operacionais 20 Hierarquia entre os processos Um processo pode criar outros processos e que podem, por sua vez, criarem também outros processos de maneira hierárquica. Quando um processo (Processo pai) cria um outro processo, a este chamamos de subprocesso ou processo filho, e este subprocesso poderá criar subprocessos que podem criar outros subprocessos etc... gerando uma arvore hierárquica de processos. Vantagens: evita que o usuário tenha que esperar que um processo termine para que sua requisição seja processada melhorando o desempenho do sistema Desvantagens: a)Este tipo de recurso somente está disponível para alguns tipos de Sistemas Operacionais; b) a limitação do hardware pode depois de um certo numero de subprocessos tornar crítica a situação gerando erros no sistema.
  22. 22. Sistemas Operacionais 21 Para Refletir: Subprocessos & Threads Os Subprocessos possuem cada, um endereçamento protegido já as threads compartilham o mesmo endereçamento sem proteção permitindo que uma altere os dados de outra. As threads trabalham cooperativamente, desempenhando tarefas em conjunto.
  23. 23. Sistemas Operacionais 22 Tipos de Thread: Monothread - para ambiente que permita apenas uma thread. Multithread - usada em ambiente que permite várias threads, cada processo pode responder a várias solicitações. Havendo mais de um processador as threads podem operar simultaneamente. Tipos de Processos Processos do Sistema: São processos que oferecem os serviços do sistema operacional aos usuários • Auditoria e segurança • Serviços de rede • Contabilização do uso de recursos • Contabilização de erros • Gerência de impressão • Gerência de jobs batch • Temporização • Comunicação de eventos Processos do Usuário: São processos que representam as tarefas programadas pelo usuário. Os processos em execução, do usuário, podem assumir dois tipos diferentes, de acordo com suas características de uso de CPU e periféricos: Classificação dos Processos quanto o relacionamento Independentes: caso a sua execução não afete e não seja afetada pela execução de um outro processo.
  24. 24. Sistemas Operacionais 23 Cooperantes: quando interage (troca de informações) com outros processos presentes no sistema. Classificação dos Processos quanto o Canal de Comunicação Processos Foregroud: é aquele que permite a comunicação direta do usuário com o processo durante o processamento. Processos Background: é aquele que não possui um canal de comunicação com o usuário durante o processo. Mecanismos de Interrupções Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no seu fluxo de execução. Estes tipos de eventos são conhecidos por interrupção ou exceção e podem ser conseqüência da sinalização de algum dispositivo de hardware externo ao processador ou da execução de instruções do próprio programa. Esse mecanismo é realizado tanto por hardware quanto por software.
  25. 25. Sistemas Operacionais 24 Programação Paralela A possibilidade de o processador executar instruções em paralelo com operações de E/S permitem que diversas tarefas sejam executadas concorrentemente. O conceito de concorrência é o principio básico para o projeto e a implementação dos sistemas multiprogramáveis. A utilização concorrente da UCP deve ser implementada de maneira que, quando um programa perde o uso do processador e depois retorna para continuar sua execução, seu estado deve ser idêntico ao do momento em que foi interrompido. O programa deverá continuar sua execução exatamente na instrução seguinte àquela em que havia parado, aparentando ao usuário que nada aconteceu.
  26. 26. Sistemas Operacionais 25 Especificação da concorrência em programas A especificação da concorrência em programas pode ser expressa em diversas notações. As mais utilizadas são os comandos FORK e JOIN (Conway, 1963 e Dennis e Van Horn, 1966) e os comandos PARBEGIN e PAREND (Dijkstra, 1965). FORK e JOIN: O processo pai executa concorrentemente com o processo filho. O programa A começa a ser processado e, ao encontrar o comando FORK, cria outro processo (ou subprocesso, ou filho) para a execução do programa B. O comando JOIN determina o ponto onde A sincroniza com B, isto é, o programa A só prossegue, a partir do comando JOIN, quando B terminar. PARBEGIN e PAREND: O processo pai espera que o processo filho termine. Os subprocessos contidos após o comando PARBEGIN serão executados concorrentemente, numa ordem imprevisível. O ponto de sincronização é definido pelo comando PAREND, sendo que os comandos a
  27. 27. Sistemas Operacionais 26 partir dele somente serão executados quando todos os outros já tiverem terminado. Devido à sua facilidade de compreensão e simplicidade podem ser facilmente adicionados em uma linguagem de alto nível. Comunicação entre processos e seção Crítica Muitas vezes podemos ter processos trabalhando juntos na solução de um problema, utilizando para tanto recursos comuns, tais como: (a) posição da memória; (b) arquivo comum. Bom, esse acesso concorrente a dados compartilhados pode resultar em inconsistências. Diante dessa situação é extremamente importante a existência de mecanismos que garantam a comunicação entre processos. Esses mecanismos são denominados de mecanismo de sincronização. Como primeiro método para controlar o acesso a um recurso compartilhado propõe-se declarar uma seção de código como sendo crítica, para em seguida controlar o acesso a essa região. Essa seção foi denominada de: • Região Crítica: parte do código do programa onde é feito o acesso ao recurso compartilhado, ou seja, é à parte do programa cujo processamento pode levar à ocorrência de condições de corrida. Ou seja, Condição de corrida A situação onde diversos Processos acessam e manipulam recursos Compartilhados de forma concorrente.
  28. 28. Sistemas Operacionais 27 O segundo método propõe um acesso mutuamente exclusivo, ou seja, o impedimento de dois ou mais processos a variáveis de memória ao mesmo tempo. Solução de Hardware para o problema da exclusão mútua As características do hardware podem tornar a tarefa de programação mais fácil e melhorar a eficiência do sistema. O problema de seção crítica pode ser resolvido em um ambiente monoprocessador bastando desabilitar a ocorrência de interrupções. Em algumas máquinas existem instruções especiais que evitam este problema. Dentre estas instruções pode-se destacar: Desabilitação de interrupções e instrução Test-And-Set. Desabilitação de interrupções: Consiste na inibição das interrupções na entrada da seção crítica e a sua ativação na saída da seção crítica. Test-And-Set: Essa instrução lê uma locação de memória (lock) e atualiza o valor do registrador (R1), em seguida escreve a locação de memória (lock) com o conteúdo de um registrador (R1) e realiza a leitura e a escrita atomicamente, em um único ciclo de barramento (ciclo readmodify-write), ou seja, as instruções executam sem interrupção (indivisíveis). Exemplo:
  29. 29. Sistemas Operacionais 28 A implementação da exclusão mútua entre produtor e consumidor com a instrução TAS Solução de Software para o problema da exclusão mútua As soluções para problemas de seção crítica não são fáceis de generalizar em problemas complexos. Para superar esta dificuldade podemos usar algumas ferramentas de sincronização, tais como: Semáforos e Monitores. SEMÁFOROS: Um semáforo S consiste em uma variável inteira que, alem da inicialização, só é acessada através de duas operações-padrão: P e V Estas operações receberam seus nomes dos termos holandeses P de poberen, que significa testar e V de verhogen, que significa incrementar. Importante Saber Monitores: Consiste de um módulo contendo: rotinas, estruturas de dados e variáveis de condição, que a cada instante permite que apenas um processo pode estar executando uma rotina do monitor. Exemplo de utilização de semáforo Uma das vantagens de se utilizar os semáforo esta na irrelevância da a ordem de execução das operações. Pois uma primitiva V dispara antes de um P, “guarda” sua ocorrência no valor do semáforo.
  30. 30. Sistemas Operacionais 29 Estrutura de um monitor Nota Fluxo de um monitor: As variáveis de condição são estruturas do tipo fila, onde os processos esperam por algum evento. Duas operações se realizam sobre as variáveis de condição: wait(c): processo passa a esperar na fila da condição c, quando esta impede a continuação da execução; signal(c): desperta o processo esperando na fila da condição c. A instrução signal deve ser a última do procedimento, de modo que o processo abandone imediatamente o procedimento. Fluxo de um monitor Starvation – Deadlock Alguns problemas surgem na implementação de soluções para os problemas de comunicação e devem ser resolvidos antes destes. Os mais comuns são: Starvation e DeadLock. Starvation (inanição): ocorre quando dois ou mais processos esperam por um recurso alocado. Na decisão de qual processo ganhará o acesso ao recurso compartilhado, se o Sistema Operacional o fizer de modo aleatório ou através de Esse tipo de solução implementa automaticamente, a exclusão mútua entre seus procedimentos. Cabe notar que o monitor permite a execução de um procedimento seu, mesmo que um ou mais processos estejam no estado de espera.
  31. 31. Sistemas Operacionais 30 prioridades, pode ser que um processo nunca seja escolhido. Para resolver este problema utiliza-se um mecanismo de fila, aonde o primeiro a chegar é o primeiro a ser atendido (FIFO). Deadlock (bloqueio total) Um conjunto de processos bloqueados cada um utilizando um recurso e esperando que outro libere um outro recurso para dar continuidade ao seu trabalho. Exemplo 01:
  32. 32. Sistemas Operacionais 31 Exemplo 02: Sintese da Unidade: Processo representa um programa em execução que tem suas informações mantidas pelo sistema operacional, informações referentes ao próprio programa, tais como o nome do proprietário, conteúdo dos registradores e espaço de endereçamento. Um processo é composto de três partes: Contexto de Software, Contexto de Hardware e espaço de endereçamento. O processo é implementado através de um Bloco de Controle de Processo (PCB) Os processos passam por diferentes estados ao longo do processamento: criação, execução, pronto e espera. Um processo muda de estado diversas vezes durante a sua permanência no sistema: criação->pronto; pronto->execução, execução->pronto, execução->espera, espera->pronto e execução->saída. Um processo pode hierarquicamente ser dividido em subprocessos. Threads. Consistem um uma unidade básica de utilização da CPU, ou seja, uma linha de execução de um processo. Os Processos se dividem em dois tipos: Processos do sistema e Processo do usuário. Interrupções e exceções consistem em eventos inesperados que podem que podem ocorrer durante a execução de um programa. O conceito de programação paralela é o principio básico para o projeto e a implementação dos sistemas multiprogramáveis. Para a especificação da concorrência em programas são utilizadas as notações: FORK e JOIN, PARBEGIN e PAREND. Região Crítica: parte do código do programa onde é feito o acesso ao recurso compartilhado. Exclusão mútua consiste no impedimento de dois ou mais processos a variáveis de memória ao mesmo tempo. Desativação de Interrupções e Instrução Test-And-Set consistem em Solução de hardware para o problema de exclusão mútua. Semáforos e Monitor consistem em Solução de Software para o problema de exclusão mútua. Starvation ocorre quando dois ou mais processos esperam por um recurso alocado. Um sistema tem duas unidades de gravação. P1 e p2, possuem um recurso e estão aguardando a liberação do outro.
  33. 33. Sistemas Operacionais 32 Deadlock é conjunto de processos bloqueados cada um utilizando um recurso e esperando que outro libere um outro recurso para dar continuidade ao seu trabalho [ Auto-Avaliação ] 1) Explique em que consiste um processo. 2) Qual função de um processo? 3) Como é formado um processo? 4) Como o processo é implementado pelo Sistema Operacional? 5) quais os estados possíveis de um processo? 6) explique a diferença entre um subprocesso e uma thread. 7) Explique a classificação dos processos quanto o canal de comunicação. 8) Exemplifique uma exceção. 9) Qual o contexto do método que fundamenta a região crítica? 10) Que solução é necessária para garantir a implementação da região crítica? 11) Defina semáforo? 12) Explique a vantagem de se utilizar o mecanismo monitor como solução para os problemas de sincronização? 13) Explique a diferença entre Starvation e Deadlock? [ Referências Bibliográficas ] MACHADO, Francis Berenger ; MAIA, Luiz Paulo. “Arquitetura de Sistemas Operacionais”, 2ª Edição, Ed. LCT, 1997. SILBERSCHATZ, Abraham; GALVIN, Peter Baer. "Sistemas Operacionais: Conceitos", quinta edição. Pearson Brasil, 2000. TANENBAUM, Andrew S., WOODHULL, Albert S.. "Sistemas Operacionais - Projeto e Implementação", segunda edição. Prentice-Hall, 2000.
  34. 34. Sistemas Operacionais 33 Unidade III – Gerência do Processador Gerência do Processador O bloco descritor de processo Coordenação do chaveamento de contexto Processos Versos Threads Escalonadores Gerência de Dispositivos de Entrada e Saída (E/S) Operações de E/S Subsistema de E/S Controladores de periféricos [Objetivos Específicos da Unidade III] Propomos, nesta UNIDADE, levar você a: • Compreender as implicações arquiteturais de um sistema multiprogramável. • Identificar os mecanismos de comunicação entre processos. • Conhecer os mecanismos de escalonamento entre processos. • Caracterizar os gerenciadores de dispositivos de E/S.
  35. 35. Sistemas Operacionais 34 Gerencia do Processador O módulo anterior destacou a unidade de trabalho de um sistema operacional. Neste módulo apresentaremos os elementos necessários para operacionalizar essa unidade de trabalho, ou seja, os elementos que manipularam e gerenciaram a execução de um processo. Todos os conceitos e exemplos apresentados nesta unidade, simplesmente nos permitirão compreender situações quase imperceptíveis ao usuário final. Esta unidade trata de assuntos que vão conduzi-lo a um entendimento mais profundo sobre a execução de mais de um programa em um mesmo intervalo de tempo, bem como o gerenciamento dos dispositivos de Entrada e Saída por mais de um usuário ou uma aplicação. Os tópicos serão apresentados de forma que você apreenda a função do módulo de gerência do processador e da gerencia dos dispositivos de Entrada e Saída. E, para facilitar a sua aprendizagem, serão propostas questões e orientações de estudo ao longo do texto. Objetivamos que você adquira um conhecimento que lhe permita identificar as funções de um gerenciador de processos e as características do processo de gerenciamento de dispositivos de entrada e saída. Para que isso ocorra, é fundamental que você seja capaz de entender lógica de programação, bem como as várias técnicas utilizadas em estruturas de dados. Portanto, sugerimos questões ao longo do texto para apreensão de determinados conceitos e, ao final da unidade, você está convidado a verificar seus conhecimentos por meio da auto-avaliação, que deverá ser enviada ao seu tutor. Então, mãos à obra! Gerencia do Processador Este assunto irá contribuir para que você possa entender como um sistema operacional trata a existência e a execução de vários processos em um mesmo intervalo de tempo, bem como simultaneamente. Observe a imagem abaixo:
  36. 36. Sistemas Operacionais 35 Você Sabia? Diante deste contexto você pode definir qual seria a função da gerência do processador? Podemos dar uma idéia: Para tanto esse módulo do Sistema Operacional deverá disponibilizar Algoritmos de escalonamento capazes de gerenciar essa ação. Algoritmos de escalonamento ????? Bom, Algoritmos de escalonamento é ...... Espere aí, Antes de tratarmos desse assunto, vamos recapitular alguns conceitos importantes para compreensão desse novo conceito. Bloco Descritor de um Processo ou Bloco de Controle do Processo Na unidade anterior vimos o conceito de Processo como um programa em execução que possui uma série de estados (criação, pronto, execução, espera, etc). Para representar sua evolução no tempo, gerenciar processos quanto à organização de filas de processos nos diferentes estados, quanto a determinação de eventos que realizam a transição entre os estados e quanto a determinar de quando e como um processo tem direito a “utilizar” o processador para sua execução, o Sistema operacional necessita manter uma série de informações a respeito do processo. Para possibilitar essas tarefas, teremos: Que o uso da multiprogramação pressupõe a existência de simultânea de vários processos disputando o processador “intermediar” a disputa dos processos pelo direito de processamento de forma justa e eficiente.
  37. 37. Sistemas Operacionais 36 Importante saber Bem, sabemos que um processo pode assumir pelo mesmo quatro estados básicos: Já vimos também que Um processo muda de estado diversas vezes durante sua permanência no sistema, devido aos eventos ocorridos durante sua execução:
  38. 38. Sistemas Operacionais 37 Coordenação do chaveamento de contexto Esta Coordenação consiste em uma ação realizada pelo sistema operacional que do ponto de vista do processo é como se ele nunca tivesse deixado de ser executado. Características: Salva o contexto do processo; Atualiza o estado do processo que está em execução no seu descritor do processo; Insere o descritor do processo na fila apropriada (pronto, espera); Seleciona outro processo para execução; Atualiza descritor de processos do processo selecionado; Atualiza estruturas de dados associadas com gerência de memória e de dispositivos de entrada e saída; Restaura contexto do processo selecionado; Quando se deve chavear Quando houver qualquer tipo de interrupções (falta de memória, Operação de E/S, relógio) Quando houver traps (condições anormais) Quando houver alguma chamada ao sistema (operação de E/S) Processos Versos Threads O Processo: Conforme vimos na unidade anterior, o processo utiliza um espaço de endereço e uma única linha de controle O Modelo do Processo
  39. 39. Sistemas Operacionais 38 Agrupamento de recursos (espaço de endereço com texto e dados do programa; arquivos abertos, processos filhos, tratadores de sinais, alarmes pendentes etc); Execução Threads: No conceito de thread trabalhado até o momento, caracteriza a thread como uma unidade básica de utilização da CPU que utiliza um espaço de endereço e múltiplas linhas de controle. O Modelo da Thread Recursos particulares (PC, registradores, pilha) Recursos compartilhados (espaço de endereço – variáveis globais, arquivos etc) Múltiplas execuções no mesmo ambiente do processo – com certa Os Processos possuem cada, um endereçamento protegido já as threads compartilham o mesmo endereçamento sem proteção permitindo que uma altere os dados de outra. As threads trabalham cooperativamente, desempenhando tarefas em conjunto. Tipos de Processos Processos do Sistema: São processos que oferecem os serviços do sistema operacional aos usuários Auditoria e segurança Serviços de rede Contabilização do uso de recursos Contabilização de erros Gerência de impressão Gerência de jobs batch Temporização Comunicação de eventos Processos do Usuário: São processos que representam as tarefas programadas pelo usuário. Os processos em execução, do usuário, podem assumir dois tipos diferentes, de acordo com suas características de uso de CPU e periféricos: CPU Bound: Um processo limitado por UCP (CPU-bound) gera pedidos de E/S com pouca freqüência
  40. 40. Sistemas Operacionais 39 Tipos de Thread: Monothread - para ambiente que permita apenas uma thread. Multithread - usada em ambiente que permite várias threads, cada processo pode responder a várias solicitações. Havendo mais de um processador as threads podem operar simultaneamente. Depois de todos esses conceitos, você é capaz de apresentar alguns exemplos de thread? Bom segue abaixo alguns exemplos. Espero que você tenha pensado em pelo menos um deles.
  41. 41. Sistemas Operacionais 40 Escalonadores Conforme comentamos, em alguns momentos podemos ter dois ou mais processos aptos a utilizar o processador para ser executado. Nesse instante, o sistema operacional deve decidir qual dos processos aptos, armazenados em uma fila, será escolhido para rodar primeiro. 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. Então podemos definir escalonador como: Objetivos do escalonamento: Maximizar a utilização do processador Maximizar a produção do sistema (throughput) Número de processos executados por unidade de tempo Minimizar o tempo de execução (turnaround) Tempo total para executar um determinado processo Acredito que depois das situações, ações apresentadas você já deva fazer idéia do que vem a ser um escalonador. Uma a entidade do sistema operacional responsável por selecionar um processo pronto para ser executado pelo processador, dividir o tempo do processador de forma justa entre os processos prontos a serem executados
  42. 42. Sistemas Operacionais 41 Minimizar o tempo de espera Tempo que um processo permanece na lista de aptos Minimizar o tempo de resposta Tempo decorrido entre uma requisição e a sua realização Níveis de escalonamento: Longo prazo Médio prazo Curto prazo Escalonador longo prazo: Executado quando um novo processo é criado Determina quando um processo novo passa a ser considerado no sistema, isto é, quando após sua criação ele passa a ser apto; Controla o grau de multiprogramação do sistema Quanto maior o número de processos ativos, menor a porcentagem de tempo de uso do processador por processo Escalonador médio prazo: Associado a gerência de memória Participa do mecanismo de swapping Suporte a multiprogramação Grau de multiprogramação Escalonador de curto prazo Determina qual processo apto deverá utilizar o processador Executado sempre que ocorrem eventos importantes: Interrupção de relógio Interrupção de entrada/saída Chamadas de sistemas Sinais (interrupção software)
  43. 43. Sistemas Operacionais 42 Tipos de escalonador: Uma vez escalonado, o processo utiliza o processador até que: Não preemptivo: Término de execução do processo Execução de uma requisição de entrada/saída ou sincronização Liberação voluntária do processador a outro processo (yield) Preemptivo: Término de execução do processo Execução de uma requisição de entrada/saída ou sincronização Liberação voluntária do processador a outro processo (yield) Interrupção de relógio Processo de mais alta prioridade esteja pronto para executar Importante saber: Tipos de Algoritmos não preemptivos - escalonadores que permitem que os processos rodem até o fim de sua execução sem ser interrompidos por eventos externos. FIFO SJF Tipos de Algoritmos preemptivos - escalonadores que são capazes de suspender processos que poderiam continuar executando. Os algoritmo de escalonamento seleciona qual processo deve executar em um determinado instante de tempo, para tanto, existem vários algoritmos para atingir os objetivos do escalonamento que buscam obter bons tempos médios invés de maximizar ou minimizar um determinado critério e privilegiar a variância em relação a tempos médios.
  44. 44. Sistemas Operacionais 43 Round robin (circular) Múltiplas filas Segue a seguir características e funcionamento de cada um desses algoritmos: FIFO - First In First Out : É o algoritmo mais simples de implementar, onde o processador possui uma fila associada para armazenar os processos que estão aptos a executar. Funcionamento: Processos que se tornam aptos são inseridos no final da fila Processo que está no início da fila é o próximo a executar Processo executa até que: Libere explicitamente o processador Realize uma chamada de sistema (bloqueado) Termine sua execução Desvantagem: Prejudica processos I/O bound Tempo médio de espera na fila de execução, varia de acordo com a ordem do processo: Ordem A-B-C-D = (0 + 12 + 20 + 35 ) / 4 = 16.75 u.t. Ordem D-A-B-C = (0 + 5 + 17 + 25 ) / 4 = 11.7 u.t. SJF - Shortest Job First: Para usar este algoritmo precisamos conhecer antecipadamente o tempo de execução de cada processo, o que é difícil. A idéia é alocar o processador para o menor job da fila. O fato é que o menor tempo médio é obtido
  45. 45. Sistemas Operacionais 44 quando se executa primeiro os processos de menor ciclo de processador (I/O bound). Portanto, os processos I/O bound são favorecidos. RR - Round Robin : A cada processo atribuímos um tempo durante o qual ele poderá utilizar o processador. Denominamos este intervalo de tempo de quantum. Além disso, este algoritmo é similar ao algoritmo FIFO, pois também mantemos uma fila, agora circular, para armazenar os processos. Para a execução existe a necessidade de um relógio para delimitar as fatias de tempo. O processo perde o processador quando: Libera explicitamente o processador Realize uma chamada de sistema (bloqueado) Termina sua execução
  46. 46. Sistemas Operacionais 45 Quando sua fatia de tempo é esgotada Escalonadores por prioridades: A cada processo pode ser atribuída uma prioridade, associar prioridades a processos I/O bound pode compensar o tempo gasto em estado de espera. Sempre que um processo de maior prioridade que o processo atualmente em execução entrar no estado espera deve ocorrer uma preempção. Prioridade estática: Um processo é criado com uma determinada prioridade e esta prioridade é mantida durante todo o tempo de vida do processo
  47. 47. Sistemas Operacionais 46 Prioridade dinâmica: Prioridade do processo é ajustada de acordo com o estado de execução do processo e/ou do sistema Ex.: ajustar a prioridade em função da fração do quantum que foi realmente utilizada pelo processo q = 100 ms Implementação de escalonador com prioridade estática (Múltiplas filas): Neste tipo de algoritmo as prioridades são atribuídas à classes de processos (de acordo com o tipo de processamento), cada qual com sua própria fila de prontos com seu mecanismo de seleção. Os Processos das classes de maior prioridade recebem o processador e os processos das classes de menor prioridade só receberá o processador se as filas de prontos das outras classes (de maior prioridade) estiverem vazias.
  48. 48. Sistemas Operacionais 47 Implementação de escalonador com prioridade dinâmica (Múltiplas filas com realimentação) Neste tipo de algoritmo de escalonamento os p processos podem migrar entre as classes (adaptabilidade) de acordo com seu comportamento, identificado pelo sistema O processo entra na fila de maior prioridade, a qual também possui a maior fatia de tempo Se o processo perde o processador para um de uma fila de maior prioridade, permanece na mesma fila de prontos. Se perder por preempção, é direcionada para a fila seguinte, de menor prioridade; As filas de maior prioridade implementam políticas FIFO, enquanto que a de menor prioridade implementa um mecanismo circular (round robin) Gerência de Dispositivos de Entrada e Saída (E/S) A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções de um sistema operacional. Sua implementação é estruturada através de camadas em um modelo semelhante ao apresentado para o sistema operacional como um todo.
  49. 49. Sistemas Operacionais 48 Operações de Entrada/Saída : Você Sabia? A implementação de um dispositivo chamado controlador ou interface permitiu a UCP agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, a UCP não se comunicava mais diretamente com os periféricos, mas sim através do controlador. Isso significa as instruções de E/S, por não ser mais preciso especificar detalhes de operação dos periféricos, tarefa esta realizada pelo controlador. Com a implementação do mecanismo de interrupção no hardware dos computadores, as
  50. 50. Sistemas Operacionais 49 operações de E/S puderam ser realizadas de uma forma mais eficiente. Em vez de o sistema periodicamente verificar o estado de uma operação pendente, o próprio controlador interrompia a UCP para avisar do término da operação. Funcionamento: Com esse mecanismo, denominado E/S controlada por interrupção, a UCP, após a execução de um comando de leitura ou gravação, fica livre para o processamento de outras tarefas. O controlador por sua vez, ao receber, por exemplo, um sinal de leitura, fica encarregado de ler os blocos dos discos e armazená-los em memória ou registradores próprios. Em seguida, o controlador, através de uma linha de controle, sinaliza uma interrupção ao processador. Quando a UCP atende a interrupção, a rotina responsável pelo tratamento desse tipo de interrupção transfere os dados dos registradores do controlador para a memória principal. Ao término da transferência, a UCP volta a executar o programa interrompido e o controlador fica novamente disponível para outra operação. Vantagem: A operação de E/S controlada por interrupção é muito mais eficiente que a operação de E/S controlada por programa, já que elimina a necessidade de a UCP esperar pelo término da operação; Permitir que várias operações de E/S sejam executadas simultaneamente. Desvantagem: sobrecarregava a UCP, uma vez que toda transferência de dados entre memória e periféricos exigia a intervenção da UCP. A técnica de DMA: Permite que bloco de dados seja transferido entre memória e periféricos, sem a intervenção da UCP, exceto no início e no final da transferência. Quando o sistema deseja ler ou gravar um bloco de dados, são passadas da UCP para o controlador informações como: onde o dado está localizado, qual o dispositivo de E/S
  51. 51. Sistemas Operacionais 50 envolvido na operação, posição inicial da memória de onde os dados serão lidos ou gravados e o tamanho do bloco de dados. Com estas informações, o controlador realiza a transferência entre o periférico e a memória principal, e a UCP é somente interrompida no final da operação. A área de memória utilizada pelo controlador na técnica de DMA é chamada buffer, sendo reservada exclusivamente para este propósito. Funcionamento: O canal de E/S é um processador com capacidade de executar programas de E/S, permitindo o controle total sobre operações de entrada e saída. As instruções de E/S são armazenadas na memória principal pela UCP, porém o canal é responsável pela sua execução. Assim, a UCP realiza uma operação de E/S, instruindo o canal para executar um programa localizado na memória (programa de canal). Um canal de E/S pode controlar múltiplos dispositivos através de diversos controladores. Cada dispositivo, ou conjunto de dispositivos, é manipulado por um único controlador. O canal atua como um elo de ligação entre a UCP e o controlador. Técnicas para gerenciamento das operações de E/S: Buffering – O buffering é outra implementação para minimizar o problema da disparidade da velocidade de processamento existente entre a UCP e os dispositivos de E/S. O objetivo do buffering é manter, na maior parte do tempo, UCP e dispositivos ocupados. Esta técnica consiste na utilização de uma área de memória para a transferência entre os periféricos e a memória principal denominada buffer.
  52. 52. Sistemas Operacionais 51 Spooling – A técnica de spooling (simultaneos peripheral operation on-line) foi introduzida no final dos anos 50 para aumentar a produtividade e a eficiência dos SOs. O objetivo dessa técnica era armazenar os vários programas e seus dados, também chamados de jobs, em um meio magnético e, em seguida submetê-los a processamento. Desta forma, a UCP poderia processar seqüencialmente cada job, diminuindo o tempo de execução dos jobs e o tempo de transição entre eles. A técnica de buffering permite que um job utilize um buffer concorrentemente com um dispositivo de E/S. O spooling, basicamente, utiliza os disco como um grande buffer, permitindo que dados sejam lidos e gravados em disco, enquanto outros jobs são processados.
  53. 53. Sistemas Operacionais 52 Subsistema de E/S O sistema operacional deve tornar as operações de e/s o mais simples possível para o usuário e suas aplicações. Para isso, o sistema possui um conjunto de rotinas que possibilita a comunicação com qualquer dispositivo que possa ser conectado ao computador. O subsistema de E/S é responsável por realizar as funções comuns a todos os tipos de dispositivos, ficando os aspectos específicos de cada periférico como responsabilidade dos device drivers. Dessa forma, o subsistema de e/s é a parte do sistema operacional que oferece uma interface uniforme com as camadas superiores. Reentrância – É comum, em sistemas multiprogramáveis, vários usuários executarem os mesmos utilitários do SO simultaneamente, como, por exemplo, um editor de textos. Se cada usuário que utilizasse o editor trouxesse o código do utilitário para a memória, haveria diversas cópias de um mesmo programa na memória principal, o que ocasionaria um desperdício de espaço. Reentrância é a capacidade de um código de programa (código reentrante) poder ser compartilhado por diversos usuários, exigindo que apenas uma cópia do programa esteja na memória. Uma característica da reentrância é que o código não pode ser modificado por nenhum usuário no momento em que está sendo executado. Proteção do Sistema – Nos sistemas multiprogramáveis, onde diversos usuários compartilham os mesmos recursos, deve existir uma preocupação, por parte do SO, de garantir a integridade dos dados pertencentes a cada usuário. Problemas como um programa acessar (acidentalmente ou não) a área de memória pertencente a outro programa ou ao próprio SO tornariam o sistema pouco confiável. Para isso, todo sistema implementa algum tipo de proteção aos diversos recursos que são compartilhados, como memória, dispositivos de E/S e UCP.
  54. 54. Sistemas Operacionais 53 Controladores de periféricos Os controladores são componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S. O sistema operacional, mais exatamente o device driver, comunica-se com os dispositivos através dos controladores. Em geral, o controlador pode ser uma placa independente conectada a um slot do computador ou implementado na mesma placa do processador. Os dispositivos de entrada e saída são utilizados para permitir a comunicação entre o sistema computacional e o mundo externo. Os dispositivos de E/S podem ser classificados, como de entrada de dados, como cd-rom, teclado e mouse, ou de saída de dados. Como impressoras. Também é possível que um dispositivo realize tanto entrada quanto saída de dados, como modems, discos e cd-rw. As principais responsabilidades do SO nesta área estão diretamente ligadas a características dos próprios periféricos. Ou seja: O sub-sistema de I/O é normalmente partilhado por vários utilizadores e/ou aplicações, exigindo, portanto um acesso devidamente controlado para garantir segurança da informação e partilha adequada dos recursos; O sub-sistema de I/O recorre normalmente à utilização de mecanismos de interrupção do processador, os quais quando ativados e aceites pelo processador, transferem o modo de operação do processador (de modo "utilizador", quase sem privilégios, para modo de "supervisão" ou "super-utilizador" ou "kernel"); este modo de operação do processador está reservado a funções do SO; Ativação da seqüência adequada de ações/tarefas (baixo nível) a executar, que permitam: (i) uma configuração correta do controlador de I/O para executar as operações pretendidas neste sistema de computação; e (ii) a operação do controlador de I/O sempre
  55. 55. Sistemas Operacionais 54 que a sua utilização for necessária (inclui o envio de comandos de operação, a transferência de dados memória <-> periférico e a leitura do estado do controlador). Só para Constar Discos magnéticos Entre os diversos dispositivos de e/s, os discos magnéticos merecem atenção especial, por serem o principal repositório de dados utilizado pela maioria das aplicações e pelo próprio sistema operacional. Fatores como desempenho e segurança devem ser considerados na arquitetura de discos magnéticos. No final da década de 1980, pesquisadores de Universidade de Califórnia em Berkeley desenvolveram técnicas de gerenciamento de discos que otimizavam as operações de e/s e implementavam redundância e proteção de dados conhecidas como Raid (Redundant Arrays of Inexpensive Disk). As diferentes técnicas, utilizando múltiplos discos, foram publicadas em seis níveis (Raid 1-6). Estas técnicas tiveram grande aceitação no mercado e, posteriormente, um novo nível foi introduzido e denominado Raid 0. Síntese da Unidade: O módulo gerência do processador é responsável por intermediar a disputa dos processos pelo direito de processamento de forma justa e eficiente. Para gerenciar essa disputa, necessitará utilizar dentre outros elementos, o Bloco de controle de Processo que lhe proporcionará informações sobre o processo. O conhecimento do mecanismo de chaveamento de contexto é necessário para implementação do módulo de gerência do processador, pois o chaveamento na ação que torna implícita a execução de um processo. Um processo pode hierarquicamente ser dividido em subprocessos. Threads. Consistem um uma unidade básica de utilização da CPU, ou seja, uma linha de execução de um processo. A vantagem de se utilizar uma thread é que enquanto uma aguarda operação de E/S (no estado de espera), a outra thread pode utilizar a CPU.
  56. 56. Sistemas Operacionais 55 Os Processos se dividem em dois tipos: Processos do sistema e Processo do usuário. As threads podem ser de dois tipos: Monothread e multithread; Uma a entidade do sistema operacional responsável por selecionar um processo pronto para ser executado pelo processador, dividir o tempo do processador de forma justa entre os processos prontos a serem executados. Existem três Níveis de escalonamento: Longo prazo, Médio prazo, Curto prazo. O escalonador pode ser classificado em dois tipos: Não preemptivo e Preemptivo OS Algoritmos FIFO e SJF são classificados em não preemptivos Os Algoritmos Round robin (circular) e Múltiplas filas são classificados em preemptivos A Gerência de dispositivos de Entrada e Saída (E/S) consiste um módulo que Permiti que várias operações de E/S sejam executadas simultaneamente. A implementação de um dispositivo chamado controlador ou interface permitiu a UCP agir de maneira independente dos dispositivos de E/S A técnica de DMA permite a transferência de dados entre a memória e os periféricos necessários nas operações de E/S evitando com isso uma sobrecarregava a UCP, uma vez que toda transferência de dados entre memória e periféricos exigia a intervenção da UCP O canal de E/S é um processador com capacidade de executar programas de E/S, permitindo o controle total sobre operações de entrada e saída. Buffering e Spooling são técnicas para implementação das operações de E/S. O subsistema de E/S é responsável por realizar as funções comuns a todos os tipos de dispositivos Os devices drivers tem como função de implementar a comunicação do subsistema de e/s com os dispositivos, através de controladores. Os controladores são componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S. [ Auto-Avaliação ] 1. Que conceitos preliminares devemos possuir para entender a função do módulo de gerência do processador? 2. Qual é a função básica do módulo de gerência do processador? 3. Qual a função de um escalonador? 4. Quais são os objetivos de um gerenciamento dos dispositivos de E/S ? 5. Qual a função do canal de E/S ?
  57. 57. Sistemas Operacionais 56 6. Explique a função dos controladores. 7. Cite os 4 principais objetivos do escalonador de processos. 8. Porque os escalonamentos FIFOS e SJF não podem ser aplicados em sistemas de tempo compartilhado? 9. Alguns livros comentam sobre três níveis de escalonadores, comente a respeito de cada um: a)Escalonador longo prazo b)Escalonador médio prazo c)Escalonador curto prazo 10.Para que tipos de operações o DMA é útil? Quais as implicações de uma organização sem DMA na multiprogramação?
  58. 58. Sistemas Operacionais 57 Unidade IV – Gerência de Memória Gerência de Memória Partições fixas e variáveis Swapping Paginação Segmentação Segmentação paginada Memória Virtual Paginação por demanda Realocação de página Thrashing [Objetivos Específicos da Unidade IV] Propomos, nesta UNIDADE, levar você a: • Compreender os conceitos e técnicas utilizadas para o gerenciamento de memória pelo sistema operacional.
  59. 59. Sistemas Operacionais 58 Gerenciamento de Memória No módulo anterior vimos como é execução dos processos pelo processador, neste módulo basicamente irá estender o entendimento da execução de um processo, sob a ótica do armazenamento do mesmo nas memórias. É interessante notar como a simples execução de um processo pode desencadear diversas operações e envolver diversos conceitos e funções totalmente imperceptíveis ao usuário de um microcomputador. Esta unidade é bem simples e esta organizada de forma a conduzi-lo à um entendimento do funcionamento das memórias. Para tanto os tópicos serão apresentados de forma que você consiga construir o conhecimento sobre a função de gerenciamento de memória. E, para facilitar a sua aprendizagem, serão propostas orientações de estudo ao longo do texto. Portanto, sugerimos questões ao longo do texto para apreensão de determinados conceitos e, ao final da unidade, você está convidado a verificar seus conhecimentos por meio da auto-avaliação, que deverá ser enviada ao seu tutor. Então, mãos à obra! Gerência de Memória Qual a relação do Sistema Operacional e as Memórias? 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. O que cabe ao Sistema Operacional? Ao sistema operacional é destinada a função de coordenar e gerenciar a utilização dessas memórias de forma eficiente. Este serviço é implementado pelo sistema operacional através do gerenciador de memória. O gerenciador de memória controla quais partes da memória serão utilizadas e quais não serão. Além disso, ele aloca nova área de memória aos processos que necessitam e também libera espaço de memória quando os processos terminam. Diante disso, podemos destacar alguns pontos que resumiriam a função do módulo de gerência de memória: o Manter o maior número de processos na memória o Maximizar o compartilhamento da UCP e demais recursos
  60. 60. Sistemas Operacionais 59 o Implementar técnicas de Swapping o Executar de programas maiores que memória disponível o Implementar mecanismo de proteção o Permitir o compartilhamento da memória pelos processos Partições Fixas e variáveis Os sistemas operacionais modernos permitem que mais de um processo seja carregado em memória, de modo que quando um fica bloqueado esperando por uma operação de E/S outro, que esteja carregado em memória, poderá usar a CPU. Dessa forma, a multiprogramação ajuda a melhorar a utilização da CPU evitando desperdícios de ciclo de processamento. Partições Fixas Para que seja possível a multiprogramação, podemos dividir a memória em n partições (provavelmente de tamanhos diferentes). Os jobs serão colocados em filas de entrada associadas à menor partição capaz de armazená-lo. Será que essa solução é a mais apropriada? Problemas desse tipo de solução. Pelo fato de usarmos partições de tamanho fixo, todo o restante de espaço de memória não utilizado pelo job será perdido. Este desperdício de memória é chamado de Você é capaz de imaginar uma solução de memória para permitir o armazenamento de mais de um programa viabilizando com isso a multiprogramação? A Solução pode ser o que chamamos de partição Fixa
  61. 61. Sistemas Operacionais 60 fragmentação interna (espaço de memória perdido dentro da área alocada ao processo). Por outro lado, imagine que exista duas partições livres, uma de 25 e outra de 100 Kbytes, não contíguas. Nesse instante é criado um processo de 110 Kbytes que não poderá ser carregado em memória pela forma como ela é gerenciada. Este problema ocasiona o que chamamos de fragmentação externa (memória perdida fora da área ocupada por um processo). A estratégia de criar partições fixa pode contar com dois tipos de entradas: Entradas com múltiplas filas e entrada com fila única. O problema da organização em múltiplas filas, organização (a), é que jobs pequenos podem precisar esperar pela liberação de memória (partição mais adequada para o mesmo), embora exista memória disponível (partição grande), como é o caso da partição 1 e 3. Por outro lado, isso não ocorre no esquema de uma única fila. Nesta organização (b) sempre que uma nova partição é liberada o job mais próximo do início da fila e que caiba nessa partição pode ser carregado nela para ser executado pela CPU. Qual o problema dessa solução? (Discriminar jobs pequenos!) Qual a solução? (Ter pelo menos uma partição pequena!). No entanto, esta estratégia pode desperdiçar muito espaço ao armazenar um job pequeno em uma partição grande. Assim, uma opção mais interessante seria
  62. 62. Sistemas Operacionais 61 Bem, Existe uma outra possibilidade consiste em estabelecer uma quantidade máxima k de vezes que um job pudesse ser excluído da escolha de receber uma partição. Assim, sempre que ele fosse preterido teria seu contador incrementado e, ao chegar em k vezes, ele teria que receber uma partição. Partições Variáveis Neste esquema de organização a quantidade e o tamanho dos processos na memória podem variar dinamicamente com o passar do tempo, o tamanho das partições é ajustado dinamicamente às necessidades exatas dos processos. Diferentemente do esquema de partição fixa, na multiprogramação com partições variáveis a o tamanho e a localização dos processos variam à medida que o mesmo deixa e retorna à memória. Uma das grandes vantagens desta estratégia é que a flexibilidade obtida que melhora bastante a utilização da memória, evitando desperdícios de espaço. Neste tipo de partição, o sistema operacional mantém uma lista de espaços livres na memória física. Sempre que um novo processo é criado esta lista é percorrida e será usada uma lacuna maior ou igual ao tamanho do processo em questão. O espaço que ultrapassar o tamanho do processo pode dar origem a uma nova partição. Existem algumas formas de percorrer esta lista: 1. first-fit: utiliza a primeira lacuna encontrada com tamanho suficiente.
  63. 63. Sistemas Operacionais 62 2. best-fit: utiliza a lacuna que resulta em menor sobra de espaço. 3. worst-fit: utiliza a lacuna que resulta em maior sobra de espaço.
  64. 64. Sistemas Operacionais 63 Para solucionar esse tipo de problema, foi proposta uma técnica denominada Swapping. Nesse tipo de técnica caso não haja espaço para aumentar o tamanho da partição ou não tenha uma partição grande o suficiente para realocar o processo, então um ou mais processos deverão ser removidos para o disco (swapping). Se não for possível realizar o swapping (área de swapping cheia) o processo que deseja crescer deverá esperar ou ser eliminado.
  65. 65. Sistemas Operacionais 64 Paginação Como uma nova abordagem de gerenciamento da memória, a Paginação consiste em um espaço de Endereçamento lógico de um processo divididos em blocos do mesmo tamanho. Neste tipo de abordagem divide-se a memória física em blocos de tamanho fixo chamados frames (o tamanho é uma potência de 2, entre 512 bytes e 8192 bytes), divide a memória lógica em blocos do mesmo tamanho chamados de páginas e se mantém o registro de todos os frames livres. Para rodar um programa de tamanho n páginas, é preciso encontrar-se n frames livres para carregar o programa. Para tanto, define-se uma tabela de página (page table) para traduzir o endereço lógico em físico.
  66. 66. Sistemas Operacionais 65 Bom, um Bit Válido – Inválido é anexado a cada entrada na tabela de página: _ “válido” indica que a página associada está no espaço de endereçamento lógico do processo, e assim, é a uma página legal. _ “inválido” indica que a página não está no espaço de endereçamento lógico do processo. Segmentação A segmentação consiste em uma técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com seu próprio espaço de endereçamento. Segmentação
  67. 67. Sistemas Operacionais 66 Nesta técnica um programa é uma coleção de segmentos e um segmento é uma unidade lógica, tal como: programa principal procedimento função método objeto variáveis locais, variáveis globais bloco comum pilha tabela de simbolos, arrays Segmentação & Paginação A principal diferença entre a paginação e a segmentação é a alocação da memória de maneira não fixa, a alocação depende da lógica do programa e o mapeamento é feito através das tabelas de mapeamento de segmentos. Nesse caso, os endereços são compostos pelo número do segmento e por um deslocamento dentro do segmento. Cada entrada na tabela mantém informações sobre o endereço físico do segmento, o tamanho do segmento, se ele está ou não na memória e sua proteção. Note que: Segmentação Paginada Nesse tipo de técnica onde cada segmento é dividido fisicamente em páginas. Sendo assim, o endereço é formado pelo número do segmento, número da página localizado dentro no segmento e o deslocamento localizado dentro na página. O mecanismo de proteção da segmentação tem que ser diferente que da paginação. Neste caso a cada entrada na tabela de segmentos associa-se: _ bit de validação = (0) segmento ilegal privilégios de leitura/gravação/execução
  68. 68. Sistemas Operacionais 67 Técnica de gerenciamento que combina a memória principal e a secundária dando ao usuário a idéia de existir uma memória maior que a memória principal. O principal objetivo da memória virtual é disponibilizar aos usuários uma capacidade de memória independente da quantidade de memória física (RAM) instalada em um computador. Para cumprir esse objetivo, o SO, através da implementação do suporte à memória virtual, cria a ilusão de que cada processo possui um espaço de endereçamento contíguo em memória e, em princípio, sem restrição de tamanho. Segmentação paginada
  69. 69. Sistemas Operacionais 68 Dessa forma, a memória virtual elimina duas limitações impostas pela memória física (real): um processo ter seu tamanho máximo determinado pela capacidade de memória física instalada e, o somatório do espaço de memória ocupado por n processos não exceder essa mesma capacidade. Essa segunda limitação restringe o grau de multiprogramação, ou seja, o número de processos ativos em um sistema. Paginação por Demanda A paginação sob demanda é a implementação de memória virtual baseada no mecanismo de paginação simples, isto é, cada processo possui uma memória lógica, contígua, a qual é dividida em páginas lógicas de mesmo tamanho. As páginas lógicas são carregadas em páginas físicas, que são áreas de igual tamanho na memória física (RAM). A associação (mapeamento) de qual página física corresponde a uma determinada página lógica é feita através da tabela de páginas. Na paginação simples, todas as páginas lógicas de um processo são sempre carregadas para a memória física, resultando em uma entrada válida na tabela de páginas para cada página lógica do processo. O bit de válido/inválido é usado para indicar quais páginas estão fora da memória lógica. Quando uma página marcada como inválida é acessada, o processo é abortado por acesso ilegal à memória. Na paginação por demanda, um acesso à memória pode ter dois tratamentos distintos. Quando a página lógica acessada pelo processo está marcada como válida na tabela de páginas, Quando o endereço lógico é transformado em endereço físico e o acesso transcorre normalmente. Caso ocorra um erro e, por conseqüência uma interrupção de proteção, temos uma falta de página (page fault). Quando o SO é acionado em função de uma falta de página, as seguintes ações são realizadas: O processo que gerou a interrupção de falta de página é suspenso e seu descritor de processo é inserido em uma fila especial, a “dos processos esperando página lógica” Uma página física livre deve ser alocada A página lógica acessada deve ser localizada no disco Uma operação de leitura do disco deve ser solicitada, indicando o endereço da página alógica no disco e o endereço de página alocada. Quando a operação de leitura do disco for concluída, a gerência de memória concluirá o atendimento à falta de página realizando as seguintes ações:
  70. 70. Sistemas Operacionais 69 A tabela de páginas do processo é corrigida para indicar que a página lógica causadora da interrupção é agora válida e está na página física que fora alocado antes O descritor do processo é retirado da “fila dos processos esperando página lógica” e reinserido na fila de aptos do escalonador. Realocação de Página A medida que os processos vão sendo carregados para a memória, é possível que todas as páginas físicas acabem ocupadas. Nesse caso, para atender à falta de página, é necessário antes liberar uma página física ocupada. Isso significa escolher uma página lógica que está na memória, copiar seu conteúdo de volta para o disco e marca-la como inválida na tabela de páginas do seu processo. A página escolhida para ser copiada de volta ao disco é chamada de página vítima. O algoritmo de substituição de páginas é responsável pela escolha da página vítima. Ele é muito importante para a eficiência do mecanismo como um todo. Um escolha errada significa que a página removida será novamente acessada em seguida, gerando uma nova falta de página. É importante que o algoritmo usado seja capaz de remover da memória física páginas que provavelmente não serão necessárias logo em seguida. Vários bits auxiliares são normalmente adicionados às tabelas de páginas. O bit de sujeira (dirty bit) indica quando uma página foi alterada durante a execução do processo. Esse bit é zerado pelo SO quando a página é carregada para a memória. O bit de referência (reference bit) indica quando uma página foi acessada pelo processo. Esse bit é feito igual a zero pelo sistema operacional quando a página é carregada para a memória. Ele também será zerado em determinadas situações, ditadas pelo algoritmo de substituição de página empregado O bit de tranca (lock bit) serve para o SO “trancar” uma página lógica na memória física. Existem situações nas quais uma determinada página lógica não deve ser escolhida como vítima. Então, quando o SO envia ao controlador de disco um comando de leitura informando como destino uma página de processo, ele também liga o bit de tranca da respectiva página. Algoritmos de substituição de páginas na memória Em um sistema multiprogramado a memória é compartilhada por um certo número de processos, a determinação da página a ser substituída é feita por um algoritmo de substituição de páginas que recai em uma de duas classes genéricas possíveis: classe global e classe local. Independente de classe, global ou local, o ideal é selecionar uma página que não seja mais útil ou que, pelo menos, não venha a ser necessária em um
  71. 71. Sistemas Operacionais 70 curto intervalo de tempo. Logo, o algoritmo ótimo de substituição é aquele que escolhe uma página lógica que já foi utilizada por um programa e que não será mais necessária ou aquela página que será utilizada no futuro mais distante. A implementação do algoritmo ótimo não é viável por exigir o conhecimento prévio do comportamento dos processos. Algoritmos globais: FIFO (First In – First Out) – Escolhe para substituição a página que está a mais tempo residente em memória. A principal vantagem do FIFO é sua implementação simples: basta uma lista de até M posições e um ponteiro para indicar a frente da fila. Entretanto, essa estratégia peca por não considerar a utilização de uma página, ou seja, a página apontada como primeira da fila pode ser uma página acessada muito frequentemente ou que será necessária em breve. LRU (Least Recently Used) – Escolhe como página vítima aquela que foi acessada a mais tempo, isto é, a que foi “menos recentemente usada”. O LRU parte da premissa que as páginas acessadas recentemente por um processo continuarão a ser necessárias em um futuro próximo. Segunda chance – Também baseado em bit de referência, porém mais simples que o histórico de bits. Nesse caso, a gerência de memória considera que todas as páginas lógicas presentes na memória formam uma lista circular. Um apontador percorre a lista circular formada por todas as páginas e indica qual a próxima página a ser usada como vítima. Quando uma página vítima é necessária, o algoritmo verifica o bit de referência da página indicada pelo apontador. Caso este bit esteja desligado, essa página é efetivamente escolhida como vítima, e o apontador avança uma posição na lista circular. Caso o bit de referência da página apontada esteja ligado, o bit de referência é desligado, e ela recebe uma segunda chance. Algoritmos Locais Uma outra abordagem para o problema da substituição de páginas vem da análise de dois comportamentos apresentados durante a execução de processos.
  72. 72. Sistemas Operacionais 71 Algoritmo ótimo Considerando isso, o ideal é manter em memória, para cada processo, um conjunto ótimo de páginas necessárias a sua execução. Com esse raciocínio, a determinação de quais páginas lógicas de um processo devem permanecer em memória é dado pela sua própria execução e não deve afetar a política de páginas de outro processo. O algoritmo ótimo, então, ajusta o número de páginas em memória de acordo com as suas futuras referências. A idéia consiste em verificar se uma página lógica P acessada em instante de tempo T, será ou não acessada futuramente dentro de TT unidades de tempo. Caso a página lógica P venha a ser acessada dentro desse intervalo futuro de tempo, ela é considerada necessária e é mantida em memória, caso contrário, o espaço em memória que ocupa (página física) pode ser liberado. O intervalo de tempo dado por T+TT fornece uma janela temporal definindo, por processo, quais páginas devem ser mantidas em memória. Importante: Modelo de working set O Modelo de working set é uma aproximação do algoritmo ótimo que estimam quais as páginas serão necessárias no futuro com base em quais páginas goram acessadas no passado. O principio é manter em memória, em um instante T, conjunto de páginas P, acessadas por um processo durante o intervalo de tempo (T-TT; T). Sua lógica é considerar que se uma página foi acessada em um passado recente (T-TT), ela tem boa chance de continuar sendo utilizada em um futuro próximo. O problema do modelo working set é estimar o valor adequado para a constante TT (largura da janela temporal). Um valor pequeno para TT pode não englobar toda a localidade de referência de um processo, provocando faltas de páginas. Por outro lado, um valor muito grande para TT, tende a manter em memória páginas que não são mais referenciadas, provocando um Devido a impossibilidade de se conhecer previamente as páginas de um processo, esse algoritmo serve apenas para estimativas.
  73. 73. Sistemas Operacionais 72 desperdício de memória, e conseqüentemente, reduzindo o número de processos aptos a executar. Outra desvantagem do working set é a necessidade de reavaliá-lo a cada unidade de tempo (acesso), o que representa um custo de processamento elevado. Trashing Você já se perguntou por que ocorre situações de “congelamento do sistema”, ou se já, por que o sistema as vezes fica parado não liberando para nenhuma ação? Bom o tratamento de uma falta de página é várias ordens de grandeza mais lento que um processo normal à memória. Logo, o impacto da taxa de falta de página sobre o tempo de execução de um processo é muito grande. Quando um processo possui um número muito pequeno de páginas físicas para executar, a sua taxa de falta de página aumenta. Á medida que a taxa de falta de página aumenta o processo pára de realizar qualquer trabalho útil. Tudo que o processo faz é esperar pelo atendimento de faltas de páginas. Nesse momento, é dito que está ocorrendo Thrashing. Para retirar o sistema do estado de thrashing é necessário suspender temporariamente alguns processos, librando suas páginas físicas. O mecanismo natural para isso é o swapping. Obviamente, a gerência de memória realiza um revezamento entre os processos suspensos e aqueles executando. O swapping não é algo desejável, pois aumenta o tempo de resposta dos processos. Em condições normais, ele não deve ser usado. Formas de prevenção do Thrahing A solução normalmente empregada para solucionar o problema de thrashing é a prevenção: o sistema de gerência virtual deve agir de forma pró-ativa e evitar que o sistema entre em thrashing. Um sistema entrará em thrashing sempre que o somatório das páginas lógicas necessárias pelos processos do sistema for superior ao número de páginas físicas disponíveis no sistema. O modelo de working set, por exemplo, pode ser empregado para controlar o thrashing mantendo a soma dos tamanhos dos working sets (cardinalidade do conjunto) de todos os processos inferior a quantidade de páginas físicas disponíveis no sistema. Outra forma de prevenir o thrashing é empregar o método de frequência de falta de páginas. Nesse caso, se muitos processos apresentarem uma alta taxa de falta de páginas, isso significa que há mais demanda de memória, por parte dos processos que executam, que memória disponível. Novamente, através do escalonador de médio prazo,
  74. 74. Sistemas Operacionais 73 o SO seleciona um ou mais processos para suspender, evitando assim a situação de thrashing. Síntese da Unidade: O gerenciador de memória controla quais as partes da memória serão utilizadas e quais não serão e como serão utilizadas. O controle de uso da memória é feito através de técnicas de particionamento da memória. Partição fixa é uma técnica que consiste na divisão da memória em N partições de diferentes tamanhos. Partições variáveis é uma técnica que consiste na divisão da memória em N partições de acordo com a necessidades dos processo, isto é, o tamanho das partições é ajustado dinamicamente às necessidades exatas dos processos. First-fit, best-fit, worst-fit e circular-fit são algumas formas de se percorrer uma lista de segmentos. Swapping consiste em uma técnica de remoção do processo da memória para uma área do disco (swap out) e vice-versa (swap in). Paginação consiste em uma nova abordagem de gerenciamento de memória, caracterizado por trabalhar com espaços de endereçamento lógico de um processo divididos em blocos do mesmo tamanho. Segmentação consiste em uma nova abordagem de gerenciamento de memória, caracterizado por trabalhar com segmentos de tamanhos variados cad um com seu próprio espaço de endereçamento Segmentação Paginada consiste em uma técnica onde cada onde cada segmento é dividido fisicamente em páginas. Memória Virtual consiste em uma técnica que combina a memória principal e a secundária, dando ao usuário a idéia de existir uma memória maior que a memória principal. A Paginação por demanda é a implementação de memória virtual baseada no mecanismo de paginação simples, isto é, cada processo possui uma memória lógica, contígua, a qual é dividida em páginas lógicas do mesmo tamanho. Thrashing é conseqüência da excessiva paginação/segmentação em sistemas que implementam memória virtual, levando o sistema a dedicar mais tempo com operações relacionadas à gerência da memória do que no processamento das aplicações dos usuários.
  75. 75. Sistemas Operacionais 74 [ Auto-avaliação ] 1. Relacione as funções do módulo de gerenciamento de memória. 2. Qual a diferença básica entre paginação e segmentação? 3. Suponha que um computador possui uma área de memória de usuário de 500K bytes. Suponha também que há duas opções de gerência de memória: a primeira usa páginas (regiões) de tamanho fixo de 50 K bytes e a segunda usa segmentos (região) de 4 K bytes. Considerando que 95% dos programas possuem em média menos que 30 K bytes, a técnica de gerência de memória que permite a menor fragmentação interna (memória interna a uma região, mas não usada) da memória principal é: (A) segmentação; (B) paginação; (C) memória com intercalação ("interleaved"); (D) memória organizada em bancos; (E) memória "Cache". 4) Quando ocorre a fragmentação interna em um sistema que utiliza a técnica de paginação? 5) Suponha que o esquema adotado para gerenciamento de memória de um determinado computador seja baseado na estratégia de working sets - W(t,∆), com política de re-alocação de página do tipo LRU – Least Recently Used e ∆ = 3. Nessas condições, se um determinado processo apresentar a seguinte seqüência de referências a páginas virtuais: 24, 15, 18, 23, 24, 18, 17, 18, 24, 17, 17, 15 o número de ocorrências de page faults será de: (A) 11 (B) 9 (C) 5 (D) 13 (E) 7 6) A Memória Virtual por Paginação é uma 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. Pode-se dizer dessa técnica que: I - todo o mapeamento de endereço virtual em real é realizado através de tabelas de páginas; II - um programa é dividido logicamente em sub-rotinas e estruturas de dados, que são alocadas em páginas na memória principal;
  76. 76. Sistemas Operacionais 75 III - 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 sim quais liberar. Est(ão) correta(s) a(s) afirmativa(s): (A) I, apenas. (B) I e II, apenas. (C) I e III, apenas. (D) II e III, apenas. (E) I, II e III. 7) Explique a técnica de paginação por demanda 8) O que é Trashing? [ Referência Bibliográfica ] MACHADO, Francis Berenger ; MAIA, Luiz Paulo. “Arquitetura de Sistemas Operacionais”, 4ª Edição, Ed. LCT, 2007. SILBERSCHATZ, Abraham; GALVIN, Peter Baer. "Sistemas Operacionais: Conceitos", quinta edição. Pearson Brasil, 2000. TANENBAUM, Andrew S., WOODHULL, Albert S.. "Sistemas Operacionais - Projeto e Implementação", segunda edição. Prentice-Hall, 2000.
  77. 77. Sistemas Operacionais 76 Unidade V – Sistemas de Arquivos Sistemas de arquivos Estrutura dos arquivos Diferentes sistemas de arquivos Coordenação do espaço disponível para os arquivos Organização de uma partição [Objetivos Específicos da Unidade V] Propomos, nesta UNIDADE, levar você a: • Compreender como ocorre a implementação de sistema de arquivo. • Comparar os tipos de sistema de arquivos disponível no mercado.
  78. 78. Sistemas Operacionais 77 Sistema de Arquivos Esta unidade irá apresentar o módulo sistema de arquivos. Esse módulo é a parte mais visível do sistema operacional. Quando utilizamos um computador, basicamente utilizamos o sistema operacional para realizar várias operações com os arquivos: criar; copiar, renomear, proteger, esconder, entre outras. Todas essas ações explícitas a nós usuários e outras implícitas ao nosso manuseio, fazem parte do módulo sistema de arquivos. Os tópicos serão apresentados de forma que você compreenda de maneira lógica como cada uma dessas operações são implementadas e as técnicas utilizadas nessa implementação. E, para facilitar a sua compreensão, será necessário que você tenha pleno domínio das unidades anteriores. Objetivamos que você adquira um conhecimento que lhe permita entender a implementação e o funcionamento de um sistema de arquivo. Para que isso ocorra, é fundamental que você seja capaz de entender lógica de programação, bem como as várias técnicas para implementação de um sistema operacional. Portanto, sugerimos questões ao longo do texto para apreensão de determinados conceitos e, ao final da unidade, você está convidado a verificar seus conhecimentos por meio da auto-avaliação, que deverá ser enviada ao seu tutor. Então, mãos à obra! Você consegue relacionar algumas funções para o sistema de arquivo? • Fornecer mecanismos para os usuários manipular arquivos e diretórios • Garantir a validade e coerência dos dados • Otimizar o acesso • Fornecer suporte a outros sistemas de arquivos • Gerenciar o suporte a vários usuários através do uso compartilhado de arquivo. Vocês notaram que dentre as funções do sistema de arquivos uma palavra apareceu com muita freqüência ? É isso ai: Bom... Espero que sim, pois constantemente utilizamos essas funções. Um arquivo é um conjunto de registros definidos pelo sistema de arquivos, tornando seu conceito abstrato e generalista Um arquivo é constituído por informações logicamente relacionadas, podendo representar instruções ou dados. Arquivos são gerenciados pelo sistema operacional de maneira a facilitar o acesso dos usuários ao seu conteúdo.
  79. 79. Sistemas Operacionais 78 Os arquivos Possuem: Nome; Atributos; Estrutura interna; Tipo; Método de acesso operações. A atribuição de nomes a arquivos é feita no momento de sua criação. As regras a serem adotadas para a confecção do nome de um arquivo variam de acordo com o SO. O servidor de arquivos deve implementar a abstração de arquivo para o restante do sistema. Para tanto, ele deve determinar como o arquivo será estruturado internamente. As estruturas de arquivos mais comuns são: • sequência de bytes • sequência de registros • árvore de registros Estruturação como sequência de bytes: Neste caso, não há estrutura. O arquivo é simplesmente enxergado como uma sequência de bytes. O SO não tem conhecimento do significado e da estruturação dos campos que compõem um arquivo. Estruturação como sequência de registros: Neste caso, o arquivo é estruturado pelo SO como uma sequência de registros de tamanho fixo. As operações de leitura e escrita retornam um registro.
  80. 80. Sistemas Operacionais 79 Estruturação como árvore de registros: Neste caso, o arquivo é uma árvore de registros de tamanho variável. Cada registro é composto por um campo chave, contido em uma posição fixa. A árvore é ordenada pelo campo chave. – Esta estruturação visa otimizar o acesso randômico a registros. Método de Acesso Os métodos de acesso determinam como os dados contidos no arquivo serão recuperados pelo usuário.
  81. 81. Sistemas Operacionais 80 Acesso seqüencial: Este método de acesso utiliza basicamente as operações de leitura e escrita. a) Operação de leitura (read next): lê a próxima posição do arquivo e avança o ponteiro; b) Operação de escrita (write next): coloca odado no final do arquivo e avança o end-offile (EOF). Acesso direto (ou aleatório): Este método de acesso utiliza basicamente as operações de leitura e escrita: a) Operação de leitura (read n): lê a posição do arquivo apontada por n. Geralmente, n é o número do bloco. b) Operação de escrita (write n): coloca o dado no bloco n. Os sistemas de arquivos podem oferecer simultaneamente os dois métodos de acesso e o usuário determina o método a ser utilizado na criação do arquivo. A maioria dos SO modernos oferece somente o método de acesso direto Operações sobre o arquivo As operações sobre arquivos geralmente levam em consideração um conjunto de entidades de um sistema de arquivos. • tabela de arquivos: possui uma entrada para cada arquivo. Contem as informações referentes aos arquivos. • diretório: caminho que leva ao arquivo. Ao ser criado, o arquivo é posicionado em um diretório e a tabela de arquivos deste diretório deve conter uma entrada para o novo arquivo. • posição corrente do arquivo: ponteiro que diz qual a posição do arquivo será acessada na próxima vez. As operações de leitura e escrita incrementam o valor da posição corrente do arquivo do número de bytes lidos/escritos. As operações feitas sobre um arquivo vão depender do sistema de arquivos de cada SO. Existe, no entanto, um conjunto de operações que constam na maioria dos sistemas de arquivos: 1) CREATE: cria um arquivo. Deve-se criar uma entrada para o novo arquivo no diretório especificado. Além disso, deve-se criar uma entrada na tabela de arquivos com o nome do criador, data de criação e permissões de acesso. O arquivo recem-criado não possui dado nenhum. 2) DELETE: Libera o espaço ocupado pelo arquivo, deleta a entrada do diretório que aponta para o arquivo e deleta a entrada na tabela de arquivos. 3) OPEN: Antes de ser utilizado, o arquivo precisa ser aberto. Essa chamada traz a entrada da tabela de arquivos referente ao arquivo a ser aberto para a tabela de

×