Processos em Linux Aluno: Raphael Franklin Professor: Hugo Vieira L. de Souza Disciplina: Sistemas Operacionais.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Sistemas Operacionais
Sistemas Operacionais Aula II
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Processos e Threads Processos.
Threads (Linha de execução )
Profa. Priscila Facciolli
Prof. João Paulo de Brito Gonçalves
Gerência de Processos no Linux Prof. Antônio Rogério Ramos Pelo menos esse, fui eu que fiz!!!
Processos no Linux.
Processos no Unix e Linux
Escalonamento Linux.
SSC SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Processos Conceitos Básicos.
Estruturas de Controle
Arquitetura de Computadores
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Curso Técnico em Manutenção e Suporte em Informática
Threads.
Sistemas Operacionais
Sistemas Operacionais
JAVA: Conceitos Iniciais
Sistemas Operacionais Aula 4
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Sistemas Operacionais
Gerência de Recursos Processador
Sistema Operacional Processos
Processo Entidade dinâmica e efêmera
Alunos: Elton Alexandre Gomes e Josival Silva Professor: Hugo Vieira L
Unidade 2 - Parte 1 Programação Concorrente
Conteúdo Processos e threads Partes do processo
Tornar mais eficiente o aproveitamento dos recursos do computador
Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti
Claudio de Oliveira – Processos 09/03/10 20:13 Claudio de Oliveira –
Processos.
Universidade de Mogi das Cruzes Tec
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
Administração de Sistemas Operacionais Não Proprietários 2ºSemestre Aula 05 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
SISTEMAS OPERACIONAIS I
Escalonamento com prioridades
Sistemas Operacionais
Escalonamento de Processos e Threads
SISTEMAS OPERACIONAIS I
Nomeação de arquivos – Cap 4.1.1
Sistemas Operacionais
Prof. Werley T. Reinaldo 26/05/  Sistemas Operacionais:  Visão geral  As diferentes imagens do SO:  Visão Usuários;  Visão Projeto.  Multiprogramação;
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Faculdade Pernambucana - FAPE
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Sistemas Operacionais
Sistemas de Arquivos- Cap4
Elementos de Informática
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner FATEC-PB.
Administração de Sistemas Operacionais Não Proprietários 2º Semestre Aula 09 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
Transcrição da apresentação:

Processos em Linux Aluno: Raphael Franklin Professor: Hugo Vieira L. de Souza Disciplina: Sistemas Operacionais

Relembrando...

O que são processos? A seguinte definição de processo foi apresentada por Tanenbaum em "Sistemas Operacionais - Projeto e Implementação": A ideia-chave aqui é que um processo é um tipo de atividade. Ele tem um programa, entrada, saída e um estado. Um único processador pode ser compartilhado entre vários processos, com algum algoritmo de agendamento sendo utilizado para determinar quando parar de trabalhar em um processo e servir a um diferente.

Estados de um processo executando - o processo está utilizando a CPU; pronto - o processo está temporariamente parado para permitir que outro processo execute; bloqueado - o processo é incapaz de executar até que um evento aconteça.

Estados de um processo  Observações: um processo pode criar outro processo, dizemos então que é o pai dos processos que ele criou. Mas apesar disso processos-filhos podem também criar novos processos, formando então uma árvore hierárquica de processos.

Processamento em Linux

Na etapa de inicialização do Linux é iniciada uma função chamada start_kernel, sendo ela responsável por criar uma thread, o processo de número zero, o primeiro e o ascendente de todos os outro processos. Assim que são carregadas toda estrutura de dados, está mesma função é responsável por chamar a função init que através da chamada execve, cria o processos número de número 1, mais conhecido como init.

Processamento em Linux O init é o primeiro processo inicializado no Linux e é o pai de todos os outros processos. Se um processo termina e deixa processos-filho ainda executando, o processo init assume a paternidade destes processos.

PID e PPID Um PID (Process Identifier) é um número de identificação que o sistema dá a cada processo. Para cada novo processo, um novo número deve ser atribuído, não podendo desta forma existir dois números iguais com mesma identificação. O PPID (Parent Process Identifier) é utilizado por que sistemas baseados em Unix que precisam duplicar um processo para realização de uma nova tarefa, sendo assim o processo “copiado” recebe o nome de “processo pai” e o novo recebe o nome de “processo filho”. Sendo assim o PPID de um processo nada mais é do que o PID de seu processo pai.

PID e PPID

Background e Foreground No Linux, um processo pode estar em foreground ou em background, ou seja, em primeiro plano ou em segundo plano. Ao digitar o comando “ls -R /etc > teste”, o sistema criará o arquivo teste com conteúdo de todos os diretórios e arquivos que se encontram abaixo do diretório /etc. Durante a execução nenhum outro comando poderá ser digitado, significando estar em primeiro plano ou em foreground.

Background e Foreground Para coloca-lo em background é necessário a utilização do comando : “ls -R /etc > teste &”. O símbolo & indica que o comando deve ser executado em background;

Modelo Cliente-Servidor O Linux implementa muitas das suas funções usando o modelo cliente-servidor. Isto significa que existem processos que são criados especificamente para executar determinadas tarefas. Estas tarefas especiais são oferecidas aos outros processos do sistema na forma de serviços. O processo responsável pela execução de determinado serviço no sistema é chamado servidor, é o que solicita e chamado cliente.

Modelo Cliente-Servidor Normalmente, as aplicações servidoras (daemons) são executadas em background, enquanto as aplicações clientes são executadas em foreground. A grande vantagem de implementar funções dessa forma é tornar o Kernel mais leve, pois seu trabalho e só gerenciar a comunicação entre clientes e servidores.

