• Nenhum resultado encontrado

Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais"

Copied!
7
0
0

Texto

(1)

Instituto de Informática

-U

FRGS

Sistemas Operacionais

Processos

Implementação e estudo de casos

Aula 03

PC SP Pilha Texto (código) Dados heap (monte) 0 2n-1 Instituto d e Informática -UFRGS

Questões...

Em que momentos um processo pode ser criado?

Como que se cria processos? O que deve ser feito na criação?

Como um processo pode ser terminado? O que deve ser feito no

término?

Sistemas Operacionais 2 Instituto d e Informática -UFRGS

Introdução

Os processos são criados por ações do sistema operacional ou de

outros processo

■ Chamada de sistema ou funções específicas ■ Possuem um ciclo de vida: criação-execução-término 

Cada processo possui

Uma identificação única: Process Identifier (pid)

■ serve para “rastrear e monitorar” as atividades e demandas de um

processo em particular

Um PCB (Process Control Block) ou descritor de processo

O sistema operacional mantém uma tabela de processos

■ Uma lista (vetor) de descritores de processos (PCB)

Sistemas Operacionais 3 Instituto d e Informática -UFRGS

Implementação de processo

O processo é “materializado” através de uma estrutura de dados

Process Control Block (PCB)

■ Mantido na área de dados do núcleo do sistema operacional 

Informações mantidas:

■ Espaço de endereçamento ■ Contexto

■ Estado

■ Contabilização do uso de recursos do sistema

■ Proteção e compartilhamento

■ etc

Sistemas Operacionais 4

(2)

Instituto

d

e Informática

-UFRGS

Criação e término: situação genérica

Criação

Inicialização do sistema (bootstrap)

Em sistemas batch (lote), pelo inicio de uma tarefa

■ Chamadas de sistema

■ Requisição explícita do usuário via linha de comando ou “cliques” em ícones

em uma interface gráfica

Término

■ Normal (voluntário)

■ Consequência de uma rotina de tratamento de erro (voluntário)

■ Erro fatal (involuntário) ■ Cancelamento (involuntário)

Sistemas Operacionais 5

Efeito colateral: o que fazer com os processos

que foram criados pelo processo que termina?

Instituto d e Informática -UFRGS Sistemas Operacionais 6 A . C arissimi -3-sep t.-17

Relacionamento entre processos

Processos independentes

■ Não apresentam relacionamentos com outros processos 

Grupo de processos

■ Apresentam algum tipo de relacionamento

■ e.g. filiação

■ Podem compartilhar recursos ■ Definição de hierarquia de processos

Instituto d e Informática -UFRGS A . C arissimi -3-sep t.-17

Hierarquia de processos

 Processo criador (pai) e processo criado (filho) ■ Um processo tem um único pai

■ Um processo filho pode criar outros processos filhos ■ Gera uma hierarquia

 Representação através de uma árvore ■ Evolução dinâmica

 O que fazer na destruição de um processo? ■ Toda a descendência “morre”

■ A descendência é herdada pelo processo “avô” ■ Postergar a destruição efetiva do processo pai até

que os todos processos filhos terminem

Instituto

d

e Informática

-UFRGS

Criação, execução e término de processos

Criação de um processo

■ Significa alocar um PCB para ele e inicializar adequadamente

■ Um PCB (descritor de processo) = estrutura de dados

Durante sua existência o processo passa pelos estados apto,

executando e bloqueado

Término

■ Liberação do PCB

Processo = Código + Pilha + Dados + heap + recursos + estado da CPU + pid PCB Espaço de endereçamento

(3)

Instituto d e Informática -UFRGS Sistemas Operacionais 9 A . C arissimi -3-sep t.-17

Princípio básico de implementação de processos

 Processo é uma estrutura de dados

■ Alocação estática: vetor de N

elementos do tipo PCB

Alocação dinâmica (e.g. malloc)

 Os estados são filas de PCB

■ Fila de livres

■ Fila de aptos

■ Fila de execução

■ Fila de bloqueados

 Eventos (arcos) realizam transição

de uma fila a outra

