Introdução aos Sistemas Operativos Flashcards

1
Q

MacIntosh

A

Macintosh, ou Mac, é o nome
dos computadores pessoais fabricados
e comercializados pela empresa Apple
Inc. desde janeiro de 1984. Muito
utilizado para o tratamento de vídeo,
imagem e som.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

MS-DOS

A
  • Mono-utilizador
  • Mono-processo
  • Baseado em modo texto
  • Similar ao modo consola “unix”
  • Limitado a 640 KB de memória
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

1985 / Windows 1.0 e 1987 / Windows 2.0

A
  • Aparecimento de interface “gráfica”
  • Ainda modo texto
  • Windows era uma aplicação que corria por cima do DOS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

1990 / Windows 3.0

A
  • Aparecimento “modo gráfico”
  • Windows continuava a ser uma aplicação que corria por cima do DOS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

1992 / Windows 3.11

A

Pilha protocolar TCP/IP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Windows 95

A
  • Grande “revolução” Windows
    *1º SO windows:
  • 32 bits (híbrido com 16 bits)
  • Multiutilizador
  • Preemptivo (Escalonamento entre processos)
  • Plug and play, ou PnP (A tecnologia ligar e usar)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Windows 98

A

Linha descontinuada após o Windows Me

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Windows Me

A

Os Windows posteriores ao Windows Me derivam do…Windows NT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Windows NT

A

Lançamento em 1993
* SO de 32 bits
* Interface gráfica similar ao Windows 3.0, mas internamente, SO totalmente diferente
* Aparecimento do sistema de ficheiros NTFS (New Technology File System);
* Aparecimento do “BSoD” (Blue screen of death).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Windows 2000

A

