Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Teoria capítol 1, Apuntes de Introducción a la Informática

Asignatura: Fonaments d'informàtica, Profesor: , Carrera: Enginyeria en Electrònica Industrial i Automàtica (GEI), Universidad: UAB

Tipo: Apuntes

Antes del 2010

Subido el 30/07/2008

sergiprc
sergiprc 🇪🇸

4

(29)

494 documentos

1 / 14

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Fonaments d'informàtica
1. Conceptes bàsics de programació
Índex del tema
Objectius..................................................................................................................................1
1.1. Programació. Sistemes programables.............................................................................1
1.1.1. Tipus de sistemes programables..............................................................................2
1.1.2. Estructura d'un ordinador..........................................................................................2
1.2. Maquinari d'un ordinador..................................................................................................2
1.2.1. La memòria................................................................................................................3
1.2.2. La CPU......................................................................................................................5
1.2.3. Instruccions de la CPU..............................................................................................6
1.2.4. Cóm funciona la CPU?..............................................................................................8
1.3. Programari........................................................................................................................8
1.3.1. Llenguatge màquina..................................................................................................9
1.3.2. Llenguatge assembler o ensamblador......................................................................9
1.3.3. Llenguatge d’alt nivell..............................................................................................10
1.3.4. Sistema Operatiu (SO)............................................................................................11
1.3.5. Classificació del programari....................................................................................13
Objectius
1. Conèixer els principis bàsics d'un ordinador i del seu funcionament
2. Conèixer les parts bàsiques d'un ordinador.
3. Saber que són els llenguatges de programació.
4. Conèixer els conceptes de maquinari i programari.
1.1. Programació. Sistemes programables.
Avui dia estem envoltats d'aparells que són “programables”. Rellotges, mòbils, equips multimèdia,
ordinadors, etc. I el que ens espera en aquest camp!
Però, què significa programable? Què es programar? I, què és un programa?
Entenem per programació el fet d'aconseguir que un sistema programable faci la funció desitjada
a través d’uns programes.
Un sistema direm que es un sistema programable quan pot modificar el seu comportament
modificant unes dades d'entrada o bé, modificant el programa.
Dada és la representació informàtica de una informació del món real.
Les dades d'entrada són informacions que li donem al sistema. La forma de donar-li les dades pot
ser molt diversa però una de les més habituals és mitjançant un teclat o botonera.
Com podem veure, tot gira al voltant del “programa”. Què és un programa? Una seqüència finita
d'instruccions que, seguides una a una pel sistema programable, fan que aquest es comporti de la
manera desitjada.
Què és una instrucció? És una de les ordres que el sistema programable entén i “sap fer”. Cada
sistema programable el seu propi conjunt d'instruccions, a partir del qual, es poden construir
programes (programar).
El conjunt de normes sintàctiques i semàntiques, juntament amb el conjunt d'instruccions, formen els
anomenats llenguatges de programació, de la mateixa manera que el conjunt de normes
sintàctiques, normes semàntiques i paraules formen els llenguatges que fem servir per comunicar-
nos (com pot ser el català, el castellà, l'anglès, etc.)
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Vista previa parcial del texto

¡Descarga Teoria capítol 1 y más Apuntes en PDF de Introducción a la Informática solo en Docsity!

Fonaments d'informàtica

1. Conceptes bàsics de programació

Índex del tema Objectius.................................................................................................................................. 1 1.1. Programació. Sistemes programables............................................................................. 1 1.1.1. Tipus de sistemes programables.............................................................................. 2 1.1.2. Estructura d'un ordinador.......................................................................................... 2 1.2. Maquinari d'un ordinador.................................................................................................. 2 1.2.1. La memòria................................................................................................................ 3 1.2.2. La CPU...................................................................................................................... 5 1.2.3. Instruccions de la CPU.............................................................................................. 6 1.2.4. Cóm funciona la CPU?.............................................................................................. 8 1.3. Programari........................................................................................................................ 8 1.3.1. Llenguatge màquina.................................................................................................. 9 1.3.2. Llenguatge assembler o ensamblador...................................................................... 9 1.3.3. Llenguatge d’alt nivell.............................................................................................. 10 1.3.4. Sistema Operatiu (SO)............................................................................................ 11 1.3.5. Classificació del programari.................................................................................... 13

Objectius

  1. Conèixer els principis bàsics d'un ordinador i del seu funcionament
  2. Conèixer les parts bàsiques d'un ordinador.
  3. Saber que són els llenguatges de programació.
  4. Conèixer els conceptes de maquinari i programari.

1.1. Programació. Sistemes programables.

Avui dia estem envoltats d'aparells que són “programables”. Rellotges, mòbils, equips multimèdia, ordinadors, etc. I el que ens espera en aquest camp! Però, què significa programable? Què es programar? I, què és un programa? Entenem per programació el fet d'aconseguir que un sistema programable faci la funció desitjada a través d’uns programes. Un sistema direm que es un sistema programable quan pot modificar el seu comportament modificant unes dades d'entrada o bé, modificant el programa. Dada és la representació informàtica de una informació del món real. Les dades d'entrada són informacions que li donem al sistema. La forma de donar-li les dades pot ser molt diversa però una de les més habituals és mitjançant un teclat o botonera. Com podem veure, tot gira al voltant del “programa”. Què és un programa? Una seqüència finita d' instruccions que, seguides una a una pel sistema programable, fan que aquest es comporti de la manera desitjada. Què és una instrucció? És una de les ordres que el sistema programable entén i “sap fer”. Cada sistema programable té el seu propi conjunt d'instruccions, a partir del qual, es poden construir programes (programar). El conjunt de normes sintàctiques i semàntiques, juntament amb el conjunt d'instruccions, formen els anomenats llenguatges de programació , de la mateixa manera que el conjunt de normes sintàctiques, normes semàntiques i paraules formen els llenguatges que fem servir per comunicar- nos (com pot ser el català, el castellà, l'anglès, etc.)

