Sistemas Operacionais

Tamanho: px
Começar a partir da página:

Download "Sistemas Operacionais"

Transcrição

1 Sistemas Operacionais

2 Sistema Operacional na Visão do Usuário A interface disponível a um tipo de usuário fornece a imagem do sistema operacional.

3 Sistema Operacional na Visão do Usuário Essa interface, assim como a imagem, é formada pelas chamadas de sistema e pelos programas de sistema.

4 Sistema Operacional na Visão do Usuário O Sistema Operacional é um programa que controla e coordena todas as operações de um sistema de computação. É, muitas vezes, também chamado de Supervisor, Monitor, Executivo ou Controlador.

5 Sistema Operacional na Visão de Projeto Na visão de projeto, o mais importante é como o SO está organizado internamente. Esta visão corresponde à forma como o SO implementa os seus serviços. Normalmente, o processador está executando programas do usuário, somente quando ocorre algum evento especial, o SO é ativado. Dois Tipos De Eventos ativam o SO: Chamada de sistema Interrupção de Hardware.

6 Sistema Operacional na Visão de Projeto A Chamada de Sistema corresponde a uma solicitação de serviço por parte do programa em execução.

7 Sistema Operacional (SO) É uma camada de software colocada entre o hardware e os programas que executam tarefas para os usuários. O SO é responsável pelo acesso aos periféricos. Sempre que um programa necessita de algum tipo de operação de entrada e saída, ele a solicita ao SO.

8 Sistema Operacional (SO) Assim, como todos os acessos aos periféricos são feitos através do SO, ele pode controlar qual programa está acessando qual recurso. É possível, então, obter uma distribuição justa e eficiente dos recursos.

9 Tipos de Sistema Operacional (SO) SISTEMAS MONOLÍTICOS

10 Tipos de Sistema Operacional (SO) SISTEMAS MONOLÍTICOS O SO é escrito na forma de um conjunto de procedimentos que podem fazer chamadas entre si e pelos programas usuários. A estrutura monolítica neste caso é comparada a uma aplicação formada por diversos procedimentos que são compilados de forma separada e depois ligados ( linkados ), formando assim um ÚNICO E GRANDE PROGRAMA EXECUTÁVEL. Exemplo: MS-DOS, DR-DOS, CPM/80

11 Tipos de Sistema Operacional (SO) SISTEMAS EM CAMADAS

12 Tipos de Sistema Operacional (SO) SISTEMAS EM CAMADAS Um sistema em camadas divide o SO em camadas sobrepostas, onde cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos. Módulos de uma camada podem fazer referências apenas a módulos das camadas inferiores. A vantagem neste tipo de estruturação é isolar as funções do SO, facilitando sua alteração e depuração, além de criar uma hierarquia de níveis de acesso que permite proteger as camadas mais internas

13 Tipos de Sistema Operacional (SO) MONOUSUÁRIO Quando a máquina só atende um usuário de cada vez

14 Tipos de Sistema Operacional (SO) MULTIUSUÁRIO, Quando a máquina atende mais de um usuário ao mesmo tempo

15 Tipos de Sistema Operacional (SO) MONOTAREFA/MONOPROGRAMÁVEL Quando a máquina só executa um processo de cada vez. MULTITAREFA/MULTIPROGRAMÁVEL Quando a máquina executa mais de um processo ao mesmo tempo.

16 Tipos de Sistema Operacional (SO) MONOPROCESSAMENTO Quando a máquina só possui um processador na CPU.

17 Tipos de Sistema Operacional (SO) MULTIPROCESSAMENTO Quando a máquina possui mais de um processador na CPU. Mainframes que permitiam o acoplamento de duas CPU s

18 Tipos de Sistema Operacional (SO) MONO x MULTI

19 Tipos de Sistema Operacional (SO) Multi-Platform Multi-Core Architecture

20 Tipos de Sistema Operacional (SO) Multi-Platform Multi-Core Architecture

21 Tipos de Sistema Operacional (SO) LOTE ( BATCH )

22 Tipos de Sistema Operacional (SO) LOTE ( BATCH ) Nestes sistemas os programas são agrupados fisicamente, (colocados no mesmo arquivo) e processados sequencialmente. Foram usados sistemas deste tipo na época dos Mainframes com cartão perfurado, onde muitas vezes o processador ficava subutilizado aguardando a leitora de cartões ou a impressora terminarem sua tarefa, pois estes eram muito mais lentos que a CPU

23 Tipos de Sistema Operacional (SO) LOTE ( BATCH )

24 Tipos de Sistema Operacional (SO) TEMPO COMPARTILHADO ( TIME SHARING )

25 Tipos de Sistema Operacional (SO) TEMPO COMPARTILHADO ( TIME SHARING ) São sistemas onde o usuário tem a impressão de estar sendo atendido no instante em que submete um comando ao computador. Este sistema é implementado, utilizando um relógio (clock) que provoca interrupções no processador a intervalos regulares, tipicamente 16,67 ms, e a cada interrupção o processador alterna de processo (ou de usuário), causando a impressão de estar atendendo vários ao mesmo tempo

26 Tipos de Sistema Operacional (SO) TEMPO REAL ( REAL TIME )

27 Tipos de Sistema Operacional (SO) TEMPO REAL ( REAL TIME ) São um caso particular de sistemas de tempo repartido, onde se garante que o mínimo tempo entre uma passada e outra do processador por um processo é suficiente para evitar a perda de dados. São aplicados em sistemas de controle industriais ou críticos. Ex.: Um sistema computadorizado de regulagem de temperatura de uma fornalha que deve mostrar a temperatura do forno várias vezes num determinado período de tempo, cuidando para que a temperatura não sofra variação

28 Tipos de Sistema Operacional (SO) MÁQUINA VIRTUAL Uma máquina virtual é uma cópia via software que busca simular uma máquina real. Uma máquina virtual (Virtual Machine VM) pode ser definida como uma duplicata eficiente e isolada de uma máquina real. Máquina Virtual é um computador fictício criado por um programa de simulação. Sua memória, processador e outros recursos são virtualizados.

29 Tipos de Sistema Operacional (SO) MÁQUINA VIRTUAL

30 Tipos de Sistema Operacional (SO) MÁQUINA VIRTUAL A virtualização é a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução. Os emuladores são máquinas virtuais que simulam computadores reais. São bastante conhecidos os emuladores de vídeogames antigos e os emuladores de microcomputadores, como o VMware, o Virtual PC e o VirtualBox, software livre da Sun Microsystems.

31 Tipos de Sistema Operacional (SO) EMULAÇÃO

32 Objetivos do Sistema Operacional (SO) Segundo Tanenbaum, o Sistema Operacional possui, basicamente, duas funções: Estender a Máquina e Gerenciar Recursos. Estas funções permitem que o computador seja utilizado com Eficiência e Conveniência. Eficiência Distribuir os recursos do sistema entre os programas: tempo de processador, espaço na memória principal, impressora, espaço em disco, acesso a disco, etc. Melhor utilização dos recursos do sistema. Conveniência Omitir dos usuários os detalhes de acesso ao hardware. Diminuir o tempo necessário a construção de programas.

33 Tipos de Serviços do Sistema Operacional Para atingir os objetivos propostos, o sistema operacional oferece diversos serviços, como por exemplo: 1. Criação de programas 2. Execução de programas 3. Gerenciamento na utilização da memória disponível 4. Acesso a dispositivos de E/S 5. Controle de acesso a arquivos (Sistema de Arquivos) 6. Manutenção das informações do sistema 7. Detecção de erros 8. Serviços de Segurança

34 Características dos SO Modernos Interface Gráfica extremamente amigável ao usuário final Recurso Plug And Play suporte a Rede e a Internet Explora ao máximo os recursos de hardware disponível (memória, I/O, processamento) Permite compatibilidade com programas feitos para versões anteriores do mesmo SO ( instruções fósseis ) Execução de programas destinados para outros SO ( emulação ) Disponibilidade de segurança aos dados e privacidade ao usuário Multitarefa Preemptiva ou Antecipativa ( Cooperativa nos anteriores ) Multithreading Não vulnerável a Crash ou travamentos ou Deadlock.

