You are on page 1of 112

El sistema operatiu

Sistemes operatius

Sistemes operatius

El sistema operatiu

ndex

Introducci ............................................................................................... Objectius ................................................................................................... 1. Introducci als sistemes operatius. La planificaci i linterbloqueig 1.1. El sistema operatiu ..................................................................... 1.1.1. Objectius i funcions del sistema operatiu ...................... 1.1.2. Evoluci histrica dels sistemes operatius .................... 1.1.3. Organitzaci dels sistemes operatius ............................. 1.1.4. Tipus de sistemes operatius ............................................ 1.1.5. Estructura dels sistemes operatius ................................ 1.1.6. Serveis dels sistemes operatius ...................................... 1.2. Programes de control del sistema operatiu ............................. 1.2.1. El nucli ............................................................................... 1.2.2. Els processos ..................................................................... 1.2.3. Estats dels processos ....................................................... 1.2.4. Planificaci del processador ............................................ 1.3. Concurrncia, comunicaci, sincronitzaci i interbloqueig de processos ....................................................... 2. La gesti de la memria ..................................................................... 2.1. Conceptes generals del gestor de memria ............................. 2.2. La gesti de la memria en sistemes monoprogramats ......... 2.3. La gesti de la memria en sistemes multiprogramats ......... 2.4. La memria virtual ..................................................................... 3. E/S, de la informaci i de la seguretat ............................................. 3.1. La gesti dE/S ............................................................................. 3.1.1. Interfcie dispositiu perifric-ordinador ........................ 3.1.2. Emmagatzematge a la memria intermdia (buffering) i la gesti de cues (spooling) ....................... 3.1.3. Programari de control dE/S ............................................

5 7 9 10 13 16 23 24 33 39 44 45 47 56 58 66 72 72 73 76 81 92 92 93 97 98

3.2. La gesti de la informaci .......................................................... 100 3.2.1. Estructura de la informaci ............................................ 101 3.2.2. Algorismes de planificaci dels accessos al disc ............ 102 3.2.3. Sistema de fitxers ............................................................. 103 3.2.4. Mtodes daccs als fitxers .............................................. 105 3.2.5. Directoris darxius ............................................................ 106 3.2.6. Seguretat dels arxius ........................................................ 108 3.3. La seguretat i la protecci .......................................................... 109 3.3.1. Seguretat externa ............................................................. 110 3.3.2. Seguretat interna .............................................................. 112

Sistemes operatius

El sistema operatiu

Sistemes operatius

El sistema operatiu

Introducci

Per entendre el funcionament de lordinador no noms cal conixer les principals caracterstiques dels seu components fonamentals (maquinari), sin que tamb cal entendre el programari bsic que gestiona els diferents serveis que es donen als usuaris. En aquesta unitat didctica estudiem un tipus de programari bsic per al bon funcionament del maquinari, que forma part de lordinador i que sanomena sistema operatiu. Aquest programari, controla tot el maquinari que forma lordinador. En el nucli dactivitat Introducci als sistemes operatius. La planificaci i linterbloqueig, es fa un estudi de la necessitat de lexistncia del sistema operatiu i en donarem algunes definicions; desprs comentarem levoluci que han tingut els sistemes operatius des de diferents aspectes, ja que dalguna manera la seva evoluci va parallela a la dels ordinadors. En aquesta evoluci introduirem una srie de conceptes que sapliquen en el disseny dels sistemes operatius, com sn la monoprogramaci, la multiprogramaci, el temps compartit, el temps real, els sistemes multiusuari i monousuari, el multiprocs, la multitasca, etc. Ms endavant, estudiarem les funcions que pot tenir un sistema operatiu i les diferents capes que hi pot haver. Comentarem com es pot veure el sistema operatiu des de lptica dun usuari, que s completament diferent del punt de vista que t un tcnic informtic. Treballarem tamb el concepte de processos; la importncia que tenen, el seu funcionament, els estats i les transicions; desprs comentarem diferents aspectes relacionats amb els algorismes de planificaci del processador que podem utilitzar com a gestors dels processadors, avaluant-ne els avantatges i els inconvenients. A continuaci, estudiem els processos concurrents i cooperatius que comparteixen un conjunt de recursos. La sincronitzaci i lintercanvi dinformaci entre els processos concurrents i cooperatius sn elements que cal considerar per assegurar les relacions entre processos. En els sistemes multiprogramats, compartir recursos s un dels objectius bsics del sistema operatiu. En la compartici dels recursos que han de ser utilitzats de manera exclusiva pels usuaris, es poden produir interbloquejos entre els processos. Veurem eines de qu disposen alguns sistemes operatius que permeten laccs concurrent a objectes compartits i eviten situacions dinterbloqueig i despera indefinida. En el nucli dactivitat La gesti de la memria, comentarem diferents propostes que van des de la gesti de la memria real fins a la gesti de la

Sistemes operatius

El sistema operatiu

memria virtual, i comentarem les tcniques de paginaci, de segmentaci, etc. Finalment, el nucli dactivitat La gesti dE/S, de la informaci i de la seguretat, sestudia el control de les operacions dentrada/sortida, ja que s una de les funcions del sistema operatiu que serveixen per facilitar la utilitzaci dels diferents dispositius que formen lordinador. Seguidament parlarem de la necessitat demmagatzemar la informaci i per tant cal un cert tipus dorganitzaci de la informaci i de la manera de com hi podem accedir. Finalment, comentarem la importncia de la seguretat daccs a un sistema informtic i de la seguretat daccs a la informaci. Per treballar els continguts daquesta unitat didctica, s convenient haver assolit una srie de conceptes bsics relacionats amb aspectes com ara: Informaci: concepte, les dades i tipus, el seu tractament, etc. Informtica: concepte, els principals elements i la seva evoluci. Ordinador: concepte, els components bsics, els dispositius i el seu funcionament, la placa base, etc. Aquesta unitat s la base per poder entendre el funcionament dels sistemes operatius monousuari i multiusuari tractats en el crdit. s una unitat didctica eminentment terica, per bsica per entendre la importncia que tenen els sistemes operatius en el funcionament dels diferents components que formen lordinador. s convenient anar fent les activitats i els exercicis dautoavaluaci, i llegir els annexos.

Sistemes operatius

El sistema operatiu

Objectius

En acabar la unitat didctica, heu de ser capaos del segent: 1. Diferenciar els conceptes de programari bsic i programari daplicacions informtiques. 2. 3. Descriure les funcions principals dels sistemes operatius. Diferenciar conceptes relacionats amb els sistemes operatius: la multiprogramaci, la monoprogramaci, el temps real, el temps diferit, el multiprocs, el sistema monousuari i multiusuari, etc. 4. Assenyalar els possibles avantatges i inconvenients dels sistemes operatius. 5. 6. 7. 8. 9. 10. Saber classificar els sistemes operatius des daspectes diversos. Descriure levoluci de lestructura dels sistemes operatius. Interpretar lestructura dels sistemes operatius. Identificar els tipus de serveis que ens donen els sistemes operatius. Comentar la importncia dels processos. Explicar el funcionament dels principals algorismes de planificaci del processador. 11. 12. Descriure els conceptes de parallelisme i concurrncia. Valorar la importncia de la sincronitzaci en els processos concurrents. 13. 14. 15. 16. Interpretar el fenomen de linterbloqueig. Diferenciar els conceptes dabraada mortal i despera indefinida. Distingir les diferents tcniques de gesti de la memria real. Interpretar el funcionament de la memria paginada i de la memria segmentada. 17. Descriure les diferncies entre la gesti de la memria real i la gesti de la memria virtual.

Sistemes operatius

El sistema operatiu

18.

Explicar la importncia de la gesti dels dispositius dentrada/sortida.

19.

Valorar la importncia de la gesti de la informaci en els suports de discos magntics.

20.

Reconixer diferents alternatives per estructurar un sistema de fitxers.

21.

Saber diferenciar els avantatges dels diferents tipus dorganitzaci de lespai assignat als fitxers.

22.

Conixer les principals tcniques de seguretat referides als sistemes operatius.

Sistemes operatius

El sistema operatiu

1. Introducci als sistemes operatius. La planificaci i linterbloqueig

Abans de definir qu s un sistema operatiu, cal tractar dos aspectes relacionats amb l'ordinador: el maquinari i el programari. L'ordinador est format per dos elements fonamentals: l'element fsic o maquinari i l'element lgic o programari.

El maquinari (hardware) fa referncia a tot all que podem veure i tocar (el monitor, el teclat, la CPU, etc.). El programari (software) fa referncia als elements que no tenen existncia fsica, com les idees, els conceptes, els programes, les aplicacions, etc.

CPU: unitat central de processament (central processing unit).

Actualment, un ordinador s una maquina molt complexa que pot constar d'un o ms processadors, discos, escners, targetes de comunicacions, impressores, mdems, etc. Els dispositius que cont sn de tipus divers (ptics, magntics, etc.), tenen un funcionament molt variat (alguns comparteixen el mateix dispositiu), la tecnologia de funcionament s diferent i el tipus de suport utilitzat t caracterstiques diferents. Aix, si un usuari vol fer servir aquest sistema de manera eficient, necessita conixer-ne les caracterstiques, controlar-ne el funcionament, etc. Per tant, cal pensar que hi ha d'haver una soluci que permeti als usuaris utilitzar aquesta mquina d'una manera ms senzilla, fcil i eficient.

Per facilitar l's de l'ordinador s'ha posat per sobre del maquinari una capa de programari amb l'objectiu de gestionar les diferents parts de l'ordinador de manera eficient i, alhora, presentar a l'usuari una mquina virtual molt ms senzilla d'entendre i utilitzar. Aquesta capa de programari s l'anomenat programari del sistema, la part ms important del qual s el sistema operatiu.

Una mquina virtual representa la simulaci duna mquina real.

Per definir el concepte de sistema operatiu, cal entendre el concepte de sistema informtic.

Un sistema informtic monoprocessador est format per una nica CPU.

Sistemes operatius

10

El sistema operatiu

Un sistema informtic s un conjunt delements necessaris per a la realitzaci i utilitzaci de les aplicacions informtiques. Els components principals dun sistema informtic sn: El maquinari. Proporciona els recursos bsics del sistema informtic: el processador, la memria, dispositius dE/S, etc. El sistema operatiu. s un conjunt de programes que serveixen dintermediari o interfcie entre els usuaris i el maquinari. Pot veures com un entorn per executar programes. Els programes daplicaci. Sn aplicacions informtiques concretes (per resoldre els problemes de computaci dels usuaris). Demanen serveis al sistema operatiu mitjanant crides al sistema. Els usuaris. Objectes que fan s de lordinador (persones, altres ordinadors i mquines).

Aplicacions informtiques Les aplicacions informtiques sn un conjunt de programes informtics d'mbit divers. Alguns exemples sn aquests: programes de gesti, de jocs, de matemtiques, eines ofimtiques, etc.

E/S o e/s: entrada-sortida.

1.1. El sistema operatiu

Podem definir el sistema operatiu tenint en compte diferents parmetres de valoraci: Segons la funci que tingui, un sistema operatiu s el suport lgic que controla el funcionament de lequip fsic. Des del punt de vista de lusuari, un sistema operatiu s un conjunt de programes i funcions que amaguen els detalls del maquinari donant a lusuari un cam senzill i flexible daccs al sistema. Des del punt de vista de gestor de recursos, un sistema operatiu s ladministrador de recursos oferts pel maquinari per obtenir un rendiment eficient. Des del punt de vista del sistema i doperaci, un sistema operatiu s el conjunt de programes relacionats entre si, que contribueixen al fet que lordinador faci correctament el seu treball.

Podem imaginar un sistema operatiu com els programes, que fan utilitzable el maquinari. El maquinari proporciona la capacitat bruta doperaci; els sistemes operatius posen aquesta capacitat doperaci a labast

Sistemes operatius

11

El sistema operatiu

dels usuaris i administren de manera segura el maquinari per aconseguir un bon rendiment. Els sistemes operatius sn abans de tot administradors de recursos; el principal recurs que administren s el maquinari de lordinador (els processadors, els mitjans demmagatzematge, els dispositius dE/S, les dades, etc.).

En funci de la comoditat i eficincia, un sistema operatiu s un conjunt de programes que actuen com a intermediari entre lusuari i el maquinari de lordinador i el seu propsit s proporcionar lentorn en el qual lusuari pot executar programes. Aleshores, lobjectiu principal dun sistema operatiu s aconseguir que el sistema de computaci sutilitzi de manera cmoda, i lobjectiu secundari s que el maquinari de lordinador sutilitzi de manera eficient. Des del punt de vista de comunicaci entre lusuari i el maquinari, un sistema operatiu s un conjunt de programes que controlen lexecuci de programes daplicaci i actuen com una interfcie entre lusuari i el maquinari dun ordinador; aix, un sistema operatiu explota i administra els recursos de maquinari de lordinador amb lobjectiu de proporcionar un conjunt de serveis als usuaris del sistema.

En la figura 1 es mostra els nivells de programari i maquinari dun ordinador. Tamb podeu observar com el sistema operatiu s lnica capa que treballa directament amb el maquinari. Per sobre del sistema operatiu es troba un nivell format pels traductors, editors de text i els intrprets dordres. Els dos primers tipus de programes, juntament amb els enllaadors i els depuradors, sn tils per crear un nivell dabstracci cmode per al desenvolupament de programes. !
Figura 1. Nivells de programari i maquinari dun ordinador Enllaadors i depuradors Els enllaadors sn programes que permeten crear programes executables. Els depuradors sn programes que permeten fer un seguiment dels programes informtics per comprovar-ne pas a pas el funcionament.

La uni dels programes de les dues capes intermdies de la figura 1 conformen el programari de sistemes dun ordinador. Finalment, hi ha el nivell constitut pels programes daplicaci; aquests programes no donen un

Sistemes operatius

12

El sistema operatiu

servei a altres programes, la seva finalitat s resoldre problemes concrets. Sn els programes que executa un usuari no informtic. Pertanyen a aquesta capa els processadors de text, els fulls de clcul, les agendes electrniques, els jocs, etc. El maquinari facilita els recursos bsics de computaci, mentre que els programes daplicaci defineixen com shan dutilitzar aquests recursos per resoldre els problemes dels usuaris. Pot haver-hi molts usuaris diferents tractant de resoldre problemes diferents. Consegentment, s habitual lexistncia de diferents programes daplicaci. El sistema operatiu controla i coordina ls del maquinari por part dels diferents programes daplicaci dels diversos usuaris. Els sistemes operatius construeixen recursos dalt nivell que denominem virtuals, a fora damagar els que realment hi ha en el nivell baix i que anomenem fsics. En conseqncia, des del punt de vista de lusuari o del procs, la mquina fsica s convertida pel sistema operatiu en una mquina virtual, tamb coneguda com a mquina estesa i que, a diferncia de la fsica, ofereix a lusuari moltes ms funcions i ms comoditat a lhora dutilitzar-la.

Mquina virtual o estesa Una mquina virtual s una interfcie que mant una mquina mitjanant la qual ens dna comunicacions amb els dispositius de lordinador. Daquesta forma nosaltres treballem a un nivell superior eliminant la complexitat daquests dispositius. Aix podem mantenir diferents sistemes operatius en funcionament sobre una mateixa mquina.

A ms, el sistema operatiu proporciona serveis dels quals no disposa el maquinari, com per exemple la possibilitat dutilitzar lordinador per diversos usuaris, la multiprogramaci, etc. En la figura 2 es pot visualitzar la relaci que hi ha entre els usuaris i el sistema operatiu.
Figura 2. Esquema de relaci entre els usuaris i el sistema operatiu

Sistemes operatius

13

El sistema operatiu

1.1.1. Objectius i funcions del sistema operatiu


Els principals objectius dels sistemes operatius sn: Incrementar la productivitat dels usuaris (facilitant ls). Proporcionar un entorn cmode i labstracci del maquinari a lusuari. Optimitzar la utilitzaci dels components o recursos del maquinari. Gestionar els recursos del maquinari i del programari Decidir qui, quan, com i durant quant de temps sutilitza un recurs. Resoldre conflictes entre peticions concurrents de recursos, preservant la integritat del sistema. Maximitzar el rendiment del sistema informtic. Permetre la concurrncia de processos. Possibilitar lexecuci de qualsevol procs en el moment que se solliciti, sempre que hi hagi suficients recursos lliures per a ell. Ser eficient quant a reduir el temps que ocupa cada treball, el temps que no sutilitza la CPU, el temps de resposta en sistemes multiaccs i el termini entre dues assignacions de CPU a un mateix programa. Ser eficient quant a augmentar la utilitzaci de recursos en general, com ara la memria, els processadors, els dispositius dE/S, etc. Ser fiable, s a dir, un sistema operatiu no ha de tenir errors i ha de preveure totes les possibles situacions. Ser de grandria petita. Possibilitar i facilitar tant com es pugui el dileg entre el maquinari i usuari. Permetre compartir entre diversos usuaris els recursos de maquinari que t un ordinador. Permetre als usuaris compartir dades entre ells, en cas necessari. Facilitar les operacions dE/S dels diferents dispositius connectats a un ordinador. Les funcions dels sistemes operatius sn: Dna comoditat. Un sistema operatiu fa ms fcil ls de lordinador. Dna eficincia. Un sistema operatiu permet que els recursos de lordinador susin de la manera ms eficient possible. T habilitat per evolucionar. Un sistema operatiu shaur de construir de manera que permeti el desenvolupament, prova o introducci efectiva de noves funcions sense interferir amb el servei. Sencarrega dadministrar el maquinari. El sistema operatiu sencarrega de manipular de la millor manera els recursos de lordinador quant al maquinari, aix s, assignar a cada procs una part del processador per poder compartir els recursos. Relaciona dispositius (gestionar-los a travs del kernel). El sistema operatiu sha dencarregar de comunicar els usuaris amb els dispositius perifrics, quan els usuaris ho demanin. Organitza les dades per a un accs rpid i segur.
Perifrics Un dispositiu perifric s el maquinari, que cal que estigui connectat amb lordinador per poder funcionar. Alguns exemples sn el teclat, el ratol, etc. El kernel representa el nucli del sistema operatiu. Procs i programa Un procs s un programa en execuci. Un programa s un conjunt d'accions que permet resoldre una situaci determinada. Petici concurrent Estat que es dna quan en un mateix moment el sistema operatiu intenta utilitzar un mateix recurs per a processos diferents.

Sistemes operatius

14

El sistema operatiu

Gestiona les comunicacions en xarxa. El sistema operatiu permet a lusuari manipular amb gran facilitat tot all que fa referncia a la installaci i s de les xarxes dordinadors. Facilita les entrades i sortides. Un sistema operatiu permet fer ms fcil a lusuari laccs i manipulaci dels dispositius dentrada/sortida de lordinador. Dna tcniques de recuperaci derrors. Evita que altres usuaris interfereixin. El sistema operatiu evita que els usuaris es bloquegin entre ells, informant-los si aquesta aplicaci lest utilitzant un altre usuari. Genera estadstiques. Comparteix el maquinari i les dades entre els usuaris. Facilita la gesti de la memria. Accepta els treballs i permet conservar-los fins que finalitzen. Detecta errors i actua de manera apropiada en el cas que es produeixin. Controla les operacions dE/S. Controla les interrupcions. Planifica lexecuci de tasques. Entrega els recursos a les tasques. Retira els recursos de les tasques. Protegeix la memria contra laccs indegut dels programes. Suporta el multiaccs. Proporciona a lusuari una manipulaci fcil de tot el sistema. Aprofita els temps morts del processador. Comparteix els recursos de les mquines entre diversos processos al mateix temps. Administra de manera efica el sistema com un tot. Permet que els diferents usuaris es puguin comunicar entre ells, aix com els protegeix uns daltres. Dna als usuaris la facilitat dutilitzar de manera senzilla tots els recursos i facilitats del sistema. Administra i organitza els recursos per utilitzar-los de la millor manera possible. Controla laccs als recursos del sistema. En general, es pot dir que els sistemes operatius fan dues funcions: 1) Faciliten la constituci duna maquina virtual o estesa. El sistema operatiu posa al servei de lusuari una mquina virtual que t unes caracterstiques que sn diferents (i ms fcils dabordar) que les de la mquina real subjacent. Algunes rees en les quals s freqent que la mquina virtual sigui diferent de la mquina real que la suporta sn: a) Entrada/sortida (E/S). La capacitat dE/S dun maquinari bsic pot ser que sigui extremadament complex i que requereixi sofisticats programes per a la seva utilitzaci. Un sistema operatiu evita a lusuari el problema
Una xarxa d'ordinadors s un sistema informtic que permet compartir recursos.

Sistemes operatius

15

El sistema operatiu

dhaver de comprendre el funcionament daquest maquinari, posant al seu abast una mquina virtual ms senzilla dusar. b) Memria. Molts sistemes operatius presenten la imatge duna mquina virtual en qu la memria difereix en grandria de la de la mquina real subjacent. Aix, per exemple, un sistema operatiu pot utilitzar memria secundria (discos magntics, etc.) per crear la illusi duna memria principal molt ms extensa de la que es disposa en la realitat. Alternativament, pot repartir la memria principal entre diversos usuaris, de forma que cada un dells vegi una mquina virtual en qu la memria sigui ms petita que la de la mquina real. c) Sistema de fitxers. La majoria de les mquines virtuals incloent-hi un sistema de fitxers per a lemmagatzematge a llarg termini tant de programes com de dades. El sistema de fitxers est basat en la capacitat demmagatzematge sobre cinta o disc de la mquina real. El sistema operatiu, per, permet a lusuari accedir a la informaci emmagatzemada a travs de noms simblics en lloc de fer-ho a travs de la seva posici fsica en el mitj demmagatzematge. d) Protecci i tractament derrors. Des del moment en qu la majoria dels ordinadors sn compartits per un determinat nombre dusuaris, s essencial que cada un dells estigui protegit dels efectes dels errors o de la mala fe dels altres. Els ordinadors varien considerablement respecte al grau de protecci que proporciona el seu maquinari bsic, i s missi del sistema operatiu constituir una mquina virtual en la qual cap usuari pot afectar de manera negativa el treball dels altres. e) Interacci a nivell de programa. Una mquina virtual pot possibilitar la interacci entre els diferents programes dels usuaris de forma que, per exemple, la sortida dun dells sutilitzi com a entrada dun altre. La naturalesa concreta duna mquina virtual dependr de laplicaci particular a la qual es destini. Aix, per exemple, les caracterstiques duna mquina virtual que controli un sistema de temps real ser diferent de les duna mquina virtual que sutilitzi per al desenvolupament de programes. 2) Facilita la utilitzaci compartida de recursos. Un sistema operatiu ha daconseguir que es comparteixin els recursos dun ordinador entre un cert nombre dusuaris que treballen de forma simultnia. La finalitat daix est en el fet dincrementar la disponibilitat de lordinador respecte als usuaris i, al mateix temps, maximitzar la utilitzaci dels recursos com processadors, memries i dispositius dE/S. La importncia de la utilitzaci eficient daquests recursos influeix en el cost dutilitzaci del sistema informtic.
El maquinari bsic d'un ordinador el forma aquell maquinari que s part fonamental: la memria, la CPU, els busos, etc. Maquinari bsic dun ordinador

Memries secundries Les memries secundries sn dispositius que permeten emmagatzemar informaci de manera permanent. Alguns d'aquests dispositius poden ser: discos durs, disquets, CD, DVD, etc.

Un nom simblic s equivalent a la paraula lies.

En un sistema de temps real el sistema dna resposta en el mateix moment en qu es demana una petici.

Sistemes operatius

16

El sistema operatiu

Resumidament es podria dir que els sistemes operatius sn un conjunt de programes que creen la interfcie del maquinari amb lusuari, i que tenen dues funcions primordials, que sn: Gestionar el maquinari: es refereix al fet dadministrar duna forma ms eficient els recursos de la mquina. Facilitar el treball a lusuari: permet una comunicaci amb els dispositius de la mquina.

1.1.2. Evoluci histrica dels sistemes operatius


Levoluci dels sistemes operatius ha anat de manera parallela amb la dels ordinadors.

Bugs Els bugs sn situacions que presenta algun tipus de programari consistent a repetir un seguit daccions sense fi a causa duna anlisi incorrecta.

Les principals causes de levoluci dels sistemes operatius es poden resumir en: Les actualitzacions i nous tipus de maquinari. Les demandes de nous serveis. La necessitat de resoldre diferents tipus derrors: bugs, etc.

Tot seguit, fem un petit resum dels principals fets que han influt en levoluci dels sistemes operatius, relacionant-los amb les diferents generacions dordinadors. ! Els sistemes operatius, igual que el maquinari, han sofert canvis a travs dels temps, els quals es poden agrupar en generacions. Levoluci del maquinari ha marcat el parallelisme de levoluci dels sistemes operatius. 1) La primera generaci (finals dels 50) Els ordinadors daquesta poca, eren de grans dimensions, difcils dutilitzar, presentaven una falta de recursos i tenien uns preus molt alts. Aquestes mquines eren gestionades per lusuari des dun tauler dendolls, on no hi havia sistema operatiu. Lusuari interaccionava directament amb lordinador i lnic llenguatge de programaci possible era el llenguatge mquina. Desprs, la gesti del computador es va fer des duna consola en qu cada usuari, i dun en un, tenia assignat un perode de temps durant el qual es convertia en propietari absolut de tot el sistema.

Generacions dordinadors Les generacions dordinadors fan referncia a les poques en les quals la informtica i els equipaments informtics tenen caracterstiques especials.

