SISTEMA OPERACIONAL UNIX Universidade Guarulhos -  Bacharelado em Ciência da Computação
Universidade Guarulhos -  Bacharelado em Ciência da Computação UNIX – ARQUITETURA DO SISTEMA Robert D’salles Queiroz Siste...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação UNIX – PROCESSOS E KERNEL Robert D’salles Queiroz Sistemas ...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação UNIX – ESTUDO DE CASO Robert D’salles Queiroz Sistemas Oper...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor And...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTU...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – DESE...
Universidade Guarulhos -  Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro FIM Robert ...
Upcoming SlideShare
Loading in...5
×

Unix - Sistema Operacional

15,340

Published on

ROBERT DE SALES QUEIROZ
Seminário apresentado na disciplina Sistemas Operacionais I - 2 semestre de 2008

2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
15,340
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
429
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

Unix - Sistema Operacional

  1. 1. SISTEMA OPERACIONAL UNIX Universidade Guarulhos - Bacharelado em Ciência da Computação
  2. 2. Universidade Guarulhos - Bacharelado em Ciência da Computação UNIX – ARQUITETURA DO SISTEMA Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro
  3. 3. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – ARQUITETURA DO SISTEMA <ul><li>O Unix é composto de quatro partes básicas – o kernel, o sistema de arquivo, o shell </li></ul><ul><li>e as ferramentas: </li></ul><ul><li>O kernel é o núcleo do sistema operacional. Ele interage com o hardware do computador e traduz todos os comandos do Unix do shell para o hardware </li></ul><ul><li>O shell é a parte responsável pela interação com a maioria dos usuários. Quando o usuário emite um comando, o shell passa o pedido para o kernel, e este por sua vez traduz o comando vindo do shell em comandos de hardware apropriados à plataforma. Dessa forma, o sistema tem um maior controle sobre o hardware, impedindo acessos indevidos por parte dos usuários. </li></ul><ul><li>O sistema de arquivos é o método de armazenamento de informações utilizado pelo Unix. O Unix pode acessar todos os arquivos que estão armazenados em seu sistema de arquivos, arquivos estes que podem ser documentos de processador de texto, planilhas, figuras, arquivos de programas e outros tipos de arquivos. </li></ul><ul><li>As ferramentas são as aplicações que os usuários rodam através do shell. As aplicações podem ser tanto programas fornecidos juntamente com o Unix como softwares de usuário instalados no computador. </li></ul>
  4. 4. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – ARQUITETURA DO SISTEMA System Call Interface File Subsystem Buffer Cache Caractere Block Device Drivers Controle de Hardware Sistema de Controle de Processos Intercomunicação / Processos schedule Gerenciador de memória Hardware Aplicações dos usuários Bibliotecas Padrões do Unix
  5. 5. Universidade Guarulhos - Bacharelado em Ciência da Computação UNIX – PROCESSOS E KERNEL Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro
  6. 6. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonamento no Unix </li></ul><ul><li>Unix é um sistema de tempo compartilhado: </li></ul><ul><li>Permite que vários processos sejam executados concorrentemente. </li></ul><ul><li>Concorrência é emulada intercalando processos com base na atribuição de uma fatia de tempo (time slice ou quantum) </li></ul><ul><li>Processos ativos competem pelos diversos recursos do sistema (memória, periféricos e, em particular, a CPU). </li></ul><ul><li>Escalonador ( Scheduler) </li></ul><ul><li>Componente do S.O. que determina qual processo receberá a posse da CPU em um determinado instante. </li></ul><ul><li>Cada processo que recebe a CPU é executado durante a fatia de tempo a ele atribuída. </li></ul>
  7. 7. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonamento no Unix </li></ul><ul><li>O projeto de um escalonador deve focar em dois aspectos: </li></ul><ul><li>Política de escalonamento– estabelece as regras usadas para decidir para qual processo ceder a CPU e quando chaveá-la para um outro processo. </li></ul><ul><li>Implementação– definição dos algoritmos e estruturas de dados que irão executar essas políticas. </li></ul><ul><li>A política de escalonamento deve buscar: </li></ul><ul><li>Tempos de resposta rápidos para aplicações interativas. </li></ul><ul><li>Alto throughput(vazão) para aplicações em background. </li></ul><ul><li>Evitar starvation(um processo não deve ficar eternamente esperando pela posse da CPU). </li></ul><ul><li>Os objetivos acima podem ser conflitantes! </li></ul><ul><li>O escalonador deve prover uma maneira eficiente de balancear esses objetivos, minimizando overhead </li></ul>
  8. 8. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Rotina de Interrupção do Relógio </li></ul><ul><li>O relógio ( clock) é um elemento de hardware que interrompe a CPU em intervalos de tempos fixos. </li></ul><ul><li>CPU tick, clock tick ou tick. </li></ul><ul><li>Algumas máquinas requerem que o S.O. rearme o relógio após cada interrupção; em outras, o relógio rearma-se sozinho. </li></ul><ul><li>A maioria dos computadores suporta uma variedade de intervalos: </li></ul><ul><ul><li>Unix tipicamente configura o CPU tick em 10 ms. </li></ul></ul><ul><ul><li>A constante HZ (definida no arquivo param.h) armazena a freqüência desejada para o CPU tick. </li></ul></ul><ul><ul><li>Ex: HZ=100 implica em um intervalo de tick de 10 ms. </li></ul></ul><ul><ul><li>As funções do kernel são usualmente medidas em números de CPU ticks ao invés de segundos ou milisegundos. </li></ul></ul>
  9. 9. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Rotina de Interrupção do Relógio </li></ul><ul><li>A interrupção de relógio é a mais prioritária, só perdendo para a interrupção de falha de energia. </li></ul><ul><li>Uma “Rotina de Interrupção do Relógio” ( Clock Interrupt Handler) é executada em resposta a uma interrupção do relógio </li></ul><ul><ul><li>Deve ser rápida e suas tarefas devem ser mínimas Tarefas típicas do Clock Interrupt Handler: </li></ul></ul><ul><ul><li>Reiniciar o relógio, se necessário </li></ul></ul><ul><ul><li>Atualizar as estatísticas de uso da CPU p/ o processo corrente </li></ul></ul><ul><ul><li>Realizar funções relacionadas ao escalonamento (recalcular prioridades, tratar evento de fim de fatia de tempo do processo corrente, etc.) </li></ul></ul><ul><ul><li>Manipular sinais (ex: enviar o sinal SIGXCPU para o processo corrente, caso ele tenha excedido a sua cota de uso de CPU) </li></ul></ul><ul><ul><li>Acordar processos de sistema quando apropriado (ex: swapper e pagedaemon) </li></ul></ul><ul><ul><li>Manipular callouts e alarmes </li></ul></ul>
  10. 10. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Callouts </li></ul><ul><li>São registros de funções que devem ser invocadas pelo kernel num tempo futuro (i.e., após decorridos um número n de CPU ticks). </li></ul><ul><li>Callouts são adequados para a realização de tarefas periódicas: </li></ul><ul><ul><li>Retransmissão de pacotes em protocolos de comunicação </li></ul></ul><ul><ul><li>Algumas funções do escalonador e do gerente de memória </li></ul></ul><ul><ul><li>Periféricos que não suportam interrupção </li></ul></ul><ul><li>Callouts são consideradas operações normais de kernel </li></ul><ul><ul><li>A Rotina de Interrupção do Relógio não invoca diretamente os callouts. A cada CPU tick, ela verifica se existe algum callout a executar. </li></ul></ul><ul><ul><li>Se SIM, ela ”seta” um flag indicando que o callout handler deve ser executado </li></ul></ul><ul><ul><li>Quando o sistema retorna à sua prioridade base de interrupção ele verifica esta flag e: </li></ul></ul><ul><ul><li>Se flag setado então o kernel invoca o callout handler </li></ul></ul><ul><ul><li>O callout handler, por sua vez, invoca cada callout function que deve ser executado </li></ul></ul><ul><ul><li>Cada callout só será efetivamente executado quando todas as interrupções pendentes forem atendidas. </li></ul></ul>
  11. 11. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Alarmes </li></ul><ul><li>Processos podem solicitar ao kernel que este lhes envie um alarme (um sinal) após transcorrido um certo intervalo de tempo. </li></ul><ul><li>O Unix provê três tipos de alarmes: </li></ul><ul><li>Real-time alarm, profiling alarm e virtual-time alarm </li></ul><ul><li>Real time alarm </li></ul><ul><ul><li>Mede o tempo real decorrido </li></ul></ul><ul><ul><li>O kernel notifica o processo requisitante através do sinal SIGALRM </li></ul></ul><ul><li>Profiling alarm </li></ul><ul><ul><li>Mede a quantidade de tempo que um processo está sendo executado (i.e., o seu tempo corrente de execução). </li></ul></ul><ul><ul><li>O kernel notifica o processo através do sinal SIGPROF </li></ul></ul><ul><li>Virtual-time alarm </li></ul><ul><ul><li>Monitora o tempo gasto pelo processo em user mode </li></ul></ul><ul><ul><li>O kernel notifica o processo através do sinal SIGVALRM </li></ul></ul>
  12. 12. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonador </li></ul><ul><li>Sendo um sistema de tempo compartilhado , o Unix deve alocar a CPU de maneira justa para todos os processos. </li></ul><ul><li>Naturalmente, quanto maior for a carga no sistema, menor será a porção de CPU dada a cada processo e, portanto, eles executarão mais lentamente </li></ul><ul><li>É função do escalonador garantir uma boa performance para todos os processos, considerando todas as expectativas de carga do sistema. </li></ul><ul><li>Aplicações que concorrem pela CPU podem apresentar características diversas entre si, implicando em diferentes requisitos de escalonamento. </li></ul><ul><li>Ex: aplicações interativas, aplicações batch e aplicações de tempo real </li></ul>
  13. 13. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonador </li></ul><ul><li>A política de escalonamento adotada objetiva: </li></ul><ul><li>Melhorar os tempos de resposta para os usuários interativos, e </li></ul><ul><li>Garantir, ao mesmo tempo, que processos background não sofram starvation </li></ul><ul><li>O escalonamento tradicional do Unix é baseado em prioridades dinâmicas </li></ul><ul><li>A cada processo é atribuída uma prioridade de escalonamento, que é alterada com o passar do tempo. </li></ul><ul><li>O escalonador sempre seleciona o processo com a prioridade mais alta dentre aqueles no estado pronto-para-execução ( ready/runnable process). </li></ul><ul><ul><li>Se o processo não está no estado running, o kernel periodicamente aumenta a sua prioridade. </li></ul></ul><ul><ul><li>Quanto mais o processo recebe a posse da CPU mais o kernel reduz a sua prioridade. </li></ul></ul><ul><ul><li>Esse esquema previne a ocorrência de starvation. </li></ul></ul>
  14. 14. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonador </li></ul><ul><li>O escalonador tradicional usa o esquema de “ preemptive round robin”, isto é, escalonamento circular com preempção, para aqueles processos com a mesma prioridade. </li></ul><ul><li>O quantum possui um valor fixo, tipicamente de 100 ms. </li></ul><ul><li>A chegada de um processo de mais alta prioridade na fila de prontos força a preempção do processo executando em user mode(força uma troca de contexto), mesmo que este último não tenha terminado o seu quantum. </li></ul><ul><li>O kernel do Unix tradicional é não-preemptivo. </li></ul><ul><li>Um processo executando em kernel mode nunca é interrompido por um outro processo. </li></ul><ul><li>Um processo pode voluntariamente perder a posse da CPU ao bloquear-se esperando por algum recurso </li></ul><ul><li>Pode haver preempção do processo quando este retorna de kernel mode para user mode. </li></ul>
  15. 15. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL <ul><li>Escalonador </li></ul>Prioridades recebem valores entre 0 e 127 (quanto menor o valor numérico maior a prioridade) 0 – 49 : processos do kernel ( kernel priorities) 50 – 127 : processos de usuário ( user priorities) Por ordem decrescente de prioridade... - Swapper - Controle de dispositivos de E/S orientados a bloco - Manipulação de arquivos - Controle de dispositivos de E/S orientados a caractere - Processos de usuário
  16. 16. Universidade Guarulhos - Bacharelado em Ciência da Computação UNIX – ESTUDO DE CASO Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro
  17. 17. Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO <ul><li>Breve Histórico do Unix e do Linux </li></ul><ul><li>Versão original desenvolvida por Ken Thompson (Bell) Assembly para PDP-7, logo portada para o PDP-11 </li></ul><ul><li>Baixa Portabilidade -> Mudança para código em “B” </li></ul><ul><li>Denis Ritchie desenvolve o C, escreve o compilador </li></ul><ul><li>Unix é licenciado para universidades pela AT&T </li></ul><ul><li>Berkeley desenvolve o 1BSD que evolui para produtos de grande sucesso (4BSD e releases) </li></ul><ul><li>Microsoft lança o Xenix </li></ul><ul><li>AT&T consegue entrar no mercado e evolui até o System V </li></ul><ul><li>POSIX (Portable Operating System) é uma iniciativa de padronização </li></ul><ul><li>Minix: versão didática desenvolvida por Tanenbaum </li></ul><ul><li>Linux é baseado no Minix, como um clone do Unix. </li></ul>
  18. 18. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  19. 19. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  20. 20. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  21. 21. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  22. 22. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  23. 23. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz
  24. 24. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – DESENVOLVEDORES Robert D’salles Queiroz Dennis Ritchie Ken Thompson
  25. 25. Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro FIM Robert D’salles Queiroz
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×