Você está na página 1de 23

RESUMO SISTEMAS OPERACIONAIS

- TIPOS DE SISTEMAS OPERACIONAIS

Sistema Operacional um conjunto de rotinas executado pelo processador, de


forma semelhante aos programas dos usurios. Sua principal funo
controlar o funcionamento do computador, gerenciando a utilizao e o
compartilhamento de diversos recursos, como processadores, memrias e
dispositivos de E/S. Existem trs tipos de sistemas operacionais: Sistemas
monoprogramveis / monotarefa; Sistemas multiprogramveis / multitarefa;
Sistemas com mltiplos processadores.

Sistemas monoprogramveis / monotarefa:

Os primeiros sistemas operacionais, voltados para a execuo de um nico


programa. Os sistemas monopragramveis se caracterizam pelo processador,
a memria e os perifricos permaneam exclusivamente dedicados execuo
de um nico programa. Os sistemas monotarefas se caracterizam por permitir
que todos os recursos do sistema fiquem exclusivamente dedicados a uma
nica tarefa.

Sistemas multiprogramveis / multitarefa:

Os recursos computacionais so compartilhados entre diversos usurios e


aplicaes. A principal vantagem dos sistemas multiprogramveis a reduo
de custos em funo da possibilidade do compartilhamento de recursos entre
as diferentes aplicaes. Eles so mais eficientes que os monoprogramaveis,
porm so mais complexos.

A partir do nmeros de usurios que interagem com o sistema podemos


classifica-lo em monousurio ou multiusurio. Sistemas multiprogramaveis
monousurios so encontrados em computadores pessoais e estaes de
trabalho, onde h apenas um nico usurio interagindo com o sistema. H a
possibilidade de execuo de vrias tarefas ao mesmo tempo. J os Sistemas
multiprogramaveis multiusurios so ambientes interativos que possibilitam a
diversos usurios conectarem-se ao sistema simultaneamente.

Eles podem ser classificados ainda pela forma com que suas aplicaes so
gerenciadas, podendo ser divididas em sistemas de batch, de tempo
compartilhado ou de tempo real. Um SO pode suportar um ou mais tipo de
processamento, dependendo da sua implementao.

Sistemas BATCH: Primeiros tipos de sistemas multiprogramveis. Os


programas eram chamados de Jobs, eram submetidos para a execuo
atravs de cartes perfurados e armazenados em disco ou fita, onde
aguardavam para serem processados. Produziam a sada em disco ou
fita. O processamento em batch tem a caracterstica de no exigir a
interao do usurio com a aplicao.
Sistemas de tempo compartilhado: Permite que diversos programas
sejam executados a partir da diviso do tempo do processador em
pequenos intervalos, denominadas fatias de tempo (time-slice). O
sistema cria para o usurio um ambiente de trabalho prprio, dando a
impresso de que todo o sistema est dedicado exclusivamente a ele.
Esses sistemas possuem uma linguagem de controle que permite ao
usurio comunicar-se diretamente com o SO atravs de comandos.
Sistemas de tempo real: So implementados de forma semelhante aos
sistemas de tempo compartilhado. Mas nesses sistemas os tempos de
processamento devem estar dentro de limites rgidos, que devem ser
obedecidos, caso contrrio, podero ocorrer problemas irreparveis. Um
programa utiliza o processador o tempo que for necessrio ou at que
aparea um programa mais prioritrio.

Sistemas com mltiplos processadores:

Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em


conjunto. A vantagem desse sistema permitir que vrios programas sejam
executados ao mesmo tempo ou que um mesmo programa seja subdividido em
partes a serem executadas simultaneamente em mais de um processador.

Algumas vantagens desse tipo de sistema: Escalabilidade ( a capacidade de


ampliar o poder computacional apenas adicionando novos processadores);
Disponibilidade ( a capacidade de manter o sistema em operao mesmo em
caso de falha.); Balanceamento de carga ( a possibilidade de distribuir o
processamento entre os diversos processadores da configurao a partir da
carga de trabalho de cada processador, melhorando o desempenho do sistema
como todo).

Esses sistemas, em funo da forma de comunicao entre as UCPs e o


compartilhamento de memria e dos dispositivos de E/S, podem ser
classificados em:

Sistemas Fortemente Acoplados: Existem vrios processadores


compartilhando apenas uma memria fsica e dispositivos de E/S sendo
gerenciados por apenas um SO. Tambm so conhecidos como
multiprocessadores. Este pode ser dividido em: SMP (tempo uniforme de
acesso memria principal pelos diversos processadores) e o NUMA (o
tempo de acesso memria pelos processadores varia em funo da
sua localizao fsica). Todos os processadores tem a mesma funo. A
maioria dos sistemas operacionais implementam esta funcionalidade.
Sistemas Fracamente Acoplados: caracterizam-se por possuir dois ou
mais sistemas computacionais conectados atravs da linha de
comunicao. Cada sistema funciona de forma independente, possuindo
seu prprio sistema operacional e gerenciando seus prprios recursos.
So conhecidos como multicomputadores.

- CONCEITOS DE HARDWARE OU SOFTWARE

VISTO NA ORGANIZAO DE COMPUTADORES

- CONCORRNCIA

O conceito de concorrncia o principio bsico para o projeto e a


implementao dos sistemas multiprogramaveis.

Interrupo x Exceo

Durante a execuo de um programa podem ocorrer alguns eventos


inesperados, ocasionando um desvio forado no seu fluxo de execuo. Esses
tipos de eventos so conhecidos como interrupes ou excees. A interrupo
o mecanismo que tornou possvel a implementao da concorrncia nos
computadores. Ela gerada por algum evento externo ao programa. Ao final da
execuo de cada instruo, a unidade de controle verifica a ocorrncia de
algum tipo de interrupo. Nesse caso o programa interrompido e o controle
desviado para a rotina de tratamento de interrupo. Para cada tipo de
interrupo existe uma rotina de tratamento associada.

