Pular para o conteúdo

Software

Ciência da Computação do IGCSE · Tópico 4

Treinar
Videoaula para este tópico Abrir a página do vídeo
13:11

Hardware e Software

Aqui está um computador totalmente novo. Todas as partes físicas funcionam — o processador, a memória, a tela, o teclado. Ligue-o e nada acontece. Sem desktop…

Narração em inglês · Legendas em inglês + 中文 gravadas

4.1

Hardware e software

Um sistema computacional é composto por duas partes que trabalham juntas.

Hardware são as partes físicas (CPU, teclado); software são os programas (aplicativos, SO)
Hardware são as partes físicas; software são os programas
  • Hardware 硬件 é as partes físicas 物理的 do computador — as partes que você pode tocar. Exemplos: a CPU, memória, teclado, tela e disco rígido.
  • Software 软件 são os programas 程序 que controlam o computador e dizem ao hardware o que fazer.

O hardware não pode fazer nada útil sozinho. O software precisa de hardware para rodar. Ambos são necessários.

Uma placa-mãe de computador com seus chips, slots e conectores
A placa-mãe e as peças conectadas a ela são hardware — as partes físicas que você pode tocar
Um sistema operacional desktop na tela
Um sistema operacional é software — os programas que dizem ao hardware o que fazer
Vocabulário Treinar
Inglês Chinês Pinyin
Hardware/ˈhɑːdweə/ 硬件 yìng jiàn
physical/ˈfɪzɪkl/ 物理的 wù lǐ de
Software/ˈsɒftweə/ 软件 ruǎn jiàn
programs/ˈprəʊɡræmz/ 程序 chéng xù
System software/ˈsɪstəm ˈsɒftweə/ 系统软件 xì tǒng ruǎn jiàn
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ 操作系统 cāo zuò xì tǒng
4.1

Tipos de software

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Descreva a diferença entre software de sistema e software de aplicação e forneça exemplos de cada um • Software de sistema fornece os serviços de que o computador necessita, incluindo sistema operacional e software utilitário • Software de aplicação fornece os serviços de que o usuário necessita
2 Descreva o papel e as funções básicas de um sistema operacional • Incluindo: – gerenciamento de arquivos – tratamento de interrupções – fornecimento de interface – gerenciamento de periféricos e drivers – gerenciamento de memória – gerenciamento de multitarefa – fornecimento de plataforma para execução de aplicativos – fornecimento de segurança do sistema – gerenciamento de contas de usuários
3 Entenda como hardware, firmware e um sistema operacional são necessários para executar software de aplicação • Aplicativos são executados no sistema operacional • O sistema operacional é executado no firmware • O bootloader (firmware) é executado no hardware
4 Descreva o papel e a operação de interrupções • Incluindo: – como uma interrupção é gerada – como ela é tratada usando uma rotina de serviço de interrupção – o que acontece como resultado das interrupções • Interrupções de software incluem divisão por zero e dois processos tentando acessar o mesmo local de memória • Interrupções de hardware incluem pressionar uma tecla no teclado e mover o mouse

Fonte: Programa Cambridge International

O software é dividido em dois tipos.

Uma árvore dividindo Software em software de sistema (sistema operacional, utilitários, drivers, compilador) e software de aplicação (processador de texto, planilha, banco de dados, navegador)
O software divide-se em software de sistema (faz o computador rodar) e software de aplicação (permite que o usuário realize uma tarefa)

Software de sistema

Software de sistema 系统软件 controla o próprio computador e fornece uma base para outros programas rodarem. Exemplos:

  • sistema operacional 操作系统 (veja abaixo);
  • compilador 编译器 e linker 链接器 (ferramentas que transformam programas em uma forma que o computador pode executar);
  • driver de dispositivo 设备驱动程序 — software que permite que o sistema operacional controle um pedaço de hardware;
  • software utilitário 实用程序 — ferramentas pequenas que cuidam do computador (por exemplo antivírus, backup, limpeza de disco).

Abaixo do sistema operacional está o firmware 固件 – software armazenado permanentemente em ROM ou flash que roda no momento em que o computador é ligado. O BIOS e o bootloader 引导程序 são firmware: eles testam o hardware e depois carregam o sistema operacional. Assim, as camadas se empilham hardware → firmware → sistema operacional → software de aplicação, cada uma rodando na camada abaixo.

Software de aplicação

Software de aplicação 应用软件 permite que o usuário realize uma tarefa útil. Exemplos:

  • processamento de texto 文字处理 software (escrever documentos);
  • planilha 电子表格 software (trabalhar com números em uma grade);
  • sistema de gerenciamento de banco de dados 数据库管理系统 (armazenar e buscar dados);
  • navegador web 网页浏览器 (visualizar páginas da web).