Conceptes bàsics de programació Hi ha infinitat de llenguatges de programació de la mateixa manera que tenim milers de idiomes en el món. Uns molt habituals i d'altres utilitzats per minories (sovint, grups de recerca) Així com cada idioma té el seu propi vocabulari, cada llenguatge de programació té el seu conjunt propi d'instruccions.

1.1.1. Tipus de sistemes programables

Segons la complexitat del sistema programable podem diferenciar:

  • Sistema de propòsit específic : Destinat a una tasca molt específica. Per exemple un vídeo, rentaplats, microones, calefacció o oscil·loscopi digital. La programació habitual en aquests tipus d'aparells consisteix en modificar les dades d'entrada. Són sistemes anomenats parametritzables, no el modifiquem el programa si no que canviem el valor del paràmetres (dades d'entrada). Per exemple, quan programem un vídeo per a que gravi un canal a un hora d'un dia concret, no estem fent el programa que aconsegueix gravar les ones electromagnètiques que rep l'aparell en una cinta magnètica. El que estem fent es dir-li al programa que ho fa que ha de gravar el canal 3, el dia 22 de febrer entre les 15:00 i les 18: en baixa qualitat. Només hem fet que el que sap fer l'aparell ho faci quan volem.
  • Sistema de propòsit general : És aquell sistema que, a priori, es pot dedicar a qualsevol tasca. Inicialment l'aparell no serveix per a res, i és mitjançant la programació, que aconseguim que faci la tasca que ens interessa. L'exemple per excel·lència és l'ordinador. En funció del programa que està executant el sistema es comporta com una màquina especialitzada en una tasca, és el que s'anomena màquina virtual. Podem aconseguir que un ordinador sigui un aparell de vídeo, un editor de publicacions, un reproductor de CD's, un telèfon, una comptabilitat, un simulador de vol, etc. Nosaltres, a partir d'ara, ens centrarem en aquests sistemes de propòsit general i, en concret, en els ordinadors.

1.1.2. Estructura d'un ordinador

En un ordinador podem distingir dues parts fonamentals:

  • El maquinari (hardware): és la part física de l'ordinador, el que podem tocar amb les mans. Bàsicament són circuits electrònics integrats i alguns dispositius de caire més mecànic, encabits dins unes caixes habitualment metàl·liques o de plàstic.
  • El programari (software): és el conjunt de programes que permeten que l'ordinador faci tasques específiques i molt diverses. 1.2. Maquinari d'un ordinador Tots els ordinadors actuals tenen la mateixa arquitectura (arquitectura de Von Neumman) i estan composts dels mòduls funcionals que podem veure a la il·lustració 1. Il·lustració 1 Components funcionals d'un ordinador Dispositius d'entrada CPU

memòria Dispositius de sortida Emmagatzemament massiu

Conceptes bàsics de programació Amb això, la informació que podem guardar es del tipus 0 o 1, fals o cert, no o sí. Però, si ajuntem més d'una cel·la d'aquestes, podrem tenir més possibilitats d'emmagatzemament. Per exemple, si ajuntem dos cel·les tindrem les següents combinacions 00, 01, 10 i 11, per tant podrem guardar informacions que puguin tenir 4 valors diferents. Amb tres cel·les tindrem 8 combinacions diferents, amb 4 en tindrem 16, etc. En general, si ajuntem n cel·les tindrem 2n combinacions diferents (veure taula 1 ). A la taula 2 podem veure les 16 combinacions quan fem servir 4 cel·les. També hi podem veure les combinacions de ceros i uns com números escrits en el sistema de numeració en base 2 (binari) en lloc del sistema en base 10 (decimal) al qual estem habituats. En el món dels ordinadors, a aquestes cel·les de memòria que representen dígits binaris se les anomena bit ( bi nary digi t ). Bit es defineix com la unitat mínima d'informació en un ordinador. El bit s'abreuja amb la lletra b (minúscula). Agrupant 8 bits tenim l'anomenat byte , el qual és la unitat mínima d'emmagatzemament a la memòria i, per tant, la unitat que es fa servir per mesurar la capacitat dels dispositius d'emmagatzemament. S'abreuja amb la lletra B (majúscula). Per tant, podem veure la memòria com un dispositiu on es pot escriure o llegir bytes. La memòria és un magatzem de bytes, però està ordenat. Cada byte s'emmagatzema en una “caixa” de memòria que s'anomena posició de memòria. Cada caixa porta un número identificador, de manera que podem dir, per exemple, “guarda aquest byte a la caixa número 345”. Més tard podrem recuperar el byte dient “dona'm el byte de la caixa número 345”. Aquest número que identifica la posició de memòria reb el nom d'adreça de memòria (ja que, igual que la adreça postal identifica un habitatge, l'adreça de memòria identifica una posició). Parlant correctament diríem “grava aquest byte a l'adreça o posició de memòria 345” o “llegeix el byte de l'adreça o posició de memòria 345”. Les adreces de memòria van des de la zero fins la capacitat de la memòria que, sovint, és una potència de dos. El bloc d'informació que es transfereix en una única operació entre la CPU i la memòria s'anomena word i pot ser 1, 2, 4 o 8 bytes consecutius. Coincideix habitualment amb el tamany dels blocs d'informació que la CPU sap tractar. Segur que has sentit a parlar de CPU's de 16 bits, de 32 bits, de 64 bits. Habitualment fem servir per les unitats capacitat en potències de 10 ja que nosaltres pensem en sistema decimal (de fet per que des de petits ens han ensenyat el sistema decimal i no un altre). Així tenim per exemple el decilitre, el mililitre, el hectolitre, etc. (Veure taula 3 ). De manera semblant mesurem la capacitat de les memòries i dispositius d'emmagatzemament fent servir potencies de 2 ja que els ordinadors fan servir el sistema binari. Pots veure les unitats més habituals a la taula 4. Combinació Número binari Número decimal 0000 0 0 0001 1 1 0010 10 2 0011 11 3 0100 100 4 0101 101 5 0110 110 6 0111 111 7 1000 1000 8 1001 1001 9 1010 1010 10 1011 1011 11 1100 1100 12 1101 1101 13 1110 1110 14 1111 1111 15 Taula 2 Combinacions de 4 cel·les de memòria Bytes bits Nombre de combinacions diferents 1 8 256 2 16 65. 4 32 4.294.967. 8 64 18.446.744.073.709.551. Taula 1 Nombre combinacions diferents en funció del número de bits que fem servir