Existem dois mtodos para o tratamento de interrupes: O primeiro utiliza a


estrutura de dados, chamado de vetor de interrupo. O segundo utiliza o
registrador de status que armazena o tipo de evento ocorrido. As interrupes
so decorrentes de eventos assncronos, ou seja, no relacionados instruo
do programa concorrente. Alguns programas no permitem que interrupes
sejam desabilitadas, fazendo com que exista um tratamento para a ocorrncia
de mltiplas ocorrncias.

Uma exceo semelhante a uma interrupo, sendo a principal diferena o


motivo pelo o qual o evento gerado. resultado pela direto da execuo de
uma instruo do prprio programa. Ela gerada por evento sncrono, quando
resultado direto da execuo do programa corrente. Sempre que uma
exceo gerada o programa em execuo interrompido e o controle
desviado para uma rotina de tratamento de excees. Para cada tipo de
exceo existe uma rotina de tratamento adequado.

Operaes de Entrada /Sada

Os primeiros sistemas computacionais, a comunicao entre o processador e


os perifricos eram controlados por um conjunto de instrues especiais,
denominadas instrues de entrada/sada, executadas pelo prprio
processador. Isso criava uma dependncia forte entra o processador e os
dispositivos de E/S.

Depois nos sistemas computacionais surgiu controlador ou interface permitiu o


processador agir de maneira independente dos dispositivos de E/S. O
processador no se comunica direto com os dispositivos, mas sim com o
controlador. Existem duas maneiras bsicas pelas quais o processador
gerenciava as operaes de E/S.

A primeira chamada de E/S controlada por programa, mantinha o


processador ocupado at o termino da operao de E/S. Depois ouve uma
evoluo onde aps o inicio da transferncia de dados, o processador
permanece livre para realizar outras tarefas. Em determinados intervalos de
tempo o SO deveria testar cada dispositivo para saber o termino de uma
operao do E/S (polling).

Com a implementao do mecanismo de interrupo, as operaes E/S


puderam ser realizadas de uma forma mais eficiente. O prprio controlador
interrompia o processo para avisar o trmino da operao, chamada de E/S
controlada por interrupo. Permite que vrias operaes E/S sejam
executadas simultaneamente.

A tcnica de DMA permite que um bloco de dados seja transferido entre a


memria principal e dispositivos de E/S sem a interveno do processador,
exceto no inicio e no fim da transferncia. A rea de memria utilizada pelo
controlador na tcnica de DMA chamada de buffer de entrada e sada.

Buffering

A tcnica de buffering consiste na utilizao de uma rea na memria principal,


denominada buffer, para a transferncia de dados entre os dispositivos E/S e a
memria. O buffering permite minimizar o problema da disparidade da
velocidade de processamento existente entre o processador e os dispositivos
de E/S. O objetivo principal desta tcnica manter, na maior parte do tempo, o
processador e os dispositivos E/S ocupados.

A unidade de transferncia usada no mecanismo de buffering o registro. O


buffer deve permitir armazenar diversos registros, de forma que existam dados
lidos, mas ainda no processados (op de leitura), ou processados, mas ainda
no lidos (op de gravao).

Spooling

A tcnica de spooling foi introduzida para aumentar o grau de concorrncia e a


eficincia dos sistemas operacionais. Essa tcnica foi a base dos sistemas em
batch. Atualmente est tcnica est presente na maioria dos SO, sendo
utilizadas no gerenciamento de impresso.
Reentrncia

a capacidade de um cdigo executvel (cdigo reentrante) ser compartilhado


por diversos usurios, exigindo que apenas uma cpia do programa esteja na
memria. A reentrncia permite que cada usurio possa estar em um ponto
diferente do cdigo reentrante, manipulando dados prprios, exclusivos de
cada usurios.

- ESTRUTURA DO SISTEMA OPERACIONAL

O SO formado por um conjunto de rotinas que oferece servios aos usurios


e s aplicaes. Esse conjunto de rotinas denominado ncleo do sistema ou
kernel.

Funes do Ncleo

Tratamento de interrupes e excees; Criao e eliminao de processos e


threads; Sicronizao e comunicao entre processos e threads;
Escalonamento e controle entre processos e threads; Gerncia de memria;
Gerencia de sistemas de arquivos; Gerencia de dispositivos de E/S; Suporte a
rede locais e distribudas; Contabilizao do uso do sistema; Auditoria e
segurana do sistema

Modo de Acesso

Uma preocupao que surge nos projetos de sistemas operacionais a


implementao de mecanismos de proteo ao ncleo do sistema e de acesso
aos seus servios. Muitas das principais implementaes de segurana de um
sistema operacional utilizam um mecanismo presente no hardware, conhecido
como modo de acesso.

Em geral os processadores possuem dois modos de acesso: modo usurio e


modo kernel. No modo usurio uma aplicao s pode executar instrues
conhecidas como no-privilegiadas. Enquanto no modo kernel a aplicao
pode ter acesso ao conjunto total de instrues de um processador.

O modo de acesso determinado por um conjunto de bits, localizado no


registrador de status do processador, que indica o modo de acesso corrente.

Rotinas do sistema operacional e System calls

As rotinas do SO compem o ncleo do sistema, oferecendo servios aos


usurios e suas aplicaes. Todas as funes do ncleo so implementadas
por rotinas do sistema que necessariamente possuem em seu cdigo
instrues privilegiadas.

Todo o controle de execuo de rotinas do sistema operacional realizado pelo


mecanismo conhecido como system call.
Caso uma aplicao tente executar diretamente uma instruo privilegiada sem
ser por intermdio de uma chamada rotina do sistema, um mecanismo de
proteo de hardware garantir a segurana do sistema, impedindo a
operao.

