Você está na página 1de 52

SISTEMAS OPERACIONAIS

Professora: Ana Karina D Salina de Oliveira

Bibliografia
Livro Texto: MACHADO, Francis B., MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 2 ed. Rio de Janeiro: LTC, 1997 TANENBAUM, ANDREW S. Sistemas Operacionais Modernos. Editora LTC, Rio de Janeiro, 1999. DAVIS, William S. SISTEMAS OPERCIONAIS Uma Viso Sistemtica. 3 ed. Rio de Janeiro: Campus, 1991. ARMAN, DANESH Dominando o Linux Red Hat 6.0 A Bblia. Editora Makron Books, So Paulo, 2000. TORRES, Gabriel. Hardware Curso Completo.

Contedo Programtico
Introduo ao Estudo de Sistemas Operacionais Tipo de S.Os. Sistemas Multiprogramveis; Estrutura do S. O. Processos; Comunicao entre Processos; Gerncia do Processador; Gerncia de Memria;

NDICE
1 INTRODUO AO ESTUDO DE SISTEMAS OPERACIONAIS..................................................... 4 1.1 1.2 1.3 2 DEFINIO DE S.O. ............................................................................................................................. 4 EVOLUO DOS S.OS. ......................................................................................................................... 5 CONCEITOS DE HARDWARE, SOFTWARE ............................................................................................. 7

TIPOS DE S.OS. ....................................................................................................................................... 9 2.1 SISTEMAS MONOPROGRAMVEIS/ MONOTAREFAS ............................................................................. 9 2.2 SISTEMAS MULTIPROGRAMVEIS / MULTITAREFAS .......................................................................... 10 2.2.1 Classificao dos Sistemas Multiprogramveis/Multitarefa .................................................... 11 2.3 SISTEMAS COM MLTIPLOS PROCESSADORES .................................................................... 13 2.4 SISTEMAS FORTEMENTE ACOPLADOS ............................................................................................... 14 2.5 ORGANIZAO FUNCIONAL .............................................................................................................. 15 2.6 SISTEMAS FRACAMENTE ACOPLADOS ............................................................................................... 16

SISTEMAS MULTIPROGRAMVEIS .............................................................................................. 18 3.1 INTERRUPO E EXCEO ................................................................................................................ 18 OPERAES DE ENTRADA/SADA .................................................................................................................. 19 3.3 BUFFERING ........................................................................................................................................ 20 3.4 SPOOLING .......................................................................................................................................... 21 3.5 REENTRNCIA ................................................................................................................................... 21 3.6 PROTEO ......................................................................................................................................... 21

ESTRUTURA DO SISTEMA OPERACIONAL ......................................................................................... 22 4.1 4.2 4.3 4.4 4.5 4.6 5 AS SYSTEM CALLS ....................................................................................................................... 22 GRUPOS DAS SYSTEM CALLS ........................................................................................................ 22 MODOS DE ACESSO ........................................................................................................................... 23 SISTEMAS MONOLTICOS ................................................................................................................... 23 SISTEMAS EM CAMADAS ................................................................................................................... 24 SISTEMAS CLIENTE-SERVIDOR .......................................................................................................... 25

PROCESSOS .......................................................................................................................................... 26 5.1 5.2 5.3 5.4 O PCB (PROCESS CONTROL BLOCK) ........................................................................................ 27 ESTADOS DO PROCESSO ............................................................................................................. 31 MUDANAS DE ESTADO DO PROCESSO ................................................................................. 31 TIPOS DE PROCESSOS .................................................................................................................. 33

COMUNICAO ENTRE PROCESSOS ........................................................................................... 34 6.1 6.2 6.3 6.4 6.5 6.6 INTRODUO ..................................................................................................................................... 34 ESPECIFICAO DE CONCORRNCIA EM PROGRAMA ......................................................................... 35 SOLUO PARA PROBLEMAS DE COMPARTILHAMENTO ..................................................................... 35 PROBLEMAS DE SINCRONIZAO ...................................................................................................... 36 SOLUES DE SOFTWARE .................................................................................................................. 38 DEADLOCKS ...................................................................................................................................... 43

GERNCIA DO PROCESSADOR....................................................................................................... 44 7.1 7.2 7.1 7.2 7.3 INTRODUO ..................................................................................................................................... 44 CRITRIOS DE ESCALONAMENTO ...................................................................................................... 44 ESCALONAMENTO NO-PREEMPTIVO ................................................................................................ 45 ESCALONAMENTO PREEMPITIVO ....................................................................................................... 46 ESCALONAMENTO COM MLTIPLOS PROCESSADORES ....................................................................... 48

GERNCIA DE MEMRIA ................................................................................................................ 49 Pg. 1

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

8.1 ALOCAO CONTGUA SIMPLES ........................................................................................................ 49 8.2 ALOCAO PARTICIONADA ............................................................................................................... 50 8.2.1 Alocao Particionada Esttica ............................................................................................... 50 8.2.2 Alocao Particionada Dinmica ............................................................................................ 51

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

LISTA DE FIGURAS
FIG. 1.1 SISTEMA OPERACIONAL COMO INTERFACE ........................................................................................... 4 FIG. 1.2 MQUINA DE NVEIS .............................................................................................................................. 4 FIG 1.3 PROCESSAMENTO BATCH ........................................................................................................................ 6 FIG. 1.4 RELAO ENTRE OS DISPOSITIVOS DE ARMAZENAMENTO ...................................................................... 8 FIG. 2.1 TIPOS DE SISTEMAS OPERACIONAIS ....................................................................................................... 9 FIG. 2.2 EXEMPLO DE FUNCIONAMENTO DE UM SISTEMA MONOTAREFA ............................................................. 9 FIG. 2.3 SISTEMAS MULTIPROGRAMVEIS / MULTITAREFA.............................................................................. 10 FIG. 2.4 TIPOS DE SISTEMAS MULTIPROGRAMVEIS / MULTITAREFA ............................................................... 11 FIG 2.5 COMPARAO DE SISTEMAS MONOUSURIOS X MULTIUSURIOS ....................................................... 12 FIG. 2.6 SISTEMAS COM MLTIPLOS PROCESSADORES ...................................................................................... 13 FIG. 2.7 SISTEMAS FORTEMENTE ACOPLADO .................................................................................................... 14 FIG. 2.8 SISTEMAS FRACAMENTE ACOPLADO ................................................................................................... 14 FIG. 2.9 BARRAMENTO COMUM ........................................................................................................................ 15 FIG. 2.10 BARRAMENTO CRUZADO ................................................................................................................... 15 FIG. 2.11 ORGANIZAO DE BARRAMENTO ...................................................................................................... 17 FIG. 2.12 ORGANIZAO DISTRIBUDA ............................................................................................................. 17 FIG. 3.1 SISTEMA MONOPROGRAMVEL X MULTIPROGRAMVEL .................................................................... 18 FIG. 3.2 CONTROLADOR .................................................................................................................................... 19 FIG. 3.3 CANAL DE E/S ...................................................................................................................................... 20 FIG. 3.4 OPERAES UTILIZANDO BUFFER ........................................................................................................ 21 FIG. 3.5 TCNICA DE SPOOLING ........................................................................................................................ 21 FIG. 4.1 SYSTEM CALL ...................................................................................................................................... 22 FIG. 4.2 SISTEMAS MONOLTICOS...................................................................................................................... 23 FIG. 4.3 SISTEMA EM CAMADAS........................................................................................................................ 24 FIG. 4.4 SISTEMA EM CAMADAS ........................................................................................................................ 24 FIG 4.5 SISTEMAS CLIENTE-SERVIDOR .............................................................................................................. 25 FIG. 5.1 EXECUO DE UM PROGRAMA ............................................................................................................. 26 FIG. 5.2 CICLO DE EXECUO DE UMA INSTRUO. .......................................................................................... 27 FIG. 5.3 CICLO DA INTERRUPO ...................................................................................................................... 27 FIG. 5.4 BLOCO DE CONTROLE DE PROCESSO .................................................................................................... 28 FIG. 5.5 CONTEXTO DE HARDWARE .................................................................................................................. 29 FIG 5.6 MUDANAS DE ESTADO DO PROCESSO................................................................................................. 31 FIG 5.7 LISTA DE PCB ....................................................................................................................................... 32 FIG 5.8 MUDANA DE ESTADO COM LISTAS DE PCB ......................................................................................... 32 FIG 5.9 PROCESSOS I/O BOUND E CPU BOUND ................................................................................................ 33 FIG. 6.1 COMUNICAO / SINCRONIZAO ENTRE PROCESSOS ......................................................................... 34 FIG. 6.2 SOLUO POR SEMFOROS .................................................................................................................. 39 FIG. 6.3 TRANSMISSO DE MENSAGEM .............................................................................................................. 42 FIG. 6.4 ENDEREAMENTO DIRETO ................................................................................................................... 42 FIG. 6.5 ENDEREAMENTO INDIRETO ................................................................................................................ 42 FIG 7.1 ESCALONAMENTO ................................................................................................................................. 44 FIG. 7.2 ESCALONAMENTO CIRCULAR............................................................................................................... 46 FIG. 7.3 ESCALONAMENTO POR MLTIPLA FILAS............................................................................................... 47 FIG. 7.4 ESCALONAMENTO POR MLTIPLA FILAS COM REALIMENTAO .......................................................... 47 FIG. 8.1 ALOCAO CONTGUA SIMPLES .......................................................................................................... 49 FIG. 8.2 TCNICA DE OVERLAY ......................................................................................................................... 49 FIG. 8.3 ALOCAO PARTICIONADA ESTTICA ABSOLUTA.............................................................................. 50 FIG. 8.4 ALOCAO PARTICIONADA ESTTICA RELOCVEL ............................................................................ 51 FIG. 8.4 ALOCAO PARTICIONADA ESTTICA RELOCVEL ............................................................................ 51

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

