Primeiro Teste Flashcards

1
Q

O que são interrupções?

A

Sinal de um dispositivo que tipicamente resulta numa troca de contexto:
o processador pára o processo em execução para atender ao pedido do dispositivo que pediu a Interrupção.

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

O que é um pedido de interrupção(IRQ)?

A

É um sinal de hardware enviado ao processador.

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

Para que são usadas as interrupções de hardware?

A

Para manipular eventos como: escrita do teclado ou uso do mouse.

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

O que é um SO?

A

Camada de software que virtualiza hardware.

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

Como é que funciona?

A
  1. Gestor de Recursos

2. Interface para a Máquina Física (abstração)

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

Qual é a vantagem?

A

Produtividade o mais elevada possível de todo o hardware existente no computador.
Efetua uma grande quantidade de tarefas transparentemente.
Funcionalidades apresentadas uniformemente.
Fiabilidade nas ações que executa.
Otimização do desempenho com objetivos bem definidos para cada SO.

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

Primeira evolução histórica?

A

Monitor de controlo.
Existia um programa chamado Monitor que aceitava alguns comandos do utilizador, que tinha uso exclusivo da máquina.
Este Monitor permitia carregar programas na memória central, ou controlar periféricos onde a saída do programa era escrita.
Os resultados eram dados em impressões, cartões perfurados e mais tarde fitas magnéticas.

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

Segunda evolução histórica?

A

Tratamento por lotes (batch).
Na 1ª geração o sistema (processador) estava durante longos espaços de tempo inativo devido às operações de I/O de dados.
O Tratamento por Lotes colmatava isso através da utilização de outros computadores para I/O de dados.
Assim era possível paralelizar diferentes fases da execução

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

Terceira evolução histórica?

A

Sistemas Multiprogramados.
Passa a haver concorrência entre diversos programas além de com apenas dispositivos de I/O.
Programas que aguardam dados que estejam em dispositivos de I/O, dão tempo de processamento a outros que estejam prontos a ser executados.
Para que isso seja possível, os programas têm de estar em memória, de modo a serem executados de imediato.
Técnicas de gestão de memória foram desenvolvidas no contexto destes sistemas.

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

Quarta evolução histórica?

A

Time Sharing.
Sistemas interativos onde vários utilizadores partilham tempo de CPU com a ilusão de terem uma máquina dedicada.
Vários terminais estão assim ligados a um sistema central.
Isto é possível porque a capacidade de processamento do processador é largamente superior à entrada de dados a partir de um terminal por um utilizador (na altura apenas a partir de teclados).

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

Quinta evolução histórica?

A

Memória virtual.
Dão ao programador a abstração de um espaço de endereçamento virtual de elevada dimensão, independente da memória física disponível.
Anteriormente, o programador tinha de fazer a gestão da memória e endereços, de modo a não exceder a memória física.

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

Sexta evolução histórica?

A

Computadores pessoais.
Com a possibilidade de miniaturização dos transístores, foi possível desenvolver computadores pessoais mais pequenos e baratos

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

Sétima evolução histórica?

A

Presente e futuro.
Dispositivos baseados em AI, que dão origem a sistemas com capacidades como: reconhecimento de voz, imagens, vídeos…
Computação Quantum e Nanotecnologia.
Dispositivos que respondam a linguagem natural com capacidade de auto-organização/aprendizagem.

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

O que são System calls?

A

Para os programas acederem aos serviços do SO como: criar, apagar e utilizar objetos geridos pelo SO, como processos e ficheiros, utilizam System Calls.
Podem ser consideradas a interface programática (API) de um SO.
A cada System Call corresponde uma função da biblioteca que os programas podem utilizar.

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

O que é uma função TRAP?

A

Transfere controlo para o núcleo do SO, onde é implementada a System Call em causa.

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

Qual é a vantagem das Systems Calls?

A

O código das aplicações não tem acesso às estruturas de dados mantidas pelo núcleo, nem a instruções que permitam contornar os mecanismos de proteção que garantem o funcionamento do sistema.

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

O que é um processo?

A

Processo é uma entidade ativa controlada por um programa e que necessita de um processador para poder executar-se.

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

O que está associado ao processo?

