Sistemes Operatius (SO)

Escolta l'àudio del tema:

1. Conceptes Fonamentals

Un sistema operatiu actua creant una "màquina estesa" sobre el maquinari, permetent compartir recursos, executar programes i dissenyar-los amb més facilitat.

És crucial diferenciar entre:

  • Nucli (Kernel): La part més interna i amb més privilegis.
  • Sistema Operatiu: El conjunt de programari base.
  • Distribucions: Afegeixen utilitats i interfícies gràfiques (ex. Ubuntu, Debian).

Model Clàssic de Tanenbaum

Un sistema informàtic es compon sempre de 4 nivells:

  1. 1 Maquinari (Hardware)
  2. 2 Sistema Operatiu
  3. 3 Aplicacions
  4. 4 Usuaris

Atenció: Pregunta de Test

Els següents elements NO formen part del sistema operatiu:

  • Llenguatges de programació
  • Compiladors
  • L'intèrpret de comandes (Shell)
  • Les biblioteques (Libraries)

2. Arquitectures del Nucli (Kernel)

Monolítica

Tots els mòduls estan entrellaçats sense protecció ni privilegis entre ells. Extremadament ràpida. S'utilitza en sistemes integrats, satèl·lits i el nucli de Linux.

Jeràrquica (Capes)

S'organitza en capes a mode de ceba, guanyant privilegis a mesura que s'accedeix a les capes més profundes.

Microkernel

També anomenat Client-Servidor. Relega només les funcions bàsiques al mode privilegiat i fa funcionar la resta en mode usuari. Pot resultar ineficient a la pràctica.

Híbrida

Utilitzada per Windows i macOS. Manté estructura de microkernel però executa processos relacionats en mode kernel per millorar el rendiment.

Hipervisor

Actua com un sistema operatiu que gestiona el maquinari físic per proporcionar un maquinari virtual on s'instal·len sistemes operatius convidats (Màquines Virtuals).

3. Evolució i Modes de Processament

Primera Generació

1945–1955

No existien els sistemes operatius. La dedicació del maquinari era exclusiva per a una sola tasca i un sol programador.

Segona Generació

1955–1965

Aparició del processament per lots (batch) amb l'objectiu de minimitzar els temps inactius de la màquina.

Tercera Generació

1965–1980

Impulsada pels circuits integrats i la carrera espacial. Arribada de la multiprogramació i el temps compartit (round-robin) per aprofitar els temps d'espera de les operacions d'E/S.

Sistemes en Temps Real

Actualitat

Ofereixen temps de resposta molt baixos davant interrupcions. S'empren en dispositius on la latència és crítica: telèfons mòbils, automòbils, satèl·lits.

4. Gestió de Memòria Principal

Perquè un procés pugui ser executat per la CPU, és imprescindible que estigui prèviament carregat a la memòria principal (RAM).

  • Unitat MMU Xip de maquinari encarregat de traduir les adreces lògiques a posicions físiques de la memòria.
  • Protecció Prevé que un procés envaeixi o modifiqui l'espai assignat a un altre procés.
  • Relocalització Utilitza registres base per situar i trobar el codi dinàmicament depenent d'on s'hagi carregat finalment.

5. Fragmentació i Assignació

Fragmentació Interna

Espai que sobra i es desaprofita dins d'una partició ja assignada a un programa.

Fragmentació Externa

El problema més greu: existeix suficient memòria lliure en total, però en no estar contigua, no permet la càrrega del programa.

Assignació Contigua

Algorismes clàssics de cerca d'espai lliure:

  • Primer ajust (First fit)
  • Millor ajust (Best fit)
  • Pitjor ajust (Worst fit)

6. Paginació i Memòria Virtual

Paginació Pura

Divideix el programa en "pàgines" de mida fixa i la memòria física en "marcs" de la mateixa grandària. Elimina la fragmentació externa.

  • Gairebé tota la fragmentació interna desapareix (només en queda un petit percentatge a la darrera pàgina).
  • Traducció: L'adreça lògica es divideix en (nombre de pàgina, desplaçament).
  • TLB (Translation Lookaside Buffer): Memòria associativa de la MMU que desa traduccions recents aprofitant el "principi de localitat".

Memòria Virtual (Paginació per Demanda)

Utilitza l'emmagatzematge secundari (disc dur) com a suport temporal. Carrega pàgines exclusivament quan es sol·liciten, evitant carregar el programa sencer.

Fallada de Pàgina (Page Fault)

Es produeix quan una dada requerida no resideix en aquell moment a la memòria principal.

Efecte Thrashing

Ocorre quan el S.O. inverteix més temps movent pàgines cap a i des del disc que executant instruccions útils del procés.

7. Algorismes de Reemplaçament

1. FIFO First-In, First-Out

Expulsa de la memòria la pàgina que fa més temps que es va carregar.

Clàssica de Test: L'Anomalia de Belady Comportament atípic del FIFO on, paradoxalment, augmentar la memòria física (afegir més marcs) comporta un increment en els errors de pàgina.

2. LRU Least Recently Used

L'estàndard modern. Substitueix la pàgina que fa més temps que no ha rebut cap accés o referència.

8. Segmentació

Consisteix a dividir els programes en unitats lògiques (mòduls, rutines) de mides completament variables.

  • Teòricament resol la fragmentació interna.
  • Problema: Provoca novament fragmentació externa i obliga a fer la pesada tasca de "compactar" memòria.
Cap S.O. modern utilitza segmentació pura. No obstant, el seu concepte de compartir codi ha derivat cap a les actuals llibreries d'enllaç dinàmic (DLLs).

Consell Estratègic d'Oposició (Grups A1 i A2)

És molt recomanable que els opositors del grup A1 es presentin obligatòriament als exàmens del grup A2. Aproximadament el 30% dels aprovats anuals a la plaça d'A2 resulten ser perfils de l'A1.

Assegurar la plaça d'A2 actua com una excel·lent xarxa de seguretat, habilitant la futura possibilitat de consolidar l'A1 per vies més assequibles, com ara el sistema de promoció interna al cap de dos anys.