INTRODUO AO ESTUDO DE SISTEMAS OPERACIONAIS

1.1 Definio de S.O.


Um computador sem seu software nada mais do que um pedao intil de metal, no pode fazer nada. No aceita nem exibe caracteres entrados via teclado, muito menos executa um programa. Usurios e programadores lidam com o hardware por intermdio de um programa chamado de sistema operacional. Basicamente, o sistema operacional possui as seguintes funes: 1. 2. Facilidade de acesso aos recursos do sistema, como impressoras e discos; Compartilhamento de recursos de forma organizada e protegida, onde vrios usurios podem compartilhar os mesmos recursos como memria, discos e impressoras. A mais evidente funo do sistema operacional servir de interface com o hardware. Tal interface conhecida como mquina virtual Programadores Usurios Programas Aplicativos

Sistema Operacional

Hardware

FIG. 1.1 SISTEMA OPERACIONAL COMO INTERFACE O computador pode ser considerado como uma mquina de nveis ou camadas, tornando a interao entre o usurio e o computador mais simples, confivel e eficiente. A parte fsica tornou-se transparente para o usurio. Basicamente o computador possui a estrutura mostrada na figura abaixo. Aplicativos Utilitrios Sistema Operacional Linguagem de Mquina Microprogramao Dispositivos Fsicos Hardware

FIG. 1.2 MQUINA DE NVEIS

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

1.2 Evoluo dos S.Os.


A evoluo dos Sistemas Operacionais se deu em grande parte pela necessidade de controle dos novos equipamentos que apareceram. Em razo dos sistemas operacionais estarem ligados s arquiteturas das mquinas nas quais eles rodam, vamos analisar cada uma das sucessivas geraes de computadores.

Primeira Gerao (1945 1955) No incio da Segunda Guerra Mundial, surgiram os primeiros computadores digitais, formados por milhares de vlvulas, que ocupavam reas enormes, sendo de funcionamento lento e duvidoso. Um nico grupo de pessoas era responsvel pelo projeto, construo, programao e manuteno de cada mquina. Para trabalhar nestas mquinas era necessrio conhecer profundamente o funcionamento do hardware, pois a programao era feita em painis, atravs de fios, utilizando linguagem de mquina. Os sistemas operacionais e o conceito de linguagem de programao ainda no existiam. No incio dos anos 50, houve uma melhora no uso de tais mquinas com o advento do carto perfurado que tornou possvel a codificao de programas em cartes e sua leitura pela mquina.

Segunda Gerao (1956 - 1965) A criao do transistor e das memrias magnticas contribui para o enorme avano dos computadores da poca. O transistor permitiu o aumento da velocidade e da confiabilidade do processamento, e as memrias magnticas permitiram o acesso mais rpido aos dados, maior capacidade de armazenamento e computadores menores. Com o surgimento das primeiras linguagens de programao, como Assembly e Fortran, os programas deixaram de ser feitos diretamente no hardware, o que facilitou enormemente o processo de desenvolvimento de programas. Os primeiros sistemas operacionais surgiram, justamente para tentar automatizar as tarefas manuais que eram utilizadas; eles passaram a ter seu prprio conjunto de rotinas para operaes de entrada e sada, eliminando a necessidade do programador desenvolver suas prprias rotinas de leitura/gravao especfica para cada dispositivo perifrico. Processamento Bath - Inicialmente os programas passaram a ser perfurados em cartes, que submetidos a uma leitora, eram gravados em uma fita de entrada (Fig. 1.3 a). Afita, ento, era lida pelo computador, que executava um programa de cada vez, gravando o resultado do processamento em uma fita de sada (Fig. 1.3 b). Ao trmino de todos os programas, a fita era lida e impressa (Fig. 1.3 c).

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

a)

job

Leitora de carto Fita de entrada

b)
Fita de entrada

Fita do sistema Fita de sada Processamento Fita de sada Impressora

c)

FIG 1.3 PROCESSAMENTO BATCH Terceira Gerao (1966 - 1980) A diminuio do tamanho do equipamento, do custo e do aumento do poder de processamento difundiu-se o uso do computador em empresas. A IBM lanou em 1964 a srie 360, famlia de computadores pequena, poderosa e compatvel em que poderia aumentar os recursos sem comprometer as aplicaes j existentes. Para essa srie foi desenvolvido o sistema operacional OS/36 que tentava atender todos os tipos de aplicaes e perifricos. A DEC lanou a linha PDP-8, tambm de pequeno porte e baixo custo, criando um novo mercado de minicomputadores. Foram adicionados terminais e teclados para permitir interao rpida entre o usurio e o computador. Multiprogramao - A evoluo dos processadores de entrada e sada permitiu que, enquanto um programa esperasse por uma operao de leitura e gravao, o processador executasse um outro programa. Para tal a memria foi dividida em parties, onde cada programa esperava sua vez para ser executado. Soopling Com a substituio das fitas por discos no processo de execuo dos programas, o processamento se tornou mais eficiente, permitindo a alterao da ordem na execuo das tarefas, que eram sequenciais. Time-sharing Para melhorar o tempo de respostas razoveis cada programa na memria utilizaria o comutador em pequenos intervalos de tempo, compartilhando assim o processador com outros programas. Surgimento do sistema operacional UNIX e dos primeiros microcomputadores muito mais baratos que os comercializados at ento. Destacamos os micros de 8 bits da Apple e o sistema operacional CP/M (Control Program Monitor).

Quarta Gerao (1981 - 1990) Com o desenvolvimento da integrao de circuito em grande escala (LSI) e a integrao em muito larga escala (VLSI), apareceram chips com milhares de transistores encapsulados em um centmetro quadrado de silcio, nascendo da a idia de computador pessoal. Atualmente, os mais poderosos computadores pessoais so denominados estaes de trabalho (workstation), que so ligadas em rede para troca de informaes, permitindo que se execute vrias tarefas concorrentemente, criando o conceito de multitarefa. Surgiram os computadores PC (Personal Computer) de 16 bits da IBM e o sistema operacional MSDOS.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

