Introdução aos Sistemas Operativos Flashcards

(65 cards)

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
Tipos de interrupções - Programas/Processos
✓ 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
26
Tipos de interrupções - Timer
✓ Timer – Interrupção criada por um temporizador existente no sistema. Esta interrupção permite que o SO tome periodicamente o controlo do CPU
27
Tipos de interrupções - Entrada/Saída
✓ Entrada/Saída – Notificar o CPU do término de uma operação ou de erro
28
Tipos de interrupções - Falha de hardware
✓ Falha de hardware ▪ Erro de hardware, como falha na paridade da memória
29
Tratamento de interrupções
✓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
Como lidar com múltiplas interrupções?
✓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
Técnicas de tratamento de E/S
✓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
E/S programado
✓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
E/S através de interrupções
✓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
E/S via DMA
✓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
Tipos de Sistemas Operativos
✓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
O papel de um SO
✓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
O SO é
✓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
Principais objetivos de um SO
✓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
Serviços de um SO
▪ 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
Classes de utilizadores SO
✓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
Utilizador de aplicações
✓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
Programador de aplicações
✓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
Programador de sistemas
✓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
Administrador de sistemas
✓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
Tipos de sistemas operativos
✓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
SO monoutilizador /monotarefa
✓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
SO multitarefa
✓ 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
SO não interativo
✓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
SO multiutilizador/timesharing
✓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
SO de tempo real
“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
Sistemas de tempo real dividem-se em:
– 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
SO em tempo real - Áreas de aplicação
– 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
Máquina Virtual
✓Definição de máquina virtual – Implementação via software de uma máquina (por exemplo, um computador) que executa programas / processos
54
Tipos de Máquina Virtual
✓Existem dois tipos de máquinas virtuais – Máquina virtual software – Máquina virtual sistema
55
Máquina virtual software
– 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
Pros e contras das máquinas virtuais software
✓(+) 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
Exemplo: java e bytecode
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
Máquina virtual sistema
* 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
Máquina virtual sistema – caraterísticas
✓ 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
Quando se fala em máquina virtual sistema:
✓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
Quando se fala em máquina virtual sistema (continuação)
✓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
Tipos de virtualização
*Virtualização completa *Paravirtualização *Virtualização assistida por hardware
63
Virtualização completa
– 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
Paravirtualização
– 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
Virtualização assistida por hardware
– 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