Conceitos básicos e serviços dos Sistemas Operacionais

Documentos relacionados
Sistemas Operacionais

SSC0640 Sistemas Operacionais I

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

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

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estrutura do Sistema Operacional

Estruturas de Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Sistemas Operacionais Aula 3

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

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

SOP - TADS Fundamentos de Sistemas Operacionais

Sistemas Operacionais

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

Introdução aos Sistemas Operacionais

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

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

Sistemas operacionais INTRODUÇÃO

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

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

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais. Introdução a Sistemas Operacionais

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

Curso: Redes de Computadores

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Sistemas Operacionais. Visão Geral

Sistemas Operacionais. Estrutura do Sistema Operacional

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

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

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

Conceitos. Pedro Cruz. EEL770 Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 07

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

16/8/2010. A arquitetura de um sistema computacional representa o modelo da organização e funcionamento de um sistema de processamento

Sistema Operacional. Etapa

Montagem e Manutenção

Chamadas de Sistema (SYSCALL)

Técnicas Avançadas de Programação

ESTRUTURA DOS SISTEMAS OPERACIONAIS

3 CONCEITOS DE SISTEMAS OPERACIONAIS

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

Sistemas Operacionais. Estrutura do Sistema Operacional: Modos de Acesso

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

SOP - TADS Processos. Revisão Ultima aula

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

IV Estrutura do Sistema Operacional

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

ARQUITETURA DE COMPUTADORES

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

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

Sistemas Operacionais

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

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

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Sistemas Operacionais

Sistemas Operacionais

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

Conceitos Gerais Definição e Características dos SOs. Na Aula Anterior... Nesta Aula. O Escopo dos SOs 16/08/2016

Introdução à Informática Engenharia Agrícola

2. Conceitos Básicos. Introdução à Ciência da Computação.

Fundamentos de Sistemas Operacionais

Introdução à Computação

Prof. Kleber R. Rovai

COMPONENTES CENTRAIS DO SISTEMA OPERACIONAL. Prof. Eduardo H. S. Oliveira

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Sistemas de Computação O Sistema Operacional Unix

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

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

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

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

INFORMÁTICA: Informação automática

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Caracterização de Sistemas Distribuídos

Sistemas Operacionais I

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Métodos de implementação de linguagens. Kellen Pinagé

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Introdução e Conceitos Básicos

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

Introdução aos Sistemas Operativos

João Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1

Sistemas Operacionais I

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução a Arquitetura de Sistemas Operacionais. Parte 01

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Transcrição:

Conceitos básicos e serviços dos Sistemas Operacionais Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF

Tipos de serviços do S.O. Um S.O. fornece um ambiente para a execução de programas através de serviços para os processos e para os usuários Apesar da forma como esses serviços são oferecidos variar de sistema para sistema (e entre diferentes versões de um mesmo serviço), existem algumas classes de serviços que são comuns a todos os sistemas operacionais

Tipos de serviços do S.O. O serviços mais comuns gerenciados pelos sistemas operacionais são: Execução de programas; Operações de entrada/saída; Manipulação do sistema de arquivos; Detecção de erros; Alocação de recursos; Proteção.

Conceitos Básicos de Sistemas Operacionais Principais conceitos: Processos; Gerenciamento de memória; Chamadas ao sistema; Estrutura do sistema operacional. 4

Processos Processo: chave do S.O.; Caracterizado por um programa em execução; Cada processo possui: Um espaço de endereçamento; Uma lista de alocação de memória (mínimo, máximo); Um conjunto de registradores (contador de programa); O Sistema Operacional controla todos os processos, sejam os criados pelos usuários, e os criados por ele mesmo; 5

Processos Estados básicos de um processo: Execução 3 1 2 Bloqueado 4 Pronto 6

Processos Cada um dos estados de um processo são caracterizados por: Execução: em um sistema monoprocessado, apenas um processo pode estar fazendo uso da seção de processamento da UCP por vez; em sistemas multiprocessados, apesar de existirem vários processos em execução simultânea, cada núcleo de processamento executa somente um por vez Bloqueado: quando um processo não pode prosseguir com sua execução, pois necessita que algum evento ocorra antes; Pronto: o processo encontra-se carregado na memória, pronto para iniciar sua execução, bastando somente ser selecionado pelo escalonador de processos. 7

Processos Ex.: processo bloqueado (suspenso) Quando o SO suspende um processo P1 temporariamente para executar um processo P2, o processo P1 deve ser reiniciado exatamente no mesmo estado no qual estava ao ser suspenso. Para tanto, todas as informações a respeito do processo P1 são armazenadas em uma tabela de processos (process table). Essa tabela é implementada como um vetor ou uma lista encadeada de estruturas. 8

Processos Um processo pode resultar na execução de outros processos, chamados de processosfilhos: Características para a hierarquia de processos: Comunicação (Interação) e Sincronização; Segurança e proteção; Uma árvore de, no máximo, três níveis; Escalonadores de processos processo que escolhe qual será o próximo processo a ser executado; Diversas técnicas para escalonamento de processos; 9

