Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni124 pagine

Aula T1

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1/ 124

Introdução a

Sistemas
Operacionais
Prof.: Murilo Oliveira MACHADO
Agenda

1- Uma breve introdução


2- O que é um sistema operacional
3- História dos sistemas operacionais
4- Revisão sobre hardware de computadores
5- O zoológico dos sistemas operacionais
6- Conceitos de sistemas operacionais
7- Chamadas de sistema
Prof.: Murilo Oliveira MACHADO
Uma breve
Introdução

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Um computador moderno consiste em um ou mais processadores,
alguma memória principal, discos, impressoras, um teclado, um mouse,
um monitor, interfaces de rede e vários outros dispositivos de entrada e
saída.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Se todo programador de aplicativos tivesse de compreender como todas
essas partes funcionam em detalhe, nenhum código jamais seria escrito

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Por essa razão, computadores são equipados com um dispositivo de
software chamado de sistema operacional

Prof.: Murilo Oliveira MACHADO


Uma breve introdução

Exemplos de SO

Prof.: Murilo Oliveira MACHADO


Uma breve introdução

Exemplos de SO

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
O programa com o qual os usuários interagem, normalmente chamado de
shell (ou interpretador de comandos) quando ele é baseado em texto e
de GUI (Graphical User Interface) quando ele usa ícones.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
O programa com o qual os usuários interagem, normalmente chamado de
shell (ou interpretador de comandos) quando ele é baseado em texto e
de GUI (Graphical User Interface) quando ele usa ícones.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

O sistema
operacional, é a peça
mais fundamental de
software, opera em
modo núcleo
(também chamado
modo supervisor).

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

Nesse modo
usuário, no qual
apenas um
subconjunto das
instruções
da máquina está
disponível.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

Nesse modo ele tem


acesso completo a
todo o hardware
e pode realizar
qualquer instrução
que a máquina for
capaz de executar.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

Em particular,
aquelas instruções
que afetam o controle
da máquina ou
realizam
E/S (Entrada/Saída)
são proibidas para
programas de
modo usuário.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

Um usuário é livre
para conseguir um
app diferente ou
escrever o seu
próprio, se assim
quiser;

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

O usuário não é livre


para escrever seu
próprio tratador de
interrupção de
relógio, o qual faz
parte do sistema
operacional e é
protegido por
hardware.

Prof.: Murilo Oliveira MACHADO


Uma breve introdução
Onde o sistema operacional se encaixa

Sistemas
embarcados ou
interpretados (como
os baseados em
Java) podem não ter
o modo núcleo

Prof.: Murilo Oliveira MACHADO


O que é um
sistema
operacional?

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?

Um software, ou conjunto de softwares, cuja função é


administrar e gerenciar os recursos de um sistema,
desde componentes de hardware e sistemas de
arquivos a programas de terceiros, estabelecendo a
interface entre o computador e o usuário.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?

Um software, ou conjunto de softwares, cuja função é


administrar e gerenciar os recursos de um sistema,
desde componentes de hardware e sistemas de
arquivos a programas de terceiros, estabelecendo a
interface entre o computador e o usuário.

É difícil dizer com absoluta precisão o que é um sistema operacional


Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
→ A arquitetura (conjunto de instruções, organização de memória, E/S e
estrutura de barramento) da maioria dos computadores em nível de linguagem
de máquina é primitiva e complicada de programar, especialmente para
entrada/saída.

→ Nenhum programador são iria querer lidar com esse disco em nível de
hardware. Em vez disso, um software, chamado driver de disco, lida com o
hardware e fornece uma interface para ler e escrever blocos de dados, sem
entrar nos detalhes.

Sistemas operacionais contêm muitos drivers para controlar dispositivos de E/S.


Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
→ A arquitetura (conjunto de instruções, organização de memória, E/S e
estrutura de barramento) da maioria dos computadores em nível de linguagem
de máquina é primitiva e complicada de programar, especialmente para
entrada/saída.

→ Nenhum programador são iria querer lidar com esse disco em nível de
hardware. Em vez disso, um software, chamado driver de disco, lida com o
hardware e fornece uma interface para ler e escrever blocos de dados, sem
entrar nos detalhes.

Sistemas operacionais contêm muitos drivers para controlar dispositivos de E/S.


Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
→ A arquitetura (conjunto de instruções, organização de memória, E/S e
estrutura de barramento) da maioria dos computadores em nível de linguagem
de máquina é primitiva e complicada de programar, especialmente para
entrada/saída.

→ Nenhum programador são iria querer lidar com esse disco em nível de
hardware. Em vez disso, um software, chamado driver de disco, lida com o
hardware e fornece uma interface para ler e escrever blocos de dados,
sem entrar nos detalhes.

