Sistemas Operacionais
|
|
|
- Baltazar Figueiroa Aldeia
- 9 Há anos
- Visualizações:
Transcrição
1 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
2 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
3 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
4 A. Car issimi -8-ago-1 /* Orion Lawlor's Short UNIX Examples, 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, [email protected] 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
5 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
6 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
Sistemas Operacionais
ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação
Sistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Processos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Sistemas Operacionais
Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas
Sistemas Operacionais
Apresentação Inst tit ormátic ca - UF FRGS i Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof.
Sistemas Operacionais. Conceito de Processos
Sistemas Operacionais Conceito de Processos Processos Conceito de processo Estado de um processo Troca de contexto e PCB Fila de Processo Escalonador Comunicação entre processos Processo Um sistema operacional
Sistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5
Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso [email protected] Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Processos Carlos Ferraz ([email protected]) Jorge Cavalcanti Fonsêca ([email protected]) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres
SSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 2ª Aula Conceitos Básicos Profa. Sarita Mazzini Bruschi [email protected] Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados
Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Notas da Aula 2 - Fundamentos de Sistemas Operacionais
Notas da Aula 2 - Fundamentos de Sistemas Operacionais 1. Ciclo de Vida de um Processo Todo processo passa por 3 fases durante sua vida: criação, execução e término. Um processo pode ser criado por outro
Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4
Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Sistemas Operacionais
Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/
Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução
Plano da aula Noções de Processos Marcelo Johann Introdução Histórico Multiprogramação Noção de processo Definição Ciclo de vida do processo Suporte de Hardware para multi-programação Mecanismo de interrupção
Prof. Kleber R. Rovai
Msn: [email protected] E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos. Gerenciamento de processos Processos Um processo
Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Processador INTRODUÇÃO Projetado apenas para executar instruções Não é capaz de distinguir qual programa está em execução Processo
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 7: Implementação de Processos e Threads Diego Passos Revisão Programação Concorrente e Multiprogramação SOs modernos permitem diversos processos em memória. Cada
Chamadas de Sistema (SYSCALL)
Chamadas de Sistema (SYSCALL) Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 26 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls
LABORATÓRIO SISTEMAS OPERACIONAIS
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS:
Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,
Processos Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Introduzir a noção de processo um programa em execução que é a base de toda a computação Descrever as várias
Sistemas Operacionais
Sistemas Operacionais Aula 7,8 Processos Gerência de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: Prof. José Juan Espantoso Sumário Conceito de
Sistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Técnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Sistemas de Computação. Processos e escalonamento
Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas
SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU
SOP - TADS Threads Prof. Ricardo José Pfitscher [email protected] Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
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
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 3.4 Comunica ão entre Processos 3.1 Conceito de Processo Um sistema operacional
Estruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Sistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
Estrutura de Sistemas Operacionais. Capítulo 1: Introdução
Estrutura de Sistemas Operacionais 1.1 Silberschatz, Galvin and Gagne 2005 Capítulo 1: Introdução O que faz um sistema operacional? Revisão da organização de um computador Revisão de alguns conceitos de
Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid
Conteúdo Programas e Aula 1-1 Programas e ([email protected]) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 3 Referências
Sistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2
Sistemas Operacionais
Sistemas Operacionais ESCALONAMENTO DE PROCESSOS Processos e Recursos Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão
Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html FORK() SYSTEM CALL * UTILIZADO PARA CRIAR SUBPROCESSO * PROCESSO QUE CRIA É PAI * PROCESSO CRIADO É O FILHO * APÓS A CRIAÇÃO AMBOS OS PROCESSO
Sistemas Operacionais
Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de
Sistemas Operacionais
Sistemas Operacionais Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 20 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls 2 / 20
LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela ([email protected]) Romildo Martins ([email protected]) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger
Processos e Threads Ciclo 2 AT3 Prof. Hermes Senger Nota O presente material foi elaborado com base no material didático do livro Sistemas Operacionais, 3ª edição, de H.M.Deitel, P.J. Deitel, D.R. Choffnes,
