Anda di halaman 1dari 5

Plano da aula

Introduo Histrico Multiprogramao


Noo de processo
Definio Ciclo de vida do processo

Noes de Processos
Marcelo Johann

Suporte de Hardware para multi-programao


Mecanismo de interrupo Modo de execuo do processador

Linguagem C, Linux, Mdulos e Makefile


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 2

Sistemas Operacionais : introduo


Definio & Objetivos Servios oferecidos
API chamadas de sistema programas de sistema

Definio & Objetivos


Aplicativo do usario
Pessoa, outra mquina

Histrico
Lotes monitor multi-programao timesharing Sis. Op.

Categorias de Sis. Op. atuais Exemplos de Sis. Op.


Hardware
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 3 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Interface entre os dois

CPU, Memria, discos, E/S,

Aula 03 : Slide 4

Definio & Objetivos


O Sistema Operacional uma interface HW / SW aplicativo Duas formas de v-lo:
um fiscal que controla os usurios um juiz que aloca os recursos entre os usurios

Servios oferecidos
O Sis. Op. deve fornecer uma interface aos programas do usurio
Quais recursos de HW? Qual seu uso? Tem algum problema? (Segurana, falha?) preciso de manuteno? Chegou um email? Etc

Objetivos contraditrios:
Convenincia Eficincia Facilidade de evoluo A melhor escolha sempre DEPENDE de alguma coisa
Aula 03 : Slide 5

Chamadas de sistema programas de sistema

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Aula 03 : Slide 6

Organizao e servios do Sis. Op.


Chamadas de sistema

Ncleo, chamadas de sistema, programas de Sistemas


Ncleo: o conjunto mnimo de servios executados pelo Sis. Op.
Definio de processos, escalonamento,

Programas de Sistema
Sistema Operacional

Chamadas de sistema: so funes que os programas dos usurios podem usar para acessar os servios do ncleo
Exemplo: ls, mkdir, cd, format, CTRL-C O ncleo assume a execuo.

Ncleo do Sistema (Kernel)

Programas de sistema: so servios menos crticos


Driver Driver Driver Driver

Compiladores, editores de texto, shell, GUI (Windows), Navegador


Aula 03 : Slide 7 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 8

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Histrico sistemas em lotes


Nos primrdios da Computao, no tinha Sis. Op
O programador interagia diretamente com o HW; A alocao dos recursos de HW era feita por planilha.

Histrico monitor residente


Evoluo natural: automatizar o andamento dos batches
O controle passa a ser feito por um programa, o monitor, residente na memria; O monitor carrega o job na memria; Passa o controle do fluxo de execuo ao job; Volta a exercer o controle ao terminar o job; Centraliza os acessos aos perifricos (fitas, discos)

Nos anos 50, automatizou-se a execuo dos jobs


Definio de categorias de programas (filas) com uso parecido dos recursos = lotes (batches); Possibilidade de definir bibliotecas especializadas; Um operador profissional opera o HW para executar os jobs. O mesmo fiscaliza a atribuio do HW e o andamento dos jobs.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 9

Melhor, porm possibilita a execuo de apenas um job por vez!


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 10

Histrico multi-programao
Idia seguinte: poupar o desperdcio de CPU devido s Entradas/Sadas
Ociosidade da CPU

Histrico multi-programao
Mais de um job?
Ter um s na CPU, em execuo Onde guardar o job que no estar executando?
Em fita? Muito lento! Em disco (acesso randmico!)

Job A Requisio E/S

Job B

Job A E/S terminada tempo

Como fazer com que o monitor saiba que um job acessa a dispositivos de E/S?
Mecanismo de interrupo.

Mantm-se mais de um job em execuo!


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 11 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 12

time-sharing, multi-usurio, multi-tarefa


Evolues naturais da multi-programao:
Compartilhamento de tempo: cada usurio possui um terminal prprio e acessa mesma CPU; Multi-usurio:mais de uma sesso podem ser abertas em um computador s, por vrios usurios (Windows NT/2000, Unix)
Sistemas mais antigos eram mono-usurios (MSDOS)

Categorias de Sis. Op. modernos


Sistemas distribudos Distribuio de uma (ou mais) tarefa entre vrios computadores; O usurio no enxerga a distribuio (viso nica) til para tolerana a falhas. Fracamente acoplados. Sistemas Paralelos Um computador possui mais de um processador
Com ou sem memria compartilhada (SMP) Fortemente acoplados!

Sistemas embutidos Celulares, Palm, carros, satlites Sistemas de tempo real Hard real-time vs. soft real-time
Aula 03 : Slide 13 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 14

Multi-tarefa:cada usurio pode usar mais de um job simultaneamente


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Exemplos: Windows
Windows NT 3.1, 1993
Multi-tarefas, mono-usurio 32 bits casca grfica (janela) em cima de MS-DOS e/ou OS/2

Exemplos: Linux
1991 com o trabalho de Linus Torvalds sobre o kernel para i386 (kernel 0.01, maio 1991) Maro de 94: kernel 1.0 com suporte de rede
Maro de 95: kernel 1.2 suporte a novo HW (Sparc, Alpha).

Windows NT 4.0, 1995: mudanas sobretudo na API grfica, suporte a SMPs Windows 2000, 1999: servios distribudos
Cliente/servidor Organizao em micro-ncleo e orientada a objetos Multi-usurios NTFS

Windows XP, 2001


API grfica integrada com Web Melhor segurana (firewalls) 32-64 bits

Windows VISTA, 2007.

Junho de 96: verso 2.0 suporte a SMP, Sparc, melhora na memria virtual e no sistema de arquivos, threads no kernel, mdulos 2002 verso 2.4.x melhora nos algoritmos de escalonamento das threads. Agora verso 2.6.y
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 16

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Aula 03 : Slide 15

