Você está na página 1de 29

23/09/2022 21:11 UNINTER

 
 
SISTEMAS OPERACIONAIS
AULA 1

Prof. André Roberto Guerra

https://univirtus.uninter.com/ava/web/roa/ 1/29
23/09/2022 21:11 UNINTER

CONVERSA INICIAL

Computadores são dispositivos eletrônicos criados para auxiliar


nas tarefas do cotidiano das

pessoas. São máquinas incríveis, com grande poder


de processamento e capacidade de

armazenamento. Os denominados sistemas de


computação são compostos basicamente pelo

hardware (dispositivos
físicos) e software (tarefas e rotinas previamente programadas) de forma

dependente, ou seja, só funcionam juntos, sendo praticamente inúteis sozinhos.

Essa interdependência é inicialmente comprovada pela necessidade


de gerenciar os

componentes do hardware para funcionar corretamente, pois, quando


ligados, os circuitos

eletrônicos ficam disponíveis para receber instruções ou


tarefas, mas, se não forem enviadas, tornam-

se apenas uma peça decorativa.

Os sistemas computacionais eram a princípio grandes mainframes


ou desktops, mas atualmente,

com o advento da internet das coisas (internet


of things – IoT), eles estão presentes em quase todos

os dispositivos que
utilizamos, como smartphones, tablets, smartwatches, smartTVs,
consoles de

jogos, entre outros. Mesmo tão presentes no cotidiano das pessoas,


poucos sabem que, para que

todos esses equipamentos nos auxiliem nas tarefas a


que se propõem, são necessárias rotinas de

gestão e controle, implementadas em software


e denominadas sistemas operacionais.

Eles são responsáveis pela inicialização do hardware pelo


kernel, e também pelo controle e

gestão segura dos dispositivos, dos


processadores (CPU), das memórias e da entrada e saída de

dados. Também é responsável


pela gestão e pelo controle do armazenamento e do uso de arquivos,

escalonamento
de tarefas e gerenciamento de processos e recursos. Em síntese, é um grande
gestor

das atividades do computador que interage com o usuário.

É importante conhecer e entender essas tarefas de gestão e seus


conceitos relacionados para

compreendermos o que é necessário para escolher, instalar,


configurar e administrar sistemas

https://univirtus.uninter.com/ava/web/roa/ 2/29
23/09/2022 21:11 UNINTER

operacionais, desde a inicialização até a


utilização pelo usuário final.

Nesta disciplina, além de desenvolver as competências


necessárias para essas atividades,

apresentaremos e definiremos diversas outras


rotinas. O conteúdo previsto contempla inicialmente

os conceitos e as definições
de sistema operacional, numa visão geral, com um breve histórico e

evolução,
apresentando seus objetivos e funções. Também apresentaremos sua classificação
pela

arquitetura e pelos tipos e exemplos de sistemas operacionais.

Seguindo a definição de gestão apresentada, nesta disciplina veremos


a gerência:

De processador e de processos;

De memória;

De dispositivos de entrada e saída;

De arquivos;

De proteção de usuários.

 E os temas desta aula são:

1. Conceitos e definições de sistema operacional – visão geral;

2. Histórico e evolução;

3. Objetivos e funções;

4. Arquitetura e classificação;
5. Tipos e exemplos.

Aproveite o conteúdo e bons estudos!

TEMA 1 – CONCEITOS E DEFINIÇÕES INICIAIS – VISÃO GERAL

Segundo Tanenbaum e Bos (2016), sistema operacional é um


programa que, do ponto de vista

do programador, acrescenta uma variedade de


novas instruções e características acima e além do

que o nível ISA fornece.


Normalmente, o sistema operacional é implementado, em grande parte, em

software,
mas não há nenhuma razão teórica para não ser colocado em hardware, como
acontece

com os microprogramas (quando estão presentes). Para abreviar, chamamos


o nível que ele

implementa de operating system machine (OSM), ou


seja, “nível de máquina de sistema operacional”.

https://univirtus.uninter.com/ava/web/roa/ 3/29
23/09/2022 21:11 UNINTER

Stallings (2017) define sistema operacional como um programa que


gerencia os recursos do

computador, fornece serviços para os


programadores e estabelece uma ordem de execução de

outros programas. É
essencial certo conhecimento sobre sistemas operacionais para entender os

mecanismos pelos quais a CPU controla o computador – em particular, o efeito


das interrupções e o

gerenciamento da hierarquia de memória.

Sistema operacional é o software que controla a execução de


programas num processador e

gerencia os recursos do computador. Diversas


funções desempenhadas pelo sistema operacional,

incluindo as duas mais


relevantes para estudar a arquitetura e organização de computadores –

escalonamento
de processos e gerenciamento de memória –, só podem ser executadas
de modo

rápido e eficiente se ele dispuser de um suporte adequado do hardware


do processador.

Quase todos os processadores dispõem desse suporte, em maior ou


menor extensão, incluindo

hardware de gerenciamento de memória virtual e


de gerenciamento de processos. Isso inclui

registradores de propósito
especial e áreas de armazenamento temporário, além de um conjunto de

circuitos
para tarefas básicas de gerenciamento de recursos.

assim, um sistema
de computação é constituído basicamente de dois elementos

interdependentes: o hardware
e o software. O primeiro é basicamente composto de circuitos

eletrônicos internos: CPU (processador), memórias (primárias e secundárias),


portas de comunicação

(entrada/saída), entre outros, como os periféricos externos


(teclado, mouse, monitor, câmera,

microfone, dispositivos USB etc.). O segundo,


por sua vez, é composto basicamente de duas

categorias:

1. Software de aplicação,
representado por programas destinados ao usuário do sistema, que

constitui a
razão final de seu uso (exemplo: editores de texto, multimídia players,
editores de

imagem, jogos etc.);

2. Software de sistema, que está entre os aplicativos e o hardware.


Trata-se de uma camada de

software multifacetada e complexa, denominada


genericamente de sistema operacional, como

ilustra a Figura 1.

Figura 1 – Sistema operacional

https://univirtus.uninter.com/ava/web/roa/ 4/29
23/09/2022 21:11 UNINTER

Fonte: I000S_Pixels; Hani Suwaryo; Crystal Eye Studio; Marisha; Den Rozhnovsky; Weera.OTP; DND_Project;
Nerthuz/Shutterstock.

A Figura 1 apresenta o sistema operacional como uma fronteira, uma


interface entre o hardware

e os aplicativos. É ele que gerencia e orienta a


fantástica transformação de pulsos elétricos do

hardware (representados pelos


binários 0 e 1) nas mais diversas aplicações.

São essenciais para o funcionamento de todos os sistemas de


computação, desde os