Llenguatge mquina El llenguatge mquina s el llenguatge utilitzat pels ordinadors. Est format per senyals binaris. Els senyals binaris estan formats per dos estats: activitat i desactivat (on, off).

La consola s un dispositiu format per un monitor i un teclat.

Sistemes operatius

17

El sistema operatiu

En aquestes mquines, noms era possible la monoprogramaci, s a dir, lexecuci dun sol programa, que sintrodua generalment per mitj de mquines lectores de fitxes perforades. A causa del fet que el procs dintroducci de les ordres era molt lent i llarg, es feia prcticament impossible lexecuci de programes mitjans i grans en aquest entorn. 2) La segona generaci (1955-1965) La invenci del transistor va canviar radicalment el mn dels ordinadors pel fet de ser ms petits i ms fiables que les vlvules de buit, de manera que ja es podien fabricar amb la idea de ser venuts. Eren mquines molt cares i noms eren a labast de grans corporacions (institucions com lexrcit, les universitats i el govern). Apareixen dispositius dentrada/sortida nous (els lectors de targetes perforades i les impressores) i sinventen dispositius demmagatzematge nous: les unitats de cintes magntiques. A ms a ms, es desenvolupa el primer programari, que inclou els assembladors, els llenguatges de programaci, els carregadors, els muntadors, les llibreries de diferents tipus i rutines estndards dentrada/sortida dels diferents dispositius que es podien utilitzar en els programes. Aquest nou entorn millora considerablement el procs de programaci i execuci de programes respecte a letapa inicial.
Monoprogramaci La monoprogramaci s un tipus de funcionament dalguns sistemes operatius que noms pot executar un programa a la vegada. Fins que no acaba dexecutar tot el programa no pot comenar-ne un altre.

Dispositius d'entrada/ sortida (E/S) Els dispositius d'entrada/sortida (E/S) sn un tipus de maquinari en qu el mateix dispositiu pot fer operacions de lectura i escriptura de la informaci (exemples: unitats de discos magntics, etc.).

Assemblador L'assemblador s el programa que tradueix el llenguatge assemblador a llenguatge mquina. El llenguatge assemblador s un llenguatge molt proper al llenguatge mquina.

Exemple de lexecuci dun programa En l'execuci d'un programa podem distingir els segents passos: 1) Els programes s'escriuen en llenguatges assembladors o d'alt nivell. Un cop creats aquests programes s'anomenen codi font o programa font, definits com a programes escrits en llenguatge d'alt nivell fent servir un editor o processador amb capacitat per gestionar el format ASCII. 2) Els programes font es tradueixen de manera automtica mitjanant els intrprets/compiladors a llenguatge mquina. Si hi ha errors de sintaxi es repeteix el procs des del principi (cal arreglar els errors de sintaxi). En cas contrari, el codi objecte produt (programa tradut ja al llenguatge mquina per no executable encara per l'ordinador), a partir del codi font pel programa traductor/ compilador, es pot carregar a la memria i executar. 3) El programa es carrega a la memria per executar-lo. 4) Desprs de transferir el control al programa carregat per mitjans manuals o automtics comena l'execuci del programa.

Carregador El carregador s una rutina que llegeix un programa executable i l'emmagatzema a la memria principal abans de la seva execuci.

Muntador El muntador, tamb anomenat editor d'enlla, s un programa per crear un codi executable a partir d'un o ms mduls objecte. Solucionen les referncies que hi ha entre aquests i assignen adreces definitives.

La manera doperar dels sistemes continuava essent poc efica a causa de les diverses operacions manuals, per aix sintentava aprofitar el temps perdut i augmentar la utilitzaci des recursos del sistema a fi deliminar els temps morts generats per les operacions manuals.

Sistemes operatius

18

El sistema operatiu

El primer objectiu va ser intentar automatitzar al mxim les operacions mitjanant ls del maquinari. Per aix es va crear la figura de loperador.

Loperador s un especialista en el funcionament de lordinador que tenia com a missi controlar el sistema, carregar programes, obtenir els resultats, etc.

A partir daquest moment el programador va deixar de tenir accs directe a lordinador; el procediment de treball era el segent: els programadors donaven als operadors els treballs que volien executar, aquests els ajuntaven els uns darrere dels altres en lordinador, en recollien els resultats i els entregaven als respectius programadors. Loperador agrupava els treballs amb els recursos fsics i lgics semblants i els executava com si fossin un nic bloc. Per exemple, si en tots els treballs apareixien programes escrits en un mateix llenguatge de programaci, es reunien els programes els uns darrere dels altres, i aix saconseguia que carregant el compilador una sola vegada es pogus utilitzar molt ms. Daquesta manera sobtenia un estalvi de temps. Aquest sistema sanomena sistema per lots o sistema batch.

Programador i llenguatges de programaci El programador s aquella persona que escriu, utilitzant llenguatges de programaci, les accions desenvolupades en llenguatge natural. Els llenguatges de programaci sn el conjunt de normes i regles que permeten donar ordres a lordinador. Alguns exemples de llenguatges sn C, COBOL, Visual Basic, etc.).

El sistema per lots o batch s un conjunt de treballs que lordinador executa un a continuaci de laltre i de manera seqencial.

Perqu el sistema per lots sigui possible cal indicar al sistema operatiu quan comena i finalitza un programa dintre del bloc. En aquest punt cal introduir el concepte de llenguatge de control de treballs (JLC), que permet, mitjanant la utilitzaci de fitxes perforades i amb una determinada informaci, separar blocs de processos. Malgrat aix, la CPU continuava estant molt temps parada. El problema era la diferncia de velocitat que hi havia entre la CPU i els perifrics. Per intentar reduir aix, va aparixer el treball fora de lnia (off-line). Mentre els programes escrits en targetes es llegien i es passaven a cinta en una mquina, en una altra, es podien anar executant altres programes que ja havien estat carregats anteriorment.
Un exemple de treball fora de lnia sn les mquines perforadores de fitxes i de cintes perforades.

Al treball fora de lnia (off-line) els dispositius funcionen sense haver destar connectats a la CPU.

Sistemes operatius

19

El sistema operatiu

Posteriorment es van idear altres tcniques com lemmagatzematge en memria intermdia (buffering). Aquesta tcnica consisteix a carregar les dades de la cinta en una memria (buffer) i, quan est plena, es bolquen de cop a la memria principal. Mentre el processador est treballant es torna a carregar la memria intermdia.
Buffer El buffer s una zona de memria que tenen alguns dispositius per a lintercanvi dinformaci entre el dispositiu i la memria principal.

El buffering s una tcnica que utilitza els buffers dels dispositius per a lintercanvi de dades entre els dispositius i la memria principal.

Una altra tcnica va ser la gesti de cues (spooling), que es va comenar a utilitzar en el moment daparixer el disc magntic amb ls de laccs aleatori. Aquesta tcnica es fonamenta en el fet que la sortida dinformaci dun programa senvia a un buffer i desprs a un disc magntic on espera poder ser tractada per una impressora o qualsevol altre perifric de sortida que en aquests moments no pot donar servei per diferents causes (per exemple, pot estar ocupat). El processador pot estar executant un treball mentre simprimeix una altra feina. Un sistema en spool el podem interpretar com una cua darxius que esperen ser impresos, gravats en cinta, etc., que estan esperant el seu torn, perqu es faci la feina per a la qual van ser creats. La gesti daquesta cua pot ser per la tcnica FIFO o per prioritats, etc.
Accs aleatori Laccs aleatori s una tcnica que utilitzen alguns dispositius (per exemples, els discos magntics), mitjanant la qual poden accedir a la informaci que contenen de manera directa.

La tcnica FIFO (first input-first output) est basada en el fet que el primer fitxer que arriba a la cua ser el primer a sortir.

Lspooling s una tcnica que utilitzen els discos durs per emmagatzemar temporalment la informaci que ha de gestionar un dispositiu.

3) Tercera generaci (1965-1980) La tercera generaci es fonamenta tecnolgicament en els circuits integrats. Els ordinadors daquesta poca sn molt ms petits i rpids. Sutilitzen nous mecanismes de gesti del maquinari com ara les tcniques de les interrupcions, la protecci de memria, etc. Parallelament es desenvolupen nous maquinaris amb els seus corresponents programaris; aix ha donat lloc a lexistncia dun nou entorn de treball amb les caracterstiques segents: Perifrics ms rpids i efectius. Terminals remots per accedir a bancs de dades.
Portabilitat La portabilitat s la caracterstica d'alguns programes que els permet ser utilitzats en diferents ordinadors sense que necessitin modificacions importants.

Sistemes operatius

20

El sistema operatiu

Programari de base adaptat a lusuari. Aix permet la utilitzaci de llenguatges universals pensats per ser utilitzats en diferents tipus dordinadors; s el que sanomena portabilitat. Sestandarditzen els llenguatges dalt nivell i napareixen altres de nous, com el Basic i el Pascal. Una de les tcniques ms innovadores s la multiprogramaci.

La multiprogramaci o programaci concurrent s una manera de treballar en qu podem executar ms dun programa simultniament (no en el mateix moment) amb lobjectiu daprofitar al mxim els recursos.

En la figura 3 podeu veure un esquema dun sistema informtic multiprogramat.


Figura 3. Esquema sistema de multiprogramaci

En el tractament de dades un tant per cent elevat el representen les operacions dentrada/sortida. s necessari millorar el procs per aconseguir temps de respostes ms baixos. La soluci est en la introducci de la programaci concurrent. Durant lexecuci seqencial dels processos se sap que la CPU i els dispositius E/S estan inactius en alguns moments. La manera de solucionar el problema est en lassignaci dalguna altra tasca a la CPU o als dispositius dentrada/sortida quan per algun motiu estiguin inactius. En la figura 4 podeu veure un diagrama dexecuci amb monoprogramaci i multiprogramaci.

Sistemes operatius

21

El sistema operatiu

Figura 4. Diagrama dexecuci amb monoprogramaci i multiprogramaci

Exemple de multiprogramaci Un exemple de multiprogramaci serien dos programes que sn a la memria principal pendents d'executar-se. El processador comena a executar el primer programa, i quan aquest porta a terme una operaci d'entrada/sortida, el processador en comptes de quedar-se inactiu passa a executar el segon procs. Quan aquest procs s'acaba, o b fa una operaci d'entrada/sortida, el processador torna a executar el primer procs. El processador continua alternant l'execuci dels dos processos fins que finalitzen.

Aquesta tcnica va fer replantejar lestructura del sistema operatiu. Aix es comena a parlar del nucli (kernel) del sistema operatiu.

El nucli, o kernel, est format per rutines que gestionen la memria central, el processador, els perifrics i altres recursos, responent les peticions dels dispositius dentrada/sortida. El nucli noms entra en acci si ho demana un programa o b un dispositiu.

La nova filosofia que introdueix el concepte de nucli implica nous dispositius com els que esmentem a continuaci: mecanismes dinterrupci, temporitzaci, mecanismes de protecci de la memria, etc. ! El problema de la multiprogramaci s que deixa dexecutar un programa i passa a executar-ne un altre que estigui pendent dexecuci, sempre que el programa que sest executant faci una operaci dentrada/sortida o b finalitzi. A causa daquest funcionament, el temps de resposta que t un usuari que est connectat de manera interactiva, en dileg continu amb lusuari, pot ser considerablement llarg. Per resoldre aquest problema, es proposa un nou mecanisme anomenat temps compartit. Els programes que estan competint pels recursos del sistema tenen assignada la CPU durant un perode de temps limitat, anomenat quntum. Aix, quan un programa deixa dexecutar-se, allibera la CPU.

Una interrupci s un senyal que s'envia al processador perqu pari el procs que estava executant.

El quntum s el temps que t assignat de processador un determinat programa.

Sistemes operatius

22

El sistema operatiu

Aquesta manera de treballar implica que lorganitzaci no es fa per treballs sin per sessions.

Una sessi s tot el conjunt de treballs que es fan des que un usuari es connecta a lordinador fins que acaba o es desconnecta. Durant aquest temps, es poden dur a terme multitud doperacions controlades per un procs anomenat intrpret dordres, que mant un dileg entre lusuari i el sistema operatiu.

4) Quarta generaci (1980-?) Amb la utilitzaci dels circuits integrats de diferents nivells dintegraci (LSI/VLSI), sinicia lera dels ordinadors personals, als quals es pot aplicar tots els mecanismes desenvolupats fins aquells moments, tant de maquinari com de programari. Sintrodueix el concepte de sistema operatiu en temps real, referit als sistemes que tenen un temps de resposta curt referent a qualsevol petici. Aquesta tcnica saplica en programes dedicats al control de processos utilitzant elements dentrada on s necessria una resposta rpida sobre el sistema que es vol controlar. Tamb apareixen els conceptes de procs distribut i de sistemes en xarxa, que estan relacionats amb la interconnexi dordinadors entre si per poder compartir recursos.
LAN: xarxa d'rea local. MAN: xarxa d'rea metropolitana. WAN: xarxa d'rea estesa.

LSI: gran escala d'integraci. VLSI: molt gran escala d'integraci.

Una xarxa dordinadors s un conjunt dordinadors interconectats amb el fi de compartir recursos. En funci de la grandria podem parlar de LAN, MAN i WAN. Un sistema distribut s un entorn en qu diversos ordinadors o nusos es distribueixen les tasques del sistema operatiu.

En lactualitat, la quantitat dinformaci que sha de manipular augmenta contnuament. Aix implica que moltes vegades els ordinadors actuals no tenen la capacitat per poder gestionar aquesta gran quantitat dinformaci. Shan buscat possibles solucions, i una pot ser el desenvolupament dordinadors que tinguin ms dun processador i que puguin treballar conjuntament En aquests ordinadors, el sistema operatiu ha dadministrar els processadors de tal manera que la crrega i el repartiment de la feina sigui equilibrat: s el que anomenem multiprocs.

Sistemes operatius

23

El sistema operatiu

El multiprocs s una tcnica en la qual podem executar ms duna tasca a la vegada (mateix moment), ja que existeix ms duna CPU en el mateix ordinador.

1.1.3. Organitzaci dels sistemes operatius


Intrpret dordres De vegades es considera que lintrpret dordres, o intrpret de comandaments, s una estructura ms del sistema operatiu. El sistema dordres sencarrega de "traduir" les ordres que lusuari introdueix mitjanant el teclat o altres dispositius a un "llenguatge" que la mquina pugui entendre.

Els sistemes operatius estan formats bsicament per les segents estructures: El nucli o kernel. Ladministrador de memria. El sistema dentrada/sortida. Ladministrador darxius.

Vegem les segents estructures que formen els sistemes operatius: 1) Nucli. El nucli s el mdul ms baix del sistema operatiu, descansa directament sobre el maquinari de lordinador. Entre les tasques que fa hi ha la manipulaci de les interrupcions, lassignaci de treballs al processador i el de proporcionar una via de comunicaci entre els diferents programes. En general, el nucli sencarrega de controlar la resta dels mduls i sincronitzar-ne lexecuci. El nucli cont un submdul anomenat el planificador, el qual sencarrega dassignar el temps de processador als programes, dacord amb una certa poltica de planificaci que varia dun sistema operatiu a un altre. Normalment sutilitza una jerarquia de prioritats que determinen com sassignar el temps de CPU a cada programa. Una poltica de planificaci molt comuna en els sistemes operatius multiprogramats i multiaccs sn les tcniques de time slicing (fracci de temps). Sassigna a cada programa un cert interval de temps del processador. Si el programa no ha acabat durant aquest temps, torna a la cua de programes. ! 2) Administrador de memria. Aquest mdul sencarrega dassignar certes porcions de la memria principal (RAM) als diferents programes o parts dels programes que la necessiten, mentre que la resta de dades i els programes es mantenen en els dispositius demmagatzematge massiu. Daquesta manera, quan sassigna una part de la memria principal es fa duna forma estructurada, seguint un determinat ordre. La forma ms comuna dadministraci de la memria implica crear una memria virtual; amb aquest sistema, la memria de lordinador apareix, per a qualsevol usuari del sistema, ms gran del que s. 3) Sistema dentrada/sortida (E/S). Aquest component presenta a lusuari les dades com una qesti independent del dispositiu; s a dir, per als usuaris,

Sistemes operatius

24

El sistema operatiu

tots els dispositius tenen les mateixes caracterstiques i sn tractats de la mateixa manera, en qu s el sistema operatiu el responsable datendre les particularitats de cada un dells. Una tcnica molt comuna, especialment en la sortida dinformaci, s ls de spoolers. Les dades de sortida semmagatzemen de forma temporal en una cua situada en un dispositiu demmagatzematge massiu (lspool), fins que el dispositiu perifric corresponent es troba lliure; daquesta manera sevita que un programa quedi retingut perqu el perifric no est disponible. El sistema operatiu disposa de crides per afegir i eliminar arxius de la cua de lspooler. 4) Administrador darxius. Aquesta part del sistema operatius sencarrega de mantenir lestructura de les dades i els programes del sistema corresponents als diferents usuaris i dassegurar ls efectiu dels mitjans demmagatzematge massiu. Ladministrador darxius tamb supervisa la creaci, actualitzaci i eliminaci dels arxius, mantenint un directori amb tots els arxius que hi ha en el sistema en cada moment, i coopera amb el mdul dadministraci de memria durant les transferncies de dades des de i cap a la memria principal i dels mitjans demmagatzematge massiu per mantenir lestructura de lorganitzaci. Els arxius emmagatzemats en els dispositius demmagatzematge massiu tenen diferents propsits. Alguns contenen informaci que pot ser compartida. Uns altres sn de carcter privat i fins i tot secret. Per tant, cada arxiu est dotat dun conjunt de privilegis daccs, que indiquen lextensi amb la qual es pot compartir la informaci continguda en larxiu. El sistema operatiu comprova que aquests privilegis no siguin violats (administraci de seguretat).

1.1.4. Tipus de sistemes operatius


Podem classificar els sistemes operatius seguint els criteris segents: 1) Segons la utilitzaci de recursos. Aquesta classificaci fa referncia al nombre de programes que es vol executar simultniament. Sistemes monoprogramats. Noms admeten un programa en el sistema i no permeten fer s de les tcniques de multiprogramaci. El programa s carregat en memria i s all fins que acaba de ser executat. Durant aquest perode de temps no es pot executar cap altre programa. Sistemes multiprogramats o multitasca. Utilitzen tcniques de multiprogramaci i poden admetre un o ms programes dun o diversos usuaris simultniament. Aquests sistemes els podem classificar de la manera segent: Multitasca apropiativa. Consisteix en el fet que el sistema operatiu pot treure el control que t un programa sobre el processador.

Sistemes operatius

25

El sistema operatiu

Multitasca cooperativa. El programa controla el processador i s el responsable que altres programes tamb es puguin executar. 2) Segons la interactivitat. Aquesta classificaci t en compte el tipus de feina a qu sn destinats els sistemes. Sistemes de processament per lots (batch). Poden utilitzar la multiprogramaci per executar diversos programes a la vegada. En el procs per lots, cada treball efectua una srie de passos seqencials relacionats. Tots els paquets dun mateix treball sajunten per formar un nic lot. Sistemes de temps compartit (times sharing). Sistemes que accepten que diversos programes competeixin pels recursos del sistema. Aix implica que la CPU s assignada durant un perode de temps limitat, anomenat quntum. Aix, quan un programa deixa dexecutar-se, allibera la CPU. Sistemes de temps real (real time). Sistemes multiprogramats i interactius ms exigents, basats en una resposta rpida sobre els sistemes que es vol controlar a partir de les informacions rebudes. Els sistemes que no necessiten una resposta rpida sanomenen de temps diferit. 3) Segons el nombre dusuaris. Classifiquem els sistemes en funci del nombre dusuaris que poden accedir a un ordinador. Sistemes monousuari. Noms permeten en un determinat moment la connexi dun nic usuari a la vegada en el sistema. Utilitzen tcniques de monoprogramaci executant un nic programa o poden ser sistemes multiprogramats, que faciliten a lusuari lexecuci duns quants programes a la vegada. Sistemes multiusuari. Utilitzen tcniques de multiprogramaci i ofereixen la possibilitat que diversos usuaris accedeixin a la vegada al sistema, i es pot utilitzar tamb temps real i temps compartit. 4) Segons el tipus daplicaci. Aquesta classificaci es basa en el tipus daplicacions informtiques que executar el sistema. Sistemes de propsit general. Es caracteritzen per la capacitat de poder executar qualsevol tipus daplicaci informtica. Sistemes de propsit especial. Han estat dissenyats especficament per donar servei a determinades aplicacions informtiques. 5) Segons el nombre de processadors. Aquesta classificaci es basa en la quantitat de processadors de qu disposa lordinador.

Els paquets en un sistema per lots corresponen a blocs d'informaci.

Sistemes operatius

26

El sistema operatiu

Sistemes monoprocessadors. Lordinador disposa duna nica CPU i per tant tots els programes shan dexecutar en la mateixa CPU. Sistemes multiprocessadors o multiprocs. Lordinador disposa de diverses CPU, aix permet que un mateix treball o diferents treballs sexecutin en diferents CPU. En funci dels objectius de rendiment que tinguin fixats, els sistemes operatius multiprocessador poden tenir bsicament dues aparences externes: En els sistemes orientats a augmentar la productivitat, lusuari t una visi idntica a la que tindria, per exemple, en un sistema monoprocessador de propsit general. En els sistemes orientats a augmentar la velocitat, lusuari treballa de manera diferida. En aquest cas, el desenvolupament de les aplicacions i el treball interactiu en general sefectuen en un sistema previ al multiprocessador anomenat front-end, que s lencarregat denviar a les cues de treball diferit els processos que shan de dur a terme, i de recollir-ne els resultats. Els sistemes operatius multiprocessador poden classificar-se en funci de la seva estructura interna en: El model de supervisors separats. En el model de supervisors separats cada processador t un sistema operatiu independent que funciona com un sistema gaireb allat. El model mestre/esclau. En aquest model un processador, el mestre, s lencarregat dexecutar el sistema operatiu. La resta de processadors, els esclaus, es dediquen a executar els processos que el mestre encarrega. El model simtric. En aquest model tots els processadors tenen les mateixes competncies. En general els recursos de tot el sistema estan a disposici de tots els processadors. En aquest cas, a diferncia dels dos casos anteriors, el sistema sexecuta en parallel. ! 6) Segons la distribuci de les tasques del sistema. La feina es reparteix entre diversos processadors connectats en xarxa. Sistemes distributs. Un sistema operatiu distribut s un sistema operatiu que engloba i gestiona un entorn distribut de manera transparent per a lusuari. Podrem definir lentorn distribut com diversos sistemes interconnectats amb una xarxa que sn capaos de cooperar i comunicar-se grcies a aquesta xarxa i al programari que la gestiona. Cada processador t la seva prpia memria local, no comparteixen rellotge. La comunicaci entre els processadors s a travs de lnies de comunicaci, busos dalta velocitat o lnies teleBus Els busos sn lnies de comunicaci entre els principals components de l'ordinador. Hi ha els tipus segents: Bus de control: lnies de comunicaci per on circulen senyals de control. Bus de dades: lnies de comunicaci per on circulen les dades. Bus del sistema: lnies de comunicaci entre el processador, la memria i els perifrics.

Sistemes operatius

27

El sistema operatiu

fniques. Hi pot haver processadors de diferents grandries i funcions. Cada sistema situat de cada mquina pot realitzar tasques diferents i especfiques i daquesta manera millorar el rendiment del sistema. Sistemes centralitzats. Una mateixa mquina realitza totes les tasques del sistema operatiu. Externament els sistemes operatius distributs poden oferir els mateixos serveis que un sistema de propsit general. Internament la seva estructura es basa en el model client/servidor. Podem classificar sistema operatius distributs en: a) El model monoltic. Aquest model s el que han utilitzat els sistemes operatius tradicionalment. El sistema monoltic s un sistema operatiu en qu els serveis que ofereix estan gestionats per servidors que majoritriament formen part del nucli del mateix sistema i, per tant, es troben dintre del seu espai protegit. En cada node de la xarxa sexecuta el sistema complert i internament els diferents nuclis es coordinen per portar a terme la gesti dels diferents recursos. En la figura 5 podeu veure un esquema del model monoltic.
Figura 5. Model monoltic

b) El model micronucli. El micronucli s una capa de programari que es troba en totes les mquines del sistema, i que cobreix el maquinari i proporciona un entorn bsic on sexecuten els servidors que configuren els anomenats subsistemes. En la figura 6 podeu veure un esquema del model micronucli.

Sistemes operatius

28

El sistema operatiu

Figura 6. Model micronucli

Tendncies actuals i futures dels sistemes operatius


Podem resumir les tendncies actuals i futures en sistemes operatius en els segents punts: Parallelisme: Increment de multiprocessadors. Extensi de llenguatges parallels. Commutaci distribuda: increment de les xarxes dordinadors connectades. Sistemes tolerants a falles. Interfcies dusuaris ms amigables: Desenvolupament dinterfcies grfiques. Incorporaci de la multimdia en les interfcies. Reconeixement de la veu. Immersi en lentorn: realitat virtual 3D (tres dimensions).
Realitat virtual s la tecnologia que permet simular situacions reals.

Multimdia s el conjunt d'equipament informtic que permet gestionar text, imatges, so, vdeo, etc.

Sistemes operatius

29

El sistema operatiu