Multiprocessamento - Devido ao enorme volume de clculos, no final dos anos 80 foram adicionados outros processadores, exigindo dos novos sistemas operacionais mecanismos de controle e sincronismo. Devido ao avano em redes de computadores, os softwares de rede passaram a estar intimamente relacionados ao sistema operacional e surgem os sistema operacionais de rede. Quinta Gerao (1991 - 2000) Avanos em termos de hardware, software e telecomunicaes. Os componentes baseados em tecnologia VLSI (Very Large Scale Integration) evoluem rapidamente para ULSI (Ultra Large Scale Integration). O conceito de processamento distribudo explorado de forma que suas funes estejam espalhadas por vrios processadores atravs da rede de computadores. A arquitetura cliente-servidor aplicada basicamente a redes locais passa a ser oferecida em redes distribudas. Problemas de segurana, gerncia e desempenho tornam-se fatores importantes relacionados ao sistema operacional e rede.

1.3 Conceitos de Hardware, Software


Os conceitos de hardware e software sero fundamentais para o entendimento dos prximos temas em sistemas operacionais. Hardware Dispositivos fsicos que manipulam dados na forma digital, sendo eles: processador, memria principal, registradores, terminais, impressoras, discos magnticos, entre outros. Principais componentes: 1. Unidade Central de Processamento (CPU), ou processador responsvel pela execuo de todos os programas do sistema, que devero estar armazenados na memria principal.

A especificao da velocidade de processamento de uma CPU determinada pelo nmero de instrues que o processador executa por unidade de tempo, normalmente segundo. 2. Registradores So dispositivos de alta velocidade, localizados fisicamente na CPU, para armazenamento temporrio de dados. O nmero de registradores varia em funo da arquitetura de cada processador. 3. Memria Principal Parte do computador onde so armazenados instrues e dados, composta por unidades de acesso chamadas de clulas, sendo cada clula composta por um determinado nmero de bits. O bit a unidade bsica de memria, podendo assumir o valor 0 ou1. O acesso a uma clula realizado atravs de um nmero chamado endereo. RAM ROM. Segue figura 1.4. 4. Memria Cache uma memria voltil de alta velocidade, o tempo de acesso de um dado contido nela muito menor do que se o mesmo estivesse na memria principal. 5. Memria Secundria um meio permanente, no voltil de armazenamento de programas e dados. Exemplos: fitas magnticas, discos magnticos e discos pticos. 6. Dispositivos de Entrada/Sada So utilizados para permitir a comunicao entre o computador e o mundo externo. Duas categorias: os que utilizados como memria secundria e os que servem para interface homem-mquina Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais Pg. 7

7.

Barramento Linhas de comunicao que interligam a CPU, a memria principal e os dispositivos de E/S.

Registradores
Capacidade de armazenamento

Memria Cache Memria Principal Secundria

Custo e velocidade de acesso

FIG. 1.4 RELAO ENTRE OS DISPOSITIVOS DE ARMAZENAMENTO Software Conjunto de programas necessrios para tornarem o computador til. 1. Tradutor Converte toda representao simblica dos programas traduzindo para cdigo de mquina. 2. Interpretador A partir de um programa fonte, o interpretador, no momento da execuo do programa, traduz cada instruo e executa em seguida. No gera cdigo objeto.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

2 Tipos de S.Os.
Os tipos de S.O. esto relacionados a evoluo do Hardware.

Tipos de S.O.

Sistemas Monoprogramveis

Sistemas Multiprogramveis

Mltiplos Processadores

FIG. 2.1 TIPOS DE SISTEMAS OPERACIONAIS

2.1 Sistemas Monoprogramveis/ Monotarefas


Voltados a execuo de um nico programa ( JOB ) Outros programas deveriam aguardar o trmino do programa corrente para ganhar o processador.

Caractersticas : Permitiam q/ o processador, a memria e I/O permanecessem exclusivos a execuo de um nico programa (Mainframes). Processador ocioso. Memria e perifricos no eram utilizados em toda sua totalidade. Implementao simples.

Os sistemas monotarefas se caracterizam por permitir que todos os seus recursos fiquem exclusivamente dedicados a uma tarefa.

Tarefas/Programa

CPU

Memria

I/O

FIG. 2.2 EXEMPLO DE FUNCIONAMENTO DE UM SISTEMA MONOTAREFA

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

2.2 Sistemas Multiprogramveis / Multitarefas


Substituram os sistemas monoprogramveis/monotarefas Caractersticas: Mais complexos e eficientes Vrios programas dividindo os mesmos recursos Preocupao do S.O. em gerenciar a concorrncia no uso de CPU, memria e I/O.

Vantagens: Aumento de produtividade de seus usurios Reduo de Custos por compartilhar vrios recursos.

Tarefas/Programa

Tarefas/Programa

CPU

Memria

I/O Tarefas/Programa

Tarefas/Programa

FIG. 2.3 SISTEMAS MULTIPROGRAMVEIS / MULTITAREFA

A partir do nmero de usurios que interagem com o sistema, podemos classificar os sistemas multiprogramveis como monousurio e multiusurio. No mundo dos computadores pessoais e estaes de trabalho, apesar de existir apenas um nico usurio interagindo com o sistema (monousurio), possvel que ele execute diversas tarefas concorrentemente ou mesmo simultaneamente. Sistemas Multitarefa Permitem que o usurio edite um texto, imprima um arquivo, copie um arquivo pela rede e calcule uma planilha.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

10

2.2.1 Classificao dos Sistemas Multiprogramveis/Multitarefa

Sist.Multiprog. Multitarefas

Sistemas Batch

Sistemas Time Sharing

Sistemas Real Time

FIG. 2.4 TIPOS DE SISTEMAS MULTIPROGRAMVEIS / MULTITAREFA

Sistemas BATCH
Foram os 1 sistemas multiprogramveis. Caractersticas: Terem seus programas armazenados em discos e fitas, onde a execuo seqencial. Normalmente no existem interaes com os usurios

Ex.: Compilaes, Linkedies, Sorts e Backups.

Sistemas de Tempo Compartilhado ( Time Sharing )


Permitem Interao dos usurios com o sistema. Conhecidos como sistemas ON-LINE

Ex.: Verificar os arquivos armazenados no disco. OBS. : Time Slice a fatia de tempo que o processador separa para cada processo que dever ser executado. Vantagem: Reduo de custos, aumento de produtividade.

Desvantagem: Desenvolvimento complexo.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

11

Sistemas de Tempo Real ( Real Time )


Processamento e atualizaes instantneas Ex.: Controle de vlvula de uma subestao petrolfera, controle de trfego areo, controle de usinas nucleares. Vantagem: Atualizaes instantneas.

Desvantagem: Desenvolvimento complexo. Dedicao exclusiva ao processo.

Comparao de Sistemas Monousurios x Multiusurios Os sistemas Monousurios no permite o compartilhamento de recursos, o que no acontece com os sistemas Multiusurios

Sistemas Monousurios No h compartilhamento de recursos Um nico usurio conectado Gerencia a prpria mquina No h correio eletrnico

Sistemas Multiusurios H compartilhamento de recursos Mais de um usurio conectado Gerncia Remota H correio eletrnico

FIG 2.5 COMPARAO DE SISTEMAS MONOUSURIOS X MULTIUSURIOS

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

12

2.3 SISTEMAS COM MLTIPLOS PROCESSADORES


Possuem duas ou mais vias de CPUs interligadas, trabalhando em conjunto. Fator-Chave : a forma de comunicao entre as CPUs , o grau de compartilhamento da memria e I/O.

Sist. com Mltiplos Processadores

Fortemente Acoplados

Fracamente Acoplados

Simtricos

Assimtricos

Redes

Distribudos

FIG. 2.6 SISTEMAS COM MLTIPLOS PROCESSADORES

Sistemas Fortemente Acoplados (fig. 2.7): Possuem dois ou mais processadores compartilhando uma nica memria Controlados por um nico sistema Operacional

Sistemas Fracamente Acoplados: Possuem dois ou mais sistemas de computao conectados atravs de linhas de comunicao Cada sistema possui seus prprios processadores, memria e dispositivo

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

13

CPU

Memria

CPU

Dispositivos de E/S

Dispositivos de E/S

FIG. 2.7 SISTEMAS FORTEMENTE ACOPLADO

Link de comunicao
CPU CPU

Memria

Dispositivos de E/S

Memria

Dispositivos de E/S

FIG. 2.8 SISTEMAS FRACAMENTE ACOPLADO

