Sistemas Operacionais

Documentos relacionados
Conceitos básicos e serviços dos Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Estrutura do Sistema Operacional

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

Estruturas de Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Arquitetura de Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais. Estrutura do Sistema Operacional

Sistemas Operacionais. Introdução a Sistemas Operacionais

Chamadas de Sistema (SYSCALL)

SOP - TADS Fundamentos de Sistemas Operacionais

Sistemas Operacionais

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais (SO)

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

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

Sistemas Operacionais Aula 3

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

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

Sistemas operacionais INTRODUÇÃO

Sistema Operacional. Etapa

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS

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

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

Sistemas Operacionais

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

Sistemas Operacionais. Estrutura do Sistema Operacional: Modos de Acesso

ESTRUTURA DOS SISTEMAS OPERACIONAIS

Sistemas Operacionais

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Introdução aos Sistemas Operacionais

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

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

Sistemas Operacionais. Visão Geral

Introdução aos Sistemas Operacionais

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

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

Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Curso: Redes de Computadores

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Sistemas Operacionais. Introdução

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

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

Técnicas Avançadas de Programação

Fundamentos de Sistemas Operacionais

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Sistemas Operacionais. Visão Geral

Conceitos básicos sobre computadores

Computadores e Programação (DCC/UFRJ)

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Disciplina: Sistemas Operacionais

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Transcrição:

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

Na aula Anterior Por que é necessário um sistema operacional? O que é um sistema operacional? Histórico Conceitos Básicos

Roteiro - Nesta aula Tipo e Estrutura de Sistemas Operacionais Chamadas ao Sistema (System Calls)

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)

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

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

Multiprogramados ou Multitarefas Classificação quanto à interação com as aplicações: Sistema Multitarefa Sistemas batch Sistemas de tempo real Sistemas de interativo

Estrutura dos Sistemas Operacionais Principais tipos de estruturas Monolíticos; Arquitetura Micro-Kernel; Em camadas; Máquinas Virtuais; Cliente-Servidor.

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;

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;

Estrutura dos Sistemas Operacionais = Monolíticos Aplicação Aplicação

Estrutura dos Sistemas Operacionais = Monolíticos

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

Estrutura dos Sistemas Operacionais = Micro-Kernel

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;

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.

Fornecimento de Serviços Estrutura dos Sistemas Operacionais = Em Camadas Camadas definidas no THE

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas Alocação do processador Chaveamento entre os processos em execução - multiprogramação

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas 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

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas Comunicação entre os processos

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas Gerenciamento dos dispositivos de i/o armazenamento de informações de/para tais dispositivos

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas Programas dos usuários Alto nível de abstração

Fornecimento de Serviços Estrutura dos Sistemas Operacionais Em Camadas Processo do operador do sistema

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.

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.

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

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);

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;

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;

Estrutura dos Sistemas Operacionais = Máquina Virtual Vantagem: Flexibilidade; Desvantagem: Simular diversas máquinas virtuais não é uma tarefa simples sobrecarga;

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.

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.

Estrutura dos Sistemas Operacionais = Cliente/Servidor Adaptável para Sistemas Distribuídos

Estrutura dos Sistemas Operacionais = Cliente/Servidor Linux Monolítico + Módulos; Windows Microkernel + Camadas + Módulos

Sistemas Operacionais System Calls e Interrupções

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

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.

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.

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.

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.

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

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

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!!!

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)

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

Conceitos Básicos Chamadas ao Sistema 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

Conceitos Básicos Chamadas ao Sistema Exemplos de chamadas da interface: Unix e API Win32

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

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

Interface das Chamadas de Sistemas win32 API para Windows POSIX API para todas versões UNIX Java API para JVM

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

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

Interrupções

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

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...

Referências Notas de aula Professor Marcos José Santana (USP) Aulas professor Jó Ueyama (Univesp) - https://www.youtube.com/watch?v=ie9evxy8ups