Buscar

Sistemas Operacionais440

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 240 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 240 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 240 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

SISTEMAS OPERACIONAIS 
 
 
Professor: 
Denílson C Oliveira 
infofortaleza@gmail.com 
1 
Plano da Aula 
 1 – Fundamentos de Sistemas Operacionais; 
¨  Princípios, história, conceitos básicos; 
 
 2 – Arquitetura de Sistemas Operacionais; 
¨  Componentes, chamadas de sistemas, sua 
estrutura, monolítico ou em camadas e 
Máquina Virtual 
 3 – Gerenciamento de Processos; 
¨  Comunicação e sincronização de 
Processos, escalonamento, deadlocks 
 
 
 
 
2 
4 – Gerenciamento de Memoria; 
¨  Gerência em Swapping ou paginação, 
Memória virtual, algoritmo de substituição 
de página, segmentação 
5 – Gerenciamento de Entrada e Saída; 
¨  Dispositivos de I/O, Vetores de 
interrupção e Device Driver 
 6 – Estudo de caso: 
 
 
3 
Não existe perguntas bobas, existe pessoas 
bobas que não perguntam !!!
Tirem suas dúvidas.. ;)
HISTÓRIA DOS SO’S 
4 
v  História: O primeiro computador digital foi projetado pelo matemático inglês 
Charles Babbage (1791-1871); 
v Primeira Geração (1945 – 1955) 
v Por volta de 1940 pesquisadores tiveram 
sucesso na criação de computadores 
primitivos baseado em válvulas; 
v Caracterizavam-se por serem 
demasiadamente grandes, oculpando 
salas inteiras; 
 
HISTÓRIA DOS SO’S 
5 
v Primeira Geração (1945 – 1955) 
v Não existia ainda o conceito de linguagem de programação; 
v A programação era feita nos painéis; 
v Cerca de 20.000 válvulas ficavam rodando com o risco inerente de 
queimar cada uma delas; 
v Nos anos 50 foi desenvolvido o método de programação por 
cartões perfurados 
6 
v  Segunda Geração (1955 – 1965) 
v Ainda nos anos 50 houve o desenvolvimento do transistor, que 
alterou totalmente o cenário anterior; 
v Devido ao ganho de confiabilidade dos computadores, chegou-se o nível 
de comercialização dos equipamentos; ENTRETANTO 
v Apenas orgão governamentais e grandes corporações tinham condições 
de bancar tal investimento; 
HISTÓRIA DOS SO’S 
v Obs: Em novembro de 1947, os 
cientistas do laboratório da Bell 
Telephone descobriram o transistor, 
apesar de suas pesquisas tentarem ir 
para outra direção. Eles verificaram que 
quando aplicada certa tensão a um dos 
terminais do componente, o sinal que 
saía no outro terminal era amplificado. 
7 
v  Segunda Geração (1955 – 1965) 
v  Inicia então o conceito de execução de “Job” 
v Podemos definir JOB como um programa ou um conjunto de programas; 
v Após escrito em linguagem FORTRAN era necessária a perfuração dos 
cartões; 
HISTÓRIA DOS SO’S 
8 
v Processamento em lote (Batch): Jobs com necessidade similares 
HISTÓRIA DOS SO’S 
9 
v Processamento em lote (Batch): Jobs com necessidade similares 
Processamen to
Processamen to
Processamen to
(a )
(b )
(c)
fi ta 	d e 	e ntra d a
fita 	d e 	e ntra d a
ca rtões	p erfura dos
fita 	d e 	sa íd a
re la tór io s
fita 	d e 	sa íd a
job 	2
job 	n
re la tór io 	1
re la tór io 	2
re la tór io 	n
job 	1
HISTÓRIA DOS SO’S 
10 
v  Terceira Geração (1965 – 1980) 
v As duas linhas de máquinas tornava-se muito onerosa pra os fabricantes: 
v  IBM 1401 para leitura dos cartões e geração das fitas; 
v  IBM 7094 para processamento dos JOBS em lote; 
v A solução para tal problema ocorreu com a criação da linha IBM 360; 
HISTÓRIA DOS SO’S 
11 
HISTÓRIA DOS SO’S 
12 
HISTÓRIA DOS SO’S 
v Multiprogramação: No 7094, quando a tarefa atual parava para 
esperar por uma fita magnética terminar a transferência ou aguardava o 
término de outra operação de E/S, a CPU simplesmente permanencia 
ociosa até que a E/S terminasse. 
v A solução a que se chegou foi dividir a memória 
em várias partes, com um larefa diferente em cada 
partição. 
13 
v O resultado desta tentativa foi um 
SO complexo, enorme e com 
milhões de linhas de código; 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) 
v Foi a primeira família de máquinas a usar CI´s; 
v Melhor relação custo/benefício até então; 
v Tentativa de agregar necessidades finais com funcionamento básico do 
hardware; 
14 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v O primeiro sistema de Compartilhamento do Tempo (TimeSharing) foi 
CTSS (Compatible Time-Sharing System), desenvolvido pelo MIT; 
15 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v TimeSharing:O anseio por respostas mais rápidas abriu caminho 
para o tempo compartilhado ou timesharing, uma variante da multipro-
gramação na qual cada usuário se conectava por meio de um terminal 
online. Em um sistema de tempo compartilhado, se 20 usuários 
estivessem conectados e17 deles estivessem pensando,falando ou 
tomando café, a CPU podia ser ciclicamente alocada a cada uma das três 
tarefas que estivessem requisitando a CPU. 
16 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v O Projeto MULTICS não ganhou sustentabilidade: Em 1963, um estudo 
de verão sobre o Projeto MAC reuniu vários cientistas da computação 
em Cambridge. Os objetivos eram divulgar o CTSS e discutir o futuro da 
Computação. 
v O subprojeto MAC (Multiple Access Computers) tentaria desenvolver o 
sistema operacional Multics (Multiplexed Information and Computing 
Service). O Multics deveria ser algo superior ao CTSS. 
v O Projeto MAC começou a tomar proporções e teve apoio da Advanced 
Research Projects Agency (ARPA, agência subordinada ao 
Departamento de Defesa dos EUA), que disponibilizou dois milhões de 
dólares por ano, por oito anos, voltados exclusivamente para o 
desenvolvimento do Multics. Nesse mesmo período, o Bell Labs e a GE 
(General Electric), interessados no projeto, contribuíram com recursos 
de ordem semelhante ao ofertado pelo ARPA. 
17 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v O objetivo final, em relação ao Multics, era um sistema operacional 
com suporte para memória virtual, utilizando recursos de paginação 
e segmentação de memória. Isso possibilitaria um sofisticado processo 
de transferência de dados entre discos e memória. 
v Em outubro de 1969, o Multics foi 
disponibilizado para a comercialização. 
Várias organizações importantes como, 
por exemplo, a Força Aérea Americana, 
a General Motors e a Ford utilizaram o 
Multics. 
18 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v O objetivo final, em relação ao Multics, era um sistema operacional 
com suporte para memória virtual, utilizando recursos de paginação 
e segmentação de memória. Isso possibilitaria um sofisticado processo 
de transferência de dados entre discos e memória. 
 
v O desenvolvimento do Multics foi cancelado em julho de 1985. 
Depois disso, várias organizações começaram a suspender o uso do 
Multics. Há notícias de que o último Multics em produção foi desativado 
em outubro de 2000, no Quartel General do Comando Marítimo 
Canadense 
19 
v Terceira Geração (1965 – 1980) (cont..) 
v Crescimento do uso de minicomputadores, lançado em 1961; 
v Modelos PDP-1 ao ponto culminante que foi o PDP-11; 
v O PDP-7 foi usado com uma versão monousuário do MULTICS por Ken 
Thompson, que originou a partir daí o embrião do UNIX; 
v Só em agosto de 1969, Ken Thompson e Dennis Ritchie, que estavam 
fora do projeto com a saída da Bell Labs, mas tinham continuado a 
estudar o MULTICS, tentavam criar um sistema que funcionasse em um 
computador menor e que pudesse rodar programas, dispensando todo 
esse trabalho. 
v Assim, criaram um sistema operacional para um computador DEC 
PDP-7, que estava parado. O sistema era baseado no MULTICS, mas 
de porte bem menor e utilizava a linguagem de montagem Assembly e 
foi denominado UNICS - Uniplexed Information and ComputingServices. 
v Em fevereiro de 1971, o sistema operacional passou a ser desenvolvido 
no minicomputador PDP-11, da “DEC” (Digital Equipment Corp). 
 
20 
HISTÓRIA DOS SO’S 
v Terceira Geração (1965 – 1980) (cont..) 
v Assim, criaram um sistema operacional para um computador DEC 
PDP-7, que estava parado. O sistema era baseado no MULTICS, mas 
de porte bem menor e utilizava a linguagem de montagem Assembly e 
foi denominado UNICS - Uniplexed Information and Computing 
Services. 
v Em fevereiro de 1971, o sistema operacional passou a ser 
desenvolvido no minicomputador PDP-11, da “DEC” (Digital 
Equipment Corp). 
 
