introdução*a sistemas* operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf ·...

41
Introdução a Sistemas Operacionais Carlos Eduardo Ba8sta

Upload: others

Post on 08-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Introdução  a  Sistemas  Operacionais  

Carlos  Eduardo  Ba8sta    

Page 2: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Sistema  Operacional  •  é  um  programa  ou  um  conjunto  de  programas  cuja  função  é  gerenciar  os  recursos  do  sistema,  fornecendo  uma  interface  entre  o  computador  e  o  usuário.    –  É  responsável  por  definir  qual  programa  recebe  atenção  do  processador,  gerenciar  memória,  criar  um  sistema  de  arquivos,  etc.    

•  Um  grupo  de  desenvolvedores  da  AT&T  criaram  o  Unix  (UNICS)  em  1969,  sendo  o  primeiro  sistema  operacional  moderno  da  computação.  –  Visavam  solucionar  o  problema  da  incompa8bilidade  de  SOs  de  máquinas  dis8ntas  

Page 3: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Sistema  Operacional  

•  gerenciamento  de  processos;  •  gerenciamento  de  memória;  •  sistema  de  arquivos;  •  entrada  e  saída  de  dados.  

Page 4: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Sistema  Operacional  

•  Tolerância  a  falhas  •  Desempenho  •  Disponibilidade  •  Segurança  •  Confiabilidade  

Page 5: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Sistema  Operacional  

•  Tipos  de  SO  – Real  Time  – Mono/mul8  usuário  – Mono/mul8  tarefa  

Page 6: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 7: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 8: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 9: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 10: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 11: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Mul8programação  •  O  mecanismo  de  interrupções  permite  mul8plexar  o  processador  entre  várias  a8vidades  concorrentes.  –  Entre  um  programa  e  as  entradas/saídas  (I/O),  –  Esta  capacidade  de  alternar  a  execução  pode  ser  estendida  a  mul8plexação  de  vários  programas  residentes  na  memória.  

•  Execução  concorrente  de  vários  programas:  –  Permite  o8mizar  a  u8lização  do  processador  –  ex.:  Programa  P1  acessa  o  disco  e  fica  bloqueado  enquanto  o  controlador  de  disco  funciona;  neste  ínterim,  o  Programa  2  é  executado  pelo  processador  

Page 12: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Memória  Virtual  

•  Suplanta  restrição  imposta  pelo  tamanho  da  memória  _sica,  aumentando  o  grau  de  mul8programação  

•  Propriedade  de  localidade  

Page 13: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

•  Os  Sistemas  Operacionais  atuais  executam  vários  programas  de  forma  concorrente,  cada  um  dos  quais  se  apoderando  da  CPU  por  uma  determinada  fa8a  de  tempo.  

•  O  mecanismo  de  trocas  rápidas  entre  os  programa  é  chamado  de  mul$programação.  

Page 14: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  •  Conceito  

–  Abstração  de  um  programa  em  execução.  

•  As  informações  sobre  o  estado  de  execução  de  um  programa  cons8tuem  o  contexto  de  um  processo.  

•  São  elas:  –  Código  do  programa  –  Dados  armazenados  na  memória  –  Pilha  de  execução  –  Conteúdo  dos  registradores  –  Descritores  dos  arquivos  abertos  

Page 15: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 16: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 17: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos                                          

Pilha  

Heap  

Código  do  Programa  

Dados  globais  

Espaço  de  endereçamento  

único.  

Page 18: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  int  main()    {          int  x,  y,  z;            x  =  f1(10,  20);          z  =  f3(50,  60);            return  0;    }  

Parâmetros  (p1,  p2)  Variáveis  locais  (a,  b)  

int  f1(int  p1,  int  p2)  {          int  a  =  p1  +  p2;          int  b  =  p1  *  p2;            return  a  +  f2(a,  b);  }    

Retorno  da  função  Contador  de  programa  (10324)  

Endereço  10324  

Parâmetros    Variáveis  locais    

Retorno  da  função  Contador  de  programa    

f1()  

f2()  

Faz  o  mesmo  para  f3()  

Apontador  da  pilha  

End.    do  quadro  anterior  

