UFRPE/EADLicenciatura em Computação-6P
2011.1Tutor: Rodrigo Lins Rodrigues
Componentes doSistema operacional
Aula 2
2
Agenda
Introdução;
Modelos de processo;
Algoritmo de escalonamento;
Sistemas de arquivos;
Thread
Tipos de sistemas;
Introdução
Sistema operacional Software que gerencia todos os recursos da
máquina Responsável por criar uma interface entre os seus
usuários e o hardware.
Para que essas funções sejam desempenhadas,
são necessários um conjunto de componentes padrão, que estão presentes em todos os sistemas operacionais.
Modelo de Processos
Processo Programa em execução;
Contém o programa executável, os dados do programa e a sua pilha de execução.
Cada processo possui: Espaço de endereçamento (localização) em
memória (principal)
Modelo de Processos
O conceito de processo foi criado devido à multiprogramação Em SOs monoprogramados a memória é
dividida entre SO e único programa em execução
Com multiprogramação a memória é dividida entre SO e
diversos processos
Algoritmo de Escalonamento
Algoritmo (componente do SO) que controla como os processos ocuparão a CPU em sistemas de tempo compartilhado.
Decide qual o próximo processo a ocupar a CPU;
Decide a quantidade de tempo em que processo ocupaCPU;
Estados do Processo
(Novo) Programa escolhido para ser executado
(Pronto) Preparado para executar, aguardando a liberação da CPU
(Em execução) Em execução, utilizando a CPU
(Suspenso) Em suspensão, aguardando operação de I/O
(Entrada/Saída) (concluído)
Processo finalizado. Será destruído pelo SO e recursos liberados.
Transição entre Estados
“Em execução” para “ Em espera”: Ocorre quando um processo descobre que não pode continuar pois está
esperando por um evento.
“Em execução” para “ Pronto”: Ocorre quando o escalonador decide que o processo em execução atuou
por tempo suficiente e permite que outro processo em execução tenha algum tempo da CPU.
“Pronto” para “Em execução”: Ocorre quando todos os outros processos tiveram sua fatia justa e é hora
daquele que estava pronto voltar para a CPU para executar novamente.
Em espera” para “Pronto”: Ocorre quando acontece o evento externo pelo qual o processo está
esperando acontecer. Se nenhum outro processo está executando nesse instante, a transição será ativada imediatamente e o processo começará a executar..
Eventos de processos
Criam processos Início do sistema; Chamada de Sistema de criação de processo por
um processo em execução; Requisição do usuário para criação de um novo
processo;
Finalizam processos Saída voluntária; Erro fatal; Cancelamento por outro processo, etc.
Comunicação Interprocessos
Pode ser feita através de troca de mensagens ou compartilhamento de recursos;
Pipe tipo de pseudo-arquivo que pode ser utilizado
para conectar dois processos
Thread (Linha de Execução)
Tradicionalmente um processo possui uma única linha de execução;
Sistemas modernos possuem suporte a múltiplas linhas de execução em um único processo;
As threads também podem assumir os mesmos estados de um processo;
Cada thread possui contador de programa, registradores e o seu próprio estado.
Thread (Linha de Execução)
Sistema de Arquivos
SO utiliza uma unidade de armazenamento lógico de dados denominado arquivo;
Sistema de arquivos: Estrutura criada com o objetivo de permitir
operações de criação, acesso e modificação a dados organizados na forma de arquivos.
Estrutura do SO
Sistemas Monolíticos;
Sistemas em Camadas;
Máquinas Virtuais;
Modelo Cliente-Servidor;
Modelo MicroKernel.
Sistemas Monolíticos
Estrutura mais comum e antiga possuindo vários módulos com diferentes funções trabalhando em conjunto;
S.O é escrito como uma coleção de procedimentos, que podem chamar qualquer um dos outros procedimentos sempre que for necessário;
A principal vantagem dessa arquitetura é a eficiência, uma vez que existe comunicação direta entre os componentes do S.O.
Sistemas em Camadas
Organizado como uma hierarquia de níveis e cada um construído sobre o nível imediatamente abaixo.
Sistemas em Camadas
As principais vantagens dessa estrutura de S.O são:
Modularidade SO realiza suas operações de forma modular
Abstração Uma camada não precisa conhecer como os
serviços da camada inferior foram construídos, bastando apenas conhecer a sua interface.
Máquinas Virtuais
São compostos por um monitor de máquina virtual que executa no hardware básico e faz a multiprogramação, oferecendo várias máquinas virtuais;
Dentre as principais vantagens: A proteção aos recursos do sistema, não havendo,
portanto, problemas de segurança, pois cada máquina virtual é completamente isolada das outras.
Exemplos: Máquina virtual JAVA e VirtualBox
Modelo Cliente-Servidor
Tendência em mover código para camadas mais altas, removendo o máximo de funções do S.O, objetivando a minimização do seu núcleo (kernel);
Um processo é considerado cliente, se ele requisita alguma coisa a outro processo. Um processo é servidor quando ele
disponibiliza algum serviço a outros processos. Modelo é completamente adaptável ao uso em
sistemas distribuídos.
Sistema de Microkernel
O máximo de código do kernel é movido para o espaço do “usuário” e a comunicação acontece entre os módulos do usuário através da troca de mensagens;
Serviços do S.O, tais como, gerência de arquivos, gerência de memória e escalonamento são disponibilizados como processos do S.O, a nível de usuário
Top Related