Sistemas Operacionais

Definindo os sistemas operacionais
Vemos um sistema operacional como os programas, implementados como software ou
firmware, que tornam o hardware utilizavel. O hardware oferece capacidade computacional bruta.
Os sistemas operacionais disponibilizam convenientemente tais capacidades aos usuários,
gerenciando cuidadosamente o hardware para que se obtenha uma performance adequada. [DEI92,
p. 3]
O sistema operacional deve se encarregar de controlar os recursos do computador,
garantindo seu uso adequado, buscando também otimizar tal uso objetivando um melhor eficiência
do sistema, assim sendo, o sistema operacional se comporta como gerente dos recursos do
computador.
Recursos e ambiente operacional
Todos os elementos funcionais do computador são considerados recursos do sistema
computacional e são, geralmente, representados pelos dispositivos que o compõe e que podem ser
utilizados pelos usuários, ou seja: monitores de vídeo, teclado, mouse, entre outros. Já o conjunto
de hardware e sistema operacional, usualmente chamado de plataforma ou ambiente
operacional, é aparentemente capaz de realizar tarefas de um modo específico ditado pela própria
interface.
Processos
Um processo computacional ou simplesmente processo pode ser entendido como uma atividade que
ocorre em meio computacional, usualmente possuindo um objetivo definido, tendo duração finita e
utilizando uma quantidade limitada de recursos computacionais. Resumidamente, pode-se afirmar
que um processo é um programa em execução.
O chamado paralelismo virtual ou pseudoparalelismo é a capacidade do processador de
executar um programa em um pequeno espaço de tempo dando a ideia de paralelismo. Em
computadores com dois ou mais processadores é possível a existência de paralelismo verdadeiro
pois cada processador pode
executar um processo independentemente.
Um processo pode ser dividido em processos menores, também chamados de sub-processos.
Outra caracteristica de um processo é que ele pode criar um novo processo ( processo filho / Child
Process ), que por sua vez pode criar outros processos, criando assim uma arvore de processos.
Um critério muito importante de análise dos processos computacionais é aquele que
considera os processos segundo sua ocorrência, isto é, a observação de seu comportamento
considerando o tempo. Neste caso teríamos os seguintes tipos de processos:
Sequenciais: São aqueles que ocorrem um de cada vez, um a um no tempo, serialmente,
como que de forma exclusiva. Neste tipo de processo, os recursos são disponibilizados todos para o
processo. Como o processo não ocupada todo o recurso, logo, temos a ociosidade de recursos.
Paralelos: aqueles que, durante um certo intervalo de tempo, ocorrem simultaneamente, ou
seja, aqueles que no todo ou em parte ocorrem ao mesmo tempo. Este tipo de processo pode ser
classificado em 3 formas:

Independentes: Quando utilizam recursos completamente distintos, não se envolvendo em

o sistema operacional efetivamente os colocará em execução. Execução (Running): Quando o processo está utilizando um processador para seu processamento. ele automaticamente ira para o estado de Blocked (bloqueado). a coordenação do tempo de processador e feita pelo escalonador (scheduler) o qual utiliza de um temporizador para medir o tempo de utilização do processador. Como o processo dever aguardar o resultado da operação de entrada ou saída. No momento em que é esgotado o Quantum de cada processo. enquanto o estado Block e considerado um estado inativo. seu processamento fica suspenso até que tal operação seja concluída. Caso o processo necessite efeturar uma operação do I/O (input / output). Estados do processo Podemos identificar três passos básicos de um processo: Pronto (Ready): Situação em que o processo está apto a utilizar o processador quando este estiver disponível. dependendo de uma ação do sistema operacional para definir a ordem na qual os processos usarão o recurso. Bloqueado (Blocked): Quando o processo está esperando ou utilizando um recurso qualquer de E/S (entrada e saída). Quando é solicitada a execução de um programa o sistema cria ( Create) um processo atribuindo a ele um PID ( Process identifier ) e também recebe o Quantum ( Fração de tempo para utilizar o processador ). E os estados Ready e Running são considerados estados ativos. o processo volta para a fila de Ready (pronto) por meio da rotina Awake ( Reativação). Outros detalhes importantes são que. Neste estado o processo tem suas instruções efetivamente executadas pelo processador. Em um sistema de tempo rapartido. Neste transição de Ready para Running a rotina de mudanças recebe o nome de Dispatch ( despachado ). . Após a utilização do recurso. Quando todos os processos estiverem usados seu Quantum. a única transição que o processo age de forma autonoma e a passagem do de Running para Block. Cooperantes: Quando dois ou mais processos utilizam em conjunto um mesmo recurso para completarem uma dada tarefa. o qual tira o processo do processador e o recola na fila de Ready (pronto). Concorrentes: Quando pretendem utilizar um mesmo recurso. Isto significa que o processo pode ser executado quando o processador estiver disponível. Todos os processos em seu estágio inicial recebem o estado de Pronto ( Ready ) e são colocados no final da fila de processos Prontos. o sistema operacional assume novamente e aciona uma nova rotina chamda de TimeRunOut.• • disputas com outros processos.

