Buscar

Aula03_Estruturas_do_SO

Prévia do material em texto

Sistemas Operacionais 
Aula 03 – Estruturas dos Sistemas Operacionais 
Universidade Federal da Grande Dourados 
Faculdade de Ciências Exatas e de Tecnologias 
Curso de Bacharelado em Sistemas de Informação 
Profa. Claudia Regina Tinós Peviani 
claudiapeviani@ufgd.edu.br 
 
3. Estruturas de um SO 
 Um SO oferece o ambiente dentro do qual os 
programas são executados. 
 Podemos ver um SO de diversos ponto de vista: 
 Serviços que oferece. 
 Interface disponibilizada para usuários e 
programadores. 
 Componentes do SO e suas interligações. 
3.1 Componentes de um Sistema 
 Um sistema grande e complexo como um SO só 
pode ser desenvolvido se for subdividido em partes 
menores e mais simples. 
 Muitos sistemas modernos oferecem suporte aos 
seguintes tipos de componentes: 
3.1 Componentes de um Sistema 
 Gerência de Processos 
 Gerência da Memória Principal 
 Gerência de Arquivos 
 Gerência do Sistema de E/S 
 Gerência do Armazenamento Secundário 
 Redes 
 Sistema de Proteção 
 Sistema Interpretador de Comandos 
3.1.1 Gerência de Processos 
 Conceito geral de processo: é um programa em 
execução. 
 Um programa de processamento de textos executado 
por um usuário em um PC é um processo. 
 Uma tarefa do sistema, como o envio de saída para uma 
impressora, também é um processo. 
3.1.1 Gerência de Processos 
 Um processo precisa de certos recursos, como: 
tempo de CPU, memória, arquivos e dispositivos de 
E/S, para realizar suas tarefas. 
 Esses recursos são dados ao processo quando ele é 
criado ou são alocados enquanto ele está sendo 
executado. 
3.1.1 Gerência de Processos 
 Um processo é a unidade de trabalho em um 
sistema. 
 Tal sistema consiste em uma coleção de processos, 
sendo alguns do SO e os demais pertencentes aos 
usuários. 
3.1.1 Gerência de Processos 
 O SO é responsável pelas seguintes atividades em 
relação ao gerência de processos: 
 Criar e remover os processos de usuário e de sistema. 
 Suspender e retomar os processos. 
 Prover mecanismos para o sincronismo de processos. 
 Prover mecanismos para a comunicação entre 
processos. 
 Prover mecanismos para o tratamento de deadlock. 
3.1.2 Gerência da Memória Principal 
 A memória principal é fundamental para a 
operação de um computador moderno. 
 Para que um programa seja executado, ele precisa 
ser mapeado para endereços absolutos e carregado 
na memória. 
3.1.2 Gerência da Memória Principal 
 Para melhorar a utilização da CPU e a velocidade 
da resposta do computador aos seus usuários, 
temos de manter vários programas na memória, 
criando a necessidade de um gerenciamento de 
memória. 
 O SO é responsável pelas seguintes atividades em 
relação ao gerenciamento da memória: 
 Registrar quais partes da memória estão sendo usadas 
atualmente e por quem. 
 Decidir quais processos devem ser carregados para a 
memória quando o espaço de memória se torna 
disponível. 
 Alocar e desalocar espaço de memória conforme 
necessidade. 
3.1.2 Gerência da Memória Principal 
3.1.3 Gerência de Arquivos 
 A gerência de arquivos é um dos componentes 
mais visíveis de um SO. 
 Os computadores podem armazenar informações 
em vários tipos diferentes de meios físicos. Cada 
um desses meios possui suas próprias 
características e organização física. Cada um é 
controlado por um dispositivo que possui 
características próprias (exclusivas). 
3.1.3 Gerência de Arquivos 
 O SO mapeia arquivos no meio físico e acessa 
esses arquivos por meio de dispositivos de 
armazenamento. 
 O arquivo é uma coleção de informações, 
