Universitat de Girona

Programa de l'assignatura

Curs 2003-04

3105II0010 SISTEMES OPERATIUS


Objectius  

L’assignatura de Sistemes Operatius, és la primera d’un bloc de dos assignatures (Administració de Sistemes Operatius).

En els primers 5 mòduls es presentarà el que és un Sistema Operatiu (SO) des de l’òptica dels usuaris d’un sistema informàtic. Aquesta visió cobreix aspectes que van des de l’usuari no especialitzat d’un sistema informàtic, fins al tècnic encarregat de l’administració del sistema , passant pel desenvolupador d’aplicacions. Aquesta visió es centra, des de l’òptica de la seva utilització, en el coneixement dels principals serveis del sistema, i de les seves eines associades. Per aconseguir aquests objectius es combinaran les classes de teoria amb classes pràctiques basades en un sistema de la família UNIX (Estàndard POSIX) i WIN32.

Un cop vistes les funcionalitats que el Sistema Operatiu (SO) ofereix als usuaris, estem en condicions d'analitzar les diferents tècniques i polítiques que les fan possibles. Aquest coneixement ens ha de permetre aprofitar millor el sistema com a usuaris, i dona les bases per poder fer una correcte administració del SO. Així doncs, en aquesta assignatura es presentarà el que és un Sistema Operatiu (SO) des de una òptica interna. Es veuran les diferents possibilitats de gestió dels elements del SO tan hardware com software. Per aconseguir aquests objectius es combinaran les classes de teoria amb classes pràctiques, en les que es realitzaran parts bàsiques d'un hipotètic SO sobre un PC.

Els seus objectius bàsics són:

  1. Conèixer els serveis que ofereix un SO.
  2. Obtenir els coneixements necessaris per poder accedir als serveis del SO des de l’intèrpret de comandes i des dels llenguatges de programació.
  3. Conèixer el concepte de procés, i la seva manipulació.
  4. Conèixer els principis bàsics de gestió de memòria.
  5. Conèixer el concepte de dispositiu, i la seva manipulació.
  6. Conèixer el sistema de fitxers, i la seva manipulació.
  7. Conèixer els principis de comunicació i sincronització entre processos
  8. Conèixer les característiques del hardware sobre el que es construeixen els SO
  9. Tenir coneixements de programació del hardware a baix nivell
  10. Conèixer les principals tècniques i polítiques de gestió de processos.
  11. Conèixer les principals tècniques i polítiques de gestió de memòria.
  12. Conèixer les principals tècniques i polítiques d'E/S.
  13. Conèixer les possibles realitzacions del sistema de fitxers.
  14. Conèixer els principals paràmetres de rendiment del sistema en relació a les tècniques i polítiques anteriors.
 
Prerrequisits  

No hi ha prerrequisits obligatoris, però es recomana haver superat:

Metodologia i tecnologia de la programació

Estructura i tecnologia de computadors

 
Contingut (Programa)  

1. Introducció

1.1      Definició de Sistema Operatiu

1.2      Visió història dels Sistemes Operatius

1.2.1              Els primers sistemes computadors

1.2.2              Segona generació

1.2.3              Tercera generació

1.2.4              De la Quarta generació fins ara

1.3      Serveis que ofereix el sistema operatiu

1.3.1              Crides a Sistema

1.3.2              Intèrpret de Comandes

 

2. Sistema Operatiu : màquina virtual

2.1      Introducció

2.1.1              Concepte de Màquina Virtual

2.1.2              El Concepte de sessió de treball

2.1.3              L’intèrpret de comandes

2.1.4              El sistema operatiu des del punt de vista del programador

2.2      Fases d’execució d’un programa.

2.2.1              Concepte de procés

2.2.2              Llenguatge informàtic

2.2.3              Eines per la creació d'una aplicació informàtica

2.2.4              Procés de creació del programa executable

2.2.5              Compilació (assemblat)

2.2.6              Exemple de compilació

2.2.7              El muntador (enllaçat)

2.2.8              La Càrrega

2.2.9              L’Execució (depuració)

2.2.10            Llibreries de sistema

2.3      Espais d’adreces d’un procés: Lògic i físic

2.3.1              Espai lògic i espai físic