smartphones aos supercomputadores. Mesmo sendo


muitos os sistemas operacionais existentes, eles

têm e seguem as mesmas regras


e princípios. Devido à sua complexidade e ao seu tamanho, o

aprendizado de
sistemas operacionais é tido como algo reservado a especialistas ou hackers,
contudo, é na verdade essencial para todos os profissionais de computação, pois
as ferramentas

implementadas nos algoritmos dos sistemas operacionais afetam


diretamente o comportamento e o

desempenho das aplicações. São também


responsáveis pelos serviços de rede e pela segurança do

sistema e dos
utilizadores.

TEMA 2 – HISTÓRIA E EVOLUÇÃO

A primeira geração de computadores – também chamada de Geração


0 – foi a geração dos

computadores mecânicos, acionados por engrenagens e


manivelas, dependendo totalmente do

https://univirtus.uninter.com/ava/web/roa/ 5/29
23/09/2022 21:11 UNINTER

usuário – o operador do sistema. Todas as


tarefas eram manuais, e ainda não havia recursos para

automatizá-las eletronicamente.

Descrever a história e a evolução dos sistemas operacionais e


dos computadores é muito

conveniente pois, até a 3ª geração dos


computadores (1965-1980), descrita pelo cientista Robert

Noyce na integração de
circuitos – o chip –, os computadores dependiam exclusivamente do

conhecimento e da habilidade de seus operadores – os usuários. Foi somente na


3ª geração que os

sistemas operacionais iniciaram seu desenvolvimento, como descreveremos


aqui.

Os computadores têm sua história descrita e apresentada em 6


gerações. As 3 primeiras são de
computadores sem sistemas operacionais.
Eram as seguintes:

0.  Mecânicos (1642-1945);

1.  Válvulas (1945-1955);

2. 
Transistores (1955-1965).

As 3 gerações seguintes são as de computadores com sistemas


operacionais:

3.  Integração (1965-1980);

4.  Muita integração (1980-?);

5. 
Computadores invisíveis (atualmente).

2.1 GERAÇÃO 0 (MECÂNICOS) (1642-1945): MÁQUINAS SEM SISTEMA


OPERACIONAL

Surgiram no século XVII e eram compostos exclusivamente de elementos


mecânicos, com

grande rigidez nos programas a executar. Hoje são chamadas de máquina


dedicadas. As Figuras 2, 3
e 4 ilustram alguns exemplos dessa geração:

Figura 2 – Calculadora de Pascal (1642)

https://univirtus.uninter.com/ava/web/roa/ 6/29
23/09/2022 21:11 UNINTER

Crédito: © CC-20/Edal Anton Lefterov.

Figura 3 – Máquina diferencial Babbage (1823)

Crédito: © CC-20/GFDL CC-BY-SA.

Figura 4 – Máquina Hollerith (1886)

https://univirtus.uninter.com/ava/web/roa/ 7/29
23/09/2022 21:11 UNINTER

Crédito: © CC-20/Adam Schuster.

A geração dos mecânicos tem como marco histórico a máquina de


Turing.

Colossus: o primeiro computador, mas


ainda considerado mecânico, foi criado em 1946 por

Allan Turing, semelhante


a um autômato finito, com memória ilimitada e irrestrita. Era capaz de fazer
tudo que um computador real faz, entretanto não resolvia certos problemas. O
modelo de Turing

usava uma fita infinita como memória, tendo uma cabeça de fita
que podia se mover, ler e escrever
símbolos.

Inicialmente, a fita continha apenas a entrada, e todo o


restante estava em branco. Para
armazenar informação, escrevia sobre a fita, e
para ler informação escrita, movia a cabeça para a

posição em que a informação era


escrita, continuando a computar até produzir uma saída. As saídas
“aceite” e
“rejeite” eram obtidas entrando em estados designados de aceitação e rejeição.
Se não

entrasse em estado de aceitação ou rejeição, continuava para sempre, sem


parar.

2.2 GERAÇÃO 1 (VÁLVULAS) (1945-1955): COMPUTADORES ELETRÔNICOS,


AINDA SEM SISTEMA
OPERACIONAL

Essa é a primeira geração de computadores modernos. As válvulas


necessitavam de muito

tempo para aquecer e consumiam muita energia elétrica. Eram


grandes, porém frágeis, sua
manutenção era cara, e sua programação, feita com a
ligação de fios ou cartões. Seus circuitos eram

interligados por quilômetros de


fios instalados manualmente, atingindo velocidades na ordem de
milissegundos
(1/1.000).

https://univirtus.uninter.com/ava/web/roa/ 8/29
23/09/2022 21:11 UNINTER

John Mauchley (1907-1980) e Presper Eckert (1919-1995)


construíram o Eniac em 1946, o 1º

computador eletrônico.

Figura 5 – Eniac

Crédito: Everett Historical/Shutterstock.

Ele tinha 18 mil válvulas e 1,5 mil relés, pesava 30 toneladas e


tinha 20 registradores. Consumia
140 quilowatts, e sua programação era feita em
6 mil chaves (Figura 6).

Figura 6 – Operação do Eniac

Crédito: © CC-20/U.S. Army Photo.

O matemático John von Neumann (1903-1957) foi


colaborador do projeto Eniac, cujo
aperfeiçoamento foi o IAS, referência ao
local onde foi desenvolvido – o Institute for Advanced

https://univirtus.uninter.com/ava/web/roa/ 9/29
23/09/2022 21:11 UNINTER

Studies, da universidade
de Princeton. Credita-se a von Newmann a definição de uma arquitetura de
computadores com programa armazenado, utilizado até hoje. A Figura 7 ilustra
essa definição:

Figura 7 – Arquitetura de von Neumann

Fonte: Guerra, 2020.

Ele é considerado o “pai” do computador, pois em sua arquitetura


utiliza aritmética binária e a

organização em quatro unidades:

1.  Memória;

2.  Unidade aritmética e lógica;

3.  Unidade de controle;

4. 
Parte de E/S.

A arquitetura de von Neumann apresenta computadores de programa


armazenado,
armazenando dados e programas na memória, e com ciclo de instrução
repetitivo, executando cada

instrução com base numa sequência de etapas


programadas. As características básicas do IAS o
apresentam como fundamental no
estudo de arquitetura de computadores. Suas especificações

continuam válidas
até hoje e têm memória com mil posições, denominadas palavras, cada uma
com
valor de 40 bits. Seu dados e suas instruções são representadas em
binários e gravadas (memória); 21

instruções de 20 bits, com 2 campos de


8 bits (código de operação); e outro com 12 bits (endereço)
para
localizar cada uma das mil palavras, com endereços de 000 a 999.

