O documento fornece um resumo sobre sistemas operacionais. Explica que um sistema operacional é um software que gerencia os recursos de hardware e fornece uma interface de alto nível para programas acessarem dispositivos. Também discute conceitos como processos, memória, escalonamento e exclusão mútua, que são fundamentais para a operação de sistemas operacionais modernos.
Definição do problema
Umsistema de computação consiste de diversos
dispositivos.
Todos os dispositivos são complexos de
manipular.
Escrever programas que fazem usos desses
dispositivos é uma tarefa difícil.
4.
Como solucionar o
problema?
Utilizaruma camada de software chamada
sistema operacional.
Ele gerencia todos esses dispositivos e fornece
uma interface de mais alto nível para acesso ao
hardware.
5.
O que éum Sistema
Operacional?
É um software que realiza duas funções:
Estende a máquina, isto é, esconde do
programador a “verdade” sobre a programação
do hardware e apresenta uma forma mais simples
de acessar o hardware.
Gerencia recursos, isto é, controla todo o hardware
e controla a concorrência entre os diversos
processos que tentam usar esse hardware.
6.
Exemplo de acessoao
hardware
Queremos gravar dados em um disquete sem um
S.O:
O controlador do disquete tem 16 funções de
baixo nível;
Funções de leitura/escrita têm 13 parâmetros;
Retornam 23 informações de status.
É preciso verificar o status do motor.
7.
Resumindo...
Sistema operacional éum software
utilizado para facilitar a utilização do
hardware, fornecendo ao usuário
uma abstração maior, evitando que o
programador acesse as instruções de
hardware.
O SO gerencia os recursos de
hardware, como por exemplo:
endereçamento de memória, fila de
processos para execução,
concorrência entre processos.
Estrutura de um
computadormoderno
Dispositivos físicos: circuitos, unidades de disco
etc.
Microprogramação: constituída por softwares
capaz de interpretar e executar as instruções de
máquina recebidas da camada superior.
10.
Estrutura de um
computadormoderno
Linguagem de máquina: instruções que movem
os dados pela maquina efetuando operações
lógicas e aritméticas.
Sistema operacional: esconde a complexidade
do hardware e gerencia os recursos
compartilhados.
11.
Estrutura de um
computadormoderno
Utilitários: compiladores, editores texto,
interpretador de comando.
Aplicativos: navegador web, bate-papo etc.
Os sistemas operacionaisevoluíram com o passar
dos anos, acompanhando a arquitetura dos
computadores que executavam.
14.
1ª geração (1940– 1955)
Foi marcada pelo invento das válvulas.
Computadores eram formados por milhares de
válvulas ocupando salas imensas.
Não havia conceito de sistema operacional.
O acesso era feito diretamente nos painéis do
equipamento, onde o usuário programa seus
cálculos.
Surge o ENIAC, onde a programação era por fios
e pinos.
15.
1ª geração (1940– 1955)
(cont.)
Computador baseado em válvulas
Computador ENIAC
16.
2ª geração (1955– 1965)
Marcada por três avanços:
Utilização dos transistores em grande quantidade.
Sistema de processamento em batch.
Surgimento de linguagens de programação de alto
nível (Fortran, Algol e Cobol).
Criação de mainframes.
Programas deixam de ter relação direta com o
hardware.
17.
2ª geração (1955– 1965)
Processamento em batch:
Programas eram gravados em cartões perfurados.
Após a leitura, eles eram salvos em uma fita
magnética de entrada.
A fita de entrada era colocada no computador de
grande porte (IBM 7094). Ao final do
processamento, gravava o resultado em uma
segunda fita (de saída).
A segunda fita (de saída) era colocada em um
computador (IBM 1401) que lia a fita de saída e
imprimia seu conteúdo.
3ª geração (1965– 1980)
Surgimento dos circuitos integrados.
Surgimento das técnicas de:
Multiprogramação: execução de vários programas
por meio da divisão de memória em partes.
Timesharing: divide o tempo de uso do processador
entre todos os programas.
20.
4ª geração (1980– 1990)
Surgimentos dos PCs (personal computers).
Surgimento dos sistemas operacionais mais
modernos:
MS-DOS: linha de comando.
Novel network : sistemas operacional de rede.
Macintosh: baseado em janelas.
21.
5ª geração (1990– ...)
Surgimento da computação distribuída
Um programa em execução que pode ser dividido
em subprocessos para serem executados em outros
computadores na rede.
Surgimento do protocolo TCP/IP, padrão Ethernet
e o modelo cliente/servidor.
Surgimento da computação ubíqua.
Monotarefa
Os primeiros S.Oexecutavam um programa de
cada vez.
Os outros programas deveriam esperar o termino
para poder executar.
Todos os recursos ficavam dedicados a uma
única tarefa.
24.
Multitarefa
Suporta a execuçãoconcorrente de vários
programas, dividindo os recursos.
Classificado como:
Monousuário e Multiusuário.
Pode ser:
Cooperativo: o processo libera a CPU
voluntariamente (i.e não há interrupções)
Preemptivo: quando o sistema gera uma
interrupção e dá lugar a outro processo na CPU.
25.
Processos
É uma abstraçãode um programa em
execução.
Cada programa tem ao menos um processo
concorrendo os recursos de sistema.
Possui um espaço de endereçamento na
memória.
Pode assumir três estados:
Execução
Bloqueado
Pronto
Chamadas do sistema
(SystemCalls)
Interface entre softwares aplicativos e o sistema
operacional.
Exemplo:
Criar arquivos.
Acessar drive de disquete, CD-Rom etc.
Processos
Um processo étudo aquilo que o processador
executa.
E a entidade pela qual a utilização da memória
de um programa, tempo de processador e
recursos de E/S podem ser gerenciados e
monitorados pelo sistema operacional.
O processo pode ser visto como a abstração de
um programa em execução.
34.
Processos
Exemplo
João
vai fazer umbolo. Ele
vai utilizar uma receita para
saber quais ingredientes e
saber como preparar tudo.
Quem é o processador?
Quem é o programa?
Quem é o processo?
35.
Processos
Todo software executávelem um computador
moderno, até mesmo o sistema operacional, é
organizado em processos.
Os sistemas atuais permitem ao usuário a
chaveamento de vários processos.
Esse chaveamento nos dá a sensação de que os
programas são executados paralelamente.
36.
Troca de processos
Comofunciona a troca de processos?
Salvar o conteúdo atual dos registradores da CPU
referentes a um processo que esta deixando o
processador.
Carregar os registradores com o conteúdo do
processo que esta ganhando a CPU.
Processos
Principais eventos quelevam à criação de
processos
inicialização do sistema
execução de chamada ao sistema de criação de
processos
solicitação do usuário para criar um novo processo
39.
Processos
Condições que levamao término de processos
saída normal (voluntária)
saída por erro (voluntária)
erro fatal (involuntário)
cancelamento por um outro processo (involuntário)
40.
Estados do processo
Oprocessador não pode ser ocupado por todos
os processos ao mesmo tempo.
Existe uma competição entre os processos para
entrar em execução.
O sistema operacional deve controlar essa
competição.
41.
Estados do processo
Pronto(aguardando na fila de processos)
Execução (esta no processador)
Bloqueado (aguardando E/S)
42.
Subprocessos
Uma aplicação podeser dividida em partes que
trabalham concorrentemente.
Consiste em particionar o processo gerado
para controlar a aplicação (processo pai) em
outros subprocessos subordinados a este que são
chamados de processos filhos, ou apenas
subprocessos
Subprocessos
Conforme aumenta-se autilização de
subprocessos, há um desperdício de tempo para
criar e destruir estes.
Para resolver este problema, criou-se o conceito
de threads.
45.
Threads
São consideradas processosmais leves.
Enquanto os processos são usados para agrupar
recursos, as threads são as entidades
escalonadas para a execução na CPU.
Um processo possui pelo menos uma thread
(linha de controle).
Escalonamento
Vimos que oestado de pronto possui uma fila
de processos aguardando a liberação da CPU.
O componente que tenta manter o processador
ocupado o tempo todo, escolhendo que será o
próximo processo a ser executado é o
escalonador.
Algoritmos de
escalonamento
First InFirst Out (FIFO)
Constitui-se no esquema mais simples de
escalonamento em que os processos são
executados do início até o fim, na ordem de
chegada.
52.
Algoritmos de
escalonamento
Round Robin– Alternância Circular
Processos são executados na ordem FIFO, mas com
um intervalo chamado quantum.
Ao final de seu quantum, se o processo ainda
estiver em execução, é interrompido (preempção)
e voltará para o estado de pronto (final da fila) e o
próximo processo da fila será alocado para ocupar
a CPU.
Se o processo terminar antes de finalizar o seu
quantum, a CPU será liberada.
53.
Algoritmos de
escalonamento
Round Robin– Alternância Circular
Exemplo: quantum de 20 ms
Processo
Tempo de Uso da CPU
em ms (milissegundos)
P1
P2
P3
P4
50
14
65
21
54.
Algoritmos de
escalonamento
Shortest JobFirst – Processo mais curto primeiro
Processos menores são executados primeiro.
Processos curtos são favorecidos.
Processo maiores são prejudicados.
Pouco utilizado na prática.
55.
Algoritmos de
escalonamento
Shortest JobFirst – Processo mais curto primeiro
Exemplo:
Processo
Tempo de Uso da CPU em
ms (milissegundos)
Chegad
a
P1
7
0
P2
4
2
P3
1
4
P4
4
5
Deadlock
Acontece quando doisou mais processos estão
disputando recursos e nenhum deles consegue
seguir a execução porque ambos estão
bloqueando uns aos outros.
Exemplo:
Dois processos querem gravar um CD.
Processo P1 aloca o Gravador.
Processo P2 aloca o HD.
P1 espera P2 terminar de usar o HD.
P2 espera P1 terminar de usar o gravador.
58.
Exclusão Mútua
Evitar quemais de um processo utilize um recurso
compartilhado.
Condições para exclusão mútua:
1.
2.
3.
4.
Dois processos não podem estar dentro de
suas regiões críticas ao mesmo tempo,
compartilhando o mesmo recurso.
A exclusão mútua dos processos deve ser
independente da velocidade dos processos
ou o número de CPUs.
Um processo executado fora da região
crítica não pode bloquear outros processos.
Nenhum processo esperará para sempre
para entrar em sua região crítica.
59.
Exclusão mútua com
esperaocupada
Se um processo está acessando uma região
crítica, ou seja, esta em execução, todos os
outros processos que precisarem acessar esta
região deverão entrar em estado de espera
ocupada.
Esta espera se refere apenas à região crítica.
Desabilitar interrupções.
Variável Lock.
Variável Turn.
Peterson.
Instrução TSL.
60.
Desabilitar interrupções
Desabilitar todasas interrupções, inclusive as do
sistema operacional, quando uma região crítica
está sendo acessada, garantindo que o processo
em execução termine de executar a região
crítica sem a intervenção de outros processos.
61.
Variável Lock
Esta soluçãoutiliza um algoritmo em que cada
recurso compartilhado possui uma variável global
chamada lock, com valor inicial igual a 0.
O algoritmo controla o acesso à região crítica
por meio da variável lock. Ao consultar, se o seu
valor for 0, o processo executará a região crítica;
e se for 1, o processo aguardará até que a
variável lock se torne 0.
62.
Variável Turn
Se avariável turn for igual a i, o processo de
número i executará a região crítica até terminar.
Ao sair, o processo altera o valor de turn para i+1
para que o próximo processo, ao executar, tenha
acesso à região crítica.
Instrução TSL
É umainstrução utilizada em muitos
processadores que permite a implementação de
variáveis lock.
A vantagem é que nem mesmo uma interrupção
de hardware pode interromper a execução.
Gerenciamento de
memória
Na memóriaprincipal ficam todos os programas
e os dados que serão executados pelo
processador.
Possui menor capacidade e custo maior.
S.O buscam minimizar a ocupação da memória e
otimizar sua utilização.
Componente é o gerenciador de memória.
67.
Gerenciamento de
memória
Tarefas dogerenciador de memória:
Monitorar quais partes da memória estão utilizadas
e quais estão disponíveis.
Realizar alocação e liberação da memória para os
processos.
Gerenciamento do swapping (troca) entre a
memória principal e a secundária.
68.
Gerenciamento de
memória
Esquemas degerenciamento de memória:
Mantém os processo fixos na memória principal.
monoprogramação
Movem os processos entre a memória principal e
secundária (swapping e paginação).
multiprogramação
69.
Gerenciamento sem
paginação
Foram utilizadasnos sistemas mais antigos.
A memória era compartilhada entre o S.O e os
programas.
Chamada de monousuário ou
monoprogramação.
Somente um processo pode ser executado a
cada instante.
Gerenciamento de memória
compartições fixas
Em direção à multiprogramação foram criadas
partições fixas com tamanhos diferentes na
memória principal.
A idéia é utilizar sempre o menor espaço possível.
Com tamanho fixo das partições, todo espaço
naquela partição que não era utilizado pelo
processo era perdido.
Funciona bem quando as tarefas são do mesmo
tamanho ou quando os tamanhos são
conhecidos previamente.
Gerenciamento de memória
compartições fixas
Surge um problema quando partições grandes
está com a fila vazia e uma fila para partição
pequena está com a fila cheia.
Solução: utilizar uma única fila.
O processo mais próximo do início da fila que se
ajusta na partição vazia poderia ser carregado.
Troca de processos
Nemsempre existe memória principal para todos
os processos.
Alguns processos devem ser mantidos no disco
(memória secundária).
Técnicas:
Swapping.
Memória virtual.
76.
Swapping
Consiste em trazero processo inteiro do disco
para a memória, executá-lo e devolve-lo para o
disco.
Os processos que estão sobrando ficam na
memória secundária e trazidos de lá
dinamicamente.
77.
Swapping
Vantagem em relaçãoàs partições fixas:
Número, posição e tamanho das partições variam
dinamicamente.
Com o tempo são criadas lacunas na memória
principal.
Técnica de compactação de memória para
mover os dados para baixo.
Swapping
É provável quea área de dados (heap e pilha)
do processo cresça durante a execução.
Se houver espaço adjacente ele será alocado
para o processo.
Se não houver espaço adjacente o processo
inteiro deverá ser movido para outra área da
memória principal.
Pode-se alocar uma memória extra sempre que
fizer a troca ou mover um processo.
Memória virtual
Divide-se oprograma em módulos chamados overlays
(sobreposição).
No princípio, o programador deveria fazer a divisão do
programa em módulos.
Mais tarde, essa tarefa passou para o S.O.
Assim, um programa grande que excedesse a memória física
do computador poderia ser executado.
82.
Memória virtual
Um programade 32 MB pode ser executado em
uma máquina com apenas 8 MB, por meio de
uma escolha cuidadosa feita pelo sistema
operacional em que 8 MB será mantido ativo na
memória em cada instante, dinamicamente,
dando a ilusão de que o programa inteiro está
na memória.
Essa troca de módulos é a técnica de
paginação.
83.
Paginação
No sistemas commemória virtual, o endereço
virtual e físico não são os mesmos.
Quem realiza o mapeamento dos endereços
virtuais para o endereço físico é a unidade MMU
(memory management unity).
Paginação
Como exemplo, nossocomputador possui 32 KB
de memória física.
Queremos executar um programa de 64 KB.
O programa não pode ser carregado totalmente
na memória.
Assim, partes do programa serão carregadas
quando necessário.
Paginação
Neste caso, aspáginas marcadas com um X não
estão mapeadas no momento.
Se o programa tentar utilizar, ocorrerá o pagefault.
Ele deverá escolher uma página pouco utilizada,
colocá-la em disco e carregar a pagina
desejada.
88.
Algoritmos de substituição
depáginas
Algoritmo FIFO
Baixo custo.
Mantém uma lista de todas as páginas, com a
página mais velha no inicio e a mais nova no fim.
Quando recebe um page-fault a primeira página a
sair é a mais velha (início da fila).
Pouco utilizado porque pode ser removida páginas
muito utilizadas
Algoritmos de substituição
depáginas
Relógio
Utiliza um bit (R) - referenciada
Assim o SO sabe qual página é mais ou menos
utilizada.
As páginas são mantidas em lista circular.
Um ponteiro aponta para a mais antiga. Se
acontecer um page-fault verifica o bit (R). Se for 0
é porque não esta referenciada e substituirá. Se for
1, seta R = 0 e avança o ponteiro até encontrar
uma pagina com R = 0.
Algoritmos de substituição
depáginas
Algoritmo LRU (least recently used)
Baseia-se na idéia de que uma página utilizada
recentemente pode ser utilizada novamente.
Portanto, páginas que não foram utilizadas
recentemente provavelmente permanecerão nãoutilizadas durante mais tempo.
Assim, ele remove as páginas menos utilizadas
recentemente.
Sistemas de
entrada/saída
Os dispositivosde E/S são a comunicação do
sistema operacional com o mundo externo.
Os dispositivos de entrada e saída são
controlados pelos sistemas operacionais.
O S.O emite comandos para os dispositivos,
realiza tratamento de erros e oferecer uma
interface simples, que abranja todos os
dispositivos do sistema.
Esses dispositivos apresentam uma grande
variação de velocidades.
Sistemas de
entrada/saída
Para queo sistema operacional controle um
dispositivo de E/S é necessário que interaja com
um componente eletrônico chamado
controlador de dispositivo e um dispositivo
mecânico.
Controlador de dispositivo
Placa de circuito eletrônico.
Dispositivo mecânico
É o dispositivo propriamente dito
98.
Sistemas de
entrada/saída
Exemplo: Mouse
Ocomponente eletrônico seria o circuito que
interpreta as coordenadas X e Y e envia para o
SO posicionar o cursor na tela.
O componente mecânico seria a esfera ou o
dispositivo ótico e os botões.
99.
Sistemas de
entrada/saída
Drivers dedispositivo são os programas que
possibilitam a comunicação entre o S.O e o
dispositivo.
São desenvolvidos pelo fabricante do dispositivo.
Cada S.O precisa do seus próprios drivers.
Além de controlar o dispositivo, o driver também
trata os erros.
100.
Sistemas de
entrada/saída
Buffers:
Região dememória temporária utilizada para
escrita e leitura de dados.
São utilizados quando existe uma diferença entre a
taxa em que os dados são recebidos e a taxa em
que eles podem ser processados.
Também são utilizados como armazenamento
temporário (ex. buffer do HD).