Prévia do material em texto
Faculdade São Francisco de Assis - Credenciamento Portaria 3.558 de 26/11/2003 – D.O.U. 28/11/2003 Unidade Navegantes: Av. Sertório, 253, Unidade Concórdia: Av. Presidente Franklin Roosevelt, 770, Unidade São Francisco: Av. Baltazar de Oliveira Garcia, 4879 Fone/Fax: (51) 3014-1800 - Porto Alegre – RS - www.saofranciscodeassis.edu.br Introdução à Ciência da Computação Prof. Everaldo Luis Daronco computacao@saofranciscodeassis.edu.br Baseado no material do Prof. André Desessards Jardim - UFPEL e Dale, N,; Lewis, J. Ciência da Computação. Rio de Janeiro: Editora LTC, 2010. Aula Sistemas Computacionais: Conceitos Básicos Softwares http://www.saofranciscodeassis.edu.br/ mailto:computacao@saofranciscodeassis.edu.br Disciplina Introdução Ciência da Computação Sistemas Computacionais: Componentes Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • É todo e qualquer programa que esteja sendo processado por um computador executando tarefas e/ou instruções das quais resulte um resultado – Resultado pode ir para uma memória, ser impresso, ou ser mostrado na tela Um programa de computador é uma coleção de instruções que descrevem uma tarefa a ser realizada por um computador Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • O Software dá flexibilidade ao projeto • Permite a comunicação entre o usuário e o Hardware hardware software usuário Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • O software também evoluiu • Com a chegada do computador pessoal, a necessidade por software aumentou assustadoramente • A necessidade de produzir software sem necessitar de grandes equipes forçou a evolução nas linguagens de programação Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Primeiros Anos (50-60): – desenvolvimento do software era feito, virtualmente, sem administração até que os prazos começassem a se esgotar e os custos a subir abruptamente. – orientação batch (em lote) para a maioria dos sistemas – Na maior parte, entretanto, o hardware dedicava-se à execução de um único programa que, por sua vez, dedicava-se a uma única aplicação específica – software, por outro lado, era projetado sob medida para cada aplicação e tinha uma distribuição relativamente limitada – ambiente de software personalizado o projeto era processo implícito realizado no cérebro de alguém e a documentação muitas vezes não existia. Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Segunda Era (60-80): – multiprogramação e os sistemas multiusuários introduziram novos conceitos de interação homem-máquina – técnicas interativas – avanços da armazenagem on-line levaram à primeira geração de sistemas de gerenciamento de banco de dados – aparecimento "software houses“ – software desenvolvido para ampla distribuição num mercado interdisciplinar – Programas para mainframes e minicomputadores – Surgimento da "manutenção de software“ Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Terceira Era (80-90): – As redes globais, as comunicações digitais de largura de banda ("bandwidth") elevada e a crescente demanda de acesso "instantâneo" a dados exigem muito dos desenvolvedores de software. – caracterizada pelo advento e o generalizado uso de microprocessadores, computadores pessoais e poderosas estações de trabalho "workstations" Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Quarta Era (90-??): – As tecnologias orientadas a objetos, orientadas a documentos, estão ocupando o lugar das abordagens mais convencionais para o desenvolvimento de software em muitas áreas de aplicação. – As técnicas de "quarta geração" para o desenvolvimento de software já estão mudando a maneira segundo a qual alguns segmentos da comunidade de software constroem programas de computador. – Os sistemas especialistas e o software de inteligência artificial finalmente saíram do laboratório para a aplicação prática em problemas de amplo espectro do mundo real. Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Tipos de Softwares • Podemos classificar os softwares quanto a sua finalidade como: – Básico – Aplicativo • Podemos classificar os softwares quanto a distribuição como: – Software livre – Software proprietário Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Tipos de Softwares Software básico é uma coleção de programas escritos para dar apoio a outros programas. A área do software básico é caracterizada por: forte interação com o hardware de computador; intenso uso por múltiplos usuários; operações concorrentes que exigem escalonamento "schedule"; compartilhamento de recursos e sofisticada administração do processo; estruturas de dados complexas e múltiplas interfaces externas. Os softwares básicos são essenciais para todo computador Sistema Operacional (SO) Interface gráfica Linguagens de programação Utilitários Disciplina Introdução Ciência da Computação Conceitos Básicos: Software SO – Sistema Operacional • O Sistema Operacional (SO) é uma das camadas de software mais importantes dos sistemas computacionais • Suas principais funções são: – Gerenciamento de memória • Controla o acesso a memória para leitura e escrita – Gerenciamento do processador • Controla o escalonamento de tempo dos processos no processador • O SO não pode deixar nenhum processo “morrer de fome” (starvation) • Garante um tempo de processamento a todos os processos concorrentes – Gerenciamento de arquivos • Controla a leitura e escrita de arquivos – Gerenciamento de dispositivos de E/S (entrada e saída) Disciplina Introdução Ciência da Computação Conceitos Básicos: Software SO – Sistema Operacional • Quando o computador é ligado ele automaticamente executa um conjunto de softwares de inicialização (BIOS) • Em seguida, o sistema operacional é carregado • O Sistema Operacional (SO) viabiliza a interação do usuário com a máquina – Fornece a interface gráfica para facilitar a interação • Executa diversas tarefas de gerenciamento que são transparentes ao usuário – Gerencia o paralelismo das operações ou “simula” o paralelismo para o usuário – Torna o HW operacional Disciplina Introdução Ciência da Computação Conceitos Básicos: Software SO – Sistema Operacional • Os SOs se comunicam com o hardware em linguagem de máquina, e diferentes famílias de processadores costumam utilizar SOs diferentes • Para PCs, os SOs mais comuns são: – MS-DOS, Windows XP, Vista, Seven, 8, 10 – Linux, Unix • Para máquinas da Apple – MaC OS • Para smart phone e tablets – Android – iOS – Windows Phone Disciplina Introdução Ciência da Computação Conceitos Básicos: Software SO – Sistema Operacional • Interface Gráfica – Software que transforma os comandos de um outro software (SO, por exemplo) em símbolos gráficos (ícones) e informações textuais – Todo SO atual para PCs utiliza uma interface gráfica • Elementos típicos em interfaces: – Janelas – Ícones (símbolos gráficos) – Menus – Caixas de diálogos – Check box, etc... • Dispositivos Apontadores – Mouse – Caneta eletrônica, tablet – Dedo (telas sensíveis ao toque) Disciplina Introdução Ciência da Computação Conceitos Básicos: Software SO – Sistema Operacional • Multitarefa e Multithreading • Multitarefa em SOs: – Cooperativa: O SO espera o término da execução de uma tarefa para enviar uma nova. Cabe a cada processo liberar voluntariamente a utilização do processador para que outro processo possa rodar. Ex. Windows 9x (16bits) – Preemptiva: O SO envia uma nova tarefa assim que o tempo de execução da anterior acaba. O SO controla. Ex. Windows NT e Windows 9x (32bits) • Multithreading: – Multitarefa dentro da aplicação – Um software pode executar mais de uma tarefa simultaneamente– A execução de multithreads pode ser virtual em sistemas com apenas uma CPU, ou real, em sistemas de múltiplas CPUs ou multi-cores Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Evolução dos SW (SO) – 1980 – MS-DOS da Microsoft para PC e compatíveis – 1982 – Planilha eletrônica Lotus – 1984 – MAC OS – 1983 – MS Word, processador de textos da Microsoft – 1984 – Macintosh OS, com interface gráfica – 1985 – Windows como ambiente operacional – 1990 – Unix firma-se como ambiente multiusuário – 1992 – Windows 3.1 e 3.11 – 1993 – Windows NT para ambiente de rede – 1995 – Windows 95 – 1998 – Windows 98 – 2001 – Windows XP, MAC OS X – 2007 – Windows Vista – 2008 – Android OS – 2009 – Windows 7 – 2012 – Windows 8 – 2015 – Windows 10 Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Softwares Utilitários • Softwares de solução de problemas, que em geral, são comuns a maioria dos usuários • Exemplos: – Compactadores – Formatadores – Backup – Degrafmentadores – Antivirus Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Softwares Aplicativos • São softwares desenvolvidos para resolver problemas específicos, que não necessariamente sejam comuns a maior parte dos usuários • Editores de texto, players, planilhas de cálculos, desenho, entre outros • Exemplos: – Processador de Textos (MS-office, BrOffice) – Dicionários Eletrônicos – Desenhos Técnicos e Artísticos – Editoração Eletrônica (publisher) – Edição de Imagens – Administração/Contabilidade – Matemática – Engenharia e Arquitetura – Planilhas Eletrônicas – Medicina – Jogos – Periódicos Disciplina Introdução Ciência da Computação Conceitos Básicos: Software • Evolução dos SW (LP) – 1847 – Álgebra booleana – 1945 – Lógica binária (Von Neumann) – 1945 – 1ª geração da linguagem de máquina – 1955 – 2ª geração da linguagens de programação – 1958 – FORTRAN, ling. de 3ª geração de alto nível – 1963 – BASIC, popularização nos microcomputadores – 1968 – Linguagem Pascal – 1972 – Linguagem C – 1975 – Início das linguagens de 4ª geração e Smaltalk – 1978 – Ada (baseada em Pascal e FORTRAN) – 1991 – Java (pela Sun) – 1995 – Linguagens visuais (Visual Basic, Delphi, etc) – ???? – Completar ...... Disciplina Introdução Ciência da Computação Conceitos Básicos: Software Pesquisa • Buscar mais elementos de discussão para os tipos de classificação dos softwares • Buscar mais elementos de discussão para as gerações de LP, com características e exemplos das LP de cada geração, bem como pesquisar as principais LP existentes (mais populares e utilizadas).