Fonaments d'informàtica Actualment, la capacitat de la memòria de l'ordinador tipus PC de sobretaula està a l'ordre dels megabytes (256MB, 512MB com a valors habituals), en els servidors i estacions de treball està a les unitats de gigabyte (1 o 2 gigabytes). La capacitats del discos durs està a les desenes i centenes de gigabytes en un sol dispositiu. Però la capacitat de gestió dels ordinadors tipus servidors de bases de dades arriba als terabytes. Per tant, podem concloure que una memòria electrònica només pot emmagatzemar combinacions de ceros i uns. Per emmagatzemar la informació que nosaltres volem tractar, números enters, naturals, reals, colors, lletres, paraules, formes, etc., haurem d'establir una correspondència entre cada combinació de ceros i uns amb un dels valors que volem guardar. La correspondència entre els ceros i uns i els números naturals és immediata ja que podem considerar la combinació com un número en binari. Per a la resta d'informacions que no són números naturals tindrem que pensar altres correspondències. Afortunadament ja hi ha hagut molta gent que ha pensat correspondències que han esdevingut estàndards internacionals.

1.2.2. La CPU

La CPU és el dispositiu electrònic més complex dins un ordinador ja que és la part encarregada d'executar els programes a la màxima velocitat possible i de coordinar tota la resta de dispositius que formen l'ordinador. A la il·lustració 2 podem veure com és una CPU per dintre a grans blocs. La unitat de control (UC) és la part encarregada de l'execució de les instruccions del programa i de la coordinació de la resta de mòduls. Els registres són elements que permeten emmagatzemar les dades que en cada moment la CPU està utilitzant. Per exemple, per fer una suma de dos números, la CPU els ha de tenir guardats en dos registres i el resultat el deixarà de nou en un registre. Podríem dir que és una memòria dins de la pròpia CPU. És una memòria molt petita (alguna desena de registres) però que és capaç de anar a la mateixa velocitat de la CPU. Hi han registres d'ús general, que el programador decidirà què fer amb ells, i registres d'ús específic que la UC fa servir per a certes operacions concretes. Potència Prefix Aplicat a litres Símbol 10 -3^ mili mililitre ml 10 -2^ centi centilitre cl 10 -1^ deci decilitre dl 1 litre l 101 deca decalitre dal 102 hecto hectolitre hl 103 kilo kilolitre kl Taula 3 Unitats de mesura de capacitat Potència Prefix Aplicat a byte En decimal 21 B 1 byte 210 k kB (kilobyte) 1024 bytes 220 M MB (megabyte) 1048576 bytes (1024 KB) 230 G GB (gigabyte) 1073741824 bytes (1024 MB) 240 T TB (terabyte) 1099511627776 bytes (1024 GB) 250 P PB (petabyte) 1125899906842624 bytes (1024 TB) 260 E EB (exabyte) 1152921504606846976 bytes (1024 PB) 270 Z ZB (zettabyte) 1180591620717411303424 bytes (1024 EB) 280 Y YB (yottabyte) 1208925819614629174706176 bytes (1024 ZB) Taula 4 Unitats de mesura de la capacitat dels dispositius d'emmagatzemament

