Buscar

Fudamentos de sistema operacionais unid 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Unidade III
FUNDAMENTOS DE 
SISTEMAS OPERACIONAISSISTEMAS OPERACIONAIS
Prof. Roberto Macias
Relembrando...
ƒ Sistema Operacional é um conjunto de 
programas que se situa entre os 
softwares aplicativos e o hardware.
ƒ Um SO gerencia recursos deste 
hardware (CPU, memória, periféricos, 
etc )etc.).
ƒ Um SO fornece uma interface para o 
usuário interagir com o sistema.
ƒ Um SO provê e executa serviços para 
programas aplicativos.
Relembrando...
T di ti d Si tTemos diversos tipos de Sistemas 
Operacionais, como: 
ƒ Em batch.
ƒ De rede.
ƒ Distribuídos.
ƒ Multiusuário e multitarefa.
ƒ Desktop / PCs.
ƒ Servidor.
ƒ Embarcados.
ƒ Tempo real.
ƒ Grande porte.
ƒ Multiprocessadores.
ƒ Portáteis.
Relembrando...
ƒ Podemos pautar a evolução dos 
Sistemas Operacionais de acordo com a 
evolução dos próprios computadores 
(um determinado hardware necessita de 
um software que o gerencie e usufrua de 
todo o seu potencial)todo o seu potencial).
ƒ Tivemos, principalmente a partir da 3ª 
geração de computadores, diversos 
tipos de Sistemas Operacionais.
ƒ Vimos também aspectos dos hardwares
de computadores, que é função dos 
Sistemas Operacionais gerenciá-los.
Relembrando...
Aspectos específicos de:
ƒ Processadores.
ƒ Processadores multithread e 
multinúcleo.
ƒ Memóriaƒ Memória.
ƒ Disco.
ƒ Fitas.
ƒ Dispositivos de E/S.
ƒ Barramentoƒ Barramento.
Plano da unidade III
Gerenciamento de processos:
ƒ Introdução a processos.
ƒ Processo.
ƒ Criação de processos. 
ƒ Término de processosƒ Término de processos. 
ƒ Comunicações entre processos. 
ƒ Condição de corrida.
ƒ Exclusão mútua e região crítica. 
ƒ Exclusão mútua com espera ociosa.Exclusão mútua com espera ociosa. 
ƒ Semáforos.
ƒ Monitores.
ƒ Troca de mensagens. 
ƒ Escalonamento.
Plano da unidade III
Gerenciamento de memória:
ƒ Introdução a gerenciamento de memória. 
ƒ Abstração – espaços de endereçamento 
da memória. 
ƒ Permuta de memóriaƒ Permuta de memória. 
ƒ Memória virtual.
ƒ Paginação. 
ƒ Segmentação.
Gerenciamento de processos
ƒ Os sistemas computacionais atuais são 
capazes de desenvolver uma grande 
variedade de tarefas simultaneamente.
ƒ Imagine o cenário: usuários fazendo 
requisições simultaneamente, antivírus 
está varrendo tudo que entra e sai, 
software de gerenciamento de redes 
monitorando e solicitando dados de 
desempenho do servidor e diversos 
discos trabalhando em RAID (além de 
outras tarefas)outras tarefas).
ƒ É visível a necessidade de uma 
“orquestração” para todos estes 
processos!
Gerenciamento de processos
Voltemos ao conceito de “processos” 
(como visto na unidade II): 
ƒ Processo = programa que está em 
execução.
ƒ Este programa em execução requerEste programa em execução requer 
recursos, principalmente da CPU, e 
concorre com outros processos em sua 
execução.
Gerenciamento de processos
ƒ Em todos os sistemas com suposto 
conceito de paralelismo, a CPU trabalha 
por algumas dezenas, centenas de 
milissegundos numa única aplicação e 
subsequentemente na próxima até o 
ciclo se completarciclo se completar.
ƒ Esta sequência continuará até todos os 
processos terminarem, mas não 
podemos esquecer que outros 
processos entram na fila todo momento.
ƒ Devido à rapidez dos ciclos, temos a 
impressão que o sistema está atendendo 
às diversas aplicações simultaneamente.
Gerenciamento de processos
ƒ Somente nos casos de sistemas com 
múltiplos processadores é que temos de 
fato múltiplos programas sendo tendidos 
no mesmo instante.
ƒ Controlar múltiplas atividades em 
paralelo é algo que vem sendo 
desenvolvido e aprimorado com base 
num modelo conceitual de processos 
sequenciais que facilita o paralelismo 
que estudaremos adiante.
Gerenciamento de processos
Conforme demonstrado na figura abaixo, 
uma CPU pode executar um processo por 
vez:
Gerenciamento de processos
Em sistemas com dois cores (equivalente a 
termos duas CPUs), ainda temos a mesma 
afirmativa – todas as CPUs podem executar 
um processo por vez cada uma:
Gerenciamento de processos
ƒ No núcleo dos sistemas operacionais, 
temos o PCBs (Process Control Blocks) 
que armazenam informações referentes 
aos processos ativos no ambiente.
ƒ Cada processo possui um identificador 
único no sistema, o PID (Process
Identifier).
ƒ Criação de processos: Processos são 
criados e destruídos constantemente 
nos sistemas. Essas operações 
disponibilizam aplicações por meio de 
chamadas de sistema que diferem entre 
sistemas operacionais.
Gerenciamento de processos
ƒ Ao iniciar o sistema operacional, 
tipicamente vários processos são 
criados. Entre esses processos, temos 
os que estão em primeiro plano e 
interagindo com o usuário e outros que 
estão em segundo plano portanto nãoestão em segundo plano, portanto não 
estão diretamente interagindo com o 
usuário.
ƒ Um exemplo é uma tarefa de 
transferência de um arquivo via servidor 
de FTP onde este fica inativo durantede FTP, onde este fica inativo durante 
parte do tempo, sendo ativo somente 
quando um cliente FTP solicita a 
abertura de uma conexão.
Gerenciamento de processos
ƒ Usamos o termo daemons para 
descrever processos que ficam em 
segundo plano com finalidade de lidar 
com alguma atividade como esta.
ƒ Processos que estão em execução 
podem fazer chamadas de sistema 
(system calls) para criar um ou mais 
novos processos. Criar novos processos 
é indicado quando a tarefa a ser 
executada puder ser facilmente dividida 
em vários processos relacionadosem vários processos relacionados, 
interagindo, entretanto, de maneira 
independente.
Gerenciamento de processos
No os processos criados a partir de mNovos processos criados a partir de um 
processo principal (“pai”) são chamados de 
processos “filhos”, réplica do primeiro, 
conforme ilustra a figura que segue:
Gerenciamento de processos
Término de processos - Após o término, o 
processo é finalizado com base em quatro 
condições típicas: 
ƒ Encerramento Normal (voluntário) –
ao término da execução e liberação 
dos recursos.
ƒ Por erro (voluntário) – por parâmetros 
errados fornecidos por outros 
processos, aplicações ou pelo 
usuário.
ƒ Erro fatal (involuntário) – é um erro 
causado pelo processo e 
normalmente por um erro de 
programa.
Gerenciamento de processos
ƒ Cancelado por terceiros (involuntário) –
O cancelamento por outro processo 
ocorre quando um processo “x” executa 
uma chamada de sistema determinando 
que o sistema operacional cancele 
outro(s) processo(s) “y”outro(s) processo(s) “y”.
ƒ Processos terminados de forma 
involuntária não são comuns num 
sistema em perfeito funcionamento!
Interatividade 
O que os Sistemas Operacionais utilizam 
para identificar os seus processos?
a) PID.
b) PCB.
c) Daemonsc) Daemons.
d) System Calls.
e) Forks.
Gerenciamento de processos
ƒ A comunicação entre processos é algo 
frequente nos sistemas atuais, havendo 
a necessidade de se obter uma 
comunicação estruturada e sem 
interrupções acontecendo entre eles.
ƒ Em linhas gerais, temos três tópicos 
importantes na comunicação entre 
processos: como um processo passa a 
informação para outro; como garantir 
que múltiplos processos não entrem em 
conflito; e como haverá uma sequênciaconflito; e como haverá uma sequência 
adequada quando existirem 
dependências.
Gerenciamento de processos
Condição de corrida:
ƒ Processos que trabalham juntos podem 
compartilhar algum armazenamento 
comum e serem capazes de ler e 
escrever. O armazenamento 
compartilhado pode estar na memória 
principal ou em um arquivo 
compartilhado.
ƒ Condição de corrida é uma situação 
onde dois ou mais processos querem 
partilhar um recurso (escrever e ler 
dados compartilhados) eo resultado 
final depende de quem executou quando 
(ordem de escalonamento).
Gerenciamento de processos
Exclusão mútua e região crítica:
ƒ Exclusão mútua (mutual exclusion) é o 
modo de assegurar que processos sejam 
impedidos de usar uma variável ou um 
arquivo compartilhado que já estiver em 
uso por outro processo. Pode-se evitar a 
condição de corrida apresentada 
anteriormente aplicando a exclusão 
mútua ou evitando que os programas 
usem a região crítica simultaneamente.
Gerenciamento de processos
Exclusão mútua e região crítica:
ƒ Entende-se por região crítica a parte dos 
programas em que há acesso à memória 
ou arquivo compartilhado.
Gerenciamento de processos
Exclusão mútua com espera ociosa:
ƒ Em sistemas mais antigos que possuíam 
somente uma CPU com um único core, a 
forma mais trivial e segura para evitar 
que mais de um processo entrem na 
região crítica é aplicada com a 
desativação das interrupções assim que 
o primeiro processo entrar na região 
crítica e consecutivamente reabilitá-las 
assim que sair desta região.
Gerenciamento de processos
Exclusão mútua com espera ociosa:
ƒ Entretanto, caso tenhamos um problema 
num processo que desative as 
interrupções e nunca mais as reative, 
certamente, teremos um problema maior 
para lidar do que a situação decorrida, 
ou seja, teremos o sistema literalmente 
parado.
ƒ Com as novas arquiteturas de chips com 
múltiplos processadores, esta técnica de 
desabilitar interrupções torna-se 
inadequada.
Gerenciamento de processos
ƒ Semáforos: Como visto anteriormente, 
quando um processo está ativo e 
executando tarefas na região crítica, 
então outros devem ficar “dormindo” até 
o término dessa tarefa. O semáforo é o 
conceito proposto por E W Dijkstra paraconceito proposto por E. W. Dijkstra para 
um tipo de variável inteira, objetivando 
contar o número de sinais de “acordar” 
salvos para o uso futuro. Um semáforo 
poderia conter o valor 0, indicando que 
nenhum sinal de acordar foi salvo, ounenhum sinal de acordar foi salvo, ou 
algum valor positivo, sinalizando que um 
ou mais sinais de acordar estivessem 
pendentes.
Gerenciamento de processos
ƒ Semáforos: Dijkstra propôs a existência 
de duas operações para os semáforos: P 
(down) e V (up), que são mnemônicos e 
fazem alusão a sleep e wake up (dormir e 
acordar).
ƒ Simplificando = Semáforo é uma variável 
especial protegida (ou tipo abstrato de 
dados) que tem como função o controle 
de acesso a recursos compartilhados 
(por exemplo, um espaço de 
armazenamento) num ambientearmazenamento) num ambiente 
multitarefa.
Gerenciamento de processos
ƒ Monitores: Podemos definir monitor 
como uma coleção de rotinas, variáveis e 
estruturas de dados, todos agrupados 
em um tipo especial de pacote.
ƒ O monitor tem um papel fundamental 
para realizar a exclusão mútua pelo fato 
de que somente um processo pode estar 
ativo em um monitor num determinado 
tempo x.
Gerenciamento de processos
ƒ Monitores: Tipicamente, quando um 
processo executa uma chamada a uma 
determinada rotina do monitor, algumas 
das primeiras instruções da rotina 
deverão verificar se existe outro 
processo ativo dentro do monitor Casoprocesso ativo dentro do monitor. Caso 
confirme que outro processo encontra-
se ativo dentro do monitor, então o 
processo que realizou a chamada ficará 
suspenso até que o processo que estava 
ativo saia do monitor.ativo saia do monitor.
ƒ Um processo que executar uma chamada 
ao monitor poderá entrar somente se não 
houver nenhum outro ativo.
Gerenciamento de processos
ƒ Troca de mensagens: semáforos e 
monitores não permitem troca de 
informações entre máquinas, que é 
primordial no mundo dos sistemas 
distribuídos. Para essa condição temos o 
message passing (troca de mensagens)message passing (troca de mensagens), 
que usa dois instrumentos: send e 
receive (envio e recebimento).
ƒ No caso da troca de mensagens entre 
máquinas, isso se dá por meio da rede e 
essa mensagem pode ser extraviada aoessa mensagem pode ser extraviada ao 
longo do percurso. Portanto, uma troca 
de mensagem usa o mecanismo similar 
ao usado no protocolo TCP.
Gerenciamento de processos
ƒ No protocolo TCP, a mensagem enviada 
requer um sinal de acknowledge, ou seja, 
se quem enviou não receber a 
confirmação, então uma nova mensagem 
será reenviada.
ƒ Este funcionamento do protocolo TCP é 
similar ao recurso de troca de mensagem 
nos Sistemas Operacionais em sua 
tarefa de gerenciar processos 
concorrentes.
Gerenciamento de processos
ƒ Escalonamento: quando temos uma 
única CPU, ou uma única CPU disponível 
entre as diversas existentes no sistema, 
e mais de um processo estiver 
competindo para ser executado, então 
caberá ao sistema operacional escolhercaberá ao sistema operacional escolher 
qual dos processos será privilegiado e 
essa escolha chama-se algoritmo de 
escalonamento.
ƒ O escalonamento é importante porque, 
dentre vários processos é saudável quedentre vários processos, é saudável que 
o sistema priorize aqueles que vão gerar 
mais impacto ao ambiente e seus 
usuários.
Gerenciamento de processos
Escalonamento: processos são 
escalonados em quatro situações:
ƒ Quando temos os processos pai e 
filho para serem executados. A 
definição de qual deve ser priorizado, 
em muitos casos, é essencial para o 
perfeito funcionamento das tarefas e 
resultado correto.
ƒ Quando temos um processo que 
terminou e já não está mais no 
sistema, havendo a necessidade da 
escolha de um novo processo.
Gerenciamento de processos
Escalonamento:
ƒ Quando um processo é bloqueado por 
alguma razão, então outro processo deve 
ser selecionado para ser executado. 
Processos predecessores podem ser 
priorizados, pois, se forem executados 
os sucessores, pode haver 
dependências que irão gerar resultados 
inconsistentes.
ƒ Ao ocorrer uma interrupção de E/S, pode 
ser necessário uma decisão de 
escalonamento.
Interatividade 
Uma das funções de um Sistema 
Operacional é o gerenciamento de 
processos. Qual das opções abaixo não é 
uma técnica deste tipo de gerenciamento?
a) Troca de mensagens.
b) Escalonamento.
c) Exclusão mútua.
d) Semáforos.
e) Enfileiramento.
Gerenciamento de memória
ƒ A memória é um grande vetor de 
palavras ou bytes (o tamanho de um 
palavra depende de cada máquina), cada 
qual com seu próprio endereço. A CPU 
busca instruções do programa em 
memória de acordo com o valor domemória de acordo com o valor do 
registrador contador de programas. 
Estas instruções podem causar a busca 
ou o armazenamento adicionais para 
endereços específicos de memória.
Gerenciamento de memória
ƒ Nos sistemas operacionais, a parte 
parcialmente responsável por gerenciar 
a hierarquia de memória é o gerenciador 
de memória, que tem como tarefa 
conhecer todo espaço de memória, 
alocar para os processos que estãoalocar para os processos que estão 
necessitando e liberar as partes que não 
estão mais em uso pelos processos.
Gerenciamento de memória
ƒ Contemporaneamente, programadores 
necessitam de mais memória e mais 
programas rodando simultaneamente 
para que consigam tratar cada vez mais 
informações.
No tratamento de memória, alguns 
requisitos devem ser observados para o 
correto funcionamento:
ƒ Segurança.
ƒ Isolamento.Isolamento.
ƒ Performance.
Gerenciamento de memória
ƒ Por conta dos requisitos, a tarefa de 
gerenciar memória passa a ser do 
sistema operacional, não mais dos 
aplicativos.
O gerenciamento de memória baseia-se 
basicamente em duas tarefas essenciais:
ƒ Alocação: quando o programa requisita 
um bloco de memória, o gerenciador o 
disponibiliza para a alocação.
Gerenciamento de memória
ƒ Reciclagem: Quando um bloco de 
memóriafoi alocado, mas os dados não 
foram requisitados por um determinado 
número de ciclos ou não há nenhum tipo 
de referência a este bloco pelo 
programa esse bloco é liberado e podeprograma, esse bloco é liberado e pode 
ser reutilizado para outra requisição.
Gerenciamento de memória
Swapping: 
ƒ O swapping, é um dos métodos mais 
triviais para gerir a sobrecarga de 
memória. Esse método vem sofrendo 
modificações ao longo dos anos. Ele faz 
a cópia completa do conteúdo da 
memória (que geralmente são processos 
ociosos) para um arquivo no disco rígido 
e libera a memória para outro processo 
ocupá-la.
ƒ Sistemas e aplicativos atuais demandam 
uma grande quantidade de memória, por 
conta disto, técnicas como a de 
swapping são necessárias.
Gerenciamento de memória
ƒ Swapping: quando os recursos de 
memória estão esgotados, como por 
exemplo, quando uma aplicação faz uso 
de toda a memória RAM de um 
computador e outro processo necessita 
de uma área nesta mesma memóriade uma área nesta mesma memória, 
entre em ação a técnica de swapping, ou 
seja, troca de processos. Isso consiste 
em o sistema operacional pegar o 
conteúdo completo da memória e movê-
lo para um arquivo na memória em discolo para um arquivo na memória em disco 
rígido e, subsequentemente, liberar a 
memória para o próximo processo.
Gerenciamento de memória
Swapping.
ƒ Vantagens:
ƒ Maior compartilhamento da memória. 
ƒ Maior throughput.
ƒ Eficiência.
ƒ Desvantagens:
ƒ Elevados custos das operações de 
entrada e saída.
Gerenciamento de memória
ƒ Memória virtual: Em 1961, um método 
desenvolvido por John Fotheringham
ficou conhecido como memória virtual, 
permitindo que programas usem mais 
RAM do que realmente está disponível 
fisicamente Esse processo é possívelfisicamente. Esse processo é possível 
porque o sistema operacional mantém 
rodando na memória principal somente 
as partes necessárias do programa e as 
outras, que não estão em uso, ficam no 
disco rígido. Quando é necessário quedisco rígido. Quando é necessário que 
outra parte, que está no disco, seja 
carregada, então haverá o processo de 
swapping.
Gerenciamento de memória
Memória virtual:
ƒ A memória virtual possui dois aspectos 
importantes: o primeiro é a quantidade 
de memória fisicamente instalada no 
equipamento, que chamamos de 
memória real. O outro tem muito mais 
capacidade que o primeiro e chamamos 
de espaço de memória virtual.
ƒ No hardware, temos um componente de 
extrema importância que é a Unidade de 
Gerenciamento de Memória (MMU).
Gerenciamento de memória
Memória virtual:
ƒ O MMU suporta o sistema operacional na 
execução do mapeamento dos 
endereços da memória física e 
endereços da memória virtual, 
permitindo, assim, a eficaz maestria de 
mover as partes dos programas da 
memória virtual para o disco ou vice-
versa.
Gerenciamento de memória
ƒ Memória virtual – MMU
Gerenciamento de memória
Paginação:
ƒ A técnica chamada paginação é usada na 
maioria dos sistemas de memória virtual. 
A memória virtual é dividida em unidades 
de espaçamento de endereços 
adjacentes chamadas de páginas. Estas 
correspondem a unidades das memórias 
chamadas de frames.
Gerenciamento de memória
Paginação:
ƒ A paginação é implementada 
normalmente por unidades dedicadas de 
hardware integradas nos processadores. 
No caso dos processadores da família 
Intel x86, esta funcionalidade está 
atribuída à MMU. A paginação é obtida 
através de consulta a tabelas que 
relacionam os endereços lineares das 
páginas de memória com os endereços 
físicos das frames de memóriafísicos das frames de memória 
respectivas.
Gerenciamento de memória
Paginação:
ƒ Neste sistema, cada processo no 
computador tem a sua própria tabela de 
páginas, em que a cada endereço virtual 
corresponde o endereço físico em que a 
informação está efetivamente 
armazenada. Visto que a informação está 
dividida em pequenas unidades, o seu 
armazenamento não tem de ser 
necessariamente sequencial, o que 
elimina a fragmentação externa daelimina a fragmentação externa da 
memória.
Gerenciamento de memória
Segmentação:
ƒ Qualquer programa de computador está 
dividido em secções, como as 
declarações de variáveis e declarações 
de sub-rotinas (principalmente se ele foi 
escrito numa linguagem de alto nível). 
Em termos de execução, cada uma 
dessas secções vai ocupar um segmento
da memória.
ƒ O sistema operacional que suporta 
segmentação possui uma tabela com os 
tamanhos e endereços de memória dos 
vários segmentos de um programa para 
saber onde estão.
Interatividade 
Na tarefa de gerenciamento de memória, 
qual a função da MMU?
a) Manter rodando na memória principal 
somente as partes necessárias de um 
programa.
b) Definir o tamanho máximo de uma área 
de swapping.
c) Traduzir endereços virtuais em 
endereços físicos.
d) Liberar a memória de processos inativosd) Liberar a memória de processos inativos.
e) Informar ao programador endereços de 
alocação da memória.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Na primeira unidade da disciplina, vimos 
uma breve evolução dos sistemas 
operacionais Windows.
ƒ Esta parte visa complementar o assunto 
com os sistemas baseados em Unix.
ƒ Unix é um sistema operacional portátil, 
multitarefa e multiusuário, originalmente 
criado por Ken Thompson, Dennis 
Ritchie, Douglas McIlroy e Peter Weiner, 
que trabalhavam nos Laboratórios Bell 
(Bell Labs) da AT&T – final da década de 
60.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Em 1969, Ken Thompson, usando um 
ocioso computador PDP-7, começou a 
reescrever o embrião do Unix (o Multics) 
num conceito menos ambicioso, 
batizado de Unics, usando linguagem de 
montagem (assembly)montagem (assembly).
ƒ Mais tarde, Brian Kernighan rebatizou o 
novo sistema de Unix.
ƒ Um marco importante foi estabelecido 
em 1973, quando Dennis Ritchie e Ken 
Thompson reescreveram o Unix, usando 
a linguagem C, para um computador 
PDP-11.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ A linguagem C havia sido desenvolvida 
por Ritchie para substituir e superar as 
limitações da linguagem B, desenvolvida 
por Thompson. O seu uso é considerado 
uma das principais razões para a rápida 
difusão do Unixdifusão do Unix.
ƒ Finalmente, ao longo dos anos 70 e 80 
foram sendo desenvolvidas as primeiras 
distribuições de grande dimensão como 
os sistemas BSD (na Universidade de 
Berkeley na Califórnia) e os System III eBerkeley na Califórnia) e os System III e 
System V (nos Bell Labs).
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Em 1983, após acrescentar vários 
melhoramentos ao System III, a AT&T 
apresentava o novo Unix comercial, 
renomeando-o para System V.
ƒ Hoje, o Unix System V é o padrão 
internacional de fato para o 
desenvolvimento de variantes do Unix.
ƒ Atualmente, Unix (ou *nix) é o nome 
dado a vários sistemas que partilham 
muitos dos conceitos dos Unix originais, 
sendo todos eles desenvolvidos em 
torno de padrões como o POSIX 
(Portable Operating System Interface) e 
outros.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Alguns dos Sistemas Operativos 
derivados do Unix são: BSD (FreeBSD, 
OpenBSD e NetBSD), Solaris
(anteriormente conhecido por SunOS), 
IRIXG, AIX, HP-UX, Tru64, SCO, Linux 
(nas suas centenas de distribuições) e(nas suas centenas de distribuições), e 
até o Mac OS X (baseado em um núcleo 
Mach BSD chamado Darwin). Existem 
mais de quarenta sistemas operacionais 
*nix, instalados em desde celulares a 
supercomputadores, de relógios desupercomputadores, de relógios de 
pulso a sistemas de grande porte.
Conteúdo complementar –
Sistemas baseados em UNIX
Conteúdo complementar –
Sistemasbaseados em UNIX
Linux:
ƒ O Linux foi criado como um projeto de 
um estudante finlandês chamado Linus 
Torvalds. Na época os sistemas 
operacionais mais populares eram o 
Unix, que era muito usado em empresas, 
o Mac OS, da Apple, muito popular entre 
os usuários domésticos que tinha uma 
interface muito amigável e superior ao 
do Windows em muitos aspectos, mas 
muito caro também e o Windows que namuito caro também, e o Windows, que na 
verdade era a opção pra quem não podia 
comprar um computador da Apple.
Conteúdo complementar –
Sistemas baseados em UNIX
Linux:
ƒ Em 1988, Linus ingressou na 
Universidade de Helsinki (Finlândia) no 
curso de Ciências da Computação. Após 
montar um computador passou a usar o 
MINIX.
ƒ O MINIX fora desenvolvido pelo 
Professor Andrew S. Tanenbaum, um 
renomado professor de computação que 
é conhecido pelos diversos livros que 
escreve até hoje para a área de TI.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Tanenbaum disponibilizou o MINIX 
principalmente para servir de auxílio no 
ensino de computação.
ƒ Dadas as suas finalidades acadêmicas, 
não só o MINIX foi disponibilizado de 
maneira gratuita e livre, como também o 
seu código-fonte completo. Assim, os 
estudantes de computação podiam - e 
podem - estudá-lo inteiramente para 
desenvolver suas habilidades ou mesmo 
para criar projetos derivadospara criar projetos derivados.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Devido a observar as dificuldades deste 
sistema (especialmente com relação ao 
uso de terminal para conexão), Linus 
resolveu criar um programa para a 
emulação de terminal que funcionasse 
independente do MINIXindependente do MINIX.
ƒ Na mesma época (1991), estudantes do 
mundo todo que se interessavam por 
informática, e compartilhavam os ideais 
de que os programas deveriam ser livres 
para o uso e melhoria por todospara o uso e melhoria por todos, 
inspirados por Richard Stallman e seu 
projeto GNU.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ O projeto de Stallman (GNU), era um 
movimento que visava a fornecer 
software livre com qualidade.
ƒ O projeto GNU havia criado uma série de 
ferramentas para programadores e 
estudantes, porém seu sistema 
operacional propriamente dito ainda 
precisava de um Kernel.
ƒ Kernel é o núcleo de um SO, aquele que 
faz o intermédio entre o hardware e os 
programas executados. Isso significa 
que a junção do Kernel mais os 
softwares que tornam o computador 
usável, formam um SO.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Concomitantemente com a necessidade 
do GNU em desenvolver um Kernel, 
Linus Torvalds decidiu divulgar 
abertamente o seu projeto. Para isso, 
publicou mensagens na Usenet (uma 
espécie de antecessora da Internetespécie de antecessora da Internet, 
baseada em troca de mensagens) 
pedindo sugestões e colaborações para 
a sua iniciativa.
ƒ A partir de então, contando com o apoio 
de diversos desenvolvedoresde diversos desenvolvedores 
espalhados pelo mundo, o Linux foi 
evoluindo e fora adotado pelo projeto 
GNU como seu Kernel.
Conteúdo complementar –
Sistemas baseados em UNIX
Linux ou GNU/Linux?
ƒ O Linux, por si só, é um Kernel. Sozinho, 
um Kernel não tem muita utilidade. É 
necessário "juntá-lo" a um conjunto de 
softwares para que tenhamos, 
efetivamente, um sistema operacional 
em condições de uso. É aí que o projeto 
GNU entra.
ƒ O Linux que temos hoje é conhecido por 
trabalhar em conjunto com software 
GNU. Por comodidade ou simplesmente 
desconhecimento, pessoas criaram o 
hábito de chamar todo o conjunto de 
Linux e não somente o Kernel.
Conteúdo complementar –
Sistemas baseados em UNIX
Distribuições Linux:
ƒ Há várias distribuições Linux, para os 
mais diversos fins. Muitas, inclusive, 
fazem parte de negócios rentáveis, onde 
a empresa fornece, por exemplo, o 
sistema operacional de graça, mas 
obtém receita a partir de serviços de 
suporte técnico.
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Algumas distribuições Linux:
ƒ Ubuntu;
ƒ Debian;
ƒ Fedora (ligada à Red Hat);
ƒ Mandriva;
ƒ CentOS;
ƒ Slackware.
ƒ Dica: informações sobre estas e outras 
distribuições Linux no sitedistribuições Linux no site 
DistroWatch.com 
Conteúdo complementar –
Sistemas baseados em UNIX
Licenças:
ƒ Uma licença é, em poucas palavras, um 
documento que explica como 
determinado software pode ser utilizado. 
No que se refere a programas de código-
fonte aberto, há vários tipos de licenças 
disponíveis. O Linux utiliza a GPL (GNU
Public Licence).
ƒ A GPL é uma licença criada pela Free
Software Foundation (organização 
fundada por Richard Stallman) baseada 
nas liberdades que a entidade defende:
Conteúdo complementar –
Sistemas baseados em UNIX
ƒ Liberdade de executar o programa, para 
qualquer propósito (liberdade zero).
ƒ Liberdade de estudar como o programa 
funciona e adaptá-lo às suas 
necessidades (liberdade 1), sendo o 
acesso ao código-fonte um pré-requisito 
para esta aspecto.
ƒ Liberdade de distribuir cópias de forma 
que você possa ajudar ao seu próximo 
(liberdade 2).
ƒ Liberdade de melhorar o programa e 
liberar os seus aperfeiçoamentos, de 
modo que toda a comunidade se 
beneficie (liberdade três). 
Interatividade 
Dentre as opções abaixo, qual representa a 
melhor definição para Kernel?
a) Ele é o elemento responsável por 
controlar a distribuição da memória física 
do computador.
b) Parte de um Sistema Operacional que tem 
como tarefa o gerenciamento dos 
processos.
c) Kernel é um gerenciador de distribuições 
Linux.Linux.
d) Componente central de um Sistema 
Operacional.
e) Primeira versão de Unix.
ATÉ A PRÓXIMA!

Outros materiais