Buscar

SistemasOperacionais_PRONATEC_prof_Manoel

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

PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
1 
 
 
SISTEMAS 
OPERACIONAIS 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
2 
 
PROGRAMA DE DISCIPLINA 
ESCOLA OFERTANTE: 
CURSO: TÉCNICO EM INFORMÁTICA 
SEMESTRE: ANO: 2013 
DISCIPLINA: SISTEMAS OPERACIONAIS 
MÓDULO: I 
C/H ANUAL: 85h/a 
C/H SEMANAL: 5h/a 
I – Objetivos 
A disciplina Sistemas Operacionais tem por objetivo fornecer ao aluno uma visão detalhada dos 
principais mecanismos envolvidos na concepção de um sistema operacional moderno. 
Compreendendo sua importância, conhecendo as metodologias utilizadas para controle e 
aproveitamento dos recursos do computador; conhecendo os principais componentes de um sistema 
operacional e dos mecanismos e técnicas usadas para desenvolvê-los. 
Apresentar aos estudantes os conceitos e princípios básicos dos sistemas operacionais de 
computadores digitais, observando os sistemas operacionais como gerente dos recursos 
computacional e como elemento de interface entre programas de aplicação e os recursos da 
máquina. 
 
II – Conteúdo 
 
VISÃO GERAL 
Introdução 
2. Definição de Sistemas Operacionais 
3. História dos Sistemas Operacionais 
4 Classificação dos Sistemas Operacionais 
5 Funcionalidades 
6 Estruturas do Sistema Operaciona 
7 Chamadas de Sistemas 
8 Arquiteturas de Sistemas Operacionais 
GERENCIAMENTO DE PROCESSOS 
1 Introdução ao modelo de processos 
2 Estados de um Processo 
3 Threads 
4 Comunicação Interprocessos. 
5 Seções Críticas 
6 Deadlocks : Impasse entre Processos 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
3 
 
7 Gerenciador de processos 
8 Escalonamento de processos 
9 Escalonamentos Não-Preemptivos 
10 Escalonamentos Preemptivos 
GERENCIAMENTO DE ENTRADA E SAÍDA 
1 Introdução 
2. Princípios de Hardware de E/S 
Controladoras de Dispositivos 
3 Princípios de Software de E/S 
GERENCIAMENTO DE MEMÓRIA 
1 Introdução 
2. Gerenciamento Básico de Memória 
3. Gerencia de Memória para Multiprogramação 
3 Memória Virtual 
GERENCIA DE ARQUIVOS 
1. Introdução aos Sistemas de Arquivos 
2 Tipos de Arquivos 
3 Atributos 
3 Operações 
4 Implementação de Arquivos 
5 Diretórios 
 
III - Metodologia 
- Aulas expositivas e dialogadas, 
- Aulas práticas com Simulação e Demonstração utilizando o Simulador de Sistema Operacional 
SOsim 2.0, 
- Apresentação de seminários e Discussão dirigida, 
-Atividades e exercícios propostos no material. 
 
 
IV - Avaliação 
- A avaliação dos discentes será realizada perante os resultados diagnósticos aplicados ao longo 
do módulo e dividida conforme as formas formativas e somativas de verificação de aprendizagem. 
 Os instrumentos de avaliação formal (provas e/ou trabalhos) compõem o valor máximo de 5 
(cinco) pontos e terão um complemento de 5 (cinco) pontos considerando aspectos qualitativos 
como: participação nas discussões sobre tópicos da disciplina, a resolução de exercícios, a 
execução de trabalhos de pesquisa, assiduidade, realização de trabalhos práticos. 
 
. 
V – Bibliografia 
TANEMBAUM,A.S. Sistemas Operacionais Modernos .2ª edição . São Paulo,Ed.Prentice 
Hall,2003 
LEÃO,Erico Meneses : Sistemas Operacionais .Universidade Aberta do Brasil 
OLSEN .Diogo Roberto .Sistemas Operacionais/ LAUREANO.Marcos Aurélio.-Curitiba: Editora 
do Livro Técnico .2010 
Maziero, Carlos Alberto. Sistemas Operacionais Conceitos Básicos .2011 
 Machado, Francis B. Arquitetura de Sistemas Operacionais.Ed. LTC 
Abraham Silberschatz .Sistemas Operacionais: Conceitos e Aplicações.Ed. Campus 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
4 
 
Tanenbaum , A.S. Sistemas Operacionais Modernos .Ed. Campus 
A evolução dos sistemas operacionais-Traduzido e adaptado por Raimundo G Nóbrega Filho o 
texto Operating Systems: Design And Implementation,Andrew S. Tanenbaum - Editora Prentice 
Hall 
http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/Introducao.pdf 
http://www.afms.com.br/sistemas_operacionais.html 
www.docstoc.com/.../Lista-de-Exercícios-respondida---Grupo-Educacion 
Simulador de Ensino para Sistemas Operacionais 
http://www.training.com.br/sosim/- 
http://www.ppgia.pucpr.br/_maziero 
http://www.inf.unioeste.br/~marcio/SO/Aula9SistemadeArquivos.pdf 
http://docente.lages.ifsc.edu.br/juliano.goncalves/MaterialDidatico/Sistemas%20Operacionais/Exer
c%C3%ADcios%20Revis%C3%A3o%20ProvaI.pdf 
http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.php/so:filesystem.pdf 
http://www.cafw.ufsm.br/~roberto/?page_id=26 
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
5 
 
SUMÁRIO 
 
VISÃO GERAL ..................................................................................................................................... 6 
1 Introdução ....................................................................................................................... 6 
2. Definição de Sistemas Operacionais ............................................................................... 7 
3. História dos Sistemas Operacionais ................................................................................ 8 
4 Classificação dos Sistemas Operacionais ....................................................................... 12 
5 Funcionalidades ............................................................................................................. 17 
6 Estruturas do Sistema Operacional ................................................................................. 18 
7 Chamadas de Sistemas ................................................................................................... 19 
8 Arquiteturas de Sistemas Operacionais .......................................................................... 19 
GERENCIAMENTO DE PROCESSOS .....................................................................................................24 
1 Introdução ao modelo de processos ................................................................................ 24 
2 Estados de um Processo ................................................................................................. 26 
3 Threads ......................................................................................................................... 27 
4 Comunicação Interprocessos. ......................................................................................... 28 
5 Seções Críticas .............................................................................................................. 30 
6 Deadlocks : Impasse entre Processos ............................................................................. 30 
Gerenciador de Processos ................................................................................................. 34 
8 Escalonamento de Processos .......................................................................................... 34 
9 Escalonamentos Não-Preemptivos ................................................................................. 35 
10 Escalonamentos Preemptivos ....................................................................................... 36 
II ATIVIDADE PRÁTICA .......................................................................................................................41 
GERENCIAMENTO DE ENTRADA E SAÍDA ...........................................................................................43 
1 Introdução ..................................................................................................................... 43 
2. Princípios de Hardware de E/S...................................................................................... 43 
Controladoras de Dispositivos .......................................................................................... 44 
3 Princípios de Software de E/S ........................................................................................ 45 
GERENCIAMENTO DE MEMÓRIA ...............................................................................................491 Introdução ..................................................................................................................... 49 
2. Gerenciamento Básico de Memória .............................................................................. 50 
3. Gerencia de Memória para Multiprogramação .............................................................. 51 
Memória Virtual ............................................................................................................... 55 
GERENCIA DE ARQUIVOS...................................................................................................................59 
1. Introdução aos Sistemas de Arquivos ............................................................................ 59 
2 Tipos de Arquivos ......................................................................................................... 61 
3 Atributos ....................................................................................................................... 61 
3 Operações ...................................................................................................................... 62 
4 Implementação de Arquivos .......................................................................................... 63 
5 Diretórios ...................................................................................................................... 67 
REFERENCIAS BIBLIOGRÁFICAS ..........................................................................................................70 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
6 
 
 
VISÃO GERAL 
 
1 Introdução 
 
 O Sistema Operacional é um software que habilita as aplicações e interagem 
com o hardware de um computador, suas aplicações gerenciam todos os recursos do 
sistema (memória,processador,discos,impressoras e outros dispositivos ) de forma 
organizada e otimizada.(Livro Técnico ,Sistemas Operacionais . pág.09) 
Os sistemas Operacionais podem ser encontrados em dispositivos que vão de 
telefones celulares e automóveis e de computadores pessoais a computadores de grande 
porte 
O software, de um modo geral, é utilizado para solucionar os problemas do 
usuário, enquanto que o hardware do computador é o dispositivo físico capaz de 
executar esses softwares. Esses softwares, responsáveis por realizar as atividades dos 
usuários, comumente são chamados de programas aplicativos. 
 
 
Como pode ser visto na Figura , levando em consideração que temos uma 
camada intermediária, o SO entre os programas aplicativos e o hardware em si, o 
usuário não necessita conhecer toda a complexidade de implementação do hardware do 
Sistema Computacional para, assim, poder utilizá-lo. 
O Sistema Operacional, de fato, opera como uma interface entre o usuário e o 
dispositivo físico em si, no qual o usuário, quando necessita acessá-lo, faz essa 
solicitação diretamente ao Sistema Operacional. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
7 
 
 O sistema operacional é uma estrutura de software ampla, muitas vezes 
complexa que incorpora aspectos de baixo nível (como drives 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). 
Podemos concluir que os objetivos básicos de um sistema operacional podem 
ser sintetizados em duas palavras-chave: “abstração” e “gerência”, cujos principais 
aspectos são detalhados a seguir. 
 
 
2. Definição de Sistemas Operacionais 
 
