Sistemas Operacionais

Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais

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

Chamadas de Sistema (SYSCALL)

Sistemas Operacionais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída

Sistemas Operacionais. Introdução a Sistemas Operacionais

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

Gerência de memória III

Sistemas de arquivos Discos

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Gerência de memória II

Sistemas Operacionais

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Métodos de Sincronização

Sistemas de Entrada e Saída

Modelos de Programação de Tempo Real

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

LISTA DE EXERCÍCIOS 02

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

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

Introdução a Sistemas Operacionais

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

Implementação de sistema de arquivos

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary

Fundamentos de Sistemas Operacionais

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

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

Sistemas Operacionais. Introdução

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Sistemas Operacionais Aula 3

Introdução aos Sistemas Operacionais

SISTEMAS OPERACIONAIS

Aula 01 Introdução aos Sistemas Operacionais. Por Sediane Carmem Lunardi Hernandes

Fundamentos de Sistemas Operacionais

Técnicas Avançadas de Programação

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquivos, Pastas e Extensões. Sistemas Operacionais. Conceitos básicos. Evolução

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

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução aos Sistemas Operacionais

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

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

Sistemas Operacionais

Introdução à Computação MAC0110

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

Sistemas Operacionais

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

Introdução à Computação MAC0110

ENADE 2011 SISTEMAS OPERACIONAIS

Sistemas Operacionais (SO)

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF

Sistemas Operacionais. Visão Geral

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

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estruturas de Sistemas Operacionais

Introdução. Carlos Gustavo A. da Rocha. Sistemas Operacionais

Sumário. Introdução. Revisão da Aula. Fatos Históricos Estrutura Básica Principais Componentes. Hardware: Software;

APRESENTAÇÃO. Profº José Chiconato Jr. Disciplina - INFORMÁTICA. Aula 1 - Software. Concursos Profº José Chiconato Jr.

Características Linux - CentOS

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

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

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

Sistemas de Informação. Sistemas Operacionais

Curso: Redes de Computadores

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

Introdução à Informática

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

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

Sistemas Operativos: Escalonamento de Processos

Organização e Arquitetura de Computadores INTRODUÇÃO

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

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

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

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

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

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

Apresentação do Professor

Gerenciamento de Memória

Informática Aplicada. Introdução

Sistemas Operacionais

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

Sistemas Operacionais I

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

Sistemas Operacionais. Visão Geral

Sistemas Operacionais Aula 7

Administração Sistemas Operacionais de Rede. Prof. Airton Ribeiro de Sousa

MÁQUINAS VIRTUAIS VIRTUALIZAÇÃO AULA 04 Sistemas Operacionais Gil Eduardo de Andrade

SOP - TADS Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

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

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Transcrição:

Sistemas Operacionais Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Julho, 2016 1 / 37

Sumário 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 2 / 37

Evolução 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 3 / 37

Evolução Histórico Os sistemas operacionais evoluem junto com o computador. Das válvulas ao Altair. A chegada dos periféricos e a interface com o usuário. A massicação do computador pessoal. Os primeiros casos de vendor lock-in. Linux e a revolução silenciosa. 4 / 37

Evolução Primeira Geração: ENIAC e computadores de grande porte Onde está a interface homem-máquina? Figura 1.1: ENIAC em Operação [Penn, 2016] Em uma análise mais profunda, podemos dizer que não havia Sistema Operacional. 5 / 37

Evolução Segunda Geração: Transistores e Sistemas em Lote (Batch) Com os transistores, os computadores passam a poder ser comercializados. A entrada dos dados era feita em cartões perfurados e a linguagem de máquina (assembly) foi desenvolvida para acelerar a operação. O processamento acontecia em lotes (batch). Início do que começamos a chamar de programação. 6 / 37

Evolução Exemplo de Processamento em Lote [Silva, 2010] 7 / 37

Evolução Terceira Geração: CI's e multiprogramação CTSS (Compatible Time Sharing System) do MIT: primeiro sitema de tempo compartilhado; MULTICS (Multiplexed Information and Computing Service: MIT, Bell Labs, General Eletric; Projetado para suportar centenas de usuários: uma enorme máquina (pouco mais potente que um PC) fornecendo poder computacional para toda a área de Boston; Unix: Ken Thompson, Bell Labs. Pai de quse todos os SO's atuais. 8 / 37

Evolução Quarta Geração: Computadores Pessoais Desenvolvimento dos circuitos integrados de larga escala (LSI, Large Scale Integration), que permitiu o surgimento dos computadores pessoais; 1974: Intel 8080, CPU de 8 bits de propósito geral; Início dos anos 80: IBM PC; Xerox Parc; Apple Lisa e Macintosh; MS-DOS: Microsoft, baseado no DOS, desenvolvido por Tim Paterson da Seattle Computer Products comprada por Bill Gates; Minix e Linux. 9 / 37