21 
v Terceira Geração (1965 – 1980) (cont..) 
v  https://www.youtube.com/watch?v=sJKh8yq1Qdg&feature=youtu.be 
 
 
22 
v Quarta Geração – PC (1980 – 1990) 
v Desenvolvimento da integração de circuitos em grande escala; 
v Aparecimento dos chips com milhares de transistores encapsulados; 
v Arquitetura semelhante ao PDP-11; 
v Acessibilidade de preço a pessoa física; 
HISTÓRIA DOS SO’S 
v Crescimento de um novo nicho de 
mercado para os desenvolvedores de 
software; 
v Os sistemas operacionais em 
ascensão e domínio em massa da 
atualizada são: 
v Microsoft Windows, Linux e UNIX 
16/08/10 
Os mainframes continuam... 
IBM /370, DA DÉCADA DE 70 IBM /390 e zSeries, DAS 
DÉCADAS DE 90 E 2000 
(USADOS ATUALMENTE) 
24 
HISTÓRIA DOS SO’S 
v Quarta Geração – PC (1980 – 1990) 
v  Intel 8080 – CP/M da Digital Research Gary Kildall) 
v CP/M (Control Program for MicroComputer) – sistema operacional 
baseado em disco; 
v o micro recebia uma placa de expansão (denominada Softcard) 
dotada de um microprocessador Zilog Z80 apto a executar o sistema 
operacional CP/M e todos os programas desenvolvidos para o mesmo 
(como o interpretador MBASIC e o editor de textos WordStar). Outro 
acréscimo comum era uma placa de vídeo apta a exibir 80 caracteres 
por linha da tela (o Apple II só exibia 40 caracteres por linha). 
25 
HISTÓRIA DOS SO’S 
v Quarta Geração – PC (1980 – 1990) 
v  Intel 8080 – CP/M da Digital Research Gary Kildall) 
26 
HISTÓRIA DOS SO’S 
v Quarta Geração – PC (1980 – 1990) 
v  IBM PC - DOS 
v  Inicialmente, a IBM tentou utilizar o CP/M, mas Kildall não quis 
nenhum acordo; 
v  IBM procurou Bill Gates pedindo um sistema operacional para rodar e 
ser vendido juntamente com o IBM PC – surge o DOS (Disk Operating 
System); 
v Tanto o CP/M quanto o DOS eram baseados em comandos; 
27 
v  IBM PC - DOS : https://www.youtube.com/watch?v=pqAg0GJLPGk 
28 
HISTÓRIA DOS SO’S 
v Quarta Geração – PC (1980 – 1990) 
v Nos anos 80 surgia um novo paradigma de Sistema Operacional, que 
foram denominados como: 
v Sistema Operacional de Rede; 
v Sistema Operacional Distribuído; 
v Conjunto de módulos de, no mínimo, processador e memória 
interligados através de um subsistema de comunicação; 
v Um sistema operacional distribuído deve se apresentar aos 
usuários como um sistema operacional centralizado, mas que, na 
realidade, tem suas funções executadas por um conjunto de 
máquinas independentes; 
v Surgimento dos sistema operacionais para disco; 
v Mais: https://pt.wikipedia.org/wiki/Sistema_operacional_em_disco 
 
29 
HISTÓRIA DOS SO’S 
v Quarta Geração – PC (1980 – 1990) 
v  Interface amigável; 
v Baixo custo 
v O CP/M, o MS-DOS e outros sistemas operacionais dos 
primeiros microcomputadores eram todos baseados na digitação de 
comandos em um teclado, feita pelo usuário. Isso finalmente 
mudou graças a um trabalho de pesquisa de Doug Engelbart no 
Stanford Research Institute nos anos 1960. Engelbart inventou 
uma interface gráfica completa voltada para o usuário: com janelas, 
ícones, menus e mouse. Foi denominada GUI (graphcal user 
interface). 
Fundamentos de Sistemas Operacionais 
30 
v  Definição: É uma camada de software que opera entre o hardware e os 
programas aplicativos voltados ao usuário final. 
 
v  É uma estrutura de software ampla, muitas vezes 
complexa, que incorpora aspectos de baixo nível 
(como drivers de dispositivos e gerência de memória 
física) e de alto nível (como programas utilitários e a 
própria interface gráfica). 
v  Abstração de Recursos: cada hardware tem sua 
particularidade. Cabe ao sistema operacional 
gerenciar as particularidades do hardware. 
 Ex: Um processador de texto não deve deter o 
conhecimento de como gravar um arquivo (disquetes, 
pen drive, hd´s). 
Fundamentos de SO 
 (Hardware) 
31 
v  O processador (CPU – Central Process Unit): é uma das partes principais 
do hardware do computador e é responsável pelos cálculos, execução de 
tarefas e processamento de dados. 
v  A velocidade com que o computador executa as tarefas ou processa dados 
está diretamente ligada à velocidade do processador 
 
v  A unidade lógica e aritmética (ULA) é a unidade 
central do processador, que realmente executa as 
operações aritméticas e lógicas entre dois números. 
v  A unidade de controle é a unidade do processador 
que armazena a posição de memória que contém a 
instrução corrente que o computador está executando, 
informando à ULA qual operação a executar 
32 
v  Velocidade (Clock): Ter mais ou menos Hertz significa o quanto o processador 
troca dados com o sistema. O processador que oferece 2.0 GHz pode realizar 2 
bilhões de ciclos por segundo. 
v  O circuito clock, que mede os ciclos e orienta o ritmo do fluxo de troca de 
informações no processador, é um dos principais critérios para estabelecer a 
velocidade do processador. Vale ressaltar, no entanto, que outros pontos entram 
nesta conta, como interface de memória, quantidade de cache, arquitetura, 
Fundamentos de SO 
 (Hardware) 
33 
v  Memória Cache: A memória cache surgiu quando percebeu-se que as 
memórias não eram mais capazes de acompanhar o processador em 
velocidade, fazendo com que muitas vezes ele tivesse que ficar "esperando" 
os dados serem liberados pela memória RAM para poder concluir suas 
tarefas, perdendo muito em desempenho. 
 
v  Conceito: É um tipo ultra-rápido de memória que serve para armazenar os 
dados mais frequentemente usados pelo processador, evitando na maioria 
das vezes que ele tenha que recorrer à comparativamente lenta memória 
RAM. 
 
v  Sem ela, o desempenho do sistema 
ficará l imitado à velocidade da 
memória, podendo cair em até 95% 
 
Fundamentos de SO 
 (Hardware) 
34 
v  Memória Cache: Cont 
 
Dois tipos de Cache 
 
v  Primária (L1): É embutido no próprio processador e é rápido o bastante 
para acompanhá-lo em velocidade. Sempre que um novo processador é 
desenvolvido, é preciso desenvolver também um tipo mais rápido de 
memória cache para acompanhá-lo. 
 
v  Secundária (L2):Um pouco mais barata que a L1 e, consequentemente, 
sempre a temos em maior quantidade que a L2; 
Fundamentos de SO 
 (Hardware) 
35 
v  Memória RAM (Random Access Memory), ou memória de acesso aleatório, é 
um tipo de memória que permite a leitura e a escrita, utilizada como memória 
primária em sistemas eletrônicos digitais. 
 
Fundamentos de SO 
 (Hardware) 
36 
v  Memória RAM 
 
Fundamentos de SO 
 (Hardware) 
37 
v  Memória RAM 
 
v  Mais atual: DDR3-3000 (24.000Mb/s – 24Gb) Trabalha em 1,3v 
Fundamentos de SO 
 (Hardware) 
38 
39 
v  O HD (Hard Disk): O disco rígido recebe este nome, pois o recurso consiste, 
essencialmente, em um ou mais discos extremamente firmes, lisos e 
microscopicamente uniformes. São nestas peças que ficam mantidas as 
informações do sistema. 
v  Para assegurar a boa qualidade da gravação, é necessário um equipamento 
com tais características,as quais impedem deformações durante o uso, que 
impõe ao disco velocidades de rotação altíssimas, as famosas RPM (rotações 
por minuto). 
Fundamentos de SO 
 (Hardware) 
40 
v  Os platters são afixados em um eixo de alumínio, capaz de girá-los em 
velocidades impressionantes de 5.600 RPM ou 7.200 RPM, nos modelos mais 
comuns e, até 15.000 RPM, nos modelos mais avançados. 
v  Uma das peças responsáveis pela gravação 
das informações é um braço mecânico de 
alumínio. O braço movimenta-se sobre o 
disco rígido por meio de um mecanismo 
denominado voice coil, deslocando-se por 
impulsos magnéticos de repulsão e atração. 
v  A função desse braço é deslocar um 
conjunto de ímãs, que formam as cabeças 
de leitura eletromagnéticas, as quais 
escrevem as linhas de informações nos 
platters ou as leem. 
 
 
 
 
Fundamentos de SO 
 (Hardware) 
41 
v O 305 RAMAC Disk System é um ancestral distante do HD que conhecemos 
hoje. Ele foi lançado em 1956 como parte do IBM 305 RAMAC, um 
computador desenvolvido pela IBM para o mercado corporativo, e podia 
armazenar impressionantes 5 MB em 50 discos com 24 polegadas (60 cm) 
de diâmetro. 
Veja tudo em 
Fundamentos de SO 
 (Hardware) 
42 
v O 305 RAMAC Disk System. Ele foi lançado em 1956 como parte do IBM 
305 RAMAC, 
43 
ma ior
ca pa cid a d e 	d e
a rm a zena men to
ma ior 	custo 	e
ve locida de
de 	a cesso
Memória 	S ecund á r ia
Memória 	C a che
Memória 	Pr in cip a l
Reg istra dores
Fundamentos de SO 
 (Hardware) 
44 
v  Responsável por gerenciar as funções vitais do PC e comunicar todo e 
qualquer evento de interrupção, transferência de dados ou erro ao 
processador; 
v  O chipset é composto de dois circuitos integrados ou partes: 
 
¤  North Bridge ou Ponte Norte 
 
¤  South Bridge ou Ponte Sul 
 
Fundamentos de SO 
 (Hardware) 
45 
North Bridge ou Ponte Norte 
v  Circuito principal do chipset responsável por gerenciar e controlar os 
barramentos principais do PC; 
v  Localizado próximo ao processador e memória RAM. 
Fundamentos de SO 
 (Hardware) 
46 
South Bridge ou Ponte Sul 
 
Fundamentos de SO 
 (Hardware) 
47 
South Bridge ou Ponte Sul 
 
Fundamentos de SO 
 (Hardware) 
48 
Fundamentos de Sistemas Operacionais 
49 
Cabe ao SO: 
 
p rog ram a do res
e 	a na lista s
m em ória d iscos
U C P
U su á r ios
H a rdw a re
S is tem a 	O p e ra cio na lS is tem a 	O p e ra cio na l
fita s
im pressora s mon itores
p rog ram a s,
sistem a s	 e
a p lica tivos
u su á rios
v  Prover interfaces de acesso aos dispositivos, 
mais simples de usar que as interface de 
baixo nível. 
 