35 Processadores

36 Processadores Unidade de busca A unidade de busca é encarregada de carregar as instruções da memória. Primeiro ela vai verificar se a instrução requisitada pelo processador está no cache de instrução L1. Caso não esteja, ela vai para a memória cache L2. Caso não esteja, ela vai para a memória cache L3. Se a instrução também não estiver lá, então ela tem que carregar diretamente da lenta memória RAM

37 Processadores Unidade de Decodificação A unidade de decodificação irá então verificar o que aquela instrução específica faz. Ela faz isso através de consulta à memória ROM que existe dentro do processador, chamada microcódigo. Cada instrução que um determinado processador compreende possui seu próprio microcódigo. O microcódigo vai ensinar ao processador o que fazer.

38 Processadores Unidade de Execução A unidade de execução irá então finalmente executar a instrução. Normalmente processadores modernos não possuem diversas unidades de execução idênticas. Eles têm unidades de execução especializadas em um tipo de instruções. FPU (Float Point Unit) ALU (Arithmetic and Logic Unit)

39 Processadores CISC (Complex Instruction Set Computer) Um processador CISC, ou "computador com um conjunto complexo de instruções", é capaz de executar várias centenas de instruções complexas diferentes de forma nativa, sendo extremamente versátil e objetivando assim diminuir o número de instruções que um programa necessita para ser implementado. A tecnologia conhecida como CISC possui um conjunto de instruções grande e uma área denominada microcódigo, responsável por armazenar como o processador deve manipular cada instrução.

40 Processadores CISC (Complex Instruction Set Computer) Atom's pipeline

41 Processadores CISC (Complex Instruction Set Computer) Melhorar o desempenho significa reduzir o termo à esquerda do sinal de igual (=), porque quanto menor for o tempo que um programa demora a ser executado, melhor será o desempenho do sistema. As máquina CISC tentam atingir este objetivo reduzindo o primeiro termo à direita do sinal de igual, isto é, o número de instruções por programa.

42 Processadores CISC (Complex Instruction Set Computer) CISC RISC

43 Processadores RISC (Reduced Instruction Set Computer) A arquitetura RISC é constituída por um pequeno conjunto de instruções simples que são executadas muito mais rapidamente. A solução para construir processadores mais rápidos é a utilização da tecnologia RISC. Ao contrário da tecnologia CISC, processadores RISC são muito simples de serem construídos, pois não possuem decodificador de instruções ou microcódigo. RS/6000, AIX, SPARC, POWER3, POWER2 e PowerPC são exemplos RISC.

44 Processadores RISC (Reduced Instruction Set Computer)

45 RISC x CISC

46 RISC x CISC

47 RISC x CISC

48 RISC x CISC

49 RISC x CISC

50 Processadores RISC (Reduced Instruction Set Computer) Um conjunto de instruções de computadores é dito ortogonal se EXISTE COMPATIBILIDADE dos modos de endereçamento de todas as instruções. A palavra ortogonal significa ângulo fechado. É uma analogia geométrica a decisão de parâmetros para as instruções, ou seja, a primeira escolha (modo de endereçamento) independe da segunda, e vice versa. Isto pode significa uma facilidade extrema no aprendizado do conjunto de instruções. Porém estes conjuntos de instruções causa uma complexidade extrema na estrutura de micro-programação do microprocessador.

51 Processadores Híbridos Cada vez mais as tecnologias RISC e CISC estão se aproximando. Os processadores RISC estão aumentando seu conjunto de instruções e os CISC estão adotando técnicas originalmente implementadas nos RISC. Por exemplo, o número de ciclos por instrução é bastante similar em ambos. A solução para o problema foi a construção de um processador híbrido. O processador internamente é um processador RISC o que, teoricamente, o tornaria muito mais rápido. E para compreender instruções CISC, há um decodificador CISC à sua entrada, que transforma as instruções CISC recebidas, em tantas instruções RISCequivalentes quanto forem necessárias para executar a tarefa pretendida.

52 Processadores Híbridos

53 Processadores Híbridos A maior ameaça para as arquiteturas RISC e CISC pode não ser nenhuma delas (por oposição à outra), mas uma nova arquitetura denominada EPIC (Explicit Parallel Instruction Computer). Como se pode depreender da palavra paralelo a arquitetura EPIC pode executar várias instruções em paralelo umas com as outras. Esta filosofia foi criada pela Intel e é, de certa forma, a combinação das arquiteturas RISC e CISC.

54 Processadores Híbridos EPIC (Explicit Parallel Instruction Computer).

55 Processadores Híbridos

56 Tarefa O primeiro sistema multitarefa foi o britânico LEO III, Monotarefa - os primeiros computadores apenas permitiam executar uma única tarefa de cada vez. ( Apple DOS)

57 Tarefa Cada processador pode executar apenas UM PROGRAMA/TAREFA de cada vez. Por esta razão, a multitarefa num sistema monoprocessado é apenas uma ilusão conseguida com a alternância rápida entre as várias tarefas. A Multitarefa Preemptiva foi implementada no Unix em O primeiro passo para a Multitarefa no MS-DOS foi a criação dos TSR ( Terminate and Stay Resident ). Eram pequenos programas que permaneciam em memória enquanto se executava outro programa, e que podiam instalar rotinas de tratamento de interrupções para serem ativados posteriormente. ( Quickside )

58 Tarefa O usuário utilizando um processador de texto, por exemplo, poderia apertar uma combinação de teclas que dispararia uma interrupção e chamaria a TSR de uma agenda pessoal para tirar notas. Assim, do ponto de vista do processador, o processo do processador de texto era bloqueado e passava-se o controle para a agenda. Quando o utilizador terminasse, voltava-se ao processador. Ambos programas coexistiam, mas não podiam ser executados simultaneamente.

59 Tarefa O passo seguinte foi a Emulação de Multitarefa. Exemplos disto eram as primeiras versões de Windows, que este executava sobre DOS ( Monotarefa ), mas o núcleo do Windows fazia a sua própria gestão dos processos. Consequentemente, se um processo bloqueasse o Windows, todas as aplicações teriam que ser terminadas pois eram todas dependentes. Posteriormente, surgiu um dos principais componentes dos SO atuais: o Escalonador de processos, ou Scheduler, que faria a gestão, qualificação e o gerenciamento de prioridade dos processos sem afetar o núcleo do sistema operativo.

60 Tarefa Um programa (tarefa) é uma sequência de instruções, composto por desvios, repetições (iterações) e chamadas de procedimentos e/ou funções. Em um ambiente de programação monothread, um processo suporta apenas um programa no seu espaço de endereçamento e apenas uma instrução do programa é executada. Caso seja necessário criar-se aplicações concorrentes e paralelas são implementados múltiplos processos independentes e/ou subprocessos. A utilização de (sub)processos independentes permite dividir uma aplicação em partes que podem trabalhar de forma concorrente.

61 Processo O conceito de processo pode ser definido como sendo o ambiente onde se executa um programa. Um mesmo programa pode produzir resultados diferentes, em função do processo no qual ele é executado. Se um programa necessitar abrir cinco arquivos simultaneamente, e o processo onde será executado só permitir que se abram quatro, o programa será interrompido durante a sua execução. O processo pode ser dividido em três elementos básicos, que juntos mantêm todas as informações necessárias à execução do programa: 1. CONTEXTO DE HARDWARE 2. CONTEXTO DE SOFTWARE 3. ESPAÇO DE ENDEREÇAMENTO

62 Processo

63 Processo Os Processos têm uma série de Threads associadas. Tipicamente, cada PROCESSO ou SUBPROCESSO tem um DETERMINADO ESPAÇO DE ENDEREÇAMENTO PROTEGIDO. Cada THREAD tem o SEU PRÓPRIO ESTADO DE PROCESSADOR e a sua PRÓPRIA PILHA.

