Você está na página 1de 41

108 – Sistemas Operacionais | Unidade 01

UNIDADE 1 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS


MÓDULO 1 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS
01

1 - O QUE É UM SISTEMA OPERACIONAL


Um computador é normalmente formado por uma série de componentes, como o processador, a
memória volátil e o disco rígido, além de uma série de periféricos, como o monitor, o teclado e o mouse.
Cada um destes elementos tem uma função específica:

 a memória volátil, ou memória RAM, tem a função de armazenar os dados que estão em uso
naquele momento pelo computador;
 o disco rígido tem a tarefa de propiciar espaço de armazenamento suficiente para arquivos de
usuário e de sistema;
 o processador é o núcleo central, que efetivamente executa as operações solicitadas;
 o monitor, o teclado e o mouse são chamados de dispositivos de entrada e saída, pois
representam a forma de interação entre o operador e o computador.

Como se pode constatar, observando apenas esta pequena quantidade de elementos, o funcionamento
do computador não é algo trivial. Se um programador, ao iniciar a codificação de um novo programa,
tivesse que conhecer os detalhes de funcionamento de cada um destes componentes, o esforço
necessário para o desenvolvimento de qualquer software seria mais do que duplicado.

Os sistemas operacionais (SO) surgiram justamente com o objetivo de auxiliar os programadores no


gerenciamento dos dispositivos de hardware, abstraindo a complexidade relacionada a este processo.

O sistema operacional (SO) é um sistema de software que atua como uma camada intermediária entre o
hardware do computador e os outros componentes de software.

02

O sistema operacional provê aos programadores uma interface confiável para que os aplicativos
desenvolvidos possam executar comandos que utilizam funções do hardware, sem que haja a
necessidade de que o programador conheça em detalhes o funcionamento destes componentes.

© 2015 - AIEC - Associação Internacional de Educação Continuada

1
108 – Sistemas Operacionais | Unidade 01

Normalmente, o sistema operacional não é um software embarcado no hardware do computador ou


que já vem gravado na memória ROM da placa mãe. Ele deve ser instalado na máquina cliente. Sem um
sistema operacional instalado no disco rígido do equipamento, é necessária a utilização de uma outra
mídia para que se possa dar início ao boot no computador e proceder a instalação e configuração de um
SO. Esta mídia pode ser um pendrive, um cd, um dvd ou até mesmo um disco rígido externo.

O processo de instalação dos sistemas operacionais modernos costuma ser bastante intuitivo, com a
utilização de interfaces gráficas amigáveis que permitem aos usuários com pouco conhecimento técnico
executar a operação.

Após o término do processo de instalação, a mídia utilizada deve ser removida e o equipamento
reiniciado, de modo que o sistema operacional, que já foi gravado no disco rígido, possa ser carregado e
utilizado pelo usuário final.

Boot
É um termo em inglês utilizado para indicar o processo de tornar o computador efetivamente
operacional. O boot se inicia no momento em que é pressionado o botão ligar do computador, e se
finaliza quando o Sistema Operacional está completamente carregado e pronto para operação.

03

2 - HISTÓRIA DOS SISTEMAS OPERACIONAIS


A evolução dos sistemas operacionais está intimamente relacionada ao avanço do hardware dos
computadores. Como já apresentado em disciplinas anteriores, o surgimento do primeiro computador
está datado da década de 1940. Nesta época, para codificar qualquer programa era necessário conhecer
profundamente os componentes do computador, o que fazia com que muito tempo fosse gasto para
que se pudesse produzir um item de software.

No decorrer dos anos subsequentes, entretanto, os pesquisadores perceberam que a interação dos
usuários com os computadores sempre utilizava funções similares ou gerais, que se repetiam a cada
novo código produzido. Desta forma, surgiu a ideia de se construir uma máquina genérica que
armazenasse comandos básicos em memória que pudessem ser reutilizados na construção de novos
programas, deixando o processo de desenvolvimento mais rápido e eficiente. Este pensamento é
considerado um dos pilares para o surgimento do conceito dos sistemas operacionais.

© 2015 - AIEC - Associação Internacional de Educação Continuada

2
108 – Sistemas Operacionais | Unidade 01

04

Apesar de um dos principais conceitos de suporte ao SO ter surgido ainda na década de 50, o primeiro
sistema operacional de verdade só foi desenvolvido a partir da segunda geração de computadores, com
a substituição das válvulas pelos transistores. Um pequeno programa, produzido por um grupo de
usuários da General Motors, que automatizava uma série de tarefas que, até então, eram realizadas
manualmente é considerado o primeiro SO da história.

A grande evolução dos sistemas operacionais só aconteceu, entretanto, com o surgimento das
linguagens de terceira geração, ou linguagens de alto nível, e com a utilização dos circuitos integrados
em detrimento dos transistores. O aumento da capacidade de processamento e de armazenamento dos
computadores associado ao incremento do poder computacional das novas linguagens fez com que os
SO incorporassem algumas das principais características que possuem atualmente, como a
multiprogramação, o multiprocessamento, a memória virtual e o tempo compartilhado, ou time-
sharing. Cada um destes elementos será trabalhado em detalhe nos próximos módulos.

O aparecimento dos circuitos integrados não afetou apenas o mundo dos sistemas operacionais, foi um
dos responsáveis, ainda, pela expansão dos computadores pessoais.

O processo de miniaturização dos componentes e


barateamento dos computadores tornou possível a
aquisição destes equipamentos por pessoas
comuns. Esta expansão gerou uma grande
demanda por sistemas operacionais mais fáceis e
intuitivos, que pudessem ser operados por
usuários domésticos. Foi nesta época que surgiu
um dos mais conhecidos sistemas operacionais já
produzidos, o MS-DOS, que rapidamente se tornou
líder no mercado de PCs.

05

O MS-DOS, assim como os outros sistemas da época, era operado com base na inserção de comandos
através da utilização de um teclado. A figura abaixo traz a reprodução da tela padrão do MS-DOS, no
exemplo apresentado o usuário digitou o comando “dir” para listar todos os arquivos pertencentes ao
diretório “C:\”.

© 2015 - AIEC - Associação Internacional de Educação Continuada

3
108 – Sistemas Operacionais | Unidade 01

A exibição padrão do MS-DOS para o resultado da execução do comando “dir” trazia, além do nome, o
tamanho, a data e hora de criação de cada arquivo. A tabela abaixo lista alguns dos principais comandos
utilizados pelos usuários para operar o sistema MS-DOS.

06

3 - SISTEMAS OPERACIONAIS COM INTERFACE GRÁFICA


Conhecer os comandos e a sua sintaxe de utilização foi, por anos, requisito fundamental para a
utilização dos sistemas operacionais. Entretanto, uma importante reviravolta ocorreu na década de
1980, com o aparecimento do conceito dos sistemas operacionais com interface gráfica.

A utilização de telas amigáveis ao usuário e, principalmente, o surgimento do “mouse”, fez com que
usuários com pouco conhecimento técnico conseguissem operar um computador sem a necessidade de
ter que memorizar os comandos de operação. A introdução dos Sistemas Operacionais com interface
gráfica fez com que quase todos os comandos ficassem a apenas um clique do mouse.

O primeiro sistema operacional, que obteve sucesso comercial, equipado com uma interface gráfica e
que previa a utilização do mouse foi criado pela Apple no ano de 1984. Apesar de percursora do

© 2015 - AIEC - Associação Internacional de Educação Continuada

4
108 – Sistemas Operacionais | Unidade 01

conceito, a Apple perdeu mercado na década de 90 com o surgimento daquele que hoje é o mais
conhecido SO do mercado, o Microsoft Windows.

Por cerca de 8 anos, de 1985 até 1995, as versões MS Windows se configuravam apenas como uma
interface gráfica para o MS-DOS, que atuava como o verdadeiro Sistema Operacional do computador.
Esta realidade veio a mudar apenas em 1993, com o lançamento da primeira versão do Windows NT,
que se apresentava como um sistema operacional completo para utilização em computadores de grande
porte.

Atualmente, o Microsoft Windows possui duas


linhas de sistemas operacionais em produção, a
linha do Windows Server, que é apropriada para
servidores e computadores de grande porte, e a
linha do Windows Workstation, que é voltada
para os computadores pessoais.

A figura reproduz uma das telas do Windows 10,


última versão do sistema operacional voltado
aos PCs. Observando a figura é possível inferir a
diferença de usabilidade entre os sistemas operados por comandos de texto, como o MS-DOS, e os
operados através da utilização do mouse.

Usabilidade
A usabilidade é um conceito relacionado a experiência de uso de pessoas com determinado produto.
Normalmente um produto tem usabilidade se for fácil de usar, ou seja, se há pouca dificuldade em
empregá-lo para a realização de uma tarefa.

07

4 - SISTEMAS OPERACIONAIS PARA DISPOSITIVOS MÓVEIS


