Unix - Sistema Operacional

67 %
33 %
Information about Unix - Sistema Operacional

Published on October 30, 2008

Author: sistemaoperacional

Source: slideshare.net

Description

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

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 Sistemas Operacionais Professor Anderson Favaro

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – ARQUITETURA DO SISTEMA O Unix é composto de quatro partes básicas – o kernel, o sistema de arquivo, o shell e as ferramentas: 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 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. 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. 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.

O Unix é composto de quatro partes básicas – o kernel, o sistema de arquivo, o shell

e as ferramentas:

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

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.

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.

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.

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

Universidade Guarulhos - Bacharelado em Ciência da Computação UNIX – PROCESSOS E KERNEL Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonamento no Unix Unix é um sistema de tempo compartilhado: Permite que vários processos sejam executados concorrentemente. Concorrência é emulada intercalando processos com base na atribuição de uma fatia de tempo (time slice ou quantum) Processos ativos competem pelos diversos recursos do sistema (memória, periféricos e, em particular, a CPU). Escalonador ( Scheduler) Componente do S.O. que determina qual processo receberá a posse da CPU em um determinado instante. Cada processo que recebe a CPU é executado durante a fatia de tempo a ele atribuída.

Escalonamento no Unix

Unix é um sistema de tempo compartilhado:

Permite que vários processos sejam executados concorrentemente.

Concorrência é emulada intercalando processos com base na atribuição de uma fatia de tempo (time slice ou quantum)

Processos ativos competem pelos diversos recursos do sistema (memória, periféricos e, em particular, a CPU).

Escalonador ( Scheduler)

Componente do S.O. que determina qual processo receberá a posse da CPU em um determinado instante.

Cada processo que recebe a CPU é executado durante a fatia de tempo a ele atribuída.

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonamento no Unix O projeto de um escalonador deve focar em dois aspectos: Política de escalonamento– estabelece as regras usadas para decidir para qual processo ceder a CPU e quando chaveá-la para um outro processo. Implementação– definição dos algoritmos e estruturas de dados que irão executar essas políticas. A política de escalonamento deve buscar: Tempos de resposta rápidos para aplicações interativas. Alto throughput(vazão) para aplicações em background. Evitar starvation(um processo não deve ficar eternamente esperando pela posse da CPU). Os objetivos acima podem ser conflitantes! O escalonador deve prover uma maneira eficiente de balancear esses objetivos, minimizando overhead

Escalonamento no Unix

O projeto de um escalonador deve focar em dois aspectos:

Política de escalonamento– estabelece as regras usadas para decidir para qual processo ceder a CPU e quando chaveá-la para um outro processo.

Implementação– definição dos algoritmos e estruturas de dados que irão executar essas políticas.

A política de escalonamento deve buscar:

Tempos de resposta rápidos para aplicações interativas.

Alto throughput(vazão) para aplicações em background.

Evitar starvation(um processo não deve ficar eternamente esperando pela posse da CPU).

Os objetivos acima podem ser conflitantes!

O escalonador deve prover uma maneira eficiente de balancear esses objetivos, minimizando overhead

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Rotina de Interrupção do Relógio O relógio ( clock) é um elemento de hardware que interrompe a CPU em intervalos de tempos fixos. CPU tick, clock tick ou tick. 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. A maioria dos computadores suporta uma variedade de intervalos: Unix tipicamente configura o CPU tick em 10 ms. A constante HZ (definida no arquivo param.h) armazena a freqüência desejada para o CPU tick. Ex: HZ=100 implica em um intervalo de tick de 10 ms. As funções do kernel são usualmente medidas em números de CPU ticks ao invés de segundos ou milisegundos.

Rotina de Interrupção do Relógio

O relógio ( clock) é um elemento de hardware que interrompe a CPU em intervalos de tempos fixos.

CPU tick, clock tick ou tick.

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.

A maioria dos computadores suporta uma variedade de intervalos:

