Você está na página 1de 57

Sistemas Operacionais

Slides adaptados de
Prof. Dr. Marcos José Santana e Prof. Dra. Regina Helena Carlucci Santana
baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum

Tipos e Estrutura
System Calls

Professor Ariel da Silva Dias - www.arieldias.com


Na aula Anterior

▪ Por que é necessário um sistema operacional?


▪ O que é um sistema operacional?
▪ Histórico
▪ Conceitos Básicos

Professor Ariel da Silva Dias - www.arieldias.com


Roteiro - Nesta aula

▪ Tipo e Estrutura de Sistemas Operacionais


▪ Chamadas ao Sistema (System Calls)

Professor Ariel da Silva Dias - www.arieldias.com


Tipos de SOs

▪ Quanto ao compartilhamento de Hardware (2 tipos)


▪ Monoprogramados ou Monotarefas:
▪ permitem apenas um programa ativo em dado período, permanecendo ativo do início ao
fim de sua execução (MS-DOS)
▪ Multiprogramados ou Multitarefas
▪ mantém mais de um programa na memória, permitindo o time-sharing (Unix, Windows)

Professor Ariel da Silva Dias - www.arieldias.com


Monoprogramados ou Monotarefas

▪ O processador, a memória e os periféricos permanecem exclusivamente


dedicados à execução de um único programa
▪ Má utilização dos recursos
▪ Facilidade na implementação
▪ Exemplo: sistemas embarcados
▪ O processo estará em um destes estados

Novo Executando Concluído

Professor Ariel da Silva Dias - www.arieldias.com


Multiprogramados ou Multitarefas

▪ Vários processos encontram-se em memória ao mesmo tempo


▪ Várias tarefas ocorrem simultaneamente em um único processador: um processo
é executado enquanto outro aguarda
▪ Necessidade de um mecanismo de trocas rápidas de processo

Professor Ariel da Silva Dias - www.arieldias.com


Multiprogramados ou Multitarefas

▪ Classificação quanto à interação com as aplicações:

▪ Sistema Multitarefa
▪ Sistemas batch
▪ Sistemas de tempo real
▪ Sistemas de interativo

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais

▪ Principais tipos de estruturas


▪ Monolíticos;
▪ Arquitetura Micro-Kernel;
▪ Em camadas;
▪ Máquinas Virtuais;
▪ Cliente-Servidor.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Monolíticos

▪ O SO é um único módulo
▪ O SO é um conjunto de processos que podem interagir entre si a qualquer
momento sempre que necessário
▪ Processos do usuário invocam rotinas do SO
▪ Os serviços (Chamadas) requisitados ao sistema são realizados por meio da
colocação de parâmetros em registradores ou pilhas de serviços seguida da
execução de uma instrução chamada TRAP;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Monolíticos

▪ Todos os módulos do sistema são compilados individualmente e depois ligados


uns aos outros em um único arquivo-objeto;
▪ Cada processo possui uma interface bem definida com relação aos parâmetros e
resultados para facilitar a comunicação com os outros processos;
▪ Simples;
▪ Primeiros sistemas UNIX e MS-DOS;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Monolíticos

Aplicação Aplicação

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Monolíticos

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Micro-Kernel

▪ O objetivo é tornar o núcleo do SO o menor possível


▪ A função do núcleo é gerenciar comunicação entre esses processos
▪ Papeis do núcleo
▪ alocação de CPU
▪ comunicação aos processos (IPC)

▪ Ex.: Symbian, Minix

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Micro-Kernel

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Em Camadas

▪ Sistema operacional modular que possui uma hierarquia de níveis;


▪ Modular: divisão de um processo complexo em módulos de menor complexidade
▪ Hierarquico: a cada nível, os detalhes de operações dos níveis anteriores podem ser
ignorados

▪ Primeiro sistema em camadas: THE (idealizado por E.W. Dijkstra);


▪ Possuía 6 camadas, cada qual com uma função diferente;
▪ Sistema em batch simples;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Em Camadas

▪ Vantagem: isolar as funções do sistema operacional, facilitando manutenção e


depuração;
▪ Desvantagem: cada nova camada implica uma mudança no modo de acesso;
▪ Exemplo: Multics
▪ Atualmente: modelo de 2 camadas.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Em Camadas

▪ Camadas definidas no THE


Fornecimento de
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Alocação do processador
• Chaveamento entre os
processos em execução -
multiprogramação
Fornecimento de
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Gerenciamento da memória
• Alocação de espaço para
processos na memória e no
disco
Fornecimento de

• Processo dividido em
partes (páginas) para
Serviços

ficarem no disco

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Comunicação entre os
processos
Fornecimento de
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Gerenciamento dos
dispositivos de i/o –
armazenamento de
Fornecimento de

informações de/para tais


dispositivos
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Programas dos usuários


• Alto nível de abstração
Fornecimento de
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais – Em Camadas

• Processo do operador do
sistema
Fornecimento de
Serviços

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ Idealizada em 1960 pela IBM ➔ VM/370;


