Conceitos e Estrutura do SO

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Sistemas Operacionais
Sistemas Operacionais Aula II
Arquitetura de Computadores
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Noções de Sistemas Operacionais
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Software Básico Silvio Fernandes
Arquitetura dos Microprocessadores 8086 e 8088
Capítulo 1 Introdução 1.1 O que é um sistema operacional
William Stallings Arquitetura e Organização de Computadores 8a Edição
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Introdução à Informática
Sistemas Operacionais
CISC e RISC.
EXPRESSÕES ARITMÉTICAS
SSC SISTEMAS OPERACIONAIS I
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SISTEMAS OPERACIONAIS (SO) Aula 2 – Revisão - Organização
SSC SISTEMAS OPERACIONAIS I Aula 4 – Conceitos Básicos
Maria Aparecida Castro Livi
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Estruturas de Controle
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Aula 2 Aspectos Preliminares
Aula 4 Nomes, Vinculações, Tipos e Escopos
09/03/10 20:13 Claudio de Oliveira – 1/21.
Sistemas Operacionais
Arquitetura de Computadores
Sistemas Operacionais I
Sistemas Operacionais
Professor Felipe Monteiro Lima
Introdução à Programação
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Arquitetura de computadores
Sistemas Operacionais
Sistemas Operacionais I
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Geração de Código Intermediário
Olhe fixamente para a Bruxa Nariguda
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
ESTRUTURA DO SISTEMA OPERACIONAL
Infra-Estrutura de Software
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Arquitetura de Sistemas Operacionais
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Contatos Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/gtalk: alexandrecordel@gmail.com greinaldo@fbv.edu.br Site: http://www.alexandrecordel.com.br/fbv Celular: (81) 9801-1878

Agenda Revisão sobre hardware de computadores Conceitos sobre Sistemas Operacionais Chamadas ao sistema Estrutura de Sistemas Operacionais

Revisão sobre hardware de computadores (1) Componentes de um computador pessoal simples

Processador Busca a 1ª instrução da memória; É o cérebro do computador – CPU. Ciclo Básico do Processador Busca a 1ª instrução da memória; Decodifica para determinar seus operandos e qual operação executar; Executa as operações subsequentes. O ciclo é repetido até que o programa pare. Cada CPU tem um conjunto específico de instruções. MMU (memory management unit): unidade de gerenciamento de memória.

Processador Clock (ciclo de instrução) Um computador é algo que possui funções, tarefas e coisas a fazer, ele precisa de um sinal de relógio para sincronizar as suas operações, assim como nós mesmos precisamos sincronizar as nossas. Esse relógio é chamado de CLOCK, e ele é gerado por um oscilador eletrônico que fornece uma sequência ininterrupta de pulsos com períodos constantes. A isso chamamos, de frequência. Portanto, quando falamos que um computador possui tanto de Hertz(Hz), estamos falando da velocidade que ele processa ou sincroniza algo.

Processador Clock (ciclo de instrução) A cada intervalo de tempo T, que corresponde a um período do sinal de clock, dá-se o nome de estado. O estado é a unidade básica de tempo do microprocessador. Cada instrução demora um número inteiro de estado para a sua completa execução. Algumas instruções podem ter 4 estados, isto é, demoram 4 períodos do sinal de clock, outras podem chegar a ter 18 estados. Por exemplo: O tempo gasto para processar uma instrução de 7 estados no microprocessador 8085 com um cristal que fornece um sinal externo do oscilador de 6,144 MHz é de , 2,28 microsegundos, pois a frequência do sinal de clock é de 3,072 MHz e o período, que corresponde ao estado, é de 325,52 ns(nano segundos).

Revisão sobre hardware de computadores (2) (a) Um pipeline de três estágios (b) Uma CPU superescalar

Revisão sobre hardware de computadores (3) Típica hierarquia de memória números mostrados são apenas aproximações

Registradores Registradores de propósito geral: armazena variáveis importantes e resultados temporários Contador de Programas: contém o endereço de memória da próxima instrução a ser buscada. Depois que busca é atualizado para apontar a próxima instrução. Ponteiro de Pilha: aponta para o topo da pilha atual na memória. A pilha contém uma instrução PSW (program status word – palavra de estado do programa): contém os bits de códigos de condições de instruções de comparação, pelo nível de prioridade da CPU.

Registrador Ponteiro de Pilha

Cache (L1, L2), RAM e ROM Cache hit vs. Cache Miss Cache: Memória extremamente rápida e cara. Cache hit vs. Cache Miss Cache L1 (16KB): dentro da CPU, decodifica instruções; Cache L2 (4MB): armazena memória recente, mais lenta. Memória RAM (4GB): volátil. Memória CMOS: data/hora, disco de boot. Memória ROM: boot, placas. Memória Flash (portáteis): intermediária entre a RAM e a de disco

Cache (a) Chip quad-core com cache L2 compartilhada. (b) Chip quad-core com cache L2 separada.

Revisão sobre hardware de computadores(4) Estrutura de uma unidade de disco (1 TB) Setores de 512 bytes / 5400, 7200 e 10800 rpm / braço setor – 1ms / braço disco – 5 a 10 ms

Revisão sobre hardware de computadores (6) Passos para iniciar um dispositivo de E/S e obter uma interrupção Como a CPU é interrompida

Revisão sobre hardware de computadores(7) Barramentos (8): Estrutura de um sistema Pentium grande BUS – Barramento Serial Universal

Conceitos sobre Sistemas Operacionais (1) Uma árvore de processos A criou dois processos filhos: B e C B criou três processos filhos: D, E, e F

Conceitos sobre Sistemas Operacionais (2) (a) Um deadlock potencial. (b) um deadlock real.

