Arquitectura de Computadors i Sistemes
Operatius II
Curs 2008-2009 (Quadrimestre de primavera)
A. Dilluns i dimarts de 9-10 am; divendres de 5-6 pm
B.
Envieu un
mail previament informant que vindreu i per a concretar el moment si escau.
Mètode d’avaluació
El mètode
d’avaluació aprovat per la Comissió docent és el següent:
Aquest quadrimestre l’implementació efectiva serà la següent:
Hi hauran dos parcials durant el curs.
Primer parcial: setmana del 13 d’abril, en horari de classe (fins a pipes
inclós)
Segon parcial: setmana del 18 de maig, en horari de classe (resta temari)
L'examen final (17 de juny de 2009) constarà de dos parts, corresponents
al primer parcial i resta de temari.
Part corresponent al primer parcial: 25% nota-parcial i 75% nota-final.
Els estudiants que tinguin d’aquest parcial una nota superior a 6, poden optar
per no fer la part del final i llavors la nota del parcial serà el 100% de la
nota de la primera part.
Part corresponent a la resta de temari: 25% nota-parcial i 75%
nota-final. Els estudiants que tinguin d’aquest parcial una nota superior a 6,
poden optar per no fer la part del final i llavors la nota del parcial sera el
100% de la nota de la segona part.
Els alumnes que fan un treball opcional i opten al punt adicional, han de
presentar via mail abans de divendres 3
d’abril a les 12 del migdia l'enunciat definitiu amb l'esquema
corresponent de crides a sistema que faran servir. Fora d'aquest termini, no es
considerarà el projecte.
El projecte definitiu s’haurà d'enviar via mail al tutor corresponent
dilluns 18 de maig de 2009 abans de les 15 h.
Les presentacions es faran l’ultima setmana de classe, en horari de
classe.
Temari
1. Introducció als Sistemes Operatius (2 hores)
1.1. Història
Des de les
primeres màquines sense SO fins els actuals sistemes multiprocés i multiusuari,
passant pels sistemes “batch” (de cues)
1.2. Parts
d’un Sistema Operatiu
§
Espai d’usuari i espai de sistema
§
Disseny monolític, per capes i per components:
micro-kernels i llibreries
§
Principals components del Sistema Operatiu:
gestió de l’execució, gestió de la memoria i gestió de l’entrada/sortida.
2. Intèrpret de comandes a UNIX (Shell) (3 hores)
2.1. Introducció
a UNIX
§
El sistema de fitxers.
§
L’interpret de comandes.
2.2. Comandes
bàsiques
§
Metacaràcters
§
Control de processos
§
Redirecció de l’entrada/sortida: filtres.
2.3. Programar
en llenguatge del Shell: scripts
§
Variables especials, locals i globals
§
Control de fluxe
§
Iteracions
3. Sistema de Fitxers (4 hores)
3.1.
Introducció als sistemes de fitxers
§
Tipus de fitxers i operacions.
§
Sistemes de fitxers
basats en FAT.
§
Sistemes de fitxers
basats en i-node.
3.2. Crides a
sistema
§
creat()/open()/close().
§
read()/write().
§
dup().
4. Processos (6 hores)
4.1. Introducció
§
Definicio de procés.
§
Espai d’adreces i
assignació de recursos
4.2.
Planificació i gestió de procesos
§
Estats d’un procés: creació, bloqueig i
destrucció
§
Concurrència i
paral.lelisme.
§
Canvi de contexte i
temps compartit
§
Polítiques de planificació: FIFO, round-robin,
prioritats.
4.3. Crides a
sistema
§
fork()
§
wait()/exit().
§
exec().
5. Comunicació entre processos: pipes (4 hores)
5.1. Introducció
§
Comunicació i sincronització entre processos
§
Pas de missatges i memòria compartida.
§
Pipes i rel.lació entre processos.
5.2. Crides a
sistema
§
pipe().
6. Gestió d’events: Signals (5 hores)
6.1. Introducció als events
§
Tipus d’events: hardware i software.
§
Programació d’events
§
Característiques
específiques del treball amb events: herència, reprogramació
6.2. Crides a
sistema
§
signal()/sigaction(), sigprocmask().
§
kill()/alarm()
§
pause()
7. Comunicació remota entre processos: Sockets (5 hores)
7.1. Introducció
§
El model client-servidor.
§
El model OSI i el protocol de comunicació TCP/IP
7.2. Sockets
§
Què és un socket.
§
Tipus de socket
7.3. Crides a
sistema
§
socket().
§
connect()/bind()/listen()
§
read()/write()
§
close()
8. Seguretat i protecció (3 hores)
8.1. Introducció
§
Què es un sistema segur.
§
Models de seguretat
8.2. Protecció
Bibliografía bàsica
· Operating
System Concepts. 7th Edition. A. Silberschatz, P.B. Galvin, G. Gagne. John
Wiley & Sons, Inc. 2.004 (Accés a material a
http://codex.cs.yale.edu/avi/os-book/).
·
UNIX y LINUX. Guía práctica. Sebastián Sánchez. Ed. Ra-Ma 1999.
· Linux System
Programming. Robert Love. O’Reilly, 2.007.
· The C
Programming Language. Brian W. Kernighan, Dennis M. Ritchie. 2nd Edition.
Prentice-Hall, 1998.
Bibliografía complementària
· Computer
Systems. A Programmer’s Perspective. Randal E. Bryant, David O’Hallaron. Pearson Educaction, 2.003.
·
The Practice of Programming. Brian W. Kernighan,
Rob Pike. 1st Edition. Prentice-Hall, 1999.