Projecte 2. Subprojecte 1 (I)

Part 1: Individual

Els Sistemes Operatius

El sistema operatiu és un programari principal, bàsic i imprescindible per a l’adequat funcionament d’un ordinador. Consisteix en un conjunt de programes i funcions que serveixen per gestionar el funcionament del maquinari i que donen serveis a la resta del programari, conformant un entorn integrat de treball per a l’usuari. El SO ofereix una interfície per a que l’usuari pugui controlar-lo i una sèrie d’aplicacions i utilitats amb què poder-lo gestionar.

Conceptes clau del projecte

Multiprogramació: Es tracta de la capacitat d’un sistema informàtic per a poder allotjar dos o més processos a la memòria principal i de que el processador pugui executar-los de forma concurrent.

Temps compartit: Es tracta del sistema en que, davant d’un conjunt de processos preparats per a ser executats, es duu a terme una planificació de l’ús de les CPU disponibles. Un cop feta, aparentment permet executar tots els processos a la vegada.

Multiusuari: És quan varis usuaris poden accedir i treballar simultàniament en el mateix sistema informàtic, fent el propi sistema distinció entre els usuaris. Comporta una gestió més complexa dels recursos del maquinari, però permet que diverses persones puguin treballar a la vegada.

Multiprocés: Quan el sistema informàtic té la capacitat d’executar varis processos de manera simultània. En aquest sentit, el SO assigna franges d’utilització del processador a cada procés per tal de simular una execució en paral·lel.

Multinucli: Es tracta d’un processador en el qual hi trobem conjuntament (normalment en un circuit integrat) dos o més microprocessadors independents que es combinen amb l’objectiu de millorar el rendiment, dur a terme un processament simultani de múltiples tasques de forma eficient, i reduir el consum d’energia.

Procés per lots (batch): Procés consistent en l’execució de programes sense haver-hi control o supervisió directa de l’usuari, per tant, sense interacció amb el mateix.

Procés paral·lel: El processament en paral·lel en un SO consisteix en que, al existir dos o més processos que competeixen per algun recurs, aquests es puguin executar a la vegada de forma paral·lela.

Processos tipus fil: Són els processos “lleugers” o subprocessos que es troben dins d’un procés, permetent que s’executin diverses tasques de forma simultània.

Kernel: El nucli o kernel del SO s’encarrega d’accedir al maquinari i comunicar-lo amb els processos que l’usuari duu a terme. En aquest sentit, el kernel sempre es troba carregat en la memòria, de tal manera que les seves funcions sempre s’executen: control de la memòria, els processos, els arxius i els dispositius.

Microkernel: També anomenat micronucli. Es tracta d’un tipus de sistemes en els que el nucli realitza les funcions més importants i la resta de funcionalitats es troben estructurades en mòduls, oferint una major seguretat que la dels sistemes monolítics però també una menor velocitat.

Nucli híbrid (o d’arquitectura mixta): En els sistemes amb nucli híbrid hi podem trobar una estructura modular, de forma semblant a la del microkernel. La diferència és que en la capa que s’executa en mode kernel, a més a més de les funcionalitats bàsiques, també en trobem d’auxiliars que permeten incrementar la velocitat.

Sistemes monolítics: En aquests sistemes tots els processos i programes es duen a terme en una mateixa capa, la del nucli o kernel, assolint una gran velocitat però també una molt baixa seguretat davant dels errors que puguin sorgir.

Sistemes operatius per mainframes: També anomenats macrocomputadors, i consisteixen en un sistema informàtic que disposa d’alta seguretat i disponibilitat, podent dur a terme processaments de gran volum d’informació a gran velocitat. Normalment són utilitzats en l’àmbit dels negocis, per a les bases de dades comercials, servidors de transaccions i aplicacions, governs, grans empreses, etc.

Sistemes operatius per clusters: Es tracta d’un tipus de sistemes basats en la unió de varis servidors que treballen de forma conjunta (com si es tractés d’un de sol). En altres paraules, consistirien en un conjunt de múltiples ordinadors units mitjançant una xarxa d’alta velocitat, oferint d’aquesta forma un alt rendiment, disponibilitat de la informació, equilibri en la càrrega de dades a processar i la capacitat d’escalabilitat.

