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

Isto significa que o processo pode ser executado quando o processador estiver disponível. seu processamento fica suspenso até que tal operação seja concluída. Neste transição de Ready para Running a rotina de mudanças recebe o nome de Dispatch ( despachado ). Quando todos os processos estiverem usados seu Quantum.• • disputas com outros processos. Como o processo dever aguardar o resultado da operação de entrada ou saída. E os estados Ready e Running são considerados estados ativos. Em um sistema de tempo rapartido. Bloqueado (Blocked): Quando o processo está esperando ou utilizando um recurso qualquer de E/S (entrada e saída). Execução (Running): Quando o processo está utilizando um processador para seu processamento. Após a utilização do recurso. a única transição que o processo age de forma autonoma e a passagem do de Running para Block. Outros detalhes importantes são que. No momento em que é esgotado o Quantum de cada processo. 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. enquanto o estado Block e considerado um estado inativo. o qual tira o processo do processador e o recola na fila de Ready (pronto). 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. Neste estado o processo tem suas instruções efetivamente executadas pelo processador. Cooperantes: Quando dois ou mais processos utilizam em conjunto um mesmo recurso para completarem uma dada tarefa. 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 ). Caso o processo necessite efeturar uma operação do I/O (input / output). o processo volta para a fila de Ready (pronto) por meio da rotina Awake ( Reativação). ele automaticamente ira para o estado de Blocked (bloqueado). 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. . dependendo de uma ação do sistema operacional para definir a ordem na qual os processos usarão o recurso. o sistema operacional efetivamente os colocará em execução. Concorrentes: Quando pretendem utilizar um mesmo recurso.

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

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

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

Já uma Thread permitem a combinação do paralelismo com a execução sequencial. Neste sentido. Neste sentido. A parte do sistema operacional dedicada a esta decisão é chamada escalonador (scheduler) e o algoritmo utilizado é chamado algoritmo de escalonamento (scheduling algorithm). 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. Escolanemento de baixo nível: determina quais processos. existe apenas uma estrutura de controle para o processo. existe uma solução. é como os processos são distribuídos para execução nos processadores. ele recebe a atenção do processador de forma individual. otimizando um ou mais aspectos do comportamento geral do sistema. 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). Este tem o objetivo de decidir quais tarefa passarão a competir pelo recurso. a tarefa que for admitida se tornará um processo. uma Thread é um fluxo independente de execução pertecente a um processo. propiciando a troca de recursos facilmente. Logo. 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. Neste algoritmo. este e um algoritmo não preemptivo. . 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. a ordem de chegada é a que é leva em consideração para a utilização do processador. isto é. onde os processos não são interrompidos. Escalonamento de processos O escalonamento de processadores é a forma com os processadores existentes num sistema computacional são utilizados para efetuar o processamento. ou seja. Quando mais de um processo é executável. em um ordem. O primeiro processo pronto. e o espaço de memória é mesmo. um escalonamento não preemptivo. 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. Após a execução do processo ele não é interropido.Threads Um processo possui um fluxo único de execução. e servido pelo processaor e executado até o final. Escalonamento de alto nível: também conhecida como escalonamento de tarefas. Contudo. o principal objetivo é designar o processador para um certo processo dentre vários processos existentes. Existem também algoritmos de escalonamento cooperativo. No caso do HPF. Analogamente. um algoritmo de escalonamento é considerado preemptivo quando o processador designado para um processo pode ser retirado deste em favor de um outro processo. fara uso do processador. Neste sentido. sendo colocados a frente os processos de maior prioridade. Escalonamento FIFO (First In First Out) Primeiro a entrar será o primeiro a ser servidor. Cada Thread recebe a atenção do processador como um processo comum. o sistema operacional deve decidir qual será executado primeiro. Em todos eles. Escalonamento de nível médio: determina quais processos existentes competirão pelo processador.

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

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

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. 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. o mapeamento é feito pela MMU utilizando a tabela de paginação. Neste caso é responsabilidade do processador verificar o estado do módulo. um número da página virtual e um deslocamento dentro da página. Um único módulos de I/O permite a comunicação com vários periféricos. Logo. Este dispositivos são conectados por meio de modulos. deve haver um modulo adicional chamdo de controlador de DMA . 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. a segmentação propõe um modelo bidimensional. ou seja. 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. juntamente com os mecanismos de conversão de endereços. Segmentação ( Mesmo coisa de cima ) Enquanto que a organização da memória através da paginaçãoo é um modelopuramente unidimensional. O processador por sua vez executa a troca de dados liberando o modulo e voltando a executar o processamento anteriror. 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. Como o modulo pode controlar vários periféricos. mantido num registrador qualquer do processador. A idéia básica é que o endereço virtual é composto de duas partes. obtendo-se uma referência para uma entrada da tabela que contêm o endereço real da moldura de página desejada. Estas tabelas. Para tanto. 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. são implementadas tabelas para realizar a conversão de endereços virtuais em endereços físicos. O processador envia um comando para o módulo e volta a executar outras tarefas sem a necessidade de um monitoramento constante no modulo. I/O com acesso direto a memória: também conhecida como DMA (direct memory access). o ponto central destes esquemas de organização de memória. O número da página virtual é usado como índice numa tabela de páginas. ele não pode executar outra tarefa enquanto aguarda. I/O com interrupção: para superar o problema de espera do processador. Quando a atividade for concluida o modulo envia um sinal de interrupção para o processador. o espaço de endereçamento virtual oferecido a cada um dos diversos processos é único e linear. Gerencia de I/O (input e output) I/O ou E/S representa todos os dispositivos de eletromagnéticos. 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. isto é.alocados em meio a outros processos. o modulo utiliza duas formas possíveis: mapeada de memória e mapeada de I/O. Tabelas de paginação Como visto. também chamado de módulo de I/O que por sua vez são ligados aos barramentos do sistema. onde cada processo pode utilizar-se de diversos espaços de endereçamento virtuais independentes. logo.

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

Sign up to vote on this title
UsefulNot useful