2.3.2              Càrrega a Memòria: Reubicació

2.4      Mecanismes d’entrada al sistema operatiu: Trap, excepcions i interrupcions

2.4.1              Rutines de servei del sistema operatiu

2.4.2              Mecanismes d’accés als serveis

2.4.3              Mecanismes bàsics de transferència

2.4.4              El nucli del sistema operatiu

 

3. Dispositius d’entrada/sortida, visió externa

3.1      Concepte de dispositiu d’entrada/sortida

3.2      Característiques dels dispositius

3.2.1              Característiques físiques

3.2.2              Característiques d’accés

3.2.3              Característiques de control

3.2.4              Conseqüències de la diversitat dels dispositius

3.3      Dispositius reals : físics i lògics

3.3.1              Dispositius físics

3.3.2              Dispositius lògics

3.4      Independència dels dispositius

3.4.1              Dispositius virtuals

3.4.2              Operacions uniformes

3.5      Gestió de dispositius a UNIX

3.5.1              Les pipes, un cas especial de dispositiu

3.5.2              Visió des de les crides al sistema

3.5.3              Visió des de l’intèrpret de comandes (shell)

 

4. Sistema de fitxers, visió externa

4.1      Definició

4.2      Concepte de fitxers

4.2.1              Definició

4.2.2              Propietats dels fitxers

4.2.3              Tipus de fitxers

4.3      Espai de noms

4.3.1              Espai de noms, funció de traducció

4.3.2              Estructura dels espais de noms

4.3.3              Operacions sobre l’espai de noms

4.4      Protecció

4.4.1              Concepte i objectius

4.4.2              Matriu d’accessos

4.4.3              Llistes de Control d’Accessos

4.4.4              Llistes de Capabilities (capacitats)

4.4.5              Millores i models combinats

4.5      El sistema de fitxers i la protecció a UNIX

4.5.1              El sistema de fitxers a UNIX

4.5.2              El mecanisme de protecció de UNIX

 

5. Gestió de processos, visió externa

5.1      Procés: un cop d'ull des de l’interior del sistema

5.1.1              Elements d’un procés i la seva representació

5.1.2              Execució concurrent

5.1.3              Estats d’un procés

5.2      Cicle de vida d’un procés

5.2.1              Creació i destrucció de processos

5.2.2              Herència entre processos

5.2.3              Sincronització en la creació i destrucció de processos

5.2.4              Canvis a l’entorn d’execució

5.3      Excepcions i senyals software.

5.4      Gestió de processos a UNIX

5.4.1              Creació i destrucció de Processos

5.4.2              Canvis de l’entorn que configura un procés

5.4.3              La jerarquia de processos a UNIX

5.4.4              Les senyals a UNIX

 

6. Concurrència i Comunicació

6.1      Introducció

6.2      Sincronització de Processos

6.2.1              Perquè és necessària la sincronització?

6.2.2              Secció crítica

6.3      Solucions software per l'exclusió mútua

6.4      Semàfors

6.4.1              Definició

6.4.2              Utilització dels semàfors

6.4.3              Característiques dels semàfors

6.4.4              Implementacions dels semàfors

6.5      Suport Hardware per la exclusió mútua

6.5.1              Inhibir les interrupcions

6.5.2              Test and Set

6.5.3              Swap

6.6      Exemple: Productors i Consumidors

6.7      Pas de missatges

6.7.1              Exclusió mútua amb missatges

6.8      Problemes de Coordinació entre processos: Deadlock

6.9      Eines de concurrència d'alt nivell

6.9.1              Regions crítiques

6.9.2              Regions crítiques condicionals

6.9.3              Monitors

6.10.   Bloqueig i aplaçament indefinit

6.10.1            Tipus de recursos

6.10.2            Abordament del problema de bloqueig

6.10.2.1                  Prevenció del bloqueig

6.10.2.2                  Evitació del bloqueig

6.10.2.3                  Detecció i recuperació.

 

7. Hardware: Entorn de treball

7.1      Estructura interna d’un sistema operatiu

7.1.1              Monolítics

7.1.2              Per capes

7.1.3              Per funcions

7.2      Nucli d’un sistema operatiu

7.3      Requisits i ajuts hardware

7.3.1              Processador, registres de llenguatge màquina