Sistemes oberts: estandarditzaci de sistemes per compatibilitzar els diferents fabricants a nivell de: Comunicacions de xarxa. Interfcies dusuari ofertes. Aplicacions ofertes (diverses plataformes). Sistemes orientats a objectes: aplicaci de tcniques dorientaci a objectes als sistemes operatius. ! Personalitats mltiples: en una mateixa mquina i en un sistema operatiu bsic poden existir diferents sistemes operatius. Els sistemes operatius segueixen evolucionant. La principal tendncia quant a organitzaci dels treballs s convertir-se en sistemes operatius distributs. Els sistemes operatius distributs estan dissenyats per a ls en grup dordinadors connectats per independents que comparteixen recursos. En un sistema operatiu distribut, un procs pot executar-se en qualsevol ordinador de la xarxa per augmentar el rendiment daquest procs. En els sistemes distributs totes les funcions bsiques dun sistema operatiu, com mantenir els sistemes darxius, garantir un comportament raonable i recuperar dades en cas de problemes, resulten ms complexes.

No sha de confondre un sistema operatiu de xarxa amb un sistema operatiu distribut. En un sistema operatiu de xarxa els ordinadors estan interconnectats a travs dels mitjans de comunicacions: programari i maquinari. En aquest tipus de xarxa els usuaris saben on est executant-se el seu treball i guardant la seva informaci. En canvi, en els sistemes operatius distributs hi ha un programari que distribueix les tasques dels usuaris sobre una xarxa dordinadors, i per als usuaris s transparent on es realitzen les seves tasques i es guarda la seva informaci.

En la figura 7 podeu veure un esquema del model en xarxa i del model distribut.

Sistemes operatius

30

El sistema operatiu

Figura 7. Model en xarxa i model distribut

Principals sistemes operatius


En el camp informtic hi ha i hi ha hagut un gran nombre de sistemes operatius. Alguns sn simples adaptacions o variacions daltres. Vegem-los. Dintre dels sistemes de tipus multiusuari podem destacar els segents: MVS. s un sistema basat en larquitectura 370 dIBM. Al principi dels anys vuitanta apareixen les versions ms potents, com la MVS/ SP, i un any desprs apareix la versi MVS/ESA, amb ms presta-

MVS, MV/SP, VM, VAX, OS, DOS, IBM i DEC MVS: multiple virtual storage. MVS/SP: multiple virtual storage/ system product. VM: virtual machine. VAX: virtual address extension. OS: operating system. DOS: disk operating system. IBM: international business machines. DEC: digital equipment corporation.

Sistemes operatius

31

El sistema operatiu

cions. Hi ha una varietat denominada VM, que converteix una nica mquina real en un conjunt de mquines virtuals. Dintre daquesta mquina, lusuari pot executar qualsevol sistema operatiu. DECVMS o VMS de DEC. Es basen en larquitectura de Digital i tenen el seu origen en el sistema operatiu VMS dels sistemes VAX. Pretenen que les aplicacions puguin compartir la informaci i els recursos independentment del sistema informtic en qu sestan executant. Unix. s un sistema multiusuari, creat a partir del llenguatge C. s modular i admet programes de diferents fabricants. El nucli s interactiu, el shell es pot convertir en un llenguatge de programaci, t moltes utilitats i eines de desenvolupament. En el mercat hi ha diverses versions amb una certa compatibilitat entre si: SCO Unix, Linux, BSD, AIX, Solaris, etc.
Altres sistemes multiusuari El Theos s un sistema multiusuari que est destinat a la gesti de petites i mitjanes empreses. Posseeix una gran facilitat de programaci i s molt fcil d'aprendre. L'estructura d'arxius s semblant a la del sistema DOS. El Xenix s un altre sistema multiusuari. s una variant d'Unix pensada per a entorns multiusuari. Hi ha versions compatibles amb Unix System V.

Dintre dels sistemes del tipus monousuari tenim: OS/2. s un sistema multitasca dissenyat per a ordinadors personals. El seu funcionament es basa en un processador per a cada usuari i disposa duna interfcie grfica de connexi. Hi ha versions tamb per a xarxa (OS/2 WARP Server). DOS. Sistema operatiu monotasca i monousuari. Ha estat un sistema molt utilitzat des de laparici del primer PC. Avui dia, la tendncia s que desaparegui per les limitacions que t. Hi ha diferents fabricants que comercialitzen el DOS amb diferents noms. Les marques ms conegudes sn les versions MS-DOS (Microsoft), i PC-DOS (IBM). Windows-x. Tenen una arquitectura de 32 bits, multitasca que permet executar mltiples aplicacions simultniament i de manera completa sempre que les aplicacions siguin de 32 bits. Destaca per tenir un entorn grfic molt potent. Hi ha diferents versions amb caracterstiques diferents: Windows 3.x, Windows 95, Windows 98, Windows NT Workstation, Windows 2000 Professional Edition, Windows 2003 Standard Edition, Windows Vista, etc. Tots aquests sistemes operatius, ja siguin monousuari o multiusuari, han incorporat poc o molt la interconnexi grfica dusuari (GUI), que permet una utilitzaci ms fcil del sistema a base delements grfics. Un altre factor que cal tenir en compte, i que est relacionat amb els sistemes operatius actuals, sn les xarxes locals, algunes de les quals utilitzen sistemes operatius especials (Windows NT Server, Windows 2000

GUI: interfcie grfica d'usuari.

Sistemes operatius

32

El sistema operatiu

Server, Windows 2003 Enterprise Edition etc.) i daltres que funcionen eficientment amb modificacions dels sistemes operatius anteriorment comentats (Unix/Xenix, OS/2 i DOS). !

Cada sistema operatiu t les seves prpies limitacions, normalment a causa de la seva filosofia de funcionament o de les disponibilitats de memria i de recursos fsics. En el mn MVS, per exemple, preval la seguretat i la fiabilitat de les aplicacions, mentre que en altres entorns es valoren ms les capacitats de clculs o la rapidesa del desenvolupament.

En els sistemes operatius propietaris de lentorn dels miniordinadors, com lOS/400, creat per a lordinador IBM AS/400, i el VMS de DEC, creat per al WAX Computer, el futur que tenen est lligat al maquinari concret. LUnix ha estat creat i pensat per a tot tipus dordinadors. Aix ha provocat que algunes versions hagin hagut de ser redudes per poder-ne utilitzar en els PC (Minix). Avui dia, per, el desenvolupament dels microordinadors de 64 bits, amb capacitats ms potents de maquinari, fan que el seu futur sigui molt prometedor, especialment la versi Linux per la seva gratutat dutilitzaci i la seva contnua evoluci. Els sistemes DOS estan limitats pel fet de ser monousuari i monotasca, excepte si es combina amb versions de lentorn Windows 9x, ja que ofereix la possibilitat de poder treballar en multitasca. Laparici de les xarxes drea local (LAN) ha resolt algunes limitacions, ja que avui dia hi ha la possibilitat de la integraci entre sistemes que fa pocs anys era impensable (Unix/NetWare, Unix/Windowsx, Unix/DOS, etc.). Durant la dcada dels noranta ha sorgit un nou entorn que s el dels sistemes clients/servidors. Aquest concepte no est limitat a la grandria dels ordinadors sin a la funci que tenen. Laparici de les xarxes dordinadors personals interconnectades ha motivat laparici de nous equips, la funci essencial dels quals s centralitzar determinats serveis per oferir-los a un conjunt dordinadors de la xarxa. Un servidor pot, per exemple, oferir disc dur a altres ordinadors ampliant la capacitat demmagatzematge daquests o, fins i tot, tenir dnica cpia de les aplicacions. Els sistemes operatius ms utilitzats per a sistemes servidor/client sn Unix, OS/2 i Windows NT, Windows 2000 Server, Windows 2003 Standard Edition, etc. La majoria dels sistemes operatius actuals han estat dissenyats perqu siguin fcils dutilitzar. En contrapunt, els sistemes operatius del futur estaran dissenyats per a un s i desenvolupament fcils. El disseny estar

Sistemes propietaris i sistemes oberts Un sistema propietari s aquell sistema que per a la seva utilitzaci cal estar registrat. Els sistemes oberts permeten la seva utilitzaci de manera lliure.

Sistemes operatius

33

El sistema operatiu

fet amb poques disminucions quant a la seva facilitat dimplementaci, amb lexcepci de la seva modularitat i estandarditzaci. A causa daquests principis de disseny, el sistema operatiu del futur no ser difcil dimplementar. Aquestes mateixes qualitats de treball dels programadors, tamb quant a la majoria dels projectes de desenvolupament, necessitaran noms assemblar objectes dalt nivell. Aquests mduls, que shauran de dissenyar, seran reutilitzables i fcilment adaptables a les necessitats de cada programador. !

1.1.5. Estructura dels sistemes operatius


Els sistemes operatius han presentat o presenten diferents estructures a nivell intern: 1) Estructura monoltica s lestructura dels primers sistemes operatius. En la figura 8 podeu veure un esquema de lestructura monoltica dels sistemes operatius.
Figura 8. Sistemes monoltics

Lestructura monoltica est formada per un programa que estava integrat per un conjunt de rutines entrellaades de tal manera que cada una podia cridar qualsevol altra. Lestructura consisteix en el fet que no hi ha estructura. Les principals caracterstiques daquesta estructura sn les segents: s molt comuna. No existeix estructura prpiament o s mnima. El sistema operatiu s una collecci de procediments que es poden cridar entre si.
Un procediment s un bloc d'accions que sn cridades des d'un mateix programa.

Sistemes operatius

34

El sistema operatiu

Cada procediment t una interfcie ben definida en termes de parmetres i resultats. 2) Estructura jerrquica o en capes A mesura que anaven creixent les necessitats dels usuaris tamb anaven creixent els sistemes operatius. Aleshores, va caldre una ms bona organitzaci del programari, per la qual cosa es fu necessari un altre tipus dorganitzaci. Una manera dorganitzar millor les coses va consistir a dividir el sistema operatiu en petites parts independents, per amb capacitat de relaci amb les altres, de tal manera que cadascuna estigus perfectament definida i amb una interfcie amb la resta dels elements. Normalment aquest sistema sestructurava en capes en qu cada una tenia assignades funcions concretes i especialitzades. Aquesta divisi en capes va donar lloc a la divisi en funcions.

Una interfcie s un conjunt d'eines que faciliten la comunicaci entre els usuaris i el sistema.

En lestructura jerrquica els sistemes operatius sestructuren en les capes segents: Planificaci del processador: gestiona el processador i la manera com poden accedir al processador els diferents programes. Gesti de memria: gestiona la memria i la utilitzaci que sen pot fer per part dels diferents programes. Gesti dentrada/sortida: gestiona cada un dels perifrics de lordinador. Sistema de fitxers: gestiona la informaci dels usuaris i fixa els mecanismes de protecci necessaris per aconseguir un sistema de seguretat acceptable. Programes dusuari: aplicacions especfiques dutilitzaci per part de lusuari.

Lestructura jerrquica tamb es pot representar en forma danelles (capes circulars). Les funcions dun nivell superior poden invocar-ne daltres dels nivells inferiors, per no les dels nivells superiors. En la figura 9 podeu veure un esquema de lestructura jerrquica dels sistemes operatius.

Sistemes operatius

35

El sistema operatiu

Figura 9. Estructura de sistemes jerrquics o en capes

3) Estructura de mquina virtual Aquests sistemes presenten al programa una mquina que sembla idntica a la mquina real, anomenada mquina virtual. El nucli daquest sistema operatiu sanomena monitor virtual. El sistema de mquina virtual separa dos conceptes que solen estar junts en tots els sistemes operatius: la multiprogramaci i la mquina estesa.
El VM/370 d'IBM s un exemple de sistema operatiu representatiu de l'estructura de mquina virtual.

El monitor virtual t com a missi fer la multiprogramaci presentant als nivells superiors tantes mquines virtuals com se sollicitin. No sn mquines esteses sin una replica exacta de la mquina real, de manera que en cada una daquestes es pot executar un sistema operatiu diferent, que ser el que ofereixi la mquina estesa a lusuari.

Quan un programa executa una crida, la crida sagafa i senvia al sistema operatiu de la seva prpia mquina virtual perqu la gestioni. Les caracterstiques principals del monitor sn: Proporciona varies mquines virtuals a la capa superior. Las mquines virtuals instrumenten cpies exactes del maquinari simple, amb el seu mode nucli /usuari, E/S, interrupcions i tot el que t una mquina real. Poden executar qualsevol sistema operatiu de forma directa sobre el maquinari. Les diferents mquines virtuals poden executar diferents sistemes operatius i en general aix ho fan. Suporten perifrics virtuals.

!!
Les crides sn funcions que t el mateix sistema operatiu per fer determinades tasques que poden ser invocades de diferents maneres en determinats moments.

Mode nucli i mode usuari El mode nucli s l'entorn en el qual es pot gestionar el maquinari. En el mode usuari no s possible interactuar de manera directa amb el maquinari.

Sistemes operatius

36

El sistema operatiu

4) Estructura client/servidor Es tracta de traslladar tot el codi possible a les capes superiors i alliberar tant com es pugui les capes inferiors del sistema operatiu per aconseguir un kernel mnim.

La idea principal de lestructura client/servidor s implementar la major part de les funcions del sistema operatiu en la capa dels processos de lusuari. Dos elements sn la base daquesta poltica: el nucli i els processos. Es tracta de dissenyar un nucli tan petit com sigui possible, i de subministrar mecanismes per a la gesti daccessos a la memria i la comunicaci entre programes. Les poltiques, les fixen els programes que fan moltes vegades les funcions que abans feien els sistemes operatius.

Els processos tant poden ser servidors com clients. Un programa daplicaci normal s un client que crida al servidor corresponent per accedir a un fitxer o per fer una operaci dE/S sobre un dispositiu. A la vegada, un programa client pot actuar com a servidor dun altre. El nucli t com a missi establir la comunicaci entre els clients i els servidors. En la figura 10 podeu veure un esquema de lestructura client/servidor dels sistemes operatius. En aquest model, que es presenta en la figura, lnic que fa el nucli s controlar la comunicaci entre els clients i els servidors. En separar el sistema operatiu en parts, cada una controla una faceta del sistema, com el servei a fitxers, servei a processos, servei a terminals o servei a la memria; cada part s petita i controlable. A ms, tots els servidors sexecuten com a processos en mode usuari, i no en mode nucli, no tenen accs directe al maquinari. En conseqncia, si hi ha un error en el servidor de fitxers, aquest pot fallar, per aix no afectar el funcionament general de tota la mquina.
Figura 10. Estructura de sistema operatiu client/servidor

El client representa aquell element que demana un servei a un altre anomenat servidor.

Mode usuari i mode supervisor El mode usuari ofereix els entorns on corren totes les aplicacions d'usuari. Per exemple els programes Win32 corren en el subsistema Win32. El mode nucli, supervisor o privilegiat se situa entre el mode usuari i la capa fsica (el maquinari) i evita que el mode usuari accedeixi directament al maquinari. El mode nucli s la residncia dels

Sistemes operatius

37

El sistema operatiu

diferents serveis del sistema operatiu que s'encarrega de totes les operacions internes d'aquest sistema operatiu. En resum, podem dir que mentre s'est executant una crida del nucli estem en mode nucli i quan estem executant codi que no pertany al nucli es diu que estem en mode usuari. Aix garanteix a nivell de maquinari que cap programa d'usuari pugui accedir als recursos generals del sistema, llevat que utilitzi crides al nucli, les quals podran establir, en funci dels permisos, l'accs al maquinari.

Hi ha diversos models client/servidor: El client s un procs i el servidor s el seu sistema operatiu. Aquest cas representa una crida al sistema. El client i el servidor sn processos del sistema operatiu. En aquest cas sutilitzen les crides al sistema per posar en contacte el client i el servidor. El client i el servidor sn processos de sistemes operatius diferents. En aquest cas sutilitzen les crides al sistema daccs a la xarxa per comunicar processos en mquines diferents.

En la figura 11 podeu observar diferents models client/servidor.


Figura 11. Models client/servidor

Una tendncia dels sistemes operatius moderns s la de traslladar el codi a capes superiors, i eliminar la major part possible del sistema operatiu per mantenir un nucli mnim. El punt de vista usual s implantar la majoria de les funcions del sistema operatiu com processos dusuari. Per solli-

Sistemes operatius

38

El sistema operatiu

citar un servei, com la lectura dun bloc dun fitxer, un procs dusuari (anomenat en aquest cas procs client) envia la sollicitud a un procs servidor, que realitza el treball i retorna la resposta. 5) Estructura orientada a lobjecte Els nous sistemes operatius sestan desenvolupant dacord amb metodologies orientades a objectes. En comptes de veure el sistema operatiu com una collecci de funcions que es poden executar, la concepci dels nous sistemes es basa en una collecci dobjectes. El nucli del sistema operatiu ser el responsable del manteniment de les definicions del tipus dobjectes suportats i del control dels privilegis daccs a aquest. Quan un programa vol fer alguna operaci sobre un objecte determinat, haur dexecutar una crida al sistema operatiu indicant quins drets t per poder-lo utilitzar i quina operaci interna tracta de fer. 6) Estructura multiprocessador Cada cop calen sistemes ms rpids que suportin un volum de feina ms gran, o per abordar problemes ms costosos en temps de clcul. Una manera daconseguir-ho es basa en la combinaci de processadors. Aquesta opci s la ms econmica i permet construir sistemes amb un creixement escalar segons les necessitats. Podem classificar les arquitectures multiprocessador segons la relaci que hi ha entre processadors i memria: Multiprocessadors acoblats fortament. Aquest sistema tamb sanomena sistemes de memria compartida. En aquest cas, cada processador veu i, per tant, pot accedir directament a la totalitat de la memria. Multiprocessadors acoblats dbilment. Tamb sanomenen sistemes de memria distribuda. Cada processador t accs noms a una memria privada. Els processadors es comuniquen entre ells a travs de mecanismes de missatges. 7) Estructura per funcions El codi del sistema operatiu es pot organitzar per les seves funcions. En la figura 12 teniu un model de sistema operatiu per tipus de funcions. En aquest cas les agrupacions es fan segons el tipus de servei que es vol donar, sense tenir en compte la proximitat o la distncia del maquinari, com en el cas de lestructura en capes. Aquestes agrupacions es poden fer a partir de serveis dE/S, la gesti de la memria, etc. Aquesta estructura dna una organitzaci vertical. !

Objecte Un objecte s un element que t unes propietats i shi poden fer unes determinades accions. Els ordinadors, els usuaris o les impressores sn alguns exemples dobjectes. Algunes accions que en podem fer sn crear, modificar, copiar, etc.

Sistemes operatius

39

El sistema operatiu

Figura 12. Model de sistema operatiu per tipus de funcions

1.1.6. Serveis dels sistemes operatius


Una de les funcions del sistema operatiu s ajudar lusuari a utilitzar el maquinari que forma lordinador. Per aconseguir-ho haurem de proporcionar diferents serveis, que dependran de qui sigui que els necessita. Podem estudiar-ho tenint en compte diferents punts de vista. 1) Serveis des del punt de vista del processador. Podem diferenciar els segents serveis: Execuci de programes. Facilita la crrega de programes en la memria principal i la seva execuci. Operacions dentrada/sortida. Facilitats perqu un programa permeti gestionar un arxiu, gestionar les dades dun dispositiu, etc. Gesti darxius. Facilitats dutilitzaci, organitzaci i gesti dels sistemes darxius. 2) Serveis des del punt de vista del sistema. Entre altres serveis, podem fer referncia als segents: Assignaci de recursos. Mecanismes per evitar els possibles problemes dutilitzaci de recursos pels quals competeixen alguns usuaris o processos. Comptabilitat. Control del temps dutilitzaci dels recursos per part dels usuaris gestionant-ne la facturaci dutilitzaci i la gesti estadstica.

Sistemes operatius

40

El sistema operatiu

Protecci. Gesti de seguretat en el control daccs, la manipulaci dels recursos, etc. 3) Serveis des del punt de vista a lusuari. El sistema operatiu dna els seus serveis als usuaris de dues maneres: les crides al sistema operatiu des dun procs i lexecuci de programes del mateix sistema. Crides al sistema operatiu. s una interfcie entre un programa en execuci i el sistema operatiu. Sn funcions en assemblador (o en llenguatge de programaci C). Antigament eren invocades des dun programa en assemblador, per actualment ho podem fer des de llenguatges dalt nivell, sempre que el sistema tingui una interfcie adequada per transformar els arguments passats. Les crides al sistema sn semblants a les crides que es fan des dun programa a un subprograma.
Exemple de crida Una instrucci que s'est executant, genera una interrupci; aleshores, el sistema operatiu activa l'estat protegit del processador i en dna el control al sistema operatiu (mode supervisor o privilegiat). Una vegada el nucli t el control del processador, para momentniament l'execuci del programa i comena la identificaci del servei demanat (s a dir, quina funci s'ha demanat executar), i a la vegada es comproven els parmetres. Quan s'ha identificat la funci, el nucli accedeix a una taula on hi ha les adreces de comenament de totes i cadascuna de les subrutines que poden fer els diferents serveis, en selecciona la sollicitada i l'executa. Una vegada finalitzat el servei el processador passa a estat no protegit (manera no privilegiada o usuari) i se'n retorna el control al programa que fa fer la petici, perqu s'executi la segent instrucci. Els subprogrames o subrutines s un conjunt d'accions que sn cridades a partir d'un altre programa. Arguments Els arguments o parmetres sn els continguts de variables que s'utilitzen quan es crida un procediment i/o funci.

Programes del sistema. En els sistemes operatius actuals tamb podem trobar un conjunt de programes del sistema o dutilitat, la missi dels quals s resoldre problemes comuns i freqents dels usuaris i donar un entorn ms fcil i cmode. En la figura 13 podeu veure un esquema dels diferents programes del sistema operatiu. Explicarem molt breument les parts de qu es compon aquest esquema: Tractament de fitxers. Permeten fer les operacions bsiques amb els fitxers (copiar, netejar, canviar de nom, imprimir, llistar, etc.). Exemples: copy i del en DOS i cp i rm en Unix. Editors. Conjunt de programes que faciliten ledici darxius tipus text. Exemples: edit i vi respectivament en DOS i Unix. Informaci. Donen informaci general sobre diferents aspectes del sistema informtic: el nombre dusuaris donats dalta en el sistema, els usuaris que hi ha connectats, etc. Exemples: tty i who en Unix.

Sistemes operatius

41

El sistema operatiu

Programes dutilitat. Sn programes que ajuden a millorar el funcionament del sistema: els compiladors, els programes de comunicacions, etc. Exemples: gcc en Unix. Execuci. Programes per a la construcci, depuraci i crrega de programes executables. Exemples: debug en Windows. Intrpret dordres. s el ms important de tots els programes del sistema, ja que crea lentorn de treball de lusuari. Rep totes les ordres de lusuari (intrpret dordres), i dna el control als diferents programes del sistema o a les funcions del nucli, segons les necessitats i peticions de lusuari. Exemples: command.com en DOS i sh, csh i bash en Unix.
Figura 13. Programes del sistema operatiu

Les interfcies dusuari sn tots aquells procediments que dna el sistema operatiu per facilitar el treball entre els usuaris i el sistema. Per fer-ho sutilitza un intrpret dordres i llenguatges de treballs. La interfcie que es vol definir entre lusuari i el sistema shaur de basar en un llenguatge textual o grfic (GUI) que fixi les normes de comunicaci. Lelecci del llenguatge dependr de la finalitat del sistema operatiu (in-teractiu o per lots). Una vegada que lusuari comena una sessi en el sistema, aquest el rep indicant que est preparat per acceptar les ordres de lusuari. Aix ho fan mitjanant un indicador (prompt), que normalment s un smbol que s diferent segons el sistema operatiu amb qu estiguem treballant. Aquest indicador que escriu un programa que est cons-tantment en execuci per cada usuari i que es coneix amb el nom dintrpret dordres, basa el seu funcionament en un llenguatge dordres amb una sintaxi determinada (per exemple, el shell de Bourne o el shell de C dUnix). Els intrprets solen ser

Llenguatges textual i grfic a les interfcies d'usuari Els llenguatges textuals estan basats en ordres escrites. Els llenguatges grfics estan basats en la selecci d'eines grfiques (botons, icones, etc.).

Sistemes operatius

42

El sistema operatiu

un programa del sistema o un mdul del nucli que interpreta un llenguatge dordres amb qu lusuari indicar al sistema operatiu all que vol fer. Els intrprets dordres tenen com a missi facilitar ls del sistema als usuaris. Tamb, a ms daquesta facilitat, els sistemes ofereixen diverses facilitats amb lobjectiu dajudar i abreujar el treball diari dels seus usuaris. Tot seguit les analitzem: Valors per defecte. Utilitzaci de determinades variables amb continguts especfics (Home, Path, etc.). Fitxers dinicialitzaci. Fitxers que sexecuten en un sistema en comenar una sessi (autoexec.bat, profile, etc.). Execuci subordinada. Execuci de processos en background (execuci subordinada) i foreground (execuci interactiva). Adreament de les operacions dentrada/sortida. Possibilitat de canviar la destinaci de la informaci, sense haver de canviar el codi dels programes. Facilitats de presentaci i s. Possibilitat dusar eines potents i fcils de manipulaci amb vista al disseny de programes interactius amb interfcies dusuaris gils, fcils i atractives (utilitzaci de mens, icones, finestres, etc.). 4) Els serveis des del punt de vista dels programadors Lintrpret dordres i els programes del sistema sn els que fixen lentorn i la manera com veuen el sistema operatiu els usuaris. En canvi, els programadors del sistema tenen una visi completament diferent; per a aquests, tot sn recursos fsics i dispositius que han dutilitzar els usuaris en les seves aplicacions. Els sistemes operatius sn programes que funcionen per esdeveniments o events; s a dir, com que els programes no sestan executant, el sistema est inactiu fins que hi ha una petici. Podem classificar les peticions en: a) Crides al sistema operatiu. Les crides al sistema operatiu poden ser: Acabament normal. Un cop el procs sha acabat, es retorna el control a lusuari. Acabament anormal. El control retorna a lusuari i s informat de lerror en lexecuci del procs.
Suposem que sutilitza una determinada impressora en lexecuci dun programa. Per causes diverses, es decideix que a partir dara la impressi la far una altra impressora. La informaci generada pel programa sortir per aquesta nova impressora sense haver de modificar el codi del programa.

