1
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
2
Introdução
• Um sistema computacional consiste em
–
hardware
–
programas do sistema
–
programas de aplicação
3
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
4
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,
5
Visão Abstrata dos Componentes
de um Sistema de Computação
6
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
7
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
8
Estrutura de um job FMS típico – 2a. geração
9
• Sistema de Tempo compartilhado
• Sistema de multiprogramação
–
Três jobs na memória – 3a. Geração
10
• 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.
11
• 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.
12
O Zoológico de Sistemas
Operacionais(1)
• Sistemas operacionais de computadores
pessoais (desktops)
• Sistemas operacionais de
multiprocessa-dores (paralelos)
• Sistemas operacionais distribuídos
• Sistemas operacionais de tempo-real
• Sistemas operacionais embarcados
13
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.
14
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
15
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.
16
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.
17
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.
18
O Zoológico de Sistemas
Operacionais(7)
• Sistemas operacionais embarcados
– Personal Digital Assistants (PDAs).
– Telefones celulares.
– Considerações
• Memória Limitada
• Processadores lentos
19
Evolução do Conceitos dos SO's
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
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;
22
• Uma árvore de processos
–
A criou dois processos filhos: B e C
–
B criou três processos filhos: D, E, e F
Conceitos sobre Sistemas
Operacionais (3)
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)
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.
26
Conceitos sobre Sistemas
Operacionais (7)
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
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
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
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.
Modelo simples de estruturação de um sistema monolítico