Buscar

02Definição Histórico e Classificação de Sistemas Operacionais 20181

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

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

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ê viu 3, do total de 28 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

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

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ê viu 6, do total de 28 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

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

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ê viu 9, do total de 28 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

Prévia do material em texto

SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
luizdimarcello@gmail.com
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
AULA 1 - OBJETIVOS GERAIS
❖ Entender as funções de um sistema operacional
❖ Entender a posição que um sistema operacional ocupa em
um sistema computacional
❖ Conhecer os componentes de um sistema operacional
❖ Conhecer a evolução histórica dos sistemas operacionais
❖ Diferenciar os tipos de sistemas operacionais existentes
❖ Compreender a importância de conhecer o funcionamento
de um sistema operacional para solução de problemas
SISTEMAS OPERACIONAIS
O HARDWARE E O SISTEMA OPERACIONAL
✓ Você comprou os componentes e montou o computador
✓ Você o ligou na tomada e pressionou o botão POWER
✓ Ele começa a inicialização do sistema e… o computador
não está “operacional” para utilização
✓ Falta instalar o Sistema Operacional
SISTEMAS OPERACIONAIS
✓ Montar o hardware: conexão 
dos componentes físicos
✓ Ligar na tomada: 
energização da placa-mãe e 
componentes
✓ Ocorre o boot: série de 
processos responsáveis 
pela inicialização do 
computador https://www.tecmundo.com.br/aumentar-desempenho/11266-como-
funciona-o-boot-de-um-computador.htm
O HARDWARE E O SISTEMA OPERACIONAL
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
DEFINIÇÃO DE SISTEMA OPERACIONAL
É um conjunto de programas responsável pela gerência de recursos de 
hardware, segurança de acesso e utilização e interface com os usuários
USUÁRIOS
HARDWARE
UCP
DISPOSITIVOS
DE E/S
MEMÓRIA
PRINCIPAL
PROGRAMADORES
SISTEMAS E APLICATIVOS
BANCOS DE DADOS
OUTROS USUÁRIOS
• MS-DOS
• WINDOWS 3.11, 95/98, XP, VISTA, 7, 8, 10
• LINUX (MANDRIVA, UBUNTU, FEDORA)
• mac-OS High Sierra
• iPhone OS11, Android 8, Windows 10 Mobile
PROCESSADORES/UCP/CPU
• INTEL: ATOM, CELERON, i3, i5, i7
• AMD: ATHLON, TURION, X2, SEMPRON
• Apple A9, Samsung Exynos, Qualcomm
Snapdragon
SISTEMA
OPERACIONAL
DEVICE DRIVERS
SO
FT
W
A
R
E
PODER DE
PROCESSAMENTO
TROCA E
ARMAZENAMENTO
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
OUTRAS DEFINIÇÕES
✓ Conjunto de programas indispensáveis ao funcionamento do 
computador, cuja função é: 1) servir de interface (ligação, elo) 
entre o homem e a máquina; 2) fazer a comunicação entre o 
usuário, o computador e seus periféricos
✓ Conjunto de rotinas executadas pelo processador, da mesma 
forma que os nossos programas. Controla o funcionamento do 
computador, como um gerente dos vários recursos disponíveis no 
sistema
Por ser um conjunto de programas 
precisa da CPU para executar !
Lembre-se disso !
Que tal assistirmos a um vídeo...
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
Gerenciador
de Processos
Gerenciador
de Memória Gerenciador
de Disco
Gerenciador
de Rede
Gerenciador
de E / S
Gerenciador
de Arquivos
Sistema de
Proteção
Sistema 
Interpretador 
de Comandos
COMPONENTES DE UM SISTEMA
SISTEMA
OPERACIONAL
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
executa espera espera
Tempo
MONOTAREFA
Tempo
MULTITAREFA
espera esperaPrograma A
espera esperaPrograma B espera executaexecuta
executaexecuta
CONCORRENTE ≠ SIMULTÂNEO
CLASSIFICAÇÃO DE SISTEMAS
executaPrograma A
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
❖ Processador, memória principal e dispositivos de E/S 
(periféricos) ficam dedicados a um único 
usuário/programa.O sistema operacional só tem capacidade 
de controlar e gerenciar um programa de cada vez
❖ Os programas são executados instrução-a-instrução, até 
que seu processamento seja concluído, ou seja, todos os 
recursos da máquina são alocados para um único programa 
até a conclusão de sua execução 
❖ São de simples implementação, se comparados a outros 
sistemas, não havendo muita preocupação com problemas de 
proteção, pois só existe um usuário/programa utilizando-o
CLASSIFICAÇÃO DE SISTEMAS: MONOTAREFA
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
❖ Os recursos da máquina são alocados de modo dinâmico entre o 
número de programas ativos de acordo com o nível de prioridade 
ou o estágio de execução de cada um dos programas. O sistema 
operacional gerencia o acesso concorrente aos seus diversos 
recursos, de forma ordenada e protegida
❖ São mais complexos e eficientes do que os sistemas monotarefa, 
já que vários programas utilizam os mesmos recursos. Existem 
vários tipos de gerenciamento das aplicações (gerência/interação 
com usuários) nesses sistemas:
❖ BATCH (LOTE) - Os programas quando executados são armazenados 
em disco ou fita, onde esperam para serem ‘atendidos’. 
Normalmente, esses programas (jobs) não exigem interação com os 
usuários (por exemplo, compilações e linkedições)
CLASSIFICAÇÃO DE SISTEMAS: MULTITAREFA
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
❖ TIME-SHARING (TEMPO-COMPARTILHADO) - O sistema operacional 
aloca uma ‘fatia de tempo’ (time-slice) do processador para cada 
usuário. Caso o programa do usuário não esteja concluído nesse 
intervalo de tempo, ele é substituído por um de outro usuário, e fica 
esperando por uma nova fatia de tempo. Permitem a interação dos 
usuários com o sistema
❖ REAL-TIME (TEMPO-REAL) - Semelhante ao time-sharing, sendo a 
maior diferença o tempo de resposta exigido na execução. Enquanto 
em sistemas de tempo compartilhado o tempo de resposta pode 
variar sem comprometer as aplicações em execução, nos sistemas de 
tempo real os tempos de resposta devem estar dentro de limites 
rígidos. Não existe a idéia de fatia de tempo, um programa executa o 
tempo que for necessário, ou até que apareça outro prioritário em 
função de sua importância
CLASSIFICAÇÃO DE SISTEMAS: MULTITAREFA
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CLASSIFICAÇÃO DE SISTEMAS
MONOUSUÁRIO
USUÁRIO = GENTE e NÃO PROGRAMA!
TODO SISTEMA MULTIUSUÁRIO É 
OBRIGATORIAMENTE MULTITAREFA
MULTIUSUÁRIO
SIGNIFICA MAIS DE UMA PESSOA NO 
MESMO SISTEMA INTERAGINDO 
SIMULTANEAMENTE
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
❖ MONOPROCESSADO: Único processador, sendo este controlado pelo 
sistema operacional instalado
❖ MULTIPROCESSADO: 
▪ Possui mais de um processador, sendo que estes podem compartilhar 
o mesmo sistema operacional, ou cada um pode possuir o seu próprio 
sistema
▪ Permite que vários programas sejam executados ao mesmo tempo, ou 
que um programa seja dividido em subprogramas/threads, para 
execução simultânea por mais de um processador. 
▪ Possibilitam aumentar a capacidade computacional com menor custo 
(escalabilidade), permitem a reconfiguração (sistema continua o 
processamento, mesmo se um dos processadores falhar ou parar de 
funcionar) e o balanceamento (distribuição da carga de 
processamento)
CLASSIFICAÇÃO DE SISTEMAS: PROCESSADORES
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
❖ MULTIPROCESSADO:
▪ Valem todos os conceitos de multitarefa para os vários processadores
▪ Surgem novos problemas de concorrência, pois vários processadores, 
por exemplo, podem estar acessando as mesmas áreas de memória
▪ Existem diferentes forma de comunicação entre esses processadores 
e também diferentes graus de compartilhamento da memória principal 
e dos dispositivos de E/S:
➢ fortemente acoplados – dois ou mais compartilhando uma única 
memória e controlados por apenas um único sistema operacional
➢ fracamente acoplados – caracterizam-se por possuir dois ou mais 
processadores (multicomputadores), conectados e com 
funcionamento independente. Podem ser controlados por sistemas 
operacionais diferentes (ex.: cluster)
CLASSIFICAÇÃO DE SISTEMAS: PROCESSADORES
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
AULA 2 - OBJETIVOSGERAIS
❖ Compreender os fundamentos de sistemas concorrentes
❖ Entender a importância e o funcionamento dos 
mecanismos de interrupção
❖ Entender o funcionamento de uma chamada ao sistema 
(“system call”) 
❖ Identificar as estruturas existentes de sistemas 
operacionais
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
O hardware sozinho não tem utilidade, tornando-se necessária a existência 
de um conjunto de programas relacionado mais diretamente com os 
serviços do sistema operacional, possibilitando inclusive a criação de 
aplicativos pelos usuários desenvolvedores de sistemas (programadores)
TRADUTOR
❖ O surgimento das primeiras linguagens de montagem, e das linguagens 
de alto nível, diminuiu a necessidade de conhecimento de hardware por 
parte do programador, quando os programas eram desenvolvidos em 
linguagem de máquina
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
❖Apesar das facilidades para o programador, os programas escritos 
nessas linguagens (código fonte) não estão prontos para serem 
diretamente executados pelo processador, que só consegue executar 
instruções escritas em linguagem de máquina
❖ A conversão de linguagem de montagem ou alto nível para linguagem 
de máquina é iniciada pelo software denominado tradutor, onde toda 
representação simbólica é traduzida para código de máquina. O código 
gerado pelo tradutor é denominado código objeto, que, apesar de estar 
em código de máquina, ainda não é executável
❖ O tradutor, dependendo da linguagem de programação utilizada que 
esteja sendo transformada, pode ser chamado de montador (linguagens 
de montagem - Assembly) ou compilador (linguagens de alto nível –
Pascal, C, C++)
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
❖ Exemplo: O Assembly é uma linguagem de montagem formada por 
símbolos alfabéticos. Foi a primeira evolução para tornar os programas 
mais representativos da intenção do programador e, portanto, mais 
inteligível
❖ O montador Assembler é 
desenvolvido para entender as 
instruções de um processador 
específico (Pentium, por 
exemplo) e converte-las em 
código binário (instruções de 
máquina) daquele processador. 
Sendo assim, não se pode 
utilizar o montador para 
programas escritos na 
linguagem Assembly de outro 
processador
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
INTERPRETADOR
❖ Tradutor que não gere código objeto e que a partir de um programa em 
código fonte, escrito em linguagem de alto nível, traduz cada instrução e a 
executa em seguida
❖ Desvantagem: tempo gasto na tradução das instruções de um programa 
toda vez que este for executado, já que não existe a geração de código 
executável (Basic, Java)
LINKER (LINKEDITOR, LINKAGE EDITOR)
❖ Responsável por gerar a partir de um ou mais módulos objeto, um único 
programa executável
❖ Resolver todas as referências simbólicas existentes entre os módulos e 
reservar memória para a execução do programa (relocação). De início o 
programa executável gerado somente podia ser carregado em uma 
determinada região da memória (código absoluto), o que inviabilizava a 
multitarefa
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
LOADER
❖ Também chamado de carregador, é o utilitário que carrega/leva o 
programa para a memória principal para que este seja então executado
❖ Como pudemos constatar anteriormente, o procedimento de carga varia 
com o código gerado pelo linker, que em função disso é classificado como 
sendo do tipo absoluto ou relocável
DEPURADOR
❖ Todos sabemos que os programadores podem cometer erros de lógica no 
desenvolvimento de programas
❖ O depurador (debugger) permite ao usuário controlar toda a execução de 
um programa a fim de depurá-lo/torná-lo puro/detectar erros, através de 
alguns recursos: acompanhamento da execução instrução por instrução; 
monitoramento e alteração do conteúdo das variáveis (watchpoint); 
implementação de pontos de parada no decorrer da execução do programa 
(breakpoint)
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
LINGUAGEM DE CONTROLE OU DE COMANDO
❖ É a forma mais direta de um usuário se comunicar com o sistema 
operacional, possibilitando ao usuário acesso a rotinas específicas do 
sistema
❖ Os comandos quando digitados pelo usuário são interpretados por um 
programa denominado interpretador de comandos ou shell, que verifica a 
sintaxe do comando, envia mensagens de erro e faz chamadas na rotinas do 
sistema
❖ A evolução de tais linguagens originam as interfaces gráficas e no futuro, 
com a introdução das linguagens naturais, os sistemas passarão a 
reconhecer comandos falados e escritos, como fazemos habitualmente em 
nosso dia-a-dia
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
CONCEITOS DE SOFTWARE (RELEMBRANDO...)
Aplicativos
Utilitários
Sistema Operacional
Linguagem de Máquina
Microprogramação
Hardware (lógica digital)
H
A
R
D
W
A
R
E
L
IN
G
U
A
G
E
N
S
 D