https://univirtus.uninter.com/ava/web/roa/ 10/29
23/09/2022 21:11 UNINTER

2.3 GERAÇÃO 2 – TRANSISTORES (1955-1965): OS PRIMEIROS PROJETOS DE


SISTEMA
OPERACIONAL

John Bardeen (1908-1991), Walter Brattain (1902-1987) e William


Shockley (1910-1989),

funcionários da AT&T, criaram o transistor. Com as


mesmas funções das válvulas, mas com custo
menor, consumem menos energia, são
mais rápidos e confiáveis, sendo utilizados até hoje.

Nessa geração foram criados os barramentos, um conjunto de fios


paralelos usados para
conectar os componentes de um computador. Trata-se de uma
ruptura importante em relação à

arquitetura da máquina IAS, centrada na memória


e, desde então, foi adotada pela maioria dos
computadores de pequeno porte.

Foi apenas em 1953 que se iniciou o desenvolvimento do primeiro


sistema operacional – por sua

simplicidade, chamado de monitor –, desenvolvido


pelos usuários do computador IBM 701, do
Centro de Pesquisas da General Motors,
para tentar automatizar tarefas até então manuais.

Posteriormente, esse sistema


seria reescrito para um computador IBM 704, pelo grupo de usuários da
IBM
(Weizer, 1981).

Em 1961, o pesquisador Fernando Corbató, do Massachusetts


Institute of Technology (MIT), com

seu grupo de pesquisa, anunciou o


desenvolvimento do compatible time-sharing system (CTSS), o

primeiro
sistema operacional com compartilhamento de tempo (Corbató; Daggett; Daley,
1962).

2.4 GERAÇÃO 3 – INTEGRAÇÃO (1965-1980): INÍCIO DOS SISTEMAS


OPERACIONAIS

Essa foi a geração das “famílias de computadores”: mesmo tipo de


máquina, com diferentes

capacidades e preços. Tinham uma unidade de controle


com microprogramação e
multiprogramação, e vários programas compartilhavam a
memória e dividiam CPU.

Com alta capacidade de processamento, utilizavam 32 bits


e instrução de 250  nanossegundos,
com memória de 16 Mbytes. Sua memória
principal

era orientada a byte, com um conjunto de programas gerenciadores de


recursos

de hardware – o sistema operacional.

Essa geração tornou-se muito importante pois, além do sistema


operacional, integrou os

circuitos pelo chip. Em 1968, Robert Noyce e Gordon


Moore fundaram a Intel Corporation, criadora

https://univirtus.uninter.com/ava/web/roa/ 11/29
23/09/2022 21:11 UNINTER

do chip de memória de 1 KB
e da lei de Moore: a integração de transistores em circuito integrado
dobra a
cada 24 meses, mantendo-se os custos.

Em 1965, a IBM lançou o OS/360, um sistema operacional avançado,


com compartilhamento de
tempo e um excelente suporte a discos. No mesmo ano, um
projeto conjunto entre MIT, General

Electric (GE) e Bell Labs definiu o multiplexed information


and computing
service (Multics), que por

décadas influenciou
vários outros sistemas operacionais.

Em 1969, Ken Thompson e Dennis Ritchie, pesquisadores da Bell


Labs, desenvolveram a primeira

versão do Unix.

2.5 GERAÇÃO 4 – MUITA INTEGRAÇÃO (1980-?): POPULARIZAÇÃO DOS


COMPUTADORES E
DOS SISTEMAS OPERACIONAIS

Marcian Hoff Junior, engenheiro da Intel, criou o Intel 4004, um


microprocessador de 4 bits e 108

KHz, que tinha 2.300 transistores,


velocidade de 60 mil operações/s e preço inicial de US$ 200. Desde
1980, a
miniaturização dos componentes internos e os avanços se relacionaram à escala
de

integração dos circuitos integrados. A partir daqui, os sistemas


operacionais ganharam destaque e

tiveram sua importância reconhecida. É nessa


geração que famosas empresas foram fundadas e

conceitos foram criados. Acompanhe.

O primeiro destaque é o lançamento do sistema operacional da


empresa Microsoft, o MS-DOS,
em 1981. Três anos após, em 1984, a Apple lançou o
Mac OS 1.0, desenvolvido para os computadores

da linha Macintosh, o
primeiro sistema operacional a ter uma interface gráfica incorporada ao

sistema.
No ano seguinte, a Microsoft lançou o aplicativo com interface gráfica MS-Windows
1.0.

Em 1987, Andrew S. Tanenbaum, professor de computação e autor de


vários best-sellers,

desenvolveu o Minix, um sistema operacional


didático simplificado, baseado na API do Unix. No

mesmo ano, a IBM e a Microsoft


apresentaram a primeira versão de um sistema multitarefa
destinado a substituir
o MS-DOS e o Windows: o OS/2. A parceria foi rompida em seguida, e a IBM

deu
sequência ao OS/2, enquanto a Microsoft investiu no Windows.

2.6 GERAÇÃO 5 (ATUAL): COMPUTADORES INVISÍVEIS

https://univirtus.uninter.com/ava/web/roa/ 12/29
23/09/2022 21:11 UNINTER

Tanenbaum e Bos (2016) definem nossa atual geração como a geração


dos computadores

invisíveis. Foi dado esse nome porque antigamente se falava


que, no futuro (que é hoje), os
computadores estariam por toda parte, embutidos
nos mais diversos locais, executando inusitadas

funções, como abertura de


portas, acendimento de luzes, enfim, escondidos nos componentes

(invisíveis).

Em 1991, um estudante de graduação em ciência da computação,


Linus Torvalds (aluno de

Tanenbaum), utilizou o Minix como base para iniciar o


desenvolvimento do Linux.

Figura 8 – Logotipo do Linux

Fonte: Rose Carson/Shutterstock.

A Microsoft só retornou em 1993, com o lançamento do Windows NT,


o primeiro sistema 32 bits
da empresa. No mesmo ano, houve o lançamento
dos Unix de código aberto – FreeBSD e NetBSD –,

e a Apple lançou o Newton OS,


considerado o primeiro sistema operacional móvel, com gestão de

energia e
suporte para tela de toque.

Nos anos seguintes, muitos novos sistemas operacionais surgiram.


Listamos alguns a seguir:

1995: Windows 95;

1996: Windows NT 4.0; Mac OS 7.6 (first officially-named Mac OS);

1998: Windows 98; Novell NetWare 5;


2000: Windows Millennium Edition; Windows 2000;

https://univirtus.uninter.com/ava/web/roa/ 13/29
23/09/2022 21:11 UNINTER

2001: Windows XP; Mac OS X Cheetah (v. 10.0) – o novo SO da


Apple, com arquitetura distinta