Segundo Tanenbaum, podemos definir um Sistema Operacional levando em 
consideração dois pontos de vistas: 
 
 O Sistema Operacional como uma Máquina estendida; 
 O Sistema Operacional como gerenciador de recursos. 
 
O Sistema Operacional como uma Máquina estendida 
Acessar os recursos de hardware de um sistema de computação pode ser uma 
tarefa complexa, devido às características específicas de cada dispositivo físico e a 
complexidade de suas interfaces. 
O usuário (que pode ser um programador ou um usuário final), comumente, 
não está interessado em saber os detalhes funcionais dos dispositivos. Como exemplo, o 
usuário não quer saber o que é preciso, em nível de hardware, para que seja lida uma 
determinada informação um disco rígido (tarefa bem complexa, que exige o 
conhecimento de registradores, motores, cilindros e outros dispositivos físicos). O 
usuário deseja ter uma interface mais palpável e mais simples de lidar. No caso dos 
discos, por exemplo, uma abstração típica seria que o disco contenha um conjunto de 
nomes de arquivos. A partir desses nomes, é possível realizar as operações básicas 
(abrir, ler, escrever e fechar), sem se importar qual a velocidade e estado atual do motor, 
por exemplo. 
Assim, o Sistema Operacional aparece como o programa que esconde do 
usuário a complexidade do hardware e apresenta uma visão fácil e simples para as 
operações sobre os dispositivos. Essa visão é equivalente a uma máquina estendida ou 
máquina virtual, mais fácil de lidar. 
 
O Sistema Operacional como gerenciador de recursos 
Por outro lado, o Sistema Computacional é composto de uma série de recursos, 
no qual podemos enumerar: processadores, memórias, discos, mouses, teclados, 
impressoras, placas de rede e uma infinidade de dispositivos em geral. Dessa forma, o 
Sistema Operacional aparece como sendo o responsável por organizar e alocar de forma 
ordenada todos esses recursos disponíveis. 
Essa tarefa, em uma primeira vista, pode parecer simples. Porém, quando se 
tem vários programas disputando os recursos,que são limitados, é necessário utilizar 
técnicas de alocação dos dispositivos, a fim de se evitar inconsistências e, até mesmo, 
situações que resultem numa parada do sistema de uma forma geral.Então cabe ao 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
8 
 
sistema operacional definir políticas para gerenciar o uso dos recursos de hardware 
pelos aplicativos, e resolver eventuais disputas e conflitos. 
Assim, um sistema operacional visa abstrair o acesso e gerenciar os recursos de 
hardware, provendo aos aplicativos um ambiente de execução abstrato, no qual o acesso 
aos recursos se faz através de interfaces simples, independentes das características e 
detalhes de baixo nível, e no qual os conflitos no uso do hardware são minimizados. 
 
Objetivos de um Sistema Operacional 
 
 Tornar a utilização do computador eficiente e conveniente, a fim de ter 
um ganho de produtividade e, dessa forma, utilizar o Sistema Computacional para 
agilizar as atividades do dia-a-dia; 
 Garantir a integridade e segurança dos dados armazenados e processados 
pelos programas e dos recursos físicos disponíveis. 
 
3. História dos Sistemas Operacionais 
 
Os Sistemas Operacionais, ao longo dos anos, vêm se desenvolvendo e 
ganhando novas características, sendo necessário partimos ao seu histórico para que 
possamos compreender como se deu essa evolução. Partindo do pressuposto que a 
história dos Sistemas Operacionais sempre esteve intimamente vinculado à história das 
arquiteturas de computadores, iremos fazer um breve resumo dos principais eventos 
relacionados à evolução dos Sistemas Operacionais.( ERICO MENESES 
LEÃO,SISTEMAS OPERACIONAIS ) 
 
Início 
 
 
 
Máquina Analítica de Babage 
 
O primeiro computador digital, de fato, foi projetado por volta da década de 
1820 pelo matemático Charles Babbage e intitulada como motor analítico. Esta 
máquina, por se tratar de um equipamento puramente mecânico e a tecnologia da época 
não permitir a construção de engrenagens de alta precisão o qual Babbage necessitava, 
nunca funcionou adequadamente. Assim, o motor analítico de Babbage não possuía 
Sistema Operacional. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
9 
 
 
Primeira Geração (1945-1955) 
 
 
 
 
Impulsionado pela Segunda Guerra Mundial, surgiram os grandes 
computadores digitais, formados por milhares de válvulas e que ocupavam salas 
inteiras. Estes computadores, desenvolvidos por Howard Aiken e John Von Neumann, 
eram extremamente lentos.Para trabalhar nesta máquina era necessário o conhecimento do funcionamento 
do seu hardware, onde a programação era feita através de linguagem de máquina, 
freqüentemente ligando painéis de conectores com fios para o controle das funções 
básicas. 
Nessa época, ainda não existia o conceito de Sistema Operacional. Por esse 
fato, esta geração ficou conhecida como a geração das válvulas e painéis de conectores. 
 
 
 
Segunda Geração (1956-1965) 
 
Em 1952, a Bell Laboratories inventou o Transístor que passou a ser um 
componente básico na construção de computadores e que lhes garantia algumas 
vantagens como menor aquecimento, maior poder de cálculo, mais fiável e rápido, 
menor consumo de energia para além de não precisar de tempo para aquecer. Os 
cálculos passaram a ser medidos de segundos para microssegundos. O primeiro 
computador a transístores é o TRADIC, da Bell Laboratories e apareceu em 1955, 
possuía 800 transístores cada um em seu próprio recipiente. Outro modelo dessa época 
era o IBM 1401, com uma capacidade memória base de 4.096 bytes operando em ciclos 
de memória de 12 microssegundos. O tamanho dos computadores era ainda bastante 
grande e a instalação de um destes IBM 1401 ocupava uma sala. Em 1958 apareceu o 
IBM TX-0, tinha um monitor de vídeo de alta qualidade, alem de ser rápido e 
relativamente pequeno. O PDP-1 virou mania no MIT pois os alunos utilizavam o 
computador para jogar Rato-no-Labirinto e Spacewar com o auxílio de uma caneta 
óptica e um joystick. O elevado preço desta máquina restringia a sua utilização a 
aplicações estratégicas do governo, grandes empresas e universidades. 
 
ENIAC Mark I 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
10 
 
 
Primeiro transistor 
 
Terceira Geração (1966-1970) 
 
Circuitos integrados 
A terceira geração é conhecida com geração dos circuitos integrados (CI’s) e 
da multiprogramação, diminuindo consideravelmente o preço do computador, 
possibilitando assim sua aquisição por empresas. Esta época se caracteriza pelo grande 
aumento do poder de processamento e, também, a diminuição dos equipamentos. 
Nesta época, a IBM lançou o System/360, que era uma série de computadores 
pequena, poderosa e, sobre tudo, compatível. O 360 foi projetado para manipular 
cálculos tanto científicos como comerciais, ou seja, em uma única família de máquinas 
era possível satisfazer as necessidades de praticamente todos os clientes. 
Porém, para atender todas as aplicações e periféricos disponíveis por essa 
família de máquinas, a IBM teve que desenvolver um Sistema Operacional (OS/360) 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
11 
 
extremamente grande e complexo, posto que as aplicações disponíveis, comumente, 
eram contraditórias. Este Sistema Operacional consistia de milhões de linhas de 
linguagem assembler escrita por milhares de programadores e muitos bugs, que exigiam 
versões e mais versões a fim de corrigi-los. 
Apesar de todos os problemas, o OS/360 e os Sistemas Operacionais 
semelhantes atenderam a maioria dos seus clientes razoavelmente bem. Além disso, eles 
lançaram várias técnicas utilizadas até hoje, como exemplo a multiprogramação. A 
multiprogramação consistia em dividir a memória em várias partições a fim de permitir 
que várias tarefas sejam carregadas em cada partição. Enquanto uma tarefa esperava 
alguma operação de Entrada ou Saída, outra tarefa poderia usar o processador (CPU). 
Outro recurso disponível nos Sistemas Operacionais da terceira geração era a 
capacidade de ler Jobs (tarefas) de cartões para o disco. Assim, sempre que um job 
acabava sua execução, o Sistema Operacional podia carregar um novo job do disco para 
a partição e executá-lo. Esta técnica é conhecida como spooling. 
Entretanto, os Sistemas Operacionais ainda eram basicamente sistemas em lote 
e que não exigiam comunicação com o usuário. Assim, muitos programadores sentiam 
falta das máquinas de primeira geração, que eram disponibilizadas por completa para 
eles e, assim, podiam depurar seus programas. Assim, a multiprogramação evoluiu 
preocupada em oferecer aos usuários tempos de respostas razoáveis e uma interface 
cada vez mais amigável. Para tal, cada programa na memória utilizaria o processador 
em pequenos intervalos de tempo. Esse sistema de divisão de tempo ficou conhecido 
como compartilhamento de Tempo (time-sharing). 
A terceira geração também é marcada pelo surgimento do Sistema Operacional 
UNIX, escrito em linguagem de programação de alto nível, que se tornou popular no 
mundo acadêmico, entre órgãos do governo e entre muitas empresas. 
 
Quarta Geração (1980-1990) 
 
 
Computador Pessoal 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
12 
 