Fundamentos de Sistemas Operacionais 
50 
Cabe ao SO: 
 
v  Tornar os aplicativos independentes do 
hardware. 
v  Preciso, enquanto desenvolvedor: 
v  Saber o fabricante da impressora? 
v  O tipo de monitor? 
v  A placa-mãe é ASUS? 
Fundamentos de Sistemas Operacionais 
51 
Cabe ao SO: 
 
v  Definir interfaces de acesso homogêneas para dispositivos com tecnologias 
distintas. 
Fundamentos de Sistemas Operacionais 
52 
Cabe ao SO: 
v  Definir políticas para gerenciar o uso dos recursos de hardware pelos 
aplicativos, e resolver eventuais disputas e conflitos. 
v  Uso de processador 
v  Acesso a disco 
v  Memória 
Fundamentos de SO 
Tipos de SO’s 
53 
v  SO de REDE: Em um sistema operacional de redes, os usuários 
sabem da existência de múltiplos computadores e podem conectar-se 
a máquinas remotas e 
 copiar arquivos de uma máquina para outra. Cada máquina executa seu 
 próprio Sistema operacional local com tem se próprio usuário local 
 (ou usuários locais). 
v  Suporte a operação em rede 
v  Maioria dos sistemas operacionais atuais 
v  Compartilhamento de recursos de vários 
computadores. 
v  Disponibilizar os próprios recursos. 
v  São independentes e caso a conexão entre um dos 
nós sofra qualquer problema, os demais continuam 
operando normalmente , apesar de alguns recursos 
se tornarem indisponíveis. 
54 
v  Os SO Distribuídos: 
v  Os recursos de cada máquina estão disponíveis globalmente, de forma 
transparente aos usuários. 
v  Para o usuário e suas aplicações é como se não existisse uma rede de 
computadores e sim um único sistema centralizado. 
v  Usuário desconhece o computador em uso. 
v  Ainda não são uma realidade de mercado. 
 Exemplo: Amoeba 
Fundamentos de SO 
Tipos de SO’s 
55 
v  Os verdadeiros sistemas oper
acionais distribuídos requerem 
muito mais do que apenas a
dicionar algum código a 
um sistema operacional 
monoprocessador, pois os sist
emas distribuídos e centraliza
dos são muito diferentes em 
pontos fundamentais. 
v  Os SO 
Distribuídos:Um sistema operacional distribuído, por outro lado, é 
aquele que parece aos olhos dos usuários um sistema 
Operacional tradicional monoprocessador, mesmo que na realidade 
seja composto de múltiplos processadores. Os 
usuários não precisam saber onde seu programas estão 
sendo executados nem onde seus arquivos estão localizados, 
pois tudo é tratado automática c eficientemente pelo Sistema 
operacional. 
56 
57 
58 
v  SO Multi-Usuário: 
v Múltiplos usuários simultâneos 
v  Maioria dos sistemas operacionais atuais 
v Deve suportar a identificação do “dono” de 
cada recurso dentro do sistema 
v  arquivos, processos, conexões de rede 
v  Ver mais em: https://www.ncomputing.com/pt-br/
WindowsMultiUserLicensing 
v  Imposição de regras de controle de acesso 
para impedir o uso desses recursos por 
usuários não autorizados 
Fundamentos de SO 
Tipos de SO’s 
The image cannot be displayed. Your computer may not have 
enough memory to open the image, or the image may have been 
corrupted. Restart your computer, and then open the file again. 
If the red x still appears, you may have to delete the image and 
then insert it again.
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
59 
v  SO p/ Desktop: 
v Sistema operacional “de mesa”. 
v Usuários domésticos e corporativos 
v  Atividades corriqueiras 
v Ambiente gráfico, interatividade com 
usuário e suporte a rede. 
Fundamentos de SO 
Tipos de SO’s 
60 
v  SO p/ Desktop: 
 
Fundamentos de SO 
Tipos de SO’s 
61 
v  SO Servidor: 
v Gestão de grandes quantidades de recursos 
v Discos, memórias e processadores 
v Multi-usuários 
v Suporte a rede 
v SO Embutido (Embedded) 
v Hardwares com pouca capacidade de processamento 
v Celulares, calculadores, tocadores de MP3 
 
v Função específica 
 
Fundamentos de SO 
Tipos de SO’s 
62 
v  SO Embutido (Embedded) 
 
63 
v  Tempo real (RTOS – Real Time Operacional System) 
v  Comportamento temporal previsível 
v Tempo de resposta conhecido no melhor caso e pior caso de operação 
v  soft real-time systems 
v perda de prazo implica em degradação do serviço prestado (gravação 
de CD) 
v  hard real-time systems 
v perda de prazo pode causar grandes 
prejuízos econômicos ou ambientais 
(usina nuclear, caldeiras industriais) 
Fundamentos de SO 
Tipos de SO’s 
Fundamentos de SO 
Conceitos Finais 
64 
v  O que é um Processo: Um sistema operacional não executa somente 
os programa que podemos ver. Imagine que os aplicativos que você roda 
reúnem diversas instruções e comandos, porém, são os processos que 
efetivamente executam esses comandos. Issosignifica que um único 
aplicativo pode ter vários processos relacionados a ele. 
v  Associado a cada processo está o seu 
espaço de endereçamento, uma lista de 
posições de Memória, que vai de 0 até 
um máximo, que esse processo pode ler e esc
rever. 
v  O espaço de endereçamento contém o 
programa executável, os dados do program
a e sua pilha. 
 
 
 
 
Fundamentos de SO 
Conceitos Finais 
65 
66 
v  O que é um Processo: 
 
v  Alguma vez você fechou um programa, precisou executá-lo 
novamente, mas ele não abriu? E você recebeu um aviso de que 
uma instância do programa já estava em execução? O que aconteceu 
é que, por algum motivo, o processo do programa não foi terminado 
corretamente. Tudo que você precisa fazer é acessar o Gerenciador de 
Tarefas e finalizar o aplicativo em questão. 
Fundamentos de SO 
Conceitos Finais 
67 
v  Espaço de Endereçamento: Todo computador tem uma memória 
principal para armazenar programas em execução. Em um sistema 
 operacional muito simples, apenas um programa por vez está na 
 memória e para executar um segundo programa o primeiro tem de ser 
removido e o segundo colocado na memória. 
Fundamentos de SO 
Conceitos Finais 
68 
v  Edereçamento p/ Hardware: Para o SO conseguir se comunicar com os 
componentes de hardware da máquina e saber “quem é quem” cada um 
separa (ganha) um espaço de memória para si 
Fundamentos de SO 
Conceitos Finais 
69 
v  Espaço de Endereçamento: 
v  Edereçamento p/ Software: Um conjunto de endereços fica a 
disposição dos processos, então na maioria dos computadores, vai 
depender da arquitetura da máquina. Ou seja, o espaço de 
endereçamento vai até 2³² (4.294.967.296, ou seja, 4 GB) para máquinas 
de 32 bits e até 2⁶⁴ para 64 bits. 
Fundamentos de SO 
Conceitos Finais 
70 
v  Espaço de Endereçamento: 
v  Endereçamento p/ Software: 
Fundamentos de SO 
Conceitos Finais 
71 
v  Sistema de Arquivo: Um arquivo pode ser genericamente definido 
como uma coleção de dados relacionados entre si. Arquivos são 
referenciados através de nomes. Além de um nome, cada arquivo possui 
também outros atributos, tais como: tipo, momento da criação, 
identificação do criador, tamanho, etc. 
Fundamentos de SO 
Conceitos Finais 
72 
v  Entrada e Saída: Uma das funções principais de um sistema operacional é 
controlar todos os dispositivos de E/S de um computador, tratar erros, 
interceptar interrupções, fornecer uma interface entre o dispositivo e o 
sistema, emitir comandos para os dispositivos. 
v  Os dispositivos de entrada e saída podem ser divididos em um modo 
genérico como dispositivos de bloco e caractere. 
 
v  Segurança: Computadores contêm muitas informações que os 
Usuários, muitas vezes, querem manter confidenciais. Essas Informações 
podem ser mensagens de correio eletrônico, planos de negócios, impostos 
devidos etc. Cabe ao sistema operacional 
gerenciar Sistema de segurança para que osarquivos, por 
exemplo, sejam acessíveis apenas por usuários autorizados. 
 
 
Fundamentos de SO 
Conceitos Finais 
EXERCÍCIOS 
73 
1)  Defina o que é um Sistema Operacional descrevendo suas principais 
funções? 
2)  O que é multiprogramação? Cite duas razões (detalhando-as) para se ter 
multiprogramação. Cite exemplos de problemas de segurança que podem 
ocorrer em sistemas multiprogramados? 
3)  Descreva as diferenças entre Sistema de Lotes, Sistema de Lotes 
Multiprogramados e Sistemas de Tempo Compartilhado. 
4)  Comente sobre as características de sistemas operacionais de tempo real 
e onde tais sistemas se encaixam 
5)  Explique sobre os diferentes tipos (niveis) de memoria existentes e detalhe 
seus usos mais comuns 
6)  Por que dizemos que existe uma subutilização de recursos em sistemas 
monoprogramáveis? 
 
 
EXERCÍCIOS 
74 
7)  O que caracteriza por processamento batch? 
8)  Explique o funcionamento da técnica time-sharing. Qual é a sua principal 
vantagem? 
9)  Por que dizemos que existe uma subutilização de recursos em sistemas 
monoprogramáveis? 
10)  Qual a grande diferença entre sistemas monoprogramáveis e sistemas 
multiprogramáveis? 
 
 
 
 
75 
FIM DA PARTE 1 
 
... ... ... ... 
 
INÍCIO DA PARTE 2 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
76 
v  Os sistemas operacionais têm duas funções principais: 
v Fornecer abstrações aos programas de usuários; 
v Administrar os recursos do computador. 
v  Em sua maior parte, a interação entre programas de usuário, o sistema 
 operacional lida com a edição de informações. Por exemplo, criar, 
 escrever, ler e excluir arquivos. O gerenciamento de recursos é, 
 em grande medida, transparente para o usuário. 