de suas versões anteriores, derivada da família


Unix BSD;

2006: Windows Vista;


2007: iPhone OS 1 – lançamento do sistema operacional iOS,
derivado do sistema operacional

Darwin;

2008: Android 1.0 – SO baseado em Linux para dispositivos móveis;

2009: Windows 7;
2011: Solaris 11 11/11;

2012: Windows 8; Windows Phone 8;

2013: Windows CE 8.0; BlackBerry 10;

2015: Windows 10;


2017: Windows 10 Mobile Fall Creators Update;

2018: Windows Server 2019; iOS 13.1 – iPadOS 13.1;

2019: macOS Catalina (v10.15);


2020: Linux 5.6; NetBSD 9.0; Android 11.

Apresentamos o registro histórico de apenas alguns destaques. Sugerimos


que você consulte a
bibliografia para conhecer muitas outras datas e sistemas operacionais.

TEMA 3 – OBJETIVOS E FUNÇÕES

Agora veremos os objetivos básicos do sistema operacional, como


ele é estruturado para

alcançá-los e quais desafios ele deve resolver.

Existe uma grande distância entre circuitos eletrônicos,


dispositivos de hardware e os programas

aplicativos em software. Os circuitos


são complexos, acessados por interfaces de baixo nível

(geralmente usando as
portas de entrada/saída do processador), e muitas vezes suas características e
seu comportamento dependem da tecnologia usada em sua construção (Maziero, 2019).

Por exemplo, a forma de acessar dados em disco (HD ou SSD) via hardware
de baixo nível (Sata

III) é muito diferente do acesso a dados semelhantes em


cartão de memória ou leitores de discos

óticos (DVD ou blu-ray). Toda essa


grande diversidade de hardware pode tornar-se uma grande

dificuldade para quem o


utiliza (como desenvolvedores de aplicativo). Então é desejável que todas

https://univirtus.uninter.com/ava/web/roa/ 14/29
23/09/2022 21:11 UNINTER

essas
características e diferenças tecnológicas sejam abstraídas e se tornem
invisíveis aos aplicativos

e aos utilizadores do sistema computacional.

É aqui que entra em cena o sistema operacional. Trata-se de uma


camada de software que opera

entre o hardware e os aplicativos, como vimos no Tema 1


e conforme a Figura 10. É um software de

estrutura ampla e complexa que


incorpora aspectos de baixo nível (como drivers de dispositivos e
gerência de memória física) e de alto nível (como softwares utilitários
e interface gráfica).

Figura 10 – Estrutura típica de sistema operacional (Android)

Fonte: Guerra, 2020.

Stallings (2017) descreve que o sistema operacional é um


programa que controla a execução de

aplicativos e age como interface entre o


usuário e o hardware do computador. Tem basicamente

dois objetivos:

1.  Conveniência: um
sistema operacional visa tornar mais conveniente o uso do computador;

https://univirtus.uninter.com/ava/web/roa/ 15/29
23/09/2022 21:11 UNINTER

2. 
Eficiência: um sistema operacional permite uma utilização mais
eficiente dos recursos do
sistema.

Os objetivos básicos de um sistema operacional, descritos por Maziero


(2019), podem ser

sintetizados em duas palavras-chave: abstração e gerência.


Vejamos em detalhes seus principais

aspectos.

Abstração de recursos: 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 à
complexidade de suas
interfaces. Assim, o sistema operacional deve definir interfaces abstratas para

os recursos do hardware, visando atender os seguintes objetivos:

Prover interfaces de acesso mais simples que as de baixo


nível, para simplificar a

construção de aplicativos. Por exemplo: para ler dados


de um disco rígido, um programador

de aplicação usa o conceito de arquivo, que


implementa uma visão abstrata do disco rígido,

acessível por operações como open,


read e close. Se tivesse que acessar o disco diretamente,
seria
necessário manipular portas de entrada/saída e registradores com comandos para o

controlador de disco (sem falar na dificuldade de localizar os dados desejados


dentro do disco);

Tornar os aplicativos independentes do hardware. Ao definir


uma interface abstrata de
acesso a um dispositivo de hardware, o sistema
operacional desacopla o hardware dos

aplicativos e permite que ambos evoluam de


forma mais autônoma. Por exemplo, o código de

um editor de textos não deve


depender da tecnologia de discos utilizada no sistema;

Definir
interfaces de acesso homogêneas para dispositivos com tecnologias distintas.
Com
suas abstrações, o sistema operacional permite aos aplicativos usar a mesma
interface para

dispositivos diversos. Por exemplo, um aplicativo acessa dados


em disco por meio de arquivos e

diretórios, sem precisar se preocupar com a


estrutura real de armazenamento dos dados, que

podem estar num disquete, num


disco Sata, numa máquina fotográfica digital conectada à
porta USB, num CD ou mesmo
num disco remoto, compartilhado pela rede.

O hardware e o software usados para fornecer aplicações aos


usuários podem ser vistos sob a

forma de uma organização hierárquica (ou em


camadas), conforme a Figura 11.

Figura 11 – Camadas e visões de um sistema de computação

https://univirtus.uninter.com/ava/web/roa/ 16/29
23/09/2022 21:11 UNINTER

Fonte: Stallings, 2017.

O usuário final – que vai utilizar essas aplicações – geralmente


não se interessa pela arquitetura

do computador nem pelos detalhes do hardware.


Ele vê o sistema de computação como uma

aplicação, pois os aplicativos são  a


última camada entre o sistema e o usuário, trazendo assim a
interface entre
eles.

Os softwares de aplicação (apps) são desenvolvidos


numa linguagem de programação por um

analista/desenvolvedor. Se fossem escritos


usando o conjunto de instruções do processador e, além

disso, tivessem também que


controlar o hardware do computador, a tarefa de desenvolver

programas seria
extremamente complexa, quase impossível.

Para facilitar essa tarefa, existe um conjunto de programas de


sistema. Alguns desses programas
são conhecidos como utilitários, que implementam
funções usadas frequentemente e criam

programas, gerenciam arquivos e controlam


dispositivos de E/S. Um programador usa esses recursos

para desenvolver uma aplicação


que, ao ser executada, invoca os utilitários para desempenhar certas

funções.

O software de sistema mais importante é o sistema operacional, que


esconde os detalhes do

hardware do programador, fornecendo uma interface


conveniente para o uso do sistema. Ele age
como um mediador, facilitando o
acesso e o uso de aplicativos e serviços para o programador. O

sistema
operacional tipicamente fornece serviços para as seguintes atividades, que
descrevem

algumas de suas funções:

Criação de programas: o sistema operacional apresenta uma


variedade de recursos e serviços

para auxiliar o programador a desenvolver