Os mecanismos de system call e de proteo do hardware garantem a


segurana e a integridade do sistema. Com isso, as aplicaes esto
impedidas de executarem instrues privilegiadas sem a autorizao e a
superviso do SO.

Linguagem de comandos

Linguagem de comandos , ou linguagem de controle, permite que o usurio se


comunique de uma forma simples com o sistema operacional, capacitando-o a
executar diversas tarefas especificas do sistema como criar, ler ou eliminar
arquivos, consultar diretrios, etc. EX: os comandos do shell do Linux.

Ativao/Desativao do sistema

Procedimento de ativao do sistema ou boot quando os componentes do


SO devem ser carregados na memria principal toda vez que o computador
ligado. O procedimento de ativao comea com a execuo de um programa
chamado boot loader, que se localiza em um endereo fixo de uma memoria
ROM da mquina. Este programa chama a execuo de outro programa
chamado POST, que identifica possveis problemas de hardwares no
equipamento. Depois disso verificado em qual dispositivo est localizado o
SO. Depois de encontrado o SO, um conjunto de instrues carregado na
memria e localizado em um bloco especifico do dispositivo conhecido como
setor de boot. A partir da execuo desse cdigo, o SO finalmente carregado
para a memria principal.

O processo de desativao ou shutdown garante que as aplicaes e


componentes do SO sejam desativados ordenadamente, garantindo, desta
forma, sua integridade.

Arquiteturas do Ncleo

Arquitetura monoltica

Pode ser comparada com uma aplicao formada por vrios mdulos que so
compilados separadamente e depois linkados, formando um grande e nico
programa executvel, onde os mdulos podem interagir livremente.

Arquitetura de camadas

Nessa arquitetura o sistema dividido em nveis sobrepostos. Cada camada


oferece um conjunto de funes que podem ser utilizadas apenas pelas
camadas superiores. Camadas: kernel executivo supervisor usurio
A vantagem isolar as funes do SO, alm de criar hierarquias de nveis de
modo de acesso, protegendo as camadas mais internas. Uma desvantagem
o desempenho. Atualmente os sistemas utilizam o modelo baseado em 2
camadas, uma do modo do usurio (no-privilegiada) e a outra no modo kernel
(privilegiada).

Mquina Virtual

Esse modelo cria um nvel intermedirio entre o hardware e o SO, denominado


gerencia de mquinas virtuais. Criam-se mquinas virtuais independentes onde
cada uma oferece uma cpia do hardware.

possvel que cada VM tenha seu SO, e seus usurios executem suas
aplicaes como se todo o computador fosse dedicado a ele. A desvantagem
dessa arquitetura a sua complexidade.

Arquitetura Microkernel

A utilizao desse tipo de arquitetura permite que os servidores executem em


modo usurio, ou seja, no tenham acesso direto a certos componentes do
sistema. Apenas o ncleo do sistema, responsvel pela comunicao entre
clientes e servidores, executa no modo kernel. Como consequncia, se ocorrer
um erro no servidor, este poder parar, mas o sistema no ficar inteiramente
comprometido, aumentando assim a sua disponibilidade.

Nessa arquitetura o SO passa a ser mais fcil de fazer manuteno, flexvel e


de maior portabilidade. Apesar de todas as vantagens desse modelo, sua
implementao na prtica muito difcil. Primeiro existe o problema de
desempenho.

- PROCESSOS

Um programa ao ser executado deve estar sempre associado a um processo. A


gerncia de processos uma das principais funes do SO, possibilitando aos
programas alocar recursos, compartilhar dados, trocar informaes e
sincronizar suas execues.

Estrutura de um processo

O processo projetado para executar instrues a partir do ciclo de busca e


execuo. Um processo pode ser entendido inicialmente como um programa
em execuo, mas seu conceito ainda mais abrangente. Ento o conceito de
processos pode ser definido como sendo o conjunto necessrios de
informaes para que o SO implemente a concorrncia de programas.
Um processo formado por trs partes conhecidas como contexto de
hardware, contexto de software e espao de endereamento, juntos mantem
todas as informaes necessrias para a execuo de um programa.

CONTEXTO DE HARDWARE: armazena o contedo dos registradores


gerais da UCP, alm dos registradores de uso especifico, como o
program conter (PC), stack pointer (SP) e registrador de status. Quando
o programa est em execuo o CTX de Hard. Est armazenado nos
registradores do processo. Quando esse processo perde a utilizao da
UCP, o sistema salva as informaes do CTX. De Hard. No processo.
CONTEXTO DE SOFTWARE: so especificados limites e caractersticas
dos recursos que podem ser alocados pelo processo. A maior parte das
informaes do CTX. De Soft vem de um arquivo do sistema
operacional, conhecido como arquivos de usurios. O CTX de Soft
composto por trs grupos de informaes sobre o processo:
Identificao: cada processo criado pelo sistema recebe uma
identificao nica, chamada de PID, representada por um nmero.
Alguns sistemas alm do PID, identificam o processo por um nome. O
processo tambm possui a identificao do usurio ou processo que o
criou, chamado de UID.
Quotas: So os limites de cada recurso do sistema que um processo
pode alocar.
Privilgios: Ou direitos definem as aes que um processo pode
fazer em relao a ele mesmo, aos demais processos e ao SO.
ESPAO DE ENDEREAMENTO: a rea da memria pertencente a
um processo onde instrues e dados de um programa so
armazenados para execuo.

Bloco de controle do processo

Bloco de controle do processo uma estrutura de dados pelo qual o processo


implementado pelo SO. A partir do BCP o SO mantm todas as informaes
sobre a estrutura do processo (ctx de hard, ctx de soft e espao de end).

Estados do processo

Um processo passa por diferentes estados ao longo do seu processo. Um