7.3.2              Controladors d’entrada/sortida

7.3.3              Accés directe a memòria (DMA)

7.3.4              El rellotge de sistema

7.3.5              Excepcions, interrupcions i traps

7.3.6              Modes d’execució

7.3.7              Registres de control

7.3.8              Unitat de gestió de memòria

7.3.9              Instruccions privilegiades

 

8. Gestió de Processos, visió interna

8.1      Processos i fils d'execució

8.1.1              Monoprogramació i multiprogramació

8.1.2              Concepte de procés

8.1.2.1                    Fils d'execució

8.1.3              Estats dels processos

8.1.4              Bloc de Control del Procés (PCB)

8.2      Canvis de context

8.3      Grau de multiprogramació 

8.4      Planificadors a curt, mig i llarg termini

8.4.1              Planificadors a llarg termini

8.4.2              Planificadors a curt termini

8.4.3              Planificadors a mig termini

8.4.4              Interacció entre els tres nivells de planificació

8.5      Algorismes de planificació del processador

8.5.1              Ratxes de CPU i d'Entrada/Sortida

8.5.2              Avaluació dels algorismes de planificació

8.5.3              Tipus d'algorismes de planificació a curt termini

8.5.4              Algorismes de planificació a curt termini

8.5.4.1                    Ordre d'arribada (First Come, First Served)

8.5.4.2                    Menor temps primer (Shortest Job First)

8.5.4.3                    Menors temps pendent (Shortest Remaing Time)

8.5.4.4                    Prioritari

8.5.4.5                    Repartiment de temps (Round Robin)

8.5.4.6                    Cues multinivell (Multiple-Level Queues)

8.5.4.6                    Cues multinivell realimentades (Multilevel Feedback Queues) 

8.5.5              Algorismes de planificació a llarg termini

8.5.6              Algorismes de planificació a mig termini

8.5.6              Planificació a computadors multiprocessadors

8.5.8              Planificació amb varis fils d'execució per procés

8.6      Entrada al Sistema Operatiu

8.6.1              Determinació de la direcció de la rutina de tractament del trap

8.6.1.1                    Temps d'edició

8.6.1.2                    Temps de compilació

8.6.1.3                    Temps de muntatge

8.6.1.4                    Temps d'execució (per hardware)

8.6.1.5                    Temps d'execució (combinant hardware i software)

8.6.2              Pas de paràmetres

8.6.3              Pila d'execució

8.6.4              Retorn del resultat

 

9. Gestió de memòria

9.1      Funcions de traducció d'adreces.

9.2      Models de gestió de memòria d'assignació contigua

9.2.1              Particions fixes

9.2.2              Particions variables

9.3      Models de gestió de memòria d'assignació no contigua

9.3.1              Segmentació

9.3.2              Paginació

9.4      Memòria Virtual

9.5      Gestió de memòria

9.5.1.             Gestors

9.5.2              Processos i memòria

9.5.3              Implementació de la memòria virtual

9.6      Estructures de dades per la implementació de la memòria virtual

9.6.1              Memòria virtual paginada

9.6.2              Optimització en l'accés a la taula de pàgines: TLB

9.7      Polítiques de gestió

9.7.1              Polítiques de reemplaç

9.7.2              Polítiques d'assignació

 

10. Gestió de les Entrada/Sortides, visió interna

10.1    Controlador (driver) d’un dispositiu

10.1.1            controladors hardware.

10.1.2            sincronització processador i dispositius d’entrada/sortida.

10.1.3            controladors software.

10.2    Buffering

10.3    Principis de disseny del software d’entrada/sortida

10.3.1            independència de dispositius.

10.3.2            tipus de gestió de les crides

10.3.3            compartició de dispositius.

10.4    Organització per capes

10.4.1            manegadors de rutines d’interrupcions d’entrada/sortida

10.4.2            procediments dependents: controladors de dispositius

10.4.3            procediments independents de dispositiu

10.4.4            programes a l’espai d’usuari.

10.5    Aspectes de la implementació del software d’entrada/sortida

10.5.1            dispositius virtuals

10.5.2            taula de traducció de dispositius virtuals

10.5.3            operacions uniformes

10.5.4            operacions independents d’entrada/sortida (doio)