v  As chamadas de sistemas disponíveis na interface variam de SO para 
outro (embora os conceitos básicos tendam a ser parecidos). 
77 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
78 
v Quando a chamada de sistema é invocada, o programa que a invocou 
é interrompido, e a informação necessária para continuar a sua 
execução é salva. O processador inicia a execução do código de maior 
privilégio que, examinando o estado do processador (definido pelo código 
de menor privilégio) e/ou a sua pilha, determina que serviço foi 
requisitado. 
v Quando a chamada termina, o controle retorna para o programa, o 
estado previamente salvo é restaurado, e o programa continua a sua 
execução. 
v  Mecanismo de funcionamento: 
v As chamadas de sistema 
frequentemente utilizam uma instrução 
especial que faz com que a CPU 
transfira o controle para código de 
maior privilégio, pelo código de menor 
privilégio. 
v  Isto permite que o código de maior 
privilégio indique por onde ele será 
chamado e, tão importante quanto, o 
estado do processador no momento 
da chamada. 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
79 
v  Biblioteca: 
v Os sistemas operacionais geralmente possuem uma biblioteca que os 
programas normais chamam com o fim de comunicar com o núcleo. 
Normalmente esta biblioteca é escrita na linguagem C (libc), como a glibc 
e MS LibC. 
v Glibc (version 2.23) (baixar) 
 
Lista de chamadas LINUX 
http://www.uniriotec.br/~morganna/
guia/chamadas.html 
80 
S ystem 	C a l l
A p l ica çã o Bib lioteca H a rdw a re
N ú cleo 	do
S istem a 	O pera cion a l
N ú cleo 	do
S istem a 	O pera cion a l
Geralmente, essas tarefas que 
pedimos para que o sistema 
operacional faça são bem complexas 
e que exijam uma permissão maior do 
sistema, pois geralmente lidam com 
ferramentas em baixo nível, como 
gerenciamento de memória, 
processos e outros recursos que o 
usuário comum não tem acesso. 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
81 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
82 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
83 
v  Podemos dividir as chamadas de sistema entre quatro grandes grupos: 
v Chamadas de sistemas para gerenciamento de processos 
 
 
 
 
v Chamadas de sistemas para gerenciamento de diretórios 
 
 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
84 
v  Além das bibliotecas que normalmente usamos para 
programar em C, necessitaremos de duas sys/types.h  e  
unistd.h do Unix, para podermos trabalhar com a fork. 
v  Para usar a chamada de sistema de criação de processos, 
simplesmente escrevemos fork(), sem passar argumento algum. 
Fazendo isso, o Sistema Operacional se encarrega do resto, e 
retorna um número 
 
 v  Este número é o pid (process identification, ou identificador de 
processos),e cada processo tem um 
valor diferente de pid, é como se fosse 
o RG, a identificação de cada 
processo. 
v  Porém, ao armazenar esse retorno da função fork numa variável de nome 'pid' do 
tipo 'pid_t', vemos que esse número de pid tem um comportamento especial: 
- dentro do processo filho, o pid tem valor 0 
- dentro do processo pai, o pid tem o valor do processo filho 
- a fork() retorna um valor negativo, caso tenha ocorrido algum erro. 
85 
v  Podemos dividir as chamadas de sistema entre quatro grandes grupos: 
v Chamadas de sistemas para gerenciamento de arquivos 
 
 
 
 
\ 
 
v Chamadas de sistemas restantes 
 
Arquitetura de SO 
Chamadas de Sistemas (System Calls) 
Estrutura de SO 
(Arquitetura) 
86 
v  Agora que tivemos uma visão externa de um sistema operacional,isto 
é, da 
interface dele com o programador, é o momento de olharmos para su
a estruturainterna. Nas próximas seções, vamos examiner cinco 
 diferentes estuturas de SO. 
v Sistemas monolíticos; 
v Sistemas em camadas; 
v Sistemas micro-núcleo; 
v Máquinas virtuais. 
 
 
Estrutura de SO 
(Arquitetura) 
87 
v  Sistemas monolíticos: É de longe a abordagem mais comum, onde o SO 
inteiro é executado como um único programa no modo núcleo. Nela o SO é 
escrito como uma única coleção de rotinas, ligadas a um único programa 
binário executável. 
v  Nesta abordagem, cada rotina do SO tem uma interface bem definida 
quanto a parâmetros e resultados e cada uma delas é livre para chamar 
qualquer outra, quando esta outra pode oferecer algum processamento que 
a primeira necessite. 
v Para construir um programa real do SO usando essa abordagem primeiro 
compilam-se todas as rotinas individualmente e depois juntamos todas 
em um único arquivo-objeto usando um ligador (Linker). 
v Não existe uma ocultação de informação, todas as rotinas são visíveis 
umas as outras 
 
 
88 
v  Sistemas monolíticos: ... Continuando 
v Essa organização sugere uma estrutura básica para o 
v sistema operacional: 
1.  Um programa principal que invoca a rotina do serviço 
requisitado. 
2.  Um conjunto de rotinas de serviço que executam as 
chamadas de sistema. 
3.  Um conjunto de rotinas utilitárias que auxiliam as rotinas de 
 serviço. 
 
 
 
v  possuem (digamos) vantagens e desvantagens; 
o ponto positivo do monolítico é que ele 
proporciona melhor segurança e melhor 
desempenho devido seus recursos residirem 
dentro do próprio kernel (built-in); porém, por 
esse fato, seus recursos (mesmo que não 
sejam necessários em algumas 
circunstancias) estarão sempre em execução 
do momento em que ligar o computador até o 
momento que desligá-lo, consumindo assim 
recurso do hardware. 
v  Outra desvantagem: Fragilidade a falhas 
89 
v  Sistemas monolíticos: ... Continuando 
 
 
 
v Exemplos: LINUX, MS-DOS, Mac OS nas versões abaixo do 8.6 . 
 
v Em um sistema monolítico, com todas as unidades no núcleo, uma 
 unidade de áudio defeituosa pode facilmente dar como referência um 
endereço de memória inválido e parar o sistema instantaneamente. 
90 
v  Sistemas monolíticos: ... Continuando 
 
 
 
91 
v  Sistemas em Camadas: Divide o sistema operacional em sistemas 
sobrepostos. Cada módulo oferece um conjunto de funções que pode ser 
usado por outros módulos. 
v A vantagem da estruturação em camadas é isolar o sistema 
operacional, facilitando sua alteração e depuração, além de criar uma 
hierarquia de níveis de modos, protegendo as camadas mais internas. 
v O empilhamento de várias camadas de software faz com que cada 
pedido de uma aplicação demore mais tempo para chegar até o 
dispositivo periférico ou recurso a ser acessado, prejudicando o 
desempenho do sistema. 
v Não existe uma ocultação de informação, todas as 
rotinas são visíveis umas as outras 
v Obs: Tambem chamado de SO THE (Technische 
Hogeschool Eindhoven – Univ Irlandesa). O sistema THE é 
basicamente um sistema batch que suporta multitarefa; não foi 
desenvolvido para se multiusuário. 
 
92 
v  Sistemas em Camadas: ... Continuando 
 
Estrutura de SO 
(Arquitetura) 
93 
v  Sistemas em Camadas (Anel): 
v Anéis mais internos são mais privilegiados que os externos; 
v Procedimentos de anéis externos executavam chamadas de sistema para 
utilizar os serviços dos anéis internos; 
v Proteção dos segmentos de memória. 
 
 
v  Esse mecanismo de anéis era vantajoso porque 
 podia facilmente ser estendido para estruturar 
subsistemas de usuário. Por exemplo, um 
 professor podia escrever um programa para testar 
 e atribuir notas a programas de alunos executando 
o no anel n, enquanto os programas do alunos 
 seriam executados no anel n+1, a fim de que 
nenhum deles pudesse alterar suas notas. 
Estrutura de SO 
(Arquitetura) 
94 
v  Sistemas micro-núcleo (microkernel): Com a abordagem do Sistema de 
 camadas, os projetistas podem escolher onde traçar a fronteira núcleo-
usuário. Tradicionalmente, todas as camadas entram no núcleo, mas isso 
não é necessário. Na realidade, apresentam-se fortes argumentos para 
colocação do mínimo possível em modo núcleo porque erros no núcleo podem 
derrubar o sistema instantaneamente. Por outro lado, processos de usuário 
podem ser configurados com menos 
potência de modo que um erro não seja 
fatal. 
 v  Uma tendência dos sistemas operacionais é 
tornar o núcleo menor e mais simples 
possível e, para implementar esta idéia, o 
sistema é dividido em processos. 
 
 
Estrutura de SO 
(Arquitetura) 
95 
v  Sistemas micro-núcleo (microkernel): ... Continuando 
 
96 
v  Sistemas micro-núcleo (microkernel): ... Continuando 
v Desta forma, sempre que uma aplicação deseja algum serviço ela solicita 
ao processo responsável, assim, a aplicação que solicita um serviço é 
chamada de cliente e o processo que responde a solicitação é chamado 
de servidor. 
 
 
97 
v  Sistemas micro-núcleo (microkernel): ... Continuando 
v Comparação entre SO Monolítico x Micro-núcleo 
 
 
98 
v  Sistemas micro-núcleo (microkernel): ... Continuando 
v  Ex: 
v Minix: Ele é voltado a didática, para quem quer conhecer como um 
sistema operacional funciona realmente. http://www.minix3.org/ 
v Hurd: é o microkernel do sistema GNU que vem sido desenvolvido desde 
1.990. Ainda não está pronto e nem há previsão para a sua versão 
estável. https://www.gnu.org/software/hurd/hurd.html 
v Abaixo: Comparação de SO em Camadas x Microkernel 
 
 
 
Estrutura de SO 
(Arquitetura) 
99 
v  Máquinas Virtuais: Máquinas virtuais não são máquinas estendidas com 
arquivos e outras características convenientes. 
v  São cópias exatas do hardware, inclusive com modos núcleo/usuário, E/S, 
interrupções e tudo o que uma máquina real tem. 
v  Cada VM pode executar qualquer SO capaz de ser executado diretamente 
sobre o hardware. 
 v  Diferentes VMs podem executar 