De fato, a década de 1980 é caracterizada pelo surgimento dos computadores 
pessoais. Os computadores pessoais se tornaram possíveis devido ao advento de novas 
tecnologias, impulsionados pelo avanço da indústria de hardware, com a introdução de 
novos circuitos integrados. Os computadores pessoais permitiram que as pessoas 
pudessem ter seu próprio computador. 
Os equipamentos desta geração se tornaram cada vez menores, mais velozes e, 
principalmente, mais baratos. Esses novos equipamentos, com alta disponibilidade de 
poder de computação, especialmente a computação altamente interativa, normalmente 
com excelentes gráficos, levaram ao crescimento de uma importante indústria, a 
indústria de softwares para computadores pessoais. 
Dois Sistemas Operacionais inicialmente dominaram o cenário dos 
computadores pessoais: o MS-DOS (Microsoft) e o UNIX. O MS-DOS foi amplamente 
utilizado no IBM PC e em computadores com a tecnologia Intel. Esse Sistema 
Operacional evolui para o sistema conhecido como Windows. 
Outra evolução que surgiu nesta geração foi o crescimento de redes de 
computadores pessoais executando Sistemas Operacionais de rede e Sistemas 
Operacionais distribuídos. Em um Sistema Operacional de rede, os usuários podem 
conectar-se a máquinas remotas e copiar arquivos de uma máquina para a outra. 
 
Quinta Geração (Dias atuais) 
Em 1993, Surge o primeiro processador Pentium dotado de memórias de 108 
pinos, ou DIMM. Depois vem o Pentium II, o Pentium III e mais recentemente o 
Pentium 4 (sem contar os modelos similares da concorrente AMD). Nesse meio tempo 
iam surgindo o slot AGP de 64 bits, memórias com mais pinos e maior velocidade, 
HD´s cada vez mais rápidos e com maior capacidade, etc. Basicamente são os 
computadores modernos. Ampliou-se drasticamente a capacidade de processamento de 
dados, armazenamento e taxas de transferência. Também é nessa época que os 
processos de miniaturização são iniciados, diminuindo o tamanho e aumentando a 
velocidade dos agora "populares" PC´s. O conceito de processamento está a ir para os 
processadores paralelos, ou seja, a execução de muitas operações em simultâneo. Na 
realidade, as maiores novidades desta época são os novos processadores, cada vez mais 
velozes. 
 
 A informática evolui cada vez mais rapidamente e as velocidades de 
processamento dobram em períodos cada vez mais curtos. Para se ter uma noção disso, 
basta observar que entre os modelos de computador mais antigos, os espaçamentos entre 
uma novidade e outra eram de dezenas de anos, sendo que hoje não chega a durar um 
mês. Isso leva-nos a concluir que o avanço científico e do poder de cálculo avança de 
maneira que não se encontra paralelo da história humana, fazendo baixar os custos e 
tornando acessíveis os computadores às pessoas de baixa renda. 
 
4 Classificação dos Sistemas Operacionais 
 
Os Sistemas Operacionais evoluíram juntamente com a evolução do hardware 
e das aplicações por ele suportada. Muitos termos inicialmente introduzidos para definir 
conceitos e técnicas foram substituídos por outros. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
13 
 
Abordaremos neste tópico, os diversos tipos de Sistemas Operacionais 
classificados quanto ao seu tipo de processamento, apontando suas principais 
características. 
 
 
Classificaçãodos Sistemas Operacionais 
 
 
Sistemas Monoprogramáveis ou Monotarefas 
 
Os Sistemas monoprogramáveis ou monotarefas são caracterizados por alocar 
o Sistema Computacional disponível exclusivamente para um único programa, ou seja, 
um programa tem todos os dispositivos, incluindo periféricos, memória e processador 
disponível durante todo o tempo em que ele está ativo, mesmo se não estiver usando. 
Os primeiros sistemas operacionais eram tipicamente voltados para a execução 
de um único programa. Os sistemas monoprogramáveis estão tipicamente relacionados 
ao surgimento dos primeiros computadores na década de 1960 e se caracterizam por 
permitir que todos os recursos do sistema fiquem exclusivamente dedicados a uma única 
tarefa, como ilustrado na Figura abaixo. 
 
 Sistemas Mono Programáveis 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
14 
 
 
Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à 
limitação de tarefas (uma de cada vez), o que provocava um grande desperdício de 
recursos de hardware. 
 
Sistemas Multiprogramáveis ou Multitarefa 
 
Constituindo-se uma evolução dos sistemas monoprogramáveis, neste tipo de 
sistema os recursos computacionais são compartilhados entre os diversos usuários e 
aplicações: enquanto um programa espera por um evento, outros programas podem estar 
processando neste mesmo intervalo de tempo. Neste caso, podemos observar o 
compartilhamento da memória e do processador. O sistema operacional se incumbe de 
gerenciar o acesso concorrente aos seus diversos recursos, como processador, memória 
e periféricos, de forma ordenada e protegida, entre os diversos programas. 
As vantagens do uso deste tipo de sistema são a redução do tempo de resposta 
das aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do 
sistema entre as diferentes aplicações. Apesar de mais eficientes que os 
monoprogramáveis, os sistemas multiprogramáveis são de implementação muito mais 
complexa. 
 
Sistemas Multiprogramáveis 
Os sistemas multiprogramáveis podem ser classificados pelo número de usuários 
que interagem com o sistema e pela forma com que suas aplicações são gerenciadas. 
 
Quanto ao número de usuários que interagem com o Sistema, podem ser 
classificados a seguir: 
 
 Sistemas monousuários: Apenas um usuário interage com o sistema, 
podendo realizar várias atividades ao mesmo tempo, como edição de texto, impressão e 
acesso a Internet, por exemplo. 
 Sistemas multiusuários: Sistema Operacional que possibilita vários 
usuários simultâneos. Esse sistema deve suportar a identificação de cada recurso, tais 
como arquivos, processos, ou conexões de redes e impor regras de controles de acesso 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
15 
 
para impedir o uso desses recursos por usuários não identificados. Os principais 
sistemas operacionais como Linux, Windows são considerados multiusuários. 
 
De acordo com a forma com que suas aplicações são gerenciadas, podem ser 
divididos em: sistemas batch, de tempo compartilhado e de tempo real, de acordo com 
a figura abaixo. 
 
. 
 
 Sistemas Batch : Neste tipo de sistemas todos os programas são 
colocados em uma fila para execução do processador .Este recebe um programa após o 
outro (em seqüência). Atualmente o termo batch é utilizado para definir um conjunto de 
comandos que rodam sem interferência do usuário. 
Estes sistemas, se bem projetados, podem ser bastante eficientes devido à 
melhor utilização do processador, mas podem oferecer tempos de resposta bastante 
longos. Atualmente, os sistemas operacionais simulam este tipo de processamento, não 
havendo sistemas dedicados a este tipo de execução. 
 
 Sistemas de Tempo Compartilhado: Também chamados sistemas de 
