Administração de Sistemas Operacionais

Slides:



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

Sistemas Operacionais
Sistemas Operacionais Aula II
SICAU – Sistema Integrado de Controle das Ações da União
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Administração de sistemas operacionais
Administração de sistemas operacionais
Noções de Sistemas Operacionais
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!!!
Excel Profa. Cristina M. Nunes.
Processos no Unix e Linux
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Introdução à Informática
Administrando usuários 1 Controle de contas de usuários 1.
Conceitos Básicos sobre o S.O.
Chapter 4: Threads.
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
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Sistemas Operacionais
Processos Conceitos Básicos.
Estruturas de Controle
Curso Técnico em Manutenção e Suporte em Informática
09/03/10 20:13 Claudio de Oliveira – 1/21.
Threads.
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Classes e objetos P. O. O. Prof. Grace.
Sistemas Operacionais
Comandos para navegação no Sistema de Arquivos
Prof. André Leon S. Gradvohl, Dr.
Concorrência em Java Threads em Java.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Processos
Processo Entidade dinâmica e efêmera
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Unidade 2 - Parte 1 Programação Concorrente
Conteúdo Processos e threads Partes do processo
Sistemas Operacionais
Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti
Sistemas Operacionais
Professor Cristiano Mariotti
Sistemas Operacionais c
Sistemas Operacionais
Processos.
Computação L1: Infra-Estrutura Básica
UML - Unified Modeling Language
Administração de Sistemas Operacionais Não Proprietários 2ºSemestre Aula 05 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
© 2004 by Pearson Education Computadores: Ferramentas para a Era da Informação Tema 0 PARTE A.
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04 Prof. André Lucio.
Escalonamento de Processos e Threads
Planilha Eletrônica - Excel
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.
SISTEMAS OPERACIONAIS I
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Administrando usuários 1 Controle de contas de usuários 1.
Tópicos em Sistemas Operacionais (LINUX) Prof:. Msc. Arimatéia Junior Fortaleza-2011.
Permissões de Acesso No Linux há três modelos de controle de acesso básicos: Read, Write e Execution. Veja um exemplo de permissão básica na figura.
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Linux – Prática Regiane Kawasaki
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Administração de Sistemas Operacionais Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Vera Schuhmacher – shummy@unisul.br

GERENCIAMENTO DE PROCESSOS Um processo pode ser considerado um programa em execução. Um processo é formado por três partes, conhecidas como contexto de software, contexto de hardware e espaço de endereçamento, que juntas mantêm todas as informações necessárias à execução de um programa ____________ ----------- Contexto de Software Hardware Espaço de Endereçamento

GERENCIAMENTO DE PROCESSOS O processo é criado por meio da system call fork() O processo é formado por duas estruturas de dados: Proc structure ( identificaçao, estado do processo, prioridade, área do usuário, endereço da área do usuáriom máscara de sinais, ponteiros para tabela de páginas) User área (registradores, tabela de descritores de arquivos, contabilidade, informações sobre system call corrente, tratadores de sinais) Existem vários tipos de processos no Linux: processos interativos processos em lote (batch) Daemons

GERENCIAMENTO DE PROCESSOS

GERÊNCIA DO PROCESSADOR O UNIX utiliza 2 tipos de política de escalonamento: Circular com prioridades Por prioridades Prioridades de 0 a 127 Processos em modo usuário – 50 a 127 Processos em modo kernel – 0 a 49 O processo fica no processador no máximo uma fatia de tempo (10 a 100 milissegundos) Finalizado seu quantum retorna ao final da fila associada a sua prioridade O escalonador recalcula a prioridade de todos os processos no estado de pronto periodicamente - Prioridade =p_cpu+p_nice+base P_cpu (permite contabilizar o tempo de uso do processador, m´ximo de 127) P_nice (assume valores de 0 a 39, default 20. Quanto maior o valor menor a prioridde) Base (associada ao tipo de evento que colocou o processo em estado de espera)