Sistemes operatius per xarxa: Es tracta dels sistemes que mantenen dues o més computadores connectades (en xarxa) a partir d’algun mitjà de comunicació, amb l’objectiu de poder compartir la informació i els recursos diversos del sistema.

Sistemes operatius distribuïts: Són SO que permeten la distribució dels processos i tasques a realitzar entre un conjunt de processadors, que poden trobar-se en un sol equip o en diversos. En aquest sentit, podem trobar dos tipus: els fortament acoblats (els processadors comparteixen la memòria i un rellotge global, amb un temps d’accés similar), i els feblement acoblats (processadors no comparteixen ni la memòria ni el rellotge, i cadascun té la seva pròpia memòria local).

Evolució històrica dels SO

En el següent enllaç podreu trobar el Timeline que hem elaborat sobre l’evolució dels sistemes operatius:

https://bit.ly/2O0tcnK

Què entenem quan parlem d’arquitectura d’un sistema operatiu?

Un sistema operatiu es considera clàssicament estructurat en tres capes:

  • Nucli o kernel: Es tracta de la part del sistema operatiu dedicada a comunicar-se directament amb el maquinari de la màquina. Es diu que és programari de baix nivell ja que el tipus d’operacions que es realitzen són instruccions senzilles als dispositius. La seva funció és la de controlar el maquinari disponible i les operacions bàsiques de duu a terme el SO. Per tant, s’encarrega de gestionar els processos, la memòria i controlar, com diem, els components del maquinari.
  • Serveis: Serveix de capa intermèdia entre el programari de baix nivell i el d’alt. Ofereix una sèrie d’operacions a les capes més altes per a la gestió de recursos en l’equip, però amb instruccions més complexes i sofisticades que equivalen a moltes petites operacions sobre el maquinari. Aquí hi hauria la gestió de memòria, la de processos o la possibilitat de comunicar-se amb els dispositius.
  • Interfície d’usuari o shell: És la part que l’usuari tracta directament. Seria el conjunt d’operacions que ens permet utilitzar directament el sistema operatiu, amb les seves icones, finestres i menús. Aquí es fa ús dels serveis.

Els diferents programes que utilitza l’usuari se situarien per sobre dels serveis, fent ús d’ells. No obstant això, hi ha molts que interactuen amb la interfície, i tots s’obren a través de la mateixa. Un sistema operatiu és la capa entre el maquinari i el programari, donant lloc al model de capes estàndard:

SOModelCapes

Així, entre les funcions del SO trobaríem:

  • Gestionar els dispositius interns i externs mitjançant els seus respectius controladors (coneguts com a drivers).
  • Gestionar els processos i subprocessos en execució.
  • Controlar i administrar la comunicació entre processos.
  • Gestionar la memòria.
  • Gestionar els sistemes d’arxius.
  • Proveir de formes de comunicació entre l’usuari i el sistema, mitjançant l’ús d’elements visuals, icones, finestres, botons, etc., en conjunt, oferir una interfície d’usuari.

Què és el nucli d’un sistema operatiu?

El nucli o kernel d’un SO controla el maquinari i les operacions bàsiques que realitza el sistema operatiu. Típicament s’encarrega de la gestió de processos, la gestió de memòria i el control de tots els elements del maquinari. Es diu que el programari del nucli s’executa en mode nucli, ja que els seus processos s’executen amb uns privilegis més alts que la resta, ja que necessiten accedir a tot el sistema. Una fallada en aquest programari arruïna tot el sistema informàtic, i és per aquest motiu que, com més petita sigui la quantitat de codi que s’executa en mode nucli, menors seran les possibilitats d’introduir errors fatals. Es distingeix entre nuclis monolítics (els tradicionals) i els micro nuclis (més moderns, pretenen incloure en el nucli només l’essencial).

En aquest sentit, el nucli és la part del SO que s’encarrega d’accedir al maquinari i comunicar aquest amb els processos de l’usuari. Quan un equip arrenca, passa per algunes de les funcions d’inicialització, com la comprovació de la memòria. A continuació, carrega el nucli i el control es passa a aquest. Seguidament, al nucli es posen en marxa tots els processos necessaris per comunicar-se amb l’usuari i la resta del medi ambient, com podria ser una xarxa.

Quins tipus de sistemes operatius hi ha i com es classifiquen.