Software de sistema Software de aplicação
Função executa e gerencia o computador ajuda o usuário a realizar uma tarefa
Usado por o computador (ao fundo) o usuário (diretamente)
Exemplos sistema operacional, drivers, utilitários processador de texto, navegador, jogos
Vocabulário Treinar
Inglês Chinês Pinyin
linker/ˈlɪŋkə/ 链接器 liàn jiē qì
device driver/dɪˈvaɪs ˈdraɪvə/ 设备驱动程序 shè bèi qū dòng chéng xù
utility software/juːˈtɪlɪti ˈsɒftweə/ 实用程序 shí yòng chéng xù
firmware/ˈfɜːmweə/ 固件 gù jiàn
bootloader/ˈbuːtləʊdə/ 引导程序 yǐn dǎo chéng xù
Application software/ˌæplɪˈkeɪʃn ˈsɒftweə/ 应用软件 yìng yòng ruǎn jiàn
word processing/wɜːd ˈprəʊsesɪŋ/ 文字处理 wén zì chǔ lǐ
spreadsheet/ˈspredʃiːt/ 电子表格 diàn zi biǎo gé
database management system/ˈdeɪtəbeɪs ˈmænɪdʒmənt ˈsɪstəm/ 数据库管理系统 shù jù kù guǎn lǐ xì tǒng
web browser/web ˈbraʊzə/ 网页浏览器 wǎng yè liú lǎn qì
providing a user interface/prəˈvaɪdɪŋ ə ˈjuːzə ˈɪntəfeɪs/ 用户界面 yòng hù jiè miàn
managing peripherals/ˈmænɪdʒɪŋ pəˈrɪfərəlz/ 外围设备 wài wéi shè bèi
managing multitasking/ˈmænɪdʒɪŋ ˈmʌltitæskɪŋ/ 多任务处理 duō rèn wù chǔ lǐ
providing a platform/prəˈvaɪdɪŋ ə ˈplætfɔːm/ 平台 píng tái
4.1

O sistema operacional

Um sistema operacional (SO) é o principal software de sistema. Ele controla todo o computador e permite que o hardware, o software de aplicação e o usuário trabalhem juntos. Sem um SO, o computador é muito difícil de usar.

Quatro camadas empilhadas — usuário no topo, depois software de aplicação, depois sistema operacional, depois hardware na base
O sistema operacional fica entre o hardware e o software de aplicação e usuário, permitindo que trabalhem juntos

O SO tem muitas funções:

  • gerenciando arquivos — salvar, abrir, nomear, mover e excluir arquivos;
  • lidando com interrupções (veja abaixo);
  • fornecendo uma interface do usuário 用户界面 para que o usuário controle o computador;
  • gerenciando memória — decidindo o que é mantido na RAM e onde;
  • gerenciando periféricos 外围设备和 seus drivers — controlando dispositivos como impressoras;
  • gerenciando multitarefa 多任务处理 — permitindo que vários programas rodem ao mesmo tempo;
  • fornecendo uma plataforma 平台 para executar software de aplicação;
  • gerenciando segurança — contas de usuários, senhas e direitos de acesso.
4.1

Interrupts

Uma interrupção 中断 é um sinal enviado ao processador 处理器 para avisá-lo que algo precisa de atenção agora.

Uma interrupção pode vir de três fontes:

  • hardware — por exemplo, uma tecla é pressionada, ou uma impressora acaba de papel;
  • software — por exemplo, um programa tenta dividir por zero;
  • o usuário — por exemplo, o usuário pressiona uma tecla "cancelar".

Quando uma interrupção chega, o processador para o que está fazendo, salva seu local e atende (lida com) a interrupção. Quando isso estiver feito, ele volta ao que estava fazendo antes. Isso permite que o computador reaja rapidamente a eventos importantes.

Um ciclo: programa principal rodando, depois em uma interrupção a CPU salva seu estado, executa a rotina de serviço de interrupção, restaura o estado e retoma
Em uma interrupção a CPU salva seu local, executa a rotina de serviço de interrupção, depois restaura seu local e continua
Explorar

Como a CPU trata uma interrupção

Passo a passo de uma interrupção. A CPU pausa o que está fazendo, lida com o evento urgente e continua exatamente onde parou — assim um único processador gerencia teclado, impressora e timer simultaneamente.

Vocabulário Treinar
Inglês Chinês Pinyin
interrupt/ˈɪntərʌpt/ 中断 zhōng duàn
processor/ˈprəʊsesə/ 处理器 chǔ lǐ qì
central processing unit/ˈsentrəl ˈprəʊsesɪŋ ˈjuːnɪt/ 中央处理器 zhōng yāng chǔ lǐ qì
programming language/ˈprəʊɡræmɪŋ ˈlæŋɡwɪdʒ/ 编程语言 biān chéng yǔ yán
high-level language/haɪ ˈlevl ˈlæŋɡwɪdʒ/ 高级语言 gāo jí yǔ yán
low-level language/ləʊ ˈlevl ˈlæŋɡwɪdʒ/ 低级语言 dī jí yǔ yán
machine code/məˈʃiːn kəʊd/ 机器码 jī qì mǎ
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ 汇编语言 huì biān yǔ yán
specific/spəˈsɪfɪk/ 特定的 tè dìng de
translator/trænˈsleɪtə/ 翻译程序 fān yì chéng xù
4.2

