Disciplina CS1202 || Course CS1202

(ro) Sisteme de Operare || (en) Operating Systems

OSC10 textbook cover Linux mascot (Tux) MOS5 textbook cover
 

I. Detalii organizatorice || Administrative

[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:

[en] The Operating Systems discipline has two components:

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
  • Fundamentals of file systems
  • Introduction to distributed systems

Bibliografie obligatorie || Mandatory bibliography

[ro] Pentru componenta teoretică a disciplinei sunt recomandate două cărți de bază pentru teoria sistemelor de operare:

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: 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

Bibliografie obligatorie || Mandatory bibliography

[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.

Bibliografie suplimentară || Additional bibliography


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).

Orarul disciplinei: SO (ro) || Timetable: OS (en)

Fișa disciplinei || OS course's sheet