programas, como editores e depuradores. Esses

https://univirtus.uninter.com/ava/web/roa/ 17/29
23/09/2022 21:11 UNINTER

serviços tipicamente são


oferecidos na forma de programas utilitários, que na verdade não são

parte do
sistema operacional, mas podem ser acessados por ele;
Execução de programas: várias tarefas precisam ser cumpridas
para um programa ser

executado. Instruções e dados devem ser carregados na


memória principal. Dispositivos de E/S

e arquivos precisam ser inicializados, e


outros recursos devem ser preparados. O sistema

operacional cumpre todas essas


tarefas para o usuário;
Acesso a dispositivos de E/S: cada dispositivo de E/S tem seu
próprio conjunto peculiar de

instruções ou sinais de controle para operação. O


sistema operacional cuida dos detalhes do

uso de cada dispositivo, de modo que


o programador possa pensar apenas em termos de

operações simples de leitura e


de escrita;
Acesso controlado aos arquivos: no caso de arquivos, o controle
deve incluir não apenas um

entendimento sobre a natureza do dispositivo de E/S


(unidade de disco ou de fita), mas

também sobre o formato dos arquivos no meio


de armazenamento. Mais uma vez, o sistema

operacional cuida dos detalhes. Além


disso, no caso de sistemas usados simultaneamente por
vários usuários, ele
fornece mecanismos de proteção para controlar o acesso aos arquivos;

Acesso ao sistema: no caso de sistemas compartilhados ou


públicos, o sistema operacional

controla o acesso ao sistema como um todo e a


recursos específicos também. A função de
acesso deve proteger o sistema contra
o uso não autorizado, tanto para recursos quanto para

dados de usuários, e
resolver conflitos em caso de contenção de um recurso;

Detecção e reação aos erros: diversos erros podem ocorrer


durante a operação de um sistema

de computação, incluindo erros de hardware


internos e externos, como erro de memória e
falha, ou mau funcionamento de
dispositivo, além de vários erros de software, como overflow

em operação
aritmética, tentativa de endereçar uma área de memória não permitida e a

impossibilidade de o sistema operacional atender à requisição de uma aplicação.


Em cada caso,

o sistema operacional deve reagir no sentido de eliminar a


condição de erro, com o menor
impacto possível sobre as aplicações em execução.
Essa reação pode variar, desde terminar a

execução do programa que causou o


erro até tentar executar novamente a operação ou,

simplesmente, relatar a
ocorrência do erro à aplicação;

Monitoração:
um bom sistema operacional mantém estatísticas de uso de vários recursos e
monitora parâmetros de desempenho, como o tempo de resposta. Em qualquer
sistema, essa

informação é útil para antecipar a necessidade de futuros


melhoramentos e para a sintonia do

https://univirtus.uninter.com/ava/web/roa/ 18/29
23/09/2022 21:11 UNINTER

sistema, aumentando seu desempenho. Num


sistema multiusuário, essa informação também

pode ser usada para tarifação,


pela utilização de recursos.

3.1 SISTEMA OPERACIONAL COMO GERENTE DE RECURSOS – UM OBJETIVO E


UMA FUNÇÃO

Os aplicativos utilizam o hardware para atingir seus objetivos e


tarefas, como criar, editar e

imprimir documentos, tocar músicas, exibir vídeos


e imagens, ler e armazenar arquivos de dados e

informações, conectar-se à
internet, entre outros. Num sistema com várias atividades simultâneas
(multitarefas),
podem ocorrer conflitos na utilização do hardware, quando duas ou mais tarefas

precisam
dos mesmos recursos para ser executadas. Uma das funções do sistema operacional
é

definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos
e resolver eventuais

disputas e conflitos.

O sistema operacional é o responsável por gerenciar o uso desses


recursos. Portanto, é o sistema
operacional que controla o processamento, o
armazenamento e a transferência de dados, pois,

gerenciando os recursos do
computador, o sistema detém o controle das suas funções básicas.

Esse controle é exercido de maneira curiosa. Normalmente,


pensamos no mecanismo de

controle como algo externo ao que é controlado ou,


pelo menos, como algo que é uma parte distinta

e separada do que é controlado


(por exemplo, um sistema de aquecimento residencial é controlado

por um
termostato, que é completamente distinto do sistema de geração de calor e do
aparato de
distribuição de calor). Não é o caso do sistema operacional que,
como mecanismo de controle, é

incomum em dois aspectos:

O sistema operacional é um software como outro qualquer, sendo


executado pelo processador,

e o sistema operacional frequentemente renuncia ao


controle do processador para, em seguida,

obter o controle novamente; nada mais


é do que um programa de computador. Semelhante a outros
softwares, ele
contém instruções para o processador; a diferença-chave está na intenção do

programa.

O sistema operacional direciona o processador no uso dos


recursos do sistema, assim como na

execução de outros programas. Mas, para que


o processador execute outros programas, ele deve

interromper a execução do
sistema operacional. Dessa maneira, ele libera o controle ao processador,

https://univirtus.uninter.com/ava/web/roa/ 19/29
23/09/2022 21:11 UNINTER

para
que ele possa executar algum trabalho “útil”, e então retoma o controle por
tempo suficiente

para preparar o processador e executar uma próxima tarefa.

A Figura 12 apresenta os principais recursos gerenciados pelo sistema


operacional:

Figura 12 – Camadas e visões de um sistema de computação

Fonte: Stallings, 2017.

Uma parte do sistema operacional reside na memória principal


(RAM). Essa parte inclui o núcleo

(kernel), que contém as funções mais


usadas pelo sistema operacional, além de outras partes do
sistema operacional
em uso naquele momento. Outros dados e programas de usuário ocupam o

restante
da memória principal (RAM). Então, a gestão da memória é feita com a alocação
controlada,

em conjunto, pelo sistema operacional e pelo hardware de


gerenciamento de memória da CPU.

A gestão de recursos (dispositivos) de E/S é outra tarefa do


sistema operacional, que decide

quando um dispositivo de E/S pode (ou não) ser


usado pelo programa em execução, controlando o
acesso e o uso de arquivos.

A seguir, apresentamos exemplos de gestão de recursos do hardware.

A concorrência pela utilização do tempo de CPU (que futuramente


estudaremos) é essencial
para que ocorra um grande número de tarefas pelo mesmo
computador, que normalmente tem mais

tarefas a processar do que a quantidade de


processadores disponíveis, complementando o conceito

de redução da ociosidade
da CPU. O gerenciamento de recursos é fundamental para balancear sua

utilização, com distribuição justa entre os aplicativos e para que cada um


deles seja executado na
velocidade adequada, cumprindo suas funções sem
prejudicar as demais. No caso de um sistema de