Linguagens de programação

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Explique o que se entende por uma linguagem de alto nível e uma linguagem de baixo nível, incluindo as vantagens e desvantagens de cada uma • Vantagens e desvantagens incluem: – facilidade de leitura e escrita de código, ex.: baixo nível é difícil de ler – facilidade de depuração de código – independência de máquina – manipulação direta do hardware
2 Entenda que a linguagem assembly é uma forma de linguagem de baixo nível que usa mnemônicos, e que um ensamblador é necessário para traduzir um programa em linguagem assembly em código de máquina
3 Descreva a operação de um compilador e um intérprete, incluindo como o código de alto nível é traduzido por cada um e como os erros são relatados • Um compilador traduz todo o código de uma vez antes de executá-lo, produzindo um arquivo executável • Um intérprete traduz e executa o código linha por linha • Um compilador fornece um relatório de erros para todo o código se erros forem detectados • Um intérprete interrompe a execução quando um erro é encontrado
4 Explique as vantagens e desvantagens de um compilador e um intérprete • Incluindo a compreensão de que um intérprete é usado principalmente durante o desenvolvimento de um programa e um compilador é usado para traduzir o programa final
5 Explique o papel de um IDE na escrita de código de programas e as funções comuns que IDEs fornecem • Incluindo: – editores de código – ambiente de tempo de execução – tradutores – diagnósticos de erro – autocompletar – autocorrigir – formatação automática

Fonte: Programa Cambridge International

Todos os computadores processam dados usando a unidade central de processamento 中央处理器 (CPU). Para fazer a CPU realizar trabalho, pessoas escrevem programas em uma linguagem de programação 编程语言. Existem dois tipos.

Linguagens de alto nível

Uma linguagem de alto nível 高级语言 é escrita em palavras que se assemelham um pouco ao inglês (por exemplo Python). Ela é:

  • fácil para pessoas lerem, escreverem e corrigirem;
  • independente do computador — o mesmo programa pode rodar em diferentes tipos de computadores.

Linguagens de baixo nível

Uma linguagem de baixo nível 低级语言 está próxima do que o hardware realmente usa. Ela inclui:

  • código de máquina 机器码 — instruções escritas em binário (0s e 1s), que a CPU executa diretamente;
  • linguagem ensambladora 汇编语言 — código de máquina escrito com códigos de palavras curtas (mnemônicos) em vez de binário.

Uma linguagem de baixo nível relaciona-se a um tipo de CPU específico 特定的, então um programa escrito para uma CPU pode não rodar em outra. É usada quando o programador precisa de controle total do hardware ou de código muito rápido e pequeno.

Três camadas empilhadas: linguagem de alto nível no topo, depois assembly, depois código máquina na base
Linguagens de alto nível estão próximas da linguagem humana e rodam em qualquer computador; linguagens de baixo nível (ensambladora e código de máquina) estão próximas do hardware e vinculadas a um único tipo de CPU
Explorar

Laboratório de conceitos de computação

Classifique exemplos concretos pelo conceito de computação que eles demonstram.

4.2

Tradutores

A CPU só pode executar código de máquina. Um programa de alto nível deve primeiro ser convertido em código de máquina. O software que faz isso é um tradutor 翻译程序. Existem três tipos: um compilador e um interpretador (para código de alto nível), e um ensamblador (para código de baixo nível).

Compilador

Um compilador traduz o todo programa em código de máquina antes de ser executado. Após a tradução, o código de máquina pode ser executado várias vezes sem precisar traduzir novamente.

  • a tradução ocorre uma única vez, em sua totalidade;
  • ele relata todos os erros juntos, no final da tradução;
  • o programa finalizado roda rápido e não precisa do compilador para funcionar.

Interpretador

Um interpretador 解释器 traduz e executa o programa linha por linha.

  • ele para no primeiro erro que encontra, o que ajuda durante os testes;
  • o programa roda mais devagar, pois é traduzido toda vez que é executado;
  • o interpretador deve estar presente toda vez que o programa for executado.
Compilador Interpretador
Traduz todo o programa de uma vez linha por linha
Erros todos relatados no final para no primeiro erro
Velocidade do programa final mais rápido mais lento
Necessário para rodar depois? não sim

Use um compilador quando quiser compartilhar um programa finalizado rápido. Use um interpretador quando estiver escrevendo e testando um programa e quiser encontrar erros facilmente.