Sistemas operacionais contêm muitos drivers para controlar dispositivos de E/S.


Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
→ A arquitetura (conjunto de instruções, organização de memória, E/S e
estrutura de barramento) da maioria dos computadores em nível de linguagem
de máquina é primitiva e complicada de programar, especialmente para
entrada/saída.

→ Nenhum programador são iria querer lidar com esse disco em nível de
hardware. Em vez disso, um software, chamado driver de disco, lida com o
hardware e fornece uma interface para ler e escrever blocos de dados, sem
entrar nos detalhes.

Sistemas operacionais contêm muitos drivers para controlar dispositivos de E/S.


Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
Sistemas operacionais contêm muitos drivers para controlar dispositivos de E/S.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

→ Uma visão alternativa, bottom-up (abstração de baixo para cima),


sustenta que o sistema operacional está ali para gerenciar todas as
partes de um sistema complexo.

→ Aqui, a função do sistema operacional é fornecer uma alocação


ordenada e controlada dos processadores, memórias e dispositivos de
E/S entre os vários programas competindo por eles.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

→ Uma visão alternativa, bottom-up (abstração de baixo para cima),


sustenta que o sistema operacional está ali para gerenciar todas as
partes de um sistema complexo.

→ Aqui, a função do sistema operacional é fornecer uma alocação


ordenada e controlada dos processadores, memórias e dispositivos de
E/S entre os vários programas competindo por eles.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

→ Uma visão alternativa, bottom-up (abstração de baixo para cima),


sustenta que o sistema operacional está ali para gerenciar todas as
partes de um sistema complexo.

→ Aqui, a função do sistema operacional é fornecer uma alocação


ordenada e controlada dos processadores, memórias e
dispositivos de E/S entre os vários programas competindo por eles.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

O que aconteceria se três


programas executados em um
determinado computador
tentassem todos imprimir sua
saída simultaneamente
na mesma impressora
sem um SO ?

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

As primeiras linhas de
impressão poderiam ser do
programa 1, as seguintes do
programa 2, então algumas
do programa 3 e assim por
diante. O resultado seria o
caos absoluto.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
O gerenciamento de recursos
inclui a multiplexação
(compartilhamento) de recursos
de duas maneiras diferentes:
no tempo e no espaço.

Quando um recurso é
multiplexado no tempo, diferentes
programas ou usuários se
revezam.
Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
O gerenciamento de recursos
inclui a multiplexação
(compartilhamento) de recursos
de duas maneiras diferentes:
no tempo e no espaço.

Quando um recurso é
multiplexado no tempo, diferentes
programas ou usuários se
revezam.
Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
O gerenciamento de recursos
inclui a multiplexação
(compartilhamento) de recursos
de duas maneiras diferentes:
no tempo e no espaço.

Quando um recurso é
multiplexado no tempo,
diferentes programas ou
usuários se revezam.
Prof.: Murilo Oliveira MACHADO
O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

A CPU realiza
multiplexação no tempo
ou no espaço?

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

A CPU realiza
multiplexação no tempo
ou no espaço?

Multiplexação no tempo:
Compartilha o tempo

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida
Por exemplo, com apenas uma CPU
e múltiplos programas querendo
ser executados nela, o sistema
operacional primeiro aloca a CPU
para um programa, então, após ele
ter sido executado por tempo
suficiente, outro programa passa a
fazer uso da CPU, então outro, e
finalmente o primeiro
de novo.

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

A memória principal
realiza multiplexação no
tempo ou no espaço?

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

A memória principal
realiza multiplexação no
tempo ou no espaço?

Multiplexação no espaço:
Compartilha os bits

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

A memória principal é
normalmente dividida entre vários
programas sendo
executados, de modo que cada um
pode ser residente ao
mesmo tempo.

(A fim de se revezar usando a CPU).

Prof.: Murilo Oliveira MACHADO


O que é um sistema operacional?
O sistema operacional como uma máquina
estendida

Presumindo que há memória


suficiente para manter múltiplos
programas, é mais eficiente manter
vários programas na memória ao
mesmo tempo do que dar a um
deles toda ela, especialmente se o
programa precisa apenas de uma
pequena fração do total.

Prof.: Murilo Oliveira MACHADO


História dos
sistemas
operacionais

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
O primeiro computador verdadeiramente digital foi projetado pelo matemático
inglês Charles Babbage (1792–1871).

OBS: Não tinha um sistema operacional.

Babbage percebeu que ele precisaria de um software para sua máquina


analítica, então ele contratou uma jovem chamada Ada Lovelace, que era a
filha do famoso poeta inglês Lord Byron, como a primeira programadora do
mundo.

A linguagem de programação Ada® é uma homenagem a ela.


Prof.: Murilo Oliveira MACHADO
História dos sistemas
operacionais
A primeira geração (1945-1955): válvulas

