Você está na página 1de 50

Descrição e Controlo de Processos

Sistemas Operativos

2023/2024

João L. M. Pereira
CLAV-256
joao.pedro.pereira@uevora.pt

Baseado nos slides do Pedro Salgueiro, Universidade de Évora e do Capítulo 3 (Operating System Overview)
do livro Operating Systems: Internals and Design Principles, 7th Edition, Dave Bremer, Otago Polytechnic, N.Z.,
2008, Prentice Hall.
Revisão: Interface Hardware-Software

2
Revisão de conceitos: Multiprogramming

● Recursos são disponibilizados


○ a várias aplicações
○ ao mesmo tempo

● O processador está constantemente a alternar entre várias aplicações


○ todas aparentam estar em execução ao mesmo tempo

● O processador e dispositivos de I/O conseguem executar em paralelo


○ melhora a eficiência

3
Revisão de conceitos: Processos

● Conceito fundamental no estudo de Sistemas Operativos


○ Também referidos como tarefas (tasks)

● Instância de um programa em execução


● Um programa em execução

4
Elementos de um processo

● Elementos essenciais
○ Código do programa

■ pode ser partilhado entre vários processos que estão a executar o mesmo programa

○ Conjunto de dados associado ao código

● Quando o processador começa a executar o código de um programa


○ a entidade que resulta desta execução, chama-se processo

5
Elementos de um processo

Quando um programa está em execução, pode ser caracterizado por:

● Identificador

● Estado
● Prioridade
● Program counter
● Apontadores para a memória (memory pointers)
● Dados de contexto (context data)
● Informação sobre estado de I/O
● Informações estatísticas
○ accounting information

6
Process Control Block (PCB)

● Contém todos os elementos do processo


● Criado e gerido pelo sistema operativo
● Ferramenta essencial para gerir múltiplos
processos
● Quando um processo é removido do estado
“running”
○ para que outro processo possa ser executado
○ é necessário guardar os dados atuais do Program Counter
e dos registos do processo (context data)
○ informação guardada no Process Control Block do process

7
Tempo de vida do PCB

● PCB representa um processo específico


● Construído pelo Sistema Operativo
○ Quando um processo é criado

● Destruído quando o processo termina

8
Criação de processos

Razões

● Nova “tarefa”
○ aplicação, batch de aplicações, …

● Login interactivo
○ Um utilizador faz login no sistema

● Criado pelo SO para fornecer um serviço


○ SO pode criar processos para oferecer uma funcionalidade, em nome do utilizador
○ e.g.: um processo para controlar uma impressão

● Iniciado por outro processo


○ modularidade
○ explorar paralelismo
○ um programa pode criar vários processos

9
Criação de processos

● Processos podem ser criados por outros processos


○ dividir a aplicação em unidades independentes
○ que podem executar em paralelo em SMP (Symmetric multiprocessing or shared-memory
multiprocessing)

● Servidor cria novos processos


○ para cada request que recebe

● Terminologia
○ Process spawning: um processo cria outro processo
○ Processo pai: o processo que solicita a criação de outro processo
○ Processo filho: o processo criado

10
Termino de Processos

● Deve existir uma forma de indicar que um processo terminou de forma


normal
● Um batch job deve incluir uma instrução de “HALT” ou um serviço explícito
do SO
○ para terminar

● Uma aplicação interativa


○ uma ação do utilizador deve indicar que o processo terminou

○ log off ou terminar uma aplicação

● Muitos tipos de erros podem terminar uma aplicação

11
Razões para um processo terminar

12
Razões para um processo terminar

13
Estados dos processos

● Trace
○ Comportamento de um processo individual
■ listagem de todas as sequências de instruções executadas para o processo
○ Comportamento pode ser caracterizado
■ através da forma como os “traces” de diferentes processos são intercalados

● Dispatcher
○ Programa que faz a troca do processador
■ entre vários processos

14
Execução dos processos

15
Execução dos processos - traces

16
Execução dos processos

Visão do processador

17
O que aconteceu?

