Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMA DE INFORMÁTICA BÁSICA Softwares Prof. João Dallyson Sumário • Introdução • Evolução do Software • Classificação do Software • Sistema Operacional (SO) • Evolução do SO • Funções do SO • Componentes do SO 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 2 Software Hardware Peopleware Sistemas Computacionais • Integração de componentes: – Hardware + Software + Peopleware 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 3 O que é Software 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 4 • “É o conjunto de Instruções (programas de computador) que, quando executadas, produzem o desempenho desejado e dados que permitem que os programas manipulem adequadamente a informação. ” PRESSMAN • “Não é apenas um conjunto de instruções, mas também todos os dados de documentação e configuração associados, necessários para que o programa funcione adequadamente.” SOMMERVILLE Software X Hardware • Software – Ordena e controla todas as atitudes do hardware – Maleável - modificações fáceis, feitas por programadores – Lógico • Hardware – Processadores, memórias, impressoras, etc... – Depende do software para funcionar – Rígido - modificações difíceis, feitas somente pelos fabricantes. – Físico 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 5 Evolução do Software • Anos 1940 a 1950 – Os computadores não muito adaptáveis – A execução de programas exigia preparação de equipamentos: fita magnéticas, colocação de cartões perfurados nas leitoras, configuração de interruptores, etc.... – Ao término da execução de cada programa (chamado de processo) as fitas e cartões perfurados precisavam ser retirados antes da preparação do próximo programa; – Planilhas de agendamento para gerenciar a reserva da máquina por usuário 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 6 Evolução do Software • Anos 1950 a 1960 (Primeira Era) – Operador carregava os programas no armazenamento em massa (AM) da máquina; – Um programa chamado Sistema Operacional fazia a leitura e executava os programas do AM; – Instruções em batch (Processamento em lote); – Várias instruções agrupadas executavam em lotes que não era interrompida até o final do processamento; – Os processos residentes na memória em massa esperam a execução em uma Fila. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 7 FIFO Evolução do Software • Anos 1960 a 1970 (Segunda Era) – Processamento interativo • Usuário interage com o programa por meio de terminais remotos – Surgiram programas multitarefa; – Processamento em tempo real • O computador realiza a tarefa de acordo com as restrições de tempo em seu ambiente (mundo externo); – Surgiram os primeiros bancos de dados (Adabas) e os primeiros softwares para venda. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 8 Evolução do Software • Anos 1970 a 1980 (Terceira Era) – Surgiu o conceito de sistemas distribuídos; – O software começou a ser popularizado; – Os computadores ficaram mais baratos e com maior acesso; – Os software se tornaram produtos de consumo em massa; • Anos 1980 até hoje (Quarta Era) – O grau de processamento começa a aumentar de forma bem rápida; – Surgem a tecnologia orientada a objetos; – O software é usado para auxílio na tomada de decisão; – A inteligência Artificial começa apresentar aplicações práticas (Redes Neurais, Lógica Fuzzy, Máquinas de Vetores Suporte etc.) – Software com processamentos paralelos; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 9 Classificação de Software 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 10 Software de Aplicação de Sistema Utilitário Sistema Operacional Interface com o usuário Núcleo • Efetuar tarefas que sirvam diretamente ao usuário. • Programas para a realização de tarefas particulares Ex: Planilhas, SGBDs, sistema de contabilidade Fornece a infraestrutura Necessária para a execução De software de aplicação • Úteis ao sistema computacional; • Unidade de software que estendem as capacidades do SO. Ex: Drivers, Backups, Antivírus, Compactadores (winzip) Sistemas Operacionais (SO) • O SO é o software mais importante de um sistema computacional, além de ser muito complexo; • Seu objetivo é gerenciar os recursos do computador; • Ele fornece o subsídio, para que os softwares sejam construídos; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 11 Funções básicas do SO • Gerenciar operação dos dispositivos de hardware do computador (processador, memória, etc...) • Gerenciar e manter o sistema de arquivos; • Dar suporte aos programas que são executados; • Serviço para Rede; • Sistema de Proteção (recursos alocados); • Programação de Tarefas 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 12 Componentes do SO Evolução dos SOs • Sistemas em Lote (Batch) – Primeira forma de processamento – Era encontrado em grandes computadores; – Nessa época os usuários finais não interagiam com o sistema; • Como era feito? – Eram preparadas tarefas (Jobs) compostas por um programa, os dados necessários para executar as instruções; – Estas tarefas eram alimentadas por um operador; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 13 Monotarefa x Multitarefa • Sistemas monotarefa realizam uma nova operação somente quando uma operação em execução termina, ou seja, executa somente um operação por vez; Ex: MS-DOS • Sistema multitarefas também é executada somente uma operação por vez, mas a diferença é que a operação não precisa ser terminada para dar a vez para outra, ou seja, executa várias tarefas, mas um pouco de cada por vez; Ex: Exemplo: Windows 9x 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 14 Evolução dos SOs • Compartilhamento de Tempo x Multitarefa – Compartilhamento de Tempo: • Múltiplos usuários compartilhando o acesso a um computador comum; • Fornecem serviços a diversos usuários concorrentemente • Pode ser implementado aplicando a técnica de multiprogramação: o tempo é dividido em intervalos e, então a execução de cada processo é restrita a apenas um intervalo por vez; – Multitarefa: • Um único usuário executando diversas tarefas simultaneamente; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 15 Evolução dos SOs • Sistemas de Tempo Real – São sistemas em que o tempo de processamento é essencial; – O processamento tem que ocorrer no tempo pré- determinado para não haver problemas ; – São classificados em críticos e não críticos: • Críticos: tem que garantir que as tarefas críticas devem executar no tempo determinado; • Não críticos: uma tarefa crítica recebe prioridade até ser concluída; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 16 Componentes dos Sistemas Operacionais • Interface do Usuário – Comunicação com o usuário • Baseada em texto (Shell) • Interface Gráfica com o Usuário (GUI) • Núcleo (Kernel) – Concentra o acesso ao hardware; – Dá suporte as funções básicas requeridas • Gerenciamento de Arquivos • Gerenciamento de Memória • Controladores de Dispositivos • Escalonador (Gerenciamento de Processo) 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentosda Computação 17 Interface com o usuário • Interface de usuário age como intermediador entre os usuários e o núcleo do Sistema Operacional 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 18 Gerenciador de Arquivos • Coordena o uso dos recursos no armazenamento em massa (AM) - Disco Rígido • Mantém registro de todos os arquivos armazenados no AM – Localização do arquivo; – Que usuários podem acessar o arquivo; – Quais partes do AM estão disponíveis; – A maioria dos gerenciadores de arquivos permite o agrupamento dos arquivos em diretórios ou pastas; – Os caminhos são separados por barras: • Ex: animais/prehistoria/dinossauros/ (Linux) • Ex: animais\prehistoria\dinossauros\(Windows) • Qualquer acesso a um arquivo por outras unidades de software é obtido por meio do gerenciador de arquivos 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 19 Controladores de Dispositivos • Unidades de software que se comunicam com os controladores de hardware para realizar operações nos dispositivos periféricos; • Cada controlador de dispositivo é projetado exclusivamente para um tipo de dispositivo: – Ex: Impressora, drive de disco, monitor, etc.. • Outros softwares podem deixar a cargo do controlador de dispositivo a tarefa de impressão de um arquivo; • Permite que o SO seja customizado por meio da instalação dos controladores de dispositivos apropriados. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 20 Gerenciador de Memória • Coordena o uso da memória principal (MP) da máquina; • Ambiente monoprogramado: – Problema é mínimo; – O Programa é colocado na MP, executado e depois substituído por outro programa. • Ambiente multiusuários e multiprogramados: – Muitos programas e blocos de dados devem residir na MP simultaneamente; – O Gerenciador deve garantir que as ações de cada programa sejam restritas ao espaço alocado ao programa; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 21 Gerenciador de Memória • O que fazer quando a MP não tem mais espaço? – O SO aloca uma porção de um meio de armazenamento (usualmente o disco rígido) para atuar como RAM adicional; – Técnica de Paginação: 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 22 RAM (memória física) Disco (memória virtual) • Os dados são divididos em unidades de tamanho uniforme chamadas de páginas Gerenciador de Memória • Memória Virtual 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 23 Passo 1 O SO transfere os dados e as instruções de programas menos usados recentemente para o disco rígido, uma vez que a memória é necessária para outros propósitos RAM (memória física) Disco (memória virtual) swap out de página Gerenciador de Memória • Memória Virtual 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 24 Passo 2 O SO transfere os dados e as instruções de programas do disco rígido para a memória quando necessários RAM (memória física) Disco (memória virtual) swap out de página swap in de página Inicialização (booting process) • Boot loader (Sistema de Inicialização) – É permanentemente armazenado na ROM da máquina; – É executado inicialmente quando a máquina é ligada; – Transfere o Sistema Operacional da memória secundária para a memória principal (MP); – Após colocar o SO na MP o sistema de inicialização passa o controle das atividades da máquina para o SO. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 25 Inicialização (booting process) • Boot loader (Sistema de Inicialização) 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 26 Coordenando as atividades da máquina • Qual a diferença entre processo e programa? • Programa: – Conjunto finito de instruções, ou seja, regras estáticas que devem ser seguidas; – Exemplo: Partitura em um livro fechado na prateleira; • Processo: – Instância de um programa em execução; – Atividade dinâmica cujas propriedades mudam à medida que o tempo passa; – Exemplo: Músico tocando a partitura – A atividade de executar um programa sob o controle do sistema operacional; – Estado do processo: Estado atual da atividade. Inclui o valor do contador de programa 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 27 Gerenciamento de Processo • Todo processo necessita de recurso (Memória, acesso a arquivos, Processamento, etc); • O SO cria, excluí ou suspende processos e tem que controlar a comunicação entre eles; • Um processo pode ter vários fluxos de execução (threads) – Exemplo: Os navegadores; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 28 Gerenciamento de Processo • O SO pode executar vários processos, mas como isso é gerenciado? – O SO possui dois componentes chamados de Escalonador e Despachante; – Escalonador: • Tem a função de controlar a execução dos processos; • Mantém um bloco de informação na MP chamado de tabela de processos; • Mantém informações: área de memória atribuída, prioridade do processo e se o processo está apto ou esperando. – Despachante: • Supervisiona a execução dos processos escalonados; • Controla a alocação de fatias de tempo para os processos na tabela de processos • Dá uma fatia de tempo para um processo; inicia um circuito temporizador; gera um sinal de interrupção no fim da fatia; 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 29 Estados de um processo 1 - Escalonador escolhe novo processo para executar; 2 - Escalonador entrega a CPU ao novo processo; 3 - Processo bloqueado para fazer entrada de dados (por exemplo, espera dados do teclado) ou outra situação na qual não tem condições lógicas de rodar. 4 - Operação de entrada e saída concluída ou processo volta a ter condições de rodar novamente. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 30 • Troca de processo (troca de contexto): – É o procedimento de trocar de um processo para outro. Multiprogramação: Processo A e Processo B 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 31 Passos na CPU na Interrupção 1. A CPU completa o ciclo de máquina atual; 2. Grava o estado do processo atual; 3. Configura o contador de programa: 1. Posição do tratador de interrupção; 4. A próxima instrução executada será a primeira instrução dentro do tratador de interrupções. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 32 Segurança • Problemas de segurança relacionados aos SOs • Ataques externos: – Problemas: • Senhas inseguras • Software Sniffing (software de escuta): Grava as atividades e posteriormente as relatam para um intruso em potencial – Soluções: • Software de auditoria: – Grava e analisa as atividades que ocorrem dentro do SO. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 33 Segurança • Ataques internos: – Problemas: • Acesso a células da memória principal fora da área permitida; • Enganar o gerenciado de arquivos para obter acesso a arquivos não autorizado; – Solução: • Controlar as atividades do processo por meio de modos privilegiados e instruções privilegiadas – Modo privilegiado (modo kernel): tem acesso a todo o HW e é capaz de executar qualquer instrução pela CPU; – Modo usuário: parte do conjunto de instruçõesda máquina está disponível (segurança) 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 34 Questões e Exercícios 1) Cite exemplos de Filas. Em cada caso, indique situações que violam a estrutura de FIFO. 2) Quais das seguintes atividades requerem processamento em tempo real? 1) Impressão de etiqueta de correio 2) Jogar no computador 3) Mostrar números na tela de um smartphone à medida que eles são digitados 4) Executar um programa de previsão da economia no ano seguinte 5) Tocar um música em mp3 3) Qual a diferença entre compartilhamento de tempo e multitarefas? 4) Descreva como funciona a memória virtual. 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 35 Agradecimentos • Ao Prof. Me. Geraldo Braz, DEINF/UFMA • Ao Prof. Me. Osvaldo Silva Sousa Junior, NTI/UFMA 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 36 Referências • BROOKSHEAR, J. G. Ciência da Computação: Uma visão abrangente. 11ª Ed. Porto Alegre, 2013. • MARÇULA, M.; BENINI FILHO, P. A. Informática Conceitos e Aplicações. 3ª Ed. São Paulo: Érica, 2008; • VELLOSO, F. C. Informática Conceitos Básicos. 8.ed. Rio de Janeiro: Elsevier, 2011. • http://www.ppgia.pucpr.br/~laplima/ensino/soecn/so_ common/materia/01_intro.html 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 37 Perguntas.... 25/10/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 38
Compartilhar