relacionadas entre si, definidas na sua criação. 
 O SO é responsável pelas seguintes atividades 
relacionadas ao gerenciamento de arquivos: 
 Criação e remoção de arquivos. 
 Criação e remoção de diretórios. 
 Suporte a primitivas para manipulação de arquivos e 
diretórios. 
 Mapeamento de arquivos em armazenamento 
secundário. 
 Backup (cópia reserva) de arquivos em meios de 
armazenamento não-volátil. 
3.1.3 Gerência de Arquivos 
3.1.4 Gerência do Sistema de E/S 
 Uma das finalidades de um SO é ocultar do usuário 
as peculiaridades de dispositivos de hardware. 
 Somente o driver de dispositivo conhece as 
peculiaridades do dispositivo específico ao qual está 
atribuído. 
3.1.4 Gerência do Sistemas de E/S 
 O Sistema de E/S é constituído de: 
 Um componente de gerenciamento de memória, que 
inclui o uso de buffers, caches e spools. 
 Uma interface genérica controladora de dispositivos. 
 Drivers para dispositivos de hardware específicos. 
3.1.5 Gerência de Armazenamento 
Secundário 
 A finalidade principal de um computador é 
executar programas. 
 Esses programas precisam estar na memória 
principal durante sua execução. 
 Como a memória principal é muito pequena e 
volátil, é necessário o auxílio do armazenamento 
secundário para apoiar a memória principal. 
3.1.5 Gerência de Armazenamento 
Secundário 
 O SO é responsável pelas seguintes atividades em 
relação ao gerenciamento de disco: 
 Gerenciamento do espaço livre. 
 Alocação do armazenamento. 
 Escalonamento do disco. 
3.1.6 Redes 
 Um sistema distribuído é uma coleção de 
processadores que não compartilham memória, 
dispositivos periféricos ou relógio. 
 Pelo contrário, cada processador possui sua própria 
memória local e relógio, e os processadores se 
comunicam um com o outro por meio de diversas 
linhas de comunicação. 
3.1.6 Redes 
 Um sistema distribuído coleta sistemas fisicamente 
dispersos, talvez heterogêneos, em um sistema 
coerente, oferecendo ao usuário o acesso aos 
diversos recursos mantidos pelo sistema. 
 O compartilhamento de recursos proporciona um 
aumento na velocidade de processamento, maior 
disponibilidade dos dados e maior confiabilidade do 
sistema. 
3.1.7 Sistema de Proteção 
 Proteção é qualquer mecanismo que controle o 
acesso dos programas, processos ou usuários aos 
recursos de um sistema computacional. 
 Utilizando um mecanismo de proteção aumenta a 
confiabilidade de um sistema de detecção de erros . 
3.1.8 Sistema Interpretador de Comandos 
 Um dos programas do sistema mais importantes 
para o SO é o interpretador de comandos, que é a 
interface entre o usuário e o sistema operacional. 
 Alguns SOs incluem o interpretador de comandos 
no kernel. 
3.1.8 Sistema Interpretador de Comandos 
 Muitos comandos são fornecidos ao SO pelas 
instruções de controle. Quando uma nova tarefa é 
iniciada, um programa que lê e interpreta 
instruções de controle é executado 
automaticamente. 
 Esse programa às vezes é chamado de 
Interpretador de Cartão de controle ou shell. Sua 
função é obter a próxima instrução de comando e 
executá-la. 
3.2 Serviços de SO 
 Um SO oferece um ambiente para execução de 
programas. 
 Ele oferece certos serviços aos programas e aos 
usuários desses programas. 
3.2 Serviços de SO 
 Um conjunto de serviços do SO oferece funções 
úteis ao usuário: 
 Execução de Programa 
 Operações de E/S 
 Manipulação do sistema de arquivos 
 Comunicações 
 Detecção de erro 
 Alocação de recursos 
 Contabilidade 
 Proteção e segurança 
 Execução de programa 
 capacidade do sistema de carregar um programa na 