processo ativo pode encontrar-se em trs diferentes estados: Execuo
(Running- um processo est no estado de execuo quando est sendo
processado pela UCP); Pronto (Ready um processo est em estado de
pronto quando aguarda apenas para ser executado. O SO que determina a
ordem e os critrios que os processos prontos podem fazer uso da UCP, esse
mecanismo conhecido como escalonamento); Espera (wait um processo no
estado de espera aguarda por algum evento externo ou algum recurso para
prosseguir seu processamento. Em alguns SO esse estado pode ser chamado
de bloqueado ou BLOKED).
Mudanas de estado do processo

Pronto -> Execuo

Execuo -> Espera

Espera -> Pronto

Execuo -> Pronto

Criao e eliminao de processos

A criao de um processo ocorre a partir do momento em que o SO adiciona


um PCB a sua estrutura e aloca espao de endereamento na memria para
uso. A partir disso o SO j pode gerencia-lo e associar programas ao seu
contexto para serem executados.

No caso da eliminao de processos, todos os recursos associados a um


processo so desalocados e o PCB eliminado pelo SO.

Processos CPU-Bound e I/O-Bound

Um processo definido como CPU-Bound (ligado a UCP) quando passa a


maior parte do tempo no estado de execuo, utilizando o processador, ou
pronto.

Um processo definido como I/O Bound (ligado a E/S) quando passa a maior
parte do tempo em estado de espera, pois realiza um elevado nmero de
operaes de E/S.

Processos Foreground e Background

Um processo possui pelo menos dois canais de comunicao ligados a sua


estrutura, um canal de entrada (input) e outro de sada (output).

Um processo Foreground aquele que permite a comunicao direta do


usurio com o processo durante o processamento.

Um processo background aquele onde no existe a comunicao com o


usurio durante seu processamento.

Formas de criao de processos

Logon Interativo: O usurio, por intermdio de um terminal, fornece ao sistema


um nome de identificao e uma senha. O SO autentica essas informaes,
verificando se esto cadastradas no arquivo do usurio. Se ok, um processo
foreground criado. Por exemplo: login de um usurio pelo terminal do Linux
Via Linguagem de comandos: Um usurio pode, a partir do seu processo, criar
outros processos via comandos da linguagem de comandos. O processo criado
pode ser foreground ou background, depende do comando utilizado.

Via Rotina do SO: Um processo pode ser criado a partir de qualquer programa
executvel com o uso de rotinas do SO.

Processos independentes, subprocessos e threads

So maneiras diferentes de implementar a concorrncia dentro de uma


aplicao.

Processos independentes: a maneira mais simples de implementar a


concorrncia em sistemas multiprogramaveis. No existe o vnculo do processo
criado com o seu criador. Possuem seu prprio PCB.

Subprocessos: so processos criados dentro de uma estrutura hierrquica.


Existe uma dependncia entre o processor criador e o subprocesso. Possuem
seu prprio PCB.

Threads: seu conceito foi introduzido na tentativa de reduzir o tempo gasto em


criao, eliminao e troca de contexto entre processos nas aplicaes
concorrentes, bem como economizar recursos do sistema como um todo.

Sinais

um mecanismo que permite notificar processos de eventos gerados pelo


sistema operacional ou por outros processos.

A maior parte de eventos associados a sinais so gerados pelo SO ou pelo


hardware.

- THREAD

Ambiente Monothread

Nesse ambiente o processo suporta apenas um programa no seu espao de


endereamento. Aplicaes concorrentes so implementadas apenas com o
uso de mltiplos processos independentes ou subprocessos.

O problema nesse tipo de implementao que o uso de processos no


desenvolvimento de aplicaes concorrentes demanda consumo de diversos
recursos do sistema. Outro problema o compartilhamento do espao de
endereamento.

Cada processo tem seu prprio contexto de hardware, contexto de software e


espao de endereamento.
Ambiente Multithread

So mltiplas threads, no existe a ideia de programas associados aos


processos, mas sim, as threads. Nesse ambiente o processo tem pelo menos
uma thread de execuo, mas pode compartilhar o seu espao de
endereamento com inmeras outras threads.

De forma simples, uma thread pode ser definida como um subrotina de um


programa que pode ser executada de forma assncrona, ou seja, executada
paralelamente ao programa chamador.

A grande vantagem da utilizao das threads a possibilidade de minimizar a


alocao de recursos do sistema, alm de diminuir o overhead na criao,
troca e eliminao de um processo.

Threads compartilham o processador da mesma forma que os processos e


passam pelos mesmos estados que eles. Cada thread tem seu contexto de
hardware, porm compartilham, dentro de um mesmo processo, o contexto de
software e o espao de endereamento. As threads so implementadas
internamente atravs de uma estrutura de dados denominada Bloco de controle
de thread (TCB).

A grande diferena entre ambientes monothread e multithread est no uso do


espao de endereamento.

Arquitetura e Implementao: O conjunto de rotinas disponveis para que uma


aplicao utilize as facilidades dos threads chamado pacote de threads.
Existe um padro de thread chamado Pthread.

Thread em modo usurio

Threads em modo usurio so implementadas pela aplicao e no pelo


sistema operacional. A vantagem deste modelo a possibilidade de
implementar aplicaes multithreads mesmo em sistemas operacionais que
no suportam threads. Um dos maiores problemas desse modelo o
tratamento individual de sinais. So mais eficientes que o modo kernel e os
subprocessos.

Thread em modo kernel

Threads em modo kernel so implementados diretamente pelo ncleo do


sistema operacional, atravs das chamadas a rotinas do sistema. O grande
problema para pacotes em modo kernel o seu baixo desempenho, pois eles
utilizam a troca no modo de acesso diferentemente do modo usurio que no
necessita fazer essa mudana.
Threads em modo hibrido

Combina as vantagens das threads implementadas em modo usurio e em