Processos Comunicação e sincronismo entre processos possíveis soluções: Semáforos; Monitores; Instruções especiais em hardware; Troca de mensagens; 10

Gerenciamento de Memória Gerenciamento elementar (década de 60) Sistemas monoprogramados; Sem paginação: Apenas um processo na memória; Acesso a toda a memória; Gerenciamento mais avançado (atualidade) Sistemas multiprogramados; Mais de um processo na memória; Chaveamento de processos: por entrada/saída ou por limite de tempo (sistema de tempo compartilhado); 11

Compartilhamento de Memória Partições Fixas Cada processo é alocado em uma dada partição da memória (pré-definida); Partições são liberadas quando o processo termina; Partições Variáveis A memória é alocada de acordo com o tamanho e número de processos; Otimiza o uso da memória; 12

Comunicação entre usuário e o S.O. Chamadas ao Sistema (system calls) fornecem uma interface entre um programa em execução e o S.O. Estão, geralmente, disponíveis como instruções nas linguagens de baixo nível ou até mesmo em linguagens de alto nível, como C. Podem ser classificadas em duas categorias: Controle de processos. Gerenciamento de arquivos e de dispositivos de E/S.

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 Sistema Operacional na RAM contra acessos indevidos; 14

Chamadas ao Sistema Modo usuário: Aplicações não têm 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; 15

Chamadas ao Sistema Modo kernel: Aplicações têm 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 S.O. tem acesso às instruções privilegiadas; 16

Alteração entre modos 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 Sistema Operacional no modo kernel; As chamadas diferem de SO para SO, no entanto, os conceitos relacionados às chamadas são similares independentemente do SO; 17

Execução de chamadas ao sistema TRAP: instrução que permite o acesso ao modo kernel; transfere o controle para o SO Exemplo: a seguinte 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!!! 18

Um exemplo de chamada ao sistema Os 11 passos para fazer uma chamada ao sistema para o comando read (arq, buffer, nbytes) Após o passo 5, é executado um TRAP, passando do modo usuário para o modo sistema

Chamadas ao Sistema

Anéis de Proteção Rings ou simplesmente anéis de proteção, definem um sistema conhecido por domínios de proteção hierárquica, para garantir a segurança do SO; São implementados portões de controle entre os níveis para maior controle dos processos.

Exemplos de chamadas ao sistema

Exemplos de chamadas ao sistema

Chamadas ao Sistema API (application program interface) WIN32

Estrutura dos Sistemas Operacionais

Estrutura dos Sistemas Operacionais Principais tipos de estruturas: Monolíticos; Em camadas; Micronúcleo; Máquinas Virtuais; Cliente-Servidor; 26

Arquiteturas de Sistemas Operacionais Arquitetura Monolítica Todos os componentes do SO estão contidos no núcleo, comunicando-se diretamente entre si; Rapidez na comunicação, mas complexidade no código; Todos os módulos do sistema são compilados individualmente e depois ligados uns aos outros em um único arquivo-objeto; O Sistema Operacional é um conjunto de processos que podem interagir entre si a qualquer momento sempre que necessário; 27

Estrutura dos Sistemas Operacionais - Monolítico 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; 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; 28

Estrutura dos Sistemas Operacionais - Monolítico 29

Estrutura dos Sistemas Operacionais - Monolítico Modelo de um sistema monolítico estruturado

Estrutura dos Sistemas Operacionais em Camadas Possui uma hierarquia de níveis; Componentes autocontidos, em camadas de componentes que realizam tarefas similares; Primeiro sistema em camadas: THE (idealizado por E.W. Dijkstra); Possuia 6 camadas, cada qual com uma função diferente; Sistema em batch simples; 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; o sistema torna-se mais lento; Atualmente: modelo de 2 camadas. 31

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 Nível 2 Fornecimento de Serviços Nível 1 Nível 0 32

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 Nível 2 A l o c a ç ã o d o processador; Chaveamento entre os processos em execução multiprogramação; Nível 1 Nível 0 33

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 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; Nível 2 Nível 1 Nível 0 34

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 C o m u n i c a ç ã o e n t re o s processos; Nível 2 Nível 1 Nível 0 35

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 Nível 2 Nível 1 Nível 0 G e r e n c i a m e n t o d o s d i s p o s i t i v o s d e e n t r a d a / s a í d a a r m a z e n a m e n t o d e informações de/para tais dispositivos; 36

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 Nível 2 Programas dos usuários; Alto nível de abstração; Nível 1 Nível 0 37

Estrutura dos Sistemas Operacionais em Camadas Nível 5 Nível 4 Nível 3 Processo do operador do sistema; Nível 2 Nível 1 Nível 0 38

Estrutura dos Sistemas Operacionais Micronúcleo Nos sistemas em camadas, pode-se definir a fronteira entre os modos núcleo e usuário Até então, todas as camadas entravam no núcleo, mas não é considerado uma boa prática Erros em aplicações no núcleo podem derrubar todo o sistema Estima-se que para todo programa existam 10 erros a cada 1000 linhas de código, algunss mais simples e outros mais graves compromete a segurança e estabilidade do SO A estrutura de micronúcleo propõe a divisão das funções do SO em módulos menores, com funcionalidades bem definidas São usados em sistemas de tempo real, que necessitam de requisitos de confiabilidade muito altos

