Processos ao nível do SO

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

Download "Processos ao nível do SO"

Transcrição

1 Processos ao nível do SO José C. Cunha, DI-FCT/UNL Concorrência em sistemas de operação Periféricos operando simultaneamente Multiprogramação Eventos em instantes imprevisíveis

2 SO monolíticos Programas e periféricos pedem serviços ao SO Todas as acções do SO com interrupções desligadas SO fica mais simples, mas 10/1/2009 FSO 2

3 SO: abordagem tradicional Application Programs Application Programs User Mode Kernel Mode OS Hardware 10/1/2009 FSO 3

4 SO monolítico Application Programs Application Programs User Mode System Services Kernel Mode Hardware Ex: MS-DOS 10/1/2009 FSO 4

5 SO monolíticos Programas e periféricos pedem serviços ao SO Todas as acções do SO com interrupções desligadas SO fica mais simples, mas Processos e periféricos ficam a aguardar muito tempo SO grandes ficam muito complexos Difíceis de estender com novos serviços 10/1/2009 FSO 5

6 SO organizado em camadas Application Programs System Services Application Programs User Mode Kernel Mode Memory & I/O Device Mgmt Process Schedule Hardware Cada camada acede uma interface de mais baixo nível Ex : UNIX 10/1/2009 FSO 6

7 Tendência para SO mais flexíveis Application Programs Servers Application Programs User Mode Kernel Mode Microkernel Hardware 10/1/2009 FSO 7

8 SO baseados em processos Nem todas as acções do SO exigem as interrupções desligadas 10/1/2009 FSO 8

9 SO baseados em processos Nem todas as acções do SO exigem as interrupções desligadas Maior descentralização das acções do SO 10/1/2009 FSO 9

10 SO baseados em processos Nem todas as acções do SO exigem as interrupções desligadas Maior descentralização das acções do SO Processos: -- entidades assíncronas interrompíveis -- partilham o CPU e passam por estados: Pronto, Executando, Bloqueado 10/1/2009 FSO 10

11 SO baseados em processos Nem todas as acções do SO exigem as interrupções desligadas Maior descentralização das acções do SO Processos: -- entidades assíncronas interrompíveis -- partilham o CPU e passam por estados Pronto, Executando, Bloqueado Processo para acções de device driver 10/1/2009 FSO 11

12 SO baseados em processos Nem todas as acções do SO exigem as interrupções desligadas Maior descentralização das acções do SO Processos: -- entidades assíncronas interrompíveis -- partilham o CPU e passam por estados executando, bloqueado, pronto Processo para acções de device driver Processo para execução de cada programa 10/1/2009 FSO 12

13 Noção de processo associada a cada device driver para cada periférico Responsável pela sua operação física Pela detecção do fim de operações e erros Pelo tratamento de interrupções Pelo serviço dos pedidos dos programas 10/1/2009 FSO 13

14 Vantagens: -- maior clareza nos módulos do SO -- estruturas de dados descentralizadas e sob controlo de processos dedicados -- maior eficiência no atendimento dos pedidos dos programas e dos periféricos na gestão da concorrência 10/1/2009 FSO 14

15 O Núcleo do SO Distribui o tempo de CPU pelos processos 10/1/2009 FSO 15

16 O Núcleo do SO Distribui o tempo de CPU pelos processos Atende interrupções e assinala-as aos respectivos processos responsáveis, sob a forma de sinais 10/1/2009 FSO 16

17 O Núcleo do SO Distribui o tempo de CPU pelos processos Atende interrupções e assinala-as aos respectivos processos responsáveis, sob a forma de sinais Oferece funções para: Processos fazerem pedidos ao SO 10/1/2009 FSO 17

18 O Núcleo do SO Distribui o tempo de CPU pelos processos Atende interrupções e assinala-as aos respectivos processos responsáveis, sob a forma de sinais Oferece funções para: Processos fazerem pedidos ao SO Processos comunicarem entre si e sincronizarem as suas acções concorrentes 10/1/2009 FSO 18

19 Cada processo, seus canais de I/O processo em execução Prog A Prog B Prog C device drivers hardware 10/1/2009 FSO 19

20 Processo Programa Programa é estático código e dados 10/1/2009 FSO 20

21 Processo Programa Programa é estático código e dados Processo é uma instância de execução código e dados (estes vão variando) estado: pilha, registadores (PC, SP, ) canais de I/O atributos e outros recursos 10/1/2009 FSO 21

22 Processo Programa Programa é estático código e dados Processo é uma instância de execução código e dados (estes vão variando) estado: pilha, registadores (PC, SP, ) canais de I/O atributos e outros recursos O mesmo programa pode ser executado em diferentes processos: p.ex. diferentes utilizadores 10/1/2009 FSO 22

23 Controlo de Processos Ambiente de execução dos programas: instruções da máquina hardware chamadas a funções de biblioteca chamadas ao sistema de operação Suporte duma máquina virtual dedicada a cada processo: Processador Virtual Memória Virtual Canais Virtuais de Comunicação 10/1/2009 FSO 23

24 Máquina virtual de um processo Mem. virtual I/O virtual CPU virtual O SO gere e projecta na máquina real Mem. Virtual mapa de memória CPU virtual CPU real / time-sharing I/O virtual canais de I/O periféricos 10/1/2009 FSO 24

25 Um Processo no SO Ambiente de execução de um programa: 10/1/2009 FSO 25

26 Um Processo no SO Ambiente de execução de um programa: -- Programa executável 10/1/2009 FSO 26

27 Um Processo no SO Ambiente de execução de um programa: -- Programa executável -- Zonas de dados e pilha 10/1/2009 FSO 27

28 Um Processo no SO Ambiente de execução de um programa: -- Programa executável -- Zonas de dados e pilha -- Zona para salvaguarda de estado do CPU (PC, SP, outros registadores) 10/1/2009 FSO 28

29 Um Processo no SO Ambiente de execução de um programa: -- Programa executável -- Zonas de dados e pilha -- Zona para salvaguarda de estado do CPU (PC, SP, outros registadores) -- Informação sobre canais abertos para ficheiros e outra informação de controlo 10/1/2009 FSO 29

