![]() |
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: 27 Fev 2015
departamento de informática |
|
Alberto José Proença
email: aproenca <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 16:00
Luís Paulo Santos
email: psantos <at> di.uminho.pt
Horário de atendimento: Sexta 15:00 - 17:00
André Pereira
email: ampereira <at> di.uminho.pt
Horário de atendimento: Quarta 14:00 - 16:00
Roberto Ribeiro
email: rribeiro <at> di.uminho.pt
Horário de atendimento: Quarta 15:00 - 17:00
Os Sistemas de Computação, integrados na área científica de Engenharia da
Computação, podem ser vistos sob a perspetiva de um engenheiro de electrónica - como funciona
e como se constrói um computador - ou sob a perspetiva de um cientista da
computação - como
funciona e como executar aplicações numa maneira eficiente, num computador.
Sendo esta UC leccionada a uma licenciatura em Engenharia Informática, a ênfase nos objetivos gerais será colocada
nos aspetos 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 expetativas da equipa docente quanto ao funcionamento e
resultados previstos para a UC. Nesta perspetiva, 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, da Lic. Engenharia Informática, 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, da Lic. Engenharia Informática, 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 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 arquitectura RISC 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, 2nd Ed., 2010
Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 5th Ed., 2014
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:
Nota1: A prova escrita é constituída
por 2 partes: (i) a Prova de Competências
Elementares (PCE), com um conjunto de
5 questões elementares que avaliam os resultados mínimos de
aprendizagem, sendo obrigatório responder satisfatoriamente a 4 dessas questões
(esta é uma condição necessária, mas não suficiente, para se ter sucesso na
UC) e (ii) a Prova de Reforço de Classificação
(PRC), cuja pontuação será simplesmente adicionada à obtida na PCE.
Nota2: A meio de semestre, a 29-abril, realizar-se-á um ensaio
de teste para autoavaliação, contendo apenas a PCE.
Nota3: A participação nas sessões
práticas inclui a presença nas sessões, a
resolução dos TPC's, a leitura prévia dos guiões práticos e a participação
ativa nas sessões; esta componente é opcional no modo
B.
Nota4: 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 da prova escrita
na época de exames, sendo o cálculo da classificação final feita aplicando a
mesma fórmula em baixo.
Nota5: Para obtenção de uma classificação Bom (entre 15 e 18)
será necessário realizar uma prova individual extra, a definir; para obtenção de uma classificação Excelente (>18)
serão necessários elementos complementares de avaliação.
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.