Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM...

17
Sistemas Operativos 2010 1 | 17 0 SISTEMA OPERATIVO Pode ser definido como um conjunto de programas que permitem uma interacção simplificada entre o utilizador e a máquina: CLASSIFICAÇÃO DE SO’S Multi‐utilizador O tempo de processamento do CPU de um computador pode ser partilhado por mais do que um utilizador de forma interactiva. o Unix, Linux. Mono‐utilizador O CPU só pode estar dedicado de forma interactiva a um conjunto de processos do mesmo utilizador o MS‐DOS, todos os Windows Multi‐programação Capacidade de correr vários programas simultaneamente (em concorrência) o Unix, Linux, todos os Windows Mono‐programação / Processamento por lotes Cada programa monopoliza o processador até terminar o Spectrum o DOS (à parte dos programas residentes) Dedicado Sistema Operativo projectado para aplicações específicas. Exemplos: o Controlo de uma linha de montagem ‐ SOs em tempo real o Gestão de transacções numa companhia aérea ‐ SOs para Mainframes o Interface para um telemóvel – SO embedded Uso geral Projectados para uma fácil utilização Permitem a execução de uma grande variedade de programas Reconhecem uma grande diversidade de periféricos Centralizado O Sistema Operativo cria uma máquina virtual sobre um único computador Distribuído O Sistema Operativo que corre sobre um conjunto de computadores, dando a ilusão de que este conjunto é uma entidade única: o Sistemas distribuídos puros o Sistemas em rede

Transcript of Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM...

Page 1: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

1 | 17

0 SISTEMA OPERATIVO Pode ser definido como um conjunto de programas que permitem uma interacção simplificada entre o utilizador e a máquina:

CLASSIFICAÇÃO DE SO’S Multi‐utilizador

O tempo de processamento do CPU de um computador pode ser partilhado por mais do que um utilizador de forma interactiva.

o Unix, Linux. Mono‐utilizador

O CPU só pode estar dedicado de forma interactiva a um conjunto de processos do mesmo utilizador

o MS‐DOS, todos os Windows

Multi‐programação Capacidade de correr vários programas simultaneamente (em concorrência)

o Unix, Linux, todos os Windows Mono‐programação / Processamento por lotes

Cada programa monopoliza o processador até terminar o Spectrum o DOS (à parte dos programas residentes)

Dedicado

Sistema Operativo projectado para aplicações específicas. Exemplos: o Controlo de uma linha de montagem ‐ SOs em tempo real o Gestão de transacções numa companhia aérea ‐ SOs para Mainframes o Interface para um telemóvel – SO embedded

Uso geral

Projectados para uma fácil utilização Permitem a execução de uma grande variedade de programas Reconhecem uma grande diversidade de periféricos

Centralizado

O Sistema Operativo cria uma máquina virtual sobre um único computador Distribuído

O Sistema Operativo que corre sobre um conjunto de computadores, dando a ilusão de que este conjunto é uma entidade única:

o Sistemas distribuídos puros o Sistemas em rede

Page 2: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

2 | 17

o Sistemas multi‐processador MODELO DE UM SO Monolítico

O exemplo mais comum de sistema operativo, no qual aparentemente não existe estrutura... Qualquer função do sistema operativo pode comunicar com qualquer uma das outras.

Camadas (Layers)

O SO encontra‐se estruturado segundo um conjunto de camadas funcionais. Cada camada utiliza serviços de camadas que lhe são interiores. Em suma, cada camada é uma máquina virtual com uma interface bem definida. À camada mais baixa (gestão de processos) corresponde o núcleo do sistema operativo.

Modular

O SO encontra‐se organizado segundo módulos à volta de um núcleo (kernel). O núcleo é geralmente pequeno (Micro‐kernel), comunicando com o hardware e estabelecendo

a comunicação entre os diversos módulos. Pode introduzir‐se o conceito de processo cliente e de processo servidor que correm em modo