O professor John Atanasoff e seu aluno de graduação Clifford Berry


construíram o que hoje em dia é considerado o primeiro computador digital
funcional na Universidade do Estado de Iowa. Ele usava 300 válvulas.

Konrad Zuse em Berlim construiu o computador Z3 a partir de relés


eletromagnéticos.

Em 1944, o Colossus foi construído e programado por um grupo de


cientistas (incluindo Alan Turing) em Bletchley Park, Inglaterra,
No início, um único grupo de pessoas
(normalmente engenheiros) projetava, construía,
programava, operava e mantinha cada máquina.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A segunda geração (1955-1965): transistores e sistemas em lote (batch)

Os computadores tornaram-se de tal maneira confiáveis que podiam ser


fabricados e vendidos para clientes dispostos a pagar por eles com a
expectativa de que continuariam a funcionar por tempo suficiente para
realizar algum trabalho útil.

Essas máquinas — então chamadas de computadores de grande porte


(mainframes) —, ficavam isoladas em salas grandes e climatizadas,
especialmente designadas para esse fim, com equipes de operadores pro-
fissionais para operá-las.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A segunda geração (1955-1965): transistores e sistemas em lote (batch)

Para executar uma tarefa [isto é, um programa ou conjunto de programas],


um programador primeiro escrevia o programa no papel [em FORTRAN ou
em linguagem de montagem (assembly)], então o perfurava nos cartões.

Muito tempo do computador era desperdiçado enquanto os operadores


caminhavam em torno da sala de máquinas.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A segunda geração (1955-1965): transistores e sistemas em lote (batch)

A solução geralmente adotada era o sistema em lote (batch).

A ideia por trás disso era reunir um lote de tarefas na sala de entradas e
então passá-lo para uma fita magnética.

Os cartões eram lidos para uma fita magnética.

A saída era escrita em uma segunda fita, em vez de ser impressa. Por fim,
a fita de saída era levada para impressora.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A segunda geração (1955-1965): transistores e sistemas em lote (batch)

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

→ Computadores científicos de grande escala, orientados por palavras, como


o 7094, usados para cálculos numéricos complexos na ciência e engenharia.

→ Computadores comerciais, orientados por caracteres, como o 1401, que


eram amplamente usados para ordenação e impressão de fitas por bancos e
companhias de seguro.

Desenvolver e manter duas linhas de produtos completamente diferentes era uma


proposição cara para os fabricantes.
Prof.: Murilo Oliveira MACHADO
História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

A IBM tentou solucionar ambos os problemas com uma única tacada


introduzindo o System/360.

→ O 360 era uma série de máquinas com softwares compatíveis, desde


modelos do porte do 1401 a modelos muito maiores, mais potentes que o
poderoso 7094.

O IBM 360 foi a primeira linha importante de computadores a usar CIs (circuitos
integrados) de pequena escala, proporcionando desse modo uma vantagem
significativa na relação preço/desempenho sobre as máquinas de segunda
geração, que foram construídas sobre transistores individuais.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

A IBM tentou solucionar ambos os problemas com uma única tacada


introduzindo o System/360.

→ O 360 era uma série de máquinas com softwares compatíveis, desde


modelos do porte do 1401 a modelos muito maiores, mais potentes que o
poderoso 7094.

A IBM apresentou sucessores compatíveis com a linha 360, usando tecnologias


mais modernas, conhecidas como as séries 370, 4300, 3080 e 3090

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

Popularizaram várias técnicas-chave ausentes nos sistemas operacionais de


segunda geração.

Talvez a mais importante dessas técnicas tenha sido a multiprogramação.

No 7094, quando a tarefa atual fazia uma pausa para esperar por uma fita ou
outra operação de E/S terminar, a CPU simplesmente ficava ociosa até o término
da E/S

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

A solução encontrada foi dividir a memória em várias partes,


com uma tarefa diferente em cada partição

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

PROBLEMA com tempo: uma única vírgula colocada fora do


lugar podia provocar a falha de uma compilação, e o
desperdício de metade do dia do programador.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A terceira geração (1965-1980): CIs e multiprogramação

PROBLEMA com tempo: uma única vírgula colocada fora do


lugar podia provocar a falha de uma compilação, e o
desperdício de metade do dia do programador.

SOLUÇÃO: Esse desejo por um tempo de resposta rápido abriu


o caminho para o timesharing (compartilhamento de tempo),
uma variante da multiprogramação, na qual cada usuário tem
um terminal on-line.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
DOS (Disk Operating System — sistema operacional de disco).

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
MS-DOS (MicroSoft Disk Operating System — Sistema operacional
de disco da Microsoft)
Prof.: Murilo Oliveira MACHADO
História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
MAC OS X

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
o Windows NT (em que o NT representa New Technology),

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
Windows 98, chamada Windows ME (Millenium Edition).

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quarta geração (1980-presente): computadores pessoais