A virada do século trouxe ainda mais inovação para a setor, sobretudo pelo surgimento dos Sistemas
Operacionais para dispositivos móveis. O principal desafio dos fabricantes era fazer com que os
programas desenvolvidos para serem executados em máquinas com alto poder de processamento e
armazenamento pudessem ser executados em dispositivos móveis com recursos limitados.

Nesta linha surgiram o Sistema Operacional Android, da Google, o IOS, da Apple, e o Windows Mobile,
da Microsoft, os três principais expoentes do mercado de SO para smartphones. O Sistema Operacional
Android ganhou a sua primeira versão comercial em 2008 e tornou-se, segundo dados da IDC, o Sistema
Operacional mais utilizado de sua categoria, sendo utilizado em 84,7% de todos os smartphones
vendidos no mundo.

© 2015 - AIEC - Associação Internacional de Educação Continuada

5
108 – Sistemas Operacionais | Unidade 01

Fonte: IDC, 2014 Q2

ICD
http://www.idc.com/prodserv/smartphone-os-market-share.jsp

08

Principais funções dos sistemas operacionais

Como já comentado, o surgimento dos sistemas operacionais está ligado à tentativa de abstrair a
complexidade do hardware no processo de desenvolvimento de novos sistemas. Além de diminuir o
esforço necessário para construção do software, esta iniciativa torna mais eficiente o uso dos recursos
computacionais.

Para facilitar o entendimento, vamos fazer uma breve comparação entre um computador e um carro
com câmbio automático. No carro, quando o motorista pisa no acelerador ele observa apenas o efeito
imediato de aumento da velocidade. Entretanto, para que este objetivo seja alcançado, uma série de
operações são executadas sem que haja a necessidade de conhecimento ou intervenção do motorista.

09

Ao pisar no acelerador, é emitido um comando para que a injeção eletrônica aumente a mistura de
combustível, o que faz com que o motor aumente o seu ciclo de funcionamento. Ao mesmo tempo,
existe um sensor de rotação que, ao perceber o aumento desta rotação, emite um comando para que
seja efetuada a troca da marcha. Em paralelo, o veículo ainda precisa controlar a lubrificação do motor e
todo o seu subsistema de arrefecimento. Imagine se todo esse processo, que é executado
automaticamente pelo sistema do veículo, tivesse que ser gerenciado pelo motorista.

© 2015 - AIEC - Associação Internacional de Educação Continuada

6
108 – Sistemas Operacionais | Unidade 01

Com um computador a realidade é muito semelhante. Quando um programa é escrito, o programador


não precisa se preocupar em como o hardware faz o armazenamento na memória volátil ou no disco
rígido, ou como irá fazer a migração de dados entre os diferentes dispositivos de armazenamento.
Também não é necessário saber como se comporta o processador e como pode-se alocar as tarefas para
serem executadas. Toda essa complexidade é abstraída por uma camada intermediária, o sistema
operacional.

Para alcançar o seu objetivo, o sistema operacional possui uma série de subsistemas de gerência, que
controlam os processos, a memória, os arquivos e os dispositivos de entrada e saída. Dentre as
principais rotinas relacionadas a estes subsistemas, pode-se citar:

 Criação de Processos e Tarefas


 Escalonamento de Processos
 Sincronização de Processos
 Tratamento de interrupções do sistema
 Gerenciamento dos Periféricos e Dispositivos
 Gerenciamento de Memória
 Gerenciamento do Sistema de Arquivos

10

5 - ESTRUTURA DO SISTEMA OPERACIONAL


Apesar das suas peculiaridades, o sistema operacional é um software que agrega um conjunto de rotinas
que atuam como ligação entre as funções do hardware e a execução de programas. Essas funções ficam
agrupadas no que é conhecido como núcleo, ou kernel do sistema.

Existem algumas formas de interação entre os usuários e as funções existentes no núcleo do sistema
operacional, como a chamada direta através da linguagem de comandos própria do SO ou através de
uma chamada de sistema realizada por uma determinada aplicação.

Um dos principais motivos da complexidade dos sistemas operacionais vem justamente do fato de que
ele tem que gerenciar o compartilhamento dos recursos computacionais entre diferentes aplicações e
programas, conceito que é definido como multiprogramação.

Observe, na figura abaixo, que os diferentes aplicativos do usuário interagem com o hardware a partir
de um ponto único, o Sistema Operacional. Como o computador possui um único hardware, cabe ao SO
gerenciar o compartilhamento dos recursos entre os diferentes aplicativos, de modo a garantir o uso
mais eficiente e eficaz dos elementos computacionais ao mesmo tempo em que permite o correto
funcionamento dos softwares executados pelo usuário.

© 2015 - AIEC - Associação Internacional de Educação Continuada

7
108 – Sistemas Operacionais | Unidade 01

11

O sistema operacional faz com que cada aplicação, ao ser iniciada, possua o seu próprio espaço de
armazenamento e política de agendamento de processos, só conseguindo alterar os dados do seu
próprio espaço de armazenamento. Nesta linha, o SO garante o isolamento das aplicações de modo que
se uma determinada aplicação sofre uma interrupção ou seja cometida de alguma instabilidade, as
outras possam continuar em funcionamento normalmente.

Apenas esta ação, entretanto, não é suficiente para garantir a estabilidade do sistema. Como se pode
observar, o Sistema Operacional acabou por se tornar essencial para o processo computacional. Desta
forma, qualquer instabilidade no SO gera, por consequência, instabilidade nos aplicativos que estão
sendo executados sobre ele.

Para proteger o núcleo do sistema operacional de operações indevidas realizadas por outras aplicações
de menor relevância, as implementações de SO utilizam um mecanismo de acesso que encontra-se
presente em todos os processadores, o modo usuário e o modo kernel. Normalmente, as aplicações
iniciadas pelo usuário são executadas em modo de usuário, ao tempo que as funções centrais do
sistema operacional são executadas em modo kernel.

O modo usuário não permite acesso direto das aplicações ao hardware do computador. O programa
que é executado neste modo interage com a máquina através de uma interface específica provida pelo
Sistema Operacional e que é executada também em modo usuário, apesar das funções do núcleo do SO
serem executadas em modo kernel.

© 2015 - AIEC - Associação Internacional de Educação Continuada

8
108 – Sistemas Operacionais | Unidade 01

Esta diferença entre os modos de acesso em nada prejudica o funcionamento normal dos programas
executados no computador. Por isto, mesmo que seja possível executar um determinado aplicativo em
modo kernel, esta prática não é recomendada.

12

RESUMO
Os Sistemas Operacionais se caracterizam como um software que atua como uma camada intermediária
entre o hardware computacional e os aplicativos. Um dos principais objetivos do SO é prover uma
interface para que os programadores possam abstrair a complexidade relacionada ao funcionamento
dos componentes do computador.

O primeiro sistema operacional só surgiu a partir da segunda geração de computadores, com a


substituição das válvulas pelos transistores. Nesta época, o mercado ainda era dominado por grandes
mainframes e computadores de grande porte.

O surgimento dos circuitos integrados, a miniaturização dos componentes e a expansão do uso dos
computadores em ambiente doméstico representou um crescimento nas pesquisas relacionadas aos
Sistemas Operacionais, sobretudo com a tentativa de torná-los mais intuitivos para os usuários. Este
processo culminou com a criação dos primeiros sistemas operacionais que utilizavam interface gráfica
amigável e utilizam um dispositivo apontador, que ficou conhecido como “mouse”.

Como já explanado, o sistema operacional agrega um conjunto de rotinas que atuam como ligação entre
as funções do hardware e a execução de programas, funções estas que se encontram agrupadas no
núcleo do sistema. Para proteger o núcleo de operações indevidas, as implementações de SO utilizam
dois modos de operação.

O primeiro modo de operação, conhecido como modo usuário, é utilizado para a execução de
programas utilizados costumeiramente pelos operadores do computador. É nesta área que são
carregados os editores de texto, planilhas eletrônicas, editores de imagem e demais softwares
aplicativos. O modo usuário se caracteriza por ser um modo “protegido”, ou seja, por não permitir o
acesso direto das aplicações ao hardware do computador.

O segundo modo de operação, o modo kernel, é utilizado para prover a execução das funções centrais
do sistema operacional, se caracterizando por permitir acesso direto das rotinas ao hardware
computacional. Dentre as principais funções relacionadas ao SO, pode-se citar: a criação, escalonamento
e sincronização de processos e tarefas, o tratamento de interrupções do sistema, o gerenciamento dos
periféricos e dispositivos, o gerenciamento de memória e o gerenciamento do sistema de arquivos.

© 2015 - AIEC - Associação Internacional de Educação Continuada

9
108 – Sistemas Operacionais | Unidade 01

UNIDADE 1 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS


MÓDULO 2 – CONCEITOS BÁSICOS SOBRE SISTEMAS OPERACIONAIS
01

1 - RELEMBRANDO CONCEITOS DE HARDWARE


Para o correto entendimento do funcionamento dos sistemas operacionais, faz-se necessária uma breve
revisão sobre alguns conceitos básicos relacionados ao hardware do computador.