30 Um Processo no SO Ambiente de execução de um programa: -- Programa executável -- Zonas de dados e pilha -- Zona para salvaguarda de estado do CPU (PC, SP, outros registadores) -- Informação sobre canais abertos para ficheiros e outra informação de controlo Guardada em Descritores internos do SO (Process Id: PID -- aponta para descritor) 10/1/2009 FSO 30

31 núcleo do SO Processo e sua memória descrição de um processo código do programa dados mapa de memória (tabela de páginas) pilha 10/1/2009 FSO 31

32 núcleo do SO Estados lógicos de um processo descrição de um processo estado do CPU criação escalonado terminação pronto executando fim do I/O fim do time-slice bloqueado I/O 10/1/2009 FSO 32

33 núcleo do SO Processo em memória descrição de um processo mapa de memória código do programa etc estado do CPU descritores de canais dados pilha 10/1/2009 FSO 33

34 Ambiente de um processo Unix Mapa de memória do processo Inicialização -> main() Execução e terminação do processo 10/1/2009 FSO 34

35 10/1/2009 FSO 35

36 Início de execução de um processo Activar um programa C: uma função de inicialização (no start address especificado pelo compilador) é activada: p.e. _start no C Run Time (crt) 10/1/2009 FSO 37

37 Início de execução de um processo Activar um programa C: uma função de inicialização (no start address especificado pelo compilador) é activada: p.e. _start no C Run Time (crt) obtém argumentos e vars. ambiente para o mapa do processo, iniciando a pilha 10/1/2009 FSO 38

38 Início de execução de um processo Activar um programa C: uma função de inicialização (no start address especificado pelo compilador) é activada: p.e. _start no C Run Time (crt) obtém argumentos e vars. ambiente para o mapa do processo, iniciando a pilha e lança a função main(): main(argc, argv, environ); 10/1/2009 FSO 39

39 10/1/2009 FSO 40

40 Terminação de um processo Normal: -- retorno de main() 10/1/2009 FSO 41

41 Terminação de um processo Normal: -- retorno de main() -- chamada exit(): acções de fecho, 10/1/2009 FSO 42

42 Terminação de um processo Normal: -- retorno de main() -- chamada exit(): acções de fecho, -- chamada _exit(): retorno imediato ao SO ) 10/1/2009 FSO 43

43 Terminação de um processo Normal: -- retorno de main() -- chamada exit(): acções de fecho, -- chamada _exit(): retorno imediato ao SO -- podem devolver o exit status do processo Anormal: 10/1/2009 FSO 44

44 Terminação de um processo Normal: -- retorno de main() -- chamada exit(): acções de fecho, -- chamada _exit(): retorno imediato ao SO -- podem devolver o exit status do processo Anormal: -- chamada de abort() 10/1/2009 FSO 45

45 Terminação de um processo Normal: -- retorno de main() -- chamada exit(): acções de fecho, -- chamada _exit(): retorno imediato ao SO -- podem devolver o exit status do processo Anormal: -- chamada de abort() -- ocorrência de sinal (hardware ou software) 10/1/2009 FSO 46

46 Chamadas a biblioteca e chamadas ao sistema As chamadas ao sistema têm funções correspondentes na biblioteca standard C Muitas funções de biblioteca não chamam o sistema: operam em MODO UTILIZADOR! As chamadas ao sistema operam em MODO SUPERVISOR! Exemplo: 10/1/2009 FSO 47

47 10/1/2009 FSO 48

48 Níveis de software Visão de uma aplicação Modo utilizador (executa num processo) Modo supervisor programa bibliotecas API do SO Núcleo do SO device drivers Chamada ao sistema hardware 10/1/2009 FSO 49

49 Chamada ao sistema _exit void _exit(int status); Programa C libc API do SO Núcleo (kernel) exit( ) _exit( ) int SYSCALL rot-int do_exit hardware Código possível _exit: mov eax,exit_scall No caso do linux/x86: EXIT_SCALL=1 SYSCALL=0x80 10/1/2009 FSO 50

50 Chamada ao sistema _exit void _exit(int status); Programa C libc API do SO Núcleo (kernel) exit( ) _exit( ) int SYSCALL rot-int do_exit hardware Código possível _exit: mov eax,exit_scall mov ebx, [ebp+4] No caso do linux/x86: EXIT_SCALL=1 SYSCALL=0x80 10/1/2009 FSO 51

51 Chamada ao sistema _exit void _exit(int status); Programa C libc API do SO Núcleo (kernel) exit( ) _exit( ) int SYSCALL rot-int do_exit hardware Código possível _exit: mov eax,exit_scall mov ebx, [ebp+4] int SYSCALL No caso do linux/x86: EXIT_SCALL=1 SYSCALL=0x80 10/1/2009 FSO 52

52 Chamadas ao sistema (I/O) Exemplo de saída de dados Programa C libc API do SO Núcleo (kernel) printf( ) write( ) rot-int do_write device drivers int SYSCALL Buffer com os dados a escrever hardware 10/1/2009 FSO 53

53 Principais características do UNIX Suporta múltiplos processos 10/1/2009 FSO 54

54 Principais características do UNIX Suporta múltiplos processos Suporta múltiplos utilizadores 10/1/2009 FSO 55

55 Principais características do UNIX Suporta múltiplos processos Suporta múltiplos utilizadores Escalonamento com time-slice 10/1/2009 FSO 56

56 Principais características do UNIX Suporta múltiplos processos Suporta múltiplos utilizadores Escalonamento com time-slice Organiza o espaço nos discos num sistema de ficheiros hierárquico 10/1/2009 FSO 57

57 Principais características do UNIX Suporta múltiplos processos Suporta múltiplos utilizadores Escalonamento com time-slice Organiza o espaço nos discos num sistema de ficheiros hierárquico Possui mecanismos de permissões associados a processos e a ficheiros 10/1/2009 FSO 58

58 Classes de chamadas ao SO Acesso a ficheiros e directorias 10/1/2009 FSO 59

59 Classes de chamadas ao SO Acesso a ficheiros e directorias Pedir e libertar memória 10/1/2009 FSO 60

