Apresentação Sobre Sistemas Operacionais com Orbis OS
408 views
51 slides
Jan 25, 2022
Slide 1 of 51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
About This Presentation
Apresentação para a disciplina de Sistemas Operacionais na Unisinos. Usando como sistema o Orbis OS
Size: 523.97 KB
Language: pt
Added: Jan 25, 2022
Slides: 51 pages
Slide Content
SISTEMAS DE
INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS
OPERACIONAIS
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Orbis OS
Lucas Soares Nogueira
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Orbis OS
Tópicos da Apresentação
●Sobre o Orbis OS;
●Gerenciamento de Processos;
●Demonstração de Gerenciamento de Processos no Orbis OS;
●Gerenciamento de Memória;
●Demonstração de Gerenciamento de Memória no Orbis OS;
●Gerenciamento de Dispositivos de I/O;
●Demonstração de Gerenciamento de Dispositivos de I/O no Orbis
OS;
●Como está organizado o Kernel no Orbis OS;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Orbis OS
●O Orbis OS é um sistema feito para fãs de anime, mangá e para pessoas que
querem um sistema fácil de usar;
●Sua interface é baseada no Gnome 2;
●Foi criado utilizando a ferramenta de criação de sistemas operacionais Suse Studio
(o que o faz ter características do OpenSuse, como o gerenciador de pacotes
zypper e o YaST, por exemplo);
●Sua versão pré-alpha foi lançada em 2011 e sua última atualização foi feita em
2015 (ainda em pré-alpha);
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos
●Processos podem ser entendidos como “programas em execução”;
●Existem processos de primeiro e segundo plano (na realidade esse número pode
variar). Sendo primeiro plano para interagir com o usuário e segundo que não
interagem com o usuário (ex: receber e-mails);
●Cada processo possui instruções, espaço de endereçamento (texto, dados, pilha
de execução), contexto de hardware e contexto de software;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos
●Podem ser CPU Bound ou IO Bound;
●Podem ser criados por outros processo (iniciando uma hierarquia de processos);
○Nesse caso, temos por exemplo, o método fork(), que vai copiar o processo
pai na memória, mas com identificadores diferentes;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos - Criação de Processo Filho
import os
# Criando processos filhos
os.fork()
os.fork()
print("Texto que sera executado!")
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos - Criação de Processo Filho
Número de filhos: 2
N
- 1
N: quantidade de fork() no programa
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos
●Encerramento de um Processo:
○Término normal;
○Término por erro - Ex: arquivo requisitado não existe no disco;
○Término por erro fatal - Ex: Tentar dividir por zero;
○Término por outro processo - Ex: Utilizar o comando kill em um terminal;
○Demonstração do comando kill
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos
Executando
Bloqueado Destruído
Criação
Apto
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Processos
●Tabela de Processos ou Process Control Block (PCB)
○Estado de um processo em um determinado tempo;
○Informações de contexto de cada processo;
○Informações sobre onde ele parou sua execução quando perdeu
processador, para que quando ele volte a ganhar processador ele recomece
suas instruções de onde parou sua execução;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●Threads ou processos leves, são linhas de execução;
●Processos são formados por uma ou mais threads;
●Um conjunto de threads pode compartilhar seu mesmo endereço de processo;
●Como elas compartilham um mesmo endereço, são menos independentes do que
um processo;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●Vantagens
○Pode ajudar no balanceamento entre CPU Bound e IO Bound. Isso por ser
possível ter threads CPU Bound e threads IO Bound como filhas de um
mesmo processo;
○Podem ajudar em trabalhos paralelos - Ex: Fazer requisições de diversas
informações em servidor;
○São mais rápidas de criar e destruir do que processos pesados;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●O método join() permite que esta thread seja executada até o fim. Após isso, as
demais threads continuam sua execução;
●Demonstração de Thread Join com Python:
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●Tipos de Thread
○Modo Usuário
○Modo Núcleo
○Híbrido
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●Tipos de Thread
○Modo Usuário
■Podem ser implementadas por uma biblioteca;
■Estão no nível de usuário;
■Escalonadas sem conhecimento do kernel;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads - Escalonamento a Nível de Usuário
Processo
threads
Nvl. Usuário
Nvl. Kernel Kernel pega um processo (não tem
acesso a threads diretamente)
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
●Tipos de Thread
○Modo Núcleo
■Criação, Gerenciamento e Escalonamento feitos no modo Kernel;
■Núcleo possui tabela de threads e de processos pesados;
■Gerência de threads mais cara por envolver alternância entre nível de
usuário e nível de kernel;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads - Escalonamento a Nível de Kernel
Nvl. Usuário
Nvl. Kernel Kernel tem acesso direto a threads
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Condição de Corrida;
●Região Crítica;
●Exclusão Mútua;
●Solução de Exclusão Mútua;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Condição de Corrida
○Dois ou mais processos estão concorrendo por um mesmo recurso;
○Em sistemas preemptivos, o tempo de uso da CPU que o processo está
utilizando pode tornar-se uma característica que poderá desfavorecer um
desses processos;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads - Condição de Corrida
Exemplo: Poltrona de Cinema
1.Cliente C1 (em São Leopoldo) lê Poltrona1 vaga
2.Cliente C2 (em Porto Alegre) lê Poltrona1 vaga
3.Cliente C1 compra Poltrona1
4.Cliente C2 compra Poltrona2
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Região Crítica
○Região de um programa, onde são realizados acessos e alterações a
recursos que são partilhados por dois ou mais processos;
○Para que não haja conflito, devemos proteger essas seções desabilitando
interrupções enquanto elas estiverem sendo acessadas.
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Exclusão Mútua
○Solução para Condições de Corrida;
○Impedem que mais de um processo faça uso de uma região crítica ao
mesmo tempo.
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Threads
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Soluções de Exclusão Mútua
○Semáforo
■Desenvolvido por Djikstra em 1965;
■É uma variável (“semaphore” ou “S”) que pode ser utilizada para
controlar o acesso a recursos que são compartilhados;
■Acessado por operações atômicas (ao iniciar, nenhum outro processo
pode acessar o semáforo);
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Mecanismos de Sincronização
●Soluções de Exclusão Mútua
○Semáforo
■É informado na inicialização, quantos processos estarão na fila;
■Duas operações atômicas de acesso:
●signal: V (Incrementar - “verhogen”)
○Incrementa S e Se S ≤ 0, retira processo da fila (wake_up())
●wait: P(Testar ou Experimentar - “proberen”)
○Decrementa S e Se S < 0, insere processo na fila (sleep())
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Escalonador
●Orbis usa a versão 2.6.37 do Linux. Logo, podemos inferir que ele está usando
CFS;
●Escalonador é o módulo do sistema que escolhe um processo da fila de aptos para
ganhar processador;
○Essa escolha é feita através de políticas de escalonamento;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Escalonador
●Políticas de Escalonamento
○Políticas de run-time;
○Políticas normais (não run-time);
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Escalonador
●Políticas de run-time;
○SCHED_FIFO - prioridade estática preemptiva. Ao menos 32 níveis de
prioridade devem estar disponíveis para essa política;
○SCHED_RR - similar ao SCHED_FIFO, mas usando round-robin (método de
time-slice para escalonar processos de mesma prioridade). Também com
pelo menos 32 níveis de prioridade;
○Obs 1: Prioridade estática (varia de 1 a 99 - nunca é alterado pelo
escalonador);
○Obs 2: SCHED_FIFO e SCHED_RR implementam a política de tempo-real
com prioridade estática especificada pelo padrão POSIX.
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Processos
Escalonador
●Demos
○/proc/sys/kernel/sched_rt_runtime_us - Define o período de tempo a ser
dedicado à execução de threads em tempo real, em microssegundos;
○cat /proc/PID/status - Status do Processo;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
●O sistema operacional deve prover uma forma para que processos compartilhem
memória de forma segura e eficiente;
●Memória Lógica - A memória que um processo é capaz de acessar. Ex: endereço
lógico de uma variável ponteiro;
●Memória Física - Implementada por circuitos integrados (hardware).
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Mapeamento de Memória
●A unidade de gerência de memória (MMU) é o componente do hardware que dá
mecanismos para o sistema operacional gerenciar a memória;
●A MMU mapeia endereços lógicos (ou virtuais) gerados por processos nos
correspondentes endereços físicos que serão enviados para a memória;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Paginação
●Fragmentação Interna - Desperdício de memória causado por carregamento de um
programa em uma área que ultrapassa o necessário. O que resulta em desperdício
de memória, isto é, memória perdida dentro da área alocada para um processo;
●Fragmentação Externa - Memória perdida fora da área ocupada por um processo.
O gerenciamento de memória faz com que determinado programa não possa
executar;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Paginação
●Paginação
○É um método de gerenciamento de memória que permite que o espaço de
endereço físico de um processo seja contíguo;
○Quebra o tamanho do processo em páginas de tamanho fixo;
○O espaço de endereçamento virtual é separado em páginas virtuais;
○O mapeamento de páginas do disco para a RAM é feito através de tabelas
de páginas e MMU;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Segmentação
●Informações (texto, dados, código, etc) segmentadas (não há mistura de
informações);
●Como as informações de mesmo tipo encontram-se segmentadas, podemos
tratá-las de forma diferente (ex: arquivo de texto será tratado como leitura e
escrita);
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Memória Virtual
●Memória Virtual tem por objetivo dar ao programador uma impressão de que há
mais memória do que ele possui na realidade;
●Pode-se utilizar os mecanismos de paginação ou segmentação para implementar a
memória virtual;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de Memória
Demos
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●Dispositivos de E/S são mecanismos que permitem ao computador ter
conhecimento de problemas e recuperar sua solução;
●Podemos ter dispositivos para interação humana com o computador (ex. mouse),
assim como dispositivos de comunicação entre computadores (ex. modem) e
dispositivos que se conectam ao computador (ex. HD);
●Podem ser divididos em Periféricos de Entrada, Periféricos de Saída ou Periféricos
de Entrada e Saída;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●Periférico é qualquer dispositivo que conectamos ao computador para haver essa
característica de E/S;
●Os periféricos conseguem se comunicar com o computador através de um
componente de hardware chamado Interface;
●Interfaces implementam um Controlador (hardware) que consegue traduzir
operações genéricas;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●Temos como operações genéricas de um Controlador:
○“Ler dados”;
○“Escrever dados”;
○“Reinicializar”;
○“Ler status”;
○“Escrever comando”;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●O Controlador de periféricos consegue enviar um sinal chamando atenção do
processador, através do mecanismo de interrupções;
●Lembrando - Interrupções:
○Interrupções de Software (Traps): Chamadas de Sistema;
○Interrupções de Erro: Exceções (ex. divisão por zero);
○Interrupções: Permite a comunicação de periféricos com o processador;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●É objetivo do subsistema de E/S padronizar as rotinas de acesso aos periféricos;
●Para haver essa padronização, o subsistema de E/S é dividido em camadas:
○E/S a nível de Usuário;
○E/S independente de dispositivo;
○Drivers de dispositivos;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●E/S a nível de Usuário:
○O acesso que o usuário tem dos dispositivos de E/S é fornecida por uma
interface de programação ou aos ambientes de desenvolvimento;
○Demo de E/S com Python;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
Entrada e Saída
●E/S independente de dispositivo:
○Implementa procedimentos e funções aos dispositivos de E/S;
■Escalonamento de E/S;
■Denominação;
■Buffering;
■Cache de dados;
■Alocação e liberação - evita acessos concorrentes;
■Direitos de acesso;
■Tratamento de erros;
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
●Drivers de dispositivos:
○Abstrai os vários dispositivos de E/S fornecendo uma visão facilitada desses
dispositivos através de um interface de programação única;
○Para que essa “facilitação” ocorra, os dispositivos de E/S são classificados
em:
■Orientados a Bloco:
●Transferência entre periférico e sistema são realizados através de
blocos de dados de tamanho fixo;
■Orientados a Caractere:
●Transferências byte a byte, a partir de um fluxo de caracteres;
Entrada e Saída
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
●Operações de E/S:
○E/S Programada:
■Modo mais simples de E/S;
■O CPU fica esperando o dispositivo de E/S estar pronto;
○E/S via Interrupções:
■Como dito anteriormente, ocorre através do Controlador de periféricos;
■Após finalizar a rotina de tratamento de interrupção, o processador
retoma a execução do processo interrompido;
○E/S com acesso direto à memória (DMA):
■General-purpose Processor;
■DMA (hardware) funciona auxiliando o processador;
Entrada e Saída
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Gerenciamento de E/S
●Operações de E/S:
○E/S com acesso direto à memória (DMA):
■Para iniciar uma transferência com DMA, a CPU escreve o endereço
da fonte para transferência e para seu destino e um número de bytes
para ser transferido;
■A CPU volta a lidar com a tarefa que ela estava fazendo;
■O DMA faz o trabalho de transferência e avisa a CPU quando tudo
estiver pronto;
Entrada e Saída
SISTEMAS DE INFORMAÇÃO
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Referências
Quarterman, J. S., A. Silberschatz, and J. L. Peterson. "Operating systems
concepts." (1985).
OLIVEIRA, Rômulo S. de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão
Sirineo. Sistemas
Operacionais. 3.ed. Porto Alegre: Bookman: Instituto de Informática da UFRGS,
2008.
LINUX KERNEL DOCUMENTATION. Disponível em:
<https://www.kernel.org/doc/html/latest/scheduler/index.html>
Red Hat - CPU Scheduling. Disponível em:
<https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/p
erformance_tuning_guide/s-cpu-scheduler>