Exemple dadreament de les operacions dE/S

Events Els events sn accions que sexecuten quan es dna una determinada situaci. Per exemple, en fer clic amb el ratol sobre un objecte succeeix un determinat fet.

Sistemes operatius

43

El sistema operatiu

Petici destat. Es processa la petici i un cop finalitzada es retorna el control al programa que la va sollicitar. Petici de recursos. Els programes demanen recursos durant lexecuci, i poden ser atesos immediatament o b sentrar en un estat despera fins que es pugui donar el servei. Peticions dentrada/sortida. Els programes solliciten recursos dentrada/sortida, que seran atesos immediatament o desprs dun temps despera. b) Interrupcions dels dispositius dE/S. Una vegada un programa efectua una petici dentrada/sortida, el sistema operatiu pot permetre dos tipus daccions: El procs queda a lespera fins que acaba loperaci dentrada/sortida. En aquest cas, quan el dispositiu acabi loperaci, es produeix una interrupci que donar el control al sistema operatiu, el qual activar el procs que estava en espera, perqu agafi el control del processador i segueixi la seva execuci. El procs continuar efectuant altres operacions. En aquest cas tamb el dispositiu produeix una interrupci en el sistema operatiu. No activar el procs, ja que no est en espera, per s que indicar que loperaci sollicitada ja ha acabat. c) Gesti dexcepcions. Quan en un programa en execuci es produeix un error (per exemple, una divisi per zero), tamb es produir una interrupci. El tractament daquests errors es coneix com a tractament dexcepcions. Els sistemes tenen unes determinades funcions que gestionen aquest tractament i que sactiven quan es produeix aquesta situaci. Estan formades per taules on hi ha les adreces de les funcions que es volen executar quan es produeix una excepci. 5) Els serveis de protecci El sistema no est lliure dusuaris amb la idea dintentar fer modificacions prohibides amb lobjectiu dintentar tirar a baix el sistema o daccedir sense els permisos adequats. Per tot aix, el sistema operatiu ha dincloure les eines o les funcions de protecci amb lobjecte devitar problemes entre processos i entre aquests i el mateix sistema. Daquesta manera trobem el segent tipus de proteccions: a) Protecci de lentrada/sortida: tots els dispositius externs tenen, per part del sistema operatiu, dispositius i rutines per al control de les operaEls controladors sn dispositius que permeten la comunicaci entre perifrics, el processador i la memria. Controladors

Sistemes operatius

44

El sistema operatiu

cions dentrada/sortida. Aquestes sn els controladors i els drivers dels dispositius, i entre altres funcions tenen les de controlar laccs, retornant el control al sistema operatiu i indicant-li la situaci. b) Protecci de la memria: cada procs t assignada una zona de memria i no pot accedir a altres zones assignades al sistema operatiu o a daltres processos. c) Protecci del processador: un altre problema que es pot presentar s la presncia de bucles infinits o accessos al processador que no lalliberen mai. Per evitar-ho el maquinari disposa dun temporitzador que marca perodes de temps, de manera que en finalitzar un perode de temps, es produir una interrupci i agafar el control, el sistema operatiu.
Drivers Els drivers sn programes que gestionen les operacions d'E/S de cada perifric. Contenen informaci que caracteritza cada perifric connectat a l'ordinador.

1.2. Programes de control del sistema operatiu

La gesti dels recursos del sistema la fa un conjunt de programes anomenats de control que resideixen en la memria de manera transitria o permanent. El conjunt de programes de control s el que forma realment el sistema operatiu.

Els programes de control es divideixen en tres grups fonamentals: 1) Gesti del maquinari del sistema. a) Nucli: Rutines dinterrupci. Gesti del processador. Rutines dobrir i tancar. b) Gesti de memria. c) Gesti dE/S. 2) Gesti de dades i arxius. 3) Gesti de treballs. a) Gesti de recursos. b) Gesti de treballs: Planificaci a llarg termini (planificaci de treballs). Planificaci a mitj termini. Planificaci a curt termini (planificaci del processador).

Sistemes operatius

45

El sistema operatiu

1.2.1. El nucli

El nucli del sistema operatiu controla totes les operacions que impliquen processos i representen noms una petita part del codi de tot el sistema operatiu, per que sutilitza mpliament. s a la memria principal. s la part del sistema operatiu que es troba permanentment carregada a la memria, s a dir, s el conjunt de processos actius propietat del sistema que poden oferir un servei de manera immediata.

El nucli s una rea dexecuci privilegiada (supervisora o nucli) i, per tant, est dotat dunes proteccions fortes. Quan una rutina que sest executant a lrea dusuari (no supervisora o no privilegiada), demana un servei del sistema, accedeix al nucli mitjanant un salt no programat (trap). En la figura 14 podeu veure un esquema dels diferents modes dexecuci dun procs.
Figura 14. Modes dexecuci dun procs

Un trap s una interrupci de programari i per tant utilitza el vector dinterrupcions. Quan hi ha un canvi de context daquestes caracterstiques el processador canvia lestat dexecuci a mode supervisor. Els processos dinterrupcions sinclouen en el nucli ja que han de ser rpids (especialment en multiusuari), per optimitzar ls dels recursos del sistema i subministrar temps de resposta acceptables als usuaris interactius. ! El nucli del sistema operatiu generalment realitza les segents funcions: Manipulaci dinterrupcions. Creaci i destrucci de processos. Canvi destats de processos. Despatx (dispatcher). Suspensi i represa de processos. Sincronitzaci de processos. Comunicaci entre processos. Manipulaci de blocs de control de procs. Suport dactivitats dE/S.

En un procs interactiu hi ha un dileg entre l'usuari i el sistema informtic.

Dispatcher El dispatcher s un component del nucli del sistema operatiu que planifica el funcionament del processador.

Sistemes operatius

46

El sistema operatiu

Suport de lassignaci i desassignaci demmagatzematge. Suport del sistema darxius. Suport de mecanismes de crida/retorn al procediment. Suport de certes funcions estadstiques del sistema.

Les funcions del nucli les podem resumir dient que permeten lexistncia dun ambient en el qual sigui possible donar servei a diversos usuaris i mltiples tasques en forma concurrent, repartint al processador entre tots ells i intentant mantenir en grau ptim una atenci individualitzada.

El nucli del sistema operatiu El nucli del sistema operatiu Unix (anomenat kernel) s un programa escrit gaireb tot en llenguatge C, excepte d'una part corresponent a la manipulaci d'interrupcions, expressada en el llenguatge assemblador del processador en qu opera. El kernel opera com un assignador de recursos per a qualsevol procs que necessiti fer s de les facilitats de l'ordinador. s l'element central del sistema Unix. El kernel t el control sobre l'ordinador; per tant, cap altre procs pot interrompre'l; noms pot cridarlo perqu proporcioni algun servei dels ja indicats. Un procs crida al kernel mitjanant mduls especials anomenats crides al sistema. El kernel consta de dues parts principals: a) La secci de control de processos: aquesta, assigna recursos, programes, processos i dna suport a les demandes de servei. b) La de control de dispositius: supervisa la transferncia de dades entre la memria principal i els dispositius perifrics. En termes generals, cada vegada que un usuari utilitza qualsevol tecla d'un ordinador, o que s'hagi de llegir o escriure informaci des de les unitats magntiques, s'interromp el processador i el nucli s'encarrega d'efectuar l'operaci de transferncia.

El kernel s el nom amb qu tamb es coneix el nucli del sistema operatiu.

Crides al sistema Les crides al sistema sn funcions que t el mateix sistema per fer determinades tasques que poden ser invocades de diferents maneres i en determinats moments.

El sistema operatiu disposa de tres mecanismes daccs al nucli: les excepcions, les interrupcions i els salts no programats (traps). Aquestes tres s basen essencialment en la tcnica de la interrupci de lexecuci dun programa.

El sistema operatiu disposa de tres mecanismes daccs al nucli, per lnic daquests esdeveniments que pot fer servir lusuari per fer una petici al sistema operatiu s el salt no programat. Un salt no programat es produeix quan el processador executa la instrucci de llenguatge mquina trap: en lexecuci daquesta ordre estan implicades tres accions: el canvi de mode dexecuci, lexecuci duna rutina de servei i el canvi de mode dexecuci.

Sistemes operatius

47

El sistema operatiu

Per atendre les interrupcions lordinador ha de tenir capacitat de fer les segents accions: Detectar la interrupci durant lexecuci dun codi qualsevol. Reordenar la petici cap a la rutina corresponent. Continuar lexecuci just en el punt en qu sha deixat.

Un processador tpic t diferents modalitats dexecuci; per exemple, usuari, supervisor, etc. Parlarem de dues modalitats: el mode usuari i el mode sistema. El mode dexecuci determina els privilegis que t un procs per accedir a la memria o per executar certes instruccions privilegiades (parar el sistema, canviar la data del rellotge, etc.). Cada mode t la seva prpia pila i noms shi pot accedir des del seu propi mode dexecuci i tamb des dels modes que tenen ms privilegis. Hi pot haver una pila exclusiva per al SO, la qual sutilitza exclusivament per als serveis del mode supervisor. La informaci del mode actual dexecuci es guarda en el registre destat del processador. Normalment el processador executa el codi en el nivell ms baix, el mode usuari. Per executar certes funcions, per exemple lentrada/sortida, lusuari crida un servei del sistema. Si la rutina ha de ser executada en un mode que tingui ms privilegis es pot executar una ordre per augmentar el nivell de privilegis. Aquests canvis es fan amb lajut del maquinari; amb el trap o les excepcions. El nucli tamb disposa dels registres de control que estan guardats en el PCB. Hi ha els registres de control daccs a la memria, lapuntador a la pila, i el registre destat del processador (program status word o PSW). ! Per gestionar la memria necessita un conjunt de circuits capaos de transformar les adreces que surten del processador, o adreces lgiques, en adreces de memria fsica, o adreces fsiques. Aquests circuits formen lanomenada unitat de gesti de la memria (anomenada MMU: Memory Managament Unit). Les instruccions privilegiades sn un tipus dinstruccions que sn utilitzades pel SO; si sexecuten des de fora del nucli es provoca un error.

1.2.2. Els processos


El sistema operatiu entre altres tasques ha de gestionar els processos i planificar la feina del processador. El concepte de procs s una entitat molt important per al sistema operatiu. Aix, tota planificaci que faci el sistema operatiu haur de donar un
Els events sn situacions o fets que succeeixen en determinades moments.

Sistemes operatius

48

El sistema operatiu

servei adequat als programes que executin els usuaris, el reflex dels quals seran els processos. El cor del sistema operatiu s el nucli, un programa de control que reacciona contra qualsevol interrupci devents externs i que dna servei a processos, creant, acabant i contestant qualsevol petici de servei per part dels processos.
Programes i processos La diferncia entre un programa i un procs s que un programa s un conjunt d'ordres i un procs sn instruccions que s'estan executant. Un procs, a ms, est format no solament per les dades, sin tamb pel valor dels registres, les variables, etc., durant l'execuci del programa.

Un programa s una seqncia dinstruccions o accions definides a priori, que poden ser executades per part dun processador. Un procs s una seqncia daccions derivades de lexecuci duna srie dinstruccions. Aix implica que: un procs pot requerir lexecuci dun o diversos programes; i que un programa pot formar part de ms dun procs.

Un procs es realitza per lacci del processador que executa el programa associat. s a dir, un processador executa un procs, o un procs sexecuta en un processador.
Bloc de control del procs El bloc de control del procs (PCB) s una taula en la qual es guarda informaci de diferents tipus sobre cada procs.

De manera resumida podem definir els processos com: Un programa que sest executant. Tot all que implica lexistncia dun bloc de control de procs (PCB). Una entitat a la qual sn assignats els processadors.

Tot el programari executable, incls el sistema operatiu, sorganitza en diversos processos seqencials o processos. Un procs inclou al programa en execuci i els valors actius del comptador, registres i variables del procs. Conceptualment cada procs t la seva CPU virtual. Si la CPU alterna entre els processos, la velocitat a la qual sexecuta un procs no ser uniforme. Un procs s una activitat dun cert tipus que t un programa, una entrada, una sortida i un estat. Un nic processador pot ser compartit entre diversos processos amb cert algorisme de planificaci, el qual determina quan parar el treball en un procs i donar servei a un altre diferent.

Un algorisme s la seqncia lgica de les accions a desenvolupar per resoldre un determinat problema.

El bloc de control del procs (PCB) i el bloc de control del sistema (SCB)
Cada procs es representa en el sistema operatiu per un conjunt de dades, que inclouen tota la informaci necessria que el defineixen: lestat, els recursos utilitzats, els registres, etc. Aquest grup de dades es coneix amb

Sistemes operatius

49

El sistema operatiu

el nom de bloc de control del procs (PCB), que dna nom a tota lestructura on semmagatzema tota la informaci que el sistema operatiu necessita per poder executar un programa. En la figura 15 podeu veure un esquema de lestructura del PCB.
Figura 15. Bloc de control del procs i bloc de control del sistema

El bloc de control del procs cont les dades segents: Tipus de procs. Privilegis. Prioritat. Estat del processador. Comptador de programes. Recursos que t assignat el procs: impressores, pantalles, etc. Mapa de la memria: descripci de la zona de memria on shagi carregat el procs. Fitxers oberts. Procs pare. Processos fill.

Els objectius que es pretenen aconseguir amb la utilitzaci del PCB sn els de localitzar la informaci sobre el procs per part del sistema operatiu i tenir registrades les dades del procs en cas dhaver-ne de suspendre temporalment lexecuci o tornar-la a executar. En general, el sistema operatiu disposa duna estructura anomenada bloc de control del sistema (SCB), on hi ha registrada tota la informaci que es pot necessitar en qualsevol moment sobre el mateix sistema. En la figura 15 podeu veure un esquema de lestructura del SCB.

Bloc de control del sistema El bloc de control del sistema (SCB) s una taula on es guarda informaci del sistema operatiu per executar un programa.

Els processos inactius sn els estats en qu els processos no poden utilitzat el processador.

Sistemes operatius

50

El sistema operatiu

El bloc de control del sistema cont normalment la informaci segent: La llista de processos (actius i no actius). Un punter adreat al procs que est utilitzant el processador. Un punter adreat a la cua dels processos preparats. Un punter adreat a la cua dels processos bloquejats. Un punter adreat a la cua dels processos suspesos preparats. Un punter adreat a la cua dels processos suspesos bloquejats. Els identificadors de les rutines necessries per tractar les interrupcions produdes pel programari, maquinari o per altres situacions.

Els processos actius i inactius Els processos actius sn els estats en qu els processos lluiten per utilitzar el processador.

Les prioritats dels processos


Moltes vegades les tasques que shan de dur a terme no han de tenir pas les mateixes exigncies quant a temps i disponibilitat de recursos, ja que en molts casos hi ha processos que necessiten una atenci immediata a algun event que es produeixi. Daltres, en canvi, desenvolupen la seva feina lentament i sense cap urgncia i es poden aparcar en determinats moments en benefici daltres que s que necessiten immediatament aquests recursos. Alguns processos necessiten accedir al processador ms vegades que daltres. Aix es fa per mitj de les prioritats. Podem classificar les prioritats de la manera segent: Prioritats assignades pel sistema operatiu: el sistema assigna prioritats als processos en el moment de comenar lexecuci. Prioritats assignades pel propietari: s lusuari qui assigna al procs la prioritat amb qu sha dexecutar.
Gesti d'interrupcions Quan es produeix una interrupci en el sistema, cal que hi hagi algun procediment per poder-la tractar; per aix, el sistema agafar el control del processador parant momentniament l'execuci del procs que en aquell moment estigus en execuci. En funci del tipus d'interrupci, el sistema haur de tractar la interrupci normalment, mitjanant l'execuci d'una rutina en qu la seva adrea de comenament coneix el sistema.

Les prioritats sn algorismes que assignen un determinat ordre de preferncia en la utilitzaci del processador.

Les interrupcions
En la vida real tenim molts moments en qu es produeixen situacions que corresponen al concepte dinterrupci. Per exemple, mentre llegim una revista i ens truquen per telfon, deixem de llegir, posem una marca a la pgina i anem a parlar per telfon; una vegada hem acabat de parlar per telfon, tornem a la lectura a partir del lloc en qu lhavem deixat.

Sistemes operatius

51

El sistema operatiu

Una interrupci (gesti dinterrupcions) s la presncia duna situaci o dun senyal que obliga el sistema operatiu a prendre el control del processador per estudiar-la i tractar-la.

El processador reconeix tres tipus devents que poden donar lloc a aquests canvis: els salts no programables, les interrupcions i les excepcions; coneix quin programari ha dexecutar per atendre i tractar la interrupci, lexcepci o trap produt. T en el bloc de control del sistema (SCB) les adreces de les rutines que shan dexecutar quan succeeix una determinada situaci. Aquestes adreces sanomenen vectors dinterrupcions o vectors dexcepcions, segons el cas. Lexistncia de les interrupcions en lordinador s un fet molt important pels motius segents: En un entorn de multiprogramaci, s un mecanisme que permet al sistema operatiu agafar el control del processador per portar ladministraci en el cas que es produeixi un error del maquinari o del programari que sest executant. Permet la utilitzaci simultnia del processador i de la gesti de les operacions dentrada/sortida. Permet fixar perodes de temps durant els quals sassigna el processador a un procs, i permet repartir el temps del processador entre tots els processos que hi ha. Permet reconixer events externs que ha de controlar el sistema, ja que en produir-se donaran lloc a una interrupci que podr ser tractada correctament.
Exemple dinterrupci Suposem que hi ha alguns processos actius en el processador competint per utilitzar el processador i que en un determinat moment s'est executant el procs A. A partir d'una determinada situaci el procs B agafa el control del processador. Les accions que fa el sistema operatiu per canviar el procs que est en execuci (A per B) es coneix amb el nom de canvi de procs (figura 16) i sn les que es poden veure en l'esquema segent: 1) Cal deixar d'executar el procs en curs, A, i el control passa del processador al sistema operatiu. Per aix, el maquinari ha de canviar el context d'execuci i passar a manera de supervisor. Aquesta acci es coneix amb el nom de canvi de context, per abans guarda l'estat del procs A en el seu PCB per poder continuar ms tard l'execuci en el punt en qu va ser interromput. 2) El nucli estudia si el procs B est preparat per a l'execuci i, si s aix, fa el canvi de context; per aix torna el processador a manera d'usuari, retorna l'estat del procs B (si hagus estat interromput) agafant les seves dades del seu PCB i posant en execuci el procs.

Vectors d'interrupcions i vectors d'excepcions Els vectors d'interrupci/excepci s una llista que indica l'adrea de memria de les rutines a executar en funci de la interrupci/ excepci generada.

Sistemes operatius

52

El sistema operatiu

Figura 16. Canvi de procs

Definim un canvi de context com un conjunt daccions que fa el sistema operatiu per canviar el procs que est en execuci en el processador.

Les interrupcions que es produeixen en un ordinador no sn sempre les mateixes, sin que depenen del mecanisme origen i per tant les podem classificar de la manera segent: Interrupcions del maquinari. Sn interrupcions que es produeixen inesperadament i independentment del processament per causes alienes al processador. Poden ser: Interrupcions dentrada/sortida. Sn iniciades en el maquinari dels dispositius dentrada/sortida (per exemple, una impressora, un monitor, etc.). Interrupcions externes. Sn causades per diferents elements del maquinari de lordinador (per exemple, el rellotge dinterrupci, etc.). Interrupcions de tornar a comenar. Sn causades per un problema de falta denergia; cal prmer la tecla o bot darrencada de la mquina.

Sistemes operatius

53

El sistema operatiu

Interrupcions del programari. Sn les produdes per les crides al sistema operatiu donant el control del processador al sistema operatiu perqu executi el servei sollicitat. Aquestes interrupcions sempre provoquen un canvi de context.

Excepcions. Els dissenyadors de sistemes sempre shan preocupat de les interferncies que poden afectar els processos per la utilitzaci incorrecta dels programes o un disseny deficient daquests programes (entrada de dades incorrectes, divisions per zero, excedir el contingut de la definici duna variable, etc.). Per aix, aquestes situacions excepcionals fora de lexecuci normal dels processos es coneix amb el nom dexcepcions (figura 17). Els sistemes proporcionen facilitats per dotar els processos dun gestor dexcepcions que permet tractar el problema en el moment en qu succeeix.
Figura 17. Models de gesti dexcepcions

Excepci s un tipus d'interrupci que es produeix per un deficient funcionament del programa que ha generat l'error.

Diferncia entre interrupcions i excepcions Les segents sn les principals diferncies entre interrupcions i excepcions: Les interrupcions es presenten inesperadament i tenen relaci amb el procs que s'est executant, mentre que una excepci es produeix com un efecte directe d'una instrucci concreta que s'est executant. Les excepcions formen part del procs que s'est executant, de manera que les rutines que els donen servei formen part del programa; en canvi, en les interrupcions els events que es donen afecten el sistema en general i no estan suportades pels processos, en ser rutines del sistema operatiu que tenen la missi de gestionar-les. Les interrupcions tenen associats nivells de prioritat; aix vol dir que si en un determinat moment es produeixen diverses interrupcions noms se'n tractar una i la resta quedaran bloquejades; en les excepcions, en canvi, no hi ha nivells de prioritats i tampoc no se'n poden produir diverses en el mateix moment.

Sistemes operatius

54

El sistema operatiu

Un ordinador ha de tenir una o ms lnies dinterrupci que activen lindicador (flag) dinterrupcions. Un cop sha produt la interrupci, per gestionar-la tenen lloc un seguit doperacions: Per detectar una interrupci activa, el processador, en finalitzar el cicle dexecuci complet duna instrucci, consulta lestat dun indicador que avisa si hi ha un circuit dinterrupci actiu. Si hi ha una interrupci, el processador consulta un altre indicador del registre destat del processador, lindicador dinterrupcions habilitades. El cicle dinterrupci s bsicament un salt de maquinari a una subrutina en qu lnic parmetre utilitzat s el nmero dinterrupci, que el mateix maquinari posa al bus dadreces quan comena a atendre la interrupci. El nmero dinterrupci s utilitzat com a ndex del vector dinterrupcions. Al final del servei de la interrupci es recuperen els valors del comptador del programa i dels registres interns, i es prepara la pila perqu el procs la trobi exactament igual quan es va produir la interrupci.

Operacions amb els processos


Els sistemes que administren els processos han de poder crear, destruir, suspendre, reprendre, canviar la prioritat, bloquejar i despatxar un procs. Per fer-ho, disposen de certes funcions que faciliten la manipulaci del sistema operatiu mitjanant crides al sistema o des de lintrpret dordres. Les operacions ms comunes sn les segents: Crear. Tcnica que permet crear processos, i en la qual en alguns casos s necessari passar-hi arguments (el nom, la prioritat del procs, lassignaci de recursos, etc.). Un procs pot crear un nou procs, en aquest cas el procs creador sanomena procs pare i el procs creat procs fill i sobt una estructura jerrquica de processos. La creaci dun procs pot ser de dues maneres: Jerrquica. Cada procs que es crea s fill del procs creador i hereta lentorn dexecuci del seu pare, fixant-se un arbre de processos. El primer procs executat per un usuari ser fill del procs intrpret dordres amb el qual interactua. Aquest procs ser el que crea la resta de subprocessos o processos fills.

Sistemes operatius

55

El sistema operatiu

No jerrquica. Cada procs creat per un altre sexecuta independentment del seu creador, amb un entorn diferent. Destruir un procs. Elimina un procs del sistema operatiu, s a dir, destrueix el seu PCB, retorna els seus recursos al sistema i lelimina de totes les llistes o taules del sistema. En el cas de processos jerrquics, hi pot haver problemes en els processos fills, ja que poden quedar destruts en funci del tipus de disseny que tingui el sistema operatiu. Canviar la prioritat dun procs. Adormir o bloquejar lexecuci dun procs. Un procs passa a lestat de bloquejat fins passat un determinat temps. Despertar un procs. Manera artificial de desbloquejar un procs, que sutilitza per despertar processos adormits. Suspendre un procs. Operaci dalta prioritat, ja que, normalment, noms es far en determinades ocasions i sempre amb certa urgncia. Sutilitza en moments de mal funcionament del sistema, sobrecarrega del sistema, etc. Continuar un procs. Activar un procs susps.

Tipus de processos
Un procs es pot classificar en funci de la seva utilitzaci en: Reutilitzables. Processos en qu es poden canviar les dades que utilitzen. En tomar a executar-se, necessiten comenar des de lestat inicial i processar les noves dades. Aquest s el cas dels programes que normalment tenim els usuaris. Reentrants. No tenen dades associades. Les dades que utilitzen es troben en una pila o en registres interns i no poden ser modificades durant la seva utilitzaci. Aquest s el cas de programes compartits per alguns usuaris a la vegada. Una altra classificaci dels processos s segons la capacitat que tenen daccedir al processador i a la resta de recursos: Apropiatius. Aquells processos que quan tenen assignat un recurs no permeten que altres processos puguin accedir a aquests recursos fins que shagi acabat la seva utilitzaci. No apropiatius. Permeten a altres processos accedir als recursos que estan utilitzant.

Sistemes operatius