Page 19: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

fork()  

Page 20: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

•  Chamadas  de  sistema  – Meio  pelo  qual  os  programas  de  usuário  conversam  com  o  sistema  operacional.  

– Forma  de  “proteger”  a  máquina  dos  programas  de  usuário.  

– Tipos  de  chamadas:  •  Gerenciamento  de  processos  •  Gerenciamento  de  arquivos  •  Gerenciamento  do  sistema  de  diretório  

Page 21: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  •  O  interior  de  um  shell  

Page 22: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

•  Criação  de  processos  – Quatro  eventos  principais  mo8vam  a  criação  de  processos:  

•  Início  do  sistema.  •  Execução  de  uma  chamada  de  sistema  para  criação  de  processo  (  fork()  )  por  outro  processo.  

•  Requisição  do  usuário.  •  Início  de  um  job  em  lote.  

Page 23: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

•  Término  de  processos  – Condições  de  término  

•  Saída  normal  (voluntária  –  chamada  exit()).    •  Saída  por  erro  (voluntária).  •  Erro  fatal  (involuntário).  •  Cancelamento  por  um  outro  processo  (involuntário  –  chamada  kill()  ).  

Page 24: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

Em  execução  

Pronto  Bloqueado  

1 2

4

3

1.  O  processo  bloqueia  aguardando    uma  E/S.  

2.  O  escalonador  seleciona  outro  processo.  

3.  O  escalonador  seleciona  este  processo.  4.  A  E/S  torna-­‐se  disponível.  

•  Estados  de  um  processo  –  Ciclo  de  vida  

Page 25: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Processos  

Gerenciamento  de  processos   Gerenciamento  de  memória   Gerenciamento  de  arquivos  

Registradores  Contador  de  programa  Palavra  de  estado  do  programa  Ponteiro  de  pilha  Estado  do  processo  Prioridade  Parâmetros  de  escalonamento  Iden8ficador  (ID)  do  processo  Processo  pai  Grupos  do  processo  Sinais  Momento  em  que  o  processo  iniciou  Tempo  usado  da  CPU  Tempo  de  CPU  do  filho  Momento  do  próximo  alarme  

Ponteiro  para  o  segmento  de  código  Ponteiro  para  o  segmento  de  dados  Ponteiro  para  o  segmento  de  pilha  

Diretório-­‐raiz  Diretório  de  trabalho  Descritores  de  arquivo  Iden8ficador  (ID)  do  usuário  Iden8ficador  do  grupo  

�  Implementação  de  processos  

Page 26: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Estado  – Consiste  nos  valores  das  variáveis  do  programa  em  um  dado  momento  durante  sua  execução.  

•  Ações  atômicas  – Um  processo  executa  uma  sequência  de  instruções,  as  quais  são  implementadas  por  uma  ou  mais  ações  indivisíveis,  denominadas  ações  atômicas.  

Page 27: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Histórias  – A  execução  de  um  programa  concorrente  resulta  em  um  entrelaçamento  (interleaving)  de  sequências  de  ações  atômicas  executadas  pelos  processos.  

– Uma  história  é  uma  sequência  de  estados          s0  à  s1...à  sn  pela  qual  passa  um  programa  corrente  em  uma  execução  qualquer.  

Page 28: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Histórias  P1

Begin I1; I2; I3;

End;  

P2 Begin

I4; I5; I6;

End;  

P1&P2 I1; I4; I5; I2; I3; I6;

�  O  número  de  histórias  possíveis  é  de  (n*m)!/(m!)^n  

     Onde,  n    =  número  de  processos  e                            m  =  número  de  instruções  atômicas  em                                      cada  processo.  

Page 29: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Propriedades  – Uma  propriedade  é  um  atributo  válido  para  todas  as  possíveis  histórias  de  um  programa  concorrente.  

– Duas  propriedades  são  desejadas  em  um  soxware  concorrente:  

•  Safety  property  •  Liveness  property  

Page 30: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Safety  property  – Garante  que  o  programa  nunca  entra  em  um  estado  indesejado,  ou  seja,  um  estado  em  que  as  variáveis  tem  valores  indesejados.    