Fonaments d'informàtica Podem veure a la taula 5 alguns exemples d'instruccions d'una CPU imaginària molt senzilla de 8 bits, per tant, tots els seus registres, excepte el program counter, tenen aquest tamany i sap treballar amb nombres enters d'aquest tamany. Suposarem que té una memòria de 65536 bytes de capacitat i, per tant, les adreces de memòria són de 16 bits (2 bytes), ja que 2^16 són 65536. A continuació podem veure un petit programa de tres instruccions ubicat a la memòria que suma el número 3 y el número 36 i guarda el resultat a l'adreça de memòria 30864. A la il·lustració 3 tenim una imatge de la memòria i a la taula 6 podem veure la memòria amb el valor que cada byte té en binari (que és la forma en que realment està a memòria), en decimal i en hexadecimal (sistema de numeració en base 16 que s'utilitza en informàtica per representar els valors en la memòria per la seva facilitat de traducció entre el binari i l'hexadecimal). Podem veure que a la posició 0 de memòria està la instrucció de codi 1 i a la posició 1 està el número 3. Per tant, això significa posa un 3 dins el registre acumulador. A la posició 2 hi ha la instrucció de codi 2 i a la següent posició hi ha el valor 36. Això significa suma a l'acumulador el número 36 i el resultat deixa'l a l'acumulador. A la posició 4 hi ha la instrucció de codi 3 i a las dos següents posicions hi ha els valors 120 (78H) i 144 (90H) si considerem per separat els dos bytes, però, si considerem que els dos junts són un únic número de 16 bits, el valor és el 30864 (7890H).