60 Classes de chamadas ao SO Acesso a ficheiros e directorias Pedir e libertar memória Pedir a execução de novos programas 10/1/2009 FSO 61

61 Classes de chamadas ao SO Acesso a ficheiros e directorias Pedir e libertar memória Pedir a execução de novos programas Controlar a execução de programas 10/1/2009 FSO 62

62 Classes de chamadas ao SO Acesso a ficheiros e directorias Pedir e libertar memória Pedir a execução de novos programas Controlar a execução de programas Comunicação e sincronização de processos concorrentes 10/1/2009 FSO 63

63 Classes de chamadas ao SO Acesso a ficheiros e directorias Pedir e libertar memória Pedir a execução de novos programas Controlar a execução de programas Comunicação e sincronização de processos concorrentes Obter informação de estado do sistema 10/1/2009 FSO 64

64 O arranque do SO Um pequeno programa para bootstrap Responsável pelo carregamento para memória e execução do núcleo do SO Depende de cada computador 10/1/2009 FSO 65

65 O arranque do SO Um pequeno programa para bootstrap Responsável pelo carregamento para memória e execução do núcleo do SO Depende de cada computador Depois das inicializações o SO cria o primeiro processo (init) 10/1/2009 FSO 66

66 O arranque do SO Um pequeno programa para bootstrap Responsável pelo carregamento para memória e execução do núcleo do SO Depende de cada computador Depois das inicializações o SO cria o primeiro processo (init) O processo init dá início a uma cascata de criação de processos 10/1/2009 FSO 67

67 Árvore de processos no Unix 10/1/2009 FSO 68

68 Árvore de processos (exemplo) Init Spooler de impressão Atendimento de logins por rede Login terminal 1 Shell para utilizador A Comando 'ls' (exemplo de um sessão.) Login terminal 2 10/1/2009 FSO 69

69 Utilizadores e permissões Utilizadores: identificação, direitos ou permissões O que pode ler, escrever, executar, que tempo de CPU, espaço em memória, espaço em disco, etc Cada utilizador tem de identificar-se perante o SO: login Cada processo recebe os direitos do utilizador que o criou 10/1/2009 FSO 70

70 Atributos de um processo Identificador (process identifier) 10/1/2009 FSO 71

71 Atributos de um processo Identificador (process identifier) Imagem do programa em memória Código, dados e pilha (tabela de páginas) 10/1/2009 FSO 72

72 Atributos de um processo Identificador (process identifier) Imagem do programa em memória Código, dados e pilha (tabela de páginas) Estado do CPU (quando não executa) Conteúdo dos registos (PC, SP, ) 10/1/2009 FSO 73

73 Atributos de um processo Identificador (process identifier) Imagem do programa em memória Código, dados e pilha (tabela de páginas) Estado do CPU (quando não executa) Conteúdo dos registos (PC, SP, ) Estado do I/O Canais de I/O (ficheiros abertos e buffers com os dados em trânsito) 10/1/2009 FSO 74

74 Atributos de um processo Identificador (process identifier) Imagem do programa em memória Código, dados e pilha (tabela de páginas) Estado do CPU (quando não executa) Conteúdo dos registos (PC, SP, ) Estado do I/O Canais de I/O (ficheiros abertos e buffers com os dados em trânsito) Identificador do utilizador e seus direitos (ou permissões) 10/1/2009 FSO 75

75 Mais atributos Na realidade o processo tem um dono: identificador do utilizador (uid) e grupo (gid) as permissões estão associadas aos recursos 10/1/2009 FSO 76

76 Mais atributos Na realidade o processo tem um dono: identificador do utilizador (uid) e grupo (gid) as permissões estão associadas aos recursos Directoria corrente 10/1/2009 FSO 77

77 Mais atributos Na realidade o processo tem um dono: identificador do utilizador (uid) e grupo (gid) as permissões estão associadas aos recursos Directoria corrente "Atributos" extra: variáveis de ambiente São um conjunto de strings nome=valor 10/1/2009 FSO 78

78 Variáveis do ambiente Definem um ambiente "livre" (pode conter qualquer coisa na forma nome=valor) exemplos: HOME home directory (directoria base do utilizador) PATH lista de directorias (caminhos) onde procurar ficheiros executáveis LANG língua preferida pelo utilizador São definidas: automaticamente no login (HOME, USER, ) ou definidas num ficheiro de inicializações ou explicitamente pelo utilizador! 10/1/2009 FSO 79

79 main(argc, argv, environ); 10/1/2009 FSO 81

80 Exemplo de uso de processos A nível do Shell no Unix: -- ler e interpretar comandos do terminal 10/1/2009 FSO 82

81 Exemplo de uso de processos A nível do Shell no Unix: -- ler e interpretar comandos do terminal -- criar um processo por cada comando 10/1/2009 FSO 83

82 Exemplo de uso de processos A nível do Shell no Unix: -- ler e interpretar comandos do terminal -- criar um processo por cada comando -- destruir o processo no fim da execução de cada comando 10/1/2009 FSO 84

83 Ciclo de vida de um processo 10/1/2009 FSO 85

84 Executar um programa Processo Pedir a criação de um processo: o SO verifica todas as permissões e 10/1/2009 FSO 86

85 Executar um programa Processo Pedir a criação de um processo: o SO verifica todas as permissões e cria as estruturas para gerir o processo 10/1/2009 FSO 87

86 Executar um programa Processo Pedir a criação de um processo: o SO verifica todas as permissões e cria as estruturas para gerir o processo inicia todos os seus atributos inicia o mapa de memória com o programa (p. ex. a partir de um ficheiro executável) 10/1/2009 FSO 88

87 Executar um programa Processo Pedir a criação de um processo: o SO verifica todas as permissões e cria as estruturas para gerir o processo inicia todos os seus atributos inicia o mapa de memória com o programa (p. ex. a partir de um ficheiro executável) inicia o CPU, transferindo o controlo para o processo criado (PC, SP, ) 10/1/2009 FSO 89

88 Executar um programa Processo Pedir a criação de um processo: o SO verifica todas as permissões e cria as estruturas para gerir o processo inicia todos os seus atributos inicia o mapa de memória com o programa (p. ex. a partir de um ficheiro executável) inicia o CPU, transferindo o controlo para o processo criado (PC, SP, ) Queremos algo como: CriarProcesso( ficheiro,canais-iniciais, atributos, ambiente, etc)?? 10/1/2009 FSO 90