64 Thread As threads compartilham o mesmo endereçamento sem proteção, permitindo que uma altere os dados de outra. threads trabalham cooperativamente, desempenhando tarefas em conjunto. Existem 2 categorias: 1. nível de usuário (ULT - User Level Thread) 2. nível de kernel (KLT - Kernel Level Thread) Exemplo: Em um CHAT, enquanto uma thread lê o que é digitado outra thread apresenta o que foi digitado.

65 Thread Nível De Usuário (ULT - User Level Thread) Threads em modo usuário são implementas por chamadas a uma biblioteca de rotinas que são linkadas e carregadas em tempo de execução (run-time) no mesmo espaço de endereçamento do processo e executadas em modo usuário. O sistema operacional não sabe da existência de múltiplos threads, sendo responsabilidade da biblioteca gerenciar e sincronizar os diversos threads existentes.

66 Thread Nível de Usuário (ULT - User Level Thread)

67 Thread Nível de Kernel (KLT - Kernel Level Thread) Threads em modo kernel são implementadas diretamente pelo núcleo do sistema, por chamadas ao sistema (system calls) que oferecem todas as funções de gerenciamento e sincronização. O sistema operacional (escalonador) sabe da existência de cada thread e pode escalona-los individualmente. No caso de múltiplos processadores, os threads de um mesmo processo podem ser executados simultaneamente.

68 Thread Nível de Kernel (KLT - Kernel Level Thread)

69 Hybrid Thread Nesta arquitetura existe a intenção de combinar as vantagens de threads implementados em modo usuário e modo kernel. Para facilitar a explicação deste modelo, chamaremos os threads em modo kernel de TMKs e os de modo usuário de TMUs. Um processo pode ter vários TMKs e, por sua vez, um TMK pode ter vários TMUs. O núcleo do sistema reconhece os TMKs e pode escaloná-los individualmente. Um TMU pode ser executado em um TMK, em um determinado momento, e no instante seguinte ser executado em outro.

70 Thread Hybrid Thread

71 Tarefa - Processo - Thread O núcleo do SO é responsável por isolar os contextos de execução das diversas tarefas, então, é necessário que uma rotina do núcleo seja chamada a dada altura. Essa rotina (que pode ser chamada por uma interrupção provocada por um temporizador interno do computador) geralmente executa as seguintes operações: 1. Salva o estado do processador numa estrutura de dados do núcleo (a árvore de processos); 2. Seleciona, com base num algoritmo, a próxima tarefa a executar; 3. Se for necessário, reconfigura o espaço de endereçamento de modo a que a próxima tarefa encontre a memória no estado que espera; 4. Carrega o estado do processador referente à tarefa que vai receber tempo de processador; 5. A rotina retorna permitindo que o programa execute.

72 Tarefa - Processo - Thread

73 Multithreading Sistemas Operacionais modernos suportam o conceito de Threads: Tarefas independentes dentro de um mesmo processo que podem ser executadas em paralelo ou de forma intercalada no tempo, dentro do esquema tradicional de time-sharing. Uma Aplicação é descrita por um Processo Composto de Várias Threads. Os Threads de um mesmo processo compartilham o espaço de endereçamento de memória, arquivos abertos e outros recursos que caracterizam o contexto global de um processo como um todo. Cada Thread, no entanto, tem seu próprio contexto específico, normalmente caracterizado pelo conjunto de registradores em uso, contador de programas e palavra de status do processador.

74 Tarefa - Processo - Thread

75 Multithreading

76 Hyper-Threading Hyper-Threading ou Hiperprocessamento é uma tecnologia usada em processador que o faz simular dois processadores tornando o sistema mais rápido quando se usa vários programas ao mesmo tempo. É uma tecnologia desenvolvida pela Intel, apesar do foco da tecnologia Hyper-Threading ser os processadores para servidores de rede, os processadores da série Intel Core2 (Extreme Edition) e Intel Core (i3,i5 e i7) usufruem dessa tecnologia proporcionando até 12 núcleos totais (i7 980x). Essa técnica foi criada para oferecer maior eficiência na utilização dos recursos de execução do processador. Segundo a Intel, a Hyper-Threading oferece um aumento de desempenho de até 30% dependendo da configuração do sistema.

77 Sem Hyper-Threading Com Hyper-Threading

78 Hyper-Threading

79 Hyper-Threading

80 Hyper-Threading

81 Hyper-Threading Nova arquitetura de processador em desenvolvimento

82 Pipeline Pipeline é uma técnica aplicada na implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções. Aumenta o número de instruções executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de tempo. O pipeline não reduz o tempo gasto para completar cada instrução individualmente. Não melhora a latência de cada tarefa individualmente Melhora o Throughput do trabalho como um todo Várias tarefas executam simultaneamente usando recursos diferentes Speedup Potential = número de estágios do pipeline

83 Pipeline

84 Pipeline O tempo do Ciclo Do Relógio (clock do processador) deve ser igual ou maior que o tempo de execução do estágio mais lento do pipeline. Deve-se procurar dividir a execução da instrução em estágios com o mesmo tempo. O pipeline deve ser mantido sempre cheio para que o desempenho máximo seja alcançado. De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo tempo para ser executada. Algumas instruções contudo podem ter o seu tempo de execução aumentado, pois atravessam estágios em que não realizam nenhuma operação útil.

85 Pipeline

86 Pipeline Pipeline é uma lista de todos os estágios que uma dada instrução precisa percorrer dentro do processador para ser executada. Nos processadores Intel de sexta geração, como o Pentium III, o pipeline tinha 11 estágios. O pipeline do Pentium 4, por exemplo, possui 20 estágios. Este aumento no número de estágios do pipeline foi criado para que os processadores rodassem com Clocks mais elevados. Com MAIS ESTÁGIOS, cada um deles pode ser construído com poucos transistores o que FACILITA A OBTENÇÃO DE CLOCKS SUPERIORES.

87 Pipeline Ponteiro da próxima instrução do cache de microinstruções (TC Nxt IP, Trace cache next instruction pointer): Este estágio vê no buffer de destino de desvio (BTB) qual é a próxima microinstrução a ser executada. Esta etapa demora 2 estágios. Busca da próxima microinstrução no cache de microinstruções (TC Fetch, Trace cache fetch): Carrega, do cache de microinstrução, essa microinstrução. Esta etapa demora 2 estágios.

88 Pipeline Drive: Envia a microinstrução a ser executada à unidade de alocação de recursos e de renomeamento de registradores. Alocação de Recursos (Alloc): Verifica quais recursos serão alocados pela microinstrução, como, por exemplo, o buffer de carga (load) ou o buffer de armazenamento (store). Renomeação de Registradores (Rename): Renomeia os oito registradores padrão x86 em um dos 128 registradores internos presentes no Pentium 4. Esta etapa demora 2 estágios.

89 Pipeline Fila (Queue): As microinstruções são armazenadas em filas de acordo com o seu tipo (por exemplo, inteiro ou ponto flutuante). Elas são mantidas na fila até haver espaço no agendador de execução correspondente ao tipo de instrução a ser executada.

90 Pipeline Agendamento (Sch, Schedule): As microinstruções são agendadas de acordo com o seu tipo (inteiro, ponto flutuante, etc). Antes de chegar nesta etapa, as microinstruções são entregues em ordem, ou seja, na mesma ordem em que apareciam no programa. Nesta etapa, o agendador reordena as instruções de forma que estas sejam executadas da melhor forma possível, isto é, que não fique nenhuma unidade de execução vazia. Por exemplo, se uma unidade de ponto flutuante vai ficar disponível, o agendador procurará por uma instrução de ponto flutuante para mandá-la para esta unidade, mesmo que a próxima instrução no programa seja uma instrução que opere com números inteiros. Os agendadores são o coração da execução fora de ordem dos processadores de 7ª geração. Esta etapa demora três estágios.