utilizador Facilmente adaptável a sistemas distribuídos. Estrutura mais estável (teoricamente...)

Page 3: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

3 | 17

Modular (Cliente‐Servidor)

NOÇÃO DE PROCESSO Processo

Programa em execução Processo ≠ Programa

Programa – Entidade passiva (conteúdo de um ficheiro) Processo – Entidade activa

Um processo engloba

Código + dados Conteúdo do program counter, registos, stack,…. Recursos

Uniprogramação O SO permite:

Só um processo em execução Só um processo algures ente o inicio e o fim da execução

Multiprogramação O SO permite:

Só um processo em execução Múltiplos processos algures entre o inicio e o fim da execução

Multiprocessamento O SO (e o hardware) permitem:

Múltiplos processos em execução Múltiplos processos algures entre o inicio e o fim da execução

Conceito de multiprogramação

Execução, em paralelo, de múltiplos programas, na mesma máquina. A multiprogramação é um mecanismo no funcionamento dos Sistemas Operativos.

DIFICULDADES DA MULTIPROGRAMAÇÃO Necessidade de proteger os recursos atribuídos a cada processo, nomeadamente, proteger e controlar o acesso a:

Área de memória. o Certas instruções do processador o Periféricos de I/O

Isto requer que o hardware possua certas características especiais, por exemplo: o Dois modos de funcionamento (utilizador e supervisor)

Page 4: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

4 | 17

o Registos especiais usados na protecção de memória. Necessidades de comunicação e sincronização entre processos interdependentes. GESTOR DE PROCESSOS A multiprogramação é suportada pelo Gestor de Processos O gestor de Processos é responsável por: 1. Criação e eliminação dos processos 2. Comutar o processador entre vários processos, mantendo o contexto de execução dos processos

actualizado – função de despacho 3. Escalonar a execução dos processos de acordo com um algoritmo que privilegie os mais prioritários

– função de escalonamento 4. Garantir o isolamento do processo, fazendo que não haja interferência na execução entre

processos. OBJECTO PROCESSO Propriedades:

1. Identificador 2. Programa 3. Espaço de endereçamento 4. Prioridade 5. Processo Pai 6. Canais de Entrada Saída, Ficheiros 7. Quotas de utilização de recursos 8. Contexto de Segurança (Utilizador e Grupos)

Operações – Funções sistema que actuam sobre os processos:

1. Criar 2. Eliminar 3. Esperar pela terminação de subprocesso

PROGRAMA

1. Cada processo executa um programa que deverá ter sido carregado em memória a partir de um ficheiro executável.

2. Um ficheiro executável contém um programa em formato binário que foi produzido por um compilador para um determinado tipo de processador.

3. O nome do ficheiro executável não identifica o processo porque múltiplos processos podem estar a partilhar o mesmo código.

4. O nome do executável também não é frequentemente o nome da aplicação (Ex.: a aplicação Word corresponde ao executável WinWord).

PRIORIDADE

1. Nem todos os processos têm a mesma importância no sistema. 2. A importância poderá advir da necessidade de executar uma tarefa mais rapidamente ou da

necessidade de responder a estímulos externos. 3. A importância relativa dos processos materializa-se na noção de prioridade. 4. A prioridade é tida em conta no mecanismo de escalonamento que determina a comutação do

processador, fazendo com que um processo mais prioritário venha mais rapidamente a dispor do processador para executar-se.

5. A prioridade de um processo pode ser fixa, definida na sua criação ou dinâmica reflectindo o comportamento do processo e a carga relativa do sistema.

Page 5: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

5 | 17

PROCESSO PAI E PROCESSO FILHO

1. Um processo é criado por outro processo, com excepção do processo inicial criado pelo sistema.

2. O processo criador é designado por processo pai e o processo filho pode ser designado por subprocesso.

3. Alguns sistemas mantêm uma relação hierárquica entre os processos pai e os respectivos filhos. A estrutura hierárquica facilita a criação de processos:

