Sistemas Hardware-Software

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

Ninjas:

Creditos: Maciel Calebe Vidal

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 ?

MacOS

Qual SO iremos utilizar ?

MacOS Windows

Qual linguagem iremos utilizar ?

MacOS Windows 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.

Qual linguagem iremos utilizar ?

Qual linguagem 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.

  • Os códigos e os exemplos da disciplina serão executados no sistema operacional Linux, que é 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.

O que iremos aprender na disciplina ?

  • Como um programa escrito na linguagem C é executado em um computador;

  • Como as instruções do programa são traduzidas para binário e como o computador executa sua instruções binária;

  • Como o SO gerencia programas em execução no sistema;

  • Como escrever programas que podem fazer uso de computadores multi-core; e

  • Ao longo da disciplina, você também será apresentado a detalhes da linguagem C e aprender a depuração de código em Assembly.

Conteúdo da 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 !