Professora: Jussara M. Almeida (sala 4036)
Carga Horária: 60 cr
Horário: Segundas e Quartas, 09:25 às 11:05
Local: ICEx, sala 2013
Estagiário em Docência: Flávio Vinícius
| Avisos |
|
|
Essa disciplina visa introduzir o aluno aos detalhes de funcionamento do computador. Nela os alunos terão contato direto com a máquina e estudarão os mecanismos necessários para a criação e execução de programas no computador. Ao final da disciplina o aluno terá um conhecimento sólido a respeito dos princípios gerais dos computadores, como funcionam e como são construídos. O foco da disciplina está no baixo nível do hardware e software e como eles influenciam as decisões de programação em linguagens de alto nível.
Noções básicas de arquitetura de computadores. Linguagens de máquina e de montagem ("Assembly"). Montadores, macroprocessadores, carregadores e ligadores. Programação de entrada e saída. Nível de máquina de sistemas operacionais.
Pré-requisitos
Conhecimento sólido de programação de computadores e noções básicas de sistemas
lógicos
A disciplina pretende oferecer uma visão sistêmica dos princípios básicos de funcionamento dos computadores modernos. Nesse sentido, aspectos de hardware são apresentados sempre considerando seu impacto sobre o desenvolvimento de software e os princípios de desenvolvimento de programas são analisados no contexto da sua interação com o hardware. A organização dos sistemas de computação é discutida usando a abordagem de níveis de abstração, onde cada novo nível de abstração define uma máquina virtual sobre a qual novos serviços se tornam disponíveis. Uma visão geral de sistemas operacionais como um nível de abstração importante no entendimento dos computadores modernos também é apresentada. Os novos recursos de virtualização também são discutidos nesse contexto. Finalmente, dada sua importância crescente no cenário de computação atual, conceitos de processamento paralelo são discutidos ao longo de todo o curso, com ênfase na disponibilidade cada vez maior de máquinas com múltiplas unidades de processamento (em soluções como hyper-threading e multi-core, por exemplo).