Introdução;
Modelos de processo;
Algoritmo de escalonamento;
Sistemas de arquivos;
Thread
Tipos de sistemas;
2
Sistema operacional
Software que gerencia todos os recursos da máquina
Responsável por criar uma interface entre os seus usuários
e o hardware.
Para que essas funções sejam desempenhadas,
são necessários um conjunto de componentes
padrão, que estão presentes em todos os
sistemas operacionais.
Processo
Programa em execução;
Contém o programa executável, os dados do
programa e a sua pilha de execução.
Cada processo possui:
Espaço de endereçamento (localização) em memória
(principal)
O conceito de processo foi criado devido à
multiprogramação
Em SOs monoprogramados a memória é dividida entre SO
e único programa em execução
Com multiprogramação a memória é dividida entre SO e
diversos processos
Algoritmo (componente do SO) que controla como
os processos ocuparão a CPU em sistemas de tempo
compartilhado.
Decide qual o próximo processo a ocupar a CPU;
Decide a quantidade de tempo em que processo
ocupaCPU;
(Novo)
Programa escolhido para ser executado
(Pronto)
Preparado para executar, aguardando a liberação da CPU
(Em execução)
Em execução, utilizando a CPU
(Suspenso)
Em suspensão, aguardando operação de I/O (Entrada/Saída)
(concluído)
Processo finalizado. Será destruído pelo SO e recursos liberados.
“Em execução” para “ Em espera”:
Ocorre quando um processo descobre que não pode continuar pois está
esperando por um evento.
“Em execução” para “ Pronto”:
Ocorre quando o escalonador decide que o processo em execução atuou
por tempo suficiente e permite que outro processo em execução tenha
algum tempo da CPU.
“Pronto” para “Em execução”:
Ocorre quando todos os outros processos tiveram sua fatia justa e é hora
daquele que estava pronto voltar para a CPU para executar novamente.
Em espera” para “Pronto”:
Ocorre quando acontece o evento externo pelo qual o processo está
esperando acontecer. Se nenhum outro processo está executando nesse
instante, a transição será ativada imediatamente e o processo começará a
executar..
Criam processos
Início do sistema;
Chamada de Sistema de criação de processo por um
processo em execução;
Requisição do usuário para criação de um novo processo;
Finalizam processos
Saída voluntária;
Erro fatal;
Cancelamento por outro processo,
etc.
Pode ser feita através de troca de mensagens ou
compartilhamento de recursos;
Pipe
tipo de pseudo-arquivo que pode ser utilizado para
conectar dois processos
Tradicionalmente um processo possui uma única
linha de execução;
Sistemas modernos possuem suporte a múltiplas
linhas de execução em um único processo;
As threads também podem assumir os mesmos
estados de um processo;
Cada thread possui contador de
programa, registradores e o seu próprio estado.
SO utiliza uma unidade de armazenamento lógico
de dados denominado arquivo;
Sistema de arquivos:
Estrutura criada com o objetivo de permitir operações de
criação, acesso e modificação a dados organizados na
forma de arquivos.
Estrutura mais comum e antiga possuindo vários
módulos com diferentes funções trabalhando em
conjunto;
S.O é escrito como uma coleção de
procedimentos, que podem chamar qualquer um
dos outros procedimentos sempre que for
necessário;
A principal vantagem dessa arquitetura é a
eficiência, uma vez que existe comunicação direta
entre os componentes do S.O.
Organizado como uma hierarquia de níveis e cada
um construído sobre o nível imediatamente abaixo.
As principais vantagens dessa estrutura de S.O são:
Modularidade
SO realiza suas operações de forma modular
Abstração
Uma camada não precisa conhecer como os serviços da
camada inferior foram construídos, bastando apenas
conhecer a sua interface.
São compostos por um monitor de máquina virtual que
executa no hardware básico e faz a
multiprogramação, oferecendo várias máquinas
virtuais;
Dentre as principais vantagens:
A proteção aos recursos do sistema, não
havendo, portanto, problemas de segurança, pois cada máquina
virtual é completamente isolada das outras.
Exemplos:
Máquina virtual JAVA e VirtualBox
Tendência em mover código para camadas mais
altas, removendo o máximo de funções do
S.O, objetivando a minimização do seu núcleo
(kernel);
Um processo é considerado cliente, se ele requisita
alguma coisa a outro processo.
Um processo é servidor quando ele disponibiliza algum
serviço a outros processos.
Modelo é completamente adaptável ao uso em sistemas
distribuídos.
O máximo de código do kernel é movido para o
espaço do “usuário” e a comunicação acontece
entre os módulos do usuário através da troca de
mensagens;
Serviços do S.O, tais como, gerência de
arquivos, gerência de memória e escalonamento
são disponibilizados como processos do S.O, a nível
de usuário