– Falhas  levam  a  um  comportamento  indesejado.  – Exemplos  

•  Ausência  de  deadlock:  Processos  não  deixam  de  executar,    esperando  por  eventos  que  nunca  ocorrem.  

•  Exclusão  mútua:    No  máximo  um  processo  executa  uma  região  crí8ca.  

Page 31: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Estados,  ações,  histórias  e  propriedades  

•  Liveness  property  – Garante  que  o  programa  em  algum  momento  entrará  no  estado  desejado.  

– Falhas  levam  à  ausência  de  um  comportamento  esperado.  

– Exemplo  •  Terminação:  Um  programa  em  algum  momento  terminará.  

•  Entrada  eventual:  Um  processo  aguardando  entrar  na  região  crí8ca.  

 

Page 32: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 33: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*
Page 34: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Ferramentas  

•  Tradutor:  programa  que  transforma  um  programa  fonte  escrito  numa  linguagem  em  um  programa  equivalente  escrito  em  uma  linguagem  diferente;  

•  Interpretador:  tradutor  que  funciona  em  tempo  de  execução.  Estes  programas  traduzem  programas  codificados  em  linguagem  de  alto  nível  para  um  código  intermediário  e  o  coloca  em  execução.  

Page 35: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

•  Pré-­‐processador:  programa  que  transforma  um  programa  escrito  em  uma  linguagem  estendida  em  um  programa  equivalente  escrito  em  linguagem  original;  

•  Montador:  tradutor  que  transforma  um  programa  escrito  em  uma  linguagem  simbólica  (de  baixo  nível)  em  instruções  equivalentes  em  linguagem  de  máquina;  

Page 36: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

•  Linker:  Aglu8nação  de  módulos  objetos  para  composição  de  um  programa  executável.  Carrega  na  memória  principal  um  programa  para  ser  executado.  

•  Depurador:  Permite  acompanhar  a  execução  de  um  programa  e  detectar  erros  

•  Interpretador  de  comandos  ou  shell:  permite  ao  usuário  interagir  com  o  sistema  

Page 37: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

Sistemas  Operacionais  Modernos  

•  Disposi8vos  Fixos  – Windows,  Linux,  OS  X…  

•  Disposi8vos  Móveis  – Android,  iOS,  Windows  Phone,  Symbian,    

Page 38: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

SO  •  Windows  

–  Microsox  –  Windows  10  –  Xbox  OS,  Windows  CE,  Windows  Phone…  

•  OS  X  –  NeXTSTEP  /  BSD  –  Apple  –  XNU  (kernel)  

•  Linux  –  Código  aberto  –  Kernel  monolí8co  –  Todos  os  8pos  de  plataformas  (móveis,  supercomputadores  etc.)  

Page 39: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

SO  -­‐  Móveis  

•  1996:  lançado  o  Palm  OS  2000:  Microsox  lança  o  Pocket  PC2000    

•  2003:  Windows  Mobile    •  2005:  Primeiros  blackberry,  Google  compra  Android    •  2007:  Chegada  do  Phone  OS  no  mercado    •  2008:  Chegada  do  Android    •  2009:  Exis8a  no  mercado  Android,  BlackBerry,  Windows  Mobile,  Samsung  Bada  10,  iPhone,  HP  Web  OS    

•  2010:  Chegada  do  Windows  Phone  7  

Page 40: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

SO    -­‐  Móveis  •  Android  

–  Baseado  em  Linux  (porém  pode  ser  emulado  em  outros  sistemas)  

– Google  /  Open  Handset  Alliance  – Android  TV,  Android  Auto,  Android  Wear...  – Maior  market  share  – Open  source  – Android  SDK  – Gerência  de  memória  RAM  austera  

•  Responsividade  e  economia  de  energia  – OpenGL  

Page 41: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*

SO    -­‐  Móveis  

•  iOS  –  iPhone,  iPod  Touch,  iPad,  Apple  TV  – Core  OS,  Core  Services,  Media,  Cocoa  Touch  – Darwin  (BSD)  /  XNU  – Objec8ve  C  /  iOS  SDK  – Mul8tasking  

•  Windows  Phone  – Windows  CE  –  Windows  Phone