A
  • Espaço de Endereçamento:
  • -Lista de localizações de memória que o processo pode aceder.
  • -Engloba informação como:
  • –1. Programa executável (código)
  • –2. Dados do programa (variáveis globais e dados dinâmicos),
  • –3. Pilha (stack)
  • Estado Interno (contexto de execução):
  • -Cada processo tem um estado que pode ser salvaguardado e posteriormente reposto, de forma a permitir a comutação entre processos.
  • -Engloba informação como:
  • –1. Contador do programa e Registos do CPU
  • –2. Conjunto de Apontadores
  • Conjunto de Recursos
  • -Ficheiros abertos, etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

O que contém uma process table?

A

Contém o conteúdo dos registos e outra informação necessária para recomeçar o processo.
Cada processo guardado na Process Table é denominado Process Control Block (PCB).
Há um PCB para cada processo contido na memória principal.
Um processo suspenso consiste no seu espaço de endereçamento, chamado Core Image, e na entrada na Process Table, que contém o conteúdo dos registos e outra informação necessária para recomeçar o processo.

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

As 3 seguranças dos processos?

A
  1. Isolamento entre processos
    Cada processo só utiliza o seu espaço de endereçamento e só interatua com o SO e outros processos através de chamadas de sistema.
  2. Dono do processo (owner)
    Cada processo está associado a um utilizador.
    Os privilégios do owner determinam em larga medida que ações este pode executar sobre objetos controlados pelo sistema.
  3. Mediação pelo Núcleo
    Todos os acessos aos recursos do SO são mediados pelo núcleo de modo a verificar que o owner do processo tem privilégios para os efetuar.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Quais são os estados do processo?

A

New: Novo processo é criado.
Ready: Processo está pronto para ir a CPU mas como outro está a utilizá-lo, este foi temporariamente suspenso.
Running: a utilizar o CPU no momento.
Blocked: Processo está suspenso por estar à espera de um acontecimento externo (p. ex. input).
Terminated: Fim da execução do processo.

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

Qual é a hierarquia de processos em Unix?

A

Todos os processos correspondem a uma única árvore, com o processo init (processo especial presente no “boot image”) como raiz.

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

Qual é a hierarquia de processos em Windows?

A

Não existe uma hierarquia de processos. Todos os processos são iguais.
Quando um processo é criado, é-lhe dado um token chamado “handler” que pode ser usado para o controlar. No entanto, este pode passar o token a outro processo, invalidando a hierarquia

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

O que é um sistema monoprocessado?

A

Um processo em memória de cada vez.
Esse processo tem todos os recursos do computador à disposição.
Não existe escalonador.
Exemplo: MS-DOS

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

O que é um sistema multiprocesso?

A

Vários processos em memória ao mesmo tempo.
Necessidade de uma gestão eficaz dos processos.
Uso de escalonador.
Em sistemas com um CPU, apesar de só ser possível processar uma tarefa de cada vez, o pseudoparalelismo simula a existência de vários processadores.

26
Q

Qual é o problema do multitask em ambientes móveis

A

Problemas com bateria

CPUs menos potentes (embora alguns sistemas tivesses bons CPUS mas inicialmente não suportavam. ex: Apple/IOS).

27
Q

O que são Signals?

A

Signals são no software o equivalente às Interrupções no hardware.

28
Q

O que são software interrupts?

A

Processos que podem comunicar entre si através de Signals

29
Q

O que são pipes?

A

Pseudoficheiros utilizados para interligar dois processos (two-way communication).
Um processo envia dados ao outro como se existisse um ficheiro auxiliar no meio.

30
Q

O que são shared-files?

A

O SO mapeia um segmento no espaço de endereçamento de vários processos de modo a que estes possam ler e escrever nesse segmento de memória, sem que seja necessário fazer System Calls.

31
Q

O que são sockets?

A

Permitem a comunicação entre processos em diferentes máquinas.
Os processos podem estar em sistemas diferentes mas utilizam uma camada de network para comunicar.
Poder ser utilizador para comunicar entre processos na mesma máquina, mas como são mais “pesados” que Pipes, são mais utlizados no contexto de redes.

32
Q

O que são Mail Slots em Windows?

A

Relativamente semelhantes a Pipes.
Funcionam como um pseudoficheiro onde um processo pode transmitir mensagens para múltiplos processos (two-way communication).
Também podem ser usados em networks, mas não garantem que a informação seja entregue.

33
Q

O que são criação de processos?

A