memória e executá-lo. 
 Operações de E/S 
 como os programas do usuário não podem executar 
operações de E/S diretamente, o sistema operacional 
precisa prover meios para realizar a E/S.3.2 Serviços de SO 
 Manipulação do sistema de arquivos 
 capacidade do programa para ler, gravar, criar e excluir 
arquivos. 
 Comunicações 
 troca de informações entre processos sendo 
executados no mesmo computador ou em sistemas 
diferentes ligados por uma rede. Implementadas através 
de memória compartilhada ou pela troca de 
mensagens. 
 
3.2 Serviços de SO 
 Detecção de erro 
 Os erros podem ocorrer na CPU e no hardware da 
memória, nos dispositivos de E/S e nos programas do 
usuário. Para cada tipo de erro, o SO deve tomar a 
medida apropriada para garantir a computação correta 
e coerente. 
 Alocação de recursos 
 Os recursos são alocados a diversos usuários ou a 
múltiplas tarefas sendo executadas ao mesmo tempo. 
 
3.2 Serviços de SO 
 Contabilidade 
 controla e registra que usuários usam quanto e que 
tipo de recursos do computador para contabilizar 
cobrança ou para acumular estatísticas de uso. 
 Proteção e segurança 
 A proteção envolve a garantia de controle de todo 
acesso aos recursos do sistema. 
 A segurança do sistema contra o acesso de pessoas e/ 
ou dispositivos de E/S externos. 
3.2 Serviços de SO 
3.3 Chamadas de Sistema 
 As chamadas de sistema (interrupção de 
software) oferecem a interface entre um processo 
e o SO. 
 Determinados sistemas permitem que as chamadas 
de sistema sejam feitas diretamente por um 
programa em linguagem de mais alto nível, quando 
as chamadas têm a forma de chamada de função ou 
sub-rotina predefinidas. 
3.3 Chamadas de Sistema 
 Podem ser agrupadas em 5 categorias principais: 
 Controle de Processos; 
 Manipulação de Arquivos; 
 Manipulação de Dispositivos; 
 Manutenção de informações; 
 Comunicações. 
3.3.1 Controle de Processos 
 encerrar, abortar 
 carregar, executar 
 criar processos, terminar processos 
 obter atributos do processo, definir atributos do 
processo 
 esperar por tempo 
 esperar evento, sinalizar evento 
 alocar e liberar memória 
3.3.2 Gerência de Arquivos 
 Criar arquivo, excluir arquivos 
 abrir, fechar 
 ler, escrever, reposicionar 
 obter atributos do arquivo, definir atributos do 
arquivo. 
3.3.3 Gerência de Dispositivos 
 solicitar dispositivo, liberar dispositivo 
 ler, escrever, reposicionar 
 obter atributos do dispositivo, definir atributos do 
dispositivo 
 anexar ou desconectar dispositivos logicamente 
3.3.4 Manutenção de Informações 
 Obter hora ou data, definir hora ou data 
 obter dados do sistema, definir dados do sistema 
 obter atributos do processos, arquivos ou 
dispositivos 
 definir atributos do processos, arquivos ou 
dispositivos 
3.3.5 Comunicação 
 Criar, excluir conexão de comunicação 
 enviar, receber mensagens 
 transferir informações de status 
 anexar ou desconectar dispositivos remotos 
M 
M 
M 
Processo A 
Processo B 
Núcleo 
2 
Processo A 
Processo B 
Núcleo 
2 
Memória compartilhada 
1 
1 
Troca de Mensagens Memória Compartilhada 
Modelos de Comunicação 
3.4 Programas do Sistema 
 Os programas do sistemas fornecem um ambiente 
conveniente para o desenvolvimento e a execução 
de programas. 
 Alguns deles são simplesmente interfaces do 