apto execução bloqueado criação término Fila de bloqueados Fila de aptos Fila “em execução” Interface genérica: Insere(fila, pid); Retira(fila, pid); Instituto d e Informática -UFRGS

Exemplo (simples) de implementação

Sistemas Operacionais 10 struct desc_proc{ char estado_atual; int pid; unsigned inicio_memoria; unsigned tamanho_mem; struct arq arq_abertos[20]; unsigned tempo_cpu;

unsigned proc_pc; unsigned proc_sp; unsigned proc_acc; unsigned proc_rx;

struct desc_proc *proximo; }

struct desc_proc

tab_desc[MAX_PROCESS];

struct desc_proc *desc_livre; struct desc_proc *espera_cpu; struct desc_proc *usando_cpu; struct desc_proc *bloqueados; /* Inicialização*/

for (i=0; i < MAX_PROCESS; i++) tab_desc[i].prox = &tab_desc[i+1]; tab_desc[i].prox = NULL; desc_livre = &tab_desc[0]; espera_cpu= NULL; usando_cpu= NULL; bloqueado = NULL;

Estrutura de dados Inicialização

Instituto

d

e Informática

-UFRGS

Estudo de caso: processos em Unix

Inicialização

Chamadas de sistema básicas

■ fork( )

■ exec( ) : possui uma série de variantes ■ wait ( ) : possui uma série de variantes ■ exit ( )

Sistema conhecido como fork-exec

Todo processo tem um pai

A exceção (que confirma a regra) é o processo sched (pid=0) criado na

inicialização do sistema Sistemas Operacionais 11 Instituto d e Informática -UFRGS

Inicialização de uma máquina

Sistema de bootstraping

■ Carregar o sistema operacional e passar o controle para ele

Núcleo: tipicamente é uma imagem binária (e.g vmlinuz)

Programas de sistema: lidos do disco (precisa driver + sistema de arquivos)

Processador no processo de power-on ou reset

■ Inicia sempre no modo núcleo

■ Registrador PC recebe um valor específico ■ Corresponde ao endereço de uma ROM

■ Código de diagnóstico e reconhecimento dos dispositivos do sistema

■ Desvia para programa de carga

■ Sistemas embarcados: imagem do núcleo está em ROM ou EPROM ■ Sistemas convencionais: imagem do núcleo está no disco

(4)

Instituto d e Informática -UFRGS

Exemplo: mundo PC

Sistemas Operacionais 13 1. Diagnóstico e BIOS

2. Desvio para o dispositivo de boot 3. Coloca carregador na RAM (eg.

Lilo, grub, carregador do Windows) 4. Passa o controle para o carregador 5. Carrega a imagem do núcleo 6. Passa controle para o núcleo

a. Inicializa sistema operacional b. Criação do primeiro processo c. Passa para modo usuário 7. Espera inicio de sessão de

trabalho

Master Boot Record - MBR

MBR

Carrega o carregador

Carrega o sistema operacional Carrega MBR

Os códigos são carregados na RAM para serem executados

Após o passo 7, só via chamada de sistema ou interrupção de hardware para passar para o modo núcleo.

Instituto d e Informática -U FRGS

Chamada de sistema fork

Criação de um processo

O processo filho é criado a “imagem e semelhança” do processo pai

■ Clone exato do espaço de endereçamento do pai

■ Inclui a área de pilha e de dados (globais)

Otimização copy-and-write Sistemas Operacionais 14 fork( ) Ppai fork( ) Ppai fork( ) Pfilho Não executado

fork( ) tem dois retornos Pai pid do filho Filho zero Instituto d e Informática -UFRGS A . C arissimi -3-set -1 7

/* Orion Lawlor's Short UNIX Examples, [email protected] 2004/9/5 Shows how to use fork() in a UNIX program.

*/

#include <stdio.h> #include <stdlib.h> #include <unistd.h>

#include <sys/types.h> /* for pid_t */ #include <sys/wait.h> /* for wait */ void doWork(char *) {

snipped code }

int main() {

/*Spawn a new process to run alongside us.*/ pid_t pid=fork();

if (pid==0) { /* child process */ doWork("child"); exit(0); }

else { /* pid!=0; parent process */ doWork("parent");

waitpid(pid,0,0); /* wait for child to exit */ } return 0; } Instituto d e Informática -UFRGS

Chamada de sistema exec

Executada por um dos dois processos (pai ou filho) para substituir o

espaço de memória do processo por um novo

■ Tipicamente executado pelo filho

■ Carrega um arquivo binário (executável) na memória e inicia a execução dele

fork( ) Ppai fork( ) Ppai fork( ) exec()

Pfilho Novo Pfilho

(5)

Instituto d e Informática -UFRGS Sistemas Operacionais II 17 A . C arissimi -3-set -1 7

/* Orion Lawlor's Short UNIX Examples, [email protected] 2004/9/5 Shows how to fork()/exec() a child process, in this case

simply a shell. fork/exec is more complicated, but much more flexible and secure than using "system()" to run a process. */

#include <stdio.h> #include <stdlib.h>

#include <unistd.h> /* for fork */ #include <sys/types.h> /* for pid_t */ #include <sys/wait.h> /* for wait */ int main()

{

/*Spawn a child to run the program.*/ pid_t pid=fork();

if (pid==0) { /* child process */

static char *argv[]={"echo","Foo is my name.",NULL}; execv("/bin/echo",argv);

exit(127); /* only if execv fails */ }

else { /* pid!=0; parent process */

waitpid(pid,0,0); /* wait for child to exit */ } return 0; } Instituto d e Informática -UFRGS

Chamadas de sistema exit e kill

Chamada exit serve para terminar o processo

■ Possui um valor de retorno que é passado para seu processo pai ■ e.g.: exit(0); exit(-1)

Quando um processo termina, o núcleo libera os recursos usados

pelo processo

■ e.g.: memória física e virtual, arquivos abertos, buffers de E/S, PCB, etc 

Um processo pode terminar outro processo usando a chamada kill

■ É um término involuntário causando por

■ Processo ultrapassou os recursos que poderia alocar ■ Tarefa que executa não é mais necessária

■ Processo pai está terminando e o filho não é autorizado a seguir sozinho ■ Realizou uma situação de erro (fatal)

Sistemas Operacionais 18 Instituto d e Informática -UFRGS

Término de processos em Unix

Processo em primeiro plano (foreground) ■ Interação com usuário

■ O término do pai, provoca término dos

filhos

Processo em segundo plano (background): ■ execução de tarefas concorrentes

(daemons)

■ No término do processo pai, o processo init “herda” os processos filhos

Processo init é a raiz da hierarquia e

é “imortal”

O init (pid=1) é criado pelo sched

(pid=0) Sistemas Operacionais 19 shell fork exec prog1 pid:424 pid:512 pid:512 shell Prog 1 shell fork exec prog1 pid:424 pid:512 pid:512 shell Prog 1 %prog1 & %prog1 Instituto d e Informática -UFRGS

Chamada de sistema wait

Empregada pelo processo pai para esperar a conclusão do

processo filho

Processo zumbi

■ Processo filho que já terminou, mas ainda existe na tabela de processos do

sistema até o processo pai recuperar seu código de saída (exit)

No momento que pai executa wait o PCB do filho é liberado

Sistemas Operacionais 20 fork( ) exec( ) wait( ) exit( ) Término pai pai filho (opcional) exit( ) Término filho

(6)

Instituto

d

e Informática

-UFRGS

Processos no sistema Windows

Procedimento similar ao mundo Unix, mas com particularidades

Processos são criados pela função CreateProcess( ) da API Win32

■ Possui muitos parâmetros para descrever o comportamento do filho

■ Segurança, herança ou não recursos, código a ser executado, etc...

CreateProcess() é implementada por diferentes funções internas que

variam entre versões Windows

Quem executa Create pode passar o identificador de um processo

que será o processo pai do que está sendo criado

■ Quebra a noção de hierarquia de processos

■ Os processos Unix não “deserdam” seu filhos assim

Sistemas Operacionais 21 Instituto d e Informática -UFRGS

Leituras adicionais

Oliveira, R.; Carissimi, A.; Toscani, S.; Sistemas Operacionais (4aedição).

Série Livros Didáticos – INF/UFRGS – vol 11. Porto Alegre. Editora Bookman. 2010.

■ Capítulo 2 (seções 2.1 a 2.5) e Capítulo 4 (seção 4.1)

Silberchatz, A.; Galvin, P.; Gagne, G.; Operating System Concepts (8thed),

John Wiley & Sons, 2009. (ou edições anteriores)

■ Capítulo 3 (seção 3.1, 3.2 e 3.3)

Tanenbaum, A.;. Sistemas Operacionais Modernos (3aedição). São Paulo.

Editora Prentice-Hall, 2010. ■ Capítulo 2 (seção 2.1) 22 Sistemas Operacionais Instituto d e Informática -UFRGS

Espaço de endereçamento

Conjunto de endereços que um processo pode usar

■ Faixa de 0 a 2n-1, onde n é a capacidade de endereçamento do processador

Endereço de retorno Parâmetros de funções Variáveis locais Alocação dinâmica de memória Variáveis globais Código a ser executado PC SP Pilha Texto (código) Dados heap (monte) Espaço de endereçamento (lógico) 0 2n-1 Instituto d e Informática -UFRGS

Espaço de endereçamento e processo

Modelo teórico

■ Na prática, o processo ocupa apenas o necessário e compartilha a memória física através da noção de memória virtual (estudado mais tarde)

Para executar, um processo precisa estar na memória AND o

processador apontar para o seu espaço de endereçamento

PC SP Pilha Texto (código) Dados heap (monte) 0 2n-1 Pilha Texto (código) Dados heap (monte) 0 2n-1 Processo 1 Processo 2 Registradores físicos do processador

(7)

Instituto

d

e Informática

-UFRGS

Multiprogramação e chaveamento de contexto

 Fornece a ilusão que executam simultaneamente, mas estão alternados

■ Exceção: se houver mais de uma CPU física (ou core)

Sistemas Operacionais 25

Escalonador sistema operacional ●●● PC SP P1 PC SP P2 PC SP Pn PC SP CPU virtual CPU física Chaveamento de contexto Sai Processo i SPi= SP PCi= PC Entra Processo j SP = SPj PC = PCj (há outras informações: GPRs, estados, etc que são salvos e recuperados) Instituto d e Informática -UFRGS

Modelo de três estados

Um processo passa a ter três estados básicos*:

Execução (running), bloqueado (blocked) e apto (ready)

Escalonamento

Política para decidir qual processo sai de ready para running ■ Define o momento de como e quando são feitos as trocas de contexto

Sistemas Operacionais * Modelo ainda está incompleto! Há mais estados!! 26

apto execução

bloqueado criação

término Solicitação de E/S ou sincronização A espera de:

Conclusão de E/S Sincronização Término de E/S ou ocorrência de

evento de sincronização A espera para usar a CPU

Referências

Documentos relacionados

a) Custeio, para o ressarcimento de despesas de alimentação e transporte dos monitores responsáveis pelo desenvolvimento de atividades de acompanhamento pedagógico,

ü  Parente de 1° grau com TBH ü  Episódio puerperal (pós-parto) ü  Mudanças frequentes de emprego ü  Mudanças frequentes de parceiro ü 

Faça intervenções significativas (pergunte para que serve um dicionário, se repararam na organização do dicionário, se perceberam que é em ordem alfabética...). • Exponha

8- Dificuldade no atendimento aos clientes e conflitos com o público: o funcionário está completamente voltado para dentro da organização, para as suas normas e regulamentos

Desde o ano passado Mário Brito e seus familiares passaram a contar com o apoio da Embrapa Amapá, por meio do Projeto Tracajá, uma iniciativa que visa a imple- mentar tecnologias

Figura 8. Interface do ODA Collins... 2) Em duplas (ou grupos) os participantes irão desenvolver uma sequência de atividades para aplicar os ODAs com seus alunos em sala de aula.

5: Apostilamento de Minter e Dinter - Quando o curso realizado pelo aluno tratar-se de MINTER (mestrado interinstitucional) ou DINTER (doutorado interinstitucional), na

A tabela 7 mostra a taxa de crescimento e o tempo de duplicação da COVID-19 observados na população indígena assistida pelo SASISUS, para todos os DSEI e agrupados por região