Circuitos integrados em larga escala (Large Scale Integration —


LSI) — que são chips contendo milhares de transistores em um
centímetro quadrado de silicone —, surgiu a era do computador
moderno.

Em 1974, quando a Intel lançou o 8080, a primeira CPU de 8 bits


de uso geral, ela queria um sistema operacional para ele, em parte
para poder testá-lo.
FreeBSD

Prof.: Murilo Oliveira MACHADO


História dos sistemas
operacionais
A quinta geração (1990-presente): computadores móveis

O primeiro telefone verdadeiramente móvel foi criado na década de


1970 e, pesando cerca de um quilo, era positivamente um peso-
pena.

O primeiro smartphone de verdade não foi inventado até meados de


1990, quando a Nokia lançou o N9000, que literalmente combinava dois
dispositivos mormente separados: um telefone e um PDA (Personal
Digital Assistant — assistente digital pessoal).

Prof.: Murilo Oliveira MACHADO


Revisão sobre
hardware de
computadores
Revisão sobre hardware de
computadores

Prof.: Murilo Oliveira MACHADO


Revisão sobre hardware de
computadores
Processadores

Busca instruções da memória e as executa. O ciclo básico de toda


CPU é buscar a primeira instrução da memória, decodificá-la para
determinar o seu tipo e operandos, executá-la, e então buscar,
decodificar e executar as instruções subsequentes.

Todas as CPUs têm alguns registradores internos para armazenamento


de variáveis e resultados temporários.

Prof.: Murilo Oliveira MACHADO


Revisão sobre hardware de
computadores
Processadores
Além dos registradores gerais usados para armazenar variáveis e
resultados temporários, a maioria dos computadores tem vários
registradores especiais que são visíveis para o programador.

Um desses é o contador de programa, que contém o endereço de


memória da próxima instrução a ser buscada.

Outro registrador é o ponteiro de pilha, que aponta para o topo da pilha


atual na memória.

Prof.: Murilo Oliveira MACHADO


Revisão sobre hardware de
computadores
Processadores
Hoje uma CPU pode ter unidades de busca, decodificação e
execução separadas
Uma organização com essas características é chamada de pipeline

Prof.: Murilo Oliveira MACHADO


Revisão sobre hardware de
computadores
Processadores
Ainda mais avançada que um projeto de pipeline é uma CPU
superescalar
Nesse projeto, unidades múltiplas de execução estão presentes.

Prof.: Murilo Oliveira MACHADO


Revisão sobre hardware de
computadores
Processadores (Chips multithread e multinúcleo)
O Pentium 4 da Intel introduziu essa propriedade, chamada
multithreading ou hyperthreading (o nome da Intel para ela), ao
processador x86
O multithreading tem implicações para o sistema operacional, pois cada
thread aparece para o sistema operacional como uma CPU em
separado.

Além do multithreading, muitos chips de CPU têm agora quatro, oito


ou mais processadores completos ou núcleos neles.

Prof.: Murilo Oliveira MACHADO


O zoológico
dos sistemas
operacionais
O zoológico dos sistemas
operacionais
Sistemas operacionais de computadores de grande porte

No topo estão os sistemas operacionais para computadores de grande


porte (mainframes), aquelas máquinas do tamanho de uma sala ainda
encontradas nos centros de processamento de dados de grandes
corporações.

Computadores de grande porte também estão retornando de certa


maneira como servidores sofisticados da web, para sites de comércio
eletrônico em larga escala e para transações entre empresas (business-to-
business).

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de computadores de grande porte

Os sistemas operacionais para computadores de grande porte são


intensamente orientados para o processamento de muitas tarefas ao
mesmo tempo, a maioria delas exigindo quantidades prodigiosas de E/S.

Eles em geral oferecem três tipos de serviços: em lote (batch),


processamento de transações e tempo compartilhado (timesharing).

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de servidores

Eles são executados em servidores que são computadores pessoais muito


grandes, em estações de trabalho ou mesmo computadores de grande
porte.

Servem a múltiplos usuários ao mesmo tempo por meio de uma rede e


permitem que os usuários compartilhem recursos de hardware e software.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de multiprocessadores

Uma maneira cada vez mais comum de se obter potência computacional


para valer é conectar múltiplas CPUs a um único sistema.

Dependendo de como precisamente eles são conectados e o que é


compartilhado, esses sistemas são chamados de computadores paralelos,
multicomputadores ou multiprocessadores.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de computadores pessoais

Todos os computadores modernos dão suporte à multiprogramação,


muitas vezes com dezenas de programas iniciados no momento da inicia-
lização do sistema.

Exemplos comuns são o Linux, o FreeBSD, o Windows 7, o Windows 8 e


