bazele tehnologiei informa ţi ei curs 10

16
Bazele Tehnologiei Informaţiei Curs 10 Prof. dr. Răzvan Zota ASE Bucureşti Facultatea de Cibernetică, Statistică şi Informatică Economică [email protected] http://zota.ase.ro/bti

Upload: meg

Post on 21-Mar-2016

42 views

Category:

Documents


2 download

DESCRIPTION

Bazele Tehnologiei Informa ţi ei Curs 10. Prof. dr. Răzvan Zota ASE Bucureşti Facultatea de Cibernetică, Statistică şi Informatică Economică [email protected] http:// zota .ase.ro/ bti. Bazele Tehnologiei Informaţiei – partea a 2-a. Noţiuni preliminarii, asambloare, compilatoare, interpretoare - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bazele Tehnologiei Informa ţi ei Curs 10

Bazele Tehnologiei InformaţieiCurs 10

Prof. dr. Răzvan ZotaASE Bucureşti

Facultatea de Cibernetică, Statistică şi Informatică Economică[email protected]

http://zota.ase.ro/bti

Page 2: Bazele Tehnologiei Informa ţi ei Curs 10

2

Bazele Tehnologiei Informaţiei – partea a 2-a

• Noţiuni preliminarii, asambloare, compilatoare, interpretoare

• Microprocesorul• Regiştrii microprocesorului Intel Pentium• Noţiuni de ASM• Memoria şi ierarhia de memorie • Memoria - segmentare şi paginare• Comunicaţii seriale şi paralele

Page 3: Bazele Tehnologiei Informa ţi ei Curs 10

3

Bibliografie

• Bazele tehnologiei informaţiei, F. Năstase, R. Zota – Ed. ASE, 2014

• Intel Architecture Users’ Manual – Intel

Page 4: Bazele Tehnologiei Informa ţi ei Curs 10

4

Conţinut

• Noţiuni preliminarii• Cod-maşină• Asambloare • Interpretoare • Compilatoare

Page 5: Bazele Tehnologiei Informa ţi ei Curs 10

5

Introducere

Date de intrare (I NPUT)

Date de ieşire

(OUTPUT)

PROCESARE

Figura 1. Modelul procesării datelor al lui J ohn von Neumann

Datele:

• Programe (listă de instrucţiuni utilizate într-un anumit scop)

• Date

“Arhitectura HARVARD”

Page 6: Bazele Tehnologiei Informa ţi ei Curs 10

6

Limbaje de nivel înalt şi de nivel jos

• Microprocesorul – limbaj propriu – mulţimea de instrucţiuni maşină – cod-maşină - LLL (Low Level Language)

• HLL (High Level Language) Limbaj de nivel înalt (BASIC, Pascal, FORTRAN, C, C++, Java, Python)

Page 7: Bazele Tehnologiei Informa ţi ei Curs 10

7

Exemplu 

HLL (C) i=j+k;

ASM MOV eax,[12011234]ADD eax,[12011238]MOV [1201123C], eax

Cod binar maşină 0010 0000 0011 10010001 0010 0000 00010001 0010 0011 01001101 0000 1011 10010001 0010 0000 00010001 0010 0011 10000010 0011 1100 00000001 0010 0000 00010001 0010 0011 1100

Page 8: Bazele Tehnologiei Informa ţi ei Curs 10

8

Instrucţiuni cod-maşină

Instrucţiunile maşină pot fi grupate în 4 mari categorii. Ele pot fi instrucţiuni pentru:

1) Transferul şi manipularea datelor;2) Operaţii de intrare/ieşire;3) Transferul controlului programului;4) Controlul maşinii (termină procesarea, resetează

maşina, etc.)

Page 9: Bazele Tehnologiei Informa ţi ei Curs 10

9

Compilatoare şi asambloare– Compilatoarele translatează instrucţiunile HLL în

binar cod maşină pentru a fi direct executate de către computer.

– Asambloarele şi limbajele de asamblare au fost utilizate înainte de apariţia compilatoarelor

– Limbajul de asamblare posedă instrucţiuni cod-maşină ce poartă denumirea de mnemonice (provin de la cuvintele în engleză ce specifică acţiunea lor) precum ADD, MOV, SUB, CMP sau JMP.

