Tema 2. Sistemes operatius.

Introducció

El sistema operatiu és el programari bàsic de l'ordinador. Aquest programari gestiona tots els recursos de maquinari del sistema informàtic i proporciona la base per la creació i execució del programari d'aplicacions.

En la figura següent es mostra un esquema general del sistema computador:

La capa inferior correspon al maquinari del computador. Per sobre d’aquesta trobem el sistema operatiu. És molt difícil donar una definició exacta i acurada del terme sistema operatiu, el qual generalment es defineix a partir de les funcions
que desenvolupa. Bàsicament són les dues funcions que presentem tot seguit:

1) Gestió eficient dels recursos del sistema.
    El SO controla l’accés eficient als recursos del computador: la memòria principal, el temps de la unitat central de procés (UCP) i els dispositius. És a dir, el SO s’encarrega principalment de tasques de protecció i d’utilització eficient del sistema.
En general, en un sistema computador tenim molts programes que s’executen al mateix temps, són programes que poden pertànyer a un o a diversos usuaris, els quals competeixen pels diferents recursos del sistema. El sistema operatiu reparteix el temps d’UCP entre els diferents programes i aconsegueix una execució concurrent, protegeix l’accés a la memòria i coordina l’accés als dispositius compartits (discs, memòria) i als no compartits (impressora).
2) Presentació als usuaris d’una màquina virtual molt més senzilla d’utilitzar
   El sistema operatiu proporciona un entorn de treball a l’usuari i als programes d’aplicació que permet emprar el computador (executar programs) de manera més fàcil i intuïtiva. Des d’aquest punt de vista, el sistema operatiu proporciona a l’usuari una màquina virtual molt més fàcil d’entendre i utilitzar pel fet que amaga la complexitat del maquinari.

Lectura d’un fitxer, per exemple, si no existís el sistema operatiu a l’hora de llegir un fitxer l’usuari necessitaria comprendre i ocupar-se dels detalls tècnics del disc: engegar el motor, recalibrar els capçals, posicionar-los (la pista, la cara, el sector), llegir i apagar el motor. El sistema operatiu ens permet fer la lectura de dades d’un fitxer amb una operació molt més senzilla i intuïtiva: amb l’operació read(nom_fitxer,pos,reg) s’indica que es vol llegir del fitxer nom_fitxer el registre reg, que és a la posició pos.

Per sobre del nucli del sistema operatiu tenim més programari de sistema, el qual consta de l’intèrpret de comandes (shell), compiladors, editors i, en general, programes que faciliten la comunicació entre el sistema operatiu i l’usuari.
Finalment, a sobre del programari de sistema hi ha el programari d’aplicació. Una part d’aquest programari la fa servir l’usuari sobretot per a resoldre problemes específics. En aquest nivell trobem fulls de càlcul, processadors de text, jocs de vídeo, etc.

2.1 Evolució històrica

Per a entendre bé què és un sistema operatiu i perquè serveix és important analitzar-ne amb detall l’evolució. A continuació expliquem com han anat evolucionant els sistemes operatius des de les versions més primitives (monitors residents i sistemes operatius per lots), passant pels sistemes operatius multiprogramats i amb temps compartit, fins als sistemes operatius distribuïts i els sistemes operatius en xarxa.
No és fàcil separar el desenvolupament de l’arquitectura dels computadors de l’evolució dels sistemes operatius, essencialment perquè els sistemes operatius han evolucionat en funció dels canvis tecnològics intentant treure el màxim profit de les noves tecnologies. Aquestes, al seu torn, han donat solucions a molts problemes que han anat sorgint en els sistemes operatius

Els primers sistemes operatius es van denominar monolítics. La característica fonamental d'aquesta mena de sistemes és que eren un programari bàsic, pràcticament impossible de modificar un cop creat i instal·lat en un sistema informàtic. Cada cop que es volia introduir una modificació en el sistema, aquest s'havia  de reconfigurar completament. De fet potser era més simple redissenyar tot el sistema operatiu que no introduir-n'hi una modificació.
Per tal de veure com evolucionen els sistemes operatius cal fer esment a l'arquitectura dels ordinadors, és a dir l'evolució del maquinari.
Històricament s'han donat 4 generacions d'ordinadors, quedant definides cada una d'elles pels components de programari que s'hi han fet servir. Maquinari i sistemes operatius evolucionen de forma conjunta, de forma que si els ordinadors augmenten en prestacions els sistemes operatius poden realitzar operacions més complicades. Així mateix es pot donar que els requeriments de programari facin precisar un maquinari més potent.

