Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Universitatea din Piteşti
Facultatea de Matematică-Informatică
Structura şi funcţionarea unui sistem de calcul
October 25, 2021
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Cuprins
1 Noţiuni de bază
2 Modelul von Neumann
3 Modelul System Bus (magistrală sistem)
4 Limbaje de programare
5 Funcţionarea sistemelor de calcul
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Un sistem de calcul reprezintă un ansamblu de dispozitive
destinat prelucrării automate a unor informaţii. Prelucrarea se realizează printr-un şir finit de operaţii aritmetice şi logice. Informaţia reprezintă o caracteristică a unui obiect al cunoaşterii care poate fi scrisă sau simbolizată. Pentru a descrie corect un obiect, informaţiile trebuie să fie: consistente: suficient de cuprinzătoare relevante: să furnizeze cunoştintele de care avem nevoie exacte: să constituie o reflectare reală a obiectului oportune: să fie furnizate ı̂n timp util accesibile subiectului. Un ansamblu de informaţii trebuie să fie neredundant (să nu fie furnizată aceeaşi informaţie de mai multe ori sub diverse forme).
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Sistemul de calcul interacţionează cu mediul extern pentru a
prelua anumite informaţii, prelucrează aceste informaţii ı̂ntr-un anumit scop şi furnizarea informaţiile rezultate ı̂n urma prelucrării. Pentru a fi prelucrate cu ajutorul unui sistem de calcul, informaţiile sunt reprezentate cu ajutorul unei combinaţii de simboluri numită cod. Datele sunt elemente constitutive ale informaţiei. În prelucrarea automată ne interesează datele din punct de vedere sintactic, adică din punct de vedere al reprezentării şi organizării lor. Din acest punct de vedere, datele apar ca o succesiune de simboluri sau caractere. Distingem trei categorii de caractere: caractere alfabetice caractere numerice caractere speciale Structura şi funcţionarea unui sistem de calcul Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Datele nu trebuie confundate cu informaţiile: datele privesc
evenimente primare, fiind colectate din diferite situaţii sau locuri şi sunt neorganizate sau neprelucrate ı̂ntr-o formă care să stea la baza luării unor decizii, ı̂n timp ce informaţiile sunt obţinute prin prelucrarea datelor. Datele se pot prelucra manual sau cu echipamente electronice de calcul, de unde şi denumirea de prelucrare automată. Algoritmul este o succesiune finită şi ordonată de operaţii care, pornind de la o mulţime finită de date, conduce la o mulţime finită de rezultate. Termenul de algoritm provine de la numele matematicianului persan Abu Abdullah Muhammad bin Musa al-Khwarizmi (780 - 845).
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Principalele caracteristici ale unui algoritm sunt:
finitudine: orice algoritm bine proiectat se termină ı̂ntr-un numar finit de pasi; claritate: algoritmul trebuie descris clar, fără ambiguităţi; generalitatea: orice algoritm trebuie să rezolve toate problemele dintr-o clasă de probleme; completitudinea: presupune tratarea cazurilor speciale unei probleme. realizabilitatea: orice algoritm trebuie să poata fi codificat ı̂ntr-un limbaj de programare; eficienţa: numărul de operaţii efectuate să fie cât mai mic şi spaţiul de memorie utilizat cât mai redus.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Calculatoarele electronice lucrează pe bază de programe.
Un program este o reprezentare a unui algoritm ı̂ntr-un limbaj de programare. Limbajul de programare este un limbaj artificial destinat descrierii prelucrărilor de date ce urmează a fi realizate de un calculator.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Un sistem de calcul (calculator electronic) reuneşte două
categorii de componente: componente fizice (echipamente de calcul) cunoscute sub numele de hardware; componente logice (programe), prin intermediul cărora sunt utilizate echipamentele, cunoscute sub numele de software. Astfel, calculatorul electronic se defineşte ca un complex fizic de echipamente (hardware) care ı̂mpreună cu un sistem de programe (software) asigură prelucrarea informaţiei pe baza algoritmilor utilizatorului. Sistemul de operare este un ansamblu de programe care realizează gestiunea resurselor unui calculator electronic (sistem de calcul), asigurând funcţionarea acestuia, şi care asigură comunicarea cu utilizatorul.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Modelul von Neumann
Modelul de bază pentru arhitectura unui sistem de calcul a fost introdus de savantul american John von Neumann, ca rezultat al participării sale la construcţia calculatorului ENIAC, ı̂n anii 1944-1945. Acest model este cunoscut ı̂n literatura de specialitate ca arhitectura von Neumann. Modelul von Neumann are ı̂n componenţă cinci unităţi funcţionale: unităţi de intrare unităţi de memorare Unitatea Aritmetică şi Logică (UAL) Unitatea de Comandă şi Control (UCC) unităţi de ieşire
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Unităţile de intrare realizează introducerea
datelor/informaţiilor ı̂n sistemul de calcul şi conversia lor din forma uzuală(numere, texte, imagini, sunete) ı̂n formatul intern (binar). Formatul intern (binar) este utilizat ı̂n construcţia circuitelor electronice care prezintă două stări stabile (nivele de tensiune). Convenţional, cele două stări reprezintă cifrele binare 0 şi 1.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Unităţile de memorie asigură stocarea informaţiei (date şi
programe). O caracteristică importantă a acesteia o reprezintă capacitatea, adică volumul maxim de informaţie pe care-l poate stoca. Unitate de măsură pentru capacitatea memoriei este octetul sau Byte-ul (8 biţi), ı̂mpreună cu multiplii săi: 1 KB (KiloByte) = 210 = 1024 octeţi 1 MB (MegaByte) = 210 KB = 220 octeţi 1 GB (GigaByte) = 210 MB = 230 octeţi 1 TB (TerraByte) = 210 GB = 240 octeţi
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Memoria unui sistem de calcul este formată din:
memoria internă (principală); memoria externă (secundară). În memoria internă se păstrează temporar programele şi datele ce se utilizează la un moment dat de către sistemul de calcul, precum şi rezultatele temporare şi finale. În memoria externă se păstrează programe şi date pe perioadă ı̂ndelungată.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
informaţiei prin operaţii aritmetice şi operaţii logice. Unitatea de Comandă şi Control controlează activitatea ı̂ntregului sistem de calcul, parcurgând etapele: citirea instrucţiunii curente decodificarea instrucţiunilor (identificarea operaţiilor ce trebuie realizate) şi aducerea din memorie a operanzilor execuţia operaţiilor cerute de instrucţiuni
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Unităţile de ieşire realizează transferul rezultatelor prelucrării
către mediul exterior. Rezultatele pot fi reprezentate ı̂n format intern (binar) sau ı̂n format direct utilizabil (numere, texte, grafice, imagini, sunete). Dacă rezultatele sunt destinate acţionării unor echipamente, unitatea de ieşire generează, prin intermediul unor circuite speciale (interfeţe), semnalele necesare acţionării echipamentelor respective.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Cel mai important aspect al modelului von Neumann ı̂l
reprezintă programul stocat. Înainte de apariţia sistemelor de calcul cu program stocat, programele erau stocate pe medii externe cum ar fi cartele perforate. Stocarea programelor alături de date a dus la apariţia compilatoarelor şi a sistemelor de operare. Structura prezentată este structura minimală a unui sistem de calcul. Evident, aceasta poate conţine şi alte elemente care vor duce la ridicarea performanţelor sistemului de calcul dar, elementele prezentate anterior sunt indispensabile funcţionării unui sistem de calcul bazat pe program.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Modelul System Bus reprezintă o reorganizare a modelului
von Neumann care combină: UCC şi UAL ı̂n Unitatea Centrală de Procesare (CPU - Central Processing Unit) unităţile de intrare şi ieşire ı̂n unitatea de intrare/ieşire. Caracteristica principală a modelului System Bus este comunicarea ı̂ntre diferitele componente printr-o cale numită magistrală sistem, care are ı̂n componenţă: magistrala de date (care transportă informaţia transmisă) magistrala de adrese (care identifică unde este trimisă informaţia) magistrala de control (care descrie aspecte ce ţin de modul ı̂n care este trimisă informaţia)
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Fizic, magistralele sunt formate din colecţii de fire grupate pe
funcţii. De exemplu, o magistrală de 32 de biţi are 32 de fire separate, fiecare transmiţând un bit de date. Magistrala de date transportă datele ı̂ntre diferitele componente ale sistemului. O adresă de memorie identifică locaţia de memorie la care sunt stocate datele. În timpul unei operaţii de citire din memorie sau de scriere ı̂n memorie, magistrala de adrese conţine adresa locaţiei de memorie de la care se vor citi datele, respectiv la care se vor scrie datele. Magistrala de control coordonează accesul la magistrala de date şi la magistrala de adrese şi direcţionează datele spre diferite componente. Structura şi funcţionarea unui sistem de calcul Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Limbaje de programare
Una din modalităţile de a comunica cu un sistem de calcul
constă ı̂n utilizarea unui limbaj de programare. Există o mare varietate de limbaje de programare, fapt ce se datorează atât diversificării domeniilor de aplicaţii, precum şi dezvoltării structurii şi tipurilor de sisteme de calcul. Limbajele de programare se pot clasifica ı̂n: limbaje ı̂n cod maşină limbaje de asamblare limbaje de nivel ı̂nalt
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Limbajele de programare ı̂n cod maşină sunt limbaje de nivel
scăzut, descrierea operaţiilor ce urmează a fi executate de sistemul de calcul fiind făcută ı̂n format direct executabil. Limbajul maşină este specific fiecărui tip de sistem de calcul şi se stabileşte ı̂n etapa de proiectare a acestuia. Principalul avantaj al utilizării unui astfel de limbaj ı̂l reprezintă posibilitatea de a exploata la maximum resursele hardware ale unui sistem de calcul. Pe de altă parte, programarea ı̂n cod maşină este laborioasă, presupune descrierea ı̂n detaliu a operaţiilor ce urmează a fi executate şi o bună cunoaştere a arhitecturii şi performanţelor hardware ale sistemului de calcul respectiv.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Limbajele de asamblare sunt limbaje de nivel mediu, ce rămân
apropiate sistemelor de calcul, permiţând exploatarea performanţelor hardware ale acestora. Operaţiile pe care trebuie să le execute sistemul de calcul sunt specificate prin simboluri (mnemonice). Unei instrucţiuni ı̂n limbaj de asamblare ı̂i corespunde o instrucţiune ı̂n limbaj maşină. Programarea utilizând un limbaj de asamblare presupune o foarte bună cunoaştere a resurselor hardware şi software ale sistemului de calcul respectiv. Limbajele de asamblare se utilizează, ı̂n general, ı̂n aplicaţii ce necesită acces direct la resursele hardware ale sistemului de calcul sau viteză mare de execuţie. Programele scrise folosind un limbaj de asamblare nu sunt portabile. Structura şi funcţionarea unui sistem de calcul Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Limbajele de nivel ı̂nalt conţin instrucţiuni care sunt mai
apropiate de utilizator decât de calculator. Complexitatea operaţiilor puse la dispoziţia programatorului este mult mai mare decât ı̂n cazul limbajelor de asamblare. Unei instrucţiuni scrise ı̂n limbaj de nivel ı̂nalt ı̂i corespunde o secvenţă de instrucţiuni ı̂n cod maşină. Fiecare limbaj de programare de nivel ı̂nalt are asociat un set de reguli sintactice care trebuie cunoscute de utilizator (sintaxa limbajului). Limbajele de nivel ı̂nalt sunt portabile, fiind independente de sistemul de calcul. Pentru a executa un program scris ı̂ntr-un limbaj de nivel ı̂nalt pe un anumit calculator, instrucţiunile acestuia trebuie transformate ı̂n cod maşină. Această operaţie se realizează cu ajutorul unui program special, numit translator. Structura şi funcţionarea unui sistem de calcul Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Translatoarele se clasifică ı̂n:
compilatoare interpretoare Compilatoarele realizează conversia unui program scris ı̂ntr-un limbaj de nivel ı̂nalt (program sursă sau cod sursă), ı̂n limbaj maşină. Compilatorul ı̂nlocuieşte fiecare instrucţiune din programul sursă cu secvenţe echivalente de instrucţiuni ı̂n limbaj maşină. Programul obţinut ı̂n urma conversiei se numeşte cod obiect. Operaţia de traducere (conversie) se numeşte compilare. Compilarea se face o singură dată, iar execuţia ori de câte ori este nevoie.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Interpretoarele analizează fiecare instrucţiune din programul
scris ı̂n limbaj de nivel ı̂nalt şi o convertesc ı̂n secvenţa echivalentă de instrucţiuni ı̂n limbaj maşină. Interpretarea presupune traducerea programului instrucţiune cu instrucţiune, ori de câte ori acesta este executat de sistemul de calcul respectiv. Limbajele precum Fortran, Pascal, C, C++ folosesc compilatoare, ı̂n timp ce, interpretarea se aplică ı̂n cazul unor programe sursă scrise ı̂n limbajele Basic, Java. Şi programele scrise utilizând un limbaj de asamblare sunt translatate ı̂n limbaj maşină cu ajutorul unui program special numit asamblor.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Funcţionarea unui sistem de calcul
Funcţionarea unui sistem de calcul este condiţionată de modul
cum lucrează ı̂mpreună componentele sale hardware cu produsele software corespunzătoare. Datele iniţiale, ce urmează a fi prelucrate şi programele se introduc ı̂n sistemul de calcul cu ajutorul unor echipamente numite dispozitivele periferice de intrare, prin intermediul canalelor de intrare/ieşire, fiind transferate ı̂n memoria internă a sistemului de calcul, sub formă binară, ı̂n locaţii identificabile, prin adresele la care au fost memorate.
Structura şi funcţionarea unui sistem de calcul
Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
În general, un program parcurge următoarele etape:
editarea fişierului sursă - constă ı̂n scrierea programului folosind regulile de sintaxă ale editorului de texte corespunzător; compilarea fişierului sursă - ı̂n cadrul acestei etape pot să apară erori datorate ı̂ncălcării regulilor de scriere a programului sursă. Pentru remedierea acestor erori se revine ı̂n etapa de editare a textului programului. În cazul ı̂n care compilatorul nu detectează erori sintactice, el va genera un fişier obiect. editarea legăturilor - etapă ı̂n cadrul căreia un program specializat numit linkeditor, asamblează mai multe module obiect şi generează programul executabil. lansarea ı̂n execuţie - ı̂n această etapă pot să apară erori datorate fie datelor de intrare eronate, fie conceperii greşite a programului. Structura şi funcţionarea unui sistem de calcul Noţiuni de bază Modelul von Neumann Modelul System Bus (magistrală sistem) Limbaje de programare Funcţionarea sistemelor de calcul
Fiecare instrucţiune a programului lansat ı̂n execuţie este
interpretată de UCC, care emite comenzi către: memoria internă, prin care se solicită ca anumite date, localizate prin adresele la care au fost memorate, să fie transferate către UAL pentru execuţia unei anumite operaţii; după efectuarea operaţiei se va specifica adresa de memorie unde se va depune rezultatul UAL căreia i se va solicita execuţia operaţiei specificate prin instrucţiune. După terminarea execuţiei operaţiilor solicitate, rezultatele sunt stocate temporar ı̂n memorie şi transferate mediului extern prin intermediul canalelor de intrare/ieşire către dispozitivele periferice de ieşire.