56

El sistema operatiu

Tamb podem classificar els processos en funci de la forma dexecuci: Residents. Sn a la memria tot el temps que dura lexecuci. Intercanviables. Poden ser portats de la memria principal al disc, mentre estan bloquejats. Aleshores, la memria alliberada pot ser utilitzada per altres processos que en aquells moments la necessiten.

1.2.3. Estats dels processos


Els blocs de control de processos (PCB) semmagatzemen en cues, cada una de les quals representa un estat particular del procs. Els estats dels processos sn interns del sistema operatiu. Lusuari sempre veur el seu procs en execuci independentment de lestat en qu es trobi internament el procs en execuci. Podem definir lestat dun procs com una descripci de la seva activitat en un moment donat.

En la figura 18 podeu veure un graf amb els estats dun procs, que es poden dividir en: Actius. Sn els estats en qu competeixen per utilitzar el processador o estan en condicions de poder-ho fer. Es poden trobar en les situacions segents: Execuci. Estat en qu es troba un procs quan t el control del processador. Preparat. Estan en condicions de ser executats, per no sexecuten per alguna causa (per exemple, per haver entrat en la cua quan hi havia un altre procs en execuci). Bloquejat. Processos que no es poden executar, perqu estan esperant la utilitzaci dalgun recurs que no est disponible en aquest moment (recursos dE/S). Inactius. Sn els estats on se situen els processos que no poden competir pel processador, per que ho poden tornar a fer ms endavant, per mitj de certes operacions. En aquests estats, es mant el bloc de control del procs aparcat fins que torni a ser activat. Es tracta de processos que no han acabat el seu treball per causes diverses (per exemple, per avaria en un dispositiu dentrada/sortida). Els estats en qu es poden trobar sn els segents: Susps bloquejat. Procs que ha estat susps mentre esperava un event, i les causes del bloqueig no han acabat. Susps preparat. Procs que ha estat susps, sense que hi hagi una causa per la qual est bloquejat.
Figura 18. Graf dels estats d'un procs

Sistemes operatius

57

El sistema operatiu

Un procs al llarg de la seva vida pot canviar diverses vegades destat. Aquests canvis destat es coneixen amb el nom de transicions destats (en la figura 19 podeu veure un diagrama dels estats de transici dun procs): 1) Comenar lexecuci. Tot procs comena en el moment en qu es dna l'ordre d'execuci del programa i el procs es posa a la cua dels processos preparats. 2) Pas a lestat dexecuci. Quan el processador es troba inactiu i en la cua de processos preparats hi ha algun procs que est en espera per ser executat. 3) Pas a lestat bloquejat. Un procs que est en execuci i que sollicita una operaci a un dispositiu d'entrada/sortida passar de l'estat d'execuci a l'estat de bloquejat. En aquest moment, el primer procs de la cua de processos preparats passar al processador per ser executat. Tamb es pot passar a l'estat de bloquejat en el cas d'un procs que estava susps bloquejat i del qual han desaparegut les causes que provocaven aquest estat. 4) Pas a lestat preparat: Final duna operaci dentrada/sortida. A partir del moment en qu es dna lordre dexecuci dun programa. Si es produeix una interrupci que obliga el sistema a executar un altre procs, el que est en execuci passa a la cua dels processos preparats. Un procs que estava susps preparat passa a lestat de preparat. 5) Pas a susps bloquejat. Si un procs estava bloquejat i el sistema operatiu rep lordre de suspendrel, el passar a la cua dels processos suspesos bloquejats. 6) Pas a susps preparat. Si un procs que s a la cua dels processos preparats rep lordre de suspendrel, passar a la cua dels processos suspesos preparats.
Figura 19. Estats de transici dun procs

Sistemes operatius

58

El sistema operatiu

Lobjectiu dels sistemes operatius multiprogramats s daprofitar al mxim el processador intentant que sempre estigui executant algun procs dusuari. En aquests sistemes operatius, el processador en algun moment ha de parar dexecutar un programa per passar-ne a executar un altre. Aix comporta haver de guardar tota la informaci associada al procs que tenim en execuci (el context) al seu PCB, i restaurar el context del procs que executar a continuaci. La informaci necessria del segon procs sobt del PCB corresponent. El conjunt daquestes accions sanomena canvi de context.

Lassignaci de la CPU al primer procs de la llista de preparats sanomena dispatcher (despatxar) i s executat per una entitat del sistema operatiu anomenada dispatcher.

1.2.4. Planificaci del processador


Dalguna manera cal que el processador planifiqui la seva feina de la mateixa manera que ho fem amb les nostres tasques diries: quan assignar un processador (CPU) i a quin procs? La planificaci (scheduling) del processador s el conjunt de poltiques i mecanismes que implementa el sistema operatiu per decidir quin procs ha de fer s del processador en cada moment. El seu objectiu general s donar un bon servei a tots els processos que competeixen en un moment donat pels recursos del processador. Diferenciem tres tipus de planificaci o scheduling (figura 20): 1) Planificaci a llarg termini (planificaci de treballs). Decideix quin ser el proper treball que sexecutar. Aquest nivell noms existeix en els sistemes de processaments per lots. En el cas de sistemes de temps compartit t com a missi carregar els programes en memria. Aquest nivell s lencarregat de crear els processos. s lencarregat de controlar el grau de multiprogramaci del sistema, s a dir, la quantitat de processos que sexecutaran alhora en el sistema. Quan es crea un procs nou aquest va a parar la cua dels processos preparats. La freqncia de crida daquest planificador s baixa, noms sinvoca quan un procs finalitza la seva execuci i quan la utilitzaci del processador s baixa. 2) Planificaci a mitj termini. Decideix si el procs que est en execuci sha de treure de la memria temporalment i collocar-lo en un dispositiu secundari, com el disc magntic, per reduir el grau de multiprogramaci. Posteriorment, quan el sistema es trobi ms descarregat, tornar aquest procs a la memria i a lestat dexecuci. Aquesta tcnica es coneix amb el nom de swapping out i el procs invers sanomena swapping in. Saplica en sistemes de temps compartit i en aquells en qu sutilitza meL'scheduling s el nom que s'assigna a la planificaci dels treballs del processador.

Memria virtual La memria virtual s una tcnica de gesti de memria en la qual no s necessari tenir en un mateix moment tot el programa en la memria principal per poder-se executar.

Sistemes operatius

59

El sistema operatiu

mria virtual. Tamb es fa servir quan un procs est bloquejat i lhem de treure per alliberar memria. La planificaci a mitj termini s el responsable de gestionar les transicions de processos entre la memria principal i la secundria, actua intentant maximitzar la utilitzaci dels recursos. Un altre criteri s considerar el temps que fa que un procs s a lestat de preparat; per tant, els processos que fa temps que estan a lestat preparat tamb sn candidats per al planificador a mitj termini. 3) Planificaci a curt termini (planificaci del processador o dispatcher despatxar). s lencarregat de decidir com i quan un procs que est en la cua de processos que shan dexecutar tindr accs al processador. s a dir, t la responsabilitat de fer les funcions de la multiprogramaci. Est resident en memria i sexecuta amb molta freqncia, per aix t una execuci molt rpida. La missi del dispatcher consisteix a assignar la CPU a un dels processos executables del sistema, per aix segueix un determinat algorisme. Perqu el dispatcher commuti el processador entre dos processos s necessari realitzar un canvi de procs. Cal destacar el fet que com menys es cridi al dispatcher menys temps ocupa la CPU un programa del sistema operatiu, i per tant, es dedica ms temps als processos de lusuari (un canvi de procs implica bastant temps).
Figura 20. Nivells de planificaci

Canvi de procs Un canvi de procs s aquella situaci en la qual el sistema operatiu executa tota una srie d'accions per canviar el procs que hi ha en processador.

Sistemes operatius

60

El sistema operatiu

Quan ms dun procs s executable des del punt de vista lgic, el sistema operatiu ha de decidir quin dells sha dexecutar en primer lloc. El planificador s la part del sistema operatiu que decideix i lalgorisme de planificaci s lutilitzat.

Els principals criteris respecte dun bon algorisme de planificaci sn: Equitat. Garantir que cada procs obtingui la proporci justa de la CPU. Eficcia. Mantenir ocupada la CPU el cent per cent del temps. Temps de resposta. Minimitzar el temps de resposta pels usuaris interactius. Rendiment. Maximitzar el nombre de tasques processades per hora.

Per a la planificaci, sn necessaris uns criteris en lexecuci dels algorismes dels processos. Podem destacar-ne els segents: Temps de resposta. Indica la velocitat amb qu lordinador dna resposta a una petici. Temps de servei. Temps que tarden els sistemes a servir lordre demanada (inclosos el temps despera en la cua dels processos preparats, el temps dexecuci en el processador, el temps de crrega del programa en memria i el temps utilitzat en les operacions dentrada/sortida). Temps dexecuci. Coincideix amb el temps de servei menys el temps despera en la cua dels processos; s a dir, s el temps que necessitaria estar en el processador per ser executat si fos lnic procs en el sistema. Temps del processador. Temps en qu un procs est utilitzant el processador sense comptar el temps que es troba bloquejat per una operaci dentrada/ sortida. Temps despera. Indica el temps en qu els processos estan actius per sense ser executats. Eficincia. Indica la relaci existent entre el temps de processador de cada procs i locupaci total del processador. Rendiment. Indica el nombre de treballs o processos executats per unitat de temps. Normalment sempre ha de ser el mxim possible.

Sistemes operatius

61

El sistema operatiu

Per avaluar el comportament de les diferents poltiques de planificaci considerem t com el temps que un procs Z necessita estar en execuci per fer el seu treball; ti com linstant en qu lusuari dna lordre dexecuci del procs, i tf com linstant en qu el procs acaba lexecuci. En funci daquestes dades tenim les mesures segents per a cada procs: Temps de servei (T): T = tf ti Temps despera (E): E = T t ndex de servei (I): I = t / T Si noms tenim un procs, aleshores quan I sigui proper a 1, el procs estar limitat per procs. Quan I tingui un valor proper a 0, el procs estar limitat per lentrada/sortida. En els casos de ms dun procs sestableixen les mateixes mesures per amb valors mitjans, obtinguts en considerar el conjunt de processos. Com ja hem comentat, el planificador del processador t com a missi assignar el processador als processos que hi ha a la cua. Aquesta cua est alimentada des de dos punts diferents: 1) Cada vegada que un usuari inicia lexecuci dun programa, el planificador a llarg termini rep lordre dexecuci, crea el procs i el passa al planificador a curt termini, que el posa a la cua dels processos preparats. 2) Quan un procs deixa destar en lestat dexecuci i no hi ha causes del bloqueig o deixa destar bloquejat, passa a la cua dels processos preparats.

Algorismes de planificaci a curt termini


En els sistemes operatius comercials hi ha diferents poltiques de planificaci de les quals en comentarem algunes. Cal recordar que no hi ha una poltica perfecta. Alguns dels objectius i criteris utilitzats poden ser contradictoris, de manera que, si afavorim un tipus de procs, normalment perjudiquem altres processos. Per a lestudi de les diferents poltiques ens basarem en la taula 1, on se simula la situaci dun grup de processos existents en un sistema.
Taula 1 Nom procs A B C D E Moment darribada 0 2 1 4 5 Temps d'execuci 2 3 1 4 2

Sistemes operatius

62

El sistema operatiu

Els algorismes de planificaci a curt termini assignen el processador a un dels processos que s a lestat preparat.

A continuaci explicarem alguns algorismes de planificaci tpica que utilitza el planificador a curt termini del sistema operatiu a partir de les dades de la taula 1. 1) Dordre darribada (FCFS - first come, first served) En aquesta poltica de planificaci, el processador executa cada procs fins que acaba. Fa la feina de cada procs segons lordre darribada. El primer procs de la cua dels processos preparats ser el primer que executar el processador (figura 21).
Figura 21. Diagrama FCFS

En tots els exemples de planificaci del processador cal calcular els valors de les columnes: temps dacabament, T, E, I, i mitjana. En la taula 2, podeu veure els resultats de la poltica FCFS.
Taula 2. Algorisme FCFS Nom procs A B C D E Moment arribada (ti) 0 2 1 4 5 Mitjana Temps execuci (t) 2 3 1 4 2 Temps acabament (tf) 2 6 3 10 12 T 2 4 2 6 7 4,2 E 0 1 1 2 5 1,8 I 1 0,75 0,50 0,66 0,28 0,64

2) De repartiment de temps (RR - round robin) Consisteix a assignar a cada procs en execuci un determinat temps dexecuci anomenat quntum (q), passat el qual, si el procs no ha acabat, es retorna a la cua dels processos preparats i sassigna el processador al procs de la cua de processos preparats seguint lordre darribada. Lassignaci dura fins que es produeix algun dels fets segents: El procs est esperant una operaci dentrada/sortida. El procs ja ha estat un quntum de temps executant-se.

Quntum El quntum (q) mesura el temps que fixa la durada en qu un procs est en el processador de manera continuada.

Sistemes operatius

63

El sistema operatiu

En tots els exemples explicats se suposen les condicions segents: Si un procs acaba durant el seu quntum, sassigna immediatament el processador al primer procs de la cua dels processadors preparats, i se li dna el quntum complet. En crear-se un procs passa al final de la cua dels processos preparats. Si un procs comena la seva execuci (creaci) en el mateix moment que un quntum acaba, se suposa que aquest procs ha arribat a la cua dels processos preparats abans de lacabament del quntum indicat. En la taula 3, podeu veure els resultats de la poltica RR per a q = 2.
Taula 3. Algorisme RR (q = 2) Moment arribada (ti) 0 2 1 4 5 Mitjana Temps execuci (t) 2 3 1 4 2

Nom procs A B C D E

Temps acabament (tf) 2 10 3 12 9

T 2 8 2 8 4 4,8

E 0 5 1 4 2 2,4

I 1 0,375 0,500 0,500 0,500 0,575

3) El procs segent, el ms curt (SJF - shortest job first) La poltica seguida en aquest algorisme es basa a agafar de la cua dels processos preparats aquell que necessita menys temps dexecuci per fer la seva feina. Per a aix cal saber el temps de cada procs. Aquesta informaci no s fcil dobtenir, per lusuari ho pot aconseguir a partir de dades estadstiques de processos anteriors. En la taula 4, podeu veure els resultats de la poltica SJF.
Taula 4. Algorisme SJF Nom procs A B C D E Moment arribada (ti) 0 2 1 4 5 Mitjana Temps execuci (t) 2 3 1 4 2 Temps acabament (tf) 2 6 3 12 8 T 2 4 2 8 3 3,8 E 0 1 1 4 1 1,4 I 1 0,75 0,50 0,50 0,66 0,68

Sistemes operatius

64

El sistema operatiu

4) El proper procs, el de temps restant ms curt (SRT - shortest remaining time). Fa el mateix que el SJF, per si entra en la cua dels processos preparats un procs de temps ms curt que el que sest executant, el treu del processador i ocupa el seu lloc. En la taula 5, podeu veure els resultats de la poltica SRT.
Taula 5. Algorisme SRT Nom procs A B C D E Moment arribada (ti) 0 2 1 4 5 Mitjana Temps execuci (t) 2 3 1 4 2 Temps acabament (tf) 2 6 3 12 8 T 2 4 2 8 3 3,8 E 0 1 1 4 1 1,4 I 1 0,75 0,50 0,50 0,66 0,68

5) Prioritats Els planificadors que utilitzen aquesta poltica assignen una prioritat a cada procs, de manera que el processador sassigna el procs de mxima prioritat. Les prioritats es poden assignar de manera interna o de manera externa. En el primer cas, la prioritat la fixa el sistema mateix, a partir dunes informacions determinades (temps dexecuci, necessitats de recursos, etc.). En el segon cas, la prioritat s fixada per ladministrador del sistema.
Exemple d'assignaci de prioritats En la taula 6, teniu les dades d'un exemple. Els nombres ms grans indiquen una prioritat ms alta. En la taula 7, teniu els resultats d'un algorisme amb prioritats. Taula 6 Nom procs A B C D E Moment darribada 0 1 4 5 8 Temps d'execuci 3 5 2 6 4 Prioritats 0 1 0 2 1

Taula 7. Algorisme amb prioritats Nom procs A B Moment arribada (ti) 0 1 Temps execuci (t) 3 5 Temps acabament (tf) 18 12 T 18 11 E 15 6 I 0,17 0,45

Sistemes operatius

65

El sistema operatiu

Nom procs C D E

Moment arribada (ti) 4 5 8

Temps execuci (t) 2 6 4

Temps acabament (tf) 20 11 16

T 16 6 68 11, 8

E 14 0 4 7,8

I 0,13 1,00 0,50 0,45

Mitjana

6) Cues mltiples Podem assignar els processos que shan dexecutar en el processador a cues diferents en funci del tipus de planificaci que tinguem assignada a cada cua. Aquesta poltica de gesti divideix la cua de processos preparats en diverses cues separades, de manera que els processos sn assignats a una cua determinada segons les seves necessitats i tipus. Algun algorisme de planificaci entre cues, que normalment s apropiatiu i de prioritat fixa, determina en cada cas quina cua subministrar un procs al processador. Un exemple daquesta situaci s el cas dels processos foreground (interactius) i background (batch), que necessiten diferents temps de resposta i que, per tant, poden ser gestionats per diferents algorismes de planificaci. La cua de processos interactius tindr una prioritat ms alta que la cua dels processos batch. Aix, mentre la cua de processos interactius estigui buida es podr executar els processos batch, per si hi ha algun procs interactiu aquest ser el que sexecuti. Les caracterstiques daquesta poltica de gesti sn: ! s apropiativa. La prioritat interna es calcula en funci de la prioritat de cada cua, de manera que els processos, quan sn carregats en una cua, adquireixen la prioritat corresponent. Els processos de cada cua poden variar les seves prioritats segons un determinat rang sense que es muntin les prioritats entre cues. El procs que sexecutar ser el de ms prioritat existent en el sistema. En el cas que hi hagi processos amb la mateixa prioritat, sexecutaran en funci de les poltiques de gesti corresponents.

L'algorisme apropiatiu t la capacitat de decidir si es canvia el procs del processador o no. La prioritat fixa determina que la prioritat d'un procs no pot canviar mentre s'executa.

Background: segon pla. Foreground: primer pla.

Algorismes de planificaci a mitj termini

Si el sistema operatiu detecta que el rendiment de la mquina s massa baix perqu hi ha massa processos en execuci, el sistema pot prendre la decisi de suspendre temporalment lexecuci dun procs per continuar-la ms endavant.

Sistemes operatius

66

El sistema operatiu

Algorismes de planificaci a llarg termini


El planificador a llarg termini s lencarregat diniciar lexecuci dels processos. Aquest planificador noms ha de seleccionar un cop cada procs per donar-li entrada al sistema, a diferncia del planificador a curt termini que podia seleccionar cada procs mltiples vegades.

Els planificadors a llarg termini poden utilitzar diferents tipus de modalitats com: batch, interactiva, multiprocessador i distribut o en xarxa. !

1.3. Concurrncia, comunicaci, sincronitzaci i interbloqueig de processos


Les tcniques de multiprogramaci i els sistemes multiprocs en qu es poden executar programes de manera simultnia compartint els mateixos recursos solen donar lloc a importants conflictes que ha de resoldre el gestor de processos i, per tant, el processador. Per tot aix, la majoria dels sistemes operatius ofereixen als usuaris diferents mecanismes i facilitats per poder controlar lexecuci dels processos i afavorir laccs a les mateixes dades a fi devitar possibles conflictes. Aquests mecanismes es basen en algorismes o eines que permeten la sincronitzaci daquests processos o que afavoreixen la cooperaci entre ells. Els mecanismes que gestionen laccs a les mateixes dades tenen implcits un seguit de conceptes: parallelisme, concurrncia, sincronitzaci, exclusi mtua, recurs o interbloqueig. El parallelisme s lexecuci de diverses activitats en processadors diferents al mateix temps. s un concepte fsic, ja que noms pot existir el parallelisme quan hi ha la presncia de diversos processadors.

Si noms hi ha un nic processador que gestiona la multiprogramaci, lexecuci simultnia de diverses activitats donar lloc a un pseudoparallelisme, ja que des del punt de vista de lusuari semblar que hi ha una execuci simultnia, encara que noms una activitat pot fer s del processador i en cap cas no es podr executar en el mateix processador dos processos alhora. Un altre aspecte que hem de considerar fa referncia a la concurrncia.

Pseudoparallelisme El pseudoparallelisme s la sensaci d'execuci simultnia d'activitats diferents en un mateix processador.

La concurrncia (sistemes concurrents i cooperatius) es produeix quan algunes activitats sexecuten simultniament. Com que necessiten utilitzar els mateixos recursos han de sincronitzar-se per actuar conjuntament.

Sincronitzaci La sincronitzaci s la situaci en la qual una activitat impedeix que altres puguin tenir accs a unes dades mentre les est utilitzant un altre procs.

Sistemes operatius

67

El sistema operatiu

s important destacar que perqu dues activitats siguin concurrents s necessari que hi hagi alguna relaci entre les activitats: cooperaci en un treball determinat o un s conjunt de la informaci o dels recursos. Per exemple, en un sistema monoprocessador lexistncia de la multiprogramaci s una condici, per no suficient perqu hi hagi la concurrncia, ja que els processos es poden executar de manera independent. En un sistema multiprocessador tamb es poden presentar situacions de concurrncia sempre que les activitats necessitin actuar entre elles, compartint informaci o per necessitats de funcionament.
Exemple de concurrncia Un editor de textos i un compilador es poden executar simultniament per no sn concurrents. En canvi, un procs que escriu en un fitxer i un altre procs que intenta llegir les dades escrites en el fitxer s que sn concurrents, ats que el funcionament d'un interfereix en el funcionament de l'altre.

La sincronitzaci dels processos s absolutament necessria si volem que una activitat impedeixi a una altra accedir a certes dades compartides mentre no es compleix una determinada condici; aleshores hem de sincronitzar les activitats amb aquesta condici. Com que el sistema operatiu no coneix la semntica de les activitats dels processos, el programador s lencarregat dassegurar que la sincronitzaci es du a terme de manera correcta. Per ajudar en aquesta tasca, els sistemes multiprogramats i els llenguatges de programaci ofereixen una srie deines que permeten establir la sincronitzaci i lintercanvi dinformaci entre tots els processos concurrents i cooperatius.

Poden sorgir alguns problemes a causa de la concurrncia de les activitats. Encara que la concurrncia i el seu tractament no sn prpiament funci del sistema operatiu, aquest dna eines per ajudar el programador en la seva gesti. El principal problema que pot presentar la concurrncia s lexclusi mtua.
Exemple de sincronitzaci Tenim un fitxer amb registres que estan formats pels camps A, B, C i D, de tal manera que perqu un registre sigui vlid cal que estigui totalment actualitzat. s a dir, si modifiquem el contingut del camp A, la informaci de la resta dels camps ha de ser coherent amb la nova informaci. Si en un determinat moment un procs modifica el contingut del camp A i en el mateix moment un altre procs llegeix el contingut del registre en qu s'ha modificat el camp A i noms hi ha hagut temps de modificar el camp A, la informaci obtinguda pel segon procs ser inconsistent. Al contrari, si un procs llegeix el camp A i en aquest moment un altre procs tamb vol llegir el mateix camp del mateix registre, no hi ha motius per impedir-ho, ja que cap no ha modificat la informaci en el fitxer. Per evitar la primera situaci hem de sincronitzar els processos (vegeu la figura 22); s a dir, hem de permetre l'accs concurrent: mentre un est escrivint ning no podr llegir, per en el segon cas no cal sincronitzar els processos lectors ja que no hi ha interferncia en la informaci. Figura 22. Diagrama de sincronitzaci

Pot haver sistemes sense sincronitzaci i sistemes amb sincronitzaci entre processos. Aquest ltim s lacceptable per a qualsevol sistema.

Sistemes operatius

68

El sistema operatiu

La sincronitzaci per la qual una activitat impedeix que altres puguin tenir accs a unes dades mentre realitza una operaci es coneix amb el nom dexclusi mtua. Lexclusi mtua s lestat que es dna quan entre diversos processos hi ha sincronitzaci per a la utilitzaci dun mateix recurs.

En una exclusi mtua una activitat impedeix laccs a laltra en un moment donat (exclusi) i viceversa (mtuament). Quan un procs entra en una secci crtica ha de completar totes les instruccions de la secci abans que qualsevol altre procs hi pugui accedir; aix es garanteix que fins que un procs no acaba la modificaci, cap altre procs no pot comenar a modificar-la.

Una secci crtica s la zona de codi que pertany a cada programa o procs i que est destinada a fer servir els recursos o dades compartides. Aquestes dades, per tant, no poden ser utilitzades per cap altre procs. El fet que laccs sigui en exclusi mtua indica que noms hi pot haver un sol procs dintre la secci utilitzant els recursos en un moment determinat.
Exemples d'algorismes d'espera activa Entre els algorismes d'espera activa podem destacar els segents: Alternaa Algorisme de Petterson Espera mutex

Els algorismes que shan dissenyat per aconseguir la sincronitzaci entre processos es poden classificar de la manera segent: Espera activa. Sn algorismes que basen el seu funcionament a establir lespera dentrada a la secci crtica amb un bucle que ser trencat en el moment en qu es compleixi una determinada condici. El procs no queda en estat bloquejat, sin que contnuament competeix amb el processador. Aquests algorismes tenen el problema que carreguen molt el sistema. Sn els primers algorismes utilitzats per gestionar el sistema de sincronitzaci, per avui dia han estat substituts per uns altres de ms eficients. Espera no activa. Els algorismes daquest grup fixen lespera per entrar en la secci crtica bloquejant el procs. Daquesta manera fan que deixi de competir pel processador fins que es compleix la condici de bloqueig. Mecanismes de maquinari. Sn instruccions de tipus maquinari que asseguren lexclusi mtua. A ms de la sincronitzaci, tamb hi ha una altra manera destablir una connexi entre els processos: la cooperaci o comunicaci.