1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 10 / 37

O que é um Sistema Operacional? É o programa que realiza a interface entre o Hardware e o Software. Figura 2.1: Onde se encaixa o Sistema Operacional [Tanenbaum and Machado Filho, 1995] 11 / 37

Como funciona o Sistema Operacional Figura 2.2: Onde se encaixa o Sistema Operacional [Galvin et al., 2013] 12 / 37

Kernel É o núcleo ou coração do Sistema operacional; Área isolada da memória; Kernel monolítico; SYSCALL; Através dos device drivers, realiza a comunicação com os periféricos e dispositivos de entrada e saída. O computador diz ao dispositivo o que quer fazer. O dispositivo interpreta através do driver. 13 / 37

Gerência de processos 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 14 / 37

Gerência de processos Tipos de processamento Tarefas: Unidades de processamento sequencial que concorrem sobre um ou mais recursos computacionais de um sistema. [FARINES and MELO, 2000] A tarefa executada em um sistema operacional é chamada de processo. Processamento sequencial x Multiprogramação Programação concorrente: 1 Programas separados; 2 Threads. Interação em programação concorrente: Memória compartilhada; Troca de mensagens. 15 / 37

Gerência de processos Princípios Processos são programas que estão sendo executados em um espaço virtual de endereçamento exclusivo. Em sistemas Unix, processos são estruturas de dados que contém informações necessárias para a execução do programa, como conteúdo dos registradores e memória; Princípio básico: separar a operação de criação de um processo da operação de execução de um programa; São separadas por chamadas de função diferentes: fork() e exec(); fork() cria um processo que tem como pai o processo que a chamou; exec() cria um novo programa como uma sequência de processos, que tem como pai o contexto de execução, muitas vezes o próprio init. 16 / 37

Gerência de processos Multiprogramação Figura 2.3: Modelo de multiprogramação [Chagas, 2016] 17 / 37

Gerência de processos Estados dos processos Durante o ciclo de vida de um processo ele passa por diferentes estados. Em sistemas Unix [Guarezi and Silva, 2010] são: run Está sendo executado no processador; ready ou executável Dispõe de todos os recursos que precisa e está pronto para ser executado; sleep ou dormente Bloqueado à espera de algum recurso, e só pode ser desbloqueado se receber um sinal de outro processo; zumbi Caso cada vez mais raro, onde um processo é criado por um programa, que por sua vez é nalizado antes de receber o resultado do processo; parado Recebeu ordem do administrador para interromper a execução. Será reiniciado se receber um sinal de continuação (CONT). 18 / 37

Gerência de processos Threads Threads no Unix são implementadas através de funções da biblioteca libpthreads. Existem duas formas de partilhar a CPU [Souto, 2010]: PTHREAD_SCOPE_PROCESS Compartilhamento somente entre threads do mesmo processo. Implementadas no nível do usuário; PTHREAD_SCOPE_SYSTEM Compartilhamento entre todas as threads do sistema. Implementadas no nível do kernel. Curiosidade: o Linux implementa somente threads em nível do usuário. 19 / 37

Gerência de processos Escalonamento Normalmente o escalonamento é feito através um algoritmo de prioridade com round-robin; Para evitar starvation, cada vez que o processo é executado até o m do quantum sua prioridade diminui; O grupo POSIX dene três algoritmos de prioridade que podem ser utilizados em sistemas Unix: SCHED_FIFO FIFO preemptivo baseado em prioridades; SCHED_RR Round-robin conforme descrito; SCHED_OTHER Algoritmo que depende da implementação. Curiosidade - o quantum do Unix em round-robin é o mesmo há mais de 20 anos: 100ms [Neto, 2010]. 20 / 37

Gerência de processos Pipeline Figura 2.4: Algoritmo de pipeline [Chagas, 2016] 21 / 37

Gerência de memória 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 22 / 37

Gerência de memória Princípios Gerenciamento de memória consiste em manter o controle das partes da memória que estão sendo utilizadas e por quem, decidir que processos serão carregados para a memória quando houver espaço disponível, alocar e desalocar espaço quando necessário. [Dias, 2005] Alocar tanto memória principal quanto memória secundária; Alocação da memória secundária é papel do sistema gerenciador de arquivos. 23 / 37

Gerência de memória Memória virtual e paginação Sistemas Unix utilizam memória virtual e paginação; Estratégia de memória virtual armazena no disco partes do programa que não estão sendo utilizadas (swapping); O espaço de endereçamento virtual é divido em unidades de tamanho xo chamadas páginas; A conversão para um endereço físico é feita por um componente de hardware chamado MMU; O controle da MMU é feito pelo driver compilado com o kernel. 24 / 37