1. Grande parte do ambiente pode ser herdado 2. A gestão de quotas de utilização dos recursos pode ser global.

Tratamento da relação hierárquica depende dos sistemas, por exemplo:

Fim do processo pai, elimina todos os processos filhos PROCESSOS E THREADS Um processo tem duas características:

1. Posse de recursos: a. Ficheiros, memória, …. Detidos pelo processo

2. Uma sequência / thread de execução:

a. Informação sobre o que é e onde está o processo (PC, SW e outros registos) Os SO’s modernos usam o conceito de thread ou light weight process (LWP):

Processo / Tarefa -> Posse de recursos Thread / LWP -> Sequencia de execução

Múltiplos threads podem estar associadas a um processo. TAREFAS - THREADS Tarefas são fluxos de execução concorrentes que executam o mesmo programa no espaço de endereçamento do processo.

O QUE É UMA TAREFA Em termos de estrutura de dados:

1. Um contador de programa que define a evolução do programa 2. Uma pilha para conter os registos de activação das subrotinas 3. Os registos do CPU

As tarefas pertencentes a um processo constam de uma tabela de tarefas. As tarefas são comutadas por uma função de despacho de forma semelhante aos processos.

Page 6: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

6 | 17

ESTADOS DE UM PROCESSO Modelo de 5 estados Poderá existir uma fila de processos prontos e uma fila de processos bloqueados ou mesmo uma fila de processos prontos por cada nível de prioridade e uma fila de processos bloqueados por cada evento (dispositivo). Modelo de 5 estados

ESTADOS DO MODELO DE 5 ESTADOS Novo – O processo acaba de ser definido, mas ainda não está em execução Pronto – O processo está a espera que se lhe seja atribuída a CPU A Executar – As instruções estão a ser executadas Bloqueado – O processo está a espera da ocorrência de um acontecimento Terminado – O processo terminou a execução (normalmente ou abortou) TRANSIÇÃO DE ESTADO Novo Pronto - Quando um processo é criado e inicializado Pronto A Executar - Quando é atribuído a CPU a um processo A Executar Pronto - Quando uma fatia de tempo expira (multiprogramação com preempção) A Executar Bloqueado - Quando um processo bloqueia à espera de um acontecimento (operação de I/O, acesso a ficheiro) A Executar Terminado – Quando um processo termina a execução Bloqueado Pronto – Quando o acontecimento ocorre Pronto, Bloqueado Terminado – Quando o processo é forçado a terminar por outro processo A activação do processo (Suspenso -> Pronto) só deve ser feita quando acontece o evento que deu origem a que o processo fosse suspenso => preferível dividir o estado Suspenso em 2 estados:

Bloqueado Suspenso Pronto Suspenso

(Modelo de 7 estados)

Page 7: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

7 | 17

MODELO 7 ESTADOS

Transições de estado (algumas notas): Pronto -> Pronto Suspenso – Em geral será pouco comum; será preferível suspender um processo bloqueado; mas pode acontecer para libertar memória Bloqueado Suspenso -> Bloqueado – Quando o processo BS tem maior prioridade do que qualquer um dos que está no estado Pronto Suspenso e o SO presume que o motivo do bloqueio desaparecerá em breve A Executar -> Pronto, Suspenso – O SO recorre à preempção (retirar a CPU) de um processo quando um processo de prioridade mais elevada fica Pronto Podem acontecer várias transições de diversos estados para Terminação Preempção Acto de retirar o processador a um processo sem ser por ele estar bloqueado ou ter terminado. THREADS Um(a) thread é um processo “leve” (Light Weight Process), com um estado reduzido. A redução de estado é conseguida fazendo com que um grupo de threads (do mesmo processo) partilhe recursos como memória, ficheiros, dispositivos de I/O. Nos sistemas baseados em threads:

Um processo pode ter vários threads; Os threads tomam o lugar dos processos como a mais pequena unidade de escalonamento Enquanto um thread está bloqueado, outro pode estar a ser executado O processo serve como o ambiente para a execução dos threads.

Processo tradicional (Heavyweight Process) <> Processo com um único thread Um thread partilha com os outros threads do mesmo processo:

A secção de código A secção de dados Os recursos do SO

A mudança entre threads do mesmo processo é muito menos pesada do que entre processos tradicionais. PROCESSOS TRADICIONAIS VS THREADS Os threads têm semelhanças com os processos tais como:

Têm um estado (pronto, a executar, bloqueado) Partilham a CPU entre si (em cada instante apenas um thread está a executar, num sistema

uniprocessador) Cada thread de um processo executa sequencialmente

Page 8: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

8 | 17

Cada thread tem associado: o Um program counter o Um stack pointer o Um Thread Control Block (com conteúdo dos registos da CPU, estado da thread,

prioridade,…) Um thread pode criar threads filhos

Algumas características importantes: Não existe protecção entre threads do mesmo processo (desnecessária!!! – os threads são

concebidos para cooperarem numa tarefa em comum). Qualquer alteração das variáveis globais de um processo é visível em todos os threads (em alguns

SO’s é possível um thread criar variáveis globais cujo conteúdo depende do thread que refere essa variável, estas variáveis não são acedidas directamente, mas através de chamadas a funções especificas de acesso. Esta facilidade é conhecida por TLS – Thread Local Storage)

Um ficheiro aberto num thread fica disponível para os outros. Suspensão (swapping) de um processo => suspensão dos seus threads. Terminação de um processo => terminação dos seus threads.

THREADS Algumas vantagens de utilização:

1. Economia e velocidade Menos tempo para criar, comutar e terminar

2. Aumento da rapidez de resposta percebida pelo utilizador. Ex: Um thread lê comandos, outro executa-os; permite ler o próximo comando enquanto o

anterior é executado. 3. Eficiência de comunicação

Recorrendo à memória partilhada não é necessário invocar o kernel 4. Utilização de arquitecturas multiprocessador

Cada thread pode executar em paralelo num processador diferente Dificuldade Garantir a sincronização entre threads quando manipulam as mesmas variáveis

HARDWARE ELEMENTOS BÁSICOS DO HARDWARE A maior parte dos computadores são baseados na arquitectura de Von Neuman 4 Elementos principais do hardware: 1. Unidade de processamento central (CPU)

Controla a operação do computador Processa os dados

2. Memória principal Armazena dados e programas

3. Dispositivos de input/output - I/O Transferem os dados entre o computador e o exterior

4. Ligações entre os outros elementos (o barramento)

Page 9: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

9 | 17

ARQUITECTURA BÁSICA DO HARDWARE

REGISTOS DA CPU 1. PC – Program Counter

Contém o endereço da próxima instrução 2. IR - Instrution register

Contém a instrução actual 3. PSW – Processor Status Word

Contém informação acerca do estado da CPU, Interrupções 4. SP - Stack Pointer

Aponta para o topo da Stack 5. Registos do utilizador

Usados para vários fins na programação 6. Outros

Gestão de memória, etc. EXECUÇÃO DE INSTRUÇÕES

INTERRUPÇÕES 1. É um mecanismo que permite que o processamento normal de um processador seja interrompido. 2. As interrupções são usadas para aumentar a eficiência, especialmente quando se usam

componentes que operam a velocidades diferentes. 3. Permite que o processador continue a executar enquanto decorre uma operação de I/O. SISTEMA DE INTERRUPÇÕES 1. É um evento externo que leva a que o processador pare a execução do programa corrente e desvie

a execução para um bloco de código chamado de rotina de interrupção (normalmente são decorrentes de operações de I/O)

2. Assinalam o acontecimento de um evento (por ex., o movimento do rato) 3. Cada evento é servido, imediatamente, por uma rotina específica, ou seja uma interrupção

