Caracterització dels sistemes operatius, tipus i aplicacions

Un equip informàtic es pot definir com un conjunt de components electrònics i lògics que, conjuntament, poden realitzar una gran varietat de funcions. La part formada pels components electrònics es coneix com a maquinari mentre que la part formada pels components lògics s’anomena programari.

El programari envia ordres o instruccions al maquinari fent possible que l’equip informàtic pugui realitzar les seves funcions. Actualment, hi ha un tipus de programari bàsic sense el qual l’equip informàtic no pot funcionar que es coneix com a sistema operatiu.

El sistema informàtic

Un sistema informàtic és un conjunt d’elements relacionats entre si que permeten dur a terme una sèrie d’operacions i processos sobre la informació que gestionen. Actualment, els sistemes informàtics ocupen al món un lloc clau per l’organització dels processos productius i d’oci, permetent als usuaris l’intercanvi d’informació a pràcticament qualsevol distància.

Un sistema informàtic és el conjunt d’elements que fa possible emmagatzemar i processar la informació de forma automàtica.

Tots els sistemes informàtics es componen de tres parts fonamentals:

  • Maquinari. El maquinari és el conjunt de dispositius electrònics que proporcionen la funció d’emmagatzemar i processar la informació. Per exemple, en aquesta categoria, trobem els equips informàtics, els perifèrics i el cablejat.
  • Programari. El programari és el conjunt de programes i aplicacions que fan servir els sistemes informàtics per realitzar les tasques requerides pels usuaris, com per exemple el sistema operatiu.
  • Personal. Són les persones relacionades amb el sistema informàtic, incloent-hi tant als usuaris que l’utilitzen com al personal tècnic que crea i manté el sistema informàtic.

Per tant, un exemple de sistema informàtic pot ser un ordinador personal amb els seus perifèrics, la persona que el fa servir i els programes que conté.

La finalitat d’un sistema informàtic és gestionar de forma òptima la informació. El sistema informàtic permet emmagatzemar i processar la informació, però també pot dur a terme moltes més funcions que van des de facilitar el treball a les empreses fins a oferir entreteniment als usuaris personals.

Components físics

El maquinari o hardware, en anglès, fa referència a les parts físiques d’un sistema informàtic, és a dir, tot allò que podem tocar amb les mans. Per exemple com a maquinari d’un ordinador personal trobem el xassís de l’equip, els cables, els ventiladors, els perifèrics i tots els components interns de l’ordinador com el processador, la placa base, la memòria, etc.

El maquinari és el conjunt de components que constitueixen la part física d’un sistema informàtic i que permeten el funcionament del sistema informàtic.

Podem categoritzar tots els elements del maquinari en funció de la seva ubicació al sistema informàtic. Així podem fer una divisió entre el maquinari intern, normalment el que s’inclou dins de l’equip i que acostuma a ser el maquinari principal i el maquinari extern o perifèrics de l’equip.

Alguns dels elements interns i principals de l’equip són:

  • La placa base. És la placa principal del sistema informàtic on trobem diferents circuits impresos on es connecten la resta d’elements de maquinari.
  • El microprocessador. És l’encarregat d’executar els programes informàtics. Executa les instruccions fent operacions aritmètiques i lògiques simples.
  • La memòria principal. És la memòria del sistema informàtic on s’emmagatzemen temporalment les dades i els programes que està executant el microprocessador.
  • El sistema de refrigeració. Són els elements que s’encarreguen de refredar el microprocessador durant el funcionament del sistema informàtic.
  • La font d’alimentació. És l’element del maquinari que s’utilitza per transformar l’energia obtinguda a la presa de corrent perquè pugui ser utilitzada per la resta d’elements del sistema informàtic.
  • Els dispositius d’emmagatzematge, com discos durs interns o lectors de CD i DVD. Aquests elements permeten guardar les dades i els programes al sistema informàtic de forma permanent.
  • Les targetes d’expansió d’àudio, vídeo o xarxa. Aquests elements permeten ampliar les funcions que pot dur a terme el sistema informàtic.

Quant al maquinari extern o perifèrics alguns dels seus components són:

  • El monitor. És el principal dispositiu de sortida que mostra les dades que processa el sistema informàtic a l’usuari.
  • El teclat i ratolí. Són els principals dispositius que permeten l’entrada d’informació al sistema informàtic.
  • El micròfon i els altaveus. Són elements que permeten convertir les dades elèctriques en ones sonores i viceversa.
  • La impressora, escàner o fax. Són elements que serveixen per imprimir, escanejar o enviar dades de tipus text o gràfica en un sistema informàtic.
  • Els dispositius d’emmagatzematge externs, com discos durs externs o llapis de memòria. Aquests elements permeten emmagatzemar les dades de forma permanent.
  • Altres dispositius especialitzats com els comandaments de control per videojocs, les tauletes digitalitzadores, les ulleres de realitat virtual, lectors de barres o projectors. Aquests elements permeten ampliar les funcions que pot dur a terme el sistema informàtic.

Els elements que s’utilitzen per muntar el sistema informàtic determinen el tipus d’equip. Per exemple, l’ús de peces lleugeres amb factors de forma petits i molt compactes donen lloc a portàtils, tauletes i dispositius mòbils; mentre que els components més voluminosos i dissenyats pel seu muntatge en caixes donen lloc als ordinadors de sobretaula o servidors.

Components lògics

El programari o software, en anglès, és una part imprescindible d’un sistema informàtic, ja que és necessari perquè l’usuari pugui realitzar les tasques desitjades de forma còmoda.

El programari d’un sistema informàtic és el conjunt de components lògics necessaris que fan possible la realització de tasques específiques.

Generalment, el programari es pot classificar en dos grans grups:

  • El programari base o de sistema. Aquest tipus de programari és bàsic pel sistema, ja que permet comunicar als usuaris i a la majoria del programari amb el maquinari. Sense aquest tipus de programari el sistema informàtic no podria funcionar. Com a exemple d’aquest tipus de programari trobem el sistema operatiu o els controladors dels dispositius perifèrics.
  • El programari d’aplicació. En aquest cas són els programes o aplicacions encarregats de realitzar tasques específiques. Com a exemple d’aquest tipus de programari trobem els paquets ofimàtics, els videojocs o els antivirus.

Al seu torn, el programari d’aplicació pot classificar-se en programari horitzontal o vertical:

  • El programari horitzontal és aquell que trobem a disposició de l’usuari amb unes característiques predeterminades i és de tipus genèric, com per exemple, els paquets ofimàtics.
  • El programari vertical és més específic i es crea per solucionar unes necessitats determinades d’un usuari o empresa.

Existeix un tipus de programari especial, anomenat microprogramari o firmware, en anglès, que podem trobar integrat en alguns components físics d’un sistema informàtic. Aquest microprogramari fa d’intermediari entre part del programari i els elements electrònics del sistema.

La BIOS (Basic Input Output System) o UEFI (Unified Extensible Firmware Interface) són un dels microprogramaris més coneguts que, entre altres funcions, s’encarreguen d’iniciar i comprovar el maquinari del sistema durant el procés d’arrancada del sistema operatiu, també monitoren la temperatura de l’equip i gestionen les funcions d’energia. Altres microprogramaris també els podem trobar integrats als telèfons mòbils, tauletes o dispositius Bluetooth.

Aquest microprogramari acostuma a estar emmagatzemats en xips de memòria de tipus ROM, EPROM o EEPROM que tot i que es poden modificar, és poc freqüent fer-ho i, per tant, un cop s’introdueix el microprogramari en un component de maquinari es fan poques o cap actualitzacions del mateix.

Memòries ROM, EPROM i EEPROM

Les memòries de tipus lectura, conegudes com a ROM, permeten la lectura de la informació i en algunes de les seves variants, com la EPROM o EEPROM, permeten l’eliminació de les dades amb llum ultraviolada o corrent elèctric.

El programari base

El programari base o de sistema permet comunicar als usuaris i a la majoria del programari del sistema informàtic amb el maquinari.

Existeixen diferents tipus de programari base en funció de la funció que fan dins del sistema informàtic, com per exemple el sistema operatiu, els controladors dels dispositius i alguns tipus de microprogramari.

El controlador de dispositiu o driver, en anglès, és el programari que permet la comunicació entre els dispositius d’entrada/sortida del sistema informàtic i la resta de programari.

El microprogramari, com la BIOS o UEFI, és un tipus de programari base que s’executa abans que la resta de programari del sistema informàtic. Una de les seves funcions més important és iniciar el maquinari durant el procés d’arrancada del sistema informàtic i gestionar les funcions de control d’energia i temperatura. És possible modificar els paràmetres de la configuració d’aquest microprogramari prement una tecla en concret quan iniciem el sistema informàtic.

El sistema operatiu és un tipus de programari base que permet interactuar a l’usuari i les aplicacions amb el maquinari del sistema informàtic. És el programari més important d’un sistema informàtic, ja que a més de permetre la comunicació entre l’usuari i el maquinari, permet gestionar tots els recursos del sistema, com els processos o arxius i directoris.

Classificació dels sistemes informàtics

A causa de la gran varietat de sistemes informàtics existents podem fer la seva classificació segons diversos criteris, com per la seva arquitectura o per la funció que exerceixen. Una de les classificacions més populars és la que organitza els sistemes informàtics en funció de la seva mida i els recursos que ofereixen.

Segons la mida i els recursos que ofereixen els sistemes informàtics es poden classificar en:

  • Supercomputador. Aquests sistemes informàtics tenen una gran capacitat de càlcul, poden processar una gran quantitat de dades per segon, i s’utilitzen principalment al món de la investigació i desenvolupament. Els supercomputadors poden gestionar milers de milions d’operacions per segon de forma simultània, ja que estan formats per una gran quantitat de processadors molt potents que treballen com si fossin un sol. Aquests sistemes informàtics es troben ubicats en instal·lacions especials, acostumen a ocupar més d’una habitació i necessiten un sistema de refrigeració especial.
  • Computador central. Aquests sistemes informàtics també s’anomenen mainframe en anglès. Aquests sistemes informàtics s’acostumen a utilitzar per a les empreses que necessiten processar i emmagatzemar una gran quantitat de dades, com per exemple les transaccions d’un banc o la gestió de reserves d’una línia aèria. Són sistemes informàtics amb processadors molt potents i una gran quantitat de dispositius d’emmagatzematge. Aquests sistemes poden arribar a ocupar una habitació sencera, però ja no necessiten instal·lacions especials com passa amb els supercomputadors. Tot i que la seva funció principal és la d’emmagatzemar transaccions i dades corporatives, en alguns casos també s’utilitzen, sobretot per les empreses de comerç electrònic que treballen a gran escala, com servidors web d’alta capacitat.
  • Minicomputador. Aquests sistemes informàtics són més grans que els sistemes d’ús personal però més petits que els computadors centrals. S’utilitzen principalment a les empreses i la seva funció principal és processar la informació a la vegada que permeten la connexió d’una gran quantitat d’usuaris de forma simultània. Aquests sistemes informàtics donen servei als usuaris mitjançant una xarxa i permeten la compartició de recursos entre ells.
  • Microcomputador. En aquesta categoria trobem els ordinadors personals i els sistemes informàtics portàtils. La funció d’aquests sistemes és proporcionar servei a l’usuari i s’acostumen a utilitzar per dur a terme tasques ofimàtiques, accedir a Internet, fer petites tasques empresarials i l’oci personal. Aquests sistemes informàtics són de dimensions reduïdes. Els sistemes informàtics portàtils permeten el seu transport fàcilment, ja que tenen un pes i una mida reduïda i poden funcionar utilitzant bateries sense la necessitat de connectar-los a la xarxa elèctrica.
    En aquesta mateixa classificació podem trobar altres sistemes informàtics integrats en alguns equipaments industrials, electrodomèstics, vehicles, rellotges intel·ligents, etc. Aquest tipus de sistemes estan destinats a l’ús personal i permeten accedir a internet, rebre trucades o correus electrònics i altres funcions més específiques del sistema en concret. Aquests sistemes informàtics permeten instal·lar i executar aplicacions de forma similar a com es pot fer a la resta de sistemes informàtics.

Representació de la informació