Gerência de memória Divisão da memória principal A memória principal é divida em alguns segmentos com função especíca: kernel Parte da memória reservada exclusivamente ao kernel de acesso restrito; buer do disco Parte que armazena os arquivos que serão enviados ao disco. O controle de escrita é feito pelo kernel, mas os arquivos só são enviados para o disco quando o buer está cheio; descritores de arquivo Contém partes das tabelas de descrição dos arquivos, para agilizar o acesso; programas O resto da memória é destinado aos programas. Importante: denir o tamanho de cada um dos espaços reservados na memória exceção feita ao kernel afeta bastante o desempenho do sistema operacional. 25 / 37

Gerência de arquivos 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 26 / 37

Gerência de arquivos O gerenciador de arquivos A memória, tanto principal quanto secundária, também é responsabilidade do Sistema Operacional. Quando salvamos o arquivo no disco, estamos executando as seguintes tarefas: 1 O programa pede ao sistema operacional para escrever o conteúdo de uma arquivo; 2 O sistema operacional repassa a tarefa para o gerenciador de arquivos (le manager), que é um subconjunto do SO; 3 O gerenciador de arquivos busca em uma tabela informações sobre o arquivo; 27 / 37

Gerência de arquivos O gerenciador de arquivos Quando salvamos o arquivo no disco, estamos executando as seguintes tarefas (continuação): 1 O gerenciador de arquivos busca em uma tabela a localização física do setor que deve conter o byte (cilindro, trilha, setor); 2 O gerenciador de arquivos instrui o processador de I/O (que libera a CPU de cuidar do processo de transferência) sobre a posição do byte na RAM, e onde ele deve ser colocado no disco; 3 O processador de I/O formata o dado apropriadamente, e decide o melhor momento de escrevê-lo no disco. 28 / 37

Gerência de arquivos Princípios Os discos são vistos pelo SO como uma série de blocos de tamanho xo; A alocação no disco não é realizada diretamente pelo SO; Uma chamada do sistema (SYSCALL) chama o driver do dispositivo que é compilado junto com o kernel; O driver informa a quantidade de espaço disponível no disco. 29 / 37

Gerência de arquivos Paradigma da computação: gargalo de Von Neumann Figura 2.5: Abordagem de Von Neumann Qual o problema da abordagem de Von Neumann? 30 / 37

Gerência de arquivos Unix como base O Unix é a base para quase tudo o que conhecemos como Sistema Operacional; Conhecer seu funcionamento é análogo a conhecer bem o computador; Sua grande contribuição só foi possível por causa de suas bases abertas, uma grande coincidência histórica; Grande questão do momento: desenvolvimento colaborativo (família BSD) ou sistemas comerciais (Apple, IBM, Oracle/Sun)? 31 / 37

Conclusão 1 Evolução 2 O Sistema Operacional Gerência de processos Gerência de memória Gerência de arquivos 3 Conclusão 32 / 37

Conclusão Resumo Sistemas operacionais fazem a interface entre o hardware e o software; Processos são tarefas executadas pela CPU; Threads são processos que possuem área de memória compartilhada; Os processos e/ou threads se comunicam através de mensagens ou memória. 33 / 37

Conclusão Chagas, F. (2016). Notas de aula do prof. fernando chagas. Dias, A. M. (2005). Noções de sistemas operacionais. Disponível em: http://www.dca.ufrn.br/ xamd/dca0800/cap03.pdf Acessado em 06/01/2011. FARINES, J. M. and MELO, R. (2000). Sistemas de Tempo Real, volume 1. IME-USP. Galvin, P. B., Gagne, G., and Silberschatz, A. (2013). Operating system concepts. John Wiley & Sons, Inc. Guarezi, D. J. and Silva, E. B. (2010). Processos em windows e unix. 34 / 37

Conclusão Disponível em: http://www.inf.ufsc.br/ magro/processos%20em%20windows%2 Acessado em 28/01/2011. Neto, D. O. G. (2010). Processos no unix. Disponível em: http://homepages.dcc.ufmg.br/ dorgival/slides/so/04bprocessosunix-6pp.pdf Acessado em 28/01/2011. Penn (2016). Foto do eniac. Silva, F. J. d. (2010). Histórico do sistemas operacionais. http://www.deinf.ufma.br/ fssilva/graduacao/so/aulas/historico.pdf Acessado em 08/06/2010. Souto, P. F. (2010). 35 / 37

Conclusão Sistemas operativos: Escalonamento de processos. Disponível em: paginas.fe.up.pt/ pfs/aulas/aso0708/at/at6.pdf Acessado em 28/01/2011. Tanenbaum, A. S. and Machado Filho, N. (1995). Sistemas operacionais modernos, volume 3. Prentice-Hall. 36 / 37

Conclusão OBRIGADO!!! PERGUNTAS??? 37 / 37