Estrutura dos Sistemas Operacionais Micronúcleo Somente uma pequena parte dos serviços pode acessar diretamente o hardware A camada de servidores fazem a maior parte do trabalho do SO, como o sistema de arquivos (FS), gerenciador de processos (Proc.) e outros A ideia de um núcleo mínimo e a restrição de permissões de processos e drivers limita enormemente os danos que podem ser causados por um componente defeituoso

Estrutura dos Sistemas Operacionais Cliente/Servidor A partir do modelo de micronúcleo, pode-se distinguir os processos em duas classes: servidores: aqueles que prestam algum serviço; clientes: aqueles que usam estes serviços. Kernel: implementa a comunicação entre processos clientes e processos servidores com troca de mensagens Núcleo mínimo; A maior parte do Sistema Operacional está implementado como processos de usuários (nível mais alto de abstração - não importa se é usado em um único computador ou em uma rede de computadores); Empregado pelos sistemas operacionais modernos; 41

Estrutura dos Sistemas Operacionais Cliente/Servidor Cada processo servidor trata de uma tarefa processo cliente processo cliente servidor processos servidor terminal... servidor arquivos Núcleo (kernel) 42

Estrutura dos Sistemas Operacionais Cliente/Servidor Os processos servidores não têm acesso direto ao hardware. Assim, se algum problema ocorrer com algum desses servidores, o hardware não é afetado; processo cliente processo cliente servidor processos servidor terminal... servidor arquivos Núcleo (kernel) 43

Estrutura dos Sistemas Operacionais Cliente/Servidor processo cliente processo cliente servidor processos servidor terminal... servidor arquivos Núcleo (kernel) 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. 44

Estrutura dos Sistemas Operacionais Cliente/Servidor Adaptável para Sistemas Distribuídos; Computador Computador Computador Computador 1 2 3 4 Cliente Cliente Servidor Servidor Kernel Kernel Kernel Kernel Rede de Comunicação Mensagem Cliente Servidor 45

Estrutura dos Sistemas Operacionais Máquina Virtual Ideia surgiu em 1960 com a IBM VM/370; Modelo de máquina virtual cria um nível intermediário entre o SO e o hardware; Esse nível cria diversas máquinas virtuais independentes e isoladas, onde cada máquina oferece um 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; 46

Estrutura dos Sistemas Operacionais Máquina Virtual Evolução do OS/360 para o TSS/360: Compartilhamento de tempo (TimeSharing); Tanto a multiprogramação quanto a interface com o hardware eram realizadas pelo mesmo processo sobrecarga gerando alto custo; Surge o CP/CMS, posteriormente renomeado VM/370 (Mainframes IBM) Duas funções distintas em processos distintos: Ambiente para multiprogramação; Máquina estendida com interface para o hardware; 47

Estrutura dos Sistemas Operacionais Máquina Virtual Principais conceitos: Monitor da Máquina Virtual (VMM): executado sobre o hardware e implementa multiprogramação, provendo várias máquinas virtuais é o coração do sistema; Máquinas virtuais são cópias exatas do hardware, incluindo os modos kernel e usuário, E/S, interrupções e tudo mais; Cada máquina virtual pode executar um Sistema Operacional diferente; CMS (Conversational Monitor System): Sistema operacional monousuário interativo; TimeSharing; Executa chamadas ao Sistema Operacional; 48

Estrutura dos Sistemas Operacionais Máquina Virtual Cópias virtuais do 370s TimeSharing; Chamadas ao Sistema Instruções de E/S CMS CMS CMS Chamadas ao sistema TRAP VM/370 TRAP Hardware (VMM) Monitor da Máquina Virtual roda sobre o hardware e implementa multiprogramação Cada máquina pode rodar um Sistema Operacional diferente 49

Estrutura dos Sistemas Operacionais Máquina Virtual Atualmente, a idéia de máquina virtual é utilizada em contextos diferentes: Programas MS-DOS: rodam em computadores 32bits; As chamadas feitas pelo MS-DOS ao Sistema Operacional são realizadas e monitoradas pelo monitor da máquina virtual (VMM); Virtual 8086; Programas JAVA (Máquina Virtual Java-JVM): o compilador Java produz código para a JVM (bytecode). Esse código é executado pelo interpretador Java: Programas Java rodam em qualquer plataforma, independentemente do Sistema Operacional; 50

Estrutura dos Sistemas Operacionais Máquina Virtual Vantagens: Flexibilidade; Desvantagem: Simular diversas máquinas virtuais não é uma tarefa simples sobrecarga; Execução de um software em uma máquina virtual requer que a UCP seja virtualizada problemas de executar instruções privilegiadas Nos primeiros processadores Pentium, eram usados interpretadores de comandos para contornar a limitação, mas o desempenho era de 5 a 10 vezes menor 51