Unix tipicamente configura o CPU tick em 10 ms.

A constante HZ (definida no arquivo param.h) armazena a freqüência desejada para o CPU tick.

Ex: HZ=100 implica em um intervalo de tick de 10 ms.

As funções do kernel são usualmente medidas em números de CPU ticks ao invés de segundos ou milisegundos.

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Rotina de Interrupção do Relógio A interrupção de relógio é a mais prioritária, só perdendo para a interrupção de falha de energia. Uma “Rotina de Interrupção do Relógio” ( Clock Interrupt Handler) é executada em resposta a uma interrupção do relógio Deve ser rápida e suas tarefas devem ser mínimas Tarefas típicas do Clock Interrupt Handler: Reiniciar o relógio, se necessário Atualizar as estatísticas de uso da CPU p/ o processo corrente Realizar funções relacionadas ao escalonamento (recalcular prioridades, tratar evento de fim de fatia de tempo do processo corrente, etc.) Manipular sinais (ex: enviar o sinal SIGXCPU para o processo corrente, caso ele tenha excedido a sua cota de uso de CPU) Acordar processos de sistema quando apropriado (ex: swapper e pagedaemon) Manipular callouts e alarmes

Rotina de Interrupção do Relógio

A interrupção de relógio é a mais prioritária, só perdendo para a interrupção de falha de energia.

Uma “Rotina de Interrupção do Relógio” ( Clock Interrupt Handler) é executada em resposta a uma interrupção do relógio

Deve ser rápida e suas tarefas devem ser mínimas Tarefas típicas do Clock Interrupt Handler:

Reiniciar o relógio, se necessário

Atualizar as estatísticas de uso da CPU p/ o processo corrente

Realizar funções relacionadas ao escalonamento (recalcular prioridades, tratar evento de fim de fatia de tempo do processo corrente, etc.)

Manipular sinais (ex: enviar o sinal SIGXCPU para o processo corrente, caso ele tenha excedido a sua cota de uso de CPU)

Acordar processos de sistema quando apropriado (ex: swapper e pagedaemon)

Manipular callouts e alarmes

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Callouts 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). Callouts são adequados para a realização de tarefas periódicas: Retransmissão de pacotes em protocolos de comunicação Algumas funções do escalonador e do gerente de memória Periféricos que não suportam interrupção Callouts são consideradas operações normais de kernel 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. Se SIM, ela ”seta” um flag indicando que o callout handler deve ser executado Quando o sistema retorna à sua prioridade base de interrupção ele verifica esta flag e: Se flag setado então o kernel invoca o callout handler O callout handler, por sua vez, invoca cada callout function que deve ser executado Cada callout só será efetivamente executado quando todas as interrupções pendentes forem atendidas.

Callouts

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).

Callouts são adequados para a realização de tarefas periódicas:

Retransmissão de pacotes em protocolos de comunicação

Algumas funções do escalonador e do gerente de memória

Periféricos que não suportam interrupção

Callouts são consideradas operações normais de kernel

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.

Se SIM, ela ”seta” um flag indicando que o callout handler deve ser executado

Quando o sistema retorna à sua prioridade base de interrupção ele verifica esta flag e:

Se flag setado então o kernel invoca o callout handler

O callout handler, por sua vez, invoca cada callout function que deve ser executado

Cada callout só será efetivamente executado quando todas as interrupções pendentes forem atendidas.

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Alarmes Processos podem solicitar ao kernel que este lhes envie um alarme (um sinal) após transcorrido um certo intervalo de tempo. O Unix provê três tipos de alarmes: Real-time alarm, profiling alarm e virtual-time alarm Real time alarm Mede o tempo real decorrido O kernel notifica o processo requisitante através do sinal SIGALRM Profiling alarm Mede a quantidade de tempo que um processo está sendo executado (i.e., o seu tempo corrente de execução). O kernel notifica o processo através do sinal SIGPROF Virtual-time alarm Monitora o tempo gasto pelo processo em user mode O kernel notifica o processo através do sinal SIGVALRM