1.2.4. Cóm funciona la CPU?

El funcionament de la CPU es molt senzill i segueix aquests passos:

  1. Aconseguir la instrucció: la CPU llegeix la posició de memòria que indica el program counter (pc a partir d'ara).
  2. Decodifica la instrucció: és a dir, mira quina és la instrucció i porta de memòria els següents bytes si és necessari.
  3. Incrementa el pc: al valor del pc se li suma el tamany en bytes de la instrucció actual per tal que contingui l'adreça de la següent instrucció. Il·lustració 3 Memòria amb el nostre programa 0000 00000001 0001 00000011 0002 00000010 (^000300100100) 0004 00000011 0005 01111000 0006 10010000 0007 .... : : : : Codi Significat Operands 01 Passa la dada de darrera al registre acumulador La dada ocupant un byte 02 Suma d'enters d'un byte. Suma el registre acumulador amb la dada que hi ha a continuació a memòria i deixa el resultat al mateix registre acumulador El segon operand ocupant un byte 03 Guarda el valor del registre acumulador a l'adreça de memòria indicada a continuació. L'adreça de memòria de dos bytes ... Taula 5 Instruccions de la nostra CPU imaginària Adreça Binari Decimal Hexadecimal 0000 00000001 1 01 0001 00000011 3 03 0002 00000010 2 02 0003 00100100 36 24 0004 00000011 3 03 0005 01111000 120 78 0006 10010000 144 90 ... ... Taula 6 Estat de la memòria amb el nostre programa

Conceptes bàsics de programació

  1. Executa la instrucció: o, el que és el mateix, fa el que diu la instrucció.
  2. Tornar al pas 1. Veiem ara com ho fa la CPU per executar un programa que suposem ja està carregat a memòria a partir de l'adreça zero. Com a exemple, farem servir el programa que hem comentat a l'apartat anterior i que podem veure a la il·lustració 3 i a la taula 6. Suposem també que a l'estat inicial el registre pc conté el valor zero. Recorda que això vol dir que la propera instrucció a executar està a l'adreça zero. Primera instrucció
  3. En primer lloc la UC demana al mòdul de comunicació que porti de memòria la instrucció situada a la posició de memòria que indica el registre pc, zero en aquest moment.
  4. La UC decodifica la instrucció. El codi és 1, per tant, ha de demanar-li al mòdul de comunicació que porti de la memòria el byte situat a l'adreça de memòria pc+1 (que conté el valor 3).
  5. Com que el codi d'instrucció 1 ocupa en total 2 bytes, incrementa el pc en 2 per tal que contingui l'adreça de la propera instrucció a executar. Això fa que el pc valgui 2.
  6. Per executar la instrucció, la UC només ha de guardar el segon byte de la instrucció a l' acumulador. Segona instrucció
  7. La CPU porta la instrucció situada a l'adreça 2, ja que és el valor del pc.
  8. La UC decodifica la instrucció. El codi és 2, per tant, ha de portar de la memòria el byte situat a l'adreça de memòria pc+1 (que val 36).
  9. Com que el codi d'instrucció 2 ocupa en total 2 bytes, incrementa el pc en 2. Això fa que el pc valgui 4.
  10. Per executar la instrucció, la UC ha de donar-li a la ALU el valor de l'acumulador i el segon byte de la instrucció. Un cop l'ALU respon, la UC ha de guardar-ho a l'acumulador. Tercera instrucció
  11. La CPU porta la instrucció situada a l'adreça 4.
  12. La UC decodifica la instrucció. El codi és 3, per tant, ha de portar de la memòria els dos bytes situats a l'adreça de memòria pc+1 i pc+2 (que valen 30864).
  13. Com que el codi d'instrucció 3 ocupa en total 3 bytes incrementa el pc en 3. Això fa que el pc valgui 7.
  14. Per executar la instrucció, la UC ha de donar-li al mòdul de comunicació el valor de l'acumulador i el segon i tercer bytes de la instrucció per tal que el gravi a la memòria. L'execució continua de la mateixa manera fins que traiem l'alimentació de la CPU (l'apaguem) 1.3. Programari El programari és el conjunt de programes que conté l'ordinador i que permet que el maquinari es comporti com a màquines virtuals de propòsit específic. Ja hem dit que un programa és una seqüència d'instruccions. Segons quines instruccions i quines regles d'escriptura fem servir o, millor dit, segons el llenguatge que fem servir, tindrem diferents tipus de programes.