Para que isso não acontece. um ponteir para o processo pai. um PCB contém: PID. Obviamente.Praticamento quase todas as funções do sistema operacional são acionadas por chamadas implicitas ou explicitas (system calls). o estado atual do processo. Quando um processo faz um acesso simultâneo em uma região crítica no mesmo que a ela esta sendo utilizada. sincronização dos processos. Código reentrante . estátistica de utilização. Neste sentido. Essa parte do sistema operacional é a mais utilizada. Regiões críticas Quando um dado recurso do sistema somente pode ser usado por um único processo de cada vez. este recurso determina uma região crítica. De uma forma simplificada. Uma das mais importantes funções do kernel e a gerenciamento de interrupções. Essa exigência pelo uso individual ou compartilhado de um recurso caracteriza duas situações importantes: código reentrante e as regiões críticas. lista dos ponteiros para os processos filhos. interrompida e retomada conforme determinação do sistema operacional. sem prejuízo para o processo. as prioridades do processo. gerando uma competição pelo recurso. gerencia de dispositivos E/S Competição de recursos Quando afirmamos que dois ou mais processos ocorrem em paralelo. isso pode gerar perda de dados. PCB e tabelas de processos O PCB (Process Control Block ou Process Descriptor) é uma estrutura de dados que mantêm a representação de um processo para o sistema operacional. Tempo a utilizado no processador. o acesso a esta região não é controlado pelo processo e sim pelo SO. Porém. processos que desejam utilizar a região crítica são conheciso como processos paralelos concorrentes. Nesse sentido. as quais são: • • • • • • • gerenciamento de interrupções. outras funções também são desempenhadas pelo Kernal. um recurso somente pode ser disponibilizado para um processo de cada vez. Esse controle de acesso é chamado de protocolo de acesso. Funções do núcleo do sistema Todas as funções que envolver um processo são controladas por uma parte do sistema operacional denominada núcleo (core ou kernel). por esse motivo. troca dos estados dos processos e sua intercomunicação. nanipulação dos PCBs. esta sempre está alocada na memória primária do sistema. as interrupções são mecanismo importantes para que o sistema possa utilizar grande parte do seu tempo ocioso. gerencia de memória. isso quer dizer que em um determinado momento alguns deles irão solicitar o mesmo recurso simultaneamente. nanipulação de processos. Uma região crítica é uma forma administrativa de conceder e devolver um recurso que pode ser utilizado por vários processos. O PCB contêm todas as informações necessárias para a execução do mesmo possa ser iniciada.