modo kernel. Um processo ele pode ter vrias threads no modo kernel, e por
sua vez, esta pode ter vrios processos no modo usurio. Apesar da sua
flexibilidade, esse modo herda problemas de ambas implementaes.

Scheduler Activations

Este pacote combina o melhor das duas arquiteturas, mas em vez de dividir os
threads em modo usurio e modo kernel, o ncleo do sistema troca
informaes com a biblioteca de threads utilizando uma estrutura de dados
chamados scheduler activations.

- SICRONIZAO E COMUNICAO ENTRE PROCESSOS

Aplicaes concorrentes

Muitas vezes em aplicaes concorrentes e necessrios que os processos se


comuniquem entre si. Essa comunicao poder ser implementada atravs de
diversos mecanismos.

Os mecanismos que garantem a comunicao entre processos concorrentes e


o acesso a recursos compartilhados so chamados de mecanismos de
sincronizao.

Especificao de concorrncia entre programas

A primeira notao para a especificao da concorrncia de um programa


foram os comandos FORK e JOIN. O comando Fork ao ser executado dentro
de um programa faz com que seja criado um outro processo para a execuo
de outro programa, concorrentemente ao primeiro. O comando Join permite
que o primeiro programa sincronize-se com o segundo, ou seja, quando o
primeiro programa entra em Join s ser executado aps o termino do segundo
programa.

Os comandos PARBEGIN e PAREND, posteriormente chamados de COBEGIN


e COEND. O PARBEGIN especifica que a sequencia de comandos seja
executada correntemente em uma ordem imprevisvel, atravs da criao de
processo para cada comando. O PAREND defini um ponto de sincronizao,
onde o processamento s continuar quando todos os processos ou threads
criados j tiverem terminado suas execues.

Excluso Mtua

A soluo mais simples para evitar os problemas de compartilhamento de


recurso impedir que dois ou mais processos acessem um mesmo recurso
simultaneamente. Para isso utilizada a ideia da excluso mutua, ou seja,
quando um processo estiver utilizando um recurso, todos os outros que
queiram acess-lo dever esperar seu termino na utilizao do recurso.

A parte do cdigo do programa onde feito o acesso ao recurso compartilhado


denominada regio crtica. Os mecanismos que implementam a excluso
mutua utilizam protocolos de acesso a regio crtica. Ou seja, toda vez que um
processo desejar executar instrues da sua regio critica , obrigatoriamente
dever executar antes um protocolo de entrada nessa regio. Da mesma forma
para sair da regio, um protocolo de sada dever ser executado.

A excluso mutua pode ser implementada atravs de solues de hardware:

Desabilitao de Interrupes: uma soluo simples onde o processo


desabilita todas as interrupes antes de entrar na regio critica, e
reabilita as mesmas aps sair.
Instruo test-and-set: uma instruo especial que permite ler uma
varivel, armazenar seu contedo em uma outra rea e atribuir um novo
valor a esta varivel. Tem como caracterstica ser executada sem
interrupo, ou seja, trata-se de uma instruo indivisvel. Dessa forma,
garantido que dois processos no manipulem uma varivel
compartilhada ao mesmo tempo, possibilitando a implementao da
excluso mutua.

A excluso mutua pode ser implementada atravs de solues de software:

Primeiro algoritmo: Apresenta uma soluo para excluso de mtua


entre dois processos, onde um mecanismo de controle alterna a
execuo das regies criticas.
Segundo algoritmo: O problema principal do primeiro algoritmo que
ambos os processos trabalham com uma mesma varivel global, cujo
contedo indica qual o processo tem o direito de entrar na regio critica.
Para evitar essa situao o segundo algoritmo introduz uma varivel
para cada processo que indica se o processo est ou no em sua regio
critica.
Terceiro algoritmo: Este procura solucionar o problema apresentado no
segundo algoritmo, colocando a instruo de atribuio das variveis de
cada processo antes do loop de teste.
Quarto algoritmo: O quarto algoritmo apresenta uma implementao
onde o processo, da mesma forma, altera o estado da varivel antes de
entrar na sua regio critica, porm existe a possibilidade de esta
alterao ser revertida.
Algoritmo de Deker: primeira soluo de software que garantiu a
excluso mutua entre dois processos. Ele possui uma lgica bastante
complexa
Algoritmo de Peterson: Similar ao terceiro algoritmo, est soluo, alm
das variveis dos processos de condio que indicam o desejo do
processo de entrar na sua regio critica, introduz a varivel VEZ para
resolver os conflitos gerados pela concorrncia.
Algoritmo para excluso mutua de N processos

Semaforos

Um mecanismo de sincronizao que permitia, de forma simples, implementar


a excluso mutua e sincronizao condicional entre processos. Um semforo
uma varivel inteira, no negativa, que s pode ser manipulada por duas
instrues: DOWN e UP. A instruo UP incrementa uma unidade ao valor do
semforo, enquanto a DOWN decrementa a varivel. Os semforos podem ser
classificados como binrios (tambm chamados de mutexes, s podem
assumir os valores 0 ou 1) ou contadores (podem assumir qualquer valor inteiro
positivo, alm do 0).

A excluso mutua pode ser implementada atravs de um semforo binrio


associado ao recurso compartilhado.

Monitores

So mecanismos de sincronizao de alto nvel que tornam mais simples o


desenvolvimento de aplicaes concorrentes. Mecanismo de sincronizao
estruturados, ao contrario dos semforos que so no-estruturados.

Deadlock

a situao em que um processo aguarda um recurso que nunca estar


disponvel ou um evento que no ocorrer.

- GERNCIA DE RECURSO

+ GERNCIA DE PROCESSO

Funes bsicas da poltica de escalonamento: manter o processador ocupado


a maior parte do tempo, balancear o uso do UCP entre os processos, privilegiar
a execuo de aplicaes crticas, maximizar o throughput do sistema e
oferecer tempos de respostas razoveis para usurios interativos.