O computador moderno atualmente utilizado ainda segue a arquitetura proposta por John Von
Neumann na década de 1950, que introduziu o projeto lógico onde os computadores armazenavam os
programas em memória, permitindo a codificação e geração constante de novos programas. A
arquitetura de Von Neumann previu, ainda, a separação do hardware computacional em três elementos
principais:

 a unidade central de processamento (CPU ou UCP),


 os dispositivos de entrada e saída e
 a memória.

O processador é comumente subdividido em três unidades:

 a Unidade Lógica Aritmética, que são circuitos que efetivamente realizam as operações;
 a Unidade de Controle, que gerencia todo o fluxo de execução da operação e coordena a troca
de dados com os diferentes estratos de memória;
 os registradores, que são posições de memória que ficam no interior da Unidade Central de
Processamento e que possuem a maior velocidade de acesso aos dados dentre todos os tipos de
memória.

Unidade central de processamento


A Unidade Central de Processamento, ou simplesmente processador, é vista por muitos como o
componente principal para o funcionamento do computador. É o elemento responsável por buscar as
informações na memória, executar as operações necessárias e, em seguida, apresentar o resultado.

© 2015 - AIEC - Associação Internacional de Educação Continuada

10
108 – Sistemas Operacionais | Unidade 01

02

Os dispositivos de entrada e saída são os principais responsáveis por promover a interação entre
computador e usuário. Os dispositivos de entrada são utilizados para que o usuário possa enviar um
comando a ser executado pela máquina. Como principais exemplos deste tipo de equipamento, temos o
teclado e o mouse.

Os dispositivos de saída, por sua vez, têm como principal finalidade permitir ao usuário acompanhar o
resultado do processamento da sua demanda. Estes equipamentos fornecem ao computador um modo
efetivo de se comunicar com o usuário. O dispositivo de saída mais comumente utilizado é o monitor de
vídeo.

03

Os dispositivos de entrada e saída são os principais responsáveis por promover a interação entre
computador e usuário. Os dispositivos de entrada são utilizados para que o usuário possa enviar um
comando a ser executado pela máquina. Como principais exemplos deste tipo de equipamento, temos o
teclado e o mouse.

Os dispositivos de saída, por sua vez, têm como principal finalidade permitir ao usuário acompanhar o
resultado do processamento da sua demanda. Estes equipamentos fornecem ao computador um modo
efetivo de se comunicar com o usuário. O dispositivo de saída mais comumente utilizado é o monitor de
vídeo.

04

O terceiro e último item definido na arquitetura de Von Neumann é a memória do computador,


elemento responsável por armazenar os dados dos programas e o resultado do processamento dos
dados. A memória computacional é classificada em quatro diferentes categorias, que se relacionam
diretamente a velocidade de acesso e custo de armazenamento. Normalmente, quanto mais veloz é o

© 2015 - AIEC - Associação Internacional de Educação Continuada

11
108 – Sistemas Operacionais | Unidade 01

acesso à memória, maior o custo associado. A pirâmide hierárquica da memória computacional é


exibida na figura abaixo.

A memória secundária, é um meio de


armazenamento permanente, ou seja, os
dados armazenados são mantidos ainda
que o computador não esteja mais
energizado.

O segundo tipo de memória, classificado


como principal, tem como atribuição
armazenar os dados dos programas em
execução.

O próximo nível na hierarquia é ocupado pela memória cache, que é segunda memória mais rápida em
velocidade de acesso, só ficando atrás dos registradores. Normalmente, a memória cache é utilizada
para armazenar parte do conteúdo da memória principal que está sendo executado naquele momento
pelo processador.

O topo da pirâmide de hierarquia de memória é ocupado pelos registradores, elementos que têm
capacidade de armazenamento extremamente baixa mas que possuem altíssima velocidade de acesso
aos dados armazenados. Como já exibido no estudo da CPU, os registradores são parte da Unidade
Central de Processamento e têm a função de permitir acesso rápido da ULA a informações durante a
execução de uma tarefa pelo processador. O espaço disponível em cada registrador é de poucos bits, a
depender do tipo do processador.

Saiba+ (principal)
É um meio de armazenamento volátil, ou seja, só mantém os dados enquanto o computador está energizado. A
memória principal possui um custo intermediário em relação aos outros tipos, sendo mais cara do que a memória
primária e mais barata do que a memória cache. Em uma configuração padrão de um computador pessoal é
comum encontrar entre 2 GB e 8 GB de memória principal.

Saiba+ (memória cache)


Esta estratégia tem como objetivo reduzir a diferença de velocidade entre a leitura dos dados e o seu
processamento. Por ser uma memória de alto custo, a quantidade de armazenamento em cache é normalmente
pequena, sendo que o espaço disponível para armazenamento na maioria dos computadores pessoais pode chegar
a até 24 MB.

05

2 - CONCEITOS BÁSICOS SOBRE SISTEMAS OPERACIONAIS


Os conceitos básicos da arquitetura de um computador estão intrinsecamente relacionados ao
funcionamento do sistema operacional. Desta forma, para o correto entendimento dos processos de

© 2015 - AIEC - Associação Internacional de Educação Continuada

12
108 – Sistemas Operacionais | Unidade 01

gestão realizados pelo SO torna-se fundamental o conhecimento prévio dos principais elementos do
computador segundo a arquitetura de John Von Neumann.

A atividade de gestão dos processos executada pelo sistema operacional, por exemplo, depende em
muito do funcionamento do processador, sobretudo no quesito de agendamento de processos e
threads. Já o processo de gerenciamento da memória do SO atua sobre a pirâmide de memória do
computador, movimentando os dados a partir da demanda dos programas em execução, gravando
arquivos no sistema de arquivos e otimizando o uso da memória virtual. A gestão dos dispositivos, por
sua vez, está relacionada ao gerenciamento eficiente e eficaz do compartilhamento, entre processos
simultâneos, dos elementos de entrada e saída disponíveis no computador em uso.

Observando a última sentença, percebe-se que o conhecimento apenas dos conceitos do hardware não
é suficiente para que se possa adentrar num estudo mais aprofundado dos processos de gerenciamento
executados pelo sistema operacional. Para o completo entendimento do contexto do SO, faz-se
necessário que se tenha em mente conhecimento relacionado à base de seu funcionamento, como os
conceitos de:

 Processos,
 threads,
 sistema de arquivos,
 memória virtual e
 entrada e saída.
06

a) O que é um Processo?

O conceito de processo é um dos mais importantes para que se entenda o funcionamento de um


sistema operacional. De forma resumida, um processo é um programa que se encontra em execução.

Nos sistemas multiprogramáveis é possível que mais de um processo seja executado ao mesmo tempo,
cabendo ao sistema operacional gerenciar o uso compartilhado do processador, dos dispositivos de
entrada e saída e da memória, evitando que ocorra um conflito na alocação de um mesmo recurso a
dois diferentes processos. Esta troca de um processo em execução para outro é conhecida como
mudança de contexto.

Como já apresentado no módulo passado, ao iniciar um programa, o sistema operacional


automaticamente reserva o seu espaço de armazenamento na memória, ou seja, cria uma lista do
espaço na memória onde são fornecidas as permissões de leitura e escrita para aquele programa. Neste
espaço selecionado são guardados o código do programa que está em execução, os seus dados e a pilha
de memória. Com a alocação, o espaço de armazenamento, ou endereçamento, definido para um
determinado processo passa a ser de uso exclusivo deste processo, ou seja, o acesso a esta área se torna
protegido de forma a impedir que outros processos utilizem este espaço.

© 2015 - AIEC - Associação Internacional de Educação Continuada

13
108 – Sistemas Operacionais | Unidade 01

07

Cada um dos processos criados pelo sistema operacional tem a capacidade de criar processos filho que,
por sua vez, tem o poder de criar novos processos filho, gerando uma espécie de árvore de processos.

A principal característica da árvore de processos é a dependência que é criada entre pais e filhos, já que
quando um processo criador é finalizado todos os processos filho subordinados são automaticamente
eliminados. Apesar desta dependência hierárquica, é relevante ressaltar que os processos subordinados
não compartilham o mesmo espaço de armazenamento do processo pai, eles seguem a lógica padrão de
que para cada novo processo é alocado uma faixa de endereços exclusivos na memória.

08

b) Thread

A estrutura de processos é bastante robusta, e esta realidade tem por objetivo garantir que problemas
na execução de em um determinado processo não interfira no funcionamento de outros processos que

© 2015 - AIEC - Associação Internacional de Educação Continuada

14
108 – Sistemas Operacionais | Unidade 01

estão também em execução. Entretanto, no caso de ambientes multiprogramáveis, a constante


mudança de contexto entre processos pode gerar um custo de processamento que normalmente
influencia negativamente na performance do computador.

Com o objetivo de reduzir esta quantidade de mudanças de contexto e, por conseguinte, economizar os
recursos do sistema, surgiu o conceito de thread. O principal fundamento para o desenvolvimento deste
conceito foi o de permitir que diversas threads fossem executadas no âmbito de um mesmo processo,
compartilhando os recursos já alocados, o espaço de endereçamento e evitando o custo oriundo das
mudanças de contexto.