Todas estas situações também são inaceitáveis. ou ainda de adiamento infinito. permitindo a quebra do caminho fechado. sem precisar de sua cooperação. onde um mesmo recuso é utilizado por diversos processos aumentando a eficiencia do processo como um todo. um código reentrate é quando uma certa rotina de software pode ser usado por diversos processos. Neste caso se torna uma situação benéfica. Condição de ausência de preemptividade 1: recursos não podem ser retirados dos processos enquanto esse processo não é finalizado. quando dois ou mais processos solicitam o acesso a região crítica simultaneamente. Existem também as situações de bloqueio simultâneo. . pois alguns podem prejudicar o processo. onde um processo é sistemática e indefinidamente bloqueado de utilizar orecurso. Contudo. recursos ficam alocados reduzindo o numero de recuros para outros processos. processo bom baixa prioridade podem não fazer o acesso ao recurso se haver um fila de processos com prioridade maior. pois. quando este processo fica a espera de um evento particular que jamais acontecerá. Uma tentativa para corrigir este problemas foram as soluções com instruções TST ou TSL ( Test and set or Test and Set Lock). bloqueio perpétuo ou Impasse. nem todo processo pode ser removido. Dizemos que existe uma situação de corrida.J á. neste caso. ao contrário da região crítica. preemptividade (algumas vezes preempção) é o ato de interromper temporariamente uma tarefa sendo resolvida por um sistema computacional. 1 Em computação. Protocolo de acesso Não se pode definir o acesso a região crítica mediante a prioridades fixas. a situação de corrida ainda era um problema. Conteudo. Segundo Tanembaum existe quatro alternativas básicas para tratar esse tipo de erro: Ignorar o problema (algoritmo da avestruz) Detecção e recuperação dos deadlocks Prevenção dinâmica Prevenção estrutural Recuperação de deadlock Existe algumas técnicas que podem ser usadas para resolver-lo: Recuperação por meio da preempção: essa técnica tem como princípio retirar albuns recursos envolvidos no bloqueio. configurando neste caso um problema de prioridade estática. é necessário um protocolo de acesso eficiente para evitar o acesso simultâneo ou o bloqueio mutuo. Neste caso. onde os vários processos que estão em disputa pelo uso recurso são bloqueados de modo tal que o recurso continue sem uso. Tal mudança é conhecida como uma troca de contexto. e com a intenção de retomar a tarefa depois. de forma circular. Neste caso. Condição de espera circular: Cada processo solicita o recurso alocado pelo próximo processo. DeadLock Dizemos que um processo esta em Deadlock. Um Deadlock pode ocorrer em quatro condições: Condição de exclusão múltua: o processo exige uso exclusivo do recurso. Condição de espera por recurso: recursos ficam alocados a espera de outros recursos.

Para isso. se o processo for considerado inseguro. de forma exclusiva. Esta sistuação existe 2 problemas: 1 – O consumidor tenta consumir um buffer vazio. o sistema operacional disponibiliza alguns mecanismo para esse tipo de comunicação. ou seja. porém. os quais são: Buffer: Dois processos distintos podem compartilhar um buffer entre si.Recuperação por meio do Rollback: este principio afirma que pode-se retorna ao um checkpoint quando o problema de deadlock ocorre. A IPC (Inter process comunication) é uma situação comum em sistemas operacionais. 2 – O produtor não consegue produzir pois o buffer esta cheio. Memória compartilhada O compartilhamento de memória é um mecanismo utilizado para comunicação entre processos diferentes. um espaço de memória é reservado para uso comum entre os processos. Para isso. . Recuperação por meio da eliminação do processo: Processos são eliminados até o deadlock se resolvido. Essa é uma maneira simples de fazer o compartilhamento quando os processos são sequenciais. foram criados os semáforos. Para a comunicação de processos. Contudo. somente o empilhamento. Já um estado não seguro é aquele que não garante que o processo devolverá o recurso já alocado. cada processo somente podera executar a leitura e escrita um de cada vez. o uso de semáforos garante que um dado recurso seja utilizado de forma sequencial. Mediante a isso foi desenvolvido o algoritmo do banqueiro. O processo produtor adicionar informações no buffer enquanto o processo consumir os retira. Os semáforos também tem o objetivo de sincronização de processos garantindo a concorrência. buffer não permite nem a escrita e nem a leitura. Esse algoritmo verifica se o pedido de recurso e seguro ou não. ele pode ser adiado. os quais podem escrever e ler. Ponto ruins é a dificil implementação. E semelhante ao buffer. Embora seja compartilhada. Comunicação entre processos.A utilização de semãforos permite a sincronização de vãrios processos. as quais são variáveis inteiras para controlar o numero de sinais Wakeup. num ambiente onde existem diversos processos paralelos competindo por recursos. liberando o recurso ou não para o processo. Prevenção de deadlock A maioria dos algoritmos para a prevenção do deadlock são baseados no conceito de estado seguro. podendo assim gerar um deadlock. Contudo outros problemas ocorrerão ( mas eu nao vou falar sobre eles :) ) Semáforos Para solucionar este problema do produtor e consumidor. Estado seguro é aquele que garante que todos os processos podem ser finalizados considerando suas necessidades em termos de recursos e os recursos efetivamente disponíveis no sistema. Contudo. com são paralelos passa a existir uma situação de concorrencia. Uma solução para este problema é o Sleep eo Wakeup colocando os produtos e consumidores em estado de dormencia. ou seja. quando um ou mais processos precisam se comunicar. os processos devem especificar inicialmente a quantidade de recursos que pode utilizar. Para isso são utilizados semáforos para tratar a concorrência. Neste caso. deve ser implementado um mecanismo de armazenamento de estados o qual possibilita o rollback.