Exemples d'algorismes d'espera no activa Entre els algorismes d'espera no activa podem destacar els segents: Semfors Monitors

Exemples d'algorismes de sincronitzaci Entre els algorismes de mecanismes de maquinari en podem destacar els segents: Deshabilitaci d'interrupcions Instrucci test and set (provar i fixar) Bloqueig

Sistemes operatius

69

El sistema operatiu

En els processos concurrents, normalment cal intercanviar resultats parcials, enviar informaci de lestat dels processos o intercanviar informaci general. Els diferents sistemes han proposat diversos mecanismes que permeten comunicar certes quantitats dinformaci entre els processos.

Alguns dels mecanismes que permeten comunicar informaci entre els processos sn els segents: Pas de missatges. Ms que un mecanisme de sincronitzaci es pot considerar com un de cooperaci consistent en lenviament de missatges entre processos. Es basa a utilitzar una zona de memria compartida que gestiona el sistema operatiu directament i que per tant est oculta a lusuari. Daquesta manera, quan un procs ha denviar un missatge a un altre, diposita la informaci en aquesta zona de memria compartida i el receptor la llegeix posteriorment. Memria compartida. La memria compartida sorganitza com a llocs de memria primria i pot ser utilitzada per diversos processos simultniament. Quan es crea un bloc de memria compartida, el sistema operatiu assigna la quantitat de memria sollicitada i la concedeix al procs creador. La resta de processos la pot fer servir declarant-la com a memria compartida en les seves zones de dades, perqu estigui dintre de lespai dadreament de tal manera que quan un procs escrigui informaci en aquesta zona els altres puguin llegir-la directament. Senyals. Proporciona un mitj per passar una indicaci entre dos processos o des dun daquests a un grup de processos. Els senyals tamb es coneixen amb el nom dinterrupcions de programari. ! AST. La comunicaci asncrona no bloqueja el procs i el sistema operatiu sencarrega de guardar el missatge temporalment en la memria fins que es porta a terme loperaci de lectura complementria. Daquesta manera, quan lemissor ha enviat el missatge pot continuar la seva execuci independentment del que facin els receptors. La comunicaci sncrona implica que lemissor i el receptor han dacabar la transferncia dinformaci en el mateix moment, s a dir, shan de sincronitzar. Crides remotes. El pas de missatges dun procs a un altre s una tcnica molt utilitzada per resoldre els problemes de concurrncia entre processos. s semblant al pas de parmetres duna crida a una rutina o procediment. Si ajuntem aquests dos conceptes de missatge i pas de parmetres tindrem les crides remotes, que es basen a crear una cpia del missatge cada vegada que sn executats de manera concurrent.
La comunicaci asncrona s la situaci en qu la comunicaci es pot realitzar en qualsevol moment, al contrari que les comunicacions sncrones, en qu la comunicaci es realitza en determinats moments. Memria compartida La memria compartida s una tcnica de gesti de la memria que permet que diversos processos la puguin utilitzar simultniament.

Comunicaci asncrona i sncrona

Sistemes operatius

70

El sistema operatiu

Rendez-vous. s una modificaci del mtode de les crides remotes en qu la crida, en comptes de ser un procediment, s un grup dordres dintre daquest. ! En els sistemes concurrents en qu hi ha compartici de recursos entre processos es poden donar situacions en qu els processos no es puguin continuar executant i es bloquegin de manera indefinida. Aquest problema es pot generalitzar a qualsevol tipus de recurs compartit. Un recurs pot ser tant un dispositiu com una certa quantitat dinformaci (per exemple, un registre dun fitxer, etc.). En un ordinador hi pot haver molts tipus de recursos.

Podem definir un recurs com una entitat que sutilitza per realitzar un treball determinat en el sistema i que noms pot fer-ho servir un nic procs en un moment determinat.

Podem classificar els recursos en: Reutilitzables. Sn recursos que noms els pot utilitzar un procs. Aix implica que els altres processos han desperar (estat bloquejat). Consumibles. Sn els recursos que una vegada utilitzats desapareixen. Hi ha dhaver un procs productor i un procs consumidor. Aquest s el cas dels processos que senvien informaci per mitj de missatges, els quals es creen i es consumeixen. Perqu un procs pugui utilitzar un recurs ha defectuar les operacions segents: 1) Sollicitar el recurs. Si el recurs no est disponible, el procs quedar bloquejat fins que se li pugui assignar el recurs. Si se li assigna un recurs, el procs quedar desbloquejat i passar a l'estat de "preparat". 2) Utilitzar el recurs. Fer les operacions que solliciti el procs. 3) Alliberar el recurs. Perqu altres processos el puguin utilitzar.
Exemple dutilitzaci dun recurs Suposem que fem una excursi per la muntanya i ens trobem en un pont pel qual nicament pot passar una persona. Si intentem passar-hi podem trobar-nos en les situacions segents: a) Que no hi hagi altres persones que intentin passar en el mateix moment en sentit contrari. En aquest cas no hi haur cap problema. b) Que hi hagi en l'altre extrem del pont una persona amb la intenci de passar i que cap dels dos no vulguem cedir el pas a l'altre. Tots dos comencem a creuar el pont, per tant, tots dos estem fent

Sistemes operatius

71

El sistema operatiu

servir el mateix recurs simultniament (no hi ha, doncs, exclusi mtua). El resultat s que al final xocarem i ning ms no podr utilitzar el pont. Quedar ocupat indefinidament. c) Per evitar el cas anterior, es podria pensar a dissenyar un sistema de barreres que s'obrissin quan ning no fa servir el pont, per que tanqus la del cant contrari quan se'n fes servir una. Podria succeir que en un mateix moment arribessin dues persones en els extrems contraris i tanquessin el pas a l'altre extrem simultniament; aleshores ning no podr creuar el pont i les dues persones quedaran bloquejades a l'entrada del pont (interbloqueig) d) Si una persona dels extrems fos molt educada podria deixar passar el que est a l'altra banda del pont, per es podia donar el cas que quan aquest encara no ha acabat de passar entrs una altra persona del darrere aprofitant el perms de passar, i aquesta situaci es repets indefinidament (espera indefinida). e) El pas pel pont podria estar regulat per un guarda que obrs el pas en un extrem o en l'altre segons el temps que fa que les persones estan a la cua d'espera. Aquesta mesura resoldria tots els problemes. Exemple dinterbloqueig Suposem que tenim dos programes A i B executant-se en un ordinador i que cada un treballa amb els fitxers Fa i Fb respectivament. El programa A llegeix dades del fitxer Fa, les manipula i els resultats s'escriuen en el fitxer Fb. Al mateix temps el procs B fa exactament el mateix que A per llegint les dades del fitxer Fb i escrivint-les en el fitxer Fa. El problema que es planteja s que si B continua la seva execuci arribar un moment que necessitar Fa per poder escriure els resultats, per com que Fa est assignat a A, es quedar bloquejat. Mentrestant, B continuar amb Fb assignat, ja que el necessita. El mateix passar amb A: en un futur necessitar utilitzar Fb, per com que est assignat a B, tamb quedar esperant que quedi alliberat. Aquesta situaci s impossible de resoldre, ats que cada un dels processos espera l'alliberament d'un recurs que t assignat l'altre, que a la vegada tampoc no l'alliberar fins que no hagi acabat l'operaci completa. s aleshores quan es produeix l'interbloqueig.

Linterbloqueig o abraada mortal (deadlock) es produeix quan cada procs del conjunt espera una acci que noms es pot dur a terme en un altre procs conjunt. En qualsevol sistema en qu hi ha processos que esperen operacions sobre els recursos i decisions de planificaci del sistema operatiu, s possible que un determinat procs quedi esperant indefinidament el recurs desitjat, mentre daltres reben latenci del sistema. Aquesta situaci es coneix amb el nom despera indefinida o mort per inanici. Lespera indefinida s una situaci en la qual un procs espera indefinidament lalliberament dalgun recurs que mai no li ser concedit.

Sistemes operatius

72

El sistema operatiu

2. La gesti de la memria

En aquest nou apartat estudiarem la gesti de la memria. Farem un breu estudi preliminar de les possibles alternatives i variants a lhora dorganitzar i administrar lespai dadreces dun sistema. Aquesta primera presa de contacte ens servir dexcusa per introduir alguns conceptes generals, que saniran desenvolupant posteriorment. Comenarem pel tipus de gesti bsic, el dels sistemes de monoprogramaci que quasi no necessiten cap tipus dorganitzaci. La irrupci dels sistemes multiprogramats fa necessari prendre decisions sobre aspectes tan diversos com quant espai es dedica a cada procs, de quina manera se li assigna, en quin lloc subica, durant quant de temps est en memria, qu passa si no hi ha prou espai o com es protegeix davant accessos incorrectes. Tots aquests factors seran valorats primer per tcniques dassignaci contigua (particions esttiques i dinmiques) i per mtodes dassignaci no contigua (paginaci, segmentaci i segmentaci paginada). Tamb es discutir el suport de maquinari i el grau de protecci i compactaci que s possible en cada uns dels esquemes. Dins de ladministraci de la memria hi haur un especial inters en els esquemes de traducci dadreces.

2.1. Conceptes generals del gestor de memria


En la manipulaci de la memria cal tenir en compte el segent: Perqu un procs es pugui executar cal que estigui ubicat en la memria principal de lordinador. Una part del sistema operatiu sencarregar de gestionar la memria principal, de forma que els processos puguin residir en la memria sense conflictes. Des del moment que diversos processos han de compartir la memria de lordinador apareix el problema de la protecci. En general, es pretn que un procs no pugui modificar les adreces de memria en les quals est. Aix s aix, ja que en les adreces de memria on no est ubicat el procs poden residir altres processos, o codi o estructures de dades del sistema operatiu. Alguns sistemes ni permeten que un procs pugui llegir les adreces de memria en les quals no resideix, amb aix saconsegueix privadesa sobre el codi i dades dels processos.

Tasques en la gesti de la memria La gesti de la memria implica entre altres tasques les segents: Portar un registre de les zones que estan lliures (s a dir, no les est utilitzant cap procs), i quines zones estan ocupades i per quins processos. Una altra tasca important apareix en sistemes en qu no tots els processos, o no tot el codi i dades d'un procs, s'ubiquen en la memria principal. En aquests sistemes, molt sovint s'ha de passar part, o la totalitat del codi i dades d'un procs, de memria a disc, o viceversa, on el sistema operatiu s responsable d'aquesta tasca.

Sistemes operatius

73

El sistema operatiu

Hi ha diverses formes de gestionar la memria i aquesta gesti depn de la mquina virtual que sutilitzi i del maquinari que la formi. Els sistemes actuals normalment utilitzen emmagatzematge virtual. Els programes i les dades necessiten estar en la memria principal per ser executats, o per poder ser referenciats. Els programes o dades que no es necessiten dimmediat poden guardar-se en la memria secundria fins que es necessitin, i en aquest moment es transfereixen a la memria principal per ser executats o referenciats. Els suports de memria secundria, com cintes magntiques o discos, sn en general ms cars que la memria principal, i la seva capacitat s molt ms gran. Normalment, s ms rpid laccs a la memria principal que la secundria. En els sistemes amb diversos nivells de memria (jerarquia de la memria) hi ha moltes transferncies de programes i dades entre els diferents nivells. Aquestes transferncies consumeixen recursos del sistema, com temps de la CPU, etc. En la figura 23, teniu un esquema de lestructura jerrquica de la memria. !
Figura 23. Estructura jerrquica de la memria

Nivells de memria o jerarquia de la memria En la memria podem diferenciar els nivells segents: Els registres La memria cau La memria principal La memria secundria

La memria t dues limitacions: la primera s de carcter fsic (quantitat de memria comprada), i la segona est imposada per larquitectura de lordinador i del sistema operatiu.

2.2. La gesti de la memria en sistemes monoprogramats


Als sistemes monoprogramats, noms hi ha un procs dusuari que gaudeix de tots els recursos de lordinador. Aix simplifica notablement la gesti de la memria, ja que est sol i la memria ha de ser compartida pels programes del sistema operatiu, i per lnic procs dusuari existent.

Sistemes operatius

74

El sistema operatiu

Seguidament comentarem com gestionen la memria els sistemes operatius que utilitzen aquesta manera de treballar: 1) Memria dedicada. El programador accedeix directament al maquinari i gestiona la memria a la seva manera. Aix obliga a tenir un gran coneixement del maquinari. No hi ha sistema operatiu i per tant tampoc no hi ha gestor de memria. 2) Divisi de la memria. La introducci dels sistemes operatius per utilitzar millor el maquinari va obligar a dividir la memria en dues zones: una que pogus fer servir lusuari i laltra reservada a la part resident del sistema operatiu. El sistema operatiu, entre altres funcions, sencarrega de gestionar la memria. El sistema operatiu ocupar la part baixa de la memria RAM, o la part alta de la memria ROM. El PC dIBM ubica part del sistema operatiu en RAM, i els gestors de dispositius en ROM; a aquesta ltima part sanomena BIOS (basic input/output system, sistema bsic dE/S). En la figura 24, teniu tres formes dorganitzaci de la memria.
Figura 24. Organitzaci de la memria La memria RAM (random access memory) s un tipus de memria de lectura i escriptura, mentre que la ROM (read only memory) s un tipus de memria noms de lectura. Diferncia entre memria RAM i memria ROM

Si lusuari coneix la ubicaci en la memria del sistema operatiu, aleshores pot escriure programes en termes dadreces absolutes de memria.

Una adrea absoluta de memria s una adrea fsica (s a dir, una adrea real) de la memria. En contraposici hi ha les adreces relatives o lgiques. Un programa est escrit en termes dadreces relatives quan sescriu suposant que comena a carregar-se en ladrea zero de la memria. Per tant, els usuaris escriuen programes en llenguatge dalt nivell i sn els traductors els encarregats de generar les adreces que ocupen en la memria les variables, els procediments, etc.

En general, els sistemes operatius monoprogramats no tenen protecci de memria. Per tant, lnic procs dusuari que hi ha en la memria pot

Sistemes operatius

75

El sistema operatiu

modificar posicions de memria pertanyent al sistema operatiu, aix provocaria errors en executar-se la zona modificada. La protecci es pot realitzar mitjanant un registre de lmit de memria integrat en la CPU.

El registre de lmit (adrea frontera) de memria integrat t ladrea dinici de crrega del sistema operatiu. El maquinari, en temps dexecuci verifica que les adreces generades pel procs dusuari no siguin superiors al valor del registre lmit. En cas contrari, el procs dusuari intenta accedir al sistema operatiu, aix provoca una interrupci gestionada pel sistema operatiu que normalment eliminar al procs.

3) Protecci de la memria. Ats que el sistema operatiu i el programa dusuari comparteixen la memria, s necessari protegir la zona del sistema operatiu per evitar que el programa accedeixi a aquesta zona. Sestableix, per tant, una zona anomenada adrea frontera, que limita la zona del sistema operatiu. Qualsevol adrea de memria que solliciti el programa de lusuari es compara amb aquesta adrea frontera. 4) Reassignaci dadreces. Una vegada arrencat el sistema, el contingut del registre frontera indicar el punt a partir del qual es pot carregar el programa de lusuari. Per aix, s necessari reassignar les adreces del programa en funci de la frontera. Hi ha dues maneres de realitzar la reassignaci: a) Reassignaci dinmica. Es fa durant lexecuci del programa. Un dispositiu especial del maquinari intercepta cada adrea lgica generada pel programa i suma el contingut del registre frontera per obtenir ladrea real. b) Reassignaci esttica. Es realitza durant la compilaci o b durant la crrega del programa en memria. Qualsevol modificaci en la grandria de la memria implica una nova compilaci o crrega del programa. !

Independentment de la tcnica utilitzada per a la reassignaci dadreces, lusuari no treballa amb adreces reals en el seu programa. Fa servir adreces relatives, que poden variar entre zero i el mxim perms pel sistema operatiu. Aquest espai sanomena espai lgic dadreces. Desprs el sistema, amb lajuda del maquinari, calcular a partir de les adreces relatives les adreces reals o absolutes que formen lespai fsic dadreces (memria real).
Swapping

5) Intercanvi demmagatzematge. El desenvolupament dels dispositius demmagatzematge secundari (discos) va fer possible millorar la gesti de la memria. La necessitat de donar servei a diversos usuaris en els sistemes de

El swapping s una tcnica que permet passar la informaci de la memria principal a la memria secundria i a l'inrevs.

Sistemes operatius

76

El sistema operatiu

temps compartit va impulsar la tcnica dintercanvi demmagatzematge o swapping. Quan un programa carregat en memria queda a lespera duna nova ordre el sistema el descarrega (swap-out) en dispositius rpids demmagatzematge secundari. En el seu lloc carregar el programa dun altre usuari (swap-in) des daquests dispositius rpids (discos durs). ! 6) Recobriment. La grandria dels programes est limitada per la quantitat de memria principal, per es pot superar aquest lmit amb tcniques de recobriments, amb les segents caracterstiques: Si una secci particular del programa ja no s necessria, es carrega una altra secci des de lemmagatzematge secundari que ocupa les rees de memria alliberades per la secci que ja no es necessita. Ladministraci manual per programa del recobriment es complica i dificulta el desenvolupament i el manteniment. En la figura 25, teniu un esquema de lestructura de recobriment de la memria.
Figura 25. Estructura de recobriment de la memria

2.3. La gesti de la memria en sistemes multiprogramats

Als sistemes monopogramats noms hi ha un programa dusuari en la memria principal. Lintercanvi dun programa amb lexecuci dun altre presenta una novetat important: lexistncia de diversos programes dusuari carregats a la vegada en la memria. s el que sanomena multiprogramaci.

Sistemes operatius

77

El sistema operatiu

En la figura 26, teniu un esquema de la utilitzaci de la CPU en un sistema dusuari nic. En aquests, el sistema no aprofita la gran quantitat de recursos de lordinador pel fet que: Quan succeeix una petici dE/S la CPU normalment no pot continuar el procs fins que acaba loperaci dE/S. Els perifrics dE/S frenen lexecuci dels processos ja que comparativament la CPU s diverses ordres de magnitud ms rpida que els dispositius dE/S.
Figura 26. Utilitzaci de la CPU en un sistema dusuari nic

Els sistemes de multiprogramaci permeten que diversos processos dusuaris competeixin al mateix temps pels recursos del sistema: Un treball en espera dE/S cedeix la CPU a un altre treball que est preparat per fer operacions. Existeix parallelisme entre el processament i lE/S. Sincrementa la utilitzaci de la CPU i la capacitat global dexecuci del sistema. s necessari que diversos treballs resideixin a la vegada en la memria principal.

Per repartir el processador entre diversos processos necessitem tenir-los en la memria principal, per aix es divideix la memria en trossos denominats particions o regions, en qu es carreguen els diferents processos. El nombre de particions indicar el grau de multiprogramaci del sistema.

Sistemes operatius

78

El sistema operatiu

Tot seguit estudiarem algunes tcniques prpies de la multiprogramaci relacionades amb la gesti de la memria: 1) Protecci de la memria. Si hi ha diversos processos en memria cal protegir les seves respectives particions contra accessos no desitjats. Per fer-ho, podem utilitzar dos registres en qu els continguts apunten a la part superior i a la part inferior de la memria de tal manera que cada adrea generada en el procs ha destar entre aquests lmits. Aquests dos registres sn el registre base i el registre lmit. Una altra manera s tenir ladrea de comenament de la partici i la seva grandria. Amb aquesta tcnica s possible lassignaci dinmica dadreces. En la figura 27, teniu un esquema de multiprogramaci de partici fixa amb protecci de la memria.
Figura 27. Multiprogramaci de partici fixa amb protecci de la memria

2) Particions contiges de grandria fixa. Aquesta tcnica gestiona la memria amb particions contnues de grandria fixa de tal manera que el nombre i la grandria es defineixen quan sinicialitza el sistema i no es pot modificar fins que shagi apagat el sistema (en la figura 28 teniu un esquema de multiprogramaci de partici fixa amb diverses cues). Per solucionar problemes que es poden presentar amb aquesta tcnica hi ha una millora que consisteix en la utilitzaci duna nica cua (figura 29): ser el sistema mateix, mitjanant el planificador de treballs, lencarregat de seleccionar quin programa ser carregat i en quina partici. En aquest cas el planificador de treballs pot fer la selecci atenent algun dels criteris segents: ! Respectant lordre darribada (FIFO). Seleccionant el treball de grandria ms adequada a la partici lliure. Seleccionant el primer treball que cpiga en la partici disponible.
Figura 28. Multiprogramaci de partici fixa amb diverses cues

FIFO La FIFO (first input first output) s una tcnica que permet gestionar els treballs de les cues. El primer d'arribar ser el primer de ser gestionat.

Sistemes operatius

79

El sistema operatiu

Figura 29. Multiprogramaci de partici fixa amb una cua

El sistema operatiu t una implementaci relativament senzilla per no soptimitza la utilitzaci de la memria.
Origen de la fragmentaci de la memria La fragmentaci es produeix quan: Els treballs de l'usuari no omplen completament les seves particions assignades. Una partici est sense utilitzar perqu s massa petita per allotjar un treball que est en espera.

La fragmentaci de la memria s una situaci que es dna en la gesti de la memria mitjanant particions contiges de grandria fixa que consisteix en laparici de zones de la memria que queden lliures en acabar lexecuci dels programes i que a vegades s difcil omplir-los amb nous programes. Podem diferenciar els segents tipus de fragmentaci: Fragmentaci interna. Es produeix quan un programa no ocupa tota la partici assignada. Fragmentaci externa. Es dna quan alguna partici no sutilitza, perqu els programes pendents sn ms grans.

Figura 30. Assignaci de particions de grandria variable

3) Particions contiges de grandria variable. Consisteixen a assignar dinmicament la memria als treballs en funci de la seva grandria (vegeu en la figura 30 un esquema dassignaci de particions de grandria varia-

Sistemes operatius

80

El sistema operatiu

ble). El sistema operatiu porta un registre de les zones lliures i ocupades de la memria. Tamb apareix una certa fragmentaci, per s gestionada de la manera segent: quan surten espais lliures consecutius, el gestor de memria tendeix a agrupar-los de tal manera que en cap moment hi haur dues particions contiges buides. Les principals caracterstiques daquesta gesti de la memria sn: a) No hi ha lmits fixos de memria, s a dir que la partici dun treball s la seva prpia grandria. b) Es considera esquemes dassignaci contigua, ats que un procs ha docupar posicions adjacents demmagatzematge. c) Els processos que acaben deixen disponibles espais de memria principal anomenats forats (en la figura 31 teniu un esquema de forats demmagatzematge de partici variable): Poden ser usats per altres treballs que quan finalitzin deixen altres forats. En successius passos els forats sn cada vegada ms nombrosos, i aix origina que es generi una malversaci de memria principal.
Figura 31. Forats demmagatzematge de partici variable

Tamb pot succeir que els forats separats i distributs per tota la zona demmagatzematge representin una quantitat important de memria. Llavors es pot fer una compressi o compactaci de la memria.

La compressi o compactaci s la tcnica que implica passar totes les rees lliures de la memria a un dels extrems de la memria principal.

Aquesta tcnica implica passar totes les rees ocupades de lemmagatzematge a un dels extrems de la memria principal. d) Deixa un nic forat gran de memria lliure contigua. Aquesta tcnica sanomena recollida de residus. En les figures 32 i 33, teniu uns esquemes de compactaci de forats adjacents i no adjacents de la memria.
Recollida de residus La recollida de residus s una tcnica que consisteix a agrupar tots els espais lliures de la memria en un nic espai.

Sistemes operatius

81

El sistema operatiu

Figura 32. Compactaci de forats adjacents de la memria

Figura 33. Compactaci de forats no adjacents de la memria

2.4. La memria virtual


La gesti de memria als sistemes monoprogramats i multipogramats es basa en el fet que per executar un programa cal que aquest estigui totalment carregat en la memria principal. Per no totes les parts dun programa sexecuten normalment. Els programadors dissenyen rutines que noms sexecuten en situacions determinades, la qual cosa explica que no calgui que tot el programa estigui carregat en memria per processar-lo.
Dissociaci d'adreces de la memria La clau del concepte de memria virtual est: En la dissociaci de les adreces disponibles en la memria real. En la dissociaci de les adreces a les quals fa referncia un programa.

La memria virtual s una tcnica de gesti que, combinada amb el maquinari i programari, permet lexecuci de programes parcialment carregats en la memria real, s a dir, programes que ocupen ms espai que la memria real. La memria virtual s la separaci de la memria lgica de lusuari de la memria fsica. Aquesta separaci proporciona als programadors una gran memria virtual quan noms es disposa duna memria fsica ms petita. La memria virtual facilita les tasques de programaci, ja que el programador no sha de preocupar per la quantitat de memria fsica disponible. Els principals conceptes implicats en la gesti de la memria virtual sn: Adreces virtuals. Sn les referides per un procs en execuci.

Sistemes operatius

82

El sistema operatiu

Adreces reals. Sn les disponibles dins de la memria principal. Espai dadreces reals dun ordinador. s el nombre dadreces reals disponibles en lordinador. Espai dadreces virtual dun procs. s el nombre dadreces virtuals a qu pot fer referncia el procs.