Generacions del maquinari

  • Primera generació (1945-1955):

    Es feien servir les vàlvules de buit. Aquestes computadores, que no ordinadors, eren màquines programades en llenguatge màquina pur i dur (llenguatge de molt baix nivell). Eren d'un gran tamany, elevat consum d'energia i molt lentes. Les operacions es reduïen a simples càlculs matemàtics, com les actuals calculadores de butxaca però amb molt menys funcions. L'entrada de dades era talment les antigues centraletes, en que es connectaven clavilles en uns plafons enormes plens de forats. Posteriorment, a principis dels 50, per introduir les dades es feien servir targetes perforades. D'aquesta forma es podien introduir més dades i de forma més ràpida, amb la principal novetat de poder repetir el procés de càlcul sense haver d'introduir de nou totes les dades de forma manual.


  • Segona generació (1955-1965):

    Apareixen els transistors, que passen a formar part de l'arquitectura dels computadors, que passen a ser més petits, barats, de menor consum i desprenen menys calor. Les persones encarregades de fer servir aquesta mena de màquines es divideixen en diferents categories com ara: perforador de targetes, operador de consola, etc. D'aquesta generació podem destacar:

a) Apareixen dispositius d’entrada/sortida nous: els lectors de targetes perforades i les impressores.
b) També s’inventen dispositius d’emmagatzematge nous: les unitats de disc i les cintes magnètiques.
c) Es desenvolupa el primer programari, que inclou assembladors, llenguatges de programació (
Algol, Cobol, Fortran), carregadors, muntadors, llibreries de funcions matemàtiques i rutines estàndard d’entrada/sortida dels diferents dispositius que poden utilitzar els programes.

