Prof. Adolfo Guimarães
http://sites.google.com/site/adolfoguimaraes
Universidade Federal de Sergipe
Departamento de Sistema de Informação - Itabaiana 23/10/13
Sistemas Operacionais
Revisão de OAC
Aula passada ...
Apresentação da disciplina
História dos Sistemas Operacionais
O SO e o Hardware
Os Sistemas Operacionais estão diretamente
relacionados com hardware no qual estão sendo usados.
Para funcionar, ele deve ter um grande
conhecimento sobre o hardware, pelo menos do ponto de vista do programador.
É importante conhecer os principais componentes de
hardware presentes em um sistema computacional e suas características.
Processador
A CPU (ou processador) é o cérebro do computador
Responsável por buscar uma instrução e executá-la
Ciclo básico de uma CPU:
Buscar a primeira instrução na memória
Decodificá-la para determinar seus operandos e
qual operação executar com esses.
Buscar, decodificar e executar instruções
subsequentes.
A CPU possui um conjunto específico de instruções (store, load, add, mult … )
Processador
A CPU possui um conjunto de registradores
Registradores de caráter geral
Registradores de caráter específico
PC (aponta para a próxima instrução)
IR (guarda a referência da instrução atual)
O sistema operacional deve estar 'ciente' de todos
os registradores.
Pipeline e Arquiteturas superescalares
Geram novos problemas a serem tratados pelo
Processador
As CPUs elas funcionam em dois modos:
Modo usuário → Programas Aplicativos
Modo núcleo → Sistema Operacional
Existe um registrador específico para fazer esse controle
Executando em modo núcleo, a CPU pode executar
qualquer instrução do seu conjunto de instruções e usar cada atributo do seu hardware, diferente do modo usuário.
Processador
Para obter serviços do sistema operacional um programa aplicativo deve fazer um chamada de sistema.
Chamadas de sistemas são executadas em mode
núcleo.
Essas chamadas elas podem gerar erros que devem
ser tratados pelo sistema operacional que decide o que fazer: tratar o erro, ignorar ou passar tal tarefa para o programa aplicativo.
Memória
Idealmente a memória ela devia ser bastante rápida, muito grande e barato.
A gente sabe que isto não é possível com a tecnologia atual.
Memória
Idealmente a memória ela devia ser bastante rápida, muito grande e barato.
A gente sabe que isto não é possível com a tecnologia atual.
Como resolver?
Hierarquia de Memória
Diversas memórias com diferentes tamanho,
Memória
Organizando em uma hierarquia, a gente pode listar os seguintes tipos de memórias:
Registradores (internos a CPU)
Memória Cache
Memória Principal
Memória
Memória Cache
“As palavras de memória usadas com mais frequência são mantidas na cache. Quando a CPU precisa de uma
palavra, ela examina em primeiro lugar a cache. Somente se a palavra não estiver ali é que ela recorre à memória principal. Se uma fração substancial das palavras estivar na cache, o tempo médio de acesso pode ser muito
Memória
Memória Cache
Perguntas a serem respondidas quando se trabalha com cache:
Quando usar? Onde gravar? Como substituir?
Os sistemas operacionais fazem bastante uso da ideia de caching com a finalidade de aperfeiçoar o desempenho.
Não somente relacionado a RAM, mas também em
outros aspectos como, por exemplo, na tradução de endereços web para endereços IP.
Memória
Tipo de Memória Categoria Volatilidade
Memória de Acesso (RAM)
Memória de leitura e
escrita Volátil Memória Apenas de
Leitura (ROM) Memória apenas de leitura Não Volátil ROM Programável (PROM) PROM Apagável (EPROM) Memória principalmente de leitura Memória Flash PROM Eletricamente Apagável (EEPROM) Memória Principal
Memória
Discos Magnético
O armazenamento em disco é:
Memória
Memória Virtual
Possibilita executar programas maiores que a
memória física colocando-os em disco e usando a memória principal como um tipo de cache para as partes mais executadas
Dispositivos E/S
O controlador é um chip ou um conjunto de chips em uma
placa que controla fisicamente o dispositivo
Ele recebe comandos do sistema operacional, por exemplo,
Dispositivos E/S
O programa que se comunica com o controlador é chamado
de driver do dispositivo
Cada fabricante deve fornecer um driver específico para cada
Estrutura de um SO
Um sistema operacional pode ser analisado através de diversos pontos de vista.
Através dos serviços fornecidos
Através da interface disponibilizada para usuários
e programadores
Estrutura de um SO
Componentes de um sistema operacional
Gerência de Processos
Gerência de Memória Principal
Gerência de Arquivos
Gerência de sistemas de I/O
Gerência de armazenamento secundário
Redes
Sistemas de Proteção
Gerência de Processos
Gerência de Processos
O que é um processo?
De forma geral podemos definir um processo
como um programa em execução
Exemplos:
Gerência de Processos
O que é um processo?
Um processo precisa de uma série de recursos
para ser executado
Tempo de CPU
Memória
Arquivos
Dispositivos de Entrada e Saída
Esses recursos são dados ao processo quando
Gerência de Processos
O que é um processo?
Um sistema computacional é composto pela
execução de vários processos.
Processos de Sistema Operacional
Processos de Usuário
Todos esses processos podem ser executados
Gerência de Processos
Um sistema operacional deve ser capaz de executar
as seguintes tarefas relacionadas a gerência de processos:
Criar e excluir processos de usuário e de sistemas
Suspender e retomar processos
Fornecer mecanismos para sincronização de
processos, comunicação de processos e tratamentos de deadlocks
Gerência de Memória
Uma memória nada mais é do que um repositório de
dados de acesso rápido que pode ser compartilhada com a CPU e os dispositivos de E/S.
Na tarefa de busca de instruções da CPU, estas
instruções são buscadas na memória.
Um dispositivo de E/S também vai ler e escrever
Gerência de Memória
Gerência de Memória
Gerência de Memória
O sistema operacional é responsável pelas seguintes tarefas relacionadas a gerência de memória:
Manter registro das partes da memória que estão
sendo usadas no momento e por quem
Decidir que processos deverão ser carregados na
memória quando houver espaço disponível
Alocar e desalocar espaço na memória conforme
Gerência de Arquivos
A informação é armazenada nos mais diferentes
tipos de meios físicos (fita magnética, discos secundários)
Cada meio possui características e organização
específicas
Cada meio é controlado por um dispositivo que
também possui suas características exclusivas Velocidade de acesso, capacidade, taxa de
Gerência de Arquivos
Dada tamanha diversificação, o sistema operacional fornece uma visão lógica uniforme de
armazenamento de informações.
O SO abstrai as propriedades físicas em uma
Gerência de Arquivos
Arquivo
O arquivo é uma coleção de informações
relacionadas definidas pelo seu criador.
Os arquivos representam programas (fonte e
objeto) e dados (númericos, alfabéticos, alfanuméricos)
Podem ter forma livre ou formatação rígida Sequência de bits, bytes e linhas ou registros
Gerência de Arquivos
O sistema operacional é responsável pelas
seguintes atividades em relação à gerência de arquivos:
Criar e excluir arquivos Criar e excluir diretórios
Fornecer suporte a primitivas para manipular arquivos e diretórios
Mapear arquivos no armazenamento secundário
Fazer backup de arquivos em meios de armazenamento estáveis (não-voláteis)
Gerência de Sistema de I/O
Um dos objetivos de um SO é ocultar pecularidades do
hardware
As pecularidades de I/O são ocutadas pelo subsistema de
I/O. O subsistema de I/O consiste em:
Um componente de gerência de memória que incluir buffering, armazenamento em cache e spooling
Um interface geral de driver de dispositivo
Gerência de armazenamento secundário
Os programas são armazenados na memória principal
durante a execução
O sistema de computação deve fornecer armazenamento
secundário para dar suporte à memória principal
O sistema operacional é responsável pelas seguintes
atividades em relação à gerência de disco: Gerência de espaço livre
Alocação de espaço (armazenamento) Escalonamento de disco
Redes
Em um sistema distribuído temos uma coleção de
processadores com sua própria memória local e os
processadores se comunicam entre si através de várias linhas de comunicação
O processadores no sistema são conectados através de uma
rede de comunicação
O projeto de rede deve considerar as estratégias de
comunicação e roteamento de mensagens, e os problemas de disputa e segurança
Os sistemas operacionais generalizam o acesso à rede como
uma forma de acesso a arquivos, com detalhes da rede
Sistema de proteção
Se um sistema de computação tiver vários usuários e permitir
a execução concorrente de múltiplos processos, esses processos deverão ser protegidos das atividades uns dos outros.
A proteção é qualquer mecanismo para controlar o acesso
de programas, processos ou usuários aos recursos definidos por um sistema de computação.
Sistema interpretador de comandos
Um dos programas de sistema mais importantes para um
sistema operacional é o interpretador de comandos, que é a interface entre o usuário e o sistema operacional
Muitos comandos são passados ao SO através de instruções de controle (shell)
As instruções de comando lidam com a criação e gerência de
processos, tratamentos de I/O, gerência de armazenamentos secudário, gerência de memória principal, acesso a sistema de arquivos, proteção e redes.
Serviços de um SO
Um sistema operacional fornece um ambiente para execução
de programas. Fornece certos serviços a programas e aos usuários desses programas.
Execução de programa Operações de I/O
Manipulação do sistema de arquivos Comunicações
Detecção de erros
Alocação de recursos Contabilização
46