1.3.1. Llenguatge màquina

El llenguatge màquina és el llenguatge que parla (que entén) la CPU. També s'anomena codi màquina. Les característiques fonamentals dels programes escrits en codi màquina són:

Conceptes bàsics de programació Podem veure al exemple 2 un tros d'un programa escrit en llenguatge ensamblador d'una CPU de la casa Intel per a PC. Les línies que comencen amb el caràcter ';' o bé la part de la línia darrera del ';' són comentaris que ha posat el programador per fer més intel·ligible el programa. Les línies com “LineCountLoop:” són etiquetes que representen adreces de memòria. Cx, dx, bx, ax, etc. són els noms d'alguns dels registres de la CPU (en aquests cas del fabricant INTEL).

1.3.3. Llenguatge d’alt nivell

Per a intentar solucionar el problema dels llenguatges ensambladors que tenen instruccions massa elementals, van néixer el llenguatges d'alt nivell. Són llenguatges que ens proporcionen una màquina virtual molt més potent que la real (la CPU), i, per tant, tenen instruccions molt més complexos. A més a més, incorporen eines per a la creació de programes molt desenvolupades. Són llenguatges que intenten, també, ser més propers al llenguatge humà. Els llenguatges de programació ens defineixen les normes sintàctiques i semàntiques per la creació de programes, així com el conjunt d'instruccions i una llibreria de funcions predefinides que permeten al programador construir programes més ràpidament. El conjunt d’instruccions a utilitzar no tenen traducció directe a les instruccions de la CPU. La seva sintaxi està expressada en la forma habitual del llenguatge natural en el que ens solem expressar els humans, sense deixar de tenir en compte que les instruccions que donem a la màquina no poden tenir doble interpretació o ambigüitats. Les característiques fonamentals dels programes escrits en llenguatge d'alt nivell són:

  • És independent de la CPU i, habitualment, són estàndards de la industria informàtica.
  • No és directament executable per la CPU. Necessitarem programes que tradueixin el programa escrit en un llenguatge d'alt nivell al codi màquina de la CPU que tenim. Aquest programa s'anomena compilador.
  • El programa en alt nivell serà transportable a una altra CPU si tenim el compilador per aquesta última.
  • Al no tenir una traducció directa entre la instrucció del llenguatge i les instruccions de la CPU, cada instrucció del llenguatge d’alt nivell es traduirà en un conjunt d’instruccions del llenguatge màquina i dependrà de les instruccions disponibles a la CPU que utilitzem.
  • Com el llenguatge és més potent i més fàcil de llegir que el codi màquina els programes són més fàcils de modificar i mantenir, i tenen menys errors inicialment.
  • Els programes continuen depenent de l'arquitectura de l'ordinador, ja que ha de saber com funcionen tots els dispositius per a poder-los coordinar i controlar. Hi ha diferents llenguatges cadascun amb les seves característiques i utilitats pròpies. Podem mencionar alguns encara que n'hi ha centenars: C/C++, Pascal, Java, Ada, Modula, Fortran, Lisp, Cobol, Prolog, Visual Basic, PHP, javascript, C#, smalltalk, eiffel, etc. Al conjunt d’instruccions que formen un programa, escrit en format text, seguint les normes de sintaxi que ens dona el llenguatge utilitzat i guardat en un fitxer, l'anomenem codi font. El compilador agafa el codi font i el tradueix a codi màquina guardant-lo en un fitxer anomenat codi màquina o executable. Als exemples 3 i 4 podem veure un programa escrit en els llenguatges d'alt nivell anomenats C i Pascal. Tant en el cas del Pascal, com en la majoria dels llenguatges, per a la gent de parla anglesa, és més o menys intuïtiu d'interpretar el que es fa llegint el text del programa font que en el cas del llenguatge ensamblador o màquina. Continuem, però, tenint un problema. El programa necessita conèixer el funcionament de tots els dispositius (monitor, disc dur, teclat, CD-ROM, etc.) Cada ordinador pot tenir diferents dispositius, o de diferents fabricants amb funcionaments lleugerament diferents.

