Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Sistemas OperacionaisSlides adaptados de Prof. Dr. Marcos José Santana e Prof. Dra. Regina Helena Carlucci Santanabaseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Tipos e EstruturaSystem 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
Professor Ariel da Silva Dias - www.arieldias.com
Novo Executando Concluído
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
Professor Ariel da Silva Dias - www.arieldias.com
Aplicação Aplicação
Estrutura dos Sistemas Operacionais = Monolíticos
Professor Ariel da Silva Dias - www.arieldias.com
Estrutura dos Sistemas Operacionais = Micro-Kernel
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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
Estrutura dos Sistemas Operacionais = Micro-Kernel
Professor Ariel da Silva Dias - www.arieldias.com
Estrutura dos Sistemas Operacionais = Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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;
Estrutura dos Sistemas Operacionais = Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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.
Estrutura dos Sistemas Operacionais = Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
▪ Camadas definidas no THE
Forn
ecim
ento
de
Serv
iço
s
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Alocação do processador• Chaveamento entre os
processos em execução -multiprogramação
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Gerenciamento da memória• Alocação de espaço para
processos na memória e no disco• Processo dividido em
partes (páginas) para ficarem no disco
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Comunicação entre os processos
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Gerenciamento dos dispositivos de i/o –armazenamento de informações de/para tais dispositivos
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Programas dos usuários• Alto nível de abstração
Estrutura dos Sistemas Operacionais – Em Camadas
Professor Ariel da Silva Dias - www.arieldias.com
Forn
ecim
ento
de
Serv
iço
s
• Processo do operador do sistema
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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.
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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.
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
Monitor da Máquina Virtual (VMM)Roda sobre o hardware e
implementa multiprogramação
TimeSharingChamadas ao Sistema
TRAP
TRAP
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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);
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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;
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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;
Estrutura dos Sistemas Operacionais = Máquina Virtual
Professor Ariel da Silva Dias - www.arieldias.com
▪ Vantagem:
▪ Flexibilidade;
▪ Desvantagem:
▪ Simular diversas máquinas virtuais não é uma tarefa simples → sobrecarga;
Estrutura dos Sistemas Operacionais = Cliente/Servidor
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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.
Estrutura dos Sistemas Operacionais = Cliente/Servidor
Professor Ariel da Silva Dias - www.arieldias.com
▪ 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.
Estrutura dos Sistemas Operacionais = Cliente/Servidor
Professor Ariel da Silva Dias - www.arieldias.com
▪ Adaptável para Sistemas Distribuídos
Estrutura dos Sistemas Operacionais = Cliente/Servidor
Professor Ariel da Silva Dias - www.arieldias.com
▪ Linux
▪ Monolítico + Módulos;
▪ Windows
▪ Microkernel + Camadas + Módulos
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);
▪ 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
Arquivo a ser lido Bytes a serem lidos
Ponteiro para o Buffer
Conceitos Básicos – Chamadas ao Sistema
Professor Ariel da Silva Dias - www.arieldias.com
▪ Exemplos de chamadas da interface:
▪ Chamadas para gerenciamento de processos:
▪ Fork (CreateProcess – WIN32) – Cria um processo;
▪ Outros exemplos no Posix (Portable Operating System Interface)
Conceitos Básicos – Chamadas ao Sistema
Professor Ariel da Silva Dias - www.arieldias.com
▪ Exemplos de chamadas da interface:
▪ Chamadas para Gerenciamento de Diretórios:
▪ Mount – monta um diretório;
▪ Outros exemplos no Posix
Conceitos Básicos – Chamadas ao Sistema
Professor Ariel da Silva Dias - www.arieldias.com
▪ Exemplos de chamadas da interface:
▪ Outros tipos de chamadas:
▪ Chmod: modifica permissões;
▪ Outros exemplos no Posix
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
Professor Ariel da Silva Dias - www.arieldias.com
APLICAÇÃO DO USUÁRIO
Wrapper API
Solaris AIXLinux
read(fd, buffer,var(
read() do Solaris read() do Linux read() do aix
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