● O sistema operativo está a mudar entre vários processos, com base em


ocorrências de vários tipos de eventos

○ Timeouts: foi alocado um tempo máximo de execução a um processo para executar;


■ quando o tempo expira um “timer”, é enviado um sinal de interrupção (interrupt signal)
ao SO

○ I/O request: processo executa uma operação I/O que deve ser escalonada (scheduled) e
executada;
■ o processo vai esperar até que a operação termine

18
Modelos de estados de processos

● Durante o seu tempo de vida, um processo pode ter vários estados


○ estado = descrição do estado (condição) atual do processo

● Um processo muda de estado para outro, com base em


○ ações do processo
○ ações do sistema operativo
○ ações de outra entidade

● Transição
○ ação que causa a mudança de estado

19
Modelo de 2 estados

Um processo pode estar num de dois estados:

● em execução (running)
● em não execução (not-running)

20
Modelo de 2 estados

21
Modelo de 5 estados

22
Modelo de 5 estados - Filas (queues)

23
Modelo de 5 estados - Filas (queues)

24
Processos suspensos

Swapping

● envolve mover alguns (ou todos) os processos da memória principal para


disco

● se não existirem processos na memória principal no estado Ready, o SO


pode “fazer swap” de um dos processos no estado Blocked para disco
○ processo fica numa queue de processos suspensos
○ deixando espaço para que outro processo possa ser executado

● Processos podem ser suspensos por outras razões


○ se o processo pai suspender

25
Modelo de 6 estados

26
Modelo de 7 estados

27
Razões para suspender um processo

28
Modos de execução

User Mode Kernel Mode


● modo menos privilegiado: apenas ● modo mais privilegiado: podem ser
pode executar algumas instruções executadas todas as instruções do
de hardware hardware

● tipicamente, os programas de ● também chamado de


utilizador são executados em modo ○ system mode
de utilizador ○ control mode

● kernel do sistema operativo

29
Interação Processo - SO

● Em qualquer momento o processador está a executar


○ instruções da aplicação; ou
○ instruções do sistema operativo

● Como é que o CPU sabe quando fazer a alteração?

● Que tipo de processamento é necessário?

● Terminologia:
○ Mode switch: execução alterna entre o programa do utilizador e o SO
○ Process or context switch: um processo sai do estado “running”, e outro passa para o
estado “running”

30
Interrupções, mudança de modos e mudança de contexto

● Sempre que existe uma interrupção, trap, ou system call, o sistema


operativo ganha controlo do program counter do programa, para que possa
tratar do evento que deu origem à interrupção
■ Esta ação envolve um “mode switch”

● O SO identifica o evento, processa-o, e passa o controlo ao escalonador


(scheduler)
○ Que decide se resume o processo que estava em estado “running” quando ocorreu a
interrupção,
■ Esta ação envolve apenas um “mode switch”
○ ou se coloca outro processo no estado “running”
■ Esta ação envolve um “process switch (context switch)”

31
Mode Switch

● Se não houverem interrupções pendentes, o processador:


○ Avança para a fase de fetch
○ Recupera a próxima instrução do programa atual no processo atual.

● Se houver uma interrupção pendente, o processador:


○ Atribui ao Program Counter, o endereço de início de um programa que trata a interrupção
(interrupt handler).
○ Muda do modo de utilizador para o modo de kernel
■ de modo a que o código de processamento de interrupção possa incluir instruções
privilegiadas.

32
Process switching
Requer mais mudanças que o Mode Switch

Passos envolvidos

1. guardar o contexto do processador


2. atualizar o process control block do processo que está atualmente no modo
“running” (muda o estado do processo)
3. mover o process control block para a fila/queue adequada
4. escolher outro processo para execução
5. atualizar o process control block do processo escolhido
6. atualizar as estruturas de dados da gestão da memória
7. restaurar o contexto do processador, para o estado igual ao momento em
que o processo estava quando saiu do estado “running”
a. carrega os valores anteriores do Program Counter e de outros registos
33
Estruturas de dados do sistema