direrentes SO´s. 
 
Estrutura de SO 
(Arquitetura) 
100 
v  Máquinas Virtuais: ... Continuando 
v Hipervisor do tipo 1(a) são executados diretamente no hardware. 
v  Eucalyptus 
v Hipervisor do tipo 2(b) são executados como aplicativos na camada 
superior do SO 
v  Ex: VMware, VirtualBox 
 
Estrutura de SO 
(Arquitetura) 
101 
v  Máquinas Virtuais: ... Continuando 
v Hipervisor do tipo 1(a) são executados diretamente no hardware. 
 
Estrutura de SO 
(Arquitetura) 
102 
v  Máquinas Virtuais: ... Continuando 
v Hipervisor do tipo 1(a) são executados diretamente no hardware. 
 
103 
v  Máquinas Virtuais: ... Continuando 
v Hipervisor do tipo 1(a) são executados diretamenteno hardware. 
 https://www.youtube.com/watch?v=XVMZpcgJvPA 
EXERCÍCIOS 
104 
1)  O que é núcleo do Sistema Operacional ? 
2)  Dê o conceito de máquina virtual. 
3)  O que é arquitetura de camadas ? 
4)  O que é uma arquitetura monolítica ? 
5)  O que é uma arquitetura Microkernel ? 
6)  Quais são as principais funções do núcleo dos sistemas operacionais ? 
7)  O que é uma System Calls ? Represente o funcionamento dela (Layout). 
8)  Compare as arquiteturas monolítica e de camadas. Quais as vantagens e 
desvantagens de cada arquitetura? 
 
105 
FIM DA PARTE 2 
 
... ... ... ... 
 
INÍCIO DA PARTE 3 
Gerenciamento	de	Processos 
Conceitos 
106 
v  Conceito: O conceito, que vem de S.O., define processos como programas em 
execução. 
v Diferentes tipos de processos desempenham papel crucial em sistemas 
distribuídos; 
v Usar processos multithreading auxiliam em melhoria de desempenho em sistemas 
cliente-servidor 
Gerenciamento	de	Processos 
Conceitos 
107 
v  Recursos utilizados por um processo: 
v  Memória: um processo precisa de memória para armazenar suas instruções e seus 
dados 
v  CPU: um processo precisa estar de posse da CPU para executar suas instruções 
v  Dispositivos: via de regra, um processo precisa realizar alguma tarefa de entrada e 
saída, em algum dispositivo, como por exemplo receber o valor de uma variável via 
teclado, ler um disco, etc. 
v  Arquivos: um processo, geralmente, precisa gravar ou recuperar alguma informação 
armazenada em determinado arquivo 
108 
v O contexto de hardware é fundamental para a implementação dos 
sistema de tempo compartilhado (multiprogramados), no qual os 
processos se revezam na utilização do processador 
Processos 
Conceitos 
109 
v  Um processo é formado por três elementos básicos: 
v  Contexto de hardware 
v  Contexto de software 
v  Espaço de endereçamento 
v  Contexto de hardware: 
v O contexto de hardware constituí-se,basicamente, 
do conteúdo de registradores (PC, SP, etc.) 
 v PC (Program Counter): Ou CI (Contador de Instruções): este registrador 
tem a função básica de armazenar o endereço da próxima instrução a 
ser executada pela CPU. Quando essa instrução for executada ele 
assume o endreço da próxima instrução. 
Processos 
Conceitos 
110 
111 
v  Contexto de hardware: 
v  SP (Stack Point) ou AP 
(Apontador de Pilha): Armazena 
o endereço de memória do topo da 
pilha onde o sistema mantem 
informações sobre os programas 
que estavam em execução. 
v Existe um Stack Pointer para cada 
thread sendo executada 
v Quanto a Stack Pointer usa mais 
memória do que suporta, ocorre um 
estouro de pilha. Em diversas 
linguagens de programação a Stack 
Pointer possui uma área limitada de memória, geralmente determinada no 
início do programa. O resultado do uso excessivo de memória é o estouro, o 
que geralmente resulta na aborto do programa. 
112 
v  Contexto de hardware: 
v  SP (Stack Point) ou AP 
(Apontador de Pilha): Armazena 
o endereço de memória do topo da 
pilha onde o sistema mantem 
informações sobre os programas 
que estavam em execução. 
v Existe um Stack Pointer para cada 
thread sendo executada 
v Quanto a Stack Pointer usa mais 
memória do que suporta, ocorre um 
estouro de pilha. Em diversas 
linguagens de programação a Stack 
Pointer possui uma área limitada de memória, geralmente determinada no 
início do programa. O resultado do uso excessivo de memória é o estouro, o 
que geralmente resulta na aborto do programa. 
Processos 
Conceitos 
113 
Processos 
Conceitos 
114 
v  Contexto de hardware: 
v PSW (Program Status Word): Armazena informações sobre o status da 
execução das instruções para possíveis detecções de problemas. 
 
Gerenciamento	de	Processos 
Conceitos 
115 
v  Um processo é formado por três elementos básicos: continuação.. 
v  Contexto de hardware 
 
 
Gerenciamento	de	Processos 
Conceitos 
116 
v  Um processo é formado por três elementos básicos: continuação.. 
v  Contexto de hardware 
v  Quando um processo está em execução, o seu contexto de hardware está 
armazenado nos registradores do processador; 
 
 
117 
v  Um processo é formado por três elementos básicos: continuação.. 
v  Contexto de hardware 
 
 
Gerenciamento	de	Processos 
Conceitos 
118 
v  Um processo é formado por três 
elementos básicos: 
continuação.. 
v  Contexto de hardware 
v  A troca de um processo por 
outro na CPU, realizado pelo 
SO, é denominada Troca de 
Contexto; 
v  Na troca de contexto, o SO 
armazena o conteúdo dos 
registradores da CPU 
 
 
Gerenciamento	de	Processos 
Conceitos 
119 
v UID (User Identification): cada processo deve 
possuir também uma identificação do usuário 
v  Quotas São os limites de cada recurso do 
sistema (arquivos, memória, etc) que um 
processo pode alocar 
v  Privilégios: Definem o que o processo pode ou 
não fazer em relação ao sistema e aos outros 
processos 
v  Um processo é formado por três elementos básicos: continuação.. 
v Contexto de software:O contexto de software especifica características 
do processo que influênciam na execução de um programa 
v Composto por 3 grupos de informações: 
v Identificação PID (Process Identification): cada processo criado 
pelo sistema recebe uma identificação única. As informações sobre 
um processo estão armazenadas na tabela de processos, 
indexada pelo PID; 
 
Gerenciamento	de	Processos 
Conceitos 
120 v  Um processo é formado por três elementos básicos: continuação.. 
¨  Espaço de Endereçamento: Área de memória onde o programa será 
armazenado, além do espaço para os dados utilizados por ele; 
¨  Cada processo possui seu próprio espaço de endereçamento, que deve ser 
protegido do acesso dos demais processos 
 
121 
v  Um processo é formado por três elementos básicos: continuação.. 
v  Espaço de Endereçamento: continuação.. 
v  O que é Stack?: O stack é uma porção contígua de memória reservada 
para empilhar os dados necessários durante a execução de blocos de 
código. 
v  Em condições normais, o stack é alocado no início da aplicação, mais 
precisamente no início da thread, mesmo que a aplicação só tenha a thread 
principal. 
v  A pilha funciona usado uma forma LIFO (Last in First Out) ou UEPS (Último 
a entrar, primeiro a sair). 
Gerenciamento	de	Processos 
Conceitos 
122 v  Threads: O modelo de processos estudado supõe o uso de apenas uma 
thread por processo’ 
v Cada processo tem o seu espaço de endereçamento e um único thread 
de controle; 
v Contudo, frequentemente há situações em que é desejável ter múltiplos 
threads de controle no mesmo espaço de endereçamento executando em 
pseudo paralelo, como se fossem processos separados 
v Exceto pelo espaço de endereçamento compartilhado Intuitivamente, 
threads são como processos dentro de outo processo (são linhas/fluxo de 
execução) 
v Mas, quando é desejável 
utilizar mais de uma thread? 
Gerenciamento	de	Processos 
Conceitos 
123 v  Threads: continuação.. 
v Mas, quando é desejável utilizar mais de uma thread? 
Gerenciamento	de	Processos 
Conceitos 
124 v  Threads: continuação.. 
v Mas, quando é desejável utilizar mais de uma thread? 
Gerenciamento	de	Processos 
Conceitos 
125 v  Threads: Em Java, usamos a classe thread do pacote java.lang para 
criarmos linhas de execução paralelas. A classe Thread recebe como 
argumento um objeto com o código que desejamos rodar. Ex: no programa 
de PDF e barra de progresso 
v  No método main, criamos os objetos e passamos para a classe Thread. O 
método Start é responsável por iniciar a execução da Thread. 
v  Mais em: https://www.caelum.com.br/apostila-java-orientacao-objetos/programacao-concorrente-e-threads/126 
Gerenciamento	de	Processos 
Criando	um	Processo 
127 
v  Principais eventos que causam a criação de um processo: 
1.  Inicialização do sistema: Na inicialização vários processos são criados 
Exemplo: explorer.exe; 
2.  Execução de uma chamada de sistema de criação de processo por 
um processo em execução: Processos pais criam processos filhos, 
que podem criar seus próprios processos filhos e assim por diante 
 Exemplo: Divisão de atividades entre processos diferentes. 
3.  Uma requisição do usuário para criar um novo processo: Em 
sistemas interativos, digitando um comando ou clicando em um ícone; 
 
4.  Início de uma tarefa em lote: Em computadores de grande porte, 
quando o mesmo possui recursos suficientes para executar a tarefa 
 