transfere o controlo para uma rotina de serviço 4. A arquitectura de interrupções tem de guardar o endereço da instrução interrompida 5. As interrupções entretanto chegadas são disable enquanto outra interrupção está a ser processada

(para impedir a sua perda)

Page 10: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

10 | 17

6. O SO tem os meios para guardar informações sobre o estado da UCP antes da interrupção e para repor o estado anterior após o tratamento da interrupção

a. Registos b. Contador de programa c. Etc.

7. O SO determina qual a acção a tomar para cada tipo de interrupção 8. Transparente para o processo que é interrompido 9. Existem também interrupções geradas por software, nomeadamente para assinalar erros (por ex.,

divisões por 0) CLASSES DE INTERRUPÇÕES 1. Programa

a. Gerada por uma condição que resulta de execução de uma instrução (ex: overflow, divisão por zero, referencia a memória protegida)

2. Temporizador (timer) a. Gerada por um temporizador; b. Permite que o SO execute certas tarefas regularmente

3. I/O a. Gerada por um controlador de I/O para assinalar o fim de uma operação ou certos erros.

4. Falha de Hardware a. Gerada por uma falha (ex: alimentação, erro de paridade da memória,…)

PROTECÇÃO DAS I/O’S

1. Impedir um utilizador de executar I/O “ilegal” 2. Definir todas as operações de I/O como privilegiadas 3. Os utilizadores não conseguem fazer I/O directamente, só através do SO

PROTECÇÃO DA MEMÓRIA Fundamental proteger

1. Vector de interrupções 2. Rotinas de serviço de interrupção

Protecção da área de memória de cada utilizador Feita por hardware:

1. 2 registos determinam a gama de endereços válidos a que um programa pode aceder 2. Estes registos só podem ser manipulados pelo SO

PROTECÇÃO DA CPU

1. Impedir que um programa do utilizador tome conta da CPU num ciclo infinito e não retorne o controlo do SO

2. Usar um temporizador que após um período especificado interrompe o programa em execução.

3. As instruções de manipulação do temporizador são privilegiadas. 4. O temporizador também é usado para:

a. Implementar time-sharing b. Manter actualizada a hora do sistema

Page 11: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

11 | 17

ESCALONAMENTO DO PROCESSADOR Escalonamento A actividade do SO que decide os movimentos dos processos entre as várias filas e estados. O escalonamento da CPU é a base dos sistemas com multiprogramação. A execução de um processo consiste em geral de: Um ciclo de execução na CPU (CPU burst), seguido de:

o Uma espera por uma operação de I/O (I/O burst)

A escolha do algoritmo de escalonamento depende do tipo de instruções dos bursts. Distribuição típica dos CPU bursts:

Elevado n.º de bursts de curta duração Baixo nº de bursts de longa duração

Programa CPU bound – passa a maior parte do tempo a usar a CPU e pode ter alguns CPU bursts muito longos I/O bound – passa mais tempo a fazer I/O do que computação e tem tipicamente, muitos CPU

bursts curtos NÍVEIS DE ESCALONAMENTO DA CPU 1. Escalonamento de longo prazo (LP)

Determina que processos são admitidos para execução no sistema

2. Escalonamento de curto prazo (CP) Determina qual o processo a ser executado proveniente da fila de processos prontos.

3. Escalonamento de médio prazo (MP) Determina que processos são carregados total ou parcialmente, em memória principal, depois

de terem estado suspensos. Está ligado à função de swapping

Escalonamento e transições de estado dos processos:

ESCALONAMENTO DE LP E DE MP Escalonamento de LP Intervêm na criação de novos processos A decisão é, geralmente, apenas função de

o Os recursos necessários e disponíveis o O nº máximo de processos admissíveis

Determina o grau de multiprogramação o Grau de multiprogramação = nº de processos em memória

Page 12: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

12 | 17

Escalonamento de MP Intervém por ocasião de escassez de recursos Pode ser executado com intervalos de alguns segundos a minutos