▪ Modelo de máquina virtual cria um nível intermediário entre o SO e o Hardware
denominado Gerência de VM;
▪ Esse nível cria diversas máquinas virtuais independentes e isoladas, onde cada
máquina oferece uma cópia virtual do hardware, incluindo modos de acesso,
interrupções, dispositivos de E/S, etc;
▪ Cada máquina virtual pode ter seu próprio SO.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ Principais Conceitos
▪ Monitor da Máquina Virtual (VMM): executa sobre o hardware e implementa
multiprogramação fornecendo várias máquinas virtuais ➔ é o coração do sistema
▪ CMS (Conversational Monitor System):
▪ TimeSharing;
▪ Executa chamadas ao Sistema Operacional;
▪ Máquinas virtuais são cópias do hardware, incluindo os modos kernel e usuário;
▪ Cada VM pode rodar um SO diferente.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

TimeSharing
Chamadas ao Sistema

TRAP
TRAP

Monitor da Máquina Virtual (VMM)


Roda sobre o hardware e
implementa multiprogramação Professor Ariel da Silva Dias - www.arieldias.com
Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ A ideia de VM foi posteriormente utilizada em contextos diferentes:


▪ Programas MS-DOS: rodam em computadores 32 bits;
▪ As chamadas feitas pelo MS-Dos ao SO eram realizadas e monitoradas pelo monitor da
VM (VMM);

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ A ideia de VM foi posteriormente utilizada em contextos diferentes:


▪ Programas Java (Máquina Virtual Java-JVM): o compilador Java produz código JVM
(Bytecodes).
▪ Esse código é executado pelo interpretador Java:
▪ Programas Java rodam em qualquer plataforma, independentemente do SO;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ A ideia de VM foi posteriormente utilizada em contextos diferentes:


▪ Computação em Nuvem
▪ Virtualização dos servidores simula diferentes ambientes em servidores físicos;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Máquina Virtual

▪ Vantagem:
▪ Flexibilidade;

▪ Desvantagem:
▪ Simular diversas máquinas virtuais não é uma tarefa simples → sobrecarga;

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Cliente/Servidor

▪ Reduzir o SO a um nível mais simples:


▪ Kernel: implementa a comunicação entre processos clientes e processos servidores
→ núcleo mínimo;
▪ Maior parte do SO está implementado como processos de usuários (nível mais alto
de abstração);
▪ Sistemas Operacionais Modernos.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Cliente/Servidor

▪ Cada processo servidor trata de uma tarefa

▪ Os processo servidores não tem acesso direto ao hardware. Assim, se algum


problema ocorrer com algum desses servidores, o hardware não é afetado;
▪ O mesmo não se aplica aos serviços que controlam os dispositivos de E/S, pois
essa é uma tarefa difícil de ser realizada no modo usuário devido à limitação de
endereçamento. Sendo assim, essa tarefa ainda é feita no kernel.

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Cliente/Servidor

▪ Adaptável para Sistemas Distribuídos

Professor Ariel da Silva Dias - www.arieldias.com


Estrutura dos Sistemas Operacionais = Cliente/Servidor

▪ Linux
▪ Monolítico + Módulos;

▪ Windows
▪ Microkernel + Camadas + Módulos

Professor Ariel da Silva Dias - www.arieldias.com


Sistemas Operacionais
System Calls e Interrupções

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Quando ocorre?
▪ um processo precisa realizar uma instrução privilegiada (imprimir arquivo)

▪ Para que isso ocorre, é necessário que haja uma chamada de sistema
▪ alternância do modo de usuário para o modo kernel

▪ Chamadas de sistema são a porta de entrada para o modo kernel

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Modos de Acesso
▪ Modo Usuário;
▪ Modo Kernel ou Supervisor ou Núcleo;
▪ São determinados por um conjunto de bits localizados no registrador de status do
processador: PSW (program status word);
▪ Por meio desse registrador, o hardware verifica se a instrução pode ou não ser executada
pela aplicação.
▪ Protege o próprio kernel do SO na RAM contra acessos indevidos.

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Modo Usuário
▪ Aplicações não tem acesso direto aos recursos da máquina, ou seja, ao hardware;
▪ Quando o processador trabalha no modo usuário, a aplicação só pode executar
instruções sem privilégios, com um acesso reduzido de instruções;
▪ Por que?
▪ Para garantir a segurança e a integridade do sistema.

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Modo Kernel
▪ Aplicações tem acesso direto aos recursos da máquina, ou seja, ao hardware;
▪ Operações com privilégios;
▪ Quando o processador trabalha no modo kernel, a aplicação tem acesso ao conjunto
total de instruções;
▪ Apenas o SO tem acesso às instruções privilegiadas.

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Se uma aplicação precisa realizar alguma instrução privilegiada, ela realiza uma
chamada ao sistema (System Call), que altera do modo usuário para o modo
kernel;
▪ Chamadas de sistemas são a porta de entrada para o modo kernel
▪ São a interface entre os programas do usuário no modo usuário e o SO no modo
kernel;
▪ As chamadas diferem de SO para SO, no entanto, os conceitos relacionados às
chamadas são similares independentemente do SO.

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ As system calls são realizadas através das instruções TRAP


