Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos de Computação Bruno Feres de Souza bferes@gmail.com Universidade Federal do Maranhão Bacharelado em Ciência e Tecnologia 1° semestre de 2013 “Entende-se por Computação ou Informática o corpo de conhecimento a respeito de computadores, sistemas de computação e suas aplicações, englobando aspectos teóricos, experimentais, de modelagem e de projeto.” Currículo de Referência da Sociedade Brasileira de Computação (SBC) para Cursos de Graduação em Bacharelado em Ciência da Computação e Engenharia de Computação. Computação? Ambientes computacionais: ● Hardware + Software + Peopleware Computação? ... a respeito de computadores, sistemas de computação e ... Conceitos básicos Software: é um conjunto de instruções que controlam o hardware de modo a realizar tarefas determinadas por um “algoritmo”. Este conjunto de instruções implementado em uma linguagem computacional é chamado de “programa” As instruções utilizam o hardware para realizar operações sobre os dados armazenados na memória do computador ● Ler um dado do teclado, armazenar na memória, somar dois dados, exibir na tela, gravar no disco... Conceitos básicos O Software envolve um conjunto de: 1- INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados 2- ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação 3- DOCUMENTOS que descrevem a operação e o uso dos programas Aplicações de software SOFTWARE BÁSICO ● Coleção de programas escritos para dar apoio a outros programas SOFTWARE DE TEMPO REAL ● Software que monitora, analisa e controla eventos do mundo real SOFTWARE COMERCIAL ● Sistemas de operações comerciais e tomadas de decisões administrativas Aplicações de software SOFTWARE CIENTÍFICO E DE ENGENHARIA ● Caracterizado por algoritmos de processamento de números SOFTWARE EMBUTIDO ● Usado para controlar produtos e sistemas para os mercados industriais e de consumo SOFTWARE DE COMPUTADOR PESSOAL ● Envolve processamento de textos, planilhas eletrônicas, diversões, etc. SOFTWARE DE INTELIGÊNCIA ARTIFICIAL ● Faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta. Ciclo de vida de software • O desenvolvimento do software compreende um conjunto de etapas citadas como CICLOS DE VIDA DE SOFTWARE • Essas etapas envolvem Métodos, Ferramentas e Procedimentos para a construção e manutenção do software. • O ciclo de vida de software contém 3 fases genéricas: DEFINIÇÃO, DESENVOLVIMENTO e MANUTENÇÃO DEFINIÇÃO (o que?) DESENVOLVIMENTO (como?) MANUTENÇÃO (alterações) Ciclo de vida do software Entendimento Modificação Revalidação Projeto Codificação Teste Análise de Sistema Análise de Requisitos Sistema operacional (SO) A função de um SO é de executar os programas aplicativos e servir de “mediador” (interface) entre o computador e seus usuários. Por que um SO? ● Utilização mais conveniente (software) ● Utilização mais eficiente (hardware) Sistema operacional (SO) Hardware Utilitários Sistema Operacional Aplicativos O sistema operacional pode ser visto com a primeira camada de software acima do hardware do computador que se encarrega de suportar e servir de interface entre este e os demais programas aplicativos e utilitários ● Controla execução de programas ● Aloca recursos do computador Sistema operacional (SO) Serviços úteis para o usuário: ● Interface ● Praticamente todos os SOs tem interface com o usuário ● As interfaces variam entre Command-Line Interface (CLI) e Graphics User Interface (GUI) ● Execução de programas ● O sistema deve ser capaz de carregar um programa na memória do computador para executá-lo ● Operações de entrada e saída (I/O – Input/Output) ● Um programa em execução requerer operações de I/O (teclado, display, câmera, etc.) Sistema operacional Serviços úteis para o usuário (cont.): ● Manipulação do sistema de arquivos ● Manipular arquivos e diretórios, como criar, editar, ler, apagar, alterar permissões e etc. ● Comunicação ● Comunicação para troca de informação entre processos do mesmo computador ou entre computadores através de uma rede ● Detecção de erros ● SOs devem estar sempre atento a possíveis erros ● Erros podem ocorrer na CPU, hardware da memória, dispositivos de I/O, programas de usuário e etc Sistema operacional Um sistema operacional é constituído de duas partes: o kernel e o shell. O kernel é composto por programas que ficam abaixo da interface de chamada de sistema e acima do hardware ● provê sistema de arquivos ● escalonamento do processador/CPU ● gerenciamento de memória O Shell é a camada que o usuário tem acesso ● Shell -> kernel -> hardware ● Interpretador de comandos que transmite ao kernel o que deve ser feito Sistema operacional – system call System call (chamada do sistema) é um procedimento para solicitar um função (ou serviço) do sistema operacional Sistemas operacionais ● Exemplo de chamadas ao sistema: ● ler de um arquivo e escrever em outro ● passar os nomes dos arquivos manipulados ● abrir o arquivo de entrada (open) ● criar o arquivo de saída (create) ● ler o arquivo de entrada (read) ● escrever no arquivo de saída (write) ● fechar os dois arquivos (close) ● terminar a execução (end) Outros sistemas operacionais ● Microsoft –Windows ● Windows Mobile ● Google Chrome OS (Linux-based) ● Android (Linux-based) -voltado para sistemas embarcados. ● Apple -Mac OS X (UNIX-based) –Apple ● iOS (iPhone OS) ● IBM i, z/OS, z/VM, z/VSE (SOs da IBM) Linguagem de programação ● Conjunto de palavras: vocabulário ● Conjunto de regras gramaticais para escrever uma programa computacional ● Um programa induz um computador a realizar uma determinada tarefa ● Cada linguagem possui: ● Um conjunto único de palavras-chave (que somente a linguagem em questão reconhece) ● Sintaxe (regras) específica para organizar as instruções do programa Linguagem de programação ● Usadas para escrever algoritmos ● Sequência de passos que levam à solução de um problema ● Permite o programador determinar a organização dos passos do algoritmo ● Permite a especificação de um algoritmo com precisão Linguagem de programação ● Linguagens de máquina (1° Geração ) ● É a linguagem de mais baixo nível ● Constituída por sequências binárias, o que torna impossível de entendê-la: Binário: 10110000 01100001 ● Única entendida pelo processador (CPU). Linguagem de programação ● Linguagem Assembly (2° Geração ) ● É a linguagem de nível imediatamente acima da linguagem de máquina. ● Mesma estrutura e conjunto de instruções que a linguagem de máquina ● Utilização de nomes e símbolos em lugar dos números ● Única para cada tipo de CPU ● Primórdios da programação todos os programas eram escritos nessa linguagem ● Os programas escritos em assembly são convertidos para a linguagem de máquina para serem executados pelo processador. ● Esta conversão é chamada e montagem e é feita pelo montador (ou assembler) Linguagem de programação ● Considere a instrução: y=(A-B)/(C+DxE) Figura retirada dos slides do Prof. Wilfredo Blanco Figuerola, 2010 Linguagem de programação ● Cada arquitetura de computador tem sua própria linguagem de máquina e de montagem Figura retirada dos slides do Prof. Wilfredo Blanco Figuerola, 2010 Linguagem de programação ● Linguagem de Alto Nível (3a Geração) ● São as linguagens de programação que possuem uma estrutura e palavras-chave que sãomais próximas da linguagem humana. ● Programas mais fáceis de serem lidos e escritos ● Exemplo de instrução: RESULT = D-((A+B)/C) Linguagem de programação ● Código de inserção de um elemento em uma lista utilizando a linguagem de programação C Linguagem de programação ● Exemplos de linguagem de programação de alto nível: ● Aplicações científicas ● Fortran, Algol, Basic, APL, LISP, Pascal, ADA, Prolog, PLI, Java, C, C++ ● Aplicações comercias ● COBOL, RPG, PLI Linguagem de programação ● Linguagem de Alto Nível (4a Geração) ● São linguagens de programação com estrutura mais próxima da linguagem humana do que as linguagens de ● programação de alto nível. ● A maioria delas é usada para acessar bancos de Dados ● a SQL (Structured Query Language) é um bom exemplo dessa geração SELECT NOME, MATRICULA FROM ALUNOS WHERE NOME = “Carlos” AND ESTADO (“SP”, “RJ”, “MG”) Cálculo eletrônico 2ª Geração (1955-1965): transistores Material didático ● Sistemas Operacionais (Rômulo Silva de Oliveira, Alexandre da Silva Carissimi e Simão Sirineo Toscani). Capítulo 1. ● http://www.lume.ufrgs.br/bitstream/handle/10183/19242/000102159.pdf ● Aprendendo a Programar Programando na Linguagem C Para Iniciantes (Jaime Evaristo). Capítulo 1. ● http://www.fsm.com.br/web/enade/revisao/novos/livroProgramacaoC.pdf ● Introdução à Ciência da Computação (José Luís Garcia Rosa, Silvia Cristina Venticinque Mendes e Nelson de Carvalho Mendes). Capítulo 5. ● http://www.cursos.zagari.org/ICC/material.html Cálculo eletrônico 2ª Geração (1955-1965): transistores Dúvidas?
Compartilhar