O grande desafio dos sistemas “multithread” é justamente o de gerenciar os recursos compartilhados


entre as diferentes threads, de forma a impedir que duas threads disputassem o mesmo recurso, o que
é conhecido como condição de corrida.

Condição de Corrida
Uma condição de corrida é uma situação onde dois ou mais processos ou threads estão acessando
dados compartilhados e o resultado final do processamento é dependente da ordem de execução dos
eventos, ou seja, da ordem em que os processos ou threads acessaram a área compartilhada.

09

c) Sistema de Arquivos

A grande maioria dos programas precisa de uma estrutura permanente para armazenamento dos dados
e informações. Comumente, cabe aos dispositivos de memória secundária prover esta capacidade.

Como o processo de gerenciamento do hardware de um disco rígido é algo que demanda conhecimento
especializado, fez-se necessária a criação de uma interface que permitisse ao programador abstrair
parte da complexidade relacionada à operação destes dispositivos no momento de criação dos seus
programas.

© 2015 - AIEC - Associação Internacional de Educação Continuada

15
108 – Sistemas Operacionais | Unidade 01

É neste contexto que o sistema operacional utiliza o conceito de Sistemas de Arquivos, elemento
que fornece ao programador uma série de interfaces que permitem que os aplicativos que estão
sendo codificados tenham acesso às funções de armazenamento e recuperação no disco rígido,
independentemente do fabricante e do modelo do hardware que está sendo utilizado pelo
computador.

São diversas as implementações de sistemas de arquivos, cada uma com uma estrutura própria e
voltada a um determinado sistema operacional. De uma forma geral, os sistemas de arquivos permitem
a utilização do disco rígido para realização de operações como o armazenamento e a leitura de dados,
tornando este dispositivo de hardware disponível para todos os programas instalados no computador.

10

O processo de adaptação de um disco rígido para um determinado sistema de arquivos é denominado


de “formatação” do disco. Durante este processo, as trilhas e setores do disco rígido são organizados
em blocos de armazenamento de acordo com um determinado padrão que varia de acordo com o
sistema operacional escolhido. O Microsoft Windows, por exemplo, utilizou por muitos anos o sistema
de arquivos denominado " File Allocation Table”, ou FAT, sendo que atualmente utiliza o sistema
conhecido como New Technology File System, ou NTFS. Já as distribuições Linux costumam utilizar o
sistema de arquivos Extended file system, ou EXT. Detalhes de como se comporta cada sistema
específico serão abordados em módulos posteriores.

Uma característica em comum dos diferentes sistemas de arquivos é o fato de se basearem na utilização
de arquivos e diretórios.

Um arquivo é um conjunto de informações armazenadas no sistema de arquivos de forma


logicamente relacionada.

Ao arquivo é vinculado um nome, que identifica os locais onde estes dados relacionados foram

© 2015 - AIEC - Associação Internacional de Educação Continuada

16
108 – Sistemas Operacionais | Unidade 01

armazenados. Um documento de texto no computador, uma música em formato mp3, uma fotografia
digital ou uma página na internet são alguns exemplos de arquivos.

11

Em alguns sistemas operacionais os arquivos são compostos não apenas pelo nome, mas por uma
extensão, que identifica o seu conteúdo. Elementos com a extensão “EXE”, por exemplo, indica que se
trata de um arquivo executável, ao tempo que um arquivo com a extensão “JPG” indica que se trata de
uma imagem.

Como normalmente a quantidade de arquivos armazenados em um computador é muito grande, os


sistemas de arquivos tipicamente utilizam estruturas chamadas diretórios, que permitem o
agrupamento de arquivos em diferentes coleções. Esta funcionalidade facilita a organização e
localização dos arquivos de interesse por parte dos usuários do computador.

12

d) Memória Virtual

Como já foi comentado anteriormente, o custo da memória aumenta consideravelmente à medida que
aumentamos a velocidade de acesso. Desta forma, a maioria dos computadores possui em memória
volátil, ou RAM, espaço de armazenamento que chega a ser mais de duzentas vezes menor do que o
disponível em disco rígido. Não é incomum, por exemplo, que um computador pessoal que possua 1 TB
de armazenamento disponível em disco rígido possua capacidade de armazenamento de apenas 4 GB
em memória RAM.

© 2015 - AIEC - Associação Internacional de Educação Continuada

17
108 – Sistemas Operacionais | Unidade 01

Em paralelo a esta realidade, com o avanço da capacidade computacional, os aplicativos se tornaram


mais complexos e passaram a requisitar cada vez mais espaço de armazenamento em memória
principal. Os usuários, por sua vez, criaram o hábito de abrir uma infinidade de aplicativos
simultaneamente e utilizá-los apenas alternando entre janelas. Estas mudanças fizeram com que a
quantidade de memória RAM encontradas nos computadores se tornasse insuficiente para carregar
todos os aplicativos em execução.

A criação da Memória Virtual foi a solução encontrada para permitir que o sistema operacional pudesse
continuar a executar as operações e carregar novos aplicativos mesmo quando a memória RAM do
equipamento não fosse suficiente.

Com a Memória Virtual é como se o sistema operacional provesse uma extensão da Memória RAM no
disco rígido, desta forma, quando a Memória RAM real se esgota, o equipamento passa a utilizar, de
forma transparente para o usuário, o disco rígido para armazenar as informações necessárias para
continuar executando os processos.

13

Na prática, o que acontece é que as tabelas de endereçamento do sistema operacional, que


normalmente fazem referência a locais de armazenamento na memória principal, passam a direcionar
para locais de armazenamento no disco rígido, conforme exibido na figura abaixo.

O lado negativo desta operação é que, como o disco rígido tem velocidade de acesso menor do que a
RAM, normalmente as operações que são executadas em Memória Virtual costumam gastar mais
tempo, dando a impressão de que o computador está com uma lentidão não habitual.

14

© 2015 - AIEC - Associação Internacional de Educação Continuada

18
108 – Sistemas Operacionais | Unidade 01

e) Entrada e Saída

No âmbito do estudo dos sistemas operacionais, Entrada e Saída pode ser vista sob dois diferentes
ângulos: o dos dispositivos relacionados ao hardware do computador; e o do processo de gerência
destes dispositivos executado pelo sistema operacional. Como a vertente referente ao hardware foi
trabalhada na sessão anterior, neste tópico o foco será no processo de gerência de Entrada e Saída (E/S)
do SO.

Um conceito muito importante quando se pensa na modelagem de um software é que ele funcione com
independência dos dispositivos de E/S. Durante o ciclo de desenvolvimento de sistemas, analistas e
programadores produzem o software abstraindo a forma de funcionamento do teclado, mouse e
monitor, por exemplo. Se um determinado software espera uma entrada do teclado para executar uma
operação específica, esta entrada não deveria estar vinculada a um determinado tipo de teclado,
produzido por uma única empresa, por exemplo.

Outro conceito fundamental sobre o processo de E/S é a gerência de concorrência em dispositivos


compartilhados. Um disco rígido, por exemplo, além se se configurar como um dispositivo de Memória
Secundária é também um dispositivo de E/S, que recebe entradas e fornece saídas. Este disco pode
receber entradas simultâneas provenientes de diferentes aplicações, sendo que deve existir uma
gerência adequada da fila de solicitações de modo que cada um dos demandantes tenha a resposta
adequada. Este esse processo de gerenciamento do disco rígido e de todos os demais dispositivos de E/S
é executado por um componente específico do sistema operacional.

15

RESUMO

© 2015 - AIEC - Associação Internacional de Educação Continuada

19
108 – Sistemas Operacionais | Unidade 01

O computador moderno atualmente em uso ainda segue a arquitetura proposta por John Von Neumann
na década de 1950, que prevê a separação do hardware computacional em três elementos principais: a
unidade central de processamento, os dispositivos de entrada e saída e a memória.

A Unidade Central de Processamento é vista como o componente principal para o funcionamento do


computador, sendo o elemento que tem o papel de execução efetiva das operações. Já os dispositivos
de entrada e saída tem o papel de promover a interação entre computador e usuário, sendo utilizados
para permitir que o computador possa receber um comando do usuário e fornecer uma resposta. O
último item definido na arquitetura de Von Neumann é a memória do computador, elemento
responsável por armazenar os dados dos programas e o resultado do processamento, e que é
classificada em quatro diferentes categorias: memória secundária, memória principal, memória cache e
registradores.

O conhecimento destes conceitos de hardware é fundamental para que se possa entender os principais
conceitos voltados aos sistemas operacionais, sobretudo os relacionados aos processos de
gerenciamento, como o de memória, de processos e de dispositivos.

O conceito de processo é um dos mais importantes para que se entenda o funcionamento de um


sistema operacional. De forma resumida, um processo é um programa que se encontra em execução.
Associado a este conceito temos o de thread, que foram criadas com o objetivo de permitir a execução
de diferentes tarefas no computador utilizando os recursos disponibilizados para um mesmo processo,
permitindo uma economia no uso dos recursos do sistema.

