Unidade - 02 - Fundamentos para Computação
Unidade - 02 - Fundamentos para Computação
FUNDAMENTOS PARA
COMPUTAÇÃO
CAPÍTULO 2 - DE QUE MANEIRA OS
PROGRAMAS SÃO EXECUTADOS EM UM
SISTEMA COMPUTACIONAL?
Fábio Tavares Arruda
INICIAR
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 1/28
25/03/2020 Fundamentos para Computação
Introdução
Você já deve ter percebido que há computadores por todos os lugares, seja em casa, no
trabalho, na escola, na faculdade, na padaria, nos supermercados, nos shoppings etc.
Para que eles funcionem, há vários programas sendo executados. Eles, computadores e
programas, têm o objetivo de resolver problemas ou diminuir o tempo de alguma
atividade realizada pelo ser humano. Para que possamos utilizar o computador e seus
programas precisamos de um programa específico para nos auxiliar, esse programa se
chama sistema operacional. Então, neste capítulo, vamos estudar de que maneira os
programas são executados em um sistema computacional.
Para iniciar este estudo, você fará algumas reflexões importantes para que possa
integrar esses conceitos de como um sistema computacional funciona. Como podemos
definir um sistema computacional? Quais as vantagens que o uso da internet pode nos
trazer? Quais as formas de acesso à internet? O que são redes de computadores? Como
podemos criar um programa de computador? O que são linguagens de programação e
quais suas características? Qual o papel dos sistemas operacionais?
A partir dessas reflexões, neste capítulo você estudará o conceito de sistemas
operacionais: o que são e como podem ser aplicados. Estudará também os conceitos
iniciais de linguagens de programação, suas ferramentas e técnicas. Além disso, será
abordada a aplicação de sistemas de computação e suas aplicações práticas. Por fim,
serão abordados os conceitos iniciais de redes de computadores e meios de acesso à
internet.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 2/28
25/03/2020 Fundamentos para Computação
VOCÊ SABIA?
Que o Windows 1.0 foi lançado em novembro de 1985? A primeira versão do Windows
tinha apenas o jogo Reversi, um calendário, bloco de notas, calculadora, relógio, um
prompt de comando, o Write, o Painel de Controle, o Paint e programas de comunicação.
Ficou curioso para saber mais? Acesse: <https://canaltech.com.br/windows/do-windows-
10-ao-windows-10-veja-como-o-sistema-mudou-nestes-30-anos-45911/
(https://canaltech.com.br/windows/do-windows-10-ao-windows-10-veja-como-o-
sistema-mudou-nestes-30-anos-45911/)>.
Para usuários comuns de computador, pessoas que os utilizam para resolver seus
problemas, as diferenças entre os vários sistemas operacionais são, em sua maioria,
estéticas, ou seja, as diferenças consistem apenas na aparência. Para profissionais da
computação, sistemas operacionais diferentes possuem características internas
distintas e podem impactar diretamente no trabalho e nos programas utilizados.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 3/28
25/03/2020 Fundamentos para Computação
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 4/28
25/03/2020 Fundamentos para Computação
Figura 1 - Funções do sistema operacional: utilizas para controlar o hardware do computador. Fonte:
Elaborada pelo autor, 2018.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 6/28
25/03/2020 Fundamentos para Computação
Figura 2 - Os diretórios agrupam os arquivos semelhantes, assim como as pastas de documentos. Fonte: ESB
Professional, Shutterstock, 2018.
2.1.2 Aplicações
Os sistemas operacionais podem ser classificados de acordo com vários aspectos,
sendo um deles em relação à quantidade de usuários, como os monousuários que só
permitem um usuário por vez para realizar as tarefas no sistema. Já os multiusuários
permitem que mais de um usuário execute tarefas simultaneamente. Outra
classificação para os sistemas operacionais é pelo número de tarefas, como os
monotarefas, que permitem executar uma tarefa por fez; já os multitarefas permitem a
execução de mais de uma tarefa “simultaneamente”. (BROOKSHEAR, 2013)
Temos também sistemas operacionais distribuídos, os quais rodam em mais de um
computador, ou seja, vários computadores separados fisicamente rodando um único
sistema operacional como se fosse em um único computador. Já os de tempo real são
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 7/28
25/03/2020 Fundamentos para Computação
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 8/28
25/03/2020 Fundamentos para Computação
executar o algoritmo, eles podem ser enviados por um usuário, por um outro sistema,
ou por uma função do próprio programa. Após o recebimento dos dados, é possível
realizar seu processamento, que nada mais é do que realizar uma transformação dos
dados recebidos, seja através de operações lógicas ou aritméticas. Por fim, é realizada a
etapa de saída, onde o computador disponibiliza o resultado do processamento dos
dados.
Figura 3 - Etapas básicas que um programa deve seguir. Fonte: Elaborada pelo autor, 2018.
Ao realizar atividades no mundo real, nos deparamos com diversos tipos de dados.
Quais os tipos que você consegue identificar nas suas atividades? Veja que temos os
tipos primitivos de dados, ou seja, são aqueles definidos na especificação da linguagem
de programação, os quais se dividem em numéricos, caracteres e booleanos. Os tipos
numéricos representam os números e se dividem em real e inteiro, assim como na
matemática. O caractere representa um único caractere que é escrito entre aspas, se
houver mais de um caractere entre as aspas chamamos de cadeia de caracteres ou
string. Os booleanos se caracterizam por poder ter dois valores, verdadeiro e falso.
No contexto das linguagens de programação, há também as palavras reservadas da
linguagem, as quais não podem ser utilizadas pelo programador para outro fim a não
ser aquele que foi definido. Algumas delas possuem a característica de poder
armazenar dados, isso pode ser feito basicamente utilizando variáveis e constantes. Ao
armazenar um valor em uma variável, esse valor pode ser alterado inúmeras vezes ao
longo da execução do programa, entretanto, ao armazenar um valor em uma constante,
esse valor não pode ser alterado durante a execução do programa. (MANZANO,
LOURENÇO; MATOS, 2016)
Ao especificar o algoritmo de um programa, podem ser realizadas operações
aritméticas, relacionais e lógicas. As operações aritméticas que podem ser realizadas
são as operações de soma, subtração, multiplicação, divisão, resto da divisão, entre
outras. As relacionais são realizadas utilizando os comandos de igual, diferente, maior
que, menor que, maior ou igual, menor ou igual. Por fim, as lógicas são realizadas
utilizando os operadores lógicos disjunção, conjunção e negação.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 10/28
25/03/2020 Fundamentos para Computação
Figura 4 - Exemplo de como um programa é escrito através de linhas de código. Fonte: isak55, Shutterstock,
2018.
Em outras situações, precisamos que determinado bloco de código seja executado mais
de uma vez. Para isso, utilizamos os comandos de repetição, que podem ser de três
formas: “enquanto...faça” (modo pré-teste), “repita...até” (modo pós-teste) e a instrução
“para...de...até...passo...faça”. O comando de repetição pré-teste faz um teste lógico no
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 11/28
25/03/2020 Fundamentos para Computação
VOCÊ SABIA?
Podemos salvar o código dos nossos projetos na nuvem? E, além disso, é possível ter um
histórico do que foi alterado no projeto, compartilhar o código com outros programadores
e ter um controle de versão do projeto? Essas ferramentas permitem que tenhamos
acesso ao projeto em qualquer computador ligado à internet. Uma das ferramentas que
possuem essas características é o Git, que é um so ware livre e gratuito. Acesse:
<https://git-scm.com/ (https://github.com/)>.
Além das variáveis e constantes que vimos anteriormente, existem duas outras
estruturas para armazenar dados durante a execução do programa, que são os vetores e
as matrizes. Essas estruturas permitem armazenar um conjunto de valores durante a
execução do programa, além de que esses valores precisam ser do mesmo tipo de
dados, por exemplo, um conjunto de números inteiros representados por 02, 10, 20 e
100. Assim, cada valor armazenado ocupa uma posição específica representada por um
índice. Os vetores possuem uma única dimensão, como se fosse uma lista de valores. E
as matrizes possuem duas dimensões, como se fossem uma tabela. (BROOKSHEAR,
2013)
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 12/28
25/03/2020 Fundamentos para Computação
Se você estiver usando versões recentes dos sistemas operacionais Linux ou MacOS X, o
interpretador da linguagem Python já vem instalado. Se você estiver usando o sistema
operacional Windows, acesse <https://www.python.org> para fazer o download.
Assumindo que você está utilizando o Windows, depois de fazer o download e instalar o
interpretador da linguagem, basta executar o IDLE (interpretador baseado em janelas).
A partir disso, você já pode começar a escrever seus códigos em Python.
Para começar a se familiarizar com a linguagem, você pode executar comandos
aritméticos simples como:
6 + 23 + 56
(87 – 9) * 4
( 9 - ( 1 + 2 ) ) / 3.0
Para armazenar dados em uma variável, precisamos atribuir um identificador a ela, ou
seja, um nome. Podemos criar as seguintes variáveis:
soma = 0
media = 0
numero = 7
aluno1 = “Lucas da Silva”
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 13/28
25/03/2020 Fundamentos para Computação
Se você quiser imprimir algo no prompt de comando do IDLE basta escrever o comando
print e digitar entre aspas o texto que deseja imprimir. Se precisa imprimir o valor que
está armazenado em uma variável, basta colocar o nome da variável entre parênteses
(como no exemplo anterior), veja:
print “Aprendendo a programar”
print “Programando em Python”
print (num)
Para receber dados de entrada do usuário, podemos utilizar o comando “input”. Neste
comando, definimos uma variável que vai receber o valor digitado pelo usuário, seguido
do sinal de atribuição (=), seguido da palavra input e de um texto explicativo (entre
parênteses e entre aspas) para indicar o que o usuário deve digitar. Veja como utilizar
esse comando:
num = input("Digite um número:")
nota = input("Digite uma nota:")
valor = input("Digite o valor do dólar:")
Em Python, podemos utilizar os comandos “se então” e “se então...senão então”
através dos comandos “if condição:” e “if condição: ... else:”. Mas não tem o comando
“caso”, então quando for necessário analisar múltiplas condições, é necessário utilizar
os comandos anteriores de forma aninhada através do comando “if condição: ... elif
condição: ... else:”.
Também temos os comandos de repetição “enquanto...faça” e
“para...de...até...passo...faça”. O comando “para...de...até...passo...faça” pode ser
utilizado usando a palavra “for”. E o comando “enquanto...faça” pode ser utilizado
usando a palavra “while”.
Agora, vamos analisar alguns programas em Python para entender o que cada linha de
código faz. Vamos começar com um programa que recebe notas de um aluno e calcula a
média aritmética dessas notas.
nota1 = input ("Digite a primeira nota do aluno:")
nota2 = input ("Digite a segunda nota do aluno:")
media = (float(nota1) + float(nota2))/ 2
print (media)
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 14/28
25/03/2020 Fundamentos para Computação
Agora, vamos adicionar comandos de desvio condicional a esse código. Como podemos
ver o programa verifica (na linha 4) se a nota é maior ou igual a 7, se for verdadeiro ele
imprime na tela que o aluno foi aprovado, se for falso ele imprime na tela que o aluno
foi reprovado.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 16/28
25/03/2020 Fundamentos para Computação
Você pode pensar que a diferença entre so ware de aplicação e utilitário pode ser um
pouco confusa. Para tentar esclarecer melhor a diferença, vamos pensar da seguinte
forma: se o pacote é parte da “infraestrutura de so ware” do computador, então ele é
um so ware utilitário. Logo, um de aplicação pode evoluir para o estado de utilitário se
sua funcionalidade se tornar uma ferramenta fundamental. (BROOKSHEAR, 2013)
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 17/28
25/03/2020 Fundamentos para Computação
Você já se perguntou quais métodos e processos devem ser seguidos para desenvolver
um programa? Bem, esse desenvolvimento não é apenas escrever código, então
precisamos da engenharia de so ware para nos auxiliar durante esse processo. Assim,
quando o cliente nos requisita um novo programa, todas as solicitações feitas por ele
podem ser chamadas de requisitos do so ware, que são frequentemente classificados
como requisitos funcionais e não funcionais.
Os requisitos funcionais representam serviços ou funcionalidades que o sistema deve
fornecer, por exemplo, como o sistema deve reagir a entradas específicas e como o
sistema deve se comportar em determinadas situações. Já os não funcionais são
restrições que o sistema deve possuir, como as restrições no processo de
desenvolvimento e as impostas por normas que regulamentam o domínio da aplicação.
Ao contrário dos requisitos funcionais, os não funcionais aplicam-se, muitas vezes, ao
sistema como um todo. (SOMMERVILE, 2011)
funcionalidades que o sistema deve oferecer, o ambiente que o sistema vai funcionar,
restrições de hardware etc.. De acordo com Sommerville (2011), as atividades do
processo são:
descoberta de requisitos: nessa atividade deve-se trabalhar diretamente com os
clientes e usuários do sistema para identificar os requisitos desejados;
classificação e organização de requisitos: essa atividade utiliza a coleção de
requisitos que foram identificados na etapa anterior, agrupa requisitos
relacionados e os organiza em grupos. A forma mais comum de agrupá-los é
utilizando uma arquitetura do sistema para identificar os subsistemas e associá-
los a cada subsistema;
priorização e negociação de requisitos: como geralmente existem várias
pessoas (clientes e usuários) envolvidas, os requisitos podem entrar em conflito.
Portanto, é necessário priorizar os requisitos e resolver os conflitos por meio da
negociação de requisitos. Normalmente, os clientes, usuários e desenvolvedores
precisam se encontrar para resolver as diferenças e chegar a um acordo sobre os
requisitos;
especificação de requisitos: os requisitos são documentados e inseridos no
próximo ciclo do desenvolvimento de so ware. Com isso, documentos formais ou
informais de requisitos podem ser produzidos.
Para modelar um sistema e construir uma proposta de como funcionará o sistema
solicitado pelo cliente, podemos utilizar diagramas de caso de uso, que é uma técnica
de descoberta de requisitos, além de ser de fácil entendimento tanto para o cliente
quanto para os desenvolvedores que trabalham no projeto. Eles fazem parte da
linguagem UML (linguagem de modelagem unificada, do inglês unified modeling
language) e identificam os atores envolvidos em uma interação do sistema. Eles devem
ter o suporte de informações adicionais para descrever as interações do sistema, com o
intuito de deixar claro o objetivo de cada caso de uso.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 19/28
25/03/2020 Fundamentos para Computação
CASO
Em um banco, há as funcionalidades de abrir conta, emitir extrato, realizar
depósito, realizar saque, encerrar conta, registrar movimentação e emitir saldo.
Além disso, uma conta pode ser uma conta comum, uma conta salário ou uma
conta poupança. Nesse contexto, temos o cliente que vai interagir com sua
própria conta e os funcionários que vão realizar atividades como gerenciar
clientes, abrir conta, encerrar conta e realizar depósito.
Esse cenário é bem comum no nosso dia a dia e podemos perceber que o banco
precisa de um sistema que auxilie seus funcionários e clientes a realizar todas
essas atividades. Como poderíamos modelar um sistema com essas
funcionalidades?
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 20/28
25/03/2020 Fundamentos para Computação
VOCÊ O CONHECE?
O criador da World Wide Web, ou internet, é Timothy John Berners-Lee (mais conhecido como Tim Berners-
Lee), físico, cientista da computação e professor no MIT (Instituto de Tecnologia de Massachusetts), é o
responsável pelo conceito de internet que temos atualmente e permite que possamos nos conectar com
pessoas ao redor do mundo, além de ter acesso a informações e dados de qualquer lugar.
Você já ouviu falar nos conceitos de LAN, MAN e WAN? LAN representa uma rede de
computadores local, ou seja, cobrem uma área limitada. Uma MAN representa uma rede
de computadores maior que as LANs, podendo cobrir cidades próximas ou regiões
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 22/28
25/03/2020 Fundamentos para Computação
Figura 7 - Computadores conectados entre si, caracterizando uma rede de computadores. Fonte:
mamanamsai, Shutterstock, 2018.
protocolos de comunicação.
Com relação aos meios de transmissão, as redes de computadores podem utilizar
diferentes meios, como cabo de pares trançados, cabo coaxial e cabo de fibras ópticas.
Os cabos de pares trançados são formados por quatro pares de fios de cobre e não
permitem interferência eletromagnética. Os coaxiais são utilizados geralmente por
redes de televisão a cabo e possuem uma taxa de transmissão maior que que os pares
trançados. Já os de fibras ópticas são os mais indicados para transmissão de dados e
possui uma taxa de transmissão maior que a dos cabos coaxiais. As redes de
computadores também podem utilizar meios de transmissão sem fio como bluetooth,
RFID e wireless.
Com relação à topologia, as redes de computadores podem ter uma topologia em barra,
configuração em estrela, configuração em anel e redes em árvore. A topologia está
relacionada ao formato de como os computadores estão conectados na rede. Na em
barra, todos os computadores estão conectados através do mesmo meio, a
configuração em estrela utiliza um hub ou switch para organizar seus componentes. Na
em anel, cada computador está conectado a outros dois computadores e, nas em
árvore, um computador está conectado diretamente a um ou mais computadores
utilizando uma estrutura de árvore.
Com relação à extensão, vimos anteriormente o conceito de LAN, MAN e WAN. E com
relação aos protocolos de comunicação, os computadores da rede podem se comunicar
de forma diferente, através de arquiteturas, essas arquiteturas podem ser peer-to-peer
ou cliente-servidor. Na arquitetura peer-to-peer, cada computador conectado à rede
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 24/28
25/03/2020 Fundamentos para Computação
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 25/28
25/03/2020 Fundamentos para Computação
Síntese
Você concluiu os estudos sobre como os programas são executados em um sistema
computacional. Com essa discussão, esperamos que você se sinta apto para definir um
sistema operacional, linguagens de programação, aplicações de sistemas de
computação e redes e meios de acesso à internet.
Neste capítulo, você teve a oportunidade de:
compreender a importância e as funcionalidades dos sistemas operacionais;
entender como um programa de computador é feito e quais as características de
uma linguagem de programação;
definir o conceito de sistema de computação e como podemos propor um sistema
a partir de requisitos do usuário;
apresentar o conceito de redes de computadores e como essas redes podem ser
utilizadas para acessar a internet.
Bibliografia
BROOKSHEAR, J. G. Ciência da computação: uma visão abrangente. 11. ed. Porto
Alegre: Bookman, 2013.
CARVALHO, A. C. P. L. de; LORENA, A. C. Introdução à computação: hardware, so ware
e dados. São Paulo: LTC, 2016.
PERES, M. Do Windows 1.0 ao Windows 10: veja como o sistema mudou nestes 30
anos. Canaltech. 20/11/2015. Disponível em: <https://canaltech.com.br/windows/do-
windows-10-ao-windows-10-veja-como-o-sistema-mudou-nestes-30-anos-45911/
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 26/28
25/03/2020 Fundamentos para Computação
(https://canaltech.com.br/windows/do-windows-10-ao-windows-10-veja-como-o-
sistema-mudou-nestes-30-anos-45911/)>. Acesso em: 14/03/2018.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução a ciência da computação. 2. ed.
São Paulo: Cengage Learning, 2013.
FERRAZ, T. Educação à Distância. Info Escola, [s/d]. Disponível em:
<https://www.infoescola.com/educacao/educacao-a-distancia/
(https://www.infoescola.com/educacao/educacao-a-distancia/)>. Acesso em:
27/02/2018.
GIT. Disponível em: <https://git-scm.com/ (https://git-scm.com/)>. Acesso em:
19/03/2018.
JONZE, Spike. Ela [filme]. Direção (https://www.google.com.br/search?
q=her+dire%C3%A7%C3%A3o&stick=H4sIAAAAAAAAAOPgE-
LSz9U3yCk0S0sy1RLLTrbST8vMyQUTVimZRanJJflFAEpThtsmAAAA&sa=X&ved=0ahUKEw
icheahlezZAhVGWpAKHZ7UAgsQ6BMI6QEoADAX) e produção Spike Jonze. Sony
Pictures. 2h06min. Estados Unidos, 2013. Disponível em: <
(https://www.youtube.com/watch?v=SjZudKgH_OY)https://www.youtube.com/watch?
v=SjZudKgH_OY (https://www.youtube.com/watch?v=SjZudKgH_OY)>. Acesso em:
14/03/2018.
LEVY, Shawn. Estagiários, os. [filme]. Direção Shawn Levy. Produção Shawn Levy e
Vince Vaughn. Fox Filme. 2h. Estados Unidos, 2013.
MANZANO, J. A. N. G.; LOURENÇO, A. E.; MATOS, E. Algoritmos - técnicas de
programação. 2. ed. São Paulo: Érica, 2016.
PYTHON. Disponível em: <https://www.python.org (https://www.python.org)>. Acesso
em: 14/03/2018.
SOMMERVILLE, I. Engenharia de so ware. 9. edição. São Paulo: Person Education,
2011.
SOUSÓLIVER, A. Engenharia de requisitos – o alicerce da engenharia de so ware.
Associação Brasileira de Melhoria em TI, [s/d]. Disponível em:
<http://www.abramti.org.br/node/115 (http://www.abramti.org.br/node/115)>. Acesso
em: 28/02/2018.
TANENBAUM, A. S.; MACHADO FILHO, N. Sistemas operacionais modernos. 3. ed. São
Paulo: Prentice-Hall, 2008.
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 27/28
25/03/2020 Fundamentos para Computação
https://anhembi.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 28/28