2.4 Sistemas Fortemente Acoplados


Possuem dois ou mais processadores compartilhando uma nica memria e controlados por um nico S.O. - Dividem-se em simtricos e assimtricos Assimtrico : Processador Mestre/Escravo (Master e Slave); Somente um processador pode executar servios do sistema operacional Simtrico : Processadores com mesma funo. Paralelismo (Programa executado por vrios processadores ao mesmo tempo)

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

14

2.5 Organizao Funcional


o esquema de comunicao interna das CPUs , Memria e I/O.

Barramento Comum

Interliga todos dos componentes em um nico barramento. Problema : Somente uma unidade funcional poder estar utilizando o Barramento .

CPU

Memria

Processador de E/S

Memria

Memria

CPU

Processador de E/S

CPU

FIG. 2.9 BARRAMENTO COMUM

Barramento Cruzado

Para evitar o problema de gargalo (no barramento) as unidades funcionais podem ser conectadas entre si. possvel a comunicao simultnea entre diferentes unidades funcionais, o hardware resolve os conflitos de acesso a uma mesma unidade.

IMPORTANTE : A CPU no pode ter acesso simultneo uma mesma unidade de memria.

Memria CPU CPU

Memria

Memria Processador de E/S Processador de E/S

CPU
FIG. 2.10 BARRAMENTO CRUZADO

Processador de E/S

Memria Multiport

Possibilita os acessos simultneos a um mesmo mdulo de memria.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

15

2.6 Sistemas Fracamente Acoplados


- Possuem 2 ou mais sistemas de computao ligados - Cada Sistema Possui seu prprio sistema operacional, gerenciando seus prprios recursos.

- S.O.R. (Sistema Operacional de Rede) Cada n possui seu prprio S.O. e possibilitam o compartilhamento de recursos alm de outras funes como: Cpia remota de arquivos; Emulao de terminal; Impresso Remota; Gerncia Remota Correio Eletrnico

Cada n totalmente independente do outro, podendo possuir S.Os diferentes Ex: Windows NT , Linux , Win 98.

- S.O. Distribudo

Relacionamento forte entre os seus componentes, onde geralmente os S.Os so os mesmos.


Ex: Novell , Lantastic.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

16

Organizao Funcional

A organizao funcional dos sistemas fracamente acoplados ou topologia define como so interligadas fisicamente os diversos sistemas de rede. Barramento Utilizadas em redes locais

FIG. 2.11 ORGANIZAO DE BARRAMENTO Organizao Distribuda Linhas de comunicao ponto-a-ponto (Internet).

FIG. 2.12 ORGANIZAO DISTRIBUDA

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

17

3 SISTEMAS MULTIPROGRAMVEIS
Perifricos e Dispositivos funcionam simultaneamente entre si, juntamente com a CPU; Tarefas Concorrentes;

Sistemas Monoprogramveis Somente um programa residente na memria CPU permanentemente dedicada a execuo de um programa. Desperdcio na utilizao da CPU Subutilizao da memria.

Sistemas Multiprogramveis Vrios programas podem estar residentes em memria, concorrendo pela utilizao da CPU. A CPU permanece menos tempo ociosa Memria utilizada de forma mais eficiente

E/S

E/S

CPU

CPU

1 2

tempo (a) Sistema Monoprogramvel

tempo (a) Sistema Multiprogramvel

FIG. 3.1 SISTEMA MONOPROGRAMVEL X MULTIPROGRAMVEL

3.1 Interrupo e Exceo


Eventos que podem ocorrer durante o processamento de um programa, obrigando a interveno do sistema operacional. Pode ser resultado da execuo de instrues do prprio programa, gerado pelo sistema operacional ou por algum dispositivo de hardware. O fluxo de execuo do programa desviado para uma rotina especial de tratamento.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

18

Interrupo Gerada pelo Sistema Operacional ou por algum dispositivo Independe do programa que est sendo executado Quando a interrupo detectada, o controle desviado para rotina de tratamento da interrupo Atravs da interrupo o S.O. sincroniza a execuo de todas as suas rotinas e dos programas de usurio, alm de controlar perifricos e dispositivos de sistema .

Exceo Resultado direto da execuo de uma instruo do prprio programa Ex Diviso de um nmero por zero, overflow de caracteres O tratamento pode ser escrito pelo prprio programador

3.2 Operaes de Entrada/Sada


Controlador ou Interface faz a ligao entre a CPU e os perifricos

CPU

Memria Principal

Controlador

FIG. 3.2 CONTROLADOR Existem duas formas bsicas do processador controlar as operaes de E/S: 1 - A CPU sincroniza-se com o perifrico para incio da transferncia dos dados, aps a transferncia o sistema fica permanentemente testando o estado do perifrico para saber quando a operao termina (busy wait). - Controlado por programa, mantm a CPU ocupada at o trmino da operao. - Problema: Desperdcio de tempo da CPU 2 - Aps o incio da transferncia dos dados, a CPU fica livre para se ocupar de outras tarefas. Em determinados intervalos de tempo o S.O. deve realizar um teste para saber do trmino ou no da operao de E/S em cada dispositivo (polling). - Problema: Se existir um grande nmero de perifricos o S.O. ter que interromper o processamento dos programas para testar os diversos perifricos.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

19

CPU

Memria Principal

Canal de E/S

Controlador

Controlador

FIG. 3.3 CANAL DE E/S Canal de E/S um processador com capacidade de executar programas de E/S. As instrues de E/S so armazenadas na memria principal pela CPU; A CPU realiza uma operao de E/S instruindo o canal para executar um programa localizado na memria; canal E/S realiza a execuo e ao final gera uma interrupo avisando o trmino da operao.

3.3 Buffering
A tcnica de buffering consiste na utilizao de uma rea da memria para a transferncia de dados entre perifricos e a memria principal denominado buffer. O buffer possui a capacidade de armazenar diversos registros, de modo a permitir que existam dados lidos no buffer mas ainda no processados, ou ainda no gravados. Desta forma, o dispositivo de entrada poder ler diversos registros antes que a CPU os processe, ou a CPU poder processar diversos registros antes de o dispositivo de sada realizar a gravao.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

20

Memria Principal

CPU
Gravao Gravao

Controlador de E/S

Buffer
Leitura

Leitura

FIG. 3.4 OPERAES UTILIZANDO BUFFER

3.4 Spooling
Foi introduzido para aumentar a produtividade e eficincia dos sistemas operacionais. Este processo permitia armazenar vrios programas em um fita e depois para depois process-los. Atualmente, a tcnica de spooling implementada na maioria dos sistemas operacionais, fazendo com que tanto a CPU quanto os dispositivos de E/S sejam aproveitados de forma mais eficiente. Um exemplo em impressoras, no momento em que um comando de impresso executado por um programa, as informaes que sero impressas so gravadas em um arquivo de disco (arquivo de spool), para ser impresso posteriormente pelo sistema.

Programa

Sistema Operacional

Arquivo de Spool FIG. 3.5 TCNICA DE SPOOLING

Impresso

3.5 Reentrncia
Capacidade de um cdigo de programa (cdigo reentrante) poder ser compartilhado por diversos usurios, exigindo que apenas uma cpia do programa esteja na memria. Comum em sistemas multiprogramveis, permite que cada usurio manipule dados prprios. O cdigo no pode ser mudado por nenhum usurio no momento em que est sendo executado.

3.6 Proteo
Essencial em sistemas multiprogramveis para garantir a integridade dos dados pertencentes a cada usurio. Todo sistema implementa algum tipo de proteo aos diversos recursos que so compartilhados, como memria, dispositivos de E/S e CPU.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

21

4 ESTRUTURA DO SISTEMA OPERACIONAL

O S.O. estruturado por um conjunto de rotinas que oferecem servios aos usurios do sistema e suas aplicaes. Esse conjunto de rotinas chamado de kernel (ncleo). Dentre as principais funes do ncleo pode-se enumerar : tratamento de interrupes; criao e eliminao de processos; sincronizao e comunicao entre processos; escalonamento e controle dos processos; gerncia de memria; gerncia do sistema de arquivos; operaes de I/O; contabilizao de segurana do sistema.

