• Nenhum resultado encontrado

Sistemas Operacionais 1: Resumo

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais 1: Resumo"

Copied!
25
0
0

Texto

(1)

Sistemas Operacionais 1 - Resumo

Sistemas Operacionais 1 - Resumo

Prof. Ricardo Pinheiro

Prof. Ricardo Pinheiro

10/03/2009

10/03/2009

(2)

Sumário

Sumário

1

1 IInnttrroodduuççããoo 33

11..1 1 O O qquue e é é uum m SSiisstteemma a OOppeerraacciioonnaal l ((SSOO))? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

11..11..1 1 FFuunnççõõeess: : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

11..11..2 2 OObbjjeettiivvoos s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

11..2 2 MMááqquuiinna a dde e NNíívveeiis s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

11..3 3 TTiippoos s dde e SSiisstteemmaas s OOppeerraacciioonnaaiis s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

11..33..1 1 SSiisstteemmaas s MMoonnoottaarreeffa . a . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

11..33..2 2 SSiisstteemmaas s MMuullttiittaarreeffa a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

11..33..22..1 1 LLootte e oou u BBaattcch h . . . . . . . 55

11..33..22..2 2 TTeemmppo o CCoommppaarrttiillhhaaddo o ((TTiimmee--SShhaarree) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

11..33..22..3 3 TTeemmppo o RReeaal l ((RReeaall--TTiimmee) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

11..33..3 3 MMuullttiippllaas s UUCCPP´´s s . . . . . . . 66

1. 1.3.3.3.3.1 1 MuMultltipiprorocecessssadadororeses, , ou ou sisiststememas as fofortrtememenente te acacopoplaladodos s . . . . . . . . . . . . . . . . . . . . . . 66

1. 1.3.3.3.3.2 2 MuMultlticicomompuputatadodoreres, s, ou ou sisiststememas as frfracacamamenente te acacopoplaladodos. s. . . . . . . . . . . . . . . . . . . . . . . 77

2 2 CCoonnccoorrrrêênncciiaa 88 22..1 1 IInnttrroodduuççãão o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

22..2 2 IInntteerrrruuppççõõees s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

22..3 3 EExxcceeççõõees s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

22..4 4 CCoonnttrroollaaddoorraas s dde e EE//S S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..1 1 NNo o iinníícciioo... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..2 2 EE//S S CCoonnttrroollaadda a ppoor r PPrrooggrraamma a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..3 3 PPoolllliinng g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..4 4 EE//S S CCoonnttrroollaadda a ppoor r IInntteerrrruuppççãão o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..5 5 DDMMA A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100

22..44..55..1 1 CCaannaal l DDMMA A . . . . . . . 1111

22..5 5 BBuuffffeerriinng g . . . . . . . 1111

22..6 6 SSppoooolliinng g . . . . . . . 1111

22..7 7 RReeeennttrrâânncciia a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111

22..8 8 PPrrootteeççãão o ddo o SSiisstteemma a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122

3 3 EEssttrruuttuurra a ddo o ssiisstteemma a ooppeerraacciioonnaal l 1133 33..1 1 KKeerrnneel . . . . l . . . 1133

33..2 2 BBiibblliiootteeccaas s . . . . . . . 1144

33..22..1 1 CChhaammaaddaas s ddo o ssiisstteemma a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144

33..3 3 UUttiilliittáárriioos s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144

33..4 4 MMooddoos s dde e aacceesssso o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144 11

(3)

SUMÁRIO  2 3.5 Tipos de kernel . . . 15 3.5.1 Monolítico . . . 15 3.5.2 Camadas . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5.3 Máquina Virtual . . . 15 3.5.4 Microkernel . . . 16 4 Processos e threads 18 4.1 Introdução . . . 18 4.2 Partes do processo . . . 18

4.3 Bloco de controle do processo (PCB) . . . 19

4.4 Estados do processo e mudanças de estado . . . . 19

4.4.1 Mudanças de estado . . . 19

4.5 Criação e eliminação de processos . . . 20

4.6 Concorrência dentro de uma aplicação . . . 20

4.7 Tipos de processo . . . 20

4.8 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.9 Threads . . . 21

4.9.1 Introdução . . . 21

4.9.2 Ambientes monothread e multithread . . . 21

4.9.2.1 Monothread . . . 21

4.9.2.2 Multithread . . . 22

4.9.3 Formas de implementação . . . 22

4.9.3.1 Threads em Modo Usuário (TMU) . . . 22

4.9.3.2 Threads em Modo Kernel (TMK) . . . 22

4.9.3.3 Threads em Modo Híbrido (TMH) . . . 23

4.9.3.4 Scheduler activations . . . 23

(4)

Capítulo 1

Introdução

1.1 O que é um Sistema Operacional (SO)?

• Programa.

• Conjunto de rotinas.

• Executado de forma não-seqüencial. 1.1.1 Funções:

1. Interação homem-máquina. 2. Gerência de recursos.

3. Administração de usuários da máquina (usuários = programas, pessoas). 1.1.2 Objetivos

1. Compartilhar os recursos de forma organizada e protegida. 2. Facilitar o acesso aos recursos.

OBS: Recursos→UCP, memória, HD ....

1.2 Máquina de Níveis

• Computador →hardware e software como uma coisa só para o usuário.

• 6 níveis:

1. São independentes entre si.

2. A passagem por cada uma é obrigatória. 3. Há uma interface entre as camadas.

(5)

CAPÍTULO 1. INTRODUÇÃO  4 São eles: Aplicações Linguagem de Montagem Sistema Operacional Linguagem de máquina Microprogramação Hardware (Lógica Digital)

1.3 Tipos de Sistemas Operacionais

Tipos de SO Subtipos Monotarefa ou Monoprogramável –

Multitarefa ou Multiprogramável Batch, ou em lote; Tempo Compartilhado; Tempo Real Múltiplas UCPs Sistemas fortemente e fracamente acoplados • Diferem quanto à:

1. Aplicação

2. Hardware empregado

3. Estrutura interna – complexidade • Desejável: 1. Escalável 2. Rápido 3. Flexível 4. Seguro 5. Tolerante a Falhas 6. Robusto 1.3.1 Sistemas Monotarefa • Um único programa em execução.

• Todos os recursos dedicados a esse programa - desperdício • Estrutura simples

(6)

CAPÍTULO 1. INTRODUÇÃO  5 1.3.2 Sistemas Multitarefa

• Vários programas em execução.

• Compartilhamento e gerência dos recursos. • Melhor aproveitamento.

• Estrutura complexa. • Alguns são multiusuário.

1.3.2.1 Lote ou Batch

• 1º SO multitarefa

• fila de submissão de tarefas • tarefas não interativas

• Saída em impressora ou disco

• Podem ser eficientes, como também podem ter tempos de resposta longos • Não são mais usados

1.3.2.2 Tempo Compartilhado (Time-Share)

• Tipo mais comum.

• Conceito defatia de tempo

• Cada tarefa fica em execução até o tempo acabar, dando lugar a outra • Tarefas interativas

Ex: UNIX, WINDOWS

1.3.2.3 Tempo Real (Real-Time)

• Semelhante ao sistema time-share, mas não são iguais. • Tempo de resposta→ dentro de intervalos rígidos.

• Conceito deprioridade→tarefa em execução enquanto não houver outro de mais prioridade do que ele

• Prioridade definida pela aplicação.

(7)

CAPÍTULO 1. INTRODUÇÃO  6 1.3.3 Multiplas UCP´s • Processamento paralelo • Conceitos: 1. escalabilidade 2. disponibilidade 3. balanceamento de carga • tendência atual • Problemas: 1. Necessidade de desempenho

2. Problemas mais caros computacionalmente. 3. ”Lei” de Moore – limite físico.

• Solução:

1. uso de arquiteturas com mais de uma UCP

2. software que tire proveito e escalone entre as UCP´s presentes • Caracteristicas desejáveis:

1. escalabilidade – alta 2. disponibilidade – alta

3. balanceamento de carga – justo 4. transparência

5. imagem única do sistema

1.3.3.1 Multiprocessadores, ou sistemas fortemente acoplados

• Memória única.

• Tudo gerênciado por um único SO. • Subdividido em

SMP - Arquitetura simétrica.

NUMA - Acesso Não-Uniforme a Memória.

(8)

CAPÍTULO 1. INTRODUÇÃO  7

1.3.3.2 Multicomputadores, ou sistemas fracamente acoplados.

• Memória “espalhada” • Um único SO ou vários

• Cada membro do sistema esta conectado aos outros por um link de dados • Custo de produção mais baixo.

(9)

Capítulo 2

Concorrência

2.1 Introdução

• Computador - seu uso é caro computacionalmente

• Objetivo: minimizar o desperdício (tempo que a UCP fica parada) • Momentos de desperdício:

– Frequência da UCP é maior do que a frequência da memória – Velocidade da UCP é muito maior do que a velocidade de E/S. – Baixo uso da UCP em si.

• Solução: Manter a UCP o mais ocupada possível, executando instruções de forma concorrente.

Exemplo: Programa pega 100 registros, ordena e grava o resultado:

Operação Uso Tempo Ler 100 registros: E/S 0,04 s

Ordenar: UCP 0,01 s Gravar o resultado: E/S 0,05 s

Total: 0,10 s.

Total de uso da UCP: 0,01

0,10

s=0,1=10%.

Concorrência - conjunto de técnicas que permite a UCP passar mais tempo ocupada – desempenhando mais

tarefas por instante de tempo (throughput). Abaixo, algumas técnicas de concorrência.

2.2 Interrupções

• Durante a execução, eventos inesperados podem ocorrer→Desvio forçado na execução - interrupção.

Características:

• Evento assíncrono.

(10)

CAPÍTULO 2. CONCORRÊNCIA 9 • Evento é externo ao programa.

• Evento gerado por software ou hardware.

• A interrupção é o fundamento básico de concorrência, usado para a sincronização das rotinas do S. O., programas, etc.

• Arquitetura IBM-PC: 16 interrupções de hardware, divididas entre 2 controladoras de interrupção (in-terligadas em cascata):

Exemplo: IRQ1 - relógio (timer); IRQ3 - porta serial 1; IRQ7 - porta paralela; IRQ13 - IDE 1; etc.

• Há a necessidade de termos mecanismos apropriados para cada tipo de interrupção. • Como são tratadas:

– Rotina de tratamento de interrupção – Vetor de interrupção

• Como são assíncronos, podem ocorrer várias vezes, o que atrapalha a execução do programa. Por isso, temos 2 tipos de interrupções:

– Mascaráveis – podem ser ignoradas.

– Não-mascaráveis – não podem ser ignoradas.

• Controlador de pedidos de interrupção - Hardware que gerencia as interrupções.

2.3 Exceções

• Parecidos com as interrupções, mas diferem nos quesitos:

– Evento interno ao programa. – Evento síncrono.

– Tratamento é todo via software.

Exemplo: Divisão por zero, buffer overflow, stack overflow, etc.

• Tratamento feito pelo desenvolvedor, ou pelo hardware (em alguns casos). • Segurança:

– Falhas em programas geram exceções. – Programação segura.

(11)

CAPÍTULO 2. CONCORRÊNCIA 10

2.4 Controladoras de E/S

2.4.1 No início...

• UCP fala diretamente com os dispositivos de E/S.

• Problema: E/S é muito mais lento do que a memória ou a UCP. • Introdução do controlador (ou controladora) de E/S:

– Gerência do acesso aos dispositivos de E/S.

– Tira da UCP o trabalho de cuidar dos dispositivos. – Mais eficiente do que a UCP fazer o controle.

• Problema ainda existe →a transferência de dados entre a memória e dispositivo de E/S é feita pela UCP.

• ”Interferência” da UCP.

• Abaixo, algumas técnicas empregadas. 2.4.2 E/S Controlada por Programa

• UCP envia a requisição e move os dados entre a memória e a controladora, aguardando o término da operação.

• UCP fica “presa”, aguardando o término da operação -nada eficiente.

2.4.3 Polling

• UCP envia a requisição, move os dados e é liberada.

• De tempos em tempos, testa para ver se a operação foi concluída. 2.4.4 E/S Controlada por Interrupção

• UCP envia a requisição, move os dados, e é liberada.

• Quando a operação for concluída, a controladora gera uma interrupção, avisando à UCP o término da operação.

• Muito eficiente, mas ainda requer a interferência direta da UCP, fazendo a transferência de dados. 2.4.5 DMA

• Acesso direto a memória

• Controladora fala direto com a memória, sem passar pela UCP - apenas no início e no fim da transferên-cia.

(12)

CAPÍTULO 2. CONCORRÊNCIA 11

2.4.5.1 Canal DMA

• Extensão do conceito.

• Diversas “vias” ligando as controladoras da máquina à memória. • Na arquitetura PC há 8 canais

• Chance de uso de buffers para aumentar ainda mais o desempenho.

2.5 Buffering

• Uso de uma área na memória principal, o buffer.

• Velocidade da UCP é muito maior do que a velocidade de E/S.

• Objetivo: acelerar o acesso aos dispositivos de E/S (leitura e gravação). • Manter UCP e E/S ocupados na maior parte do tempo.

• Registro como unidade de transferência.

2.6 Spooling

• Fila de submissão de tarefas - inicialmente em fitas magnéticas. • Arquivo de spool - usado inicialmente em SO´s do tipo batch. • Fila: 1º a entrar , 1º a sair (FIFO).

• Seqüencial - uso de discos com acesso direto – spooling mais eficiente. • Não-sequencial - arquivo no disco.

• Uso no gerenciamento de impressão hoje em dia.

2.7 Reentrância

• Mais comum em sistemas multiusuário.

• Vários usuários usando os mesmos programas.

• Problema: Várias cópias do mesmo programa na memória →desperdício.

• Reentrância: capacidade do código-fonte do programa ser executado e compartilhado entre os usuários do sistema.

• Código executável = código reentrante.

• O código deve ter compilado com essa opção.

(13)

CAPÍTULO 2. CONCORRÊNCIA 12

2.8 Proteção do Sistema

• Sistemas mais novos - mais complexos. • Necessidade de aumentar a segurança

• É preciso garantir a confiabilidade e integridade de programas e dados • Situações em que mecanismos de proteção são necessários:

1. áreas reservadas para cada programa e seus dados - evitar a sobreposição dessas áreas. 2. comunicação entre programas de forma sincronizada.

3. Compartilhamento de arquivos no disco 4. Evitar “monopólios” da UCP.

5. Contornar exceções.

(14)

Capítulo 3

Estrutura do sistema operacional

Um sistema operacional é composto de três partes: 1. Kernel.

2. Bibliotecas. 3. Utilitários.

3.1 Kernel

• núcleo do sistema.

• Parte central do sistema operacional. • oferecem serviços aos usuários. • execução não-sequencial.

• Principais funções:

1. gerência de processos e threads. 2. gerência de memória.

3. gerência de UCP.

4. gerência de dispositivos de E/S. 5. tratamento de interrupções. 6. tratamento de exceções. 7. suporte a redes.

8. segurança.

9. contabilidade e auditoria do sistema.

• Tipos de kernel: como ele fala com o hardware e software, sua organização interna varia de projeto para projeto.

• Ideal é que seja pequeno, rápido, estável e seguro. 13

(15)

CAPÍTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL  14

3.2 Bibliotecas

• Conjunto de rotinas usadas por programas. • Fornecem serviços para os programas. • Contém as chamadaa ao sistema. 3.2.1 Chamadas do sistema

• Partes integrantes das bibliotecas.

• Meio organizado e padronizado para acesso ao kernel. • Forma como o kernel pode ser acessado.

• Esconde a complexidade do acesso para o programador. • Programa→System Calls→Kernel→Hardware

• Nomes diferentes para a mesma coisa: 1. Windows: API´s

2. Open VMS: System Services 3. UNIX: System Calls

OBS: No Unix, o que determina se um sistema é “padrão UNIX” ou não é se ele segue a especificação das

System Calls, criada pelo comitê POSIX.

3.3 Utilitários

Programas que auxiliam o funcionamento do sistema operacional.

Exemplos: Compiladores, compactadores, ferramentas de acesso ao disco, etc.

3.4 Modos de acesso

• A UCP tem instruções:

1. privilegiadas - tem acesso a todos os recursos, e mal-usadas, podem comprometer o funcionamento do sistema, gerando instabilidade.

2. não-privilegiadas - não comprometem a estabilidade do sistema operacional. • Modos de acesso - o que são:

1. Solução implementada em hardware, pela UCP. 2. Acesso ou não à instruções privilegiadas.

(16)

CAPÍTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL  15 4. Hoje em dia, os sistemas são montados de forma que o kernel é o único programa que pode estar

sendo executado no modo privilegiado. • Chaveamento de modos, ou mudança de contexto:

1. Mudança entre os estados do processador, do modo privilegiado para o não-privilegiado, e vice-versa.

2. Custa (pouco) tempo à UCP, mas é desejável que esse tempo seja ainda mais minimizado.

3.5 Tipos de kernel

Antes, dividiremos entre modo usuário (não-privilegiado) e modo kernel (privilegiado). 3.5.1 Monolítico

• Um grande bloco de código, ou dividido em módulos, todos sendo executados no modo kernel. • Estrutura mais simples.

• Desenvolvimento mais simples.

• A manutenção pode ser complexa, se não for um projeto bem-feito e bem amarrado. • Simples na estrutura.

• Rápido.

Ex: MS-DOS, Linux.

3.5.2 Camadas • Níveis sobrepostos.

• Há necessidade de passar por todos os níveis para chegar ao kernel. • Como as camadas são isoladas, facilita a manutenção e a depuração. • Desempenho prejudicado pela estrutura - muito burocrático.

Ex: Open VMS, MULTICS, Windows 2000

3.5.3 Máquina Virtual

• Sistema computacional composto por níveis, onde o nível mais baixo é o hardware.

• Modelo de máquina virtual - nível intermediário entre o hardware e o sistema operacional - gerência de

máquinas virtuais.

• Cada máquina virtual oferece uma cópia virtual do hardware, incluindo os modos de acesso, interrupções, dispositivos de E/S, etc.

(17)

CAPÍTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL  16 • Cada máquina virtual é independente das demais, contendo seu próprio sistema operacional, seus próprios

usuários e suas próprias aplicações.

• Conceito iniciado no VM/370, baseado no OS/370, da IBM (anos 1960). • Conceito usado também com a linguagem Java - JVM.

• Vantagens:

1. Segurança - Isolamento total das máquinas virtuais.

2. Economia de recursos - mais barato um servidor grande do que vários servidores pequenos.

3. Portabilidade - se o hardware hospedeiro tiver um defeito, basta transferir os arquivos das máquinas virtuais para outro hardware.

• Desvantagens:

1. Complexidade.

2. Sobrecarga - um hipervisor é complexo e consome muitos recursos do hardware hospedeiro. 3.5.4 Microkernel

• Constatação - sistemas atuais ainda são lentos e pesados.

• Microkernel - tornar o núcleo do sistema operacional o menor e mais simples possível. • Disponibilizar os serviços através de processos a serem executados no nível usuário.

• Cada um desses processos servidoresfornecem um recurso específico para o sistema: Gerência de

pro-cessos, gerência de arquivos, escalonamento de propro-cessos, etc.

• A principal função do kernel então é fazer o diálogo entre os diferentes processos servidores.

• Conceito surgido nos anos 1980, com o sistema operacional Mach, desenvolvido na Universidade Carnegie-Mellon.

• O núcleo do Mach fornece 4 serviços, apenas: Gerência de processos, gerência de memória, comunicação por troca de mensagens e operações de E/S, todas em modo usuário.

• Vantagens:

1. Mais seguro: Se um serviço sair do ar, é recolocado facilmente.

2. Apropriado para computação distribuída: Os serviços podem ser remanejados entre as UCPs. 3. Mais flexível.

4. Mais rápido: com o kernel enxuto, menos código a ser executado.

5. Mais facilmente portado para outras arquiteturas: Menos código no kernel, menos dificuldades para reescrever o kernel para outras plataformas.

(18)

CAPÍTULO 3. ESTRUTURA DO SISTEMA OPERACIONAL  17 • Há controvérsias quanto à afirmação de ser mais rápido (ponto no. 4), pois apesar do kernel ser menor, o sistema fará muito mais chamadas e mudanças de modo de acesso, ao acessar os serviços que rodam no modo usuário.

• Na prática, os sistemas microkernel são interessantes, mas ainda não podem estar disponíveis comercial-mente. Existem alguns sistemas que agregam características do microkernel, mas não são completamente nesse estado.

(19)

Capítulo 4

Processos e threads

4.1 Introdução

• Conceito - base para a implementação de um sistema multiprogramável. • Um programa deve estar sempre associado a um processo.

• Processo - ambiente no qual um programa é executado.

• O processo é colocado em execução e é tirado caso o sistema operacional necessite fazê-lo.

4.2 Partes do processo

• Três partes:

1. Espaço de endereçamento: Área de memória usada pelo processo, onde as instruções e os dados do programa são armaenados para execução.

2. Contexto de hardware: Registradores gerais e específicos da UCP. Quando um processo está em execução, o contexto de hardware guarda os registradores do processador. Quando ele é tirado de execução (mudança de contexto), todos os registradores são salvos no contexto de hardware, para que o processo seja novamente colocado em execução, a partir do ponto onde parou.

3. Contexto de software: Características e limites dos recursos que podem ser alocados pelo processo. Muitas dessas características são determinadas no momento da criação do processo, enquanto outras podem ser alteradas durante a sua existência. São três grupos de informações:

– Identificação:

* Número de identificação do processo (PID). * Nome do usuário que criou o processo (UID). * Grupo do usuário que criou o processo (GID).

– Quotas: Limites de cada recurso do sistema que um prcoesso pode alocar. Exemplos:

* Número máximo de arquivos abertos simultaneamente; * Número máximo de operações de E/S pendentes;

* Tamanho máximo do buffer para operações de E/S; 18

(20)

CAPÍTULO 4. PROCESSOS E THREADS 19 * Número máximo de processos, subprocessos e threads que podem ser criados.

– Privilégios: Ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao

sistema operacional. Exemplos:

* Alterar a prioridade de execução;

* Limites alocados na memória principal e secundária; * Alterar as prioridades de outros processos;

* Desativar o sistema;

* Alterar regras de segurança;

* Criar outros processos privilegiados; * Mudar a configuração do sistema.

4.3 Bloco de controle do processo (PCB)

• O bloco de controle do processo é uma estrutura de dados, mantida pelo sistema operacional, em área reservada, onde todas as informações necessárias para manter o processo em funcionamento são arquiv-adas.

• A gerência de processos é feita por chamadas do sistema.

4.4 Estados do processo e mudanças de estado

• Três estados:

1. Execução: Sendo executado pela UCP.

2. Prontidão (ou pronto): Aguarda a sua vez para ser executado.

3. Espera: Aguarda pelo fim de um evento externo ou por um recurso para continuar o processamento.

Escalonamento: Conjunto de critérios que definem qual processo será colocado em execução primeiro.

4.4.1 Mudanças de estado

• Eventos voluntários ou involuntários podem mudar o estado de um processo:

1. Eventos voluntários: O processo muda por causa de eventos originários de si mesmo. 2. Eventos involuntários: O processos muda por ação do sistema operacional.

• Mudanças:

1. Pronto →execução: Colocado em execução.

2. Execução → espera: Evento externo, como uma operação de E/S, faz o processo ter seu estado

mudado.

3. Espera → pronto: O evento externo foi concluído. Note que não há como passar direto, de espera

(21)

CAPÍTULO 4. PROCESSOS E THREADS 20 4. Execução → pronto: O término da fatia de tempo que o processo tem o coloca de volta na fila de

prontidão.

• Processos no estado de espera ou pronto podem estar na memória virtual, por falta de espaço. Logo, a técnica de swapping consiste em mover processos entre as memórias principal e virtual.

4.5 Criação e eliminação de processos

• Dois estados adicionais:

1. Criação→Criou-se a entrada no PCB, mas o processo ainda não foi colocado na lista de prontidão.

É criado por outros processos.

2. Término → O programa foi finalizado, mas o PCB ainda existe. É eliminado por outros processos

ou pelo término nortmal da sua execução.

4.6 Concorrência dentro de uma aplicação

• Três maneiras:

1. Processos independentes: Um processo cria outros, sem vínculos. É a maneira mais simples.

2. Subprocessos: Um processo cria outros, de forma que estão vinculados hierarquicamente: Se o processo-pai é eliminado, os processos-filho também serão. Compartilham quotas.

3. Threads: Ramificações dentro do processo, compartilhando o contexto de software e o espaço de endereçamento. É um modo de gastar menos tempo com criação, escalonamento e eliminação de processos.

4.7 Tipos de processo

1. Foreground: Execução em primeiro plano, interage diretamente com o usuário, com entrada-padrão (teclado) e saída-padrão (monitor).

2. Background: Execução em segundo plano, onde não é preciso interagir diretamente com o usuário. Nesse caso, entrada e saída podem ser arquivos, por exemplo.

3. CPU-Bound: Passa a maior parte da fatia de tempo em estado de execução, ou seja, usando a UCP intensamente.

4. I/O-Bound: Passa a maior parte da fatia de tempo em estado de espera, com muitas operações de E/S.

4.8 Sinais

• Mecanismo que permite ”avisar” processos de eventos gerados pelo sistema operacional ou por outros processos.

(22)

CAPÍTULO 4. PROCESSOS E THREADS 21 • Podem ser associados a temporizadores (eventos associados ao tempo).

Exemplos: Notificação de interrupções e exceções, alarmes de tempo, limites de quotas excedidos, etc.

• Eventos que geram sinais - síncronos ou assíncronos.

• Tratamento do sinal - semelhante ao mecanismo de interupções.

• O sinal está para o processo assim como interrupções e exceções estão para o sistema operacional.

4.9 Threads

4.9.1 Introdução

• No início, eram apenas processos.

• Conceito de processo ”leve” (lightweight) →compartilha o espaço de endereçamento.

• Thread - surge primeiro no sistema operacional Mach, da Universidade de Carnegie-Mellon (1980). • Ganho de desempenho e flexibilidade, apesar da complexa implementação.

• Aplicações mais complexas - vários trechos de código em execução paralela - para termos comunicação e sincronização de threads deve-se avaliar desempenho, flexibilidade e custo.

• Apesar da dificuldade em desenvolver, compensa devido aos ganhos obtidos.

Exemplos: Windows 2000 e superiores, Linux, Solaris, etc.

4.9.2 Ambientes monothread e multithread

4.9.2.1 Monothread

• Cada processo tem apenas um thread.

• Concorrência se dá apenas com processos independentes ou subprocessos. • Problema - criar, gerenciar e eliminar processos é computacionalmente caro.

• Compartilhar o espaço de endereçamento é complexo, por conta dos mecanismos empregados. • Processo→Unidade de alocação e de escalonamento.

(23)

CAPÍTULO 4. PROCESSOS E THREADS 22

4.9.2.2 Multithread

• Permite que tenhamos aplicações concorrentes de forma mais eficiente:

– Aumenta o desempenho, por dispensar mecanismos de comunicação dentrod o processo.

– Aumenta a eficiência, por termos menos sobrecarga do sistema como um tyodo - menos processos

e mais threads.

• Programas associados a threads.

• Os threads sofrem mudança de estado (pronto, espera e execução), e tem seu próprio bloco de controle (o TCB).

• Processo→Unidade de alocação.

• Thread→Unidade de escalonamento.

• O S. O. vê e escalona os threads de cada processo. 4.9.3 Formas de implementação

• Pacote de threads - Conjunto de rotinas da biblioteca do sistema operacional par aa implementação de threads.

• Falta de padrão em sistemas Unix, até o comitê POSIX liberar uma norma para termos threads, os PThreads.

4.9.3.1 Threads em Modo Usuário (TMU)

• Implementados pela aplicação.

• O sistema operacional não vê os threads, apenas o proceso como um todo. • Podemos ter aplicações multithread em ambientes monothread.

• São rápidos e eficientes, por não fazerem acessos ao kernel, e as mudanças de modo de acesso da UCP (usuário-kernel-usuário).

• Uma chamada a um dispositivo de E/S, feita por um thread, coloca todoo processo em estado de espera.

• O tratamento dos sinais também é complexo, pois o processo terá que tratar o sinal e direcioná-lo ao thread certo.

4.9.3.2 Threads em Modo Kernel (TMK)

• Implementados pelo kernel.

• O sistema operacional gerencia diretamente os threads de um processo.

• Requer mudanças de modo de acesso, logo tem desempenho degradado - bem mais lentos. • Chamadas bloqueantes colocam apenas o thread em estado de espera, não todo o processo.

(24)

CAPÍTULO 4. PROCESSOS E THREADS 23

4.9.3.3 Threads em Modo Híbrido (TMH)

• Combina as vantagens dos threads em modo usuário (TMU) e em modo kernel (TMK), mas também as desvantagens.

• Um processo tem vários TMKs, e cadas TMK tem vários TMUs. • O sistema operacional escalona os TMKs, e eles escalonam os TMUs.

• O objetivo é aumentar a flexibilidade, já que apenas os TMKs são escalonados (diminuindo o número de mudanças de modo de acesso), mas também traz os problemas das chamadas bloqueantes, entre outras.

4.9.3.4 Scheduler activations

• Os Threads em Modo Híbrido (TMH) tem problemas devido à falta de comunicação entre os threads. • É desejável unir o melhor das implementações, fugindo dos problemas de cada uma.

• O scheduler activations foi implementado inicialmente na Universidade de Washington, e nessa forma, há uma estrutura de dados que facilita a troca de informações entre o kernel e a biblioteca de threads. Essa estrutura é o scheduler activations.

• O escalonamento é feito pela própria biblioteca, evitando as mudanças de modo de acesso, como por exemplo a ocorrência de uma chamada bloqueante.

(25)

Capítulo 5

Sincronização entre processos

Referências

Documentos relacionados

Em Entre Douro e Minho e no Algarve a superfície total das explorações agrícolas ocupa cerca de 1/3 da área geográfica das regiões, sendo que a Beira Litoral é a

(2009), em estudo realizado com a madeira de Araucaria angustifolia, encontrou influência significativa da massa específica sobre a resistência ao impacto, tanto

em Analise de Sistemas, Administração com Enfase em Hotelaria, Administração com ênfase em Marketing da Moda, Administração com Habilitação em Hotelaria,

O Governo da República do Senegal tem o prazer de os receber em Dakar, República do Senegal, país da Teranga, para a sexagésima oitava sessão do Comité Regional para a África da

 ADINKRA TURISMO – Com os símbolos de Adinkra segurando tal significado forte e apelo visual, seria apropriado dizer que os símbolos podem ser usados como uma ferramenta

Tabela 1 - Massa seca (MS) de afilhos em 20 plantas (g), MS por afilho (mg), percentagem de afilhos emitidos, massa seca do colmo principal (CP) e razão de massa seca entre o CP e

DEFEITO QUANTI- DADE % DO TOTAL % ACUMU- LADA Espessura Menor Adesão entre Faces Opacidade Espessura Maior Largura Incorreta Grumos Micro Furos Outros TOTAL 485 100

Ao comparar as empresas em nível de passivo circulante a Magazine Luiza depende menos de capital de terceiros para o financiamento a curto prazo, porém em relação