Outro elemento importante no contexto dos sistemas operacionais é o Sistema de Arquivos, que surgiu
com o objetivo de abstrair a complexidade relacionada à operação do hardware da memória secundária,
fornecendo ao programador uma série de interfaces que permitem o acesso às funções de
armazenamento e recuperação independentemente do componente que está sendo utilizado.

Já a Memória Virtual foi instituída como solução para permitir que o sistema operacional pudesse
contornar as limitações de memória principal durante a execução de um conjunto de aplicativos. Com a
Memória Virtual é como se o sistema operacional provesse uma extensão da Memória RAM no Disco
Rígido, desta forma, quando a Memória RAM real se esgota o equipamento passa a utilizar, de forma
transparente para o usuário, o disco rígido para armazenar as informações de momento e conseguir
completar o processo em execução.

Por fim, um conceito muito importante quando se pensa na modelagem de um software é que ele
funcione com independência dos dispositivos de E/S. Cabe ao sistema operacional prover, além desta
funcionalidade, a gerência do uso compartilhado destes dispositivos.

UNIDADE 1 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS


MÓDULO 3 – TIPOS DE SISTEMAS OPERACIONAIS
01

© 2015 - AIEC - Associação Internacional de Educação Continuada

20
108 – Sistemas Operacionais | Unidade 01

1 - TIPOS DE ESTRUTURA DOS SISTEMAS OPERACIONAIS


O sistema operacional (SO) é um software complexo que é construído de forma a atender uma série de
pré-requisitos. A partir da visão do usuário, o SO deve ser de fácil uso e aprendizado, deve realizar as
operações de forma eficiente e eficaz, utilizando da melhor forma os recursos computacionais. Já do
lado computacional, este deve ser fácil de ser mantido, resistente a erros, seguro e eficiente.

Para prover estes benefícios esperados, os sistemas operacionais possuem uma série de funcionalidades
agrupadas em grandes grupos de serviços, que controlam efetivamente o hardware computacional e
fornecem uma interface para programação que abstrai a complexidade inerente a manipulação de
dispositivos e periféricos do computador.

02

A grande questão é que nem todos os sistemas operacionais organizam os seus grupos de funções
utilizando a mesma estrutura. Enquanto alguns SO associam todos os grupos em um grande bloco de
programa, outros separam os serviços em diferentes módulos, que são executados em contextos
diferentes.

Há, ainda, os sistemas operacionais que organizam as suas funções em camadas, ou os que têm como
base para funcionamento uma abstração do hardware do computador.

De uma forma geral, a literatura classifica as diferentes arquiteturas utilizadas para o desenvolvimento
dos sistemas operacionais em cinco categorias:

 Monolítica
 Em camadas

© 2015 - AIEC - Associação Internacional de Educação Continuada

21
108 – Sistemas Operacionais | Unidade 01

 Micronúcleo
 Máquina Virtual
 Híbrido

Veremos cada uma dessas categorias a seguir.

03

a) Arquitetura monolítica

Os sistemas operacionais monolíticos se caracterizam por concentrar todas as funções


do sistema operacional em um único programa que é executado no modo núcleo do
processador. Desta forma, operações complexas ou simples, essenciais ou acessórias,
têm o mesmo tratamento e, por conseguinte, acesso privilegiado aos recursos
computacionais.

Apesar de ter sido a arquitetura utilizada nos primeiros sistemas operacionais, o modelo monolítico
ainda é muito utilizado nos SO modernos, muito em função da simplicidade do desenho da arquitetura e
do seu bom desempenho. Como exemplos da arquitetura monolítica pode-se citar os sistemas
operacionais FreeBSD, OpenSolaris, MS-DOS e Linux.

É importante ressaltar, entretanto, que apesar da vasta utilização deste modelo, o crescimento da
complexidade dos sistemas operacionais criou alguma dificuldade para sua utilização. Isto se dá
principalmente por causa da grande quantidade de código que compõe os atuais sistemas monolíticos, o
que prejudica a realização de suporte e manutenção no sistema. Outro ponto negativo dos sistemas
monolíticos é a dificuldade em se promover extensões para as funções existentes, já que a correção de

© 2015 - AIEC - Associação Internacional de Educação Continuada

22
108 – Sistemas Operacionais | Unidade 01

erros no código ou a inclusão de novas funcionalidades no sistema operacional exigem a recompilação


de todo o núcleo do SO.

04

b) Arquitetura em camadas

A arquitetura em camadas é uma especialização da arquitetura monolítica, criada com o objetivo


de se ter mais controle sobre a separação de interesses dentro do sistema operacional.

Como já exposto, o aumento da complexidade e do tamanho dos sistemas operacionais trouxe maior
dificuldade para a utilização da estrutura monolítica. Esta realidade fez com que alguns sistemas
operacionais passassem a ser pensados como uma série de camadas, onde cada estrato forneceria um
conjunto de funções a ser utilizado pelo nível superior, provendo maior facilidade de manutenção e
permitindo a utilização de diferentes níveis de acesso.

O primeiro sistema operacional em camadas foi o “THE”, desenvolvido por Dijkstra e seus alunos no final
da década de 1960. Em concordância com a arquitetura proposta, o sistema THE foi construído com
base em seis camadas de estrutura estritamente hierárquicas e com atribuições específicas, conforme
apresentado abaixo:

© 2015 - AIEC - Associação Internacional de Educação Continuada

23
108 – Sistemas Operacionais | Unidade 01

05

Como se pode observar no exemplo do THE, a arquitetura em camadas propõe que as funções do
sistema operacional se organizem em diferentes níveis, com separação de responsabilidades e com a
possibilidade de utilização de múltiplos níveis de acesso.

Independente da separação interna do sistema operacional, é importante ressaltar que, neste modelo,
todas as funções do SO são executadas em modo “kernel”, conforme exibido na figura abaixo.

Além do “THE”, pode-se citar os sistemas operacionais MULTICS e OpenVMS como exemplos de
utilização da arquitetura em camadas no agrupamento de funções do SO.

06

c) Arquitetura Micronúcleo

© 2015 - AIEC - Associação Internacional de Educação Continuada

24
108 – Sistemas Operacionais | Unidade 01

O conceito da arquitetura micronúcleo, ou microkernel, começou a ser discutido na década de 1980. A


primeira geração de sistemas operacionais desenhados com esta arquitetura foi marcada pelo
lançamento do Mach, desenvolvido pela Universidade Carnegie Mellon.

Esta arquitetura tem como principal diretriz a construção de um código central do sistema operacional
que contemple apenas as funções mais básicas, como o gerenciamento dos processos e da memória em
baixo nível. A estrutura para execução destas atividades era tão diminuta que era comum encontrar
núcleos de sistemas operacionais com menos de 9.000 linhas de código, realidade bem diferente dos
sistemas monolíticos, onde o núcleo do sistema pode chegar a ter milhões de linhas de código. Este é
um dos principais benefícios da arquitetura micronúcleo, já que o pequeno tamanho do código fonte
gera maior facilidade de suporte e manutenção no núcleo do sistema.

É importante ressaltar, entretanto, que o minimalismo pregado pela estrutura micronúcleo não impede
o sistema operacional de executar as demais operações normalmente encontradas neste tipo de
software. Todas as funções complementares, como a gerência dos arquivos ou da rede, são codificadas
em módulos executados em modo usuário e se comunicam com o núcleo do sistema através de troca de
mensagens.

07

Apesar de rodar sobre modo usuário, era comum os serviços do sistema operacional possuírem alguns
privilégios que não eram fornecidos aos aplicativos convencionais, como um acesso direto a
determinados setores da memória. Além disso, estes serviços eram iniciados logo após a inicialização do
sistema, de modo que o provimento da funcionalidade era realizado como se todo o código estivesse
sendo executado no mesmo modo, ou seja, a separação das funções era transparente para o usuário.

© 2015 - AIEC - Associação Internacional de Educação Continuada

25
108 – Sistemas Operacionais | Unidade 01

Um dos problemas encontrados nesta arquitetura é que segmentação e execução dos serviços do
sistema operacional em diferentes modos de acesso gera uma perda de performance na execução do SO
como um todo. Isto se dá em função da mudança constante de contexto e da necessidade de
comunicação entre processos durante a execução de uma operação, fazendo com que os sistemas
micronúcleo apresentem desempenho inferior aos monolíticos para a grande maioria dos processadores
existentes.

Entretanto, ainda por conta da separação dos serviços e do minimalismo, os sistemas micronúcleo são
considerados mais seguros do que os monolíticos, motivo pelo qual são constantemente utilizados em
sistemas militares ou com requisitos especiais de confiabilidade, como as aplicações de tempo real e as
utilizadas na aviação civil. Um dos motivos é a premissa existente que prega que quanto menor a
quantidade de processos executados no modo kernel maior a confiabilidade do sistema operacional.

Saiba+
O projeto do Sistema Mach foi descontinuado em 1994, com o lançamento da versão 3.0. Os principais
documentos e histórico do projeto podem ser encontrados no site da Universidade Carnegie Mellon:
http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html