Fonaments d'informàtica A l'exemple 5 pots veure un cas del que estem dient, i a la propera secció més endavant veurem de quina manera es soluciona.

1.3.4. Sistema Operatiu (SO)

El SO és un programari molt especial. Té unes funcions específiques que cap altre programari té dins d'un ordinador. D'aquestes funcions podem destacar les següents:

  • Inicialització de l'ordinador i comprovació del correcte funcionament de tots els components.
  • Interfície bàsic amb l'usuari, que permet a aquest últim fer funcions bàsiques de l'estil posar en marxa un programa, copiar fitxers, esborrar fitxers, configurar l'equip, personalitzar-lo, etc.
  • Permetre la execució “simultània” de més d'un programa.
  • Gestió i control de tots els dispositius de l'ordinador. Entre ells definir el sistema de fitxers, és a dir, la manera d'organitzar els fitxers dins dels dispositius d'emmagatzemament massiu. ; COUNT.ASM ; Small model C-callable assembler function to count the number of ; lines and characters in a zero-terminated string. ; ; Function prototype: ; extern unsigned int LineCount(char * near StringToCount, ; unsigned int near * CharacterCountPtr); ; Input: ; char near * StringToCount: pointer to the string on which a ; line count is to be performed ; ; unsigned int near * CharacterCountPtr: pointer to the ; int var. in which the char count is to be stored ; NEWLINE EQU 0ah ;the linefeed character is C's ; newline character DOSSEG .MODEL SMALL .CODE PUBLIC _LineCount _LineCount PROC push bp mov bp,sp push si ;preserve calling program's reg ; variable, if any mov si,[bp+4] ;point SI to the string sub cx,cx ;set character count to 0 mov dx,cx ;set line count to 0 LineCountLoop: lodsb ;get the next character and al,al ;is it null, to end the string? jz EndLineCount ;yes, we're done inc cx ;no, count another character cmp al,NEWLINE ;is it a newline? jnz LineCountLoop ;no, check the next character inc dx ;yes, count another line jmp LineCountLoop EndLineCount: inc dx ;count lines that ends with the ; null character mov bx,[bp+6] ;point to location at which to ; return the character count mov [bx],cx ;set the character count var mov ax,dx ;ret line count as function val pop si ;restore calling program's reg ; variable, if any pop bp ret _LineCount ENDP END Exemple 2 Programa escrit en llenguatge ensamblador per a una CPU de la casa INTEL

Fonaments d'informàtica

  • Crear una màquina virtual que ens permeti no conèixer les particularitats de cada dispositiu. Aconseguint que tots els PC (de diferent fabricat i models) semblin el mateix ordinador. Per exemple, no cal que coneixem cada impressora com funciona (ja que cada model i cada fabricant la fa com vol), si no que tindrem una mena de impressora virtual amb la funcionalitat que esperem en ella (escriure, canviar el color, dibuixar formes, canviar la font de la lletra, el tamany, etc.). L'únic que fem és instal·lar un driver que farà que el SO, quan una aplicació li demani canviar el color, enviï les comandes concretes per al model i fabricant de la impressora. D'aquesta manera el programes que fem no han de conèixer els dispositius si no, únicament, han de demanar al SO l'operació que volen realitzar. Driver : conjunt de rutines específiques d'un dispositiu que, un cop integrades en el sistema operatiu, permet d'accedir amb funcions genèriques a les seves funcions des del sistema operatiu. En el mercat podem trobar molts sistemes operatius: DOS (en entorns acadèmics no és considerat com un autèntic SO), Unix (és el més popular en el món acadèmic en qualsevol de les seves variants: Solaris, aix, linux, uix, SCO, …), Windows amb totes les seves variants i versions, MAC/OS, OS/2, VMS, MVS (aquests últims són de marques comercials per a sistemes de gran processat), … Per a nosaltres, el sistema operatiu ens permetrà la independència entre el nostre programa i els dispositius aconseguint que diferents ordinadors es comportin com si fossin iguals. Per exemple, un ordinador tipus PC del fabricant HP, amb una CPU Pentium IV de INTEL, una VGA ATI Radeon 9200 i un ordinador tipus PC clònic, amb una CPU Atlhon de AMD i una VGA TNT2 de Riva, tots dos amb el mateix SO instal·lat es comporten com a ordinador iguals.