▪ TRAP: interupções de software
▪ Permitem chamar a atenção do SO
▪ pegar a requisição do usuário, identificar a requisição, processar esta requisição

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Passos para system calls


1. processo realiza uma chamada ao sistema (TRAP)
2. o SO utiliza uma tabela para determinar o endereço da rotina
3. a rotina do serviço é acionada
4. serviço solicitado é executado, devolvendo o controle ao processo

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ TRAP: instrução que permite o acesso ao modo kernel;


▪ Exmeplo:
▪ Instrução do UNIX:
count = read(fd, buffer, nbytes);

Arquivo a ser lido Bytes a serem lidos

Ponteiro para o Buffer

▪ O programa sempre deve checar o retorno da chamada de sistema para saber


se algum erro ocorreu!!!

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Exemplos de chamadas da interface:


▪ Chamadas para gerenciamento de processos:
▪ Fork (CreateProcess – WIN32) – Cria um processo;
▪ Outros exemplos no Posix (Portable Operating System Interface)

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Exemplos de chamadas da interface:


▪ Chamadas para Gerenciamento de Diretórios:
▪ Mount – monta um diretório;
▪ Outros exemplos no Posix

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Exemplos de chamadas da interface:


▪ Outros tipos de chamadas:
▪ Chmod: modifica permissões;
▪ Outros exemplos no Posix

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Chamadas da interface. Unix x Windows>


▪ Unix
▪ Chamadas da interface muito semelhantes às chamadas ao sistema
▪ ~100 chamadas a procedimentos
▪ Windows
▪ Chamadas da interface totalmente diferente das chamadas ao sistema
▪ APIWin32 (Application Program Interface)
▪ Padrão de acesso ao sistema operacional
▪ Facilita a compatibilidade
▪ Possui milhares de procedimentos

Professor Ariel da Silva Dias - www.arieldias.com


Conceitos Básicos – Chamadas ao Sistema

▪ Exemplos de chamadas da interface: Unix e API Win32

Professor Ariel da Silva Dias - www.arieldias.com


Interface das Chamadas de Sistemas

▪ Interface para esconder a complexidade das system calls


▪ interface de programação fornecida pelo SO
▪ escrita em linguagem de alto nível
▪ aplicações utilizam uma API (Application Program Interface)
▪ encapsula o acesso direto às chamadas ao sistema

Professor Ariel da Silva Dias - www.arieldias.com


Interface das Chamadas de Sistemas

APLICAÇÃO DO USUÁRIO

read(fd, buffer,var(

Wrapper API

read() do Solaris read() do Linux read() do aix

Solaris Linux AIX

Professor Ariel da Silva Dias - www.arieldias.com


Interface das Chamadas de Sistemas

▪ win32 API para Windows


▪ POSIX API para todas versões UNIX
▪ Java API para JVM

Professor Ariel da Silva Dias - www.arieldias.com


Interface das Chamadas de Sistemas

▪ Por que utilizar APIs em vez de chamadas diretas ao sistema?


▪ Portabilidade
▪ Esconder complexidade de chamadas ao sistema
▪ Acréscimo de funcionalidades que otimizam o desempenho

Professor Ariel da Silva Dias - www.arieldias.com


Interrupções

▪ Um processo pode ser interrompido ao fazer uma chamada ao sistema


▪ Usando TRAPS (para isso a aplicação tem que estar em execução)
▪ interrupção em nível de processo

▪ E o que fazer com interrupções que não são causadas por processos em
execução?
▪ Interrupções de hardware
▪ Sinal elétrico no hardware
▪ Dispositivo de i/o ou clock

Professor Ariel da Silva Dias - www.arieldias.com


Interrupções

Professor Ariel da Silva Dias - www.arieldias.com


Interrupção vs Traps

▪ Interrupção
▪ Evento que independe do processo (externo ao processador)
▪ Gerada por dispositivos que podem não estar relacionado ao processo em execução

▪ TRAPS
▪ Evento que depende do processo
▪ Causado pelo processo no processador

Professor Ariel da Silva Dias - www.arieldias.com


Atividades para casa

▪ Ler capítulo 1 do Tanenbaum


▪ Resolver os exercícios ímpares
▪ Estudar chamadas ao sistema (Linux) e começar a pensar como implementar um
programa que utilize algumas delas...

Professor Ariel da Silva Dias - www.arieldias.com


Referências

▪ Notas de aula Professor Marcos José Santana (USP)


▪ Aulas professor Jó Ueyama (Univesp) -
https://www.youtube.com/watch?v=IE9EVxy8Ups

Professor Ariel da Silva Dias - www.arieldias.com

Você também pode gostar