Sucessor do Windows NT
* Professional, Server, Advanced Server e Datacenter Server
* Suporte para NTFS 3.0, Encrypting File System, …
* Orientado para a estabilidade (Diminuir taxa de BSoD…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Depois do Windows 2000…

A

Windows XP
* Windows Vista
* Windows 7
* Windows 8
* Windows 10
- 2015
* Windows 11
- 2021 (interface, widgets e integração diferentes)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Arquitetura Android

A

https://www.researchgate.net/publication/325370266/figure/fig13/AS:630250882994195@1527274928711/Figura-1-Arquitetura-Android-segundo-suas-camadas-Kernel-nucleo-Linux-Bibliotecas.png

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

PC vs dispositivos móveis

A

A venda de smartphones (android, iPhone) e tablets irá no futuro ser superior à venda de PCs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Computação móvel

A

Dispositivos mais pequenos que andam sempre connosco

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Os SO estão em todo o lado…

A

Quase tudo o que tem eletrónica tem um SO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Para que servem os SO?

A

✓Permitir o uso simples dos recursos de um sistema informático, nomeadamente da capacidade de processamento
✓Disponibilizar um conjunto de serviços aos utilizadores do sistema
✓Gestão da memória secundária (memória virtual) e dos dispositivos de entrada/saída

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Elementos básicos de hardware

A

O SO interage com o hardware do sistema:
✓Processador
✓Memória (primária e secundária)
✓Dispositivos de entrada e saída
✓Bus de dados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Processador

A

Controla as operações de um computador
✓Efetua o processamento de dados
✓ Designado como CPU
✓As recentes evoluções levaram a processadores
multicores
– Cada core é um processador semi independente dos
demais cores

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Memória principal

A

– Armazena os dados e as instruções dos programas
– É à memória principal que o CPU vai buscar dados e
instruções
– Volátil (Conteúdo é perdido quando se desliga o sistema)
– Tempo de acesso
▪ De 80 a 90 ns (memória dinâmica)
▪ De 10 a 15 ns (memória estática, empregue em caches)
– A quantidade de memória existente num sistema
computacional influencia grandemente o seu
desempenho

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Memória secundária

A

– Memória persistente (i.e., não volátil)
– Empregue para ficheiros e para memória virtual
✓Exemplos
– Disco (HDD ou SSD), PEN USB, etc.
✓Características
– Mais barata do que memória RAM
– Mais lenta do que memória RAM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Interação com dispositivos E/S

A

Bus: permitem a comunicação/interação entre
processador(es), memória principal e módulos de
E/S

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Funcionamento computador

A

✓CPU executa instruções sobre dados
✓CPU lê/escreve dados da memória
✓CPU interage com dispositivos de E/S (leitura de teclado,
escrita para disco, …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Interrupções

A

✓ Mecanismo de interrupções
✓ Visa melhorar a taxa de utilização do CPU
✓Esperar pelos dispositivos leva o CPU a desperdiçar preciosos ciclos de relógio
✓O mecanismo de interrupções permite interromper o CPU apenas quando é necessária a intervenção do CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Tipos de interrupções

A

✓ Programas/Processos
✓ Timer
✓ Entrada/Saída
✓ Falha de hardware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Tipos de interrupções - Programas/Processos

A

✓ Programas/Processos
– Resultam da execução de uma instrução tal como divisão por zero, overflow aritmético, tentativa de executar instrução inválida ou inacessível

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Tipos de interrupções - Timer

A

✓ Timer
– Interrupção criada por um temporizador existente no sistema. Esta interrupção permite que o SO tome periodicamente o controlo do CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Tipos de interrupções - Entrada/Saída

A

✓ Entrada/Saída
– Notificar o CPU do término de uma operação ou de erro

28
Q

Tipos de interrupções - Falha de hardware

A

✓ Falha de hardware
▪ Erro de hardware, como falha na paridade da memória

29
Q

Tratamento de interrupções

A

✓CPU está a executar um processo
✓CPU recebe pedido de interrupções
✓Ao acabar o tratamento, o CPU regressa ao que estava a fazer
✓O que sucede quando ocorre uma interrupção:
1. Intervenção do hardware
2. Intervenção do software

30
Q

Como lidar com múltiplas interrupções?

A

✓Exemplo
– CPU a processar interrupção do controlador do disco (bloco
acaba de ser lido do disco duro) quando recebe interrupção
do relógio de tempo real (interrupção periódica do sistema)?
– Como atuar?
▪ Sistema aplica prioridades nas interrupções
▪ Sistema desativa interrupções quando está a tratar uma
interrupção
– Usualmente é seguida estratégia mista

31
Q

Técnicas de tratamento de E/S

A

✓Quando o CPU encontra uma instrução de E/S, o CPU envia um comando ao módulo apropriado de E/S
– Exemplos: placa de rede (chegou novo pacote), controlador
de disco (para leitura ou escrita de bloco)…
✓ A interação com E/S pode decorrer de três formas (dependendo do tipo de dispositivo)
– E/S programado
– E/S através de interrupções
– Acesso direto à memória (DMA – Direct Access Memory)

32
Q

E/S programado

A

✓O módulo de E/S executa a operação solicitada e
quando terminada, ativa os bits correspondentes
no registo de estado (“status register”)
✓O CPU verifica periodicamente o registo de estado
por forma a determinar quando é que a operação
solicitada está completa
✓Análise ao E/S programado
– O nível de desempenho do sistema baixa
substancialmente dado o CPU ter que periodicamente
analisar o registo de estado

33
Q

E/S através de interrupções

A

✓O CPU lança comando de E/S ao módulo apropriado e
prossegue para executar outro processo
✓O módulo de E/S executa a operação, interrompendo
o CPU quando precisa de interagir (e.g., dados estão
disponíveis para serem transferidos pelo CPU)
✓O processador processa a interrupção (e.g., efetua a
transferência dos dados)
✓Análise ao E/S através de interrupções
– Melhor do que E/S programado, mas CPU ainda envolvido na
transferência dos dados

34
Q

E/S via DMA

A

✓Acesso direto à memória (DMA)
– Os dados a transferir de/para o dispositivo são
lidos/escritos diretamente na memória
– O CPU praticamente apenas intervém no início da operação
(para indicar a operação, a quantidade de dados, endereço
em memória, etc.)
▪ CPU fica livre para efetuar outras operações
✓Análise ao E/S via DMA
– Requer suporte de DMA por parte do dispositivo de E/S
– Apenas se justifica para dispositivos que manipulam
elevadas volumes de dados (e.g., discos duros, placas gráficas)

35
Q

Tipos de Sistemas Operativos

A

✓SO de desktops
– Windows 1.0 a Windows 11, Linux, BSD (e outras
variantes de unix), Mac OS X, etc.
✓SO para dispositivos móveis
– Android, Apple iOS, Windows Phone 7, symbian OS,
bada (Samsung)
✓SO de tempo real
– Sistemas de hard realtime
– Sistemas de soft realtime

36
Q

O papel de um SO

A

✓Um computador é um conjunto de recursos
orientados para o movimento, armazenamento e
processamento de dados
– O SO é responsável pela gestão desses recursos

37
Q

O SO é

A

✓Programa que controla a execução das
aplicações
– Na realidade trata-se de um conjunto (vasto) de programas
▪ Kernel do Linux 3.2 (2012): 15 milhões de linhas…
✓Interface entre aplicações e o hardware
– Exemplo
▪ Uma aplicação não manipula diretamente um ficheiro
▪ A aplicação recorre a serviços do sistema operativo (através das funções “open”, “close”, “write”, “read”…)

38
Q

Principais objetivos de um SO

A

✓Conveniência
– Facilitar a vida ao utilizador/programador
✓Eficiência
– Uso eficiente dos recursos dos sistemas
✓Capacidade para evoluir
– As plataformas de hardware vão evoluíndo (rapidamente!)
bem como as exigências dos utilizadores

39
Q

Serviços de um SO

A

▪ Desenvolvimento de aplicações
▪ Execução de programas
▪ Acesso a dispositivos de E/S
▪ Acesso controlado a ficheiros
▪ Acesso ao sistema
▪ Deteção de erros
▪ Contabilização de uso, recursos, etc.

40
Q

Classes de utilizadores SO

A

✓Um SO tem quatro classes de utilizadores
– Utilizador de aplicações
– Programador de aplicações
– Programador de sistemas
– Administrador de sistemas
✓Cada classe de utilizadores tem necessidade
diferentes

41
Q

Utilizador de aplicações

A

✓Utilizador de aplicações pretende…
– SO fácil de usar e aprender (Idealmente, que nem seja preciso aprender)
– SO que se adapte ao utilizador
– SO que responda rapidamente às solicitações
– SO sem surpresas (e.g.: apagar ficheiro sem avisar)
– SO com alternativas na realização de tarefas
▪ Exemplo:
– Alguns utilizadores preferem o rato, outros utilizadores preferem o teclado

42
Q

Programador de aplicações

A

✓Programador de aplicações
– Acesso fácil a chamadas de baixo nível do SO
▪ Leitura de input via teclado, posição do rato
– Visão consistente do sistema ao programador
– Uso fácil de serviços de alto nível
▪ Criação de janelas, acesso a canais de comunicação via rede,

– Portabilidade para outras plataformas

43
Q

Programador de sistemas

A

✓SO deve possibilitar…
– fácil criação de programas corretos
– fácil depuração de programas incorretos
– fácil manutenção de programas
– Fácil alterar/expandir programas

44
Q

Administrador de sistemas

A

✓SO deve possibilitar…
– Fácil acréscimo/remoção de dispositivos como discos,
impressoras, ligações de rede, etc.
– Segurança para e de todos os utilizadores do sistema,
dados, etc.
– Fácil atualização do sistema para novas versões
– Fácil gestão de utilizadores
– Boa gestão dos recursos do sistema

45
Q

Tipos de sistemas operativos

A

✓Tipos
– SO mono utilizador, mono tarefa
– SO multitarefa
– SO não interativo (batch mode – processamento lotes)
– SO multiutilizador / time-sharing
– SO de tempo real
– Sistemas virtualizados (Não é bem um sistema operativo)

46
Q

SO monoutilizador /monotarefa

A

✓O SO apenas executa um processo de cada vez
✓SO típico dos primórdios dos computadores
pessoais:
– SO simples e limitados
– Interface de texto sem gráficos (linha de comandos)
✓Exemplo:
– Microsoft DOS
▪ Limitado a 640 KB de memória

47
Q

SO multitarefa

A

✓ SO suporta a execução “simultânea” de várias aplicações
– Embora um só utilizador interativo
✓Requer a capacidade de comutação de tarefas
– CPU executa parte de um processo, depois executa
parte de outro, etc.
– Tudo isso num curto intervalo de tempo
– Utilizador pensa que os processos estão em execução
simultânea
✓Qualquer SO recente é multitarefa (“Windows”,
Linux, Mac OS X…)
✓O SO vai comutando as tarefas
– Uma tarefa é substituída por outra quando:
▪ Já está há demasiado tempo a executar no CPU
▪ Requer o uso de um dispositivo de Entrada/Saída

48
Q

SO não interativo

A

✓Os recursos de um sistema de computação de alto
desempenho são caros (e.g., supercomputador)
✓O SO não permite o uso interativo do sistema
– Utilizadores recebem “lote de horas de computação”
✓Exemplo: 1000 horas
✓As tarefas devem ser autónomas:
– Não podem parar a meio a pedir indicações aos utilizadores
– Tarefas em lote (“batch processing”)
– Existe um computador de acesso
▪ Frontend machine
✓Exemplos: – Computadores para a criação de imagens de síntese (“rendering farms”)

49
Q

SO multiutilizador/timesharing

A

✓SO permite o uso simultâneo de vários
utilizadores
– Utilizadores ligados em sessões separadas
– O tempo de CPU é partilhado pelos utilizadores (Timesharing)
– Tarefas interativas devem ser tratadas rapidamente
– Empregues inicialmente em sistemas de grande porte
▪ IBM OS 360, multics (anos 1960)
– Atualmente: servidores de ficheiros, de bases de dados, servidores web

50
Q

SO de tempo real

A

“Um sistema de tempo real é aquele em que o
a exatidão dos cálculos não depende apenas sobre a exatidão lógica do cálculo, mas também no momento em que o resultado é produzido. Se as restrições de tempo não forem atendidas, diz-se que ocorreu uma falha no sistema.”
✓Conceito de “latência”:
– Na computação, designa-se por latência o tempo que medeia entre um evento e a resposta a esse mesmo evento

51
Q

Sistemas de tempo real dividem-se em:

A

– Sistemas de hard realtime – garantem a execução das
tarefas críticas dentro dos limites de tempo
estabelecidos (e.g.: sistema ABS de uma viatura)
– Sistemas de soft realtime – apenas é dada prioridade às
tarefas críticas, não sendo garantida a sua execução
dentro de limites de tempo estritos
▪ Muitas vezes, o “soft” realtime é especificado através de
probabilidades

52
Q

SO em tempo real - Áreas de aplicação

A

– Sistemas de suporte de vida (“e-care”)
– Sistemas de controlo industrial
– Sistemas de comunicações
– Sistemas de controlo de tráfego aéreo, aeronaves
– Sistemas de controlo de motores
– Robótica, exploração espacial
– Etc.

53
Q

Máquina Virtual

A

✓Definição de máquina virtual
– Implementação via software de uma máquina (por
exemplo, um computador) que executa programas /
processos

54
Q

Tipos de Máquina Virtual

A

✓Existem dois tipos de máquinas virtuais
– Máquina virtual software
– Máquina virtual sistema

55
Q

Máquina virtual software

A

– Máquina abstrata que implementa uma determinada
“Instruction Set Architecture” (arquitetura virtual)
– A máquina virtual disponibiliza alguns serviços
▪ Gestão de memória, gestão de fluxos de execução (threads),

– Exemplos
▪ bytecode da JVM (Java Virtual Machine)
▪ CLI (Common Language Interface) do Microsoft .NET
▪ O código fonte dos programas é compilado para a
arquitetura virtual: bytecode no java, CLR no .NET

56
Q

Pros e contras das máquinas virtuais software

A

✓(+) Portabilidade
– Código pode ser executado em qualquer máquina
física/SO, desde que exista uma implementação da
máquina virtual para o SO em causa
✓(+) Programação
– As máquinas virtuais software disponibilizam várias
funcionalidades que facilitam a programação (Gestão de memória dinâmica, mecanismos de threading e sincronização, …)
✓(-) Lentidão
– Código é interpretado, o que torna a sua execução mais
demorada

57
Q

Exemplo: java e bytecode

A
  1. Escrita do código java (.java)
  2. Compilação: o compilador cria uma representação em
    bytecode
  3. O bytecode é executado na Java Virtual Machine (JVM)
58
Q

Máquina virtual sistema

A
  • Software que cria a ilusão de um sistema físico (PC)
    dentro de um outro SO – (e.g. VmWare, Xen, Parallels, Virtual PC, Virtualbox, Virtual Iron, QEMU)
  • Uma máquina virtual sistema implementa uma
    máquina…dentro de outra máquina
59
Q

Máquina virtual sistema – caraterísticas

A

✓ Uma máquina virtual sistema deve providenciar as seguintes funcionalidades:
➢Similitude
▪ O comportamento da máquina virtual sistema deve ser indistinto do comportamento de uma máquina física
➢Eficiência
▪ A máquina virtual deve providenciar um desempenho similar ao das máquinas físicas
➢Gestão de recursos
▪ A máquina virtual deve ter pleno controlo sobre os recursos que implementa (e.g. disco virtuais, rede virtual, etc.)
▪ A máquina virtual deve isolar as aplicações do sistema operativo hospedeiro

60
Q

Quando se fala em máquina virtual sistema:

A

✓Quando se fala no contexto de máquinas virtuais
sistema, fala-se em…
– SO Hospedeiro
▪ SO que efetivamente executa o software de virtualização
▪ Aulas práticas: SO Windows dos laboratórios
– SO Hóspede
▪ SO que corre na máquina virtual
▪ Raspbian (ou Ubuntu) no caso das aulas práticas
✓Designação anglo-saxonica
– Host OS (hospedeiro) and guest OS (hóspede)

61
Q

Quando se fala em máquina virtual sistema (continuação)

A

✓As máquinas virtuais ganharam muita relevância
– Possibilitar a agregação de serviços, i.e., vários serviços executados em máquinas físicas separadas passam a ser executados em máquinas virtuais
– Várias máquinas virtuais podem ser executadas na mesma máquina física
▪ Menos máquinas, menos custos (hardware, energia e recursos humanos)
✓Máquinas virtuais também são ótimas para testes
– Vários SO podem correr numa mesma máquina

62
Q

Tipos de virtualização

A

*Virtualização completa
*Paravirtualização
*Virtualização assistida por hardware

63
Q

Virtualização completa

A

– Completa simulação do hardware físico
– O SO hóspede pensa que está num sistema físico (não
existem diferenças), a execução é transparente
– Não é necessário modificar o SO hóspede
✓Exemplo: Vmware, QEMU, VirtualPC, VirtualBox

64
Q

Paravirtualização

A

– Recorre a uma camada intermédia entre o SO hóspede
e o hardware
– O SO hóspede precisa de ser modificado
– Apenas viável para SO de código aberto (Linux, etc.)
– Não é viável para SO da família Windows (devido a motivos de licenciamentos, tecnologicamente a paravirtualização é viável)
✓Exemplo: Xen

65
Q

Virtualização assistida por hardware

A

– Tanto a INTEL como a AMD providenciam suporte para
virtualização na plataforma x86
– AMD implementa o AMD-V (pacifica)
– INTEL implementa o VT-x