GERÊNCIA DO PROCESSADOR Políticas do escalonador linux: SCHED_FIFO – processos em tempo real. O descritor do processo é inserido no final da fila correspondente a sua prioridade. Executa até que: Um processo em tempo real de prioridade superior torne-se apto a executar O process kibera espontaneamente o processador para processos de prioridade igual a sua O processo termina ou bloqueia-se (E?S ou sincronização). SCHED_RR – O descritor do processo é inserido no final da fila correspondente a sua prioridade. Executa até que: seu quantum tenha se esgotado Processo de orioridade superior torna-se apto

GERÊNCIA DO PROCESSADOR Políticas do escalonador linux: SCHED_OTHER – corresponde a um esquema de filas multinível de prioridades dinâmicas com timesharing. Nesta categoria recaem processo iterativos e batch.

GERENCIAMENTO DE THREAD Podemos definir um thread como uma sub-rotina de um programa que pode ser executado de forma assíncrona, paralelamente ao programa chamador O processo neste ambiente tem no mínimo um thread de execução mas pode compartilhar seu espaço de endereçamento com inúmeros threads Em um ambiente multithread cada processo pode responder a várias solicitações concorrentemente ou simultaneamente Cada thread possui seu contexto de hardware independente Entre threads não existe a preocupação de proteger o acesso a memória, permitindo a alteração de dados entre threads

GERENCIAMENTO DE THREAD Thread modo Usuário – TMU : são implementados pela aplicação e não pelo S.O. Deve existir uma biblioteca de rotinas que possibilite criação, termino, troca de mensagens e a política de escalonamento. Thread Modo kernel – TMK : são implementados direto pelo núcleo do S.O. Por meio de chamdas a rotinas do sistema que oferecem todas as operações de sincronização e gerenciamento. Threads em modo híbrido : combina as vantagen de threads implementados em TMU e TMK Um processo pode ter vários TMK, e um TMK pode ter vários TMU. O TMK pode ser escalonado individualmente, o TMU pode ser executado por diferentes TMK´s.

GERENCIAMENTO DE THREAD AMbiente Arquitetura Compaq Unix 5 Modo híbrido IBM AIX Modo kernel HP UX Modo usuário Linux 2 Modo kernel SUn SOlaris Modo híbrido SUn OS Modo usuário Arquitetura threads (Machado et al 2002) Implementação Operação 1(ms) Operação 2(ms) Subprocessos 11.300 1.840 Threads modo kernel 948 441 Threads modo usuário 34 37 Comparação tempos de latência (Anderson et al 1992)

Tipos de Execução de processos Primeiro Plano - Também chamado de foreground. Quando você deve esperar o término da execução de um programa para executar um novo comando. Segundo Plano - Também chamado de background. Quando você não precisa esperar o término da execução de um programa para executar um novo comando. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caracter "&" após o final do comando. $ find / -name boot.b &

COMANDO PS O comando ps permite visualizar os processos em execução. ps [-opções] $ ps $ ps -aux a: Mostra os processos criados pelos usuários do sistema. x : Mostra processos que não são controlados pelo terminal. u: Mostra o nome de usuário que iniciou o processo e hora em que o processo foi iniciado. m: Mostra a memória ocupada por cada processo em execução. f: Mostra a árvore de execução de comandos e: Mostra variáveis de ambiente no momento da inicialização do processo.

COMANDO TOP top [opções] $ top Mostra os programas em execução ativos, parados, tempo usado na CPU, detalhes sobre o uso da memória RAM, Swap, disponibilidade para execução de programas no sistema, etc. top [opções] $ top q - Sai do programa. k - Finaliza um processo -

COMANDO BG e FG Para parar a execução de um processo rodando em primeiro plano, basta pressionar as teclas CTRL+Z. O programa em execução será pausado e será mostrado o número de seu job e o aviso de comando. Para retornar a execução de um comando pausado, use fg, ou bg. O programa permanece na memória no ponto de processamento em que parou quando ele é interrompido. fg - Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. fg [número] bg - Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Primeiro interrompa a execução do comando com CTRL+ Z, será mostrado o número da tarefa interrompida, use este número com o comando bg para iniciar a execução do comando em segundo plano. bg [número] $ fg 1 $ bg 1