91 Pipeline Envio (Disp, Dispatch): As microinstruções são enviadas às unidades de execução adequadas. Esta etapa é dividida em dois estágios. Leitura dos Registradores Internos (RF): Os registradores internos, armazenados no pool de instruções, são lidos. Esta etapa demora dois estágios. Execução (Ex): As microinstruções são executadas. Flags (Flgs): Atualiza os flags do processador.

92 Pipeline Verificação de Desvios (Br Ck, Branch check): Verifica se o desvio tomado pelo programa é o mesmo que o previsto pelo circuito de previsão de desvio. Drive: Envia o resultado dessa verificação para o buffer de destino de desvio (BTB) localizado na entrada do processador.

93 Cooperatividade A multitarefa cooperativa é uma abordagem para a implementação de sistemas operacionais multitarefa. O compartilhamento do processador é gerenciado pelos próprios programas, que cedem voluntariamente o controle para outros programas em pontos definidos pelos programadores. Os utilizadores podem executar dois ou mais programas, mas o programa que se encontra em primeiro plano ganha o controle do processador. A vantagem deste modelo reside na simplicidade do desenho do sistema operacional, mas em contrapartida ele é menos estável já que uma aplicação mal escrita pode "congelar" todo o sistema. Os sistemas operacionais da Microsoft anteriores ao Windows NT (new technology) eram implementados com multitarefa cooperativa.

94 Cooperatividade Os algoritmos cooperativos são mais simples e adequados para o processamento não interativo, semelhante aos esquemas de processamento em lote dos sistemas batch. Embora não proporcionando interatividade, são geralmente mais eficientes e previsíveis quanto ao tempo de entrega de suas tarefas.

95 Preemptividade É o ato de interromper temporariamente uma tarefa sendo resolvida por um sistema computacional, sem precisar de sua cooperação, e com a intenção de retomar a tarefa depois. Tal mudança é conhecida como uma Troca De Contexto. É normalmente resolvida por uma tarefa privilegiada ou parte de um sistema conhecido como uma Agenda Preemptiva, que tem o poder de preeminar, ou interromper, e depois retomar, outras tarefas no sistema. Em sistemas operacionais, Preemptividade ou Preempção é a capacidade de alterar a ordem de (ou tirar de execução) um processo em detrimento de outro com uma prioridade maior.

96 Preemptividade Algoritmos preemptivos são mais adequados para sistemas em que múltiplos processos requerem atenção do sistema, ou seja, no caso de sistemas multiusuário interativos (sistemas Time Slice) ou em sistema de Tempo Real. Nestes casos, a Preemptividade Representa a Troca do Processo em Execução, assim sendo, para que o processador seja retirado de um processo, interrompendo seu trabalho, e designado a outro processo, anteriormente interrompido, é fundamental que ocorra a Troca De Contexto dos processos. Tal Troca exige que todo o estado de execução de um processo seja adequadamente armazenado para sua posterior recuperação, representando uma sobrecarga computacional para realização desta troca e armazenagem de tais dados.

97 Preemptividade Usualmente os algoritmos preemptivos são mais complexos dada a natureza imprevisível dos processos.

98 Kernel o Kernel é o componente central da maioria dos sistemas operacionais de computador. As suas responsabilidades incluem a gestão de recursos do sistema (a comunicação entre os componentes de hardware e software).

99 Kernel O kernel é basicamente o responsável por gerenciar o hardware, controlar a execução dos processos e prover uma interface (API) para as aplicações. Tal como um componente básico de um sistema operacional, um Kernel fornece o mais baixo nível de abstração para a camada de recursos (principalmente memória, processadores e dispositivos I/O) que o aplicativo deve controlar para desempenhar a sua função. Ele normalmente faz com que essas instalações se tornem disponíveis para a aplicação através de processos e mecanismos de comunicação de Chamadas De Sistema.

100 Kernel O Kernel pode ser descrito como um grande organizador: é ele o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente - mas sem oferecer riscos à integridade da máquina.

101 Microkernel É uma designação de um Sistema Operacional que possui apenas um núcleo que provê recursos mínimos necessários ao ambiente. Outras funcionalidades são oferecidas através de programas chamados servidores, que se localizam na USER-SPACE. O Microkernel basicamente provê serviços como gerenciamento do espaço de memória, gerência de threads e comunicação entre os processos (IPC Inter-Process Communication). Serviços como rede, vídeo, são considerados não essenciais, e residem no USER-SPACE.

102 Microkernel

103 Kernel Monolitico O paradigma do Kernel Monolítico é justamente o oposto do Micro- Kernel. A principal característica do kernel monolítico é permitir que funções como rede, vídeo e acesso a outros periféricos sejam possíveis através do KERNEL-SPACE. Isso é possível através do uso de módulos. O que significa que um módulo, apesar de não estar no mesmo código do kernel, é executado no espaço de memória do kernel. Sendo assim, apesar de modular, o kernel monolítico continua sendo único e centralizado.

104 Kernel Monolitico

105 Kernel Monolitico x Microkernel

106 Kernel Hibrido

107 Tipos de Kernel

108 API Aplication Program Interface É um conjunto de interfaces de programação que permitem a utilização de bibliotecas de programação Windows em programas externos ao sistema operacional. Apesar de tudo o que pode ser feito com programação algumas coisas são muito difíceis de serem implementadas diretamente. Para isso utiliza-se na maioria das vezes as API s do Windows.

109 API Aplication Program Interface APIs do Windows são bibliotecas de vínculo dinâmico (DLLs) que fazem parte do sistema operacional Windows. São usadas para executar tarefas quando é difícil escrever procedimentos equivalentes de sua preferência. Por exemplo, o Windows fornece uma função chamada FlashWindowEx que permite que você crie a barra de título para um aplicativo alternativo entre tonalidades claras e escuras. A vantagem de usar APIs do Windows no seu código é que elas podem economizar tempo de desenvolvimento, pois contêm dezenas de funções úteis que já estão escritas, aguardando para serem usadas. A desvantagem é que APIs do Windows podem ser difíceis de se trabalhar e dificeis de se corrigir quando as coisas dão errado.

110 API Aplication Program Interface O programa abaixo acessa os registros do windows para descobrir quais os nomes das portas seriais estão instaladas no sistema. Os nomes das portas estão armazenadas na chave:

111 API Aplication Program Interface A seguir o código fonte de um exemplo uma API que descobre qual é a resolução de vídeo atual do computador e sugere que seja alterada caso não seja a melhor visualização para o programa:

112 API Aplication Program Interface

113 API Aplication Program Interface

114 Sistemas Monoprogramáveis / Monotarefa Os primeiros sistemas operacionais eram tipicamente voltados para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Os sistemas Monoprogramáveis caracterizam-se por permitir que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa. Neste tipo de sistema, enquanto um programa aguarda por um evento, como a digitação de um dado, o processador permanece ocioso, sem realizar qualquer tipo de processamento.

115 Sistemas Monoprogramáveis / Monotarefa A memória é subutilizada caso o programa não a preencha totalmente e, os periféricos, como discos e impressoras, estão dedicados a um único usuário, nem sempre utilizados de forma integral. Comparados a outros sistemas, os sistemas Monoprogramáveis ou monotarefa são de simples implementação, não existindo muita preocupação com problemas decorrentes do compartilhamento de recursos, como memória, processador e dispositivos de E/S.

116 Sistemas Multiprogramáveis / Multitarefa Os sistemas Multiprogramáveis ou Multitarefa são uma evolução dos sistemas Monoprogramáveis. Neste tipo de sistema, enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste mesmo intervalo de tempo. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos, como memória, processador e periféricos, de forma ordenada e protegida, entre os diversos programas. A principal vantagem dos sistemas multiprogramáveis é a redução de custos em função da possibilidade de compartilhamento dos diversos recursos entre as diferentes aplicações.

117 Sistemas Multiprogramáveis / Multitarefa Sistemas Multiprogramáveis possibilitam, na média, a redução total do tempo de execução das aplicações. Apesar de mais eficientes que os Monoprogramáveis, são de implementação muito mais complexa.

