PAC1 SOL SO 2019 2020 CAT PDF

Title PAC1 SOL SO 2019 2020 CAT
Author Dani Sierra
Course Sistemas Operativos
Institution Universitat Oberta de Catalunya
Pages 24
File Size 1021.2 KB
File Type PDF
Total Downloads 802
Total Views 874

Summary

Sistemes Operatius (11)PAC 1Dr. Léonard Janer i Dr. Pere Tuset-PeiróCurso 2019-Grau en Enginyeria de TelecomunicacióEstudis de Informàtica, Multimèdia i TelecomunicacióUniversitat Oberta de CatalunyaOctubre de 2019Presentació de la AssignaturaProfessors responsables Coordinador: Dr. Pere Tuset <p...


Description

Sistemes Operatius (11.510) PAC 1

Dr. Léonard Janer i Dr. Pere Tuset-Peiró Curso 2019-2020 Grau en Enginyeria de Telecomunicació Estudis de Informàtica, Multimèdia i Telecomunicació Universitat Oberta de Catalunya Octubre de 2019

Presentació de la Assignatura Professors responsables • Coordinador: Dr. Pere Tuset • Col·laborador: Dr. Léonard Janer

Presentació Aquesta PEC planteja un conjunt d’activitats amb l’objectiu que l’estudiant pugui assimilar els continguts teòrics i pràctics dels mòduls 1, 2 i 3 de la assignatura.

Competències Les competències específiques i transversals que se treballen en aquesta PAC són les que es descriuen a continuació: • Específiques: – Capacitat per analitzar un problema al nivell d’abstracció adequada a cada situació i aplicar les hablitats i coneixements adquirits per a poder-ho abordar i resoldre. • Transversals: – Capacitat per a la comunicació escrita en l’àmbit acadèmic i professional. – Capacitat de comunicació en llegua estrangera. – Capacitat per adaptar-se a les noves tecnologies i entorns. Pàgina 1 de 23

Universitat Oberta de Catalunya

Objectius Els objectius d’aquesta PAC són: • Repassar alguns dels conceptes dels mòduls 1, 2 i 3. • Tenir un primer contacte amb la programació de shells scripts.

Recursos Per poder desenvolupar de forma correcta aquesta PAC es disposa dels següents recursos: • Bàsics: – Materials de la assignatura disponibles al campus virtual (mòduls 1, 2 i 3). • Complementaris: – Distribució Ubuntu 18.04 LTS del sistema operatiu GNU/Linux. – Guíes disponibles al Campus Virtual de la UOC.

Criteris de valoració El pes de cada pregunta està indicat a l’enunciat de cada exercici. Es valorarà la claritat i la justificació de les respostes presentades.

Format i data de lliurament S’haurà de lliurar un document PDF amb la resposta a les preguntes plantejades. En cas que sigui necessari també s’hauran de lliurar tots els fitxers font programats. En aquest cas el lliurament es farà en un únic fitxer ZIP que contindrà el document PDF i els fitxers amb codi font. En cap cas s’acceptaran fitxers amb un altre format als indicats en aquest punt. La data límit de lliurament a través del RAC (Registre d’Avaluació Continua) són les 23:59h del 22/10/2019. En cap cas s’acceptaran lliuraments fora de termini (si no hi ha un motiu degudament justificat) ni lliuraments a través del correu electrònic.

Pàgina 2 de 23

