Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail.



Documentos relacionados
Mecanismo de Interrupção

Tipos de sistemas operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Everson Scherrer Borges João Paulo de Brito Gonçalves

Figura 01 Kernel de um Sistema Operacional

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I

Sistemas Operacionais. Prof. André Y. Kusumoto

1.2 Tipos de Sistemas Operacionais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

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

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Processos e Threads (partes I e II)

7 Processos. 7.1 Introdução

Sistema Operacional Correção - Exercício de Revisão

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Organização e Arquitetura de Computadores

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Arquitetura de Sistemas Operacionais

Sistemas Operacionais

Estruturas do Sistema de Computação

SISTEMAS OPERACIONAIS 2007

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Arquitetura e Organização de Computadores I

SISTEMAS OPERACIONAIS

Sistemas Operacionais Introdução. Professora: Michelle Nery

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

AULA 3 Introdução ao Software

Dispositivos de Entrada e Saída

4 Estrutura do Sistema Operacional Kernel

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Processamento de Dados

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

ENTRADA E SAÍDA DE DADOS

A Evolução dos Sistemas Operacionais

Sistemas Operacionais

Disciplina: Introdução à Informática Profª Érica Barcelos

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Sistemas Operacionais

Visão Geral de Sistemas Operacionais

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Sistemas Operacionais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Sistema Operacional LINUX

Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Sistemas Operacionais. Alexandre Meslin

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

Sistemas Operacionais Processos e Threads

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais

Introdução aos Computadores

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

6 - Gerência de Dispositivos

Arquitetura de Computadores - Revisão -

Organização de Computadores 1

SISTEMAS OPERACIONAIS. George Gomes Cabral

Sistemas Operacionais

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

Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN

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

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Estrutura, Processos e Threads

Introdução aos Sistemas

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

SISTEMAS OPERACIONAIS

Programação Concorrente Processos e Threads

5 Entrada e Saída de Dados:

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Sistemas Operacionais

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

Noções básicas de Informática: Software

Introdução a Computação

Introdução à Ciência da Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Infra-Estrutura de Software. Introdução. (cont.)

Transcrição:

SISTEMAS Introdução a Sistemas Operacionais Prof. Fabricio Alessi Steinmacher - email: OBJETIVOS Identificar as funções e os componentes de um Sistema Operacional; Diferenciar os tipos de Sistemas Operacionais existentes; Identificar os modelos de estruturas existentes de Sistemas Operacionais; Compreender os modos de acesso e o funcionamento de uma chamada ao sistema ("system call"); Compreender a importância e o funcionamento dos mecanismos de interrupção; Compreender os fundamentos de sistemas concorrentes. CONCEITOS FUNDAMENTAIS DE SISTEMAS INTRODUÇÃO As características de um Sistema Operacional e a importância desse sistema em um ambiente computacional. Para isso, trataremos de dois conceitos muito importantes para o entendimento dos sistemas modernos: interrupções e chamadas ao sistema. Serão abordados, também, os principais tipos de Sistemas Operacionais e suas características. Conceitos Fundamentais de Sistemas Operacionais; Classificação de Sistemas Operacionais; Estruturas dos Sistemas Operacionais Modernos; Interrupções; Conceitos de Concorrência. Sistema Operacional é um conjunto de programas (software) responsável por: fazer a interface com os usuários; gerenciar recursos; fazer a interface com o hardware. Funções adicionais: contabilização de uso, segurança de acesso, auditoria. CONCEITOS FUNDAMENTAIS DE SISTEMAS CONCEITOS FUNDAMENTAIS DE SISTEMAS Cada parte (módulo ou função) de um Sistema Operacional é responsável pelo gerenciamento de um recurso específico. Esses recursos são: Tempo de CPU; Espaço em memória; Espaço em disco; O Sistema Operacional é o intermédio entre o usuário e o hardware Acesso aos dispositivos de comunicação; Bibliotecas de software. 1

