[ro]
Bine ați ajuns în al doilea semestru al anului universitar curent!
În cadrul disciplinei de Sisteme de Operare
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 acestui curs, precum și site-ul facultății,
pentru a fi la curent cu ultimele noutăți.
[en]
Welcome to the Operating Systems course!
Classes will take place in physical format, at the faculty, according to the regulations in force.
Note: don't forget to constantly consult the website of this course, as well as the website of the faculty,
to be aware of the latest news.
II. Despre curs || About the OS course
Obiective || Objectives
[ro]
Disciplina Sisteme de operare are două componente:
o componentă practică, ce va fi descrisă mai jos, la secțiunea despre laboratoare;
o componentă teoretică, ce își propune să aprofundeze conceptele teoretice privitoare la sisteme de operare,
al căror studiu l-ați început în primul semestru în cadrul disciplinei "Arhitecturi de calculatoare și sisteme de operare".
[en]
The Operating Systems discipline has two components:
a practical component, which will be described below in the section about the OS laboratory;
a theoretical component, the study of theoretical concepts regarding operating systems.
Tematica cursurilor pentru componenta teoretică
|| Course topics for the theoretical component
[ro] Tematica cursurilor pentru componenta teoretică
[en] Course topics for the theoretical component
Concepte de bază despre sistemele de operare
Structură, componente, servicii. Nucleul unui sistem de operare
Procese. Gestiunea proceselor (și a procesorului)
Sincronizarea proceselor. Mecanisme de bază pentru sincronizare și concurență
Comunicații inter-procese
Fenomenele de interblocaj și de înfometare
Fundamentele administrării memoriei
Principiile sistemului de I/O. Administrarea perifericelor de stocare
Fundamentele sistemelor de fișiere
Noțiuni introductive despre sistemele distribuite
The basic concepts of operating systems
Structure, components and services. The kernel
Running programs. Process management
Process synchronization. Basic mechanisms for synchronization and concurrency
Inter-process communication
Deadlock and starvation
Fundamentals of memory management
Principles of the I/O system. Managing storage peripherals
[ro]
Pentru componenta teoretică a disciplinei sunt recomandate două cărți de bază pentru teoria sistemelor de operare:
[OSC10] 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'.)
[MOS5] Cartea "Modern Operating Systems", autori Andrew S. Tanenbaum și Herbert Bos, editura Pearson, ediția a 5-a, 2022.
(O copie electronică a acestei cărți o puteți găsi în secțiunea privată de mai jos, la rubrica 'Bibliografie'.)
Oricare dintre cele două cărți poate fi citită pentru aprofundarea conceptelor teoretice de la curs.
Recomandare: NU vă rezumați deci doar la consultarea prezentărilor Powerpoint;
trebuie să citiți, săptămânal, capitolul indicat în fiecare prezentare din măcar una dintre cele două cărți,
pentru a putea asimila materia teoretică, nu amânați acest studiu pentru sesiune.
[en]
Two books are recommended for the theoretical component of the OS discipline:
[OSC10] "Operating System Concepts", by Avi Silberschatz, Peter Baer Galvin and Greg Gagne, published by John Wiley & Sons, Inc., 10th edition, 2018.
[MOS5] "Modern Operating Systems", by Andrew S. Tanenbaum and Herbert Bos, published by Pearson, 5th edition, 2022.
Either of the two books can be read to deepen the theoretical concepts of the course.
III. Despre laborator || About the OS labs
Obiective || Objectives
[ro]Componenta practică a acestei discipline îș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.
Motivație: a se citi Introducere despre Linux.
[en]
The practical component of this course has two objectives:
to give you an overview of the Linux operating system, i.e. a short Linux user guide,
as well as an introduction to system programming for the Linux platform,
using the C programming language and the POSIX API.
Motivation: read Introduction to Linux.
Tematica cursurilor și laboratoarelor pentru componenta practică
|| Course and labs topics for the practical component
[ro] Tematica cursurilor și laboratoarelor pentru componenta practică
[en] Course and labs topics for the practical component
Introducere în UNIX/Linux
Comenzi de bază. Sistemul de fișiere
Interpretoare de comenzi (bash)
Scripting bash. Fișiere cu secvențe de comenzi
Programare: lucrul cu fișiere, folosind API-ul POSIX și biblioteca Standard I/O din C
Programare: acces exclusiv folosind blocaje pe fișiere
Programare: lucrul cu fișiere mapate în memorie; IPC -- comunicații prin memorie partajată
Programare: lucrul cu mai multe procese secvențiale (I): fork și wait
Programare: lucrul cu mai multe procese secvențiale (II): exec
Programare: IPC -- comunicații prin canale anonime și canale fifo
Programare: semnale, pentru programare asincronă și tratarea excepțiilor
Programare: UI în mod text, folosind biblioteca ncurses
Introduction to UNIX/Linux
Basic commands. The filesystem
The shells (bash)
The scripting language bash. Scripts
Programming: the APIs for working with files
Programming: exclusive access to files using locks
Programming: memory mapped files; IPC through shared memory
Programming: creating and synchronizing processes (fork and wait)
Programming: overloading processes (exec)
Programming: IPC through anonymous channels and fifos
Programming: notification of processes through signals
Programming: UI in text mode, using the ncurses library
[ro]
Pentru componenta practică puteți consulta cartea "Sisteme de operare", manual pentru ID, autor C.Vidrașcu,
editura Universității "Alexandru Ioan Cuza", 2006.
(O copie electronică a acestei cărți o puteți găsi în secțiunea privată de mai jos, la rubrica 'Bibliografie'.)
Recomandare: NU vă rezumați deci doar la consultarea prezentărilor Powerpoint;
trebuie să citiți, săptămânal, capitolul corespunzător pentru fiecare prezentare,
pentru a putea asimila materia practică și a rezolva exercițiile de laborator.
[en]
For the practical component you can consult the book "Sisteme de operare", manual pentru ID, autor C.Vidrașcu,
editura Universității "Alexandru Ioan Cuza", 2006 (in romanian).
See also the additional bibliography from below.
Pentru prima parte, Ghid de utilizare Linux :
a se consulta manualul de referință pentru interpretorul bash.
Două tutoriale despre bash, recomandate oficial de Proiectul "Linux Documentation Project Guides",
puteți găsi aici +
aici.
Alte tutoriale despre bash puteți găsi
aici ,
aici și
aici .
Un ghid ce descrie toate comenzile de bază din Linux puteți consulta
aici.
Pentru a doua parte, Programare de sistem pentru platforma Linux :
recomand a se consulta cărțile: "Advanced Programming in the UNIX Environments", autori W. Richard Stevens, Stephen A. Rago, editura Pearson Education Inc., ediția a 3-a, 2013
și "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").
Pentru ambele părți, recomand bibliografia oficială, i.e. Proiectul "The Linux man-pages",
ce oferă inclusiv o interfață web navigabilă pentru conținutul paginilor de manual pentru Linux, disponibilă
aici.
IV. Despre modalitatea de examinare || About assessment
[ro]Componenta de evaluare pe parcursul semestrului a acestei discipline va consta în mai multe probe de evaluare,
bazate doar pe componenta practică a acestei discipline. Acestea se vor desfășura pe întreg parcursul semestrului,
iar nota finală pentru această componentă va avea ponderea de 85% î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 ambele componente, teoretică și practică, ale acestei discipline.
Iar nota de la examen va avea ponderea de 15% î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 ale acestei discipline
vor fi prezentate la cursurile din prima săptămână și vor fi publicate într-o pagină separată, în secțiunea de mai jos.
Anunț pentru seria 1X (restanțierii): NU se echivalează punctajele din anii precedenți. Citiți cu atenție detaliile despre modalitățile de evaluare valabile în acest an universitar.
[en]
Read the details about assessment published in the dedicated page from the restricted section of this website.
V. Informații suplimentare || Additional information
Numai pentru studenții înscriși la această disciplină: a se vedea aici (acces restricționat).
||
Only for students enrolled in this discipline: see here (restricted access).