Exercici 1 (2.5 punts) Doneu resposta a les següents preguntes relacionades amb el mòdul 1 de la assignatura de forma justificada: 1. (0.5 punts) Indiqueu quina és la funció de les crides al sistema. Tal com s’indica en la documentació, les crides al sistema són un conjunt de serveis que són accessibles pels processos (que no són més que un programa en execució) que s’estan executant en el sistema. Aquestes funcionalitats són com una extensió de les instruccions que pot executar el processador i estan en la línia d’una concepció del sistema com una màquina virtual que pot fer coses més complicades que les que pot fer el sistema (maquinari) per si sol. 2. (1 punt) Identifiqueu les crides al sistema per fer la lectura/escriptura d’un canal d’E/S (entrada/sortida) en el sistema GNU/Linux que utilitzeu. Expliqueu per aquestes crides: • La seva funcionalitat. • Els paràmetres d’entrada i de sortida. • Com es fa la crida (exemple de crida, amb les declaracions de totes les variables que aneu a utilitzar en l’exemple)? Atenció: No és un codi amb un exemple, és una línia amb la crida, i les declaracions adequades de les variables i els fitxers de declaracions necessaris (.h) Para fer-ho executarem la comanda de la Figura 1. Aquí veiem que les crides al sistema són read i write. Per a ambdues funcions, posem la funcionalitat a partir de la descripció en el manual de sistema (man 2 write, man 2 read), els paràmetres d’entrada/sortida a partir de la sinopsi del manual i com es porta a terme la trucada. Pàgina 3 de 23

Universitat Oberta de Catalunya

Figura 1: Execució de la comanda ltrace.

(a) Crida al sistema read : Funcionalitat: Veiem les opcions de la crida a la Figura 3.

Figura 2: Manual de la comanda read.

La informació de la sinopsi de la funció la podem veure a la Figura 2.

Figura 3: Sinopsi de la comanda read.

La informació dels paràmetres d’entrada i sortida la podem veure a la Figura 4. Pàgina 4 de 23

Prova d’Avaluación Contínua (PAC) 1

Figura 4: Paràmteres d’entrada i sortida de la comanda read.

Figura 5: Exemple de una crida a la funció read.

Podem veure un exemple de la crida a la funció a la Figura 5. El primer paràmetre de la funció és l’identificador del fitxer, el segon la posició de memòria on gaurdarem la informació que anirem llegint i el tercer parámetre el número màxim de bytes que intentarem llegir. (b) Crida al sistema write : Funcionalitat: Veiem les opcions de la crida a la Figura 6. La informació de la sinopsi de la funció la podem veure a la Figura 7. La informació dels paràmetres d’entrada u sortida la podem veure a la Figura 8. Podem veure un exemple de la crida a la funció a la Figura 9. Pàgina 5 de 23

Universitat Oberta de Catalunya

Figura 6: Manual de la comanda write.

Figura 7: Sinopsi de la comanda write.

Figura 8: Paràmetres d’entrada i sortida de la comanda write.