o OS X da Apple.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de computadores portáteis

Um computador portátil, originalmente conhecido como um PDA (Personal


Digital Assistant — assistente pessoal digital), é um computador pequeno
que pode ser seguro na mão durante a operação.

EX: Smartphones e tablets

A maioria deles conta com CPUs multinúcleo, GPS, câmeras e outros


sensores, quantidades enormes de memória e sistemas operacionais
sofisticados.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais embarcados

São executados em computadores que controlam dispositivos que não


costumam ser vistos como computadores e que não aceitam softwares
instalados pelo usuário.

Exemplos: Fornos de micro-ondas, os aparelhos de televisão, os carros,


os aparelhos de DVD, os telefones tradicionais e os MP3 players.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais embarcados

São executados em computadores que controlam dispositivos que não


costumam ser vistos como computadores e que não aceitam softwares
instalados pelo usuário.

Exemplos: Fornos de micro-ondas, os aparelhos de televisão, os carros,


os aparelhos de DVD, os telefones tradicionais e os MP3 players.

A principal propriedade que distingue sistemas embarcados dos portáteis é a


certeza de que nenhum software não confiável vá ser executado nele um dia.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de nós sensores (sensor-node)
Esses nós são computadores minúsculos que se comunicam entre si e
com uma estação-base usando comunicação sem fio.

Os sensores são computadores pequenos movidos a bateria com rádios


integrados.

Cada nó sensor é um computador verdadeiro, com uma CPU, RAM, ROM


e um ou mais sensores ambientais

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de nós sensores (sensor-node)
Esses nós são computadores minúsculos que se comunicam entre si e
com uma estação-base usando comunicação sem fio.

Os sensores são computadores pequenos movidos a bateria com rádios


integrados.

Cada nó sensor é um computador verdadeiro, com uma CPU, RAM, ROM


e um ou mais sensores ambientais

O sistema operacional tem de ser pequeno e simples, pois os nós


têm uma RAM pequena
Prof.: Murilo Oliveira MACHADO
O zoológico dos sistemas
operacionais
Sistemas operacionais de tempo real
Esses sistemas são caracterizados por ter o tempo como um parâmetro-
chave.

Por exemplo, em sistemas de controle de processo industrial,


computadores em tempo real têm de coletar dados a respeito do processo
de produção e usá-los para controlar máquinas na fábrica.

Os sistemas de tempo real executam apenas softwares inseridos pelos


projetistas do sistema; usuários não podem acrescentar seu próprio
software.

Prof.: Murilo Oliveira MACHADO


O zoológico dos sistemas
operacionais
Sistemas operacionais de cartões inteligentes (smartcard)

Os menores sistemas operacionais são executados em cartões


inteligentes, que são dispositivos do tamanho de cartões de crédito
contendo um chip de CPU.

Alguns obtêm energia por contatos no leitor no qual estão inseridos, mas
cartões inteligentes sem contato obtêm energia por indução, o que limita
muito o que eles podem fazer.

Prof.: Murilo Oliveira MACHADO


Conceitos de
sistemas
operacionais
Conceitos de sistemas
operacionais
Processos
Um processo é basicamente um programa em execução. Associado a
cada processo está o espaço de endereçamento, uma lista de
posições de memória que vai de 0 a algum máximo, onde o processo
pode ler e escrever.

O espaço de endereçamento contém o programa executável, os


dados do programa e sua pilha.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Processos
Quando um processo é suspenso temporariamente assim, ele deve
ser reiniciado mais tarde no exato mesmo estado em que estava
quando foi parado.

Isso significa que todas as informações a respeito do processo


precisam ser explicitamente salvas em algum lugar durante a
suspensão.

As principais chamadas de sistema de gerenciamento de processos são as


que lidam com a criação e o término de processos.
Prof.: Murilo Oliveira MACHADO
Conceitos de sistemas
operacionais
Processos
Considere um processo chamado de interpretador de comandos:

O shell tem de criar agora um novo processo que vai executar o


compilador.

Quando esse processo tiver terminado a compilação, ele executa uma


chamada de sistema para se autofinalizar.

Se um processo pode criar um ou mais processos (chamados de processos filhos), e estes por sua vez
podem criar processos filhos, chegamos logo à estrutura da árvore de processo

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Processos
Se um processo pode criar um ou mais processos (chamados de
processos filhos), e estes por sua vez podem criar processos filhos,
chegamos logo à estrutura da árvore de processo

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Processos
A cada pessoa autorizada a usar um sistema é designada uma UID
(User IDentification — identificação do usuário) pelo administrador
do sistema.
Usuários podem ser
Um processo membros de grupos,
filho tem a cada qual
mesma UID com uma GID (Group
que o seu IDentification —
processo identificação
pai. do grupo).

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Processos
A cada pessoa autorizada a usar um sistema é designada uma UID
(User IDentification — identificação do usuário) pelo administrador
do sistema.
Uma UID, chamada de
superusuário (em
UNIX), ou Administrador
(no Windows), tem um
poder especial e pode
passar por cima de
muitas das regras de
proteção.
Prof.: Murilo Oliveira MACHADO
Conceitos de sistemas
operacionais
Espaços de endereçamento