En aquesta generació apareix el que es coneix com processament per lots. Aquest procés consisteix en que les dades s'introdueixen en la computador no de forma manual mitjançant clivelles, o targetes perforades, sinó a través d'un altre petit computador o component de maquinari que prèviament ha estat carregat amb la informació per processar. La càrrega d'aquest maquinari encara era manual. Els processament per lots requeria de tres fases:

    1. Introducció de dades a processar en un component de maquinari. Aquest podia ser o no un suport magnètic.
    2. Es portava suport magnètic a la computadora principal que els processava i deixava els resultats en un altra suport, o en el mateix inicial.

    3. El suport amb els resultats es portava a una segona computadora per realitzar la generació de resultats.

    Podem considerar aquest suport magnètic com el primer perifèric per un computador.





  • Tercera generació (1965-1974):

    La tercera generació de computadors sorgeix a mitjan anys seixanta i tecnològicament es basa en els circuits integrats. Aquestes màquines noves són molt més petites que les de la segona generació, i també són molt més ràpides, la velocitat de procés es mesura en nanosegons.


    Un altre aspecte molt important d’aquesta nova generació és el fet que s’introdueixen mecanismes nous: interrupcions, protecció, cerca d’una concurrència màxima d’operació, etc. Paral·lelament es desenvolupen el maquinari i el programari, que van donar lloc als elements següents:

    • Perifèrics més efectius i ràpids.
    • Terminals remots (amb els quals es pot accedir a bancs de dades, actualitzar comptes corrents, etc.).
    • Programaris de base adaptats a l’usuari que es caracteritzaven per l’elaboració de llenguatges universals, pensats perquè poguessin ser utilitzats per diferents computadors amb característiques maquinari molt diverses. S’estandarditzen els llenguatges d’alt nivell ja existents (Fortran, Algol, Cobol, PL/1) i n’apareixen d’altres, com el Basic i el Pascal.

    Una de les tècniques més innovadores d’aquesta generació és la multiprogramació, que permet encavalcar l’execució de diversos programes.

    Amb l’aparició de computadors més petits i fiables gràcies a les noves tecnologies i a la possibilitat d’incrementar la producció de computadors, els costos de fabricació s’abarateixen, i així neix un sector informàtic comercial molt important. Els computadors es posen a l’abast d’empreses mitjanament grans i comença l’ús comercial de la informàtica.
    En el processament de dades comercials el temps d’espera per raó d’operacions d’entrada/sortida pot suposar el 90% del temps total d’execució. Es fa necessari, doncs, introduir millores per a aconseguir reduir el temps de resposta d’aquestes operacions. La solució del problema serà la introducció de la programació concurrent.

    Durant l’execució d’un programa, generalment podem distingir entre fases de càlcul intensiu i fases en què s’efectuen operacions d’entrada/sortida de manera intensiva. Això s’il·lustra a la figura següent, on les fases de càlcul intensiu s’indiquen mitjançant rectangles grisos i les d’entrada/sortida amb rectangles blancs. L’execució seqüencial de dos programes es mostra en el punt a. Per a simplificar-ho, suposarem que els programes tenen un comportament idèntic.
    Tal com es pot deduir de la figura de la pàgina següent, durant l’execució seqüencial dels dos programes se suposa que o bé la CPU o bé els dispositius estan inactius en algun moment, fins i tot quan el flux de treballs que esperen per a ser executats no és buit. Una manera de solucionar aquest problema és assignar alguna altra tasca a la UCP o als dispositius d’entrada/sortida quan, per algun motiu, estiguin inactius. Si és possible executar els programes de manera concurrent, aquests poden proporcionar feina tant a la UCP com als dispositius en qualsevol instant durant l’execució dels dos programes.
    En el punt b de la figura següent es mostra un possible escenari de l’execució concurrent dels dos programes. El processador comença executant el primer procés, el procés A, i quan aquest porta a terme una operació d’entrada/sortida, el processador, en lloc de quedar-se inactiu, passa a executar el segon procés, el procés B, que se suposa que es troba a memòria esperant per a ser executat. Quan aquest segon procés s’acaba o bé fa una operació d’entrada/sortida, el processador executa el primer procés A. El procés continua alternant l’execució dels dos processos fins que finalitzen tots dos.


    Com es pot veure en l’esquema de la figura anterior, amb l’execució concurrent, o multiprogramada, es pot incrementar considerablement el rendiment del computador: el temps d’execució dels dos programes queda reduït de 10 unitats en l’execució seqüencial a 6 unitats en l’execució concurrent, i la utilització del sistema en aquest segon cas és d’un cent per cent. L’exemple que hem presentat, encara que és molt representatiu no és real, ja que generalment la distribució de les fases de càlcul i programació són més variables, de manera que no sempre s’aconsegueix que el processador i els dispositius estiguin actius.
    Per a augmentar la utilització dels recursos del sistema computador els sistemes multiprogramats permeten l’execució concurrent de més de dos programes, dels quals es diu que estan competint pels recursos del sistema. El nombre de programes que estan activament en competència pels recursos del sistema determina el grau de multiprogramació.
  • Quarta generació (1974-?):
Amb l’aparició de la integració a gran escala (LSI/VLSI) s’inicia l’era dels computadors personals (1974), als quals s’apliquen tots els mecanismes desenvolupats fins a aquest moment (tant de maquinari com de programari). Segurament l’aportació més important d’aquesta nova generació són les xarxes de computadors (Internet i Intranet).


  • Els sistemes en xarxa o els distribuïts han de desenvolupar gestors de comunicació eficients.
  • Els sistemes multiprogramats/multiusuari s’han de centrar a aconseguir temps de resposta acceptables.
  • Els sistemes en temps real interessa que siguin com més senzills millor per a poder processar dades de l’exterior tan ràpid com sigui possible.
En la taula següent presentem un recull de les característiques més destacades de cada generació de computadors:





2.2 Tipus de sistemes operatius. Formes d'explotació

