Processos no Unix e Linux

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Distribuídos
Sistemas Operacionais Aula II
Python: Entrada e Saída
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Capitulo 6: Entrada e Saída
Sistemas Operacionais
Sistemas Operacionais
Noções de Sistemas Operacionais
Sistemas operacionais
Entrada e Saída Introdução.
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Comandos do Linux SO II.
Sistemas Operacionais - 5
Componente Curricular Sistemas Operacionais - SOP
Profa. Priscila Facciolli
Processos no Linux.
Arquitetura de Sistemas Operacionais
Conceitos Básicos sobre o S.O.
Sistemas Operacionais
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Estudo de Caso 1: UNIX e LINUX
Concepts and Capabilities
UNIX.
Threads.
Sistemas Operacionais
Comandos para navegação no Sistema de Arquivos
Sistemas Operacionais I
Prof. André Leon S. Gradvohl, Dr.
Unidade 1-1 Processos e Threads
PROGRAMAÇÃO ESTRUTURADA II
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais Profª Adriana Vettorazzo
Unidade 2 - Parte 1 Programação Concorrente
Conteúdo Processos e threads Partes do processo
Sistema Operacional FreeBSD.
Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti
Sistemas Operacionais
Processos.
Sistemas Operacionais
Sistemas Operacionais
2.5 Processos no Minix 1. gerenciamento de processos:
Usuários e Grupos Usuário: alguém que possui conta, internamente é tratado como um número (UID) que é a identificação do usuário (USER ID). Cada usuário.
Algoritmos e Estruturas de Dados
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Subsistema de Entrada e Saída do Kernel
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação Habilitação Técnica de Nível Médio Técnico em Informática Prof.
Programação Computacional Aula 9: Meu primeiro programa em C
Sistemas Operacionais
Elementos de Informática
Shell Script Parte 2.
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais IV – Gerenciamento de E/S
SICII (Sistemas Operacionais) – Prof. Alberto  Comandos de console (Linux)
Administração de Sistemas Operacionais 1 -Windows
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Linux – Prática Regiane Kawasaki
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
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 Prof.: Gustavo Wagner FATEC-PB.
Transcrição da apresentação:

Processos no Unix e Linux

Controle de processo Um processo é um programa em execução. Os processos são identificados pelos seus identificadores de processos, números inteiros. Chamadas ao sistema para controle de processos fork cria um novo processo exec é usada após um fork para substituir a memória virtual do processo filho com um novo programa carregado de um arquivo exit termina um processo Um processo pai pode esperar pelo filho através da chamada wait que fornece o identificador do processo filho terminado de forma que o pai possa saber qual filho foi terminado. wait permite o pai coletar estatísticas de desempenho sobre o processo filho Um processo zumbi é resultado da terminação do pai antes da terminação do filho.

Ilustração das chamadas

Controle de processos (Cont.) Os processos se comunicam através de pipes, que são filas de bytes entre dois processos disponíveis ou acessáveis através dos descritores de arquivos. Todos os processos de usuário são descendentes do processo original, init. init cria um processo getty que inicializa os parâmetros de um terminal e transfere os caracteres de login do usuário para o processo login. login seta o identificador de usuário do processo referente ao usuário recém-logado e executa um shell que cria os subprocessos a partir dos comandos do usuário.

Controle de processos (Cont.)

Controle de processos (Cont.) Os bit setuid são os identificadores efetivos do usuário do processo referentes ao dono do arquivo executável, ao passo que o identificador real de usuário é o usuário que ativou o arquivo. O esquema setuid permite que certos processos possam ter privilégios acima do usuário comum que ativou o comando ou arquivo executável.

Rotinas de biblioteca A interface das chamadas ao sistema no UNIX tem suporte e é melhorada através de uma grande coleção de rotinas de biblioteca. Arquivos de cabeçalho fornecem a definição das estruturas de dados complexas usadas nas chamadas ao sistema. Suporte adicional da biblioteca é fornecido para funções matemáticas, acesso à rede, conversão de dados.

Interface de usuário Os programadores e usuários lidam principalmente com os programas de sistemas já existentes: as chamadas ao sistema necessárias estão embutidas dentro dos programas e não precisam estar explicitamente disponíveis para o usuário. Os programas de sistema mais comuns são orientados para a manipulação de arquivos e diretórios: Diretórios: mkdir, rmdir, cd, pwd Arquivos: ls, cp, mv, rm Outros programas estão associados aos editores (ex., emacs, vi) formatadores de texto (ex., troff, TEX), e outras atividades.