A rotina do SO responsvel por implementar a politica de escalonamento


chamado Escalonador (scheduler). Todo o compartilhamento do processador
depende dessa rotina. Outra rotina importante dispatcher, responsvel pela
troca de contexto dos processos aps o escalonador determinar qual processo
deve fazer uso do processador.
Critrios de escalonamento

Os principais critrios que devem ser considerados so:

Utilizao do processador: desejvel que o processador permanea ocupado


a maior parte do tempo.

Throughput: representa um numero de processos executados em um


determinado intervalo de tempo. A maximizao do throughput desejada na
maioria dos sistemas.

Tempo de processador / tempo de UCP: o tempo que um processo leva no


estado de execuo durante seu processamento.

Tempo de espera: o tempo total que um processo permanece na fila de


pronto durante seu processamento, aguardando para ser executado. A reduo
do tempo de espera desejado na maioria das politicas de escalonamento.

Tempo de turnaround: o tempo que o processo leva desde a sua criao at


o seu trmino, levando em considerando todo o processamento entre eles. A
politica de escalonamento deseja minimizar o tempo de turnaround.

Tempo de resposta: o tempo decorrido entre a requisio do sistema ou


aplicao e o instante em que a resposta exibida.

Escalonamentos preemptivos e no-preemptivos

As politicas de escalonamento podem ser classificadas sendo a possibilidade


do SO interromper um processor em execuo e substitui-lo por um outro,
atividade conhecida como preempo.

O escalonamento no-preemptivo foi o primeiro tipo de escalonamento


implementado nos sistemas multiprogramaveis, onde predominava o
processamento em batch. Nesse escalonamento, quando um processo est em
execuo nenhum evento externo pode ocasionar a perda do uso do
processador.

O escalonamento preemptivo caracterizado pela possibilidade do SO


interromper um processo em execuo e passa-lo para o estado de pronto,
com o objetivo de alocar outro processo na UCP.

Escalonamento FIFO

Nesse escalonamento o processo que chegar primeiro ao estado de pronto


executado. Ou seja, usado o conceito de fila. Ele apresenta alguns
problemas, como, a impossibilidade de se prever quando um processo ter sua
execuo iniciada. Outro problema que os processos CPU-BOUND levam
vantagem no uso do processor sobre processos I/O-BOUND. O escalonamento
FIFO no-preemptivo.
Escalonamento Shortest-Job-First (SJF)

O algoritmo de escalonamento seleciona o processo que tiver o menor tempo


de processadora ainda para executar. Ou seja, o processo que tiver em estado
de pronto e tiver o menor tempo de uso da UCP ser selecionado para
executar. Na sua concepo inicial, o SJF do tipo no-preemptivo.

Escalonamento Cooperativo

Neste caso, um processo em execuo pode voluntariamente liberar o


processador retornando fila de pronto, possibilitando um novo processo ser
escalonado, assim permitindo uma melhor distribuio do processador.

Escalonamento Circular

um escalonamento do tipo preemptivo, projetado especialmente para


sistemas de tempo compartilhado. Bastante semelhante ao FIFO, porm
quando um processo passa para o estado de execuo, existe um limite de uso
continuo do processador denominado fatia de tempo (time-slice) ou quantum.

Escalonamento por prioridades

um escalonamento do tipo preemptivo realizado com base em um valor


associado a cada processo denominado prioridade de execuo.

Escalamento circular com prioridades

Implementa o conceito de fatia de tempo e de prioridade de execuo


associada a cada processo.

Escalonamento por mltiplas filas

Escalonamento por mltiplas filas com realimentao

Semelhante ao escalonamento por mltiplas filas porm o processo pode trocar


de fila.

+ GERNCIA DE MEMRIA

A gerncia de memoria deve tentar manter na memria principal o maior


nmero de processos residentes, permitindo maximizar o compartilhamento do
processador e demais recursos computacionais. Outra preocupao permitir
a execuo de programas que sejam maiores que a memria fsica disponvel,
implementando atravs de tcnicas de overlay e memoria virtual.
Tcnica de Overlay

Na alocao contigua simples, todos os programas esto limitados ao tamanho


da rea da memria principal disponvel ao usurio. Uma soluo encontrada
para o problema dividir o programa em mdulos, de forma que seja possvel
a execuo independente de cada modulo, utilizando uma mesma rea de
memria. Esta tcnica chamada overlay.

A definio das reas de overlay definio do programador, atravs de


comandos especficos da linguagem de programao utilizada. O tamanho da
rea de overlay deve ser especificado a partir do tamanho do mdulo maior.

Alocao Particionada

Alocao Particionada Esttica

Nos primeiros sistemas multiprogramaveis, a memria era dividida em pedaos


de tamanho fixo, chamados parties. Sempre que fosse necessria alterar o
tamanho de uma partio, o sistema deveria ser desativado e reinicializado
com uma nova configurao. Esse tipo de gerncia de memria conhecido
como alocao particionada esttica ou fixa.

Ainda tem a alocao particionada esttica absoluta devido aos cdigos


gerados que eram absolutos, onde o programa s poderia ser carregado a
partir do endereo de memria especificado no seu prprio cdigo. Com a
evoluo o cdigo deixou de ser absoluto e passou a ser relocvel. Desta
forma os programas puderam ser executados a partir de qualquer partio.
Esse tipo de gerncia de memria ficou conhecido como alocao particionada
esttica relocvel.

Alocao Particionada Dinmica

Aqui foi eliminado o conceito de parties de tamanho fixo. Aqui cada programa
utilizaria o espao necessrio, tornando essa rea a sua partio. A relocao
dinmica quando o sistema tenha a capacidade de mover os diversos
programas na memoria principal.

Estratgias de alocao de partio

Best-fit: a melhor partio escolhida, ou seja, aquela em que o programa