4.1 As SYSTEM CALLS


Responsveis por no permitir que a aplicao/usurio acessem diretamente o kernel do S.O., mantendo assim, o sistema estvel e operante. Estas chamadas system calls por determinada aplicao similar um programa modularizado ativando um de seus procedimentos ou funes.

Aplicao

System Calls

Kernel

H A R D W A R E

FIG. 4.1 SYSTEM CALL

4.2 Grupos das SYSTEM CALLS


Gerncia de processos

(a) Criao e eliminao de processos; (b) Alterao das caractersticas do processo; (c) Sincronizao e comunicao entre processos.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

22

Gerncia de Memria

(a) Alocao e desalocao de memria.

Gerncia de I/O

(a) Operaes de I/O; (b) Manipulao de arquivos e diretrios.

4.3 Modos de Acesso


Operaes como I/O e gerncia de memria so arriscadas e podem causar uma instabilidade no S.O. por isso aplicaes no devem realizar este tipo de tarefa. Para que uma aplicao possa realizar uma instruo privilegiada (que compromete o sistema) so implementados pelo processador os modos de acesso elencados abaixo : Modo usurio : Aplicao executa instruo no-privilegiada; Modo Kernel : Aplicao executa instruo privilegiada;

4.4 Sistemas Monolticos


So os mais comuns de serem encontrados, podem ser comparados a uma aplicao formada por vrios procedimentos compilados separadamente e linkados formando um nico e grande executvel.

APLIC.

APLIC.

SYSTEM CALLS

HARDWARE

FIG. 4.2 SISTEMAS MONOLTICOS

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

23

4.5 Sistemas em Camadas


Um sistema em camada divide o S.O. em camadas sobrepostas. Cada mdulo oferece um conjunto de funes que podem ser utilizadas por outros mdulos. O primeiro sistema em camadas foi criado pelo Holands Dijkstra, este sistema era composto de seis camadas e foi posteriormente chamado de MULTICS(futuro UNICS UNIX) .

5 Operador 4 Programas de Usurios 3 I/O 2 Comunicao 1 Gerncia de Memria 0 Multiprograo

FIG. 4.3 SISTEMA EM CAMADAS

usurio

supervisor executivo

kernel

FIG. 4.4 SISTEMA EM CAMADAS

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

24

4.6 Sistemas Cliente-Servidor


Os S.O.s modernos seguem a tendncia de minimizar o tamanho do seu ncleo. Para implementar esta idia, o sistema dividido em processos, sendo cada um responsvel por oferecer um conjunto de servios, como, servios de arquivo, servios de criao de processo, servios de memria, servio de escalonamento de processos, dentre outros. Sempre que a aplicao deseja algum servio, ela solicita ao processo responsvel. A aplicao que solicita o servio chamada de cliente , a que atende a solicitao chamada de servidor. funo do kernel do sistema realizar a comunicao, ou seja, troca de mensagens entre o cliente e o servio.

CLIENTE

SERV.ARQ

SERV.MEM

SERV.REDE

NCLEO

HARDWARE

FIG 4.5 SISTEMAS CLIENTE-SERVIDOR

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

25

5 PROCESSOS
O termo processo foi utilizado pela primeira no desenvolvimento do multics, na dcada de 60. Processo tem vrias definies, algumas delas so : Um programa em execuo ; Uma atividade assncrona; A alma de um procedimento; O controle local de um procedimento em execuo; Entidade para o qual o processador est dedicado.

Um processo em execuo utiliza os dispositivos abaixo, como disco, memria, processador, ...

Processador Unidade de Controle Unidade Lgica Aritmtica

Dispositivos de entrada e sada

Registradores

Memria Principal Teclado

Vdeo

Disco

Barramento

FIG. 5.1 EXECUO DE UM PROGRAMA

Cada programa a ser executado trazido do disco para a memria principal, de onde os dados sero passados para os registradores no processador. A memria armazena conjuntos de instrues a serem executadas pelo processador

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

26

Cada instruo da memria passa pelo seguinte ciclo de execuo:

Ciclo de Busca

Ciclo de Execuo

INCIO

Busca Instruo

Executa Instruo

FIM

FIG. 5.2 CICLO DE EXECUO DE UMA INSTRUO.

Quando ocorre alguma interrupo por time-out, erro no programa do usurio, dispositivo de entrada e sada ou falhas de hardware, o processamento interrompido e a instruo volta ao incio para que seja tratada a interrupo.

Ciclo de Busca

Ciclo de Execuo

Ciclo de Interrupo

INCIO

Busca Instruo

Executa Instruo

Executa Interrupo

FIM

FIG. 5.3 CICLO DA INTERRUPO

5.1 O PCB (PROCESS CONTROL BLOCK)


O PCB uma estrutura de dados que contm importantes informaes sobre os processos incluso.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

27

Ponteiro Estado do Processo Nome do Processo Prioridade do Processo Registradores Limites de Memria Lista de Arqvs. Abertos

FIG. 5.4 BLOCO DE CONTROLE DE PROCESSO O S.O. gerencia os processos atravs das system calls que realizam operaes como criao, eliminao, sincronizao, suspenso de processos, dentre outros. Pelo motivo dos PCBs precisarem ser manipulados rapidamente pelo S.O., muitos sistemas de computadores, contm registradores que sempre mostram ao PCB qual o processo em execuo. As instrues de hardware esto freqentemente disponvel para carregar informaes dentro do PCB e recuperar essas informaes rapidamente.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

28

CONTEXTO DE HARDWARE Constitui-se basicamente do contedo dos registradores, Program Counter (PC), Stack Pointer (SP) e bits de estado. Quando um processo est em execuo seu contexto de hardware fica gravado nos registradores do processador. No instante em que o processo perde a utilizao da CPU, o sistema salva suas informaes no contexto de hardware do processo. Este contexto aplicado a sistemas que utilizam-se de Time-Sharing, podendo ser interrompido e recuperado como se nada tivesse acontecido.
Processo A executando Salva os registradores do Processo A Carrega Registradores do Processo B executando Salva os registradores do Processo B Carrega Registradores do Processo A executando Processo B

FIG. 5.5 CONTEXTO DE HARDWARE

CONTEXTO DE SOFTWARE So caractersticas de um processo que vo influenciar na execuo de um programa, como por exemplo n. mximo de arquivos abertos simultaneamente e o tamanho do *buffer para as operaes de I/O.

*BUFFER : uma rea de armazenamento em memria principal para transferncias de I/O.

Um processo contm 3 grupos, de informaes, so eles :

Identificao

Os processos criados recebem sempre uma identificao (PID) e em alguns sistemas podem receber alm do PID um nome tambm.

Quotas

So limites de cada recurso do sistema que um processo pode alocar. Caso uma quota no seja suficiente o processo executado lentamente ou at ser no ser executado. Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais Pg.

29

Ex.: n mximo de arquivos abertos simultaneamente, tamanho mx. de memria que um processo pode alocar, n. mximo de operaes de I/O pendentes, tamanho mximo do buffer para operao de I/O, n mximo de processos e sub-processos que podem ser criados.

Privilgios

Determina o que os processos podem ou no fazer em relao ao sistema ou a outros processos.

ESPAO DE ENDEREAMENTO

a rea de memria do processo onde o programa executado, alm do espao para os dados utilizados por ele.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

30

5.2 ESTADOS DO PROCESSO


Durante a existncia de um processo, ele passa por vrios estados: Execuo (Running)

Processo na CPU Pronto (Ready)

Aguarda uma oportunidade para ser executado Espera (Wait)

Aguarda algum evento externo ou algum recurso para poder prosseguir seu processamento.

5.3 MUDANAS DE ESTADO DO PROCESSO


Pronto -> Execuo Aguarda a oportunidade para ser executado. Execuo -> Bloqueado Aguarda a concluso do evento solicitado. Ex.:I/O Bloqueado -> Pronto Operao solicitada atendida e ele deve retornar execuo. Obs: um processo em estado bloqueado obrigatoriamente volta ao estado de pronto antes de ser executado novamente. Execuo -> Pronto Passa do estado de pronto sempre que for gerado um evento, pelo sistema. Ex.:Fim da fatia de tempo para este processo.