time-sharing, permitem que diversos programas sejam executados a partir da divisão de 
tempo do processador em pequenos intervalos, denominados fatia de tempo (ou time-
slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, este é 
interrompido pelo sistema operacional e substituído no processador por outro, enquanto 
aguarda nova fatia de tempo. Neste tipo de processamento, cada usuário tem a 
impressão de que a máquina está dedicada ao seu programa, como se ele fosse o único 
usuário a se utilizar do sistema. 
Geralmente permitem interação do usuário com a aplicação através de 
terminais compostos por monitor, teclado e mouse. Estes sistemas possuem uma 
linguagem de controle que permite ao usuário interagir com o sistema operacional 
através de comandos. Assim, é possível verificar arquivos armazenados em disco ou 
cancelar execução de programas. Normalmente, o sistema responde em apenas alguns 
segundos à maioria destes comandos, o que se levou a chamá-los também de sistemas 
on-line. 
A maioria das aplicações comerciais atualmente é processada em ambiente de 
tempo compartilhado, que oferece tempos baixos de respostas a seus usuários e menores 
custos, em função do alto grau de compartilhamento dos diversos recursos do sistema. 
 
Sistemas 
Multiprogramáveis/ 
Multitarefa 
Sistemas BATCH 
 ou 
Lote 
Sistemas de 
Tempo Compartilhado 
Sistemas de 
Tempo Real 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
16 
 
 Sistemas de Tempo Real: Este tipo de sistema é implementado de forma 
bastante semelhante ao de tempo compartilhado. O que caracteriza a diferença entre eles 
é o tempo exigido no processamento das aplicações. 
Enquanto nos sistemas de tempo compartilhado o tempo de processamento 
pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os 
tempos de execução devem estar dentro de limites rígidos, que devem ser obedecidos, 
caso contrário poderão ocorrer problemas irreparáveis. 
No sistema de tempo real não existe a idéia de fatia de tempo como nos 
sistemas de tempo compartilhado. Um programa ocupa o processador o tempo que for 
necessário ou até que apareça um outro com um nível de prioridade maior. Esta 
prioridade de execução é definida pela própria aplicação e não pelo sistema operacional, 
como nos sistemas de tempo compartilhado. 
Estes sistemas são utilizados em aplicações de controle de processos, como 
monitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas, ou em 
qualquer aplicação onde o tempo de processamento é fator fundamental. 
 
Sistemas Multiprocessadores 
 
Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou 
mais CPUs interligadas e trabalhando em conjunto. Esta característica traz com 
principal vantagem permitir que vários programas sejam executados ao mesmo tempo 
ou que um mesmo programa seja subdividido em várias partes para serem executadas 
simultaneamente em mais de um processador, de fato. Os conceitos aplicados ao projeto 
de sistemas com múltiplos processadores incorporam os mesmos princípios básicos e 
benefícios apresentados na multiprogramação, além de outras características e 
vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga. 
 Escalabilidade: É a capacidade de ampliar o poder computacional do 
sistema apenas adicionando novos processadores. 
 Disponibilidade: É a capacidade de manter o sistema em operação 
mesmo em casos de falhas. 
 Balanceamento de carga: É a possibilidade de distribuir o 
processamento entre os diversos processadores da configuração a partir da carga de 
trabalho de cada processador, melhorando, assim, o desempenho do sistema como um 
todo. 
Esta técnica permitiu a criação de sistemas computacionais voltados para 
processamento científico, prospecção de petróleo, simulações, processamento de 
imagens e CAD. 
Um fator chave no desenvolvimento dos sistemas multiprocessador é a forma 
de comunicação entre as CPUs e o grau de compartilhamento da memória e dos 
dispositivos de E/S. Em função destes fatores, podemos classificar os sistemas 
multiprocessador de acordo com a figura a seguir: 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
17 
 
 
 
 
Na figurapodemos perceber a divisão dos sistemas multiprocessador em duas 
categorias iniciais: sistemas fortemente acoplados e fracamente acoplados. A grande 
diferença entre estas duas categorias é que nos sistemas fortemente acoplados existe 
apenas uma memória a ser compartilhada pelos processadores do conjunto, enquanto 
que nos fracamente acoplados cada sistema tem sua própria memória individual. A taxa 
de transferência entre processadores e memória em sistemas fortemente acoplados é 
muito maior que nos fracamente acoplados. 
Nos sistemas fortemente acoplados a memória principal e os dispositivos de 
E/S são gerenciados por um único sistema operacional. Quando todos os processadores 
na arquitetura são iguais, diz-se que o sistema é simétrico. No entanto, quando os 
processadores são diferentes, dá-se à arquitetura a denominação assimétrica. 
 Nos sistemas fracamente acoplados, como os processadores estão em 
arquiteturas diferentes, somente interligados por cabos de interconexão, cada CPU 
constitui uma máquina independente, com memória própria, dispositivos de E/S e 
sistemas operacionais independentes. 
 
Nesta subdivisão, temos como exemplo as redes e os sistemas distribuídos. 
Rede: A característica deste sistema é possibilitar o compartilhamento de 
recursos e disponibilizá-lo para uso. 
Distribuídos: Os recursos de cada máquina estão disponíveis globalmente de 
forma transparente para o usuário. Do ponto de vista das aplicações é como se não 
houvesse um conjunto de vários computadores, mas apenas um único sistema 
centralizado. Portanto o usuário desconhece qual o computador que atendeu a sua 
solicitação. Infelizmente, estes sistemas operacionais não são uma realidade no 
mercado. 
Outros exemplos de sistemas distribuídos são os clusters, são formados por um 
conjunto de computadores convencionais ,os quais são ligados em rede e comunicam-se 
por meio do sistemas, trabalhando como se fossem uma única máquina de grande porte . 
5 Funcionalidades 
Para cumprir seus objetivos de abstração e gerência, o sistema operacional 
deve atuar em várias frentes. Cada um dos recursos do sistema possui suas 
particularidades, o que impõe exigências específicas para gerenciar e abstrair os 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
18 
 
mesmos. Sob esta perspectiva, as principais funcionalidades implementadas por um 
sistema operacional típico são: 
 
 Gerência do Processador: Visa distribuir a capacidade de 
processamento (uso de CPU) de forma justa. Deve-se lembrar que algumas aplicações 
demandam mais processamentos que outras (navegador de internet versus 
processamento de vídeo , por exemplo ) 
 
 Gerência de Memória: Tem como objetivo fornecer a cada aplicação 
um espaço próprio de memória, independente e isolada das demais aplicações 
 
 Gerência de Dispositivos: A função da gerência de dispositivos 
(também conhecida como gerência de entrada/saída) é implementar a interação com 
cada dispositivo por meio de drivers e criar modelos abstratos que permitam agrupar 
vários dispositivos distintos sob a mesma interface de acesso. 
 
 Gerência de Arquivos: Esta funcionalidade é construída sobre a 
gerência de dispositivos e visa criar arquivos e diretórios, definindo sua interface de 
acesso e as regras para seu uso. É importante observar que os conceitos abstratos de 
arquivo e diretório são tão importantes e difundidos que muitos sistemas operacionais os 
usam para permitir o acesso a recursos que nada tem a ver com armazenamento. 
 
 Gerência de Proteção: Políticas de acesso e uso do sistema operacional. 
Permite a definição de usuários ,grupos de usuários e registros de recursos por usuários. 
 
 Interface Gráfica: A interação com usuário se faz necessário, assim a 
maioria dos sistemas apresentam telas, nas quais se pode informar ao sistema 
operacional qual a operação que ele deverá fazer. 
 
 Suporte de Rede: A comunicação em rede é, atualmente, essencial ao 
mundo dos computadores. Assim, o gerenciamento dessas comunicações se faz 
necessário e é realizado sob a abstração do sistema operacional sobre os dispositivos 
físicos, como placas de redes ou modem. 
6 Estruturas do Sistema Operacional 
O sistema operacional é formado por um conjunto de rotinas que oferecem 
serviços essenciais aos usuários, às suas aplicações, e também ao próprio sistema. A 
esse conjunto de rotinas dá-se o nome de núcleo do sistema ou kernel. 
É fundamental não se confundir o núcleo do sistema com aplicações, utilitários 
ou o interpretador de comandos, que acompanham o sistema operacional. As aplicações 
são utilizadas pelos usuários de maneira transparente, escondendo todos os detalhes da 
interação com o sistema. Os utilitários, como os compiladores, editores de texto e 
interpretadores de comandos permitem aos usuários, desenvolvedores e administradores 
de sistema uma interação amigável com o sistema. 
Existe uma grande dificuldade em compreender a estrutura e o funcionamento 
do sistema operacional, pois ele não é executado como uma aplicação tipicamente 
seqüencial, com início, meio e fim. Os procedimentos do sistema são executados 
concorrentemente sem uma ordem específica ou predefinida, com base em eventos 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
19 
 
dissociados do tempo. Muitos desses eventos estão relacionados ao hardware e a tarefas 
internas do próprio sistema operacional. 
 
 
7 Chamadas de Sistemas 
Uma grande preocupação no projeto de sistemas operacionais se refere à 
implementação de mecanismos de proteção ao núcleo do sistema e também o controle 
de acesso aos serviços oferecidos pelo sistema. Caso uma aplicação que tenha acesso ao 
núcleo realize alguma operação que altere sua integridade, todo o sistema poderá ficar 
comprometido e inoperante. 
As chamadas de sistemas (system calls) constituem a interface entre um 
programa do usuário e o Sistema Operacional. Elas podem ser entendidas como uma 
porta de entrada para acesso ao núcleo do sistema, que contém suas funções. Sempre 
que o usuário necessitar de algum serviço, é realizada uma chamada a uma de suas 
rotinas através de uma system call. 
Através dos parâmetros fornecidos na system call, a solicitação é processada e 
uma resposta é enviada à aplicação juntamente com um estado de conclusão indicando o 
sucesso ou não da operação. Para cada serviço disponível existe um system call 
associada, e cada sistema operacional possui seu próprio conjunto de chamadas, com 
nomes, parâmetros e formas de ativação específica. Isto explica por que uma aplicação 
desenvolvida utilizando serviços de um determinado sistema operacional não pode ser 
diretamente portada para outro sistema. 
8 Arquiteturas de Sistemas Operacionais 
Em função de sua arquitetura os sistemas operacionais podem ser classificados 
em: 
 Núcleo monolítico ou monobloco: É um núcleo que implementa uma 
interface de alto nível, para possibilitar chamadas de sistemas específicas para gestão de 
processos , concorrência e gestão de memória por parte de módulos dedicados ,que são 
executados com privilégios especiais .Exemplos Windows e Linux. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
20 
 
 
 
 
 Micronúcleo ou Microkernel : É um termo usado para caracterizar o 
sistema cujas funcionalidades saíram do núcleo e foram para servidores ,que se 
comunicam com um núcleo mínimo possível do “espaço do sistema”(nesse, local o 
programa tem acesso a todas as instruções e a todo o hardware ) e deixando o máximo 
de recursos rodando no “espaço do usuário” (nesse espaço, o software sofre algumas 
restrições , não podendo acessar alguns hardware e não tendo acesso a todas as 
instruções ) 
 
Visão Geral de uma arquitetura micro-núcleo 
 
 Máquina Virtual: É uma arquitetura que permite que um sistema 
operacional suporte aplicações de outro sistema (Linux executando sobre Windows, por 
exemplo)m ou mesmo outro sistema operacional completo. Possibilita que sobre um 
mesmo hardware possam ser executados dois ou mais sistemasoperacionais. Exemplo 
VMware , VirtualBox. 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
21 
 
 
EXERCICIOS 
 
1. Como seria utilizar um computador sem um sistema operacional? Quais são suas 
duas principais funções? 
 
2. Defina Sistemas Operacionais, procurando abordar os dois pontos de vista 
segundo Tanembaum. 
 
3. Explique o conceito de máquina virtual. Qual a grande vantagem em utilizar este 
conceito? 
 
4. Defina o conceito de uma máquina de níveis ou camadas. 
 
5. Quais os tipos de sistemas operacionais existentes? 
 
6. Por que dizemos que existe uma subutilização de recursos em sistemas 
monoprogamáveis? 
 
7. Qual a grande diferença entre sistemas monoprogramáveis e sistemas 
multiprogramáveis? 
 
8. Quais as vantagens dos sistemas multiprogramáveis? 
 
9. Um sistema monousuário pode ser um sistema multiprogramável? Dê um 
exemplo. 
 
10. Quais são os tipos de sistemas multiprogramáveis? 
 
11. O que caracteriza o processamento batch? Quais aplicações podem ser 
processadas neste tipo de ambiente? 
 
12. Os primeiros Sistemas Operacionais eram Monotarefas, já os atuais são 
Multitarefa. De acordo com os tipos de Sistemas Operacionais identifique-os na 
figura abaixo e explique seu funcionamento e suas principais características. 
 
a. 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
22 
 
 
13. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em 
utilizá-los? 
 
14. Qual a principal diferença entre sistemas de tempo compartilhado e tempo real? 
Quais aplicações são indicadas para sistemas de tempo real? 
 
15. O que são sistemas com múltiplos processadores e quais as vantagens em utilizá-
los? 
16. Qual a diferença entre sistemas fortemente acoplados e fracamente acoplados? 
 
17. O que é um sistema fracamente acoplado? Qual a diferença entre sistemas 
operacionais de rede e sistemas operacionais distribuídos? 
 
18. Cite as principais funcionalidades de um projeto de Sistema Operacional. 
 
19. O que é uma system call e qual sua importância para a segurança do sistema? 
Como as system calls são utilizadas por um programa? 
 
 
20. O que é o núcleo do sistema e quais são suas principais funções? 
 
21. Como o kernel do sistema operacional pode ser protegido pelo mecanismo de 
modos de acesso? 
 
 
22. Explique as três arquiteturas do kernel de um Sistema Operacional. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
23 
 
 
ATIVIDADE COMPLEMENTAR 
 
 
1) Faça uma pesquisa e tente identificar os principais sistemas operacionais em 
uso. Classifique-os de acordo com sua arquitetura (monolítico, micronúcleo, ou máquina 
virtual) e tipo (rede, distribuído, multiusuário, etc.) 
 
