Baixe o app para aproveitar ainda mais
Prévia do material em texto
Profa. Amanda Drielly Pires Venceslau amanda.pires@ufc.br Software Software – Conceitos Básicos Software – Conceitos Básicos Software X Hardware Software Ordena e controla todas as ações do hardware Maleável - modificações fáceis, feitas por programadores Hardware Depende do software para funcionar Rígido - modificações difíceis, feitas somente pelos fabricantes. Software – Conceitos Básicos O que é Software? Conjunto alterável de instruções, ordenadas e lógicas, fornecidas ao hardware para a execução de procedimentos necessários à solução dos problemas e tarefas do processamento de dados. É o que torna possível os computadores terem uma variedade ilimitada de utilizações. Instruções eletrônicas que em geral residem em um meio de armazenamento. Um conjunto específico destas instruções é chamado Programa.. Software – Conceitos Básicos Programas •Partes componentes do software •Armazenados em unidades de memória secundária. •Desenvolvidos utilizando Linguagens de Programação. •Analistas de Sistemas e Programadores •Projetam e desenvolvem programas / software •Engenharia de Software •Área de estudo que se preocupa com o desenvolvimento de software • Quando o computador está usando um programa em particular, dizemos que eles está rodando ou executando aquele programa. Software – Conceitos Básicos Categorias de Software Software Básico Sistema Operacional Software Utilitário Software Aplicativo ou Sistema Aplicativo Outros autores ainda definem outra categoria: Software de Linguagem ou Linguagem de Programação Software – Conceitos Básicos Diferentes visões- Sistema computacional Visão Usuário Final X Programador X Projetista de Sistema Operacional Sistemas Operacionais Definição O sistema operacional é software: um conjunto de rotinas que são executadas pelo processador para facilitar o acesso aos componentes de hardware (processador, memória, dispositivos de E/S), e gerenciar o uso do sistema de computação (hardware e software). Tradicionalmente os S.O. eram escritos em linguagem Assembly. Já faz um certo tempo que a maioria dos S.O. são escritos em linguagens de alto nível. Sistemas Operacionais Objetivos Tornar ao usuário a utilização do computador mais conveniente Esconde detalhes internos Reduz o tempo necessário a construção de programas Utilizar o hardware do computador de forma eficiente Significa mais trabalho obtido pelo mesmo hardware Obtida por uma melhor distribuição/ uso dos recursos Sistemas Operacionais Sistemas Operacionais Composição Básica Um sistema operacional consiste, basicamente, de um núcleo (Kernel) e alguns programas do sistema. Há ainda aplicações que executam diversas tarefas. Kernel - coração do sistema operacional, composto pelas funções centrais do SO. Sistemas Operacionais Localização Residente no disco rígido do computador (maioria dos casos) Possibilidade de armazenamento em um chip ROM (handhelds) Computadores de diferentes portes possuem tipicamente diferentes sistemas operacionais Tipos similares de computadores podem possuir sistemas operacionais diferentes Diversos sistemas operacionais não são compatíveis entre si. Funções dos Sistemas Operacionais Inicialização do Computador Gestão de Programas Gestão da Memória Programação de Tarefas Configuração de Dispositivos Acesso à Web Segurança do Sistema Controle da Rede Monitoração do Desempenho Interfaceamento com o Usuário Funções dos Sistemas Operacionais Booting Processo de inicialização ou reinicialização de um computador Funções dos Sistemas Operacionais •Kernel - Núcleo de um SO •Gestão de memória e dispositivos •Manutenção dos relógios do computador •Inicialização de aplicativos •Compartilhamento de recursos computacionais (programas, dispositivos, dados,informação) •A cada inicialização do computador, o kernel e outras instruções de uso frequente do SO são carregadas Residente na memória Permanece na memória enquanto o computador estiver executando O kernel é residente na memória Não Residente na memória Instruções permanecem no disco rígido até que sejam necessárias Outras partes do SO são não residentes Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Inicialização de um sistema computacional Funções dos Sistemas Operacionais Gestão da Memória Virtual O SO aloca uma porção de um meio de armazenamento (usualmente o disco rígido) para atuar como RAM adicional Funções dos Sistemas Operacionais Gestão da Memória Virtual Funções dos Sistemas Operacionais Gestão da Memória Virtual Funções dos Sistemas Operacionais Comunicação SO - dispositivo de E/S Driver de Dispositivo - Programa que possibilita a comunicação do SO com um dispositivo de E/S. Cada dispositivo requer um driver próprio. Sistemas Operacionais Plug’n Play (PNP ou Plug and Play) Reconhecimento de novos dispositivos pelo computador, instalação automática de drivers para esses dispositivos e verificação de conflitos com outros dispositivos Suportado pela maioria dos dispositivos e SO atuais Sistemas Operacionais Plug’n Play (PNP) Quando se liga um sistema Plug’n Play, o principal árbitro entre o software e o hardware, o BIOS é o primeiro componente a assumir o controle. Com base em identificadores unívocos, códigos permanentemente gravados nas ROM (memória apenas de leitura), o BIOS reconhece os dispositivos instalados SO assume o controle dos dispositivos. Funções dos Sistemas Operacionais Interface com o Usuário Controle do modo de entrada de dados e do modo de apresentação das informações na tela do monitor. Sistemas Operacionais Interface com o Usuário Do ponto de vista do usuário, o que faz ou prejudica um sistema operacional é a qualidade da interface com o usuário. Às vezes, a interface com o usuário é denominada shell, sugerindo a idéia de que a interface com o usuário (o shell) “envolve” o sistema operacional (o kernel dentro do shell). Os três tipos de interfaces com o usuário são: Interface de linha de comando, Interface baseada em menus e Interface gráfica. Funções dos Sistemas Operacionais Sistemas Operacionais - Classificação Primórdios Sistema operacional inexistente Usuário é o programador e o operador da máquina Evolução foi motivada por: Melhor utilização de recursos Avanços tecnológicos (novos tipos de hardware) Adição de novos serviços Sistemas Operacionais - Classificação Sistemas Mono-usuário Projetados para serem usados por um único usuário. Exemplo: MS-DOS, Windows 3.x, Windows 9x, Millenium Sistemas Multi-usuário Suportam várias sessões de usuário em um computador. Exemplo: UNIX, Windows-NT, Windows 2000, Windows XP. Programas e arquivos de dados em um único computador (host), que gerencia também o uso comum de periféricos compartilhados. Sistemas Operacionais - Classificação Sistemas Mono-tarefa (Mono-programáveis) Podem executar apenas uma tarefa de cada vez. Exemplo: MS-DOS Sistemas Multi-tarefa (Multi-programáveis) Permitem executar várias tarefas simultaneamente Tarefas cooperativas. Exemplo: Windows 9x (aplicativos de 16 bits) Tarefas preemptivas. Exemplo: Windows NT, UNIX, OS/2, Windows 9x (aplicativos de 32 bits) Multi-tarefa cooperativa - cada aplicativo ocupa seu próprio endereço de memória e recursos do sistema. Cabe a cada processo liberar voluntariamente a utilização do processador para que outro processo possa rodar. Sistemas Operacionais - Classificação Sistemas em Lote (Batch) Primeiros sistemas multi-programáveis Caracterizados por terem seus jobs armazenados em disco ou fita, até o momento de serem executados de forma seqüencial. Os jobs não possuem interação com o usuário (Ex.: primórdios – compiladores, linkedições, backups). Início: passagem entre jobs - manual Evolução: Sequenciamento automático de jobs, transferindo o controle de um job a outro. Sistemas Operacionais - Classificação Sistemas em Lote (Batch) 1401 7094 1401 Leitora de cartões Unidade de Fita Entrada da Fita Sistema de Fitas Saída de Fita Impressora Um sistema “batch” antigo. (a) Programadores levam cartões ao 1401. (b) 1401 lê batch de jobs em fita. (c) A operadora acopla fita de entrada no 7094. (d) O 7094 faz o processamento. (e) A operadora acopla fita de saída no 1401. (f) O 1401 imprime a saída. Sistemas Operacionais - Classificação Sistemas em Lote (Batch) Introdução da multi-programação Acesso direto aos jobs - escala de jobs em uma determinada ordem, de modo a aproveitar os tempos de cpu ociosa. A idéia é manter vários programas em memória ao mesmo tempo. Enquanto um programa aguarda E/S, outro pode ser executado Sistemas Operacionais - Classificação Sistemas Multi-programáveis de Tempo Compartilhado (Timesharing) Fornecem serviços a diversos usuários concorrentemente Usuários possuem um terminal Interação com o programa em execução Usuário - Ilusão de possuir a máquina dedicada à execução de seu programa Divisão do tempo de processamento entre usuários Tempo de resposta é importante Sistemas Operacionais - Classificação Sistemas Multi-programáveis de Tempo Real •Quanto à construção, são bem semelhantes aos sistemas de tempo compartilhado. Porém, os objetivos e exigências são diferentes. •Em geram, atendem (monitoram) processos externos que requerem tempos de resposta dentro de limites rígidos. Ex.: experimentos científicos, tratamento de imagens médicas, controle de processos, etc •O processo realimenta o computador. •Em geral não existe o conceito de fatia de tempo alocada a um processo. •Noção de tempo real é dependente da aplicação (segundos, minuto, horas, etc). Sistemas Operacionais - Classificação Sistemas com Múltiplos Processadores Caracterizam-se por possuir 2 ou mais CPUs interligadas, trabalhando conjuntamente. No desenvolvimento desses sistemas o mais importante é a forma de comunicação entre os processadores e o grau de compartilhamento da memória e dos dispositivos de E/S, o que leva a seguinte classificação: sistemas fortemente acoplados (assimétricos e simétricos) sistemas fracamente acoplados (SO de rede e SO distribuído). Sistemas Operacionais Gerenciadores de Rede Windows NT, XP, Vista UNIX Ware LINUX Red Hat, Ubuntu Solaris Novell Netware LANtastic Sistemas Operacionais MS-DOS Windows (95, 98, NT, XP, Vista) UNIX LINUX Solaris OS/2 (IBM - micros) Mac OS (Apple - Machintosh) MCP (Unisys - Mainframe) VSE (IBM - Mainframe) MVS (IBM - Mainframe) Sistemas Operacionais Exemplos – MS-DOS (Disk Operating System) •Mono-usuário e mono-tarefa. •É um sistema operacional de 16 bits •Interface de linha de comando •Modos de comunicação do usuário com o MS-DOS: modo interativo e o modo batch. Modo Interativo: executa um comando no instante em que foi digitado através do prompt. Modo batch: comandos em lote - uma seqüência de comandos que serão executados na ordem em que aparecem. Os comandos desejados devem ser colocados em ordem seqüencial em um arquivo que pode ser criado por um processador de textos. Versões - 1.0 , 2.0 , 3.0 ,...., 6.0, 6.22 , 7.0 (unificado ao Windows ) Sistemas Operacionais Exemplos – WINDOWS O Windows foi a verdadeira revolução dos PC. Permite utilizar o microcomputador com maior facilidade, através de uma interface visual gráfica. Metáfora básica: a do desktop - ambiente que lembra uma mesa de trabalho - ferramentas necessárias e outros recursos são sempre visíveis e facilmente acessíveis. Windows ou Janelas Regiões retangulares que se alternam e se sobrepõem Apresentam na tela todas as operações ou programas executados no computador Versões: Windows 3.1 e 3.11, Windows 95 / Windows 98, Windows NT, 2000, XP, Vista Sistemas Operacionais Exemplos – UNIX Sistema multi-usuário e multi-tarefa. Principal objetivo: obtenção de um ambiente satisfatório de trabalho para programadores. Avaliação: usuários e programadores experientes - simples, elegante e fácil de aprender; Iniciantes - resumido e não muito amistoso. Uso predominante: estações de trabalho e servidores de rede, e especialmente, popular em máquinas equipadas com chips RISC de alto desempenho. Vantagens: portabilidade, padronização, sistema de arquivos hierárquico, e generalidade. Sistemas UNIX modernos - tendem a ser distribuídos e suportam aplicações em tempo real. Sistemas Operacionais Exemplos – LINUX É um “clone” do UNIX de distribuição livre. Foi primeiramente desenvolvido para PCs baseados em 386/486/Pentium, atualmente também roda em computadores Alpha - DEC, Sparc - SUN, PowerPC. Está disponível na forma de código objeto, bem como em código fonte. A maioria dos programas rodando em Linux são freeware genéricos para UNIX. Linux está sendo usado hoje em dia por centenas e centenas de pessoas pelo mundo - desenvolvimento de software, networking, e como plataforma de usuário final. Tem se tornado uma alternativa efetiva de custo em relação aos caros sistemas UNIX existentes. Software Utilitário Os utilitários são programas que preenchem a lacuna entre a funcionalidade de um sistema operacional e as necessidades dos usuários. Para muitos usuários, um computador com um sistema operacional e aplicações apenas básicas é inconveniente. Os programas utilitários introduzem ao sistema operacional funcionalidade que ele não possui. Administram o ambiente. Fornecem ao usuário ferramentas para organizar os discos, verificar disponibilidade de memória, corrigir falhas de processamento. Ex.: Norton Utilities Software Utilitário Tipos comuns de utilitários Programas de desfragmentação de arquivos (Ex.: Speed Disk, Compress, Defrag) Utilitários antivírus (Ex.: Norton, McAfee) Compactadores de arquivosou discos (Ex.: PKZIP, ARJ, Stacker, Double Space). Programas para gerenciamento de memória (Ex.:PC Booster). Software Aplicativo ou Sistema Aplicativo Aplicação: conjunto de procedimentos humanos que, baseados no computador, têm por objetivo realizar determinada tarefa. Software Aplicativo: conjunto de programas de computador desenvolvidos para realizar, em combinação com a atividade humana, tarefas ou processos específicos, relacionados com o processamento de informações. Efetuam tarefas que sirvam diretamente ao usuário. Escritos através de Linguagens de Programação Software Aplicativo ou Sistema Aplicativo De acordo com as tarefas que executam: Administrativos Sistemas de faturamento, contas a pagar, folha de pagamento, controle de estoque, controle da produção, contabilidade e outros Tecno-Científicos Cálculo de estruturas, simulação, planejamento e controle de projetos, pesquisa operacional, problemas de engenharia, desenvolvimento de projetos, CAD e outros relacionados com atividades científicas ou de engenharia. Automação Industrial Controle de processos, telemetria, controle de fabricação, CAM e outros relacionados com atividades industriais. Software Aplicativo ou Sistema Aplicativo De acordo com as tarefas que executam (cont...): Automação Comercial Reserva de passagens, contas correntes, pontos de venda e outros relacionados com atividades comerciais. Apoio Educacional Assistência à instrução, ensino auxiliado pelo computador e outras atividades relacionadas ao ensino. Especiais e Científicos Teleprocessamento, comunicações militares, pesquisas espaciais, previsões meteorológicas e outros. Software Aplicativo ou Sistema Aplicativo Abrangem diversas áreas do conhecimento Exemplos: Processador (ou editor) de textos (Word) Planilha eletrônica (Excel) Editor de apresentações (PowerPoint) Editor de Imagem (Adobe Photoshop) Editoração Eletrônica (PageMaker) Matemática (Mathcad) Engenharia e Arquitetura (AutoCAD, 3D Studio) Software – Modalidades 1. Software comercial 2. Shareware 3. Freeware 4. Beta 5. Demo ou Trial 6. Adware 7. Domínio Público 8. Software Livre Software – Modalidades Software comercial Não são revelados detalhes de funcionamento, não se pode copiá-los para outros usuários e alterações (muito difíceis, dada a forma binária) são terminantemente proibidas. Programas distribuídos na sua maioria somente na forma binária (executáveis) com direitos específicos (um ou alguns usuários, um ou alguns computadores, CPUs etc.) e quase sempre com um preço associado. Software – Modalidades Shareware Costumam ser distribuídos na forma binária e ter características semelhantes aos comerciais, mas com uma diferença: podem ser distribuídas cópias para outras pessoas experimentarem o programa (e se gostarem registrarem-se com o autor, pagando uma certa taxa). Software – Modalidades Freeware São os programas gratuitos, exatamente como os Shareware, mas não exigem registro e não têm taxa de uso. Não é permitida sua alteração. Software – Modalidades Beta Versões ainda em desenvolvimento. Muitas vezes com aspectos de Freeware, outras vezes Shareware. Precede a versão oficial. Ex.: software com a versão 0.x ou RC1, RC2, etc. RC - Release Candidate, geralmente as últimas versões antes do lançamento oficial. Software – Modalidades Demo ou Trial As versões Demo são basicamente relacionadas a jogos. Apenas alguns níveis; O Trial funciona quase da mesma maneira, se aplica a programas, mas com uma pequena diferença: algumas não salvam nem exportam os trabalhos realizados. Software – Modalidades Adware São programas suportados por banner, assim como site. São gratuitos enquanto o banner estiver rodando no programa, mas há a possibilidade de adquirir um registro e retirar o sistema de banner. Pode-se ter todas as vantagens de ser um usuário cadastrado, assim como acontece com o Shareware. Software – Modalidades Domínio Público O autor abre mão dos direitos, perdendo inclusive o direito de cópia - o copyright. Em todos os casos, o código fonte acompanha o programa. O programa pode ser embutido em outro programa e vendido. Software – Modalidades Software Livre Programas que mantém o copyright, e ainda assim permitem: a livre distribuição (cópia); o acesso ao código-fonte; e o direito de alterar o programa Software – Modalidades Modalidades CR CF Dis Alt Comercial Shareware Freeware Software Livre Dom. Público (C.R. = Copyright, C.F. = Código fonte disponível, Dis. = programa pode ser distribuído livremente, Alt. = programa pode ser alterado)
Compartilhar