Les formes d'explotació d'un sistema operatiu responen a la forma en que l'usuari fa servir els recursos de maquinari i programari que composen el sistema informàtic. Explotar un sistema operatiu és fer-lo servir. En aquest punt veurem quants usuaris poden fer servir un mateix ordinador o sistema informàtic, de quina forma, quants processos es poden executar a l'hora, temps de resposta, etc.
Si parlam se sistemes operatius monousuari (SOMO), únicament s'executa un programa, per tant la qüestió a priori no té major importància. Si fem feina però amb sistemes operatius multiusuari (SOMU), en aquest cas podem estar executat molts programes a l'hora. En aquest darrer cas el processador no pot executar dues instruccions a l'hora, sols pot atendre les peticions d'un sol procés a la vegada. Així s'aniran destinant cicles de CPU seqüencialment a cada procés, per tal que tots ells tinguin la mateixa prioritat d'execució.
En el cas de SOMU, no tots els programes que s'han llançat estan en la mateixa fase d'execució. El normal és que hi hagi un procés en execució, un altre en espera, tot en funció de les necessitats de maquinari, progrmari i de la necessitat de l'usuari en aquell momen en concret.
Per tant cal tenir en compte els següents punts per classificar els diferents modes d'explotació:
  • Número d'usuaris que poden fer servir el sistema.
  • Número de processos que el sistema pot realitzar a l'hora: un o varis.
  • Número de processadors amb que compti el sistema.
  • Temps de resposta del sistema.
De forma general un sistema operatiu es pot explotar de dues formes:
  • Processament per lots: es van introduir en la segona generació d'ordinadors. El desenvolupament era el següent:
    • Carregam el suport d'emmagatzemament extern amb les dades a processar.
    • Introduïm les dades en l'ordinador.
    • Es processa la informació.
    • Els resultat es traspassen a un suport d'emmagatzemament extern, o bé a un suport per a la seva visualització, com ara una impressora per exemple.
El tractament de la informació travessa doncs per diferents fases -càrrega, processament, recollida,..- amb la possibilitat de produir-se errades en alguna de les mateixes, i per tant haver d'interrompre el procés si alguna de les fases no acaba amb èxit.
Tan el programa que s'encarrega d'emmagatzemar les dades, com el de processar la informació com el de visualitzar les dades, són sistemes operatius, així s'aconsegueix que la única tasca que ha de fer el processador sigui processar la informació. Així mateix podem considerar que no hi ha tres sistemes operatius diferents, sinó un dividit en tres blocs.
El processament per lots també es coneix com a mode batch i en els sistemes operatius actuals sol anar destinat a processar grans dades d'informació o a realitzar tasques de manteniment, com ara còpies de seguretat. Aquesta mena de programes solen venir especificats mitjançant un guió o script en que indicam que volem executar i els recursos que cal reservar. Aquesta mena de tasques solen fer-se a la nit, o en moments en que el número d'usuaris que accedeixen al sistema són mínim.
  • Processament en temps real (interactiu): en aquest cas és l'usuari qui introdueix les dades en l'ordinador, i és qui sol llançar els programes per executar les dades introduïdes, i finalment és també l'usuari qui recull la informació processada. Tot en un mateix sistema i en un temps relativament curt.
El processament en temps real és un mode d'explotació en que la resposta s'obté a l'instant, sols cal esperar el tems que es triga en introduir la informació, el temps de processament i el poc que es triga en visualitzar o imprimir la informació.
Un cop hem vist les dues principals formes d'explotació d'un sistema operatiu, anem a fer una classificació dels mateixos:
  • Segons el número d'usuaris: fent referència al número d'usuaris que poden fer servir els recursos del sistema simultàniament.
    • Monousuari: quan un sol usuari treballa en un ordinador. En aquest sistema tots els dispositius de maquinari es troben a disposició d'aquest usuari i no poden ser utilitzats per cap altre fins que aquest no acabi la seva sessió. Els sistemes operatius monousuari són: DOS, IBM-DOS, DR-DOS, MS-DOS  i les versions 3.0, 3.1,3.11,95,98,Me, NT 4.0 Workstation, 200 Professional, XP home i XP professional de la família Windows.
    • Multiusuari: quan diversos usuaris poden fer servir els recursos de l'ordinador de forma simultània. Poden compartir sobretot els dispositius externs d'emmagatzemament i els perifèrics de sortida, fonamentalment impressores. També poden accedir a una mateixa base de dades instal·lada en l'ordinador principal, etc.