COMANDO JOBS jobs $ jobs O comando jobs mostra os processos que estão parados ou rodando em segundo plano. Processos em segundo plano são iniciados usando o símbolo "&" no final da linha de comandoPara retornar a execução de um comando pausado, use fg, ou bg. jobs $ jobs

kill [opções] [sinal] [número] COMANDO KILL Permite enviar um sinal a um comando/programa. Caso seja usado sem parâmetros, o kill enviará um sinal de término ao processo sendo executado. kill [opções] [sinal] [número] Número - número de identificação do processo Sinal - sinal que será enviado ao processo. Se omitido usa -15 como padrão. Opções - -9 : Envia um sinal de destruição ao processo ou programa. Ele é terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporários criados por ele. $ kill 500 $ kill -9 500 $ kill %1. Killall – mata processos pelo nome Killall5 - Envia um sinal de finalização para todos os processos sendo executados.

SINAIS DO SISTEMA A - A ação padrão é terminar o processo. Sinal Valor Ação Comentário -------------------------------------------------------------------- HUP 1 A Travamento detectado no terminal de controle ou finalização do processo controlado INT 2 A Interrupção através do teclado QUIT 3 C Sair através do teclado ILL 4 C Instrução Ilegal ABRT 6 C Sinal de abortar enviado pela função abort FPE 8 C Exceção de ponto Flutuante KILL 9 AEF Sinal de destruição do processo SEGV 11 C Referência Inválida de memória PIPE 13 A Pipe Quebrado: escreveu para o pipe sem leitores ALRM 14 A Sinal do Temporizador da chamada do sistema alarm TERM 15 A Sinal de Término USR1 30,10,16 A Sinal definido pelo usuário 1 USR2 31,12,17 A Sinal definido pelo usuário 2 CHLD 20,17,18 B Processo filho parado ou terminado CONT 19,18,25 Continuar a execução, se interrompido STOP 17,19,23 DEF Interromper processo TSTP 18,20,24 D Interromper digitação no terminal TTIN 21,21,26 D Entrada do terminal para o processo em segundo plano TTOU 22,22,27 D Saída do terminal para o processo em segundo plano A - A ação padrão é terminar o processo. B - A ação padrão é ignorar o sinal. C - A ação padrão é terminar o processo e mostrar o core. D - A ação padrão é parar o processo. E - O sinal não pode ser pego. F - O sinal não pode ser ignorado.

nice [opções] [comando/programa] COMANDO NICE Configura a prioridade da execução de um comando/programa. nice [opções] [comando/programa] -n :Configura a prioridade que o programa será executado. A prioridade de execução de um programa/comando pode ser ajustada de -19 (a mais alta) até 19 (a mais baixa). $ nice -n -19 find / -name apropos..

vmstat [intervalo] [contagem] COMANDO VMSTAT Mostra estatísticas sobre o uso da memória virtual do sistema. vmstat [intervalo] [contagem] Intervalo - Número especificado em segundos entre atualizações. Contagem - Número de vezes que será mostrado.

COMANDO VMSTAT Processos r - Número de processos aguardando execução. b - Número de processos em espera não interrompíveis. w - Número de processos extraídos do arquivo de troca ou caso contrário em execução. Memória Swpd - A quantidade de memória virtual usada em Kb. Free - Quantidade de memória livre em Kb. Buff - Quantidade de memória usada como buffer em Kb. Memória Virtual Si - Quantidade de memória gravada para o disco Kb/s. So- Quantidade de memória retirada do disco em Kb/s. Entrada/Saída Bi - Blocos enviados para um dispositivo de bloco (medido em blocos por segundo). Bo- Blocos recebidos de um dispositivo de bloco (em blocos por segundo). Sistema In-Número de interrupções por segundo, incluindo o clock. cs-Número de mudanças de contexto por segundo. Porcentagem do total de tempo da CPU Us-Tempo do usuário sy*-Tempo do sistema Id-Tempo ocioso

COMANDO PSTREE pstree [opções] [pid] Mostra a estrutura de processos em execução no sistema em forma de árvore. pstree [opções] [pid] Pid - Número do processo que terá sua árvore listada. Se omitido, lista todos os processos. -c:Mostra toda a estrutura (inclusive sub-processos do processo pai). -G:Usa caracteres gráficos no desenho da árvore de processos. -h:Destaca o processo atual e seus antecessores. -H [pid]:Destaca o processo especificado. -u:Mostra também o dono do processo.

