Post on 24-Sep-2015
description
Aula 1
Conceitos fundamentais de sistema operacionais
O que um sistema operacional? um conjunto de programas (software) responsvel por:
Fazer a interface com os usurios;
Gerenciar recursos;
Fazer a interface com o hardware. (Segurana e estabilidade)
um intermedirio entre o usurio e o hardware.
Cada parte (mdulo ou funo) de um sistema operacional responsvel pelo gerenciamento de um recurso
especfico. Que recursos so esses?
Tempo da CPU
Espao em memria
Espao em disco
Acesso aos dispositivos de comunicao
Bibliotecas de software
Gerenciar recursos garantir a utilizao compartilhada do recurso sem que ocorram erros que possam gerar
instabilidade ou falha no sistema.
Na viso do usurio, o sistema operacional fornece:
Acesso ao sistema;
Possibilidade de criar e gerir arquivos e diretrios;
Ambiente para execuo de programas
Acesso aos dispositivos de entrada e sada.
Acesso ao contedo de arquivos
Deteco de erros.
Classificao de sistemas operacionais
A classificao utilizada como uma forma sinttica de apresentar, em poucas palavras, as caractersticas de um
sistema operacional.
Sistemas monotarefa x Sistemas multitarefa
o Monotarefa: Admite e gerencia apenas uma tarefa em execuo por vez. Ex: DOS
o Multitarefa: Admite e gerencia vrias tarefas em Processamento concorrente. Ex: Windows XP,
Windows 2003, Linux, MacOS
Sistemas monousurio x sistemas multiusurio
o Monousurio: Admite e gerencia apenas um usurio no permite que mais de um usurio esteja
logado simultaneamente. Ex: Windows XP, Windows NT (exceto verso com Terminal Server).
o Multiusurio: Sistema Multiusurio: Admite e gerencia vrios usurios permite que mais de um
usurio esteja logado simultaneamente. Ex: Linux, VMS
OBS: Todo sistema operacional multiusurio obrigatoriamente multitarefa, pois cada usurio representa, no
mnimo, uma tarefa para ser executada.
Sistemas monoprocessadores x Sistemas multiprocessadores
o Monoprocessadores: Somente reconhecem e utilizam um processador. Ex. Windows 98
o Multiprocessadores: Sistemas multiprocessados: Reconhecem e utilizam mais de um processador. Ex.
Windows XP, Windows Vista, Windows 7, Linux.
OBS.: Sistemas com suporte a multiprocessamento podem executar mais de uma tarefa ao mesmo tempo;
uma em cada processador.
Sistema de tempo real e sistema embarcado:
o Tempo Real: Sistemas que possuem um forte vnculo com o tempo. O resultado s considerado
correto se a execuo acontecer no tempo previsto. O sistema deve garantir que uma tarefa possua
todos os recursos necessrios para sua execuo em um intervalo de tempo pr-definido.
OBS.: No se trata de velocidade de processamento e sim garantia de tempo de resposta.
o Embarcado: Sistemas inseridos em produtos com funes especficas como telefones celulares. OBS.:
Nem todo dispositivo eletrnico possui um microcontrolador e nem todo aparelho com icrocontrolador
possui um sistema operacional.
EXTRA: Os SO multiprogramaveis ou multitarefa, podem ainda ser classificados pela forma com que suas
aplicaes so gerenciadas, podem ser divididos em sistema bath, de tempo compartilhada ou de tempo
real. Um SO pode suporte um ou mais destes tipos de processamento, dependendo de sua implementao
Estruturas dos sistemas operacionais modernos
A partir do 80386, esse problema foi solucionado em termos de hardware atravs da possibilidade de 2 modos de
execuo: o modo protegido e o modo real. Ficava a cargo do sistema operacional a comutao entre esses dois modos
por questes de compatibilidade. A instabilidade evidenciada pela tela azul tem razes histricas. Os primeiros
processadores da linha x86 possuam um nico modo de operao: o modo real. Dessa forma, todas as operaes
poderiam ser executadas diretamente pelas aplicaes que, ao produzir erros, geravam panes no sistema.
Modo Usurio x Modo Kernel:
Modo usurio o que trabalhamos normalmente onde no tenho acesso as funo do sistema operacional que
podem comprometer o sistema. (Instrues no privilegiadas).
System Call = Porta de acesso ao Kernel. Verifica se o modo de usurio pode executar determinada tarefa sem
comprometer o sistema.
Modo Kernel s (Instrues Privilegiadas)
As aplicaes so executadas em modo usurio, ou seja, modo que no possui privilgios para operaes que
coloquem o sistema em risco tais como escrever no disco, criar novas tarefas etc.
Quando essas aplicaes precisam executar tarefas crticas, necessrio que haja uma mudana para modo
Kernel. Essa mudana ocorre atravs de uma system call ou chamada ao sistema.
Chamadas ao sistema (system call): Mecanismo responsvel pela mudana de modo usurio para modo kernel.
Ao invs de executar diretamente funes do kernel a aplicao executa uma funo intermediria que verifica
se o acesso ao kernel seguro e, s ento, completa a operao.
Voltando tela azul: As aplicaes podiam executar diretamente as funes do kernel sem a proteo da
mudana de modo, ou seja, o erro acontecia aps a execuo de uma funo do kernel. Com a mudana de
modo, se a execuo no for segura, a aplicao ser impedida de continuar a execuo e o sistema
permanecer estvel.
Exemplo: Chama uma funo XYZ que chama uma biblioteca de funes, que chama o modo kernel. O system
call verifica se est tudo ok e aciona a funo ou retorna um erro.
Execuo no protegida: d tela azul porque acessa diretamente ao kernel.
o Execuo protegica: no d tela azul, apresenta um erro do programa, pois ocorre a mudana do modo de
usurio para o modo kernel, pela chamada ao sistema (system call)
o
Tipo de estruturas:
Os sistemas so classificados em relao s atribuies do kernel e a relao entre seus mdulos em
monolticos, camadas e microkernel.
Os sistemas modernos so divididos em dois grandes grupos: arquitetura monoltica e microkernel. A diferena
entre elas est nas atribuies do ncleo do sistema operacional, denominado KERNEL.
Essa caracterstica muito importante no projeto de um Sistema Operacional e foi alvo de discusso entre dois
grandes nomes da computao: Andrew Tanenbaum (autor de sistema minix para fins educacionais) e Linus
Torvalds (Autor do Linux)
Arquitetura monoltica: Todo o kernel compilado e linkado em um nico bloco, tornando o cdigo eficiente, porm
de difcil manuteno. A incluso ou excluso de um mdulo requer que todo o kernel seja recriado.
Arquitetura microkernel: Somente as funes crticas fazem realmente parte do kernel. Demais funes so tratadas
como tarefas e executam em modo usurio fazendo chamadas ao kernel quando necessrio. Essa arquitetura simplifica
a manuteno, incluso e excluso de mdulos do sistema operacional no sendo necessrio gerar um novo kernel a
cada modificao e nem mesmo reiniciar o computador para ativao e desativao do mdulo.
Interrupes
So sinais de hardware fundamentais para a existncia de sistemas multitarefa, pois provocam a suspenso da tarefa
em execuo pela ocorrncia de um evento externo permitindo que outras tarefas compartilhem o tempo de uso do
processador.
Neste caso, o que est sendo compartilhado o TEMPO DE USO do processador e NO o processador em si. Cada tarefa
utiliza 100% do processador.
Parte do mecanismo executada pelo hardware (identificao do dispositivo, empilhamento dos registradores de
sistema) e parte feita por software atravs da rotina de tratamento da interrupo (interrupt handler).
Tipo de interrupes
As interrupes so geradas por dispositivos de hardware e podem ocorrer de forma sncrona ou assncrona.
Relgio (temporizador) -> sncrona
Dispositivos de E/S (sinalizao de concluso) -> assncrona
Falha de hardware (paridade de memria, erro de disco etc.) -> assncrona
O termo interrupo muitas vezes utilizado para qualquer atividade que suspenda a execuo de uma tarefa, mesmo
que seja solicitada pelo prprio programa. Utilizaremos, para este fim, o termo estado de exceo.
Estados de exceo: so provocados pela prpria aplicao.
Estouro aritmtico.
Diviso por zero.
Instruo ilegal.
Acesso no permitido.
Chamadas ao sistema.
ATENO:
Mascaramento de interrupes: Capacidade de inibir a ao de uma interrupo. As interrupes de segurana no
podem ser mascaradas.
As Interrupes podem acontecer de forma sequencial ou em cascata.
Sequencial: uma interrupo s poder ser atendida se nenhuma outra estiver em atendimento.
A Rotina de Servio desabilita as interrupes.
Uma nova interrupo s tratada aps o retorno.
A interrupo pode demorar a ser tratada, o que pode eventualmente ocasionar uma perda de dados.
Finalizada a Rotina de Servio de interrupo, o processador verifica por interrupes adicionais.
Cascata: Uma interrupo pode interromper a ao de uma rotina de tratamento de outra interrupo.
Interrupes tm prioridade.
Interrupes com alta prioridade interrompem rotinas de servio de interrupes de menor prioridade.
Exemplos de prioridade: Impressora, disco, comunicao
Conceitos de concorrncia.
Compartilhar recursos significa que diferentes usurios ou programas usam os recursos de forma concorrente.
Como administrar recursos compartilhados?
Os recursos so limitados e, assim, o uso dos mesmos pelos diferentes programas ou usurios precisa ser controlado e
administrado de forma a evitar possveis conflitos ou uma alocao por tempo indeterminado de algum recurso.
Concorrncia
a capacidade de execuo concorrente de tarefas permitindo um melhor aproveitamento de recursos.
Uma tarefa pode deixar a CPU por vontade prpria, quando precisa aguardar por um recurso, ou por uma
interrupo.
Em particular, uma interrupo de temporizador provoca a substituio da tarefa em execuo criando uma
alternncia entre as tarefas.
Ateno: A alternncia entre as tarefas pode dar a impresso de execuo simultnea de tarefas, mas no o que
ocorre.
Aula 2 - Processo
Conceito: Processo a instncia de um programa em execuo. a unidade de carga e alocao de uma tarefa. Em
sistemas mais antigos, tambm considerado a unidade de execuo, mas veremos, na prxima aula, que isso no
verdade nos sistemas modernos.
Cada processo nico em um sistema.
O processo criado quando o programa carregado para a memria principal para ser executado.
Um programa carregado para a memria onde aloca uma determinada rea para cdigo e dados.
Componentes
Um processo dividido em partes que so armazenadas na memria em uma estrutura denominada PCB (process
control block).
Ciclo de vida de um processo: CRIAO -> EXECUO -> TRMINO
CRIAO
Quando um processo criado?
Quando executamos um programa.
Quando um usurio acessa o sistema.
Quando um processo gera um processo-filho. (mouse over em processo-filho com o seguinte texto:
processo gerado internamente por outro processo)
Etapas de criao
Atribui um identificador nico.
Aloca uma entrada na tabela de processos.
Aloca espao para o processo.
Inicializa o PCB (Process Control Block).
Coloca o processo na fila apropriada.
Cria estruturas auxiliares
EXECUO DE UM PROCESSO
A execuo concorrente de processos leva s seguintes situaes:
Trocas de Contexto: substituio do processo em execuo.
Causas: Interrupo: Reao a um evento assncrono.
Trap: Associado a erro na execuo de uma instruo.
System Call: Requisio explcita.
Aes:
Salva o estado do processador.
Muda o estado do processo.
Muda o processo para a fila apropriada.
Seleciona o novo processo.
Atualiza o PCB do novo processo.
Modifica os mapeamentos de memria.
Restaura o estado do processador.
Trocas de Modo de Execuo
uma troca menor e mais rpida que a troca de contexto.
O estado do processo corrente no alterado. Ocorre geralmente quando o processador, ao final de um ciclo de
instruo, detecta a existncia de interrupo pendente. Nesses casos, o processador realiza os seguintes passos:
Salva o contexto do processo em execuo.
Carrega o PC com o endereo inicial da rotina de interrupo.
Troca o modo de execuo de usurio para kernel (privilegiado) para que instrues privilegiadas do
tratador de interrupes possam ser executas.
TRMINO DO PROCESSO
Quando acaba o programa que est em execuo.
Quando ocorre um erro.
Quanto forado pelo usurio a terminar.
Estados
No que diz respeito aos estados de um processo, o diagrama mais comum possui cinco estados e suficiente para o
entendimento dos demais estados intermedirios. Observe-o abaixo:
Novo
o Estado de admisso onde so geradas as estruturas de dados e alocado espao para o processo. O
processo recm-criado configurado como pronto;
Pronto
o Aps a admisso, o processo est pronto para ser executado, mas aguarda sua vez.
Bloqueado
o Um processo bloqueado quando precisa aguardar um recurso. Esse bloqueio sncrono, ou seja,
sempre que o programa executar um determinado trecho, o bloqueio acontecer (Ex.: Acesso a disco)
Executando
o Apenas um processo por vez pode estar nesse estado. Aps ser selecionado, o processo recupera seu
contexto que guardado aps ter sua execuo interrompida.
Fim
o Ao terminar a execuo do processo, as estruturas criadas so removidas e a rea alocada liberada.
Ateno: A substituio do processo em execuo denominada troca de contexto. Quando o processo interrompido
seu contexto armazenado. Quando o processo retorna para o estado de execuo, seu contexto recuperado. O
sistema operacional NO pode provocar troca de contexto, uma vez que um software e para gerar uma ao
precisaria estar em execuo.
Tipos
Os processos podem ser classificados em funo de caractersticas de execuo:
Processos CPU-Bound: So processos que passam a maior parte do tempo em estado de execuo ou pronto.
Realiza poucas operaes de E/S.
Processo I/O-Bound: So processos que passam a maior parte do tempo em estado de espera, pois realizam um
elevado nmero de operaes de E/S.
Processos em foreground: Permitem a comunicao direta do processo com o usurio durante sua execuo.
Em geral, o canal de entrada est associado ao teclado/mouse e de sada a um monitor.
Processos em background: Processos em que no existe interao direta com o usurio.
A estratgia utilizada para ordenar a execuo de processos pode variar em funo dos tipos de processo em um
sistema.
Aula 3 - Threads
Conceito de threads
Threads so fluxos de execuo distintos dentro de um mesmo processo, um executvel. Atualmente, uma thread
considerada a unidade de execuo de um sistema ao invs do processo como um todo.
Um processo pode ter uma ou mais threads. Veja o exemplo.
Estrutura
Um processo que contenha threads composto pelo seu PCB (Process Control Block) e pelos blocos especficos para
cada thread que contm uma estrutura de contexto de software e uma estrutura de contexto de hardware.
Cada thread possui contextos prprios de hardware e software, porm compartilham o mesmo espao de
endereamento alocado ao processo.
Tipo de threads
As threads podem ser classificadas em:
Threads de KERNEL: As threads de Kernel so criadas e gerenciadas pelo Kernel do sistema operacional, mas
no podem ser diretamente utilizadas pelo usurio. O suporte a mltiplas threads uma caracterstica do
sistema operacional. Exemplo: Bibliotecas de threads: POSIX Pthreads , Win32 threads, Java threads.
Threads de USURIO: As threads de usurio facilitam aspectos de portabilidade e so criadas e gerenciadas por
uma biblioteca no nvel do usurio. O Kernel no enxerga essas threads e, por esse motivo, no podem ser
gerenciadas individualmente.
Processo leve ou LWP.
A combinao entre os dois tipos de threads promove uma associao entre threads de usurio e de Kernel, porm a
forma de associao depende do sistema operacional.
Esta a soluo mais utilizada nos sistemas modernos.Pois o uso combinado de threads de usurio e de Kernel permite
melhor aproveitamento do tempo de CPU, possibilidade de paralelismo e facilidade de programao.
Vamos conhecer agora os modelos de associao entre threads de usurio e de Kernel.
Muitos para um:
Gerenciamento da thread feito no espao do usurio;
Usadas em sistemas que no suportam threads;
Uma thread bloqueada bloqueia todo o processo.
Um para um:
Cada thread de usurio mapeada para uma Kernel thread;
Criar uma user thread requer a criao de uma thread de Kernel;
Algumas implementaes restringem o nmero de threads suportada pelo sistema;
utilizada pelo Windows e pelo Linux.
Muitos para muitos:
Permite que vrias threads de usurio sejam mapeadas para um nmero menor ou maior de threads de Kernel
dinamicamente;
Permite que o SO crie um nmero suficiente de threads de Kernel.
Motivao para o uso de threads
Imagine a seguinte situao: Precisamos armazenar os tijolos produzidos por um equipamento que, ao trmino da
fabricao de um tijolo, espera que haja algum no final da esteira para peg-lo.
Se o procedimento de pegar o tijolo e lev-lo at o depsito for feito por uma nica pessoa, provavelmente diversos
tijolos caram no cho enquanto essa pessoa leva um dos tijolos para o depsito.
O que fazer? Se houver uma pessoa que fique na sada da esteira retirando os tijolos e os entregando para seus
assistentes, a chance de que um tijolo caia no cho ser muito reduzida, pois cada tijolo ser entregue em um perodo
de tempo constante ao assistente que o levar ao depsito. O encarregado de pegar os tijolos est a postos em um
tempo conhecido, permitindo, assim, calibrar o equipamento.
Pode haver muitos assistentes congestionando o caminho? Sim, identificando que o caminho no suficiente para a
demanda.
Pensando agora em uma aplicao, como um servidor para transferncias de arquivos. Uma thread fica a postos para
receber requisies que sero entregues a novas threads criadas sob demanda para atender a cada uma das
requisies. A cada requisio, uma nova thread criada e a thread principal retorna imediatamente para aguardar
novas requisies, evitando (ou reduzindo muito) o descarte de mensagens. Poderemos ter vrias threads sendo
executadas concorrentemente, podendo gerar um tempo de resposta maior, mas as requisies no sero perdidas.
S para registrar: esse tipo de servidor chamado de servidor concorrente.
As threads contribuem para o melhor uso dos recursos com:
Melhor aproveitamento da fatia de tempo - Permite que a execuo do processo continue mesmo que algumas
de suas Threads estejam bloqueadas.
Compartilhamento de Recursos - Threads compartilham memria e outros recursos do processo.
Economia de tempo de gerenciamento - Threads so mais econmicas de serem criadas e o custo da troca de
contexto menor. Todas as threads de um mesmo processo compartilham o mesmo espao de endereamento.
Utilizao de Mltiplos Processadores - Cada Thread pode ser executada em paralelo em um processador
distinto.
AULA 04 COMUNICAO ENTRE PROCESSOS
Caso 2
Espera ocupada: O processo em espera ocupada continua no estado de pronto e, a cada execuo, tenta
continuamente o acesso regio crtica. Esse procedimento consome tempo de CPU desnecessariamente.
Bloqueio: O processo ser bloqueado e, acordado quando o acesso a regio crtica estiver liberado.
Deadlock (impasse) : situao em que dois ou mais processos entram em um impasse aguardando um recurso que
nunca estar disponvel. Essa situao so desfeita por um agente externo (ex.: interromper um dos processos).
Starvation: Condio em que no h garantia de execuo de um processo. A execuo pode ser adiada por um tempo
inderteminado.
AULA 05 SINCRONIZAO ENTRE PROCESSOS
AULA 06 GERENCIA DE TEMPO DE CPU
Escalonador
AULA 07 GERENCIA DE ALOCAO DE MEMRIA
Estratgias de organizao lgica do espao de memria - Paginado
Quando um processo carregado, suas pginas so alocadas em quaisquer molduras disponveis, no
necessariamente contguas.
O S.O. precisa manter uma tabela de pginas por processo e uma lista de molduras disponveis.
Cada processo pode ter fragmentao interna APENAS NA LTIMA PGINA.
AULA 08 MEMRIA VIRTUAL
Princpio da localidade
As referncias de memria tendem a ser agrupadas em termos espaciais e/ou temporais.
Em um programa bem construdo, a probabilidade mdia da prxima instruo a ser executada ser a seguinte
ou estar nas redondezas da instruo corrente mais elevada do que outras hipteses.
Somente alguns trechos do cdigo so necessrios para a execuo num curto espao de tempo.
possvel ter uma razovel noo dos trechos de cdigo que sero utilizados num futuro prximo, reduzindo os
riscos de trashing.
Reduo de trashing:
Poderia ser traduzido como fazendo lixo
Ocorre quando o sistema passa a maior parte do tempo removendo e trazendo partes de processos ao invs de
executar instrues dos mesmos.
A memria normalmente est toda ocupada com partes de diversos processos; ento, quando o SO precisa
carregar uma nova parte, outra parte precisar ser removido para abrir espao.
Se for removida uma parte que seja referenciada logo a seguir, esta precisar ser carregada novamente.
PAGINAO
Estudaremos a organizao Paginada por ser a implementao mais usual de memria virtual.
AULA 09 DISPOSITIVOS DE ENTRADA E SADA
AULA 10 SISTEMA DE ARQUIVOS.