Você está na página 1de 3

Sistemas Operacionais

Sistemas Operacionais, alm de extremamente complexos e importantes,


coordenam (permitem trabalho simultneo entre usurios) e padronizam servios
(simplificam programao e uso). So compostos por: memria (principal e
secundria), processos, E/S e proteo. tido como um programa governo que
controla a interao entre usurios e hardware e entre os prprios usurios. Seu
hardware no corresponde de fato a interface utilizada pelo usurio e permite
executar um mesmo programa em vrios ambientes diferentes. Realiza o acesso
recursos de modo a garantir seu total uso e a proteger usurios uns dos outros.
Ao longo do tempo, os SOs foram fortemente modificados. Na primeira fase,
correspondiam a programao com cartes perfuradas e chaves de painel. Como a
presena do usurio tinha que acontecer a todo momento, a mquina esperava pelo
homem/cartes e vice-versa. Depois veio o conceito de multiprogramao, em que
vrios programas so carregados na memria ao mesmo tempo, com uma utilizao
mais eficiente da mquina. Mas passou a ser muito complicado e ainda necessitar de
o computador esperar pelo usurio (escalonamento e quase todos os componentes).
Com a introduo do conceito de interatividade, base dos SOs modernos, usurios
passam a acessar a CPU diretamente conectados a terminais on-line. Escalonamento
e proteo passam a ser crticos, mas a falta de disciplinas dos programadores tornase um problema. Depois, com sistemas paralelos distribudos, entra a questo de
menos de um usurio por sistema, multiprocessadores e a importncia do acesso
rede (acesso aos recursos). E por fim, os sistemas modernos so enormes e
complexos, com milhares de linhas de cdigos e diferentes tipos de usurios. Nunca
esto completamente sem erros e seu comportamento difcil de prever. Sistemas
Operacionais so compostos por Gerncia de Processos, Comunicao entre
Processos, Gerencia de memria, Sistemas de Arquivos, de E/S e Sistemas
de Proteo.
Resumindo, um sistema operacional uma coleo de programas para gerenciar as
funes do processador, o input, o output, o armazenamento e o controle dos
dispositivos. O sistema operacional tem todos os comandos bsicos que os
aplicativos vo usar, em vez de ter todas estas funes reescritas para cada
aplicativo.

Gerncia de Processos
A ideia de executar vrios programas ao mesmo tempo, vem da razo de tudo
acontecer num mesmo momento nos sistemas. Entradas e sadas, aes de
mltiplos usurios, passagem de tempo, etc. Alm disso, permite que vrios usurios
utilizem a mquina ao mesmo tempo e permitem que tarefas sejam executadas mais
rapidamente, utilizando multiprocessadores. A execuo de um programa mais os
dados usados por ele so conhecidos como Processos. Um processo um fluxo de
controle sequencial e seu espao de endereamento. Processos so executados
sequencialmente e podem interagir com registradores, memria usada e arquivos.

Programas e processos so diferentes: programas so cdigos e processos so as


execues dos mesmos. O mesmo programa executado por dois usurios gera dois
processos e um programa pode chamar vrios processos. Processos so divididos em
fluxo de controle (parte ativa) e espao de endereamento (parte passiva). Um
THREAD consiste no fluxo de controle. mais eficiente utilizar vrios threads no
mesmo espao de endereamento, pois os processos utilizam dados compartilhados
e espao de endereamentos so muito caros.

Um processo uma tarefa com um nico thread.


Uma tarefa pode conter vrios threads.
No h proteo entre threads de uma mesma tarefa!
Um thread pertence a uma nica tarefa.
Tarefas contm espao de memria virtual e ambiente (arquivos, nomes, etc)
enquanto threads possuem registradores (incluindo PC) e pilha de execuo (Stack).
Threads de uma mesma tarefa acessam uma mesma memria e uma pilha de um
thread pode ser acessadas por diferentes threads. Em SOs simples, em que um
usurio realiza uma tarefa de cada vez, so combinados uma tarefa e um thread.
No ncleo de SO, que coordena as atividades, so combinados uma tarefa e vrios
threads. No Unix original ou diversos usurios com um programa cada, so
combinados vrias tarefas e um thread por tarefa. No caso mais comum, so
combinados vrias tarefas e vrios threads por tarefa.
A execuo de threads ao longo do tempo, controlada por um programa conhecido
como Escalonador. Threads so ento representados por um PCB que contm
estado do processo, nmero do processo, registradores, prioridade de
execuo, etc. Escalonadores de processo utilizam alguns critrios de
escalonamento, como a taxa de utilizao da CPU (tempo que ele est sendo
ocupado), throughput (nmero de processos terminados), turnaround (tempo
entre entrada e execuo do software), tempo de resposta (tempo entre chegada
e incio da execuo) e tempo de espera (soma dos tempos de estados pronto).
Processos so interrompidos e retomados a todo tempo, para que o sistema
operacional possa fazer esse tipo de ao, necessria a troca de contexto. Para
que o sistema operacional possa interromper um processo e retomar ele mais tarde,
ele usa a PCB (Process Control Block) para guardar todas as informaes que a CPU
estava usando naquele momento e possa consult-la mais tarde para que retome
exatamente no ponto em que foi interrompido anteriormente. Troca de contexto
ocorre com grande frequencia, necessrio para a proteo e caro (muda todo o
espao de endereamento).
Um thread pode ser encontrado em trs diferentes estados: Running, Ready e
Blocked. Polticas de escalonamento so usadas para escolher um thread que se
encontra no estado de Ready.
Escalonamento ocorre sempre que muda um processo que est sendo executado.
Escalonamento controla o compartilhamento de recursos, permite a utilizao
simultnea de vrios usurios e permitem que processos bloqueados no pare a
CPU.

Polticas:
Preemptivas X no preemptivas
FIFO
SJF
Round-robin (nico sem problema de starvation)
Prioridades
Filas mltiplas
Mtodos de Avaliao:
Analticos (conjunto fixos de processos)
Teoria de filas (mtodos estatsticos)
Simulao (implementao de modelo)
Verificao automtica (grafo - resultado garantido)
Comunicao/sincronizao de processos
Com grande frequncia, os processos precisam se comunicar uns com os outros, pois
muitas vezes, eles compartilham ou trocam dados entre si. Essa comunicao
precisa ocorrer sem interrupes, pois este tipo de falha limita o desempenho e
aumenta a complexidade. Problemas de sincronizao so causados por falta de
comunicao. Por exemplo, Race Conditions. A parte do programa que gera essa
condio conhecida como regio crtica. Para evitar Race Conditions, podemos
utilizar a excluso mtua, em que se assegura que outros processos sejam
impedidos de usar uma varivel ou um arquivo compartilhado que j estiver em uso
por outro processo. Existem vrias maneiras de se obter excluso mtua, mas a
maioria envolve locking (evita que algum faa algo em determinado momento).
Trs regras so utilizadas para que o locking funcione: Trancar antes de utilizar,
destrancar quando terminar (s se voc que trancou), esperar se estiver
trancado.
Excluso mtua deve permitir apenas um processo em uma seo crtica. Processos
podem dormir apenas fora da seo crtica. As propriedades desejveis so justia,
eficincia e simplicidade.