deixa o menor espao sem utilizao.

Worst-fit: a pior partio escolhida, ou seja, aquela em que o programa deixa


o maior espao sem utilizao.

First-fit: a primeira partio livre de tamanho suficiente para carregar o


programa escolhida. Est a estratgia mais rpida, consumindo menos
recurso do sistema.
Swapping

A tcnica de swapping foi introduzida para contornar o problema da


insuficincia de memria principal. O swapping uma tcnica aplicada a
gerencia de memria para programas que esperam por memrias livres para
serem executados. O sistema escolhe um processo residente, que transferido
da memria principal para a memria secundria (swap out). Posteriormente o
processo carregado de volta na memria secundria para a memria
principal (swap in) e pode continuar sua execuo como se nada tivesse
acontecido.

- GERNCIA DE MEMRIA VIRTUAL

Memria virtual uma tcnica sofisticada e poderosa de gerncia de memria,


onde as memrias principal e secundria so combinadas, dando ao usurio a
iluso de existir uma memria muito maior que a capacidade real da memria
principal.

Espao de endereamento virtual e MAPEAMENTO

Um programa no ambiente de memria virtual no faz referencia a endereos


fsicos de memria (endereos reais), mas apenas a endereos virtuais. No
momento da execuo de uma instruo, o endereo virtual referenciado
traduzido para um endereo fsico, pois o processador manipula apenas
posies da memria principal. O mecanismo de traduo do endereo virtual
para endereo fsico denominado mapeamento.

O dispositivo de hardware responsvel por essa traduo conhecida como


unidade de gerencia de memoria (MMU), sendo acionado sempre que se faz
referencia a um endereo virtual.

Memria virtual por paginao

a tcnica de gerncia de memria onde o espaamento virtual e o espao de


endereamento real so divididos em blocos de mesmo tamanho chamado
pginas. Todo mapeamento de endereo virtual em real realizado atravs de
tabelas de pginas.

Quando um programa executado, as pginas virtuais so transferidas da


memria secundria para memria principal e colocadas nos frames. Se o bit
tem o valor 0, indica que a pgina virtual no est na memria principal, mas se
igual a 1, a pgina est localizada na memria.
Politicas de busca por pginas

A poltica de busca por pginas determina quando uma pgina deve ser
carregada para a memria. Existem duas estratgias para essa busca:
paginao por demanda e paginao antecipada.

Na paginao por demanda, as pginas do processo so transferidas da


memria secundria para a principal apenas quando so referenciadas. Leva
para a memria apenas as pginas realmente necessrias para a execuo do
programa.

Na paginao antecipada, o sistema carrega para a memria principal, alm


da pgina referenciada, outras pginas que podem ou no ser necessrias ao
processo ao longo do seu processamento.

Politica de alocao de pginas

A poltica de alocao de pginas determina quantos frames cada processo


pode manter na memria principal. Existem duas alternativas: alocao fixa e
alocao varivel.

Na poltica de alocao fixa, cada processo tem um nmero mximo de frames


que pode ser utilizado durante a execuo de um programa.

Na poltica de alocao virtual, o nmero mximo de pginas alocadas ao


processo pode variar durante a sua execuo em funo de sua taxa de
paginao e da ocupao da memria principal.

Polticas de substituio de pginas

A poltica de substituio de pginas quando o SO deve selecionar, dentre as


pginas alocadas, qual ser liberada. Em funo do escopo, as politicas de
substituio de pginas pode ser definida como local ou global.

Na politica de substituio local, apenas as pginas do processo que gerou o


page fault so candidatas a realocao.

Na poltica de substituio global, todas as pginas alocadas na memria


principal so candidatas a substituio, independente do processo que gerou o
page fault.

Algumas pginas, como as do ncleo do sistema, so marcadas como


bloqueadas e no podem ser realocadas.

Algoritmos de substituio de pginas

Os algoritmos de substituio de pginas tem o objetivo de selecionar os


frames que tenham menores chances de serem referenciados em um futuro
prximo. A partir do principio da localidade a maioria dos algoritmos tenta
prever o comportamento futuro das aplicaes em funo do comportamento
passado. Alguns algoritmos de substituio de pginas so:

timo: Seleciona para substituio uma pgina que no ser mais referenciada
no futuro ou aquela que levar o maior intervalo de tempo para ser novamente
utilizada. Na prtica ele impossvel de ser implementado, pois o SO no tem
como conhecer o comportamento futuro das aplicaes. utilizada apenas
como modelo comparativo a outros algoritmos de substituio.

Aleatrio: Como o nome sugere, no utiliza critrio algum de substituio.


Apesar de ser uma estratgia que consome poucos recursos do sistema,
raramente implementada, em funo de sua baixa eficincia.

FIFO (First In First Out): A pgina que primeiro foi utilizada ser a primeiro a
ser escolhida, ou seja, o algoritmo seleciona a pgina que est h mais tempo
na memria principal. O algoritmo FIFO raramente implementado sem algum
outro mecanismo que minimize o problema de seleo de pginas antigas que
so constantemente referenciadas.

LFU (Least Frequently Used): Seleciona a pgina menos referenciada, ou


seja, o frame menos utilizado. O algoritmo evita selecionar pginas que so
bastante utilizadas. Este esquema, como apresentado, raramente
implementado, servindo apenas como base para outros algoritmos de
substituio.

LRU (Least Recently Used):

Seleciona a pgina na memria principal que est h mais tempo sem ser
referenciada. Apesar de ser uma estratgia com uma eficincia comparvel ao
algoritmo timo, pouco empregada na prtica, devido ao seu elevado custo
de implementao.

NRU (Not Recently Used):

bastante semelhante ao LRU, porm com menor satisfao. BR = bit de


referencia e BM = Bit de modificao.

BR = 0 e BM = 0 : pgina no referenciada e no modificada.