Novo

Pronto Time-out

Executando

Sada

Espera por um evento Trmino do evento

Bloqueado

FIG 5.6 MUDANAS DE ESTADO DO PROCESSO Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais Pg. 31

O S.O. gerencia processos atravs de listas encadeadas, onde cada PCB tem um ponteiro para seu sucessor. Sendo assim, existe para seu sucessor. Sendo assim, existe uma lista para cada estado do processo. PCB #5 Lista de processos em estado de pronto PCB #1

Lista de processos em estado de espera

PCB #5

PCB #1

PCB #1

FIG 5.7 LISTA DE PCB

Novo

Fila de Pronto Processador

Fim

Time-out

Fila de bloqueado

Trmino do evento

Espera por um evento

FIG 5.8 MUDANA DE ESTADO COM LISTAS DE PCB

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

32

5.4 TIPOS DE PROCESSOS


Os programas podem ser classificados de acordo com o tipo de processamento que realizam :

CPU bound (Ligado a CPU) Quando passa a maior parte do tempo no estado de execuo.

I/O bound (Ligado a I/O) Maior parte do tempo no estado de espera, pois realiza um elevado nmero de I/O.

E/S

E/S

CPU

CPU

tempo (a) CPU-bound (b) I/O-bound

tempo

FIG 5.9 PROCESSOS I/O BOUND E CPU BOUND

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

33

6 COMUNICAO ENTRE PROCESSOS

6.1

Introduo
Os processos que trabalham juntos geralmente compartilham recursos como arquivos, registros,

dispositivos e reas de memria. Esse compartilhamento de recursos pode gerar situaes indesejveis, capazes de comprometer todo o sistema. Ex.: Dois processos concorrentes trocam informaes atravs de operaes de gravao e leitura em um buffer. Um processo s pode gravar dados no buffer caso ele no esteja cheio. Da mesma forma, um processo s poder ler os dados armazenados se eles existirem no buffer. Os mecanismos que garantem a comunicao entre processos concorrentes e o acesso a recursos compartilhados so chamados mecanismos de sincronizao. Este mecanismo fundamental para projetos de S.Os multiprogramveis.

sincronizao PA PB

1.1.2

1.1.1

1.1.3 BUFFER

FIG. 6.1 COMUNICAO / SINCRONIZAO ENTRE PROCESSOS Problemas de Compartilhamento de Recursos A sincronizao entre processos de fundamental quando recursos so compartilhados em sistemas multiprogramveis. A seguir, um exemplo mostrando o compartilhamento de uma varivel de memria. Se temos dois processos concorrentes (A e B) que executam um comando de atribuio, onde o processo A soma 1 varivel X e o processo B diminua 1 da mesma varivel, que est sendo compartilhada. Considerando que o valor inicial de X 2, para um compartilhamento correto, esta varivel ter como valor final 2.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

34

PROCESSO A X:= X+1;

PROCESSO B X:= X-1;

6.2 Especificao de Concorrncia em Programa


A primeira notao para especificao de concorrncia de um programa foram os comandos FORK e JOIN. Para entendermos seu funcionamento, vejamos o exemplo abaixo:

PROGRAM A . . . FORK B // Criao do proc. B . . JOIN B // Sincronizao do proc.B . . END.

PROGRAM B . . . END.

6.3 Soluo para problemas de Compartilhamento


A soluo mais simples para evitar problemas de compartilhamento impedir que dois ou mais processos acessem os mesmos recursos no mesmo instante. Essa idia de exclusividade chamada de EXCLUSO MTUA. A excluso mtua deve apenas afetar os processos concorrentes quando um deles estiver fazendo acesso ao recurso compartilhado denominada de regio crtica. Os mecanismos que implementam a excluso mtua utilizam um protocolo de acesso regio crtica. Toda vez que um processo for executar sua regio crtica, ele obrigatoriamente executar, antes, um protocolo de entrada nesta regio. Da mesma forma que, ao sair, dever executar um protocolo de sada.

BEGIN . . Entra_Regiao_Critica; (*Protocolo de Entrada*) Regiao_Critica; Sai_Regiao_Critica; (*Protocolo de Saida*) Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais Pg. 35

. . END

6.4 Problemas de Sincronizao


Na tentativa de implementao de excluso, algumas solues introduzem novos problemas, que chamaremos de problemas de sincronizao

Velocidade de execuo dos processos A velocidade de execuo dos processos pode interferir em uma boa soluo para o problema de excluso mtua. No exemplo abaixo, o Processo A tem uma caracterstica que o diferencia do Processo B, que seu maior tempo de execuo, representada no programa como Processamento_Longo.

PROGRAM Velocidades; VAR Vez: CHAR; PROCEDURE Processo_A; BEGIN REPEAT WHILE (Vez=B) DO (*No faz nada*); Regiao_Critica_A; Vez := B; Processamento_Longo; UNTIL False; END; PROCEDURE Processo_B; BEGIN REPEAT WHILE (Vez = A) DO (*No faz nada*); Regiao_Critica_B; Vez:= A; UNTIL False; END; BEGIN Vez:=A; PARBEGIN

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

36

Processo_A; Processo_B; PAREND; END.

Processo_A WHILE (Vez=B) Regiao_Critica_A Vez:=B Processamento_Longo Processamento_Longo Processamento_Longo

Processo_B WHILE (Vez=) WHILE (Vez=) WHILE (Vez=) Regiao_Critica_B Vez:=A WHILE (Vez=)

Vez A A B B A A

Como o processo B executa mais rapidamente que o processo A, a possibilidade de executar a sua regio crtica fica limitada pela velocidade do Processo A.

Starvation a situao onde um processo nunca consegue executar sua regio crtica e, consequentemente, acessar o recurso compartilhado. Este problema ocorre quando dois ou mais processos esperam por um recurso alocado. No momento em que o recurso liberado, o sistema deve determinar qual processo ganhar o acesso ao recurso. Caso essa escolha seja aleatria, existe a possibilidade de um processo nunca ser escolhido e sofrer starvation.

Sincronizao Condicional Outra situao na qual necessria a sincronizao entre processos concorrentes quando um recurso compartilhado no se encontra pronto para ser utilizado pelos processos. Nesse caso, o processo que deseja acessar o recurso dever ser colocado no estado de espera, at o recurso ficar pronto para o processamento. Esta sincronizao tambm conhecida como problema do produtor/consumidor. O programa abaixo ilustra como obter a sincronizao entre processos onde implementa um buffer de tamanho TamBuf, controlado por um contador Cont. Sempre que a varivel Cont for igual a 0, significa que o buffer est vazio e o processo Consumidor deve permanecer em espera at que se grave dados. Da mesma maneira, quando a varivel Cont for igual a TamBuf, significa que o buffer est cheio e o processo Produtor deve aguardar a leitura de dados. O problema do produtor/consumidor mostra um exemplo de como uma sincronizao condicional pode ser obtida.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

37

PROGRAM Produtor_Consumidor_1; CONST TamBuf = (* Tamanho qualquer *); TYPE Tipo_Dado = (* Tipo Qaulquer*); VAR Buffer Dado Cont : ARRAY [1..TamBuf] of Tipo_Dado; : Tipo_Dado; : 0 .. TamBuf;

PROCEDURE Produtor; BEGIN REPEAT Produz_Dado (Dado); WHILE (Cont = TamBuf) DO (*No faz nada*); Grava_Buffer (Dado, Cont); UNTIL False; END;

PROCEDURE Consumidor; BEGIN REPEAT WHILE (Cont = 0) DO (*No faz nada *); Le_Buffer (Dado, Cont); Consome_Dado (Dado); UNTIL False; END;

BEGIN Cont:=0; PARBEGIN Produtor; Consumidor; PAREND; END.

6.5 Solues de Software


Alm da excluso mtua, que soluciona os problemas de compartilhamento de recursos, trs fatores mais devem ser levados em conta para a soluo dos problemas de sincronizao :

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

38

nmero de processadores e tempo de execuo dos processos concorrentes devem ser irrelevantes;