Comandos utilizados na Gerência de Contas

adduser [opções] [usuário/grupo] COMANDO ADDUSER Adiciona um usuário ou grupo no sistema. Por padrão, quando um novo usuário é adicionado, é criado um grupo com o mesmo nome do usuário. Será criado um diretório home com o nome do usuário A identificação do usuário (UID) escolhida será a primeira disponível no sistema especificada de acordo com a faixa de UIDS de usuários permitidas no arquivo de configuração /etc/adduser.conf. adduser [opções] [usuário/grupo] -uid [num]:Cria um novo usuário com a identificação [num] ao invés de procurar o próximo UID disponível. -gid [num]:Faz com que o usuário seja parte do grupo [gid] ao invés de pertencer a um novo grupo que será criado com seu nome. Isto é útil caso deseje permitir que grupos de usuários possam ter acesso a arquivos comuns. -home [dir]:Usa o diretório [dir] para a criação do diretório home do usuário ao invés de usar o especificado no arquivo de configuração /etc/adduser.conf. Os dados do usuário são colocados no arquivo /etc/passwd após sua criação . Caso senhas ocultas (shadow passwords), serão colocadas no arquivo /etc/shadow e as senhas dos grupos no arquivo /etc/gshadow.

addgroup [usuário/grupo] [opções] COMANDO ADDGROUP Adiciona um novo grupo de usuários no sistema. addgroup [usuário/grupo] [opções]

passwd [usuário/grupo] [opções] COMANDO PASSWD Muda a senha do usuário ou grupo. passwd [usuário/grupo] [opções] -g:Se especificada, a senha do grupo será alterada. Somente o root ou o administrador do grupo pode alterar sua senha. A opção -r pode ser usada com esta para remover a senha do grupo. A opção -R pode ser usada para restringir o acesso do grupo para outros usuários. -x [dias]:Especifica o número máximo de dias que a senha poderá ser usada. Após terminar o prazo, a senha deverá ser modificada. -i:Desativa a conta caso o usuário não tenha alterado sua senha após o tempo especificado por -x. -w [num]:Número de dias antecedentes que o usuário receberá o alerta para mudar sua senha. O alerta ocorre [num] dias antes do limite da opção -x, avisando ao usuários quantos dias restam para a troca de sua senha. -l [nome]:Bloqueia a conta do usuário [nome]. Deve ser usada pelo root. O bloqueio da conta é feito acrescentando um caracter a senha para que não confira com a senha original. -u [nome]:Desbloqueia a conta de um usuário bloqueada com a opção -l. -S [nome]:Mostra o status da conta do usuário [nome]. A primeira parte é o nome do usuário seguido de L(conta bloqueada), NP(sem senha), ou P (com senha), a terceira parte é a data da última modificação da senha, a quarta parte é a período mínimo, máximo, alerta e o período de inatividade para a senha.

COMANDO newgrp, userdel, groupdel userdel [-r] [usuário] Newgrp - Altera a identificação de grupo do usuário. newgrp - [grupo] Userdel - Apaga um usuário do sistema. userdel [-r] [usuário] -r - Apaga também o diretório HOME do usuário. Groupdel - Apaga um grupo do sistema. groupdel [grupo]

Novo Grupo a um Usuário $ more /etc/group Para incluir um novo grupo a um usuário: Logar como root editar o arquivo /etc/group. Formato do arquivo: NomedoGrupo:senha:GID:usuários para acrescentar o usuário "joao" ao grupo audio para ter acesso aos dispositivos de som do Linux, acrescente o nome no final da linha: "audio:x:100:joao". audio:x:100:joao estoque:x:101:ana,paulo Folha:x:102:carlos,palo,ana NomedoGrupo:É o nome daquele grupo de usuários. Senha:Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para grupos, as senhas estarão em /etc/gshadow. GID:Identificação numérica do grupo de usuário. Usuarios:Lista de usuários que também fazem parte daquele grupo. Caso exista mais de um nome de usuário, eles devem estar separados por vírgula. $ more /etc/group audio:x:100:joao estoque:x:101:ana,paulo Folha:x:102:carlos,palo,ana

