Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Noções básicas de Informática: Software DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Sobre a aula I. Silva, Ivanovitch Medeiros Dantas da. Algoritmos e Lógica de Programação – Notas de aula. UFRN, Natal, 2011. II. Marçula, Marcelo. Filho, Pio Armando Benini. Informática -Conceitos e Aplicações. 3 ed. São Paulo: Érica, 2008. III. Tanembaum, Andrew S. Sistemas Operacionais Modernos. 2 ed. Rio de Janeiro: LTC (2003). 2 Tópicos da aula • Partes de um sistema computacional – Hardware/Firmware/Software. – Conceito de software. • Sistemas operacionais – Conceito – Funcionalidades – Estrutura – Classificação 3 Partes de um Sistema Computacional Software Firmware Hardware 4 O que é um software? • “É a parte lógica do sistema de computação que é armazenada eletronicamente. É composto por um ou mais programas (conjunto de instruções) que capacitam o hardware a realizar tarefas específicas, pelos dados manipulados por eles, pela documentação de especificação (projeto) dos programas e pela documentação de operação dos programas.” [Marçula, 2008]. 5 Classificação de softwares • Software de sistema: – Sistema operacional: • Responsável pelo funcionamento geral. – Utilitários de sistema. • Acompanha o sistema operacional para gerenciar o funcionamento do sistema computacional. • Software de aplicativo. – Realiza algum trabalho para o usuário. 6 Sistemas Operacionais 7 Sistemas Operacionais • “É um programa que controla os recursos do sistema computacional (computador) e fornece a base sobre a qual os programas aplicativos podem ser escritos.” [Tanenbaum & Woodhull, 2000]. 8 Sistemas Operacionais Aplicativos Sistema Operacional Hardware 9 Funcionalidades do S.O. Fornecer uma interface de comunicação (máquina virtual) entre o sistema de comunicação e o usuário. Gerenciar a operação dos dispositivos de hardware do computador. Gerenciar e manter o sistema de arquivos armazenados. Dar suporte aos programas que são executados. 10 Estrutura do Sistema Operacional Kernel Shell • Realiza as funções básicas para o funcionamento do sistema computacional. • Drivers de dispositivos, BIOS, ... • Responsável pela comunicação com o usuário (interface). • Aplicativos, compiladores, janelas, ... 11 Funções do Kernel • Tratamento de interrupções – Periodicamente, o SO decide interromper a execução de um processo e iniciar a execução de outro. • Gerenciamento de processos – Um processo é um programa carregado na memória e em execução. – Criar e eliminar processos. 12 Funções do Kernel • Gerenciamento de memória – Manter registros de quais instruções estão utilizando a memória e quais partes da memória estão sendo utilizadas. – Ordenar os processos na memória principal. – Alocar e liberar espaço na memória. • Gerenciamento de arquivos – Organização baseadas em diretórios. – Definir o Sistema de Arquivos. • Tratamento dos arquivos. • Estruturas de diretórios. • Organização e fornecimento de informações dos arquivos. • Gerenciamento de dispositivos de entrada e saída. 13 Classificação dos Sistemas Operacionais • Sistemas monotarefa. – Realiza uma tarefa por vez. • Sistemas multitarefa. – Realiza várias tarefas “ao mesmo tempo”. • Sistemas paralelos (múltiplos processadores). – Conjunto de CPUs que realizam vários tarefas “ao mesmo tempo” compartilhando recursos como memória e clock. • Sistemas distribuídos. – Conjunto de CPUs que realizam várias tarefas “ao mesmo tempo” sem compartilhamento de recursos como memória e clock, utilizando apenas links de comunicação. • Sistemas em tempo real. – Possuem requisitos rígido de tempo de processamento. 14 Sistemas monotarefa • Execução de um único programa. • Qualquer outro programa, para ser executado, deve esperar o término do programa corrente. ... Programa 3 Programa 2 Memória Programa 1 CPU Dispositivos de Entrada/Saída 15 Sistemas multitarefa • Vários programas dividem os mesmos recurso. • Enquanto um programa espera por uma operação de leitura ou gravação, outros programas podem processar informações nesse tempo. Programa 1 Memória Programa 3 CPU Programa 2 Dispositivos de Entrada/Saída ... 16 Sistemas paralelos (múltiplos processadores) • Possuem duas ou mais CPUs interligadas e funcionando em conjunto. • Executa vários programas ao mesmo tempo, dividindo a execução entre as diversas CPUs. ... CPU Mestre Programa 3 CPU Memória Programa 2 Programa 1 CPU CPU Dispositivos de Entrada/Saída 17 Sistemas paralelos (múltiplos processadores) • Possuem mais de um processador compartilhando todos os recursos de hardware (barramento, memória e I/O). • Chamados de fortemente acoplado. 1. Sistemas simétricos: – Cada CPU executa uma cópia idêntica do SO. – Possuem mesmo tempo de acesso aos recursos. 2. Sistemas assimétricos: – Cada CPU tem uma tarefa específica. – Possuem diferentes tempos de acesso aos recursos. 18 Sistemas distribuídos • Processadores distribuídos cooperando para execução de programas e interligadas através de links de comunicação. • Ex.: Internet. 19 Tópicos importantes na escolha de um S.O. Usabilidade Desempenho Segurança Preço 20 Revisando 1. Qual a diferença entre hardware, software e firmware? 2. O que é um sistema operacional? 3. O que é o Kernel do sistema operacional? E quais as suas funcionalidades? 4. Qual a diferença entre sistemas monotarefa e multitarefa? 5. Qual a diferença entre sistemas paralelos e distribuídos? 21 Referências • Silva, Ivanovitch Medeiros Dantas da. Algoritmos e Lógica de Programação – Notas de aula. UFRN, Natal, 2011. • Marçula, Marcelo. Filho, Pio Armando Benini. Informática Conceitos e Aplicações. 3 ed. São Paulo: Érica, 2008. • Tanembaum, Andrew S. Sistemas Operacionais Modernos. 2 ed. Rio de Janeiro: LTC (2003). 22 Dúvidas? Dúvidas por email: [email protected] 23