computação com múltiplos


processadores, essa decisão se estende a todos eles.

https://univirtus.uninter.com/ava/web/roa/ 20/29
23/09/2022 21:11 UNINTER

Essa função é a gerência do processador – também


conhecida como gerência de processos,
de tarefas ou de
atividades –, que visa distribuir a capacidade de processamento de forma
justa

entre as aplicações, evitando que uma aplicação monopolize esse recurso,


respeitando, assim, as

prioridades definidas pelos usuários. O sistema operacional


provê a ilusão de que existe um
processador independente para cada tarefa, o
que facilita o trabalho dos programadores de

aplicações e permite construir sistemas


mais interativos. Também faz parte da gerência de atividades

fornecer
abstrações para sincronizar atividades interdependentes e prover formas de
comunicação

entre elas.

O mesmo ocorre com a memória RAM, que também deve ser


distribuída de forma justa entre as

aplicações. Aqui é descrita então a gerência


de memória, cujo objetivo é fornecer a cada aplicação
uma área de memória
própria, independente e isolada das demais aplicações, inclusive do sistema

operacional.
O isolamento das áreas de memória das aplicações melhora a estabilidade e
segurança

do sistema como um todo, pois impede aplicações com erros (ou


aplicações maliciosas) de interferir

no funcionamento das demais aplicações.


Além disso, caso a memória RAM existente seja insuficiente
para as aplicações,
o sistema operacional pode aumentá-la de forma transparente às aplicações,

usando o espaço disponível num meio de armazenamento secundário (como um disco


rígido). Uma

importante abstração construída pela gerência de memória (com o


auxílio do hardware) é a noção de
memória virtual, que desvincula os endereços
de memória vistos por cada aplicação dos endereços

acessados pelo processador na


memória RAM. Com isso, uma aplicação pode ser carregada em

qualquer posição
livre da memória, sem que seu programador se preocupe com os endereços de

memória em que ela irá executar.

A gerência de dispositivos, por sua vez, recebe destaque,


pois cada periférico do computador

tem suas particularidades; assim, o


procedimento de interação com uma placa de rede é
completamente diferente da
interação com um disco rígido Sata. Todavia, existem muitos problemas

e
abordagens em comum para o acesso aos periféricos. Por exemplo, é possível criar
uma abstração

única para a maioria dos dispositivos de armazenamento, como cartão


de memória, SSD, CD-ROMs
etc., na forma de um vetor de blocos de dados.

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 similares sob a mesma interface de acesso. Outro recurso em
que o acesso
deve ser mutuamente exclusivo (apenas um aplicativo por vez) é a impressão. O
sistema

https://univirtus.uninter.com/ava/web/roa/ 21/29
23/09/2022 21:11 UNINTER

operacional resolve essa questão utilizando o recurso de spooling


(que estudaremos futuramente),

além de definir uma fila de trabalhos a imprimir (print


jobs), normalmente executados de forma
sequencial (first in, first out).

A gerência de arquivos é 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 costumam usá-los para permitir o acesso a recursos que nada têm a
ver com
armazenamento. Exemplos disso são as conexões de rede (nos sistemas Unix
e Windows, cada socket

TCP é visto como um descritor de arquivo, com o qual


pode-se ler ou escrever dados) e as
informações internas do sistema operacional
(como o diretório Proc do Unix).

A gerência de proteção de dados e usuários é outra


importante tarefa de gestão de recursos.

Com computadores conectados em rede e compartilhados


por vários usuários, é importante definir
claramente os recursos que cada
usuário pode acessar, as formas de acesso permitidas (leitura,

escrita etc.), além


de garantir que essas definições sejam cumpridas. Por exemplo, a proteção
contra

os ataques de negação de serviço (denial of service –


DoS[1]), comuns na internet. É
responsabilidade

do sistema operacional do servidor detectar e impedir ataques


como esses, em que todos os recursos

do sistema são monopolizados por um único


usuário.

Para proteger os recursos do sistema contra acessos indevidos, é


necessário:

Definir usuários e grupos de usuários;


Identificar os usuários que se conectam ao sistema por procedimentos de autenticação;

Definir e aplicar regras de controle de acesso aos recursos, relacionando todos os usuários,
recursos e formas de acesso, aplicando essas regras por procedimentos
de autorização;
Registrar o uso dos recursos pelos usuários, para fins de auditoria e contabilização.

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

por interfaces simples, independentes das


características e detalhes de baixo nível, minimizando os
conflitos no uso do hardware
(Maziero, 2019).

As principais funções dos sistemas operacionais estão


diretamente ligadas aos objetivos, pois,
para cumprir os objetivos de abstração
e gerência, eles devem atuar em várias frentes. Cada um dos

https://univirtus.uninter.com/ava/web/roa/ 22/29
23/09/2022 21:11 UNINTER

recursos do sistema
tem suas particularidades, que impõem exigências específicas para gerenciá-los

e
abstraí-los. Essas são as principais funcionalidades implementadas por um
sistema operacional
típico.

Além dessas funcionalidades básicas oferecidas pela maioria dos


sistemas operacionais, várias
outras se agregam aos sistemas modernos, para
cobrir aspectos complementares, como a interface

gráfica, suporte de rede,


fluxos multimídia, fontes de energia etc.

As funcionalidades do sistema operacional geralmente são


interdependentes: por exemplo, a
gerência do processador depende de aspectos da
gerência de memória, assim como a gerência de

memória depende da gerência de


dispositivos e da gerência de proteção.

TEMA 4 – ARQUITETURA: CLASSIFICAÇÃO

É essencial conhecer as diferenças entre as arquiteturas dos


sistemas operacionais para escolher

o mais adequado a cada situação. Algumas


características básicas diferenciam os vários tipos de
sistemas operacionais,
que

são classificados, segundo a


arquitetura, quanto ao tempo de resposta e à entrada de dados
em
sistema operacional, em lote (batch), interativos, tempo
real e híbridos.

Essas características envolvem dois aspectos independentes. O


primeiro especifica se o sistema

de computação é interativo ou é se um sistema


de processamento em lotes (batch). Num sistema
interativo, o
programador/usuário interage diretamente com o computador, normalmente com um

teclado e um monitor de vídeo, para requisitar a execução de tarefas (jobs)


ou efetuar transações.
Além disso, ele pode, dependendo da natureza da
aplicação, comunicar-se com o computador
durante a execução de uma tarefa.

Num sistema de processamento em lotes (batch), ocorre o


oposto. O programa de um usuário é
agrupado com programas de outros usuários, e
esse lote de programas é submetido à execução por

um operador de computador. Quando


