Introdução aos Sistemas Operacionais

Propaganda
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
Download