Segons el nombre d’usuaris:

  • Monousuari
  • Multiusuari

Segons com executen els processos:

  • SO per lots (batch)
  • SO de temps real
  • SO de temps compartit
  • Monoprocés
  • Multiprocés/Multitasca

Segons com es distribueixen físicament els processadors:

  • SO distribuïts
  • SO de xarxa
  • SO paral·lels

Tipus de llicències de programari.

Les llicències de programari són una sèrie de normes que estableixen la forma de distribució, modificació (que pot estar autoritzada o no), i utilització del programari, així com dels sistemes operatius. En podem trobar de diferents tipus:

  • Programari comercial: És el que desenvolupen les empreses amb l’objectiu d’obtenir un benefici econòmic a partir de la venda als usuaris i la seva utilització del programari. En aquest sentit, la majoria del programari comercial és propietari, tot i que ambdós conceptes no són el mateix. També podem trobar programari comercial lliure, en el qual les còpies són gratuïtes però els desenvolupadors venen contractes de suport. Per últim, també hi ha programari no-comercial que no és lliure.
  • Programari propietari: Consisteix en el programari que no és lliure ni semilliure, ja que la seva utilització, redistribució i modificació estan prohibits, contenint restriccions que impedeixen fer-ho de forma lliure.
  • Programari lliure: És el programari que ve amb el permís per a utilitzar-lo sense condicions, copiar-lo i distribuir-lo, incloent la seva modificació (introducció de millores i distribució de les modificacions). Això es fa mitjançant la disponibilitat pública del codi font del programa.
  • Programari de codi obert: És un terme que s’utilitza en algunes ocasions per referir-se, en major o menor grau, al programari lliure, ja que permet estudiar i adaptar el codi.
  • Programari de domini públic: Es tracta del programari que no té copyright (drets de còpia o d’autor). Es tracta d’un tipus especial de programari lliure sense copyleft (hi ha permís de l’autor per a modificar-lo i redistribuir-lo, però també permet afegir restriccions addicionals) en el que pot ser que algunes còpies o versions modificades deixin de ser lliures.
  • Programari amb copyleft: És programari lliure que permet la seva distribució però no permet que els redistribuidors puguin afegir restriccions addicionals quan modifiquen i publiquen el programari, comportant que totes les còpies, siguin modificades o no, han de continuar sent programari lliure. Un exemple d’això seria el projecte GNU, ja que la gran majoria del seu programari és amb copyleft.
  • Programari lliure sense copyleft: L’autor permet la seva modificació i redistribució, i a més a més permet que es puguin afegir restriccions addicionals, fins al punt de poder deixar de ser programari lliure.
  • Programari cobert per la llicència GPL: Consisteix en el conjunt específic de termes de distribució establerts en la GNU GPL (llicència pública general) per a fer un copyleft a un programa. S’utilitza, com indica el nom, en la majoria del programari del projecte GNU.
  • Freeware: És un terme utilitzat habitualment per a referir-se als programes en els que es permet la redistribució però no la seva modificació (per tant, el codi font no es troba disponible). En aquest sentit, no es tracta de programari lliure, sinó simplement gratuït en la seva redistribució.
  • Shareware: És el programari que té permís de redistribució però que avisa de que la seva utilització continuada de la còpia emprada implica el pagament d’una llicència d’ús. Per tant, no es tracta de programari lliure ni de semilliure, ja que en la seva majoria no es disposa del codi font (per tant, no es pot modificar), a més a més de que l’usuari no disposa del permís de fer una còpia i instal·lar-la sense haver de pagar una llicència.

BIBLIOGRAFIA

Cuesta, Jordi. ASIX-M1. Implantació de sistemes operatius: UF1 Instal·lació, configuració i explotació del sistema informàtic. Curs 2014-15.

Arxiu de Moodle: Dalmau, Anton. Sistemes operatius i kernels.

Arxiu de Moodle: Evolució dels Sistemes Operatius.

https://elpuig.xeill.net/Members/vcarceler/c1/didactica/apuntes/ud3/na1

https://www.fib.upc.edu/retro-informatica/historia/so.html

https://www.preceden.com/timelines/54847-linea-del-tiempo-de-sistemas-operativos

http://leccion-informatica.es/funcionamiento-windows/ssoo-funciones-arquitectura/

 

Deixa un comentari