LEITURA COMPLEMENTAR 
 
Existem diversos documentários sobre a história 
dos computadores. Pois bem, caso queira 
conhecer um pouco mais sobre a história recente 
do computador pessoal, existe um filme 
chamado “O Triunfo dos Nerds”, que conta a 
história da do surgimento da Microsot e da 
Apple, ou seja, o inicío da computação pessoal. 
Uma verdadeira aula de história! 
Fonte da figura: 
http://macmagazine.uol.com.br/wp-
content/uploads/2008/10/12-triunfosilicio2.jpg. 
Acesso em: 11 de Maio de 2010. 
Também existe um pequeno e informativo vídeo 
sobre a história dos computadores no Museu do 
Telefone no Rio de Janeiro. Você pode assisti-lo 
através do link a seguir: 
<http://midiaseducacao.blogspot.com/2009/06/hist
oria-do-computador-em-minutos.html>. 
 
 
 
 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
24 
 
 
GERENCIAMENTO DE PROCESSOS 
 
1 introdução ao modelo de processos 
 
Os primeiros Sistemas Operacionais eram caracterizados por apenas um 
programa poder ser executado de cada vez. Os computadores mais modernos são 
constituídos de Sistemas Operacionais com capacidade de executar várias tarefas ao 
mesmo tempo. 
De fato, o processador pode ser alternado de um programa para o outro, 
executando cada um por um determinado tempo (comumente em milissegundos). Em 
outras palavras, para um determinado intervalo de tempo, vários programas utilizam 
uma fatia desse tempo para realizar suas atividades, passando, assim, para o usuário a 
falsa impressão de que todos eles estão sendo executados ao mesmo tempo. 
Essa falsa impressão passada ao usuário de que vários programas estão sendo 
executados ao mesmo tempo é comumente conhecido por pseudoparalelismo. Para que 
isso seja possível é necessário um monitoramento das múltiplas atividades entre os 
vários programas, que se trata de uma tarefa difícil e bastante complexa. 
Segundo Tanenbaum, os projetistas de Sistemas Operacionais desenvolveram 
um modelo que torna o paralelismo mais fácil de tratar, conhecido como modelo de 
processos, assunto desta unidade. 
 
Conceito de Processos 
 
Um processo pode ser entendido inicialmente como um programa em 
execução, que tem suas informações mantidas pelo sistema operacional. 
Num sistema multiusuário, cada usuário tem a impressão de possuir o 
processador e todos os demais recursos reservados exclusivamente para si, mas isto não 
é verdade. Todos os recursos estão sendo compartilhados, inclusive a CPU. Neste caso, 
o processador executa o processo do usuário por um intervalo de tempo e, no instante 
seguinte, poderá estar processando outro programa, do mesmo ou de outro usuário. 
Para que a troca de processos possa ser feita sem problemas, é necessário que 
todas as informações do programa que está sendo interrompido sejam guardadas, para 
que ele possa retornar à CPU exatamente do ponto em que parou não lhe faltando 
nenhuma informação vital à sua continuação. Todas as informações necessárias à 
execução de um programa fazem parte do processo. 
Um processo também pode ser definido como o ambiente onde o programa é 
executado. Este ambiente, além das informações sobre a execução, possui também a 
quantidade de recursos do sistema que o programa pode utilizar como espaço de 
endereçamento, tempo do processador e área em disco. 
Para que o Sistema Operacional gerencie os processos, primeiro ele deve ser 
capaz de: (1) criá-los, (2) reservar memória e (3) colocar os processos numa fila de 
espera para uso do processador. O próprio Sistema Operacional é um conjunto de vários 
processos que também compartilham a CPU para serem executados. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
25 
 
Por exemplo, quando você executa o programa Internet Explorer do sistema 
operacional Windows para navegar na Internet, na verdade, você está solicitando a 
criação do iexplorer.exe (processo do programa Internet Explorer) ao explorer.exe 
(processo genérico do sistema responsável por fornecer comandos básicos e gerenciar o 
ambiente gráfico padrão do Windows). A Figura 2 mostra a tela de um computador que 
está executando o Process Explorer, um programa de gerenciamento de processos que 
na sua tela inicial mostra todos os processos que estão executando em seu computador e 
a relação entre eles (por exemplo, se um processo é pai de um outro), observe como o 
processo iexplorer.exe está situado entre os processos filhos do explorer.exe. 
 
 
 
Para você apenas visualizar quais processos estão sendo executado, o Windows 
possui o gerenciador de tarefas do sistema. Uma forma de acessá-lo é pressionando os 
botões Ctrl, Alt e Del, simultaneamente e escolher a opção “Iniciar Gerenciador de 
Tarefas”,ou clicar com o botão direito do mouse na barra de tarefas do meu iniciar aba 
“Iniciar gerenciador de Processos”. Assim, você terá acesso a essa importante 
ferramenta do sistema e poderá utilizá-las não só para visualizar os processos, mas 
também, caso ocorra algum problema com um processo específico, você poderá 
encerrá-lo. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
26 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 Estados de um Processo 
Os vários processos criados competem entre si pela atenção do processador a 
cada instante, cabendo ao gerenciador de processos do Sistema Operacional estabeleceruma ordem 
 
Em diferentes momentos, um processo pode está utilizando-se do processador, 
ou simplesmente aguardando, além disso, existem situações onde o processo, mesmo 
tendo o processador disponível, fica impossibilitado de prosseguir a execução, pois 
geralmente está aguardando por alguma entrada. Então, para que não exista desperdício 
no uso do processador, processos que estejam aguardando algum dado externo ficam 
bloqueados, deixando aos demais processos disputarem o uso do processador. Dessa 
forma, podemos dizer que os processos podem está em três estados, que seriam: 
 Executando: um processo está no estado executando quando ele, de fato, 
está sendo processado pela CPU. Em sistemas monoprocessados (único processador), 
somente um processo por vez pode estar de posse da CPU em um dado instante. Os 
processos se alternam na utilização do processador. 
 Pronto: um processo está no estado de pronto quando ele possui todas as 
condições necessárias para a sua execução, porém, não está de posse do processador. 
Em geral, existem vários processos no sistema prontos para serem executados e o 
Sistema Operacional é responsável por, dessa lista de processos, selecionar qual utilizar 
o processador em um determinado instante de tempo. 
 Bloqueado: um processo está no estado de bloqueado quando ele 
aguarda por algum evento externo ou por algum recurso do sistema indisponível no 
momento. Por exemplo, se um processo necessita de uma informação de algum 
dispositivo de E/S, enquanto essa informação não se torna disponível, o processo entra 
no estado de bloqueado. 
Os três estados de um processo em um Sistema Operacional tornam possível 
algumas transições, como ser observado na Figura abaixo. 
. 
 
DICA ! 
Para visualizar a árvore de processos no Windows, existe o 
programa Process Explorer que traz muito mais informações que o 
gerenciador de tarefas do Windows. Além de apresentar a estrutura 
de processos, indicando o parentesco entre eles, informa dados 
referente a cada processo, como a quantidade de memória utilizada 
por cada um. Vale a pena conferir, ele é um software gratuito 
disponível no seguinte link para download: 
<http://www.baixaki.com.br/download/process-explorer.htm> 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
27 
 
 
 A transição 1 (Executando - Bloqueado) ocorre quando um processo que 
estava utilizando o processador precisou de algum evento externo (operação de 
Entrada/Saída, por exemplo), não podendo continuar executando, passando, assim, para 
o estado de bloqueado. 
 
 A transição 2 (Bloqueado - Pronto) ocorre quando o evento externo, no 
qual o processo bloqueado aguardava, acontece. Nesse caso, o processo passa para o 
estado de pronto e volta para a fila para poder concorrer novamente ao processador. Se 
não existir nenhum processo na fila de prontos, naturalmente, o processo desbloqueado 
utilizar a CPU. 
 
 Já as transições 3 (Pronto - Executando) e 4 (Executando -Pronto) são 