O conceito de processo
Um programa :
Uma seqncia finita de instrues; Uma entidade passiva (que no se altera com o passar do tempo). Armazenado em disco.

O processo do ponto de vista do S.O.


Imagem de um programa
Segmento de cdigo Espao de endereamento

Conjunto de recursos de HW alocados pelo Sis. Op.:


Registradores (PC, Stack Pointer); Memria; Espao no disco (arquivos de E/S). = Contexto do processo.

Um processo :
Uma abstrao que representa um programa em execuo; Uma entidade dinmica: seu estado se altera conforme for executando. Armazenado na memria.

Unidade de escalonamento
Estado; Algoritmos de escalonamento para otimizar o uso do HW. Alocar a CPU a um processo implica em uma troca de contexto
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 18

Pode-se encontrar mais de um processo instanciando um programa nico.


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 17

Tabela de Processos
Para manter as informaes relativas aos processos, o ncleo deve manter:
Uma estrutura de dados relativa a um dado processo
struct proc Process Control Block (PCB)

Relacionamento entre processos


Caso mais simples: os processos so independentes.
Sem relacionamento

Grupo de processos
Compartilhamento de recursos Baseados em hierarquia de processos:
Um processo pai cria processos filhos; Os filhos podem executar o mesmo cdigo, ou troc-lo; Obtem-se uma rvore de processos.

Uma estrutura de dados que gerencia o conjunto de processos


Tabela de processos.

As chamadas de sistema que manipulam os processos iro interagir com essas estruturas de dados.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 19

Implica na definio da semntica de termino de um processo:


S o processo morre; Toda sua descendncia morre.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 20

Sinalizao de processos
Uma das formas de interagir entre processos atravs de sinais.
A recepo assncrona Ao receber um sinal, o processo para sua atividade, Ele executa um tratamento de sinal adaptado (signal handler), Ao se encerrar o tratamento, o processo pode voltar ao estado onde estava antes.

Suporte de Hardware: interrupes


Erros e eventos so detectados por hardware
Exemplos de evento: inserir um pendrive na porta USB, escrever um bloco em disco, receber um pacote pela rede, escrever numa rea probida O HW emite uma interrupo.

So tratados pelo Sis. Op.


Identifica a interrupo (nmero); Verifica sua prioridade; Acha no vetor de interrupes qual procedimento apropriado (handler).
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 22

Um sinal uma verso em nvel de software das interrupes de hardware.


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 21

Suporte de Hardware: modos de execuo O HW prov no mnimo dois modos de execuo diferentes:
Modo privilegiado (protegido, sistema) todo o conjunto de operaes disponvel. o modo de execuo do Sis. Op. Modo usurio: uso limitado. Os processos usurios operam neste modo.

Exemplo importante de uso dos 2 modos


Para proteger os perifricos, as instrues de E/S so privilegiadas. Logo, um processo usurio no pode acess-los
E.g.: escrita em disco, leitura de um CD

Chaveamento de modos:
o fato de passar de um modo para o outro. Usurio -> protegido: por interrupo. Protegido -> usurio: por instruo clssica (yield, return, ).
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 23

O usurio deve passar pelo Sis. Op. atravs de uma chamada de sistema, que gera uma interrupo (trap).

TRAP Processo usurio RETORNO Sis. Op.


Aula 03 : Slide 24

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Chamada de sistema com interrupo


A chamada de sistema oferece o servio ao processo usurio, em modo seguro. Ela gera uma interrupo
Identificao, prioridade, handler

Processos e Disco
Os processos devem interagir com o disco para armazenar e recuperar dados no volteis. O disco fsico abstrado pelo Sistemas de Arquivos, de acordo com uma hierarquia:
Diretrios Arquivos.

Ela implica em uma troca de contexto


O processo chamador deve deixar o lugar para o cdigo do ncleo! A troca de modo implica em uma troca de contexto.

Conforme for a prioridade e o tipo de escalonador, a troca de contexto pode ser imediata ou atrasada. O que acontece se houver uma interrupo durante o tratamento de uma interrupo?
Comparam-se as prioridades Possibilidade de desabilitar as interrupes em casos crticos.

Os diretrios esto freqentemente organizados de acordo com uma hierarquia em rvore


Raiz (/) Diretrio de trabalho de um processo ( .) Caminho relativo / absoluto

Deve ter chamadas de sistema para acessar o Sistema de Arquivos!


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 25 INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 26

Exemplos de chamadas de sistema


Minix 2 prov 53 chamadas de sistema no total Gerenciamento de processos:
fork(), waitpid(), exit(), execve(...), getpid()...

Chamadas de sistema (Linux) para gerenciar processos


Criao de processo: fork()
Cria um novo processo Igual ao pai (clone!) No processo pai, fork() retorna o pid do filho; No processo filho, fork() retorna 0.

Sinais
sigaction(), sigreturn(), sigprocmask(), kill()...

Gerenciamento de arquivos
open(), close(), mknod(), read(), write(), pipe(),... mkdir(), mount(),...

Mudar o segmento de cdigo: exec()


Executa o binrio apontado em argumento. Em geral, chamado logo aps o fork() (fork-exec)

Direitos de acesso Gerenciamento de tempo


Time()

Recuperar o identificador: getpid()


Retorna um int, que identifica o processo.

Terminar o processo: kill()


Manda um sinal (e.g. TERM) para o processo cujo pid dado em argumento.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Aula 03 : Slide 27

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2

Aula 03 : Slide 28

Prxima Aula

Laboratrio de Programao C / UNIX


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2009/2 Aula 03 : Slide 29

Anda mungkin juga menyukai