ESCALONAMENTO DE CP As decisões relativas ao escalonamento podem ter lugar quando um processo: 1. Comuta de “executar” “bloqueado” 2. Comuta de “executar” “pronto” 3. Comuta de “bloqueado” “pronto” 4. Termina

Em geral, é invocado com intervalos muito curtos. Deve ser o mais rápido e eficiente possível. Pode ser: Preemptivo – o processo pode ser forçado a ceder à CPU Não preemptivo – o processo executa até bloquear ou ceder a vez voluntariamente (ponto 1 e 4)

ALGORITMOSDE ESCALONAMENTO First-Come First-Served (FCFS) Shortest Job First (SJF) e Shortest Remaining Time First (SRTF) Priority Shedulling (PS) Round-Robin (RR) Multilevel Queue (MLQ) Multilevel Feedback Queue (MLFQ)

FIRST-COME FIRST-SERVED (FCFS) Os processos são escalonados por ordem de chegada (fila FIFO) Não preemtivo Vantagens:

o Fácil de implementar o Simples e rápido na decisão o Comportamento previsível o Não há possibilidade de inanição (todos os processos têm oportunidade de executar)

Desvantagens: o O tempo médio de espera é frequentemente longo. o Pode conduzir a baixa utilização da CPU e dos dispositivos de I/O o Penaliza os processos curtos e os processos I/O bound

Inadequado para sistemas time-sharing ROUND ROBIN (RR) Atribui-se a cada processo uma fatia de tempo (quantum) para executar A lista de processos pronto é uma fila do tipo FIFO Sempre que há uma mudança de contexto o processo que deixa o processador vai para o fim da

lista. Há um temporizador que interrompe o processo em execução no fim da sua fatia de tempo Se um processo bloquear, antes de sofrer preempção, o temporizador é reinicializado.

Page 13: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

13 | 17

Efeito da fatia de tempo / quantum (q)

o Fatia grande = FCFS o Fatia pequena = muitas mudanças de contexto; perda de eficiência

As fatias devem ser pequenas mas bastante maiores do que o tempo gasto na mudança de contexto.

Nenhum processo espera mais do que (n-1).q unidades de tempo pela sua fatia de tempo seguinte (n = nº processos).

MULTILEVEL FEEDBACK QUEUE Parâmetros de um MLFQ scheduller: Número de filas Algoritmo de escalonamento para cada fila (quase sempre RR) Método usado para determinar quando se deve promover um processo (quando ele bloqueia

antes de terminar a sua fatia de tempo) Método usado para determinar quando se deve despromover um processo (quando usa

completamente a sua fatia de tempo) Método usado para determinar em que fila entre no processo pela 1ª vez (beneficio da duvida:

começar por uma de alta prioridade) Politica de “envelhecimento” (mover para filas de maior prioridade quando o tempo de espera

começa a ser elevado) EXEMPLO (MLFQ) Primeiro, executar todos os processos da fila 0. Quando estiver vazia, passar aos da fila 1,… Processos da fila 1 a executar, mas chega processo para a fila 0 => preempção do processo da fila 1 Um processo da fila 0 recebe um quantum de 8 ms. Se não acabar nesse tempo, vai para a fila 1. Se a fila 0 estiver vazia é dado um quantum de 16 ms ao 1º processo da fila 1. Se ele não acabar

neste período, passa para a fila 2 Processos com CPU burst < 8 ms são servidos rapidamente Os processos longos acabam por cair na fila 2 (FCFS)

ESCALONAMENTO EM SISTEMAS MULTIPROCESSADOR

1. Escalonamento mais complexo do que em sistemas uniprocessador 2. Sistemas

o Homogéneos (processadores idênticos) Facilitam a partilha da carga Em geral, usa-se uma fila única para todos os processadores

o Heterogéneos (processadores diferentes) 1. Escalonamento

o Mestre/escravo (Master/Slave) o Auto-Escalonamento

