Você está na página 1de 63

01 – INTRODUÇÃO AOS

SISTEMAS
OPERACIONAIS
Bruno B. F. Leonor

SISTEMAS OPERACIONAIS EMBARCADOS E IoT


Introdução aos Sistemas Operacionais
• um computador moderno consiste em um ou mais processadores, alguma memória principal, discos,
impressoras, um teclado, um mouse, um monitor, interfaces de rede e vários outros dispositivos de
entrada e saída
• se todo programador de aplicativos tivesse de compreender como todos os dispositivos
funcionam em detalhe, nenhum código jamais seria escrito
• por essa razão, computadores são equipados com um dispositivo de software chamado de
sistema operacional
Introdução aos Sistemas Operacionais
• Windows, Linux, FreeBSD, OS X, ...
Introdução aos Sistemas Operacionais
• Windows, Linux, FreeBSD, OS X, ...

O programa com o qual os usuários interagem, normalmente chamado


de shell (ou interpretador de comandos) quando ele é baseado em
texto e de GUI (Graphical User Interface) quando ele usa ícones, na
realidade não é parte do sistema operacional, embora use esse sistema
para realizar o seu trabalho.
Introdução aos Sistemas Operacionais
Introdução aos Sistemas Operacionais

}
núcleo
código de inicialização
drivers
programas utilitários
Introdução aos Sistemas Operacionais

} }
núcleo
código de inicialização modo núcleo
drivers
programas utilitários
Introdução aos Sistemas Operacionais

} modo usuário

} }
núcleo
código de inicialização modo núcleo
drivers
programas utilitários
Introdução aos Sistemas Operacionais
• shell ou GUI, é o nível mais inferior de software de modo usuário

• permite que ele inicie outros programas

• SO opera diretamente sobre o hardware


Introdução aos Sistemas Operacionais
sistema operacional X software normal (modo usuário)
Introdução aos Sistemas Operacionais
sistema operacional X software normal (modo usuário)

sistemas embarcados
Introdução aos Sistemas Operacionais
sistema operacional X software normal (modo usuário)

sistemas embarcados

SOs são enormes, complexos e têm vida longa


O que é um Sistema Operacional?

É difícil dizer com absoluta precisão o que é um sistema operacional,


além de ele ser o software que opera em modo núcleo — e mesmo isso
nem sempre é verdade.

Parte do problema é que os sistemas operacionais realizam duas


funções essencialmente não relacionadas: fornecer a programadores
de aplicativos (e programas aplicativos, claro) um conjunto de recursos
abstratos limpo em vez de recursos confusos de hardware, e gerenciar
esses recursos de hardware.
Abstração de recursos
• acessar os recursos pode ser uma tarefa complexa

• definir interfaces abstratas para os recursos


Abstração de recursos
• acessar os recursos pode ser uma tarefa complexa

• definir interfaces abstratas para os recursos

prover interfaces de acesso aos dispositivos


Abstração de recursos
• acessar os recursos pode ser uma tarefa complexa

• definir interfaces abstratas para os recursos

prover interfaces de acesso aos dispositivos

tornar os aplicativos independentes do hardware


Abstração de recursos
• acessar os recursos pode ser uma tarefa complexa

• definir interfaces abstratas para os recursos

prover interfaces de acesso aos dispositivos

tornar os aplicativos independentes do hardware

definir interfaces de acesso homogêneas para dispositivos distintos


Gerência de recursos
• atividades simultâneas podem gerar conflitos no uso do hardware

• SO deve definir políticas para gerenciar o uso dos recursos


Gerência de recursos
• atividades simultâneas podem gerar conflitos no uso do hardware

• SO deve definir políticas para gerenciar o uso dos recursos

distribuir o uso do processador entre os aplicativos


Gerência de recursos
• atividades simultâneas podem gerar conflitos no uso do hardware

• SO deve definir políticas para gerenciar o uso dos recursos

distribuir o uso do processador entre os aplicativos

