![]() |
Sistemas de Computação |
Direitos
de Autor & Copyright
Avisos
| Equipa docente | Objetivos |
Resultados da aprendizagem | Programa
| Bibliografia |
Planificação | Notas de apoio
| Sumários
| Avaliação | Autoavaliação
Ultima Modificação: 02 Mar 2021
departamento de informática |
|
Alberto José Proença
email: aproenca <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
Luís Paulo Santos
email: psantos <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
João Luis Sobral
email: jls <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
André Martins Pereira
email: ampereira <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
Rui Sabino Silva
email: ruisilva <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
João Garcia Barbosa
email: j.g.barbosa <at> outlook.pt
Horário de atendimento: Quarta 14:00 - 17:00
Paulo Rafael Sousa
email: pg27774 <at> alunos.uminho.pt
Horário de atendimento: Quarta 14:00 - 17:00
André Leite Ferreira
email: alferreira <at> di.uminho.pt
Horário de atendimento: Quarta 16:00 - 18:00
Os Sistemas de Computação, integrados na área científica de Engenharia da
Computação, podem ser vistos sob a perspectiva de um engenheiro de electrónica - como funciona
e como se constrói um computador - ou sob a perspectiva de um cientista da
computação - como
funciona e como executar aplicações numa maneira eficiente, num computador.
Sendo esta UC leccionada a um nível de formação básica de uma licenciatura na
área da Informática na UM, a ênfase nos objetivos gerais será colocada
nos aspectos relacionados com a compreensão da organização e funcionalidade de um computador,
a análise das suas
limitações e o aproveitamento das suas potencialidades.
Os objetivos de formação
definem as expectativas da equipa docente quanto ao funcionamento e
resultados previstos para a UC. Nesta perspectiva, a equipa pretende
com esta UC que os alunos adquiram:
(i) conhecimentos de base
relativos ao modelo de funcionamento dum computador genérico,
(ii) capacidades de utilização consciente e eficiente das
funcionalidades de um computador,
(iii) aptidões técnicas
na utilização de instrumentos/ferramentas de análise e na correção e/ou melhoria de
desempenho na execução de programas, e
(iv) aptidões transversais no contexto, com
ênfase no raciocínio crítico e criativo, no planeamento e organização das actividades
e
no trabalho de grupo.
No caso das competências específicas, os objectivo de formação são, mais concretamente:
Ao completar com sucesso a UC Sistemas de Computação, de formação de base de vários cursos de licenciatura da UM (em Ciências e em Engenharia), cada estudante deverá poder demonstrar que adquiriu um conjunto de conhecimentos, capacidades e aptidões que compreendem:
O grau de compreensão e de profundidade dos conhecimentos, capacidades e aptidões adquiridas poderá variar de estudante para estudante, havendo necessidade de detalhar os níveis de exigência requeridos para a obtenção de classificações distintas entre os estudantes aprovados, numa escala de 10 a 20.
A lista detalhada dos resultados esperados do processo de aprendizagem da
UC Sistemas de Computação é apresentada numa
tabela, a qual estrutura o conjunto de conhecimentos e competências - que cada
estudante deverá demonstrar ter conseguido alcançar - pelos
principais temas/tópicos abordados na UC.
Essa tabela identifica os elementos (dessa lista detalhada dos resultados) que deverão
ser obrigatoriamente cumpridos para cada um dos
vários graus de exigência/qualidade.
Assim, ao completar com sucesso a UC Sistemas de Computação, lecionada pelo
Dep. Informática da UM, cada
estudante deverá poder demonstrar que adquiriu, de acordo com a tabela seguinte:
- conhecimentos e capacidades mínimas indispensáveis para ficar Aprovado (especificados na coluna A); e
- conhecimentos e capacidades complementares que correspondem a uma
classificação final razoável, entre 11 e 14 (na coluna R); ou
- conhecimentos e capacidades complementares que correspondem a uma
boa classificação final, entre 15 e 18 (na coluna B); ou
- conhecimentos e capacidades
complementares que correspondem a uma classificação final excelente, 19
ou 20 (na coluna E).
|
A |
R |
B |
E |
---|---|---|---|---|
Conhecimentos e competências específicas de Sistemas de Computação |
||||
- Identificar formas de
representação binária de informação num computador (textual, numérica,
audiovisual ou de comandos de um processador), e |
X - |
X X |
X X |
X X |
- Analisar ficheiros de documentos (c/ texto) e distinguir entre formatos proprietários de formatos baseados em texto anotado. |
- | X | X | X |
- Reconhecer os sistemas de numeração (em especial o binário e o hexadecimal) e aplicar técnicas de conversão entre sistemas. |
X | X | X | X |
- Explicar a representação
de números inteiros e reais (norma IEEE 754), visualizar a sua
representação em binário, em ambiente laboratorial Linux/IA-32, |
X - - |
X X - |
X X X |
X X X |
- Descrever a estrutura
interna de um computador tipo e caracterizar funcionalmente cada um dos
seus principais módulos constituintes (CPU, memória, I/O e barramentos), - identificar as formas de evolução dos CPU com a replicação dos seus núcleos de processamento básico (cores), incluindo as soluções híbridas com elementos de processamento especializados (e.g., GPU). |
X - - |
X - - |
X X X |
X X X |
- Identificar e caracterizar
os principais níveis de abstracção presentes num computador (HLL,
assembly, e linguagem máquina), ilustrar os mecanismos de conversão
e análise entre níveis na sua utilização em laboratório (gcc, gdb, ...),
ilustrar a execução, passo a passo, de uma instrução elementar em
linguagem máquina, e |
X - |
X X |
X X |
X X |
- Reconhecer as principais
características de um instruction set (nomeadamente, analisar e
avaliar as técnicas de especificação de operandos, caracterizar os
registos necessários num CPU, identificar e relacionar formatos de
instruções e identificar e caracterizar tipos de instruções), |
X - |
X - |
X X |
X X |
- Identificar e caracterizar
a operação das instruções mais comuns no IA-32 ( transferência de
informação, operações aritméticas/lógicas, controlo do fluxo de
execução), aplicar técnicas de codificação - a variáveis escalares,
arrays, estruturas de controlo e funções - de uma HLL imperativa, e analisar e interpretar
código em assembly (no papel e no laboratório), |
X - - - - |
X X - - - |
X X X X - |
X X X X X |
- Identificar e descrever as
métricas que caracterizam o desempenho da execução de programas,
distinguir técnicas de optimização de desempenho dependentes e
independentes da máquina, descrever, aplicar e avaliar as técnicas de
desempenho independentes da máquina (as mais comuns), |
- - - |
X - - |
X X - |
X X X |
- Distinguir escalas de
tempo nos sistemas e técnicas de medição de desempenho, |
- - |
X - |
X X |
X X |
Competências genéricas |
||||
- Utilizar
adequada e correctamente os recursos electrónicos disponibilizados (Web,
email), de aceder a toda a informação disponibilizada, |
X - - |
X X - |
X X X |
X X X |
- Interpretar
correctamente os guiões e listas de problemas disponibilizados, |
X - - |
X X - |
X X X |
X X X |
- Aplicar técnicas de comunicação
escrita (em Português) na resolução de problemas e nas provas escritas,
|
X - - |
X X - |
X X - |
X X X |
A. Programa Sucinto
1. Organização e estrutura de um computador, incluindo a representação de informação numérica num computador (inteiros e reais).
2. Análise da arquitetura do instruction set (ISA) de um processador genérico, com destaque teórico e prático para o nível ISA do Intel IA-32 em Unix/Linux.
3. Avaliação do desempenho de computadores, com análise dos principais fatores com impacto no desempenho: paralelismo ao nível da instrução, hierarquia de memória, organização multi-core.
B. Programa Detalhado
1. Organização e estrutura de um computador
Conceito de computador. Representação da informação no computador: texto, números, informação multimédia e comandos codificados para o processador. Sistemas de numeração e conversão de bases; representação binária de valores positivos e negativos. Representação binária de valores reais em vírgula flutuante; a norma IEEE 754.
Análise da estrutura interna dum computador, com destaque para o processador e para a organização da memória. Análise da execução de instruções num computador. Níveis de abstracção num computador. Mecanismos para execução de programas; introdução a um ambiente laboratorial (Intel IA-32 em Unix/Linux).
2. Análise da arquitetura do instruction set
Análise do funcionamento dum processador e respectivo instruction set: operações/operandos, acesso a dados, tipos e formatos de instruções, modelo de programação dum processador.
Análise teórica e laboratorial do nível ISA do Intel IA-32 em Unix/Linux: operações aritméticas/lógicas e acesso a operandos, estruturas de controlo presentes em C, funcionamento das funções/procedimentos.
Análise comparativa do modelo de implementação numa arquitetura IA-32 estendida para 64 bits e em outras segundo o modelo RISC (ARM e MIPS), versus IA-32.
3. Avaliação do desempenho de computadores
Metodologia de avaliação de desempenho de computadores. Medição de tempos de execução de programas e respectiva análise prática e crítica.
Fatores da arquitectura dum computador que influenciam o seu desempenho. Breve introdução ao funcionamento dum processador em pipeline e respectivas limitações. Organização hierárquica da memória; noção e caracterização da cache. A organização de vários núcleos de processamento (core) num mesmo circuito integrado.
Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron, Prentice Hall, 3rd Ed., 2015
Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 6th Ed., 2020
Informação diversa para apoio ao estudo desta UC será disponibilizada electronicamente, e devidamente referenciada nos sumários.
A avaliação nesta UC compreende 2 componentes principais:
Nota 1: As provas escritas são constituída
por 2 partes de igual peso na classificação:
(i) uma Prova de Fundamentos (PF), com duração mínima de 1 hora, que avalia os resultados mínimos de
aprendizagem; esta prova tem nota mínima (40%)para se poder ser avaliado com uma
2ª prova;
(ii) uma Prova de Competências
Complementares
(PCC), também com duração mínima de 1 hora, que avalia as competências
complementares adquiridas na UC (sem nota mínima).
Nota 2: A meio de semestre, na semana a seguir à Páscoa, realizar-se-á um ensaio de teste para autoavaliação, contendo apenas a PF. O resultado deste ensaio poderá ser usado para substituir a PF no teste final ou em exames.
Nota 3: A participação nas sessões práticas inclui a presença nas sessões online, a resolução dos TPC's, a leitura prévia dos guiões práticos e a participação ativa nas sessões laboratoriais.
Nota 4: A aprovação na UC exige a classificação mínima de 9,5 valores, de acordo com a fórmula expressa em baixo; a não obtenção deste valor mínimo durante o semestre, permite a repetição duma ou ambas as provas escritas nas épocas de exames, sendo o cálculo da classificação final feita aplicando a mesma fórmula em baixo.
Nota 5: Para obtenção de uma classificação superior a 16 será necessário realizar uma prova individual extra, a definir.
A classificação final nesta UC, para os estudantes Aprovados, é dada pela seguinte expressão:
Esta
publicação - incluindo a sua faculdade de impressão - e respectivos
conteúdos - que poderão incluir reproduções parciais de obra(s) alheia(s)
devidamente citadas, com a indicação do autor, título da obra, editor ou
outra fonte - destinam-se exclusivamente aos alunos da UC de Sistemas de
Computação, da Lic. Engª Informática, da Universidade do
Minho, para uso pessoal e fins de aprendizagem electrónica (e-learning) e não
revestem qualquer finalidade lucrativa ou comercial.
Qualquer outra reprodução, total ou parcial, desta obra, por qualquer
suporte, modo ou processo, nomeadamente processo electrónico, mecânico ou
fotográfico, incluindo fotocópia, a modificação da obra, a sua
comunicação pública, a sua distribuição através de aluguer ou comodato,
sem qualquer autorização escrita do autor, é ilícita e passível de
procedimento judicial contra o infractor.