Sistemas Operacionais Prof. Dr. Márcio Andrey Teixeira Introdução e história dos sistemas operacionais O sistema Computacional Elementos básicos: Barramento Memória Instruções Contador de Programa Registradores de Instruções Registrador de Endereço de Memória Instruções Instruções Instruções Registrador de Buffer de Memória Registrador de Buffer de I/O Instruções . . . Dados Dados Módulos de I/O Prof. Dr. Márcio Andrey Teixeira Dados Dados Processador: Controla as operações do computador e realiza o processamento de dados através de um ou mais processadores; Memória Principal: Armazena dados e programa, sendo assim tipicamente volátil, daí a denominação de memória real; Módulos de entrada e saída: Move dados entre o computador e o ambiente externo, podendo este ser constituído de uma variedades de dispositivo, incluindo memória secundária e equipamentos de interconexão. Interconexão do sistema: Estrutura e mecanismos que possibilitam a interconexão entre processadores, memória principal, e módulos de I/O Registradores de dados: Podem ser atribuídos a uma variedade de funções pelo programador. Prof. Dr. Márcio Andrey Teixeira Contador de programa: Contém o endereço da instrução que será buscada. Registrador de instrução: Contém a instrução mais recente buscada Registradores de Índice: Acomodam endereços de dados e instruções, da memória principal, ou acomodam informações utilizadas para calcular endereços. Prof. Dr. Márcio Andrey Teixeira O ciclo de Instruções • Dois passos: – Ir buscar; – Executar; Prof. Dr. Márcio Andrey Teixeira Processador- memória: Dados são transferidos do processador para a memória e da memória para o processador; Processador- I/O: Dados podem ser transferidos de/para os dispositivos de I/O através da troca de informações entre o processador e os módulos de I/O; Processamento de dados: Operações lógicas e aritméticas são realizadas; Controle: Uma instrução pode requerer que uma seqüência de execução seja alterada Prof. Dr. Márcio Andrey Teixeira Exemplo de uma instrução 0 3 4 15 Código da operação Endereço Formato de uma instrução 0 1 S 15 Endereço Formato de um inteiro 0001 – Load AC from Memory 0010 – Store AC to Memory 0101 – Add to AC from Memory Prof. Dr. Márcio Andrey Teixeira Organização das memórias Prof. Dr. Márcio Andrey Teixeira Introdução Um sistema operacional é um programa que controla a execução de programas de aplicações e faz a interface entre as aplicações e o Hardware do computador. A área de atuação do sistema operacional pode ser visto na abaixo. Prof. Dr. Márcio Andrey Teixeira Os sistemas operacionais tem os seguintes objetivos: Conveniência: O sistema operacional faz um computador mais conveniente para ser utilizado. Eficiência: Um sistema operacional permite que um os recursos de um sistema computacional sejam utilizados com maior eficiência. Habilidade para evoluir: Um sistema operacional deve ser construído de tal forma à permitir um eficiente desenvolvimento, incluindo testes, e quando necessário, a introdução de novas funcionalidades, sem interferir com os serviços existentes. Prof. Dr. Márcio Andrey Teixeira Um sistema operacional pode ser examinado das seguintes maneiras: O Sistema operacional e a interface Usuário / Computador O Sistema operacional como um gerenciador de recursos Prof. Dr. Márcio Andrey Teixeira O Sistema operacional e a interface Usuário / Computador Sem a utilização de um sistema operacional, o desenvolvimento de aplicações seria uma tarefa muito complexa. Criação de programas: O sistema operacional prevê uma variedade de funcionalidades e serviços para assistir o programador na criação de programas. Execução de programas: Instruções e dados precisam ser carregados na memória, dispositivos de entrada / saída e arquivos precisam ser inicializados e outros recursos precisam ser preparados. Dispositivos de Entrada / Saída : Como cada dispositivos de entrada e saída apresenta suas próprias particularidades, tais como, conjunto de instruções e sinais de controle para operação, cabe ao sistema operacional abstrair estes detalhes para o usuário. Prof. Dr. Márcio Andrey Teixeira Acesso restrito a arquivos : Cabe ao sistema operacional esconder do usuário a natureza do dispositivo de armazenamento, bem como o formato do arquivo armazenado. Acesso ao sistema : Funções de acesso devem proteger recursos e dados de usuários não autorizados, bem como resolver conflitos de disputa de recursos. Detecção de erro : Uma variedade de erros podem ocorrer: Erros de hardware, erros de software, e erros decorrentes da inabilidade do sistema operacional garantir uma requisição da aplicação do usuário. Respostas ao erro : Em cada caso, o sistema operacional pode: relatar o erro ao usuário, repetir a operação ou abortar a aplicação; Coletas de medidas : Um bom sistema operacional deve coletar estatísticas acerca de vários recursos bem como monitorar parâmetros de performance. Por exemplo, tempo de resposta. Prof. Dr. Márcio Andrey Teixeira Usuário Programador Programas de aplicações Utilitários Sistema Operacional Hardware Prof. Dr. Márcio Andrey Teixeira Sistema operacional O sistema operacional como um gerenciador de recursos Um computador é formado por um grupo de recursos, sendo utilizado para movimentar, armazenar e processar dados. O sistema operacional é responsável por gerenciar cada recurso existente em um sistema computacional. Por exemplo: - Cada programa utiliza um tempo dos recursos computacional - Cada programa utiliza um espaço dos recursos computacionais Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Os sistemas operacionais vêm passando por um processo gradual de evolução. A necessidades de mudanças em um sistema operacional exige que certos requisitos sejam considerado no seu projeto. Um sistema operacional se expande para oferecer novos serviços, que também pode constituir em um monte de falhas. Este processo de evolução está ligado diretamente com a arquitetura dos computadores sobre a qual eles eram são executados. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A primeira geração de computadores. (Válvulas e Painéis de programação) Período: 1945 – 1955. Um mesmo grupo de pessoas projetava, construía, programava e realizava a manutenção da máquina. A programação era feita conectando plugs em painéis para controlar as funções da máquina. Não havia linguagens de programação, e não havia sistema operacional. As máquinas eram executadas através de consoles, constituídos de lâmpadas sinalizadora, chaves, algum dispositivo de entrada e saída. Prof. Dr. Márcio Andrey Teixeira Se um erro ocorresse durante a execução do programa,a indicação se dava através de lâmpadas sinalizadores (leds) – com essas informações, o programador examinava os registros para determinar a causa do erro. Se a execução do programa evoluía como esperado, os dados gerados como respostas a sua execução eram enviados para uma impressora. Para compilar um programa, era necessário: Carregar o compilador e o programa na memória, gerar o programa objeto, bem como ligá-lo as funções comuns. Na ocorrência de erro, todo o processo deveria ser reiniciado, e com isso, muito tempo era perdido na preparação do ambiente, para que somente depois o programa fosse executado. Prof. Dr. Márcio Andrey Teixeira Prof. Dr. Márcio Andrey Teixeira Manutenção no ENIAC Prof. Dr. Márcio Andrey Teixeira Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A segunda geração de computadores. (Transistores e sistema em Lote (Batch). Período: 1955 – 1965. Para melhorar a utilização das máquinas, o conceito de sistema operacional em lote foi desenvolvido. Mais de um fornecedor já havia desenvolvido sistema operacional em lote para seus computadores; Essas máquinas eram denominadas computadores de grande porte (Mainframes). Era operada por equipes profissionais. Somente grande corporações podiam compram ($$$). Para que um JOB (programa ou conjunto de programas) ser executado, os seguintes passos eram seguidos. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais 1 – Primeiramente, o programador escrevia o programa no papel (em FORTRAM ou em linguagem de montagem) e depois perfurava os cartões. 2 – Ele então, apanhava um maço de cartões para a sala de entradas, entregava-o para um dos operadores e ia tomar um café até que a saída impressa estivesse pronta. 3 – Ao fim da execução de um JOB pelo computador, um operador ia até a impressora e retirava a saída da mesma, de modo que o programador pudesse pegar mais tarde. 4 – Com o maço de cartões em mãos, o programador colocava estes cartões em uma unidade de leitura de cartões. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais a) Os programadores levam os cartões para o 1401. b) O 1401 gravava lote de jobs em fita. c) O operador levava a fita de entrada para o 7094. d) O 7094 executava o processamento. e) O operador leva a fita de saída para o 1401. f) O 1401 imprime a saída. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Muito tempo de computação era desperdiçado, enquanto os operadores andavam pela sala das máquinas. Solução adotada: O sistema de lote (batch). A idéia era gravar vários jobs em fita magnética usando um computador relativamente mais barato, como o IBM 1401, que era muito bom para ler cartões, copiar fitas e imprimir saídas. Outras máquinas mais caras, como o IBM 7094 era utilizado para a computação propriamente dita. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 No inicio dos anos 60 havia duas linhas distintas de computadores: Computadores científicos e computadores comerciais. Manter o desenvolvimento de duas linhas de produto demanda muito custo para os fabricantes. A IBM tentou resolver este problema, introduzindo o System/360. Todas as máquinas deste linha tinham a mesma arquitetura e conjunto de instruções. Um sistema operacional foi desenvolvido para lidar tanto com as tarefas científicas quanto as tarefas comerciais. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 Este sistema operacional era chamado de OS/360, com milhões de linhas de código escrito em linguagem de montagem por vários programadores. Será que deu certo ???????????. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 Nesta época foi dado inicio a uma nova técnica muito importante em sistemas operacionais, a multiprogramação. Três jobs na memória Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 Exemplo de multiprogramação com dois processos: Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Algumas considerações de Hardware e Software: Interrupções de entrada / saída e DMA: De forma a executar instruções enquanto dispositivos de entrada / saída estão ocupados; Gerenciamento de memória: Diversos jobs prontos para serem executados devem ser mantidos na memória; Proteção de memória: Dados e programas; Escalonamento: Com vários processos a serem executados, é necessário decidir quem deve ser executado; Gerenciar a disputa de recursos: Não só no caso anterior, como para os demais recursos de entrada / saída Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 Outra aspecto muito importante desta época é a capacidade de transferir jobs de cartões perfurados para disco magnético. Essa técnica denomina-se spooling. O anseio para respostas mais rápidas abriu o caminho para o compartilhamento de tempo (Timesharing). Após o sucesso do primeiro sistema operacional com capacidade de time-sharing, um consórcio envolvendo o MIT, GE e Bell Labs foi formado, no intuito de desenvolver um projeto ambicioso. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 Para um grande número de jobs, é desejável que o usuário possa interagir diretamente com o computador (ou seja, modo interativo); Manipular jobs interativo - neste caso, a técnica utilizada é referenciado como time-sharing, uma vez que o tempo do processador é compartilhado entre os usuários Com esta técnica, múltiplos usuários acessam simultaneamente o sistema através de terminais, com o S.O intercalando a execução de cada programa do usuário em pequenas porções (quantum) de tempo de uso do recurso computacional. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A terceira geração de computadores. Período: 1965 a 1980 O projeto MULTICS (MULTiplexed Information Computing System). Um sistema operacional que suportasse centenas de usuários on-line. Esta idéia introduziu idéias inovadores, mas sua implementação foi impraticável para a década de sessenta. O projeto MULTICS influencio os pesquisadores da Bell Labs, que vieram a desenvolver o UNIX uma década depois. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais O primeiro S.O foi desenvolvido pelo MIT no projeto MAC, e tinha as seguintes particularidades: O sistema executava em uma máquina com 32k palavras de 36 bits na memória principal, com um monitor residente consumindo 5k palavras; Programas e dados do usuário eram carregados nos 27k palavras restantes da memória; O clock gerava uma interrupção de 0.2 segundos; A cada interrupção, o S.O readequaria o controle da máquina para atribuí-lo a outro processo de um outro usuário; A cada interrupção, o S.O readequaria o controle da máquina para atribuí-lo a outro processo de um outro usuário; Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A Quarta geração de computadores. Período: 1980 - Com o desenvolvimento de circuitos LSI, chips contendo milhares de transistores por centímetro quadrado de silício, surgiu a era dos computadores pessoais. Enquanto os minicomputadores atendiam companhias e universidades, os computadores pessoais e estações de trabalho passaram a atender usuários individualmente. O aumento do potencial destas máquina criou um vastíssimo mercado de software a eles dirigido, Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A Quarta geração de computadores. Período: 1980 - Dois sistemas operacionais dominaram o mercado: O MS-DOS para computadores pessoais e o UNIX para estações de trabalho. O próximo desenvolvimento no campo de sistemas operacionais surgiu com a tecnologia de redes de computadores. Estes são: Os Sistemas Operacionais de Rede; Os Sistemas Operacionais Distribuído. Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A Quarta geração de computadores. Período: 1980 - Linhagem do MS-DOS EM 1980 Deu-se início aos computadores IBM PC; Em 1983 é lançado o IBM PC 80286 como MS-DOS; Em 1985 a Microsoft desenvolveu um “novo” MS-DOS, com ambiente gráfico; E 1995 é lançado o Windows 95; Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A Quarta geração de computadores. Período: 1980 - Linhagem do DOS Em 1998 foi lançado uma nova versão do windows levemente modificada, o Windows 98 ; Depois disso a Microsoft lançou o Windows NT, um sistema totalmente 32 bits. Mais uma versão da Microsoft, o Windows ME; Depois Windows 2000 até então ......... Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais A Quarta geração de computadores. Período: 1980 - Um outro competidor no mundo dos computadores pessoais, o UNIX O UNIX é mais forte em estações de trabalho, como servidores etc; Ele é especialmente popular em máquinas cujo os processadores são da arquitetura RISC. Possui em gerenciador de janelas, diferente do windows que o sistema todo é baseado em janelas; Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Atualmente, existe uma variedade de sistemas operacionais, tais como: Sistemas operacionais de computadores de grande porte; Sistemas operacionais de servidores; Sistemas operacionais de múltiplos processadores; Sistemas operacionais de computadores pessoais; Sistemas operacionais de tempo real; Prof. Dr. Márcio Andrey Teixeira A história dos Sistemas operacionais Uma pequena revisão sobre hardware de computadores: Exemplo de alguns componentes de um computador pessoal simples. Prof. Dr. Márcio Andrey Teixeira