Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas ao sistema 1 Introdução • Um sistema computacional consiste em – hardware – programas do sistema – programas de aplicação 2 O que é um Sistema Operacional • É uma máquina estendida – Oculta os detalhes complicados que têm quer ser executados – Apresenta ao usuário uma máquina virtual, mais fácil de usar • É um gerenciador de recurso – Cada programa tem um tempo com o recurso – Cada programa tem um espaço no recurso 3 Componentes de um Sistema de Computação • Hardware - fornece os recursos básicos para se realizar a computação propriamente dita (CPU, Memória, Dispositivos de I/O). • Kernel - controla e coordena o uso do hardware através dos programas dos usuários. • Aplicativos e Utilitários - define a maneira como os recursos do sistema são usados para resolver a computação dos problemas dos usuários. • Usuários - podem ser os usuários regulares, programadores, analistas, programas e computadores. 4 Visão Abstrata dos Componentes de um Sistema de Computação 5 História dos Sistemas Operacionais (1) Antigo sistema em lote – – – – traz os cartões para o 1401 lê os cartões para a fita coloca a fita no 7094 que executa o processamento coloca a fita no 1401 que imprime a saída 6 História dos Sistemas Operacionais (2) • Primeira geração 1945 - 1955 – Válvulas, painéis de programação • Segunda geração 1955 - 1965 – transistores, sistemas em lote • Terceira geração 1965 – 1980 – CIs e multiprogramação • Quarta geração 1980 – presente – Computadores pessoais 7 História dos Sistemas Operacionais (3) Estrutura de um job FMS típico – 2a. geração 8 História dos Sistemas Operacionais (4) • Sistema de Tempo compartilhado • Sistema de multiprogramação – Três jobs na memória – 3a. Geração 9 História dos Sistemas Operacionais (5) • Funcionalidades necessárias para a multiprogramação – Rotinas de I/O fornecidas pelo sistema. – Gerenciamento de memória • O sistema deve alocar e liberar a memória para vários jobs/programas. – Escalonamento da CPU • O sistema deve escolher entre os vários jobs/programas qual está pronto para ser executado. – Alocação dos dispositivos. 10 História dos Sistemas Operacionais (6) • Sistemas de tempo Compartilhado – A CPU alterna o atendimento dos vários jobs que estão na memória • a CPU será alocada apenas se o job estiver na memória. – Um job alterna entre a memória e o disco • área de swap. – Comunicação on-line entre o usuário e o sistema é fornecida. • Computação Interativa. 11 O Zoológico de Sistemas Operacionais(1) • Sistemas operacionais de computadores pessoais (desktops) • Sistemas operacionais de multiprocessadores (paralelos) • Sistemas operacionais distribuídos • Sistemas operacionais de tempo-real • Sistemas operacionais embarcados 12 O Zoológico de Sistemas Operacionais(2) • Sistemas operacionais de computadores pessoais (desktops) – Sistema computacional dedicado para um único usuário. – Dispositivos de I/O • Teclados, mouse, monitores de vídeo e impressoras. – Conveniência e responsabilidade para o usuário. – Podem adotar tecnologia desenvolvida para sistemas operacionais maiores. – Podem executar diferentes sistemas operacionais. 13 O Zoológico de Sistemas Operacionais(3) • Sistemas operacionais de multiprocessadores (paralelos) – Sistemas multiprocessados com mais do que uma CPU em comunicação direta. – Sistemas Fisicamente e Logicamente Paralelos. – Sistemas Fortemente Acoplados • Processadores compartilham memória e um clock; a comunicação normamalmente é feita utilizando-se a memória compartilhada ou barramento de dados. – Vantagens • Aumento do Throughput e economia. • Aumento da confiabilidade 14 O Zoológico de Sistemas Operacionais(4) • Sistemas operacionais distribuídos – Distribui a computação, ou programas, entre os vários processadores existentes. – Sistemas Fracamente Acoplado • Cada processador possui sua própria memória local; processadores comunicam-se uns com os outros através de um sub-sistema de comunicação (rede de comunicação local ou de longa distância). – Vantagens • Compartilhamento de Recursos. • Balanceamento de carga. • Confiabilidade. • Comunicação. 15 O Zoológico de Sistemas Operacionais(5) • Sistemas operacionais de tempo-real – Utilizados para controlar um dispositivo em uma aplicação ou ambiente dedicado, como controle de experimentos científicos, sistemas de imagens médicas, sistemas de controle industrial entre outros. – A resposta à uma requisição é extremamente rígida em relação ao tempo. – Sistemas de tempo real podem ser do tipo hard ou soft real time. 16 O Zoológico de Sistemas Operacionais(6) • Sistemas operacionais de tempo-real – Hard Real Time • Dispositivos de armazenamento secundário limitados ou ausentes, dados são armazenados normalmente em material semicondutor. • Conflita com os sistemas de tempo compartilhado, são SOs de uso específico. – Soft Real Time • Utilização limitada a simulações e realidade virtual. 17 O Zoológico de Sistemas Operacionais(7) • Sistemas operacionais embarcados – Personal Digital Assistants (PDAs). – Telefones celulares. – Considerações • Memória Limitada • Processadores lentos • Pequenas Telas de Exibição. 18 Evolução do Conceitos dos SO's 19 Conceitos sobre Sistemas Operacionais (1) • • • • • • • • • Gerência de Processos Gerência de Memória Principal Gerência de Arquivos Gerência do Sistema de I/O Gerência de Armazenamento Secundário Rede Sistema de Proteção Serviços do Sistema Operacional Interpretador de Comandos do Sistema Conceitos sobre Sistemas Operacionais (2) • Gerência de Processos – Processo é um programa em execução e necessita de certos recursos, como tempo de CPU, memória, arquivos e dispositivos de I/O, para completar sua tarefa. – Responsabilidades do Sistema Operacional: • criar e destruir processos do usuário e do sistema; • suspender e reativar processos; • fornecer mecanismos para – comunicação entre processos; – sincronização entre processos; – tratamento de deadlocks (impasses). Conceitos sobre Sistemas Operacionais (3) • Uma árvore de processos – A criou dois processos filhos: B e C – B criou três processos filhos: D, E, e F 22 Conceitos sobre Sistemas Operacionais (4) • Gerência de Memória Principal – A memória principal é um armazenador de acesso rápido e compartilhável entre a CPU e os dispositivos de I/O, além de ser volátil, ou seja, perderá seu conteúdo em caso de falhas no sistema. – Responsabilidades do Sistema Operacional: • conhecer quais partes da memória estão sendo usadas e por quem; • decidir quais processos serão carregados quando o espaço da memória torna-se disponível; • Alocar e liberar espaço da memória quando for necessário. Conceitos sobre Sistemas Operacionais (5) • Divisão da Memória Conceitos sobre Sistemas Operacionais (6) • Gerência de Arquivos – Um arquivo é uma coleção de informações definidas pelo seu criador. Normalmente representa programas (fonte, objeto e executável) ou dados. – Responsabilidades do Sistema Operacional: • criar e remover arquivos; • criar e remover diretórios; • disponibilizar primitivas para manipulação de arquivos e diretórios; • mapear os arquivos no dispositivo de armazenamento secundário; • copiar arquivos entre dispositivos de armazenamento não voláteis. Conceitos sobre Sistemas Operacionais (7) Sistema de arquivos de um departamento universitário 26 Conceitos sobre Sistemas Operacionais (8) • Gerência do Sistema de I/O – Ocultar as peculiaridades de dispositivos de hardware específicos do usuário. – O subsistema de I/O consiste em: • buffering, caching e spooling; • interface geral de driver de dispositivo (device-driver); • drivers para dispositivos de hardware específicos. – Apenas o driver de dispositivo conhece as peculiaridades do dispositivo específico ao qual foi atribuído. Conceitos sobre Sistemas Operacionais (9) • Gerência de Armazenamento Secundário – A memória principal (armazenamento primário) é volátil e muito pequena para armazenar todos os dados e programas permanentemente, portanto, o sistema computacional deve fornecer armazenamento secundário para auxiliar a memória principal. – Responsabilidades do Sistema Operacional: • gerenciamento de espaço livre; • alocação de armazenamento; • escalonamento de disco (ordenação e seleção das operações p/ o uso de discos). Conceitos sobre Sistemas Operacionais (10) • Rede – Coleção de computadores compartilhando recursos. – Cada computador tem seu próprio processador, memória e clock, além do sistema operacional. – Os computadores são interligados através de um sub-sistema de comunicação e utilizam protocolos para viabilizar a comunicação. – Acesso aos recursos compartilhados permitem: • speed-up computacional (aumento na velodidade de processamento); • aumento na disponibilidade dos dados; • aumento da confiabilidade. Conceitos sobre Sistemas Operacionais (11) • Sistema de Proteção – Proteção refere-se a qualquer mecanismo para controlar o acesso de programas, processos ou usuários aos recursos do sistema ou de outros usuários. – O mecanismo de proteção deve: • distinguir entre uso autorizado e não autorizado; • especificar o tipo de controle a ser utilizado; • fornecer os meios para viabilizar estes controles. Conceitos sobre Sistemas Operacionais (12) • Resumindo: – Serviços do Sistema Operacional • Execução de programas • Operações de I/O • Manipulação do Sistema de Arquivos • Comunicações • Detecção de Erros • Alocação de Recursos • Contabilização • Proteção Conceitos sobre Sistemas Operacionais (13) • Interpretador de Comandos do Sistema – Os comandos são enviados ao sistema operacional através de uma interface caracter ou orientada a mouse (“gráfica”). • “ORIENTADOS A TECLADO” x “ORIENTADOS A MOUSE” – Outros nomes: SHELL (casca do sistema), “prompt do sistema”, “console”, interpretador de linha de comando, “terminal”. – Os comandos interagem com: • gerenciamento de processos; • gerenciamento de memória principal; • gerenciamento de arquivos (do usuário e do sistema); • manipulação de I/O; • gerenciamento de armazenamento secundário; • Proteção/rede. Conceitos sobre Sistemas Operacionais (14) Modelo simples de estruturação de um sistema monolítico Chamada ao Sistema • As Chamadas ao sistema (system calls) fornecem uma interface entre um programa que está em execução e o sistema operacional. • Usadas para – Controle de Processos – Gerência de Arquivos – Gerência de Dispositivos – Manutenção de Informações – Comunicações Os Passos de uma Chamada ao Sistema Os 11 passos para fazer uma chamada ao sistema read (fd, buffer, nbytes) 35 Algumas Chamadas ao Sistema para Gerenciamento de Processos 36 Algumas Chamadas ao Sistema para Gerenciamento de Arquivos 37 Algumas Chamadas ao Sistema para Gerenciamento de Diretório 38 Algumas Chamadas ao Sistema para Tarefas Diversas 39 Chamadas ao Sistema Algumas chamadas da interface API Win32 40