Montador

Um ensamblador 汇编器 traduz um programa de linguagem ensambladora de baixo nível (escrito em mnemônicos como LDA, ADD) em código de máquina. Cada mnemônico torna-se uma instrução de máquina — uma tradução direta de um para um, diferentemente de um compilador ou interpretador, que trabalham com código de alto nível.

Compilador traduzindo todo o programa uma vez em código de máquina que roda muitas vezes, versus um interpretador traduzindo e executando linha por linha
Um compilador traduz todo o programa uma vez em código de máquina; um interpretador traduz e executa linha por linha

Exemplo resolvido. Uma equipe está escrevendo um programa. Durante o desenvolvimento, eles querem encontrar e corrigir erros rapidamente; quando o lançarem, querem que os clientes o executem rápido sem ver o código-fonte. Qual tradutor se adequa a cada etapa? Durante o desenvolvimento, use um interpretador: ele traduz e executa linha por linha e para no primeiro erro, então um erro é fácil de localizar. Para lançar, use um compilador: ele traduz todo o programa uma vez em código de máquina, que então roda rapidamente sem tradutor presente, e o cliente recebe apenas o executável e não o código-fonte. Os dois não são rivais - nomeie a etapa e dê a razão, porque "um compilador é mais rápido" sozinho não rende pontos.

Vocabulário Treinar
Inglês Chinês Pinyin
compiler/kəmˈpaɪlə/ 编译器 biān yì qì
interpreter/ɪnˈtɜːprɪtə/ 解释器 jiě shì qì
assembler/əˈsemblə/ 汇编器 huì biān qì
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ 集成开发环境 jí chéng kāi fā huán jìng
code editor/kəʊd ˈedɪtə/ 代码编辑器 dài mǎ biān jí qì
run time environment/rʌn taɪm enˈvaɪrənmənt/ 运行时环境 yùn xíng shí huán jìng
error diagnostics/ˈerə ˌdaɪəɡˈnɒstɪks/ 错误诊断 cuò wù zhěn duàn
auto-completion/ˈɔːtəʊ kəmˈpliːʃn/ 自动补全 zì dòng bǔ quán
auto-correction/ˈɔːtəʊ kəˈrekʃn/ 自动纠错 zì dòng jiū cuò
prettyprinting/ˈpretɪprɪntɪŋ/ 美化打印 měi huà dǎ yìn
user interface/ˈjuːzə ˈɪntəfeɪs/ 用户界面 yòng hù jiè miàn
peripherals/pəˈrɪfərəlz/ 外围设备 wài wéi shè bèi
multitasking/ˈmʌltitæskɪŋ/ 多任务处理 duō rèn wù chǔ lǐ
platform/ˈplætfɔːm/ 平台 píng tái
4.2

Ambiente de desenvolvimento integrado (IDE)

Um ambiente de desenvolvimento integrado 集成开发环境 (IDE) é um software que ajuda você a escrever programas. Ele coloca muitas ferramentas úteis em um só lugar:

  • um editor de código 代码编辑器 — para digitar seu programa;
  • um ambiente de execução 运行时环境 — para executar o programa e testá-lo;
  • um tradutor — um compilador ou interpretador para converter seu código em código de máquina;
  • diagnóstico de erros 错误诊断 — mensagens que ajudam você a encontrar e entender erros;
  • autocompletar 自动补全 e autocorrigir 自动纠错 — o IDE completa ou corrige o código à medida que você digita;
  • formatagem estética 美化打印 — organizar o código de forma organizada com cores e recuos para facilitar a leitura.
Código-fonte em um editor: um IDE combina editor, depurador e ferramentas de execução em um só lugar
Código-fonte em um editor: um IDE combina editor, depurador e ferramentas de execução em um só lugar
4.2

Dicas de prova

  • Hardware é as partes físicas; software são os programas. Software de sistema roda o computador (SO, drivers, utilitários); software de aplicação executa uma tarefa para o usuário.
  • Um compilador traduz todo o programa de uma vez (o programa finalizado roda rápido, e todos os erros são relatados no final); um interpretador traduz linha por linha (ele para no primeiro erro, roda mais devagar e é necessário toda vez).
  • Linguagens de alto nível estão próximas do inglês e rodam em qualquer computador; linguagens de baixo nível (ensambladora, código de máquina) estão vinculadas a um único tipo de CPU.
  • Uma interrupção é um sinal que faz a CPU parar, salvar seu local, atender ao evento e depois continuar onde parou.
  • Aprenda os papéis do sistema operacional: gerenciamento de arquivos, memória, periféricos, multitarefa, segurança e interface do usuário.

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Provas Anteriores

Mais tópicos em Ciência da Computação do IGCSE

Entrar ou criar conta

IGCSE, A-Level & AP