CONCEITOS FUNDAMENTAIS DE SISTEMAS Gerenciar recursos é garantir a utilização compartilhada do recurso sem que ocorram erros que possam gerar instabilidade ou falha no sistema. Na visão do usuário, o Sistema Operacional fornece: Acesso ao sistema; Possibilidade de criar e gerir arquivos e diretórios; Ambiente para execução de programas; Acesso aos dispositivos de E/S; Acesso ao conteúdo de arquivos; Detecção de erros. A classificação é utilizada como uma forma sintética de apresentar, em poucas palavras, as características de um Sistema Operacional. Sistemas Monotarefa x Sistemas Multitarefa Sistemas Monousuário x Sistemas Multiusuário Sistemas Monoprocessados x Sistemas Multiprocessados Sistemas Monotarefa x Sistemas Multitarefa Definem a capacidade de gerenciar mais de uma tarefa ao mesmo tempo. Monotarefa: Admite e gerencia apenas uma tarefa em execução por vez. Exemplo: DOS. Multitarefa: Admite e gerencia várias tarefas em processamento concorrente. Exemplo: Windows XP, Windows 7, Linux, MacOS. Executa Espera Executa Espera Monotarefa Programa A Executa Espera Executa Espera Programa B Espera Executa Espera Executa Multitarefa Sistemas Monousuário x Sistemas Multiusuário Definem a capacidade de gerenciar mais de um usuário ao mesmo tempo, compartilhando os mesmo recursos de software e hardware. Monousuário: Admite e gerencia apenas um usuário não permite que mais de um usuário esteja "logado" simultaneamente. Exemplo: Windows XP, Windows NT (exceto versão com Terminal Server). Atenção: Todo Sistema Operacional Multiusuário é, obrigatoriamente, Multitarefa, pois cada usuário representa, no mínimo, uma tarefa para ser executada. Multiusuário: Admite e gerencia vários usuários permite que mais de um usuário esteja "logado" simultaneamente. Exemplo: Linux, VMS. 2

AULA 13/03 Sistemas Monoprocessados x Sistemas Multiprocessados Possuem a capacidade de reconhecer e gerenciar computadores com mais de um processador. Monoprocessado: Somente reconhece e utiliza um processador. Exemplo: Windows 98. Outros sistemas com finalidades específicas Sistemas em Tempo Real Sistemas que possuem um forte vínculo com o tempo. O resultado só é considerado correto se a execução acontecer no tempo previsto. O sistema deve garantir que uma tarefa possua todos os recursos necessários para sua execução em um intervalo de tempo pré-definido. Ex. Monitor de Batimentos Cardíacos Multiprocessado: Reconhece e utiliza mais de um processador. Exemplo: Windows XP, Windows 7, Linux. Atenção: Não se trata de velocidade de processamento, e sim de garantia de tempo de resposta. Outros sistemas com finalidades específicas Sistemas Embarcados Sistemas inseridos em produtos com funções específicas, como telefones celulares. Atenção: Nem todo dispositivo eletrônico possui um microcontrolador, e nem todo aparelho com microcontrolador possui um Sistema Operacional. ESTRUTURAS DOS SISTEMAS MODERNOS Um velho conhecido pelos usuários de microcomputadores é a famosa "tela azul". Quem já utilizou sistemas operacionais antigos, como o Windows 95, certamente já se deparou com este problema. A "tela azul" era de fato uma violação de acesso que tornava o sistema instável. ESTRUTURAS DOS SISTEMAS MODERNOS A partir do 80386, esse problema foi solucionado em termos de hardware através da possibilidade de 2 modos de execução: o modo protegido e o modo real. Ficava a cargo do sistema operacional a comutação entre esses dois modos por questões de compatibilidade. A instabilidade evidenciada pela "tela azul" tem razões históricas. Os primeiros processadores da linha x86 possuíam um único modo de operação: o modo real. Dessa forma, todas as operações poderiam ser executadas diretamente pelas aplicações que, ao produzir erros, geravam panes no sistema. Modo Usuário x Modo Kernel As aplicações são executadas em modo usuário, ou seja, modo que não possui privilégios para operações que coloquem o sistema em risco, tais como, escrever no disco, criar novas tarefas, etc. Quando essas aplicações precisam executar tarefas críticas, é necessário que haja uma mudança para modo Kernel (núcleo do Sistema Operacional, responsável pelas tarefas críticas do sistema). Essa mudança ocorre através de uma "system call" (chamada ao sistema). System Call (Chamada ao Sistema): Mecanismo responsável pela mudança de modo usuário para modo kernel. Ao invés de executar diretamente funções no kernel, a aplicação executa uma função intermediária, que verifica se o acesso ao kernel é seguro e, só então, completa a operação. 3