um processo, fora de sua regio crtica, no pode impedir que outros processos entrem em suas prprias regies crticas;

um processo no pode permanecer indefinidamente esperando para entrar em sua regio crtica.

A seguir esto relacionadas as mais recentes ferramentas de software utilizadas para a soluo dos problemas de sincronizao entre processos.1

Semforos
Conceito de semforos foi proposto por Dijkstra, como uma das solues geral mais simples de ser implementadas. Um semforo uma varivel inteira, no negativa, que s pode ser manipulada por duas instrues : DOWN e UP , tambm chamadas originalmente de P e V . No caso da excluso mtua, as instrues DOWN e UP funcionam como protocolos de entrada e sada. O semforo fica associado a um recurso compartilhado, indicando quando o recurso est sendo acessado por um dos processos concorrentes. Se seu valor for maior que 0, ento nenhum processo est utilizando o recurso; caso contrrio, o processo fica impedido de acesso.

Fila de espera Libera processos da Fila de espera DOWN(S=0) Pede p/ entrar na R.C DOWN(S>0) R.C UP Sai da R.C

FIG. 6.2 SOLUO POR SEMFOROS

O programa a seguir mostra uma soluo para os problemas da excluso mtua entre dois processos atravs do uso de semforos.

Professores: Ana Karina D. S. O. , Nelson T. Jr. Disciplina: Sistemas Operacionais

Pg.

39

PROGRAM Semaforo_1; var s: semaforo := 1; PROCEDURE processo_A; BEGIN REPEAT DOWN(s); Regiao_Critica_A; UP(s); UNTIL false; end;

PROCEDURE processo_B; BEGIN REPEAT DOWN(s); Regiao_Critica_B; UP(s); UNTIL false; BEGIN PARBEGIN processo_A; processo_B; PAREND; END.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

40

Processo_A Repeat Down(s) Regiao_critica_A Up(s) Repeat

Processo_B Repeat Repeat Down(s) Down(s) Regiao_Critica_B

S 1 0 0 1 0

Pendente * * Processo_B Processo_B *

Semforos aplicados ao problema de excluso mtua so chamados mutexes (mutual exclusion semaphores) ou binrios, por apenas assumirem os valores 0 e 1.

Monitores Os monitores so mecanismos de sincronizao de alto nvel tentando tornar mais fceis o desenvolvimento e a correo de programas concorrentes. O monitor um conjunto de procedimentos, variveis e estrutura de dados definido dentro do mdulo. Sua caracterstica mais importante a implementao automtica da excluso mtua entre procedimentos do monitor em um determinado instante. Toda vez que algum processo chama um desses procedimentos do monitor. Caso exista, o processo ficar aguardando a sua vez at que tenha permisso para executar.

Troca de Mensagens Troca de mensagens um mecanismo de comunicao e sincronizao entre processos, implementado pelo sistema operacional atravs de duas rotinas do sistema : SEND e RECEIVE. A rotina SEND responsvel por enviar uma mensagem para um processo receptor , e a rotina RECEIVE por receber uma mensagem de um processo transmissor . As rotinas podem ser representadas atravs dos procedimentos a seguir: SEND(Receptor, Mensagem); RECEIVE(Transmissor, Mensagem); A comunicao ocorre porque um processo, ao receber uma mensagem, obtm dados enviados de outro processo. A sincronizao obtida porque uma mensagem obtm dados enviados de outro processo. A sincronizao obtida porque uma mensagem somente pode ser lida aps ter sido enviada, restringindo, dessa forma, a ordem na qual os dois eventos devem ocorrer.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

41

Processo Transmissor

Processo Receptor

FIG. 6.3 TRANSMISSO DE MENSAGEM A comunicao por troca de mensagens possui muitos problemas, como a perda de uma mensagem. Para evitar que esta mensagem no se perca o processo receptor deve enviar ao processo transmissor uma mensagem de recebimento (ACK acknowledgement). Caso o transmissor no receba o ACK ele retransmite a mensagem.

O endereamento direto a troca de mensagens entre dois processos diretamente.

Processo A

Processo B

FIG. 6.4 ENDEREAMENTO DIRETO

O endereamento indireto a troca de mensagens entre dois processos utilizando um intermedirio mailbox.

Processo A

Processo B

1.1.3.1.1.1.1.1.1 M ail
FIG. 6.5 ENDEREAMENTO INDIRETO

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

42

6.6 Deadlocks
Um processo dito em deadlock quando est esperando por um evento que nunca ocorrer. Essa situao conseqncia do compartilhamento de recursos do sistema entre vrios processos, sendo que cada processo deve ter acesso ao recurso de forma exclusiva(excluso mtua). O problema de deadlock existe em qualquer sistema multiprogramvel; no entanto, as solues implementadas devem considerar o tipo do sistema e o impacto em seu desempenho.

Preveno de Deadlock Para prevenir o deadlock necessrio uma das quatro condies abaixo: Excluso Mtua Evitar que os processos que j possuam recursos garantidos requisitem novos recursos, tambm evitaremos o problema do deadlock. Permitir que um recurso seja retirado de um processo quando outro processo necessitar do mesmo recurso Forar o processo a ter apenas um recurso de cada vez.

Deteco de Deadlock Os sistemas operacionais para detectar deadlocks, devem manter estruturas de dados capazes de identificar cada recurso do sistema, o processo que o est alocando e os processos que esto na espera da liberao do recurso. Toda vez que um recurso alocado ou liberado por um processo, a estrutura deve ser atualizada. Dependendo do tipo de sistema, o ciclo de busca por um deadlock varia. Em sistemas com time sharing, o tempo de busca pode ser maior, sem comprometer o desempenho e a confiabilidade do sistema. J em sistemas de tempo real devem constantemente certificar-se da ocorrncia de deadlocks, porm essa maior segurana gera mais processamento no sistema.

Correo de Deadlock Uma soluo bastante utilizada na maioria dos S.Os. eliminar os processos envolvidos no deadlock e desalocar os recursos j garantidos por eles, quebrando assim a espera circular.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

43

7 GERNCIA DO PROCESSADOR
7.1 Introduo
CPU compartilhada por diversos processos; Determinar a ordem na escolha dos processos para execuo Vrios processos concorrendo pela utilizao do processador. Escalonamento (scheduling) feito pelo escalonador (scheduler)

Execuo (CPU)

Escalonador

Processo

Espera

Pronto

Processo

Processo Processo Processo

FIG 7.1 ESCALONAMENTO

Principais objetivos do escalonamento: Manter a CPU ocupada a maior parte do tempo; Balancear a utilizao do processador entre os diversos processos; Evitar que um processo espere indefinidamente pelo processador (starvation); Maximizar o throughput do sistema; Oferecer tempos de resposta razoveis para usurios interativos.

7.2 Critrios de Escalonamento


1 - Utilizao da CPU Procurar manter a CPU a maior parte do tempo ocupado 2- throughput Nmero de processos executados em um determinado intervalo de tempo. Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais Pg. 44

Quanto maior o throughput maior o nmero de tarefas executadas. 3 - Tempo de turnaround Tempo que um processo leva desde a sua admisso no sistema at o seu trmino. Inclui o tempo de espera para a alocao de memria, espera na fila de processos prontos para execuo, processamento na CPU e operaes de E/S. 4 - Tempo de Resposta Tempo decorrido do momento da submisso de um pedido ao sistema at a primeira resposta produzida.

7.1 Escalonamento No-preemptivo


Escalonamento dos primeiros sistemas multiprogramveis tipo batch Quando um processo ganha o direito de utilizar a CPU nenhum outro processo pode lhe tirar este recurso. Alguns Algoritmos de Escalonamento No-preemptivo

Escalonamento First-In-First-Out (FIFO) O processo que chegar primeiro (first-in) ser o primeiro a ser executado (first-out) No algoritmo implementado uma fila, onde os processos em estado de pronto entram no final da fila e esperam para serem executados quando chegam no incio da fila. Quando um processo ganha o processador ele utilizar a CPU sem ser interrompido. Problemas: No possvel prever quando um processo ser executado Processos de CPU-bound de menor importncia podero prejudicar um processo I/O bound mais prioritrio