Modelo Cliente-Servidor São exemplos de daemons no Linux:  at daemon - servidor que executa serviços agendados pelo comando at.  cron daemon - servidor que executa serviços agendados pelo comando crontab.  lpd (printer daemon) - servidor de impressão de arquivos.

Estados O Linux trabalha, essencialmente, com cinco tipos de situação, isto é, estados:  Executável – o processo está em execução ou aguardando para ser executado: TASK_RUNNING;  Dormente - o processo está suspenso até que determinada condição se torne verdadeira: TASK_INTERRUPTIBLE;  Ininterrupto - como o estado anterior, exceto pelo fato de que o seu estado não será modificado quando receber um sinal: TASK_UNINTERRUPTIBLE;

Estados Zumbi - o processo é considerado “morto”, mas, por alguma razão, ainda existe: TASK_ZOMBIE ; Parado - o processo está “congelado”, ou seja, não pode ser executado: TASK_STOPPED.

Limite de Recursos Por padrão o Linux limita os recursos que cada processo deve ter. Isso acontece para proteger e manter a estabilidade do sistema caso o usuário faça algo de errado. Esse limites são:  RLIMIT_AS: o tamanho máximo que um processo pode ter em bytes.  RLIMIT_CORE: quando um processo é abortado, o kernel pode gerar um arquivo core contendo as informações desse aborto.

Limite de Recursos  RLIMIT_CPU: o tempo máximo em segundos que um processo pode ser executado.  RLIMIT_DATA: o tamanho máximo do heap ou memória de dados em bytes.  RLIMIT_FSIZE: o tamanho máximo em bytes permitido para um arquivo.  RLIMIT_LOCKS: o número máximo de arquivos que um processo pode dar lock.  RLIMIT_MEMLOCK: o tamanho máximo em bytes de memória que não permite swap.

Limite de Recursos  RLIMIT_NOFILE: o número máximo de descritores de arquivos abertos.  RLIMIT_NPROC: o número máximo de processos que um usuário pode ter.  RLIMIT_RSS: a quantidade máxima de memória física que um processo pode ter.  RLIMIT_STACK o tamanho máximo em bytes da stack.

Processo Preemptivos Os processos do Linux são preemptivos, isso que dizer que quando um processo entra no estado TASK_RUNNING o kernel vai checar se existe alguma prioridade maior do que o processo corrente. Caso exista, o processo corrente é interrompido e o que tem a prioridade maior começa a executar.

Política de Escalonamento A prioridade de um processo em Linux está em constante mudança, por isso o escalonador permanece em constante atualização sobre o andamento desses processos, para que assim possa ajustar as suas prioridade. Dessa forma os processos que ficarem proibidos de utilizar a CPU por um longo tempo, tem sua prioridade incrementada, enquanto os que passaram um longo período dentro dela tem sua prioridade decrementada.

Política de Escalonamento Quando falamos no assunto escalonamento é importante notar que os processos são classificados de duas formas: E/S e CPU. O primeiro faz uso extenso dos recursos de entrada e saída, isso significa que grande parte do seu tempo é utilizado no aguardo da conclusão das operações de Entrada e Saída, já o segundo são processos que necessitam permanecer um longo tempo dentro da CPU.

Política de Escalonamento Uma classificação alternativa define três classes de processos:  Processos Interativos: os processos que estão em constante interação com o usuário, sendo assim eles perdem grande parte do tempo esperando uma atividade do usuário, como um clique do mouse ou o aperto de uma tecla.

Política de Escalonamento  Processos em Lote: não necessitam de nenhuma interação do usuário e por isso muitas vezes rodam em background. Como são processos de baixa prioridade, são frequentemente penalizados pelo escalonador.  Processos em Tempo Real: esses processos nunca devem ser bloqueados por processos de baixa prioridade, precisam de um tempo de resposta super rápido e com uma variação bastante baixa.

Algoritmo de Escalonamento O algoritmo de escalonamento do Linux funciona dividindo o tempo do CPU em fatias. Em uma única fatia cada processo possui um tempo especifico de duração que é computada assim que a fatia é iniciada. Geralmente processos diferentes tem tempos de execuções diferentes. Quando o tempo de execução de um processo termina na CPU é retirado e outro processo que está rodando é colocado no seu lugar.

Algoritmo de Escalonamento Uma fatia termina quando todos os processos esgotaram seu tempo reservado de execução, dessa forma o escalonador é responsável por calcular o tempo de execução de cada processo assim que uma nova fatia é iniciada. Para o Linux escolher qual processo deve rodar ele precisar escolher qual tem a prioridade maior, existem dois tipos de prioridade:

Algoritmo de Escalonamento Prioridade Estática: definido pelo usuário para processos que necessitam de tempo real, os valores variam de 1 até 99 que nunca são modificados pelo escalonador. Prioridade Dinâmica Esta é aplicada para os processos convencionais. A prioridade dinâmica dos processos convencionais é sempre inferior aos processos com prioridade estática.

Referências Ubuntu. Disponível em: Acessado: 16 de novembro de sso.html PASSE, Fernando. Disponível em: Acessado: 16 de novembro de H/historia-linux?part=2 TOLEDO, Marcelo. Disponível em Acessado: 16 de novembro de s_no_linux/gerenciamento_de_processos_no_lin ux.html

ALECRIM, Emerson. Disponível em Acessado: 16 de novembro de p