08

d) Arquitetura de Máquina virtual

A ideia de utilização da arquitetura de máquinas virtuais surgiu em 1972, em um sistema operacional


desenvolvido pela IBM e que era executado sobre computadores mainframe. Este sistema, que foi
chamado de “VM”, possuía uma camada de alto nível que fazia com que os usuários tivessem a
impressão de que lhe era provido um ambiente exclusivo do sistema operacional quando, na realidade,
todos os SO individuais eram executados sobre o mesmo sistema operacional.

A abordagem de máquinas virtuais prevê a completa proteção do sistema operacional que está sendo
fornecido para cada usuário, uma vez que cada máquina virtual é completamente isolada de todas as

© 2015 - AIEC - Associação Internacional de Educação Continuada

26
108 – Sistemas Operacionais | Unidade 01

demais. É importante ressaltar, entretanto, que apesar do isolamento a arquitetura prevê o


compartilhamento indireto de recursos entre os Sistemas Operacionais que estão sendo executados.

09

A arquitetura permite, ainda, que diferentes sistemas operacionais coexistam em um mesmo hardware
computacional, já que os SO são executados sobre uma mesma camada de alto nível. Isto é possível pois
existe uma camada que fornece uma emulação do hardware do computador para cada máquina virtual,
que passa a executar os seus processos como a impressão de que está acessando diretamente os
componentes do computador, como memória e processador.

Além disto, a emulação provida pelo modelo permite a extensão dos conceitos de multiprogramação e
multiprocessamento, assim como ocorre na instalação de sistemas operacionais dedicados.

Dentre outras vantagens de se utilizar esta arquitetura, pode-se citar:

 Possibilidade de aferição do desempenho dos sistemas operacionais que estão sendo


executados em cada uma das máquinas virtuais providas.
 Adição ou alteração dos requisitos de hardware de cada VM sem a necessidade de se realizar
backup do atual sistema em execução.
 Execução de diferentes versões de um mesmo sistema operacional sobre um mesmo
hardware.

Já como principais desvantagens da arquitetura de máquinas virtuais, têm-se:

 Em função da criação de uma camada intermediária, existe um overhead na comunicação entre


os sistemas operacionais hospedados nas VMs e o hardware computacional, o que leva a um
desempenho inferior em comparação aos SO que acessam diretamente o hardware.
 Um problema no Sistema que provê a emulação faz com que todos os sistemas operacionais
hospedados tornem-se indisponíveis simultaneamente.
 O modelo de máquinas virtuais possui muito mais complexidade do que os outros modelos
estudados, principalmente em função da necessidade de se promover a gerência dos recursos
computacionais entre as diferentes máquinas virtuais.

10

e) Arquitetura híbrida

O modelo híbrido é uma tentativa de unir características encontradas nos sistemas monolítico e
micronúcleo. O desenho desta arquitetura projeta as funções do sistema operacional em blocos
separados, mas sendo executadas por completo dentro do modo kernel do processador. Uma visão
esquemática da junção dos modelos é exibida na figura abaixo:

© 2015 - AIEC - Associação Internacional de Educação Continuada

27
108 – Sistemas Operacionais | Unidade 01

Como pôde ser visualizado, o desenho do modelo híbrido é algo entre os modelos monolítico e
micronúcleo. O principal objetivo desta arquitetura é associar o ganho de performance característico do
modelo monolítico com a estabilidade encontrada na arquitetura de micronúcleo.

11

2 - ARQUITETURAS DOS PRINCIPAIS SISTEMAS OPERACIONAIS


Os principais sistemas operacionais encontrados atualmente têm como base os padrões de arquitetura
descritos nas seções anteriores deste módulo. O Linux, por exemplo, é um sistema operacional que
segue a arquitetura monolítica, onde o núcleo do SO se configura como um único programa em
execução.

De modo a alcançar as vantagens teóricas dos sistemas micronúcleo sem, no entanto, perder
desempenho, o Linux provê módulos de funções que podem ser ligadas ou desligadas do núcleo do
sistema em tempo de execução, como módulos que implementem um determinado sistema de arquivos
ou um driver de dispositivo. A Figura abaixo traz o esquema de funcionamento do kernel do Linux.

© 2015 - AIEC - Associação Internacional de Educação Continuada

28
108 – Sistemas Operacionais | Unidade 01

12

Já o núcleo dos Sistemas MAC OS X e IOS é baseado em uma arquitetura em camadas, todas executadas
em modo kernel. No total, o sistema operacional possui três níveis de camadas, que possuem as
seguintes propriedades:

 A camada Mach representa o nível mais interno e é baseada no código do sistema micronúcleo
Mach 3. Esta camada tem por função prover os serviços fundamentais do sistema operacional,
como o gerenciamento do processador e o agendamento de processos e tarefas, além de permitir o
gerenciamento da memória e comunicação entre processos.
 A segunda camada - BSD provê a interface de programação para as aplicações de usuário. Este nível
tem a responsabilidade pelos serviços de gerenciamento da rede, dos processos e dos sistemas de
arquivos.
 A I/O Kit, terceira camada do modelo, tem a responsabilidade de prover o framework necessário
para o funcionamento dos drivers de dispositivos.

© 2015 - AIEC - Associação Internacional de Educação Continuada

29
108 – Sistemas Operacionais | Unidade 01

13

Em função de parte do sistema se basear na estrutura do Mach 3.0, alguns pesquisadores classificam os
sistemas operacionais MAC OS X e IOS como um SO de arquitetura híbrida, ao invés da classificação
original em camadas.

Assim como o MAX OS X, o Windows 7 também possui a sua arquitetura do núcleo separada em
camadas, onde as funções básicas do SO são executadas no modo kernel e os subsistemas de ambiente,
alguns serviços e a interface gráfica são executados em modo usuário.

A distribuição de camadas do Windows 7


permite a identificação de três níveis
principais:

 A camada do kernel, que provê a


sincronização de baixo nível e os serviços
de interrupção e chamadas do sistema.
 A camada executiva, que executa
os serviços do sistema operacional em um
ambiente multithreaded, como o
gerenciamento de processos, de entrada e
saída e de memória.
 A camada de Drivers, que
congrega as funções para correta operação
dos dispositivos associados ao
computador.
14

RESUMO
Os sistemas operacionais se configuram como softwares complexos, sendo responsáveis por gerenciar
grande parte dos recursos de hardware do computador e, ao mesmo tempo, prover uma interface
amigável para os programadores de aplicativos.

Para prover esta funcionalidade, o SO tem uma série de subsistemas de gerência que são organizados de
acordo com padrões arquiteturais pré-definidos. A literatura descreve cinco principais padrões
arquiteturais utilizados no desenvolvimento de Sistemas Operacionais: monolítico; micronúcleo; em
camadas; máquina virtual; e híbrido.

O modelo monolítico se configura por apresentar todo o sistema operacional como um único bloco, que
congrega todas as funções do SO e que é executado no modo kernel do processador, o que melhora o
desempenho da aplicação. Os sistemas operacionais em camadas se baseiam no modelo monolítico,
com o diferencial de que as funções se encontram estratificadas em camadas, de modo a prover a
divisão de responsabilidades e diferentes níveis de acesso. O Linux é um exemplo de sistema monolítico
e o Windows de sistema em camadas.

© 2015 - AIEC - Associação Internacional de Educação Continuada

30
108 – Sistemas Operacionais | Unidade 01

Já o padrão micronúcleo se caracteriza por dividir o Sistema operacional em módulos e executar no


modo kernel apenas aquelas funções mais básicas, trazendo mais estabilidade ao software. A junção de
características das arquiteturas micronúcleo e monolítica são justamente a base para a montagem do
modelo híbrido. Por contar em sua composição com princípios do Mach 3.0, um sistema micronúcleo, o
sistema MAC OS X é visto por alguns pesquisadores como exemplo de um sistema operacional híbrido.

A última arquitetura apresentada foi a de Máquina Virtual, que tem por princípio prover uma camada de
abstração do hardware computacional e modo a executar diversos Sistemas Operacionais sobre uma
única estrutura de hardware. O sistema VM da IBM é um exemplo deste tipo de SO.

UNIDADE 1 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS


MÓDULO 4 – APLICAÇÕES DE SISTEMAS OPERACIONAIS
01

1 - SISTEMAS OPERACIONAIS PARA USUÁRIOS DOMÉSTICOS


O princípio de construção dos sistemas operacionais é único, criar uma camada intermediária de
abstração da complexidade do hardware computacional. Entretanto, a depender da aplicação, um
determinado sistema operacional deve dar ênfase ao atendimento de requisitos específicos.

Será, por exemplo, que os requisitos de um sistema operacional que é executado em um smartphone é
similar aos requisitos de sistemas que são implantados em computadores de grande porte? Será que a
necessidade de um usuário doméstico é a mesma necessidade de um funcionário operando a estação de
trabalho na empresa?