1.3.5. Classificació del programari

Dins del programari que podem trobar en un ordinador podem distingir dos grans grups de programes en funció de la seva funcionalitat: Programari de base És el programari necessari pel funcionament de l'ordinador i el seu manteniment. La gran estrella d'aquest tipus de programari es el sistema operatiu. Podem englobar dins aquest grup els següents programes:

  • El sistema operatiu.
  • Programes de serveis i utilitats: exploradors de fitxers, inicialitzadors de disc, instal·ladors, manteniment del sistema, compressors de dades, … A vegades estan integrats en el propi SO o s'instal·len juntament amb el SO. Per això costa definir el límit entre sistema operatiu i utilitat.
  • Llenguatges de programació per a desenvolupar nous programes: poden ser de baix nivell o ensambladors, d’alt nivell o compiladors, entorns de programació o IDE. Exemple Un programa que es comunica amb missatges de tipus text es podria executar, en teoria, en: - Un entorn de text pur - Un terminal (pantalla més teclat connectat en comunicacions) - Una finestra de windows en format text - Un teclat de caixer automàtic amb un display LCD tipus calculadora. Podem escriure diferents programes segons els perifèrics a tractar o podem tenir unes funcions genèriques per adquirir o visualitzar informació independentment del perifèric connectat. Si aïllem aquestes funcions en un mòdul i l'accés al perifèric el fem a través d'unes funcions genèriques com "TreureMissatge" o "LlegirTecla", ens pot ser menys traumàtic el canviar de perifèric, on, per fer funcionar el nostre programa, el que necessitaríem seria la reescriptura d'aquestes funcions genèriques pel nou perifèric. Aquesta és la funció realitzada pel Sistema Operatiu, que ens permetrà utilitzar el mateix programa en els diferents entorns sempre i quan tinguem en compte les limitacions del més simple d’ells. Exemple 5

Conceptes bàsics de programació

  • Programari que permet la comunicació entre ordinadors per la creació de xarxes. Apareix, llavors, la diferenciació entre ordinadors clients i ordinadors servidors. El servidor és aquell que ofereix un servei o recurs a la resta com, per exemple, pàgines web, correu electrònic, espai d'emmagatzemament, servei d'impressió, etc. Les màquines client són aquelles que fan servir el serveis o recursos que posen al seu abast els servidors. Un ordinador pot ser servidor d'alguns recursos i client d'uns altres.
  • Programari que permet la creació i manteniment de bases de dades.
  • Etc. Programari d'aplicació Són els programes que fan alguna “cosa” per l'usuari. Són els que converteixen el nostre ordinador en diferents màquines virtuals. Aquí trobarem:
  • Aplicacions ofimàtiques que ens permeten editar documents, fer càlculs, fet presentacions, gestionar el correu electrònic, organitzadors, etc. Tot allò necessari dins d'una oficina.
  • Aplicacions de comptabilitat.
  • Aplicacions de control d'estocs.
  • Aplicacions de gestió integral de l'empresa.
  • Aplicacions de disseny assistit per ordinador en el camp de l'arquitectura, disseny gràfic, disseny industrial, multimèdia, etc.
  • Aplicacions de gestió de projectes.
  • Simuladors: de vol, de conducció, de efectes físics (mecànics, elèctrics o electrònics, etc.), que permeten verificar el funcionament de nous prototips abans de fabricar-los, o be d'entrenadors sense el perill de la realitat.
  • I un llarg llistat de possibilitats.