Escalonamento Mestre / Escravo

o O processador mestre “corre” o SO e faz o despacho das tarefas para os processadores escravo

o Os escravos só correm programas do utilizador Auto-Escalonamento

o Cada processador manipula a lista de processos prontos o A manipulação da lista torna-se complicada

Assegurar que não há 2 processadores a seleccionar o mesmo processo e/ou a actualizar a lista simultaneamente

Page 14: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

14 | 17

ESCALONAMENTO EM SISTEMAS TEMPO REAL Sistemas Hard-Real-Time Têm de completar as tarefas dentro de um intervalo de tempo garantido

o O escalonadortem de saber o tempo máximo que demora a executar cada função do SO (impossível em memória virtual)

o Hardware dedicado, muito específico Sistemas Soft-Real-Time

Apenas requerem que certos processos críticos tenham prioridade sobre os outros o Escalonamento com prioridades, sendo atribuída prioridade elevada aos processos

críticos. o A latência de despacho deve ser curta o Deve existir possibilidade de preempção

INPUT E OUTPUT INTRODUÇÃO Uma das mais importantes funções do SO é controlar os dispositivos periféricos:

1. Enviar comandos aos dispositivos 2. Receber / enviar dados 3. Aperceber-se das interrupções 4. Tratar erros

O SO estabelece uma interface entre os dispositivos e o resto do sistema I/O – HARDWARE Tipos de dispositivos periféricos

1. Orientados ao bloco o Guardam a informação em blocos de dimensão fixa, cada um com o seu endereço o O acesso aos blocos é feito de forma independente uns dos outros o Exemplos: discos-rígidos, CD-ROMs

2. Orientados ao carácter o Aceita ou entrega um conjunto contínuo de bytes (stream) o Exemplos: teclados, modems, impressoras

3. Outros casos o Relógio do sistema

A função deste dispositivo é apenas enviar uma interrupção periodicamente I/O – HARDWARE

Controladores (adapters) o Interface (em hardware) que o dispositivo apresenta ao resto do sistema

O controlador é geralmente constituído por:

o Conjunto de registos programáveis o Conjunto de registos para dados (escrita/leitura) o Lógica de controlo o No fundo é um micro-processador, com ligações aos barramentos do sistema

Page 15: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

15 | 17

Acesso aos dispositivos

Portos I/O o A cada registo dos diversos controladores é atribuído um número designado Porto I/O o O acesso é feito utilizando instruções em linguagem de baixo nível (habitualmente

assembly) in registo, porto copia o conteúdo do registo do controlador de periférico para

um registo da CPU outporto, registo copia o conteúdo de um registo da CPU para um registo do

controlador Memory-mapped I/O

Deste modo o acesso aos dispositivos é feito como se tratasse de um acesso à memória Cada registo do controlador é mapeado para uma posição de memória Uma escrita ou leitura nessa posição de memória corresponde na realidade a uma escrita /

leitura no registo do controlador Pode-se também ter acesso híbrido:

o Acesso a alguns dispositivos por memory-mapped I/O o A outros dispositivos acesso por portos o Ou mesmo acesso dos dois modos ao mesmo dispositivo

Interrupções

As interrupções podem ser de três tipos: o Hardware – geradas por periféricos o Software – geradas por programas o Excepções – geradas no próprio processador

Em questões de I/O, as interrupções de hardware têm um papel muito importante

o Quando um dispositivo termina uma operação de I/O, gera uma interrupção numa linha de IRQ

I/O – SOFTWARE Existem basicamente três formas diferentes de efectuar operações de I/O:

1. I/O programada 2. I/O por interrupções 3. I/O por DMA

1. I/O PROGRAMADA

O CPU efectua todo o trabalho de I/O O CPU vai enviando/recebendo os dados dos dispositivos Após despachar cada dado (byte ou bloco), verifica se o periférico está pronto para continuar Este método designa-se por polling