Bàsicament el usuaris poden accedir a l'ordinador principal de dues formes:  mitjançant terminals, teclat i monitor, o a través d'ordinadors client connectats a l'ordinador servidor mitjançant el maquinari necessari.
Exemples de sistemes operatius multiusuari són UNIX, Novell, Windows NT 4.0 Server, Windows 2000 server, VMS (Digital), MVS (per grans equips de IBM), 0S/400 (del IBM AS/400), GNU/Linux, etc.
En aquesta mena de sistemes operatius diversos usuaris poden fer us del mateix ordinador, podran realitzar o no les mateixes tasques i configurar l'ordinador perquè cada usuari el faci servir de forma diferent.
  • Segons el número de processos: aquesta classificació es fa atenent al número de programes que l'ordinador o sistema informàtic pot executar de forma simultània. Per fer aquesta classificació partirem de la base que un ordinador o sistema informàtic disposa d'un únic processador, que únicament pot atendre una tasca a l'hora, és a dir, sols pot atendre un procés en cada instant. Per això hi ha que matitzar la següent classificació, i en concret el terme simultàniament.
Així podrem classificar els sistemes operatius segons els número de programes o processos que executen de la següent forma:
  • Monoprogramació o monotasca: en aquest cas el sistema sols pot executar un programa o procés cada cop. D'aquesta forma els recursos del sistema estaran dedicats al programa fins que aquest finalitzi la seva execució. El DOS o el Windows 9X son sistemes operatius clarament monotasca, ja que a més de no sabre fer servir més d'un microprocessador, el maquinari que es fa servir durant l'execució d'un programa està exclusivament a disposició d'aquest programa i de cap altre.
  • Multiprogramació o multitasca: aquest tipus de sistemes operatius poden executar diversos programes o processos a l'hora. Aquesta circumstància sols es donarà en aquells casos en que l'ordinador o sistema informàtic disposi amb més d'un micropocessador. Si el sistema operatiu disposa d'un sol microprocessador, encara que es catalogui com a multitasca, sols podrà realitzar un procés cada cop, i la CPU compartirà el temps d'ús del processador entre els diferents programes per executar
  • Segons el número de processadors del sistema:
    • Monoprocessador: en aquest cas l'ordinador disposa només d'un processador. Totes les tasques a portar a terme passen per ell. Un ordinador amb aquestes característiques pot ser monousuri o multiusuari, monotasca o multitasca, però el fet que un programa s'instal·li en un ordinador d'un sol processador sempre serà monotasca. El que passa que el fet que pugui executar diversos programes a l'hora li confereixen la categoria de multitasca, la realitat però és que sols podrà atendre un únic procés en un instant concret.
    • Multiprocessador: és el cas en que un ordinador té dos o més processadors. D'aquesta forma determinats sistemes operatius es poden aprofitar de les característiques d'aquesta mena de maquinari. Tots els sistemes operatius multitasca de l'actualitat són també multiprocessador. La forma de fer servir els diferents processos per part del sistema operatiu es pot fer de dues formes:
      • Multiprocés simètric (SMP): el sistema operatiu farà servir la potència dels processador d'igual forma.
      • Multiprocés asimètric (AMP): el sistema operatiu reparteix les tasques que està realitzant a cada processador de que disposa el sistema informàtic.
  • Segons el temps de resposta: aquesta classificació es fa tenint en compte el temps que triga l'usuari de l'ordinador a rebre els resultats després de llançar un programa a execució,
    • Temps real: la resposta és immediata, o quasi immediata, després de llançar un procés.
    • Temps compartit: cada procés fa servir cicles de CPU fins que finalitza.
En el següent quadre podem resumir els diferents sistemes operatius amb les respectives classificacions:
 Sistema operatiu
 Nº usuaris
 Nº processos
Nº processadors
 Temps de resposta
 DOS MonousuariMonotasca
 Monoprocés Temps real
 Windows 95,98,Me
  Monousuari Pseudomultitasca  Monoprocés  Temps real
 Windows NT 4.0 Workstation
  Monousuari Multitasca Multiprocés  Temps real
 Widows NT 4.0 Server
 Multiusuari  Multitasca  Multiprocés Temps compartit
 Windows 2000 professional
  Monousuari  Multitasca  Multiprocés  Temps real
 Windows 2000 server
  Multiusuari  Multitasca  Multiprocés Temps compartit
 Windows Xp professional
  Monousuari  Multitasca  Multiprocés  Temps real
 Windows 2003 server
  Multiusuari  Multitasca  Multiprocés  Temps compartit
 Unix  Multiusuari  Multitasca  Multiprocés  Temps compartit
 GNU/Linux  Multiusuari  Multitasca  Multiprocés  Temps compartit

2.3 Estructura dels sistemes operatius