realizados pelo escalonador de processos. Comumente, existem vários processos 
prontos e esperando para serem executados. Cabe então ao Sistema Operacional 
(escalonador) escolher, entre os processos prontos, qual utilizará o processador e poderá 
executar suas atividades. O Sistema Operacional (dependendo da política do 
escalonador) pode, também, retirar o processador de um determinado processo e 
disponibilizá-lo para outro processo. 
 
3 Threads 
 
Atualmente, vários programas precisam executar várias tarefas ao mesmo 
tempo, por exemplo, um sistema de segurança de um prédio precisa receber imagens de 
várias câmeras, gravá-las em um disco e ainda exibi-las em uma tela para que possam 
ser monitoradas. 
Para que um único processo possa realizar mais que uma tarefa ao mesmo 
tempo , Há as Threads. 
 Threads são fluxos de execução (linha de controle) que rodam dentro de um 
processo, ou seja, uma Thread pode ser vista como um fluxo de execução de uma 
tarefa. Em processos tradicionais, há uma única linha de controle e um único contador 
de programa. Porém, alguns Sistemas Operacionais fornecem suporte para múltiplas 
linhas de controle dentro de um processo (sistemas multithread). 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
28 
 
Ter múltiplas linhas de controle ou threads executando em paralelo em um 
processo equivale a ter múltiplos processos executando em paralelo em um único 
computador. Um exemplo tradicional do uso de múltiplas thread seria um navegador 
web, no qual pode ter uma thread para exigir imagens ou texto enquanto outro thread 
recupera dados de uma rede. 
É importante destacar que as threads existem no interior de um processo e 
compartilham entre elas os recursos do processo, como o espaço de endereçamento 
(código e dados). 
 
4 Comunicação Interprocessos. 
 
Em um Sistema Operacional, freqüentemente, os processos podem precisar 
trocar informações entre eles ou podem solicitar a utilização de um mesmo recurso 
simultaneamente, como arquivos,registros, dispositivos de E/S e memória. O 
compartilhamento de recursos entre vários processos pode causar situações indesejáveis 
e, dependendo do caso, gerar o comprometimento da aplicação. 
O Sistema Operacional tem a função de gerenciar e sincronizar processos 
concorrentes, com o objetivo de manter o bom funcionamento do sistema 
 
Condições de Corrida 
 
Podemos definir uma condição de corrida quando dois ou mais processos 
podem compartilhar algum espaço de memória compartilhado no qual, o resultado da 
informação deste espaço de armazenamento depende de quem executa. Um exemplo 
típico de condição de corrida, apontado por vários autores, é o spool de impressão. 
Quando um processo deseja imprimir alguma informação, ele insere o nome de 
arquivo em um espaço denominado diretório de spooler. Existe outro processo, o 
servidor de impressão, que verifica periodicamente se há qualquer arquivo a ser 
impresso e, caso haja, ele os imprime e remove a informação do diretório. 
Consideremos a seguinte situação: o diretório de spooler contém um número de 
entradas numeradas e um processo, quando deseja imprimir alguma informação, 
consulta uma variável (entrada) a fim de saber em qual posição inserir o nome de 
arquivo no diretório. 
 
O diretório de impressão está ilustrado na Figura abaixo. 
 
Diretório de spooler (impressão) 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
29 
 
Podemos imaginar agora a seguinte situação: um processo A lê a variável 
entrada e armazena o valor dela (valor 0) em uma variável local. Porém, o tempo de 
execução do processo A termina e o Sistema Operacional o retira do processador, 
disponibilizando-o a um outro processo B. O processo B, por sua vez, também deseja 
imprimir um arquivo, acessa a área do diretório de impressão, verifica o valor da 
variável entrada (valor 0), armazena este valor em uma variável local e, por fim, insere 
o nome de seu arquivo a ser impresso na posição 0 do diretório de impressão, mudando 
o valor da variável entrada para 1. 
A Figura abaixo visualiza esta situação atual. 
 
Situação do Diretório de impressão após inserção do nome de arquivo do processo B 
Por fim, o processo A retoma o processador, iniciando novamente de onde 
parou. Ao examinar em sua variável local o valor da variável entrada (esta informação 
ele guardou em sua tabela, momento em que ele parou a execução), o processo observa 
o valor 0 e escreve seu nome de arquivo nessa posição, apagando o nome de arquivo do 
processo B. Em seguida, incrementa o valor da variável entrada para 1. 
A Figura abaixo mostra a nova situação do servidor de impressão. 
 
 
Situação do Diretório de impressão após inserção do nome de arquivo do processo A 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
30 
 
Internamente, o servidor de impressão continua consistente, porém o arquivo 
do processo B jamais será impresso. Caracterizamos este tipo de situação como uma 
condição de corrida. 
5 Seções Críticas 
Para se evitar uma condição de corrida é precisodefinir métodos que proíba 
que mais de um processo acesse uma determinada área de memória compartilhada ao 
mesmo tempo. Esses métodos são conhecidos como exclusão mútua. Um processo, 
durante seu tempo de execução, pode realizar uma série de computações internas que 
não geram condições de corrida ou pode estar acessando memória compartilhada, que 
levam à condição de corrida. 
A parte do programa no qual o processo acessa memória compartilhada é 
chamada seção crítica ou região crítica. Dessa forma, a solução para se evitar uma 
condição de corrida seria organizar os problemas de tal forma que nenhum de dois ou 
mais processos estivessem em suas regiões críticas ao mesmo tempo. 
Para se ter uma boa solução de exclusão mútua, precisamos evitar algumas 
situações indesejáveis, como: 
 Nenhum processo que esteja fora de sua região crítica pode bloquear a 
execução de outro processo; 
 Nenhum processo deve esperar indefinidamente para poder entrar em sua 
região crítica. 
 
6 Deadlocks : Impasse entre Processos 
 
O Sistema Computacional está repleto de recursos, que podem ser utilizados 
pelos processos. Comumente, a quantidade de recursos disponíveis é muito menor que a 
quantidade de processos solicitando esse recurso. Dependendo do recurso, este fato 
pode gerar uma situação de bloqueio eterno do processo. 
Podemos, assim, definir que um conjunto de processos está em deadlock ou 
impasse quando cada um desses processos está bloqueado esperando um evento que só 
pode ser gerado por outro processo desse conjunto. Como todos os processos estão 
bloqueados, nenhum deles poderá gerar um evento e, naturalmente, todos continuarão 
nessa situação. 
 Um bom exemplo apontado por Tanenbaum trata-se de dois processos 
querendo ler dados de um CD e imprimindo em uma impressora. 
Suponha que o processo A solicite a impressora, que é disponibilizada. De 
forma análoga, o processo B solicita o CD-ROM,que lhe é disponibilizado. Agora o 
processo A solicita o CD-ROM, enquanto que o processo B solicita a impressora. Como 
ambos os recursos já estão alocados, o processo A e B serão bloqueados. 
Nessa situação eles continuarão indefinidamente, pois nenhum processo terá 
como se finalizar e, por fim, liberar o recurso já alocado. Esses processos geram um 
deadlock. 
É importante destacar, que os impasses podem ser gerados tanto por recursos 
de hardware quanto por recursos de software. Um recurso de software seria um impasse 
gerado no acesso a registros sendo assim, trataremos o termo recurso de uma forma 
geral. 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
31 
 
Os recursos podem ser divididos em dois tipos: 
 
 Recursos preemptíveis: trata-se de recursos que podem ser retirados de 
um determinado processo sem gerar problema algum. Por exemplo, a memória. 
 Recursos não-preemptíveis: trata-se de recursos que não podem ser 
retirados de um determinado processo sem causar problemas. Por exemplo, é inviável 
retirar a impressora de um determinado processo que começou a imprimir sua saída. 
 
Condições para um Impasse. 
 
Coffman demonstrou em 1971 que existe quatro condições para que haja um 
impasse: 
 Condição de exclusão mútua: Somente um processo de cada vez pode 
acessar um recurso. Caso contrário, o recurso estará disponível. 
 Condição de posse e espera: Um processo deve estar de posse de um 
recurso e solicitando novos recursos. 
 Condição de não preempção: Os recursos concedidos aos processos não 
podem ser retirados deles. 
 Condição de espera circular: Deve haver uma cadeia circular de dois ou 
mais processos, cada um dos quais está esperando um recurso já segurado pelo próximo 
membro da cadeia e, assim por diante. 
 
 
Métodos de Lidar com Deadlocks 
 
Existem várias formas de lidar com deadlocks. Em geral, temos quatro 
métodos: 
 Ignorar completamente o problema. 
 Detectar e recuperar uma situação de deadlock. 
 Prevenir um deadlock através da negação das quatros condições de 
Coffman. 
 Impedimento de um deadlock através de uma alocação dinâmica 
cuidadosa de recursos. 
 Por incrível que pareça, a estratégia mais usada nos 
sistemas operacionais é a de ignorar os problemas de deadlock, pois os 
possíveis tratamentos desse tipo de situação podem acarretar em perdas de 
desempenho do sistema, comprometendo a execução dos processos. 
 Assim, é mais comum que os próprios softwares procurem 
evitar situações de deadlock na lógica em seus códigos e, no caso de 
ocorrer alguma situação de impasse, é preferível encerrar a execução de 
um processo ou até reiniciar o computador em casos mais extremos. 
 
 
 
 
 
 
 
DICA ! 
O SOsim 2.0 (Simulador de Sistema Operacional) é um software 
educacional que permite simular situações de gerencias de um sistema 
Operacional . 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
32 
 
