Buscar

so-aula01-Introducao

Prévia do material em texto

O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Introdução a Sistemas Operacionais
Sistemas Operacionais
Tércio de Morais1
1Ciência da Computação
Universidade Federal de Alagoas - Campus Arapiraca
Arapiraca, 21 de maio de 2019
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 1 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
3 Organização de Sistemas operacionais
4 Bootstrapping 5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 2 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Objetivos
Ao fim desta aula saberemos. . .
O que é um Sistema Operacional
Qual o papel de um SO
Como está organizado um SO
Como um SO é carregado no hardware
Como uma aplicação faz chamadas ao sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 3 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
3 Organização de Sistemas operacionais
4 Bootstrapping
5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 4 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
O que são Sistemas Operacionais?
Arquitetura de um Computador Moderno
Um ou mais processadores
Memória principal
Sistema de armazenamento (discos)
Impressoras
Placa de rede
Dispositivos de entrada e saída
A questão é . . .
Como fazer todos esses componentes trabalharem
de forma integrada e coordenada?
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
O que são Sistemas Operacionais?
Arquitetura de um Computador Moderno
Um ou mais processadores
Memória principal
Sistema de armazenamento (discos)
Impressoras
Placa de rede
Dispositivos de entrada e saída
A questão é . . .
Como fazer todos esses componentes trabalharem
de forma integrada e coordenada?
Exemplo: Motor
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
O que são Sistemas Operacionais?
Arquitetura de um Computador Moderno
Um ou mais processadores
Memória principal
Sistema de armazenamento (discos)
Impressoras
Placa de rede
Dispositivos de entrada e saída
A questão é . . .
Como fazer todos esses componentes trabalharem
de forma integrada e coordenada?
Exemplo: Motor
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
O que são Sistemas Operacionais?
Arquitetura de um Computador Moderno
Um ou mais processadores
Memória principal
Sistema de armazenamento (discos)
Impressoras
Placa de rede
Dispositivos de entrada e saída
A questão é . . .
Como fazer todos esses componentes trabalharem
de forma integrada e coordenada?
Sistemas Operacionais
Exemplo: Motor
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Estrutura de um Sistemas Operacionais?
O que conhecemos como SO não é, exatamente, um SO
As distribuições de SO trazem um conjunto de ferramentas que vão muito além so SO
O nosso propósito (contexto de Ciência da Computação) é estudar a integração do SO com o
hardware: kernel, monitor ou supervisor
Funções de um SO
Gerenciar o compartilhamento de recursos de hardware entre entidades concorrentes
Fornecer interfaces que abstraiam a complexidade e heterogeneidade do hardware
Intermediar integrações entre aplicaões de alto nível e hardware
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 6 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Definição
O que é um SO
Conjunto de ferramentas que fornecem serviços, criando uma interface entre aplicações e o hardware
ao mesmo tempo que gerencia os recursos do hardware compartilhando-os entre mútiplos porcessos
Papel do SO
Gerenciador de recursos – reponsável pelo hardware. Recebe solicitações de acesso por parte das
aplicações podendo aceitar ou recusar. Se aceitar, alocar recursos de forma segura e eficiente.
Exemplo: alocação de memória.
Provedor de Serviços – ponto de vista do proprietário do sistema ou perspectiva da aplicação que
espera abstração dos serviços de baixo nível.
Exemplo: serviço de sockets.
Máquina Virtual – Nesta perspectiva, a aplicação não sabe o que é SO nem hardware, nem
quantas camadas de software básico existem acima do hardware.
Exemplo: Máquina Virtual Java (JVM) e computação em nuvens.
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 7 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
3 Organização de Sistemas operacionais
4 Bootstrapping
5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 8 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Áreas de Resposabilidades do SO
Processos
Memória
Dispositivos de E/S
Sistemas de arquivos
Segurança
Redes
Interface com o usuário
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 9 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Processos
O que é
Um processo é um programa em execução
Um processo é executado na CPU
A CPU é o recurso responsável pelo gerenciamento:
Processos (inclusive o próprio processo)
Serviços de suporte aos processos
Criação
Distruição
Alteração de prioridade
Comunicação interprocessos
Sincronização
Características
Em sua maioria, estes serviços são executados por um processo para agir sobre o outro.
Um processo pode agir sobre ele mesmo: destruição.
O SO é responsável pelo escalonamento e troca de contexto na CPU.
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 10 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Memória
Espaço de memória é responsabilidade crucial do SO
O desempenho do sistema depende do subsistema de gerenciamento
É necessário assegurar que processos não interfiram em áreas de memória de outros processos
Serviços de suporte à memória
Solicitação direta à memória
Solicitação indireta à memória
Liberar memória para o Solicitação
Solicitar áreas de de memória compartilhadas entre processos
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais11 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Dispositivo de E/S
Função primária do SO: fornecer serviços que simplifiquem o desenvolvimento de aplicações
Como um programa envia um PDF para a Impressoras?
Se não houvesse os drivers de impressora, o que aconteceria?
E quando mudasse a impressora?
Muitas vezes, o dispositivo é compartilhado por vários processos. Exemplo: acesso ao disco rígido
Serviços do SO
Associar dispositivo a um processo
Ler dados de um dispositivo
Escrever dados em um dispositivo
Fechar e liberar Dispositivos
Fornecer acesso exclusivo a dispositivos apropriados
Funções especiais
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 12 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Sistema de Arquivos
A maiorira das ações de dispositivos de E/S é armazenar e recuperar dados persistentes que chamamos
de arquivos
Serviços de Sistemas de Arquivos
Suas funções são similares às funções de dispositivos de E/S
Abrir e fechar um arquivo
Leitura de arquivo
Escrita de arquivo
Procurar um local dentro de um arquivo
Ler metadados
Alterar metadados
.
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 13 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Sistema de Arquivos
A maiorira das ações de dispositivos de E/S é armazenar e recuperar dados persistentes que chamamos
de arquivos
Serviços de Sistemas de Arquivos
Suas funções são similares às funções de dispositivos de E/S
Abrir e fechar um arquivo
Leitura de arquivo
Escrita de arquivo
Procurar um local dentro de um arquivo
Ler metadados
Alterar metadados
Além disso, sistemas de arquivo perstam serviços às camadas superiores de conversão de nomes de
arquivos em endereços de dados. É onde entra a ideia de espaço de nomes como um conjunto de
nomes que um processo pode acessar.
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 13 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Segurança
Aspecto transversal em SO
Todas as outras áreas de responsabilidade tem a ver com elementos de segurança
Um processo não pode encerrar outro
Um processos não pode acessar a área de memória reservada ao kernel
Acesso a dispositivos de E/S devem ser controlados por permissões e propriedades.
Programas fazem solicitações ao SO e este determina se o program tem ou não permissão de
acesso.
Serviços do SO
Configurar políticas de segurança
Procurar políticas de segurança
Autenticar-se em um sistema remoto
Atender a uma solicitação de remota
Criptografar/decriptografar mensagens
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 14 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Redes
É uma das funções do subsistema de E/S
A sua diferença está na necessidade de implementar pilhas de protocolos
Construir uma mensagem para ser transmitida via rede é uma tarefa complexa
O SO abstrai essa função para as aplicações de mais alto nível
Exemplo: encapsulamento de mensagem de uma página de Web baseada no protocolo HTTP
Serviços de redes do SO
Estabelecer conexão com o serviço remoto
Atender conexões de um cliente remoto
Enviar mensagens via rede
Receber mensagens via rede
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 15 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Processos
Memória
Dispositivo de E/S
Sistema de Arquivos
Segurança
redes
Interface com o usuário
Interface com o usuário
A maioria dos projetos de SO estruturam as interfaces como aplicação normal
Atender as necessidades de usuários uma área muito ampla
São exemplos de interface:
Terminal de comandos DOS e Linux
Gerenciador de tarefas do Windows
Monitor de recursos
Interface para gerenciamento da rede
Não abordaremos esta responsabilidade em nosso curso
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 16 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
3 Organização de Sistemas operacionais
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
4 Bootstrapping
5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 17 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Organização de Sistemas Operacionais
Modelos
Projetos de SO são projetos complexos e críticos. Algumas técnicas de Organização geral são
comumente usadas:
Modelos Monolítico
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 18 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Modelos Monolíticos
Sistemas organizados como um único Programa
Catacterizado pela a falta de um modelo de Organização
Apesar de muitos projetos iniciais seguirem este modelo, é recomendado que se adote um modelo
de organização q não seja monolítico
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 19 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Modelos em Camadas
Modelo amplamente utilizado na computação
– pilha de camadas
Ideia de que cada camada acima aumenta o
nível de abstração
Princípio
Uma camada superior chama funções da camada
imediatamente inferior
Uma função de uma camada inferior responde a
chamadas da camada imediatamente superior
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 20 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Microkernel
Boa parte da funcionalidade tradicional do
kernel poderia ser retirada dele e movida para
outros processos
O papel principal do microkernel é escalonar
os processos e torcar mensagens
Princípios
Kernel menor e mais fácil de escrever e manter
Comunicação por troca de mensagens
Funções de gerenciamento do SO como
processos normais
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 21 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Modelos Monolíticos
Modelos em Camadas
Modelos de Microkernel
Modelos de Máquina Virtual
Máquina Virtual
Ideia de fornecer a ilusãoque uma máquina
que o SO gerencia
O processo que roda neste SO tem a ilusão de
estar “executando sozinho ”em um hardware
Princípios
Ilusão de muitas cópias de hardware
Execução de mais de um SO sobre um mesmo
hardware
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 22 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
3 Organização de Sistemas operacionais
4 Bootstrapping
5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 23 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Bootstrapping
Questão: o ovo ou a galinha?
O SO só pode oferecer seus serviços depois de estar carregado na memória e em execução.
No entanto, alocar memória, carregar código de um dispositivo de armazenamento e iniciar sua
execução são serviços do próprio SO.
Bootstrapping
Processo de levar o sistema do hardware puro ao ponto de se ter um SO em execução para gereneciar
o hardware.
Também conhecido como partida a frio, partida não programada e carga do programa inicial (IPL –
Initial Program Load).
Abordagens
Painel frontal – permitia o acesso para configuração da memória e CPU
Programa de bootstrap – geralmente um código em cartão perfurado
Memória somente de leitura – memória ROM (Read-Only Memory)
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 24 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Agenda
1 O que são Sistemas Operacionais?
2 Resposabilidades do SO
3 Organização de Sistemas operacionais
4 Bootstrapping
5 Chamadas ao Sistema
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 25 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Chamadas ao Sistema – System Calls
Ligação entre a aplicação e o sistema
Chamada ao sistema é um mecanismo pelo qual um processo pode solicitar os serviços de um SO.
Proveem interfaces com os serviços disponibilizados pelo SO. Geralmente são rotinas escritas em
C e C++
Serviços de mais baixo nívelpodem ser escritas em assembly
Exemplos de chamadas do UNIX
fork() – cria uma cópia de um processo existente
exit() – encerra o processo solicitante
open() – abre um arquivo para leitura ou gravação
read() – lê dados de um arquivo ou dispositivo
write() – grava dados em um arquivo ou dispositvo
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 26 / 27
O que são Sistemas Operacionais?
Resposabilidades do SO
Organização de Sistemas operacionais
Bootstrapping
Chamadas ao Sistema
Chamadas ao Sistema – Exemplo de chamada de sistema por uma aplicação
Leitura de arquivo em C++
int load_hdr (char *name , char *buf) {
int fd = open(name , O_RDONLY );
if(fd < 0)
return fd;
n = read(fd , buf , HDR_SIZE );
close(fd);
return (n);
}
Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 27 / 27
	O que são Sistemas Operacionais?
	Resposabilidades do SO
	Processos
	Memória
	Dispositivo de E/S
	Sistema de Arquivos
	Segurança
	redes
	Interface com o usuário
	Organização de Sistemas operacionais
	Modelos Monolíticos
	Modelos em Camadas
	Modelos de Microkernel
	Modelos de Máquina Virtual
	Bootstrapping
	Chamadas ao Sistema

Continue navegando