E/S padrão A maioria dos processos espera encontrar 3 descritores de arquivos abertos quando são iniciados: Entrada padrão – programa pode ler o que o usuário digita. Saída padrão – programa envia saída para a tela do usuário. Saída de erro padrão – saída de erro. A maioria dos programas podem também aceitar um arquivo (ao invés de terminal) como entrada ou saída padrão. Os shells normalmente tem uma sintaxe simples para permitir a mudança da entrada e saída padrão para arquivos – conhecido como redirecionamento de E/S.

Redirecionamento padrão de E/S

Gerência de processo A representação de processos é uma grande questão de projeto para um sistema operacional. UNIX se distingue de outros sistemas no sentido de que processos múltiplos podem ser criados e manipulados com facilidade. Estes processos são representados no UNIX por vários blocos de controle. Blocos de controle associados com um processo são armazenados no núcleo. Informação nestes blocos de controle são usados pelo kernel para controle de processo e escalonamento de UCP.

Bloco de controle de processo A estrutura de dados mais básica associada com os processos é a estrutura de processo. Identificador único de processo Informação de escalonamento (ex. prioridade) Ponteiros para outros blocos de controle O espaço de endereçamento virtual de um processo de usuário é dividido em segmentos texto (código do programa), dados e pilha. Cada processo com texto compartilhado tem um ponteiro de sua estrutura de processo para uma estrutura de texto. Sempre residente na memória. Registra quantos processos estão usando o segmento de texto. Registra onde a tabela de páginas para aquele segmento de texto pode ser encontrada no disco quando permutada.

Segmento de dados do sistema A maior parte do trabalho ordinário é feita no modo usuário, sendo as chamadas ao sistema feitas no modo núcleo. As fases de usuário e de sistema de um processo nunca executam simultaneamente. Uma pilha de núcleo (ao invés da pilha de usuário) é utilizada por um processo quando executando em modo núcleo. A pilha de núcleo e a estrutura de usuário juntas compõe o segmento de dados do sistema para o processo.

Uso da estrutura do processo

Alocando uma nova estrutura de processo fork aloca uma nova estrutura de processo para o processo filho e copia a estrutura de usuário. Uma nova tabela de página é construída Memória principal nova é alocada para os segmentos de dados e de pilha para o processo filho A cópia da estrutura de usuário preserva os descritores de arquivos abertos, identificadores de usuário e grupo, tratamento de sinais entre outras.

Alocando uma nova estrutura de processo vfork não copia os dados e a pilha para o novo processo; o novo processo simplesmente compartilha a tabela de páginas com o processo antigo. Uma nova estrutura de usuário e uma nova estrutura de processo são ainda criadas Comumente usada pelo shell para executar um comando e esperar pelo seu término Um processo pai usa vfork para produzir um processo filho; o processo filho usa exec para mudar seu espaço de endereço virtual, e portanto não há necessidade de uma cópia do pai. O uso de vfork com um processo pai grande economiza tempo de UCP, mas pode ser perigoso pois qualquer mudança de memória ocorre em ambos os processos até a ocorrência de exec. A chamada exec não cria um novo processo ou estrutura de usuário; apenas o segmento de texto (código) e dados do processo filho é substituído.

Estados dos processos - Unix

Estados do processo - Unix

Criação de processos

Chamadas ao sistema para processos

Shells e comandos Shell – o processo de usuário que executa programas (também conhecido como interpretador de comandos). Chamado de shell (concha) porque envolve o núcleo. O shell indica sua condição de estar pronto para aceitar um comando através da impressão do prompt, permitindo que o usuário digite uma linha de comandos. Um comando típico é um arquivo binário executável, embora existam comandos internos. O shell busca no caminho de busca o arquivo correspondente ao comando (quando este é externo) para ser carregado e executado. Os diretórios /bin e /usr/bin estão quase sempre no caminho de busca.

Shells e comandos (Cont.) Busca típica em um sistema BSD: ( ./home/prof/avi/bin /usr/local/bin /usr/ucb/bin/usr/bin ) O shell usualmente suspende sua execução até que o comando complete sua própria execução. Exceção: comando termina com & (execução em background).

Exemplo – execução do comando ls