10.6    Spooling

 

11. Gestió de Fitxers, visió interna

11.1    Visió estàtica del Sistema de Fitxers

11.1.1            Estructura de l’espai de disc

11.1.2            Estructura d’un Sistema de Fitxers

11.1.2.1                  L’espai lliure

11.1.2.2                  Els fitxers

11.1.2.3                  Els directoris

11.2    Visió dinàmica del Sistema de Fitxers

11.2.1            Operacions sobre els fitxers

11.2.1.1                  Accés directe / no compartit

11.2.1.2                  Accés directe / compartit

11.2.1.3                  Accés seqüencial / no compartit.

11.2.1.4                  Accés seqüencial / compartit

11.2.2            Operacions sobre els directoris

11.2.2.1                  Creació, modificació, consulta i destrucció

11.2.2.2                  Directori de treball

11.2.2.3                  Localització d’un fitxer

11.2.3            Operacions sobre els Sistemes de Fitxers

11.2.3.1                  Creació d’un Sistema de Fitxers

11.2.3.2                  Activació d’un Sistema de fitxers

11.3    Aspectes de rendiment i fiabilitat

11.3.1            Conceptes de rendiment

11.3.1.1                  L’interleeving, i l’skew

11.3.1.2                  La cache de disc

11.3.2            Conceptes de fiabilitat

11.3.2.1                  Els backups

11.3.2.2                  La redundància

 

10. Estat de l’art dels SO actuals

10.1    Conceptes generals

10.1.1            Model client/servidor

10.1.2            Processos multi-flux (multi thread)

10.2    SO de temps real

10.3    SO multiprocessador

10.3.1            Arquitectures Multiprocessador

10.3.2            Avantatges dels sistemes multiprocessador

10.3.3            Tipus de SO multiprocessador

10.4    SO en xarxa i SO distribuïts

10.4.1            Entorn distribuït

10.4.2            Definició i evolució dels SO sobre la xarxa

10.4.3            Tipus de SO distribuïts

 
Bibliografia  


Jové T.; Marzo J.L.; Royo, D. (1998) Introducció als Sistemes Operatius. Barcelona: Edicions de la Universitat Oberta de Catalunya.

Carretero; García; De Miguel; Pérez (2001). Sistemas Operativos, una visión aplicada. Mc GrawHill

Milenkovic, M. (1994). Sistemas Operativos, conceptos y diseño (2a edició ; trad. de A. Bautista). Madrid: Mc GrawHill

Tanenbaum, A. (1993). Sistemas Operativos Modernos (trad. de O. Palmas). Mèxic : Prentice Hall

Silberschatz, A.; Peterson, J. ; Galvin, P. (1991) Sistemas Operativos, Conceptos fundamentales (3a edició ; trad. de E. Morales). E.U.A. : Addison-Wesley Iberoamericana

 
Mètodes docents  

L’assignatura està organitzada en classes de:

                Teoria:                   7,5 crèdits (3 hores setmana)

                Problemes:            1,5 crèdits (1 hora quinzenal)

                Laboratori:            3 crèdits (2 hores quinzenals)

 

A les classes de problemes es realitzaran problemes programats de reforç a les classes de teoria.

 

Les pràctiques cobriran els aspectes de manipulació d’un SO des de les dues vessants del curs : Intèrpret de comandes i crides al SO. També s’encarregaran de reforçar els conceptes adquirits en el tema de concurrència i nucli d'un SO. Com a plataforma s’utilitzarà un SO de la família UNIX, i MS-DOS.

 
Tipus d'exàmens i avaluacions  

Nota d'examen:
primer pacial (>= 4.5) *0.5 + segon parcial (>=4.5) *0.5
 
 o
 
 Examen final
(els parcials alliberen materia amb 4,5)
Nota de pràctiques:
1a pràctica (>=4.5) * 0.25 +
2a pràctica (>=4.5) * 0.25 +
3a pràctica (>=4.5) * 0.25 +
4a pràctica (>=4.5) * 0.25
 

Nota Final:

Nota d'examen (>=4.5) * 0.75 + Nota pràctiques (>=4.5) * 0.25

 
Informació addicional  

WEB de l'assignatura : http://eia.udg.edu/so
 
Llengua de les classes  

Català