definir uma fila de trabalhos


Gerência de recursos
• atividades simultâneas podem gerar conflitos no uso do hardware

• SO deve definir políticas para gerenciar o uso dos recursos

distribuir o uso do processador entre os aplicativos

definir uma fila de trabalhos

impedir que os recursos sejam monopolizados


Funcionalidades
• atuar em várias frentes

• cada recurso possui suas particularidades


Funcionalidades • distribuir de forma justa a capacidade
de processamento

• ilusão da existência de um processador


para cada tarefa

• abstração para sincronizar atividades


interdependentes
Funcionalidades • fornece a cada aplicação uma área de
memória própria

• melhora a estabilidade e segurança

• memória insuficiente – aumentá-la


usando armazenamento secundário

• abstração de memória virtual


Funcionalidades • implementar a interação com cada
dispositivo

• criar modelos abstratos – agrupar vários


dispositivos similares
Funcionalidades • construída sobre a gerência de
dispositivos

• visa criar arquivos e diretórios

• define a interface de acesso e as regras


de uso
Funcionalidades • definir claramente os recursos que cada
usuário pode acessar

1. definir usuários e regras;

2. identificar os usuários;

3. definir e aplicar regras de controle de


acesso aos recursos; e

4. registrar o uso dos recursos pelos


usuários
Um breve histórico dos SOs
• Anos 40
❖ cada programa executava sozinho e tinha total controle do computador

• Anos 50
❖ os sistemas de computação fornecem “bibliotecas de sistema” que
encapsulam o acesso aos periféricos

• 1961
❖ anunciado o CTSS – Compatible Time-Sharing System (MIT)
Um breve histórico dos SOs
• 1965
❖ IBM OS/360
❖ surge o Multics, parceria entre MIT, GE e Bell Labs

• 1969
❖ criada a primeira versão do UNIX

• 1981
❖ Microsoft lança o MS-DOS
Um breve histórico dos SOs
• 1984
❖ MacOS 1.0, primeiro a ter interface gráfica

• 1985
❖ MS-Windows 1.0

• 1987
❖ Tanenbaum desenvolve um SO didático – MINIX
❖ OS/2, parceria entre IBM e Microsoft
Um breve histórico dos SOs
• 1991
❖ Linus Torvalds inicia o desenvolvimento do Linux

• 1993
❖ Windows NT, primeiro sistema 32 bits da empresa
❖ lançamento do FreeBSD e NetBSD
❖ Newton OS, primeiro SO móvel

• 1995
❖ Plan 9, SO distribuído da AT&T
Um breve histórico dos SOs
• 1999
❖ ambiente de virtualização VMWare

• 2001
❖ MacOS X

• 2005
❖ MINIX 3 – SO para aplicações embarcadas
Um breve histórico dos SOs
• 2006
❖ Windows Vista

• 2007
❖ iOS
❖ Android

• 2010
❖ Windows Phone
Um breve histórico dos SOs
• 2015
❖ Windows 10

• 1ª geração (1945 – 1955): válvulas e painéis de conectores


• 2ª geração (1955 – 1965): transistores e sistemas de lote
• 3ª geração (1965 – 1980): CIs e multiprogramação
• 4ª geração (1980 – hoje): computadores pessoais
• 5ª geração (1990 – hoje): computadores móveis
Revisão sobre hardware de computadores
• o SO está diretamente ligado ao hardware do computador

• estende o conjunto de instruções do computador e gerencia seus


recursos

• deve conhecer profundamente o hardware


Cruzadinha –
Revisão
hardware
Categorias
• existe uma variedade significativa de SOs

• nem todos conhecidos

• podem ser classificados por:


• tamanho do código
• velocidade
• suporte a recursos específicos
• acesso à rede
• etc
Categorias • batch (de lote)

• intensamente orientados para o


processamento de muitas tarefas ao
mesmo tempo, a maioria exigindo
grande quantidade e E/S

• oferecem três tipos de serviços:


• em lote (batch)
• processamento de transações
• tempo compartilhado (timesharing)
Categorias • servem a múltiplos usuários ao mesmo
tempo por meio de uma rede

• permite compartilhamento de recursos


(hardware e software)

• impõem prioridades e limites


Categorias • variação de um SO de servidores

• chamados:
• computadores paralelos
• multicomputadores
• multiprocessadores

• aspectos especiais de comunicação e


conectividade
Categorias • “de mesa”, “desktop” ou “de pc”

• propiciar um bom apoio para um único


usuário

• voltado ao atendimento do usuário para


realizar atividades corriqueiras

• interface gráfica, suporte à


interatividade e operação em rede
Categorias • usado em equipamentos de uso pessoal
compactos
• tablets, smartphones e outros
computadores portáteis (PDA)

• mercado dominado pelo Android e iOS

• sistemas operacionais sofisticados


Categorias • executam em computadores que
controlam dispositivos

• não aceitam softwares instalados pelo


usuário

• todo o software está na memória ROM

• muitas vezes se apresenta como uma


biblioteca
Categorias • tem o tempo como parâmetro-chave

• sistema de tempo real crítico: precisam


fornecer garantias de que uma ação
ocorrerá em determinado momento
• sistema de tempo real não crítico: perder
um prazo ocasional, embora não desejável,
é aceitável e não custa danos permanente

• sistemas portáteis X
sistemas embarcados X
sistemas de tempo real
Cruzadinha –
Categorias
Arquiteturas de SOs
Sistemas operacionais são geralmente software de grande porte com
centenas de componentes interagindo entre si para prover o
gerenciamento do computador, permitindo a execução de programas
sem que haja interferências, garantindo a consistência das
informações armazenadas e o bom funcionamento da máquina como
um todo.

Cada modelo de arquitetura define como os módulos devem ser


organizados e como deve ser permitida a comunicação entre eles.
Arquiteturas • organização mais comum

• SO executado como um único programa


em modo núcleo

• coleção de rotinas – todas visíveis


Arquiteturas • remover do núcleo código de alto nível

• restante do código transferido para


serviços

• núcleo menor
Arquiteturas • organiza as chamadas entre as camadas

• forma mais elegante de estruturar o SO

• nível privilégio entre camadas


Arquiteturas • organiza as chamadas entre as camadas

• forma mais elegante de estruturar o SO

• nível privilégio entre camadas


Arquiteturas • VM é uma camada de software

• consiste de três partes básicas:


• o sistema real (host)
• a camada de virtualização (hypervisor)
• o sistema virtual (guest)
Arquiteturas • espaço de usuário é dividido em áreas
isoladas

• recursos compartilhados

• núcleo do SO é o mesmo para todos


Arquiteturas • dividir os recursos

• exonúcleo aloca recursos às VMs

• assegurar que uma VM não tenta


acessar recursos de outras pessoas

• poupa uma camada de mapeamento

• não existem produtos comerciais,


pesquisa
Arquiteturas • bloco monolítico de código

• ganho de desempenho

• inclui somente os componentes


necessários

• adequada para executar uma única


aplicação

• usual em sistemas embarcados


Cruzadinha –
Arquiteturas
Conceitos de SOs
A maioria dos sistemas operacionais fornece determinados conceitos e
abstrações básicos, como:
processos
espaços de endereçamento
arquivos
entrada/saída
proteção
o interpretador de comandos
Cruzadinha
Referências
• MAZIERO, C. A. Sistemas operacionais: conceitos e mecanismos. Curitiba: DINF-UFPR, 2019.

• TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos. 4ªed. – São Paulo: Pearson Education do Brasil, 2016.

• TECMUNDO. A história dos sistemas operacionais. Acesso em 20/02/2021 – disponível em


<https://www.tecmundo.com.br/sistema-operacional/2031-a-historia-dos-sistemas-operacionais-ilustracao-.htm>

Você também pode gostar