1
AULA 9 –SISTEMAS OPERACIONAIS
Prof. Werley T. Reinaldo
26/05/2011
2
AULA DE ONTEM Sistemas
Operacionais:Visão geral
As diferentes imagens do SO:Visão Usuários;Visão Projeto.
Multiprogramação; Introdução a
Processos.
3
E HOJE ...
4
MULTIPROGRAMAÇÃO
5
MULTIPROGRAMAÇÃO Execução simultânea (paralela) de
vários programas, sendo que diversos programas são mantidos na memória;
Torna mais eficiente o aproveitamento dos recursos do computador, evitando que o computador fique parado em uma operação de E/S.
6
EXECUÇÃO “PARALELA”
Maquinas multiprocessadas
Maquinas monoprocessadas
Paralelismo real: mais de um processo é executado realmente ao mesmo tempo, em processadores distintos.
Pseudoparalelismo (paralelismo aparente): na verdade os processos concorrem pela CPU, como demonstra a figura a seguir.
7
8
PROCESSOS
9
PROCESSO São programas em execução (forma pela qual o
SO enxerga um programa e possibilita sua execução);
Programa: Entidade estática e permanente (sequência de instruções);
Processo: Entidade dinâmica e efêmera.Altera seu estado a medida que avança sua
execução;Composto por programa, dados e contexto
(valores).
10
ESTADOS DE UM PROCESSO Durante o tempo de
vida (execução) o processo muda de estado várias vezes;
Em um determinado momento existem, no sistema, vários processos que podem estar em situações diferentes.
11
Por exemplo, um processo P1 está utilizando a CPU (executando),
Enquanto os processos P2 está imprimindo um conteúdo (operação de E/S sendo realizada);
Os processos P3 e P4 estão esperando na fila do controlador da impressora (fila de E/S);
Os processos P5 e P6 estão esperando o processador liberar. (aptos)
12
DIAGRAMA (ESTENDIDO) DE ESTADOS DOS PROCESSOS
13
ESTADOS DE UM PROCESSO
Criação – Novo processo;
Apto – Está pronto esperando para utilizar a CPU, em uma “fila de aptos”;
Executando – Utilizando a CPU;
Bloqueado – Esperando pela ocorrência de algum evento (normalmente em E/S);
Destruição – Fim do processo
14
BLOCO DESCRITOR DO PROCESSO Process Control Block (PCB); Algumas informações presentes no PCB:
Identificação do processo (PID) e do criador do mesmo (PPID);
Prioridade; Localização e tamanho da memória principal; Identificação de arquivos abertos; Informações de contabilidade (Ex. tempo de
CPU); Estado do processo (apto, executando, bloqueado
...). Contexto de execução; Apontadores para encadeamento com outros
descritores.
15
PROGRAMAÇÃO COM MANIPULAÇÃO DE PROCESSOS NO LINUX
FORKÚnica chamada de sistema que possibilita a
criação de um processo em UNIX.
Ao ser executada, esta chamada cria um novo processo (filho) a partir do processo chamador (pai), sendo que os processos pai (criador) e filho compartilham o mesmo código. No momento da criação o processo filho é uma
cópia exata do segmento correspondente ao processo antigo (pai).
16
FORK (CONTINUAÇÃO) O filho passa a executar a partir do contexto que
o pai estava executando quando o mesmo foi criado, ou seja, os dois processos continuarão a executar a partir do momento em que o fork() foi chamado. Assim, os dois ficam esperando o retorno do fork() e continuam a executar a partir daí.
O valor de retorno do fork é: para o processo filho – 0 (zero); para o processo pai -o identificador (PID) do processo filho criado; e -1 em caso de erro.
O sistema suporta a criação de um número limitado de processos.
17
FORK (CONTINUAÇÃO)
No momento da cópia os filhos herdam as variáveis do pai, com os valores atuais.
Porém, após a criação, pais e filhos trabalham em áreas de memória distintas, exceto se utilizar o mecanismo de memória compartilhada.
A cópia do segmento de dados do filho pode diferir do segmento do pai em alguns atributos específicos (como por exemplo, o pid, o tempo de execução, etc.).
18
Top Related