Escalonamento Shortest-Job-First (SJF) O processo com previso de utilizar menos tempo a CPU executado primeiro. Favorece os processos que executam programas menores. Problema: Determinar exatamente quanto tempo de CPU cada processo necessita

Escalonamento Cooperativo O processo em execuo quem libera a CPU, retornando para o estado de pronto, no existe nenhuma interveno do S.O. na execuo do processo. Permite melhor distribuio do uso do processador Problema: um programa pode no liberar o uso do processador, pode entrar em looping

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

45

7.2 Escalonamento Preempitivo


O sistema pode interromper um processo em execuo para que outro processo utilize o processador. Permite que o sistema d ateno imediata a processos mais prioritrios, proporciona melhor tempo de resposta em sistemas de tempo compartilhado, compartilhamento do processador de uma maneira mais uniforme entre os processos. Alguns Algoritmos de Escalonamento preemptivos.

Escalonamento Circular (round robin) Semelhante ao FIFO, cada processos tem um tempo para execuo time-slice que ao expirar o processo volta para o estado de pronto, dando a vez a outro processo. Mecanismo definido como preempo por tempo. A fila de processos em estado de pronto uma fila circular. Nenhum processo poder monopolizar a CPU. Lista dos processos no estado de pronto C B A CPU

Preempo por tempo FIG. 7.2 ESCALONAMENTO CIRCULAR Escalonamento por Prioridades Os processos I/O bound levam vantagem em relao aos processos CPU bound no escalonamento. Os processos so tratados de maneira diferente e a cada um associada uma prioridade de execuo. Processos de maior prioridade so escalonados preferencialmente. Toda vez que um processo, de maior prioridade do que est em execuo , for para a fila de prontos, o sistema dever colocar o processos de menor prioridade no estado de pronto para a execuo do processo de maior prioridade. implementado mediante um clock que interrompe o processador em intervalos de tempo para que a rotina de escalonamento reavalie as prioridades.

Escalonamento por Mltiplas Filas So implementadas diversas filas no estado de pronto, onde cada processo associado exclusivamente a uma delas, sendo os processos classificados de acordo com o tipo de processamento realizado. Cada fila possui uma prioridade associada. O processador seleciona primeiro os processos das filas mais prioritrias, indo para a de menor prioridade somente se a de maior prioridade estiver vazia.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

46

Maior prioridade

Fila de Processos do Sistema Fila de Processos Interativos Fila de Processos Batch

Menor prioridade

FIG. 7.3 ESCALONAMENTO POR MLTIPLA FILAS Escalonamento por Mltiplas Filas com Realimentao Semelhante ao anterior, mas os processos no permanecem em uma mesma fila at o final do processamento, as prioridade de execuo so ajustadas dinamicamente, conforme o processo mude de comportamento. Um processo, ao ser criado, entra no final da fila de mais alta prioridade. Cada fila implementa o mecanismo FIFO para escalonamento. Quando um processo deixa a CPU ou por prioridade ou por solicitao a um recurso do sistema, ele reescalonado dentro da mesma fila. Caso esgote seu quantum de tempo, reescalonado para uma fila de menor prioridade. O quantum de cada fila varia de acordo com sua prioridade, quanto maior a prioridade, menor seu quantum de tempo. Menor quantum de tempo Maior prioridade Fila 1 (escalonamento FIFO) Preempo por tempo Fila 2 (escalonamento FIFO) Preempo por tempo Fila 3 (escalonamento FIFO) Preempo por tempo CPU

Menor prioridade

Fila m (escalonamento circular)

Maior quantum de tempo

FIG. 7.4 ESCALONAMENTO POR MLTIPLA FILAS COM REALIMENTAO

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

47

7.3 Escalonamento com mltiplos Processadores


Mais complexo, diferenciado para sistemas fracamente acoplados dos fortemente acoplados. Nos sistemas fracamente acoplados, cada processador faz seu prprio escalonamento local. Todo sistema possui sua memria principal, sistema operacional, algoritmos de escalonamento e sua prpria fila de processos prontos. Nos sistemas fortemente acoplados possvel implementar uma nica fila de prontos para todos os processadores. Todos os processos ficam na mesma fila e so escalonados no primeiro processador livre. A memria nica. Precisa implementar excluso mtua para que um processo no seja escalonado por mais de um processador ao mesmo tempo.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

48

8 GERNCIA DE MEMRIA
Fator importante no projeto do S.O. A memria vista como um recurso raro e caro Objetivos: - Fazer com que o S.O. no ocupe muita memria - Otimizar seu uso

8.1 Alocao Contgua simples


Presente em sistemas monoprogramveis A memria dividida em duas partes: Uma para o Sistema Operacional em outra para o programa do usurio Possui um registrador que delimita as reas do sistema operacional e do usurio. Memria Principal Sistema Operacional registrador

rea para o programa do usurio FIG. 8.1 ALOCAO CONTGUA SIMPLES Como apenas um usurio pode dispor da memria, poder ocorrer espaos sem utilizao na memria. A soluo foi dividir um programa em mdulos de forma que pudesse executar independente uma da outra, utilizando a mesma rea de memria. Esta tcnica chamada de overlay. Memria Principal Sistema Operacional 2kb Cadastramento 4 kb

Mdulo Principal

3kb

rea de overlay

4kb

Impresso 2 kb

rea Livre 1kb FIG. 8.2 TCNICA DE OVERLAY rea no utilizada 2 kb

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

49

Ex: Se um programa que contm trs mdulos: um principal, um de cadastramento e outro impresso, onde os mdulos de cadastramento e impresso so independentes (quando um estiver na memria o outro no precisa estar). O mdulo principal sendo comum aos dois mdulos deve permanecer na memria durante todo o tempo. Cada vez que um dos dois mdulos for referenciado pelo mdulo pelo mdulo principal, o mdulo ser carregado da memria secundria para a rea de overlay. A rea de overlay ter o tamanho do maior mdulo.

8.2 Alocao Particionada


8.2.1 Alocao Particionada Esttica
Memria dividida em pedaos de tamanho fixo - Parties Tamanho da partio definido na inicializao do sistema, em funo do tamanho dos programas.

Tabela de Parties Partio 1 2 3 Tamanho 2 kb 5 kb 8 kb Programas a serem executados E D C B A

Memria Principal Sistema Operacional 2kb

Partio 1

Partio 2

5kb

Partio 3

8kb

FIG. 8.3 ALOCAO PARTICIONADA ESTTICA ABSOLUTA Alocao Particionada Esttica Relocvel - Possibilita a gerao de cdigo relocvel. Os programas podem ser carregados em qualquer partio.

Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais

Pg.

50

Tabela de Parties Partio 1 2 3 Tamanho 2 kb 5 kb 8 kb Livre No Sim No D 6 kb E 3 kb

Memria Principal Sistema Operacional 2kb

Programa C

Programa A

5kb

Programa B 8kb

FIG. 8.4 ALOCAO PARTICIONADA ESTTICA RELOCVEL Tanto nos sistemas de alocao absoluta quanto nos de alocao relocvel, os programas, na maioria das vezes, no preenchiam totalmente as parties onde eram carregados. Chamamos de fragmentao este tipo de problema de perda de pedaos da memria.

8.2.2 Alocao Particionada Dinmica


No existe mais parties fixas, cada programa utiliza o espao que necessita. Memria Principal Sistema Operacional 2kb Memria Principal Sistema Operacional 4kb

Programa B Programa C Programa E

A 2 kb

E 3 kb

C 1 kb

B 4 kb

5kb

1kb 3kb 2kb 1kb

8kb

Programa A

FIG. 8.4 ALOCAO PARTICIONADA ESTTICA RELOCVEL A fragmentao, neste caso, surgir quando os programas forem terminando e deixando espaos cada vez menores na memria. Opes para soluo da fragmentao: 1. Os espaos adjacentes so reunidos para formar um espao maior 2. Fazer a relocao de todas as parties ocupadas, criando uma nica rea livre contgua, porm pode se tornar invivel pelo custo operacional. Professora: Ana Karina D. S. O Disciplina: Sistemas Operacionais Pg. 51