Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19 -20/11/06 1 Ementa • • • • • • • • • • • Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação de Dados Estrutura e Organização da Informação Linguagens de Programação Sistemas Operacionais Redes de Computadores e Internet Engenharia de Software Softwares Aplicativos Aspectos Legais do Software Aula 19 -20/11/06 2 Conceito de Sistema Operacional • O sistema operacional é uma camada de software intermediária entre o hardware e os softwares aplicativos. • Gerencia de recursos de hardware, como: – CPU, memória e discos • Suporta softwares aplicativos como: – Compiladores, gerenciadores de banco de dados e softwares de redes. • Estabelece uma interface com o usuário. – Determina como o usuário interage com o sistema. Aula 19 -20/11/06 3 Kernel (Núcleo) • Um sistema operacional é formado por um conjunto de programas. – O kernel é o programa mais importante. • O kernel é carregado do disco rígido para a memória quando o computador é inicializado. • O kernel carrega do armazenamento em disco outros programas do sistema operacional, quando necessário. – Outros programas são chamados de não-residentes. • Tarefas básicas do kernel: – Compartilhamento da CPU. – Gerenciamento da memória RAM. – Gerenciamento de periféricos (comunicação com os drivers). Aula 19 -20/11/06 4 Compartilhamento da CPU • Em sistemas operacionais modernos, o kernel é responsável por compartilhar a CPU entre os diversos processos que são executados. • A cada processo é designada uma fração de segundos (quantum) em que a CPU fica dedicada somente a ele. • Quando acaba o tempo, o kernel passa a CPU para outro processo e assim sucessivamente. Aula 19 -20/11/06 5 Gerenciamento da Memória • Para serem executados pela CPU, os programas devem ser carregados do disco para a memória principal. • O sistema de gerenciamento de memória: – Divide a memória em partições distintas. – Aloca partições de memória para programas. – Mantém os programas mutuamente separados para evitar que interfiram no funcionamento um do outro. • Em sistemas modernos, normalmente utiliza-se um esquema de memória virtual. Aula 19 -20/11/06 6 Memória Virtual • Os programas que estão atualmente em execução são armazenados em disco. – Partes do programa são levadas para a memória conforme a necessidade. – Permite a execução de mais programas simultaneamente do que caberia somente na memória RAM. • Pode ser implementado por meio de paginação. – Divide a memória em páginas pequenas, de tamanho fixo. – A tabela de páginas (page table) controla as localizações na memória. Aula 19 -20/11/06 7 Programas Utilitários • São os programas do sistema operacional que ficam fora do kernel. • Exemplos: – Interface com o usuário • Shell (linha de comando) • Interface gráfica – Gerenciamento de arquivos • Mantém a árvore de diretórios e controlam o acesso aos arquivos no disco. – Drivers de dispositivos • Realizam a comunicação com cada periférico instalado. – Utilitários para desfragmentação do disco. Aula 19 -20/11/06 8 Exemplos de Sistemas Operacionais • • • • • Unix Linux MS-DOS MS-Windows Mac OS (hoje em dia usa o Unix como base) Aula 19 -20/11/06 9 Sistema Operacional Unix • O Unix foi desenvolvido na década de 1970 por programadores da AT&T e do Bell Labs. – Escrito originalmente em Assembly e destinado a funcionar em máquinas PDP-7, com o objetivo de dar respostas rápidas. • A partir da década de 1980 uma versão na linguagem C foi distribuída comercialmente. • É utilizado em equipamentos de médio porte e em equipamentos de arquitetura RISC. – Servidores Sun (Solaris), IBM (AIX) • Também é a base do sistema Mac OS X. • Hoje em dia existem versões livres (FreeBSD). Aula 19 -20/11/06 10 Evolução do Unix Aula 19 -20/11/06 11 Principais características do Unix • Multiusuário – Vários usuários podem utilizar o sistema ao mesmo tempo a partir de diferentes consoles. – Cada usuário deve logar-se no sistema para poder utilizá-lo. • Multiprogramável (ou multitarefa) – Pode executar diversos programas que compartilham os recursos do sistema. • Estrutura hierárquica de arquivos – Possibilita a criação de subdiretórios – Permite desenvolver mecanismo de proteção dos dados. • Possibilidade de redirecionamento de entrada e saída de dados. Aula 19 -20/11/06 12 Principais características do Unix (cont.) • Possui rotinas de gerenciamento de memória que utilizam a técnica de paginação ou swapping (memória virtual). • Possui rotinas de gerenciamento de processos cuja prioridade de execução é dada pelo administrador do sistema. – Usa a técnica de time sharing (tempo compartilhado). – Permite que cada processo tenha um quantum de execução diferente. Aula 19 -20/11/06 13 Estrutura interna do Unix • A estrutura interna do Unix divide-se em duas partes: – Kernel: é o núcleo do sistema operacional e contém todas as rotinas de gerenciamento e execução dos programas. – Shell (interpretador de comandos): armazena as rotinas de tratamento de interface do sistema, identificando e encaminhando para execução os comandos pedidos pelo usuário. Aula 19 -20/11/06 14 Gerência de arquivos • O sistema Unix possui três tipos de arquivo: – Arquivos simples: utilizados para armazenamento de dados e programas dos usuários. – Arquivos especiais: constituem a interface entre programa de aplicação e os periféricos. • Para escrever ou ler de um periférico, se escreve ou lê de arquivos especiais. – Arquivos diretórios: são aqueles cujo conteúdo é formado por um conjunto de arquivos simples, especiais e diretórios. Aula 19 -20/11/06 15 Gerência de arquivos (cont.) • Ao formatar um disco, o Unix divide-o logicamente em blocos de 512 bytes, criando uma estrutura dividida em quatro partes: – Bloco de inicialização • Armazena o programa de carga do sistema operacional. – Superbloco • Contém informações gerais sobre os arquivos existentes, tais como quantidade e espaço total ocupado. – L-Lista • Contém informações sobre cada arquivo armazenadas em estruturas chamadas “Inode”, tais como nome do arquivo, data e hora de criação, identificação do proprietário, bits de proteção e a lista de identificadores dos blocos do arquivo. – Área de dados • Área utilizada para armazenar o conteúdo dos arquivos. Aula 19 -20/11/06 16 Estrutura de arquivos Aula 19 -20/11/06 17 Sistema Operacional Linux • O Linux é um sistema operacional baseado no Unix, criado como uma alternativa barata e funcional. – O Linux é um software livre, isto é, seu código fonte é aberto. – Utilizar o Linux é 95% igual a usar o Unix. – O Linux pode ser rodado em PCs. • O kernel do Linux for escrito por Linus Torvalds com a ajuda de programadores voluntários, que participaram pela internet. • Ele baseou o sistema no Minix, um sistema operacional educacional escrito por Andrew Tanenbaum. Aula 19 -20/11/06 18 Distribuições Linux • O Linux na verdade é só o kernel (núcleo) do sistema com alguns comandos básicos. • No início, o próprio usuário devia encontrar os outros programas, compilá-los e configurá-los. • O Projeto GNU usou então o Linux como kernel e criou uma distribuição de sistema operacional completa chamada de GNU/Linux. • Hoje em dia existem várias distribuições do GNU/Linux (Red Hat, Debian, Mandrake, Debian, etc.) Aula 19 -20/11/06 19 Características do Linux • Sistema multitarefa de 32 ou 64 bits. • Sistema gráfico Xwindow. • Suporte a diversas linguagens como Java, C, C++, Pascal, Lisp e 177 Prolog. • Suporte aos protocolos de rede: TCP/IP, IPX, AppleTalk, Samba. • Memória virtual • Código-fonte do kernel disponível. • Centenas de programas em GPL, incluindo compiladores, editores, multimídia e outros. • Permissão de arquivos. Aula 19 -20/11/06 20 Termos de Licenciamento do Linux • GPL = General Public License • Essa licença permite a distribuição e mesmo a venda de versões possivelmente modificadas do Linux. – Mas requer que todas as cópias sejam lançadas dentro da mesma licença e acompanhadas do código fonte. Aula 19 -20/11/06 21 Sistema Operacional MS-DOS • Foi desenvolvido pela Microsoft no início da década de 1980 (Microsoft Disk Operating System). • Teve como objetivo atender a linha de computadores IBM-PC desenvolvidos pela IBM. • Principais características: – Sistema monousuário – um usuário por vez – Monoprogramável – não permite compartilhamento de alguns recursos, como processador, arquivos e outros. – Estrutura hierárquica dos dados – diretórios e subdiretórios. – Redirecionamento de Entrada e Saída padrão. Aula 19 -20/11/06 22 MS-DOS • Usa uma interface de linha de comando. – A tela apresenta prompts ao usuário. – O usuário digita comandos. • Amplamente substituído pelas interfaces gráficas. Aula 19 -20/11/06 23 MS-DOS • Modos de Operação (como o usuário realiza suas tarefas): – Interativo – executa imediatamente o comando digitado via teclado. – Batch – representado por uma seqüência de comandos armazenados em um arquivo, com extensão BAT. Este modo de operação pode usar os comandos do modo interativo acrescido dos comandos condicionais e de desvios. Aula 19 -20/11/06 24 MS-DOS • Gerenciamento de Memória – O sistema operacional MS-DOS divide a memória em diversos tipos, para melhor gerenciá-la: • Memória convencional – os primeiros 640 kbytes • Área de Memória Superior – os 385 kbytes localizados acima da memória convencional (rotinas de gerenciamento dos dispositivos periféricos) • Memória Estendida (XMS) • Área de Memória Alta – os primeiros 64Kbytes da memória estendida, onde pode ser instalado o DOS • Memória expandida (EMS) – adicional à memória convencional Aula 19 -20/11/06 25 MS-DOS • Recursos adicionais do DOS – Redirecionamento • > Redirecionamento de Saída, eliminado o conteúdo anterior • >> Redirecionamento de Saída, adicionando ao conteúdo anterior • < Redirecionamento de Entrada – Exemplos • • • • dir > PRN dir > arqdir.dat dir >> arqdir.dat prog < arq1.dat Aula 19 -20/11/06 26 Sistema Operacional MS/DOS(8) • Recursos adicionais do DOS – Canalização – realiza a transferência de dados entre programas, para isso, utiliza arquivos temporários • TYPE ABC.DAT | MORE – Filtros • SORT (ordenação) – SORT <nome-arq> <opções> – Opções: » /R – ordenar decrescente » / +n – ordenar a partir da posição n Aula 19 -20/11/06 27 Microsoft Windows • Iniciou-se como um ambiente operacional para o MSDOS. – Não era um sistema operacional completo; necessitava do MS-DOS. – A partir da versão Windows 95, passou a ser independente do MS-DOS. • Usa uma interface gráfica. – Os usuários podem usar os comandos e a interface do DOS. • Só passou a ser realmente multi-tarefa a partir da versão Windows 95. – Antes utilizava multi-tarefa cooperativa: os próprios aplicativo da MS se responsabilizavam em chavear o processador entre outros aplicativos. Aula 19 -20/11/06 28 Interface Gráfica do Windows • O usuário dá um clique em um ícone para executar tarefas. • O menu Iniciar no canto inferior esquerdo abre programas. • Usa menus para ativar comandos. Aula 19 -20/11/06 29 Mac OS • Projetado para o computador Macintosh. • Primeira GUI bem sucedida comercialmente. – Serviu como modelo para o Windows e outros produtos GUI desenvolvidos a partir de então. • A partir da versão Mac OS X, passou a ter o kernel baseado no Unix BSD. Aula 19 -20/11/06 30