Alarmes

Processos podem solicitar ao kernel que este lhes envie um alarme (um sinal) após transcorrido um certo intervalo de tempo.

O Unix provê três tipos de alarmes:

Real-time alarm, profiling alarm e virtual-time alarm

Real time alarm

Mede o tempo real decorrido

O kernel notifica o processo requisitante através do sinal SIGALRM

Profiling alarm

Mede a quantidade de tempo que um processo está sendo executado (i.e., o seu tempo corrente de execução).

O kernel notifica o processo através do sinal SIGPROF

Virtual-time alarm

Monitora o tempo gasto pelo processo em user mode

O kernel notifica o processo através do sinal SIGVALRM

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonador Sendo um sistema de tempo compartilhado , o Unix deve alocar a CPU de maneira justa para todos os processos. 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 É função do escalonador garantir uma boa performance para todos os processos, considerando todas as expectativas de carga do sistema. Aplicações que concorrem pela CPU podem apresentar características diversas entre si, implicando em diferentes requisitos de escalonamento. Ex: aplicações interativas, aplicações batch e aplicações de tempo real

Escalonador

Sendo um sistema de tempo compartilhado , o Unix deve alocar a CPU de maneira justa para todos os processos.

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

É função do escalonador garantir uma boa performance para todos os processos, considerando todas as expectativas de carga do sistema.

Aplicações que concorrem pela CPU podem apresentar características diversas entre si, implicando em diferentes requisitos de escalonamento.

Ex: aplicações interativas, aplicações batch e aplicações de tempo real

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonador A política de escalonamento adotada objetiva: Melhorar os tempos de resposta para os usuários interativos, e Garantir, ao mesmo tempo, que processos background não sofram starvation O escalonamento tradicional do Unix é baseado em prioridades dinâmicas A cada processo é atribuída uma prioridade de escalonamento, que é alterada com o passar do tempo. O escalonador sempre seleciona o processo com a prioridade mais alta dentre aqueles no estado pronto-para-execução ( ready/runnable process). Se o processo não está no estado running, o kernel periodicamente aumenta a sua prioridade. Quanto mais o processo recebe a posse da CPU mais o kernel reduz a sua prioridade. Esse esquema previne a ocorrência de starvation.

Escalonador

A política de escalonamento adotada objetiva:

Melhorar os tempos de resposta para os usuários interativos, e

Garantir, ao mesmo tempo, que processos background não sofram starvation

O escalonamento tradicional do Unix é baseado em prioridades dinâmicas

A cada processo é atribuída uma prioridade de escalonamento, que é alterada com o passar do tempo.

O escalonador sempre seleciona o processo com a prioridade mais alta dentre aqueles no estado pronto-para-execução ( ready/runnable process).

Se o processo não está no estado running, o kernel periodicamente aumenta a sua prioridade.

Quanto mais o processo recebe a posse da CPU mais o kernel reduz a sua prioridade.

Esse esquema previne a ocorrência de starvation.

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonador O escalonador tradicional usa o esquema de “ preemptive round robin”, isto é, escalonamento circular com preempção, para aqueles processos com a mesma prioridade. O quantum possui um valor fixo, tipicamente de 100 ms. 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. O kernel do Unix tradicional é não-preemptivo. Um processo executando em kernel mode nunca é interrompido por um outro processo. Um processo pode voluntariamente perder a posse da CPU ao bloquear-se esperando por algum recurso Pode haver preempção do processo quando este retorna de kernel mode para user mode.

Escalonador

O escalonador tradicional usa o esquema de “ preemptive round robin”, isto é, escalonamento circular com preempção, para aqueles processos com a mesma prioridade.

O quantum possui um valor fixo, tipicamente de 100 ms.

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.

O kernel do Unix tradicional é não-preemptivo.