Escolanemento de baixo nível: determina quais processos. Já uma Thread permitem a combinação do paralelismo com a execução sequencial. sendo colocados a frente os processos de maior prioridade. Quando mais de um processo é executável. Neste sentido. Algoritmos de escalonamento Existem vários algoritmos que são utilizados para a realização do escalonamento de baixo nével ou de curto prazo. ou seja. ele recebe a atenção do processador de forma individual. existe apenas uma estrutura de controle para o processo. O primeiro processo pronto. a tarefa que for admitida se tornará um processo. e servido pelo processaor e executado até o final. Este tem o objetivo de decidir quais tarefa passarão a competir pelo recurso. Neste sentido. Logo. Escalonamento preemptivo e não preemptivo Um algoritmo de escalonamento é dito não preemptivo quando temos que o processador designado para um certo processo não pode ser retirado deste até que o processo seja finalizado (completion). Neste sentido. Após a execução do processo ele não é interropido. um escalonamento não preemptivo. . onde os processos não são interrompidos. existe uma solução. otimizando um ou mais aspectos do comportamento geral do sistema. em um ordem.Threads Um processo possui um fluxo único de execução. este e um algoritmo não preemptivo. Analogamente. um algoritmo de escalonamento é considerado preemptivo quando o processador designado para um processo pode ser retirado deste em favor de um outro processo. A parte do sistema operacional dedicada a esta decisão é chamada escalonador (scheduler) e o algoritmo utilizado é chamado algoritmo de escalonamento (scheduling algorithm). Em todos eles. Escalonamento FIFO (First In First Out) Primeiro a entrar será o primeiro a ser servidor. fara uso do processador. uma Thread é um fluxo independente de execução pertecente a um processo. o sistema operacional deve decidir qual será executado primeiro. Escalonamento de alto nível: também conhecida como escalonamento de tarefas. Escalonamento HPF (Highest Priority First) O escalonamento HPF (Highest Priority First) ou escalonamento por prioridades é uma variante do escalonamento FIFO onde os processos em espera pelo processador são organizados numa fila segundo sua prioridade. Cada Thread recebe a atenção do processador como um processo comum. Escalonamento de nível médio: determina quais processos existentes competirão pelo processador. Níveis de escalonamento Existem três tipos distintos de escalonamento em um sistema computacional quando se considera a frequência e complexidade das operações envolvidas. Existem também algoritmos de escalonamento cooperativo. e o espaço de memória é mesmo. No caso do HPF. a ordem de chegada é a que é leva em consideração para a utilização do processador. o principal objetivo é designar o processador para um certo processo dentre vários processos existentes. Contudo. Neste algoritmo. é como os processos são distribuídos para execução nos processadores. propiciando a troca de recursos facilmente. mas a preempção ocorre em duas situações bem definidas: quando o processo efetua uma operação de I/O e quando o processo é finalizado. Escalonamento de processos O escalonamento de processadores é a forma com os processadores existentes num sistema computacional são utilizados para efetuar o processamento. isto é.