Desvantagem: O processador passa maior parte do tempo em espera activa 2. I/O POR INTERRUPÇÕES

Com este modelo, o processador envia/recebe dados do periférico, mas depois pode-se dedicar a outro processo.

Entretanto quando o periférico está pronto para continuar, interrompe o processador Após a interrupção o processador envia/recebe mais dados e assim sucessivamente até a

operação de I/O estar concluída

Page 16: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

16 | 17

Vantagem Maior rendimento – o processador pode-se ocupar de outros processos, enquanto não chega uma interrupção Desvantagem As interrupções ocorrem com demasiada frequência 3. I/O POR DMA (DIRECT MEMORY ACCESS)

Semelhante a I/O programada, mas o controlador DMA substitui o processador O processador limita-se a dar as instruções necessárias ao controlador de DMA para iniciar a

transferência de dados Quando o controlador termina a transferência de dados, notifica o processador através de uma

interrupção Vantagem Uma só interrupção após toda a operação de I/O terminar Desvantagem (só em alguns casos) Este esquema pode não funcionar se o periférico for demasiado rápido em relação ao controlador de DMA Se o periférico for muito rápido a aceitar dados, por exemplo, o controlador de DMA terá que ser suficientemente rápido para ir “alimentando” o periférico com os dados. Caso o controlador de DMA seja demasiado lento para o periférico em causa, utiliza-se I/O por interrupções. TRATAMENTO DE INTERRUPÇÕES Quando ocorre uma interrupção, o SO tem diversas tarefas a efectuar: 1. Salvaguardar o conteúdo dos registos do processador 2. Estabelecer um contexto para a rotina de tratamento da interrupção (que no fundo é um processo) 3. Executar a rotina de tratamento da interrupção 4. Escolher um novo processo para correr Entretanto pode ter desbloqueado um processo prioritário,

por isso o processo que vai correr não é necessariamente aquele que perdeu o processador devido à interrupção

DEVICE INDEPENDENT I/O

1. Apresentar ao programador/utilizador uma interface de acesso aos dispositivos sempre da mesma forma, independentemente do dispositivo

o Exemplo: escrever num disco, disquete ou CD-RW sempre da mesma forma 2. Uniformizar os nomes pelos quais os dispositivos são referenciados pelo sistema 3. Tratamento de erros

o Efectuar o tratamento dos erros originados pelos dispositivos o Exemplos:

Enviar documento para uma impressora desligada Leitura de um sector do disco que está danificado Um utilizador tentar enviar dados para o teclado (!)

Page 17: Sistemas Operativos 2010 - SIM2008@IslaGaia · Sistemas Operativos 2010 6 | 17 ESTADOS DE UM PROCESSO ... processos prontos por cada nível de prioridade e uma fila de processos bloqueados

Sistemas Operativos 2010

17 | 17

Transferências síncronas e assíncronas Suporte para:

Transferências de dados síncronas, bloqueantes Transferências de dados assíncronas, com base em interrupções (o tipo de transferência mais

vulgares) o Um dos objectivos do SO é tentar fazer com que uma transferência assíncrona pareça

síncrona para o utilizador (mais fácil de programar) Protecção e bloqueio

Alguns periféricos (e.g., gravador de CDs) apenas permitem a sua utilização a um só processo de cada vez.

Se outro processo tentar aceder, duas opções são possíveis: o Devolver erro na chamada ao sistema correspondente o Bloquear o processo até que o periférico esteja livre

NÍVEL DO UTILIZADOR Chamadas ao sistema que iniciam as operações de I/O Normalmente organizadas em bibliotecas acessíveis ao utilizador (programador)

o Bibliotecas na directoria lib no Unix/Linux o APIs no Windows

Exemplo no Unix/Linux o Chamada ao sistema read

Leitura de dados de um dispositivo, identificado por um dado descritor o Chamada ao sistema write

Escrita de dados num dispositivo, identificado por um dado descritor