Els sistemes informàtics són màquines que processen automàticament la informació, però tota la informació que gestionen aquests equips es representa únicament amb dos símbols, que són el 0 i l’1 i que corresponen a dos estats elèctrics o dos nivells de tensió. En els circuits electrònics, des del punt de vista lògic, s’acostuma a representar la presència de tensió en un punt del circuit per mitjà del nombre 1, mentre que el 0 representa l’absència de tensió. Aquesta terminologia es coneix com a lògica positiva. També es pot aplicar lògica negativa, on s’intercanvia el significat d’aquests dos dígits.

A cadascun d’aquests símbols se’ls anomena xifra binària o bit. Un bit és la unitat més petita de representació d’informació en un sistema informàtic.

El bit és la unitat base de mesura de la informació, que indica la quantitat mínima que forma la informació. Es pot representar mitjançant dos símbols, 0 o 1.

La informació és la forma de representar fets, objectes, valors o idees que permet la comunicació entre persones i l’adquisició del coneixement de les coses. Tota la informació està formada per dades. Les dades són tots els fets o objectes que no han estat manipulats i un cop processats formen la informació. Podeu observar un esquema del processament de les dades en informació a la figura.

Figura Processament de les dades

Podem classificar les dades segons els següents tipus:

  • Numèriques. Aquestes dades estan únicament formades per nombres (0, 1, …, 9). Amb aquestes dades es poden fer tota mena d’operacions matemàtiques.
  • Alfabètiques. Són les dades que estan formades per les lletres de l’alfabet (A, B, …, Z).
  • Alfanumèriques. Són les dades que estan formades per una combinació de lletres i números. Amb aquest tipus de dades, encara que només estiguin formades per nombres no es poden fer operacions matemàtiques.

Perquè aquesta informació pugui ser entesa pel sistema informàtic, cal establir una correspondència entre les dades i aquests dos estats elèctrics. Aquesta correspondència és coneguda com a codificació de la informació. Totes les dades que utilitzen els sistemes informàtics estan codificades. Diferents sistemes informàtics poden utilitzar codis diferents, fins i tot, un mateix sistema informàtic pot utilitzar diferents codificacions als diferents dispositius electrònics que el formen.

Un codi és la forma d’interpretar la informació. Per exemple, el símbol X, fent servir el codi alfabètic, és una lletra, però, si apliquem el codi del sistema de numeració romà, és el número 10.

La codificació també depèn de l’ús que es farà de les dades. Per aquest motiu s’acostumen a utilitzar codis normalitzats, com l’Unicode per l’entrada i sortida de dades alfabètiques o alfanumèriques, mentre que per les dades numèriques s’utilitzen codificacions basades en el sistema de numeració binari, octal o hexadecimal per la facilitat que ofereixen per ser transformats en decimal o binari i fer operacions matemàtiques.

Els sistemes de numeració: binari, octal i hexadecimal

Un sistema de numeració és el conjunt de símbols i normes que s’utilitzen per representar dades numèriques.

Existeixen sistemes de numeració posicionals i sistemes de numeració no posicionals; als primers és important el valor de la xifra dins del número i als segons, no. Un exemple de sistema de numeració posicional és el sistema de numeració decimal i un exemple no posicional és el sistema romà.

Un sistema de numeració es caracteritza fonamentalment per la base a la qual fa referència i que, normalment, coincideix amb el nombre de símbols que el componen. La base és el coeficient que determina quin és el pes de cada símbol depenent de la posició que ocupi. Nosaltres utilitzem el sistema decimal que és un sistema de numeració en base 10, compost per 10 símbols diferents, del 0 al 9.

Tots els sistemes de numeració posicionals estan basats en el Teorema Fonamental de la Numeració, que serveix per relacionar una quantitat expressada en qualsevol sistema de numeració amb la mateixa quantitat expressada en sistema decimal.

El Teorema Fonamental de la Numeració queda determinat per la següent fórmula:


On el símbol b representa la base i x són els dígits del nombre.

Exemple d'aplicació del Teorema Fonamental de la Numeració

Al sistema decimal, els símbols per construir un valor són del 0 al 9 i la seva base és 10.


Recordeu que qualsevol nombre elevat a zero val 1.

El sistema que utilitzem per comptar és l’anomenat sistema decimal, adoptat per poder comptar amb els deu dits de la mà. Al món informàtic, els sistemes de numeració utilitzats són diferents al sistema decimal que nosaltres utilitzem. Els més utilitzats són el sistema binari, l’octal i l’hexadecimal.

El sistema binari només utilitza dos símbols o bits per representar els números. És un sistema de numeració posicional. La quantitat de números que es poden representar en binari, depèn del nombre de xifres binàries o bits que utilitzem, de forma que si utilitzem un bit podrem representar dos números però si utilitzem dos bits, podrem representar quatre.

Per calcular el nombre de representacions diferents utilitzem la següent formula: Valors representats = 2(nombre de bits) on observem que el nombre de representacions numèriques depèn del nombre de bits que s’utilitzen, com podeu observar a la taula.

Taula Possibles combinacions
Nombre de bitsCombinacions diferentsRang de valors
1 21 = 2 De 0 a 1
2 22 = 4 De 00 a 11
4 24 = 16 De 0000 a 1111
8 28 = 256 De 00000000 a 11111111
16 216 = 65.536 De 0000000000000000 a 1111111111111111

Un grup de 8 bits es coneix com a byte o octet. Un byte ens permet representar 256 valors segons la combinació de bits que fem. Un grup de quatre bits constitueix un nibble i són importants perquè cada nibble representa una xifra en el sistema hexadecimal, ja que un nibble ens permet representar 16 valors.

El sistema binari és un sistema de numeració posicional, que utilitza dos símbols diferents, el 0 i l’1. Pot expressar-se segons la fórmula del Teorema Fonamental de la Numeració amb la base 2.

El sistema octal és un sistema de numeració posicional amb base 8 que utilitza un conjunt de 8 símbols, del 0 al 7. Per la seva banda, el sistema hexadecimal també és un sistema de numeració posicional, que utilitza un conjunt de 16 símbols, del 0 al 9, a més de les lletres A, B, C, D, E i F que equivalen a 10, 11, 12, 13, 14 i 15 del sistema decimal respectivament. En aquest sistema un valor determinat pot expressar-se segons la fórmula del Teorema Fonamental de la Numeració, on la base és 16.

El sistema que utilitza normalment el sistema informàtic és el binari, però per comoditat, hi ha ocasions on s’utilitza l’octal o l’hexadecimal. Per exemple, les adreces de memòria o les adreces MAC s’expressen en sistema hexadecimal, mentre que els permisos d’arxius en alguns sistemes operatius s’expressen en notació octal.

Adreça MAC

Una adreça MAC (Media Access Control) és un identificador de 48 bits, agrupats en 6 blocs de dos caràcters hexadecimals, que correspon de forma única a un dispositiu de xarxa.

A la taula podeu observar els números del 0 al 15 representats en sistema decimal, binari, octal i hexadecimal.

Taula Sistema decimal, binari, octal i hexadecimal
Decimal Binari Octal Hexadecimal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Canvi de base de decimal a binari, octal o hexadecimal

Per canviar un nombre decimal a una base diferent, cal dividir el nombre decimal entre el número de la base del sistema de numeració al que volem fer la conversió. El quocient obtingut de la divisió es convertirà en dividend per tornar a dividir-lo pel número de la base del sistema triat. Al nou quocient es torna a aplicar la mateixa operació, i així successivament fins que arribem a un quocient igual a zero. Després el número resultant s’obté unint tots els residus en ordre invers d’aparició.

Per exemple, en un canvi de base d’un nombre decimal a un número binari, haurem de dividir successivament entre 2 el nombre decimal, fins que trobem un quocient igual a zero. Per trobar el número binari resultant, unim tots els residus en ordre invers d’aparició. Si volem convertir el mateix número en base decimal a base 8 i 16, haurem de canviar el divisor per 8 i 16 respectivament.

Canvi de base 10 a base 2

Conversió del nombre 75 en base 10 a base 2:

  1. 75/2 = 37. Residu 1
  2. 37/2 = 18. Residu 1
  3. 18/2 = 9. Residu 0
  4. 9/2 = 4. Residu 1
  5. 4/2 = 2. Residu 0
  6. 2/2 = 1. Residu 0
  7. 1/2 = 0. Residu 1

El resultat es forma amb els residus ordenats des de l’últim quocient. El resultat és:

Canvi de base 10 a base 8

Conversió del nombre 75 en base 10 a base 8:

  1. 75/8 = 9. Residu 3
  2. 9/8 = 1. Residu 1
  3. 1/8 = 0. Residu 1

El resultat es forma amb els residus ordenats des de l’últim quocient. El resultat és:

Canvi de base 10 a base 16

Conversió del nombre 75 en base 10 a base 16:

  1. 75/16 = 4. Residu 11 (El número 11 no forma part d’aquest sistema de numeració, aquest valor es correspon a la lletra B)
  2. 4/16 = 0. Residu 4

El resultat es forma amb els residus ordenats des de l’últim quocient. El resultat és:

Canvi de base de binari, octal o hexadecimal a decimal

Si volem fer la conversió contrària, és a dir passar de base 2, 8 o 16 a base decimal, ho farem multiplicant per potències successives de 2, 8 o 16 de dreta a esquerra, respectivament. Per obtenir el nombre decimal sumarem tots els valors obtinguts.

Canvi de base 2 a base 10

Conversió del nombre 1001011 en base 2 a base 10:

Canvi de base 8 a base 10

Conversió del nombre 113 en base 8 a base 10:

Canvi de base 16 a base 10

Conversió del nombre 4B en base 16 a base 10:

Per canviar entre qualsevol altres bases sempre podem convertir el número en base decimal per després convertir-lo a la base desitjada.

Els codis d'entrada/sortida

Els codis d’entrada/sortida permeten representar els símbols alfanumèrics de forma que cada símbol es pot representar amb una determinada combinació de bits. En aquests símbols alfanumèrics, a més de poder representar números, lletres i símbols, també es poden incloure símbols de control com Intro, Suprimir o Escape.

El nombre d’elements que podrem codificar depèn del nombre de bits que utilitzem per fer la combinació. Amb n bits podem codificar m símbols diferents. Per saber quants símbols podem codificar en funció dels bits, apliquem la següent fórmula: m = 2n. On m són els símbols possibles i n la quantitat de bits.

Aplicant aquesta fórmula, observem que amb 2 bits podem fer 4 combinacions diferents (m = 22 = 4) i amb 3 bits podem fer-ne 8 (m = 23 = 8). D’aquesta forma, si volem codificar 10 xifres decimals, necessitarem 4 bits com a mínim (m = 24 = 16).

Seria possible establir codis d’entrada/sortida de forma arbitrària, però els fabricants de sistemes informàtics acostumen a utilitzar els següents:

  • ASCII (American Standard Code for Information Interchange). És un codi de caràcters basat en l’alfabet llatí, tal com s’utilitza a l’anglès modern. Aquest sistema utilitza 7 bits per representar cada símbol. Amb aquest codi es poden representar els dígits del 0 al 9, les lletres majúscules i minúscules de l’A a la Z, caràcters especials i caràcters de control. En total podem representar 128 caràcters (m = 27 = 128).
  • ASCII Estès. A causa de la necessitat d’expressar caràcters que no estan inclosos al codi ASCII es van crear diferents versions que utilitzaven un bit més i que permetien passar d’un sistema de 128 caràcters a un de 256 caràcters. Es van anomenar codis ASCII estesos a tots els codis de 8 bits on coincidien els codis del 8 al 13 i del 32 al 126 amb els del codi ASCII. Com que 8 bits no són suficients per codificar tots els alfabets coneguts, cada zona va començar a utilitzar una especialització pròpia actualment inclosa a la norma ISO 8859. Cadascuna d’aquestes especialitzacions afegeix un número a la norma. Per exemple, la norma ISO 8859-1 representa els caràcters de l’alfabet espanyol mentre que la norma ISO 8859-6 representa els caràcters de l’alfabet àrab.
  • EBCDIC (Extended BCD Interchange Code). En aquest codi cada símbol es representa per una combinació de 8 bits. Amb aquest codi es poden representar caràcters alfanumèrics, de control i signes de puntuació. Cada caràcter està compost per 8 bits (1 byte) i representa un total de 256 caràcters (m = 28 = 256).
  • UNICODE. Aquest codi és un estàndard de codificació dissenyat per facilitar el tractament de la informació en diversos idiomes. Aquest codi inclou tots els caràcters d’ús comú en l’actualitat, la versió 13.0 inclou 143.859 caràcters provinents d’alfabets i col·leccions de símbols. Unicode defineix cada caràcter utilitzant un nom i identificador numèric anomenat punt de codi. La creació d’Unicode pretén reemplaçar els codis de codificació de caràcters existents, ja que molts d’ells es troben limitats en mida i no són compatibles en entorns plurilingües.
    Actualment, la majoria de sistemes informàtics han adoptat la norma Unicode, ja que és compatible amb molts dels sistemes operatius actuals permetent que un producte pugui estar orientat a diferents idiomes sense necessitat de redissenyar-lo. Són tres les formes de codificació Unicode utilitzades sota el nom UTF (Unicode Transformation Format), la UTF-8 orientada al byte, la UTF-16 codificada amb 16 bits i la UTF-32 codificada amb 32 bits.

