Professorat
Responsable
- Yolanda Becerra Fontal ( yolandab@ac.upc.edu )
Altres
- Adrià Armejach Sanosa ( adria.armejach@upc.edu )
- Amador Millán Vizuete ( amillan@ac.upc.edu )
- Carlos Garcia Calatrava ( carlos.garcia.calatrava@upc.edu )
- David Álvarez Robert ( david.alvarez.robert@upc.edu )
- Enric Morancho Llena ( enricm@ac.upc.edu )
- Hamid Latif Martinez ( hamid.latif@upc.edu )
- Javier Verdu Mula ( jverdu@ac.upc.edu )
- Jordi Fornes de Juan ( jfornes@ac.upc.edu )
- Jordi Guitart Fernandez ( jguitart@ac.upc.edu )
- Jordi Paillissé Vilanova ( jordi.paillisse@upc.edu )
- Jordi Torres Viñals ( torres@ac.upc.edu )
- José Luis Negueruela López ( jose.luis.negueruela@upc.edu )
- Julita Corbalan Gonzalez ( julita.corbalan@upc.edu )
- Pere Barlet Ros ( pbarlet@ac.upc.edu )
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències tècniques comunes
- CT2.3 - Dissenyar, desenvolupar, seleccionar i avaluar aplicacions, sistemes i serveis informàtics i, al mateix temps, assegurar-ne la fiabilitat, la seguretat i la qualitat en funció de principis ètics i de la legislació i la normativa vigents.
- CT3.6 - Demostrar coneixement de la dimensió ètica a l'empresa: la responsabilitat social i corporativa en general i, en particular, les responsabilitats civils i professionals de l'enginyer en informàtica.
- CT6.1 - Demostrar coneixement i tenir capacitat per a administrar i mantenir sistemes, serveis i aplicacions informàtiques.
- CT6.2 - Demostrar coneixement, comprensió i capacitat d'avaluar l'estructura i l'arquitectura dels computadors, i els components bàsics que els componen.
- CT6.3 - Demostrar coneixement de les característiques, funcionalitats i estructura dels Sistemes Operatius que en permeti un ús adequat, administració i disseny, així com la implementació d'aplicacions basades en els seus serveis.
- CT7.1 - Demostrar coneixement de les mètriques de qualitat i saber-les utilitzar.
- CT7.2 - Avaluar sistemes hardware/software en funció d'un criteri de qualitat determinat.
- CT7.3 - Determinar els factors que incideixen negativament en la seguretat i la fiabilitat d'un sistema hardware/software, i minimitzar-ne els efectes.
- CT8.4 - Elaborar el plec de condicions tècniques d'una instal·lació informàtica que compleixi els estàndards i la normativa vigent.
Actitud adequada davant el treball
- G8.1 - Tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Tenir una actitud positiva i receptiva respecte de la qualitat en el desenvolupament de la professió.
Objectius
-
Conèixer les principals funcions d'un S.O. i el perqué de la seva necessitat (abstracció/cirtualització del hardware, seguretat, eficiència)
Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3, -
Entendre com ofereix i gestiona el S.O. els seus serveis i funcionalitats internament mitjançant dades de representació i gestió dels recursos, algorismes i suport hardware
Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3, -
Tenir una visió general dels sistemes informàtics: conèixer les diferents interfícies i components que interactuen amb el S.O. (hardware, llibreries de sistema, llibreries de llenguatge+programes d'usuari)
Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3, -
Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer com influeixen aspectes bàsics de les diferents arquitectures i entorns que poden suportar els sistemes operatius
Competències relacionades: CT7.3, CT8.4, -
Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): Entendre l'element hardware que pretenem virtualitzar
Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3, -
Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer i ser capaç d'usar la funcionalitat bàsica que ofereix el sistema a l'usuari.
Competències relacionades: CT6.1, CT7.3, CT2.3, -
Per cada funcionalitat bàsica del sistema (gestió de procesos, memòria i e/s): conèixer el elements bàsics de disseny (tipus de dades, estructures de gestió de dades i algorismes de gestió) per oferir aquesta funcionalitat.
Competències relacionades: CT6.3, CT7.3, CT2.3, -
Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer la rel.lació bàsica amb l'arquitectura dels elements de disseny bàsics en S.O.
Competències relacionades: CT6.3, CT7.3, CT2.3, -
Per cada recurs bàsic que gestiona el S.O. (procesos, memòria virtual i e/s) conèixer les métriques bàsiques per avaluar un servei de sistema i ser capaç d'aplicar-les a nivell teòric.
Competències relacionades: CT7.1, CT7.2, -
Per cada recurs bàsic que gestiona el sistema (processos, memòria i e/s), conèixer i ser capaç d'utilitzar les eines bàsiques del sistema per analitzar una aplicació així com per monitoritzar l'estat del sistema per detectar possibles problemes.
Competències relacionades: CT6.1, CT6.3, CT7.3, CT2.3, -
Entendre les implicacions, desde el punt de vista de sistema i de usuari,de un sistema multi-usuari i paral.lel.
Competències relacionades: CT7.1, CT7.3, CT6.2, CT8.4, -
Ser capaç de participar amb actitud proactiva en el desenvolupament profesional, demostrant assistència, puntualitat i respecte
Competències relacionades: G8.1, -
Ser capaç de mostrar motivació per la qualitat i la millora continua
Competències relacionades: G8.1,
Continguts
-
Introducció als Sistemes Operatius
En aquest capítol es donarà una visió del que és un S.O. els recursos hardware que gestiona, quins son el serveis
que ofereix, funcionalitats etc. També s'introduiran els diferents tipus d'usuaris i aplicacions que interactuen amb el S.O. així com les diferents formes d'accedir. -
Gestió de processos
En aquest capítol es tractaran els següents punts: Concepte de procés. Contexte d'un procés. La vida d'un procés. Concepte de planificació de processos.. Mecanisme de canvi de context. Gestió d'events (signals). Concepte de flux. Concepte de concurrència. Problemes associats a la concurrència. Comunicació entre processos: memòria compartida i pas de missatges (només a nivell de concepte).. Serveis bàsics oferts pel sistema associats a processos i fluxes: crides a sistema i gestió de la eficiencia, seguretat entre usuaris, fiabilitat, etc. Idea/contexto: registros, pila, memoria (espacio de direcciones)/estados/eventos (signals) /usuario/variables de entorno .Representació interna de procesosen s en linux així com l'algorisme round robin de planificació a mode il.lustratiu. -
Gestió de memòria
En aquest capítol es tractaran els següents punts: Requeriments en quant a memòria d'un sistema multiprogramat de propósit general (espai d'adreces d'un procés i necessitat de la memoria virtual). Serveis bàsics de gestió de memòria oferts pel sistema: suport a la traducció d'adreces, protecció de processos, càrrega de processos, memòria dinàmica, gestió de la memòria virtual, etc. Estructuras y algoritmos para la gestión de la memoria virtual. -
Gestió de l'entrada/sortida
En aquest tema es tractaran els següents punts: Característiques i tipus de disposituis. Concepte d'Independencia de dispositivos.
Relació entre la gestió de entrada/sortida i la gestió de processos: operacions bloquejants. Tipus de dispositius lógics: pipes, consola, sockets i fitxers. Serveis bàsics i estructures de dades necessaries. Gestió de l'espai de noms. Diferents tipus de fitxers i serveis bàsics associats a fitxers. Organització interna a Linux : directoris, i-nodes. -
Gestió de fluxes d'execució
En aquest tema es tractaran els següents aspectes: necessitat de l'abstracció fluxe d'execució, definició i presentació de les estructures internes bàsiques. Utilització d'una interfície bàsica de fluxes d'execució.
Activitats
Activitat Acte avaluatiu
Desenvolupament del tema de Introducció als S.O
Durant aquesta activitat es donarà a l'alumne una visió general del que és un S.O., quines son les seves funcionalitats i serveis i quins son els principals components dels sistema que anirem desenvolupant durant el curs.Objectius: 1 2 3
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Familiarització amb l'entorn de treball
Durant aquesta activitat s'utilitzaran comandes bàsiques per treballar amb un entorn de treball Linux, especialment per treballar des de la línea de comandes però també entendre la relació amb un entorn gràfic. Es practicaran comandes per navegar pel sistema de fitxers, per manipular fitxers, etc.Objectius: 1 2 3 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Programació en C i desenvolupament de projectes
Durant aquesta activitat es treballarà la programació en C i es donaran algunes guies bàsiques per desenvolupar els petits projectes que faran els alumnes a les sessions de laboratori de forma que tinguin una estructura similar en quant a eines, organització de fitxers etc.Objectius: 1 2 3 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Desenvolupament dels conceptes de Teoria associats a Processos
Durant aquestes hores es practicaran els conceptes i serveis bàsics relacionats amb processos i fluxes. S'explicaran els conceptes relacionats amb la organització i gestió internes que fa el S.O. per oferir aquests serveis i funcionalitats. També es tractaran aspectes relacionats amb la eficiència dels sistemes, fiabilitat, protecció, etc.Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
8h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Serveis bàsics relacionats amb processos
Durant aquesta activitat es practicaran les crides a sistema bàsiques que podem trobar a un sistema Linux per crear un procés, canviar el seu executable, esperar el procés y finalitzar el procés. També practicarem comandes des d'un punt de vista d'administrador relacionades amb la monitorització de processos.Objectius: 6 7 10 11 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Serveis avançats de processos
Durant aquesta activitat introduirem la gestió d'events entre processos (signals) tant com a mecanisme de comunicació com a servei de gestió de processos avançat. Es treballaran aspectes relacionats amb la concurrència dels processos.Objectius: 4 5 6 7 10 11 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Desenvolupament dels conceptes associats a gestió de memòria
Durant aquestes hores es practicaran els conceptes bàsics relacionats amb la gestió de la memòria, es descriuran els serveis i funcionalitats que ofereix el sistema als usuaris (incloent-hi les optimitzacions que es fan típicament a nivell de llibreria) i es descriuran els mecanismes i algorismes de gestió interns del kernel per gestionar la memòria virtual.Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
4h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h
Serveis bàsics per gestionar memòria
Durant aquesta sesió de laboratori es practicarà amb serveis bàsics per gestionar la memòria dels processos i algunes comandes per monitoritzar l'estat dels procesosObjectius: 5 6 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Primer control avaluació continuada
Aquest control inclourà els temes d'Introducció i Processos. Aquest exàmen pot incloure tant preguntes teòriques com problemes.Objectius: 1 2 3 4 5 6 7 8 9
Setmana: 9 (Fora d'horari lectiu)
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Desenvolupament dels conceptes associats a la entrada /sortida de dades
Durant aquestes hores es s'explicaran els conceptes relacionats amb la gestió de la entrada/sortida de dades: tipus de dispositius, serveis i funcionalitats relacionats amb la entrada/sortida i gestió del sistema de la independència de dispositius.Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
6h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Serveis bàsics de gestió entrada / sortida
En aquesta sesió es practicarán serveis bàsics per gestionar la entrada/sortida de processos. Es faran exercicis per consolidar els conceptes relacionats amb la independència de dispositius.Objectius: 5 6 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Serveis avançats per gestionar la entrada/sortida
Durant aquesta sessió s'aprofundiran en serveis i comandes més complexes per gestionar la entrada/sortida de processos així com la relació amb altres serveis del sistema com per exemple la gestió d'events (signals)Objectius: 6 7 11 12 13 4 5
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Gestió d'Entrada/Sortida i comunicació de procesos: sessió de problemes
Durant aquesta sessió es fan exercicis rel.lacionats amb la gestió de la entrada/sortida de dades i la comunicació entre procesosObjectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Exercici pràctic sobre gestió de processos
Aquesta activitat consisteix a resoldre un enunciat del mateix estil i les mateixes condicions que els exàmens de l'assignaturaContinguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
5h
Exercici pràctic sobre gestió de l'entrada-sortida
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
7h
Gestió de memòria: sessió de problemes
En aquesta activitat resoldrem alguns exercicis sobre el tema de gestió de memòria. L'objectiu és consolidar el coneixement sobre algunes optimitzacions implementades pel sistema operatiu, entendre l¿organització de l¿espai d¿adreces de processos i com es pot modificar en temps d¿execució
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Gestió de fluxes d'execució
En aquesta activitat presentarem què aporta l'abstracció de flux d'execució, les estructures bàsiques que defineix el SO per a la gestió i una interfície bàsic per a la utilització.
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Gestió de fluxos d'execució: sessió de problemes
En aquesta activitat es resoldran exercicis relacionats amb la utilització de fluxos d'execució
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Serveis bàsics de gestió de fluxes d'execució
En aquesta activitat es programarà utilitzant una interfície bàsica de gestió de fluxos d'execució
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Metodologia docent
L'assignatura tindrà principalment dos tipus de classe: teoria i laboratoris. Les classes de teoria seran per explicar conceptes principalment genérics o aplicats al cas particular de Linux. Aquestes classes es faran amb el suport de transparencies. Les classes de laboratori seran setmanals i inclouran un treball previ a realitzar per l'alumne, uns exercicis per fer a classe de forma individual i unes preguntes que s'hauran d'entregar a final de classe. L'assistència com a mínim al 80% de les sessions de laboratori és condició necessària per a poder aprovar l'avaluació continuada de la assignatura. Encara que totes les sessions inclouran aquestes preguntes per entregar, no totes supossaran un acte avaluatiu, nomes aquelles que estiguin marcades com a tal. La resta serviran per fer el seguiment de l'alumne i per controlar la realitzacio del treball previ i l'actitud de l'alumne a classe. Especialment a les classes de laboratori es valoraran aspectes com la puntualitat de l'alumne i l'actitut positiva davant l'assignatura.Mètode d'avaluació
Avaluació de les Competències TècniquesLa nota de la competència tècnica es basa en dos components: nota avaluació continuada (EC) i nota avaluació no continuada (EF). La component EC només es tindrà en compte per als estudiants que acreditin un seguiment de l'assignatura: han assistit com a mínim al 80% de les sessions de laboratori i han fet el treball de les sessions. Entregar una feina no original (no feta per l'estudiant) es considera frau i implica una nota de 0 de la component EC.
Nota= max(EF, 0,6*EF+0,4*EC).
EC: 35% CT + 10% ST + 30% CL + 25% SL
- CT: resultant de 1 parcial al final del tema de processos que es fa fora d'hores de classe
- ST (seguiment teoria): petits tests sobre conceptes de teoria que es faran al final d'alguns dels temes
- CL: resultant de 1 exercici puntuable després de fer la sessió 4 de laboratori. Aquest exàmen es fa fora d'hores de classe
- SL (seguiment laboratori): avaluarà la feina feta en algunes sessions de laboratori.
EF: 50% Teoria+ 50% laboratori
- Prova puntuable que consta de dos parts: teoria i laboratori. Es fa a final de curs i avalúa tot el contingut del curs
Avaluació de la Competència Genèrica
Es valoraran els següents punts:
1) Actitud proactiva (rigor) en el desenvolupament professional.
* Assistència. Els estudiants hauran d'assistir a un 80% de les sessions de laboratori.
*Puntualitat. Els estudiants hauran d'arribar puntuals a classe, amb un marge de 10 minuts. Es penalitzarà als estudiants que reiteradament arribin tard.
*Respecte. Els estudiants hauran d'actuar amb respecte vers els companys i els professors.
- El professor serà l'encarregat de detectar i anotar els casos de manca de respecte, ja sigui vers ell mateix o vers els companys de l'estudiant. Si durant l'evolució de l'assignatura aquest casos no milloren s'obtindrà una avaluació negativa de la competència.
2) Actitud proactiva (motivació) per la qualitat i la millora contínua.
* Qualitat. Es valorarà la qualitat del codi lliurat tenint en compte, principalment: l'acompliment dels requeriments dels enunciats, la claredat del codi i l'organització del document.
* Motivació i Responsabilitat. A les sessions de laboratori es demanarà als estudiants un treball previ que hauran de realitzar necessàriament.
- El treball previ tindrà preguntes associades que ajudaran a identificar i penalitzar als estudiants que no realitzin correctament aquests treballs. Tanmateix es podrà avaluar molt positivament aquells estudiants que realitzin uns treballs excel.lents.
NOTA de la Competència:
La nota de la competència s'obtindrà a partir dels valors de les informacions obtingudes per: Assistència, Puntualitat, Respecte, Motivació, Qualitat i Responsabilitat.
Excepcions:
- La no assistència al 80% de les sessions de laboratori implica automàticament tenir una D a la nota de la competència
- Si un estudiant copia en les entregues de laboratori té automàticament una D a la nota de la competència
- Aquells alumnes que mostrin una clara falta de respecte i motivació com per exemple apuntar-se fora de plaç als exàmens tindran una D a la competència.
Bibliografia
Bàsic
-
Operating system concepts
- Silberschatz, A.; Galvin, P.B.; Gagne, G,
John Wiley & Sons,
2019.
ISBN: 9781119454083
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004148389706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The Linux Programming Interface
- Kerrisk, Michael,
No Starch Press,
2010.
ISBN: 1593272200
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003782599706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
The C programming language
- Kernighan, B.W.; Ritchie, D.M,
Prentice Hall,
1988.
ISBN: 0131103628
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000708719706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Operating systems: internals and design principles
- Stallings, W,
Pearson Education Limited,
2017.
ISBN: 9781292214306
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001576049706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Understanding the Linux kernel
- Bovet, D.P.; Cesati, M,
O'Reilly,
2005.
ISBN: 9780596005658
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003076469706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Guia de Bash shell de la assignatura ASO (en català) http://docencia.ac.upc.edu/FIB/grau/ASO/files/lab10-2q/aso-lab-bash-guide.pdf
- Portal web amb molts cursos online i per descarregar de programació en Ci preprocessador, http://www.elrincondelc.com/portal/index.php
- Pàgina on s'introdueixin normas per fer codis mes portables, llegibles etc. http://www.gnu.org/prep/standards/standards.html
- http://www.unixtutorial.org/commands/
Capacitats prèvies
L'estudiant ha de tenir les capacitats técniques que li otorguen les assignatures cursades previament a més de un nivell d'anglés técnic mínim com per llegir una documentació. En quant a capacitats técniques podriem resumir en:-En quant a estructura de computadores: Coneixement dels elements principals d'un ordenador, relacio d'aquests elements entre si, representació interna de dades i coneixements bàsics de llenguatge màquina.
-En quant a programació: Capacitat de fer programes desde cero que incloguin definició de tipus de dades, disseny d'un programa, més o menys complex, en diferents funcions ( que puguin estar en mes d'un fitxer) i fases de creació d'un executable.