ele pode ser finalizado. também é conhecido como SPF (Shortest Process First) ou menor processo primeiro. os processos em espera pelo processador são organizados numa fila segundo seu tempo de execução. de seu quantum. pode-se empregar o escalonamento de multiplas filas. de forma semelhante ao SJF. ocorre a preempção do processador. levando em consideração seu tipo. Este propôs um balanceamento entre a duração do job e seu tempo de espera. o algoritmo de escalonamento avalia seu tempo de execução incluindo o job em execução. Tal solução consistem em progressivamente aumentar a prioridade dos processos que aguardam na fila a medida que o tempo passa. Escalonamento SRT ( Shortest Remaining Time ) Este algoritmo é a variante preemptiva do SJF. Uma solução para o problema de estagnação de processos seria impor um tempo máximo de espera fixo ou proporcional ao tempo de serviço. ou seja. onde o tempo de serviço é tomado como prioridade. Neste caso as filhas podem ser preemptivas ou não preemptivas. Escalonamento MFQ ( Multilevel Feedback queues ) Neste escalonamento existe dois tipos de fila classificadas pelo seu nível. o processador é designado para outro processo. sendo o processo em execução interrompido e novamente colocado na fila de processos prontos. de forma a compensar a espera excessiva de tarefas de maior duração. Escalonamento HRN (Highest Response-Ratio Next) Este algoritmo de escalonamento tem como base o SJF. mas sim circular ( Round robin) Gerencia de memória A gerencia de memória e justificada devido a memória primária ser um dos elementos básicos da arquitetura . Na de nivel 1 o algoritimo utilziado é o FIFO. prioridade e consumo de recursos. isto é. mas em seu fim. Escalonamento MQ ( Multilevel Queues ) Quando se pode dividir o processo em diferentes categorias. ou seja. como forma de compensar a espera e evitar a estagnação. Porém. vontando a fila quando seu tempo esgote. ele fica aguando o uso de um dispositivo de entrada E/S. Caso o processo não seja finalizado neste intervalo de tempo. para evitar a estagnaçao. ocorre sua substituição pelo próximo processo na fila de processos ativos. Escalonamento Roud Robin ( intervalo de tempo ) No escalonamento RR (Round Robin) ou circular os processos também são organizados numa fila segundo sua ordem de chegada. Escalonamento SJF (Shortest Job First) Este algoritmo de escalonamento tem como caracteristica a organização dos processos pelo menor job primeiro. ocorre a preempção do processo em execução. ou seja. Ao utilizar o processador o processo pode seguir 3 tipos de alternativas. É um caso especial do HPF. ele também é um algoritmo não preemptivo. ocorre a substituição do processo em execução pelo recém chegado. a partir do qual tais processos seriam executados. busca resolver alguns problemas impostos pelo algoritmo. caso a estimativa de seu tempo de execução seja menor que o do processo correntemente em execução. a cada processo é concedido apenas um pequeno intervalo de tempo (time slice ou quantum). para a solução do problema da estagnação denominada aging (envelhecimento). sendo então despachados para execução. sendo processados primeiro os menores jobs. Isto significa que ao final de seu intervalo de tempo. segunda. de duração mais curta. Primeira. Na entrada de um novo processo. e terceiro. ou seja. sendo colocados a frente os menores processos jobs. A fila de processos a serem executados pelo SRT é organizada conforme o tempo estimado de execução. Neste fila o algoritmo já não é o FIFO.relativamente simples. caso seu quantum se esgote ele é colocado em uma fila de nivel 2. Prioridade = t serviço + t espera / t serviço Como o algoritmo STF. ao invés de serem executados até o fim (completion). No entanto. Cada fila pode ser tratatada por diferentes algoritmos. ou seja.