a execução do programa termina, os resultados são impressos
para ser entregues
ao usuário. Hoje em dia são raros os sistemas que fazem processamento
exclusivamente
em lotes, no entanto, é útil examiná-los brevemente para entendermos melhor os

sistemas operacionais atuais.

https://univirtus.uninter.com/ava/web/roa/ 23/29
23/09/2022 21:11 UNINTER

O batch não exige interação com o usuário. A entrada de


dados é feita por um dispositivo,
geralmente arquivos em disco, processamento
de cálculos, compilações, ordenações e backups. Os
sistemas interativos –
também conhecidos como sistemas de tempo compartilhado – geralmente

permitem
a interação com usuário por meio de terminais, vídeo, teclado e mouse.

Com os sistemas de processamento em tempo real, o tempo


de resposta é o fator principal do

sistema, utilizado em monitoramentos,


controle de tráfego aéreo, de usinas nucleares etc. Os
sistemas híbridos
são uma combinação de sistema batch com sistemas interativos.

Quanto à execução de tarefas, os sistemas operacionais


são classificados como sistemas
monotarefa, multitarefa e multiprocessamento.
Trata-se de outro aspecto independente, que
especifica se o sistema de
computação emprega multiprogramação ou não.

A multiprogramação é uma tentativa de deixar o


processador ocupado o maior tempo possível,
mantendo-o trabalhando em mais de
um programa de cada vez. Diversos programas são

simultaneamente carregados na
memória, e o tempo do processador é dividido entre eles. A
alternativa para
esse tipo é um sistema de monoprogramação (uniprogramação), que executa
apenas um programa de cada vez.

Os sistemas monotarefa executam uma única aplicação de


cada vez; já nos sistemas
multitarefa várias tarefas concorrem pelos
recursos de processamento. Os sistemas

multiprocessados têm duas ou mais


CPUs interligadas, trabalhando em conjunto e fortemente ou
fracamente acopladas.

Os sistemas com multiprocessadores fortemente acoplados


têm duas ou mais CPUs, que
compartilham uma única memória e são controladas por
um único sistema operacional. Os
fracamente acoplados têm duas ou mais CPUs,
cada uma com sua memória, sendo controladas por

sistemas operacionais independentes.

Quanto à estrutura, os sistemas operacionais são classificados basicamente


como monolíticos,

em camadas, máquinas virtuais e cliente


servidor.

Os sistemas operacionais ainda são classificados como sistemas


operacionais de computadores
de grande porte, servidores, computadores pessoais
e sistemas operacionais embarcados. Os

embarcados são sistemas que


controlam dispositivos móveis ou que não são computadores, como
micro-ondas,
geladeiras, PDAs etc.

https://univirtus.uninter.com/ava/web/roa/ 24/29
23/09/2022 21:11 UNINTER

Os sistemas operacionais modernos se dividem em várias


camadas, e cada uma prova serviços à
camada superior mais próxima, protegendo a
camada mais inferior, o núcleo do sistema (ou kernel)
do sistema
operacional.

Os recursos do kernel são acessados por chamadas de


sistema (system calls) de forma protegida
para não danificar o sistema.
As instruções que têm o poder de comprometer o sistema são

conhecidas como instruções


privilegiadas (modo kernel), enquanto as instruções não privilegiadas
não
oferecem perigo.

Chamadas de sistema são os comandos de acesso às funções do sistema


operacional e podem
ser divididos em chamadas: para gerenciar processos, para
sinalização, para gerenciar arquivos,
manipular diretórios, proteger e gerenciar
o tempo.

TEMA 5 – TIPOS E EXEMPLOS

Já classificados e denominados, os sistemas operacionais passam


então a dividir-se em grupos
especializados, sendo mais indicados a certas
demandas e menos a outras. A seguir, apresentamos

alguns tipos de sistemas operacionais.


Muitos se encaixam em mais de um deles. Vejamos:

Batch (de lote): os sistemas operacionais mais


antigos trabalhavam “por lote”, ou seja, todos os
programas a executar eram
colocados numa fila, com seus dados e demais informações para a

execução. O
processador recebia os programas e os processava sem interagir com os usuários,
o que permitia um alto grau de utilização do sistema. Atualmente, esse conceito
se aplica a

sistemas que processam tarefas sem interação direta com os


usuários, como os sistemas de
processamento de transações bancárias. Além
disso, o termo “em lote” também é usado para
designar um conjunto de comandos
que deve ser executado em sequência, sem interferência

do usuário. Exemplos: os
clássicos IBM OS/360 e o VAX/VMS, entre outros;
De rede: um sistema operacional de rede deve ter suporte à
operação em rede, ou seja, a
capacidade de oferecer às aplicações locais
recursos localizados em outros computadores

conectados à rede, como arquivos e


impressoras. Ele também deve disponibilizar seus recursos
locais aos demais
computadores de forma controlada. A maioria dos sistemas operacionais

atuais
oferece esse tipo de funcionalidade, dispensando exemplos;
Distribuído: num sistema operacional distribuído, os
recursos de cada computador estão
disponíveis a todos que estejam conectados à
rede, de forma transparente aos usuários. Ao

https://univirtus.uninter.com/ava/web/roa/ 25/29
23/09/2022 21:11 UNINTER

lançar uma aplicação, o usuário


interage com sua interface, mas não sabe onde está
executando ou armazenando
seus arquivos: o sistema é quem decide, de forma transparente ao

usuário.
Sistemas operacionais distribuídos já existem há muito tempo (como o Amoeba)
(Tanenbaum
et al., 1991); recentemente, os ambientes de computação em nuvem têm
implementado esse conceito. Numa aplicação cloud (nuvem), o usuário
interage com a interface

da aplicação num computador ou telefone, mas não tem


uma visão clara das máquinas em que
seus dados estão sendo processados e
armazenados. Exemplo: AWS (Amazon Web Services) e
Docker;

Multiusuário: um sistema operacional multiusuário deve


suportar a identificação do “dono” de
cada recurso dentro do sistema (arquivos,
processos, áreas de memória, conexões de rede) e
impor regras de controle de
acesso para impedir o uso desses recursos por usuários não

autorizados. Essa
funcionalidade é fundamental para a segurança dos sistemas operacionais de
rede
e distribuídos. Grande parte dos sistemas atuais são multiusuários;

Servidor: um sistema operacional servidor deve permitir a


gestão eficiente de muitos recursos
(disco, memória, processadores), impondo
prioridades e limites sobre o uso dos recursos pelos
usuários e seus aplicativos.
Normalmente um sistema operacional servidor também tem suporte

à rede e aos multiusuários.


Exemplos: Windows Server 2019 e Oracle Linux Server;
Desktop: um sistema operacional “de mesa” é voltado
ao atendimento do usuário doméstico
ou corporativo para atividades
corriqueiras, como editar textos e gráficos, e reproduzir mídia.