COMANDO LASTLOG lastlog [opções] Mostra o último login dos usuários cadastrados no sistema. Estes dados são obtidos através da pesquisa e formatação do arquivo /var/log/lastlog. lastlog [opções] -t [dias] - Mostra somente os usuários que se conectaram ao sistema nos últimos [dias]. -u [nome]-Mostra somente detalhes sobre o usuário [nome].

COMANDO last Mostra uma listagem de entrada e saída de usuários no sistema. Nome do usuário Terminal onde ocorreu a conexão/desconexão O hostname (caso a conexão tenha ocorrido remotamente) ou console (caso tenha ocorrido localmente). A data do login/logout, a hora do login/down se estiver fora do sistema/ still logged in se ainda estiver usando o sistema Tempo (em Horas:Minutos) que esteve conectado ao sistema. A listagem é mostrada em ordem inversa, ou seja, da data mais atual para a mais antiga. /var/log/wtmp. -a: Mostra o hostname na última coluna. Será muito útil se combinada com a opção -d. -d: Usa o DNS para resolver o IP de sistemas remotos para nomes DNS. -x: Mostra as entradas de desligamento do sistema e alterações do nível de execução do sistema. . O arquivo /var/log/wtmp somente é usado caso existir. Você pode cria-lo com o comando "echo -n >/var/log/wtmp" ou touch /var/log/wtmp.

IT GOES TO CONTINUE ...

Dicas Os três sítios principais de Linux são: ftp.funet.fi (Finland, 128.214.6.100) : /pub/OS/Linux sunsite.unc.edu (US, 152.2.22.81) : /pub/Linux tsx-11.mit.edu (US, 18.172.1.2) : /pub/linux O melhor lugar para se pegar versões novas de kernels é ftp.cs.helsinki.fi em /pub/Software/Linux/Kernel Linus Torvalds disponibiliza as versões mais recentes do kernel. A distribuição Debian é disponível em ftp.debian.org e a distribuição Red Hat em ftp.redhat.com

Listas recomendadas

Webgrafia Softpanorama Virtual Library - http://www.softpanorama.org/Scripting/shells.shtml Unix System Administrator's Resources - http://www.stokely.com/unix.sysadm.resources/index.html Heiner's SHELLdorado - http://www.oase-shareware.org/shell/ Metalab, UNC - http://metalab.unc.edu/ Window Managers for X - http://www.PLiG.org/xwinman/ TCL WWW Info - http://www.tnt.uni-hannover.de/soft/case/lang/tcl-tk/Tcl.html The World-Wide Web Virtual Library: Tcl and Tk - http://cuiwww.unige.ch/eao/www/TclTk.html The Perl Language Home Page - http://www.perl.com/perl/ LinuxWorld - Putting Linux to Work - http://www.linuxworld.com/ Linux Weekly News - http://lwn.net/ Linux Gazette Front Page - http://www.ssc.com/lg/ Slashdot:News for Nerds. Stuff that Matters. - http://cachedot.slashdot.org/ Da Linux French Page! - http://linuxfr.org/news/ Linux Today - http://linuxtoday.com/ Freshmeat - http://freshmeat.net/ linux.unicamp.br -- Traduções de Documentos para o Linux - http://linux.unicamp.br/docs/index.html LinUSP - Linux @ Universidade de São Paulo - http://linusp.usp.br/ Linuxberg World Wide Affiliate Site Locations! - http://www.linuxberg.com/

O shell é o nome genérico de uma classe de programas que funcionam como interpretador de comandos e linguagem de scripting no Unix. Os shells mais populares são o bash, csh, tcsh, ksh, zsh.  Alguns shells mais exóticos possuem interpretação de linguagem natural, emulação do command.com (MsDos) como o lsh, ou são formas simplificadas do bash para uso em discos de salvamento (rescue), como é o caso do ash. curses e slang são bibliotecas que controlam posicionamento de cursor, desenho de gráficos com caracteres especiais, cores ou outros atributos de caracteres nos terminais.