Upload
internet
View
104
Download
1
Embed Size (px)
Citation preview
1
O que é Sistema Operacional?
2
Introdução
Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas executadas pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias, e dispositivos de entrada e saída.
3
Introdução
Sem o sistema operacional, um usuário para interagir com o computador deveria conhecer profundamente diversos detalhes sobre hardware do equipamento, o que tornaria seu trabalho lento e com grandes possibilidades de erros. O sistema operacional tem por objetivo funcionar como uma interface entre o usuário e o computador, tornando sai utilização mais simples, rápida e segura.
4
Introdução
Definição de SO: é um programa cuja tarefa principal é controlar o funcionamento do computador, facilitando seu uso e gerenciando seus recursos
Funções: Facilitar o acesso aos recursos do sistema Gerenciar o compartilhamento dos recursos do
sistema
Exemplos: Windows, UNIX, OS/2
5
Onde está o SO?
6
Sistema computacional multicamada
Dispositivos Físicos
Sistema Operacional
Linguagem de Máquina
MicroarquiteturaHardware
Aplicações
Organização e Arquitetura de
Computadores I e II
Estamos Aqui
Linguagens de
Programação
Programas do sistema
Programas de aplicação
Compiladores, editores, shell
7
SO
Parte do software que executa no modo supervisor– Demais programas executam no modo usuário
Funciona como uma máquina estendida ou máquina virtual mais fácil de programar que o hardware– Fornece serviços que os programas podem usar
8
SO
Funciona como um gerente de recursos– Manter o controle sobre quem está usando qual
recurso– Gerenciamento no tempo X espaço
9
Histórico dos S. Operacionais
Primeira Geração (1945-1955): Válvulas e Painéis Surgimento dos primeiros computadores digitais Surgimento do modelo de von Neumann Máquinas enormes, com milhares de válvulas Não havia Linguagens de Programação Não havia Sistema Operacional Utilizado para cálculos matemáticos Uma mesma equipe projetava, construía, programava, operava
e realizava manutenção de cada máquina
10
Histórico dos S. Operacionais
Arquitetura de von Neumann:
Unidade de Controle
Unidade Aritmética e
Lógica
Armazenamento
UCP
Dispositivo de Entrada
Dispositivo de Saída
11
Histórico dos S. Operacionais
– Segunda Geração (1955-1965): Transistores e Sistemas Batch
Aumento de velocidade de processamento, graças à troca de válvulas por transistores (semicondutores)
Início do domínio IBM (mainframes) Aparecimento de Linguagens de Programação como Assembly e
FORTRAN Uso de cartões perfurados Processamento de Jobs era feito em Lote (batch) Surgimento de Sistemas Operacionais, como o FMS (Fortran
Monitor System)
12
Histórico dos S. Operacionais
– Terceira Geração (1965-1980):CIs e MultiprogramaçãoIBM lança a idéia de uma família de computadores
compatíveis (série 360)Surgimento de SOs mais voltados ao usuário (como o OS/360
da IBM)Criação da técnica de multiprogramaçãoCriação da técnica de spooling (Simultaneous Peripheral
Operation On Line)Através da criação do terminal de vídeo e teclado foi possível
a interação on-lineSurgimento dos sistemas de Compartilhamento de tempo
(Timesharing)
13
Histórico dos S. Operacionais
– Terceira Geração (1965-1980): CIs e Multiprogramação
Minicomputadores com 4K de memóriaCriação do UNIX por Ken Thompson, do Bell Labs:
um sistema multiusuário, multiprogramado e extremamente sofisticado para sua época
14
Histórico dos S. Operacionais
– Quarta Geração (A partir de 1980): Computadores Pessoais
Desenvolvimento da tecnologia LSI (Large Scale Integration)– milhares de transistores encapsulados em um chip de 1cm2
Surgimento dos computadores pessoais (PC) Sistemas Operacionais e aplicativos voltados ao usuário final
(user-friendly) GUI Domínio de PCs baseados em processadores INTEL (8088,
80286, 80386, 80486, Pentium, ...) Surgimento dos sistemas operacionais de rede e sistemas
distribuídos
15
Tipos de Sistemas Operacionais
Sistemas Operacionais
Sistemas Multiprogramáveis
Sistemas Monoprogramáveis
Sistemas com Múltiplos
Processadores
16
Tipos de Sistemas Operacionais
Sistemas Monoprogramáveis/Monotarefas
Esse sistema foi projetado para gerenciar a execução de um único programa (job) por vez
Qualquer outro programa para ser executado, deve aguardar o término do programa corrente
Nesse sistema o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa
17
Tipos de Sistemas Operacionais
Sistemas Multiprogramáveis/Multitarefas
Os sistemas multiprogramáveis permitem que vários programas possam usar os diversos recursos existentes
De acordo com o número de usuários que interagem com o sistema, podem ser:
Monousuário
Multiusuário
18
Tipos de Sistemas Operacionais
Sistemas Multiprogramáveis/Multitarefas
Os sistemas multiprogramáveis também podem ser classificados pela forma com que suas aplicações são gerenciadas Sistemas
Multiprogramáveis
Sistemas de Tempo Compartilhado
Sistemas de Tempo Real
Sistemas em Batch
19
Tipos de Sistemas Operacionais
Sistemas Batch Caracterizam-se por terem seus programas
armazenados em disco ou fita, onde esperam para ser executados seqüencialmente
Geralmente, esses programas não exigem interação com os usuários, lendo e gravando dados em discos ou fitas
20
Tipos de Sistemas Operacionais
Sistemas de Tempo Compartilhado Permitem a interação dos usuários com o
sistema, através de terminais que incluem vídeo, teclado e mouse
Para cada usuário, o SO aloca uma fatia de tempo do processador
Uso cíclico do processador
Provê maior interatividade
21
Tipos de Sistemas Operacionais
Sistemas de Tempo Real O tempo é um parâmetro fundamental
Os tempos de resposta estão dentro de limites rígidos, que devem ser obedecidos
Alocação do processador leva em conta restrições de tempo
Sistemas TR críticos X não-críticos
22
Tipos de Sistemas Operacionais
Sistemas Operacionais
Sistemas Multiprogramáveis
Sistemas Monoprogramáveis
Sistemas com Múltiplos
Processadores
23
Tipos de Sistemas Operacionais
Sistemas com Múltiplos Processadores Caracterizam-se por possuir duas ou mais CPU
´s interligadas, trabalhando em conjunto Um fator importante nesses sistemas é a forma
de comunicação entre as UCP´s e o grau de compartilhamento da memória
24
Tipos de Sistemas Operacionais
Multicomputadores (memória local privada)
Multiprocessadores (memória compartilhada)
Sistemas com Múltiplos
Processadores
Sistemas Simétricos
Sistemas Assimétricos
S. O. de Rede
S. O. Distribuído
25
Conceitos Básicos de SO
Esse conjunto de rotinas é chamado de núcleo do sistema ou kernel
Esse conjunto de rotinas é chamado de núcleo do sistema ou kernel
O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio sistema
O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio sistema
26
Conceitos Básicos de S.O.
As principais funções do núcleo são:– tratamento de interrupções– criação e eliminação de processos– sincronização e comunicação entre processos– gerência de memória– gerência do sistema de arquivos– gerência de E/S
27
Conceitos Básicos de S.O.
Solicitação de serviços ao SO– Chamadas ao sistema
Chamadas ao sistema são a porta de entrada para ter acesso ao núcleo do sistema operacional
Aplicação Chamadas ao Sistema
Núcleo Hardware
28
Conceitos Básicos de S.O.
Chamadas procedimentos de biblioteca que o programa pode chamar– Transferência de controle para o SO através de um trap– Alternância para o modo supervisor– SO checa parâmetros para identificar o serviço
requisitado– SO executa procedimento para atender a solicitação– SO informa resultado da operação realizada,
devolvendo o controle ao programa do usuário
29
Exemplo de uma Chamada ao Sistema
cont=read(arq,buffer, nbytes)
Despache Espaço do núcleo (Sistema Operacional)
Espaço do usuário
Memória principal TRAP
Tratador da chamada ao
sistema
read da biblioteca
30
Conceitos Básicos de S.O.
As chamadas ao sistema podem ser divididas em grupos de função:
Gerência de processos– fork, kill, CreateProcess
Gerência de arquivos– open, read, write, close, mkdir, chmod, CreateFile
31
Estrutura de Sistema Operacionais
Estrutura do SO: É a maneira como o código do sistema é organizado e como seus diversos componentes estão inter-relacionados
Existem basicamente quatro abordagens:– Sistemas Monolíticos– Sistemas em Camada– Máquinas Virtuais– Sistemas Cliente-Servidor
32
Sistemas Monolíticos– Não há estruturação visível– SO é escrito como um conjunto de procedimentos, cada
um dos quais podendo chamar qualquer dos demais sempre que necessário
– Cada procedimento é visível a todos os outros
Estrutura de Sistema Operacionais
33
Sistemas em Camadas– Hierarquia de camadas– A camada superior usa serviços da camada inferior– A maioria dos SO modernos é baseada nesta estrutura:
UNIX, OS/2, MS-Windows, entre outros
Estrutura de Sistema Operacionais
34
SO em Camadas
Programas de UsuárioProgramas de Usuário
Comunicação operador-processo
Comunicação operador-processo
Gerência de memóriaGerência de memória
Alocação do processador e implementação da multiprogramação
Alocação do processador e implementação da multiprogramação
Gerência dos Dispositivos de Entrada/Saída
Gerência dos Dispositivos de Entrada/Saída
Camada 4
Camada 3
Camada 2
Camada 1
Camada 0
Responsável pela alocação
de espaço
Administra a comunicação
entre cada processo
Administrar os dispositivos de
E/S
35
Máquinas Virtuais– Várias cópias de um único hardware– Requisições feitas à máquina virtual são mapeadas
para o hardware real
Estrutura de Sistema Operacionais
Hardware
SO1
Monitor de máquina virtual
SO1 SO2
Cópias Virtuais
36
Sistemas Cliente-Servidor– A tendência é tornar o núcleo do sistema operacional o
menor e mais simples possível– Serviços do SO são implementados como processos de
usuário– Sempre que uma aplicação deseja algum serviço ela
solicita ao processo responsável– A aplicação que solicita o serviço é chamada de
cliente, enquanto o processo que responde à aplicação é chamado de servidor
Estrutura de Sistema Operacionais
37
Estrutura de Sistemas Operacionais
Sistemas Cliente-Servidor– Função do núcleo: tratar da comunicação entre
clientes e servidoresApenas o núcleo executa no modo supervisor
– Adaptabilidade ao uso em sistemas distribuídos
38
SO Cliente Servidor
Servidor de arquivo
Núcleo
Hardware
Servidor de
processo
Servidor de
memória Servidor de rede
cliente
Modo usuário
Modo Kernel