BR = 0 e BM = 1 : pgina no referencia e modificada.

BR = 1 e BM = 0 : pgina referenciada e no modificada.

BR = 1 e BM = 1 : pgina referenciada e modificada.

FIFO com buffer de pginas: Combina com uma lista de pginas alocadas
(LPA) com uma lista de pginas livres (LPL).
FIFO Circular (clock): Utiliza como base o FIFO, porm as pginas alocadas na
memria esto em uma estrutura de lista circular, semelhante a um relgio.
Este algoritmo implementado, com pequenas variaes na maioria dos
sistemas UNIX.

- SISTEMAS DE ARQUIVO

Os arquivos so gerenciados pelo sistema operacional de maneira a facilitar o


acesso dos usurios ao contedo. A parte do SO responsvel por essa
gerencia denominada Sistemas de Arquivos.

Um arquivo constitudo por informaes logicamente relacionadas. Pode ser


um executvel chamado arquivos de instrues, ou arquivos de texto e etc,
chamados arquivo de dados. Os arquivos so armazenados pelo SO em
diferentes dispositivos fsicos.

Um arquivo identificado por um nome, composto por uma sequencia de


caracteres. Em alguns SO, a identificao de um arquivo feita por duas
identificaes, um nome depois o ponto e por ultimo uma extenso que
identifica o tipo de arquivo.

A organizao de arquivos consiste em como os seus dados esto


internamente organizados. No momento da criao do arquivo, o seu criador
pode definir qual organizao adotada. Esta estrutura pode ser uma estrutura
suportada pelo SO ou definida pela prpria aplicao.

A forma mais simples de organizao de arquivos atravs de uma sequencia


no estruturada de bytes. O SO no impe nenhuma estrutura lgica para
dados. A aplicao deve definir toda a organizao. A grande vantagem deste
modelo a flexibilidade para criar diferentes estruturas de dados.

Alguns SO possuem diferentes organizaes de arquivos. Cada arquivo deve


seguir um modelo suportado pelos sistemas de arquivos. As organizaes mais
conhecidas e implementadas so a sequencial, relativa e indexada.

Em funo de como o arquivo est organizado, o sistema de arquivos pode


recuperar registros de diferentes maneiras. Com o advento dos discos
magnticos, o primeiro mtodo de acesso a surgir foi o acesso direto, que
permite a leitura/gravao de um registro diretamente na sua posio.
importante notar que o acesso direto somente possvel quando o arquivo
definido com registros de tamanho fixo.

Um mtodo de acesso mais sofisticado, que tem como base o acesso direto,
o chamado acesso indexado ou acesso por chave. Para este acesso, o
arquivo deve possuir uma rea de ndice onde existam ponteiros para os
diversos registros.

O sistema de arquivos disponibiliza um conjunto de rotinas que permite s


aplicaes realizarem operaes de E/S.

Cada arquivo possui informaes de controle denominadas atributos. Alguns


atributos especificados na criao de arquivos no modem ser modificados em
funo da sua prpria natureza, como organizao e data e hora de criao.
Outros so alterados pelo prprio SO. Ainda existem atributos que podem ser
modificados pelo prprio usurio.

A estrutura de diretrios como o sistema organiza logicamente os diversos


arquivos contidos em um disco. A implementao mais simples de uma
estrutura de diretrios chamada de nvel nico, ou seja, existe apenas um
diretrio contendo todos os arquivos do disco.

Houve uma evoluo desse modelo onde foi possvel implementar uma
estrutura onde para cada usurio existiria um diretrio particular denominado
UFD (user file directory). Para o sistema localizar arquivos nessa estrutura,
deve haver um nvel de diretrio adicional para controlar os diretrios
individuais, este nvel denominado MFD (master file directory), ele indexado
com o nome de cada usurio. Esse novo modelo denominado estrutura de
diretrio em rvore.

- GERNCIA DE DISPOSITIVOS

A gerencia de dispositivos de entrada e sada uma das principais e mais


complexas funes do SO. Sua implementao estruturada atravs de
camada, onde as camadas de mais baixo nvel escondem caractersticas dos
dispositivos das camadas superiores.

O SO oferece um conjunto de rotinas que possibilita a comunicao com


qualquer dispositivo que possa ser conectado ao computador. Esse conjunto de
rotinas chamado, rotinas de entrada/sada, faz parte do subsistema de E/S.

O subsistema de entrada e sada responsvel por realizar as funes comuns


a todos os tipos de dispositivos, ficando os aspectos especficos de cada
perifrico como responsabilidade dos device drivers.

O tratamento do erro nas operaes de E/S so realizados nas camadas mais


prximas do Hardware.

Os controladores so componentes de hardware responsveis por manipular


diretamente os dispositivos de E/S. O SO, mais diretamente os device drivers,
comunica-se com os dispositivos atravs dos controladores.
Um dispositivo de bloco armazena as informaes em blocos de tamanho fixo,
cada qual com seu endereo. Cada bloco pode ser lido ou escrito de maneira
independente uns dos outros. Um dispositivo de bloco pode estar com um
ponteiro em qualquer lugar e pode ser posicionado para outro cilindro. : O modo
de transmisso dos dados, que feita na forma de blocos. So dispositivos que a
comunicao feita por meio de blocos de dados como em HD's, drivers de CD-ROM,
flash drivers e dispositivos de armazenamento em geral.

Outro dispositivo de e/s o dispositivo de caractere. O dispositivo


de caractere no utiliza estrutura de blocos nem posicionamento. No
dispositivo de caractere ele recebe um fluxo de caracteres, alm de no ser
enderevel. Dispositivo de caracteres: aquele que envia/recebe um fluxo de
caracteres, sem considerar qualquer estrutura de blocos, eles no so endereveis e no
dispe de qualquer operao de posicionamento. Impressoras e mouses so exemplos
desses dispositivos.