89 Criar processos Exemplo MS-Windows (Win32): BOOL CreateProcess( LPCSTR AppName, LPTSTR CommLine, LPSECURITY_ATTRIBUTES ProcAttr, LPSECURITY_ATTRIBUTES ThAttr, BOOL InheritHandles, DWORD CreatFlags, LPVOID Environment, LPCSTR CurrDirectory, LPSTARTUPINFO StartupInf, LPPROCESS_INFORMATION ProcInfo ) 10/1/2009 FSO 91

90 Criar processos Exemplo MS-Windows (Win32): BOOL CreateProcess( LPCSTR AppName, LPTSTR CommLine, LPSECURITY_ATTRIBUTES ProcAttr, LPSECURITY_ATTRIBUTES ThAttr, BOOL InheritHandles, DWORD CreatFlags, LPVOID Environment, LPCSTR CurrDirectory, LPSTARTUPINFO StartupInf, LPPROCESS_INFORMATION ProcInfo ) Abordagem UNIX: int fork(void) int execve(char *path, char **argv,char **envp) 10/1/2009 FSO 92

91 Chamadas Unix para Processos Fork: cria um duplicado exacto do processo original incluindo informação sobre canais abertos 10/1/2009 FSO 93

92 Chamadas Unix para Processos Fork: cria um duplicado exacto do processo original incluindo informação sobre canais abertos Exec: nova imagem executável para o processo, a partir de um ficheiro executável -- um novo mapa de memória 10/1/2009 FSO 94

93 Chamadas Unix para Processos Fork: cria um duplicado exacto do processo original incluindo informação sobre canais abertos Exec: nova imagem executável para o processo, a partir de um ficheiro executável -- um novo mapa de memória Wait: permite a um processo aguardar pela terminação de um filho 10/1/2009 FSO 95

94 Chamadas Unix para Processos Fork: cria um duplicado exacto do processo original incluindo informação sobre canais abertos Exec: nova imagem executável para o processo, a partir de um ficheiro executável -- um novo mapa de memória Wait: permite a um processo aguardar pela terminação de um filho Exit /_exit: termina o processo corrente 10/1/2009 FSO 96

95 Chamadas Unix para Processos Fork: cria um duplicado exacto do processo original incluindo informação sobre canais abertos Exec: nova imagem executável para o processo, a partir de um ficheiro executável -- um novo mapa de memória Wait: permite a um processo aguardar pela terminação de um filho Exit /_exit: termina o processo corrente Getpid: indica o identificador do processo 10/1/2009 FSO 97

96 FORK: criar um processo no Unix 10/1/2009 FSO 98

97 Criação de processos cloning 10/1/2009 FSO 99

98 Como é que o clone sabe que é um clone? 10/1/2009 FSO 100

99 Como é que o clone sabe que é um clone? Como é que o pai sabe que é o processo original e não a cópia? 10/1/2009 FSO 101

100 Como é que o clone sabe que é um clone? Como é que o pai sabe que é o processo original e não a cópia? Será necessário distinguir entre eles? - em geral o pai é um supervisor ou gestor que coordena a criação de múltiplos processos 10/1/2009 FSO 102

101 Um novo processo: criar um clone int fork(void) 10/1/2009 FSO 103

102 Um novo processo: criar um clone int fork(void) cria um novo processo (filho) cópia exacta do original (pai) incluindo programa, atributos e informação sobre canais abertos (o pid é diferente, claro!) 10/1/2009 FSO 104

103 Um novo processo: criar um clone int fork(void) cria um novo processo (filho) cópia exacta do original (pai) incluindo programa, atributos e informação sobre canais abertos (o pid é diferente, claro!) devolve o pid do filho ao pai (no retorno de fork) 10/1/2009 FSO 105

104 Um novo processo: criar um clone int fork(void) cria um novo processo (filho) cópia exacta do original (pai) incluindo programa, atributos e informação sobre canais abertos (o pid é diferente, claro!) devolve o pid do filho ao pai (no retorno de fork) o filho, sendo uma cópia do pai, começa a executar na instrução apontada pelo mesmo valor do PC do pai: instrução logo a seguir ao fork! o SO devolve um resultado no retorno de fork, no novo processo filho (devolve zero) 10/1/2009 FSO 106

105 Exemplo de fork 10/1/2009 FSO 107

106 10/1/2009 FSO 108

107 pid = fork (); /* pid: resultado do fork*/ if (pid == 0) -- código executado pelo filho else if (pid > 0) /*pid = identifica o filho*/ -- código executado pelo pai else /* pid < 0 */ -- erro 10/1/2009 FSO 109

