Sistemas Hardware-Software

Professor: Fabio Lubacheski (fabioagl@insper.edu.br)

Ninjas:

Já passaram por aqui: Maciel Calebe Vidal / Igor Montagner / Fábio Ayres

O que é um Sistema de Hardware-Software ?

Um Sistema de Hardware-Software ou Sistema de Computação combina o Hardware (computador) e o Sistema Operacional parar tornam o computador utilizável por usuários e programas.

Uma calculadora é um Sistema de Computação ?

  • NÃO, apesar das calculadoras terem processador, quantidade limitada de memória e capacidade de E/S. No entanto, as calculadoras não têm armazenamento secundário.

  • Além disso um Sistema de Computação deve ser de uso geral (sem uso específico) e reprogramável, ou seja, deve permitir a execução de outros programas sem necessidade de modificar o hardware ou sofware do sistema, qualidades que uma calculadora não tem.

E um microcontrolador é um Sistema de Computação ?

  • Os microcontroladores são de uso geral (a sua função não é adaptada a nenhuma aplicação específica), são reprogramáveis, possuem um processador, memória interna, armazenamento secundário e capazes de realizar E/S, mas eles, normalmente, não têm um Sistema Operacional, assim NÃO são considerados um Sistema de Computação.

E por que um Sistema Operacional é tão importante ?

  • O Sistema Operacional (SO) implementa abstrações de programação e interfaces que permitem que os usuários executem e interajam facilmente com os serviços do sistema.

  • Ele também gerencia os recursos de hardware (mémoria, acesso a disco,...) e controla como e quando os programas são executados.

  • O SO implementa políticas e mecanismos para garantir que vários programas possam ser executados simultaneamente no sistema de forma eficiente, protegida e contínua.

Qual SO iremos utilizar ?

Qual SO iremos utilizar ?

MacOS

Qual SO iremos utilizar ?

MacOS Windows

Qual SO iremos utilizar ?

MacOS Windows Linux

Por que iremos utilizar o Linux ?

O Linux é gratuito, de código aberto, mais do que um sistema operacional, ele é uma plataforma de aprendizado e é uma competência essencial para todos os estudantes de computação.

Além disso o Linux é o sistema operacional dominante em sistemas de supercomputação e é, sem dúvida, o sistema operacional mais utilizado por engenheiros e cientistas da computação.

Qual linguagem iremos utilizar ?

Qual linguagem iremos utilizar ?

Qual linguagem iremos utilizar ?

Por que iremos utilizar a Linguagem C ?

Detalhe na imagem, a Linguagem C continua no centro, pequeno mas respeitado, porque: sistemas operacionais, compiladores, runtimes (JVM, CLR, Python), kernels, drivers, firmware usam a Linguagem C.

Tudo passa por C em algum momento, você pode até não estar programando em C, mas alguém programou em C para você poder programar.

O que iremos aprender na disciplina ?

Como um programa roda no computador?

Como um programa em C vira código de máquina?

Como são divididos os recursos disponíveis?

Como construir programas mais eficientes?

O que iremos aprender na disciplina ?

Bibliografia básica

Computer Systems: A Programmer’s Perspective

R. E. Bryant and D. R. O’Hallaro

site: http://csapp.cs.cmu.edu

Este livro é realmente importante para disciplina!

Obrigado !