El primer paràmetre de la funció és l’identificador del fitxer, el segon la posició de memòria on tenim la informació a escriure i el tercer el número de bytes que volem escriure. 3. Per a la shell bash del sistema GNU/Linux que utilitzareu, indiqueu: • (0.25 punts) Com podeu canviar el prompt que apareix a la shell del terminal d’ordres? Veiem primer amb la ajuda man bash (sempre que aquesta sigui la nostra shell) sobre les opcions per a modificar el missatge del prompt (buscarem la informació de PROMPTING com veiem a la Figura 10. A la nostra Shell el valor de PS1 és el de la Figura 11. • (0.25 punts) Com podeu configurar el prompt perquè aparegui sempre el directori (complet/absolut) en el qual actualment es troba l’usuari que està executant la shell? Per exemple executarem la solució de la Figura 12. Pàgina 6 de 23

Prova d’Avaluación Contínua (PAC) 1

Figura 9: Exemple de una crida a la funció write.

• (0.25 punts) Com podeu configurar el prompt perquè aparegui sempre el directori (només l’últim directori del camí absolut) en el qual es troba actualment l’usuari que està executant la shell? És a dir, si l’usuari es troba en /dir1/dir2/dir3 llavors el prompt ha de ser dir3. Per exemple executarem la solució de la Figura 13. • (0.25 punts) Com podeu configurar el prompt perquè aparegui el nom de l’usuari de sistema que està executant la shell ? Per exemple executarem la solució de la Figura 14.

Pàgina 7 de 23

Universitat Oberta de Catalunya

Figura 10: Informació de la shell.

Figura 11: Valor de PS1.

Figura 12: Exemple de configuració de PS1.

Figura 13: Exemple de configuració de PS1.

Pàgina 8 de 23

Prova d’Avaluación Contínua (PAC) 1

Figura 14: Exemple de configuració de PS1.

Pàgina 9 de 23

Exercici 2 (2.5 punts) Responeu les següents preguntes relacionades amb el mòdul 2 de l’assignatura. 1. (0.5 punts) Indiqueu quina és la funció de les excepcions. Les excepcions són modificacions del fil d’execució dels programes provocades perquè el sistema detecta algun tipus d’anomalia. Per exemple podem detectar un problema a l’dividir per 0. La seva funció és protegir el sistema de situacions anòmales. Les excepcions estan indexades perquè el sistema pugui identificar quina és la rutina de gestió de l’excepció que s’ha d’executar en cas de produir-se. De fet podríem classificar les excepcions en tres categories: (a) Faltes (faults): que es detecten abans de produir-se l’acció (tenen identificada la posició de la causa del problema i la posició en memòria que la produeix registre). (b) Traps: que es detecten després de l’execució de la instrucció que les produeix (tenen identificada la posició de la causa del problema i la posició de memòria que la produeix, registre). (c) Aborts: que no tenen identificada la posició del problema, que s’ha produït per raons indefinides i per tant no sempre és possible tenir control de l’execució del programa a partir del moment en què s’ha produït l’excepció. 2. (0.75 punts) Indiqueu tres escenaris en els quals l’execució d’una instrucció de llenguatge màquina pugui generar una excepció. • EXEMPLE 1: Si intentem dividir per 0 • EXEMPLE 2: Error de paginació (page fault), podem no tenir encara carregada la pàgina que volem en memòria (es dispara l’excepció, es porta la Pàgina 10 de 23

Prova d’Avaluación Contínua (PAC) 1 pàgina i podem dur a terme l’accés) o no la podem portar i finalment es produeix un error. A la Figura 15 podem veure algunes de les possibles raons d’una excepció d’aquest tipus.

Figura 15: Errors de paginació.

• EXEMPLE 3: L’intent d’executar una instrucció per a la qual no tenim el nivell de privilegi adequat 3. (1.25 punts) Expliqueu els diferents estats en què es pot trobar un procés. Heu d’indicar les transicions possibles entre diferents estats i clarament quan un procés està en un determinat estat (característiques d’aquest estat). Tal i com podrem extreure de la documentació i veiem a la Figura 16 els possibles estats poden ser.

Figura 16: Possibles estats d’un proces.

Les possibles transicions són les de la Figura 17.

Pàgina 11 de 23

Universitat Oberta de Catalunya

Figura 17: Possibles transicions entre estats d’un proces.

Pàgina 12 de 23

Exercici 3 (2.5 punts) Responeu les següents preguntes relacionades amb el mòdul 3 de l’assignatura de forma justificada. Donat un sistema de gestió de memòria basat en paginació sota demanda on les pàgines tenen una mida de 4KBytes, les adreces lògiques són de 16bits i l’espai físic és de 32Kbytes. Sobre aquest sistema, es creen dos processos. • Procés 1: el seu fitxer executable determina que el codi ocuparà dues pàgines i que cadascuna de les altres àrees (dades inicialitzats, dades no inicialitzats i pila) ocuparà una pàgina. • Procés 2: el seu fitxer executable determina que el codi ocuparà tres pàgines i les dades inicialitzats ocuparan una pàgina i que no existeixen dades no inicialitzats i que la pila ocuparà dues pàgines. Es demana: 1. (0.5 punts) Estimeu (calculeu) la mida del fitxer executable corresponent al procés 2. Un executable està format pel codi i les dades inicialitzats. En aquest cas tenim que el codi ocupa 3 pàgines i les dades inicialitzats 1 pàgina. Per tant en total seran 4 pàgines. En aquest sistema una pàgina té una mida de 4Kbytes. Per tant l’executable ocuparà 16Kbytes 2. (1 punt) Suposant que les pàgines es carreguen en memòria física tal com indica el diagrama de la taula 2, taula 3 i taula 4, quin serà el contingut de les taules de pàgines de tots dos processos. Indiqueu per quin motiu tenen 16 entrades ambdues taules, completant la taula 2. Les taules de paginació són de 16 entrades perquè és el resultat de dividir la mida de l’espai lògic (216 bytes) entre la mida de la pàgina (4Kbytes, és a dir, 212 bytes). Pàgina 13 de 23

Universitat Oberta de Catalunya El resultat és 24 , és a dir, 16 pàgines. El contingut de les taules de pàgines es mostra a la taula 1, i no és rellevant el contingut dels camps en blanc en tractar de pàgines invàlides o de pàgines no presents en memòria física per als dos processos. PROCES 1 - PROCES 2 (1) DIRECCIÓ LÒGICA (2) ESPAI LÒGIC (3) PÀGÌNA (4) VÀLID (5) PRESENT (6) FRAME (1)

(2)

(3)

(4)

(5)

0X0

C1-1

0X0

1

0

0X1

C1-2

0X1

1

1

0X2

D1-1

0X2

1

0

0X3

D1-2

0X3

1

1

0X4

0X4

0

0X5 0X6

0X5 0X6

0X7

(1)

(2)

(3)

(4)

0X0

C2-1

0X0

1

0

0X1

C2-2

0X1

1

1

0X2

C2-3

0X2

1

0

0X3

D2-1

0X3

1

0

0X4

0X4

0

0 0

0X5 0X6

0X5 0X6

0 0

0X7

0

0X7

0X7

0

0X8

0X8

0

0X8

0X8

0

0X9

0X9

0

0X9

0X9

0

0XA

0XA 0

0XA

0XA 0

0XB

0XB

0

0XB

0XB

0

0XC

0XC

0

0XC

0XC

0

0XD

0XD 0

0XD

0XD 0

0XE

P1-2

0XE

1

1

0XF

P1-1

0XF

1

0

(6) 0X4 0X5

0X3

0XE

P2-2

0XE

1

0

0XF

P2-1

0XF

1

1

(5) 0X2

0X0

Taula 1: Informació processos 1 i 2.

3. (1 punt) Suposant que el procés en execució és el procés 1, indiqueu quines seran les adreces físiques corresponents a les següents adreces lògiques: 0x0123 i 0x2342. ¿Variaria la resposta si el procés en execució fos el procés 2? En cas afirmatiu indiqueu el motiu i com canviaria. La resposta depèn del procés en execució perquè cada procés utilitza una taula de pàgines diferent. Com les pàgines són de 212 bytes, els 12 bits de menys pes (3 dígits hexadecimals) conformen el desplaçament dins de la pàgina. La resta de bits (els 4 Pàgina 14 de 23

(6)

Prova d’Avaluación Contínua (PAC) 1 bits alts, el primer dígit hexadecimal) conformen l’índex de la taula de pàgines. El resultat de les traduccions seria el següent: (a) Proces 1 • Direcció Lògica: 0x0123 – Índex: 0 – Desplaçament: 0x123 – Direcció física: Excepció. Falla de pàgina. (No present) • Direcció Lògica: 0x2342 – Índex: 2 – Desplaçament: 0x342 – Direcció física: Excepció. Falla de pàgina. (No present) (b) Proces 2 • Direcció Lògica: 0x0123 – Índex: 0 – Desplaçament: 0x123 – Direcció física: Excepció. Falla de pàgina. (No present) • Direcció Lògica: 0x2342 – Índex: 2 – Desplaçament: 0x342 – Direcció física: Excepció. Falla de pàgina. (No present) PROCES 1 - PROCES 2 (1) DIRECCIÓ LÒGICA (2) ESPAI LÒGIC (3) PÀGÌNA (4) VÀLID (5) PRESENT (6) FRAME (1)

(2)

(3)

0X0

C1-1

0X0

0X1

C1-2

0X2 0X3

(4)

(5)

(6)

(1)

(2)

0X0

C2-1

0X0

0X1

0X1

C2-2

0X1

D1-1

0X2

0X2

C2-3

0X2

D1-2

0X3

0X3

D2-1

0X3

0X4

0X4

0X4

0X5

0X5

0X5 0X5 Tabla 2 continua a la pàgina següent... Pàgina 15 de 23

0X4

(3)

(4)

(5)

(6)

Universitat Oberta de Catalunya PROCES 1 - PROCES 2 (1) DIRECCIÓ LÒGICA (2) ESPAI LÒGIC (3) PÀGÌNA (4) VÀLID (5) PRESENT (6) FRAME (1)

(2)

(3)

(4)

(5)

(6)

(1)

(2)

0X6

0X6

0X6

0X6

0X7

0X7

0X7

0X7

0X8

0X8

0X8

0X8

0X9

0X9

0X9

0X9

0XA

0XA

0XA

0XA

0XB

0XB

0XB

0XB

0XC

0XC

0XC

0XC

0XD

0XD

0XD

0XD

0XE

P1-2

0XE

0XE

P2-2

0XE

0XF

P1-1

0XF

0XF

P2-1

0XF

Taula 2: Informació processos 1 i 2.

ESPAI FÍSIC FRAME 0X0

P2-1

0X1 0X2

C2-2

0X3

P1-2

0X4

C1-2

0X5

D1-2

0X6 0X7 Taula 3: Informació espai físic.

ÀREA SWAP C1-1

C2-1

D1-1

D2-1

C2-3

P1-1

P2-2 Pàgina 16 de 23

(3)

(4)

(5)

(6)

Prova d’Avaluación Contínua (PAC) 1

Taula 4: Informació àrea swap.

Pàgina 17 de 23

Exercici 4 (2.5 punts) Responeu les següents preguntes relacionades amb el mòdul 3 de l’assignatura de forma justificada. 1. (0.6 punts) Definiu els conceptes stack i heap i expliqueu les diferències entre ells. En un programa escrit en C, ¿on s’emmagatzemen les variables automàtiques? En primer lloc podem definir el stack com la zona de memòria temporal en la qual s’emmagatzemaran les variables locals de les funcions, amb un funcionament en mode LIFO, en un procediment d’apilament i desapilat de les variables en memòria. El gran avantatge de treballar d’aquesta manera és que tot el maneig de la memòria és responsabilitat del sistema. Per contra la major limitació que tenim és que la mida és limitat, i en certes circumstàncies es pot produir un desbordament de pila. Totes les variables que definim aquí són visibles només en l’àmbit local de les funcions on es van declarar. En segon lloc podem definir el heap com una zona de memòria que ha de ser gestionada per l’usuari. La memòria es gestiona manualment per part de l’usuari amb les funcions de reserva de memòria (* alloc) i d’alliberament de la mateixa (free). La zona de memòria és més lenta d’accés que la pila, ja que s’ha de fer sempre a través de punters (i no índexs). El gran avantatge de treballar amb aquesta zona, és que allò que en ella declarem té un àmbit global dins del programa. Les variables automàtiques s’emmagatzemen en el stack. 2. (0.6 punts) Expliqueu la funcionalitat i els paràmetres de les funcions malloc (), calloc (), free () i realloc (). On es reserven els espais de memòria resultants de crides a les funcions malloc ()? Com hem indicat anteriorment, és el en heap on es reserven les zones de memòria a través de la funció malloc. Pàgina 18 de 23

Prova d’Avaluación Contínua (PAC) 1 Per a cada funció tindrem: • malloc: void _* malloc (sizet size); – Funcionalitat: Reserva size bytes i retorna un punter a la zona de memòria reservada. La memòria no queda inicialitzada. – Paràmetres: La mida de la zona de memòria a reservar • calloc: void _*calloc (sizet nmemb, sizet size); – Funcionalitat: Reserva una zona de memòria per nmemb elements d’una mida cada un d’ells de size, retornant un punter a la zona de memòria reservada. En aquest cas la zona de memòria quedarà inicialitzada a 0. – Paràmetres: En lloc de tenir un paràmetre com la funció malloc amb la mida total de la zona de memòria a reservar, tenim dos arguments, un amb el nombre d’elements i un altre amb la mida de cada element. • free: void free (void * ptr); – Fu...


Similar Free PDFs