sistemas operacionais aula 02 introducao

25
Prof. Márcio Castro [email protected] INE5611 – Sistemas Operacionais Introdução

Upload: mayse-espindola

Post on 21-Dec-2015

232 views

Category:

Documents


0 download

DESCRIPTION

Sistemas de informação

TRANSCRIPT

Page 1: Sistemas operacionais Aula 02 Introducao

Prof.  Márcio  Castro  [email protected]  

INE5611  –  Sistemas  Operacionais  

Introdução  

Page 2: Sistemas operacionais Aula 02 Introducao

Na  aula  de  hoje  

•  Histórico  dos  Sistemas  Operacionais  •  Conceitos  básicos  de  Sistemas  Operacionais  

INE5611  -­‐  Prof.  Márcio  Castro   2  

Page 3: Sistemas operacionais Aula 02 Introducao

INTRODUÇÃO  

3  

Page 4: Sistemas operacionais Aula 02 Introducao

Introdução  

•  O  que  se  espera  de  um  sistema  de  computação?  – Execução  de  programas  de  usuários  – PermiMr  a  solução  de  problemas  – Problema  de  cada  usuário  será  resolvido  por  um  programa  específico  

•  Programas  – Possuem  muito  em  comum:  acesso  ao  disco,  memória,  E/S,  ...  

– Problema:  programas  podem  apresentar  necessidades  conflitantes  se  uMlizados  simultaneamente  por  um  ou  mais  usuários  (disputa  de  recursos)  

INE5611  -­‐  Prof.  Márcio  Castro   4  

Page 5: Sistemas operacionais Aula 02 Introducao

Introdução  

•  Sistema  Operacional  (S.O.)  –   Camada  de  soHware  colocada  entre  o  hardware  e  os  programas  que  executam  tarefas  para  os  usuários  –   Controla  e  coordena  o  uso  do  hardware  entre  vários  programas  aplicaMvos  e  usuários  

INE5611  -­‐  Prof.  Márcio  Castro   5  

Programas  

Sistema  Operacional  (S.O.)  

Hardware  

Page 6: Sistemas operacionais Aula 02 Introducao

Introdução  

•  Programas  aplicaLvos  – Programas  os  quais  o  usuário  interage  para  resolver  seus  problemas  – Exemplos:  firefox,  word,  adobe  photoshop,  ...  

•  Programas  de  sistema  – Programas  de  base  do  S.O.  que  fornecem  serviços  ou  abstrações  para  os  programas  aplicaMvos  – Exemplos:  gerenciador  de  tarefas  (Windows),  ps  (Linux)  

INE5611  -­‐  Prof.  Márcio  Castro   6  

Page 7: Sistemas operacionais Aula 02 Introducao

Introdução  •  Interação  entre  usuários,  programas  aplicaMvos  e  S.O  

INE5611  -­‐  Prof.  Márcio  Castro   7  

Usuário  1  

Usuário  2  

Usuário  3  

Usuário  n  

Compilador   Editor  de  texto  

Navegador   Jogo  

Sistema  Operacional  (S.O.)    

Hardware  

...

Page 8: Sistemas operacionais Aula 02 Introducao

AplicaMvos  

UMlitários  

Sistema  Operacional  (S.O.)  

Introdução  

•  ObjeLvos  de  um  Sistema  Operacional  – Eficiência:  maximizar  o  uso  do  hardware  (distribuição  dos  recursos)  – Conveniência:  esconder  os  detalhes  de  baixo  nível  (abstração)  

•  Interface  entre          os  usuários  e  o          computador  

INE5611  -­‐  Prof.  Márcio  Castro   8  

Usuário  final  

Hardware  

Programador  

ProjeMsta  S.O.  

Page 9: Sistemas operacionais Aula 02 Introducao

Introdução  

•  Serviços  oferecidos  pelo  S.O.  –   Carregamento/descarregamento  de  programas  na  memória  –   Gerência  e  sistema  de  arquivos  (criar,  ler,  escrever,  ...)  –   UMlização  e  gerência  de  periféricos  (alocação,  leitura,  escrita)  –   Gestão  de  usuários  –   Proteção  entre  usuários  –   Contabilidade:  estadsMcas  e  desempenho  –   Detecção  de  erros:  hardware  e  programas  

INE5611  -­‐  Prof.  Márcio  Castro   9  

Page 10: Sistemas operacionais Aula 02 Introducao

HISTÓRICO  DOS  SISTEMAS  OPERACIONAIS  

10  

Page 11: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  

•  Primórdios  –   S.O.  inexistente  –   Usuário  é  o  programador  e  operador  da  máquina  –   Alocação  do  computador  feito  por  planilha  