● Uma das funcionalidades básicas de um SO é a gestão dos recursos de um


computador
○ Partilha justa entre todos os processos

● Cada SO tem a sua forma de construir as tabelas para guardar a


informação necessária, mas de forma geral, as necessidades são as
mesmas
○ Manter o registo da alocação de recursos a processos

● Por exemplo
○ próximo slide

34
Estruturas de dados do sistema

35
Estruturas de dados do sistema

36
Tabela de processos

● Contém uma entrada para cada processo


○ Informação directa ou indirecta sobre a alocação de memória do processo, ficheiros, I/O
status, etc

● Esta informação pode ser guardada numa estrutura de dados, conhecida


como “process image”

37
Elementos de um processo (tipicamente)
Process Image:

● User Data
○ A parte do “user space" que pode ser alterada. Pode incluir dados do programa, area de stack do utilizador e
programas que podem modificados.

● User Program
○ O programa a ser executado

● Stack
○ Cada programa tem uma ou mais last-in-first-out (LIFO) stack associada. As stacks são usadas para guardar
parâmetros e endereços de chamadas de procedimentos e de system calls

● Process Control Block


○ Dados necessários pelo SO para controlar o processo.

● Heap
○ Memória alocada dinamicamente

38
Process Control Block (PCB)

● Contém toda a informação necessária pelo SO para gerir os processos


● Conteúdo típico
○ Identificador do processo

○ Apontadores para informação sobre a alocação de memória

○ Localização do armazenamento do conteúdo dos registos

○ Estado do processo

○ …

39
Elementos de um PCB (tipicamente)

40
Elementos de
um PCB
(tipicamente)

41
Identificação dos processos

● A cada processo é atribuído um identificador único numérico


○ o pid

● As tabelas controladas pelo SO podem usar identificadores dos processos


para fazer
○ referenências cruzadas entre várias tabelas

● Quando os processos comunicam com outros, identificador do processo


informa o SO do destino da comunicação

● Quando os processos têm autorização para criar outros processos


○ identificadores são usados indicam os pais e os filhos de cada processo

42
Informação do estado do processador

● Registos do processador, incluem registos


○ visíveis pelo utilizador
○ de controlo e estado
○ stack pointers

● Program Status Word (PSW)


○ códigos de condições de estados
○ outras informações sobre o estado

43
Elementos de um processo (exemplo)

44
Kernel de um SO - Funcionalidades típicas

45
Criação de processos

Quando o OS decide criar um processo:


1. atribui um identificador único de processo ao novo processo
2. aloca espaço para o processo
3. inicializa o process control block
4. define as ligações apropriadas (ex: adicionar à ready/suspend list)
5. cria (ou expande) outras estruturas de dados

46
Unix SVR4

● Usa um modelo onde grande parte do SO executa como um processo de


utilizador

● Processos do sistema (System processs)


○ executam em kernel mode
○ executam código do sistema operativo para realizar tarefas administrativas e de “limpeza”
(e.g., allocação de memoria, process swapping)

● Processos de utilizador
○ executam em user mode para executar programas dos utilizadores
○ executam em kernel mode para executar instruções que pertencem ao kernel
○ entram em kernel mode quando
■ invocam system calls
■ exceções são geradas
■ ocorrem interrupções 47
Estados do processos em UNIX

48
Estados do processos em UNIX

49
UNIX - Criação de processos

● A criação de processo filho é feita através de uma system call:


○ fork ( )

● O SO faz as seguintes operações (em Kernel Mode)


1. Aloca espaço na tabela de processos para o novo processo
2. Atribui um ID de único de processo ao novo processo filho
3. Faz uma cópia da imagem do processo do pai, excluindo a memória partilhada
4. Incrementa os contadores dos ficheiros que pertencem ao processo pai, por forma a
reflectir que outro processo também passou a ser dona desses ficheiros
5. Coloca o processo filho no estado "Ready to Run”
6. Devolve o ID do processo filho ao processo pai, e um 0 ao processo filho

50

Você também pode gostar