Eventos que despoletam a criação de Processos:
1. Inicialização do Sistema:
Quando o sistema é ligado em vários processos são criados, alguns foreground (interagem com o utilizador) e outros background (executam uma função específica, que correm sem que o utilizador se aperceba, p. ex. deamons)
2. System call para criar processos por parte de outro processo.
3. Pedido do utilizador para criar um processo.

34
Q

Como é criado um processo em windows?

A

Um processo é criado utilizando a API win32 e a função: CreatProcess().
Esta chamada tem 10 parâmetros que inclui:
• Programa a ser executado e parâmetros
• Atributos de segurança
• Prioridade
• Propriedades da janela a criar
• Apontador para uma estrutura
Existem ainda cerca de 100 System Calls que fazem a gestão e sincronização de processos e assuntos relacionados.

35
Q

Como é criado um processo em unix?

A

Os processos são criados através da Call System: Fork, que cria um novo processo idêntico ao que está a ser executado.
O processo original é chamado Parent Process e o novo Child Process.
Como o contexto, variáveis, registo e tudo o resto são idênticos em ambos os processos, para distingui-los a Call System Fork retorna:
• 0 para o processo filho;
• PID (Process Identifier) do filho, para o processo pai.
Ou da Call System: Exec, que tem 3 parâmetros e substitui o contexto do processo atual pelo novo programa.

36
Q

Como é que é feita a terminação de processos?

A

Voluntária(controladas pelo próprio programa) e involuntárias

37
Q

Como é feita a terminação voluntária?

A
  • Finalização normal (A maioria dos processos termina porque já fez o seu trabalho.
    Unix: Exit()
    Windows: ExitProcess())
  • Finalização com erro (igual a 1)
38
Q

Como é feita a terminação involuntária?

A
  • Finalização com erro terminal (Erro causado pelo processo, normalmente devido a um bug no programa.
    Ex: divisão por 0, ou referência a um espaço de memória que não existe.
    Em Unix, o processo pode avisar o SO que vai lidar com o erro. Neste caso, o processo é interrompido em vez de terminado.)
  • Finalização forçada por outro processo (Trata-se de um processo invocar uma System Call para terminar processos.
    Unix: Kill ()
    Windows: TerminateProcess())
39
Q

O que é uma shell?

A

Interface entre os utilizadores e o SO.
Não fazem efetivamente parte do SO.
Possibilita aos utilizadores executar programas, criando assim processos.

40
Q

Exemplos de shell?

A

Command Line interface e GUI

41
Q

O que é o bootstrap loader?

A

É um programa existente na ROM que é automaticamente executado pelo processador quando o computador é ligado.

  1. Localiza o núcleo do SO (kernel)
  2. Carrega-o para memória
  3. Inicializa-o.
42
Q

O que são ficheiros?

A

Um dos objetivos do SO é tornar transparente as capacidades de dispositivos de I/O.
Existem uma série de System Calls relacionadas a ficheiros que permitem criar, ler, modificar, ou apagá-los.

43
Q

Como é que se organizam os ficheiros?

A

Organizam-se numa árvore de diretórios.
Root directory: diretório no topo da árvore.
Work directory: diretório corrente de um determinado processo.

44
Q

Como é feito o path (caminho)?

A
O path (caminho) para um diretório pode ser dado de forma:
Absoluta: caminho a partir do root directory do dispositivo de armazenamento.
Relativa: caminho a partir de um determinado ponto do dispositivo de armazenamento.
45
Q

O que é um file descriptor?

A

Ao abrir um ficheiro, o SO atribui um File Descriptor ou Handle, que passa a ser o ID do ficheiro para todas as operações.

46
Q

Em unix, o que é um file ownership?

A

“File ownership” é uma componente importante do Unix, que oferece um método seguro para armazenar ficheiros.
Todos os ficheiros têm os seguintes atributos:
• Owner premissions
• Group premissions
• Other (world) premissions
Para cada um destes atributos as permissões dividem-se em 3 grupos:
• Read, Write, Execute.
Isto totaliza 9 bits de segurança que podem ser analisados quando há tentativas de acesso ao ficheiro associado a um determinado Handle.

47
Q

Em unix, o que são special files?

A

Interface para um dispositivo de I/O e aparecem no File System como arquivos comuns.
Isto possibilita a utilização de System Calls iguais à dos ficheiros

48
Q

O que são threads?

A