•  Problemas  –   Péssima  uMlização  dos  recursos  –   Usuário  era  obrigado  a  ter  um  conhecimento  aprofundado  da  máquina  

INE5611  -­‐  Prof.  Márcio  Castro   11  

Page 12: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  

•  Sistemas  em  lote  (batch)  –   Introdução  de  operadores  de  máquina  profissionais  (usuário  não  era  mais  operador  da  máquina)  

•  Conceito  de  job  –   Programa  a  ser  compilado  e  executado,  juntamente  com  seus  dados  de  entrada  (na  época  eram  cartões  perfurados)  

–   Jobs  eram  organizados  em  lote  (batch)  de  acordo  com  as  suas  necessidades  (ex.  jobs  que  uMlizavam  o  mesmo  compilador,  mesmos  dados  de  entrada,  ...)  

•  Alternância  entre  jobs  – Ainda  era  manual  

INE5611  -­‐  Prof.  Márcio  Castro   12  

Page 13: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  •  Monitor  residente  – Evolução  do  sistema  em  lote  à  sequenciamento  automáLco  de  jobs  

– Programa  que  reside  permanentemente  na  memória  – Controle  da  máquina  é  transferido  de  um  job  a  outro  – Considerado  o  primeiro  S.O.  (rudimentar)  

•  Funcionamento:  – No  início,  o  monitor  residente  inicia  sua  execução  na  máquina  

– Quando  um  job  é  submeLdo,  este  toma  o  controle  da  máquina  (cartões  de  controle)  

– No  fim,  o  controle  retorna  ao  monitor  residente  

INE5611  -­‐  Prof.  Márcio  Castro   13  

Page 14: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  •  Sistemas  mulLprogramados  (mulLtarefa)  –   Problema  do  monitor  residente:  permite  a  execução  de  apenas  um  job  por  vez  

–   MulLprogramação  •  Vários  programas  na  memória  ao  mesmo  tempo  •  Enquanto  um  programa  aguarda  por  um  recurso  (ex.  operação  de  E/S)  outro  programa  é  executado  • Melhor  uLlização  dos  recursos  

14  

P1   P2   P3   P1  

Tempo    

CPU  

Requisição  E/S   Término  E/S  

Com  mulLprogramação  

P1   P2   P3  P1  

Tempo    

CPU  

Requisição  E/S   Término  E/S  

Sem  mulLprogramação  Desperdício  de  CPU  

Page 15: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  

•  Duas  inovações  possibilitaram  o  surgimento  da  mulMprogramação  em  S.Os.  •  Interrupções  –   Permitem  a  sinalização  de  eventos  no  S.O.    

•  Discos  magnéLcos  –   Acesso  randômico  a  diferentes  programas  no  disco  à  melhor  desempenho  em  acessos  de  leitura  e  escrita  

INE5611  -­‐  Prof.  Márcio  Castro   15  

Page 16: Sistemas operacionais Aula 02 Introducao

Histórico  dos  S.Os.  •  Sistemas  de  tempo  comparLlhado  (Lmesharing)  –   É  um  Mpo  de  sistema  mulMprogramado  –   Usuários  interagem  com  o  programa  em  execução  –   Ilusão  de  possuir  a  máquina  dedicada  à  execução  do  seu  programa  • Divisão  do  tempo  de  uso  do  processador  entre  os  usuários  •  Tempo  de  resposta  é  importante  

–   São  os  S.Os.  que  usamos  hoje  em  dia!  INE5611  -­‐  Prof.  Márcio  Castro   16  

Page 17: Sistemas operacionais Aula 02 Introducao

CONCEITOS  BÁSICOS  DE  S.O.  

17  

Page 18: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

•  Estrutura  de  um  S.O.  –   Um  S.O.  não  é  um  bloco  único  e  fechado  de  so9ware  executando  sobre  o  hardware  –   É  composto  por  diversos  componentes  com  objeMvos  e  funcionalidades  específicas  

•  Componentes  básicos  –   Código  de  inicialização  –   Núcleo  –   Drivers  –   Programas  uMlitários  

INE5611  -­‐  Prof.  Márcio  Castro   18  

Page 19: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  •  Estrutura  de  um  S.O.  –   Um  S.O.  não  é  um  bloco  único  e  fechado  de  so9ware  executando  sobre  o  hardware  –   É  composto  por  diversos  componentes  com  objeMvos  e  funcionalidades  específicas  

•  Componentes  básicos  1.   Código  de  inicialização  2.   Núcleo  3.   Drivers  4.   Programas  uMlitários  

INE5611  -­‐  Prof.  Márcio  Castro   19  

Page 20: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