estamos gerenciado processos. Neste modelo. o armazenamento de dados assumiu historicamente a seguinte organização: Armazenamento interno: Interno ao processador. Best fit: O processo é alocado para a menor partição que o comporte. Em virtude das dificuldades tecnológicas associadas a construção de dispositivos eficientes de memria e seu custo. eles podem ser limpos da memória que fica livro para receber novos processos. Paginação A medida que os programas vão sendo executados. Neste modelo. E em segundo. Como todos os processos utilizam a memória primária. o gerenciamento de memória é divido em duas partições distintias. Armazenamento primário: são as posições de memória externa. PRON. sem se preocupar com o posicionamento contíguo de partes de um mesmo programa. o sistema operacional vai relacionando quais páginas virtuais estão sendo alocadas para cada um destes programas. A necessidade de manter multíplos programas na memória impõe a necessidade de controlar como esta memória é utilizada. Armazenamento secundário: Normalmente área de memória que não podem ser acessadas diretamente pelo processodor. Neste sentido. uma para o sistema operacional e outra para os processos do usuário. Tipicamente são circuitos intergrados como RAM. para esta tarefa pode-se utilizar um dos seguinte processos: First fit: Aloca-se o primeiro processo para a primeira partição que o comporte. Particionamento variável. No instante efetivo da execução a MMU (memory management unit) converte os endereços virtuais em endereços físicos utilizando as tabelas de páginas. a memória e dividia em grandes blocos denominados partições.computacional atual. e RON. Logo. diretamente acessadas pelo processador. a gerencia de memória leva com consideração como a memória principal é vista e como pode ser usada pelos processos. EEPRON. PC-DOS. EPRON. Ex: MS-DOS. O SO faz o mapeamento para verificar quais estão alocadas na memória. exceto pelo fato de que agora é o sistema operacional efetua o particionamento da meméria. A medida em que processos são finalizados. Logo. eles são dividos em vários blocos . como os processos são tratados pelo SO segundo sua necessidade de memória. O particionamento variável é bastante semelhante à organização de memória em partiçoes fixas. Memória Virtual Segundo Deitel. serem linearea. memória virtual é a capacidade de um sistema operacional de utilizar mais memória do que o disponível. Segmentação: técnica em que o espaço de endereçamento virtual e dividio em blocos de tamanho fixo ou viariável e identificados univocamente. mesmo aparentemente os processos. gerenciamando a memória. Particionamento Fixa. ao chegar na memória. Ex: disco rigido. com tamanho e posição fixo. Modelos de gerenciamento de memória Existem vários modelo para organização e gerenciamento de memória: Monoprogramado com armazenamento real Neste modelo. Fica claro portanto que a determinação de partições para um determinado processo influencia no desempenho do sistema. mas devem ser carregadas para a meméria primário para serem utilizados. Ele é contituido do registradores e seu cache interno. Esse tipo de particionamento de memória também é conhecida como particionamento pode demanda. Worst fit: O processo é alocado para a maior partição que o comporte. A memória virtual pode ser implementada basicamente através de mecanismos de: Paginação: é a técnica mais utilizada para criação de memoria virutal em que o espaço de enderecamento virtual e dividio em blocos denominados unidade de alocação. há a preparação para que seja executado um programa de cada vez. indiretamente.