EXERCICIO 
 
1. Defina processos. 
 
2. Por que o conceito de processo é tão importante no projeto de sistemas 
multiprogramáveis? 
 
3. Descrevas os estados que um processo pode ocupar em um sistema 
baseado no modelo de processos. 
 
 
4. Comente as possíveis transições que podem ocorrer entre os estados de 
um processo. 
 
5. O que são Threads. Caracterize os sistemas multithreads. 
 
6. O que são condições de corrida? 
 
7. O que é uma região crítica e exclusão mútua? 
 
8. Cite as condições para se ter uma boa solução que evite condições de 
corrida. 
 
9. Descreva de forma sucinta o método de exclusão mútua ativa 
 
10. Defina deadlock . 
 
11. Quais as condições segundo Coffman para que aconteça um impasse 
entre processos? 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
33 
 
ATIVIDADE COMPLEMENTAR 
 
 
1. Diversos exemplos na literatura de sistemas operacionais procuram 
demonstrar situações de deadlock. São exemplos simples, como o clássico exemplo dos 
cinco filósofos jantando. Procure na internet dados sobre esse exemplo e apresente. 
 
 
ATIVIDADE PRÁTICA 
 
1. Criação de Processos 
 
a) Práticas de simulação 
· Execute o simulador SOsim e identifique as quatro janelas que são abertas na 
inicialização. 
· Crie um processo: janela Gerência de Processos / Criar – janela Criação de 
Processos / 
Criar. 
b) Análise Prática 
· Na janela Gerência de Processos, observe algumas informações sobre o 
contexto de 
software do processo como prioridade, estado do processo e tempo de 
processador. 
· Na janela Gerência de Processador, observe o processo transacionando entre 
estados. 
· Na janela Gerência de Processador, movimente a barra de Clock de UCP e 
observe as 
variações ocorridas. 
c) Questão teórica para responder com a ajuda do simulador :Com base na 
observação do comportamento do processo criado, identifique se o processo é 
I/Obound 
ou CPU-bound. Justifique sua resposta. 
 
2. Tipos de Processos 
a) Práticas de simulação 
· Reinicialize o simulador. 
· Crie um processo do tipo CPU-bound: janela Gerência de Processos / Criar – 
janela Criação de Processos / Criar (tipo de processo deve ser CPU-bound). 
· Crie outro processo do tipo I/O-bound: janela Gerência de Processos / Cria – 
janela Criação de Processos / Criar (tipo de processo deve ser I/O-bound). 
b) Análise Prática 
· Na janela Gerência de Processos, observe as mudanças de estado dos dois 
processos. 
· Na janela Gerência de Processador, observe o comportamento dos processos e 
as mudanças de contexto em função do tipo I/O-bound e CPU-bound. 
· Na janela Gerência de Processos, compare a taxa de crescimento do tempo de 
processador dos dois processos. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
34 
 
c) Questão teórica para responder com a ajuda do simulador :Analise os 
efeitos gerados no caso de redução do tempo gasto na operação de E/S pelo processo 
I/O-bound. 
 
Gerenciador de Processos 
Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos 
poderiam permanecer na memória e disputar o uso de um único processador, a gerência 
do processador tornou-se uma dasatividades mais importantes em um sistema 
operacional. 
A partir do momento em que vários processos podem estar no estado de pronto, 
devem ser estabelecidos critérios para definir qual processo será escolhido para fazer 
uso do processador. Tais critérios compõem a política de escalonamento, que é a base 
da gerência do processador e da multiprogramação em um sistema operacional. 
Dentre as funções da gerência do processador, podemos citar: manter o 
processador ocupado a maior parte do tempo. balancear o uso da CPU entre processos, 
privilegiar a execução de aplicações críticas, maximizar o throughput e oferecer tempos 
de resposta razoáveis aos usuários interativos. 
Cada sistema operacional possui sua política de escalonamento adequada ao 
seu propósito e às suas características. Sistemas de tempo compartilhado, por exemplo, 
possuem requisitos de escalonamento distintos dos sistemas de tempo real. 
 
3. Escalonamento de Processos 
 
O escalonamento de processos é a forma com que os processadores 
disponíveis (um ou vários) no Sistema Computacional são distribuídos ou alocados para 
os vários processos prontos. 
A parte do Sistema Operacional responsável por selecionar qual será o 
processo que executará no processador é chamado de escalonador ou agendador. 
Dessa forma, a ordem com que os processos serão executados pelo processador é 
definida por um determinado algoritmo ou política de escalonamento de processos. 
O projeto de um algoritmo de escalonamento deve levar em conta uma série de 
critérios , no qual alguns são apontados a seguir: 
 
 Throughput: é o número de processos executados em um determinado 
intervalo de tempo. Quanto maior o throughput, maior o número de tarefas executadas 
em função do tempo. A maximização do throughput é desejada na maioria dos sistemas. 
 
 Tempo de Processador: é o tempo que um processo leva no estado de 
execução, durante seu processamento. As políticas de escalonamento não interferem 
neste parâmetro, sendo este tempo função apenas do código executável e da 
entrada/saída de dados. 
 
 Tempo de Espera (pela CPU): é todo o tempo que o processo permanece 
na fila de pronto, aguardando a liberação da CPU para ser executado. A redução deste 
tempo de espera é desejada pela maioria das políticas de escalonamento. 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
35 
 
 Tempo de Turnaround: é o tempo total que o processo permaneceu no 
sistema, desde sua criação até o momento em que é encerrado. São contados os tempos 
de alocação de memória, espera na fila de pronto e interrupção (E/S). 
 
 Tempo de Resposta: é o tempo decorrido entre uma requisição ao sistema 
e o instante em que a resposta começa a ser exibida. Em sistemas interativos, como 
aplicações on-line ou acesso à Web, os tempos de resposta devem ser da ordem de 
apenas poucos segundos. 
Os algoritmos de escalonamentos podem ser classificados em preemptíveis e 
não-preemptíveis. O algoritmo de escalonamento é não-preemptível quando o 
processador alocado para um determinado processo não pode ser retirado deste até que 
o processo seja finalizado. 
 Já o algoritmo de escalonamento é dito preemptível quando o processador 
alocado para um determinado processo pode ser retirado deste em favor de outro 
processo. 
Atualmente a maioria dos sistemas são preemptívos 
4. Escalonamentos Não-Preemptivos 
Algoritmo de Escalonamento FIFO (First in First out) 
Trata-se do algoritmo de escalonamento de implementação mais simples. Com 
este algoritmo de escalonamento, o primeiro processo que solicita a CPU é o primeiro a 
ser alocado. Dessa forma, os processos que estão prontos para serem executados pela 
CPU são organizados numa fila, que funciona baseado na política FIFO (First in First 
out – Primeiro a entrar é o primeiro a sair). 
Vejamos um exemplo. Considere o seguinte conjunto de processos: 
 
Supondo que a ordem de chegada dos processos seja: A – B – C – D. Dessa 
forma, baseado na política FIFO, a ordem de execução dos processos é mostrado na 
Figura abaixo (diagrama de tempo). 
 
Diagrama de tempo usando a política FIFO. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
36 
 
Para este conjunto de tarefas o tempo de espera do processo A é de 0 (zero) 
unidades de tempo; para o processo B de 12 unidades de tempo; para o processo C de 
20 unidades de tempo; e para o processo D de 35 unidades de tempo. O tempo médio de 
espera na fila de prontos é de (0+12+20+35)/4, que equivale a 16,75 unidades de 
tempo. 
Nesta política de escalonamento o tempo médio de espera é, com freqüência, 
um tanto longo. Outro ponto é que processos importantes podem ser obrigados a esperar 
devido à execução de outros processos menos importantes dado que o escalonamento 
FIFO não considera qualquer mecanismo de distinção entre processos. 
 
Algoritmo de Escalonamento Menor Tarefa Primeiro (SJF –shortest job 
first) 
 
Neste escalonamento o processo que tem o menor ciclo de processamento 
(tempo de execução) será selecionado para usar o processador. 
Considerando o mesmo conjunto de tarefas apresentados, teríamos o diagrama 
de tempo apresentado na Figura abaixo. 
 
 
Diagrama de tempo usando a política Menor Tarefa Primeiro. 
Nesta política de escalonamento, o tempo de espera do processo A é de 13 
unidades de tempo; para o processo B de 5 unidades de tempo; para o processo C de 25 
unidades de tempo; e para o processo D de 0 unidades de tempo. O tempo médio de 
espera na fila de prontos é de (13+5+25+0)/4, que equivale a 10,75 unidades de tempo. 
Em média, nessa política de escalonamento, os processos tiveram que esperar 
menos para serem executados pelo processador. 
Segundo Silberschatz, a dificuldade real com o algoritmo de Menor Tarefa 
Primeiro é saber o tempo de duração da próxima solicitação de CPU. Assim, trata-se de 
um algoritmo ótimo, porém, não pode ser implementado, pois não há modo de saber o 
tempo de duração do próximo pico de CPU. Uma abordagem possível é tentar 
aproximar-se do algoritmo de Menor Tarefa Primeiro. 
 
5. Escalonamentos Preemptivos 
Algoritmo de Escalonamento Round Robin 
 
O algoritmo Round Robin, conhecido também como algoritmo de 
escalonamento circular, também organiza a lista de processos prontos como uma fila 
simples, semelhante ao algoritmo FIFO. 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
37 
 