E
P
R
O
G
R
A
M
A
Ç
Ã
O
 E
 O
S
IS
T
E
M
A
 O
P
E
R
A
C
IO
N
A
L
LINGUAGEM DE MÁQUINA
❖ É a linguagem de programação que o 
processador realmente consegue 
entender
❖ Cada processador possui um 
conjunto único de instruções de 
máquina definido pelo fabricante, que 
especifica detalhes, como 
registradores, modos de 
endereçamento e tipos de dados
❖ O programa nessa linguagem é 
totalmente codificado em formato 
binário
❖ A figura ao lado mostra o conceito 
de máquina de níveis
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
SISTEMAS MULTITAREFA
✓ Sistema multitarefa  Programas executados concorrentemente 
Ganho considerável na utilização do processador, memória, periféricos 
e no tempo de reposta é considerável  Maior complexidade do 
sistema operacional
✓ O sistema operacional multitarefa ao executar os programas (código 
executável) simplesmente não os leva para memória e pronto 
Necessita de alguns controles que permitem que esses programas sejam 
executados de forma ordenada, sem que um invada a área dos outros, 
ou mesmo, quando a execução de um deles seja interrompida, ele 
volte a executar do ponto onde ocorreu essa parada
✓ Estrutura de controle criada e mantida pelo sistema operacional para 
que os processos sejam mantidos em execução (nome, prioridade, 
contexto, estado, arquivos abertos, etc.) por ele, chamamos de 
processo (estudaremos mais adiante)
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
SISTEMAS MULTITAREFA
✓ Um sistema operacional, de uma maneira geral, busca:
▪ OTIMIZAR A UTILIZAÇÃO DA UCP – o processador deve permanecer a 
maior parte do seu tempo ocupado. Este recurso deve ser aproveitado 
da melhor forma possível pelos processos em execução;
▪ AUMENTAR O THROUGHPUT – o número de processos executados em 
um determinado intervalo de tempo (throughput) deve ser sempre 
aumentado;
▪ DIMINUIR OS TEMPOS DE TURNAROUND DOS PROCESSOS – o tempo que 
o processo leva desde a sua criação até o seu término (turnaround) 
deve ser diminuído, ou seja, o processo deve ser atendido o mais 
rápido possível;
▪ TORNAR RAZOÁVEL O TEMPO DE RESPOSTA – o tempo decorrido do 
momento da submissão de um pedido ao sistema até a resposta ser 
produzida, ou seja, o tempo gasto até o retorno de uma resposta pelo 
sistema, geralmente limitado pela velocidade do dispositivo de saída.
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFAE/S CONTROLADA POR PROGRAMA
❖ O controle das operações de E/S era feito pela UCP
❖ Os programas continham instruções de E/S e o programador 
necessitava conhecer detalhes específicos de cada periférico
❖ Posteriormente, surge o controlador (ou interface), e a UCP não se 
comunica mais de forma direta com os dispositivos de E/S
COMO VERIFICAR O TÉRMINO DA OPERAÇÃO?
BUSY WAIT
✓A UCP sincroniza com o dispositivo de E/S o início da transferência 
de dados e, após iniciada esta transferência, o sistema ficava 
PERMANENTEMENTE testando o estado do dispositivo para saber se a 
operação tinha chegado ao final. Desta forma a UCP mantinha-se 
ocupada até o término da operação de E/S, caracterizando um 
procedimento de "espera ocupada" (busy wait), desperdiçando-se 
tempo precioso para execução de outros programas
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA
COMO VERIFICAR O TÉRMINO DA OPERAÇÃO?
POLLING
✓ Após o início da transferência de dados, a UCP ficava livre para se 
ocupar de outras tarefas, sendo o sistema operacional responsável 
por realizar um teste PERIODICAMENTE para saber do término ou não 
da operação de E/S em cada dispositivo
✓ Esse paralelismo de operações permitiu o surgimento dos 
primeiros sistemas operacionais multiprogramáveis
✓ O principal problema associado a esse mecanismo consistia no fato 
de que é difícil a determinação do correto intervalo de tempo. Caso 
o tempo fosse superior ao que seria adequado, passaria a ocorrer um 
atraso no serviço das operações de E/S associadas ao dispositivo; já 
se o tempo fosse inferior ao que seria adequado, será perdido tempo 
de processamento ao ser executada a leitura repetitiva do estado do 
dispositivo
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA
TÉCNICA DE BUFFERING
❖ A técnica de buffering consiste na utilização de uma área de memória 
(volátil) para transferência de dados entre os periféricos e a UCP, 
denominada buffer
❖ Com isso, a UCP pode manipular os dados antes de transferí-los para o 
dispositivo periférico de E/S, reduzindo a perda de eficiência decorrente 
da disparidade existente entre o tempo de processamento e o tempo 
gasto para realização de uma operação de E/S
❖ Exemplos: Editores de texto mantêm as alterações que devem ser 
gravadas; então quando o usuário salva o arquivo, o editor atualiza o 
arquivo em disco com o conteúdo do buffer; Alguns sistemas 
operacionais costumam utilizar uma área para buffer de disco onde 
armazenam temporariamente os dados lidos do disco (cache)
SISTEMAS OPERACIONAIS
Prof. Luiz di Marcello
MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA
TÉCNICA DE SPOOLING
❖ O SPOOL (Simultaneous Peripheral Operations On- Line) consiste na 
utilização de um meio magnético de armazenamento (disco, fita) como 
um grande buffer
❖ Exemplos: Nas impressões os documentos são preparados para 
impressão e armazenados em uma área no disco; Processamento batch 
de tarefas em um sistema
REENTRÂNCIA
❖ Capacidade de um código de programa (código reentrante) ser 
compartilhado por diversos usuários, ou mesmo outros processos, 
exigindo apenas uma cópia do programa na memória
❖ O código reentrante não pode ser modificado enquanto estiver em 
execução
❖ Cada usuário ou processo pode estar executando um ponto diferente 
e manipulando sua própria área de dados

Outros materiais