Representació interna de la informació

La representació interna de les dades en un sistema informàtic està directament relacionada amb la seva arquitectura. Aquesta arquitectura també defineix la mida de les dades amb les quals es treballa, ja que el sistema informàtic està dissenyat per treballar amb unes cadenes de bits determinades. Actualment, la majoria d’equips tenen una arquitectura de 64 bits, tot i que també podem trobar equips que utilitzen arquitectures de 8, 16 o 32 bits.

La CPU d’un sistema informàtic, el sistema operatiu i el programari han de fer servir la mateixa arquitectura per poder-se comunicar els uns amb els altres. Que una arquitectura sigui de 64 bits significa que la informació s’emmagatzema i es tracta en blocs d’informació que tenen una mida de 64 bits. D’aquesta forma, tant l’amplada dels registres de la CPU, el bus d’adreces (que permet adreçar i per tant referenciar i accedir a la memòria RAM) o les instruccions, treballen amb blocs de mida 64 bits. Com més gran sigui la mida dels blocs, més informació poden contenir. Aquests blocs s’anomenen paraula. La mida d’aquests blocs d’informació es coneix com a mida de la paraula.

Quan les dades s’introdueixen a l’ordinador, es fa servir una codificació d’entrada/sortida, tant si són de tipus alfabètic, com ara una “T”, o de tipus numèric, com ara un número “2”. Però les dades de tipus numèric sovint s’utilitzen per operar aritmèticament amb elles, i la representació obtinguda amb els codis d’entrada/sortida no resulta adequada per fer operacions d’aquest tipus. A més la representació basada en un codi d’entrada/sortida utilitza massa bits si la comparem amb altres formes de representacions. Per exemple, el número “165” representat en ASCII ocupa 24 bits (0011 0001 0011 0110 0011 0101) i el mateix número representat en binari natural ocupa 8 bits (10100101).

Llavors, tenint present que el processador treballa amb paraules, es realitza una conversió de la notació d’entrada/sortida a una altra notació coneguda com a representació interna que dependrà del sistema informàtic, del llenguatge de programació utilitzat i de l’ús que es farà de les dades.

En passar les dades numèriques de format d’entrada/sortida a format intern s’obté un grau de compactació més gran i un format més adequat per a les operacions aritmètiques.

Hi ha diversos mètodes de representació interna segons el tipus de número que s’hagi de codificar (enter sense signe, enter amb signe, real, etc.) encaminats a representar el màxim rang de números amb el mínim espai i a facilitar les operacions matemàtiques posteriors.

Per representar una dada numèrica sense signe (enters positius i el zero) es representa el valor absolut del nombre sencer en binari natural i s’utilitzen tots els bits de la paraula per codificar el número. Això significa que amb una mida de paraula n es poden representar 2n valors diferents, de forma que el rang representable està entre 0 i 2n-1.

Per representar una dada amb signe, tant positiva com negativa, es reserva un bit de tots els disponibles pel signe mentre que la resta de bits representen el valor. Per això amb aquests mètodes el rang representable és menor. A continuació s’expliquen els mètodes més utilitzats de representació interna de nombres enters amb signe:

  • Mòdul i signe
  • Complement a 1
  • Complement a 2
  • Excés a 2(n-1)

Mòdul i signe:

Per representar els nombres seguint el mètode de mòdul i signe cal passar a binari el valor i col·locar-lo en el byte de dreta a esquerra. Cal recordar que el bit en què es guarda el signe se situa a la part esquerra del byte, utilitzarem un 1 per representar el signe negatiu i un 0 per representar el positiu. Les posicions no utilitzades s’omplen amb zeros.

Exemple de mòdul i signe