. É muito semelhante ao FIFO (obedece a ordem de chegada á fila de 
PRONTO), mas quando um processo passa para o estado de execução há um limite de 
tempo para o uso contínuo do processador, chamado fatia de tempo (time-slice) ou 
quantum. Assim, toda vez que um processo é selecionado para execução uma nova fatia 
de tempo lhe é concedida. Caso esta fatia de tempo expire, o sistema operacional 
interrompe o processo, salva seu contexto e o direciona para a fila de PRONTO. 
 
Algoritmo de Escalonamento por Prioridades 
Nesta política, os processos são organizados na fila de prontos baseado em 
prioridades. Quem tiver maior prioridade vai para o início da fila. Quem tiver menor 
prioridade vai se encaixando no final da fila. Esta prioridade pode ser uma atribuição 
externa ao sistema. 
Vejamos um exemplo. Considere o seguinte conjunto de processos: 
 
Dessa forma, baseado na política de escalonamento por prioridades (quanto 
menor o número, maior a prioridade), a ordem de execução dos processos é mostrado 
através da Figura abaixo (diagrama de tempo). 
 
Diagrama de tempo usando a política por prioridades. 
Alguns aspectos devem ser considerados na política de escalonamento por 
prioridades. Primeiro, se no sistema existir uma quantidade grande e interativa de 
processos de alta prioridade, podemos chegar a uma situação onde processos de baixa 
prioridade nunca executarão. 
Uma possível solução para este problema é a utilização de prioridades 
dinâmicas. Dessa forma, os processos de baixa prioridade podem ter suas prioridades 
lentamente aumentadas, tendo, assim, chances de utilizar o processador. 
 
 
 
 
PRONATEC/SEDUC-PISISTEMAS OPERACIONAIS 
38 
 
Algoritmo de Escalonamento Múltiplas Filas 
 
Este escalonamento implementa várias filas de pronto, cada uma com 
prioridade específica. Os processos são associados às filas de acordo com características 
próprias, como importância da aplicação, tipo de processamento ou área de memória 
necessária. Assim, não é o processo que detém a prioridade, mas sim a fila.. Dessa 
forma, ao invés de termos apenas uma única fila de prontos, poderíamos construir várias 
filas de prontos e agrupar os processos de mesma categoria nessas filas. Para cada fila 
poderíamos definir prioridades diferentes e políticas de escalonamentos específicas 
.Um exemplo deste algoritmo seria considerar duas filas de prontos, uma com 
maior prioridade e outra de menor prioridade, as duas funcionando segunda a política 
Round Robin. Dessa forma, se a fila mais prioritária tiver processos, estes terão 
prioridade sobre o processador. Caso a fila mais prioritária estiver vazia, os processos 
prontos da fila menos prioritária irão concorrer ao processador. 
 
2.4 Sincronização dos Recursos 
A sincronização dos recursos do computador é uma tarefa muito importante, 
realizada pelos sistemas operacionais multitarefa e é feita em duas áreas distintas: 
 Sincronização dos Dados: nesse caso o objetivo é manter os dados do 
computador em perfeita integridade; 
 Sincronização dos Processos: refere-se à sincronização da execução dos 
processos,com o objetivo de se evitar o conflito na utilização dos recursos do 
computador; 
A sincronização dos processos só faz sentido em sistemas multitarefa, em que a 
cada instante, vários processos poderão estar em execução. O trabalho do sistema 
operacional será garantir que cada processo seja concluído corretamente. Aqui, o 
conceito de processo será aplicado tanto ao processo em si quanto à thread, ou seja, a 
sincronização de processos e sincronização de threads serão tratados de maneiras 
unificadas, como Sincronização de Processos. 
Para realizar a sincronização algumas medidas podem ser tomadas: a utilização 
de Barreiras, Travas, Semáforos, Comunicação e várias outras. Algumas dessas medidas 
são implementadas no código dos programas, como as Barreiras, e outras medidas são 
realizadas no sistema operacional, as Travas. 
As Barreiras são criadas e gerenciadas pelos desenvolvedores de programas 
aplicativos. Dentro das instruções desses programas, deve-se incluir uma instrução de 
criação de Barreira. Quando um processo executa tal instrução, entra em estado de 
Espera (ou Bloqueio), e permanece assim até que todos os processos pertencentes ao 
mesmo programa também executem a instrução de Barreira. Com isso consegue-se 
colocar todos os processos no mesmo ponto de execução do programa. 
Semáforos podem ser utilizados tanto pelos programas quanto pelo sistema 
operacional. São variáveis de controle, que indicam se um determinado recurso pode ser 
utilizado ou não. O modo mais frequente de controle é a utilização de um contador no 
semáforo. O contador indica a quantidade de processos que podem compartilhar o 
recurso, quando o limite é alcançado, nenhum processo a mais pode utilizar o mesmo 
recurso. 
Barreiras e Semáforos geralmente são utilizados para lidar com situações em 
que vários processos podem (ou devem) compartilhar um mesmo recurso. Nos casos, 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
39 
 
nos quais um recurso deve ser utilizado exclusivamente por apenas um processo é 
utilizada a Trava. 
Alguns sistemas implementam Travas Simples, que impedem a utilização do 
recurso por outro processo, e outros sistemas implementam Travas Especiais, que 
emitem um sinal (aviso de erro) quando um processo tenta acessar um recurso já em 
uso. Existe também a possibilidade de se ter uma Trava Compartilhada por vários 
processos, mas nesse caso, o acesso ao recurso fica limitado apenas à leitura dos dados 
contidos nele. 
Para o correto funcionamento dos métodos de sincronização, o processador 
deve estar preparado para permitir que os processos consigam compartilhar um recurso 
até o limite estabelecido, sem que haja conflito no controle de sincronia. Por exemplo, 
em um sistema de Trava, se ela estiver aberta significa que um processo poderá acessar 
o recurso. Se, em um mesmo instante, dois processos tentarem utilizar o recurso, os dois 
conseguirão acesso ao recurso e com certeza isso resultará em má utilização dele 
(imagine uma impressora imprimindo simultaneamente dois documentos diferentes). 
Para evitar essa falha, os processadores devem possuir mecanismos de 
verificação e ativação da sincronia quase instantânea, ou no mínimo, não conflitante. 
Esses mecanismos no processador são instruções que realizarão a sincronização de 
maneira correta, as instruções serão do tipo “verificar e travar recurso”, uma mesma 
instrução faz a verificação e, se possível, o travamento do recurso. Esse mecanismo só é 
válido em computadores com um processador (podendo o processador ter vários 
núcleos). Em computadores com vários processadores, o controle da sincronização é 
mais complexo, havendo um maior número de considerações a serem feitas. A etapa de 
efetivação do sincronismo é muito importante, o tempo que ela demora não deve em 
hipótese alguma ser demorado. A efetivação da sincronização deve acontecer 
obrigatoriamente antes de o processador executar mais uma instrução de outro processo 
(ou do mesmo processo). 
 A etapa de liberação de uma sincronização também deve ser tratada de 
maneira adequada, pois em um ambiente de execução de múltiplos processos, para 
haver a real otimização da utilização dos recursos, os processos devem ter acesso aos 
mesmos assim que eles não estiverem em uso. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
40 
 
 
EXERCICIO 
 
 
1. O que é política de escalonamento de um sistema operacional? 
 
2. Quais as funções do escalonador e do dispatcher? 
 
3. Quais os principais critérios utilizados em uma política de escalonamento? 
 
4. Diferencie os tempos de processador, espera, turnaround e resposta. 
 
5. Diferencie os escalonamentos preemptivos e não-preemptivos. 
 
6. Qual a diferença entre os escalonamentos FIFO e circular? 
 
7. Descreva o escalonamento SJF e o escalonamento por prioridades. 
 
8. Qual a diferença entre preempção por tempo e preempção por prioridade? 
 
9. O que é um mecanismo de escalonamento adaptativo? 
 
10. Que tipo de escalonamento aplicações de tempo real exigem? 
 
 
11.Considere um sistema operacional que implemente escalonamento circular 
com fatia de tempo igual a 10 u.t.. Em um determinado instante de tempo, existem 
apenas três processos (P1, P2 e P3) na fila de pronto, e o tempo de UCP de cada 
processo é 18, 4 e 13 u.t, respectivamente. Qual o estado de cada processo no instante 
de tempo T, considerando a execução dos processos P1, P2 e P3, nesta ordem, e que 
nenhuma operação de E/S é realizada? 
a) T = 8 u.t. 
 
b) T = 11 u.t. 
 
c) T = 33 u.t. 
 
12. Considere um sistema operacional que implemente escalonamento circular 
com fatia de tempo igual a 10 u.t. Em um determinado instante de tempo, existem 
apenas três processos (P1, P2 e P3) na fila de pronto,e o tempo de UCP de cada 
processo é 14, 4 e 12 u.t, respectivamente. Qual o estado de cada processo no instante 
de tempo T, considerando a execução dos processos P1, P2 e P3, nesta ordem, e que 
apenas o processo P1 realiza operações de E/S? Cada operação de E/S é executada após 
5 u.t. e consome 10 u.t. 
a) T = 8 u.t. 
 
b) T = 18 u.t. 
 
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS 
41 
 
c) T = 28 u.t. 
13. Existem quatro processos (P1, P2, P3 e P4) na fila de pronto, com tempos 
de UCP estimados em 9, 6, 3 e 5, respectivamente. Em que ordem os processos devem 
ser executados para minimizar o tempo de turnaround dos processos? 
 
 
 ATIVIDADE PRÁTICA 
 
1) Estatísticas 
 
a)Práticas de simulação 
· Reinicialize o simulador. 
· Ative a janela de Estatísticas em Console SOsim

Outros materiais