Gerenciamento	de	Processos 
Tipos	de	Processos 
128 
v  Os processos são classificados de acordo com o tipo de processamento que 
realizam 
v  Existem dois tipos de processos: 
v CPU-bound: um processo é dito CPU-bound quando passa a maior 
parte do tempo utilizando o processador; 
 Ex: Esse tipo de processo realiza poucas operações de leitura e gravação 
e é encontrado em aplicações cientificas e de muito cálculo. 
v I/O-bound: um processo é dito I/O-bound quando passa a maior parte do 
tempo realizando operações de I/O (E/S) 
 
Gerenciamento	de	Processos 
Implementação	de	Processos 
129 
v  Todas as informações sobre um processo são mantidas na tabela de 
processos; 
v  A tabela de processos tem campos que dizem respeito: 
v à gerência do processo; 
v à gerência da memória; 
v à gerência de arquivos. 
v  A tabela de processos possui uma entrada por processo e os campos 
nela contidos variam de sistema operacional para sistema operacional 
 
Gerenciamento	de	Processos 
Implementação	de	Processos 
130 
v  Alguns campos típicos de um processo na tabela 
 
Gerenciamento	de	Processos 
Execução	de	Processos 
131 
v  Os processos podem ser executados de duas formas: 
v  Foreground (primeiro plano): são aqueles que necessitam de interação direta com o usuário, 
incluindo troca de informações. 
v  Background (segundo plano): não necessitam desta interação com o usuário. 
 
Gerenciamento	de	Processos 
Comunicação	entre	Processos 
132 
v  Comunicação entre processos: em inglês Inter-Process Communication 
(IPC), é o grupo de mecanismos que permite aos processos transferirem 
informação entre si. 
v  A execução de um processo pressupõe por parte do sistema operativo, 
entre outras coisas, a criação de um contexto de execução próprio que, de 
certa forma, abstrai o processo dos componentes reais do sistema. 
v  Devido a esta virtualização dos recursos, o processo não tem 
conhecimento acerca dos outros processos e, como tal, não consegue 
trocar informação. 
 
Gerenciamento	de	Processos 
Comunicação	entre	Processos 
133 
v Os processos executando concorrentemente podem ser de dois tipos: 
v  Independentes: Um processo é independente se não puder afetar ou 
ser afetado pelos outros processos em execução no sistema; 
v Qualquer processo que não compartilhe dados com qualquer outro 
processo é independente. 
 
Gerenciamento	de	Processos 
Comunicação	entre	Processos 
134 
v Os processos executando concorrentemente podem ser de dois tipos: 
v Cooperativos: Um processo é cooperativo se puder afetar ou ser 
afetado por outros processos em execução no sistema; 
v Qualquer processo que compartilhe dados com outros processos 
 
135 
v Os processos executando concorrentemente podem ser de dois tipos: 
v Cooperativos: continuação.. 
v Preemptivo: é o ato de interromper temporariamente uma tarefa 
sendo resolvida por um sistema computacional, sem precisar de sua 
cooperação, e com a intenção de retomar a tarefa depois. 
v É semelhante ao FIFO, porém quando o processo está em estado 
de execução existe um tempo-limite para utilização da UCP. Quando 
expira o tempo, time-slice ou quantum, o processo volta ao estado 
de pronto, dando a vez a outro processo. Isso ocorre mesmo se o 
processo não terminou o seu processamento, esse procedimento é 
chamado de preempção por tempo 
Gerenciamento	de	Processos 
Estados	de	um	Processo 
136 
v  Em execução: o processo tem o controle da CPU (processador) 
v  Pronto: aguarda sua vez de usar a CPU 
v  Bloqueado (Em espera): esta ́ ocioso e aguarda o ocorrência de algum 
evento externo 
 
Gerenciamento	de	Processos 
Estados	de	um	Processo 
137 
v  PCB (Proccess control block): é uma estrutura de dados no núcleo do 
sistema operacional que serve para armazenar a informação necessária 
para tratar um determinado processo. Todos nesta lista estão no estado de 
pronto 
 
........
........
........
........
........
Lista 	de
processos
em	estado
de	pronto
PCB# 5
PCB# 9
PCB# 1
PCB# 2 PCB# 4
Lista 	de
processos
em	estado
de	espera
138 
v Os processos executando concorrentemente podem ser de dois tipos: 
v Cooperativos: continuação.. 
v Não-Preemptivo: Nestes casos o processo pode ficar sendo 
executado pela CPU até finalizar e sem nenhuma interrupção; 
v Este tipo de abordagem pode gerar um efeito negativo uma vez que 
o processo pode ter prioridade de processamento indefinitivamente 
mesmo que não seja concluído; 
139 
v  Existem dois modelos fundamentais de comunicação entre processos: 
v Memória distribuída: a comunicação é toda feita através de troca de 
mensagens; 
 
v Memória Compartilhada: É uma das consequencias da sincronização 
incorreta, gerando a disputa de recursos do sistema por multiplos 
processos ou threads, causando o corrompimento dos dados; 
v  Parte dos dados são modificados por um processo/Thread e parte por 
outro, ou seja, acontece quando dois ou mais processos entram ao 
mesmo tempo na região crítica. 
Processo
tra n sm isso r
Processo
recep tor
S EN D REC E IVE
C a na l 	d e 	comunica çã o
140 
v  Existem dois modelos fundamentais de comunicação entre processos: 
v  A sincronização entre processos: permite gerir o acesso concorrente a 
recursos do sistema operacionais de forma controlada por parte dos 
processos, de maneira que um recurso não seja modificado em simultâneo 
 
Processos 
Condições	de	Corrida 
141 v  Tal como o mecanismo anterior, este oferece as mesmas vantagens em 
termos de segurança. A memória partilhada é uma zona de memória que 
vários processos podem aceder, mediante apresentação da chave e 
permissões corretas. 
v  Este mecanismo necessita de sincronização entre processos, já o acesso 
assíncrono pode originar a condições de corrida. 
Processos 
Condições	de	Corrida 
142 
Gerenciamento	de	Processos 
Escalonamento	de	Processos 
143 
v Em computadores multiprogramados, muitas vezes múltiplos processos (ou 
threads) competem pelo uso da CPU ao mesmo tempo; 
v  Isso ocorre sempre que dois ou mais processos estão simultaneamente 
no estado pronto. 
 
v Nestes casos, quando o CPU se encontrar disponível, devera ́ ser feita uma 
escolha sobre qual processo executar; 
v A parte do sistema operacional que faz esta escolha é o escalonador e 
o algoritmo que ele usa é o algoritmo de escalonamento; 
v É tarefa do escalonador também determinar quanto tempo o processo 
poderá utilizar a CPU; 
v O algoritmo de escalonamento define, assim, a política de utilização do 
processador pelos processos. 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos 
144 
v  Quando um processo solicita operações bloqueantes (E/S, por exemplo), 
sua execução fica suspensa até que o evento solicitado ocorra; 
v  Se outro processo estiver pronto para execução, o mesmo poderá 
passar a utilizar a CPU, maximizando a utilização da mesma, 
melhorandoo desempenho percebido do sistema. 
v  Execução de 2 processos sem concorrência 
 
v  Execução de 2 processos com concorrência 
 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Tipos)	
145 
v  Escalonador de longo prazo 
v  É o responsável de controlar o grau de multiprogramação do sistema 
v  Número de processos que serão executados “ao mesmo tempo”. 
v  Admite novos trabalhos no sistema, convertendo estes em processos. 
 
v  São eles que alocam memória ( Mem Sec p/ Principal) 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Tipos)	
146 
v  Escalonador de Médio Prazo 
v  É o responsável de escolher os processos que serão removidos total ou 
parcialmente da memória para serem levados ao disco (suspensos); 
 
v  Manter rendimento do sistema. 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Tipos)	
147 
v  Escalonador de curto Prazo 
v  Responsável por alocar à CPU os processos alocados em memória; 
v  ( Mem Principal p/ Processador); 
 
v  Escalonador: Seleciona o processo para sua execução, atendendo a 
 um determinado critério. 
 
v Dispacher (despachador): É o módulo que dá controle da CPU para o 
processo selecionado pelo escalonador de curto prazo. 
v Salvar contexto do processo que sai da cpu 
v Restaurar contexto do processo que entra na cpu 
v Reiniciar a execução de processos 
v Alterar para estado pronto. 
v Configurar para o ponto apropriado do programa 
 
 
 
Troca de C
ontexto 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Tipos)	
148 
v  Escalonador de curto Prazo 
 
 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
149 
v  Algorítimos Não-Preemptivo 
v  FIFO; 
v  SJF (Shortest Job First); 
 
v  Algorítimos Preemptivo 
v  RR (RoundRobin); 
v  Por Prioridade 
v  Multiplas Filas 
v  Multiplas Filas com relimentação 
 
 
 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
150 
v  FIFO (First In First Out): Processos são despachados de acordo com sua ordem 
de chegada na fila de processos prontos do sistema; 
v  Tambem chamado FCFS (First-Come First-Served) 
v  Uma vez que um processo ganhe a CPU, ele roda até terminar. 
v  FIFO é uma disciplina não preemptiva. 
 
 
UCP
Estado	de
Criação
Estado	de
Espera
Fila	dos	processos	no	estado	de	Pronto
Estado	de
Término
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algorítimos)	
151 
v  SJF (Shortest-Job-First):O processador é alocado ao processo com etapa 
de CPU mais breve. 
v  Em caso de empate se aplica outro algoritmo (normalmente o FIFO); 
v  Não preemptivo: O processo que possui a CPU somente a libera 
quando termina sua execução ou quando se bloqueia 
v  Preemptivo: se novos processos chegarem com CPU Burst menores 
que o tempo restante do processo em execução, este é tirado a força. 
Este algoritimo é conhecido como SRTF (Shortest Remaining Time 
First) 
Processo 	A
Processo 	B
Processo 	C
3 7 17 u .t.
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algorítimos)	
152 
v  SJF (Shortest-Job-First): 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
153 
v  Por Prioridade: 
v  Cada processo tem associado um valor inteiro que representa 
sua prioridade de execução; 
v  O escalonador escolhe o processo da fila de processos prontos que 
tenha a maior prioridade. 
v  A fila de processos prontos é ordenada pela prioridade dos processos 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
154 
v  Por Prioridade: 
UCP
Estado	de
Término
Filas	dos	processos	no	estado	de	Pronto
Prioridade	P1
Prioridade	P2
Prioridade	Pn
Estado	de
Criação
Estado	de
Espera
Preempção	por	prioridade
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
155 
v  Roudin-Robin (RR) 
v  Atribui-se a cada processo durante um intervalo de tempo um valor 
pré fixado de forma rotativa, denominado quantum. 
v Funcionamento: 
v Semelhante ao FCFS; 
v Fila de prontos é uma fila FIFO circular; 
v Escalonador percorre fila alocando, para cada processo, até 1 
quantum. 
 