118 Sistemas Multiprogramáveis / Multitarefa A partir do número de usuários que interagem com o sistema operacional, podemos classificar os sistemas Multiprogramáveis como: MONOUSUÁRIO MULTIUSUÁRIO.

119 Sistemas Monousuário e Multiusuário

120 Sistemas Monousuário e Multiusuário

121 Sistemas Monousuário e Multiusuário

122 Sistemas Monousuário São encontrados em computadores pessoais e estações de trabalho, onde há apenas um único usuário interagindo com o sistema. Neste caso, existe a possibilidade de execução de diversas tarefas ao mesmo tempo, como a edição de um texto, uma impressão e o acesso à Internet.

123 Sistemas Multiusuário São ambientes interativos que possibilitam a diversos usuários conectarem-se ao sistema simultaneamente. Os sistemas multiprogramáveis ou multitarefa podem ser classificados pela forma com que suas aplicações são gerenciadas, podendo ser divididos em Sistemas Batch, de Tempo Compartilhado ou de Tempo Real. Um sistema operacional pode suportar um ou mais desses tipos de processamento, dependendo de sua implementação.

124 Sistema Batch (lote) Processamento Sequencial Não existe interação entre usuário e Sistema Processamento em Batch (em Lote, JOBS) Acumulação dos dados das transações e atualização executada no tempo após ação ocorrida.

125 Sistema Batch (lote) Os programas, também chamados de Jobs, eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, onde aguardavam para ser processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os Jobs eram executados, produzindo uma saída em disco ou fita. O processamento batch tem a característica de não exigir a interação do usuário com a aplicação. Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária, geralmente arquivos em disco.

126 Sistema Batch (lote) Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário. Esses sistemas, quando bem projetados, podem ser bastante eficientes, devido à melhor utilização do processador, entretanto, podem oferecer tempos de resposta longos. Atualmente, os sistemas operacionais implementam ou simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento.

127 Sistema Time-Sharing / Time-Slice Permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. Geralmente, sistemas de tempo compartilhado permitem a interação dos usuários com o sistema, através de terminais que incluem vídeo, teclado e mouse.

128 Sistema Time-Sharing / Time-Slice Esses sistemas possuem uma linguagem de controle que permite ao usuário comunicar-se diretamente com o sistema operacional, através de comandos. Desta forma, é possível verificar arquivos armazenados em disco ou cancelar a execução de um programa. O sistema, normalmente, responde em poucos segundos à maioria desses comandos. Devido a esse tipo de interação, os sistemas de tempo compartilhado também ficaram conhecidos como sistemas on-line. A maioria das aplicações comerciais atualmente é processada em sistemas de tempo compartilhado, pois elas oferecem tempos de respostas razoáveis a seus usuários e custos mais baixos, em função da utilização compartilhada dos diversos recursos do sistema.

129 Sistema On-Line Interação entre Usuário e Sistema Transacionais Compartilhamento de Recursos Atualizações de dados em Tempo Real Disponibilização dos dados Processamento Transacional

130 Processamento On-Line As transações são processadas imediatamente após a coleta pela mídia de entrada O processamento de dados online fornece cômputos interativos sempre que os dados de entrada ou transações introduzidos no sistema sejam processados imediatamente. Não há nenhuma provisão para aguardar por mais dados, para se agregar ao processamento, ou reunir dados durante o período do tempo da operação (algo similar à espera de leitura de fitas batch). Os sistemas online processam cada transação sobre a recepção e os resultados do processamento de dados, que podem ser imediatamente informados ao usuário do sistema.

131 Sistema On-Line Os exemplos de sistemas de processamento de dados online incluem: Reserva de Companhia Aérea Reserva de Ônibus Reserva Ferroviária. Os passageiros que fazem reserva gostariam de saber imediatamente se o assento está disponível ou não. O balcão de reserva de ônibus online aceita dos passageiros os dados da viagem, o tempo de viagem, número de ônibus, número de via, distinção, classe da viagem, número de assentos necessitados etc.

132 Sistema On-Line Estes dados são processados imediatamente para informar os passageiros sobre a posição de disponibilidade dos assentos de reserva do ônibus especificado e o número de via. O passageiro agora pode reservar os assentos, e o sistema online vai confirmar os assentos reservados do passageiro reduzindo o número total de assentos disponíveis naquele ônibus. O processamento online fornece a interação, com uma espécie de gerência automática. Enquanto os onibus continuam seguindo na pista, o sistema online mostra os assentos reais disponíveis e visualização sobre a posição individual/geral das reservas.

133 Sistema Real-Time É um tipo de processamento no qual as respostas às entradas são extremamente rápidas para controlar um dado processo e/ou influenciar na ação subsequente. Diz-se que Uma aplicação em TEMPO REAL é sempre ON-LINE, mas o inverso nem sempre é verdadeiro. Normalmente, estão presentes em aplicações de controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas termoelétricas e nucleares, ou em qualquer aplicação onde o tempo de processamento é fator fundamental.

134 Sistema Real-Time Tipos de sistemas real time

135 Sistema Real-Time Tipos de sistemas real time

136 Sistema Real-Time Embedded System Ex.: freio ABS, sensores de Injeçao Eletronica

137 Escalonamento, Interrupções e Trocas de Contexto É uma Máquina Estendida Oculta os detalhes complicados que têm quer ser executados Apresenta ao usuário uma máquina virtual, mais fácil de usar É um Gerenciador de Recurso (ex. CPU) Cada programa tem um tempo com o recurso Cada programa tem um espaço no recurso

138 Escalonamento, Interrupções e Trocas de Contexto Sistemas de tempo compartilhado (Time Sharing Systems) Permite sistemas interativos (entrada/saída) Requer temporizadores (timers) Interrupções Troca de Contextos Troca de mensagens Suporte do Hardware Temporizadores (timers) Interrupções Proteção de memória Suporte do S.O. Escalonamento dos processos Alocação de memória Gerenciamento dos periféricos

139 Escalonamento, Interrupções e Trocas de Contexto A Gerência Do Processador define a Política De Divisão De Tempo (quantum) da CPU entre os Diversos Threads. O Quantum é uma fatia de tempo de pequena duração, girando em torno de 120 ms (milisegundos). Ex.: no WNT Server, e de 20 ms a 60 ms no WNT wokstation. O mecanismo de seleção do thread a ser executado é realizado por uma rotina do Kernel denominada Dispatcher (ou scheduler). A Política De Escalonamento é implementada através de prioridades associadas aos threads, que, inicialmente, recebem a prioridade do processo ao qual pertence, podendo ser alterada durante sua existência.

140 Escalonamento, Interrupções e Trocas de Contexto CPU-BOUND: Se o processo gasta a maior parte do seu tempo usando a CPU ele é definido como Orientado À Computação (compute-bound ou CPU-bound) Processos com longos tempos de execução e baixo volume de comunicação entre processos Ex: aplicações científicas, engenharia e outras aplicações que demandam alto desempenho de computação

141 Escalonamento, Interrupções e Trocas de Contexto I/O-BOUND: Se um processo passa a maior parte do tempo esperando por dispositivos de E/S, diz-se que o processo é Orientado à E/S (I/O-bound) Processos I/O-bound devem ter prioridade sobre processos CPU-bound

142 Escalonamento, Interrupções e Trocas de Contexto

143 Escalonamento, Interrupções e Trocas de Contexto Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro A parte do sistema operacional responsável por essa decisão é chamada Escalonador, e o Algoritmo usado para tal é chamado de Algoritmo De Escalonamento

144 Escalonamento, Interrupções e Trocas de Contexto Lista de proc. Memória Índ. Processo PC Base Limite Regs da CPU O índice do processo contém o apontador para a lista de processos Proc. A. Contexto Dados Outros regs PC (Program Counter) = contador de programas Código Proc. B. Contexto Dados Código Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU

145 Escalonamento, Interrupções e Trocas de Contexto Paralelismo Real Uma máquina para cada processo

146 Escalonamento, Interrupções e Trocas de Contexto Pseudo-paralelismo Compartilhamento do tempo de execução

147 Escalonamento, Interrupções e Trocas de Contexto Nos sistemas operacionais mais simples, a CPU deve esperar a execução do comando de E/S A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando.

148 Escalonamento, Interrupções e Trocas de Contexto Nos sistemas operacionais com interrupção não há espera A CPU solicita o write e fica executando outras tarefas até ser interrompida pelo disco.

149 Escalonamento, Interrupções e Trocas de Contexto Incrementa PC Busca instrução e dados Executa a instrução Com interrupção Não Interrupção? Sim 1) Pára o processo atual 2) Salta p/ rotina de interrupção

150 Escalonamento, Interrupções e Trocas de Contexto

151 Escalonamento, Interrupções e Trocas de Contexto

152 Escalonamento, Interrupções e Trocas de Contexto Dispositivo pede interrupção Salva resto da Informação do contexto do processo Hardware Processador salva PSW e PC na pilha de controle Processa rotina de Interrupção Processador carrega novo valor do PC baseado na interrupção Restaura Informação do estado do processo em execução antes da interrupção Software *PSW = Program Status Word *PC = Program Counter Restaura PSW e PC do processo em execução antes da interrupção

153 Escalonamento, Interrupções e Trocas de Contexto Tratamento de Exceções causadas por: Divisão por Zero Erro de código de instrução Acesso indevido à memória Acesso indevido a dispositivos de I/O Demais situações imprevistas

154 Escalonamento, Interrupções e Trocas de Contexto HIGH-LEVEL 1. Decide quantos programas são admitidos no sistema 2. Aloca memória e cria um processo 3. Controla a Long-Term Queue SHORT-TERM 1. Decide qual processo deve ser executado 2. Controla a Short-Term Queue I/O 1. Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O 2. Controla a I/O Queue

155 Escalonamento, Interrupções e Trocas de Contexto

156 Escalonamento, Interrupções e Trocas de Contexto Processo A parou! Por que? Requisição. serviço ao S.O. Interrupção de A Ex. Erro - Exceção Interrupção de outra fonte. Ex. I/O Tempo acabou TEMPO

157 Escalonamento de CPU Introdução e Conceitos Escalonamento de Processador Critérios de Escalonamento Escalonamento Não Preemptivo Escalonamento Preemptivo Mecanismos de Interrupção em Intervalos de Tempo Prioridades Algoritmos de Escalonamento Escalonamento para Vários Processadores Escalonamento em Tempo Real Escalonamento no Unix, Windows XP, Linux e de Threads

158 Escalonamento de CPU Multiprogramação Corresponde a diversos programas distintos executando em um mesmo processador Maximiza utilização da CPU Somente um processo é executado a cada instante em um processador Toda vez que UM PROCESSO tiver que esperar (evento ou E/S) OUTRO PROCESSO usa a CPU ( chamamos CICLO DE VIDA de um processo) A execução de um processo consiste de um ciclo de execução de CPU e espera de I/O

159 Escalonamento de CPU Toda vez que UM PROCESSO tiver que esperar (evento ou E/S) OUTRO PROCESSO usa a CPU ( chamamos CICLO DE VIDA de um processo) A execução de um processo consiste de um ciclo de execução de CPU e espera de I/O

160 Sequência Alternada de Rajadas de CPU e I/O Os processamento é organizado em BURSTs ou RAJADAS de atividades, alternadas entre uso de CPU e uso de I/O.

161 Escalonamento de Processador Também chamado de Escalonador de Processos Determina/Escolhe, dentre os processos que estão em memória, qual processo será associado a uma CPU, quando esta estiver disponível Age sobre os processos prontos para executar ( processos do estado de pronto ) Segue uma Política De Escolha Executado várias vezes por segundo Reside permanentemente na memória

162 Escalonamento de Processador Situações para Escalonamento 1. Processo passa do estado em execução para pronto 2. Processo passa de em execução para espera/bloqueado 3. Processo passa de espera/bloqueado para pronto 4. Processo termina Preempção É quando um processo em estado de pronto tem precedência sobre o que está usando a CPU Escalonamento Cooperativo Não contempla as preempções, isto é, o escalonador não interrompe os processos que estão em execução.

163 Escalonamento de Processador Escalonamento Preemptivo Contempla a preempção das tarefas, isto é, provoca uma interrupção forçada de um processo para que outro, com a preempção, possa usar a CPU.

164 Escalonamento de Curto Prazo Determina qual processo no estado pronto para executar será associado a uma CPU, quando esta estiver disponível É executado várias vezes por segundo Reside Permanentemente na Memória

165 Escalonamento de Médio Prazo ( nível intermediário) Determina quais os processos que poderão competir pela CPU Responsável pela suspensão e ativação de processos, o que significa flutuações na carga do sistema visando um melhor balanceamento Atua como um buffer entre a admissão de Jobs e a associação da CPU aos processos que constituem os Jobs admitidos Job: é um conjunto de atividades necessárias para a realização do trabalho computacional requerido por um usuário ( divide-se em diversos Steps )

166 Escalonamento de Longo Prazo (nível alto) Determina quais Jobs serão admitidos e poderão competir pelos recursos do sistema (admission scheduling) Permite que não existam Jobs em demasia no sistema, o que acarretaria uma etensa competição pelos recursos Todo Job, uma vez admitido, acarreta na criação de um ou mais processos

167 Dispatcher O módulo Dispatcher dá o controle da CPU para o processo selecionado pelo Escalonador de curto prazo, envolvendo: 1. Troca de contexto 2. Mudança do processador para o Modo Usuário 3. Salto para a localização adequada no programa do usuário para o seu reinício Latência de Despacho Tempo que leva para o dispatcher parar um processo e reiniciar a execução de outro

168 Critérios de Escalonamento Utilização da CPU: % do tempo que a CPU fica ocupada (0-100%) Throughput: Número de processos completados por unidade de tempo Turnaround Intervalo de tempo entre a submissão de um processo e sua finalização (soma dos intervalos esperando para ser carregado na memória, fila de pronto, em execução e em espera) Tempo de Espera Tempo que cada processo fica na fila de pronto Tempo de Resposta Tempo que o processo demora para produzir alguma resposta à uma requisição (importante para processos interativos)

169 Critérios de Escalonamento 1. Utilização da CPU 2. Throughput 3. Turnaround 4. Tempo de Espera 5. Tempo de Resposta Atenção: É desejável Maximizar os 2 primeiros ( utilização de CPU ) e Minimizar os 3 últimos ( Turnaround, Tempo de Espera e Tempo de Resposta ) Para sistemas Interativos, é importante minimizar a variância do tempo de resposta ( Previsibilidade )

170 Objetivos do Escalonamento Objetivos das políticas de escalonamento devem seguir algumas diretrizes: Maximizar a utilização da CPU Maximizar o throughput Maximizar o número de usuários interativos Minimizar o turnaround Minimizar o tempo de espera Minimizar o tempo de resposta Minimizar o uso de recursos Ser justa Ser previsível Balancear o uso de recursos Balancear usuários interativos com os demais Priorizar processo que segurem recursos chave Não degradar o sistema

171 Escalonamento Não Preemptivo Não permite a retirada da CPU de um processo após este tê-la conseguido: Tempo de resposta é mais previsível Processos curtos precisam esperar pelos longos Permite monopolização da CPU

172 Escalonamento Preemptivo Permite que a CPU seja retirada de um processo para ser entregue a outro: Garante que os processos possam progredir uniformemente Não permite a monopolização da CPU Usado para: 1. Atendimento rápido de processos mais importantes 2. Tratamento de interrupções em sistemas de tempo real 3. Atender os usuários em sistemas de tempo compartilhado A mudança de contexto envolve sobrecarga