usuário para chamadas de sistema e outros são 
mais complexos. 
3.4 Programas do Sistema 
 São divididos nas seguintes categorias: 
 Gerenciamento de Arquivos: (Criar, excluir, copiar, 
renomear e manipulam arquivos e diretórios). 
 Informações de Status: (Como: hora, data, quantidade 
disponível de memória e disco). 
 Modificação de Arquivos: (Processadores de texto 
podem alterar o conteúdo de um arquivo armazenado 
em disco). 
 Suporte para Linguagem de Programação: 
(compiladores, montadores e interpretadores). 
3.4 Programas do Sistema 
 Carga e Execução de Programas: (Após a compilação 
de um programa é necessário ser carregado na 
memória, então temos os utilitários de carga absoluto, 
de carga relocável, linkeditores e depuradores); 
 Comunicações: (conexão virtual entre processos); 
 Programas Aplicativos: (Navegação na Internet, 
Processadores de Textos, Planilhas Eletrônicas, Sistemas 
de Banco de Dados, etc); 
3.5 Estrutura do Sistema 
 Um sistema tão grande e complexo como o SO 
deve ser cuidadosamente construído para que 
funcione bem e possa ser facilmente modificado. 
 Uma técnica comum é particionar a tarefa em 
componentes menores. 
 Vamos ver como esses componentes são 
interconectados e ligados ao kernel. 
3.5.1 Estrutura Simples 
 Existem vários sistemas comerciais que não 
possuem uma estrutura bem definida. 
 Esses SOs começaram como sistemas pequenos, 
simples e limitados, e depois cresceram além do 
seu escopo original. 
 Exemplos: 
 MS-DOS e o UNIX originais. 
3.5.2 Enfoque em Camadas 
 Um sistema pode ser criado modular de muitas 
maneiras. Um método é o enfoque em camadas, no 
qual o SO é dividido em uma série de camadas 
(níveis). 
 A camada inferior (camada 0) é o hardware e a 
mais alta (camada N) é a da interface com o 
usuário. 
 
3.5.2 Enfoque em Camadas 
 A vantagem principal do enfoque em camadas é a 
modularidade. As camadas são selecionadas de 
modo que cada uma utilize funções (operações) e 
serviços apenas de camadas de nível mais baixo. 
 A decomposição simplifica o projeto e a 
implementação do SO. 
3.5.2 Enfoque em Camadas 
 Maior dificuldade é planejar/definir cuidadosamente 
as diversas camadas. 
 As implementações em camadas tendem a ser 
menos eficientes. 
 Essas limitações criaram uma certa resistência 
contra o uso de divisão em camadas no últimos 
anos. 
3.5.3 Microkernels 
 Conforme o UNIX se expandiu, o kernel se tornou 
grande e difícil de gerenciar. 
 Em meados da década de 1980, pesquisadores 
desenvolveram um sistema operacional chamado 
Mach, que modularizou o kernel, usando a técnica 
de microkernel. 
3.5.3 Microkernels 
 Esse método estrutura o SO removendo todos os 
componentes não-essenciais do kernel e 
implementando-os como programas em nível de 
sistema de usuário. 
 O resultado é um kernel menor. 
 Em geral, os microkernels normalmente oferecem 
gerenciamento mínimo de processo e memória, 
além de uma facilidade de comunicação. 
3.5.3 Microkernels 
 A principal função do microkernel é fornecer um 
recurso de comunicação entre o programa cliente 
e os vários serviços que também estão em 
execução no espaço de usuário. 
 Os benefícios da abordagem do microkernel 
incluem a facilidade de expandir o sistema 
operacional. 
3.5.4 Módulos 
 A técnica de programação orientada a objeto é 
usada para criar um kernel modular. 
 O kernel possui um conjunto de componentes 
básicos e vincula dinamicamente serviços adicionais, 
seja durante o processo de boot ou durante a 
execução. 
3.6 Máquinas Virtuais 
 Normalmente, um processo possui recursos 
adicionais, como chamadas de sistema e um sistema 
de arquivos, que não são fornecidos pelo hardware 
puro. 
 A técnica de máquina virtual não oferece tal 