Els processos fan referncia a adreces virtuals per aquestes han dexecutar-se en emmagatzematge real; per aix cal una traducci dadreces: Les adreces virtuals shan de transformar dins de lespai de les adreces reals, mentre el procs est en execuci. En la figura 34 teniu un esquema de transformaci de lespai dadreces virtuals a lespai dadreces reals.
Figura 34. Transformaci de lespai dadreces virtuals a lespai dadreces reals

La traducci d'adreces consisteix a passar les adreces virtuals a adreces reals.

La traducci dadreces sha de fer rpidament per no degradar al sistema. En la figura 35 teniu un esquema de traducci dadreces virtuals a adreces reals.

Els mecanismes de traducci dinmica dadreces converteix les adreces virtuals en reals en executar-ne el procs. Les adreces contiges dins de lespai dadreces virtuals dun procs no han de ser pas contiges dins de lespai demmagatzematge real.

Sistemes operatius

83

El sistema operatiu

Figura 35. Traducci dadreces virtuals a adreces reals

Sha de proporcionar els mitjans per retenir programes i dades en un gran magatzem auxiliar per: Permetre que lespai dadreces virtuals dun usuari sigui ms gran que lespai dadreces reals. Suportar la multiprogramaci de manera efectiva. Per aconseguir-ho, sutilitza un esquema demmagatzematge de dos nivells (figura 36): 1) Primer nivell (magatzem real). Shi executen els processos i hi han destar les dades perqu un procs pugui referir-shi. 2) Segon nivell (magatzem auxiliar, secundari o addicional). Generalment consta de suports de gran capacitat (discos magntics) que poden mantenir els programes i les dades que no caben al mateix temps en el ms limitat magatzem real. Quan sexecuta un procs, el seu codi i les seves dades passen al magatzem principal. El magatzem real s compartit per diversos processos. En la transformaci de blocs hi ha mecanismes de traducci dinmica dadreces que han de mantenir mapes que illustrin quines adreces demmagatzematge virtual es troben en el real i on es troben.

El magatzem real correspon a la memria principal.

El magatzem secundari correspon a la memria secundria.

Sistemes operatius

84

El sistema operatiu

Figura 36. Magatzem de dos nivells

La informaci sagrupa en blocs: 1) El sistema est informat del lloc de l'emmagatzematge real on han estat situats els blocs de l'emmagatzematge virtual. 2) Com ms gran sigui el bloc, menor ser la fracci de l'emmagatzemen real que ha de dedicar-se a contenir la informaci del mapa. 3) Amb blocs grans: Es redueix la sobrecrrega d'emmagatzematge del mecanisme de transformaci. S'incrementa el temps de transferncia. Es consumeix ms emmagatzematge real. 4) Els blocs poden ser de grandria: Igual. S'anomenen pgines i l'organitzaci d'emmagatzematge virtual associat s'anomena paginaci.

Els blocs equivalen a adreces lgiques.

Sistemes operatius

85

El sistema operatiu

Diferent. S'anomenen segments i l'organitzaci de l'emmagatzematge virtual associat s'anomena segmentaci. 5) Es poden combinar les dues tcniques. Segments de grandria variable formats de pgines de grandria fixa. Les adreces sn bidimensionals, s a dir, que una adrea virtual v s'indica per un parell ordenat (b,d), on: b: representa el nmero del bloc on resideix. d: representa el desplaament a partir de l'inici del bloc. La traducci d'una adrea virtual v = (b,d) a l'adrea real r es basa en el segent esquema: 1) Cada procs t la seva taula de mapa de blocs mantinguda pels sistemes en l'emmagatzematge real. 2) Un registre especial del processador anomenat registre origen de la taula de blocs es carrega amb l'adrea real a de la taula de mapa de blocs: a) Cont una entrada per a cada bloc del procs. b) Les entrades es mantenen en ordre seqencial pel bloc 0, bloc 1, etc. c) S'afegeix el bloc nmero b a l'adrea base a de la taula de blocs per formar l'adrea de l'entrada de la taula de mapa de blocs per al bloc b: Cont l'adrea real b' per al bloc b. El desplaament d s'afegeix a l'adrea d'inici del bloc b', per formar l'adrea real desitjada: r = b' + d. La transformaci de blocs sefectua en forma dinmica, mentre sexecuta un procs; per tant, si la implementaci no s eficient, la seva sobrecrrega pot causar una degradaci del rendiment que podria eliminar en part els avantatges de la utilitzaci de lemmagatzematge virtual. En les figures 37 i 38, teniu uns esquemes de format de ladrea virtual i de traducci dadreces virtuals en un sistema de transformaci de blocs.
Figura 37. Format de ladrea virtual en un sistema de transformaci de blocs

Sistemes operatius

86

El sistema operatiu

Figura 38. Traducci dadreces virtuals en un sistema de transformaci de blocs

Podem diferenciar tres tipus de gesti de la memria virtual: Paginada. Segmentada. Segmentada-paginada.

Gesti paginada de la memria virtual


La paginaci s una tcnica de gesti de la memria que permet assignar la memria de forma discontnua. Per aconseguir aix, es divideix la memria fsica en trossos de grandria fixa anomenats frames o marcs, i la lgica, en blocs de la mateixa grandria anomenats pgines. El sistema operatiu mant internament una taula de pgines on cada pagina carregada en la memria principal es relaciona amb el marc que la cont o, el que s el mateix, ladrea inicial es relaciona amb la memria real. Cada adrea que genera el processador ser interceptada i dividida en dos components: Un nmero de pgina (p). Un desplaament en la pagina (d) que informa de la posici que ocupa el byte indicat per ladrea comptant des del principi de la pagina.

Sistemes operatius

87

El sistema operatiu

Les pgines es transfereixen de lemmagatzematge secundari al primari en blocs anomenats marcs de pgines: Tenen la mateixa grandria que les pgines. Comencen en adreces de lemmagatzematge real que sn mltiples enters de la grandria fixa de la pgina. Podr collocar-se una nova pgina dins de qualsevol marc de pgina o cella de pgina disponible. La traducci dinmica dadreces inclou: Un procs en execuci, que fa referncia a una adrea virtual: v = (p,d). Un mecanisme de transformaci de pgines, que busca la pgina p en la taula de pgines i determina si la pgina p es troba en el marc de pgina p. Ladrea demmagatzematge real est format per la concatenaci de p i d. En les figures 39, 40, 41 i 42, teniu uns esquemes de la tcnica de paginaci de la memria.
Figura 39. Format de ladrea virtual al sistema de paginaci

Figura 40. Emmagatzematge real dividit en marcs de pgines

Sistemes operatius

88

El sistema operatiu

Figura 41. Correspondncia entre adreces demmagatzematge virtual i les adreces demmagatzematge real en un sistema de paginaci

Figura 42. Traducci dadreces de pgina de manera directa

Gesti segmentada de la memria virtual


Els programes es desenvolupen normalment al voltant dun bloc principal (principal) des del qual es bifurca a altres llocs (rutines) o saccedeix a zones de dades (taules, piles, etc.). Des daquest punt de vista, un programa

Sistemes operatius

89

El sistema operatiu

s un conjunt de components lgics de grandria variable o un conjunt de segments. !

Lespai lgic dadreces es considera com un conjunt de segments cada un dels quals est definit per la grandria i un nmero.

El compilador fa la segmentaci dun programa en qu cada adrea lgica sexpressa mitjanant dos valors: nmero de segment (s) i desplaament dintre del segment (d). Cada adrea lgica (s,d) es converteix en una adrea real (r) mitjanant un dispositiu anomenat taula de segments. En els sistemes de segmentaci un programa i les seves dades poden ocupar diversos blocs separats demmagatzematge real. Els blocs no necessiten ser digual grandria; i els blocs separats no necessiten ser adjacents i han destar formats per posicions contiges demmagatzematge. En la figura 43, teniu un esquema dassignaci no contigua demmagatzematge.
Figura 43. Assignaci no contigua demmagatzematge

Una adrea virtual s un parell ordenat v =(s,d): s s el nmero del segment de lemmagatzematge virtual en qu hi ha els elements de referncia. d s el desplaament en el segment s en el qual hi ha lelement referenciat. En la figura 44, teniu un esquema de traducci virtual en un sistema de segmentaci.

Sistemes operatius

90

El sistema operatiu

Figura 44. Traducci virtual en un sistema de segmentaci

Gesti segmentada-paginada de la memria virtual


La segmentaci i la paginaci tenen avantatges i inconvenients i sembla lgic combinar aquestes dues tcniques per aprofitar les caracterstiques principals de les dues tecnologies (vegeu en les figures 45 i 46 uns esquemes de la tcnica de paginaci-segmentaci de la memria). Alguns sistemes utilitzen la tcnica de la paginaci segmentada, que consisteix a segmentar les pgines de taules, per aix mant una taula de segments en qu les entrades indiquen ladrea de comenament de cada taula de pgines i la seva grandria. Una altra tcnica, anomenada segmentaci paginada, opta per paginar els segments, s a dir, utilitza segments en qu la grandria s sempre un nombre enter de pgines. ! En la paginaci segmentada: La grandria dels segments s mltiple del de les pgines. No s necessari que totes les pgines dun segment es trobin al mateix temps en lemmagatzematge primari. Les pgines demmagatzematge virtual, que sn contiges en aquest magatzem, no necessiten ser contiges en el magatzem real. Ladreament s tridimensional amb una adrea virtual v = (s,p,d): s s el nmero del segment. p s el nmero de pgina. d s el desplaament en la pgina on es troba assignat lelement desitjat.

Sistemes operatius

91

El sistema operatiu

Figura 45. Traducci dadreces virtuals en un sistema de paginaci i segmentaci

Figura 46. Estructura de taules en un sistema de paginaci i segmentaci

Sistemes operatius

92

El sistema operatiu

3. La gesti dE/S, de la informaci i de la seguretat

El control de les operacions dentrada/sortida s una de les funcions del sistema operatiu que serveixen per facilitar la utilitzaci dels diferents dispositius que formen lordinador. Els dispositius que permeten lintercanvi dinformaci entre el processador i la memria sn els dispositius perifrics. No s fcil que els processos utilitzin de manera directa els perifrics; per tant, els processos no necessiten conixer les caracterstiques dels perifrics sin nicament intercanviar dades. Normalment, el programari de gesti de les operacions dentrada/sortida dun sistema representa un tant per cent molt elevat del total del programari que forma el sistema operatiu; per aix s important conixer la gesti dentrada/sortida, ja que proporciona als programadors i als processos ordres que faciliten ls dels perifrics, lacceptaci i el tractament de les interrupcions i la gesti derrors.

3.1. La gesti dE/S


Una caracterstica del gestor dentrada/sortida s que ofereix una interfcie als programes dusuari que permet manipular de la mateixa forma tots els perifrics gestionats pel sistema operatiu. La interfcie, doncs, s independent del dispositiu i no s necessari modificar els programes si es canvia de perifric.

Una de les funcions principals dun sistema operatiu s el control de tots els dispositius dE/S dun ordinador. Les principals funcions sn: Enviar ordres als dispositius. Detectar les interrupcions. Controlar els errors. Proporcionar una interfcie entre els dispositius i la resta del sistema: ha de ser senzilla i fcil dutilitzar; i ha de ser la mateixa (preferentment) per a tots els dispositius (independncia del dispositiu).

Ls inadequat dels dispositius dE/S freqentment provoca una disminuci del rendiment del sistema, i aix, afecta el seu funcionament en general.

Sistemes operatius

93

El sistema operatiu

Podem resumir levoluci de les funcions dels dispositius dE/S en: 1) Inicialment el processador controlava directament els dispositius perifrics. 2) Posteriorment, quan un controlador o mdul dE/S sincorpora a un sistema: El processador utilitza E/S programada sense interrupcions. El processador comena a allar-se de les particularitats dels dispositius (drivers-controladors). 3) Comena la utilitzaci dinterrupcions. El processador no gasta temps a esperar la finalitzaci de les operacions. 4) Posteriorment els dispositius comencen a controlar laccs a la memria amb laparici de la DMA: es podia moure un bloc de dades a la memria o des de la mateixa sense que hagus dintervenir el processador. 5) El mdul dE/S evoluciona a ser un processador separat amb el seu propi joc dinstruccions especfiques per a E/S: aix permet al processador determinar un conjunt o seqncia dinstruccions (operacions a fer) i que ser interromput noms quan hagi acabat la seqncia completa. 6) El mdul dE/S posteriorment evoluciona a ser un ordinador independent amb la seva prpia memria local.

3.1.1. Interfcie dispositiu perifric-ordinador


La connexi dun dispositiu dentrada/sortida a un sistema operatiu necessita normalment un circuit dinterfcie. El dispositiu dinterfcie pot consistir en uns pocs registres o portes lgiques o en una o ms plaques lgiques. La majoria de les tcniques dentrada/sortida i les interfcies shan dissenyat en forma de circuits integrats, que sutilitzen directament per al control del dispositiu. Aquests controladors es connecten als integrats dentrada/sortida o als busos estndard. Per efectuar una transferncia de dades, la interfcie ha de fer el segent: ! 1) Descodificar ladrea que envia la CPU per seleccionar el perifric. Aix implica que necessita un descodificador d'adreces.

Portes lgiques Les portes lgiques sn una srie de components electrnics que formen la base dels principals elements dels ordinadors.

Sistemes operatius

94

El sistema operatiu

2) Captar les dades. La CPU envia i rep dades dels perifrics. Aix vol dir que ha de disposar d'un registre de dades. 3) Sincronitzar la transmissi. Hi ha d'haver mecanismes que permetin sincronitzar la portada i recollida de les dades.

Els dispositius dE/S es divideixen, en general, en dos tipus: Dispositius orientats a blocs. Tenen la propietat que es poden direccionar s a dir, el programador escriu o llegir qualsevol bloc del dispositiu realitzant primer una operaci de posicionament sobre el dispositiu. Els dispositius ms comuns sn els discos durs, la memria, els discos compactes, etc. Dispositius orientats a carcters. Treballen amb seqncies de bytes sense importar la seva llargada ni cap agrupament en especial. No sn direcionables. Alguns exemples sn el teclat, la pantalla i les impressores.

La classificaci de dispositius dE/S en orientats a blocs i orientats a carcters no s perfecta, perqu hi ha diversos dispositius que generen entrada o sortida que no poden englobar-se en aquestes categories. Per exemple, un rellotge que genera polsos. No obstant aix, encara que hi ha alguns perifrics que no es poden categoritzar, tots sn administrats pel sistema operatiu per mitj duna part electrnica-mecnica i una part de programari. El processador noms pot comenar les operacions dentrada/sortida sense poder-ne controlar lacabament. Aix i tot, per saber quan sha acabat una operaci pot utilitzar tres mtodes: 1) Polling. Consisteix a llegir constantment el registre destat del dispositiu. El problema s que aix mant ocupat el processador un temps no desitjat. El processador sencarrega de preguntar contnuament als dispositius si necessiten algun servei. 2) Interrupcions. El processador no est parat mentre es produeix una operaci dentrada/sortida. El processador continua amb altres treballs i noms quan el dispositiu acaba loperaci, savisa el processador perqu tracti aquesta situaci, s a dir, executa la interrupci. 3) Accs directe a memria (DMA: direct memory access). El mdul DMA controla lintercanvi de dades entre la memria principal i el dispositiu dE/S. El processador envia una petici de transferncia al mdul DMA i finalitza quan sha enviat el bloc dinformaci. Molts controladors, especialment els corresponents a dispositius de bloc, permeten el DMA.

Sistemes operatius

95

El sistema operatiu

En molts casos, la poltica que se segueix per gestionar les operacions dentrada/sortida dependr de la forma en qu es connectin els perifrics, per en lactualitat es basen en el tractament dinterrupcions. Els components que sutilitzen per a la connexi dels dispositius a lordinador poden ser: controladors i canals.

Connexi de dispositius a lordinador per controladors

En el cas de dispositius complexos (per exemple, discos) la connexi no es fa de manera directa a lordinador sin mitjanant un dispositiu anomenat controlador o adaptador que cont lestat del dispositiu, el controla i fa la transferncia de les dades. Cada controlador pot gestionar diversos dispositius del mateix tipus i model i t uns registres que sutilitzen per comunicar-se amb el processador i que es coneixen pel nom de registres del dispositiu o registres dentrada/sortida. Els controladors de dispositius sn la part electrnica dels perifrics, el qual pot tenir la forma duna targeta o un circuit imprs integrat a la placa base de lordinador.

Per intercanviar dades o senyals entre lordinador i els controladors, moltes vegades sutilitzen registres o zones de la memria (en la figura 47 teniu un esquema dun controlador dE/S). Aquests registres tenen les funcions segents: Informar de lestat del dispositiu. Transferir instruccions al dispositiu. Transferir dades des del dispositiu. Transferir dades al dispositiu.

Figura 47. Esquema dun controlador de dispositiu dE/S

Sistemes operatius

96

El sistema operatiu

El sistema operatiu fa les operacions dentrada/sortida per mitj dordres especfiques del controlador que permeten laccs a aquests registres. Quan una ordre ha estat acceptada pel controlador, el processador no torna a ocupar-se de loperaci dentrada/sortida fins que el controlador implicat interromp el processador per indicar-li que ha acabat la transferncia de dades sollicitada. En aquest moment el processador reconeix la interrupci i passa a tractar-la. En la taula 8, teniu informaci sobre alguns controladors i les seves adreces i interrupcions.
Taula 8. Controladors, adreces dE/S i vectors dinterrupcions Controlador E/S Rellotge Teclat Disc dur Impressora Disc flexible RS 232 primari RS 232 secundari rea dE/S 040-043 060-063 320-32f 378-37f 3f0-3f7 3f8-3ff 2f8-2ff Vector dinterrupcions 8 9 13 15 14 12 11

IOP: input/output processor.

Connexi de dispositius a lordinador per canals

En els grans ordinadors, on hi ha un nombre elevat de dispositius, els controladors es connecten al processador per un canal dentrada/sortida o IOP (input/output processor). Aquest processador est especialitzat per realitzar operacions dentrada/sortida. El propsit dun canal s aconseguir que els dispositius siguin tractats com a virtuals, abstractes o transparents i aix descarregar el processador central de lordinador del treball dutilitzar-los directament. Els canals sn manipulats per ordres que sajuden en lexecuci per mitj de dispositius DMA i quan sacaben dexecutar retornen lestat corresponent del dispositiu que ho va fer i avisen daquesta situaci el processador central.

Els canals poden ser del tipus: Selectors. Permeten la gesti de diversos dispositius, per noms un en cada moment. Multiplexors. Gestionen diversos dispositius i poden transferir dades simultniament per tots ells.

Sistemes operatius

97

El sistema operatiu

3.1.2. Emmagatzematge a la memria intermdia (buffering) i la gesti de cues (spooling)


Dos elements relacionats amb la memria i lemmagatzematge dinformaci sn lemmagatzematge a la memria intermdia i la gesti de cues.

La memria intermdia (buffer) s una memria temporal en la qual es colloca informaci. Una vegada est plena aquesta memria, se navisa el processador i aleshores aquest agafa les dades i dna lordre que es tomi a omplir el buffer mentre manipula les dades llegides, que poden provenir de la lectura duna cinta magntica. Aquesta tcnica, que permet la simultanetat en les operacions dE/S i lexecuci del processos en el processador, es coneix amb el nom de buffering.

El problema que es pot presentar al buffering s que si el dispositiu dentrada/sortida s molt rpid pot provocar que el processador no tingui velocitat suficient per omplir el buffer. Per resoldre aix, sutilitza un dispositiu com el DMA, la missi del qual s permetre la transferncia de manera directa entre la memria i els dispositius dentrada/sortida sense la intervenci del processador, el qual noms rebr el senyal de comenament i dacabament de loperaci corresponent. Per altra banda, laparici dels discos magntics va donar origen a una nova tcnica anomenada gesti de cues (spool).

SPOOL: simultaneous peripheral operation on-line.

El sistema spooling permet que les dades de sortida dun programa es puguin escriure en una zona del disc magntic i posteriorment es puguin imprimir o escriure en cinta. Daquesta manera, el processador pot executar un altre treball mentre simprimeixen els resultats de laltre.

Un sistema en spool es pot considerar com una cua de fitxers que esperen el seu tom per ser impresos per una determinada impressora. La gesti daquesta cua pot ser de tipus FIFO, en funci de les prioritats. La lectura de les dades la fa el dispositiu dentrada directament al disc. El sistema operatiu emmagatzema aquestes dades en una taula amb lobjectiu de conixer quants treballs hi ha en la cua i en quin ordre shan de tractar. Quan a un treball li correspon executar-se, es carregar en memria des del disc. De la mateixa manera, quan es tracti dimprimir un treball, aquest senviar directament a la impressora sense la intervenci del processador.

Sistemes operatius

98

El sistema operatiu

Digual manera que els sistemes buffering, lspooling tracta de mantenir ocupat el processador i els dispositius dentrada/sortida el mxim temps possible, amb lavantatge que ara coincideixen lentrada/sortida duns treballs amb el processament daltres.

3.1.3. Programari de control dE/S


Es poden estudiar les operacions dentrada/sortida tant des de laspecte del maquinari com del sistema operatiu. Des del punt de vista del sistema operatiu cal conixer com es pot utilitzar aquest maquinari des de diferents processos que sexecuten en el sistema. Per facilitar lestudi dividirem la gesti dentrada/sortida en les segents capes jerrquiques (en la figura 48 teniu les diferents capes de programari dels dispositius dE/S): 1) Programari independent del dispositiu. Est format pel conjunt de rutines del sistema operatiu que processen la informaci dentrada/sortida. Aquestes rutines no depenen del dispositiu. El programari independent del dispositiu t com a missi atendre les crides al sistema que fa el procs dun usuari que sollicita una operaci dentrada/sortida, i ha de comprovar que tots els parmetres sn correctes (ladrea del dispositiu, ladrea de memria, etc.). 2) Programari dependent del dispositiu. Aquesta capa est formada per un conjunt de rutines especficament dissenyades per fer una operaci dentrada/sortida sobre un dispositiu determinat. Podem dividir aquesta capa en: a) Gestor del dispositiu. Quan loperaci dentrada/sortida necessita actuar sobre aspectes que depenen del perifric, el kernel del sistema operatiu transfereix el control a aquest gestor que controla un tipus determinat de dispositiu dentrada/sortida. Aquest gestor es coneix amb el nom de driver, i t com a funci principal comprovar que la petici realitzada s correcta, que es dirigeix cap a un tipus de dispositiu que s capa de gestionar i que les dades passades estan dacord amb les caracterstiques del dispositiu. En cas derrors, ho comunica a la capa superior del sistema operatiu i aquesta ho comunicar al procs de lusuari. Si les dades sn correctes, ordena al dispositiu que comenci loperaci. b) Gestor dinterrupcions. s una rutina que executa el sistema operatiu quan es produeix una interrupci provocada pel dispositiu pel qual va ser dissenyada. Est lligada al maquinari de cada tipus de dispositiu i manipula de manera directa els registres del controlador corresponent. Una vegada aquesta rutina ha tractat la interrupci, els resultats sn enviats al gestor del dispositiu o driver, que far les accions oportunes: normal-

El driver s el programari que permet gestionar dispositius d'entrada/sortida.

Sistemes operatius

99

El sistema operatiu

ment, comunicar a la capa superior del sistema operatiu que loperaci dentrada/sortida ha acabat correctament o amb error.

En general, les capes de programari dels dispositius dE/S sorganitzen seguint lordre segent: Programes dusuari. Procediments independents dels dispositius. Controladors de dispositius. Gestor dinterrupcions dentrada/sortida.

Figura 48. Capes de programari dels dispositius dE/S

La capa de gesti de les rutines dinterrupcions dentrada/sortida pertany al sistema general dinterrupcions del sistema. En el cas de lentrada/sortida podem distingir dos comportaments en funci de la interrupci de lentrada/sortida: un s la petici de servei (prov de la capa superior), i laltre s la resposta a un servei (la petici ja ha estat processada). La funci bsica del programari independent dels perifrics s portar a terme les funcions dentrada/sortida comunes a tots els dispositius a ms de proporcionar una interfcie amb la capa dusuari. En el nivell dels procediments dependents hi ha un conjunt de rutines que tenen com a funci comprovar lestat dels dispositius mitjanant la consulta dels registres destat i, si escau, carregar els registres de control per programar el perifric adequadament. Aix doncs, aquesta part del codi dentrada/sortida ha de conixer detalladament els registres del controla-

Sistemes operatius

100

El sistema operatiu

dor del maquinari i la seva utilitzaci. Sn els anomenats controladors programari de dispositius (drivers software). La feina del nivell de programes en lespai dusuari queda reduda a fer denlla amb les rutines de la llibreria del sistema. Les rutines de la llibreria senllacen amb el codi dusuari per adaptar els parmetres de cada llenguatge de programaci i enllaar-los amb els parmetres i les crides al sistema de cada SO concret. En general, el controlador rep peticions abstractes i les converteix en ordres concretes en funci de lassignaci actual dels dispositius. Si el gestor de rutines est ocupat, pot posar la petici a la cua i la sollicitud entrar en llista despera de sollicituds pendents. Hi ha dues possibilitats per executar la seqncia de crides necessries per satisfer una petici: 1) La resposta immediata. El gestor fa un control directe i espera que la petici sigui servida. s el cas descriure per pantalla o consultar lestat dun perifric. 2) El temps despera. El controlador es posa en estat despera fins que li arriba el senyal de fi doperaci de la capa inferior, senyal que indica que la informaci ja est disponible. Un exemple seria quan situem un capal de disc i esperem un temps fins que quedi situat correctament.