173 Mecanismos de Interrupção em Intervalos de Tempo Para prevenir processos do usuário de monopolizar o sistema (CPU), por acidente ou de propósito, uma interrupção por tempo é usada: QUANTUM ou TIME-SLICE É o tempo limite para uso da CPU, após o qual ocorre a interrupção por tempo Um processo do usuário, uma vez interrompido por término do seu Quantum, volta à fila de pronto para executar e permite o escalonamento de outro processo: Um processo em execução mantém controle sobre a CPU até: 1. Voluntariamente liberá-la 2. Quantum Time expirado 3. Outra interrupção exija atenção da CPU para que seja tratada 4. Erro de execução

174 Prioridades Podem ser FIXAS (estáticas) durante a vida do processo Podem ser MODIFICÁVEIS (dinâmicas) Podem ser associadas EXTERNAMENTE ou de maneira AUTOMÁTICA Podem ser calculadas e associadas de forma RACIONAL ou ARBITRÁRIA

175 Algoritmos de Escalonamento 1. FIFO (First-In First-Out) ou FCFS (First-Come First-Served) 2. SJF (Shortest Job First) 3. Round-Robin 4. SRT (Shortest Remaining Time) 5. Prioridade 6. Múltiplas Filas 7. Múltiplas Filas com Realimentação 8. Escalonamento para Vários Processadores 9. Escalonamento de Tempo Real Earliest Deadline

176 FIFO (First-In First-Out) ou FCFS (First-Come First-Served) Não Preemptivo (Uma vez em execução, é executado até o término) O processo que chegar primeiro (first-in) é o primeiro a ser selecionado para execução (first-out) Implementado através de fila Inicialmente criado para sistemas batch Injusto com jobs curtos Ineficiente para sistemas de tempo compartilhado Outras combinações

177 FIFO (First-In First-Out) ou FCFS (First-Come First-Served) Injusto com jobs curtos Turnaround médio = ( ) / 3 = 12 u.t. Tempo de espera médio = ( ) / 3 = 7,33 u.t.

178 FIFO (First-In First-Out) ou FCFS (First-Come First-Served) Injusto com jobs curtos Turnaround médio = ( ) / 3 = 6,67 u.t. Tempo de espera médio = ( ) / 3 = 2 u.t.

179 SJF (Shortest Job First) Não Preemptivo O processo com o menor tempo para ser completado é escolhido: 1. Quando a informação sobre o tempo de execução não se encontra disponível, deve ser estimado ou usa-se o da última vez 2. Desempate pode ser, por exemplo, utilizando-se da regra FIFO Reduz tempo médio de espera: SJF é ótimo, pois dá o tempo de espera mínimo para um dado conjunto de processos No entanto, apresenta uma grande variância no tempo de espera

180 SJF (Shortest Job First) Turnaround Médio FIFO: ( ) /4 = 16,25 u.t. Tempo de Espera Médio: ( )/4 = 10,25 u.t. Turnaround Médio SJF: ( ) / 4 = 13 u.t. Tempo de Espera Médio: ( ) / 4 = 7 u.t.

181 Escalonamento Cooperativo O processo em execução libera voluntariamente a CPU retornando para a fila de pronto sem a interrupção do sistema operacional (Não Preemptivo) Um programa mal escrito pode monopolizar a CPU (Deadlock) Fila de mensagem é verificada periodicamente

182 Round-Robin (Escalonamento Circular) Define-se uma unidade de tempo denominada quantum ou timeslice (usualmente de 10 a 100ms) que corresponde ao tempo limite para uso da CPU por cada processo Após este tempo ter sido passado, o processo sofre preempção e é colocado no final da fila de pronto A fila de pronto é tratada como uma fila circular (FIFO) O escalonador pega o primeiro processo da fila de pronto para ser executado e define um timer para o tempo de 1 quantum Se o tempo de execução for maior que 1 quantum, o timer gera uma interrupção e o SO faz o chaveamento de contexto Projetado para sistemas de Tempo Compartilhado

183 Round-Robin (Escalonamento Circular) Se houver n processos na fila de pronto e o tempo do quantum for q, então cada processo obtém 1/n do tempo da CPU e fatias de no máximo q unidades de tempo por vez. Nenhum processo espera por mais que (n-1)q unidades de tempo. Claramente Preemptivo O tempo médio de espera é alto

184 Round-Robin (Escalonamento Circular) O desempenho depende do tamanho do quantum Se for muito grande (infinito) tende a um FIFO Se for muito pequeno, o overhead com o chaveamento de contexto se torna alto demais

185 Round-Robin (Escalonamento Circular) Turnaround médio RR: ( ) /3 = 11 u.t. Tipicamente, o turnaround médio é maior que o do SJF, mas o tempo de resposta é melhor

186 SRT ( Shortest Remainnig Time) É a contrapartida Preemptiva do SJF O processo com Menor Tempo para ser completado é escolhido Um processo em execução é interrompido se um novo processo, com menor tempo para ser completado aparece na fila de pronto Apresenta sobrecarga maior que o SJF Variações: Tempo para ser completado pequeno Tempo para ser completado do processo que chega é um pouco menor

