Bine ați ajuns în al doilea semestru al anului universitar curent!
În cadrul disciplinei de Sisteme de operare și rețele de calculatoare
orele se vor desfășura în format fizic, la facultate, conform reglementărilor în vigoare.
Notă: nu uitați să consultați permanent site-ul acestei discipline, precum și site-ul facultății, pentru a fi la curent cu ultimele noutăți.
II. Despre cursuri
Obiective
Această disciplină are două componente:
SO: o primă componentă, referitoare la Sisteme de operare, ce va fi predată în prima jumătate a semestrului;
RC: o a doua componentă, referitoare la Rețele de calculatoare, ce va fi predată în a doua jumătate a semestrului.
Tematica cursurilor pentru cele două componente
Tematica pentru componenta de Sisteme de operare
Tematica pentru componenta de Rețele de calculatoare
Noțiuni introductive despre familia de sisteme de operare Unix / Linux. Comenzi de bază și sisteme de fișiere.
Interpretoare de comenzi. Limbajul de scripting bash.
Sisteme de fișiere. API-uri pentru procesarea fișierelor.
Gestiunea proceselor. Notificarea proceselor prin semnale.
Sincronizarea proceselor. API-uri pentru controlul și sincronizarea proceselor.
Comunicații inter-procese (partea I). Modelul de IPC prin memorie partajată.
Comunicații inter-procese (partea II). Modelul de IPC prin schimb de mesaje.
Noțiuni de bază despre reţele de calculatoare. Terminologie, clasificări, arhitectură (tipuri de rețele).
Programarea rețelelor (partea I). TCP și UDP client/server. Modele Peer-to-Peer și RPC (legate de servicii web). API pentru programarea de rețea. Interfața BSD sockets.
Programarea rețelelor (partea II). Concurența în modelul client/server. Atributele socket-urilor.
Programarea rețelelor (partea III). Multiplexare, multithreading, prethreading, etc.
DNS (Sistemul numelor de domeniu). Nivelul aplicație: protocoale de email. Mecanisme de transfer de fișiere.
SO : pentru componenta de SO a disciplinei sunt recomandate următoarele cărți:
[1] Cartea "Operating System Concepts", autori Avi Silberschatz, Peter Baer Galvin și Greg Gagne, editura John Wiley & Sons, Inc., ediția a 10-a, 2018.
(O copie electronică a acestei cărți o puteți găsi în secțiunea privată de mai jos, la rubrica 'Bibliografie'.)
[2] Cartea "Sisteme de operare. Manual pentru ID", autor Cristian Vidrașcu, editura Universității „Alexandru Ioan Cuza”, Iași, 2007.
(O copie electronică a acestei cărți o puteți găsi în secțiunea privată de mai jos, la rubrica 'Bibliografie'.)
[3] Cartea "Advanced Programming in the UNIX Environments", autori W. Richard Stevens și Stephen A. Rago, editura Pearson Education Inc., ediția a 3-a, 2013.
[4] Cartea "The Linux Programming Interface – A Linux and UNIX System Programming Handbook", autor M. Kerrisk, editura No Starch Press, 2010.
RC : pentru componenta de RC a disciplinei sunt recomandate următoarele cărți:
[5] Cartea "Computer Networks, 6th Edition: A Systems Approach", autori Larry L. Peterson, Bruce S. Davie, 2020.
[6] Cartea "Network+ Guide to Networks", autori Jill West, Jean Andrews, Tamara Dean, ISBN-13: 978-1337569330, 2018.
[7] Cartea "Computer Networking: A Top-Down Approach", autori James F. Kurose, Keith W. Ross, ediția a 6-a, 2013.
[8] Cartea "Atelier de programare în rețele de calculatoare", autori S. Buraga, G. Ciobanu, editura Polirom, Iași, 2001.
Notă: la aceste referințe se vor adăuga referințe suplimentare specificate în cadrul fiecărui curs. Studenții au obligația de a consulta resursele bibliografice indicate în cadrul cursului/laboratorului.
III. Despre laboratoare
Obiective
SO: componenta referitoare la Sisteme de operare, ce va fi predată în prima jumătate a semestrului,
își propune două obiective:
să vă ofere o prezentare generală a unui sistem de operare alternativ celui dominant la ora actuală pe piață,
i.e. un ghid de utilizare a Linux-ului,
precum și o introducere în domeniul programării de sistem pentru platforma Linux (inclusiv scrierea de programe paralele/concurente),
folosind limbajul de programare C și API-ul de programare a sistemului Linux, i.e. standardul POSIX.
RC: componenta referitoare la Rețele de calculatoare, ce va fi predată în a doua jumătate a semestrului,
își propune să vă ofere o introducere în domeniul programării de rețea pentru platforma Linux,
ilustrând modul în care comunicarea între procese locale (IPC) se extinde către comunicarea între calculatoare prin intermediul protocoalelor de rețea și al interfeței BSD socket.
Tematica laboratoarelor pentru cele două componente
Tematica pentru componenta de Sisteme de operare
Tematica pentru componenta de Rețele de calculatoare
Linux: Comenzi de bază și sisteme de fișiere
Interpretoare de comenzi – prezentare generală.
Limbajul de scripting bash.
Programare: Apeluri de sistem POSIX pentru lucrul cu fișiere.
Programare: Crearea, reacoperirea și sincronizarea proceselor – apelurile de sistem fork, exec și wait.
Programare: Fișiere mapate în memorie. Comunicații inter-procese prin memorie partajată.
Programare: Comunicații inter-procese prin canale anonime și fifo.
Comunicații inter-procese utilizând perechi de socket-uri interconectate. Comunicarea în rețea folosind socket-uri individuale.
Paradigma client/server (partea I). Implementarea unui server UDP iterativ și a unui client UDP.
Paradigma client/server (partea II). Implementarea unui server TCP iterativ și client TCP.
Paradigma client/server (partea III). Implementarea unui server TCP concurent și client TCP.
Multiplexare. Implementarea unui server și client TCP/IP cu multiplexare I/O folosind primitiva select.
De la nivelul transport la nivelul aplicație. Implementarea unui request HTTP GET folosind socket-uri TCP. Examinarea manuală a răspunsului și antetelor HTTP generate de browser.
Bibliografie
SO : pentru componenta de SO a disciplinei sunt recomandate următoarele cărți:
[1] Cartea "Sisteme de operare. Manual pentru ID", autor Cristian Vidrașcu, editura Universității „Alexandru Ioan Cuza”, Iași, 2007.
(O copie electronică a acestei cărți o puteți găsi în secțiunea privată de mai jos, la rubrica 'Bibliografie'.)
[2] Cartea "Advanced Programming in the UNIX Environments", autori W. Richard Stevens și Stephen A. Rago, editura Pearson Education Inc., ediția a 3-a, 2013.
[3] Cartea "The Linux Programming Interface – A Linux and UNIX System Programming Handbook", autor M. Kerrisk, editura No Starch Press, 2010
(autorul acestei cărți este și maintainer-ul proiectului "The Linux man-pages").
RC : pentru componenta de RC a disciplinei sunt recomandate următoarele cărți:
[5] Cartea "Computer Networks, 6th Edition: A Systems Approach", autori Larry L. Peterson, Bruce S. Davie, 2020.
[6] Cartea "Network+ Guide to Networks", autori Jill West, Jean Andrews, Tamara Dean, ISBN-13: 978-1337569330, 2018.
[7] Cartea "UNIX Network Programming, Volume 1: The Sockets Networking API", autori R. Stevens, B. Fenner, A. Rudoff, ediția a 3-a, editura Addison Wesley, 2003.
[8] Cartea "Atelier de programare în rețele de calculatoare", autori S. Buraga, G. Ciobanu, editura Polirom, Iași, 2001.
Notă: la aceste referințe se vor adăuga referințe suplimentare specificate în cadrul fiecărui curs. Studenții au obligația de a consulta resursele bibliografice indicate în cadrul cursului/laboratorului.
IV. Despre modalitatea de examinare
Componenta de evaluare pe parcursul semestrului a acestei discipline va consta în mai multe probe de evaluare,
bazate pe ambele componente, SO și RC, ale acestei discipline. Aceste probe se vor desfășura pe întreg parcursul semestrului,
iar nota finală pentru această componentă va avea ponderea de 60% în media finală a disciplinei.
Componenta de evaluare la finalul semestrului a acestei discipline va consta într-un examen la finalul semestrului.
Acesta va conține întrebări din componenta de RC a acestei discipline.
Iar nota de la examen va avea ponderea de 40% în media finală a disciplinei.
De reținut: în sesiunea de restanțe și măriri se va reexamina doar componenta de evaluare la finalul semestrului a acestei discipline.
Mai multe detalii despre modalitățile de evaluare a celor două componente, SO și RC, ale acestei discipline
sunt specificate în fișa disciplinei de mai jos; de asemenea, vor fi prezentate la primul curs din cadrul fiecărei componente
și vor fi publicate în cadrul site-urilor dedicate celor două componente, indicate în secțiunea de mai jos.
V. Informații suplimentare
Numai pentru studenții înscriși la această disciplină:
Site-ul componentei de Sisteme de operare (cu acces restricționat) : a se vedea aici.
Site-ul componentei de Rețele de calculatoare (acces restricționat) : a se vedea aici.