funcionalidade adicional, mas oferece uma interface 
idêntica à do hardware básico. 
 Cada processo recebe uma cópia (virtual) do 
computador básico. 
processos 
hardware 
kernel VM1 
Implementação de máquina 
virtual 
kernel kernel kernel 
processos 
processos 
processos 
Máquina não-virtual 
Máquina virtual 
VM2 VM3 
hardware 
3.6.1 Implementação 
 É difícil a implementação, pois é necessário que amáquina virtual seja exatamente uma cópia da real 
(modo usuário e monitor). 
 O software da máquina virtual pode executar no 
modo monitor, pois é o SO. 
 A máquina virtual propriamente dita só pode 
executar no modo usuário. 
3.6.1 Implementação 
 É preciso ter o modo usuário virtual e um modo 
monitor virtual, ambos executando em um modo 
usuário na máquina real. 
3.7 Java 
 Java é considerada uma tecnologia, pois ela fornece 
mais do que uma linguagem de programação 
convencional. 
 A tecnologia Java consiste em três componentes 
essenciais: 
 Especificação da linguagem de programação. 
 Interface de programação de aplicações (API). 
 Especificação de máquina virtual. 
 
3.8 Projeto e implementação do 
sistema 
 Perguntas????? 
 Quais problemas são encarados quando se projeta e 
implementa um sistema operacional? 
 Será que existe soluções para todos os problemas de 
projeto? 
 
3.8.1 Objetivos do Projeto 
 Primeiro problema no projeto de um sistema é definir 
objetivos e especificações. 
 No nível mais alto: 
 Escolha do Hardware. 
 Tipo de Sistemas (Batch, Tempo Compartilhado, 
Monousuário, Multiusuário, etc..). 
 
 
3.8.1 Objetivos do Projeto 
 Há requisitos que podem ser muito mais difíceis de 
implementar. 
 Os requisitos podem ser divididos em dois grupos 
básicos: 
 Objetivos do Usuário. 
 Objetivos do Sistema. 
3.8.1 Objetivos do Projeto 
 Requisitos do Usuário ele deve ser conveniente, 
fácil de aprender e usar, confiável, seguro e veloz. 
 Requisitos do Sistema, ou seja de quem vai projetar, 
criar, operar o sistema. Ele deve ser fácil de 
projetar, implementar e modificar; deve ser flexível, 
confiável, livre de erros e eficiente. 
3.8.2 - Mecanismos e Políticas 
 Um princípio importante é a separação entre 
política e mecanismo. 
 Mecanismos determinam como fazer alguma 
coisa. 
 Políticas determinam o que será feito. 
 Exemplo: Timer é um mecanismo para garantir a 
proteção da CPU, mas é a política que vai decidir 
quanto tempo o timer deverá ser configurado para 
determinado usuário. 
3.8.2 - Mecanismos e Políticas 
 Problema - caso haja uma mudança na política, será 
necessário mudar o mecanismo empregado. 
 Solução - Mecanismo mais geral seria mais 
adequado, pois numa mudança de política 
requereria a redefinição de apenas alguns 
parâmetros. 
 
3.8.3 - Implementação 
 Após o projeto de um SO estar definido todos 
seus requisitos, ele precisa ser implementado. 
 Eram escritos em linguagem de montagem – 
assembly. 
 Atualmente são escritos em linguagens de mais alto 
nível, como C ou C++. 
3.8.3 - Implementação 
 Vantagens - pode ser escrito mais rápido, mais 
compacto, mais fácil de entender e depurar. 
 Desvantagens - diminuição na velocidade de 
processamento e um aumento no espaço de 
armazenamento necessário. 
Referências 
 Capítulo 3 da referência abaixo: 
 SILBERSCHATZ, ABRAHAM; GAGNE, GREG; GALVIN, PETER 
BAES. Sistemas operacionais: com java. . Rio de Janeiro: Elsevier, 
2004.

Continue navegando