Um processo executando em kernel mode nunca é interrompido por um outro processo.

Um processo pode voluntariamente perder a posse da CPU ao bloquear-se esperando por algum recurso

Pode haver preempção do processo quando este retorna de kernel mode para user mode.

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – PROCESSOS E KERNEL Escalonador 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

Escalonador

Universidade Guarulhos - Bacharelado em Ciência da Computação UNIX – ESTUDO DE CASO Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro

Universidade Guarulhos - Bacharelado em Ciência da Computação Robert D’salles Queiroz Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Breve Histórico do Unix e do Linux Versão original desenvolvida por Ken Thompson (Bell) Assembly para PDP-7, logo portada para o PDP-11 Baixa Portabilidade -> Mudança para código em “B” Denis Ritchie desenvolve o C, escreve o compilador Unix é licenciado para universidades pela AT&T Berkeley desenvolve o 1BSD que evolui para produtos de grande sucesso (4BSD e releases) Microsoft lança o Xenix AT&T consegue entrar no mercado e evolui até o System V POSIX (Portable Operating System) é uma iniciativa de padronização Minix: versão didática desenvolvida por Tanenbaum Linux é baseado no Minix, como um clone do Unix.

Breve Histórico do Unix e do Linux

Versão original desenvolvida por Ken Thompson (Bell) Assembly para PDP-7, logo portada para o PDP-11

Baixa Portabilidade -> Mudança para código em “B”

Denis Ritchie desenvolve o C, escreve o compilador

Unix é licenciado para universidades pela AT&T

Berkeley desenvolve o 1BSD que evolui para produtos de grande sucesso (4BSD e releases)

Microsoft lança o Xenix

AT&T consegue entrar no mercado e evolui até o System V

POSIX (Portable Operating System) é uma iniciativa de padronização

Minix: versão didática desenvolvida por Tanenbaum

Linux é baseado no Minix, como um clone do Unix.

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – ESTUDO DE CASO Robert D’salles Queiroz

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro UNIX – DESENVOLVEDORES Robert D’salles Queiroz Dennis Ritchie Ken Thompson

Universidade Guarulhos - Bacharelado em Ciência da Computação Sistemas Operacionais Professor Anderson Favaro FIM Robert D’salles Queiroz

Add a comment

Related presentations

Related pages

Unix – Wikipédia, a enciclopédia livre

Um sistema Unix consiste, basicamente, de duas partes: Núcleo - o núcleo do sistema operacional, a parte que relaciona-se diretamente com o hardware, e ...
Read more

Sistema operacional tipo Unix – Wikipédia, a ...

Um sistema operacional do tipo Unix (Unix-like em inglês) referido também como UN*X ou *nix é um sistema similar ao Unix, não estando necessariamente ...
Read more

Unix: o pai de todos os sistemas operacionais - TecMundo

Sistema operacional; Mac OS X; Unix: o pai de todos os sistemas operacionais. 89.621 Visualizações . Por Douglas Ciriaco 06 jun 2011 - 19h 51.
Read more

sistema operacional unix - Download - 4shared - Roberto ...

sistema operacional unix - download at 4shared. sistema operacional unix is hosted at free file sharing service 4shared.
Read more

The FreeBSD Project

Official home: the definitive resource for FreeBSD information. Descriptions, downloads, documents, community, developer resources, support.
Read more

Introdução ao Sistema Operacional UNIX - Cenapad SP ...

Previous Contents Next. Introdução ao Sistema Operacional UNIX CENAPAD/SP 1. Objetivos 2. Breve histórico
Read more

Operating system - Wikipedia, the free encyclopedia

Unix was the first operating system not written in assembly language, making it very portable to systems different from its native PDP-11
Read more

Sistema Operacional e Histórico do Unix e Linux

Sistema Operacional. O Sistema Operacional é a interface ao usuário e seus programas com o computador. Ele é responsável pelo gerenciamento de recursos ...
Read more