v  Implementação: 
v Neste algorimo é requerido um valor temporal de troca de contexto. 
 
v Características: 
v Permite esgotar ao máximo o tempo de resposta dos processos. 
Algoritmo ideal para sistemas de tempo compartilhado. 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
156 
v  Roudin-Robin (RR) 
v  Se o processo não deixar a CPU dentro do quantum, é preemptado 
v  Se houverem n processos e o quantum for q, cada processo possui 1/n 
tempo de CPU, executado em porções de tempo de tamanho até q; 
v  Nenhum processo espera mais do que (n-1)q para utilizar CPU 
v  Não ocorre starvation(estagnação) 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
157 
v  Roudin-Robin (RR) 
v  Desempenho 
v  Quantum muito grande: execução FCFS(FIFO); 
v  Quantum muito pequeno: muitas trocas de contexto 
v  Alto custo 
v  Quantum deve ser pequeno suficiente para garantir o tempo 
compartilhado 
v  Quantum deve ser grande bastante para compensar trocas de 
contexto 
v  Bom desempenho:80% dos picos de CPU devem ser menores que 
quantum 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
158 
v  Filas Multinível: Fila de prontos é dividida em várias filas 
v  Ex.:2filas 
v  Processos em primeiro plano (interativos/foreground); 
v  Processos em segundo plano (background/batch); 
v  Cada fila possui seu próprio algoritmo de escalonamento: 
v  Ex.: 
v  Processos em 
primeiro plano: 
RR (para 
manter tempo 
compartilhado); 
v  Processos em 
background: 
FCFS; 
UC P
Fila 	de	processos	do	sistema
Fila 	de	processos	interativos
Fila 	de	processos	batch
Maior
prioridade
Menor
prioridade
159 
v  Filas Multinível: 
v  Sem retroalimentação: processo nunca é trocado de fila; 
v  Com retroalimentação: processo pode ser trocado de fila; 
v  Permite separar processos com características de picos de CPU 
semelhantes; 
v  Um processo que usa muito tempo de CPU é movido para fila de 
mais baixa prioridade; 
v  Dessa forma: processos IO-bound e interativos (dependem da 
interação do usuário) ficam nas filas com mais prioridade; 
v  Processos que ficam aguardando muito tempo por CPU podem ser 
movidos para filas de mais alta prioridade: evita starvation 
(estagnação) 
160 
v  Filas Multinível: ... continuação 
v  É necessário haver escalonamento entre as filas: 
v  Para escolher o processo de qual fila será executado; 
v  Se usar algoritmo de priorida de fixa de uma fila sobre outra: 
starvation; 
v  Outra opção: dividir o tempo de execução entre as filas: 
v  Foreground fica com 80% e background com 20% do tempo de 
CPU. 
MULTIFILAS 
& 
PRIORIDADE FIXA 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
161 
v  Escalonador de Tempo Real: 
v  Sistemas críticos (Hard Real-Time): É necessário garantir que a(s) 
tarefa(s) consideradas críticas terminem antes de um determinado 
tempo (deadline), caso contrário o seu não cumprimento pode resultar 
em graves danos para o sistema. 
 
v  Exemplos: 
v  Aplicações aero espaciais; 
v  ABS de um carro; 
v  Sistema de automação. 
Gerenciamento	de	Processos 
Escalonamento	de	Processos (Algoritmos)	
162 
v  Escalonador de Tempo Real: 
v  Sistemas não críticos (Soft Real-Time): O funcionamento do sistema 
é apenas ligeiramente afetado caso não seja possível cumprir um 
determinado deadline. 
v  Exemplos: 
v  Aplicações multimídia 
v  Jogos de computador 
Gerenciamentode	Processos 
Exclusão Mútua/Região Crítica 
163 
v  Como evitar condições de disputa ? 
v  Exclusão mútua: 
v  O processo que está acessando o recurso, ao sair de sua 
região crítica, executa uma instrução UP, incrementando o 
valor do semáforo e liberando o acesso ao recurso. 
 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
164 
v  Como evitar condições de disputa ? 
v  Encontrar alguma forma de proibir que mais de um processo acesse o 
dado compartilhado ao mesmo tempo, isto é, estabelecer a exclusão 
mútuade execução 
1.  Exclusão mútua: impedir que dois ou mais processos acessem 
um mesmo recurso ao mesmo tempo. 
v  Sempre que deseja entrar na sua região crítica, um processo 
executa uma instrução DOWN. Se o semáforo for igual a 1, este 
valor é decrementado, e o processo que solicitou a operação pode 
executar as instruções da sua região crítica. De outra forma, se 
umainstrução DOWN é executada em um semáforo com valor igual 
a 0, o processo fica impedido do acesso, permanecendo em estado 
de espera e, conseqüentemente, não gerando overhead no 
processador. 
 
 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
165 
v  Soluções de Software 
v  Três fatores fundamentais para a solução dos problemas de 
sincronização devem ser considerados: 
 
1.  O número de processos concorrentes e o tempo de execução dos 
mesmos devem ser irrelevante; 
2.  Um processo fora de sua região crítica não deve impedir que outros 
processos entrem em suas próprias regiões críticas; 
3.  Um processo não pode permanecer indefinidamente esperando para 
entrar na sua região crítica (starvation); 
 
v  As soluções mais atuais adotam primitivas que permitem que um processo 
seja colocado em estado de espera e reativado apenas quando o recurso 
estiver disponível. Nesta linha foram introduzidos os semáforos e os 
monitores. 
 
 
Gerenciamento	de	Processos 
Problemas	de	Sincronização	
166 
v  Starvation: É a situação onde um processo nunca consegue executar sua 
região crítica e, em conseqüência, nunca consegue acessar o recurso 
compartilhado. 
v  Este problema ocorre quando 2 ou mais processos estão na lista de 
espera por um recurso compartilhado. No momento em que o recurso é 
liberado, o sistema precisa determinar qual dos processos em espera 
deve ganhar acesso ao recurso. 
Gerenciamento	de	Processos 
Problemas	de	Sincronização	
167 
v  Starvation 
v  Esta escolha pode ser: 
v  Aleatória: um processo pode nunca ser escolhido e sofrer 
starvation; 
v  Por prioridade: um processo pode novamente permanecer 
indefinidamente na fila de espera face a constante chegada de 
processos de maior prioridade; 
v  FIFO: evita starvation porém pode prejudicar o desempenho de 
programas com maior prioridade de execução. 
 
 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
168 
v  Soluções de Software 
v  Semáforos: Consiste em uma variável inteira, não negativa, que só pode 
ser manipulada por duas instruções atômicas: down e up. Cada semáforo é 
associado a um único recurso compartilhado e seu significado é: 
 
v  0 → inexistência de recurso disponível; 
 
v  >0 → dispolibilidade de recurso. 
 
 
F ila 	de 	e spera
de 	processos
Processo 	a cessa
a 	 reg iã o 	cr ítica
Processo 	d ese ja 	en tra r
n a 	reg iã o 	cr ítica
DO
W
N 	(S=
0 )
DO
W
N 	
(S
> 0
)
U P	 (S )	 - 	p rocesso 	 sa i
d a 	reg iã o 	cr ítica
Libe ra 	proce sso
da 	fi la 	de 	espe ra
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
169 
v  Soluções de Software 
v  Monitor: O uso de semáforos exige muito cuidado do programador pois 
qualquer engano pode levar a problemas de sincronização imprevisíveis e 
difíceis de reproduzir, face à execução concorrente dos processos. 
v  Monitores são mecanismos de alto nível implementados pelo próprio 
compilador. Para isto basta especificar todas as regiões críticas em 
forma de procedimentos do 
monitor, e o compilador se 
encarregará de implementar a 
exclusão mútua. 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
170 
v  Soluções de Software 
v  DeadLock: É conseqüência do compartilhamento exclusivo e ocorre 
sempre que um ou mais processos estiverem esperando por um evento 
(recurso) que jamais ocorrera ́. 
v  Caracteriza-se por uma espera circular onde dois ou mais processos 
aguardam pela liberação de recursos para que possam continuar suas 
tarefas. Exemplo, o processo "A” detém o recurso X e espera pelo 
recurso Y, por outro lado, o processo "B" detém o recurso Y e espera 
pelo X. 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
171 
v  Soluções de Software 
v  DeadLock: 
Recurso 	2 Recurso 	1
Processo	A
Processo	B
Processo	A
so licita 	o
Recurso 	2
Recurso 	1
a loca do 	ao
Processo	A
Recurso 	2
a loca do 	ao
Processo	B
Processo	B
so licita 	o
Recurso 	1
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
172 
v  Soluções de Software 
v  DeadLock: 
v  Condições de ocorrência: 
u  cada recurso só pode estar alocado a um único processo em um 
determinado instante (exclusão mútua); 
u  um processo, além dos recursos ja ́ alocados, pode ficar na espera 
por outros; 
u  um recurso não pode ser retirado de um processo porque outros 
processos o estão desejando (não-preempção); 
u  um processo pode aguardar por um recurso que esteja alocado a 
outro processo e vice-versa (espera circular). 
 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