Conceitos sobre Sistemas Operacionais (3) Sistema de arquivos de um departamento universitário

Conceitos sobre Sistemas Operacionais (4) Antes da montagem, os arquivos do disco flexível são inacessíveis Depois da montagem do disco flexível em b, os arquivos do disco fazem parte da hierarquia de arquivos

Conceitos sobre Sistemas Operacionais (5) Dois processos conectados por um pipe

Interfaces de um Sistema Operacional Usuário – SO: Shell ou Interpretador de comandos GUI Programas – SO: Chamadas ao Sistema

Conceitos Básicos Chamadas ao Sistema (System Call) 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;

Conceitos Básicos Chamadas ao Sistema (System Call) 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;

Conceitos Básicos Chamadas ao Sistema (System Call) 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 SO tem acesso às instruções privilegiadas;

Conceitos Básicos Chamadas de Sistema (System Call) 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;

Conceitos Básicos Chamadas de Sistema TRAP: instrução que permite o acesso ao modo kernel; Exemplo: 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!!!

Chamadas ao Sistema Retorno Colocar o código para read no registrador TRAP Empilha nbytes Incrementa SP Comando read Empilha fd Empilha &buffer Manipulador de Chamadas Dispatch Endereço 0xFFFFFFFFF Biblioteca do Procedimento READ Chamada ao Kernel SO Espaço do Usuário 1 3 2 4 5 6 7 8 9 10 Tabela de ponteiros para Chamadas 11 Endereço 0

11 Passos de uma Chamada ao Sistema read (fd, buffer, nbytes)

Algumas Chamadas ao Sistema para Gerenciamento de Processos

Algumas Chamadas ao Sistema para Gerenciamento de Arquivos

Algumas Chamadas ao Sistema para Gerenciamento de Diretório

Algumas Chamadas ao Sistema para Tarefas Diversas

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 Retorno Colocar o código para read no registrador TRAP Empilha nbytes Incrementa SP Comando read Empilha fd Empilha &buffer Manipulador de Chamadas Dispatch 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

Chamadas ao Sistema (1) O interior de um shell:

Os processos têm três segmentos: Chamadas ao Sistema (2) Os processos têm três segmentos: texto, dados e pilha

Chamadas ao Sistema (3) Dois diretórios antes da ligação de /usr/jim/memo ao diretório /usr/ast/note link(“/usr/jim/memo”, “/usr/ast/note”) Os mesmos diretórios depois dessa ligação

Chamadas ao Sistema (4) Sistema de arquivos antes da montagem Sistema de arquivos depois da montagem

Chamadas ao Sistema (5) Algumas chamadas da interface API Win32

Estrutura dos Sistemas Operacionais – Baseados em Kernel (núcleo) Kernel é o núcleo do Sistema Operacional Provê um conjunto de funcionalidades e serviços que suportam várias outras funcionalidades do SO O restante do SO é organizado em um conjunto de rotinas não-kernel Interface com usuário Rotinas não kernel Kernel Hardware

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

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;

Estrutura dos Sistemas Operacionais - Monolítico 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; 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 de Sistemas Operacionais (1) Modelo simples de estruturação de um sistema monolítico

Estrutura dos Sistemas Operacionais - Monolítico

Estrutura dos Sistemas Operacionais - Monolítico Implementação de uma Chamada de Sistema Procedimentos de Serviço Programa de usuário 2 Programa de usuário 1 Chamada ao sistema (kernel) Memória Principal 1 2 TRAP 3 Tabela de Escalonamento 4 Serviços Programas de usuário rodam em modo usuário SO indexa em uma tabela um ponteiro para o processo responsável pela execução a chamada é concluída e o controle volta ao programa do usuário Rotinas do SO rodam em modo kernel chaveamento da máquina do modo usuário para o modo kernel e transferência do controle para o Sistema Operacional Sistema Operacional examina os parâmetros da chamada para determinar qual procedimento deve ser executado

Estrutura dos Sistemas Operacionais – Em camadas Possui uma hierarquia de níveis; 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; 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 Atualmente: modelo de 2 camadas

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

Estrutura dos Sistemas Operacionais – Máquina Virtual Idéia 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;

Estrutura dos Sistemas Operacionais – Máquina Virtual Principais conceitos: Monitor da Máquina Virtual (VMM): roda 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 máquina pode rodar um Sistema Operacional diferente;

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

Estrutura dos Sistemas Operacionais – Máquina Virtual A idéia de máquina virtual foi posteriormente utilizada em contextos diferentes: Programas MS-DOS: rodam em computadores 32bits; As chamadas feitas pelo MS-DOS ao Sistema Operacional eram realizadas e monitoradas pelo monitor da máquina virtual (VMM);

Estrutura dos Sistemas Operacionais – Máquina Virtual A idéia de máquina virtual foi posteriormente utilizada em contextos diferentes: 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;

Estrutura dos Sistemas Operacionais – Máquina Virtual A idéia de máquina virtual 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 Vantagens Flexibilidade; Desvantagem: Simular diversas máquinas virtuais não é uma tarefa simples  sobrecarga;

Estrutura dos Sistemas Operacionais – Micro-Kernel

Estrutura dos Sistemas Operacionais – Cliente/Servidor Reduzir o Sistema Operacional a um nível mais simples: Kernel: implementa a comunicação entre processos clientes e processos servidores  Núcleo mínimo; Maior parte do Sistema Operacional 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 processos servidores não têm 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

Tarefa para casa..... Ler capítulo 1 do Tanenbaum

Unidades Métricas Os prefixos métricos

Referências Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008. Modern Operating Systems 3 e. Prentice-Hall, 2008.