Unix Processos. Geraldo Braz Junior

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

SSC0640 Sistemas Operacionais I

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais II

Sistemas Operacionais I

Sistemas Operacionais I

Sistemas Operacionais

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

Características Linux - CentOS

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

Sistemas Operacionais

SOP - TADS Processos. Revisão Ultima aula

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

Sistemas Operacionais. Rodrigo Rubira Branco

Davidson Rodrigo Boccardo

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

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

Prof. Kleber R. Rovai

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

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

Sistemas Distribuídos Aula 3

William Stallings Arquitetura e Organização de Computadores 8 a Edição

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

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

Estruturas de Sistemas Operacionais

Conceitos básicos e serviços dos Sistemas Operacionais

Sistemas Operacionais

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

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

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.

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Sistemas de Informação. Sistemas Operacionais

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

Questões de Múltipla escolha

Processos ca 3 pítulo

Processos no Minix 3.1.7

Sistemas Operacionais Aula 7

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

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

Programação de Sistemas em Tempo Real

Sistemas Operacionais. Processos e Threads

Estudo de Caso 1: UNIX e LINUX

Sistemas Operacionais. Conceito de Processos

Arquitetura de Computadores Sistemas Operacionais II

Sistemas Operacionais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

INE 5645 Programação Paralela e Distribuída

Unidade 2. Processos Threads Concorrência em Java

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Sistemas de Entrada e Saída

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

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

Sistemas Operacionais. Processos IC - UFF

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Arquitetura de Sistemas Operativos

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Sistemas Operacionais. Capítulo 5 Processos

Processos. Prof. Gustavo Leitão

Sistemas de Computação O Sistema Operacional Unix

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Processos. Conceitos Básicos

Sistemas Operacionais

Questões de Provas de Períodos Anteriores

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistemas Distribuídos Aula 2

SOP Sistemas Operacionais Módulo 04: Processo

Sistemas Distribuídos

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

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Escalonamento no Unix. Sistemas Operacionais

Ferramentas para Programação em Processadores Multi-Core

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

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

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Infra-Estrutura de Software. Escalonamento

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais Aula 3

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

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

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

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

Processos. Conceitos Básicos

Arquitetura de Sistemas Operativos

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

Fundamentos de Sistemas Operacionais

Transcrição:

Unix Processos Geraldo Braz Junior 1

Processos no Unix Unix é multiprogramado; Para cada processo é atribuído um Pid; Diversos daemons são executados: Cron Processamento de emails Gerenciamento da fila de impressão, etc... 2

3 Criando Processos Uma chamada fork permite que um processo crie outros processos fork cria uma cópia exata do processo original O processo criador é denominado pai e o criado filho Arquivos abertos são compartilhados entre pai e filho; As imagens da memória, variáveis, registradores são idênticos no pai e filho: como permitir que os processos saibam quem deve executar no código do pai e quem deve executar no código do filho?

Criando Processos Process creation in UNIX. Um processo pode construir uma árvore inteira de filhos, netos e descendentes mais distantes 4

Algumas Formas de Comunicação Entre Processos Pipes Canal entre dois processos no qual um deles pode escrever um fluxo de bytes para o outro; Ao tentar ler uma entrada do pipe, o processo é bloqueado até que o dado esteja disponível; Pipilines do shell são implementados com pipes sort < f head 5

Algumas Formas de Comunicação Entre Processos Interrupções de software (sinais) Um processo envia um sinal a outro; O receptor pode ignorar, capturar ou deixar o sinal matar o processo; Caso capture o sinal, deve ser definido um procedimento para trata-lo; O controle é transferido para o tratador e ao término deste, o controle volta para onde estava. 6

Sinais Exigidos pelo POSIX The signals required by POSIX. 7

Chamadas do Sistema para Gerenciamento de Processos 8 s é um código de erro pid é a identificação do processo residual tempo restante do alarme anterior

Parâmetros das Chamadas p i d = wa i tp id(p i d, &st a tl oc, o pt s) Id do processo pelo qual ocorrerá a espera Status do término do processo Determina se o chamador deve ou não ser bloqueado caso nenhum filho tenha terminado s = ex ec v e(na me, a rg v, en vp) Nome do arquivo a ser executado Ponteiro para um vetor de argumentos Ponteiro para um vetor de variáveis do ambiente main (argc, argv, envp) 9

Parâmetros das Chamadas s = si ga c ti on(s i g, &ac t, &o ld a ct) Sinal a ser capturado Ponteiro para uma estrutura que fornece um ponteiro para o procedimento tratador do sinal Ponteiro para uma estrutura em que o sistema retorna informações sobre o tratamento de sinais atualmente empregado 10

POSIX Shell Um shell bastante simplificado 11

12 Threads Mecanismo que permite a um processo ter mais de um fluxo de controle; Benefícios: O processo inteiro não necessita ficar bloqueado ao realizar uma chamada bloqueante ao sistema; Exemplo de uso: planilha de cálculo Pode-se explorar paralelismo em sistemas multiprocessados; Simplifica o desenvolvimento de aplicações inerentemente concorrentes; Melhor desempenho para aplicações complexas que tradicionalmente eram implementadas através de múltiplos processos comunicando-se através de mecanismos IPCs