O que se observa é que um dado sistema operacional não tem a capacidade de atender de forma
otimizada os requisitos de todos os tipos de aplicações. Não tem como esperar que um SO que é
executado em um computador com Terabytes de memória RAM e centenas de processadores tenha o
mesmo desempenho se for executado em um smartphone, com 1 gigabyte de memória e um único
processador. Ao mesmo tempo, um usuário corporativo tem necessidades que não fazem sentido no
ambiente doméstico, como, por exemplo, o acesso a servidores em rede para o provimento de uma
infinidade de serviços de negócio.

Desta forma, foram definidas diversas categorias de sistemas operacionais, cada uma direcionada a uma
finalidade específica. Isto não quer dizer que um determinado SO não possa ser utilizado em mais de um
contexto, mas sim que o seu melhor desempenho será sempre alcançado quando este for aplicado na
área para que foi desenvolvido. Nas seções subsequentes serão abordadas as categorias de Sistemas

© 2015 - AIEC - Associação Internacional de Educação Continuada

31
108 – Sistemas Operacionais | Unidade 01

Operacionais voltados a usuários domésticos e corporativos, utilizados em computadores de grande


porte e sistemas embarcados.

02

As residências têm uma série de especificidades que levaram à personalização de sistemas operacionais
voltados a esta aplicação. A necessidade de adaptação de SO para esta finalidade se tornou ainda mais
premente em função da grande quantidade de computadores instalados atualmente em residências e
ao crescente uso dos computadores.

Segundo pesquisa da NIELSEN, somente os brasileiros gastam uma média de 42 horas por mês à frente
do computador quando estão em casa.

Normalmente o ambiente doméstico é caracterizado pela presença de um computador pessoal ou


notebook ligado a periféricos, como uma impressora, e conectados à internet. Como nas residências não
é comum a existência de diversos computadores ligados entre si por uma rede local, os sistemas
operacionais desta categoria não têm por objetivo dar ênfase ao provimento de serviços de rede, mas
sim prover ao usuário final facilidade na operação do computador. Desta forma, as interfaces gráficas de
operação normalmente são intuitivas e a navegação pelos aplicativos e execução de tarefas são
facilmente colocadas em prática.

Além disso, os sistemas utilizados em residências devem permitir a rápida instalação de periféricos e
devem prever suporte a execução de aplicações essenciais para este tipo de ambiente, como os
softwares de edição de texto, as planilhas eletrônicas, aplicativos de visualização de imagens e
navegadores de internet. É importante, ainda, que sejam sistemas de fácil aprendizado e que não
tragam recursos desnecessários e que causem lentidão na execução destes aplicativos.

Nielsen
Para saber mais sobre essa pesquisa, leia http://www.nielsen.com/br/pt/press-room/2014/Classes-C-e-D-sao-
as-que-passam-mais-tempo-na-internet.html.

03

Dentre os Sistemas Operacionais enquadrados na categoria “domésticos”, o principal expoente é o


Windows, desenvolvido pela empresa Microsoft. O Windows surgiu como sistema operacional com a
sua versão lançada em 1995, já que as versões anteriores eram executadas como um aplicativo gráfico
sobre o MS-DOS. Segundo levantamento do site “netmarketshare”, as diversas versões do Windows
estão instaladas em cerca de 91% do total de computadores ao redor do planeta.

© 2015 - AIEC - Associação Internacional de Educação Continuada

32
108 – Sistemas Operacionais | Unidade 01

Como já comentado, existem diversas versões do Windows, como a versão NT/Server, que é utilizada
em computadores de grande porte, e a versão Pro, que é voltada a estações de trabalho corporativas.

A última versão do Windows direcionada prioritariamente ao ambiente residencial foi o Windows 8.1.
Como existe dentro da Microsoft o desejo de caminhar em direção a uma plataforma unificada, a versão
10 do Windows, lançada em 2014, já foi construída de forma a ser utilizada não apenas por
computadores residenciais, mas também em tablets, smartphones e outros aparelhos.

04

Além do Windows, outro sistema operacional que foi lançado recentemente tem como principal
objetivo atingir o usuário residencial, o Chrome OS. Este SO é extremamente leve e tem como interface
principal o navegador de internet Google Chrome, ferramenta que fornece acesso a todos os outros
serviços disponibilizados pelo sistema.

A grande diferença do Chrome OS em relação à maioria dos sistemas operacionais é o fato de que
enquanto os outros SO trabalham localmente o Chrome OS trabalha on-line, ou seja, ainda na
inicialização do sistema já se conecta à Internet e utiliza os dados da conta Google para capturar as
informações iniciais do usuário.

O grande problema do SO da Google é o fato de que é uma opção viável apenas para usuários que

© 2015 - AIEC - Associação Internacional de Educação Continuada

33
108 – Sistemas Operacionais | Unidade 01

possuem conexão constante com a internet, já que para executar os serviços disponibilizados é preciso
que o sistema esteja sempre on-line.

Em função do Chrome OS ser obrigatoriamente comercializado apenas em conjunto com determinados


notebooks, este SO poderia também ser classificado na categoria de sistemas operacionais embarcados.

05

2 - SISTEMAS OPERACIONAIS PARA USUÁRIOS CORPORATIVOS


O ambiente informatizado de uma empresa possui uma série de requisitos que não são encontrados em
residências. Diferentemente do ambiente doméstico, é comum nas corporações existirem dezenas,
centenas e até milhares de estações de trabalho que utilizam uma rede local para compartilhar os
serviços e recursos disponibilizados pelo negócio.

Quando falamos de uma empresa, é corriqueira a utilização da rede de dados para ter acesso aos
serviços corporativos e aos recursos de informação. Cada setor tem, por exemplo, uma pasta na rede
para compartilhamento de arquivos, ou utiliza um controle de acesso à impressora que é dependente da
autenticação do usuário no domínio da rede de dados.

Como esta realidade não é a mesma encontrada nas residências, algumas fornecedoras de sistemas
operacionais criaram produtos específicos para cada uma das duas áreas – residencial e corporativa. Um
exemplo é a Microsoft que, como já visto, criou o MS Windows 8.1 para uso doméstico e o MS Windows
8.1 “Pro” para uso empresarial. Um breve comparativo destas duas versões é exibido na tabela abaixo.

© 2015 - AIEC - Associação Internacional de Educação Continuada

34
108 – Sistemas Operacionais | Unidade 01

06

Outros exemplos de sistemas operacionais muito utilizados em estações de trabalho de empresas são os
Linux Fedora e Ubuntu. Apesar de se adaptarem também ao uso doméstico, estas distribuições são mais
comumente encontradas em ambiente corporativo, sobretudo por permitir o trabalho em rede local.

O projeto Fedora foi iniciado em 2003 e é uma versão adaptada para ambiente de trabalho do Red
Hat, que originalmente é um SO voltado a servidores. O Fedora é um Sistema Operacional livre e de
código aberto, ou seja, pode ser instalado e utilizado sem a necessidade de se comprar uma licença.

Já o Linux Ubuntu é uma distribuição baseada no Debian GNU Linux, lançada no ano de 2004 e que é
publicada sobre licença GPL (software livre de código aberto).

Assim como a Microsoft, a empresa mantenedora do Ubuntu tem trabalhado em prol de uma
plataforma unificada, sendo que, apesar de se caracterizar majoritariamente como um SO de estações
de trabalho, já existe interface do Ubuntu para smartphones e tablets.

07

3 - SISTEMAS OPERACIONAIS PARA SERVIDORES


O ecossistema computacional das organizações é formado por duas principais vertentes, os
computadores consumidores de serviços e os equipamentos provedores de serviços. Nesta linha, a
categoria de sistemas operacionais para usuários corporativos é responsável por atender aos requisitos
dos computadores consumidores de serviços, enquanto os sistemas operacionais para servidores
atendem a demanda dos equipamentos provedores de serviços.

© 2015 - AIEC - Associação Internacional de Educação Continuada

35
108 – Sistemas Operacionais | Unidade 01

Diferentemente dos sistemas operacionais voltados aos usuários finais – sejam estes domésticos ou
corporativos, os SO utilizados em servidores são desenhados para serem executados em computadores
com grande quantidade de recursos computacionais e com elevada carga de trabalho. Não é incomum
encontrarmos servidores com dezenas de processadores e terabytes de memória volátil.

O desenho dos sistemas operacionais para servidores dá ênfase à estabilidade e ao controle de erros,
principalmente porque a indisponibilidade dos serviços essenciais pode causar enormes prejuízos ao
negócio da corporação. Dentre os serviços básicos providos por sistemas operacionais para servidores
pode-se citar:

 Provimento de um repositório para armazenamento de arquivos;


 Gerenciamento das permissões de acesso aos recursos computacionais;
 Utilização do serviço de e-mail.

Por conta destas peculiaridades, os principais fornecedores de sistemas operacionais criaram produtos
específicos para atender a este segmento de mercado, como o Windows Server, fornecido pela
Microsoft, e o OS X Server, fornecido pela Apple. Além destes, versões dos Sistemas operacionais Linux e
FreeBSD também são frequentemente encontradas em servidores corporativos.

08