Suas principais
características são a interface gráfica, o suporte à interatividade e a
operação em
rede. Exemplos de desktops: Windows 10, Linux e macOS X;

Móvel: um sistema operacional móvel é usado em


equipamentos de uso pessoal compactos,
como smartphones e tablets. Nesse
contexto, as principais prioridades são a gestão eficiente da
energia
(bateria), a conectividade nos diversos tipos de rede (wi-fi, GSM, bluetooth,
NFC etc.) e a

interação com uma grande variedade de sensores (GPS, giroscópio,


luminosidade, tela de
toque, leitor de digitais etc.). Android e iOS são
exemplos dessa categoria;
Embarcado: um sistema operacional é dito embarcado
(embutido ou embedded) quando é

construído para operar sobre um hardware


com poucos recursos de processamento,
armazenamento e energia. Aplicações
típicas desse tipo de sistema aparecem em sistemas de
automação e controladores
automotivos, equipamentos eletrônicos de uso doméstico (leitores

de DVD, TVs,
micro-ondas, centrais de alarme etc.). Muitas vezes um sistema operacional
embarcado se apresenta na forma de uma biblioteca a ser ligada ao programa da
aplicação

https://univirtus.uninter.com/ava/web/roa/ 26/29
23/09/2022 21:11 UNINTER

durante sua compilação. LynxOS, TinyOS, Contiki e VxWorks são


exemplos de sistemas
operacionais embarcados;

Tempo real: são sistemas em que o tempo é essencial. Ao contrário da ideia usual,
um sistema
operacional de tempo real não precisa ser necessariamente
ultrarrápido; sua característica
essencial é ter um comportamento temporal
previsível, ou seja, seu tempo de resposta deve ser

previsível no melhor e no
pior caso de operação. A estrutura interna de um sistema operacional
de tempo
real deve ser construída de forma a minimizar esperas e latências
imprevisíveis, como
tempos de acesso a disco e sincronizações excessivas.
Exemplos de sistemas operacionais de

tempo real incluem o QNX, RT-Linux e


VxWorks.

Muitos sistemas embarcados têm características de tempo real, e


vice-versa. Existem sistemas de

tempo real críticos (hard real-time systems),


nos quais a perda de um prazo pelo sistema pode
perturbar seriamente o sistema
físico sob seu controle, com graves consequências humanas,
econômicas ou
ambientais. Exemplos desse tipo de sistema são o controle de funcionamento de
uma

turbina de avião ou um freio ABS.

Por outro lado, nos sistemas de tempo real não críticos (soft
real-time systems), a perda de um

prazo é perceptível e degrada o serviço


prestado, sem maiores consequências. Exemplos desse tipo
de sistema são os softwares
de reprodução de mídia: em caso de atrasos, podem ocorrer falhas na

música que
está sendo tocada.

FINALIZANDO

Nesta aula apresentamos os conteúdos iniciais de sistemas


operacionais. No Tema 1,
enfatizamos os conceitos e as definições por uma visão
geral; no Tema 2, o histórico e a evolução dos

sistemas operacionais, utilizando


uma linha do tempo em paralelo à história e à evolução dos
computadores,
descritas em suas gerações, visualizando as gerações das máquinas e seus
sistemas
operacionais em cada período da história.

No Tema 3, vimos os objetivos, funções e princípios fundamentais


que estabelecem as atividades
desenvolvidas pelos sistemas operacionais. O
destaque desse tema é o item 3.1, que descreve o

sistema operacional como


gerente de recursos, seu principal objetivo e função, pois ele é responsável
por gerenciar o uso dos recursos computacionais. As principais atividades de
gestão foram descritas

https://univirtus.uninter.com/ava/web/roa/ 27/29
23/09/2022 21:11 UNINTER

nesse tema e servirão como base para entendermos os


temas das aulas seguintes, quando
estudarmos os processos (tarefas) de gestão.

Na sequência, definimos e apresentamos a classificação e a


arquitetura dos sistemas
operacionais para, em seguida, finalizar o conteúdo
introdutório com a apresentação de tipos e

exemplos atuais, permitindo o


conhecimento suficiente para a escolha correta de sistemas
operacionais
adequados às necessidades de cada situação do cotidiano, nos mais diversos
ambientes.

Enfim, compreender esses conceitos é o princípio para entender as


atividades desenvolvidas
pelos sistemas computacionais. Assim, futuramente ampliaremos
nosso conhecimento com os

conceitos das principais atividades de gerência feitas


pelos sistemas operacionais, individualmente
apresentadas e descritas.

REFERÊNCIAS

ARPACI-DUSSEAU, R.; ARPACI-DUSSEAU, A. Operating systems: three


easy pieces. Madison:

Arpaci-Dusseau Books, 2014.

CORBATÓ, F.; DAGGETT, M.; DALEY, R. An


experimental time-sharing system. In: PROCEEDINGS

OF THE SPRING JOINT COMPUTER


CONFERENCE, 1., New York. Anais… New York: ACM, 1962.

MACHADO, F. B.; MAIA, P. L. Arquitetura de sistemas operacionais.


4. ed. Rio de Janeiro: LTC,

2007.

MAZIERO, C. Sistemas operacionais: conceitos e mecanismos.


Curitiba: UFPR, 2019.

SILBERSCHATZ, A.; GAGNE, G.; GALVIN, P. B. Operating


system concepts. New Jersey: Wiley,
2018.

SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas


operacionais com Java. 8. ed. Rio de
Janeiro: Campus, 2016.

STALLINGS, W. Operating systems:


internals and design principles. 9. ed. London: Pearson, 2017.

TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos.


4. ed. São Paulo: Pearson, 2016.

https://univirtus.uninter.com/ava/web/roa/ 28/29
23/09/2022 21:11 UNINTER

TANENBAUM, A. S. et al. The Amoeba distributed


operating system – a status report. Computer
Communications, v. 14, p. 324-335, jul. 1991.

TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais:


projeto e implementação. 3. ed.
Porto Alegre: Bookman, 2008.

WEIZER, N. A history
of operating systems. Datamation, [S.l.], p. 119-126, jan. 1981.

[1] Formas de ataque virtual que utilizam


diversas técnicas para forçar um servidor de rede a

dedicar seus recursos para


atender um determinado usuário em detrimento dos demais. Por

exemplo, ao abrir
milhares de conexões simultâneas num servidor de e-mail, um atacante pode
reservar para si todos os recursos do servidor (processos, conexões de rede,
memória e processador),

fazendo com que os demais usuários não sejam mais


atendidos.

https://univirtus.uninter.com/ava/web/roa/ 29/29

Você também pode gostar