187 SRT ( Shortest Remainnig Time) Turnaround médio SRT: ((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 u.t. ( ) = 52 / 4 = 13 u.t.

188 Prioridade Uma prioridade é associada a cada processo e a CPU é alocada ao processo de maior prioridade SJF é um caso de escalonamento por prioridade em que a prioridade é maior para os processos de menor tempo de execução A prioridade é geralmente representada por um número (entre 0-7 ou 0-255), mas não existe uma convenção de qual número (o maior ou o menor) é o de maior prioridade Pode ser Preemptivo ou Cooperativo O Escalonamento SJF é um Escalonamento por Prioridade onde a prioridade é definida de acordo com o tempo de CPU estimado do processo

189 Prioridade

190 PRIORIDADE DEFINIDA INTERNAMENTE - DINÂMICA Usa alguma quantidade mensurável para computar a prioridade. (memória, arq. abertos, razão I/O por CPU usada, etc) EXTERNAMENTE - ESTÁTICA Importância do processo, departamento de origem, fatores políticos, hierarquia. PROBLEMA - STARVATION Processos de baixa prioridade podem ficar indefinidamente no estado de pronto (IBM 7094 no MIT processo rodando por 6 anos) SOLUÇÃO: Aumentar progressivamente a prioridade dos processos que estão aguardando

191 MÚLTIPLAS FILAS Os processos são previamente divididos em grupos em função do tipo de processamento realizado: INTERATIVO ( Foreground ) BATCH ( Background ) ALTERNATIVA: TIME-SLICES entre filas (80% para os interativos em RR e 20% para os batch em FIFO)

192 MÚLTIPLAS FILAS REALIMENTADAS Os processos não permanecem em uma mesma fila até o término do processamento O S.O. faz um ajuste dinâmico (mecanismo adaptativo) para ajustar os processos em função do comportamento do sistema Os processos não são previamente associados às filas, mas direcionados pelo sistema entre as diversas filas com base no seu comportamento Parâmetros 1. Número de filas, 2. Algoritmo de escalonamento para cada fila, 3. Método para mudar (promover ou rebaixar) o processo de fila 4. Método para determinar em que fila um processo entra Métodos mais complexos

193 MÚLTIPLAS FILAS REALIMENTADAS Exemplo de uma Fila Realimentada 1. Processos novos entram no fim da primeira fila 2. Nas filas, os processos são escalonados segundo Round Robin 3. O quantum varia de uma fila para outra (aumenta em direção às últimas, quantum 1 para a primeira, 2 para a segunda, etc) 4. Os processos das primeiras filas têm maior prioridade (um processo não pode ser escolhido, a menos que, as filas anteriores estejam vazias) 5. Um processo em execução é interrompido, caso apareça um processo em uma das filas anteriores à sua 6. Sempre que um processo esgotar seu quantum, ele é suspenso na fila da próxima classe de prioridade 7. Se o processo liberar a CPU, sem preempção, sai da estrutura de filas 8. Quando um processo volta à estrutura, é colocado em uma fila de prioridade mais alta do que estava antes de sair

194 MÚLTIPLAS FILAS REALIMENTADAS

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 4 Tipos de SO Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Os Sistemas Operacionais podem ser assim classificados: SO - Prof. Edilberto Silva

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais Introdução. Professora: Michelle Nery Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas

Leia mais

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

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

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

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das

Leia mais

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

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

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta 1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

VI - Introdução aos Sistemas Operacionais

VI - Introdução aos Sistemas Operacionais VI - Introdução aos Sistemas Operacionais Consiste de um ou um conjunto de programas que compõem o software básico do computador e cuja finalidade é a de executar os programas aplicativos e de servir de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 03 Tipos de Sistemas Operacionais Maxwell Anderson Prof. Maxwell Anderson www.maxwellanderson.com.br Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e a sua

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema Operacional (SO) é um programa colocado entre o hardware do

Leia mais

SSC510 Arquitetura de Computadores. 12ª aula

SSC510 Arquitetura de Computadores. 12ª aula SSC510 Arquitetura de Computadores 12ª aula EVOLUÇÃO DA ARQUITETURA INTEL PROFA. SARITA MAZZINI BRUSCHI 1 Pentium - Modelos 2 Pentium - Arquiteturas Netburst P7 Sétima geração dos processadores da arquitetura

Leia mais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais 1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de

Leia mais

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

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Tipos de sistemas operacionais

Tipos de sistemas operacionais Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores

Leia mais

Conceitos Básicos sobre Sistemas Operacionais

Conceitos Básicos sobre Sistemas Operacionais Conceitos Básicos sobre Sistemas Operacionais Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA0800 - Algoritmos e

Leia mais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um

Leia mais

7 Processos. 7.1 Introdução

7 Processos. 7.1 Introdução 1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

Leia mais

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

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br TI Básico Sistemas Operacionais Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br Objetivos dos Sistemas Operacionais Esconder a Complexidade do Hardware. Devido a grande

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

Leia mais

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

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR Sistemas Operacionais INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR 1 Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas

Leia mais

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

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

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

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN SISTEMAS OPERACIONAIS Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN 2.0 - INTRODUÇÃO Os tipos de sistemas operacionais e sua evolução estão intimamente relacionados com a evolução do hardware

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Multiprogramação Permite a execução de diversos processos concorrentemente Maior

Leia mais

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

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail. 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

Leia mais

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955 O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma

Leia mais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador A partir do momento em que diversos processos podem

Leia mais

2. Introdução aos Sistemas Operacionais

2. Introdução aos Sistemas Operacionais 2. Introdução aos Sistemas Operacionais O que é um Sistema Operacional? 1 Compilador 2 Editor de texto 3 Browser Aplicativos... Sistema Operacional (infraestrutura) Hardware n Quake No passado, a eficiência

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Prof. Ms. Márcio Andrey Teixeira A Caracterização dos Sistemas Funções do S.O Administração de Processos Administração da Memória Principal Administração do Armazenamento Secundário Administração

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 4.1 Introdução Capítulo 4 Gerência

Leia mais

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

Introdução à Ciência da Computação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia (rogerio@fct.unesp.br)

Leia mais

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Escalonamento de Processo Prof. Dr. Márcio Andrey Teixeira Quando um computador é multiprogramado, ele muitas vezes tem variados processos que competem pela CPU ao mesmo tempo; Essa

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

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

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Sistema Operacional (S.O.) Aplicativos Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo Módulo 4: Processos Conceito de Processo Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos Um sistema operacional executa uma variedade

Leia mais

Mecanismo de Interrupção

Mecanismo de Interrupção Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam

Leia mais

Sistemas Operacionais

Sistemas Operacionais Andrique Amorim www.andrix.com.br professor@andrix.com.br Classificação dos Sistemas Operacionais Classificação Os sistemas operacionais podem ser classificados segundo diversos parâmetros e perspectivas.

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Aula 04: Sistema Operacional Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Sistemas Operacionais: Software Oculto Serve

Leia mais

Fundamentos de Sistemas Computacionais Introdução

Fundamentos de Sistemas Computacionais Introdução Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor,

Leia mais

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

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam? Como é formado o meu computador? Introdução aos Sistemas Operacionais Arquitetura de Computadores e Software Básico Aula 1 Flávia Maristela (flavia@flaviamaristela.com) Mouse Teclado Monitor Placa de vídeo

Leia mais

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux System API Máquinas virtuais System ISA (Instruction Set Architecture) Aplicações Chamadas ao sistema Sistema de Operação Hardware User ISA (Instruction Set Architecture) Uma máquina virtual executa software

Leia mais

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1 Componentes de um sistema computacional moderno DCC/FCUP Inês Dutra Sistemas de Operação 1 O que é um Sistema de Operação? Para responder a esta questão: vamos dividir a turma em 4 partes CPU memória programas

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Arquitetura Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Sistemas monolíticos Sistemas em camadas Sistemas micro-núcleo Modelo Cliente-Servidor Máquinas

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

SISTEMAS OPERACIONAIS 2007

SISTEMAS OPERACIONAIS 2007 SISTEMAS OPERACIONAIS 2007 VISÃO GERAL Sumário Conceito Máquina de Níveis Conceituação de SO Componentes do SO Visões do SO Conceito de Sistemas O que se espera de um sistema de computação? Execução de

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

A Evolução dos Sistemas Operacionais

A Evolução dos Sistemas Operacionais Capítulo 3 A Evolução dos Sistemas Operacionais Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento

Leia mais

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Princípios de sistemas operativos Rui Maranhão (rma@fe.up.pt) Agenda objectivos de um computador objectivos de um sistema operativo evolução dos sistemas operativos tipos de sistemas

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS Universidade do Contestado Campus Concórdia Curso de Engenharia Ambiental Prof.: Maico Petry SISTEMAS OPERACIONAIS DISCIPLINA: Informática Aplicada DEFINIÇÃO É um programa de controle do computador. O

Leia mais

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

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade I Introdução 11/02/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Introdução Conceituação de SO Funções Básicas Breve Histórico Tipos de SO Fundamentos

Leia mais

Chamadas de Sistema e Processo

Chamadas de Sistema e Processo Andrique Amorim www.andrix.com.br professor@andrix.com.br Chamadas de Sistema e Processo Estrutura do Computador Sistemas Operacionais Estrutura do Computador Sistemas Operacionais Modos de Acesso ao S.O.

Leia mais

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br INTRODUÇÃO O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Nível do Sistema Operacional

Nível do Sistema Operacional Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/1 Introdução Hardware Provê os recursos básicos

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço

Leia mais

Processos. Adão de Melo Neto

Processos. Adão de Melo Neto Processos Adão de Melo Neto 1 EXECUTE O SEGUINTE Baixa a aula dos dias 20 MAR 15 e 08 MAI 15 e salve no computador. Feche o browser Inicialize o vmware player e inicialize a máquina virtual ubuntu Inicialize

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerencia de Processos 4.1 Introdução aos Processos Gerenciamento de Processos Processo -Definição: É uma abstração do sistema

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistema Operacional. Prof. Leonardo Barreto Campos 1 Sistema Operacional Prof. Leonardo Barreto Campos 1 Sumário Introdução; Tipos de Sistemas Operacionais; Escalonamento; Gerenciamento de Memória; Bibliografia. Prof. Leonardo Barreto Campos 2/25 Introdução

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I

UFRJ IM - DCC. Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade I 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Conceituação de SO Funções Básicas Breve Histórico Tipos

Leia mais

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com)

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) 1 Noções de Software; Sistemas Operacionais: Evolução; Conceitos Básicos; Tipos; Exemplos. DEINFO/UFRPE

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais Prof. Dr. Ruy de Oliveira CEFET-MT O que é um Sistema Operacional? Um software que abstrai as complexidades do hardware de um usuário/programador

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille, da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais