Sistemas Operacionais

Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais II

Sistemas Operacionais

SOP - TADS Processos. Revisão Ultima aula

Sistemas Operacionais

SOP Sistemas Operacionais Módulo 04: Processo

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Processos. Conceitos Básicos

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Conceitos Básicos

Sistemas Operacionais

Sistemas Operacionais

Processos. Conceitos Básicos

Na Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação

Davidson Rodrigo Boccardo

Sistemas Operacionais. Conceito de Processos

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução

Prof. Kleber R. Rovai

Sistemas de Computação O Sistema Operacional Unix

SISTEMAS OPERACIONAIS

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema

Sistemas Operacionais

Sistemas Operacionais I

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Fundamentos de Sistemas Operacionais

Sistemas Operacionais I

Processos. Prof. Gustavo Leitão

Chamadas de Sistema (SYSCALL)

LABORATÓRIO SISTEMAS OPERACIONAIS

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Sistemas Operacionais

Sistemas Operacionais

LABORATÓRIO SISTEMAS DE TEMPO REAL

Sistemas de Entrada e Saída

Técnicas Avançadas de Programação

Processos. (c) 2005 Volnys B. Bernal Versão de 15/3/2006. Agenda. Processos. Introdução aos Processos. Introdução aos Processos

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Arquitetura de Computadores Sistemas Operacionais II

Sistemas de Computação. Processos e escalonamento

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Processos Volnys B. Bernal Versão de 20/03/2015. Agenda. Processos. Programa x Processo. Programa x Processo. Programa.

Estruturas de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Arquitetura de Sistemas Operativos

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais II

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Sistemas Operacionais

Sistemas Operacionais

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos

Gerência de Processos. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Leandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread

SVCs para Controle de Processos no Unix

Sistemas de Entrada e Saída

Sistemas Operacionais. Rodrigo Rubira Branco

Unix Processos. Geraldo Braz Junior

Sistemas Operacionais

Sistemas Operacionais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend


Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Sistemas Operacionais

Sistemas Operacionais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

Introdução aos Sistemas Operacionais

Capítulo 3: Processos

Sistemas Operacionais. Escalonamento de Processos

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Introdução a Arquitetura de Sistemas Operacionais. Parte 01

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Sistemas Operacionais

Métodos de Sincronização

Transcrição:

Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Processos Implementação e estudo de casos Aula 3 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 B (Process Control Block) ou descritor de processo O sistema operacional mantém uma tabela de processos Uma lista (vetor) de descritores de processos (B) Sistemas Operacionais 2 Criação e término: situação genérica Relacionamento entre processos Criação Inicialização do sistema Em sistemas batch (lote), pelo inicio i i 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ária) Consequência de uma rotina de tratamento de erro (voluntária) Erro fatal (involuntária) i Cancelamento (involuntário) Efeito colateral: o que fazer com os processos que, eventualmente, foram criados pelo que termina? A. Car issimi -8-août-1 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 Sistemas Operacionais 3 Sistemas Operacionais

Hierarquia de processos Criação, execução e término de processos A. Car issimi -8-août-1 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 Criação de um processo Significa alocar um B para ele e inicializar adequadamente Um B (descritor de processo) = estrutura t de dados d Durante sua existência o processo passa pelos estados apto, executando e bloqueado Término Liberação do B Processo = Código + + + + recursos + estado da CPU + pid Espaço de endereçamento B Sistemas Operacionais 5 Sistemas Operacionais 6 Princípio básico de implementação de processos Exemplo (simples) de implementação 1 A. Ca rissimi -8-août-1 Processo é uma estrutura de dados Alocação estática: vetor de N elementos do tipo B criação Fila em execução Alocação dinâmica (e.g. malloc) Os estados são filas de B apto execução término Fila de livres Fila de aptos Fila de aptos Fila de execução Fila de bloqueados Eventos (arcos) realizam transição de uma fila a outra Fila de bloqueados bloqueado Interface genérica: Insere(fila, pid); Retira(fila, pid); Estrutura de dados struct desc_proc{ char estado atual; int prioridade; unsigned inicio_memoria; unsigned tamanho_mem; struct arq arq abertos[2]; 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]; Inicialização struct desc_proc *desc_livre; struct desc proc *espera cpu; struct desc_proc *usando_cpu; struct desc_proc *bloqueados; /* Inicialização*/ for (i=; i < MAX_PROCESS; i++) tab_desc[i].prox = &tab_desc[i+1]; tab_desc[i].prox = NULL; desc_livre = &tab_desc[]; espera cpu= NULL; usando_cpu= NULL; bloqueado = NULL; Sistemas Operacionais 7 Sistemas Operacionais 8

Estudo de caso: processos em Unix Inicialização de uma máquina 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=) criado na inicialização do sistema Sistema de bootstraping Carregar o sistema operacional e passar o controle para ele Núcleo: tipicamente i t é uma imagem binária i (e.g vmlinuz) Programas de sistema: lidos do disco (precisa driver + sistema de arquivos) Processador no processo de power-onon ou reset Inicia sempre no modo núcleo Registrador 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 Sistemas Operacionais 9 Sistemas Operacionais 1 Exemplo: mundo Chamada de sistema fork Carrega MBR MBR Master Boot Record - MBR Carrega o carregador Carrega o sistema operacional 1. Diagnóstico e BIOS 2. Desvio para o dispositivo de boot 3. Coloca carregador na RAM (eg. Lilo, grub, carregador do Windows). 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 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. 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 P pai P pai P filho Não executado fork( ) fork( ) fork( ) fork( ) tem dois retornos Pai pid do filho Filho zero Sistemas Operacionais 11 Sistemas Operacionais 12

A. Car issimi -8-ago-1 /* Orion Lawlor's Short UNIX Examples, olawlor@acm.org 2/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==) { /* child process */ dowork("child"); exit(); else { /* pid!=; parent process */ dowork("parent"); waitpid(pid,,); /* wait for child to exit */ return ; Sistemas Operacionais II 13 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 i executado pelo filho Carrega um arquivo binário (executável) na memória e inicia a execução dele P pai P pai P filho Novo P filho código fork( ) fork( ) fork( ) exec() Sistemas Operacionais 1 A. Car issimi -8-ago-1 /* Orion Lawlor's Short UNIX Examples, olawlor@acm.org org 2/9/5 Shows how to fork()/exec() a child process, in this case simply a. 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==) { /* child process */ static char *argv[]={"echo","foo is my name.",null; execv("/bin/echo",argv); exit(127); /* only if execv fails */ else { /* pid!=; parent process */ waitpid(pid,,); /* wait for child to exit */ return ; Sistemas Operacionais II 15 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(); 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, B, 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 16

Término de processos em Unix Chamada de sistema wait 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 %prog1 pid:2 %prog1 & pid:2 fork fork exec prog1 Prog 1 exec prog1 Prog 1 Empregada pelo processo pai para esperar a conclusão do processo filho fork( ) Término pai pai wait( ) exit( ) filho exec( ) exit( ) (opcional) Término 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 B do filho é liberado Sistemas Operacionais 17 Sistemas Operacionais 18 Processos no sistema Windows Leituras adicionais 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 t 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 Oliveira, R.; Carissimi, A.; Toscani, S.; Sistemas Operacionais ( a edição). Série Livros Didáticos INF/UFRGS vol 11. Porto Alegre. Editora Bookman. 21. Capítulo 2 (seções 2.1 a 2.5) e Capítulo (seção.1) Silberchatz, A.; Galvin, P.; Gagne, G.; Operating System Concepts (8 th ed), John Wiley & Sons, 29. (ou edições anteriores) Capítulo 3 (seção 3.1, 3.2 e 3.3) Tanenbaum, A.;. Sistemas Operacionais i Md Modernos (3 a edição). São Paulo. Editora Prentice-Hall, 21. Capítulo 2 (seção 2.1) Sistemas Operacionais 19 Sistemas Operacionais 2

Espaço de endereçamento Espaço de endereçamento e processo Conjunto de endereços que um processo pode usar Faixa de a 2 n-1, onde n é a capacidade de endereçamento do processador Espaço de endereçamento (lógico) 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 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 Processo 1 Processo 2 Registradores físicos do processador Sistemas Operacionais 21 Sistemas Operacionais 22 Multiprogramação e chaveamento de contexto Modelo de três estados CPU virtual it P 1 P 2 P n Chaveamento de contexto Sai Processo i i = i = Escalonador sistema operacional CPU física Entra Processo j = j = j (há outras informações: GPRs, estados, etc que são salvos e recuperados) Fornece a ilusão que executam simultaneamente, mas estão alternados Exceção: se houver mais de uma CPU física (ou core) Um processo passa a ter três estados básicos*: Execução (running), bloqueado (blocked) e apto (ready) criação A espera para usar a CPU Término de E/S ou ocorrência de evento de sincronização Trocas de contexto apto execução término bloqueado Solicitação de E/S ou sincronização A espera de: Conclusão de E/S Sincronização 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 23 Sistemas Operacionais * Modelo ainda está incompleto! Há mais estados!! 2