ESTRUTURAS DOS SISTEMAS MODERNOS Voltando à "tela azul"... As aplicações podiam executar diretamente as funções do kernel sem a proteção da mudança de modo, ou seja, o erro acontecia após a execução de uma função do kernel. Com a mudança de modo, se a execução não for segura, a aplicação será impedida de continuar a execução e o sistema permanecerá estável. Exemplo do Linux de uma chamada ao sistema LINGUAGEM DE COMANDOS. AULA 23/03 Exemplo do Linux de uma chamada ao sistema Invocação Wrapper Handler setitimer(itimer_virtual, &timer, NULL); _syscall1(unsigned int, alarm, unsigned int, seconds) _system_cal() Mudança de Modo A Linguagem de comandos, ou linguagem de controle, permite que o usuário se comunique de uma forma mais simples com o sistema operacional, capacitandoo a executar diversas tarefas especificas do sistema como criar, ler ou eliminar arquivos, consultar diretórios ou verificar a data e a hora armazenadas no sistema. Dessa forma o usuário dispõe de uma interface direta com o sistema operacional. Rotina de serviço unsigned int alarm(unsigned int seconds) Exemplos de comandos Dos: dir, cd, del, mkdir Exemplos de comando Linux: ls, cd, date, mv, mkdir Cada comando, depois de digitado pelo usuário, é interpretado pelo Shell ou interpretador de comandos, que verifica a sintaxe do comando, faz chamadas a rotina do sistema e apresenta o resultado ou uma mensagem informativa. Em geral o interpretador de comandos não faz parte do nucleo do S.O, possibilitando maior flexibilidade na criação de diferentes linguagens do controle para um mesmo sistema. Tipos de Estrutura AULA 17/03 20/03 PAG. 40 LIVRO Os sistemas são classificados em relação às atribuições do kernel e a relação entre seus módulos em monolíticos, camadas e microkernel. Os sistemas modernos são divididos em dois grandes grupos: Arquitetura monolítica; Microkernel. A diferença entre elas está nas atribuições do núcleo do Sistema Operacional, denominado KERNEL. 4

Tipos de Estrutura Essa característica é muito importante no projeto de um Sistema Operacional e foi alvo de discussão entre dois grandes nomes da computação: Andrew Tanenbaum e Linus Torvalds. De um lado, Torvalds defendia um kernel monolítico por ser mais rápido e, de outro, Tanenbaum defendia o microkernel pela elegância e facilidade de adaptação e substituição de módulos. Quem ganhou? Os dois. Arquitetura Monolítica Todo o kernel é compilado e "linkado" em um único bloco, tornando o código eficiente, porém de difícil manutenção. A inclusão ou exclusão de um módulo requer que todo o kernel seja recriado. Nota: O kernel do Linux incorporou características modulares. Link: http://oreilly.com/catalog/opensources/book/appa.html Arquitetura Monolítica LEITURA APROFUNDADA DO CONTEÚDO DE SISTEMAS. LIVRO: ARQUITETURA DE SISTEMAS 4º EDIÇÃO FRANCIS BERENGER MACHADO, PAGINAS 15 ATE A PAG. 100 Arquitetura Microkernel Somente as funções críticas fazem realmente parte do kernel. Demais funções são tratadas como tarefas e executam em modo usuário, fazendo chamadas ao kernel quando necessário. Essa arquitetura simplifica a manutenção, inclusão e exclusão de módulos do Sistema Operacional, não sendo necessário gerar um novo kernel a cada modificação e nem mesmo reiniciar o computador para ativação e desativação do módulo. AULA 23/03 Arquitetura Microkernel 5

