Logotipo e link para a Universidade do Minho

Sistemas de Computação
Lic. Engª Informática, 1º ano
2014/2015
Docente responsável: A.J.Proença

Vista da Rua do Souto no Séc. XVI

 

Direitos de Autor & Copyright
Avisos
| Equipa docente | Objetivos  | Resultados da aprendizagem | Programa | Bibliografia | Planificação | Notas de apoio | Sumários | Avaliação | Autoavaliação 

(2013/2014)

Ultima Modificação: 27 Fev 2015

 

 departamento de informática

Equipa docente

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

 

Topo...


Objetivos

Gerais

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.

De formação

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:

 

Topo...


Resultados da aprendizagem

Gerais

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.

Resultados esperados do processo de aprendizagem: detalhe

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).
 


Resultados esperados em LEI/SC (2014/15): demonstrar que consegue:
 


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
- descrever como a informação é efectivamente representada num computador.

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,
- ilustrar a representação de casos concretos através da resolução de problemas, e
- analisar as limitações de um sistema finito na representação de informação numérica.

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),
- caracterizar a melhoria de desempenho através da introdução de formas de paralelismo no hardware do CPU (SIMD, pipeline, superescalaridade) e da hierarquia de memória (níveis de cache e memória virtual), e

- 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
- explicar conceptualmente os mecanismos de conversão entre níveis.

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),
- ilustrar a aplicação dessas características a diferentes arquitecturas de CPU (CISC ou RISC).

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),
- compreender a estrutura do código e dos contextos gerados por um compilador para suporte à invocação de procedimentos e funções (em HLL) e analisá-la no laboratório,
- entender e aplicar técnicas de engenharia inversa a código binário (no papel e no laboratório),
- compreender a organização em memória e métodos de acesso e manipulação de dados estruturados em C, e respectiva análise da codificação para assembly, e
- analisar comparativamente a implementação de funções em modelos de arquitectura distintos (RISC versus IA-32).


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),
- descrever, aplicar e avaliar técnicas de desempenho dependentes da máquina (processador e memória), aplicar técnicas de análise de desempenho baseadas no profiling de aplicações, e
- explicar as limitações na aplicação automática de técnicas de optimização pelos compiladores.


-


-

-

X


-

-

X

X

-

X

X

X

- Distinguir escalas de tempo nos sistemas e técnicas de medição de desempenho,
- identificar e caracterizar técnicas de medição de tempos de execução de programas, e ilustrar a aplicação de contadores intervalares e de contadores de ciclos de clock.

-
-
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,
- Aceder autonomamente a fontes complementares de informação, e
- Selectivamente pesquisar, processar e arquivar informação complementar à UC

X
-
-
X
X
-
X
X
X
X
X
X

- Interpretar correctamente os guiões e listas de problemas disponibilizados,
- Interpretar os manuais e interactuar eficientemente com as ferramentas informáticas de análise e debugging, e
- Resolver criativamente os problemas mais complexos com base na informação disponibilizada

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,
- Aplicar técnicas de comunicação escrita na elaboração de textos sucintos (relatórios, questões de desenvolvimento,  ...), e eventual defesa oral, e
- Aplicar técnicas de comunicação escrita (noutra língua) e/ou oral em exposições de temas/tópicos

X
-
-
X
X
-
X
X
-
X
X
X
         

 

Topo...


Programa

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

  1. 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.

  2. 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

  1. 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.

  2. 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.

  3. Análise comparativa do modelo de implementação numa arquitectura RISC versus IA-32.

3. Avaliação do desempenho de computadores

  1. 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.

  2. 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.

 

Topo...


Bibliografia

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.

 

Topo...

 


Avaliação  


O funcionamento da UC de Sistemas de Computação está organizado em:

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:

Classif_final_modoA = (15%*Particip + 85%*Prova_escrita)

Classif_final_modoB = Prova_escrita

 

Topo...


Direitos de Autor & Copyright

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.

Topo...

 


Página mantida por aproenca <at> di.uminho.pt
Última Modificação: 27 Fev 2015