Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0003	Sisteme de operare	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
2	2+0+2+0	fundamentala	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
BOIAN Florian Mircea	Dr. 	Prof.	Sisteme Informatice	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
Insusirea de catre studenti a principalelor entitati si concepte cu care se opereaza in sistemele de operare: procese si fisiere. Prezentarea bazelor legarii fisierelor de procese si a comunicarii intre procese. 
Insuşirea bazelor programarii specifice sistemelor de operare: programarea in limbaje de tip scripting (sh, bash, powershell, Python) si utilizarea functiilor sistem in limbajul C standard. 
Prezentarea ca studii de caz, a enitatilor, conceptelor si API-urilor de operare cu procese, oferite de către sistemele de operare din familia Unix (Solaris, Linux, BSD etc.) si a celor din familia Windows (XP, Vista, Vindows 7, Windows Server 2008)	

IV. Conţinutul disciplinei
1. Unix: introducere, programare Shell.
2. Sistemul de fişiere Unix: structura arborescentă şi legături.
3. Functii standard de I/O
4. Windows: introducere, fisiere de comenzi.
5. Limbajul Python
. 6. Unix: procese, semnale; comunicarea intre procese.
7. Procese Windows si comunicarea între procese.
8. Instalare, configurare, lansare, blocare fisiere	

V. Bibliografie
1. ALBING C., VOSSEN J.P., NEWHAM C. bash Cookbook. O'Reilly, 2007
2. BOIAN F, VANCEA A. BOIAN R. BUFNEA D., STERCA A., COBARZAN C., COJOCAR D. Sisteme de operare Ed. Risoprint, 2006.
3. BOIAN F.M. De la aritmetica la calculatoare. Ed. Presa Universitara Clujeana, Cluj, 1996.
4. BOIAN F.M. FERDEAN C.M., BOIAN R.F., DRAGOS R.C. Programare concurentă pe platforme Unix, Windows, Java. Ed. Albastră, grupul Microinformatica, Cluj, 2002.
5. LUTZ M. Learning Python. O'Reilly, 2009.
6. RAYMOND E.S. The Art of Unix Programming. Prentice Hall, 2003.
7. STALLINGS W. Operating Systems: Internal and Design Principles. 6th edition, Prentice Hall, 2009.
8. TANENBAUM A.S. Modern Operating Systems. 3rd edition, Prentice Hall, 2009 
9. .	Ubuntu - The Complete Reference. Richard Petersen, MCGraw-Hill, 2009
10.	. Windows 7 User Guide. Microsoft, 2009	

VI. Tematica activităţilor didactice pe săptămâni
Curs

Săpt. 1 - 3
1. Unix: introducere, programare Shell.
_  Programarea în C sub Unix: gcc, make,- implementare proiecte.
_  Comenzi Unix şi argumente.
_  Expresii regulare, specificarea fişierelor, specificări generice.
_  Filtre şi editoare de texte.

Programare Shell.
_  Procesorul de comenzi sh.
_  Variabile, structuri de control (if, for, while, do, case).
_  Comenzi interne utile în context Shell.
_  Variabile shell remarcabile şi rolul acestora.
_  Tratarea liniei de comandă.
_  Exemple de programe Shell; sh vs bash

2. Sistemul de fişiere Unix: structura arborescentă şi legături.
_  Structura superioară a sistemului de directoare Unix.
_  Conceptul de montare.
_  Legături hard şi legături simbolice.
_  Drepturi de acces la fişiere.

Sapt. 4-6
3. Functii standard de I/O
_  Programare I/O POSIX: apelurile sistem open, close, lseek, read, write, dup, dup2.
_  Functii C de I/O: fopen, fclose, fread, fwrite, fseek, fprintf, fgets, fscsnf.

4. Windows: introducere, fisiere de comenzi.
_  Comenzi şi argumente.
_  Fişiere şi căi; drepturi de access.
_  Fişiere de comenzi bat si powershell.

5. Limbajul Python
_  Operatii, structuri de date, structuri de control
_  module, functii, clase.
_  modulele standard sys, os, posix, shutil, re, time, math

Saptamana 7-10
6. Unix: procese, semnale; comunicarea intre procese.
_  Procese sub Unix; structura, API (fork, wait, exec, exit, system, popen).
_  Fişiere şi procese sub Unix: schema de legare între ele.
_  Semnale Unix

Comunicarea între procese Unix.
_  Pipe, FIFO, implementare popen.
_  Structuri specifice IPC.
_  Cozi de mesaje.
_  Memorie partajată.
_  Semafoare Unix.
_  Exemple complexe de comunicare IPC Unix

Săpt. 11 - 13
7. Procese Windows si comunicarea între procese.
_  Procese sub Windows: API, MinGW vs. Visual Studio
_  Pipe anonime şi cu nume.
_  Cozi de mesaje – mailslot.
_  Memorie partajată – fişiere mapate în memoria internă.
_  Semafoare anonime şi cu nume.
_  Exemple complexe de comunicare IPC Unix

Săpt. 14
8. Instalare, configurare, lansare, blocare fisiere
_  Specificul sistemelor Unix.
_  Specificul sistemelor Windows.
_  Procese daemon (Unix), servicii (Windows).
_  Functii POSIX de blocare a fisierelor Unix si Windows.

Laborator:
Cmd	
Unix: comenzi si editoare de texte	

C1	
Program C1	

SG	
sed si grep	

Awk	
awk	

C2	
Program C2	

C3	
Program C3	

Sh	
Program Shell	

C4	
Program C4	

WSh	
Windows BAT si PowerShell	

Py	
Program Python	

UProc	
Pocese Unix	

UPipe	
Unix; pipe si FIFO Unix	

UIPC	
Unix; IPC	

WProc	
Windows; pipe si IPC	

VII. Metode didactice folosite
Metodele de bază utilizate în cazul predării cursului şi a laboratorului sunt: expuneri, conversaţii, studiu individual, teme, proiecte aplicative. Disciplina are alocate ore de curs şi ore de laborator. La curs se folosesc materiale bibliografice specifice: cărţi, articole, referinţe de pe Internet. La laborator se urmăreşte dezvoltarea practică a unor proiecte şi rezolvarea unor probleme, fie de programare fie de administrare, folosind calculatorul şi pachete software specifice.	

VIII. Evaluare
Nota finala este medie ponderata a trei note componente:
Examen scris şi practic la finele semestrului:
_  Activitatea de laborator: calitatea programelor, documentaţii etc. 30%
_  Nota la lucrarea practică 30%;
_  Nota de la lucrarea scrisă 40%;

Daca din motive intemeiate nu s-a putut preda satisfacator activitatea de laborator, atunci partea practica a examenului final va avea pondere 60% cu cerinte marite cu 50% 

Cerintele cursului sunt postate la:
http://www.cs.ubbcluj.ro/~florin/SO	

IX. Bibliografie suplimentară

	Decan,							Sef de catedra,
	Prof. dr. TAMBULEA Leon			Prof. Dr.  BOIAN Florian Mircea

	Data,							Titular curs,
	01.10.2010						Prof. Dr.  BOIAN Florian Mircea