Exercícios pg. 61: 1,2,3,4,5,6,8 Conceitue arquitetura microkernel Conceitue arquitetura monolítica, quais S.O utilizam CONCORRÊNCIA PG 40 Compartilhar recursos significa que diferentes usuários ou programas usam os recursos de forma concorrente. Os recursos são limitados e, assim, o uso dos mesmos pelos diferentes programas ou usuários precisa ser controlado e administrado de forma a evitar possíveis conflitos ou uma alocação por tempo indeterminado de algum recurso. CONCORRÊNCIA MONOPROGRAMÁVEIS X MULTIPROGRAMÁVEIS Concorrência é a capacidade de execução concorrente de tarefas, permitindo um melhor aproveitamento de recursos. Uma tarefa pode deixar a CPU por vontade própria, quando precisa aguardar por um recurso, ou por uma interrupção. Em particular, uma interrupção de temporizador provoca a substituição da tarefa em execução, criando uma alternância entre as tarefas. Monoprogramáveis: somente um programa pode estar em execução por vez, permanecendo o processador dedicado, exclusivamente, a essa tarefa. Há um desperdício na utilização do processador. Multiprogramáveis: Vários programas podem estar residentes em memória concorrendo pela utilização do processador. Quando um programa solicita uma operação de E/S outros pode utilizar o Processador, neste caso a UCP permanece menos tempo ociosa. ** O throughput pode ser traduzido como a taxa de transferência efetiva de um sistema. 6

CONCORRÊNCIA PG. 41 ATENÇÃO: A alternância entre as tarefas pode dar a impressão de execução simultânea de tarefas, mas não é o que ocorre. São sinais de hardware fundamentais para a existência de sistemas multitarefa, pois provocam a suspensão da tarefa em execução pela ocorrência de um evento externo, permitindo que outras tarefas compartilhem o tempo de uso do processador. ATENÇÃO: Neste caso, o que está sendo compartilhado é o TEMPO DE USO do processador e NÃO o processador em si. Cada tarefa utiliza 100% do processador. INTERUPÇÕES 1. Controlador do dispositivo ativa uma linha de interrupção no barramento de sistema para iniciar a seqüência de interrupção. 2. Ativação no barramento de um sinal de reconhecimento da interrupção. Interrupção Ações do Hardware 9 3. Controlador do dispositivo vetor de interrupção. 4. Processador remove o vetor de interrupção do barramento e salva seu valor temporariamente. 5. Pilha armazena o conteúdo do PC e do registrador contendo a PSW. 6. Processador localiza um novo PC com a ajuda do vetor de interrupção (índice para a tabela situada na parte baixa da memória). 7. Salvar o conteúdo dosstradores - restauração posterior. 8. Vetor de interrupção é compartilhado por todos os dispositivos de um mesmo tipo (não se sabe qual terminal causou a interrupção). 9. Obtenção de outra informação sobre a interrupção. Interrupção. 10. Correção de algum erro de E/S. 11. Atualização das variáveis envolvidas. 12. Geração de código especial para informar ao dispositivo ou controlador do dispositivo que uma interrupção está sendo processada. 13. Restauração dos valores originais dos registradores. 14. Execução da instrução RETURN FROM INTERRUPT. Processador continua a execução do programa. TIPOS DE. Parte do mecanismo é executada pelo hardware (identificação do dispositivo, empilhamento dos registradores de sistema) e parte é feita por software através da Rotina de Tratamento da Interrupção (interrupt handler). Hardware: Pedidos de dispositivos periféricos, relógio do sistema, circuitos de monitorização de energia. Software: Uma interrupção causada por um programa (chamada ao sistema - SVC). Exceção: Ocorrem devido a utilizações indevidas de instruções ou de dados (e.g., divisão por zero, acesso a uma posição de memória protegida, overflow, etc.). 7