Entre les funcions més importants del sistema operatiu podem remarcar les següents:
  • Gestionar de manera eficient els recursos de l'ordinador, oferint diferents serveis als processos en execució.
  • Oferir interficie a l'usuari, que pot ser de 3 tipus: comandes, menús i gràfica.
  • Permetre l'evolució del propi sistema operatiu sense interferir amb els serveis ja existents.
Per tal de poder dur aquestes tasques els sistema operatiu  s'haurà d'encarregar de gestionar els següents elements:
  • Gestió Memòria
La part del sistema operatiu que s'encarrega d'aquesta tasca és l'administrador de memòria. La seva funció és controlar quines parts de la memòria estan ocupades i quines estan lliures. D'aquesta manera serà capaç d'assignar memòria als processos nous i alliberar la memòria que ja no utilitzarà un procés a la seva finalització.
També és la seva funció gestionar l'intercanvi d'informació entre la memòria i el disc dur. Segons aquesta gestió els administradors de memòria es poden classificar en:
    • Els que són capaços de traslladar processos de memòria a disc i al revés.
    • Els que NO poden realitzar aquest trasllat de processos.
La gestió de memòria serà sencilla als sistemes operatius monoprocés. Però als sistemes multiprocés la tasca es complica, i encara més al cas dels sistemes multifils (multithread), ja que apareixen espais de memòria compartits on accedeixen diversos fils d'un mateix procés. El sistema operatiu ha de permetre que cada procés utilitzi el seu espai de memòria sense interferir als espais d'altres processos amb dades o informació consultada pels seus multiples fils d'execució.
Una primera forma d'assignar els espais de memòria es dividir-la en particions fixes. Per això el sistema té un planificador de memòria que tindrà en compte els requeriments de memòria de cada procés i la disponibilitat de particions. Una altra opció del planificador es que cada partició tingui associada una cua de processos. El major problema de les particions fixes és decidir la mida òptima. En cas de no seleccionar una mida apropiada es pot produir fragmentació de memòria: interna, en cas de no aprofitar la partició completa o externa, en cas que no hi hagi cap de les particions disponibles te la mida suficient per a cap dels processos de la cua del planificador.
En el cas de sistemes dinàmics amb diferents processos en execució, no és possible trobar la mida òptima de les particions. Per això apareixen sistemes ambparticions variables. El problema que apareix ara és mantenir el registre de les particions disponibles i ocupades i la seva mida.
  • Gestió processos i processador
