Please enable JavaScript.
Coggle requires JavaScript to display documents.
Estrutura do Sistema Operacional, Lucas Codeco, Mapa Mental 2, SO 2023/1 -…
Estrutura do Sistema Operacional
Serviço do SO
Interface com o usuário (UI)
linha de comando (CLI)
interface gráfica com o usuário
(GUI)
batch
Execução do Programa
Operação de E/S
Manipulação do Sistem de Arquivo
Comunicações
Passagem de mensagens
Memoria Compartilhada
Detecção de erro
Alocação de recursos
Contabilidade
Proteção e segurança
Programas do Sistema / Utilitarios do Sistema
Manipulação de arquivo
Informação de status
Modificação de arquivo
Suporte à linguagem de programação
Carga e execução do programa
Comunicações
oferecem um ambiente conveniente para desenvolvimento e execução do programa
A visão do SO para usuários é definida por programas do sistema, e não pelas chamadas
Aplicações Rodam em Multiplos SO's
Escrever a aplicação numa linguagem cujas
aplicações rodam sobre uma máquina virtual
(Java e C# são exemplos).
Escrever o programa em uma linguagem interpretada cujo interpretador estaja disponivel em multiplas SO's
Escrever a aplicação usando uma linguagem ou API padrão que possua compiladores e bibliotecas no sistema onde se deseja rodar
Projeto e implementaão do sistema
Política: O que será feito?
Mecanismo: Como fazer isso?
API / System Calls
Portabilidade
Simplificação
Tipos de Chamadas de Sistema
Controle de processos
Gerenciamento de arquivos
Gerenciamento de dispositivos
Manutenção de informações
Comunicações
Interface entre o Usuário e o
Sistema Operacional
Iterface gráfica de usuário (GUI)
Interface de linha de comando/
interpretador de comandos (CLI)
Shell: software que provê uma interface para usuários acessarem os serviços do kernel.
Estrutura
Enfoque em Camadas
SO é dividido em varias camadas (niveis)
Modularidade, Cada camada usa as funções da camada inferior
Baixa eficiencia
bem sucedidos em redes de computadores e aplicações web
Microkernels
Princípio: Move-se o máximo do kernel para o espaço do“usuário”
kernel mantem apenas os componentes essenciais.
Mais fácil de estender um microkernel
Mais confiável (menos código está executando no
modo kernel).
Mais seguro
Overhead de desempenho da comunicação entre
espaço do usuário e espaço do kernel.
Exemplo:
Kernel do macOS e iOS, da Apple. Conhecido como Darwin, inclui o microkernel Mach e o kernel BSD UNIX.
Formado por dois kernels, onde um deles é o Mach (que é microkernel).
Híbridos
Quase todo sistema moderno é híbrido: Linux, Windows, MacOS, iOS e android.
sistema usa mais de uma
abordagem de estruturação
combinam diferentes estruturas, resultando em sistemas híbridos que resolvem problemas de desempenho, segurança e usabilidade.
Estrutura Monolítica
mais simples
todas as funcionalidades do kernel num binário
exemplo dessa abordagem é o Unix e Linux
vantagem: desempenho
pouco overhead no interfaceamento das chamadas de sistema
comunicação dentro do kernel é rápida
Módulos
kernel fornece serviços nucleares enquanto outros serviços são implementados dinamicamente quando o kernel está em execução.
kernel tem um conjunto de componentes nucleares e vincula serviços adicionais por meio de módulos
A abordagem em módulos tenta unir os benefícios das
diversas outras abordagens:
Interfaces bem definidas e protegidas (camadas). Porém é mais flexível já que qualquer módulo pode chamar outro
Um módulo possui apenas funções nucleares (microkernel) e o conhecimento de como carregar e se comunicar com outros módulos.
É eficiente (monolítico) porque os módulos não precisam invocar a transmissão de mensagens para se comunicarem. Os módulos vão sendo carregados e “anexados” ao resto do kernel ativo e a comunicação é mais direta.
Lucas Codeco
Mapa Mental 2
SO 2023/1