Chamadas de Sistema (SYSCALL)

Documentos relacionados
Sistemas Operacionais

Métodos de Sincronização

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída

Sistemas Operacionais

Estruturas de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Gerência de memória II

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais. Estrutura do Sistema Operacional

Estrutura do Sistema Operacional

Gerência de memória III

SOP - TADS Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Estrutura do Sistema Operacional: Modos de Acesso

Roteiro 20/9/2010. Serviço do sistema operacional. Interface. Chamadas de sistemas (System Call) Programas do sistema Projeto e Implementação

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Algoritmos e Lógica de Programação Sistemas Operacionais

Sistemas Operacionais. Introdução a Sistemas Operacionais

Conceitos básicos e serviços dos Sistemas Operacionais

Capítulo 2: Estruturas de Sistema Operacional. Operating System Concepts 8 th Edition

SSC0640 Sistemas Operacionais I

Conceitos. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais Aula 3

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Sistemas Operacionais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

SO: Introdução e Estrutura. Sistemas Operacionais Flavio Figueiredo (

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

Ambientes de Execução

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 07

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

ESTRUTURA DOS SISTEMAS OPERACIONAIS

Sistemas Operacionais (SO)

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Distribuídos

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais. Prof. André Y. Kusumoto

Técnicas Avançadas de Programação

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Chapter 4: Threads. Operating System Concepts 8th Edition

Sistemas de arquivos Discos

Gerência de Dispositivos. Adão de Melo Neto

Sistemas Operacionais

Virtualização. Eduardo Ferreira dos Santos. Novembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 43

Sistemas Operacionais

Implementação de sistema de arquivos

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

Sistemas de Operação

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Threads. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

SOP Sistemas Operacionais Módulo 04: Processo

Processos. Conceitos Básicos

Sistemas Operacionais

Informática I. Aula Aula 19-20/06/06 1

Conceitos básicos sobre computadores

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Introdução aos Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Processos. Processos e Recursos (1) Tabelas de Controle do S.O. Processos e Recursos (2)

Sistemas Operacionais I

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Capítulo 2: Estruturas de Sistema Operacional. Operating System Concepts 8th Edition

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Conceitos Básicos

Sistemas Operacionais

LISTA DE EXERCÍCIOS 02

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Nível da Arquitetura do Conjunto das Instruções

Aula 5 Arquitetura do Sistema Operacional

Prof. Kleber R. Rovai

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Davidson Rodrigo Boccardo

Sistemas Operacionais I

Sistemas Operacionais. Rodrigo Rubira Branco

SOP - TADS Processos. Revisão Ultima aula

Gerência de Memória. Segmentação

COS Sistemas Operacionais. SystemCalls() [Linux Kernel Development, 2 nd edition] Prof. Vítor Santos Costa

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução

Transcrição:

Chamadas de Sistema (SYSCALL) Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 26

Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls 2 / 26

Estrutura dos Sistemas Operacionais 1 Estrutura dos Sistemas Operacionais 2 System Calls 3 / 26

Estrutura dos Sistemas Operacionais História Quase todos os sistemas operacionais vêm da mesma raiz. Evolução dos Sistemas Operacionais 4 / 26

Estrutura dos Sistemas Operacionais Sistemas Monolíticos São os mais comuns; O SO inteiro é executado como um único programa no modo núcleo; Escrito como uma coleção de procedimentos com parâmetros e resultados; Elas podem chamar umas as outras; Principal vantagem: tempo de resposta das tarefas; Desvio de controle (trap): chaveamento entre modo usuário e modo núcleo. 5 / 26

Estrutura dos Sistemas Operacionais Estrutura básica [Tanenbaum and Machado Filho, 1995] 1 Um programa principal invoca a rotina do serviço; 2 Um conjunto de rotinas de serviço executam as chamadas de sistema; 3 Um conjunto de rotinas utilitárias que auxiliam as rotinas de serviço. Figura 1.1: Modelo de estruturação para um kernel monolítico 6 / 26

Estrutura dos Sistemas Operacionais Sistemas Operacionais Unix Figura 1.2: Organização dos sistemas Unix [Galvin et al., 2013] 7 / 26

Estrutura dos Sistemas Operacionais MS-DOS Não é dividido em módulos; Não tem uma separação muito clara entre as interfaces e a funcionalidade. Figura 1.3: Estrutura do MS-DOS [Galvin et al., 2013] 8 / 26

Estrutura dos Sistemas Operacionais Sistemas em Camadas Hierarquia entre as camadas; Os níveis superiores prestam serviço aos inferiores, odecendo a níveis de complexidade; Camadas do sistema são dependentes. Figura 1.4: Funções das camadas [Tanenbaum and Machado Filho, 1995] 9 / 26

Estrutura dos Sistemas Operacionais Organização em camadas do SO Figura 1.5: Organização das camadas [Galvin et al., 2013] 10 / 26

Estrutura dos Sistemas Operacionais Microkernel Ideia: mover parte dos serviços do kernel para o espaço do usuário; Implementação: separar o sistema operacional em partes, sendo cada uma responsável por um tipo de serviço; Comunicação acontece por meio de troca de mensagem entre os programas e os serviços; Vantagens [Galvin et al., 2013]: Mais fácil de estender; Mais conável, pois possui menos programas rodando em modo kernel; Mais seguro. Desvantagens: Perde performance na comunicação constante entre os programas em mdo usuário e modo kernel. 11 / 26

Estrutura dos Sistemas Operacionais Estrutura do microkernel Figura 1.6: Estrutura de um sistema operacional com microkernel [Galvin et al., 2013] 12 / 26

Estrutura dos Sistemas Operacionais Linus x Tanenbaum Figura 1.7: Fonte: https: //groups.google.com/forum/#!topic/comp.os.minix/wlhw16qwlti[1-25] 13 / 26

System Calls 1 Estrutura dos Sistemas Operacionais 2 System Calls 14 / 26

System Calls Denição Interface de programação para os serviços do Sistema Operacional. Um SO tem duas funções principais: 1 Fornecer abstrações para os programas de usuário; 2 Administrar os recursos do computador. O usuário não precisa administrar manualmente todos os recursos do computador; Absração de alto nível: API - Application Programmable Interface. Exemplos: POSIX (Unix, Linux e Mac OS X); Java API. 15 / 26

System Calls Exemplo de uma SYSCALL Lembre-se: o processador só pode rodar um programa de cada vez! Figura 2.1: Copiando o conteúdo para um arquivo [Galvin et al., 2013] 16 / 26

System Calls Implementação de SYSCALL Índice de números de chamadas armazenados numa interface de chamadas de sistema implementada no Sistema Operacional; A interface executa a chamada e retorna os valores de resultado; O programa não precisa saber como a SYSCALL é implementada; Contudo, é necessário entender o que faz o SO e o que a chamada retorna; Normalmente os detalhes das chamadas são suportados pelas bibliotecas e/ou compiladores. 17 / 26

System Calls Exemplo de API Padrão Figura 2.2: Exemplo de uma chamada de API padrão POSIX [Galvin et al., 2013] 18 / 26

System Calls Envio de parâmetros Normalmente é necessário fornecer mais informações do que o nome da chamada de sistema. Existem três métodos de enviar parâmetros para uma SYSCALL [Galvin et al., 2013]: 1 Parâmetros enviados através dos registradores (mais simples); 2 Os parâmetros são armazenados em tabelas ou blocos e seu endereço enviado como um parâmetro ao registrador (Linux e Solaris); 3 Utilização de pilha (stack): os parâmetros são empilhados pelo programa (push) e removidos pelo SO (pop) Os métodos 2 e 3 não possuem limite em relação à quantidade de parâmetros que são enviados à chamada. 19 / 26

System Calls Utilização de pilhas (read) 1 Armazena os bytes; 2 Carrega no buer; 3 Gera o descritor de arquivo (fd); 4 Chama a rotina da biblioteca (call); 5 Executa a instrução TRAP. Nesse momento a chamada é promovida ao modo kernel; 6 Passa a instrução para um endereço especíco do kernel; 7 Ativa o endereço especíco para a chamada (registradores); 8 Rotina de tratamento das chamadas de sistema; 9 Retorna para a instrução TRAP. Podem também bloquear o programa que a chamou; 10 Retorna ao programa do usuário; 11 Limpa a pilha. 20 / 26

System Calls Execução da API Figura 2.3: Fluxo de execução da chamada read [Tanenbaum and Machado Filho, 1995] 21 / 26

System Calls Utilização de tabelas Figura 2.4: Exemplo de envio de parâmetros por utilização de tabelas [Galvin et al., 2013] 22 / 26

System Calls Programa no MS-DOS Uma única tarefa (singletasking); O shell é carregado junto com o sistema; Espaço de memória único; Saída do programa -> shell recarregado. Figura 2.5: [Galvin et al., 2013] 23 / 26

System Calls Programa no FreeBSD Variante do Unix; Multitasking; Login carrega o shell do usuário; O shell executa a chamada fork() para executar um programa: exec() carrega um programa no processo; shell espera o m e retorna o resultado. Resultados: code=0 Sem erros; code>0 Algum erro. Figura 2.6: [Galvin et al., 2013] 24 / 26

System Calls Galvin, P. B., Gagne, G., and Silberschatz, A. (2013). Operating system concepts. John Wiley & Sons, Inc. Tanenbaum, A. S. and Machado Filho, N. (1995). Sistemas operacionais modernos, volume 3. Prentice-Hall. 25 / 26

System Calls OBRIGADO!!! PERGUNTAS??? 26 / 26