Implementação de Threads Biblioteca no Espaço do Usuário 13

Implementação de Threads Biblioteca no Espaço do Usuário 14 Vantagens: suporte a threads me sistemas operacionais que não as suportam nativamente; Criação e destruição de threads custa pouco: alocação de memória e criação de pilha no espaço do usuário; Troca de contexto entre threads custa pouco: troca de valores de registradores da UCP; Pode-se prover várias políticas de escalomento dando aos processos a liberdade de escolher aquela que achar melhor; Maior escalabilidade já que não ocupam recursos do kernel.

Implementação de Threads Biblioteca no Espaço do Usuário Desvantagens: Dificuldade na implementação de chamadas bloqueantes ao kernel; Dificuldade na implementação de preempção. 15

Implementação de Threads no Kernel 16

Implementação de Threads no Kernel Desvantagem: Cada operação com threads: criação, destruição, sincronização, etc.. Envolve o kernel o que requer uma chamada ao sistema que é cara. 17

Implementação de Threads LWP: Lightweight Process 18

Implementação de Threads LWP: Lightweight Process LWPs são criadas por processos a nível de usuário através de uma chamada ao kernel; Threads de usuário não são visíveis ao kernel: ele escalona LWPs; Threads do usuário podem ser escalonadas em qualquer LWP criada pelo processo; 19

Implementação de Threads LWP: Lightweight Process Chamada bloqueante: Interceptada pela LWP que pode realizar a chamada real ao kernel ficando assim também bloqueada mas o processo inteiro NÃO fica; Sincronização e troca de contexto entre threads do usuário são realizadas a nível do usuário. 20

Threads e o padrão POSIX Não estabelece se threads devem ser implementadas no núcleo ou no espaço do usuário. 21

Threads no POSIX The principal POSIX thread calls. 22 Principais chamadas a threads no padrão POSIX mutex: destinados ao uso de curta duração como proteção a uma variável compartilhada variáveis de condição: longa duração

Implementação de Processos 23 O núcleo mantêm duas estruturas de dados relacionadas aos processos:tabela de processo (residente na memória) e Estrutura do usuário (é paginada); Tabela de processos: Parâmetros de escalonamento: prioridade, tempo de CPU consumido recentemente e tempo dormindo recentemente; Imagem da memória: ponteiros para segmentos de código, dados, pilha, tabelas de página; Sinais: máscaras que mostram os sinais sendo ifnorados; Miscelâneas: estado, tempo para larme, PID, PID do pai, identificação de grupo e usuário.

Implementação de Processos Estrutura do usuário: Registradores da máquina salvos quando ocorrer um desvio de execução para o núcleo (trap); Estado da chamada ao sistema: parâmetros e resultados; Descritor de arquivo; Contabilidade: tempo de CPU usado elimites de tempo de CPU, tamanho máximo de pilha, número máximo de páginas, etc Pilha do núcleo 24

Comando ls Passos para execução do comando ls 25

Escalonamento Algoritmo projetado para fornecer boa resposta a processos interativos; Organizado em dois níveis: Inferior: escolhe um processo dos que estão em memória prontos para executar. Utiliza múltiplas filas. Superior: move processos entre a memória e o disco de modo que todos os processos tenham oportunidade de estar na memória para poder executar. 26

27 Escalonamento Inferior Utiliza múltiplas filas; Cada fila possui uma prioridade. Quanto menor o valor da prioridade mais alta ela é; Processos executando no modo usuário possuem valores positivos. Processos executando no modo núcleo possuem valores negativos; Quantum é normalmente de 100 ms; Processos de mesma prioridade são escalonados através de escalonamento circular.

Escalonamento Inferior 28 Uma vez por segundo, a prioridade de cada processo é recalculada: prioridade = uso_cpu + nice + base Uso_CPU: para não punir o processo sempre, uma opção é adicionar o valor atual ao número de tiques no intervalo Δt anterior e dividir por 2; Nice: varia de 20 a +20. Somente root pode solicitar um serviço melhor (-20 a 1); Base: ao retornar de uma espera por interromper o núcleo, o processo é colocado em uma fila de valor negativo de acordo com o evento que aguardava. Estes valores negativos são representados por base na fórmula.

29 Escalonador no UNIX

Iniciando o Unix O primeiro setor do disco de boot é lido para memória e executado; Ele contêm um pequeno programa (512 bytes) que carrega outro programa independente chamado boot; O boot lê o diretório-raiz do disco e carrega o núcleo do sistema operacional (portanto, ele deve conhecer o sistema de arquivos); O controle é transferido para o núcleo do sistema operacional. 30

Inicialização do Núcleo 1. Aloca as estruturas de dados do núcleo; 2. Verifica os dispositivos de E/S presentes, carregando os drivers correspondentes; 3. Cria o processo 0 e o executa: 1. Programa o relógio 2. Monta o sistema de arquivos-raiz 3. Cria o processo 1 (init) 4. Cria o daemon de paginação (processo 2) 4. O processo init: 1. Lê o arquivo /etc/ttys que relaciona os terminais 2. Para cada terminal é executado o programa getty que solicita o login do usuário 31

Inicialização do Unix cp 32