Em geral, cada processo tem algum conjunto de endereços que ele


pode usar, tipicamente indo de 0 até algum máximo.

No caso mais simples, a quantidade máxima de espaço de endereços


que um processo tem é menor do que a memória principal.

Um processo pode preencher todo o seu espaço de endereçamento e haverá espaço


suficiente na memória principal para armazená-lo inteiramente.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Arquivos
Para fornecer um lugar para manter os arquivos, a maioria dos
sistemas operacionais de PCs tem o conceito de um diretório como
uma maneira de agrupar os arquivos.

Ambas as hierarquias de processos e arquivos são organizadas como


árvores, mas a similaridade para aí.
→ Hierarquias de processos em geral não são muito profundas (mais do que três
níveis é incomum).

→ Hierarquias de arquivos costumam ter quatro, cinco, ou mesmo mais níveis de


profundidade.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Arquivos
Para fornecer um lugar para manter os arquivos, a maioria dos
sistemas operacionais de PCs tem o conceito de um diretório como
uma maneira de agrupar os arquivos.

Ambas as hierarquias de processos e arquivos são organizadas como


árvores, mas a similaridade para aí.
→ Hierarquias de processos tipicamente têm vida curta, em geral minutos no
máximo.

→ Hierarquias de diretórios podem existir por anos.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Arquivos

Todo arquivo dentro de


uma hierarquia de
diretório pode ser
especificado
fornecendo o seu
nome de caminho

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Arquivos
Outro conceito importante em UNIX é o de montagem do
sistema de arquivos. (mount)
Para lidar com uma mídia removível, a UNIX permite que o sistema
de arquivos no disco ótico seja agregado à árvore principal.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Arquivos
Um pipe é uma espécie de pseudoarquivo que pode ser usado
para conectar dois processos
Quando o processo A quer enviar dados para o processo B, ele
escreve no pipe como se ele fosse um arquivo de saída.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Entrada/Saída
Existem muitos tipos de dispositivos de entrada e de saída,
incluindo teclados, monitores, impressoras e assim por diante.
Cabe ao sistema operacional gerenciá-los.

Todo sistema operacional tem um subsistema de E/S para


gerenciar os dispositivos de E/S.

Alguns softwares de E/S são independentes do dispositivo, isto é,


aplicam-se igualmente bem a muitos ou a todos dispositivos de
E/S.

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
Proteção
Cabe ao sistema operacional gerenciar a segurança do sistema
de maneira que os arquivos, por exemplo, sejam acessíveis
somente por usuários autorizados.

Arquivos em UNIX são protegidos designando-se a cada arquivo


um código de proteção binário de 9 bits divididos em 3 campos.
→ 3 bits para o proprietário

→ 3 bits para os outros membros do grupo do proprietário


(usuários são divididos em grupos pelo administrador do sistema)

→ 3 bits para todos os demais usuários.


Prof.: Murilo Oliveira MACHADO
Conceitos de sistemas
operacionais
Proteção
Esses 3 bits são conhecidos como os bits rwx

O código de proteção rwxr-x--x significa que o proprietário pode


ler (read “r”), escrever (write“w”), ou executar (execute“x”) o
arquivo

Que outros membros do grupo podem ler ou executar (mas não


escrever “r-x”) o arquivo e que todos os demais podem executar
(mas não ler ou escrever “--x”) o arquivo

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
O interpretador de comandos (shell)
O sistema operacional é o código que executa as chamadas
de sistema.

→ Editores, compiladores, montadores, ligadores


(linkers), programas utilitários e interpretadores de
comandos definitivamente não fazem parte do sistema
operacional (mas são importantes para o SO)

Prof.: Murilo Oliveira MACHADO


Conceitos de sistemas
operacionais
O interpretador de comandos (shell)

É a principal interface entre um usuário sentado no seu


terminal e o sistema operacional, a não ser que o usuário
esteja usando uma interface de usuário gráfica

O sistema operacional é o código que executa as chamadas


de sistema.

Prof.: Murilo Oliveira MACHADO


Chamadas de
sistema
Chamadas de sistema

Sistemas operacionais têm duas funções principais:

→ Fornecer abstrações para os programas de usuários

→ Gerenciar os recursos do computador


As chamadas de sistema disponíveis na interface variam de um sistema
para outro (embora os conceitos subjacentes tendam a ser similares).

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema

Sistemas operacionais têm duas funções principais:

→ Fornecer abstrações para os programas de usuários

→ Gerenciar os recursos do computador


As chamadas de sistema disponíveis na interface variam de um sistema
para outro (embora os conceitos subjacentes tendam a ser similares).
Temos que fazer uma escolha entre:

(1) Generalidades vagas (“sistemas operacionais têm chamadas de sistema para ler arquivos”)

(2) Algum sistema específico (“UNIX possui uma chamada de sistema read com três parâmetros: um para
especificar o arquivo, um para dizer onde os dados devem ser colocados e outro para dizer quantos bytes
devem ser lidos”).
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema

Sistemas operacionais têm duas funções principais:

→ Fornecer abstrações para os programas de usuários

→ Gerenciar os recursos do computador


As chamadas de sistema disponíveis na interface variam de um sistema
para outro (embora os conceitos subjacentes tendam a ser similares).
Temos que fazer uma escolha entre:

(1) Generalidades vagas (“sistemas operacionais têm chamadas de sistema para ler arquivos”)

(2) Algum sistema específico (“UNIX possui uma chamada de sistema read com três parâmetros: um para
especificar o arquivo, um para dizer onde os dados devem ser colocados e outro para dizer quantos bytes
devem ser lidos”).
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Qualquer computador de uma única CPU pode executar apenas uma
instrução de cada vez.

→ Se um processo estiver executando um programa de


usuário em modo de usuário e precisa de um serviço de sistema, como
ler dados de um arquivo, ele tem de executar uma instrução de
armadilha (trap) para transferir o controle para o sistema operacional.

Então O SO executa a chamada de sistema e retorna o controle para a


instrução seguinte à chamada de sistema.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Qualquer computador de uma única CPU pode executar apenas uma
instrução de cada vez.

→ Se um processo estiver executando um programa de


usuário em modo de usuário e precisa de um serviço de sistema, como
ler dados de um arquivo, ele tem de executar uma instrução de
armadilha (trap) para transferir o controle para o sistema operacional.

Então O SO executa a chamada de sistema e retorna o controle para


a instrução seguinte à chamada de sistema.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Qualquer computador de uma única CPU pode executar apenas uma
instrução de cada vez.

→ Se um processo estiver executando um programa de


usuário em modo de usuário e precisa de um serviço de sistema, como
ler dados de um arquivo, ele tem de executar uma instrução de
armadilha (trap) para transferir o controle para o sistema operacional.

Então O SO executa a chamada de sistema e retorna o controle para a


instrução seguinte à chamada de sistema.

** De certa maneira, uma chamada de sistema é um tipo especial de chamada de


rotina, apenas que as chamadas de sistema entram no núcleo e as chamadas de
rotina, não.
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Ex: A chamada de sistema read possui três parâmetros: 1-Primeiro
especificando o arquivo; 2- Segundo é um ponteiro para o buffer; 3- Terceiro
dá o número de bytes a ser lido

O programa de
chamada primeiro
empilha os parâmetros:

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Ex: A chamada de sistema read possui três parâmetros: 1-Primeiro
especificando o arquivo; 2- Segundo é um ponteiro para o buffer; 3- Terceiro
dá o número de bytes a ser lido

O programa de
chamada primeiro
empilha os parâmetros:

Os compiladores C e C++ empilham os


parâmetros em ordem inversa

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Ex: A chamada de sistema read possui três parâmetros: 1-Primeiro
especificando o arquivo; 2- Segundo é um ponteiro para o buffer; 3- Terceiro
dá o número de bytes a ser lido

O programa de
chamada primeiro
empilha os parâmetros:
O primeiro e o terceiro parâmetros são
chamados por valor, mas o segundo
parâmetro é passado por referência,
significando que o endereço do buffer
(indicado por &) é passado, não seu
conteúdo.
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Chamadas de sistema para gerenciamento de processos
Considere o caso do shell. Ele lê um comando do terminal, cria um processo
filho, espera que ele execute o comando e então lê o próximo comando quando o
processo filho termina. Para esperar que o processo filho termine, o processo pai
executa uma chamada de sistema waitpid, que apenas espera até o processo
filho terminar (qualquer processo filho se mais de um existir).

A chamada fork é a única maneira para se criar um processo novo


Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Chamadas de sistema para gerenciamento de processos
Um shell simplificado ilustrando o uso de fork, waitpid e execve

A chamada fork é a única maneira para se criar um processo novo


Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Chamadas de sistema para gerenciamento de processos

Vamos considerar o caso de um comando como usado para copiar o fd1


para o fd2 (cp fd1 fd2)

Após o shell ter criado o processo filho, este localiza e executa o arquivo
cp e passa para ele os nomes dos arquivos de origem (fd1) e de destino
(fd2).
O programa principal de cp (e programa principal da maioria dos
outros programas C) contém a declaração: main(argc, argv, envp)

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de processos