– Translatarea unui program HLL se poate face fie prin intermediul unui compilator, fie prin intermediul unui interpretor.

Page 10: Bazele Tehnologiei Informa ţi ei Curs 10

10

EDIT – COMPILE – LINK - LOAD

Editare (EDIT)

Editare de legături

(LI NK)

Figura 2. Schema generală EDIT-COMPI LE-LINK-LOAD

Fişier sursă

Fişier obiect (binar)

Fişier

executabil Î ncărcare

în memorie (LOAD)

Compilare (COMPILE)

Rulează

Page 11: Bazele Tehnologiei Informa ţi ei Curs 10

11

Editarea de legături

• Dimensiunile mari ale programelor de astăzi a condus la împărţirea acestora în mai multe părţi, denumite module.

• Pentru obţinerea unui program executabil, fiecare modul trebuie proiectat, scris şi compilat iar apoi toate componentele rezultate trebuie combinate împreună de un editor de legături (linker sau link editor).

• Acest proces nu implică doar punerea împreună a componentelor, ci presupune rezolvarea referinţelor externe. Atunci când un program este partiţionat în module, sunt frecvente cazurile în care codul dintr-un modul trebuie să facă referire la date sau sub-rutine dintr-un alt modul pereche.

Page 12: Bazele Tehnologiei Informa ţi ei Curs 10

12

Editarea de legături –cont.

• Compilatoarele translatează un singur modul la un moment dat. Atunci când un compilator încearcă să determine echivalentul numeric al acestor referinţe simbolice, va descoperi că nu există valori valide în cadrul modului curent.

• Aceste simboluri nerezolvate sunt denumite referinţe externe şi rămân simbolice (fără o valoare numerică) până în momentul în care editorul de legături rezolvă aceste referinţe.

Interpretoarele oferă o alternativă pentru a rula programe scrise într-un limbaj înalt de programare.

Page 13: Bazele Tehnologiei Informa ţi ei Curs 10

13

Interpretoare

În loc de a translata instrucţiunile de nivel înalt în cod maşină şi de a crea un program executabil, interpretorul citeşte instrucţiunile de nivel înalt una câte una şi le execută folosind o bibliotecă proprie de rutine.

În acest mod, codul executabil nu este generat din codul sursă ci este conţinut (integrat) în cadrul interpretorului.

Interpretorul "vede" codul sursă HLL ca date de intrare care trebuie analizate şi apoi trebuie procesate conform semnificaţiei lor. Avantajele folosirii unui interpretor sunt: pornirea rapidă şi aparenta lipsă a complexităţii legate de compilare şi editare de legături.

Page 14: Bazele Tehnologiei Informa ţi ei Curs 10

14

Interpretoare

Dezavantajul este că operează mai lent; programele compilate au fost întotdeauna superioare ca viteză programelor interpretate.

Este ceva obişnuit ca interpretoarele să convertească instrucţiunile de intrare într-o formă intermediară alcătuită din anumite simboluri, înainte de a se lua o decizie asupra acţiunilor ce vor fi executate (figura 3). Simbolurile generate sunt apoi trecute unui decodificator care va selecta rutina corespunzătoare ce va fi executată.

Uneori interpretorul este văzut ca o "maşină virtuală" deoarece se comportă într-un fel ca o componentă hardware: citeşte instrucţiuni pe rând şi se supune lor. Interpretoarele apropie nivelul execuţiei instrucţiunilor de nivelul programului conceput în limbajul de nivel înalt.

 

Page 15: Bazele Tehnologiei Informa ţi ei Curs 10

15

Interpretoare

Editare

Erori

Figura 3. Modul de lucru al unui interpretor

Fişier sursă

Decodifică, selectează şi execută

Analiză

Rutine de comenzi

Page 16: Bazele Tehnologiei Informa ţi ei Curs 10

16

Interpretor Java

Editare

Applet J ava

Figura 4. Compilarea şi interpretarea Java

Fişier sursă J ava

Compilator

J ava

J ava Byte

codes

I nterpretor

J ava

Browser Web

Fişier HTML

Limbajul de programare Java posedă o modalitate interesantă de compilare şi interpretare ilustrată în figura 4.