Un procés és un programa en execució. Un programa no és un procés, es transformarà en un procés en concret al moment que es posi en execució. Els processos es caracteritzen per:
    • Per poder començar la serva execució, aquest ha de trobar-se completament a memòria i tenir assignats tots els recursos que necessiti.
    • Cada procés està protegit de la resta de processos, cap altre procés podrà escriure a les zones de memòria reservades pels altres processos.
    • Els processos tindran sempre un propietari, que pot ser l'usuari (es parlarà de processos que s'executen en mode usuari) o pot ser el propi sistema operatiu (en aquests casos es parlaràde processos que s'executen en mode privilegiat o kernel)
    • Cada procés tindrà una estructura de dades on es guardarà informació associada al procés, anomenada BCP (Bloc de Control de Procés).
    • Els processos poden comunicar-se, sincronitzar-se i col.laborar entre ells.
Tot el temps d'execució d'un procés, aquest competirà pels diferents recursos hardware del sistema amb tots els altres processos que s'executen a la vegada.
Els sistemes operatius disposen diferents serveis necessaris per a la gestió dels processos, per exemple per la seva creació, terminació, execució, canvi de prioritat,...
  • Gestió dels perifèrics
El sistema operatiu ha de permetre coordinar i sincronitzar tots els perifèrics connectats a l'ordinador. La CPU actua com un autèntic director d'orquestra entre tots els perifèrics.
Per tal d'interactuar amb el sistema, l'usuari diposa de 3 tipus d'interficies:
    • comandes: totes les ordres de l'usuari s'introduiran mitjançant cadenes de caràcters, i les respostes del sistema també seran cadenes de caràcters.
    • menús: a partir d'un sistema de menús, l'usuari podrà seleccionar i indicar les diferents ordres al sistema operatiu
    • interfície gràfica: a la majoria de sistemes actuals s'utilitzen aquests entorns per tal de donar les instruccions al sistema operatiu. La informació s'agrupa a les finestres i es fa imprescindible l'ús del ratolí per interactuar amb el sistema. A les finestres apareixen tota una sèrie d'objectes que serveixen per donar instruccions al sistema sense la necessitat, la majoria de vegades, d'utilitzar el teclat.
Quan es dissenya un sistema operatiu s'han de tenir en compte dos tipus de requeriments:
Requeriments de l'usuari: sistema fàcil d'eprendre, ràpid, segur i d'acord amb el seu ús.
Requeriments del programari: on s'englobens els aspectes de manteniment, formes d'operació, restricció d'ús, eficiència, tolerància a errors i flexibilitat.
Els sistemes operatius es poden dissenyar seguin dues estructures:

2.3.1 Estructura monolítica

És l'estructura que utilitzaven els primers sistemes operatius. Formats principalment per un únic programa que realitzava totes les funcions, separades en rutines que es cridaven entre elles.
Normalment eren sistemes fets a mida, molts ràpids i eficients en la seva execució. Però poc flexibles i de difícil manteniment.

2.3.2 Estructura jeràrquica

A mesura que evolucionaven les tecnologies i les necessitats dels usuaris, es fa necessari la organització de les parts i subparts del sistema operatiu. Això es fa estructurant el sistema en nivells.
Es divideix l'estructura del sistema en parts i aquestes s'agrupen en nivells, on es defineix l'interficie necessària de cada nivell.

 Nivell Nom   Gestió  Descripció
3 Usuari   Usuari  S'encarrega de controlar els processos a nivell d'usuari, mostra a l'usuari el procés que està executant
2  Supervisor   Processos  S'encarrega de realitzar la comunicació i sincronització entre els processos. Controla i coordina la gestió entrada/sortida dels processos cap als perifèrics
1  Executiu   Memòria  S'encarrega de l'administració i gestió de la memòria.
0  Nucli   CPU  S'encarrega de controlar la CPU. Realtiza tasques bàsiques del sistema, comunicació entre el hardware, planificació de processos.

Avantatges de l'estructura per capes:
  • les capes seran més sencilles que l'estructura complexa d'un sistema monolític
  • l'esctructura i lògica interna de cada capa és invisible a les demés capes.
  • les capes poden evolucionar de forma independent, només s'han de respectar les interficies
  • les capes poden tenir diferentes implementacions de diferents grups de programadors
  • cada capa es pot verificar de forma indendent abans de fer la verificació conjunta del sistema (tècnica molt utilitzada al desenvolupament d'aplicacions)


2.4 Serveis dels sistemes operatius

El sistema operatiu ofereix una gran varietat de serveis. Els podem agrupar en els dos blocs següents:     
  1. Les crides al sistema són els serveis més senzills, i permeten fer peticions directes al sistema operatiu. Les crides al sistema són la visió que té un programador dels serveis que pot oferir el sistema operatiu. Els llenguatges d’alt nivell en última instància fan una crida al sistema.
  2. A un nivell més pròxim a l’usuari, el programari de sistema ofereix un programa, l’anomenat intèrpret de comandes, gràcies al qual l’usuari pot dialogar amb el sistema operatiu sense necessitat d’escriure cap programa.
2.4.1. Les crides al sistema
Les crides al sistema ofereixen les funcions bàsiques per a poder utilitzar tots els recursos del sistema de manera correcta i controlada. Encara que els diferents sistemes operatius poden oferir diverses crides al sistema, en  general en tots podem trobar una semàntica equivalent.
Les crides al sistema es poden classificar en: gestió de processos, senyalització de processos, gestió de dispositius d’entrada/sortida, gestió directa dels recursos del sistema, gestió del sistema d’arxius, proteccions i funcions de temps.
2.4.2. L’intèrpret de comandes
L’intèrpret de comandes és un programa encarregat d’interpretar i comunicar al SO el que vol fer l’usuari del sistema. Aquest programa reconeix un conjunt limitat de comandes que, bàsicament, permeten a l’usuari accedir, modificar, crear i protegir la informació.
En general, els serveis (les comandes) que ofereix l’intèrpret de comandes estan bastant relacionats amb els grups de crides als sistemes que hem descrit.
Ċ
Guillem Mateu,
17 oct. 2008 4:37
Ċ
Guillem Mateu,
15 oct. 2008 0:02
Comments