173 
v  Soluções de Software 
v  DeadLock: 
v  Condições de ocorrência: 
u  cada recurso só pode estar alocado a um único processo em um 
determinado instante (exclusão mútua); 
u  um processo, além dos recursos ja ́ alocados, pode ficar na espera 
por outros; 
u  um recurso não pode ser retirado de um processo porque outros 
processos o estão desejando (não-preempção); 
u  um processo pode aguardar por um recurso que esteja alocado a 
outro processo e vice-versa (espera circular). 
 
v  Dois procedimentos podem ser implementados para tratamento de 
deadlocks: previnir sua ocorrência ou, detetar sua ocorrência. 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
174 
v  Soluções de Software 
v  DeadLock: 
v  Prevenção de Deadlocks:Constitui-se de ações a serem tomadas com 
o objetivo de previnir a ocorrência de uma ou mais situações que 
possam levar ao surgimento de um de deadlock. Algumas 
possibilidades são: 
1.  estabelecer o critério de que todos os recursos sejam previamente 
alocados, antes do processo ganhar acesso à UCP; 
2.  admitir a prática da preempção, isto é, o sistema ter a possibilidade 
de retirar um recurso alocado para um processo e dar para outro 
processo; 
3.  forçar que um processo não aloque mais do que um recurso de 
cada vez. 
Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
175 
v  Soluções de Software 
v  Qualquer que seja a estratégia de prevenção adotada, ela é sempre muito 
onerosa, uma vez que precisa ser executada a todo instante. A estratégia 
mais comum e menos onerosa é detectar a ocorrência de um deadlock 
e, uma vez detectado, executar rotinas de resolução do problema. 
 
v  Detecção de DeadLock: Geralmente os algoritmos que implementam este 
mecanismo verificam a existência de uma “espera circular”, percorrendo 
toda a estrutura de alocação sempre que um processo não pode ser 
imediatamente atendido. 
v  Após o deadlock ser detectado, as ações de correção mais comuns 
são: 
v Eliminar um ou mais processos envolvidos; 
v Liberar acumulativamente alguns dos recursos ja ́ alocados pelos 
processos envolvidos até que a espera circular se desfaça.Gerenciamento	de	Processos 
Exclusão Mútua/Região Crítica 
176 
v  Soluções de Software 
v  Detecção de DeadLock: 
EXERCÍCIOS 
177 
1)  Qual a relação entre programa e processo? 
2)  O que é o BCP? Qual é o seu conteúdo típico? 
3)  Defina o conceito de processo. 
4)  O que é o espaço de endereçamento de um processo? 
5)  Qual é o propósito das chamadas de sistema(SVC)? 
6)  Explique as funções dos escalonadores de curto, médio e longo prazo. 
7)  O que significa um processo sofrer preempção? 
8)  Se um computador possuir apenas um processador, é possível ocorrer um 
processamento paralelo? Justifique a resposta. 
9)  Um processo pode utilizar toda a memória disponível no computador? Justifique sua 
resposta. 
10)  O que é um thread e quais as vantagens em sua utilização? 
11)  Como o uso de threads pode melhorar o desempenho de aplicações paralelas em 
ambientes com múltiplos processadores?   
 
 
EXERCÍCIOS 
178 
12)  Dê um exemplo que apresente todas as mudanças de estado de um 
processo, juntamente com o evento associado a cada mudança. 
13)  Diferencie processos multithreads, subprocessos e processos 
independentes. 
14)  Explique a diferença entre processos foreground e background. 
15)  Dê exemplos de aplicações CPU-bound e I/O-bound. 
16)  O que é política de escalonamento de um sistema operacional? 
17)  Quais as funções do escalonador e do dispatcher? 
18)  Qual a diferença entre os escalonamentos FIFO e circular? 
19)  Descreva o escalonamento SJF e o escalonamento por prioridades. 
 
 
 
179 
FIM DA PARTE 3 
 
... ... ... ... 
 
INÍCIO DA PARTE 4 
Gerenciamento	de	Memória 
Conceitos 
180 
v  Gerenciamento (ou gestão) de memória é um complexo campo da ciência 
da computação e são constantemente desenvolvidas várias técnicas para 
torná-la mais eficiente. 
v  Em sua forma mais simples, está relacionado em duas tarefas 
essenciais: 
v  Alocação: Quando o programa requisita um bloco de memória, o 
gerenciador o disponibiliza para a alocação; 
v  Reciclagem: Quando um bloco de memória foi 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 pode ser reutilizado para outra requisição. 
Gerenciamento	de	Memória 
Conceitos 
181 
v  Gerenciamento de memória: 
v  A gerência de memória deve tentar manter na memória principal o 
maior número possível de processos residentes, permitindo 
maximizar o compartilhamento do processador e demais recursos 
computacionais. 
v  Mesmo na ausência de espaço livre, o sistema deve permitir que novos 
processos sejam aceitos e executados. Isso é possível através da 
transferência temporária de processos residentes na memória principal 
para a memória secundária, liberando espaço para novos processos. 
v  Este mecanismo é conhecido como swapping e será detalhado 
posteriormente. 
Gerenciamento	de	Memória 
Tipos de Alocação 
182 
 
v  Alocação contígua simples 
 
 
 
 
 
v  Alocação Particionada 
Gerenciamento	de	Memória 
Tipos de Alocação (Contígua) 
183 
v  Alocação contígua simples: A alocação contígua simples foi 
implementada nos primeiros sistemas operacionais, porém ainda está 
presente em alguns sistemas monoprogramáveis. 
v  Nesse tipo de organização, a memória principal é subdividida em duas 
áreas: uma para o sistema operacional e outra para o programa do 
usuário. 
Memória 	Pr in cip a l
S istema
O pera cion a l
Á rea 	p a ra
p rog rama
v  Dessa forma, o programador deve desenvolver suas 
aplicações, preocupado, apenas, em não ultrapassar 
o espaço de memória disponível, ou seja, a diferença 
entre o tamanho total da memória principal e a área 
ocupada pelo sistema operacional. 
 
Gerenciamento	de	Memória 
Tipos de Alocação (Contígua) 
184 
v  Alocação contígua simples: 
v  Nesse esquema, o usuário tem controle sobre toda a memória 
principal, podendo ter acesso a qualquer posição de memória, 
inclusive a área do sistema operacional. Para proteger o sistema desse 
tipo de acesso, que pode ser intencional ou não, alguns sistemas 
implementam proteção através de um registrador que delimita as áreas 
do sistema operacional e do usuário. 
v  Dessa forma, sempre que um programa faz referência a um endereço 
na memória, o sistema verifica se o endereço está dentro dos limites 
permitidos. 
Memória 	Pr in cip a l
Reg istra dor
S istema
O pera cion a l
Á rea 	p a ra
p rog rama
v Caso não esteja, o programa é cancelado e uma 
mensagem de erro é gerada, indicando que 
houve uma violação no acesso à memória 
principal. 
Gerenciamento	de	Memória 
Tipos de Alocação (Contígua) 
185 
v  Alocação contígua simples: 
v  Apesar de fácil implementação e do código reduzido, a alocação 
contígua simples não permite a utilização eficiente dos recursos 
computacionais, pois apenas um usuário pode dispor desses recursos. 
 
v  Em relação à memória principal, caso o programa do usuário não a 
preencha totalmente, existirá um espaço de memória livre sem 
utilização. Memória 	Pr in cip a l
S istema
O pera cion a l
Prog ram a
do	u su á r io
Á rea 	 l ivre
Gerenciamento	de	Memória 
Tipos de Alocação (Contígua) 
186 
v  Alocação contígua simples: 
v  Técnica de Overlay: Na alocação contígua simples, todos os 
programas estão limitados ao tamanho da área de memória principal 
disponível para o usuário. 
v  Uma solução encontrada para o problema é dividir o programa em 
módulos, de forma que seja possível a execução independente de 
cada módulo, utilizando uma mesma área de memória. Essa técnica 
é chamada de overlay. Memória 	Pr in cip a l
C a d a stra men to
Impressã o
S istem a 	O pera cion a l2 	 K b
3 	K b
4 	K b
4 	K b
2 	K b
2 	K b
1 	K b
Módu lo 	p rincip a l
Á rea 	d e 	ove rla y
Á rea 	 l ivre
Á rea 	n ã o
u til iz a da
v  A independência do código significa 
que quando um módulo estiver na 
memória para execução, o outro 
não precisa necessariamente estar 
presente 
Gerenciamento	de	Memória 
Tipos de Alocação (Contígua) 
187 
v  Alocação contígua simples: 
v  Técnica de Overlay: 
v  Sempre que um dos dois módulos for referenciado pelo módulo 
principal, o módulo será carregado da memória secundária para a 
área de overlay. 
v  No caso de uma referência a um módulo que já esteja na área de 
overlay, a carga não é realizada; caso contrário, o novo módulo irá 
sobrepor-se ao que já estiver na memória principal. 
Memória 	Pr in cip a l
C a d a stra men to
Impressã o
S istem a 	O pera cion a l2 	 K b
3 	K b
4 	K b
4 	K b
2 	K b
2 	K b
1 	K b
Módu lo 	p rincip a l
Á rea 	d e 	ove rla y
Á rea 	 l ivre
Á rea 	n ã o
u til iz a da
v  A definição das áreas de overlay é 
função do programador, através de 
comandos específicos da linguagem 
de programação utilizada. O 
tamanho de uma área de overlay é 
estabelecido a partir do tamanho do 
maior módulo. 
Gerenciamento	de	Memória 
Tipos de Alocação (Particionada) 
188 
v  ALOCAÇÃO PARTICIONADA 
v  Os sistemas operacionais evoluíram no sentido de proporcionar melhor 
aproveitamento dos recursos disponíveis. Nos sistemas monoprogramáveis, o 
processador permanece grande parte do tempo ocioso e a memória principal é 
subutilizada. 
v  Os sistemas multiprogramáveis já são muito mais eficientes no uso do 
processador, necessitando, assim, que diversos programas estejam na memória 
principal ao mesmo tempo e que novas formas de gerência da memória sejam 
implementadas. 
v  Com n processos na memória ao mesmo tempo, a probabilidade de todos 
eles aguardarem por entrada/saída ao mesmo tempo, caso em que o 
processador

Outros materiais