Vamos considerar o caso de um comando como usado para copiar o fd1


para o fd2 (cp fd1 fd2)

Após o shell ter criado o processo filho, este localiza e executa o arquivo
cp e passa para ele os nomes dos arquivos de origem (fd1) e de destino
(fd2).
O programa principal de cp (e programa principal da maioria dos
outros programas C) contém a declaração: main(argc, argv, envp)

argc→ é uma contagem do número de itens na linha de comando,


incluindo o nome do programa. Para o exemplo, argc é 3.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de processos

Vamos considerar o caso de um comando como usado para copiar o fd1


para o fd2 (cp fd1 fd2)

Após o shell ter criado o processo filho, este localiza e executa o arquivo
cp e passa para ele os nomes dos arquivos de origem (fd1) e de destino
(fd2).
O programa principal de cp (e programa principal da maioria dos
outros programas C) contém a declaração: main(argc, argv, envp)

argv → é um ponteiro para um arranjo. O elemento i do arranjo é um


ponteiro para a i-ésima cadeia de caracteres na linha de comando.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de processos

Vamos considerar o caso de um comando como usado para copiar o fd1


para o fd2 (cp fd1 fd2)

Após o shell ter criado o processo filho, este localiza e executa o arquivo
cp e passa para ele os nomes dos arquivos de origem (fd1) e de destino
(fd2).
O programa principal de cp (e programa principal da maioria dos
outros programas C) contém a declaração: main(argc, argv, envp)

Em nosso exemplo, argv[0] apontaria para a cadeia de caracteres “cp”,


argv[1] apontaria para a “fd1” e argv[2] apontaria para a “fd2”.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de processos

Vamos considerar o caso de um comando como usado para copiar o fd1


para o fd2 (cp fd1 fd2)

Após o shell ter criado o processo filho, este localiza e executa o arquivo
cp e passa para ele os nomes dos arquivos de origem (fd1) e de destino
(fd2).
O programa principal de cp (e programa principal da maioria dos
outros programas C) contém a declaração: main(argc, argv, envp)

envp→ é um ponteiro para o ambiente, um arranjo de cadeias de


caracteres contendo atribuições da forma nome = valor como o tipo de
terminal e o nome do diretório home para programas.
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Chamadas de sistema para gerenciamento de arquivos

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de arquivos

As chamadas mais intensamente usadas são : read e write.

Associado a cada arquivo há um ponteiro que indica a posição atual no


arquivo.

Quando lendo (escrevendo) sequencialmente, ele em geral aponta para


o próximo byte a ser lido (escrito).

A chamada lseek muda o valor do ponteiro de posição, de maneira que chamadas


subsequentes para ler ou escrever podem começar em qualquer parte no arquivo.
Prof.: Murilo Oliveira MACHADO
Chamadas de sistema
Chamadas de sistema para gerenciamento de arquivos

Lseek tem três parâmetros:

→ Primeiro é o descritor de arquivo para o arquivo

→ Segundo é uma posição do arquivo

→ Terceiro diz se a posição do arquivo é relativa ao começo, à posição


atual ou ao fim do arquivo.

O valor retornado por lseek é a posição absoluta no arquivo (em bytes)


após mudar o ponteiro.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de diretórios

Se relacionam mais aos diretórios ou o sistema de arquivos como um


todo, em vez de apenas um arquivo específico como na seção
anterior.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de diretórios

As primeiras duas chamadas, mkdir e rmdir, criam e removem diretórios


vazios, respectivamente.

A chamada link permiti que o mesmo arquivo apareça sob dois ou mais
nomes, muitas vezes em diretórios diferentes.

Um uso típico é permitir que vários membros da mesma equipe de


programação compartilhem um arquivo comum, com cada um
deles tendo o arquivo aparecendo no seu próprio diretório,
possivelmente sob nomes diferentes.

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de diretórios
Ex: Chamada link

Aqui há dois usuários, ast e jim, cada um com o seu próprio diretório
com alguns arquivos.
Se ast agora executa um programa contendo a chamada de sistema:
link(“/usr/jim/memo”, “/usr/ast/note”);

Prof.: Murilo Oliveira MACHADO


Chamadas de sistema
Chamadas de sistema para gerenciamento de diretórios
Ex: Chamada link

Aqui há dois usuários, ast e jim, cada um com o seu próprio diretório
com alguns arquivos.
o arquivo memo no diretório de jim estará aparecendo agora no diretório de ast sob o
nome note.
O que link faz é nada mais
que criar uma entrada de
diretório nova com um
nome (possivelmente
novo), usando o i-número
de um arquivo existente.

Prof.: Murilo Oliveira MACHADO

Potrebbero piacerti anche