01a-sistemi operativi (storia) oper… · 1 sistemi"operavi" storia «preistoria»"...

5
1 Sistemi Opera-vi Storia «Preistoria» I primi computer moderni (19451955) (senza par- di -po meccanico) sfru@avano la tecnologia a valvole ed anche se erano poco poten- ed affidabili, erano di dimensioni enormi e potevano occupare intere stanze Un team di specialis- costruiva, manteneva e programmava la macchina (in linguaggio macchina) Non c'era sistema opera/vo, nemmeno l'assembler, bisognava eseguire un programma per volta Prima dei Sistemi Opera-vi I computer erano len-ssimi e molto costosi Potevano perme@erseli soltanto governi, grossi centri di calcolo o Università Erano molto inaffidabili, in quanto le valvole che li componevano si rompevano spesso Il programma da eseguire veniva inserito ad ogni esecuzione in codice binario a@raverso dei primi-vi le@ori di schede perforate e dopo alcune ore il risultato veniva inviato ad una stampante Personaggi … Howard Aiken, Harward. Harvard MARK1 ; John Von Neumann, Ins-tute for Advanced Study in Princeton. EDVAC; J. P. Eckert e W. Mauchley, University of Pennsylvania. H. Golds-ne, A. Turing. ENIAC ; K. Zuse, Germany. Z3. Macchina di Von Neuman Programma memorizzabile come i da- Istruzioni in memoria: decidere il programma specificando una porzione di memoria Idea di John von Neumann (consulente ENIAC) Proposta di nuovo calcolatore (1945): EDVAC (Electronic Discrete Variable Computer) Nuovo elaboratore completo nel 1952 (IAS, presso Ins-tute for Advanced Studies, Princeton) I primi Sistemi Opera-vi La rivoluzionaria invenzione del transistor determina la nascita degli elaboratori di seconda generazione (19551965) Perme@ono di usare i linguaggi di programmazione quali il Fortran e l'Assembler Si delinea sempre più marcatamente la separazione tra: progehs- (di computer) costru@ori (di computer) operatori (di computer) programmatori personale adde@o al mantenimento (tecnici)

Upload: others