O número da página virtual é usado como índice numa tabela de páginas. A idéia básica é que o endereço virtual é composto de duas partes. isto é. deve haver um modulo adicional chamdo de controlador de DMA . Estas tabelas. Segmentação ( Mesmo coisa de cima ) Enquanto que a organização da memória através da paginaçãoo é um modelopuramente unidimensional. O processador envia um comando para o módulo e volta a executar outras tarefas sem a necessidade de um monitoramento constante no modulo. juntamente com os mecanismos de conversão de endereços. Os modulos de I/O podem ser operados de 3 maneiras básicas: I/O Programador: os dados são trocados diretamente entre o processador e o módulo. mantido num registrador qualquer do processador. a segmentação propõe um modelo bidimensional. obtendo-se uma referência para uma entrada da tabela que contêm o endereço real da moldura de página desejada. Este dispositivos são conectados por meio de modulos. suportadas diretamente pelo hardware do sistema e mantidas pelo sistema operacional são. para que seja controlado o endereço do periférico que esta sendo utilizado. logo. pode se utilizar o mecanismo de interrupção. Não havendo o envolvimento do processador. é somado ao endereço de base da tabela de páginas. são implementadas tabelas para realizar a conversão de endereços virtuais em endereços físicos. Está técnica propoe uma única interrupção para efetuar a transferência de um bloco de dados diretamente entre os periféricos e a memória primária. Quando a atividade for concluida o modulo envia um sinal de interrupção para o processador. Para tanto. também chamado de módulo de I/O que por sua vez são ligados aos barramentos do sistema. I/O com interrupção: para superar o problema de espera do processador. Como o modulo pode controlar vários periféricos. o ponto central destes esquemas de organização de memória. um número da página virtual e um deslocamento dentro da página. o modulo utiliza duas formas possíveis: mapeada de memória e mapeada de I/O. tanto a organização de memõria através de paginação como de segmentação e os sistemas híbridos que utilizam a paginação combinada com segmentação. Logo. Neste caso é responsabilidade do processador verificar o estado do módulo. ele não pode executar outra tarefa enquanto aguarda. O processador por sua vez executa a troca de dados liberando o modulo e voltando a executar o processamento anteriror. o espaço de endereçamento virtual oferecido a cada um dos diversos processos é único e linear. o mapeamento é feito pela MMU utilizando a tabela de paginação. Um único módulos de I/O permite a comunicação com vários periféricos. I/O com acesso direto a memória: também conhecida como DMA (direct memory access). Somandose o deslocamento contido no endereço virtual ao endereço da moldura de página obtido da tabela de páginas obtêm-se o endereço real completo. ou seja.alocados em meio a outros processos. opticos ou eletronicos que são integrados a um sistema computacional com o propósito de realizar a comunicação do processoador e memória com o meio externo. Tabelas de paginação Como visto. Gerencia de I/O (input e output) I/O ou E/S representa todos os dispositivos de eletromagnéticos. onde cada processo pode utilizar-se de diversos espaços de endereçamento virtuais independentes.

arquivos são um profunda abstração que possibilita a realização de operações de leitura e escrita sem conhecer os detalhes de funcionamento com que estas operações são realizadas. gerenciamento de arquivos. e mecanismo de integridade. Como tudo em um sistema operacional. Estes contém: métodos de acesso. Direto: Quando os registro ou bytes são diretamente acessados no meio em que são armazenados. o SO também controla as operações sobre os arquivos. Alocação contigua Alocação não contigua . sendo familiar com sua organização. que funciona como seu índice. o arquivo particionado possui um diretório.Sistema de arquivos Um arquivos é um conjunto de informações relacionadas entre sí e residentes no sistema de armazenamento secundário. São utilizados para armazenar bibliotecas ou bancos de dados. Do ponto de vista armazenamento e acesso. Particionado: Quando o arquivo é composto de subarquivos denominados membros. Logo. A aplicação deve conhecer a localização dos dados no dispositivo. Para acessar seus membros (members). organizando seu armazenamento no que chamamos sistemas de arquivos. usualmente um DASD. os arquivos podem ser organizados das seguintes maneiras: Sequencial: quando os arquivos ou bytes são posicionados em sua ordem física. Sequencial Indexado: os registros bytes são organizados numa sequência logica conforme uma chave e o sistema mantêm um índice para acelerar.

Sign up to vote on this title
UsefulNot useful