Representeu el nombre 75(10 en mòdul i signe:

  1. Representem el nombre 75(10 en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Resultat: 01001011

Representeu el nombre -75(10 en mòdul i signe:

  1. Representem el nombre 75(10 (positiu) en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Canviem el bit de signe a negatiu per representar el -75: 11001011
  4. Resultat: 11001011

En tots els mètodes que explicarem a continuació, suposem que treballem amb un sistema informàtic de lògica positiva, en què la paraula és d’un byte i que el bit del signe és a la part esquerra del byte.


Complement a 1 (C 1):

El mètode de complement a 1 (C 1) representa els nombres positius igual que el mètode de mòdul i signe. Però als nombres negatius cal canviar els bits 0 per 1 i els 1 per 0 després de convertir-lo a binari.

Exemple de complement a 1

Representeu el nombre 75(10 en complement a 1:

  1. Representem el nombre 75(10 en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Resultat: 01001011

Representeu el nombre -75(10 en complement a 1:

  1. Representem el nombre 75(10 (positiu) en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Canviem els bits 0 per 1 i els 1 per 0: 10110100
  4. Resultat: 10110100


Complement a 2 (C 2):

El mètode de complement a 2 (C 2) representa els nombres positius igual que en el mètode de mòdul i signe. Per als nombres negatius es representa el nombre igual que el mètode de complement a 1 i se suma el valor 1 al bit que es troba més a la dreta.

Suma binaria / Suma decimal

La suma binaria és anàloga a la suma decimal. Les possibles combinacions són: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 i 1 + 1 = 10, en aquest últim cas escrivim 0 al resultat de la columna i ens emportem 1 a la següent columna, com es fa al sistema decimal.

Exemple de complement a 2

Representeu el nombre 75(10 en complement a 2:

  1. Representem el nombre 75(10 en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Resultat: 01001011

Representeu el nombre -75(10 en complement a 2:

  1. Representem el nombre -75(10 (positiu) en binari: 75(10=1001011(2
  2. Representem en paraula d’un byte: 01001011
  3. Canviem els bits 0 per 1 i els 1 per 0: 10110100
  4. Sumen 1: 10110100+1=10110101
  5. Resultat: 10110101


Excés a 2(n-1):

En aquest tipus de representació, la variable n representa el nombre de bits que forma la paraula. Per fer aquesta transformació farem servir la següent fórmula: Valor = 2(n-1) + nombre, en el cas que el nombre sigui positiu i Valor = 2(n-1) - nombre, si el nombre és negatiu. Després passem el valor a binari i el col·loquem en el byte.

Exemple d'excés a 2

Representeu el nombre 75(10 en excés a 2:

  1. Realitzem l’operació aplicant la fórmula corresponent: Valor = 2(n-1) + 75 = 2(8-1) + 75 = 128 + 75 = 203
  2. Representem el nombre 203(10 en binari: 203(10=11001011(2
  3. Representem en paraula d’un byte: 11001011
  4. Resultat: 11001011

Representeu el nombre -75(10 en excés a 2:

  1. Realitzem l’operació aplicant la fórmula corresponent: Valor = 2(n-1) - 75 = 2(8-1) - 75 = 128 - 75 = 53
  2. Representem el nombre 53(10 en binari: 53(10=110101(2
  3. Representem en paraula d’un byte: 00110101
  4. Resultat: 00110101

Mesura de la informació

A la informàtica, les mesures d’informació s’utilitzen per calcular la quantitat d’informació que es pot processar, emmagatzemar o enviar entre els sistemes informàtics. La unitat mínima d’informació és el bit (b). Un bit és la unitat mínima d’informació que s’utilitza al món informàtic i només pot emmagatzemar un 0 o un 1.

Si unim 8 bits obtenim un byte (B), que també és una unitat molt petita d’emmagatzematge. Amb un byte podem representar 256 combinacions diferents, des de 00000000 fins a 11111111.

Per parlar de grans volums d’informació utilitzem els múltiples del byte que podeu observar a la taula.

Taula Prefixos d’ús convencional en informàtica
NomSímbol SIValor SINomSímbol ISO/IECValor ISO/IEC
kilobyte kB kibibyte KiB
megabyte MB mebibyte MiB
gigabyte GB gibibyte GiB
terabyte TB tebibyte TiB
petabyte PB pebibyte PiB
exabyte EB exbibyte EiB
zettabyte ZB zebibyte ZiB
yottabyte YB yobibyte YiB

Tradicionalment, al món informàtic, 1 kB (kylobyte) corresponia a 1024 bytes, però segons el sistema internacional d’unitats 1 kB (kylobyte) la correspondència era de 1000 bytes com passa a la resta d’unitats de mesura. Això generava certa controvèrsia i era fàcil cometre errors. Per solucionar aquesta confusió, la Comissió Electrotècnica Internacional va publicar l’any 1998 un apèndix a l’estàndard ISO/IEC 80000 on es definien els prefixos binaris, naixent així la unitat kibibyte (KiB) per designar la correspondència entre 1 KiB i 1024 bytes; a partir d’aquest moment es considera la unitat de kilobyte vàlida únicament per la correspondència entre 1 kB i 1000 bytes.

Sistema Internacional d'unitats (SI)

És el sistema d’unitats que s’utilitza en quasi tots els països del món i que permet definir qualsevol magnitud física.

Exemple de conversió d'unitats de mesura

Per què el meu disc dur mostra menys capacitat de la que indica l’etiqueta del fabricant?
Els fabricants utilitzen les unitats de mesura d’informació seguint el sistema internacional mentre que alguns sistemes operatius funcionen utilitzant el sistema de numeració binari i segueixen el sistema ISO/IEC 80000.


Un disc dur de 250 GB té aproxidament 250.000.000.000 bytes (2.000.000.000.000 bits).


Si aquests mateixos bits els convertim a GiB veiem que el disc dur té 232 GiB.


Per aquest motiu, el nostre sistema operatiu ens mostra una capacitat de 232 GiB per un disc dur de 250 GB.

El sistema operatiu

El sistema operatiu és el programari més important d’un sistema informàtic. Aquest programari dona a l’usuari la possibilitat d’interactuar amb el sistema informàtic de forma fàcil, donant-li la possibilitat de gestionar la informació i els recursos disponibles al sistema informàtic.

Podem definir els sistemes operatius tenint en compte les seves dues funcions bàsiques. En primer lloc, els sistemes operatius proporcionen als usuaris i a les aplicacions una interfície d’accés als recursos de maquinari i, en segon lloc, gestionen aquests recursos.

El sistema operatiu gestiona tots els recursos de maquinari, proporciona la base per l’execució del programari d’aplicació i fa d’interfície entre l’equip i els usuaris.

La interfície d’accés als recursos de maquinari que proporciona el sistema operatiu permet als usuaris i a les aplicacions accedir al maquinari del sistema informàtic. La interfície més coneguda és la interfície gràfica d’usuari que permet a l’usuari convencional accedir al sistema d’una forma amigable i ens dona la imatge del sistema operatiu que hem adquirit.

Sobre la gestió dels recursos del maquinari, entenent per recurs qualsevol component de maquinari del sistema informàtic, el sistema operatiu s’encarrega de la planificació dels accessos a aquests components i de l’emmagatzematge de la informació en ells.

Elements i estructura del sistema operatiu

Un sistema operatiu està format per diversos elements que, units entre ells, donen forma a l’estructura bàsica del sistema informàtic. Els elements principals que formen un sistema operatiu són els següents:

  • Processos. Un procés és, en essència, un programa en execució. Quan un usuari té un programa emmagatzemat en el disc dur del seu sistema informàtic, per exemple, la calculadora de Windows, pot executar-lo. En el moment que el programa de la calculadora de Windows es carrega en memòria, és considerat un procés. Cada procés (o programa en execució) manté una llista de les ubicacions en memòria on s’emmagatzema. Aquest conjunt d’ubicacions en memòria s’anomena espai d’adreces de memòria del procés.
  • Espai d’adreces. Els sistemes informàtics tenen una memòria principal limitada en quantitat. Tan sols els programes i les dades que es troben emmagatzemades en memòria poden estar en execució. Aquesta memòria principal és gestionada pel sistema operatiu. El sistema operatiu s’encarrega d’assignar-li a cada programa un espai d’adreces, és a dir, un conjunt d’ubicacions que representa la quantitat de memòria que pot fer servir.
  • Sistema d’arxius. El sistema d’arxius és un dels elements clau d’un sistema informàtic. El sistema d’arxius permet al sistema informàtic llegir, crear, escriure i eliminar arxius. El sistema operatiu organitza aquesta informació en estructures de directoris que permeten agrupar arxius. Aquestes estructures de directoris i arxius acostumen a estar organitzades en forma d’arbre.
  • Sistema d’entrada/sortida. Els sistemes informàtics disposen d’elements físics per adquirir informació (entrada) i mostrar-la (sortida). El sistema operatiu té un sistema de gestió d’entrada/sortida que està format per una part comuna, utilitzable per tots els dispositius i una part específica, determinada per cadascun dels dispositius concrets, anomenada controlador.
  • Sistema de protecció. Té molta importància dins del tractament de la informació que aquesta estigui protegida de forma correcta i que només puguin accedir els processos que la necessiten. El manteniment de l’administració segura de les dades és responsabilitat del sistema operatiu.
  • Intèrpret d’ordres (Shell) i interfície gràfica d’usuari (GUI). L’intèrpret d’ordres és la interfície principal entre un usuari i el sistema operatiu. Permet donar instruccions al sistema i funciona en mode text. Els sistemes operatius moderns fan servir la interfície gràfica d’usuari que és un programa que s’executa sobre el sistema operatiu i permet donar aquestes instruccions al sistema d’una forma més simple i agradable.

Els diferents elements que componen un sistema operatiu estan relacionats entre ells. Aquestes relacions, el disseny i l’organització dels elements és el que s’anomena estructura del sistema operatiu. Podem classificar els sistemes operatius segons la seva estructura en els següents tipus:

  • Sistemes monolítics. En aquest tipus d’estructura, el sistema operatiu és un únic programa molt extens, escrit en un únic bloc anomenat nucli, sobre el qual funcionen les diferents aplicacions dels usuaris. En aquest tipus d’estructura, el codi del sistema operatiu es fa difícil d’entendre i resulta difícil gestionar els errors d’aquest. Com a avantatge principal d’aquesta estructura trobem una millora del rendiment, ja que com el sistema està escrit en un únic bloc no cal transferir dades entre diferents blocs i això millora la velocitat de transferència de dades. L’única transferència de dades que es produeix és la que es dona entre les aplicacions d’usuaris i el nucli.
  • Sistemes de capes. En aquest tipus d’estructura, el sistema operatiu acostuma a organitzar-se en nivells o capes. Cada capa acostuma a tenir un nivell de privilegi, estant les funcions més repetitives i més properes al maquinari integrades a la capa de major privilegi. Les capes més prioritàries i properes al maquinari poden executar una sèrie d’instruccions prohibides a les menys prioritàries. Cada capa s’executa de forma independent i només es pot comunicar amb la següent de forma que permet al sistema operatiu controlar la propagació d’errors fàcilment. La capa més propera al maquinari, s’anomena nucli i és la que s’encarrega directament de gestionar el maquinari. La capa més allunyada del nucli és la capa d’usuari que proporciona a l’usuari una interfície d’ús amb el sistema operatiu. Aquest tipus d’estructura permet fer modificacions al sistema operatiu de forma fàcil, ja que permet la modificació de les capes de forma independent. Com a desavantatge trobem que disminueix el rendiment del sistema a causa de la transferència de dades entre capes.
  • Sistemes micronuclis. En aquest tipus d’estructura es redueix el codi del nucli del sistema operatiu perquè només executi les funcions mínimes, ja que qualsevol error que es produeix al nucli deixa el sistema aturat. D’aquesta forma, es deixen al nucli només les operacions imprescindibles que han d’executar-se amb el nivell màxim de privilegis i aquest nucli passa a anomenar-se micronucli. Amb aquesta estructura es vol aconseguir dividir el sistema en mòduls petits on només un d’ells, el micronucli, s’executa amb els màxims privilegis mentre que la resta s’executen com processos d’usuari. D’aquesta forma, si un d’aquests processos falla, no falla tot el sistema.
  • Sistemes client-servidor. Aquesta estructura defineix dos tipus de processos, els processos servidors que proporcionen uns serveis específics i els processos clients que utilitzen aquests serveis. En aquesta estructura la capa inferior, el nucli, s’executa amb el nivell màxim de privilegis. La comunicació entre els processos client i servidor es fa transferint dades entre ells. Aquesta transferència de dades pot donar-se en un mateix sistema informàtic o entre dos equips diferents mitjançant una xarxa, aquest concepte permet extrapolar aquesta estructura als sistemes operatius en xarxa. Alguns sistemes client-servidor permeten estructures de sistemes micronuclis i, en aquest cas, s’anomenen sistemes híbrids.
  • Sistemes virtuals. En aquest cas, a l’estructura client-servidors es crea una capa de virtualització on es pot instal·lar i executar un sistema operatiu. Aquesta capa de virtualització és l’encarregada de gestionar les sol·licituds de maquinari. Les màquines virtuals creen un entorn d’execució amb un duplicat abstracte del maquinari real. En un sistema informàtic es poden allotjar tants sistemes operatius com permeti el maquinari real. Cadascuna d’aquestes màquines virtuals rep els recursos de maquinari de forma independent i utilitza un espai d’ubicació al disc dur independent.
  • Sistemes exonuclis. En aquesta estructura, molt semblant a la de sistemes virtuals, les màquines virtuals creades no veuen tot el maquinari de la maquinària, sinó que únicament poden accedir a una part. D’aquesta forma cada usuari pot accedir a una partició dels recursos de maquinari amb la seva màquina virtual. A la capa amb més privilegis, el nucli, hi ha un programa anomenat exonucli que assigna part dels recursos a les màquines virtuals i comprova que cap màquina utilitzi els recursos d’una altra.

Classificació dels sistemes operatius

Els sistemes operatius han experimentat un creixement molt gran des de la dècada del 1950 fins als nostres dies. Durant aquest temps s’han desenvolupat una gran varietat de sistemes operatius, cadascun amb les seves pròpies característiques i tècniques clau per millorar el seu rendiment.

A causa de la varietat de sistemes operatius, podem fer la seva classificació segons diversos criteris. Per exemple, podem classificar els sistemes operatius segons el nombre d’usuaris que poden utilitzar el sistema, els processos que el sistema pot realitzar simultàniament, el nombre de processadors amb els quals compta l’equip o el propòsit del sistema entre altres factors.

Segons el nombre d’usuaris que poden utilitzar els recursos de forma simultània, els podem classificar en sistemes monousuaris o multiusuaris:

  • Monousuari. Aquest tipus de sistema només pot atendre a un únic usuari a la vegada. En aquest sistema tots els recursos estan a disposició d’un sol usuari i no poden ser utilitzats per ningú més fins que aquest usuari finalitzi la sessió. Exemples de sistemes operatius monousuari són: MS-DOS (MicroSoft), OS/2 (IBM), Windows 9x (MicroSoft).
  • Multiusuari. Aquest tipus de sistema pot atendre a més d’un usuari a la vegada de forma que diferents usuaris poden utilitzar simultàniament els recursos del sistema. Aquests sistemes poden estar configurats de forma diferent segons l’usuari que l’utilitzi. Exemples de sistemes operatius multiusuari són: UNIX i les seves variants, macOS (Apple Inc.) o Windows 10 (Microsoft).

Segons el números de tasques que pot executar de forma simultània, es poden classificar en monotasca o multitasca:

  • Monotasca. En aquest cas el sistema només pot executar una tasca i fins que no acabi no pot començar una altra. D’aquesta forma, els recursos del sistema només es poden dedicar a una única tasca fins que finalitzi la seva execució. Un exemple de sistema operatiu monotasca és MS-DOS.
  • Multitasca. En aquest tipus de sistema, el sistema operatiu simula l’execució de més d’una tasca i dona la sensació a l’usuari que s’estan executant diferents tasques a la vegada. Aquest tipus de sistema operatiu pot executar diferents tasques simultàniament de forma real en aquells equips que disposin de més d’un microprocessador. Si l’equip només disposa d’un microprocessador, la CPU compartirà el temps d’ús del processador entre els diferents programes que ha d’executar. D’aquesta forma, tots els processos necessitaran individualment més temps per executar-se però si ho comparem amb un sistema monotasca el temps mitjà d’espera serà menor. Exemples de sistemes operatius multitasca són: Windows 10, macOS i els sistemes GNU/Linux i UNIX.

Segons el nombre de processadors que pot gestionar el sistema es classifiquen en monoprocessador i multiprocessador:

  • Monoprocessador. El sistema només pot gestionar un processador. En aquest cas el sistema pot ser monousuari, multiusuari, monotasca o multitasca. Exemples de sistemes operatius monoprocessador són: MS-DOS i Windows 9x.
  • Multiprocessador. El sistema pot gestionar més d’un processador perquè treballin de forma conjunta durant l’execució de programes. La potència dels processadors pot utilitzar-se de forma equilibrada o el sistema pot repartir les tasques que està realitzant entre els processadors de l’equip informàtic, de forma que pot passar que un processador estigui treballant mentre que els altres estan aturats. Exemples de sistemes operatius multiprocessadors són: Windows 10, macOS i els sistemes GNU/Linux i UNIX.

Segons el tipus de propòsit al que estigui destinat el sistema operatiu es poden classificar en sistemes de propòsit general o especial:

  • Propòsit general. Aquests sistemes es caracteritzen per la capacitat de poder executar qualsevol mena d’aplicació informàtica. Alguns exemples són els sistemes operatius macOS, GNU/Linux i Windows.
  • Propòsit especial. Són sistemes dissenyats exclusivament per donar servei a determinats equips. Aquí estarien classificats els sistemes operatius per dispositius intel·ligents com televisors o rellotges. Per exemple, el sistema operatiu webOS de LG.

Per últim podem classificar els sistemes operatius en dos grans grups. Els sistemes operatius propietaris i els sistemes operatius lliures:

  • Els sistemes operatius propietaris són aquells sistemes que tenen limitats els drets d’ús, copia, distribució i modificació i que no posen el seu codi font a disposició de l’usuari. Normalment els drets d’autor d’aquests tipus de sistemes operatius pertanyen a una empresa. Actualment, els sistemes operatius propietaris més coneguts són Windows de Microsoft i macOS d’Apple.
  • Els sistemes operatius lliures són aquells que compleixen la definició de programari lliure. El programari lliure és aquell programari que es distribueix juntament amb el codi font i permet utilitzar, copiar, distribuir i modificar el programari amb la condició que la nova versió de programari inclogui el codi font original. Per exemple, algunes distribucions del sistema operatiu GNU/Linux són exemples d’aquests tipus de sistemes.

Evolució històrica

Els sistemes operatius han patit una gran evolució des dels seus inicis fins a l’actualitat. Els sistemes operatius sempre han estat molt relacionats amb el maquinari dels equips informàtics on s’executaven, per això per poder entendre l’evolució dels sistemes operatius, cal conèixer també el maquinari dels equips informàtics que els han anat allotjant.

La primera computadora digital va ser dissenyada pel matemàtic anglès Charles Babbage que va acabar el seu primer disseny funcional l’any 1835. No es va poder considerar un sistema informàtic perquè era una màquina purament mecànica i no tenia cap mena de programari. Charles Babbage es va adonar que necessitava programari per la seva màquina i per això va contractar a Ada Lovelace considerada la primera programadora a la història de la informàtica. Tot i que Ada Lovelace va escriure alguns programes no van aconseguir dotar de sistema operatiu a la màquina creada per Babbage. Tot i això, podem considerar a Charles Babbage com el creador dels sistemes informàtics moderns.

Després dels esforços de Charles Babbage i Ada Lovelace, no va haver-hi més progressos fins a la Segona Guerra Mundial quan Johan Atanasoff i Clifford Berry van construir el primer sistema informàtic digital funcional a la Universitat de l’estat d’Iowa que utilitzava 300 tubs de buit. Al mateix temps, Konrad Zuse a Berlín va construir el sistema informàtic Z3. I el 1944 es van construir les màquines Colossus a Bletchley Park (Anglaterra), Mark I a Hardvard i ENIAC a la Universitat de Pennsylvania.

Tub de buit

És un component electrònic utilitzat per amplificar, commutar o modificar un senyal elèctric mitjançant el control del moviment dels electrons en un espai buit (o amb certs gasos seleccionats) a molt baixa pressió.

Aquestes màquines eren molt primitives i lentes. Tota la seva programació es realitzava exclusivament en llenguatge màquina. Els llenguatges de programació encara no existien i, per tant, encara no s’havia dissenyat un sistema operatiu. Per fer funcionar aquestes màquines, l’usuari inseria un tauler de connexions a la màquina per controlar les seves funcions bàsiques. La utilitat d’aquestes màquines es reduïa a solucionar càlculs matemàtics bastant simples, com obtenir sinus, cosinus i logaritmes.

En aquesta època, el mateix usuari o grup d’usuaris s’encarregaven de programar, fer funcionar i mantenir cada màquina. A principis de la dècada de 1950, es va produir una millora important amb la introducció de les targetes perforades. Les targetes perforades permetien escriure un programa a la targeta i llegir-lo en comptes d’utilitzar els taulers de connexions i van reemplaçar a aquests.

Ordinadors centrals o 'mainframe'

La creació del transistor a mitjans de la dècada de 1950 va revolucionar el món informàtic. Van desaparèixer els tubs de buit i les màquines es van poder fabricar més petites, barates i amb un menor consum. Aquestes màquines, conegudes com a ordinadors centrals o mainframe, en anglès, estaven emmagatzemades en habitacions especials amb aire condicionat i un grup d’usuaris s’encarregaven d’utilitzar-les. Tot i que s’havia abaratit el cost de producció, només les grans empreses, les universitats o les agències governamentals podien assumir el cost d’aquestes màquines.

Transistor

Dispositiu electrònic semiconductor utilitzat per generar un senyal de sortida en resposta a un senyal d’entrada. Les seves funcions són d’amplificador, oscil·lador, commutador o rectificador.

En aquestes màquines ja no hi havia un únic usuari responsable de totes les operacions que es feien al sistema informàtic. Els dissenyadors de les màquines ja no eren els encarregats del manteniment i els programadors donaven els seus programes als operaris de les màquines que s’encarregaven del funcionament mentre ells esperaven els resultats.

El procés que se seguia amb aquestes màquines consistia en el fet que el programador perforava les targetes corresponents al programa i les dades. Aquest paquet es passava a l’operari que s’encarregava d’introduir les targetes a una petita computadora que traslladava la informació de les targetes perforades a cintes magnètiques que eren dispositius més ràpids. D’aquesta forma en una cinta podia haver-hi una cua de treballs amb diferents programes, que a més tenien la possibilitat d’utilitzar biblioteques de funcions comunes contingudes a la cinta.

Després de la conversió de targeta a cinta magnètica, l’operador portava les cintes a l’habitació del sistema informàtic principal on muntava les unitats de cinta i carregava un programa especial, el sistema operatiu, que llegia el treball de la cinta, l’executava i guardava la informació en altres cintes de sortida.

Aquestes cintes de sortida es tornaven a inserir a la petita computadora que tornava a convertir els resultats de la cinta magnètica a targetes perforades o a paper utilitzant una impressora. Aquesta forma de treball es va denominar sistema de processament per lots.

Juntament amb aquestes màquines, va aparèixer el llenguatge assemblador i, més tard, el FORTRAN.

Aquestes computadores es van utilitzar principalment per càlculs científics, com la resolució d’equacions diferencials. Els sistemes operatius més coneguts d’aquestes màquines van ser FMS (Fortran Monitor System) i IBSYS, dos sistemes operatius pel sistema informàtic IBM 7094, el més conegut de l’època.

Minicomputadors

A principis de la dècada de 1960, la majoria de fabricants de sistemes informàtics produïen dos tipus de sistemes informàtics diferents. Per una part, estaven els sistemes informàtics més potents, com el IBM 7094 i per altra els petits sistemes informàtics que s’encarregaven d’escriure cintes i imprimir dades.

Circuit integrat

Estructura de petites dimensions, normalment de silici, sobre la que s’insereixen circuits electrònics i que es troba protegit per un encapsulat plàstic o ceràmic.

IBM va crear el sistema informàtic IBM 360, un sistema petit però potent que combinava els avantatges dels dos sistemes anteriors. Aquesta màquina era capaç de realitzar una gran quantitat de càlculs i estava pensada per poder ser utilitzada per altres tipus d’usuaris i no només programadors o científics.

Aquesta va ser un dels primers sistemes informàtics en utilitzar circuits integrats i això va permetre abaratir els costos de producció i oferir un major rendiment en comparació als sistemes operatius anteriors. El seu sistema operatiu es va anomenar OS/360 i estava format per milions de línies en llenguatge assemblador.

En aquesta dècada van sorgir algunes tècniques importants pel funcionament dels sistemes operatius. La més important va ser la multiprogramació. La multiprogramació és una tècnica que permet que dos o més processos es puguin allotjar a la memòria principal del sistema i puguin ser executats de forma alternativa.

D’aquesta forma, la CPU ja no s’havia d’aturar durant les operacions d’entrada/sortida, com passava als sistemes operatius anteriors, ja que la memòria podia executar aquest i altres treballs de forma concurrent.

Una altra de les tècniques que es va popularitzar en aquesta dècada va ser la gestió de cues o spooling en anglès, que permetia que el sistema informàtic utilitzes un magatzem ubicat al disc dur per anar introduint els treballs pendents d’execució. D’aquesta forma, es podien llegir els treballs emmagatzemats a les targetes perforades o cintes i anar col·locant-los al disc dur a mesura que el magatzem s’anava buidant.

Un altre desenvolupament important durant aquesta dècada va ser el creixement de sistemes informàtics més petits, com el PDP-1 el 1960, que van donar lloc a una nova indústria gràcies a la seva practicitat.

L’any 1969, Ken Thompson, un dels científics del laboratori Bell, va utilitzar un d’aquests sistemes informàtics, el PDP-7, per escriure un nou sistema operatiu que va acabar convertint-se en el sistema operatiu UNIX que es va fer popular al món acadèmic, les agències governamentals i moltes companyies. Com que aquest codi font estava disponible, diverses organitzacions van desenvolupar les seves pròpies versions, com System V, d’AT&T, i BSD (Berkeley Software Distribution) de la Universitat de Califòrnia en Berkeley.

Microordinadors

La generació de l’ordinador personal va aparèixer gràcies a la possibilitat d’integrar milers de transistors i circuits en un únic circuit imprès en una placa de silici. Aquesta evolució tecnològica va permetre disminuir la mida i els preus dels sistemes informàtics i va fer possible que arribessin a una gran quantitat d’usuaris.

A principi de la dècada de 1980, IBM es va posar en contacte amb Bill Gates per obtenir una llicència d’ús pel seu intèrpret BASIC i després que Digital Research, la companyia més important de disseny de sistemes operatius de l’època, rebutgés la possibilitat de crear un nou sistema operatiu per ells, li van oferir aquesta possibilitat a Bill Gates.

Bill Gates va comprar un sistema operatiu anomenat DOS (Disk Operating System) a Seattle Computer Products i va oferir a IBM el paquet DOS/BASIC. IBM va demanar algunes modificacions al sistema operatiu de forma que Bill Gates, que havia creat l’empresa Microsoft, i l’escriptor de DOS, de nom Tim Paterson, el van redissenyar i van anomenar-lo MS-DOS (Microsoft Disk Operation System).

Un factor clau de l’èxit de MS-DOS va ser la decisió de Microsoft de vendre el sistema operatiu a les empreses de maquinari perquè l’incloguessin amb el maquinari, en contraposició a la decisió de Digital Research que venia el seu sistema operatiu conegut com a CP/M als usuaris finals.

Als sistemes operatius CP/M, MS-DOS i altres sistemes operatius de la dècada de 1980, els usuaris havien d’introduir les instruccions utilitzant una interfície en mode text que era poc amigable i intuïtiva. Això va anar canviant quan els investigadors de Xerox PARC van adoptar la idea d’una interfície gràfica per l’usuari (GUI), amb finestres, icones, menús i ratolí.

Steve Jobs va veure el potencial de la interfície gràfica en una visita a Xerox PARC i després d’alguns intents va crear la màquina Macintosh d’Apple que va ser un èxit enorme perquè proporcionava una interfície en mode gràfic i estava dissenyada per usuaris que no necessitaven grans coneixements informàtics.

Microsoft, influenciat per l’èxit de Macintosh, va crear un sistema basat en interfície gràfica anomenat Windows.

L’altre gran competidor al món de les computadores personals va ser UNIX i totes les seves variants. Tot i que UNIX va començar tenint una forta presència sobretot al món empresarial, les seves variants cada cop van començar a estar més presents als equips personals gràcies a la creació de Linux per Linus Torvalds l’any 1991.

Des de finals de la dècada de 1990, existeixen tres sistemes operatius d’ús generalitzat que són els més utilitzats als ordinadors personals; aquests sistemes són macOS d’Apple, GNU/Linux i Windows de Microsoft.

A principis de la dècada de 1990, Psion va llençar al mercat una PDA (Assistent Digital Personal), un dels primers dispositius de computació mòbil. Aquests dispositius van començar utilitzant un sistema operatiu anomenat EPOC que posteriorment va evolucionar fins a convertir-se en Symbian, un sistema operatiu utilitzat per diferents empreses de dispositius mòbils, com Nokia, Motorola i Samsung. A partir de la dècada de 2000 van sortir al mercat altres sistemes operatius per dispositius mòbils com Windows Mobile o iPhone OS que van anar substituint al sistema operatiu Symbian que va deixar de ser el sistema operatiu més utilitzat l’any 2010.

L’any 2007 es va presentar el sistema operatiu Android, un sistema operatiu mòbil basat en una versió modificada del nucli de Linux i altre programari lliure. Android es va dissenyar per dispositius mòbils amb pantalla tàctil com telèfons intel·ligents i tauletes. Actualment Android desenvolupat per Google és el sistema operatiu més utilitzat als dispositius mòbils.

Tendències

A les últimes dècades, les millores en el maquinari i l’abaratiment dels costos han fet que en l’actualitat els dispositius mòbils que funcionen amb sistemes operatius com ara Android (Google) o iOS (Apple) tinguin tanta potència o més que un ordinador que funciona amb un sistema operatiu d’estació de treball, com ara, Windows, macOS o Linux. Aquesta realitat fa que els dispositius mòbils s’estiguin convertint en dispositius de propòsit general, així com els sistemes operatius que els governen.

Google, la companyia al darrere del sistema operatiu Android, també ha dissenyat un sistema operatiu de propòsit general anomenat ChromeOS que s’executa en equips portàtils o de sobretaula. Avui dia, tant un dispositiu amb Android com un amb ChromeOS executen les mateixes aplicacions de forma indistinta. Igual passa amb Apple Inc. que amb el projecte Marzipan pretén que les aplicacions programades per iOS puguin executar-se en macOS i a l’inrevés. La tendència en tots dos casos és la convergència dels diferents sistemes en un únic entorn on es podran executar les aplicacions independentment de si es tracta d’un dispositiu mòbil o un equip de sobretaula.

Funcions del sistema operatiu

El sistema operatiu és l’encarregat de gestionar els recursos de l’equip per optimitzar el seu funcionament i permetre l’execució d’altres aplicacions. Aquesta gestió es pot dividir en els següents blocs:

  • Ajuda a l’usuari. El sistema operatiu facilita l’ús del sistema informàtic a l’usuari proporcionant-li un entorn de fàcil utilització per incrementar la seva productivitat i facilitar-li el diàleg amb el maquinari.
  • Gestió de processos. El sistema operatiu permet que els programes puguin executar-se i interactuar amb la part del maquinari del sistema informàtic. És l’encarregat de gestionar l’estat dels processos i planificar els treballs del processador per obtenir el rendiment més gran possible.
  • Gestió de dispositius d’entrada/sortida. El sistema operatiu ha de poder enviar i rebre ordres dels dispositius perifèrics.
  • Gestió del sistema d’arxius. El sistema ha de permetre les operacions de gestió d’arxius i directoris, com la creació, eliminació o modificació d’arxius i directoris entre altres.
  • Gestió de la memòria. El sistema operatiu ha de gestionar la memòria del sistema informàtic assignant-la als diferents programes que executa per obtenir el millor rendiment possible.
  • Protecció del sistema. El sistema operatiu ha de garantir la seguretat de la informació dels usuaris i evitar intromissions d’altres usuaris de forma voluntària o no intencionada.
  • Monitoratge interna. El sistema ha de monitorar totes les operacions que realitza per detectar els errors que es puguin donar en dispositius d’entrada/sortida, memòria, execucions de programes o sistema d’arxius. Davant d’aquests errors, el sistema ha de donar l’avís corresponent a l’usuari i mantenir-se en funcionament.

En resum, podem dir que els sistemes operatius tenen tres funcions bàsiques que són ajudar a l’usuari, monitorar i protegir el sistema i gestionar els recursos del sistema informàtic.

Els recursos d’un sistema informàtic són els components físics que formen part d’aquest, com el processador, la memòria i els dispositius d’entrada/sortida. El sistema operatiu s’encarrega d’assignar aquests recursos als diferents programes que els sol·liciten i moltes vegades ho fan inclús de forma simultània.

Els sistemes operatius disposen de diferents mecanismes per controlar l’assignació de recursos i resoldre els conflictes que es produeixen. També porta l’administració de la càrrega que assumeixen els diferents recursos, cosa que li permet gestionar les necessitats de l’usuari.

Gestió d'arxius

Dins d’un sistema informàtic, la informació s’emmagatzema als dispositius d’emmagatzematge en blocs de forma que els processos que executa el sistema poden fer dues operacions: llegir el bloc o escriure el bloc. Aquesta informació, habitualment, s’estructura de forma lògica utilitzant arxius i directoris. Els arxius i directoris són una abstracció que permet als processos i als usuaris treballar amb les dades que contenen aquests blocs d’una forma molt més simple.

La mida més habitual d’un bloc d’un disc dur és de 512 bytes. Als discos durs aquests blocs s’anomenen sectors i és la mida mínima que un disc dur pot llegir i escriure.

Un arxiu és un conjunt lògic de dades amb les quals treballen els processos.

Els arxius es poden crear, llegir, eliminar, reubicar, comprimir, executar, etc. Existeixen arxius de diferents tipus, segons el contingut de la informació que emmagatzemen, des d’arxius de programes fins arxius de dades comunes. El sistema també permet protegir les operacions que es poden fer amb els arxius utilitzant una sèrie de permisos.

Cada sistema operatiu utilitza el seu propi sistema d’arxius. El sistema d’arxius permet que la informació es pugui organitzar de forma lògica per permetre una gestió ràpida i senzilla.

El sistema d’arxius determina com s’emmagatzema la informació en un dispositiu d’emmagatzematge i quines operacions es poden fer amb ella.

Per gestionar el sistema d’arxius d’un sistema informàtic, el sistema operatiu ha de dur a terme les següents funcions:

  • La gestió dels directoris i arxius i de les seves rutes d’accés
  • La gestió de les operacions i permisos sobre els arxius i directoris.
  • La gestió dels accessos simultanis a un mateix arxiu o directori.
  • La gestió de l’espai.
  • La gestió dels errors i el manteniment de la consistència del sistema d’arxius.

La gestió dels directoris i arxius i de les seves rutes d'accés

Els arxius i directoris s’emmagatzemen als dispositius d’emmagatzematge. El sistema operatiu a més de poder accedir al contingut de l’arxiu o directori també pot visualitzar informació relacionada amb les seves propietats, com el nom, tipus, propietari, dates de creació o modificació i mida, entre altres dades.

La informació emmagatzemada és important que sigui persistent, és a dir, que pugui ser consultada en qualsevol moment, independentment de si el procés que l’ha creada ha deixat d’estar en execució. Per aconseguir-ho, l’usuari li donarà un nom a l’arxiu que passarà a estar disponible per la resta de processos amb aquest nom. Depenent del sistema operatiu, aquest nom d’arxiu tindrà des de 8 fins a 255 caràcters de longitud, poden diferenciar-se (o no) les majúscules de les minúscules i poden contenir o no una segona part en el nom anomenada extensió, separada de la primera pel caràcter punt (“.”), que identifica el tipus d’arxiu del qual es tracta.

Cal considerar que un disc dur pot contenir milers o fins i tot milions d’arxius i, per tant, es fa necessari l’organització dels arxius. L’eina habitual als sistemes operatius per realitzar aquesta organització són els directoris, també coneguts com a carpetes.

Un directori és una agrupació d’arxius o d’altres directoris que s’agrupen segons el seu contingut seguint uns criteris que resultin naturals per als usuaris.

Quan s’organitza la informació d’un dispositiu d’emmagatzematge en directoris, s’aconsegueix separar els arxius dels diferents programes i agrupar els arxius amb contingut similar. Si hi ha molts arxius dins d’un directori, es poden agrupar creant subdirectoris. En realitat, directori i subdirectori són dues formes d’anomenar el mateix concepte, la diferència és que subdirectori s’utilitza per referir-se a un directori que s’ha creat dins d’un altre. Aquesta agrupació en directoris de forma jeràrquica permet una organització més òptima de la informació i és la més habitual als diferents sistemes operatius.

La jerarquia dels arxius i directoris està organitzada en forma d’arbre amb molts nivells de profunditat. Per especificar cada arxiu dins de la jerarquia de directoris, es proporciona un nom de la ruta des de la part superior de la jerarquia d’arxius i directoris, anomenat directori arrel. Aquests noms de ruta absoluta consisteixen en la llista de directoris que han de seguir-se des del directori arrel per arribar a l’arxiu, i s’acostumen a utilitzar barres diagonals per separar els diferents components.

Rutes absolutes

  • Ruta absoluta en sistemes operatius Windows on el símbol separador és \: c:\windows\System32\
  • Ruta absoluta en sistemes operatius GNU/Linux on el símbol separador és /: /usr/lib

En cada moment, cada procés té un directori de treball actual, és a dir, un punt en la jerarquia d’arxius i directoris on s’està executant el procés, aquest directori s’anomena directori de treball o directori actual.

Es pot fer referència a un arxiu o directori des del propi directori de treball sense fer servir la ruta absoluta. Per exemple, si el procés en execució està situat en /usr i s’escriu el nom lib, el nom complet resultant pel sistema operatiu és /usr/lib. En aquest cas, estem fent servir una ruta relativa.

Una ruta pot ser relativa, en aquest cas s’indica el camí des del directori en el qual ens trobem fins al directori al qual volem accedir o absoluta on s’indica tota la ruta de l’arxiu incloent el directori arrel.

Existeixen a la majoria de sistemes operatius amb estructura jeràrquica dues entrades especials a cada directori. Aquestes entrades habitualment són “.” i “..”, on “.” és equivalent al directori actual (on està situat el procés) i “..” fa referència al directori pare. Per exemple, si el procés està situat al directori /usr/lib, “.” És equivalent a /usr/lib mentre que “..” és equivalent a /usr.

Al directori arrel, tant “.” com “..” fan referència al mateix directori, ja que no hi ha cap directori pare.

La gestió de les operacions i permisos sobre els arxius i directoris

El sistema d’arxius també manté, per a cada arxiu, una sèrie d’atributs. Aquests atributs contenen, entre d’altres, informació del propietari, temps de creació, darrera modificació i privilegis d’accés.

Els sistemes operatius defineixen un conjunt d’operacions possibles sobre un arxiu o directori. Tradicionalment aquestes operacions són les de creació, eliminació, obertura, tancament, lectura i escriptura.

El sistema operatiu ha de comprovar, per un usuari que ha iniciat correctament sessió a un sistema operatiu, si aquest usuari té els drets i permisos correctes d’accés a un arxiu o directori en cada operació que vulgui realitzar amb ell. En funció de l’usuari que executa el procés, la pertinència a grups d’aquest usuari, del propietari de l’arxiu i dels privilegis definits sobre l’arxiu, el sistema operatiu permetrà l’accés a l’arxiu o directori. Un usuari, o el procés que aquest usuari executa, només ha de poder accedir als recursos als quals té autorització, ja que això limita els possibles danys que es puguin donar en un sistema operatiu si hi ha algun error. Habitualment per cada arxiu o directori el propietari és l’encarregat de concedir els permisos a la resta d’usuaris o grups d’usuaris.

La gestió dels accessos simultanis a un mateix arxiu o directori

Els sistemes operatius actuals són multiusuari i multiprogramats, amb diversos usuaris fent servir el mateix maquinari així com diversos processos en execució al mateix temps. És per això que es fa necessari que el sistema d’arxius implementi els mecanismes necessaris per prevenir que dos processos o usuaris diferents puguin modificar un mateix arxiu a la vegada fet que podria comportar la pèrdua de la integritat de la informaciÓ. El mecanisme habitual utilitzat pels sistemes d’arxius és el bloqueig d’arxius. El bloqueig dels arxius pot ser tant pel que fa a l’arxiu complet com únicament d’algunes de les parts de l’arxiu.

La gestió de l'espai

El sistema operatiu és l’encarregat d’assignar espai als arxius i directoris als dispositius d’emmagatzematge de forma que l’accés es pugui fer de forma eficient. També és l’encarregat de gestionar l’espai lliure així com de proporcionar una gestió eficient de l’espai. Els tres mètodes més utilitzats per assignar espai als dispositius d’emmagatzematge són:

  • Assignació contigua. Els blocs de l’arxiu s’ubiquen de forma consecutiva en sectors contigus del disc. Com informació de control només cal tenir l’apuntador al primer bloc i el nombre de blocs de l’arxiu de forma que l’accés és senzill i no requereix accessos addicionals. Aquest sistema no permet amb facilitat que l’arxiu pugui créixer i produeix fragmentació del disc. De totes maneres, és un mecanisme molt adequat per dispositius de només lectura, com un DVD.
  • Assignació encadenada. En aquest mecanisme els blocs de l’arxiu es col·loquen als sectors lliures del disc i dins de cada bloc trobem un apuntador al següent bloc. Per accedir a l’arxiu només cal conèixer l’apuntador al primer bloc. En aquest mecanisme disminueix la fragmentació i permet que l’arxiu pugui créixer fàcilment. En contraposició, com que cada apuntador està inclòs al bloc anterior, per accedir a l’últim bloc cal llegir tots els anteriors. Un altre problema que presenta aquest mecanisme és que si hi ha un error a un dels blocs que conté un apuntador, es trenca la cadena i no resulta possible accedir als següents blocs si no s’ha previst un mecanisme com una llista doblement encadenada.
  • Assignació indexada. Amb la combinació dels dos mètodes anteriors, trobem la ubicació indexada. En aquest mecanisme, la informació de control s’emmagatzema en un altre lloc de forma contigua. En aquest cas pot existir fragmentació a la taula indexada, ja que el creixement o modificació d’un arxiu fa que calgui modificar la taula d’índex o reubicar-la. Aquesta taula d’índex es troba emmagatzemada al disc i es carrega a la memòria quan cal utilitzar-la.

Fragmentació

La fragmentació és un fenomen per descriure l’incapacitat del sistema operatiu d’emmagatzemar les dades de forma seqüencial generant una utilització de l’espai d’emmagatzematge ineficient.

A més d’assignar una ubicació als diferents arxius i directoris, cal que el sistema d’arxius realitzi la gestió de l’espai lliure que està disponible per nous arxius o pel creixement dels ja existents.

La gestió dels errors i el manteniment de la consistència del sistema d'arxius

En un sistema informàtic cal que els usuaris puguin confiar que la informació disponible al sistema és correcta i consistent. Els sistemes d’arxius llegeixen blocs, els modifiquen i els escriuen. Una possible errada en el sistema abans de finalitzar l’escriptura dels blocs provocarà que el sistema d’arxius i per tant la informació quedi en un estat inconsistent. Si l’error d’escriptura es dona en un dels blocs on es guarda informació crítica del sistema d’arxius, com per exemple la llista on es guarden els blocs lliures, el problema s’agreuja.

Els diferents sistemes operatius proporcionen utilitats que verifiquen la consistència del sistema d’arxius. Aquestes utilitats es basen en el disseny del sistema d’arxius per poder realitzar les recuperacions necessàries per restaurar la consistència, per tant, cada sistema d’arxius fa servir diferents utilitats per aconseguir-ho. Entre elles, una de la més habitual en els sistemes d’arxius més utilitzats en l’actualitat, està la utilització d’un registre o diari, també conegut com a log en anglès.

També, cal tenir en consideració que els sistemes d’arxius mantenen en tot moment una llista dels blocs de disc que són erronis, és a dir, que no es poden fer servir. D’aquesta forma s’evita que aquests blocs que poden provocar errors puguin ser utilitzats. Com a conseqüència, aquests blocs deixen d’estar disponibles i per tant, es perd aquest espai d’ús.

Gestió de la memòria

Un dels components més important d’un equip informàtic és la memòria. La memòria ha de ser ràpida, amb gran capacitat d’emmagatzematge i econòmica. Actualment, cap tecnologia compleix amb aquests tres objectius simultàniament i per això s’ha adoptat una solució on el sistema de memòria està construït jeràrquicament per capes. En aquesta solució les capes superiors tenen major velocitat i cost per bit, però menor capacitat que les capes inferiors, com podeu observar a la figura.

Figura Jerarquia de memòria

La capa superior del sistema de memòria està formada pels registres interns de la CPU. Estan fabricats amb el mateix material que la CPU i, per tant, tenen la mateixa velocitat. Cada registre contindrà un conjunt de bits (4, 8, 16, 32 o 64, depenent del disseny del processador) que es manipulen en bloc.

El següent nivell de la jerarquia és la memòria cau que podem trobar integrada a l’interior del processador o molt a prop seu en equips més antics. Aquesta memòria emmagatzema dades que previsiblement seran utilitzades als següents càlculs, evitant així haver de recórrer a la memòria principal que és més lenta i accelerant el funcionament de l’equip.

La memòria principal és la següent en la jerarquia del sistema de memòria. Aquesta memòria es coneix també com memòria RAM (Random Access Memory). En l’actualitat aquestes memòries poden contenir diversos gigabytes i la seva capacitat continua augmentat ràpidament en el temps. Totes les peticions de la CPU que no es poden gestionar a la memòria cau passen a la memòria principal.

El següent lloc a la jerarquia correspon a la memòria secundària formada pels dispositius d’emmagatzematge que s’acostumen a utilitzar per emmagatzemar grans volums de dades. La capacitat d’un disc dur és molt més econòmica que la de la memòria RAM per cada bit i això permet que aquests dispositius puguin contenir moltes més dades. En contraposició trobem que l’accés a aquest tipus de dispositiu d’emmagatzematge és més lent.

Aquesta jerarquia de memòria és la més comuna, però podem trobar algun sistema que no tingui totes aquestes capes o tingui alguna diferent. De totes maneres, a mesura que descendim capes en la jerarquia, el temps d’accés s’incrementa, la capacitat augmenta i el cost per bit baixa.

Perquè un procés es pugui executar s’ha d’emmagatzemar a la memòria primària de l’equip informàtic. Els programes i les dades que no es necessiten de forma immediata s’acostumen a emmagatzemar a la memòria secundària fins que es necessitin i calgui transferir-los a la memòria primària.

El procés de gestió de la memòria d’un sistema operatiu consisteix bàsicament a dur a terme les següents funcions:

  • Execució dels processos del sistema operatiu i de les aplicacions d’usuari. El sistema operatiu ha d’assignar la memòria necessària a les aplicacions i processos que ho sol·liciten. Un programa, durant la seva execució pot ocupar posicions de memòria consecutives o pot estar ubicat de forma no contigua.
  • Gestió de la permanència del programa a la memòria. El sistema operatiu s’ha d’encarregar d’alliberar la part de memòria que ja no s’utilitza perquè estigui disponible per altres aplicacions i processos. Un programa pot emmagatzemar-se i treure de la memòria durant la seva execució o pot romandre a la memòria en tot moment.
  • Gestió del nombre de programes simultanis en memòria. Aquesta gestió depèn de si hi ha un únic programa o més a la memòria de forma simultània. El sistema operatiu ha de controlar la presència simultània d’aquests programes.
  • Gestió dels programes que es troben emmagatzemats entre la memòria principal i la secundària. El sistema operatiu ha de gestionar l’execució dels programes que no es poden carregar sencers a la memòria. Un programa en execució pot trobar-se dividit entre la memòria i diferents dispositius d’emmagatzematge.

Des dels primers sistemes operatius, els dissenyadors han anat introduint tècniques per poder gestionar aquests aspectes. Les més conegudes són les següents:

  • Monitor resident i tècnica de fer particions
  • Swapping
  • Paginació i segmentació
  • Enllaç dinàmic
  • Memòria virtual

Monitor resident i tècnica de fer particions

La tècnica de monitor resident permet gestionar un únic programa a la memòria, mentre que la tècnica de fer particions pot gestionar un o més programes assignant a cada programa un espai diferent, com si fos una espècie de partició. A les dues tècniques, el programa ha d’estar totalment emmagatzemat en la memòria principal i no es pot extreure durant la seva execució. Aquestes són tècniques dels primers sistemes operatius i són difícils de trobar als sistemes operatius actuals.

'Swapping'

La tècnica de l’swapping permet intercanviar programes entre la memòria principal i la secundària. Amb aquesta tècnica els programes poden entrar i sortir de la memòria durant el seu temps d’execució deixant espai a altres programes. Això permet més flexibilitat durant la gestió de la memòria i permet una utilització més eficient de l’espai.

Per poder utilitzar l’swapping cal disposar d’espai lliure per l’intercanvi de les dades en un dispositiu d’emmagatzematge secundari, normalment s’utilitza un disc dur independent, una partició del propi disc dur que conté el sistema operatiu o un fitxer.

El fet d’ubicar el programa a la memòria principal o secundària és decisió del sistema operatiu que ha de seleccionar quins programes mantindrà en un espai o en l’altre en funció de certs criteris com la necessitat d’obtenir espai lliure, la prioritat i estat dels processos o el temps que porta el programa ocupant la memòria principal.

Paginació i segmentació

La paginació i la segmentació permeten col·locar els programes de forma no contigua a la memòria. Un dels avantatges d’aquests mètodes és que el programa ja no necessita un espai lliure contigu de la seva mida, sinó que la quantitat total de memòria disponible sigui suficient per poder ubicar-lo.

Per poder col·locar els programes de forma no contigua cal dividir-lo en fragments. La tècnica de paginació divideix el programa en pàgines de la mateixa mida mentre que la tècnica de segmentació divideix el programa en segments de mida variable.

La tècnica de la paginació divideix el programa en fragments de la mateixa mida anomenats pàgines i a la vegada divideix l’espai de la memòria principal en fragments de la mateixa mida anomenats marcs. Quan ha d’emmagatzemar un programa a la memòria, el sistema operatiu busca quins marcs té disponibles. El sistema operatiu gestiona una taula de pàgines on cada pàgina carregada a la memòria principal es relaciona amb el marc que la conté.

La segmentació és una tècnica de gestió de memòria on el programa es divideix en segments, que poden ser de diferents mides, i que es van transferint a la memòria física a mesura que es van necessitant i es tornen a dipositar a la memòria secundària quan cal alliberar la memòria principal.

Les tècniques de segmentació i paginació poden combinar-se de forma que es poden crear les tècniques segmentació paginada on els segments es divideixen en pàgines i paginació segmentada on la taula de pàgines es divideix en segments. Aquestes combinacions permeten reduir els problemes de fragmentació que produeix la divisió en segments i permet dividir la taula de pàgines en segments per no manipular una taula tan gran.

Enllaç dinàmic

Una llibreria d’enllaç dinàmic és un arxiu que conté instruccions i dades que es carrega directament a la memòria quan es necessita i pot ser utilitzat per més d’un programa a la mateixa vegada. Aquestes llibreries són conegudes com a DLLs (Dynamic Link Libraries) o llibreries en temps d’execució.

Quan una aplicació necessita una d’aquestes llibreries, el sistema operatiu s’encarrega de comprovar si la llibreria està emmagatzemada a la memòria, si no ho està, l’emmagatzema i ho indica al programa. Per fer aquesta gestió, el sistema operatiu utilitza una taula on guarda la informació sobre les llibreries emmagatzemades a memòria i la seva ubicació.

Alguns dels avantatges d’aquesta tècnica són:

  • S’utilitzen menys recursos quan diferents programes utilitzen la mateixa llibreria, ja que aquest fet permet estalviar espai en memòria.
  • Ajuden a promoure el disseny de programes modulars, ja que part del codi es troba a les llibreries.
  • L’actualització d’una llibreria beneficia a més d’una aplicació, ja que més d’una aplicació poden utilitzar les mateixes llibreries.
  • El temps de càrrega dels programes pot ser menor si les llibreries ja estan emmagatzemades en memòria.

En contraposició quan un programa utilitza una llibreria d’enllaç dinàmic crea una dependència amb la llibreria. Si hi ha qualsevol problema amb la llibreria, podria passar que el programa no s’executés.

Memòria virtual

Molts equips utilitzen aquesta tècnica de gestió de memòria anomenada memòria virtual, que fa possible l’execució de programes que són massa grans per poder emmagatzemar-se a la memòria principal a l’emmagatzemar-los en un dispositiu d’emmagatzematge, i utilitzar la memòria principal per emmagatzemar les parts que s’executen amb més freqüència.

La idea bàsica de la tècnica de memòria virtual és que els programes es divideixen en fragments de forma semblant a com es fa a la tècnica de segmentació o paginació. Els fragments necessaris per executar el programa s’emmagatzemen a la memòria principal mentre que la resta s’emmagatzema a la memòria secundària de forma semblant a la tècnica de l’swapping. Quan el programa necessita una part que es troba a la memòria física, el maquinari realitza l’accés a l’instant i quan el programa necessita una part que no troba a la memòria física, el sistema operatiu busca la part al dispositiu d’emmagatzematge assignat i torna a executar la instrucció.

Els avantatges principals d’aquesta tècnica són la disminució del temps de càrrega dels programes, ja que no han de carregar-se per complet per poder començar a executar-se i l’aprofitament més eficient de l’espai, ja que qualsevol espai lliure pot ser aprofitat per carregar un nou programa i començar a executar-lo.

La dificultat més gran en la gestió de la memòria és no desaprofitar l’espai disponible. Cada programa ha de tenir assignada una quantitat de memòria més gran o igual que la que necessita perquè no es produeixin errors. Això fa que una de les consideracions més importants a l’hora de definir una política d’assignació de memòria sigui aconseguir que resideixen en la memòria principal tants processos com sigui possible, garantint que cada programa tingui l’espai físic que necessita.

Gestió de processos

Un dels elements principals dels sistemes operatius són els processos i una de les principals tasques del sistema operatiu consisteix a gestionar els processos i el seu accés al processador. La principal diferència entre un programa i un procés és que un programa és un conjunt d’ordres i un procés és un conjunt d’ordres que s’estan executant. Un procés no només està format pel conjunt d’ordres que s’executen, ja que, perquè el processador pugui treballar amb ell, necessita més informació addicional com els valors dels registres d’operació del processador, les dades d’entrada, etc.

Un procés és una seqüència d’accions derivades de l’execució d’una sèrie d’ordres. Això implica que un procés pot requerir l’execució d’un o diversos programes; i que un programa pot formar part de més d’un procés.

Quan s’inicia un sistema operatiu, aquest posa en funcionament els seus processos principals que són els encarregats de crear la resta de processos del sistema operatiu anomenats fills. En un sistema operatiu, trobem una estructura jeràrquica de processos en forma d’arbre on tots els processos excepte els processos inicials tenen un pare i la capacitat de tenir un o més fills.

Per representar un procés, el sistema operatiu utilitza la següent informació:

  • Identificador de procés. És un nombre enter que serveix per identificar cada procés.
  • Estat del procés. Serveix per indicar l’estat del procés en funció del seu cicle de vida.
  • Ús de recursos. Permet comptabilitzar l’ús de recursos que utilitza el procés com el temps d’execució, temps màxim assignat, prioritat, quàntum, etc. Aquesta dada és útil pel sistema operatiu per planificar quin serà el pròxim procés que executarà el processador.
  • Context del procés. Per cada procés el sistema operatiu emmagatzema l’estat del processador, informació de la memòria i les peticions d’entrada/sortida.

L’emmagatzematge d’aquesta informació dependrà del sistema operatiu. El més comú és trobar una estructura anomenada bloc de control del procés (PCB) que emmagatzema aquesta informació del procés.


Estats dels processos:

Qualsevol procés pot tenir dos o més estats. El model més senzill per representar l’estat d’un procés és el que només té dos estats que són, en execució o finalitzat. Aquest model és molt limitat per satisfer les necessitats d’un sistema operatiu, de forma que podem trobar altres models més pràctics. Per exemple, un model més complet és el que permet al procés trobar-se en qualsevol dels següents 5 estats com podeu observar a la figura.

Figura Gràfic de transició d’estats

Aquest model de cinc estats està format pels següents estats:

  • Nou. Aquest estat es dona quan el procés és creat pel sistema operatiu, però encara no es troba preparat per ser executat. Un procés només pot trobar-se en aquest estat una única vegada durant el seu cicle de vida.
  • Preparat. Quan un procés es troba en aquest estat vol dir que està disponible per la seva execució. Es pot arribar a aquest estat després de l’estat Nou o quan es torna a executar després d’un estat Bloquejat o Execució.
  • Execució. Un procés es troba en aquest estat quan un processador està executant les seves instruccions. La majoria dels sistemes operatius actuals són multiprogramats de forma que cada procés disposa d’una quantitat de temps per executar-se. Quan el temps acaba, però el procés no ha acabat la seva execució, el sistema operatiu guarda la informació necessària i li assigna l’estat Preparat.
  • Bloquejat. Quan al sistema operatiu es dona un esdeveniment que requereix el processador, el procés que es trobava en execució passa a l’estat Bloquejat mentre espera que acabi l’esdeveniment.
  • Finalitzat. Aquest estat es dona quan el procés ha acabat la seva execució i els recursos que necessitava són alliberats. En aquest estat acaba el cicle de vida del procés.


Polítiques de planificació:

Un dels objectius del sistema operatiu és utilitzar de forma eficient els seus recursos, executant els processos evitant situacions on el processador es trobi aturat. Per aconseguir-ho cal una política de planificació adequada que permeti seleccionar els processos que han de passar a utilitzar el processador per millorar el rendiment del sistema informàtic.

Les principals polítiques de planificació de processos es poden classificar en dos grans grups:

  • Polítiques no expulsores. Són aquelles polítiques on un procés només pot abandonar el processador perquè finalitza o perquè passa a l’estat de bloqueig.
  • Polítiques expulsores. Són les polítiques que poden forçar al procés que està executant-se al processador a sortir de l’execució per donar pas a un altre procés.

Les polítiques no expulsores més conegudes són les següents:

  • FCFS (First come, first served). El procés que executa el processador es tria en funció de l’ordre d’arribada a l’estat de preparats. Té l’inconvenient que l’existència de programes molt llargs augmenten el temps de finalització i el temps d’espera de tots els processos.
  • SJF (Shortest Job First). El procés que executa el processador primer és el de menor durada. En aquesta política és necessari estimar la duració dels processos i l’èxit de la política depèn de l’encert del model d’estimació de durada.
  • Prioritats. En aquest cas, s’assigna una prioritat a cada procés a partir de les quals es decideix l’ordre d’accés al processador. Si la prioritat és la mateixa per diferents processos, s’utilitza la política FCFS. El seu major risc és que els processos de prioritat molt baixa no accedeixin mai al processador per això la majoria dels sistemes operatius ajusten la prioritat de tots els processos de forma dinàmica recalculant-la periòdicament.

Les polítiques expulsores més conegudes són:

  • SRT (Shortest Remaining Time). En aquesta política s’executa el procés de menor durada com a la política SJF, però si arriba un altre procés amb un temps estimat més curt que el que s’està executat, el treu del processador i n’ocupa el lloc.
  • RR (Round-Robin). En aquesta política a cada procés se li assigna un quàntum de temps que determina la quantitat màxima de temps que pot estar executant-se al processador de forma constant. Quan acaba el seu temps, el procés és expulsat del processador per donar pas al següent.

Gestió d'entrada/sortida

Una de les funcions del sistema operatiu és gestionar el procés de comunicació amb els dispositius d’entrada/sortida de forma paral·lela a la CPU per millorar el rendiment de l’equip.

Dins d’un sistema informàtic, un dispositiu d’entrada/sortida pot ser un dispositiu d’emmagatzematge secundari, com un disc dur; un dispositiu de comunicació, com una targeta de xarxa o els clàssics dispositius, com el teclat, ratolí i monitor.

Tots i que els dispositius d’entrada/sortida inclouen elements molt diferents entre ells, podem definir unes característiques comunes entre tots els elements que formen el conjunt de dispositius d’entrada/sortida que són:

  • Unitat de transferència. Alguns dispositius utilitzen els caràcters com unitat de transferència, com el teclat o el ratolí, mentre que altres dispositius transfereixen la informació en blocs, com els discos durs.
  • Velocitat. Les velocitats de transferència varien molt entre els diferents dispositius d’entrada/sortida. Per exemple, els dispositius de comunicació poden transferir una quantitat d’informació per segon de forma constant, mentre que el teclat o el ratolí transfereixen una petita quantitat d’informació per segon en períodes de temps concrets.
  • Comunicació amb la CPU. Cada dispositiu es comunica amb la CPU utilitzant un protocol diferent que depèn del dispositiu d’entrada/sortida i del bus de comunicació, és a dir, els conductors que connecten els dispositius d’entrada/sortida amb la CPU.
  • Tipus de dispositiu. Segons els tipus d’operació que fa el dispositiu d’entrada/sortida, els podem classificar en dispositius d’entrada, de sortida o d’entrada/sortida.
    • Dispositius d’entrada. Els dispositius d’entrada són els que s’utilitzen per introduir dades al sistema informàtic, com per exemple el teclat, ratolí, escàner, tauleta digitalitzadora, càmera web, micròfon, lector codi de barres, pantalla tàctil, etc.
    • Dispositius de sortida. Aquests tipus dispositiu són els que permeten obtenir el resultat d’un treball realitzat pel sistema informàtic. Per exemple el monitor, impressora, altaveus, auriculars, etc.
    • Dispositius d’entrada/sortida: Els dispositius d’entrada/sortida són capaços de realitzar les dues tasques, per exemple, l’encaminador, pantalles tàctils, impressores multifunció, targetes de xarxa, càmeres digitals, etc.

Aquesta diversitat de dispositius d’entrada/sortida fa que el problema de l’intercanvi d’informació entre la CPU i els dispositius sigui bastant complex. Per un costat, s’han d’establir mecanismes que permetin transmetre la informació, tant en bloc com en caràcters, a diferents velocitats i de forma constant o en períodes concrets de temps. També s’han d’establir els mecanismes que gestionin els diferents protocols que permeten establir el camí per l’enviament de dades entre els dispositius i la CPU i els mecanismes de control que determinin si la informació que es transmet és per un dispositiu d’entrada, sortida o dels dos tipus. Per últim, el sistema operatiu també ha de gestionar les ordres que envia als dispositius, captar les interrupcions que rep dels dispositius i gestionar els errors.

Per solucionar part d’aquest problema, els dispositius es connecten al sistema operatiu utilitzant un controlador. Cada fabricant de dispositius d’entrada i sortida acostuma a proporcionar un controlador específic per cada sistema operatiu on pugui funcionar el seu dispositiu. Per exemple, podem comprar una impressora que porti controladors per sistemes operatius Windows i GNU/Linux.

Un controlador de dispositiu és un programa informàtic que permet al sistema operatiu comunicar-se amb el dispositiu d’entrada/sortida.

El controlador permet que el sistema operatiu ja no hagi de comunicar-se amb una gran varietat de dispositius diferents, ja que només ha de comunicar-se amb el controlador específic del dispositiu. Aquests controladors acostumen a tenir una interfície estandarditzada que facilita el treball al sistema operatiu.

L’operació de comunicació amb el controlador del dispositiu d’entrada/sortida l’acostuma a realitzar el nucli del sistema operatiu. Podeu observar una representació a la figura.

Figura Connexió dels dispositius d’entrada/sortida

Les operacions d’entrada i sortida es poden realitzar de tres formes diferents depenent de com el sistema es comunica amb el controlador:

  • De forma programada. La forma més simple de comunicació entre el sistema operatiu i el controlador consisteix en el fet que quan una aplicació necessita utilitzar un dispositiu d’entrada/sortida ho demana al sistema operatiu. El nucli del sistema operatiu es comunica amb el controlador necessari. En aquest moment, el controlador inicia l’operació d’entrada o sortida i el sistema operatiu es queda esperant que el dispositiu hagi acabat. Un cop el dispositiu ha acabat l’operació d’entrada o sortida, el controlador avisa al nucli del sistema operatiu que envia la informació a l’aplicació executada. Aquest mecanisme manté la CPU ocupada fins que el dispositiu ha acabat d’enviar o rebre les dades i actualment els sistemes operatius ja no acostumen a utilitzar aquesta tècnica.
  • Per Interrupcions. La comunicació per interrupcions consisteix en el fet que quan una aplicació necessita utilitzar un dispositiu d’entrada/sortida ho demana al sistema operatiu, de forma que el nucli del sistema operatiu es comunica amb el controlador demanat. En aquest punt el controlador inicia el dispositiu d’entrada o sortida i li demana que generi una interrupció que avisarà al sistema operatiu quan acabi l’enviament de dades. Una interrupció és un senyal que rep la CPU indicant que ha d’aturar l’execució del treball actual i passar a executar el codi específic per tractar la interrupció rebuda. Aquest mètode permet solucionar el problema de la comunicació de forma programada, ja que la CPU només ha d’esperar l’enviament de la interrupció mentre continua fent altres treballs.
  • Per adreçament directe de memòria. Aquest tipus de comunicació permet que els dispositius d’entrada/sortida puguin accedir a la memòria del sistema informàtic sense la intervenció de la CPU. El sistema operatiu configura aquest accés directe a memòria que allibera a la CPU d’atendre una gran quantitat d’interrupcions i permet que pugui fer altres treballs. Per realitzar la funció d’accés directe a memòria, el sistema informàtic disposa d’un controlador específic anomenat DMA (Direct Memory Access).

Una altra funció que fan els sistemes operatius per gestionar la transferència d’informació amb els dispositius d’entrada/sortida és la de gestió de cues o spool (de l’anglès, Simultaneous Peripheral Operation On-Line). La gestió de cues s’utilitza sobretot amb els dispositius d’entrada/sortida de velocitat de transferència lenta, com impressores o escàners. La gestió de cues es basa a crear un magatzem intermedi, o buffer en anglès, entre l’aplicació que demana la transferència d’informació i el dispositiu d’entrada/sortida. Aquest magatzem s’acostuma a ubicar en un dispositiu d’emmagatzematge, com un disc dur, i el seu objectiu és gestionar les diferents velocitats d’operació entre el sistema operatiu i el dispositiu d’entrada/sortida.

D’aquesta forma, les instruccions de l’aplicació es poden guardar al magatzem a la velocitat més gran possible i deixar lliure la CPU per realitzar altres treballs, mentre que els dispositius d’entrada/sortida més lents poden anar llegint o escrivint al magatzem assignat a la seva velocitat de transferència.

Existeixen diferents tipus de magatzems que es poden classificar en:

  • Magatzem de tipus simple. No permet més d’una transferència de forma simultània, les transferències d’entrada no es poden fer fins que finalitzen les de sortida i les de sortida s’han de fer quan finalitzen les d’entrada.
  • Magatzem de tipus doble. Permet dues transferències simultàniament, per exemple es pot fer una transferència d’informació des del sistema operatiu al magatzem al mateix temps que es fa una transferència d’informació del dispositiu d’entrada/sortida al magatzem.
  • Magatzem circular. Aquest tipus de magatzem permet més de dues transferències de forma simultània entre el sistema operatiu i el dispositiu d’entrada/sortida. Per exemple, el teclat utilitza aquest tipus de magatzem per enviar les dades al sistema operatiu.
Anar a la pàgina anterior:
Referències
Anar a la pàgina següent:
Activitats