Post on 09-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 01a-Sistemi Operativi (storia) Oper… · 1 Sistemi"Operavi" Storia «Preistoria»" • Iprimi"computer"moderni" (1945

1  

Sistemi  Opera-vi  

Storia  

«Preistoria»  •  I  primi  computer  moderni  

(1945-­‐1955)  (senza  par-  di  -po  meccanico)  sfru@avano  la  tecnologia  a  valvole  ed  anche  se  erano  poco  poten-  ed  affidabili,  erano  di  dimensioni  enormi  e  potevano  occupare  intere  stanze  

•  Un  team  di  specialis-  costruiva,  manteneva  e  programmava  la  macchina  (in  linguaggio  macchina)  

•  Non  c'era  sistema  opera/vo,  nemmeno  l'assembler,  bisognava  eseguire  un  programma  per  volta  

Prima  dei  Sistemi  Opera-vi  •  I  computer  erano  len-ssimi  e  

molto  costosi  •  Potevano  perme@erseli  soltanto  

governi,  grossi  centri  di  calcolo  o  Università  

•  Erano  molto  inaffidabili,  in  quanto  le  valvole  che  li  componevano  si  rompevano  spesso  

•  Il  programma  da  eseguire  veniva  inserito  ad  ogni  esecuzione  in  codice  binario  a@raverso  dei  primi-vi  le@ori  di  schede  perforate  e  dopo  alcune  ore  il  risultato  veniva  inviato  ad  una  stampante  

Personaggi  …  •  Howard  Aiken,  Harward.  Harvard  

MARK-­‐1  ;  •  John  Von  Neumann,  Ins-tute  for  

Advanced  Study  in  Princeton.  EDVAC;  

•  J.  P.  Eckert  e  W.  Mauchley,  University  of  Pennsylvania.  H.  Golds-ne,  A.  Turing.  ENIAC  ;  

•  K.  Zuse,  Germany.  Z3.  

Macchina  di  Von  Neuman  •  Programma  memorizzabile  

come  i  da-  •  Istruzioni  in  memoria:  decidere  

il  programma  specificando  una  porzione  di  memoria  

•  Idea  di  John  von  Neumann  (consulente  ENIAC)  

•  Proposta  di  nuovo  calcolatore  (1945):  EDVAC  (Electronic  Discrete  Variable  Computer)  

•  Nuovo  elaboratore  completo  nel  1952  (IAS,  presso  Ins-tute  for  Advanced  Studies,  Princeton)  

I  primi  Sistemi  Opera-vi  •  La  rivoluzionaria  invenzione  del  transistor  determina  la  nascita  degli  elaboratori  di  

seconda  generazione  (1955-­‐1965)    •  Perme@ono  di  usare  i  linguaggi  di  programmazione  quali  il  Fortran  e  l'Assembler  •  Si  delinea  sempre  più  marcatamente  la  separazione  tra:  

•    -­‐  progehs-  (di  computer)  •    -­‐  costru@ori  (di  computer)  •    -­‐  operatori  (di  computer)  •    -­‐  programmatori  •    -­‐  personale  adde@o  al  mantenimento  (tecnici)  

Page 2: 01a-Sistemi Operativi (storia) Oper… · 1 Sistemi"Operavi" Storia «Preistoria»" • Iprimi"computer"moderni" (1945

2  

Sistemi  batch  •  Per  eseguire  dei  programmi  (o  come  venivano  chiama-  job),  un  programmatore  

doveva  scrivere  il  proprio  programma  su  carta,  trasferirlo  su  schede,  caricarlo  nel  computer,  aspe@are  che  il  computer  avesse  eseguito  il  calcolo  e  quindi  stampare  il  risultato  

•  Tale  operazione  era  molto  dispendiosa  in  fa@ori  di  tempo  •  Si  ado@ò  la  soluzione  del  sistema  batch  (a  lo3):  l'idea  di  base  era  quella  di  

dividere  i  tre  lavori,  ovvero  il  caricamento  dei  da-,  il  calcolo  e  la  stampa  

Batch:  vantaggi  

•  Ridurre  il  tempo  raggruppando  lavori  simili  (Fortran,  Assembler,  COBOL)  

•  Sequenzializzazione  automa-ca  dei  Job:  automa-camente  il  controllo  passa  da  un  Job  al  successivo  

•  Caricamento  automa-co  del  compilatore  •  Caricamento  automa-co  dell'assemblatore  

Batch:  funzionamento  •  L'idea  è  quella  di  impilare  le  schede  perforate  in  un  vassoio  di  input  di  un  

calcolatore  di  basso  costo  che  ha  solo  il  compito  di  trasferire  i  programmi,  dello  stesso  linguaggio,  su  nastro  magne-co  in  modo  sequenziale  

•  Ogni  volta  che  una  bobina  è  completata,  viene  montata  sul  calcolatore  centrale,  il  main.  A  sua  volta  il  main  scrive  l'output  in  modo  sequenziale  su  un  altro  nastro  magne-co  

•  Il    nastro  viene  montato  su  di  un  altro  computer  di  basse  prestazioni  per  trascrivere  l'output  su  carta,  che  verrà  consegnata  al  programmatore  

IBM  1401  –  IBM  7094  •  Le  macchine  più  u-lizzate  negli  anni  (‘60)  per  implementare  

sistemi  batch  erano    –  IBM  1401,  per  il  caricamento  dei  da-  e  la  stampa  –  IBM  7094  per  il  calcolo  (macchina  più  potente  e  costosa)  

•  I  sistemi  opera-vi  -pici  per  ques-  elaboratori,  per  lo  più  programma-  in  FORTRAN  e  in  Assembler  erano  il  FMS  (Fortran  Monitor  System)  e  l'IBSYS  

•  Il  Sistema  Opera-vo  di  ques-  Mainframe  doveva  erogare  pochi  semplici  servizi:  ges-one  dell'input/output,  interpretazione  dei  comandi  contenu-  nelle  schede  controllo  e  controllo  dell'esecuzione  di  programmi,  sia  quelli  lancia-  dall'utente,  sia  le  u-lità  di  sistema  

IBM  1401   IBM  7094  

Page 3: 01a-Sistemi Operativi (storia) Oper… · 1 Sistemi"Operavi" Storia «Preistoria»" • Iprimi"computer"moderni" (1945

3  

I  primi  Sistemi  Opera-vi  

•  Durante  l'esecuzione  dei  programmi,  su  nastro  magne-co,  vengono  esegui-  anche  altri  programmi  di  ges-one  per  l'esecuzione  del  compilatore  Fortran,  dell'assemblatore  e  per  il  corre@o  caricamento  (delle  istruzioni  e  dei  da-)  dei  programmi  scrih  dai  programmatori  

•  Tali  operazioni  di  ges-one  vengono  fornite  da  uno  speciale  programma,  il  primo  rudimentale  sistema  opera-vo:  monitor  residente  

La  terza  generazione  •  L’avvento  dei  circui-  integra-  (IC)  determinò  la  nascita  dei  

computer  di  terza  generazione  (1965-­‐80)  e,  di  conseguenza,  dei  nuovi  Sistemi  Opera-vi  

•  Nello  stesso  periodo  i  Sistemi  Opera-vi  iniziarono  a  supportare  il  DMA  e  lo  SPOOL  –  Il  DMA  (Direct  Memory  Access)  è  il  sistema  che  perme@e  di  trasferire  interi  blocchi  di  da-  da  memoria  secondaria  a  memoria  centrale  in  modo  completamente  indipendente  dal  processore,  il  quale  può,  nel  fra@empo,  eseguire  altre  operazioni  

–  Lo  SPOOL  (Simultaneous  Peripheral  Opera-ons  On  Line)  è  un  sistema  che  perme@e  di  ges-re  in  maniera  efficiente  le  code  di  job  di  stampa  

L’IBM  System/360  

•  Nell'aprile  del  '64  l'IBM  presentò  una  famiglia  di  computer  chiamata  IBM  System/360,  prima  realizzazione  di  una  ne@a  dis-nzione  tra  archite@ura  hardware  e  implementazione  

•  Tuh  gli  elaboratori  della  suite,  che  andavano  da  piccole  macchine  a  grandi  Mainframe  u-lizzavano  varian-  dello  stesso  Sistema  Opera-vo,  l'OS/360,  che  supportava  sia  il  calcolo  scien-fico  che  quello  commerciale  

•  Tu@avia  questa  eccessiva  diversificazione  tra  i  diversi  computer  rese  difficile  scrivere  codice  efficiente  che  rispe@asse  tuh  i  requisi-  che  erano  in  confli@o  tra  di  loro  

•  Il  risultato  fu  un  Sistema  Opera-vo  enorme  e  molto  complesso  scri@o  da  migliaia  di  programmatori.  OS/360  conteneva  cen-naia  di  errori  che  resero  necessarie  diverse  revisioni.  Purtroppo  ogni  nuova  versione  correggeva  alcuni  problemi,  introducendone  però  degli  altri  

La  mul-programmazione  •  Nell’OS/360  e  in  mol-  altri  Sistemi  Opera-vi  dell'epoca  venne  

implementata  la  mul/programmazione,  che  rendeva  possibile  la  presenza  di  più  programmi  in  memoria  contemporaneamente  

•  Quando  un  job  in  esecuzione  aveva  bisogno  di  effe@uare  una  operazione  di  I/O  il  Sistema  Opera-vo  lo  sospendeva  e  al  suo  posto  faceva  girare  un  altro  job  

•  Quando  l'operazione  di  I/O  si  concludeva  il  primo  job  tornava  pronto  all'esecuzione  e  a@endeva  il  suo  turno  a@endendo  la  sospensione  di  uno  degli  altri  

•  Questo  rendeva  necessaria  la  presenza  di  hardware  specializzato  per  proteggere  i  programmi  dalle  reciproche  interferenze  

Il  Timesharing  (1)  

•  Ogni  utente  ha  un  terminale  proprio  collegato  al  calcolatore  centrale.  

•  Ad  ogni  programma  viene  assegnato  un  intervallo  di  tempo  durante  il  quale  le  sue  istruzioni  vengono  eseguite  dalla  CPU  

•  Scaduto  tale  intervallo  di  tempo,  il  processore  con-nua  (inizia)  l'esecuzione  delle  istruzioni  di  un  altro  programma  per  la  durata  del  prossimo  intervallo  di  tempo  

Il  Timesharing  (2)  •  Nel  1962  venne  realizzato  al  MIT  il  primo  sistema  di  

-mesharing  su  un  IBM  7094:  il  CTSS  (Compa-ble  Time  Sharing  System)  

•  Fu  in  realtà  il  MULTICS  la  vera  rivoluzione.  Venne  sviluppato  congiuntamente  dal  MIT,  dalla  General  Electric  e  dai  Bell  Labs,  ed  era  in  grado  di  supportare  cen-naia  di  uten-  in  -mesharing  

•  La  realizzazione  fu  però  molto  più  complessa  del  previsto,  tanto  che  i  Bell  Labs  abbandonarono  il  proge@o  

•  Tu@avia  Mul-cs  introdusse  molte  nuove  idee  che  influenzarono  non  poco  i  successivi  Sistemi  Opera-vi  

Page 4: 01a-Sistemi Operativi (storia) Oper… · 1 Sistemi"Operavi" Storia «Preistoria»" • Iprimi"computer"moderni" (1945

4  

UNIX  •  UNIX  fu  proge@ato  a  par-re  dal  1969  da  un  gruppo  di  ricercatori  

della  AT&T  presso  i  Bell  Labs,  tra  cui  erano  presen-  Ken  Thompson  (che  lavorò  anche  al  proge@o  Mul-cs),  Dennis  Ritchie  e  Douglas  McIlroy  

•  Esso  prese  notevole  spunto  dal  padre  Mul-cs,  e  grazie  all'ohmo  lavoro  di  queste  persone  divenne  un  sistema  molto  interahvo,  affidabile  e  ricco  di  funzionalità  

•  Vennero  sviluppate  anche  molte  varian-  di  UNIX,  come  il  System  V,  BSD  (Berkley  Sozware  Distribu-on),  Minix  (usato  in  ambito  didahco)  e  successivamente  (sulla  base  di  MINIX  e  UNIX)  l'ormai  famosissimo  Linux  sviluppato  dallo  studente  finlandese  Linus  Torvalds.  

I  Personal  Computer  (1)  •  Negli  gli  anni  '80  grazie  alla  tecnologia  LSI  (large  scale  

integra-on)  la  costruzione  di  chip  integra-  divenne  massiccia  e  portò  all'abbahmento  dei  prezzi  dell'hardware,  facendo  sorgere  l'era  del  Personal  Computer  

•  Queste  macchine  erano  piccole,  economiche  ed  avevano  prestazioni  simili  a  quelle  dei  calcolatori  medio-­‐grandi  di  10-­‐20  anni  prima  

•  La  diffusione  commerciale  del  computer  ha  dato  impulso  notevole  allo  sviluppo  di  interfacce  “friendly”,  che  siano  di  facile  u-lizzo  anche  per  chi  non  sia  un  esperto  del  se@ore.  

I  Personal  Computer  (2)  

•  I  primi  modelli  erano  dota-  di  Sistemi  Opera-vi  monoutente  con  accesso  interahvo  e  supporto  al  -mesharing  

•  Il  più  importante  tra  i  primi  Sistemi  Opera-vi  per  Personal  computer  era  il  CP/M-­‐80  della  Digital  Research  per  le  CPU  8080  /  8085  /  Z-­‐80.  Era  basato  sui  Sistemi  Opera-vi  della  Digital  Equipment  Corpora-on  specialmente  quelli  per  l'archite@ura  PDP-­‐1  

•  MS-­‐DOS  (o  PC-­‐DOS  quando  fornito  da  IBM)  era  originariamente  basato  proprio  sul  CP/M-­‐80  

Microsoz  vs  Apple  (1)  •  Steve  Jobs  era  uno  dei  pochi  che  credeva  nell'idea  del  Personal  

Computer  •  All'epoca  era  difficile  immaginare  cosa  potesse  farsene  una  

persona  di  un  computer  in  casa.  Egli  invece  con-nuò  per  la  sua  strada  fondando  Apple  Computer  Inc.  nel  1976  assieme  a  Steve  Wozniak  e  Ronald  Wayne  

•  Jobs  era  convinto  che  il  futuro  del  Personal  Computer  sarebbe  stato  legato  all'interfaccia  grafica.  E  così,  ispirandosi  a  quella  sviluppata  da  Xerox  qualche  anno  prima  (da  Doug  Engelbart),  Apple  lanciò  nel  1983  Lisa  OS  il  primo  sistema  opera-vo  per  Personal  Computer  con  interfaccia  grafica  e  padre  di  MAC  OS  (1984)  per  Macintosh  

Microsoz  vs  Apple  (2)  

•  La  GUI  (Graphical  User  Interface)  fu  una  rivoluzione  tanto  che  di  lì  a  poco  Microsoz  avrebbe  commercializzato  Windows  (1985)  e  sarebbe  nato  l'X  Window  System  in  ambiente  Unix  (1984).    

•  All'inizio  Windows  non  era  definibile  Sistema  Opera-vo:  era  piu@osto  un'estensione  di  MS-­‐DOS.  Fu  con  il  rilascio  di  Windows  3.0,  nel  1990,  che  Microsoz  si  impose  sul  mercato.    

•  A  par-re  da  Windows  3.1  fu  introdo@o  il  supporto  alla  mul-medialità,  mentre  con  l'introduzione  di  Windows  95  si  passò  defini-vamente  dal  calcolo  a  16  bit  a  quello  a  32  bit.  

I  Sistemi  Opera-vi  di  rete  (1)  •  Un  fenomeno  interessante  che  iniziò  a  prendere  piede  da  

metà  degli  anni  '80  fu  lo  sviluppo  delle  re-  di  calcolatori,  fenomeno  che  ha  poi  portato  all'incredibile  crescita  di  Internet  

•  Nacquero  così  i  Sistemi  Opera/vi  di  rete  e  i  Sistemi  Opera/vi  distribui/  

•  I  primi  altro  non  sono  che  normali  Sistemi  Opera-vi  ai  quali  vengono  aggiun-  i  sozware  per  il  collegamento  a  macchine  remote  e  quindi  alle  rela-ve  risorse  condivise  come  file  e  stampan-  

•  I  secondi  sono  Sistemi  Opera-vi  che  girano  su  sistemi  a  più  processori  oppure  che  inviano  i  processi  da  elaborare  ad  altri  computer  della  rete  

Page 5: 01a-Sistemi Operativi (storia) Oper… · 1 Sistemi"Operavi" Storia «Preistoria»" • Iprimi"computer"moderni" (1945

5  

I  Sistemi  Opera-vi  di  rete  (2)  

•  I  Sistemi  Opera-vi  distribui-  sono  dota-  di  par-colari  poli-che  di  scheduling  che  perme@ono  una  efficace  allocazione  dei  processi  tra  le  CPU  disponibili.  Inoltre  anche  il  sistema  di  archiviazione  (file  system)  è  unico,  anche  se  in  realtà  è  distribuito  tra  vari  nodi  della  rete  

•  Esempi  di  sistemi  di  rete  sono  tu@e  le  versioni  di  Windows  dalla  NT  3.1  in  poi,  mentre  UNIX  e  deriva-  fanno  parte  di  entrambe  le  categorie  in  quanto  supportano  entrambe  le  tecnologie  

Mac  OS  X  

Windows  8   Ubuntu  12.10  

iOS  7   Android  4.3  Jelly  Bean