O Microsoft Windows Server 2012 é a última versão da família de Sistemas Operacionais para
Servidores da Microsoft. A principal novidade em relação as versões anteriores é a previsão de suporte
para computação em nuvem. Uma outra importante característica incorporada ao produto foi o novo
sistema de arquivos ReFS, que provê maior resistência a falhas do que o seu antecessor, o NTFS.

Um dos principais componentes Windows Server é o Active Directory, componente responsável por
prover o serviço de diretório para a rede corporativa, ou seja, armazenar as informações de usuários e
demais objetos da rede, auxiliando na gerência e atuando como ponto central de autenticação de
usuários e autorização de uso dos recursos computacionais.

Já o OS X Server é a versão corporativa do SO desenvolvido pela Apple. Desde a versão 10.7, o SO


passou ser vendido como um pacote de atualização a ser instalado na versão desktop do sistema
operacional, e não mais como um sistema em separado.

Dentre as funcionalidades adicionais advindas com a instalação do pacote Server, pode-se citar:

 DHCP
 DNS
 FTP
 Open Directory
 Mail
 VPN
 Compartilhamento de Arquivos

© 2015 - AIEC - Associação Internacional de Educação Continuada

36
108 – Sistemas Operacionais | Unidade 01

09

O Linux possui diversas distribuições voltadas à utilização no ambiente corporativo, sendo as principais o
Red Hat, o Suse e o Debian.

O Red Hat Enterprise Linux é um sistema operacional proprietário, ou seja, a distribuição não é gratuita.
Entretanto, existe um fork do projeto, denominado CentOS, que é mantido pela comunidade e
disponibilizado gratuitamente sobre a licença GPL.

O SUSE, assim como o RedHat, se divide atualmente em duas diferentes distribuições, o OpenSUSE Linux
e o SUSE Linux Enterprise. A primeira é a versão livre, gerenciada pela comunidade sobre o patrocínio da
SUSE. Já a versão Enterprise é uma distribuição paga, mas que fornece suporte, maior frequência de
atualizações de segurança e pacotes especiais para garantir a alta disponibilidade do sistema.

Das três distribuições Linux comentadas, o Debian é a única que não possui uma versão comercial. O
código é completamente aberto e mantido por um grande grupo de voluntários dispersos por diversos
países ao redor do mundo. O Debian é atualmente uma das distribuições Linux mais utilizadas em todo o
mundo, posicionando-se à frente do Red Hat e do SUSE como o Linux mais instalado em servidores.

Fork
Em linguagem de engenharia de software, um "fork" acontece quando um desenvolvedor pega a cópia
do código fonte de um pacote de software e inicia o desenvolvimento independente de um novo
aplicativo com base na cópia inicial, criando um novo software a partir do software já existente.

10

4 - SISTEMAS OPERACIONAIS EMBARCADOS


Os sistemas operacionais embarcados são uma classe especial de SO desenvolvida com o objetivo de
satisfazer requisitos específicos de uma determinada aplicação, que contempla hardware e software.

Um dos critérios que faz com que um sistema operacional seja considerado embarcado é o fato de que
geralmente não é instalado pelo usuário, já vindo nativamente no dispositivo, além do fato de que as
atualizações são normalmente recuperadas e instaladas automaticamente.

Um sistema embarcado normalmente é desenhado para um determinado hardware, diferentemente


dos sistemas operacionais para usuário doméstico, que são vendidos como software de prateleira e
podem ser instalados em uma vasta gama de computadores. Além disso, os equipamentos que
executam os sistemas embarcados costumam ser leves e compactos.

© 2015 - AIEC - Associação Internacional de Educação Continuada

37
108 – Sistemas Operacionais | Unidade 01

Dentre as diversas aplicações dessa classe de Sistemas Operacionais, pode-se citar:

 Discos rígidos e dispositivos de armazenamento


 Alguns eletrodomésticos como, por exemplo, aparelhos de TV.
 Videogames
 Smartphones e PDAs
 Dispositivos utilizados em aviões, como o sistema de orientação
 Roteadores, Switches e diversos dispositivos de rede.
 Impressoras
 Automóveis

11

Dois dos exemplos mais conhecidos de sistemas operacionais embarcados em smartphones são o
Blackberry OS, que foi criado especificamente para os aparelhos Blackbery, e o IOS, sistema operacional
criado pela Apple e que é integrado ao iPhone.

O Blackberry OS é um sistema operacional proprietário desenvolvido pela empresa de mesmo nome. É


voltado exclusivamente para utilização em smartphones e computadores de bolso (handhelds)
produzidos pela Blackberry. Possui suporte nativo a multitarefa e a determinados periféricos de entrada.

Já o IOS é o sistema operacional do conhecido smartphone iPhone. É utilizado, ainda, em uma série de
outros dispositivos produzidos pela Apple, como o IPad, o Ipod Touch e a segunda geração da Apple TV.

© 2015 - AIEC - Associação Internacional de Educação Continuada

38
108 – Sistemas Operacionais | Unidade 01

A interface deste SO é baseada na manipulação através da utilização de gestos, tais como apertar, tocar
e deslizar.

12

Um outro exemplo muito conhecido de sistema operacional embarcado é o das urnas eletrônicas
utilizadas na eleição brasileira. A urna nada mais é do que um microcomputador que tem a função
específica de registrar os votos e realizar a apuração parcial do total da eleição. Para prover o
funcionamento do hardware deste dispositivo foi desenvolvido um SO específico, que é fornecido
embarcado no equipamento.

Alguns dos atuais sistemas de tempo real são baseados em sistemas embarcados, na medida em que
estas aplicações necessitam de uma resposta quase imediata a uma solicitação e a existência de latência
não se configura como uma opção aceitável.

13

A grande novidade no mundo dos sistemas operacionais embarcados é o HomeOS. Este SO inicia uma
nova vertente voltada exclusivamente para a automação de residências.

O HomeOS tem por objetivo ser uma abstração que permite que a instalação de uma nova lâmpada ou
de um novo ar-condicionado tenha a mesma complexidade de se adicionar um novo periférico a um
computador. Segundo a desenvolvedora do software, o HomeOS irá simplificar o desenvolvimento de
aplicações para casas inteligentes, provendo um ponto centralizado de controle de todos os dispositivos
da residência.

Dois dos grandes desafios a serem endereçados por sistemas como o HOME OS estão relacionados a
requisitos de usabilidade e compatibilidade.

© 2015 - AIEC - Associação Internacional de Educação Continuada

39
108 – Sistemas Operacionais | Unidade 01

A questão da usabilidade está vinculada ao Já a da compatibilidade está relacionada à falta de


nível de dificuldade das pessoas em operar o um padrão de conectividade nos equipamentos
sistema. domésticos, o que dificulta a sua integração sob
uma única arquitetura.

Apesar de ainda estar em fase de testes, o HomeOS se mostra como uma das soluções mais promissoras
dos últimos anos, já que inicia um movimento no sentido de permitir a integração de diferentes
dispositivos permitindo que o conceito das casas inteligentes finalmente saia do papel.

Saiba+
Mais detalhes sobre o HomeOS podem ser obtidos no site da fabricante -
http://research.microsoft.com/en-us/projects/homeos/

14

RESUMO
Apesar da função finalística comum dos diferentes sistemas operacionais, estes podem ser classificados
em diferentes categorias a partir do seu foco primário de atuação. Neste módulo foram analisadas
quatro diferentes categorias de sistemas operacionais, os voltados aos usuários domésticos, os
direcionados a uso corporativo, os comumente utilizados em servidores e os sistemas operacionais
embarcados.

Os sistemas operacionais para usuários domésticos se caracterizam pela ênfase na usabilidade e pela
facilidade de aprendizado. Devem, ainda, prover acesso fácil a aplicativos e permitir a rápida instalação
de periféricos. Os sistemas voltados a usuários corporativos diferem dos relacionados aos usuários
domésticos principalmente pela necessidade de suporte a serviços em rede local, como a utilização de
armazenamento de arquivos compartilhados e acesso aos serviços do diretório corporativo.

Já os Sistemas Operacionais utilizados em servidores têm uma configuração diferente dos SO


relacionados aos usuários domésticos e corporativos, já que são comumente instalados em

© 2015 - AIEC - Associação Internacional de Educação Continuada

40
108 – Sistemas Operacionais | Unidade 01

equipamentos com alto poder de processamento e armazenamento. Esta categoria tem como requisito
principal prover uma série de serviços de negócio que serão consumidos pelos funcionários da empresa.

A última categoria analisada, a de Sistemas Operacionais embarcados, tem como uma das principais
características o fato de que os sistemas operacionais são normalmente comercializados em conjunto
com os equipamentos, sendo que as atualizações são normalmente recuperadas e instaladas
automaticamente. Dentre as diversas aplicações dessa classe de SO pode-se citar a utilização em discos
rígidos e dispositivos de armazenamento, alguns eletrodomésticos, videogames, Smartphones, PDAs,
impressoras e automóveis.

© 2015 - AIEC - Associação Internacional de Educação Continuada

41

Você também pode gostar