3.2. La gesti de la informaci


Cada procs necessita emmagatzemar gran quantitat dinformaci en el seu espai dadreces virtuals, i aix provoca alguns problemes: Grandria escassa per a moltes aplicacions. Informaci condicionada pel procs. Informaci no compatible entre processos.

La soluci al fet que cada procs necessiti emmagatzemar gran quantitat dinformaci en el seu espai dadreces virtuals est en el fet que la informaci sigui independent dels processos que la manipulen.

Necessitem emmagatzemar la informaci i per tant cal uns certs requisits en els dispositius demmagatzematge: Gran capacitat demmagatzematge dinformaci a llarg termini. Informaci no voltil al procs que la utilitza.

Sistemes operatius

101

El sistema operatiu

Diversos processos han de poder accedir concurrentment a la informaci. Varietat de mitjans on poder emmagatzemar la informaci: discos magntics, cintes magntiques, discos ptics, etc.

3.2.1. Estructura de la informaci


La informaci que manipula lordinador est formada per senyals representats per zeros i uns. s el que coneixem com a bits, que es corresponen fsicament amb la presncia o absncia de petits senyals elctrics sobre els diferents elements electrnics que formen el maquinari de lordinador. En lemmagatzematge de la informaci sutilitza un conjunt de carcters. Cada carcter es configura per mitj dun conjunt de bits, generalment vuit, que permeten un joc de 256 elements. Els codis ms emprats en lactualitat sn lASCII i lEBCDIC. Podem destacar els segents elements relacionats amb la informaci: 1) Camp, registre, arxiu i base de dades. En la figura 49 podeu veure aquestes parts en qu podem organitzar la informaci.

ASCII i EBCDIC L'ASCII (american standard code for information interchange) i l'EBCDIC (extended binary coded decimal interchange code) sn sistemes de codificaci de la informaci formats per vuit bits.

Un conjunt de carcters relacionats formen el camp, el qual pot ser, en funci de la informaci que cont, numric, alfabtic o alfanumric. Diferents camps duna mateixa entitat configuren un registre. Un conjunt de registres relacionats formen un arxiu o fitxer. Un conjunt de fitxers relacionats formen una base de dades.

Figura 49. Esquema de carcter, camp, registre i fitxer

Sistemes operatius

102

El sistema operatiu

En general tot registre t un o ms camps que diferencien els registres dun fitxer. Aquests camps sanomenen camps clau. Els suports ms utilitzats en lactualitat per emmagatzemar la informaci sn els discos magntics, les cintes magntiques i els discos ptics. De tots aquests, ens centrarem en lestudi dels discos magntics. 2) Registre fsic (o bloc) i registres lgics

La quantitat dinformaci que en cada operaci de lectura o escriptura s gestionada pel maquinari sanomena registre fsic o bloc i en els discos correspon al sector. Lusuari manipula la informaci en unitats lgiques de grandria variable segons laplicaci i arxiu de qu es tracti. Aquestes unitats reben el nom de registres lgics o registres.

Sector d'un disc Un sector s un conjunt de pistes. Les pistes sn zones on se situa la informaci en cintes magntiques, discos magntics i discos ptics.

Per millorar la velocitat daccs a la informaci i optimitzar ls dels dispositius, el sistema pot bloquejar els registres lgics agrupant diversos registres lgics en cada bloc fsic, i crear aix registres bloquejats.

Els registres bloquejats sn un conjunt o blocs de registres lgics.

3.2.2. Algorismes de planificaci dels accessos al disc


En els sistemes actuals cal que la gesti de la informaci sobre els discos sigui la ms eficient possible, per aix cal agilitar els accessos a la informaci que contenen. Quan es fa una petici daccs a un bloc determinat, el maquinari del disc fa fonamentalment les operacions segents: 1) Recerca. Operaci de moure el bra buscant el cilindre corresponent. 2) Latncia. Correspon al temps que tarda el bloc a situar-se davant del capal de lectura i escriptura. 3) Transmissi. Transmet el bloc. En els sistemes multiprogramats sn diversos els processos en execuci en un moment determinat i poden produir-se peticions simultnies daccs a un mateix disc. Si mentre es realitza un accs arriben ms peticions, el sistema les haur de posar en una cua despera i, quan acabi laccs que estava atenent, el disc quedar lliure i el sistema podr decidir lordre en qu dna servei a les peticions pendents, intentant minimitzar el desplaament del bra del disc i per tant el temps de servei de la petici.

El cilindre s un conjunt de blocs de pistes parallels.

Sistemes operatius

103

El sistema operatiu

Per planificar laccs a un mateix disc en els sistemes multipogramats hi ha diversos algorismes: El primer darribar s el primer a accedir-hi. El criteri utilitzat s que les peticions sn servides en funci de lordre darribada. Primer, el de menor temps de recerca. Aquest algorisme dna servei a la petici ms propera a lltima servida o aquella que necessita menys desplaament del bra. Exploraci. Lalgorisme es basa a donar servei segons un dels sentits del desplaament i atenent les peticions ms properes.

3.2.3. Sistema de fitxers


Des del punt de vista dels usuaris, els arxius sn grups dinformacions relacionades sobre les quals podem fer diverses operacions (lectura, escriptura, eliminaci, actualitzaci, etc.). El sistema ser el responsable de fer aquestes operacions. La part del sistema operatiu encarregada de tot aix sanomena sistema darxius, o de fitxers, i t tres missions: 1) Gestionar lemmagatzematge. Decidir com sha dassignar als fitxers lespai demmagatzematge disponible. Quan un usuari vol crear un arxiu, el sistema ha dassignar-li un espai perqu pugui emmagatzemar la seva informaci. Aquest espai lobtindr a partir de lespai lliure disponible. Tamb cal considerar que arribar un determinat moment en qu lusuari deixar de necessitar un fitxer i leliminar, i aleshores el sistema haur dincorporar aquest nou espai lliure al total disponible. Aquesta gesti de lespai demmagatzematge la fa el sistema de fitxers i t com a objectius: a) Control de lespai disponible. Normalment el control es far per cada dispositiu de manera separada i el sistema mantindr una llista de lespai lliure que anir actualitzant a mesura que seliminin arxius o que sen formulin a partir de noves peticions. Una manera de portar el control consisteix a mantenir un mapa de bits per dispositiu, en qu cada un dels blocs del disc est representat per un bit el valor del qual indica el seu estat (0 lliure, 1 ocupat). Una altra soluci consisteix a apuntar, amb un apuntador de qu disposa el sistema, cap al primer bloc lliure del dispositiu i cap als que vagin quedant lliures posteriorment. La soluci ms estesa es fonamenta en el fet que lespai sassigna i sallibera generalment des de blocs consecutius i per aix es mant en cada disc una taula de grups de blocs lliures. Aquesta taula cont ladrea del primer bloc de cada grup i el nombre de blocs que el formen.

Sistemes operatius

104

El sistema operatiu

b) Directori del dispositiu. El sistema mant en cada disc un espai reservat on guarda informaci relativa als arxius existents i lespai lliure. Aquest espai reservat rep el nom de directori, que es crear cada vegada que sexecuti el procs de formatar. Lestructura daquest directori la defineix cada sistema operatiu.

Formatar s el procs consistent en la creaci de les pistes i sectors on se situar la informaci.

Per regla general, un directori o taula de continguts consta duna entrada per a cada arxiu existent en el disc i una altra sobre lespai disponible. En les entrades darxiu el sistema registra la informaci necessria per a la gesti (nom de larxiu, tipus darxiu, localitzaci en el disc, grandria, protecci, permisos, compatabilitat, data de creaci, propietari, comptadors dutilitzaci, etc.).

La forma en qu aquestes entrades estan organitzades en el directori condicionar la velocitat daccs a la informaci. Laccs a un fitxer requereix com a primer pas localitzar-lo i aquesta localitzaci ser ms rpida si les entrades al directori estan ordenades alfabticament. Alguns sistemes, per augmentar la velocitat daccs exigeixen que el directori estigui sempre en la mateixa adrea del disc. Daltres permeten definir la situaci mitjanant programes dutilitat de tal manera que la seva posici queda en un bloc fixat. Dintre del directori del dispositiu, el sistema operatiu destina un cert nombre de sectors per contenir dades bsiques didentificaci de cada fitxer.
Sistema de gesti de directoris d'Unix En el sistema Unix, es coneix com a node-i el sistema de gesti dels directoris. Cont totes les dades, perqu els usuaris i programes puguin obrir, llegir, escriure i tancar els fitxers. Tamb t definides totes les caracterstiques de protecci del fitxer, la data de creaci, l'ltima modificaci, la identificaci del propietari, etc. A ms, s on es desa el nom del fitxer, les dades i la seva posici en disc.

c) Assignaci de lespai demmagatzematge. El sistema operatiu s el responsable de plasmar en els discos els arxius que creen els usuaris subministrant lespai necessari. Quan el sistema rep una petici per crear un fitxer de n bits, el sistema ha de comprovar si hi ha espai lliure disponible i a continuaci optar per alguna de les estratgies segents: Assignar n bits consecutius de lespai en disc. El sistema colloca cada arxiu en un grup de blocs consecutius del disc. Cada entrada del directori del disc cont, a ms del nom de larxiu i altres dades, ladrea del bloc inicial de larxiu i el nombre de blocs que ocupa. Emmagatzemar larxiu en trossos no consecutius. Cada arxiu s una llista enllaada de blocs del disc que poden estar en qualsevol adrea

Sistemes operatius

105

El sistema operatiu

del disc. En el directori, cada entrada de larxiu tindr, a ms del nom i altres dades, un apuntador al primer bloc de la cadena. A partir daquest primer bloc cada un dels segents cont un apuntador al qual segueix. Lassignaci indexada. Agrupa tots els apuntadors en un bloc dndex. Cada arxiu tindr el seu propi bloc dndex i la seva adrea quedar indicada en el directori del disc en crear larxiu. 2) Definir mtodes daccs. Definir la manera com lusuari pot accedir a la informaci emmagatzemada. ! 3) Protegir els arxius i garantir-ne la integritat. Garantir la integritat i privadesa de la informaci continguda. Com podem esperar, hi ha diferents criteris i tcniques per fer aquestes tasques i cada sistema ser dissenyat segons aquelles que responen millor a les seves necessitats i objectius.

!!
Podeu ampliar la informaci sobre la manera d'accedir a la informaci enmagatzemada en el subapartat "Mtodes d'accs als fitxers" d'aquesta unitat didctica.

3.2.4. Mtodes daccs als fitxers

!!
Una vegada creat un fitxer pot succeir que en un determinat moment necessitem accedir a la informaci del fitxer en un suport determinat. Ho podrem fer segons un esquema lgic seqencial o b quasi directe per mitj de part de la informaci continguda en larxiu. El sistema darxius del sistema operatiu defineix quines formes daccs lgic permet i quins mtodes daccs suporta.
Podeu ampliar la informaci sobre la integritat i confidencialitat dels arxius en el subapartat "Seguretat dels arxius" d'aquesta unitat didctica.

Un mtode daccs s un conjunt de rutines i taules que permeten accedir a la informaci dels arxius, segons un esquema lgic determinat.

Seguidament comentarem alguns mtodes daccs: Accs seqencial. Aquest mtode permet laccs als registres dun fitxer en un ordre preestablert des del primer fins a lltim i dun en un. Les rutines daquest mtode mantenen un apuntador al segent registre lgic al qual sha daccedir. Una operaci de lectura o escriptura llegeix o escriu en el registre i avana lapuntador al registre segent. El mtode implica que els registres lgics semmagatzemen segons lordre en qu shi accedir per tractar-los, s a dir, lordre lgic dels registres ha de coincidir amb lordre fsic. Lactualitzaci s complicada, ja que implica la recollocaci dels registres.

Sistemes operatius

106

El sistema operatiu

Accs directe. Aquest mtode permet laccs a qualsevol part de larxiu, s a dir, no s necessari passar per la informaci anterior per poder accedir a un registre determinat. Noms poden tenir aquest tipus daccs aquells suports que per la seva naturalesa ho permeten (discos magntics, etc.). Lusuari entn larxiu com un conjunt de registres individualitzats (numerats respecte a linici) als quals pot accedir en qualsevol ordre. Per fer-ho, davant de la petici dun registre determinat, el programari del mtode daccs calcula ladrea del bloc fsic que el cont i accedeix a la informaci directament. Aquest clcul s necessari, ja que lusuari utilitza adreces relatives del registre desconeixent la posici dels registres en el disc. Accs directe indexat. En aquest cas es construeix un ndex o taula de relacions de claus i els seus blocs fsics per a cada fitxer. La localitzaci dun registre es far accedint primerament a aquest ndex i a partir daqu sobtindr ladrea del bloc corresponent a la clau sollicitada.

3.2.5. Directoris darxius


Hi ha diferents tcniques que permeten la creaci dun arxiu en disc i la seva utilitzaci posterior segons mtodes daccs definits. Ara b, en els sistemes hi ha diferents arxius que el sistema darxius ha de controlar per poder atendre les peticions que sen facin (creaci, lectura, etc.). Per aix sutilitzen directoris que a la vegada sn arxius destructura especial els registres dels quals contenen la descripci dels arxius existents en el sistema. Mitjanant aquests directoris, el sistema podr localitzar rpidament un arxiu sollicitat (en quin volum est) i conixer-ne les caracterstiques.

Des del punt de vista lgic, un directori s una taula de smbols que indiquen els arxius existents.

Lestructura de la taula que constitueix un directori pot ser ms o menys complicada depenent dels sistemes operatius, per ha de permetre fer les operacions bsiques segents: ! Recerca. Aquesta operaci ha de permetre localitzar un fitxer si existeix. En alguns casos permet localitzar grups de fitxers amb caracterstiques comunes. Creaci. La creaci dun fitxer nou implica posar una nova entrada en el directori adequat. Eliminaci. Quan un fitxer ja no sigui necessari sha de poder eliminar per utilitzar lespai lliure. Tamb shaur deliminar en el directori.

Sistemes operatius

107

El sistema operatiu

Llista. Ha de permetre llistar els arxius dun directori, i tamb el contingut de lentrada dun arxiu en aquest directori. Seguidament analitzarem tres estructures de directoris: 1) Directoris d'un nivell. En sistemes petits n'hi ha prou de disposar d'un nic directori que contindr la descripci de tots els fitxers disponibles (vegeu en la figura 50 un esquema de directori d'un nivell). Un exemple d'aix s el directori de dispositius, on es desa la descripci de tots els fitxers existents en aquest dispositiu i de l'espai disponible. El directori d'un dispositiu est en una adrea predeterminada del disc (per maquinari o per programari) o b apuntant indirectament a un bloc fsic especfic de forma que es localitzi immediatament.
Figura 50. Esquema de directori dun nivell

2) Directoris de dos nivells. Consisteix a definir un directori per cada usuari on queden indicats els fitxers que li pertanyen (vegeu en la figura 51 un esquema de directori de dos nivells). Per la seva part, els diferents directoris de l'usuari sn controlats mitjanant un directori mestre del sistema. Per localitzar un arxiu el sistema el buscar en el directori del peticionari. Si es crea un fitxer, aquest es posa en el seu directori. De la mateixa manera, si s'elimina, l'acci afectar el que tingui el nom referenciat en aquest directori i no el d'altres usuaris.
Figura 51. Esquema de directori de dos nivells

3) Estructures multinivell (estructura jerrquica). Arbres de directoris. L'estructura anterior es pot considerar com una organitzaci en arbre de

Sistemes operatius

108

El sistema operatiu

dos nivells. Generalitzant-la, podem pensar en estructures en arbre de diferents nivells. Cada usuari podr crear subdirectoris en el seu directori i agrupar els arxius de la forma ms convenient. En general el directori mestre s'anomena directori arrel. Aquest sistema s avui dia molt utilitzat en els sistemes operatius en qu cada directori d'usuari cont entrades que apunten a fitxers o a subdirectoris que a la vegada apunten a fitxers o subdirectoris de nivell ms baix. En la figura 52 teniu un esquema de directori de multinivells. Qualsevol usuari, durant la seva sessi, t definit un directori actual que ser el punt de partida de qualsevol recerca que demani, i a ms podr canviar el directori.
Figura 52. Esquema de directori de multinivells

3.2.6. Seguretat dels arxius


La gesti de la seguretat dels arxius referent al seu contingut es pot enfocar des de dos aspectes: 1) Disponibilitat dels arxius. Lobjectiu fonamental s poder accedir a la informaci en el moment que es necessiti. Podem considerar dues tcniques: a) Una primera tcnica consisteix en la realitzaci peridica de cpies de seguretat (back-up) del contingut dels arxius, per tal que en cas que aquests es destrueixin es pugui recuperar la informaci a partir de les cpies. En alguns dels sistemes operatius actuals hi ha eines que permeten la realitzaci automtica daquestes cpies i tamb possibles recuperacions. b) Una altra tcnica s la utilitzaci de fitxers auxiliars on es registren totes les operacions que realitzen els usuaris sobre els fitxers. Aquests fitxers tenen lextensi log, per aix sels coneix pel nom de fitxers de registres o fitxers LOG, i poden ser manipulats per mitj dutilitats del sistema.

Sistemes operatius

109

El sistema operatiu

2) Privadesa dels fitxers. Protecci. El segon aspecte per a la seguretat dels arxius s controlar que usuaris no autoritzats accedeixin a la informaci continguda en els fitxers. El primer control consisteix en la identificaci de lusuari per mitj del nom de lusuari i duna paraula clau daccs. El sistema validar o no el binomi anterior consultant la taula de noms dusuaris i de claus i concedir o denegar laccs sollicitat. Normalment el fitxer de claus est encriptat. Una vegada que lusuari ja s en el sistema, noms podr accedir a determinats recursos i s aix com el sistema operatiu fa un nou nivell de control. En els sistemes tamb s necessari controlar ls de molts recursos, ja que el nombre dusuaris que hi poden accedir s molt elevat i aix implica lexistncia de persones dedicades a ladministraci (administrador) de la seguretat del sistema i a millorar leficincia de la protecci utilitzada. Per ajudar en aquesta tasca, els sistemes solen disposar darxius dincidncies en els quals queden especificades totes les accions succedes en el sistema (intents daccs illegal, altes i baixes de recursos nous, etc.).

L'encriptaci s una tcnica que permet que determinada informaci no sigui fcil de manipular.

3.3. La seguretat i la protecci


Levoluci dels ordinadors i de les comunicacions en les ltimes dcades ha fet ms accessible els sistemes informtics i ha incrementat els riscos relacionats amb la seguretat. La vulnerabilitat de les comunicacions de dades s un aspecte clau de la seguretat dels sistemes informtics; la importncia daquest s cada vegada ms gran per la proliferaci de les xarxes dordinadors. Cada vegada ms es demana un elevat nivell de confidencialitat de les dades administrades pels sistemes informtics. Com a exemples podem indicar: el correu personal, la transferncia de fons monetaris, el control del trfic aeri, el control dimplantaments mdics, etc., i que els sistemes han de funcionar ininterrompudament i sense problemes. ! La simple seguretat fsica resulta insuficient davant la possibilitat daccs mitjanant equips remots connectats.

El paper del sistema operatiu per a la seguretat El sistema operatiu com a administrador dels recursos del sistema compleix una funci molt important en la instrumentaci de la seguretat. No engloba, per, a tots els aspectes de la seguretat; ha de ser complementat amb mesures externes al sistema operatiu.

La tendncia actual s que els sistemes siguin ms assequibles i fcils dutilitzar, per la facilitat cap a lusuari pot implicar un augment de la vulnerabilitat. El nivell de seguretat a proporcionar depn del valor dels recursos que cal assegurar.

Sistemes operatius

110

El sistema operatiu

Shan didentificar les amenaces potencials, que poden tenir diferents interessos. Per tot aix cal establir: Uns requisits de seguretat. Els requisits de seguretat dun sistema donat defineixen el que significa la seguretat per a aquest sistema. Els requisits serveixen de base per determinar si el sistema implementat s segur: Sense una srie de requisits precisos t poc sentit qestionar la seguretat dun sistema. Si els requisits estan dbilment establerts no diuen molt sobre la veritable seguretat del sistema. Un tractament total de la seguretat. Un tractament total inclou aspectes de la seguretat de lordinador diferents als de la seguretat del sistema operatiu: La seguretat externa ha dassegurar la installaci informtica contra intrusos i desastres com incendis i inundacions: concedit laccs fsic al sistema operatiu, sha didentificar lusuari abans de permetre-li laccs als recursos: seguretat dinterfcie de lusuari. La seguretat interna tracta dels controls incorporats al maquinari i al sistema operatiu per assegurar la confiabilitat, loperatibilitat i la integritat dels programes i les dades.

3.3.1. Seguretat externa


En un sistema informtic tots els mecanismes de seguretat shan de complementar entre si, de tal manera que si una persona aconsegueix passar alguna de les proteccions sen trobi daltres que li dificultin laccs.

Tots els mecanismes dirigits a assegurar el sistema informtic sense que el sistema hi intervingui duna manera directa forma part del que sanomena seguretat externa.

La seguretat externa inclou: 1) La seguretat fsica. Engloba tots aquells mecanismes que impedeixen als agents fsics la destrucci de la informaci. Dentre els agents destructius podem indicar el foc, el fum, les inundacions, les descrregues elctriques, els camps magntics, laccs fsic de persones no autoritzades, etc. En la seguretat fsica sn importants els mecanismes de detecci (detectors de fum i de moviments, censors de calor, etc.) i els mecanismes

Sistemes operatius

111

El sistema operatiu

didentificaci fsica (les targetes didentificaci, els sistemes dempremtes digitals, la identificaci per mitj de la veu, etc. ). La seguretat fsica inclou: a) Protecci contra desastres. Consta delements de prevenci, de detecci i deliminaci que actuen contra incendis, fums, sobretensions, tallades del subministrament elctric, etc. Tamb s necessari controlar la temperatura i neteja del medi en el qual es troben els equips informtics, installant aire condicionat, terres falsos, ventilaci i, en definitiva, tot all que pot evitar qualsevol problema a la installaci. b) Protecci contra intrusos. Des del punt de vista fsic, s necessari establir mecanismes de control contra laccs fsic de les persones no autoritzades a les installacions. Dentre altres mesures, cal destacar-ne ls de portes de seguretat amb control per clau, identificaci de les persones per targetes daccs o per reconeixement de la veu, control de les empremtes digitals, etc. 2) La seguretat operacional o administrativa. Engloba els mecanismes ms usuals per impedir laccs lgic de persones fsiques al sistema. Laccs pot realitzar-se mitjanant un terminal del sistema o b des dun altre sistema per mitj duna xarxa de comunicacions a la qual estan connectats els dos sistemes. Consisteix en les diferents poltiques i procediments implementats per ladministraci de la installaci informtica. Lautoritzaci determina quin accs es permet i a qui. Els sistemes sofisticats dautentificaci dusuaris resulten molt difcils devitar per part dels intrusos. Hi ha els segents mecanismes de protecci: a) Protecci daccs. Es tracta dun mecanisme que controla lentrada o accs al sistema, de tal manera que permet la connexi quan lusuari ho sollicita i passa el control corresponent, i en canvi en refusa lintent en aquelles situacions en qu la identificaci de lusuari no s satisfactria. b) Criptografia. s un procs de transformaci que saplica a unes dades per amagar-ne el contingut. El procs de sotmetre la informaci per aconseguir que la informaci sigui secreta sanomena encriptaci o xifratge. Hi ha diferents algorismes per xifrar la informaci. !
Protecci d'accs per password Una manera de protegir l'accs al sistema informtic s identificant l'usuari mitjanant l'anomenat identificador de l'usuari, i una possible paraula d'accs (password). Aquest mecanisme es caracteritza pel procs de petici d'entrada a un sistema, la resposta a les preguntes d'identificaci (login i password), la contrastaci de les dades rebudes i la concessi de l'accs corresponent.

La criptografia s ls de la transformaci de dades per fer-les incomprensibles a tots, excepte als usuaris a qui van destinats.

Sistemes operatius

112

El sistema operatiu

Algunes aplicacions de la criptografia sn: els sistemes de clau pblica, les firmes digitals, etc. ! c) Seguretat funcional. Est relacionada amb el funcionament del sistema i amb la seguretat que la installaci vol tenir: Seguretat en la transmissi de dades. Compactaci de les dades (reducci dels espais en blanc, fiabilitat (bit paritat, codi de redundncia cclica (CRC), etc.). Sistemes tolerants a fallades. !
El codi de redundncia cclica (CRC) s una tecnologia utilitzada en el control d'errors en la transmissi de la informaci.

El codi de redundncia cclica (CRC)

3.3.2. Seguretat interna


Els mecanismes de seguretat externa es completen amb els de seguretat interna a fi daconseguir la mxima eficcia.

Tots els mecanismes dirigits a assegurar el sistema informtic on el mateix sistema controla aquests mecanismes formen la seguretat interna.

Tot seguit us mostrem una classificaci dels mecanismes de seguretat interna segons tres elements a protegir: 1) Seguretat del processador. Poden ser diversos: Estat protegit (mode sistema) o no protegit (mode usuari). Rellotge del maquinari per evitar el bloqueig del processador. 2) Seguretat de la memria. Es tracta de mecanismes encaminats a evitar que un usuari pugui accedir a la informaci d'un altre usuari sense autoritzaci. Podem indicar: Registres lmits o frontera. La memria virtual: la paginaci, la segmentaci, etc. 3) Seguretat en els arxius. Disponibilitat dels arxius: cpies de seguretat, arxius LOG. Privadesa dels arxius.

You might also like