108 Exemplo: pid = fork(); switch (pid) { case 0: printf("filho: %d\n",getpid()); exit(0); case -1: perror("fork"); break; default:printf( Criei %d\n", pid); } 10/1/2009 FSO 110

109 Exemplo (cont.) Onde aparecem as mensagens? Filho "herda" os canais de i/o! descritores copiados, logo apontam os mesmos canais p1 p2 p3 1 Tabela global de fich. abertos Offset R Offset RW Offset R Offset R Offset R p3 filho de p2 Por que ordem? Quem executa primeiro? São dois processos concorrentes, o SO decide como os escalonar podem executar em simultâneo, se existirem vários CPU! 10/1/2009 FSO 111

110 Fork: com mais pormenor 10/1/2009 FSO 112

111 10/1/2009 FSO 113

112 10/1/2009 FSO 114

113 sequência de passos no fork() P 1 (pid=343) P 2 (pid=682) 5 5 fork() fork() Sistema de Operação 10/1/2009 FSO 115

114 Utilização do fork Criar várias instâncias do mesmo programa p. ex: lançar o login em vários terminais 10/1/2009 FSO 116

115 Utilização do fork Criar várias instâncias do mesmo programa p. ex: lançar o login em vários terminais Tirar partido da multiprogramação p. ex: um programa inclui diversas acções que podem ser executadas em concorrência 10/1/2009 FSO 117

116 Utilização do fork Criar várias instâncias do mesmo programa p. ex: lançar o login em vários terminais Tirar partido da multiprogramação p. ex: um programa inclui diversas acções que podem ser executadas em concorrência Combinar fork + exec para criar processos com novos programas (antes do exec, o novo processo pode alterar o ambiente para o novo programa) 10/1/2009 FSO 118

117 EXEC 10/1/2009 FSO 120

118 Executar um programa: exec Num processo existente: Cria um novo mapa de memória para o processo (substitui o antigo mapa) na prática, passa a executar um novo programa O restantes atributos do processo mantêm-se: atributos e canais de I/O (há excepções) Exemplo: execve("/bin/ls", argv, environ); 10/1/2009 FSO 121

119 Mapa de memória virtual do processo end. superior iniciado pelo SO com base no pedido de criação args. e var. ambiente stack SP obtido pelo SO do ficheiro executável dados não inicializados dados inicializados programa bibliotecas (bss) (data) (text) PC end. inferior 10/1/2009 FSO 122

120 Execução de novo programa 10/1/2009 FSO 123

121 Exemplo de exec 10/1/2009 FSO 124

122 Chamadas de fork e exec int fork(void); -- uma só função exec: uma família de funções que recorrem a uma única chamada ao SO execve() Só diferem no modo como especificam os argumentos e as variáveis de ambiente: execl: lista de argumentos execv: vector de apontadores p/ argumentos execp: variável PATH exece: vector para variáveis de ambiente 10/1/2009 FSO 125

123 execve e Companhia Funções de biblioteca: execl(char *path, char *arg0, char *arg1, ) execle(char *path, char *arg0, char *arg1,,0, char **envp) execv(char *path, char **argv) execlp(char *file, char *arg0, char *arg1, ) execvp(char *file, char **argv) as duas últimas usam as directorias indicadas em PATH (do ambiente corrente do processo) para procurar file 10/1/2009 FSO 126

124 execl: args como uma lista terminada por NULL e um pathname para o executável int execl (char *path, char *arg1,..., char *argn, (char *) 0); execlp: só precisa do filename para o executável int execlp (char *file, char *arg1,..., char *argn, (char *) 0); 10/1/2009 FSO 127

125 execv: um array de argumentos e um pathname para o executável int execv(char *path, char *argv[ ]); execvp: só um filename para o executável int execvp(char *file, char *argv[ ]); 10/1/2009 FSO 128

126 main() { printf( executing ls\n ); execl( /bin/ls, ls, -l, (char `)0); } /*se retorna aqui: houve um erro*/ perror( execl failed to run ls ): exit(1); 10/1/2009 FSO 129

127 main() { char *av[ ] = { ls, - l, (char *)0); ou av[0] = ls av[1] = - l av[2] = NULL } /* os argumentos num array de strings */ execv( /bin/ls, av); /*se retorna aqui: houve um erro*/ perror( execv failed to run ls ): exit(1); 10/1/2009 FSO 130

128 10/1/2009 FSO 133

129 fork + exec* pid = fork(); switch (pid) { case 0: execl("/bin/ls","ls","/bin",0); perror("ls"); exit(1); case -1: perror("fork"); break; default: printf("criei o %d\n", pid); } p1 fork() switch printf( ) p2 switch execl( ) main( ) do "ls" 10/1/2009 FSO 134

130 sequência fork() + execve() P 1 (pid=343) P 2 (pid=682) 5 5 fork() 1 3 execve() fork() Sistema de Operação 7 9 exec() 10/1/2009 FSO 135

131 10/1/2009 FSO 136

132 fork vs. execve fork mapa mem. pai copiado para filho retorna pid do filho ao pai (filho recebe zero) pid filho diferente do do pai (processos diferentes!) filho herda uma copia dos canais de i/o execve mapa de mem. substituído pelo novo programa nunca retorna (só em caso de erro) o pid mantém-se (mesmo processo!) mantém os mesmos canais (mesmo processo!) 10/1/2009 FSO 137

133 Wait e waipid int wait(int *status); Aguarda a terminação de um dos filhos int waitpid(int pid, int *status, int options); Se pid == -1 waitpid é igual a wait Se pid > 0 aguarda o filho indicado por pid Options: WNOHANG: (wait with no hang) devolve 0 e retorna de imediato, se filho ainda não acabou 10/1/2009 FSO 138

134 bloqueado Esperar pela terminação int wait(int *status) aguarda pela terminação de um dos filhos status: código de terminação do processo: se terminou com _exit pode-se obter o exit status fork() wait(&status) execve( ) main( ) _exit( 0 ) WEXITSTATUS(status) == 0 10/1/2009 FSO 139

135 Pai aguarda terminação do filho 10/1/2009 FSO 140

136 wait: cenários possíveis O pai e o filho: executados concorrentemente em multiprogramação. Cenários possíveis: 1. Pai chega primeiro à chamada de wait fica bloqueado até o filho chamar _exit 2. Filho chama _exit antes do pai chamar wait o filho fica ZOMBIE (defunct) quando pai chamar wait, não bloqueia, e o resíduo do filho é eliminado. 3. Pai não chama wait e termina o filho fica ÓRFÃO: é adoptado pelo init 10/1/2009 FSO 141

137 Árvore de processos no Unix 10/1/2009 FSO 142

138 Exemplo de fork e exec 10/1/2009 FSO 143

139 Exemplo com execl pid = fork(); switch (pid) { case 0: chdir("/bin"); execl("/bin/ls","ls",0); printf(stderr,"erro no execl\n");! case -1: perror("fork"); break; default: printf("criei o %d\n", pid); wait( &st ); if ( WIFEXIT(st) ) printf("exit status: %d\n", WEXITSTATUS(st) ); } 10/1/2009 FSO 144

140 Exemplo com execvp pid = fork(); switch (pid) { case 0: { char *av[3]; } av[0]="ls"; av[1]="/bin"; av[2]=null; execvp( "ls", av ); perror( "exec ls" ); exit(1); } case -1: perror("fork"); break; default: wait( &st ); 10/1/2009 FSO 145

141 Shell: recebe comandos do teclado 10/1/2009 FSO 146

142 Um Shell simplificado while (true) { read_command(command, params); if (fork () > 0) -- cria wait (&status); -- o pai espera else -- o filho executa o comando execv(command,params); } cp file1 file2 na linha de comandos main(argc, argv) no programa 10/1/2009 FSO 147

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho)

Leia mais

O Núcleo do Sistema de Operação (1) José C. Cunha, DI/FCT/UNL

O Núcleo do Sistema de Operação (1) José C. Cunha, DI/FCT/UNL O Núcleo do Sistema de Operação (1) José C. Cunha, DI/FCT/UNL O Sistema de Operação visto como... Gestor de Recursos Gere e permite a partilha do hardware pelos processos Gere a execução dos programas

Leia mais

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos Complementos de Programação Engenharia Electrotécnica - Electrónica e Computadores Ano Lectivo: 2005/2006 Ana Madureira Gestão de Processos 04-12-2006 1 Objectivos Os alunos deverão ser capazes de ter

Leia mais

Na Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação

Na Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação GSI018 Sistemas Operacionais 26/08/2016 Gerência de Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Interrupções por software

Leia mais

3. Criação e terminação de processos

3. Criação e terminação de processos 3. Criação e terminação de processos Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho) é através da invocação,

Leia mais

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema Background! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema! Os sistemas actuais suportam o carregamento de múltiplos programas

Leia mais

Processos. Sistemas Operativos 2015 / Multiprogramação. Execução, em paralelo, de múltiplos programas na mesma máquina

Processos. Sistemas Operativos 2015 / Multiprogramação. Execução, em paralelo, de múltiplos programas na mesma máquina Processos Sistemas Operativos 2015 / 2016 Multiprogramação Execução, em paralelo, de múltiplos programas na mesma máquina Cada instância de um programa em execução denomina-se um processo Considerando

Leia mais

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid Conteúdo Programas e Aula 1-1 Programas e (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 3 Referências

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 2ª Aula Conceitos Básicos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados

Leia mais

Comunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL

Comunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL Comunicação baseada em canais de I/O e Pipelines no sistema Unix José C. Cunha, DI-FCT/UNL Mecanismos de comunicação Ficheiros em disco (geridos pelo SO) Pipes (buffers geridos pelo SO) Mensagens (filas

Leia mais

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

Leia mais

Sistemas Operativos. (ano letivo ) Laboratório 2

Sistemas Operativos. (ano letivo ) Laboratório 2 Código 21111 Sistemas Operativos (ano letivo 2017-18) Laboratório 2 Esta actividade está escrita na forma de tutorial e consiste na interpretação, compilação e execução de pequenos programas que efectuam

Leia mais

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento.

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento. Processamento com SPOOL Utilização do e periféricos disco Spool de entrada Spool de saída Computador Puramente sequencial Leitor de cartões operador utilizador impressora resultados 28-02-2007 ASC II -

Leia mais

Sistemas de Computação O Sistema Operacional Unix

Sistemas de Computação O Sistema Operacional Unix Sistemas de Computação O Sistema Operacional Unix 3/8/16 1 Introdução Interrupções de hardware Execução de uma Chamada de Sistema Alocação de memória Chamadas de Sistema típicas Arquitetura do Unix Visão

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Processos 24/04/2014 Prof. Valeria M. Bastos 1 Organização da Unidade Processos Conceituação Estruturas de Controle Modos de execução do S.O. Estados

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução

Leia mais

João Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1

João Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1 Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução

Leia mais

Fundamentos de Sistemas de Operação (FSO)

Fundamentos de Sistemas de Operação (FSO) Fundamentos de Sistemas de Operação (FSO) Lic. Eng. Informática 2009/2010 Docentes: José A. Cardoso e Cunha Hervé Paulino, Rui Marques Área Científica de Arquitectura de Sistemas Computacionais, Dep. Informática

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 Conceituação Estruturas de Controle Modos de execução do S.O. Estados de um

Leia mais

Prof. Kleber R. Rovai

Prof. Kleber R. Rovai Msn: klrovai@hotmail.com E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em

Leia mais

Função Fundamental do SO

Função Fundamental do SO Função Fundamental do SO Gestão do Hardware Uma das funções fundamentais do sistema operativo é gerir os recursos do hardware de um modo o mais transparente possível ao utilizador Recursos principais a

Leia mais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo

Leia mais

Técnicas Avançadas de Programação

Técnicas Avançadas de Programação Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos

Leia mais

Processos. Um SO executa uma multiplicidade de programas, em batch ou time-sharing, que se designam por: ÈÖÓ Ó é um programa em execução.

Processos. Um SO executa uma multiplicidade de programas, em batch ou time-sharing, que se designam por: ÈÖÓ Ó é um programa em execução. Processos Um SO executa uma multiplicidade de programas, em batch ou time-sharing, que se designam por: ÔÖÓ Ó ou Ø Ö (processes/tasks/jobs). ÈÖÓ Ó é um programa em execução. A execução de um processo é

Leia mais

Sistemas de Operação

Sistemas de Operação Universidade Nova de Lisboa Faculdade de Ciências e Tecnologia Departamento de Informática Sistemas de Operação Estruturas e Componentes do S.O. (1) Baseado nos transparente de SO de Pedro Medeiros (DI/FCT/UNL)

Leia mais

Sistemas Operativos. Processos, threads e eventos. Rui Maranhão

Sistemas Operativos. Processos, threads e eventos. Rui Maranhão Sistemas Operativos Processos, threads e eventos Rui Maranhão (rma@fe.up.pt) Multi-tarefa execução, em paralelo, de programas no mesmo computador cada instância em execução denomina-se processo (conceito

Leia mais

Sistemas Operativos: Processos

Sistemas Operativos: Processos Sistemas Operativos: Processos Pedro F. Souto (pfs@fe.up.pt) March 22, 2011 Sumário Processos Conceito de Processo Sequencial Multiprogramação Chamadas ao Sistema Rotinas Assíncronas Implementação de Processos

Leia mais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4

Leia mais

Processos. (c) 2005 Volnys B. Bernal Versão de 15/3/2006. Agenda. Processos. Introdução aos Processos. Introdução aos Processos

Processos. (c) 2005 Volnys B. Bernal Versão de 15/3/2006. Agenda. Processos. Introdução aos Processos. Introdução aos Processos 1 1997-2005 - Volnys Bernal 1 1997-2005 - Volnys Bernal 2 Agenda Processos Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Laboratório de Sistemas Integráveis http://www.lsi.usp.br/!

Leia mais

Processos Volnys B. Bernal Versão de 20/03/2015. Agenda. Processos. Programa x Processo. Programa x Processo. Programa.

Processos Volnys B. Bernal Versão de 20/03/2015. Agenda. Processos. Programa x Processo. Programa x Processo. Programa. 1 2000-2015 - Volnys Bernal 1 2000-2015 - Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos (PSI) Escola Politécnica da USP x Concorrência x Paralelismo

Leia mais

Teste de Sistemas de Operação 30 de Maio de 2009

Teste de Sistemas de Operação 30 de Maio de 2009 Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo Abstração usada pelo S.O. para designar a execução de um programa. (1) É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

SVCs para Controle de Processos no Unix

SVCs para Controle de Processos no Unix Criação de Processos (1) SVCs para Controle de Processos no Unix A maioria dos sistemas operacionais usa um mecanismo de spawn para criar um novo processo a partir de um outro executável. Aula 9 Profa.

Leia mais

Teste de Sistemas de Operação 15 de Abril de 2010

Teste de Sistemas de Operação 15 de Abril de 2010 Teste de Sistemas de Operação 15 de Abril de 2010 Duração: 1 h (prática + teórica) D NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Em um sistema que suporta multiprogramação

Leia mais

Sistemas Operacionais

Sistemas Operacionais ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação

Leia mais

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação Volnys Bernal 1998-2016 1 Volnys Bernal 1998-2016 2 Sumário aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br Laboratório de Sistemas Integráveis http://www.lsi.usp.br/ Objetivos de um Sistema

Leia mais

Criação de Processos Fork( ) Exec( )

Criação de Processos Fork( ) Exec( ) Criação de Processos Fork( ) Exec( ) 8/23/18 1 Chamadas de Sistema: Process Management 2 Chamada fork( ) / exec( ) 3 Esboço de uma shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Sistemas Operativos. Luís Paulo Reis. Sistemas Operativos. Sumário

Sistemas Operativos. Luís Paulo Reis. Sistemas Operativos. Sumário Sistemas Operativos Luís Paulo Reis Slide Nº 1 Sistemas Operativos Sumário O que é um Sistema Operativo (SO)? Modelo em Camadas de um SO Abstracções Suportadas por um SO: Utilizador Processo Ficheiro /

Leia mais

2 - Organização do Sistema Operativo. Prof. Ricardo Silva

2 - Organização do Sistema Operativo. Prof. Ricardo Silva 2 - Organização do Sistema Operativo Prof. Ricardo Silva Sumário Principais Elementos da Arquitectura de Sistemas Operativos Núcleo Chamadas ao sistema Processos de sistema Evolução da organização do núcleo

Leia mais

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Introdução 2 Receita do Bolo Programa (Algoritmo) Ingredientes: dados de entrada Quem prepara (confeiteiro): CPU atividade de: Ler a receita Buscar

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5

Leia mais

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens

Leia mais

Exceções no Fluxo de Execução: Interrupções e Traps

Exceções no Fluxo de Execução: Interrupções e Traps Exceções no Fluxo de Execução: Interrupções e Traps 1 Fluxo de Controle Fluxo de controle de um programa: a 0 a 1 a 2 a n sequência de endereços I 0 I 1 I 2 I n sequência de instruções O fluxo mais simples

Leia mais

Sistemas Operacionais Aula 4

Sistemas Operacionais Aula 4 Sistemas Operacionais Aula 4 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) A Família de SVC's exec() As primitivas exec() constituem, na verdade, uma famılia de funções que permitem a um processo executar o código de outro programa.

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) A Família de SVC's exec() As primitivas exec() constituem, na verdade, uma famılia de funções (execl, execlp, execle, execv, execvp, execve) que permitem

Leia mais

Introdução aos Sistemas de Operação: evolução histórica e conceitos fundamentais. José A. Cardoso e Cunha DI-FCT-UNL

Introdução aos Sistemas de Operação: evolução histórica e conceitos fundamentais. José A. Cardoso e Cunha DI-FCT-UNL Introdução aos Sistemas de Operação: evolução histórica e conceitos fundamentais José A. Cardoso e Cunha DI-FCT-UNL Hoje em dia Temos SO em diferentes tipos de máquinas: 9/18/2009 FSO 2 Hoje em dia Temos

Leia mais

Unix Processos. Geraldo Braz Junior

Unix Processos. Geraldo Braz Junior Unix Processos Geraldo Braz Junior 1 Processos no Unix Unix é multiprogramado; Para cada processo é atribuído um Pid; Diversos daemons são executados: Cron Processamento de emails Gerenciamento da fila

Leia mais

Sistemas Operacionais Aula 3

Sistemas Operacionais Aula 3 Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura

Leia mais

SOP - TADS Processos. Revisão Ultima aula

SOP - TADS Processos. Revisão Ultima aula SOP - TADS Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Revisão de hardware Processador

Leia mais

Tratamento de Sinais

Tratamento de Sinais Tratamento de Sinais Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 25 de setembro de 2009 Sinais DCA0109 - Prática de programação

Leia mais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06. Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é

Leia mais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais Processos Pedro Cruz EEL770 Sistemas Operacionais Aviso O que vamos falar vale para sistemas de processador/ núcleo único Vale também para cada processador/núcleo de um sistema com múltiplos processadores/núcleos

Leia mais

1/24 FICHEIROS DE TEXTO

1/24 FICHEIROS DE TEXTO 1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:

Leia mais

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012 1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo

Leia mais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais Processos Pedro Cruz EEL770 Sistemas Operacionais Datas importantes 02 de Abril Proposta de trabalho 09 de Abril Confirmação de proposta 07 de Maio Primeira apresentação do trabalho 09 de Maio Entrega

Leia mais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente

Leia mais

Unidade 2. Processos Threads Concorrência em Java

Unidade 2. Processos Threads Concorrência em Java Unidade 2 Programação Concorrente Processos Threads Concorrência em Java Processos Definição Um programa em execução em uma máquina. Identificado pelo seu PID (Process Identifier). A unidade de processamento

Leia mais

Informática Básica. Licenciatura em Ciência da Informação. Tito Carlos S. Vieira. Tito Carlos S. Vieira

Informática Básica. Licenciatura em Ciência da Informação. Tito Carlos S. Vieira.   Tito Carlos S. Vieira Informática Básica Licenciatura em Ciência da Informação Tito Carlos S. Vieira E-mail: tito@fe.up.pt 1 Parte II Sistemas Operativos (Utilização do Windows) 2 Sumário O que é um Sistema Operativo (SO)?

Leia mais

Processos no UNIX. Walter Fetter Lages

Processos no UNIX. Walter Fetter Lages Processos no UNIX Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica

Leia mais

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

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Processador INTRODUÇÃO Projetado apenas para executar instruções Não é capaz de distinguir qual programa está em execução Processo

Leia mais

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior Estrutura dos Sistemas Operacionais Sérgio Portari Júnior - 2016 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Arquitectura dos Sistemas Operativos Programação de Sistemas Arquitectura : 1/25 Introdução (1) Um sistema operativo de uso geral é formado por diversas componentes: Gestor de processos

Leia mais

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução Plano da aula Noções de Processos Marcelo Johann Introdução Histórico Multiprogramação Noção de processo Definição Ciclo de vida do processo Suporte de Hardware para multi-programação Mecanismo de interrupção

Leia mais

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física

Leia mais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes (soufes@gmail.com) 1ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. Soluções de questões específicas

Leia mais

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais Volnys Bernal 1998-2017 1 Introdução aos Sistemas Operacionais Volnys Borges Bernal volnys@lsi.usp.br Laboratório de Sistemas Integráveis http://www.lsi.usp.br/ Volnys Bernal 1998-2017 2 Sumário Objetivos

Leia mais

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula E-mail: fernando.santorsula@esamc.br Aula 2 (Teórica & Prática): Conteúdo programático Teórica Processos e Threads Apresentação

Leia mais

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem

Leia mais

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios 1ª Questão : Com base na figura ao lado, extraída do livro SISTEMAS OPERACIONAIS MODERNOS, de Andrew S. Tanenbaum, assinale cada uma das afirmações abaixo como (C)erta ou (E)rrada. No caso da afirmativa

Leia mais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica 13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física

Leia mais

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos. Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana e Prof. Dra. Regina Helena Carlucci Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum Tipos e Estrutura System

Leia mais

Sinais. Sinais e fork. Sinais e exec. Segunda aula. Chamada ao sistema fork Chamada ao sistema execve. José Pedro Oliveira

Sinais. Sinais e fork. Sinais e exec. Segunda aula. Chamada ao sistema fork Chamada ao sistema execve. José Pedro Oliveira e chamadas ao sistema fork e exec Segunda aula (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 2006-2007 1

Leia mais

Conceitos básicos e serviços dos Sistemas Operacionais

Conceitos básicos e serviços dos Sistemas Operacionais Conceitos básicos e serviços dos Sistemas Operacionais Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF Tipos de serviços do S.O. Um

Leia mais

Sistemas Operacionais

Sistemas Operacionais Questões... Sistemas Operacionais Processos Implementação e estudo de casos Aula 3 Em que momentos um processo pode ser criado? Como que se cria processos? O que deve ser feito na criação? Como um processo

Leia mais

Segurança em Sistemas Operativos

Segurança em Sistemas Operativos Segurança em Sistemas Operativos André Zúquete Segurança Informática e nas Organizações 1 Sistema Operativo Servidor Aplicação Função no núcleo do sistema operativo (kernel) Virtualizar o hardware Modelo

Leia mais

Controlo de Execução. K&R: Capitulo 3

Controlo de Execução. K&R: Capitulo 3 Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010

Leia mais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ISABELLE NEDILHA OKUMA LUIZ RODOLFO MACHADO MECANISMOS DE MANIPULAÇÃO DE PROCESSSOS EM WINDOWS

Leia mais

Programação de Sistemas em Tempo Real

Programação de Sistemas em Tempo Real BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa

Leia mais

Unix: Processos e o Kernel. Sistemas Operacionais

Unix: Processos e o Kernel. Sistemas Operacionais Unix: Processos e o Kernel O Kernel É um programa especial, uma parte privilegiada do sistema operacional, que roda diretamente sobre o hardware. Ele implementa o modelo de processos do sistema. O kernel

Leia mais

Unix: Processos e o Kernel

Unix: Processos e o Kernel O Kernel Unix: Processos e o Kernel É um programa especial, uma parte privilegiada do sistema operacional, que roda diretamente sobre o hardware. Ele implementa o modelo de processos do sistema. O kernel

Leia mais

Sumário. Ficheiros. Ficheiros

Sumário. Ficheiros. Ficheiros Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções

Leia mais

Segurança em Sistemas Operativos

Segurança em Sistemas Operativos Segurança em Sistemas Operativos André Zúquete Segurança Informática e nas Organizações 1 Sistema Operativo Servidor Aplicação modo utilizador: Execução no modo normal do CPU, sem acesso a instruções privilegiadas

Leia mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos. Gerenciamento de processos Processos Um processo

Leia mais

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF Exercícios Cap I 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) 1.5 1.7, 1.8 e 1.12 Sistemas Operacionais Visão geral e evolução dos SOs Sistema Operacional? Um programa que controla a execução dos programas

Leia mais

3 CONCEITOS DE SISTEMAS OPERACIONAIS

3 CONCEITOS DE SISTEMAS OPERACIONAIS 3 CONCEITOS DE SISTEMAS OPERACIONAIS 3.1 COMPONENTES DO SISTEMA Os Sistemas Operacionais são divididos em algumas partes básicas, conforme ilustrado na Figura 3.1. 1. Gerente de Processos; 2. Gerente de

Leia mais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estrutura dos Sistemas Operacionais. Adão de Melo Neto Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado

Leia mais