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; 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.
A placa-mãe e as peças conectadas a ela são hardware — as partes físicas que você pode tocarUm sistema operacional é software — os programas que dizem ao hardware o que fazer
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.
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);
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.
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.
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.
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.
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.
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.
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.
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
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.