Threads funcionam como subprocessos (cooperativos) dentro de um processo.
São executadas no mesmo ambiente de um processo, mesmo que independentes umas das outras.
Não há proteção entre threads do mesmo processo. É suposto cooperarem.
Partilham o mesmo espaço de endereçamento, ficheiros abertos e outros recursos. Assim podem ler e escrever nos recursos partilhados.
Têm System Calls para serem manipuladas.

49
Q

Que estados tem as threads?

A

Têm os mesmos estados que os processos.

50
Q

O que é uma thread_yeld

A

Uma chamada que permite a uma thread conceder voluntariamente o CPU e outra thread executar-se.

51
Q

Qual é a vantagem das threads?

A

Úteis para dividir programas em várias atividades simultâneas.
Podem tirar partido de sistemas com vários CPUs, executando paralelismo real, além do pseudoparalelismo.
A sua criação e gestão, em relação aos processos, é mais rápida e leve: não é necessário criar todos os recursos (como o espaço de endereçamento).

52
Q

Onde é que a thread corre?

A

Inteiramente em userspace e o kernel não sabe nada sobre ela.

53
Q

O que é uma thread table?

A

Guarda informação sobre as threads e permitir a sua comutação.

54
Q

Como é feito o procedimento que guarda o estado da thread?

A

O procedimento que guarda o estado e o escalonamento entre threads é local, ou seja, mais rápido do que fazer uma chamada ao kernel.

55
Q

O que acontece no kernel space?

A

O escalonador do SO gere as threads.
O kernel tem uma tabela de threads que guarda todas as threads no sistema.
Quando uma thread pretende criar ou destruir outra thread faz uma System Call que atualiza a Thread Table.
Esta tabela guarda informação sobre o estado da thread, registos, etc.
Quando uma thread se bloqueia, o escalonador pode correr uma thread do mesmo processo ou outra de um processo diferente.

56
Q

O que é o quantum?

A

Intervalo de tempo que um processo está autorizado a utilizar o CPU.
Se o processo ainda estiver em execução quando o quantum acabar, o CPU é atribuído preemptivamente a outro processo.
Se o processo bloquear ou terminar antes do quantum de tempo chegar ao fim, o CPU também é atribuído a outro processo.

57
Q

O que é um escalonador?

A

O Escalonador determina quais os processos que devem estar em CPU num determinado instante de tempo.
É parte integrante do kernel.
Pode gerir várias filas:
• Ready queue de processos
• Filas por dispositivo de I/O
Aquilo que o escalonador deve otimizar não é o mesmo em todos os sistemas. Há ambientes distintos.

58
Q

Qual é a característica do processo?

A

A característica dos processos prontos a serem executados é importante para que os utilizadores tenham uma percepção rápida do sistema.

59
Q

Quais são os comportamentos dos processos?

A

CPU-Bound: pouco I/O.

I/O-Bound: muito I/O.

60
Q

Como podem ser os algoritmos de escalonamento?

A
  • Não preemptivo (Depois do CPU ser atribuído a um processo, outro processo só pode ser colocado em execução quando o processo sai do CPU voluntariamente.)
  • Preemptivo (Um algoritmo preemptivo escolhe um processo para ser executado e dá-lhe um tempo máx. de CPU chamado quantum.
    Utiliza o relógio do CPU e os sinais gerados para saber quando interromper o processo.
    Mais viável.)
61
Q

Quais são as considerações importantes nos algoritmos de escalonamento?

A
Timming(Controlar o tempo que os processos ficam no CPU e se são executados na frequência correta.)
Fairness(Dar aos processos uma partilha justa do CPU.)
Resource starvation
Processor afinity(Quando existem múltiplos processadores, o escalonador tem que gerir que processo irá ser executado em que core.)
62
Q

Que algoritmos de escalonamento conhece?

A
Round Robin (Parte do pressuposto que todos os processos têm igual importância.
É atribuído o mesmo quantum de tempo a todos os processos.
O escalonador apenas tem de manter uma lista de processos pela ordem que vão sendo executados.)
Multilevel queue (Múltiplas listas agrupam processos com caraterísticas em comum.
São estabelecidas prioridades para cada lista.)
Priority scheduling (São atribuídas diferentes prioridades aos processos pois existem processos/utilizadores mais importantes do que outros.
As prioridades podem ser atualizadas dinamicamente conforme o tipo de sistema e objetivos pretendidos.)