As interrupções são geradas por dispositivos de hardware e podem ocorrer de forma síncrona ou assíncrona. Relógio (temporizador) síncrona Dispositivos de E/S (sinalização de conclusão) assíncrona Falha de hardware (paridade de memória, erro de disco, etc.) assíncrona Assíncrona:Eventos imprevisíveis pode ocorrer múltiplas vezes, como no caso de diversos dispositivos de E/S informarem ao processador que estão prontos para transmitir ou receber dados. Síncrona: Quando é resultado direto da execução do programa corrente. O termo interrupção é muitas vezes utilizado para qualquer atividade que suspenda a execução de uma tarefa, mesmo que seja solicitada pelo próprio programa. Utilizaremos, para este fim, o termo "estado de exceção". Estados de exceção: são provocados pela própria aplicação. Estouro aritmético; Divisão por zero; Instrução ilegal; Acesso não permitido; Chamadas ao sistema. AULA 30/03 ATENÇÃO: Mascaramento de interrupções: Capacidade de inibir a ação de uma interrupção. As interrupções de segurança não podem ser mascaradas. Tipos de Interrupções As interrupções podem acontecer de forma sequencial ou em cascata. 8

Interrupção Sequencial Uma interrupção só poderá ser atendida se nenhuma outra estiver em atendimento. A Rotina de Serviço desabilita as interrupções; Uma nova interrupção só é tratada após o retorno; A interrupção pode demorar a ser tratada, o que pode eventualmente ocasionar uma perda de dados; Finalizada a Rotina de Serviço de Interrupção, o processador verifica por interrupções adicionais. Interrupção Sequencial Interrupção em Cascata Uma interrupção pode interromper a ação de uma rotina de tratamento de outra interrupção. Interrupções têm prioridade; Interrupções com alta prioridade interrompem Rotinas de Serviço de Interrupções de menor prioridade. Interrupção em Cascata INTRODUÇÃO A SISTEMAS Exercícios de Fixação 1. São funções do Sistema Operacional: a) Gerenciar recursos de hardware e fornecer um aplicativo para navegação na Internet. b) Gerenciar recursos de hardware e interface com o usuário. c) Interface com o usuário e correção ortográfica. d) Gerenciar recursos de software e interromper uma tarefa em execução. 9

1. São funções do Sistema Operacional: a) Gerenciar recursos de hardware e fornecer um aplicativo para navegação na Internet. b) Gerenciar recursos de hardware e interface com o usuário. c) Interface com o usuário e correção ortográfica. d) Gerenciar recursos de software e interromper uma tarefa em execução. 2. Para que uma aplicação execute instruções privilegiadas deverá executar um(a): a) Arquivo específico para gerenciamento de hardware. b) Interrupção de hardware. c) Solicitação ao administrador do sistema. d) Chamada ao sistema. 2. Para que uma aplicação execute instruções privilegiadas deverá executar um(a): a) Arquivo específico para gerenciamento de hardware. b) Interrupção de hardware. c) Solicitação ao administrador do sistema. d) Chamada ao sistema. 3. O uso de interrupções permite a utilização de: a) Sistemas concorrentes. b) Comunicação de dados. c) Dispositivos de hardware como, teclado e mouse. d) Bibliotecas de software 3. O uso de interrupções permite a utilização de: a) Sistemas concorrentes. b) Comunicação de dados. c) Dispositivos de hardware como, teclado e mouse. d) Bibliotecas de software INTRODUÇÃO A SISTEMAS Extras 10

LINKS Navegando pelo kernel do Linux - http://lxr.linux.no/ EXERCÍCIOS LIVRO PAGINA 49 NO LIVRO EM PDF PG 60 1, 2, 3, 4, 5 11