1.   Código  de  inicialização  –   A  inicialização  do  hardware  requer  uma  série  de  tarefas  complexas,  como  reconhecer  os  disposiMvos  instalados,  testá-­‐los  e  configurá-­‐los  adequadamente  para  seu  uso  posterior  –   Outra  tarefa  importante  é  carregar  o  núcleo  do  sistema  operacional  em  memória  e  iniciar  sua  execução  

INE5611  -­‐  Prof.  Márcio  Castro   20  

Page 21: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

2.   Núcleo  –   É  o  coração  do  sistema  operacional,  responsável  pela  gerência  dos  recursos  do  hardware  usados  pelas  aplicações  –   Ele  também  implementa  as  principais  abstrações  uMlizadas  pelos  programas  aplicaMvos  

INE5611  -­‐  Prof.  Márcio  Castro   21  

Page 22: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

3.   Drivers  –   Módulos  de  código  específicos  para  acessar  os  disposiMvos  osicos  –   Existe  um  driver  para  cada  Lpo  de  disposiLvo,  como  discos  rígidos  IDE,  SCSI,  portas  USB,  placas  de  vídeo,  etc.    –   Muitas  vezes  o  driver  é  construído  pelo  próprio  fabricante  do  hardware  e  fornecido  em  forma  compilada  para  ser  acoplado  ao  restante  do  S.O.  

INE5611  -­‐  Prof.  Márcio  Castro   22  

Page 23: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

4.   Programas  uLlitários  –   São  programas  que  facilitam  o  uso  do  sistema,  fornecendo  funcionalidades  complementares  ao  núcleo  –   Exemplos  de  uLlitários  •  Formatação  de  discos  e  mídias  • Configuração  de  disposiMvos  • Manipulação  de  arquivos  •  Interpretador  de  comandos  (terminal)  •  Interface  gráfica  e  gerência  de  janelas  

INE5611  -­‐  Prof.  Márcio  Castro   23  

Page 24: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  

INE5611  -­‐  Prof.  Márcio  Castro   24  

c� Carlos Maziero : Conceitos de hardware

Figura 3: Estrutura de um sistema operacional

5 Conceitos de hardwareO sistema operacional interage diretamente com o hardware para fornecer serviços

às aplicações. Para a compreensão dos conceitos implementados pelos sistemas operaci-onais, é necessário ter uma visão clara dos recursos fornecidos pelo hardware e a formade acessá-los. Esta seção apresenta uma revisão dos principais aspectos do hardware deum computador pessoal convencional.

Um sistema de computação típico é constituído de um ou mais processadores,responsáveis pela execução das instruções das aplicações, uma área de memória quearmazena as aplicações em execução (seus códigos e dados) e dispositivos periféricosque permitem o armazenamento de dados e a comunicação com o mundo exterior, comodiscos rígidos, terminais e teclados. A maioria dos computadores mono-processadosatuais segue uma arquitetura básica definida nos anos 40 por János (John) Von Neumann,conhecida por “arquitetura Von Neumann”. A principal característica desse modeloé a ideia de “programa armazenado”, ou seja, o programa a ser executado reside namemória junto com os dados. Os principais elementos constituintes do computadorestão interligados por um ou mais barramentos (para a transferência de dados, endereçose sinais de controle). A Figura 4 ilustra a arquitetura de um computador típico.

O núcleo do sistema de computação é o processador. Ele é responsável por continu-amente ler instruções e dados da memória ou de periféricos, processá-los e enviar osresultados de volta à memória ou a outros periféricos. Um processador convencionalé normalmente constituído de uma unidade lógica e aritmética (ULA), que realiza oscálculos e operações lógicas, um conjunto de registradores para armazenar dados detrabalho e alguns registradores para funções especiais (contador de programa, ponteirode pilha, flags de status, etc.).

11

Page 25: Sistemas operacionais Aula 02 Introducao

Conceitos  básicos  de  S.Os.  •  Sistemas  monotarefa  vs.  mulLtarefa  –   Sistema  monotarefa:  capaz  de  executar  somente  um  programa  (tarefa)  de  cada  vez.    •  Ex.  MS-­‐DOS  

–   Sistema  mulLtarefa:  capaz  de  executar  vários  programas  (tarefas)  simultaneamente.    •  Ex.  Windows  98  

•  Dois  Lpos  de  sistemas  mulLtarefa  –   Não  preempLvos:  programas  se  executam  do  início  ao  fim  sem  serem  interrompidos  –   PreempLvos:  permite  que  programas  em  execução  sejam  interrompidos  para  que  outros  programas  possam  ser  executados  

INE5611  -­‐  Prof.  Márcio  Castro   25